; --------------------------------------------------------------------------- PidAndFunction struc ; (sizeof=0x8) PID: dc.l ? ; offset (00000000) anonymous_0: dc.l ? ; offset (00000000) PidAndFunction ends ; --------------------------------------------------------------------------- struct_0 struc ; (sizeof=0x8) PID: dc.w ? PidFlags: dc.w ? Function: dc.l ? ; offset (00000000) struct_0 ends ; ; +-------------------------------------------------------------------------+ ; +-------------------------------------------------------------------------+ ; ; Input MD5 : 4205CE0BFA308E4C0658F077898931D0 ; Input CRC32 : 33B42E60 ; File Name : C:\GitHub\IDA_12587603\12587603-2004-Corvette-M6.bin ; Format : Binary file ; Base Address: 0000h Range: 0000h - 100000h Loaded length: 100000h ; Processor: 68330 ; Target Assembler: 680x0 Assembler in MRI compatible mode ; This file should be compiled with "as -M" ; =========================================================================== ; Segment type: Regular ; segment "Boot" off_0: dc.l unk_FFCE00, Reset ; DATA XREF: Boot:off_0o sub_77EA6+Co ... dcb.l 3,loc_55C ; The first value is the stack pointer, and loc_440 is the reset vector. dc.l loc_6C2 ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dcb.l 2,off_0 dcb.l $13,loc_55C dc.l unk_5C4 dcb.l $B,loc_55C dc.l unk_596 dcb.l $1A,loc_55C dc.l unk_5AE dcb.l $D,loc_55C dc.l unk_634 dcb.l 2,loc_55C dc.l unk_610 dcb.l 8,loc_55C dc.l unk_5FE, loc_55C, unk_5DA, unk_5EC dcb.l $10,loc_55C dcb.l 6,unk_622 dcb.l $8A,loc_55C dc.l sub_1626, sub_1634, loc_872F2, loc_4A678, loc_87992 dc.l loc_8789E, unk_FF8000, loc_66E44, locret_66E46, loc_66C8E dc.l loc_66CFC dcb.l 2,locret_66E46 dc.l loc_66D42, locret_66E46 dc.l loc_66E1A ; --------------------------------------------------------------------------- Reset: ; DATA XREF: Boot:off_0o suba.l a6,a6 move.l #$FFFFC000,d0 asr.l #8,d0 move.w d0,(word_FFFFFB04).w move.l #$FFFF8000,d0 move.l d0,(dword_FFFFFB44).w move.l #$FFFF9000,d0 move.l d0,(dword_FFFFFB84).w move.l #$FFFFA000,d0 move.l d0,(dword_FFFFFA84).w move.l #$FFFFB000,d0 move.l d0,(dword_FFFFFAC4).w move.l #$200,d0 move.w d0,(word_FFFFFB40).w move.w d0,(word_FFFFFB80).w move.w d0,(word_FFFFFA80).w loc_488: ; DATA XREF: OS4:00087E2Do move.w d0,(word_FFFFFAC0).w movea.l #0,a0 movec a0,vbr move.l #$FFFFC000,d1 move.b (byte_2175).w,(d1.l) move.b (byte_2176).w,(d1.l) jsr (sub_138E).l move.b (byte_FFFFFA07).w,d0 btst #6,d0 beq.s loc_4BA bra.s loc_4D2 ; --------------------------------------------------------------------------- loc_4BA: ; CODE XREF: Boot:000004B6j addq.w #1,(word_FFFF8FF6).w btst #5,d0 beq.s loc_4CA tst.b (word_FFFF8FF0).w bne.s loc_4D2 loc_4CA: ; CODE XREF: Boot:000004C2j andi.w #$FF,d0 move.w d0,(word_FFFF8FF0).w loc_4D2: ; CODE XREF: Boot:000004B8j ; Boot:000004C8j movea.l #unk_FFCE00,sp jsr (sub_E52).l jsr sub_29320 tst.w (word_18BA).l beq.s loc_4F2 jsr (sub_2178).l loc_4F2: ; CODE XREF: Boot:000004EAj movea.l (off_18B6).l,a2 jsr (a2) stop #$2700 ; --------------------------------------------------------------------------- word_4FE: dc.w $3E8 ; DATA XREF: sub_6010A+3Cr ; sub_60178+4DCr Constant16_Operating_System_Checksum:dc.l $D2E80001 CurveTable_8_Rows_Calibration_Segment_Checksum:dc.l $C01253 CurveTable_2_Columns_Operating_System_Level_ID:dc.l $44430000 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $F dc.b $FF dc.b $FD ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b 0 dc.b 0 dc.b 1 dc.b $62 ; b dc.b $CF ; ? dc.b 0 dc.b 1 dc.b $62 ; b dc.b $D0 ; ? dc.b 0 dc.b 1 dc.b $95 ; ? dc.b $FF dc.b 0 dc.b 1 dc.b $96 ; ? dc.b 0 dc.b 0 dc.b 1 dc.b $D8 ; ? dc.b $AF ; ? dc.b 0 dc.b 1 dc.b $D8 ; ? dc.b $B0 ; ? dc.b 0 dc.b 1 dc.b $E1 ; ? dc.b $AF ; ? dc.b 0 dc.b 1 dc.b $E1 ; ? dc.b $B0 ; ? dc.b 0 dc.b 1 dc.b $F6 ; ? dc.b $BF ; ? dc.b 0 dc.b 1 dc.b $F6 ; ? dc.b $C0 ; ? dc.b 0 dc.b 1 dc.b $FE ; ? dc.b $AF ; ? dc.b 0 dc.b 1 dc.b $FE ; ? dc.b $B0 ; ? dc.b 0 dc.b 1 dc.b $FF dc.b $DF ; ? ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_54C: ; CODE XREF: sub_850+1E2p sub_AA0+1A6p ... move.w #$FFFF,(word_FFFF8FF0).w move.l (sp),d0 loc_554: ; DATA XREF: sub_77EA6+8o ; sub_78090+20o ... move.l d0,(dword_FFFF8FF2).w stop #$2700 ; End of function sub_54C ; --------------------------------------------------------------------------- loc_55C: ; DATA XREF: Boot:off_0o move.w 6(sp),d0 andi.w #$FFF,d0 asl.w #6,d0 move.w d0,(word_FFFF8FF0).w move.l 2(sp),d0 move.l d0,(dword_FFFF8FF2).w stop #$2700 ; --------------------------------------------------------------------------- dc.b $4E ; N dc.b $70 ; p dc.b $4E ; N dc.b $F9 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b $40 ; @ ; =============== S U B R O U T I N E ======================================= sub_57E: ; CODE XREF: sub_29746+2Ap ; BetweenMainLoops2+40p ... move.l a6,-(sp) move.w #1,-(sp) move.l sp,(a0) movea.l (a1),sp tst.w (sp)+ beq.s loc_590 movea.l (sp)+,a6 rts ; --------------------------------------------------------------------------- loc_590: ; CODE XREF: sub_57E+Cj movem.l (sp)+,d0-a6 rte ; End of function sub_57E ; --------------------------------------------------------------------------- unk_596: dc.b 0 ; DATA XREF: Boot:off_0o dc.b $7C ; | dc.b 7 dc.b 0 dc.b $3F ; ? dc.b $3C ; < dc.b 0 dc.b 1 dc.b $20 dc.b $8F ; ? dc.b $2E ; . dc.b $51 ; Q dc.b $4A ; J dc.b $5F ; _ dc.b $66 ; f dc.b 0 dc.b 0 dc.b 6 dc.b $4C ; L dc.b $DF ; ? dc.b $7F ;  dc.b $FF dc.b $4E ; N dc.b $73 ; s unk_5AE: dc.b 0 ; DATA XREF: Boot:off_0o dc.b $7C ; | dc.b 7 dc.b 0 dc.b $48 ; H dc.b $E7 ; ? dc.b $FF dc.b $FE ; ? dc.b $42 ; B dc.b $67 ; g dc.b $20 dc.b $7C ; | dc.b 0 dc.b 2 dc.b $B7 ; ? dc.b $18 dc.b $4E ; N dc.b $F9 ; ? dc.b 0 dc.b 0 dc.b 6 dc.b $44 ; D unk_5C4: dc.b 0 ; DATA XREF: Boot:off_0o dc.b $7C ; | dc.b 7 dc.b 0 dc.b $48 ; H dc.b $E7 ; ? dc.b $FF dc.b $FE ; ? dc.b $42 ; B dc.b $67 ; g dc.b $20 dc.b $7C ; | dc.b 0 dc.b 2 dc.b $B6 ; ? dc.b $56 ; V dc.b $4E ; N dc.b $F9 ; ? dc.b 0 dc.b 0 dc.b 6 dc.b $44 ; D unk_5DA: dc.b 0 ; DATA XREF: Boot:off_0o dc.b $7C ; | dc.b 7 dc.b 0 dc.b $48 ; H dc.b $E7 ; ? dc.b $FF dc.b $FE ; ? dc.b $42 ; B dc.b $67 ; g dc.b $20 dc.b $7C ; | dc.b 0 dc.b 2 dc.b $B7 ; ? dc.b $76 ; v dc.b $60 ; ` dc.b $58 ; X unk_5EC: dc.b 0 ; DATA XREF: Boot:off_0o dc.b $7C ; | dc.b 7 dc.b 0 dc.b $48 ; H dc.b $E7 ; ? dc.b $FF dc.b $FE ; ? dc.b $42 ; B dc.b $67 ; g dc.b $20 dc.b $7C ; | dc.b 0 dc.b 2 dc.b $B7 ; ? dc.b $5C ; \ dc.b $60 ; ` dc.b $46 ; F unk_5FE: dc.b 0 ; DATA XREF: Boot:off_0o dc.b $7C ; | unk_600: dc.b 7 ; DATA XREF: Calibration:CCP_KV_PURGE_VEHICLE_SPEED_HYST_LOWo dc.b 0 dc.b $48 ; H dc.b $E7 ; ? dc.b $FF dc.b $FE ; ? dc.b $42 ; B dc.b $67 ; g dc.b $20 dc.b $7C ; | dc.b 0 dc.b 2 dc.b $B7 ; ? dc.b $9E ; ? dc.b $60 ; ` dc.b $34 ; 4 unk_610: dc.b 0 ; DATA XREF: Boot:off_0o dc.b $7C ; | dc.b 7 dc.b 0 dc.b $48 ; H dc.b $E7 ; ? dc.b $FF dc.b $FE ; ? dc.b $42 ; B dc.b $67 ; g dc.b $20 dc.b $7C ; | dc.b 0 dc.b 2 dc.b $B7 ; ? dc.b $B8 ; ? dc.b $60 ; ` dc.b $22 ; " unk_622: dc.b 0 ; DATA XREF: Boot:off_0o dc.b $7C ; | dc.b 7 dc.b 0 dc.b $48 ; H dc.b $E7 ; ? dc.b $FF dc.b $FE ; ? dc.b $42 ; B dc.b $67 ; g dc.b $20 dc.b $7C ; | dc.b 0 dc.b 2 dc.b $B7 ; ? dc.b $D2 ; ? dc.b $60 ; ` dc.b $10 unk_634: dc.b 0 ; DATA XREF: Boot:off_0o dc.b $7C ; | dc.b 7 dc.b 0 dc.b $48 ; H dc.b $E7 ; ? dc.b $FF dc.b $FE ; ? dc.b $42 ; B dc.b $67 ; g dc.b $20 dc.b $7C ; | off_640: dc.l loc_2B6F8 ; DATA XREF: Calibration:IAC_RPM_KE_MINIMUM_TIME_AC_SPEEDo ; Calibration:DG_VOLT_KE_IGN_VOLT_LOW_ENGINE_RUN_TIMEo ... dc.b $4A ; J dc.b $38 ; 8 dc.b $BF ; ? dc.b $F0 ; ? dc.b $67 ; g dc.b $16 dc.b $36 ; 6 dc.b $38 ; 8 dc.b $E1 ; ? dc.b $E4 ; ? dc.b $42 ; B dc.b $38 ; 8 dc.b $BF ; ? dc.b $F0 ; ? dc.b $52 ; R dc.b $38 ; 8 dc.b $BF ; ? dc.b $F1 ; ? dc.b $38 ; 8 dc.b $38 ; 8 dc.b $BF ; ? dc.b $EE ; ? dc.b $96 ; ? dc.b $44 ; D dc.b $D7 ; ? dc.b $78 ; x dc.b $BF ; ? dc.b $EC ; ? dc.b $32 ; 2 dc.b $2F ; / dc.b 0 dc.b $3E ; > dc.b $22 ; " dc.b $78 ; x dc.b $B5 ; ? dc.b $DE ; ? dc.b $4A ; J dc.b $89 ; ? dc.b $67 ; g dc.b $14 dc.b $23 ; # dc.b $4F ; O dc.b 0 dc.b 4 dc.b $2E ; . dc.b $78 ; x dc.b $B5 ; ? unk_673: dc.b $E2 ; ? ; DATA XREF: Calibration:000099D8o dc.b 2 dc.b $41 ; A dc.b 7 dc.b 0 dc.b $66 ; f dc.b 0 dc.b 0 dc.b 6 dc.b $42 ; B dc.b $B8 ; ? dc.b $B5 ; ? dc.b $DE ; ? dc.b $4E ; N dc.b $90 ; ? dc.b $22 ; " dc.b $78 ; x dc.b $B5 ; ? dc.b $DE ; ? dc.b $4A ; J dc.b $89 ; ? dc.b $67 ; g dc.b 0 dc.b 0 dc.b $A dc.b $21 ; ! dc.b $CF ; ? dc.b $B5 ; ? dc.b $E2 ; ? dc.b $2E ; . dc.b $69 ; i dc.b 0 dc.b 4 dc.b $4A ; J dc.b $5F ; _ dc.b $67 ; g dc.b 4 dc.b $2C ; , dc.b $5F ; _ dc.b $4E ; N dc.b $75 ; u dc.b $4C ; L dc.b $DF ; ? dc.b $7F ;  dc.b $FF dc.b $4E ; N dc.b $73 ; s dc.b 0 dc.b 2 dc.b $B7 ; ? dc.b $18 dc.b 0 dc.b 2 dc.b $B7 ; ? dc.b $D2 ; ? dc.b 0 dc.b 2 dc.b $B7 ; ? dc.b $5C ; \ dc.b 0 dc.b 2 dc.b $B7 ; ? dc.b $76 ; v dc.b 0 dc.b 2 dc.b $B6 ; ? dc.b $56 ; V dc.b 0 dc.b 2 dc.b $B7 ; ? dc.b $B8 ; ? dc.b 0 dc.b 2 dc.b $B6 ; ? dc.b $F8 ; ? dc.b 0 dc.b 2 dc.b $B7 ; ? dc.b $9E ; ? ; --------------------------------------------------------------------------- loc_6C2: ; DATA XREF: Boot:off_0o ori #$700,sr ori.w #2,(sp) move.l 8(sp),(dword_FFFF8FF8).w rte ; =============== S U B R O U T I N E ======================================= sub_6D2: ; CODE XREF: sub_D6E+52p OS1:0003F95Ap ... movem.l d1/a0,-(sp) move.b d0,d1 move.b (byte_FFFFBE6B).w,d0 cmpi.b #1,d0 bhi.s loc_704 beq.s loc_6EC loc_6E4: ; DATA XREF: Calibration:ENG_OIL_KE_OIL_PRESSURE_HYSTERESISo move.b #1,(byte_FFFFBE6B).w bra.s loc_70E ; --------------------------------------------------------------------------- loc_6EC: ; CODE XREF: sub_6D2+10j move.b (byte_FFFFBE6A).w,d0 movea.l #$807,a0 jsr (sub_7B6).l move.b #2,(byte_FFFFBE6B).w bra.s loc_70E ; --------------------------------------------------------------------------- loc_704: ; CODE XREF: sub_6D2+Ej move.b (byte_FFFFBE6A).w,d0 jsr (sub_7D4).l loc_70E: ; CODE XREF: sub_6D2+18j sub_6D2+30j move.b d1,(byte_FFFFBE6A).w movem.l (sp)+,d1/a0 rts ; End of function sub_6D2 ; =============== S U B R O U T I N E ======================================= sub_718: ; CODE XREF: sub_80E+2Ep move sr,-(sp) ori #$700,sr move.b (byte_E08).l,(byte_FFFFF606).w move (sp)+,sr rts ; End of function sub_718 ; =============== S U B R O U T I N E ======================================= sub_72A: ; CODE XREF: sub_850:loc_A1Ap ; sub_4A51E+A6p ... move sr,-(sp) ori #$700,sr move.l d0,-(sp) move.b (byte_80A).l,d0 jsr (sub_794).l moveq #1,d0 loc_740: ; CODE XREF: sub_72A+28j jsr (sub_1626).l jsr (sub_1626).l addq.b #1,d0 cmpi.b #5,d0 bls.s loc_740 move.l (sp)+,d0 move (sp)+,sr rts ; End of function sub_72A ; =============== S U B R O U T I N E ======================================= sub_75A: ; CODE XREF: sub_850:loc_8FCp ; sub_A52+12p ... move sr,-(sp) ori #$700,sr move.b (word_FFFFF60E).w,(word_FFFFBE74).w move (sp)+,sr rts ; End of function sub_75A ; =============== S U B R O U T I N E ======================================= sub_76A: ; CODE XREF: sub_850+DCp sub_A52+40p ... move sr,-(sp) ori #$700,sr move.w (word_FFFFF60E).w,(word_FFFFBE74).w move (sp)+,sr rts ; End of function sub_76A ; =============== S U B R O U T I N E ======================================= sub_77A: ; CODE XREF: sub_850+CCp sub_A52+32p ... move sr,-(sp) ori #$700,sr loc_780: ; DATA XREF: Calibration:CCP_KV_PURGE_VEHICLE_SPEED_HYST_HIGHo move.l d0,-(sp) move.b (byte_80B).l,d0 jsr (sub_794).l move.l (sp)+,d0 move (sp)+,sr rts ; End of function sub_77A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_794: ; CODE XREF: sub_72A+Ep sub_77A+Ep ... var_4 = -4 var_2 = -2 link a6,#-2 move.b d0,-(sp) move sr,-(sp) ori #$700,sr move.b var_4(a6),var_2(a6) clr.b var_2+1(a6) move.w var_2(a6),(word_FFFFF60C).w move (sp)+,sr unlk a6 rts ; End of function sub_794 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7B6: ; CODE XREF: sub_6D2+24p sub_D6E+6Ap ... var_2 = -2 link a6,#-2 move sr,-(sp) ori #$700,sr move.b (a0),var_2(a6) move.b d0,var_2+1(a6) move.w var_2(a6),(word_FFFFF60C).w move (sp)+,sr unlk a6 rts ; End of function sub_7B6 ; =============== S U B R O U T I N E ======================================= sub_7D4: ; CODE XREF: sub_6D2+36p move sr,-(sp) ori #$700,sr move.b d0,(word_FFFFF60C+1).w move (sp)+,sr rts ; End of function sub_7D4 ; =============== S U B R O U T I N E ======================================= sub_7E2: ; CODE XREF: sub_AA0+21Ep ; OS2:00041B80p move sr,-(sp) ori #$700,sr movem.l d0-d1,-(sp) move.w (word_E06).l,(word_FFFFF600).w moveq #1,d1 moveq #$38,d0 ; '8' jsr (sub_FC0).l loc_7FE: ; DATA XREF: Calibration:SPARK_ADVANCE_KV_IDLE_FLARE_COOLANT_MULTo movem.l (sp)+,d0-d1 move (sp)+,sr rts ; End of function sub_7E2 ; --------------------------------------------------------------------------- dc.b $C dc.b $14 byte_808: dc.b $E0 ; DATA XREF: sub_D6E+42r ; sub_41E26+2AAr ... dc.b $1C byte_80A: dc.b 3 ; DATA XREF: sub_72A+8r byte_80B: dc.b $E0 ; DATA XREF: sub_77A+8r byte_80C: dc.b $40 ; DATA XREF: sub_87962+8r byte_80D: dc.b 1 ; DATA XREF: sub_66ED2:loc_66F36r ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_80E: ; CODE XREF: sub_E52+96p OS2:000416DEp move sr,-(sp) ori #$700,sr movem.l d0/a0,-(sp) jsr (sub_E32).l tst.b d0 bne.s loc_82E jsr sub_78D6A jsr (sub_E0C).l loc_82E: ; CODE XREF: sub_80E+12j movea.l (off_1E90).l,a0 subq.l #1,a0 jsr (sub_FB8).l jsr (sub_718).l jsr (sub_850).l ; End of function sub_80E ; --------------------------------------------------------------------------- dc.b $4C ; L dc.b $DF ; ? dc.b 1 dc.b 1 dc.b $46 ; F dc.b $DF ; ? dc.b $4E ; N dc.b $75 ; u ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_850: ; CODE XREF: sub_80E+34p var_41D0 = -$41D0 var_E = -$E var_D = -$D var_C = -$C var_B = -$B var_A = -$A var_9 = -9 var_8 = -8 link a6,#-$E move sr,-(sp) ori #$700,sr movem.l d0-d2/d6-a1,-(sp) clr.b d2 loc_860: ; CODE XREF: sub_850+1FEj clr.b d1 move.l d1,d6 move.b d6,var_E(a6) jsr (sub_136A).l move.l d0,d6 jsr (sub_E32).l move.b d0,var_D(a6) loc_87A: ; CODE XREF: sub_850+1ECj jsr (sub_1626).l move.b var_D(a6),d0 bne.s loc_88C jsr (sub_1634).l loc_88C: ; CODE XREF: sub_850+34j cmpi.b #1,d2 bhi.s loc_8FC beq.s loc_8D8 tst.b d0 bne.s loc_89C moveq #3,d2 bra.s loc_8FC ; --------------------------------------------------------------------------- loc_89C: ; CODE XREF: sub_850+46j moveq #1,d2 jsr (sub_136A).l subi.l #$FCD0,d0 move.l d0,d7 move.b #$6C,var_C(a6) ; 'l' move.b #$F0,var_B(a6) move.b #$10,var_A(a6) move.b #$A2,var_9(a6) move.l d2,d0 cmp.b var_D(a6),d0 bne.s loc_8D2 loc_8CC: ; DATA XREF: Calibration:EGR_KE_EGR_LOW_AIRFLOW_THRESHOLDo move.b d0,var_8(a6) bra.s loc_8FC ; --------------------------------------------------------------------------- loc_8D2: ; CODE XREF: sub_850+7Aj clr.b var_8(a6) bra.s loc_8FC ; --------------------------------------------------------------------------- loc_8D8: ; CODE XREF: sub_850+42j jsr (sub_136A).l sub.l d7,d0 cmpi.l #$3283,d0 ble.s loc_8FC jsr (sub_136A).l move.l d0,d7 moveq #5,d0 lea var_C(a6),a0 jsr (sub_D6E).l loc_8FC: ; CODE XREF: sub_850+40j sub_850+4Aj ... jsr (sub_75A).l btst #3,(word_FFFFBE74).w sne d3 neg.b d3 cmp.b (byte_FFFFBE6E).w,d3 beq.s loc_916 move.b d3,(byte_FFFFBE6E).w loc_916: ; CODE XREF: sub_850+C0j tst.b (byte_FFFFBE6E).w beq.s loc_922 jsr (sub_77A).l loc_922: ; CODE XREF: sub_850+CAj move.b (word_FFFFBE74).w,d3 lsr.b #5,d3 beq.w loc_A22 jsr (sub_76A).l clr.b d4 move.b (word_FFFFBE74).w,d3 lsr.b #5,d3 cmpi.b #5,d3 beq.s loc_94C cmpi.b #6,d3 beq.s loc_94C cmpi.b #7,d3 bne.s loc_94E loc_94C: ; CODE XREF: sub_850+EEj sub_850+F4j addq.b #1,d4 loc_94E: ; CODE XREF: sub_850+FAj tst.b d4 beq.s loc_990 move.b (word_FFFFBE74+1).w,(byte_FFFFBE76).w btst #7,(byte_FFFFBE76).w beq.s loc_98C move.b (byte_FFFFBE76).w,d3 moveq #3,d0 and.b d0,d3 cmp.b d3,d0 bne.s loc_98C tst.b (byte_FFFFBE6D).w bne.s loc_98C movea.w #$A0,a1 ; '?' move.w a1,(word_FFFFAB1E).w move.w (GlobalClock).w,(word_FFFFAB1C).w clr.b (byte_FFFFBE71).w move.b #1,(byte_FFFFBE6C).w bra.s loc_990 ; --------------------------------------------------------------------------- loc_98C: ; CODE XREF: sub_850+10Ej sub_850+11Aj ... clr.b (byte_FFFFBE6C).w loc_990: ; CODE XREF: sub_850+100j sub_850+13Aj tst.b d4 beq.s loc_9E4 jsr (sub_136A).l move.l d0,d6 tst.b d1 beq.w loc_A22 move.b d1,(byte_FFFFBE5C).w moveq #1,d4 move.b d4,var_E(a6) cmp.b d2,d4 bne.s loc_A22 btst #2,(byte_FFFFBE5D).w beq.s loc_A22 move.b (byte_FFFFBE60).w,d3 cmpi.b #$27,d3 ; ''' beq.s loc_9E0 cmpi.b #$28,d3 ; '(' beq.s loc_9E0 cmpi.b #$34,d3 ; '4' beq.s loc_9E0 cmpi.b #$36,d3 ; '6' beq.s loc_9E0 cmpi.b #$A0,d3 beq.s loc_9E0 cmpi.b #$A1,d3 loc_9DE: ; CODE XREF: sub_850+1C8j bne.s loc_A22 loc_9E0: ; CODE XREF: sub_850+170j sub_850+176j ... moveq #2,d2 bra.s loc_A22 ; --------------------------------------------------------------------------- loc_9E4: ; CODE XREF: sub_850+142j ; DATA XREF: Calibration:000099DCo addq.b #1,d1 clr.l d4 move.b d1,d4 move.b (word_FFFFBE74+1).w,$2C+var_41D0(d4.w) cmpi.b #$A,d1 bcs.s loc_A22 btst #2,(byte_FFFFBE5D).w beq.s loc_A1A move.b (byte_FFFFBE60).w,d3 cmpi.b #$36,d3 ; '6' beq.s loc_A10 cmpi.b #$34,d3 ; '4' bne.s loc_A1A loc_A10: ; CODE XREF: sub_850+1B8j moveq #1,d3 move.b d3,var_E(a6) cmp.b d2,d3 bra.s loc_9DE ; --------------------------------------------------------------------------- loc_A1A: ; CODE XREF: sub_850+1AEj sub_850+1BEj jsr (sub_72A).l clr.b d1 loc_A22: ; CODE XREF: sub_850+D8j sub_850+14Ej ... jsr (sub_136A).l sub.l d6,d0 cmpi.l #(loc_4EECA+2),d0 ble.s loc_A38 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_A38: ; CODE XREF: sub_850+1E0j move.b var_E(a6),d3 beq.w loc_87A jsr (sub_136A).l move.l d0,d6 jsr (sub_AA0).l bra.w loc_860 ; End of function sub_850 ; =============== S U B R O U T I N E ======================================= sub_A52: ; CODE XREF: sub_AA0:loc_B2Ap ; sub_AA0+BAp ... move sr,-(sp) ori #$700,sr loc_A58: ; CODE XREF: sub_A52+3Ej jsr (sub_1626).l jsr (sub_1634).l jsr (sub_75A).l btst #3,(word_FFFFBE74).w sne d3 neg.b d3 cmp.b (byte_FFFFBE6E).w,d3 beq.s loc_A7E move.b d3,(byte_FFFFBE6E).w loc_A7E: ; CODE XREF: sub_A52+26j tst.b (byte_FFFFBE6E).w beq.s loc_A8A jsr (sub_77A).l loc_A8A: ; CODE XREF: sub_A52+30j move.b (word_FFFFBE74).w,d3 lsr.b #5,d3 beq.s loc_A58 jsr (sub_76A).l move.b (word_FFFFBE74+1).w,d0 move (sp)+,sr rts ; End of function sub_A52 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_AA0: ; CODE XREF: sub_850+1F8p var_16 = -$16 var_12 = -$12 var_11 = -$11 var_10 = -$10 var_F = -$F var_E = -$E var_D = -$D var_C = -$C var_6 = -6 var_2 = -2 link a6,#-$16 move sr,-(sp) ori #$700,sr loc_AAA: ; DATA XREF: sub_77EA6+4o ; sub_78090+1Co ... movem.l d0-d2/d6/a0-a1,-(sp) move.b (byte_FFFFBE5E).w,d3 moveq #$10,d2 cmp.b d3,d2 beq.s loc_AC0 cmpi.b #$FE,d3 bne.w loc_D64 loc_AC0: ; CODE XREF: sub_AA0+16j move.b (byte_FFFFBE60).w,d3 cmpi.b #$36,d3 ; '6' bne.w loc_C8C clr.w var_2(a6) moveq #5,d3 loc_AD2: ; CODE XREF: sub_AA0+4Cj clr.l d6 move.b d3,d6 clr.w d1 move.b -$41A4(d6.w),d1 add.w var_2(a6),d1 move.w d1,var_2(a6) addq.b #1,d3 cmpi.b #$A,d3 bls.s loc_AD2 clr.w d3 move.b (byte_FFFFBE63).w,d3 clr.w d1 move.b (byte_FFFFBE62).w,d1 asl.w #8,d1 add.w d3,d1 clr.l d3 move.b (byte_FFFFBE65).w,d3 asl.w #8,d3 andi.l #$FFFF,d3 clr.l d6 move.b (byte_FFFFBE64).w,d6 asl.l #8,d6 asl.l #8,d6 add.l d3,d6 clr.l d3 move.b (byte_FFFFBE66).w,d3 add.l d3,d6 move.l d6,var_16(a6) move.l d6,var_6(a6) bra.s loc_B56 ; --------------------------------------------------------------------------- loc_B2A: ; CODE XREF: sub_AA0+B8j jsr (sub_A52).l movea.l var_16(a6),a1 move.b d0,(a1) andi.w #$FF,d0 add.w var_2(a6),d0 move.w d0,var_2(a6) addq.l #1,a1 move.l a1,var_16(a6) subq.w #1,d1 jsr (sub_1626).l jsr (sub_1634).l loc_B56: ; CODE XREF: sub_AA0+88j tst.w d1 bne.s loc_B2A jsr (sub_A52).l move.b d0,(byte_FFFFBE67).w jsr (sub_A52).l move.b d0,(byte_FFFFBE68).w andi.w #$FF,d0 clr.w d1 move.b (byte_FFFFBE67).w,d1 asl.w #8,d1 add.w d0,d1 move.w d1,d0 move.b (byte_FFFFBE5D).w,var_12(a6) move.b (byte_FFFFBE5F).w,var_11(a6) move.b d2,var_10(a6) move.b #$76,var_F(a6) ; 'v' clr.b var_E(a6) loc_B98: ; CODE XREF: sub_AA0+188j jsr (sub_1626).l jsr (sub_1634).l jsr (sub_76A).l btst #3,(word_FFFFBE74).w sne d3 neg.b d3 cmp.b (byte_FFFFBE6E).w,d3 beq.s loc_BBE move.b d3,(byte_FFFFBE6E).w loc_BBE: ; CODE XREF: sub_AA0+118j tst.b (byte_FFFFBE6E).w beq.s loc_BCA jsr (sub_77A).l loc_BCA: ; CODE XREF: sub_AA0+122j clr.b d4 move.b (word_FFFFBE74).w,d3 lsr.b #5,d3 cmpi.b #5,d3 beq.s loc_BE4 cmpi.b #6,d3 beq.s loc_BE4 cmpi.b #7,d3 bne.s loc_BE6 loc_BE4: ; CODE XREF: sub_AA0+136j sub_AA0+13Cj addq.b #1,d4 loc_BE6: ; CODE XREF: sub_AA0+142j tst.b d4 beq.s loc_C26 move.b (word_FFFFBE74+1).w,(byte_FFFFBE76).w btst #7,(byte_FFFFBE76).w beq.s loc_C22 move.b (byte_FFFFBE76).w,d3 moveq #3,d1 and.b d1,d3 cmp.b d3,d1 bne.s loc_C22 tst.b (byte_FFFFBE6D).w bne.s loc_C22 move.w #$A0,(word_FFFFAB1E).w ; '?' move.w (GlobalClock).w,(word_FFFFAB1C).w clr.b (byte_FFFFBE71).w move.b #1,(byte_FFFFBE6C).w bra.s loc_C26 ; --------------------------------------------------------------------------- loc_C22: ; CODE XREF: sub_AA0+156j sub_AA0+162j ... clr.b (byte_FFFFBE6C).w loc_C26: ; CODE XREF: sub_AA0+148j sub_AA0+180j tst.b d4 beq.w loc_B98 btst #7,(byte_FFFFBE76).w beq.s loc_C4E move.b #$72,var_D(a6) ; 'r' loc_C3A: ; CODE XREF: sub_AA0+1BAj moveq #6,d0 lea var_12(a6),a0 jsr (sub_D6E).l jsr (sub_54C).l ; --------------------------------------------------------------------------- dc.b $60 ; ` dc.b $20 ; --------------------------------------------------------------------------- loc_C4E: ; CODE XREF: sub_AA0+192j cmp.w var_2(a6),d0 beq.s loc_C5C move.b #$77,var_D(a6) ; 'w' bra.s loc_C3A ; --------------------------------------------------------------------------- loc_C5C: ; CODE XREF: sub_AA0+1B2j moveq #$73,d1 ; 's' move.b d1,var_D(a6) moveq #6,d0 lea var_12(a6),a0 jsr (sub_D6E).l cmpi.b #$80,(byte_FFFFBE61).w bne.w loc_D64 cmp.b var_D(a6),d1 bne.w loc_D64 loc_C80: ; DATA XREF: Calibration:CCP_KE_IDLE_PURGE_WARM_DELAY_TIMEo lea var_6(a6),a2 movea.l (a2),a2 jsr (a2) bra.w loc_D64 ; --------------------------------------------------------------------------- loc_C8C: ; CODE XREF: sub_AA0+28j cmpi.b #$A0,d3 bne.s loc_CB4 move.b (byte_FFFFBE5D).w,var_12(a6) move.b (byte_FFFFBE5F).w,var_11(a6) move.b d2,var_10(a6) move.b #$E0,var_F(a6) move.b #$AA,var_E(a6) loc_CAE: ; CODE XREF: sub_AA0+24Ej moveq #5,d0 bra.w loc_D5A ; --------------------------------------------------------------------------- loc_CB4: ; CODE XREF: sub_AA0+1F0j cmpi.b #$A1,d3 loc_CB8: ; DATA XREF: Calibration:000099E0o bne.s loc_CCE clr.b (byte_FFFFBE6C).w jsr (sub_7E2).l move.b #1,(byte_FFFFBE71).w bra.w loc_D64 ; --------------------------------------------------------------------------- loc_CCE: ; CODE XREF: sub_AA0:loc_CB8j cmpi.b #$28,d3 ; '(' bne.s loc_CF0 move.b (byte_FFFFBE5D).w,var_12(a6) move.b (byte_FFFFBE5F).w,var_11(a6) move.b d2,var_10(a6) move.b #$68,var_F(a6) ; 'h' clr.b var_E(a6) bra.s loc_CAE ; --------------------------------------------------------------------------- loc_CF0: ; CODE XREF: sub_AA0+232j cmpi.b #$27,d3 ; ''' bne.s loc_D32 move.b (byte_FFFFBE5D).w,var_12(a6) move.b (byte_FFFFBE5F).w,var_11(a6) move.b d2,var_10(a6) move.b #$67,var_F(a6) ; 'g' moveq #1,d1 cmp.b (byte_FFFFBE61).w,d1 bne.s loc_D24 move.b d1,var_E(a6) clr.b var_D(a6) clr.b var_C(a6) moveq #7,d0 bra.s loc_D5A ; --------------------------------------------------------------------------- loc_D24: ; CODE XREF: sub_AA0+272j move.b #2,var_E(a6) move.b #$34,var_D(a6) ; '4' bra.s loc_D58 ; --------------------------------------------------------------------------- loc_D32: ; CODE XREF: sub_AA0+254j cmpi.b #$34,d3 ; '4' bne.s loc_D64 move.b (byte_FFFFBE5D).w,var_12(a6) move.b (byte_FFFFBE5F).w,var_11(a6) move.b d2,var_10(a6) move.b #$74,var_F(a6) ; 't' clr.b var_E(a6) move.b #$44,var_D(a6) ; 'D' loc_D58: ; CODE XREF: sub_AA0+290j moveq #6,d0 loc_D5A: ; CODE XREF: sub_AA0+210j sub_AA0+282j ; DATA XREF: ... lea var_12(a6),a0 jsr (sub_D6E).l loc_D64: ; CODE XREF: sub_AA0+1Cj sub_AA0+1D4j ... movem.l (sp)+,d0-d2/d6/a0-a1 move (sp)+,sr unlk a6 rts ; End of function sub_AA0 ; =============== S U B R O U T I N E ======================================= sub_D6E: ; CODE XREF: sub_850+A6p sub_AA0+1A0p ... move sr,-(sp) ori #$700,sr movem.l d1-d2,-(sp) move.b d0,d1 jsr (sub_75A).l btst #3,(word_FFFFBE74).w sne d3 neg.b d3 cmp.b (byte_FFFFBE6E).w,d3 beq.s loc_D94 move.b d3,(byte_FFFFBE6E).w loc_D94: ; CODE XREF: sub_D6E+20j tst.b (byte_FFFFBE6E).w loc_D98: beq.s loc_DA0 jsr (sub_77A).l loc_DA0: ; CODE XREF: sub_D6E:loc_D98j move.b (word_FFFFBE74).w,d0 moveq #3,d2 and.b d2,d0 cmp.b d0,d2 bne.s loc_DCA clr.b (byte_FFFFBE6B).w move.b (byte_808).l,d0 jsr (sub_794).l bra.s loc_DCA ; --------------------------------------------------------------------------- loc_DBE: ; CODE XREF: sub_D6E+5Ej move.b (a0),d0 jsr (sub_6D2).l addq.l #1,a0 subq.b #1,d1 loc_DCA: ; CODE XREF: sub_D6E+3Cj sub_D6E+4Ej tst.b d1 bhi.s loc_DBE move.b (byte_FFFFBE6A).w,d0 movea.l #$806,a0 jsr (sub_7B6).l clr.b (byte_FFFFBE6B).w movem.l (sp)+,d1-d2 move (sp)+,sr rts ; End of function sub_D6E ; =============== S U B R O U T I N E ======================================= sub_DEA: ; CODE XREF: sub_E52+86p ; DoManyThings1:loc_29650p move.w (word_E04).l,(word_FFFFF600).w move.b (byte_E0A).l,(byte_FFFFF606).w loc_DFA: ; DATA XREF: Boot:off_1E94o move.b (byte_E09).l,(byte_FFFFF607).w rts ; End of function sub_DEA ; --------------------------------------------------------------------------- word_E04: dc.w $81 ; DATA XREF: sub_DEAr word_E06: dc.w $881 ; DATA XREF: sub_7E2+Ar byte_E08: dc.b 0 ; DATA XREF: sub_718+6r byte_E09: dc.b $70 ; DATA XREF: sub_DEA:loc_DFAr ; sub_4A710r byte_E0A: dc.b 1 ; DATA XREF: sub_DEA+8r byte_E0B: dc.b $FF ; DATA XREF: sub_7C8A2:loc_7CAC0r ; OS3:0007CAEAr ; =============== S U B R O U T I N E ======================================= sub_E0C: ; CODE XREF: sub_80E+1Ap move sr,-(sp) ori #$700,sr movem.l a0,-(sp) movea.l (dword_FFFFB5DA).w,a0 clr.l (a0) clr.l (dword_FFFFB5DE).w clr.l $C(a0) movem.l (sp)+,a0 move (sp)+,sr rts ; End of function sub_E0C ; --------------------------------------------------------------------------- dcb.b 4,0 dc.b $7F ;  dc.b $FF ; =============== S U B R O U T I N E ======================================= sub_E32: ; CODE XREF: sub_80E+Ap sub_850+20p ... move.w #$4AFC,d3 cmp.w ($FFFFE).l,d3 beq.s loc_E42 moveq #2,d0 bra.s locret_E50 ; --------------------------------------------------------------------------- loc_E42: ; CODE XREF: sub_E32+Aj cmp.w (unk_1FFFE).l,d3 beq.s loc_E4E moveq #1,d0 bra.s locret_E50 ; --------------------------------------------------------------------------- loc_E4E: ; CODE XREF: sub_E32+16j clr.b d0 locret_E50: ; CODE XREF: sub_E32+Ej sub_E32+1Aj rts ; End of function sub_E32 ; =============== S U B R O U T I N E ======================================= sub_E52: ; CODE XREF: Boot:000004D8p movem.l d0-d2,-(sp) jsr (sub_E32).l tst.b d0 beq.w loc_EEE jsr (sub_1C26).l jsr (sub_1958).l clr.w d2 move.l #$1F9,d1 moveq #$20,d0 ; ' ' jsr (sub_16FA).l clr.w d2 move.l #$1F9,d1 moveq #$22,d0 ; '"' jsr (sub_16FA).l clr.w d2 move.l #$1F9,d1 moveq #$24,d0 ; '$' jsr (sub_16FA).l clr.w d2 move.l #$1F9,d1 moveq #$26,d0 ; '&' jsr (sub_16FA).l clr.b (byte_FFFFBE6C).w clr.b (byte_FFFFBE71).w clr.b (byte_FFFFBE70).w clr.b (byte_FFFFBE6D).w clr.b (byte_FFFFBE6E).w clr.b (byte_FFFFBE6B).w move.w #8,(word_FFFFAB1E).w move.w (GlobalClock).w,(word_FFFFAB1C).w move.b #1,(byte_FFFFBE6F).w jsr (sub_DEA).l moveq #1,d1 moveq #$3D,d0 ; '=' jsr (sub_FC0).l jsr (sub_80E).l ; --------------------------------------------------------------------------- loc_EEE: ; CODE XREF: sub_E52+Cj movem.l (sp)+,d0-d2 rts ; End of function sub_E52 ; =============== S U B R O U T I N E ======================================= sub_EF4: ; CODE XREF: sub_1958+236p ; OS1:loc_32952p ... move.l a0,-(sp) move.w (FUEL_IO_KE_MINIMUM_INJECTOR_OFF_TIME).l,(word_FFFFE0B4).w ; Minimum amount of time that an injector must remain off before turning on again. ; Milliseconds clr.w d3 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d3 ; Number of cylinders for this engine application. ; SHORTCARD movea.l d3,a0 subq.w #1,a0 move.w a0,(word_FFFFE0D2).w move.w d3,(word_FFFFE1FA).w jsr (sub_F1C).l movea.l (sp)+,a0 rts ; End of function sub_EF4 ; =============== S U B R O U T I N E ======================================= sub_F1C: ; CODE XREF: sub_EF4+1Ep DoLoopA+274p ... movem.l d0-d2/a0-a1,-(sp) loc_F20: ; DATA XREF: Calibration:000099E4o move.w (word_FFFFB4A2).w,d1 clr.w d3 cmpi.w #$480,d1 bcc.s loc_F30 move.l d3,d1 bra.s loc_F4A ; --------------------------------------------------------------------------- loc_F30: ; CODE XREF: sub_F1C+Ej cmpi.w #$1200,d1 bcc.s loc_F46 andi.l #$FFFF,d1 add.l d1,d1 subi.l #$900,d1 bra.s loc_F4A ; --------------------------------------------------------------------------- loc_F46: ; CODE XREF: sub_F1C+18j move.w #$1B00,d1 loc_F4A: ; CODE XREF: sub_F1C+12j sub_F1C+28j movea.w (word_FFFFAEF2).w,a1 move.l a1,d0 lea (FUEL_IO_KA_INJECTOR_OFFSET).l,a0 moveq #$22,d2 ; '"' jsr (sub_16D6).l move.w d0,d3 move.l a1,d4 tblu.w (FUEL_IO_KV_INJECTOR_OFFSET_ADJUSTMENT).l,d4 ; This is the injector offset used to account for injector dynamics due vacuum effects on the trapped sac volume fuel. ; Milliseconds sub.w d4,d3 bcc.s loc_F70 clr.w d3 loc_F70: ; CODE XREF: sub_F1C+50j move.w d3,(word_FFFFB26E).w move.w #$7FF0,d3 sub.w (word_FFFFB26E).w,d3 bcc.s loc_F80 clr.w d3 loc_F80: ; CODE XREF: sub_F1C+60j move.w d3,(word_FFFFB270).w move.w (word_FFFFB26E).w,(word_FFFFE0B2).w movem.l (sp)+,d0-d2/a0-a1 rts ; End of function sub_F1C ; --------------------------------------------------------------------------- off_F90: dc.l loc_32952 dc.l loc_32984 dc.l loc_3295A dc.l loc_32968 dc.l loc_32984 dc.l locret_3298A dc.l loc_32968 dc.l loc_32976 dc.l loc_32976 dc.l loc_32984 ; =============== S U B R O U T I N E ======================================= sub_FB8: ; CODE XREF: sub_80E+28p movea.l (sp)+,a2 movea.l a0,sp suba.l a6,a6 jmp (a2) ; End of function sub_FB8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_FC0: ; CODE XREF: sub_7E2+16p sub_E52+90p ... var_6 = -6 var_4 = -4 var_2 = -2 link a6,#-6 movem.l d2/d6,-(sp) move.w d0,d2 move.b d1,d6 jsr (sub_1122).l cmpi.w #$10,d2 beq.s loc_FDE cmpi.w #$12,d2 bne.s loc_FE8 loc_FDE: ; CODE XREF: sub_FC0+16j jsr sub_81E20 bra.w loc_111A ; --------------------------------------------------------------------------- loc_FE8: ; CODE XREF: sub_FC0+1Cj cmpi.w #$D8,d2 ; '?' beq.s loc_1002 loc_FEE: ; DATA XREF: Boot:off_1E88o cmpi.w #$E2,d2 ; '?' beq.s loc_1002 cmpi.w #$E0,d2 ; '?' beq.s loc_1002 cmpi.w #$DC,d2 ; '?' loc_FFE: ; DATA XREF: Boot:off_1EA0o bne.w loc_1082 loc_1002: ; CODE XREF: sub_FC0+2Cj sub_FC0+32j ... move.w (word_FFFFE10A).w,var_6(a6) moveq #$42,d0 ; 'B' move.b var_6(a6),d4 move.b (byte_FFFFBF34).w,d3 move.l d0,d5 not.b d5 and.b d4,d5 and.b d0,d3 or.b d5,d3 move.b d3,(byte_FFFFBF34).w loc_1020: ; DATA XREF: OS4:0008A6F4o move.b d3,var_4(a6) move.w var_4(a6),(word_FFFFE0D0).w move.b (byte_FFFFBF37).w,var_4(a6) move.w (word_FFFFE106).w,var_6(a6) move.b #$FF,d0 move.b var_6(a6),d4 move.b (byte_FFFFBF35).w,d3 move.l d0,d5 not.b d5 and.b d4,d5 and.b d0,d3 or.b d5,d3 move.b d3,(byte_FFFFBF35).w move.b d3,var_4+1(a6) move.w var_4(a6),(word_FFFFE0CE).w move.b (byte_FFFFBF38).w,var_2+1(a6) move.w var_2(a6),(word_FFFFE2FA).w move.w (word_FFFFE112).w,var_2(a6) move.b var_2(a6),(byte_FFFFBF39).w move.w (word_FFFFE10C).w,var_2(a6) move.b var_2(a6),(byte_FFFFBF3A).w bra.w loc_111A ; --------------------------------------------------------------------------- loc_1082: ; CODE XREF: sub_FC0:loc_FFEj cmpi.w #$41,d2 ; 'A' beq.s loc_10A0 cmpi.w #$43,d2 ; 'C' beq.s loc_10A0 cmpi.w #$45,d2 ; 'E' beq.s loc_10A0 cmpi.w #$48,d2 ; 'H' beq.s loc_10A0 cmpi.w #$4B,d2 ; 'K' bne.s loc_10C2 loc_10A0: ; CODE XREF: sub_FC0+C6j sub_FC0+CCj ... move.b (byte_1368).l,d0 move.b (byte_FFFFFA41).w,d4 move.b (byte_FFFFBF2E).w,d3 move.l d0,d5 not.b d5 and.b d4,d5 and.b d0,d3 or.b d5,d3 move.b d3,(byte_FFFFBF2E).w move.b d3,(byte_FFFFFA41).w bra.s loc_111A ; --------------------------------------------------------------------------- loc_10C2: ; CODE XREF: sub_FC0+DEj cmpi.w #$3D,d2 ; '=' bne.s loc_10DC tst.b d6 bne.s loc_10D4 bset #6,(byte_FFFFFA19).w bra.s loc_111A ; --------------------------------------------------------------------------- loc_10D4: ; CODE XREF: sub_FC0+10Aj bclr #6,(byte_FFFFFA19).w bra.s loc_111A ; --------------------------------------------------------------------------- loc_10DC: ; CODE XREF: sub_FC0+106j cmpi.w #$38,d2 ; '8' bne.s loc_10F6 tst.b d6 beq.s loc_10EE bset #4,(byte_FFFFFA19).w bra.s loc_111A ; --------------------------------------------------------------------------- loc_10EE: ; CODE XREF: sub_FC0+124j bclr #4,(byte_FFFFFA19).w bra.s loc_111A ; --------------------------------------------------------------------------- loc_10F6: ; CODE XREF: sub_FC0+120j cmpi.w #$1A,d2 bne.s loc_1114 tst.b d6 beq.s loc_1106 move.w #$1400,d2 bra.s loc_1108 ; --------------------------------------------------------------------------- loc_1106: ; CODE XREF: sub_FC0+13Ej clr.w d2 loc_1108: ; CODE XREF: sub_FC0+144j moveq #$20,d1 ; ' ' moveq #$1A,d0 jsr (sub_16FA).l bra.s loc_111A ; --------------------------------------------------------------------------- loc_1114: ; CODE XREF: sub_FC0+13Aj jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_111A: ; CODE XREF: sub_FC0+24j sub_FC0+BEj ... movem.l (sp)+,d2/d6 unlk a6 rts ; End of function sub_FC0 ; =============== S U B R O U T I N E ======================================= sub_1122: ; CODE XREF: sub_FC0+Cp sub_20B50+68p ... movem.l d2/d6,-(sp) move.w d0,d6 move.l d0,d3 lsr.w #4,d0 move.l d3,d2 lsr.b #1,d2 andi.w #$FF,d2 andi.w #7,d2 btst #0,d3 sne d3 neg.b d3 eor.b d3,d1 beq.s loc_1156 andi.w #$FF,d0 lea -$40D6(d0.w),a2 bset d2,(a2) move.w #$1400,d2 bra.s loc_1164 ; --------------------------------------------------------------------------- loc_1156: ; CODE XREF: sub_1122+20j andi.w #$FF,d0 lea -$40D6(d0.w),a2 bclr d2,(a2) clr.w d2 loc_1164: ; CODE XREF: sub_1122+32j cmpi.w #$130,d6 bcs.w loc_1210 cmpi.w #$15D,d6 bhi.w loc_1210 movea.l loc_D98.l(d6.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- unk_117E: dc.b $70 ; p ; DATA XREF: Boot:00001258o ; Boot:0000125Co dc.b $70 ; p dc.b $60 ; ` dc.b $2A ; * unk_1182: dc.b $70 ; p ; DATA XREF: Boot:00001260o ; Boot:00001264o dc.b $72 ; r dc.b $60 ; ` dc.b $26 ; & unk_1186: dc.b $70 ; p ; DATA XREF: Boot:00001268o ; Boot:0000126Co dc.b $74 ; t dc.b $60 ; ` dc.b $22 ; " unk_118A: dc.b $10 ; DATA XREF: Boot:00001298o ; Boot:0000129Co dc.b $3C ; < dc.b 0 dc.b $80 ; ? dc.b $60 ; ` dc.b $1C unk_1190: dc.b $10 ; DATA XREF: Boot:000012A0o ; Boot:000012A4o dc.b $3C ; < dc.b 0 dc.b $82 ; ? dc.b $60 ; ` dc.b $16 unk_1196: dc.b $10 ; DATA XREF: Boot:000012A8o ; Boot:000012ACo dc.b $3C ; < dc.b 0 dc.b $84 ; ? dc.b $60 ; ` dc.b $10 unk_119C: dc.b $10 ; DATA XREF: Boot:000012D8o ; Boot:000012DCo dc.b $3C ; < dc.b 0 dc.b $90 ; ? dc.b $60 ; ` dc.b $A unk_11A2: dc.b $10 ; DATA XREF: Boot:000012E0o ; Boot:000012E4o dc.b $3C ; < dc.b 0 dc.b $92 ; ? dc.b $60 ; ` dc.b 4 unk_11A8: dc.b $10 ; DATA XREF: Boot:000012E8o ; Boot:000012ECo dc.b $3C ; < dc.b 0 dc.b $94 ; ? dc.b $4E ; N dc.b $B9 ; ? dc.b 0 dc.b 7 dc.b $94 ; ? dc.b $E0 ; ? dc.b $60 ; ` dc.b $5C ; \ unk_11B4: dc.b $72 ; r ; DATA XREF: Boot:00001270o ; Boot:00001274o dc.b 2 dc.b $70 ; p dc.b $76 ; v dc.b $60 ; ` dc.b $50 ; P unk_11BA: dc.b $72 ; r ; DATA XREF: Boot:00001278o ; Boot:0000127Co dc.b 2 dc.b $70 ; p dc.b $78 ; x dc.b $60 ; ` dc.b $4A ; J unk_11C0: dc.b $72 ; r ; DATA XREF: Boot:00001280o ; Boot:00001284o dc.b 2 dc.b $70 ; p dc.b $7A ; z dc.b $60 ; ` dc.b $44 ; D unk_11C6: dc.b $72 ; r ; DATA XREF: Boot:00001288o ; Boot:0000128Co dc.b 2 dc.b $70 ; p dc.b $7C ; | dc.b $60 ; ` dc.b $3E ; > unk_11CC: dc.b $72 ; r ; DATA XREF: Boot:000012B0o ; Boot:000012B4o dc.b 2 dc.b $10 dc.b $3C ; < dc.b 0 dc.b $86 ; ? dc.b $60 ; ` dc.b $36 ; 6 unk_11D4: dc.b $72 ; r ; DATA XREF: Boot:000012B8o ; Boot:000012BCo ... dc.b 2 dc.b $10 dc.b $3C ; < dc.b 0 dc.b $88 ; ? dc.b $60 ; ` dc.b $2E ; . unk_11DC: dc.b $72 ; r ; DATA XREF: Boot:off_12C0o ; Boot:000012C4o dc.b 2 dc.b $10 dc.b $3C ; < dc.b 0 dc.b $8A ; ? dc.b $60 ; ` dc.b $26 ; & unk_11E4: dc.b $72 ; r ; DATA XREF: Boot:000012C8o ; Boot:000012CCo dc.b 2 dc.b $10 dc.b $3C ; < dc.b 0 dc.b $8C ; ? dc.b $60 ; ` dc.b $1E unk_11EC: dc.b $72 ; r ; DATA XREF: Boot:000012F0o ; Boot:000012F4o dc.b 2 dc.b $10 dc.b $3C ; < dc.b 0 dc.b $96 ; ? dc.b $60 ; ` dc.b $16 unk_11F4: dc.b $72 ; r ; DATA XREF: Boot:000012F8o ; Boot:000012FCo dc.b 2 dc.b $10 dc.b $3C ; < dc.b 0 dc.b $98 ; ? dc.b $60 ; ` dc.b $E unk_11FC: dc.b $72 ; r ; DATA XREF: Boot:00001300o ; Boot:00001304o dc.b 2 dc.b $10 dc.b $3C ; < dc.b 0 dc.b $9A ; ? dc.b $60 ; ` dc.b 6 unk_1204: dc.b $72 ; r ; DATA XREF: Boot:00001308o ; Boot:0000130Co dc.b 2 dc.b $10 dc.b $3C ; < dc.b 0 dc.b $9C ; ? dc.b $4E ; N dc.b $B9 ; ? dc.b 0 dc.b 0 dc.b $16 dc.b $FA ; ? ; --------------------------------------------------------------------------- loc_1210: ; CODE XREF: sub_1122+46j sub_1122+4Ej ; DATA XREF: ... movem.l (sp)+,d2/d6 rts ; End of function sub_1122 ; =============== S U B R O U T I N E ======================================= sub_1216: ; CODE XREF: sub_16FA+1Ap ; OS2:0004305Ap ... move.w d0,d3 move.l d3,d5 lsr.w #4,d5 move.l d3,d4 lsr.b #1,d4 andi.w #$FF,d4 andi.w #7,d4 btst #0,d3 sne d3 neg.b d3 beq.s loc_1246 clr.b d0 andi.w #$FF,d5 move.b -$40D6(d5.w),d3 btst d4,d3 bne.s locret_1256 addq.b #1,d0 bra.s locret_1256 ; --------------------------------------------------------------------------- loc_1246: ; CODE XREF: sub_1216+1Aj andi.w #$FF,d5 move.b -$40D6(d5.w),d0 btst d4,d0 sne d0 neg.b d0 locret_1256: ; CODE XREF: sub_1216+2Aj sub_1216+2Ej rts ; End of function sub_1216 ; --------------------------------------------------------------------------- dc.l unk_117E dc.l unk_117E dc.l unk_1182 dc.l unk_1182 dc.l unk_1186 dc.l unk_1186 dc.l unk_11B4 dc.l unk_11B4 dc.l unk_11BA dc.l unk_11BA dc.l unk_11C0 dc.l unk_11C0 dc.l unk_11C6 dc.l unk_11C6 dc.l loc_1210 dc.l loc_1210 dc.l unk_118A dc.l unk_118A dc.l unk_1190 dc.l unk_1190 dc.l unk_1196 dc.l unk_1196 dc.l unk_11CC dc.l unk_11CC dc.l unk_11D4 dc.l unk_11D4 off_12C0: dc.l unk_11DC ; DATA XREF: Calibration:00009214o ; Calibration:00009218o ... dc.l unk_11DC dc.l unk_11E4 dc.l unk_11E4 dc.l loc_1210 dc.l loc_1210 dc.l unk_119C dc.l unk_119C dc.l unk_11A2 dc.l unk_11A2 dc.l unk_11A8 dc.l unk_11A8 dc.l unk_11EC dc.l unk_11EC dc.l unk_11F4 dc.l unk_11F4 dc.l unk_11FC dc.l unk_11FC dc.l unk_1204 dc.l unk_1204 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 off_1328: dc.l unk_FFBF48 ; DATA XREF: OS2:000431AEr ; OS2:loc_4389Ar ... off_132C: dc.l unk_FFBF4C ; DATA XREF: DoLoopB+1Ar DoLoopB+15Ar ... off_1330: dc.l unk_FFBF50 ; DATA XREF: sub_2BA40:loc_2BC5Ar ; sub_2C3C0:loc_2C3FAr ... dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $BF ; ? dc.b $40 ; @ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 off_134C: dc.l unk_FFBF44 ; DATA XREF: DoLoopB+1A0r DoLoopG+26Er ... dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 byte_1368: dc.b $37 ; DATA XREF: sub_FC0:loc_10A0r ; sub_81BC2+80r byte_1369: dc.b 1 ; DATA XREF: sub_6D316+194r ; sub_6D316+1E4r ... ; =============== S U B R O U T I N E ======================================= sub_136A: ; CODE XREF: sub_850+18p sub_850+4Ep ... move sr,-(sp) ori #$700,sr move.w (word_FFFFE1E4).w,d3 move.w d3,(dword_FFFFBF56+2).w cmp.w (word_FFFFBF5E).w,d3 bcc.s loc_1382 addq.w #1,(dword_FFFFBF56).w loc_1382: ; CODE XREF: sub_136A+12j move.w d3,(word_FFFFBF5E).w move.l (dword_FFFFBF56).w,d0 move (sp)+,sr rts ; End of function sub_136A ; =============== S U B R O U T I N E ======================================= sub_138E: ; CODE XREF: Boot:000004A8p move.l d0,-(sp) move.w (word_1654).w,(word_FFFFFA00).w move.w (word_164E).w,(word_FFFFFA04).w move.b (byte_1656).w,(byte_FFFFFA11).w move.b (byte_1642).w,(byte_FFFFFA15).w move.b (byte_1659).w,(byte_FFFFFA17).w move.b (byte_165A).w,(byte_FFFFFA19).w move.b (byte_1643).w,(byte_FFFFFA1D).w move.b (byte_165B).w,(byte_FFFFFA1F).w move.b (byte_164C).w,(byte_FFFFFA21).w move.w (word_1660).w,(word_FFFFFA38).w move.b (byte_1662).w,(byte_FFFFFA41).w move.w (word_1664).w,(word_FFFFFA44).w move.w (word_166C).w,(word_FFFFFA48).w move.w (word_166E).w,(word_FFFFFA4A).w move.w (word_1670).w,(word_FFFFFA4C).w move.w (word_1672).w,(word_FFFFFA4E).w move.w (word_1674).w,(word_FFFFFA50).w move.w (word_1676).w,(word_FFFFFA52).w loc_13FC: ; DATA XREF: OS4:000879D8o move.w (word_1678).w,(word_FFFFFA54).w move.w (word_167A).w,(word_FFFFFA56).w move.w (word_167C).w,(word_FFFFFA58).w move.w (word_167E).w,(word_FFFFFA5A).w move.w (word_1680).w,(word_FFFFFA5C).w move.w (word_1682).w,(word_FFFFFA5E).w move.w (word_1684).w,(word_FFFFFA60).w move.w (word_1686).w,(word_FFFFFA62).w move.w (word_1688).w,(word_FFFFFA64).w move.w (word_168A).w,(word_FFFFFA66).w move.w (word_168C).w,(word_FFFFFA68).w move.w (word_168E).w,(word_FFFFFA6A).w move.w (word_1690).w,(word_FFFFFA6C).w move.w (word_1692).w,(word_FFFFFA6E).w move.w (word_169C).w,(word_FFFFFA74).w move.w (word_169E).w,(word_FFFFFA76).w loc_145C: ; DATA XREF: Calibration:000099ECo move.w (word_1694).w,(word_FFFFFA70).w move.w (word_1696).w,(word_FFFFFA72).w clr.b (byte_FFFF819D).w cmpi.w #$B99C,(ETAS_KE_ETAS_PRESENCE_PATTERN).l ; Special calibration location written to by ETAS when ETAS instrumentation is hooked up. ; CARDINAL seq d3 neg.b d3 move.b d3,(byte_FFFF819D).w jsr (sub_1EFC).l tst.b (byte_FFFF819D).w beq.s loc_149C move.w (word_1698).w,(word_FFFFFA70).w move.w (word_169A).w,(word_FFFFFA72).w move.w (word_166A).w,(word_FFFFFA46).w bra.s loc_14B0 ; --------------------------------------------------------------------------- loc_149C: ; CODE XREF: sub_138E+F8j tst.b (byte_FFFFB0C7).w beq.s loc_14AA move.w (word_1668).w,(word_FFFFFA46).w bra.s loc_14B0 ; --------------------------------------------------------------------------- loc_14AA: ; CODE XREF: sub_138E+112j move.w (word_1666).w,(word_FFFFFA46).w loc_14B0: ; CODE XREF: sub_138E+10Cj ; sub_138E+11Aj move.w (word_16B4).l,(word_FFFFFB00).w move.w (word_16BA).l,(word_FFFFFB40).w move.l (dword_16BC).l,(dword_FFFFFB44).w move.w (word_16B8).l,(word_FFFFFB40).w move.w (word_16BA).l,(word_FFFFFB80).w move.l (dword_16C0).l,(dword_FFFFFB84).w move.w (word_16B8).l,(word_FFFFFB80).w move.w (word_16BA).l,(word_FFFFFA80).w move.l (dword_16C4).l,(dword_FFFFFA84).w move.w (word_16B8).l,(word_FFFFFA80).w move.w (word_16BA).l,(word_FFFFFAC0).w move.l (dword_16C8).l,(dword_FFFFFAC4).w move.w (word_16B8).l,(word_FFFFFAC0).w move.w (word_16A0).w,(word_FFFFFC00).w move.b (byte_16A2).w,(byte_FFFFFC04).w move.b (byte_16A3).w,(byte_FFFFFC05).w move.w (word_16A4).w,(word_FFFFFC08).w move.w (word_16A6).w,(word_FFFFFC0A).w move.b (byte_1651).w,(byte_FFFFFC15).w move.b (byte_16A9).w,(byte_FFFFFC16).w move.b (byte_16A8).w,(byte_FFFFFC17).w move.w (word_16AA).w,(word_FFFFFC18).w move.w (word_16AC).w,(word_FFFFFC1A).w move.w (word_16AE).w,(word_FFFFFC1C).w move.b (byte_16B0).w,(byte_FFFFFC1E).w cmpi.b #6,(ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l ; Number of cylinders for this engine application. ; SHORTCARD bne.s loc_1570 move.w #$1555,d3 bra.s loc_1574 ; --------------------------------------------------------------------------- loc_1570: ; CODE XREF: sub_138E+1DAj move.w #$1000,d3 loc_1574: ; CODE XREF: sub_138E+1E0j move.l d3,d0 ext.l d0 move.w (ENG_CONSTANTS_KE_LOW_RESOLUTION_REFERENCE_ANGL).l,d3 ; Identifies the number of degrees from a low resolution pulse to Top Dead Center of the cylinder. ; Degrees ext.l d3 asl.l #8,d3 asl.l #8,d3 divs.l d0,d3 bvs.s loc_1596 tst.l d3 blt.s loc_159C cmpi.l #$FFFF,d3 bls.s loc_159E loc_1596: ; CODE XREF: sub_138E+1FAj move.w #$FFFF,d3 bra.s loc_159E ; --------------------------------------------------------------------------- loc_159C: ; CODE XREF: sub_138E+1FEj clr.w d3 loc_159E: ; CODE XREF: sub_138E+206j ; sub_138E+20Cj move.w d3,(word_FFFFB36E).w clr.w d3 move.b (VEH_SYS_KE_PLATFORM).l,d3 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type mulu.w #$C,d3 move.b VEH_SYS_KA_OPTION_MATRIX(d3.l),(byte_FFFFB370).w ; Allows selection of options for a given platform. ; Platform_Option_Table_Type move.b byte_1F6DD(d3.l),(byte_FFFFB371).w move.b byte_1F6DE(d3.l),(byte_FFFFB372).w move.b byte_1F6DF(d3.l),(byte_FFFFB373).w move.b byte_1F6E0(d3.l),(byte_FFFFB374).w move.b byte_1F6E1(d3.l),(byte_FFFFB375).w move.b byte_1F6E2(d3.l),(byte_FFFFB376).w move.b byte_1F6E3(d3.l),(byte_FFFFB377).w move.b byte_1F6E4(d3.l),(byte_FFFFB378).w move.b byte_1F6E5(d3.l),(byte_FFFFB379).w move.b byte_1F6E6(d3.l),(byte_FFFFB37A).w jsr (sub_1C26).l move.l (sp)+,d0 rts ; End of function sub_138E ; =============== S U B R O U T I N E ======================================= sub_1626: ; CODE XREF: sub_72A:loc_740p ; sub_72A+1Cp ... move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w rts ; End of function sub_1626 ; =============== S U B R O U T I N E ======================================= sub_1634: ; CODE XREF: sub_850+36p sub_A52+Cp ... bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w rts ; End of function sub_1634 ; --------------------------------------------------------------------------- byte_1642: dc.b $FC ; DATA XREF: sub_138E+14r ; sub_78BBE+2Ar ... byte_1643: dc.b $F6 ; DATA XREF: sub_138E+26r ; sub_78BBE+30r ... byte_1644: dc.b 0 ; DATA XREF: sub_78B48+Ar ; sub_78BBE+10Cr ... byte_1645: dc.b 0 ; DATA XREF: sub_78B48+16r ; sub_78BBE+112r ... byte_1646: dc.b 0 ; DATA XREF: sub_78B48+22r ; sub_78BBE+118r ... dc.b 0 word_1648: dc.w $342 ; DATA XREF: sub_216EE+D6r ; sub_78D3E+16r word_164A: dc.w 0 ; DATA XREF: sub_78D3Er byte_164C: dc.b $84 ; DATA XREF: sub_138E+32r ; sub_216EE+10r dc.b 0 word_164E: dc.w $400C ; DATA XREF: sub_138E+8r sub_216EE+52r ... byte_1650: dc.b 3 ; DATA XREF: sub_1958:loc_1ACCr byte_1651: dc.b $F8 ; DATA XREF: sub_138E+1A8r unk_1652: dc.b 0 dc.b $42 ; B word_1654: dc.w $242 ; DATA XREF: sub_138E+2r byte_1656: dc.b $30 ; DATA XREF: sub_138E+Er dc.b 0 dc.b $E3 ; ? byte_1659: dc.b $F3 ; DATA XREF: sub_138E+1Ar byte_165A: dc.b $E0 ; DATA XREF: sub_138E+20r byte_165B: dc.b 8 ; DATA XREF: sub_138E+2Cr byte_165C: dc.b 0 ; DATA XREF: sub_78D62r dc.b 4 word_165E: dc.w $42 ; DATA XREF: sub_78D6A+Ar word_1660: dc.w 0 ; DATA XREF: sub_138E+38r byte_1662: dc.b $27 ; DATA XREF: sub_138E+3Er dc.b 0 word_1664: dc.w $AF ; DATA XREF: sub_138E+44r ; sub_78BBE+36r word_1666: dc.w $81 ; DATA XREF: sub_138E:loc_14AAr word_1668: dc.w $C1 ; DATA XREF: sub_138E+114r word_166A: dc.w $C1 ; DATA XREF: sub_138E+106r word_166C: dc.w 7 ; DATA XREF: sub_138E+4Ar ; sub_78BBE+3Cr word_166E: dc.w $6820 ; DATA XREF: sub_138E+50r word_1670: dc.w 7 ; DATA XREF: sub_138E+56r ; sub_78BBE+42r word_1672: dc.w $1060 ; DATA XREF: sub_138E+5Cr ; sub_78BBE+48r word_1674: dc.w $FFE0 ; DATA XREF: sub_138E+62r ; sub_78BBE+4Er word_1676: dc.w $3BE0 ; DATA XREF: sub_138E+68r ; sub_78BBE+54r word_1678: dc.w $FFD0 ; DATA XREF: sub_138E:loc_13FCr ; sub_78BBE+5Ar word_167A: dc.w $D820 ; DATA XREF: sub_138E+74r ; sub_78BBE+60r word_167C: dc.w $FFE8 ; DATA XREF: sub_138E+7Ar ; sub_78BBE+66r word_167E: dc.w $D820 ; DATA XREF: sub_138E+80r ; sub_78BBE+6Cr word_1680: dc.w $FFB3 ; DATA XREF: sub_138E+86r ; sub_78BBE+72r word_1682: dc.w $7BC1 ; DATA XREF: sub_138E+8Cr ; sub_78BBE+78r word_1684: dc.w $8000 ; DATA XREF: sub_138E+92r ; sub_78BBE+7Er word_1686: dc.w $820 ; DATA XREF: sub_138E+98r ; sub_78BBE+84r word_1688: dc.w 0 ; DATA XREF: sub_138E+9Er ; sub_78BBE+8Ar word_168A: dc.w 0 ; DATA XREF: sub_138E+A4r ; sub_78BBE+90r word_168C: dc.w $8000 ; DATA XREF: sub_138E+AAr ; sub_78BBE+96r word_168E: dc.w $820 ; DATA XREF: sub_138E+B0r ; sub_78BBE+9Cr word_1690: dc.w $8000 ; DATA XREF: sub_138E+B6r ; sub_78BBE+A2r word_1692: dc.w $820 ; DATA XREF: sub_138E+BCr ; sub_78BBE+A8r word_1694: dc.w $4004 ; DATA XREF: sub_138E:loc_145Cr word_1696: dc.w $7870 ; DATA XREF: sub_138E+D4r word_1698: dc.w $4003 ; DATA XREF: sub_138E+FAr word_169A: dc.w $7830 ; DATA XREF: sub_138E+100r word_169C: dc.w $8000 ; DATA XREF: sub_138E+C2r ; sub_78BBE+AEr word_169E: dc.w $820 ; DATA XREF: sub_138E+C8r ; sub_78BBE+B4r word_16A0: dc.w $82 ; DATA XREF: sub_138E+18Ar ; sub_78BBE+E2r byte_16A2: dc.b 0 ; DATA XREF: sub_138E+190r ; sub_78BBE+E8r byte_16A3: dc.b $40 ; DATA XREF: sub_138E+196r ; sub_78BBE+EEr word_16A4: dc.w $5C ; DATA XREF: sub_138E+19Cr ; sub_78BBE+F4r word_16A6: dc.w 0 ; DATA XREF: sub_138E+1A2r ; sub_78BBE+FAr byte_16A8: dc.b $FE ; DATA XREF: sub_138E+1B4r byte_16A9: dc.b $7F ; DATA XREF: sub_138E+1AEr word_16AA: dc.w $8005 ; DATA XREF: sub_138E+1BAr word_16AC: dc.w $602 ; DATA XREF: sub_138E+1C0r word_16AE: dc.w 0 ; DATA XREF: sub_138E+1C6r byte_16B0: dc.b 0 ; DATA XREF: sub_138E+1CCr byte_16B1: dc.b 0 ; DATA XREF: sub_78B48+4r byte_16B2: dc.b 0 ; DATA XREF: sub_78B48+10r byte_16B3: dc.b 0 ; DATA XREF: sub_78B48+1Cr word_16B4: dc.w $100 ; DATA XREF: sub_138E:loc_14B0r ; sub_78BBE+BAr dc.b $FF dc.b $C0 ; ? word_16B8: dc.w $A00 ; DATA XREF: sub_138E+13Ar ; sub_138E+152r ... word_16BA: dc.w $8200 ; DATA XREF: sub_138E+12Ar ; sub_138E+142r ... dword_16BC: dc.l $FFFF8000 ; DATA XREF: sub_138E+132r dword_16C0: dc.l $FFFF9000 ; DATA XREF: sub_138E+14Ar dword_16C4: dc.l $FFFFA000 ; DATA XREF: sub_138E+162r dword_16C8: dc.l $FFFFB000 ; DATA XREF: sub_138E+17Ar byte_16CC: dc.b $80 ; DATA XREF: sub_78B48+28r dc.b $FF word_16CE: dc.w $6820 ; DATA XREF: sub_7777E+4r sub_777B4+4r dc.b $78 ; x dc.b $20 word_16D2: dc.w $1060 ; DATA XREF: sub_777B4+Cr word_16D4: dc.w $7060 ; DATA XREF: sub_7777E+Cr ; =============== S U B R O U T I N E ======================================= sub_16D6: ; CODE XREF: sub_F1C+3Cp OS1:000314F2p ... move.w d1,d3 lsr.w #8,d3 mulu.w d2,d3 adda.l d3,a0 move.w d0,d3 tblun.w (a0),d0 tblun.w (a0,d2.w),d3 tblu.l d0:d3,d1 addi.l #$80,d1 ; '?' lsr.l #8,d1 move.l d1,d0 rts ; End of function sub_16D6 ; =============== S U B R O U T I N E ======================================= sub_16FA: ; CODE XREF: sub_E52+26p sub_E52+36p ... movem.l d6-d7,-(sp) move.b d0,d6 cmpi.b #$20,d6 ; ' ' bcs.w loc_1792 loc_1708: ; DATA XREF: Calibration:000099F0o cmpi.b #$27,d6 ; ''' bhi.w loc_1792 move.w #$152,d0 jsr (sub_1216).l tst.b d0 beq.s loc_1788 tst.b (byte_FFFF9EF6).w bne.s loc_1788 cmpi.b #$26,d6 ; '&' beq.s loc_174E cmpi.b #$24,d6 ; '$' beq.s loc_1748 cmpi.b #$22,d6 ; '"' beq.s loc_1742 cmpi.b #$20,d6 ; ' ' bne.s loc_1752 move.w (word_FFFF9EEA).w,d7 bra.s loc_1752 ; --------------------------------------------------------------------------- loc_1742: ; CODE XREF: sub_16FA+3Aj move.w (word_FFFF9EEE).w,d7 bra.s loc_1752 ; --------------------------------------------------------------------------- loc_1748: ; CODE XREF: sub_16FA+34j move.w (word_FFFF9EEC).w,d7 bra.s loc_1752 ; --------------------------------------------------------------------------- loc_174E: ; CODE XREF: sub_16FA+2Ej move.w (word_FFFF9EF0).w,d7 loc_1752: ; CODE XREF: sub_16FA+40j sub_16FA+46j ... move.l d7,d4 mulu.w d7,d4 move.w #$100,d7 divu.w d7,d4 bvc.s loc_1762 move.w #$FFFF,d4 loc_1762: ; CODE XREF: sub_16FA+62j mulu.w #$1C3,d4 divu.w d7,d4 bvc.s loc_176E move.w #$FFFF,d4 loc_176E: ; CODE XREF: sub_16FA+6Ej move.l #$CCD000,d3 divu.w d4,d3 bvs.s loc_177E cmpi.w #$1000,d3 bls.s loc_1782 loc_177E: ; CODE XREF: sub_16FA+7Cj move.w #$1000,d3 loc_1782: ; CODE XREF: sub_16FA+82j mulu.w d3,d2 lsr.l #8,d2 lsr.l #4,d2 loc_1788: ; CODE XREF: sub_16FA+22j sub_16FA+28j move.l d6,d0 jsr (sub_17FE).l bra.s loc_17F8 ; --------------------------------------------------------------------------- loc_1792: ; CODE XREF: sub_16FA+Aj sub_16FA+12j cmpi.b #$14,d6 bcs.s loc_179E cmpi.b #$17,d6 bls.s loc_17AA loc_179E: ; CODE XREF: sub_16FA+9Cj cmpi.b #$1A,d6 bcs.s loc_17B2 cmpi.b #$1B,d6 bhi.s loc_17B2 loc_17AA: ; CODE XREF: sub_16FA+A2j jsr sub_82534 bra.s loc_17F8 ; --------------------------------------------------------------------------- loc_17B2: ; CODE XREF: sub_16FA+A8j sub_16FA+AEj cmpi.b #$30,d6 ; '0' bcs.s loc_17C6 cmpi.b #$37,d6 ; '7' bhi.s loc_17C6 jsr sub_82442 bra.s loc_17F8 ; --------------------------------------------------------------------------- loc_17C6: ; CODE XREF: sub_16FA+BCj sub_16FA+C2j cmpi.b #$76,d6 ; 'v' bcs.s loc_17D2 cmpi.b #$7D,d6 ; '}' bls.s loc_17EA loc_17D2: ; CODE XREF: sub_16FA+D0j cmpi.b #$86,d6 bcs.s loc_17DE cmpi.b #$8D,d6 bls.s loc_17EA loc_17DE: ; CODE XREF: sub_16FA+DCj cmpi.b #$96,d6 bcs.s loc_17F2 cmpi.b #$9D,d6 bhi.s loc_17F2 loc_17EA: ; CODE XREF: sub_16FA+D6j sub_16FA+E2j jsr sub_8260C bra.s loc_17F8 ; --------------------------------------------------------------------------- loc_17F2: ; CODE XREF: sub_16FA+E8j sub_16FA+EEj jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_17F8: ; CODE XREF: sub_16FA+96j sub_16FA+B6j ... movem.l (sp)+,d6-d7 rts ; End of function sub_16FA ; =============== S U B R O U T I N E ======================================= sub_17FE: ; CODE XREF: sub_16FA+90p move.l d1,d3 divu.w #$B,d3 bvs.s loc_1810 subq.w #1,d3 bcs.s loc_1816 cmpi.w #$FF,d3 bls.s loc_1818 loc_1810: ; CODE XREF: sub_17FE+6j move.b #$FF,d3 bra.s loc_1818 ; --------------------------------------------------------------------------- loc_1816: ; CODE XREF: sub_17FE+Aj clr.b d3 loc_1818: ; CODE XREF: sub_17FE+10j sub_17FE+16j clr.l d4 move.w d2,d4 divu.w #$14,d4 cmpi.w #$FF,d4 bls.s loc_182A move.b #$FF,d4 loc_182A: ; CODE XREF: sub_17FE+26j clr.l d5 move.b d0,d5 btst #0,d5 beq.s loc_1836 not.b d4 loc_1836: ; CODE XREF: sub_17FE+34j cmpi.b #$20,d0 ; ' ' bcs.s loc_1854 cmpi.b #$21,d0 ; '!' bhi.s loc_1854 move.l d1,(dword_FFFFBF62).w move.w d2,(word_FFFFBF66).w move.b d3,(byte_FFFFD008).w move.b d4,(byte_FFFFD009).w bra.s locret_18B4 ; --------------------------------------------------------------------------- loc_1854: ; CODE XREF: sub_17FE+3Cj sub_17FE+42j cmpi.b #$22,d0 ; '"' bcs.s loc_1872 cmpi.b #$23,d0 ; '#' bhi.s loc_1872 move.l d1,(dword_FFFFBF68).w move.w d2,(word_FFFFBF6C).w move.b d3,(byte_FFFFD00A).w move.b d4,(byte_FFFFD00B).w bra.s locret_18B4 ; --------------------------------------------------------------------------- loc_1872: ; CODE XREF: sub_17FE+5Aj sub_17FE+60j cmpi.b #$24,d0 ; '$' bcs.s loc_1890 cmpi.b #$25,d0 ; '%' bhi.s loc_1890 move.l d1,(dword_FFFFBF6E).w move.w d2,(word_FFFFBF72).w move.b d3,(byte_FFFFD00C).w move.b d4,(byte_FFFFD00D).w bra.s locret_18B4 ; --------------------------------------------------------------------------- loc_1890: ; CODE XREF: sub_17FE+78j sub_17FE+7Ej cmpi.b #$26,d0 ; '&' bcs.s loc_18AE cmpi.b #$27,d0 ; ''' bhi.s loc_18AE move.l d1,(dword_FFFFBF74).w move.w d2,(word_FFFFBF78).w move.b d3,(byte_FFFFD00E).w move.b d4,(byte_FFFFD00F).w bra.s locret_18B4 ; --------------------------------------------------------------------------- loc_18AE: ; CODE XREF: sub_17FE+96j sub_17FE+9Cj jsr (sub_54C).l ; --------------------------------------------------------------------------- locret_18B4: ; CODE XREF: sub_17FE+54j sub_17FE+72j ... rts ; End of function sub_17FE ; --------------------------------------------------------------------------- off_18B6: dc.l loc_2BA18 ; DATA XREF: Boot:loc_4F2r word_18BA: dc.w $100 ; DATA XREF: Boot:000004E4r dc.b 0 byte_18BD: dc.b $40 ; DATA XREF: sub_1958+3Cr sub_1958+50r word_18BE: dc.w $54 ; DATA XREF: sub_1958+34r sub_1958+44r ... off_18C0: dc.l off_0+1 ; DATA XREF: sub_1958:loc_1A4Co ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.l sub_20000+3 dc.l unk_40005 dc.l loc_60006+1 dc.l unk_80009 dc.l unk_A000B dc.l unk_C000D dc.l unk_E0000 unk_18E0: dc.b 0 dc.b $3F ; ? unk_18E2: dc.b 5 dc.b 0 dc.b 0 dc.b $5E ; ^ dc.b 8 dc.b 0 dc.b 0 dc.b $69 ; i dc.b 0 dc.b 7 dc.b 0 dc.b $6A ; j dc.b $7F ;  dc.b $FF dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $FF dc.b 0 dc.b $F4 ; ? dc.b $10 dc.b $FF dc.b 0 dc.b $F5 ; ? dc.b $10 dc.b 0 dc.b 0 dc.b $F6 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $F8 ; ? dc.b 0 dc.b $FF dc.b 0 dc.b $FD ; ? dc.b 0 dc.b 8 unk_1908: dc.b 0 ; DATA XREF: sub_1958+D0o dc.b $1C dc.b 1 dc.b $1C dc.b 2 dc.b $1C dc.b 3 dc.b $1C dc.b 4 dc.b $1C dc.b 5 dc.b $1C dc.b 6 dc.b $1C dc.b 7 dc.b $1C dc.b 8 dc.b $D6 ; ? dc.b 9 dc.b $D6 ; ? dc.b $A dc.b $D6 ; ? dc.b $B dc.b $86 ; ? dc.b $C dc.b $9A ; ? dc.b $D dc.b $9A ; ? dc.b 0 dc.b $AC ; ? dc.b 0 dc.b $8B ; ? dc.b 0 dc.b $A7 ; ? dc.b 1 dc.b $8A ; ? dc.b 2 dc.b $6F ; o dc.b 3 dc.b $6F ; o dc.b 4 dc.b $6F ; o dc.b 5 dc.b $6F ; o dc.b 6 dc.b $6F ; o dc.b 7 dc.b $6F ; o dc.b 8 dc.b $6F ; o dc.b 9 dc.b $ED ; ? dc.b $A dc.b $6F ; o dc.b 0 dc.b $93 ; ? dc.b 0 dc.b $DA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $F dc.b $43 ; C dc.b $F dc.b $A1 ; ? dc.b 0 dc.b $D4 ; ? dc.b $F dc.b $A3 ; ? dc.b 0 dc.b $88 ; ? dc.b $F dc.b $8C ; ? dc.b 0 dc.b $97 ; ? dc.b 0 dc.b 0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1958: ; CODE XREF: sub_E52+16p sub_29320+F4p var_8 = -8 var_4 = -4 var_1 = -1 link a6,#-8 move sr,-(sp) ori #$700,sr movem.l d0-d2/d6/a0,-(sp) movea.l (off_1EB0).l,a0 move.w (word_FFFFE100).w,d3 bset #$F,d3 move.w d3,(word_FFFFE100).w moveq #3,d0 jsr (sub_1BB4).l clr.b d1 move.w #$E0,d0 ; '?' jsr (sub_FC0).l move.w (word_18BE).l,(word_FFFFE2FC).w move.b (byte_18BD).l,d0 lsr.b #5,d0 move.b (word_18BE+1).l,d3 lsr.b #5,d3 cmp.b d0,d3 bne.s loc_19C2 move.b (byte_18BD).l,d0 lsr.b #3,d0 moveq #3,d2 and.b d2,d0 move.b (word_18BE+1).l,d3 lsr.b #3,d3 and.b d2,d3 cmp.b d0,d3 loc_19C0: ; DATA XREF: Calibration:000099F4o beq.s loc_19E0 loc_19C2: ; CODE XREF: sub_1958+4Ej moveq #$5E,d0 ; '^' jsr (sub_1BB4).l move.w (word_1BB2).l,var_8(a6) bset #6,var_8(a6) move.w var_8(a6),(word_FFFFE2FE).w bra.s loc_19F4 ; --------------------------------------------------------------------------- loc_19E0: ; CODE XREF: sub_1958:loc_19C0j move.w (word_1BB2).l,var_8(a6) bclr #6,var_8(a6) move.w var_8(a6),(word_FFFFE2FE).w loc_19F4: ; CODE XREF: sub_1958+86j clr.w d3 loc_19F6: ; CODE XREF: sub_1958+ACj clr.l d2 move.w d3,d2 clr.w (a0,d2.l*2) addq.w #1,d3 cmpi.w #$FF,d3 bls.s loc_19F6 clr.w d3 loc_1A08: ; CODE XREF: sub_1958+CEj clr.l d0 move.b d3,d0 clr.l d5 loc_1A0E: ; DATA XREF: OS4:000879CCo move.w unk_18E0.l(d0.w*4),d5 move.w unk_18E2.l(d0.w*4),(a0,d5.l*2) addq.w #1,d3 cmpi.w #9,d3 bls.s loc_1A08 lea (unk_1908).l,a3 lea (unk_FFFFE200).w,a2 moveq #$27,d3 ; ''' loc_1A34: ; CODE XREF: sub_1958+DEj move.w (a3)+,(a2)+ dbf d3,loc_1A34 tst.b (byte_FFFFB37A).w beq.s loc_1A4C move.w #$E86,(word_FFFFE21C).w move.w #$8A,(word_FFFFE222).w ; '?' loc_1A4C: ; CODE XREF: sub_1958+E6j lea (off_18C0).l,a3 lea (unk_FFFFE280).w,a2 moveq #$F,d3 loc_1A58: ; CODE XREF: sub_1958+102j move.w (a3)+,(a2)+ dbf d3,loc_1A58 jsr (sub_1B9E).l move.w (word_FFFFE09C).w,var_4(a6) move.w var_4(a6),d3 move.w #$100,d2 or.w d2,d3 move.w d3,var_4(a6) move.w d3,(word_FFFFE09C).w loc_1A7C: ; DATA XREF: Calibration:SPARK_KNOCK_KE_KNOCK_DETECTOR_MAD_MINo jsr (sub_E32).l tst.b d0 bne.s loc_1A96 move.w (VEH_SYS_KE_NUMBER_MED_RES_TACH_HIGH).l,(word_FFFFE05E).w ; Number of medium res periods to hold the tachometer output signal high. ; Unitless move.w (VEH_SYS_KE_NUMBER_MED_RES_TACH_LOW).l,(word_FFFFE05C).w ; Number of medium res periods to hold the tachometer output signal low. ; Unitless loc_1A96: ; CODE XREF: sub_1958+12Cj move.b (byte_FFFFB37A).w,d3 beq.s loc_1AB4 clr.b var_4(a6) clr.b var_4+1(a6) move.w (SPARK_IO_KE_MIN_BURN_TIME).l,(word_FFFFE0C6).w ; EST must remain low for at least this amount of time to complete a burn. ; Milliseconds move.w var_4(a6),(word_FFFFE0BC).w bra.s loc_1ACC ; --------------------------------------------------------------------------- loc_1AB4: ; CODE XREF: sub_1958+142j moveq #6,d6 move.b d6,var_4(a6) clr.b var_4+1(a6) move.w (SPARK_IO_KE_MIN_BURN_TIME).l,(word_FFFFE0C6).w ; EST must remain low for at least this amount of time to complete a burn. ; Milliseconds move.w var_4(a6),(word_FFFFE0BC).w loc_1ACC: ; CODE XREF: sub_1958+15Aj move.b (byte_1650).w,var_4(a6) loc_1AD2: ; DATA XREF: Calibration:000099F8o move.b var_4(a6),var_1(a6) move.w -2(a6),(word_FFFFE2F8).w move.w #$FC9,(word_FFFFE1B0).w clr.w (word_FFFFE030).w move.w d2,(word_FFFFE2D0).w move.w #4,(word_FFFFE1B2).w move.w #2,(word_FFFFE032).w move.w #$200,(word_FFFFE2D0).w move.w #$3F2,(word_FFFFE1B4).w clr.w (word_FFFFE034).w move.w #$400,(word_FFFFE2D0).w tst.b d3 beq.s loc_1B2C cmpi.b #6,(ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l ; Number of cylinders for this engine application. ; SHORTCARD bne.s loc_1B24 move.w #$DF3F,(word_FFFFE2D0).w bra.s loc_1B32 ; --------------------------------------------------------------------------- loc_1B24: ; CODE XREF: sub_1958+1C2j move.w #$DFFF,(word_FFFFE2D0).w bra.s loc_1B32 ; --------------------------------------------------------------------------- loc_1B2C: ; CODE XREF: sub_1958+1B8j move.w #$BFFF,(word_FFFFE2D0).w loc_1B32: ; CODE XREF: sub_1958+1CAj ; sub_1958+1D2j move.w #$1BFF,(word_FFFFE2D2).w tst.b d3 beq.s loc_1B48 clr.b d1 move.w #$DC,d0 ; '?' jsr (sub_FC0).l loc_1B48: ; CODE XREF: sub_1958+1E2j move.w #$11,(word_FFFFE2D4).w move.w #$7FFF,(word_FFFFE2F4).w move.w (word_FFFFE2FE).w,var_8(a6) bset #7,var_8(a6) move.w var_8(a6),(word_FFFFE2FE).w movea.w (word_FFFFE1E4).w,a2 loc_1B6A: ; CODE XREF: sub_1958+21Cj move.w (word_FFFFE1E4).w,d3 sub.w a2,d3 cmpi.w #1,d3 bls.s loc_1B6A cmpi.w #$A3,(word_FFFFE0E0).w ; '?' beq.s loc_1B84 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_1B84: ; CODE XREF: sub_1958+224j jsr (sub_E32).l tst.b d0 bne.s loc_1B94 jsr (sub_EF4).l loc_1B94: ; CODE XREF: sub_1958+234j movem.l (sp)+,d0-d2/d6/a0 move (sp)+,sr unlk a6 rts ; End of function sub_1958 ; =============== S U B R O U T I N E ======================================= sub_1B9E: ; CODE XREF: sub_1958+106p move sr,-(sp) ori #$700,sr move.w #$FF,(word_FFFFE1CA).w move (sp)+,sr rts ; End of function sub_1B9E ; --------------------------------------------------------------------------- dc.l off_0+3 ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. word_1BB2: dc.w $101C ; DATA XREF: sub_1958+72r ; sub_1958:loc_19E0r ; =============== S U B R O U T I N E ======================================= sub_1BB4: ; CODE XREF: sub_1958+22p sub_1958+6Cp movem.l d1-d2,-(sp) move.w d0,d2 jsr (sub_1BD4).l move.w d0,d1 loc_1BC2: ; CODE XREF: sub_1BB4+18j jsr (sub_1BD4).l sub.w d1,d0 cmp.w d2,d0 bcs.s loc_1BC2 movem.l (sp)+,d1-d2 rts ; End of function sub_1BB4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1BD4: ; CODE XREF: sub_1BB4+6p ; sub_1BB4:loc_1BC2p var_10 = -$10 var_C = -$C var_8 = -8 var_4 = -4 link a6,#-$10 clr.l var_10(a6) move.l var_10(a6),var_C(a6) move.l var_C(a6),var_8(a6) loc_1BE8: ; DATA XREF: Calibration:000099FCo move.l (dword_FFFFFE14).w,var_4(a6) andi.b #$3F,var_8+3(a6) ; '?' ori.b #$40,var_8+3(a6) ; '@' move.l var_4(a6),(dword_FFFFFE14).w movea.l var_8(a6),a2 move.l a2,var_10(a6) move.l a2,var_C(a6) loc_1C0C: ; CODE XREF: sub_1BD4+3Cj tst.l (dword_FFFFFE18).w bne.s loc_1C0C move.l var_C(a6),(dword_FFFFFE18).w loc_1C18: ; CODE XREF: sub_1BD4+48j tst.l (dword_FFFFFE18).w bne.s loc_1C18 move.w (word_FFFFFF30).w,d0 unlk a6 rts ; End of function sub_1BD4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1C26: ; CODE XREF: sub_E52+10p sub_138E+28Ep var_4 = -4 link a6,#-4 movem.l d0-d1/a0,-(sp) clr.b d1 move.l #$100,d0 movea.l #unk_FFFF00,a0 jsr (sub_1EC8).l move.w (word_1DEA).l,(word_FFFFFE00).w move.w (word_1DEC).l,(word_FFFFFE08).w move.l (dword_1E1E).l,(dword_FFFFFE1C).w move.b (byte_FFFFB37A).w,d3 beq.s loc_1C72 move.l (dword_1E02).l,(dword_FFFFFE10).w move.l (dword_1DFE).l,(dword_FFFFFE0C).w bra.s loc_1C82 ; --------------------------------------------------------------------------- loc_1C72: ; CODE XREF: sub_1C26+38j move.l (dword_1DFA).l,(dword_FFFFFE10).w move.l (dword_1DF6).l,(dword_FFFFFE0C).w loc_1C82: ; CODE XREF: sub_1C26+4Aj tst.b d3 beq.s loc_1C90 move.w (word_1E2A).l,(word_FFFFFF00).w bra.s loc_1CAA ; --------------------------------------------------------------------------- loc_1C90: ; CODE XREF: sub_1C26+5Ej move.w (word_1E38).l,(word_FFFFFF00).w move.w #2,(word_FFFFFF06).w move.w (word_1E36).l,(word_FFFFFF10).w clr.w (word_FFFFFF1A).w loc_1CAA: ; CODE XREF: sub_1C26+68j move.w (word_1E2C).l,(word_FFFFFF20).w move.w (word_1E3E).l,(word_FFFFFF30).w move.w #$B5B,(word_FFFFFF36).w move.w (word_1E40).l,(dword_FFFFFF40).w move.w (word_1E42).l,(word_FFFFFF46).w move.w (word_1E4C).l,(dword_FFFFFF50).w move.w (word_1E4E).l,(word_FFFFFF56).w move.w (word_1E34).l,(word_FFFFFF60).w move.l (dword_1E44).l,(dword_FFFFFF64).w move.w (word_1E30).l,(word_FFFFFF70).w move.l (dword_1E48).l,(dword_FFFFFF74).w move.w (word_1E2E).l,(word_FFFFFF80).w move.w (word_1E2E).l,(word_FFFFFF90).w clr.w var_4(a6) move.w #$2710,var_4+2(a6) move.w (word_1E32).l,(word_FFFFFFA0).w move.l var_4(a6),(dword_FFFFFFA4).w move.w (word_1E32).l,(word_FFFFFFB0).w move.l var_4(a6),(dword_FFFFFFB4).w move.w (word_1E32).l,(word_FFFFFFD0).w move.l var_4(a6),(dword_FFFFFFD4).w move.w (word_1E3A).l,(word_FFFFFFE0).w move.w (word_1E3C).l,(word_FFFFFFF0).w tst.b d3 beq.s loc_1D7A move.l (off_1E0A).l,(dword_FFFFFE14).w loc_1D60: ; DATA XREF: Calibration:SPARK_KNOCK_KE_KNOCK_DETECTOR_MAD_INITo move.l (dword_1E12).l,(dword_FFFFFE18).w move.w (word_1DEE).l,(word_FFFFFE0A).w move.l (dword_1E26).l,(dword_FFFFFE1C).w bra.s loc_1D9A ; --------------------------------------------------------------------------- loc_1D7A: ; CODE XREF: sub_1C26+130j move.l (off_1E06).l,(dword_FFFFFE14).w move.l (dword_1E0E).l,(dword_FFFFFE18).w move.w (word_1DEE).l,(word_FFFFFE0A).w move.l (dword_1E22).l,(dword_FFFFFE1C).w loc_1D9A: ; CODE XREF: sub_1C26+152j ; sub_1C26+178j tst.l (dword_FFFFFE18).w bne.s loc_1D9A bclr #3,(byte_FFFFFE21).w tst.b d3 beq.s loc_1DBC move.l (dword_1E1A).l,(dword_FFFFFE18).w move.w (word_1DF4).l,(word_FFFFFE0A).w bra.s loc_1DDC ; --------------------------------------------------------------------------- loc_1DBC: ; CODE XREF: sub_1C26+182j move.l (dword_1E16).l,(dword_FFFFFE18).w tst.b (byte_FFFFB370).w beq.s loc_1DD4 move.w (word_1DF2).l,(word_FFFFFE0A).w bra.s loc_1DDC ; --------------------------------------------------------------------------- loc_1DD4: ; CODE XREF: sub_1C26+1A2j move.w (word_1DF0).l,(word_FFFFFE0A).w loc_1DDC: ; CODE XREF: sub_1C26+194j ; sub_1C26+1ACj ... tst.l (dword_FFFFFE18).w bne.s loc_1DDC movem.l (sp)+,d0-d1/a0 unlk a6 rts ; End of function sub_1C26 ; --------------------------------------------------------------------------- word_1DEA: dc.w $6033 ; DATA XREF: sub_1C26+1Cr sub_79A9Er word_1DEC: dc.w $FE5F ; DATA XREF: sub_1C26+24r sub_79A9E+8r word_1DEE: dc.w 0 ; DATA XREF: sub_1C26+142r ; sub_1C26+164r word_1DF0: dc.w $5008 ; DATA XREF: sub_1C26:loc_1DD4r word_1DF2: dc.w $4008 ; DATA XREF: sub_1C26+1A4r word_1DF4: dc.w $5000 ; DATA XREF: sub_1C26+18Cr dword_1DF6: dc.l $BA686677 ; DATA XREF: sub_1C26+54r dword_1DFA: dc.l $EEFF7754 ; DATA XREF: sub_1C26:loc_1C72r dword_1DFE: dc.l $BA686677 ; DATA XREF: sub_1C26+42r dword_1E02: dc.l $EEFF7709 ; DATA XREF: sub_1C26+3Ar off_1E06: dc.l unk_A581 ; DATA XREF: sub_1C26:loc_1D7Ar off_1E0A: dc.l unk_A580 ; DATA XREF: sub_1C26+132r dword_1E0E: dc.l $58AFFAF5 ; DATA XREF: sub_1C26+15Cr dword_1E12: dc.l $58AFFAF2 ; DATA XREF: sub_1C26:loc_1D60r dword_1E16: dc.l $CF00000 ; DATA XREF: sub_1C26:loc_1DBCr dword_1E1A: dc.l $CF00000 ; DATA XREF: sub_1C26+184r dword_1E1E: dc.l 0 ; DATA XREF: sub_1C26+2Cr dword_1E22: dc.l $F455AA5A ; DATA XREF: sub_1C26+16Cr dword_1E26: dc.l $F455AA52 ; DATA XREF: sub_1C26+14Ar word_1E2A: dc.w $FE6F ; DATA XREF: sub_1C26+60r word_1E2C: dc.w $FE0B ; DATA XREF: sub_1C26:loc_1CAAr word_1E2E: dc.w $FE93 ; DATA XREF: sub_1C26+DAr sub_1C26+E2r word_1E30: dc.w $FE8F ; DATA XREF: sub_1C26+CAr word_1E32: dc.w $FEF3 ; DATA XREF: sub_1C26+F4r ; sub_1C26+102r ... word_1E34: dc.w $FEF2 ; DATA XREF: sub_1C26+BAr word_1E36: dc.w $FE6B ; DATA XREF: sub_1C26+78r word_1E38: dc.w $FE67 ; DATA XREF: sub_1C26:loc_1C90r word_1E3A: dc.w $700 ; DATA XREF: sub_1C26+11Er word_1E3C: dc.w $700 ; DATA XREF: sub_1C26+126r word_1E3E: dc.w $FE4F ; DATA XREF: sub_1C26+8Cr word_1E40: dc.w $710B ; DATA XREF: sub_1C26+9Ar word_1E42: dc.w $FF00 ; DATA XREF: sub_1C26+A2r dword_1E44: dc.l $FF685A58 ; DATA XREF: sub_1C26+C2r dword_1E48: dc.l $FF784A48 ; DATA XREF: sub_1C26+D2r word_1E4C: dc.w $616B ; DATA XREF: sub_1C26+AAr word_1E4E: dc.w $FF00 ; DATA XREF: sub_1C26+B2r dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $3F ; ? dc.b $FF dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b 0 dc.b 0 dc.b $5F ; _ dc.b $FF dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b 0 dc.b 0 dc.b $60 ; ` dc.b 0 dc.b 0 dc.b 0 dc.b $7F ;  dc.b $FF dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b 0 dc.b 2 dc.b 0 dc.b 0 dc.b 0 dc.b $F dc.b $FF dc.b $FF dc.b 0 dc.b $E dc.b 0 dc.b 0 off_1E80: dc.l unk_FF8000 ; DATA XREF: sub_274C6+Cr sub_27572+8r ... off_1E84: dc.l unk_FF8FEF ; DATA XREF: sub_40632+4r off_1E88: dc.l loc_FEE+2 ; DATA XREF: sub_274C6+6r sub_27572+2r ... off_1E8C: dc.l unk_FFC000 ; DATA XREF: sub_40632+4Cr ; sub_78CDE+4r ... off_1E90: dc.l unk_FFCDFF ; DATA XREF: sub_80E:loc_82Er ; sub_40632:loc_40676r off_1E94: dc.l loc_DFA+6 ; DATA XREF: OS4:00088820o off_1E98: dc.l unk_FF9000 ; DATA XREF: sub_40632+1Cr ; sub_78CDE+1Er ... off_1E9C: dc.l unk_FF9FFF ; DATA XREF: sub_40632:loc_40646r off_1EA0: dc.l loc_FFE+2 ; DATA XREF: sub_78CDE+18r ; OS4:00088828o off_1EA4: dc.l unk_FFA000 ; DATA XREF: sub_40632+2Cr ; sub_78CDE+32r ... off_1EA8: dc.l unk_FFBFFF ; DATA XREF: sub_40632:loc_40656r off_1EAC: dc.l unk_2000 ; DATA XREF: sub_78CDE+2Cr ; OS4:off_88830o off_1EB0: dc.l unk_FFE000 ; DATA XREF: sub_1958+Er dc.l unk_FFE3FF dc.l off_0+$400 ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. off_1EBC: dc.l ENG_CALIBRATIONS_HEADER ; DATA XREF: sub_40632+3Cr ; Use this cal to identify the engine calibration ; Cal_ID_Record off_1EC0: dc.l unk_1FFDF ; DATA XREF: sub_40632:loc_40666r dc.l unk_17FE0 ; =============== S U B R O U T I N E ======================================= sub_1EC8: ; CODE XREF: sub_1C26+16p ; sub_274C6+12p ... move.b d1,d3 lsl.l #8,d1 move.b d3,d1 move.w d1,d3 swap d1 move.w d3,d1 move.l a0,d3 lsr.l #1,d3 bcc.s loc_1EE0 subq.l #1,d0 bcs.s locret_1EFA move.b d1,(a0)+ loc_1EE0: ; CODE XREF: sub_1EC8+10j move.l d0,d3 lsr.l #2,d3 andi.l #3,d0 bra.s loc_1EEE ; --------------------------------------------------------------------------- loc_1EEC: ; CODE XREF: sub_1EC8:loc_1EEEj move.l d1,(a0)+ loc_1EEE: ; CODE XREF: sub_1EC8+22j dbf d3,loc_1EEC bra.s loc_1EF6 ; --------------------------------------------------------------------------- loc_1EF4: ; CODE XREF: sub_1EC8:loc_1EF6j move.b d1,(a0)+ loc_1EF6: ; CODE XREF: sub_1EC8+2Aj dbf d0,loc_1EF4 locret_1EFA: ; CODE XREF: sub_1EC8+14j rts ; End of function sub_1EC8 ; =============== S U B R O U T I N E ======================================= sub_1EFC: ; CODE XREF: sub_138E+EEp cmpi.w #$8268,($408138).l seq d3 neg.b d3 move.b d3,(byte_FFFFB0C7).w rts ; End of function sub_1EFC ; --------------------------------------------------------------------------- word_1F0E: dc.w 0 ; DATA XREF: sub_30CA4+D2r dc.b 0 dc.b $3F ; ? dc.b 0 dc.b $7C ; | dc.b 0 dc.b $B7 ; ? dc.b 0 dc.b $F1 ; ? dc.b 1 dc.b $28 ; ( dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $92 ; ? dc.b 1 dc.b $C5 ; ? dc.b 1 dc.b $F6 ; ? dc.b 2 dc.b $26 ; & dc.b 2 dc.b $54 ; T dc.b 2 dc.b $80 ; ? dc.b 2 dc.b $AC ; ? dc.b 2 dc.b $D6 ; ? dc.b 2 dc.b $FE ; ? dc.b 3 dc.b $26 ; & dc.b 3 dc.b $4C ; L dc.b 3 dc.b $71 ; q dc.b 3 dc.b $95 ; ? dc.b 3 dc.b $B8 ; ? dc.b 3 dc.b $DA ; ? dc.b 3 dc.b $FA ; ? dc.b 4 dc.b $1A dc.b 4 dc.b $39 ; 9 dc.b 4 dc.b $56 ; V dc.b 4 dc.b $73 ; s dc.b 4 dc.b $8F ; ? dc.b 4 dc.b $AA ; ? dc.b 4 dc.b $C5 ; ? dc.b 4 dc.b $DE ; ? dc.b 4 dc.b $F7 ; ? dc.b 5 dc.b $F dc.b 5 dc.b $26 ; & dc.b 5 dc.b $3C ; < dc.b 5 dc.b $52 ; R dc.b 5 dc.b $67 ; g dc.b 5 dc.b $7C ; | dc.b 5 dc.b $8F ; ? dc.b 5 dc.b $A3 ; ? dc.b 5 dc.b $B5 ; ? dc.b 5 dc.b $C7 ; ? dc.b 5 dc.b $D9 ; ? dc.b 5 dc.b $EA ; ? dc.b 5 dc.b $FA ; ? dc.b 6 dc.b $A dc.b 6 dc.b $1A dc.b 6 dc.b $29 ; ) dc.b 6 dc.b $37 ; 7 dc.b 6 dc.b $45 ; E dc.b 6 dc.b $53 ; S dc.b 6 dc.b $60 ; ` dc.b 6 dc.b $6D ; m dc.b 6 dc.b $79 ; y dc.b 6 dc.b $85 ; ? dc.b 6 dc.b $91 ; ? dc.b 6 dc.b $9C ; ? dc.b 6 dc.b $A7 ; ? dc.b 6 dc.b $B2 ; ? dc.b 6 dc.b $BC ; ? dc.b 6 dc.b $C6 ; ? dc.b 6 dc.b $D0 ; ? dc.b 6 dc.b $D9 ; ? dc.b 6 dc.b $E2 ; ? dc.b 6 dc.b $EB ; ? dc.b 6 dc.b $F3 ; ? dc.b 6 dc.b $FC ; ? dc.b 7 dc.b 4 dc.b 7 dc.b $B dc.b 7 dc.b $13 dc.b 7 dc.b $1A dc.b 7 dc.b $21 ; ! dc.b 7 dc.b $28 ; ( dc.b 7 dc.b $2F ; / dc.b 7 dc.b $35 ; 5 dc.b 7 dc.b $3B ; ; dc.b 7 dc.b $42 ; B dc.b 7 dc.b $47 ; G dc.b 7 dc.b $4D ; M dc.b 7 dc.b $53 ; S dc.b 7 dc.b $58 ; X dc.b 7 dc.b $5D ; ] dc.b 7 dc.b $62 ; b dc.b 7 dc.b $67 ; g dc.b 7 dc.b $6C ; l dc.b 7 dc.b $70 ; p dc.b 7 dc.b $75 ; u dc.b 7 dc.b $79 ; y dc.b 7 dc.b $7D ; } dc.b 7 dc.b $81 ; ? dc.b 7 dc.b $85 ; ? dc.b 7 dc.b $89 ; ? dc.b 7 dc.b $8C ; ? dc.b 7 dc.b $90 ; ? dc.b 7 dc.b $93 ; ? dc.b 7 dc.b $97 ; ? dc.b 7 dc.b $9A ; ? dc.b 7 dc.b $9D ; ? dc.b 7 dc.b $A0 ; ? dc.b 7 dc.b $A3 ; ? dc.b 7 dc.b $A6 ; ? dc.b 7 dc.b $A9 ; ? dc.b 7 dc.b $AB ; ? dc.b 7 dc.b $AE ; ? dc.b 7 dc.b $B1 ; ? dc.b 7 dc.b $B3 ; ? dc.b 7 dc.b $B5 ; ? dc.b 7 dc.b $B8 ; ? dc.b 7 dc.b $BA ; ? dc.b 7 dc.b $BC ; ? dc.b 7 dc.b $BE ; ? dc.b 7 dc.b $C0 ; ? dc.b 7 dc.b $C2 ; ? dc.b 7 dc.b $C4 ; ? dc.b 7 dc.b $C6 ; ? dc.b 7 dc.b $C8 ; ? dc.b 7 dc.b $C9 ; ? dc.b 7 dc.b $CB ; ? dc.b 7 dc.b $CD ; ? dc.b 7 dc.b $CE ; ? dc.b 7 dc.b $D0 ; ? unk_2000: dc.b 7 ; DATA XREF: Boot:off_1EACo dc.b $D1 ; ? dc.b 7 dc.b $D3 ; ? dc.b 7 dc.b $D4 ; ? dc.b 7 dc.b $D5 ; ? dc.b 7 dc.b $D7 ; ? dc.b 7 dc.b $D8 ; ? dc.b 7 dc.b $D9 ; ? dc.b 7 dc.b $DA ; ? dc.b 7 dc.b $DC ; ? dc.b 7 dc.b $DD ; ? dc.b 7 dc.b $DE ; ? dc.b 7 dc.b $DF ; ? dc.b 7 dc.b $E0 ; ? dc.b 7 dc.b $E1 ; ? dc.b 7 dc.b $E2 ; ? dc.b 7 dc.b $E3 ; ? dc.b 7 dc.b $E4 ; ? dc.b 7 dc.b $E5 ; ? dc.b 7 dc.b $E5 ; ? dc.b 7 dc.b $E6 ; ? dc.b 7 dc.b $E7 ; ? dc.b 7 dc.b $E8 ; ? dc.b 7 dc.b $E9 ; ? dc.b 7 dc.b $E9 ; ? dc.b 7 dc.b $EA ; ? dc.b 7 dc.b $EB ; ? dc.b 7 dc.b $EB ; ? dc.b 7 dc.b $EC ; ? dc.b 7 dc.b $ED ; ? dc.b 7 dc.b $ED ; ? dc.b 7 dc.b $EE ; ? dc.b 7 dc.b $EE ; ? dc.b 7 dc.b $EF ; ? dc.b 7 dc.b $EF ; ? dc.b 7 dc.b $F0 ; ? dc.b 7 dc.b $F0 ; ? dc.b 7 dc.b $F1 ; ? dc.b 7 dc.b $F1 ; ? dc.b 7 dc.b $F2 ; ? dc.b 7 dc.b $F2 ; ? dc.b 7 dc.b $F3 ; ? dc.b 7 dc.b $F3 ; ? dc.b 7 dc.b $F3 ; ? dc.b 7 dc.b $F4 ; ? dc.b 7 dc.b $F4 ; ? dc.b 7 dc.b $F5 ; ? dc.b 7 dc.b $F5 ; ? dc.b 7 dc.b $F5 ; ? dc.b 7 dc.b $F6 ; ? dc.b 7 dc.b $F6 ; ? dc.b 7 dc.b $F6 ; ? dc.b 7 dc.b $F7 ; ? dc.b 7 dc.b $F7 ; ? dc.b 7 dc.b $F7 ; ? dc.b 7 dc.b $F7 ; ? dc.b 7 dc.b $F8 ; ? dc.b 7 dc.b $F8 ; ? dc.b 7 dc.b $F8 ; ? dc.b 7 dc.b $F8 ; ? dc.b 7 dc.b $F9 ; ? dc.b 7 dc.b $F9 ; ? dc.b 7 dc.b $F9 ; ? dc.b 7 dc.b $F9 ; ? dc.b 7 dc.b $F9 ; ? dc.b 7 dc.b $FA ; ? dc.b 7 dc.b $FA ; ? dc.b 7 dc.b $FA ; ? dc.b 7 dc.b $FA ; ? dc.b 7 dc.b $FA ; ? dc.b 7 dc.b $FB ; ? dc.b 7 dc.b $FB ; ? dc.b 7 dc.b $FB ; ? dc.b 7 dc.b $FB ; ? dc.b 7 dc.b $FB ; ? dc.b 7 dc.b $FB ; ? dc.b 7 dc.b $FC ; ? dc.b 7 dc.b $FC ; ? dc.b 7 dc.b $FC ; ? dc.b 7 dc.b $FC ; ? dc.b 7 dc.b $FC ; ? dc.b 7 dc.b $FC ; ? dc.b 7 dc.b $FC ; ? dc.b 7 dc.b $FC ; ? dc.b 7 dc.b $FD ; ? dc.b 7 dc.b $FD ; ? dc.b 7 dc.b $FD ; ? dc.b 7 dc.b $FD ; ? dc.b 7 dc.b $FD ; ? dc.b 7 dc.b $FD ; ? dc.b 7 dc.b $FD ; ? dc.b 7 dc.b $FD ; ? dc.b 7 dc.b $FD ; ? dc.b 7 dc.b $FD ; ? dc.b 7 dc.b $FD ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FE ; ? dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 7 dc.b $FF dc.b 0 dc.b 9 dc.b $80 ; ? dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $80 ; ? dc.b $50 ; P unk_2118: dc.b 0 ; DATA XREF: Calibration:00009A04o dc.b $40 ; @ dc.b $80 ; ? dc.b $3C ; < dc.b 0 dc.b $40 ; @ dc.b $80 ; ? dc.b $40 ; @ dc.b 5 dc.b 5 dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b 9 dc.b $80 ; ? dc.b $E8 ; ? dc.b 0 dc.b $40 ; @ dc.b $80 ; ? dc.b $88 ; ? dc.b 0 dc.b $40 ; @ dc.b $80 ; ? dc.b $3E ; > dc.b 0 dc.b $40 ; @ dc.b $80 ; ? dc.b $42 ; B dc.b 2 dc.b 2 dc.b 0 dc.b $58 ; X dc.b 0 dc.b 9 dc.b $82 ; ? dc.b $50 ; P dc.b 0 dc.b $40 ; @ dc.b $80 ; ? dc.b $E0 ; ? dc.b 0 dc.b $40 ; @ dc.b $80 ; ? dc.b $3E ; > dc.b 0 dc.b $40 ; @ dc.b $80 ; ? dc.b $44 ; D unk_2148: dc.b 1 dc.b 1 dc.b 0 dc.b $58 ; X dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $A4 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $A8 ; ? off_2154: dc.l unk_FFA2AC dc.l unk_FFA2B0 dc.l unk_FFA2B4 dc.l unk_FFA2B8 unk_2164: dc.b 1 dc.b 1 dc.b 0 dc.b 1 off_2168: dc.l off_0+$100 ; DATA XREF: Calibration:SPARK_KNOCK_KE_KNOCK_DETECTOR_MAD_MAXo ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. unk_216C: dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 3 byte_2175: dc.b 3 ; DATA XREF: Boot:0000049Cr ; sub_24338+10r ... byte_2176: dc.b 0 ; DATA XREF: Boot:000004A2r ; sub_24338+18r ... dc.b $FF ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2178: ; CODE XREF: Boot:000004ECp var_7E4C = -$7E4C link a6,#0 move sr,-(sp) ori #$700,sr clr.b d3 loc_2184: ; CODE XREF: sub_2178+20j clr.l d4 move.b d3,d4 mulu.w #$1A,d4 move.b #1,2+var_7E4C(d4.l) addq.b #1,d3 tst.b d3 bls.s loc_2184 tst.b (byte_FFFFB54A).w bne.s loc_21A4 clr.b (byte_FFFF81B8).w loc_21A4: ; CODE XREF: sub_2178+26j move (sp)+,sr tst.b (byte_FFFFB54A).w bne.s loc_21B2 move.w #$8000,(word_FFFF82E6).w loc_21B2: ; CODE XREF: sub_2178+32j move.b #1,(byte_FFFF90E3).w clr.w d3 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d3 ; Number of cylinders for this engine application. ; SHORTCARD moveq #$30,d4 ; '0' divu.w d3,d4 move.w d4,(word_FFFFA58A).w movem.l d0/a0,-(sp) move.w #$A5A5,(word_FFFFCAE8).w tst.b (byte_FFFFB0C7).w beq.s loc_21E2 move.w #1,($410000).l bra.s loc_21EA ; --------------------------------------------------------------------------- loc_21E2: ; CODE XREF: sub_2178+5Ej move.b #1,($40C000).l loc_21EA: ; CODE XREF: sub_2178+68j jsr sub_27AA6 lea (unk_8A6A8).l,a3 lea ($40813A).l,a2 moveq #4,d3 loc_21FE: ; CODE XREF: sub_2178+88j move.w (a3)+,(a2)+ dbf d3,loc_21FE move.b (a3)+,(a2)+ tst.b (byte_FFFFB0C7).w beq.s loc_2216 move.w #1,($410000).l bra.s loc_221E ; --------------------------------------------------------------------------- loc_2216: ; CODE XREF: sub_2178+92j move.b #1,($40C000).l loc_221E: ; CODE XREF: sub_2178+9Cj jsr sub_27806 jsr sub_27AA6 tst.b ($40816E).l bne.s loc_2238 clr.b (byte_FFFFB0D0).w bra.s loc_2242 ; --------------------------------------------------------------------------- loc_2238: ; CODE XREF: sub_2178+B8j addq.b #1,(byte_FFFFB0D0).w clr.b ($40816E).l loc_2242: ; CODE XREF: sub_2178+BEj tst.b (byte_FFFFB0C7).w beq.s loc_2252 move.w #1,($410000).l bra.s loc_225A ; --------------------------------------------------------------------------- loc_2252: ; CODE XREF: sub_2178+CEj move.b #1,($40C000).l loc_225A: ; CODE XREF: sub_2178+D8j move.l #$FFFF8000,(dword_FFFFB0D2).w move.l #$FFFF9050,(dword_FFFFB0D6).w movem.l (sp)+,d0/a0 clr.l (dword_FFFFB5DA).w clr.l (dword_FFFFB5DE).w movea.l #$E2C,a3 move.l a3,(dword_FFFFB5D2).w movea.l #unk_FFB55A,a0 move.l a0,(dword_FFFFB5D6).w clr.l d3 loc_228C: ; CODE XREF: sub_2178+122j lea $C(a0,d3.w*4),a2 move.l a2,(a0,d3.w*4) addq.b #3,d3 cmpi.b #$18,d3 bls.s loc_228C move.l a3,(a0,d3.w*4) unlk a6 rts ; End of function sub_2178 ; --------------------------------------------------------------------------- PID_jump_table: struct_0 <1, $200, GetPid_0001_NumberofEmissionRelatedDTC> struct_0 <3, $100, GetPid_0003_FuelSystemStatus> struct_0 <4, 0, GetPid_0004_CalculatedLoad> struct_0 <5, 0, GetPid_0005_EngineCoolantTemperature> struct_0 <6, 0, GetPid_0006_ShortTermFuelTrimBank> struct_0 <7, 0, GetPid_0007_LongTermFuelTrimBank> struct_0 <8, 0, GetPid_0008_ShortTermFuelTrimBank> struct_0 <9, 0, GetPid_0009_LongTermFuelTrimBank> struct_0 <$B, 0, GetPid_000B_ManifoldAbsolutePressure> struct_0 <$C, $100, GetPid_000C_EngineRPMHighResolutionRPMx> struct_0 <$D, 0, GetPid_000D_SpeedinKPH> struct_0 <$E, 0, GetPid_000E_IgnitionTimingAdvance> struct_0 <$F, 0, GetPid_000F_IntakeAirTemperature> struct_0 <$10, $100, GetPid_0010_MassAirFlow> struct_0 <$11, 0, GetPid_0011_ThrottlePositionSensor> struct_0 <$12, 0, GetPid_0012_CommandedSecondaryAir> struct_0 <$13, 0, GetPid_0013_ReportOSensorConfiguration> struct_0 <$14, $100, GetPid_0014_OBS> struct_0 <$15, $100, GetPid_0015_OBS> struct_0 <$18, $100, GetPid_0018_OBS> struct_0 <$19, $100, GetPid_0019_OBS> struct_0 <$1C, 0, GetPid_001C_OBDRequirements> struct_0 <$1E, 0, GetPid_001E> struct_0 <$21, $100, GetPid_0021> struct_0 <$1100, 0, GetPid_1100> struct_0 <$1101, 0, GetPid_1101> struct_0 <$1102, 0, GetPid_1102> struct_0 <$1103, 0, GetPid_1103> struct_0 <$1104, 0, GetPid_1104> struct_0 <$1105, 0, GetPid_1105> struct_0 <$1106, 0, GetPid_1106_VTDFuelDisable> struct_0 <$1107, 0, GetPid_1107_ThrottleAtIdle> struct_0 <$1108, 0, GetPid_1108> struct_0 <$110C, 0, GetPid_110C> struct_0 <$110D, 0, GetPid_110D> struct_0 <$110E, 0, GetPid_110E> struct_0 <$110F, 0, GetPid_110F_RearOCurrentNonVolatile> struct_0 <$1110, 0, GetPid_1110> struct_0 <$1111, 0, GetPid_1111> struct_0 <$1112, 0, GetPid_1112> struct_0 <$1113, 0, GetPid_1113> struct_0 <$1114, 0, GetPid_1114> struct_0 <$1115, 0, GetPid_1115> struct_0 <$1116, 0, GetPid_1116> struct_0 <$1117, 0, GetPid_1117> struct_0 <$1118, 0, GetPid_1118> struct_0 <$1119, 0, GetPid_1119> struct_0 <$1120, 0, GetPid_1120> struct_0 <$1140, $100, GetPid_1140_MassAirFlowSensor> struct_0 <$1141, 0, GetPid_1141_IgnitionVoltage> struct_0 <$1142, 0, GetPid_1142> struct_0 <$1143, 0, GetPid_1143_ThrottlePositionSensor> struct_0 <$1144, 0, GetPid_1144_AirConditionerPressure> struct_0 <$1145, 0, GetPid_1145> struct_0 <$1146, 0, GetPid_1146_OSensorBankSensormv> struct_0 <$1148, 0, GetPid_1148_OSensorBankSensormv> struct_0 <$1149, 0, GetPid_1149_OSensorBankSensormv> struct_0 <$114B, 0, GetPid_114B> struct_0 <$114C, 0, GetPid_114C> struct_0 <$114D, 0, GetPid_114D> struct_0 <$114E, 0, GetPid_114E_FuelTankPressure> struct_0 <$1151, 0, \ GetPid_1151_ThrottlePositionSensorNormalizedinDegreesPercent> struct_0 <$1152, 0, GetPid_1152> struct_0 <$1155, 0, GetPid_1155> struct_0 <$115C, 0, GetPid_115C> struct_0 <$116F, 0, GetPid_116F_StartUpEngineCoolantTemperature> struct_0 <$1170, 0, GetPid_1170_ControlledCanisterPurgeSolenoid> struct_0 <$1172, $100, GetPid_1172> struct_0 <$1177, 0, GetPid_1177> struct_0 <$1186, $100, GetPid_1186> struct_0 <$1187, $100, GetPid_1187> struct_0 <$1190, 0, GetPid_1190_FuelTrimCell> struct_0 <$1192, 0, GetPid_1192_DesiredIdleSpeed> struct_0 <$119B, 0, GetPid_119B> struct_0 <$119D, 0, GetPid_119D_BarometricPressure> struct_0 <$119E, 0, GetPid_119E_AirFuelRatio> struct_0 <$119F, 0, GetPid_119F> struct_0 <$11A1, $100, GetPid_11A1_EngineRunTime> struct_0 <$11A6, 0, GetPid_11A6> struct_0 <$11BB, 0, GetPid_11BB_EGRClosedPositionVolts> struct_0 <$11BD, 0, GetPid_11BD_EGRTestCount> struct_0 <$11C1, 0, GetPid_11C1_EGRPositionError> struct_0 <$11D7, $100, \ GetPid_11D7_OResponseLeantoRichSwitchesBankSensor> struct_0 <$11E4, $100, GetPid_11E4_CylinderModeMisfireIndex> struct_0 <$11E5, $100, GetPid_11E5> struct_0 <$11E6, $100, \ GetPid_11E6_RevolutionModeMisfireIndexBalanceTime> struct_0 <$11E7, 0, GetPid_11E7> struct_0 <$11E8, $100, GetPid_11E8> struct_0 <$11E9, 0, GetPid_11E9> struct_0 <$11EA, 0, GetPid_11EA_MisfireCurrentCylinder> struct_0 <$11EB, 0, GetPid_11EB_MisfireCurrentCylinder> struct_0 <$11EC, 0, GetPid_11EC_MisfireCurrentCylinder> struct_0 <$11ED, 0, GetPid_11ED_MisfireCurrentCylinder> struct_0 <$11F2, 0, GetPid_11F2> struct_0 <$11F3, 0, GetPid_11F3_TotalMisfiresperTestSpecial> struct_0 <$11F4, 0, GetPid_11F4> struct_0 <$11F5, 0, GetPid_11F5> struct_0 <$11F6, 0, GetPid_11F6> struct_0 <$11F7, 0, GetPid_11F7> struct_0 <$11F8, $100, GetPid_11F8_MisfireHistoryCylinder> struct_0 <$11F9, $100, GetPid_11F9_MisfireHistoryCylinder> struct_0 <$11FA, $100, GetPid_11FA_MisfireHistoryCylinder> struct_0 <$11FB, $100, GetPid_11FB_MisfireHistoryCylinder> struct_0 <$1200, 0, GetPid_1200_TotalMisfireCurrentCount> struct_0 <$1201, $100, GetPid_1201_MisfireHistoryCylinder> struct_0 <$1202, $100, GetPid_1202_MisfireHistoryCylinder> struct_0 <$1203, $100, GetPid_1203_MisfireHistoryCylinder> struct_0 <$1204, $100, GetPid_1204_MisfireHistoryCylinder> struct_0 <$1205, 0, GetPid_1205_MisfireCurrentCylinder> struct_0 <$1206, 0, GetPid_1206_MisfireCurrentCylinder> struct_0 <$1207, 0, GetPid_1207_MisfireCurrentCylinder> struct_0 <$1208, 0, GetPid_1208_MisfireCurrentCylinder> struct_0 <$120A, 0, GetPid_120A_ShortTermFuelTrimBank> struct_0 <$120B, 0, GetPid_120B_LongTermFuelTrimBank> struct_0 <$120C, 0, GetPid_120C_ShortTermFuelTrimBank> struct_0 <$1212, 0, GetPid_1212_RichLeantoLeanRichRatioSen> struct_0 <$1216, $100, \ GetPid_1216_OResponseRichtoLeanSwitchesBankSensor> struct_0 <$1217, $100, \ GetPid_1217_OResponseLeantoRichSwitchesBankSensor> struct_0 <$121A, $100, \ GetPid_121A_OResponseRichtoLeanSwitchesBankSensor> struct_0 <$1221, $100, GetPid_1221> struct_0 <$1227, $100, GetPid_1227_TotalMisfireFailuresSinceFirstFail> struct_0 <$1228, $100, GetPid_1228_TotalMisfirePassesSinceFirstFail> struct_0 <$1229, $100, GetPid_1229> struct_0 <$122A, 0, GetPid_122A_CyclesofMisfireData> struct_0 <$1232, 0, GetPid_1232_Warmupcycleswithoutanemissionfault> struct_0 <$1233, 0, GetPid_1233_Warmupcycleswithoutanonemissionfault> struct_0 <$1234, $100, GetPid_1234_MileageSinceLastCodeClear> struct_0 <$1235, $100, GetPid_1235_MileageSinceFirstFail> struct_0 <$1236, $100, GetPid_1236_MileageSinceLastFail> struct_0 <$1237, 0, GetPid_1237_FailCounter> struct_0 <$1238, 0, GetPid_1238_PassCounter> struct_0 <$1239, 0, GetPid_1239_NoResultsCounter> struct_0 <$123A, 0, GetPid_123A_LongTermFuelTrimBank> struct_0 <$1243, $100, GetPid_1243> struct_0 <$1244, $100, GetPid_1244> struct_0 <$1245, $100, GetPid_1245> struct_0 <$1246, $100, \ GetPid_1246_OResponseRichtoLeanAverageTimeBankSensor> struct_0 <$1247, 0, GetPid_1247> struct_0 <$1250, $100, GetPid_1250_MAFFrequencyHz> struct_0 <$1255, $100, GetPid_1255> struct_0 <$125A, $100, GetPid_125A_InjectorPulseWidthAverageBank> struct_0 <$125B, $100, GetPid_125B_InjectorPulseWidthAverageBank> struct_0 <$1296, $100, GetPid_1296> struct_0 <$12B0, 0, GetPid_12B0> struct_0 <$12B1, $100, GetPid_12B1> struct_0 <$12B2, 0, GetPid_1324> struct_0 <$12B3, 0, GetPid_1324> struct_0 <$12B4, 0, GetPid_12B6> struct_0 <$12B5, 0, GetPid_12B6> struct_0 <$12B6, 0, GetPid_12B6> struct_0 <$12B7, 0, GetPid_12B8> struct_0 <$12B8, 0, GetPid_12B8> struct_0 <$12B9, 0, GetPid_12BD> struct_0 <$12BA, 0, GetPid_12BD> struct_0 <$12BB, 0, GetPid_12BD> struct_0 <$12BC, 0, GetPid_12BD> struct_0 <$12BD, 0, GetPid_12BD> struct_0 <$12C5, 0, GetPid_12C5_FuelLevelPercentage> struct_0 <$12E2, 0, GetPid_12E2> struct_0 <$12E3, 0, GetPid_12E3> struct_0 <$12EA, 0, GetPid_12EA> struct_0 <$12EB, 0, GetPid_12EB> struct_0 <$12EE, 0, GetPid_12EE> struct_0 <$12EF, 0, GetPid_12EF> struct_0 <$12F0, 0, GetPid_12F0> struct_0 <$12F3, 0, GetPid_12F3> struct_0 <$12F5, $100, GetPid_12F5> struct_0 <$12F7, 0, GetPid_12F7> struct_0 <$12FF, $100, GetPid_12FF> struct_0 <$1300, $100, GetPid_1300> struct_0 <$1301, $100, GetPid_1301> struct_0 <$130E, $100, GetPid_130E> struct_0 <$130F, 0, GetPid_130F> struct_0 <$1310, 0, GetPid_1310> struct_0 <$1311, 0, GetPid_1311> struct_0 <$1312, 0, GetPid_1312> struct_0 <$1315, 0, GetPid_1315> struct_0 <$1316, 0, GetPid_1316> struct_0 <$1317, 0, GetPid_1317> struct_0 <$1318, 0, GetPid_1318> struct_0 <$1319, 0, GetPid_1319> struct_0 <$131A, 0, GetPid_131A> struct_0 <$131B, 0, GetPid_131B> struct_0 <$131C, 0, GetPid_131C> struct_0 <$131D, $100, GetPid_131D> struct_0 <$131E, $100, GetPid_131E> struct_0 <$131F, $100, GetPid_131F> struct_0 <$1321, 0, GetPid_1324> struct_0 <$1322, 0, GetPid_1324> struct_0 <$1323, 0, GetPid_1324> struct_0 <$1324, 0, GetPid_1324> struct_0 <$132A, $100, GetPid_132A> struct_0 <$132B, $100, GetPid_132B> struct_0 <$132C, $100, GetPid_132C> struct_0 <$1336, $100, GetPid_1336> struct_0 <$1337, $100, GetPid_1337> struct_0 <$1338, 0, GetPid_1338> struct_0 <$139C, 0, GetPid_139C> struct_0 <$139D, $100, GetPid_139D> struct_0 <$1481, $100, GetPid_1481> struct_0 <$1482, $100, GetPid_1482> struct_0 <$1484, $100, GetPid_1484> struct_0 <$1485, $100, GetPid_1485> struct_0 <$1617, $100, GetPid_1617> struct_0 <$1627, $100, GetPid_1627> struct_0 <$1628, $100, GetPid_1628> struct_0 <$162B, 0, GetPid_162B> struct_0 <$163F, 0, GetPid_163F> struct_0 <$1900, 0, GetPid_1900> struct_0 <$1901, 0, GetPid_1901> struct_0 <$1921, 0, GetPid_1921> struct_0 <$1922, 0, GetPid_1922> struct_0 <$1923, 0, GetPid_1923> struct_0 <$1924, 0, GetPid_1924> struct_0 <$1925, 0, GetPid_1925> struct_0 <$1927, 0, GetPid_1927> struct_0 <$1928, 0, GetPid_1928> struct_0 <$1929, 0, GetPid_1929> struct_0 <$192A, 0, GetPid_192A> struct_0 <$192B, $200, GetPid_192B> struct_0 <$192D, 0, GetPid_192D> struct_0 <$1940, 0, GetPid_1940_TransmissionOilTemperature> struct_0 <$1941, $100, GetPid_1941_TransmissionInputShaftSpeed> struct_0 <$1942, $100, GetPid_1942_TransmissionOutputShaftSpeed> struct_0 <$195D, $100, GetPid_195D> struct_0 <$1970, 0, GetPid_1970_TCCPWMDutyCycle> struct_0 <$1971, 0, GetPid_1971> struct_0 <$1972, 0, GetPid_1972_PCPressureControlSolenoidDutyCycle> struct_0 <$1973, 0, GetPid_1973> struct_0 <$1975, 0, GetPid_1975> struct_0 <$1976, 0, GetPid_1976> struct_0 <$1991, $100, GetPid_1991_TCCSlipSpeed> struct_0 <$1992, 0, GetPid_1992_TimeofLatestShift> struct_0 <$1993, 0, GetPid_1993_TimeofLatestShift> struct_0 <$1994, 0, GetPid_1994_TimeofLatestShift> struct_0 <$1995, 0, GetPid_1995_TimeofLatestShift> struct_0 <$1996, 0, GetPid_1996_ShiftTimeErrorforLatestShift> struct_0 <$1997, 0, GetPid_1997_ShiftTimeErrorforShift> struct_0 <$1998, 0, GetPid_1998_ShiftTimeErrorforShift> struct_0 <$1999, 0, GetPid_1999_ShiftTimeErrorforShift> struct_0 <$199A, 0, GetPid_199A> struct_0 <$199B, 0, GetPid_199B> struct_0 <$199C, 0, \ GetPid_199C_CurrentTAPTransmissionAdaptivePressureCell> struct_0 <$199D, 0, GetPid_199D_TransmissionPressure> struct_0 <$199E, 0, GetPid_199E_PressureControlActualCurrent> struct_0 <$199F, 0, GetPid_199F_PressureControlReferenceCircuit> struct_0 <$19A0, 0, GetPid_19A0_ShiftDelay> struct_0 <$19A1, 0, GetPid_19A1> struct_0 <$19AD, 0, GetPid_19AD_TransmissionTempSensor> struct_0 <$19D4, $100, GetPid_19D4> struct_0 <$19DE, $100, GetPid_19DE> struct_0 <$19FF, 0, GetPid_19FF> struct_0 <$1A02, $100, GetPid_1A02> struct_0 <$1A13, 0, GetPid_1A13> struct_0 <$1A88, $100, GetPid_1A88> struct_0 <$FC00, 0, GetPid_FC39> struct_0 <$FC01, 0, GetPid_FC39> struct_0 <$FC02, 0, GetPid_FC39> struct_0 <$FC03, 0, GetPid_FC39> struct_0 <$FC04, 0, GetPid_FC39> struct_0 <$FC05, 0, GetPid_FC39> struct_0 <$FC06, 0, GetPid_FC39> struct_0 <$FC07, 0, GetPid_FC39> struct_0 <$FC08, 0, GetPid_FC39> struct_0 <$FC09, 0, GetPid_FC39> struct_0 <$FC0A, 0, GetPid_FC39> struct_0 <$FC0B, 0, GetPid_FC39> struct_0 <$FC0C, 0, GetPid_FC39> struct_0 <$FC0D, 0, GetPid_FC39> struct_0 <$FC0E, 0, GetPid_FC39> struct_0 <$FC0F, 0, GetPid_FC39> struct_0 <$FC10, 0, GetPid_FC39> struct_0 <$FC11, 0, GetPid_FC39> struct_0 <$FC12, $100, GetPid_FC12> struct_0 <$FC1C, $100, GetPid_FC1C> struct_0 <$FC1E, $100, GetPid_FC1E> struct_0 <$FC22, $100, GetPid_FC22> struct_0 <$FC24, $100, GetPid_FC24> struct_0 <$FC25, $100, GetPid_FC25> struct_0 <$FC26, 0, GetPid_FC39> struct_0 <$FC27, 0, GetPid_FC39> struct_0 <$FC28, 0, GetPid_FC39> struct_0 <$FC29, 0, GetPid_FC39> struct_0 <$FC2A, 0, GetPid_FC39> struct_0 <$FC2B, 0, GetPid_FC39> struct_0 <$FC2C, $100, GetPid_FC2C> struct_0 <$FC2D, 0, GetPid_FC39> struct_0 <$FC2E, 0, GetPid_FC39> struct_0 <$FC2F, 0, GetPid_FC39> struct_0 <$FC30, $100, GetPid_FC30> struct_0 <$FC31, 0, GetPid_FC39> struct_0 <$FC32, 0, GetPid_FC39> struct_0 <$FC33, 0, GetPid_FC39> struct_0 <$FC34, 0, GetPid_FC39> struct_0 <$FC35, 0, GetPid_FC39> struct_0 <$FC36, 0, GetPid_FC39> struct_0 <$FC37, 0, GetPid_FC39> struct_0 <$FC38, 0, GetPid_FC39> struct_0 <$FC39, 0, GetPid_FC39> struct_0 <$FC40, $100, GetPid_FC40> struct_0 <$FC41, $100, GetPid_FC41> struct_0 <$FC43, $100, GetPid_FC43> struct_0 <$FC45, 0, GetPid_FC45> struct_0 <$FC46, 0, GetPid_FC46> struct_0 <$FC47, 0, GetPid_FC47> struct_0 <$FC48, 0, GetPid_FC48> struct_0 <$FC4A, $200, GetPid_FC4A> dword_2C3C: dc.l $12B20000 dc.l $12B30100 dc.l $12B40500 dc.l $12B50600 dc.l $12B60700 dc.l $12B70A00 dc.l $12B80B00 dc.l $12B90900 dc.l $12BA0800 dc.l $12BB0400 dc.l $12BC0300 dc.l $12BD0200 dc.l $13210C00 dc.l $13220D00 dc.l $13230E00 dc.l $13240F00 dc.l $FC002000 dc.l $FC012100 dc.l $FC022200 dc.l $FC032300 dc.l $FC042400 dc.l $FC052500 dc.l $FC062600 dc.l $FC072700 dc.l $FC082800 dc.l $FC092900 dc.l $FC0A2A00 dc.l $FC0B2B00 dc.l $FC0C2C00 dc.l $FC0D2D00 dc.l $FC0E2E00 dc.l $FC0F2F00 dc.l $FC103000 dc.l $FC113100 dc.l $FC263200 dc.l $FC273300 dc.l $FC283400 dc.l $FC293500 dc.l $FC2A3600 dc.l $FC2B3700 dc.l $FC2D3800 dc.l $FC2E3900 dc.l $FC2F3A00 dc.l $FC313B00 dc.l $FC323C00 dc.l $FC333D00 dc.l $FC343E00 dc.l $FC353F00 dc.l $FC364000 dc.l $FC374100 dc.l $FC384200 dc.l $FC394300 dc.b 0 dc.b 0 dc.b $2D ; - dc.b $CC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $32 ; 2 dc.b $70 ; p dc.b 0 dc.b 0 dc.b $2E ; . dc.b $92 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $33 ; 3 dc.b $36 ; 6 dc.b 0 dc.b 0 dc.b $2F ; / dc.b $58 ; X dc.b 0 dc.b 0 dc.b $30 ; 0 dc.b $E4 ; ? dc.b 0 dc.b 0 dc.b $32 ; 2 dc.b $70 ; p dc.b 0 dc.b 0 dc.b $30 ; 0 dc.b $1E dc.b 0 dc.b 0 dc.b $31 ; 1 dc.b $AA ; ? dc.b 0 dc.b 0 dc.b $33 ; 3 dc.b $36 ; 6 dc.b 0 dc.b 0 dc.b $33 ; 3 dc.b $FC ; ? dc.b 0 dc.b 0 dc.b $34 ; 4 dc.b $C2 ; ? off_2D44: dc.l unk_3588 dc.l T_SHIFT_TABLES_KV_12_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 2-1 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_23_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 3-2 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_34_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 4-3 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_12_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 2-1 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_23_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 3-2 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_34_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 4-3 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_12_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 2-1 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_23_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 3-2 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_34_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 4-3 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_12_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 2-1 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_23_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 3-2 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_34_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 4-3 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_12_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 2-1 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_23_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 3-2 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_34_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 4-3 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_12_CRS_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 2-1 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_23_CRS_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 3-2 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_34_CRS_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 4-3 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_12_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 2-1 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_23_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 3-2 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_34_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 4-3 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_12_PERF_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 2-1 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_23_PERF_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 3-2 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_34_PERF_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 4-3 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_12_PERF_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 2-1 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_23_PERF_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 3-2 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_34_PERF_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 4-3 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_12_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 2-1 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_23_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 3-2 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_34_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 4-3 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_12_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 2-1 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_23_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 3-2 downshift is commanded. ; % dc.l T_SHIFT_TABLES_KV_34_NORM_MAX_THR_ALLOWED ; Used tp determine maximum amount of throttle before a 4-3 downshift is commanded. ; % dc.l off_0+$FF ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b $A2 ; ? dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EC ; ? dc.b 0 dc.b 0 off_2DE0: dc.l unk_FFA2E8 ; DATA XREF: Calibration:FUEL_CU_KE_INITIAL_DFCO_RESIDUAL_FACTORo dc.l off_0+$FF ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b $A2 ; ? dc.b $EA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EC ; ? dc.l off_0+$FF ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b $A2 ; ? dc.b $EE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $3E ; > dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $42 ; B dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A2 ; ? dc.b $F6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $18 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $B8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $BA ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A4 ; ? dc.b $12 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A4 ; ? dc.b $34 ; 4 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A4 ; ? dc.b $56 ; V dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $AA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $AC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $AE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A2 ; ? dc.b $2A ; * dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A2 ; ? dc.b $4C ; L dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A2 ; ? dc.b $6E ; n dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A1 ; ? dc.b $5E ; ^ dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A1 ; ? dc.b $80 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A1 ; ? dc.b $A2 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A4 ; ? dc.b $DE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $22 ; " dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $C2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $C4 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $C6 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A7 ; ? dc.b $9C ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A7 ; ? dc.b $BE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $38 ; 8 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $3A ; : dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $3C ; < dc.l off_0+1 ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b $A3 ; ? dc.b $40 ; @ dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $44 ; D dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $1A dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $3C ; < dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $BC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $BE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $C0 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A4 ; ? dc.b $78 ; x dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A4 ; ? dc.b $9A ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A4 ; ? dc.b $BC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $B0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $B2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $B4 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A2 ; ? dc.b $90 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A2 ; ? dc.b $B2 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A2 ; ? dc.b $D4 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A1 ; ? dc.b $C4 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A1 ; ? dc.b $E6 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A2 ; ? dc.b 8 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $44 ; D dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $66 ; f dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $88 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $C8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $CA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $CC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A7 ; ? dc.b $E0 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A8 ; ? dc.b 2 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $32 ; 2 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $34 ; 4 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $36 ; 6 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $46 ; F dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $68 ; h dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $8A ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $68 ; h dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $8A ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $46 ; F dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $68 ; h dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $8A ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $46 ; F dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $68 ; h dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $8A ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $46 ; F dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $68 ; h dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $8A ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $46 ; F dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $68 ; h dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $8A ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $46 ; F dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $68 ; h dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $8A ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $46 ; F dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $68 ; h dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $8A ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $46 ; F dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $68 ; h dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $8A ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $AC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $CE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $F0 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $AC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $CE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $F0 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $AC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $CE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $F0 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $AC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $CE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $F0 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $AC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $CE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $F0 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $AC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $CE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $F0 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $AC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $CE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $AC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $CE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A3 ; ? dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $CE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $CE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $2A ; * dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $2C ; , dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A8 ; ? dc.b $6C ; l dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $E0 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $F2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $2A ; * dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $2C ; , dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A8 ; ? dc.b $D8 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A8 ; ? dc.b $EA ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A8 ; ? dc.b $FC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $CE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A8 ; ? dc.b $24 ; $ dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A8 ; ? dc.b $36 ; 6 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A8 ; ? dc.b $7E ; ~ dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A8 ; ? dc.b $90 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A8 ; ? dc.b $A2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $2A ; * dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $2C ; , dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A5 ; ? dc.b $CE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A8 ; ? dc.b $48 ; H dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A8 ; ? dc.b $48 ; H dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $2E ; . dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $30 ; 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $32 ; 2 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b 4 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $16 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $2E ; . dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $30 ; 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $32 ; 2 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $E dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $20 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A8 ; ? dc.b $48 ; H dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A8 ; ? dc.b $5A ; Z dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A8 ; ? dc.b $B4 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A8 ; ? dc.b $C6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $2E ; . dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $30 ; 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $32 ; 2 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $34 ; 4 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $36 ; 6 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $34 ; 4 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $36 ; 6 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $3A ; : dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $3C ; < dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $3E ; > dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $3A ; : dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $3C ; < dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $3E ; > dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $34 ; 4 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $36 ; 6 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $38 ; 8 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $34 ; 4 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $36 ; 6 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $38 ; 8 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $34 ; 4 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $36 ; 6 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $38 ; 8 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $34 ; 4 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $36 ; 6 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $38 ; 8 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $46 ; F dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $48 ; H dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $4A ; J dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $3E ; > dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $40 ; @ dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $42 ; B dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $40 ; @ dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $42 ; B dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $44 ; D dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $40 ; @ dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $42 ; B dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $44 ; D dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $40 ; @ dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $42 ; B dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $44 ; D dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_3588: dc.b 1 ; DATA XREF: Boot:off_2D44o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $4C ; L dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $4E ; N dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $50 ; P dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $4C ; L dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $4E ; N dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $50 ; P dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $4C ; L dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $4E ; N dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $A6 ; ? dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 2 dc.b 6 dc.b 0 dc.b 7 dc.b 3 dc.b 0 dc.b 8 dc.b 4 dc.b 5 dc.b 0 dc.b $D dc.b 0 dc.b 0 dc.b 0 dc.b $E dc.b $F dc.b 0 dc.b $10 dc.b $11 dc.b 0 dc.b $12 dc.b 0 dc.b 9 dc.b 0 dc.b $13 dc.b $14 dc.b $15 dc.b 0 dc.b 0 dc.b $16 dc.b $17 dc.b $18 dc.b $19 dc.b $1A dc.b $1B dc.b $1C dc.b $1D dc.b $1E dc.b $1F dc.b $20 dc.b $21 ; ! dc.b $A dc.b $22 ; " dc.b $23 ; # dc.b $24 ; $ dc.b $25 ; % dc.b $26 ; & dc.b $27 ; ' dc.b $28 ; ( dc.b $29 ; ) dc.b $B dc.b $2A ; * dc.b $2B ; + dc.b 0 dc.b $2C ; , dc.b $C dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2D ; - dc.b $41 ; A dc.b 0 dc.b 0 dc.b $2E ; . dc.b $2F ; / dc.b $30 ; 0 dc.b 0 dc.b $31 ; 1 dc.b $34 ; 4 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b 0 dc.b $36 ; 6 dc.b $37 ; 7 dc.b $38 ; 8 dc.b 0 dc.b $39 ; 9 dc.b $3A ; : dc.b $3B ; ; dc.b $3C ; < dc.b $3D ; = dc.b $3E ; > dc.b $3F ; ? dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $5A ; Z dc.b $5A ; Z dc.b 0 dc.b 0 dc.b $20 dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $27 ; ' dc.b 0 dc.b 0 dc.b 7 dc.b $28 ; ( dc.b $93 ; ? dc.b 2 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $49 ; I dc.b $92 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 8 dc.b 0 dc.b $C dc.b $1B dc.b $48 ; H dc.b $3B ; ; dc.b 4 dc.b 0 dc.b 0 dc.b 0 dc.b 2 dc.b 0 dc.b 3 dc.b $2B ; + dc.b $68 ; h dc.b $13 dc.b $11 dc.b 0 dc.b 0 dc.b 0 dc.b 2 dc.b 0 dc.b 6 dc.b 9 dc.b $68 ; h dc.b $33 ; 3 dc.b $21 ; ! dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b 0 dc.b $A dc.b 9 dc.b $68 ; h dc.b $3B ; ; dc.b $20 dc.b 0 dc.b 0 dc.b 0 dc.b $B dc.b 0 dc.b $15 dc.b $1B dc.b $68 ; h dc.b $49 ; I dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b $E dc.b 0 dc.b 0 dc.b $A dc.b $68 ; h dc.b $86 ; ? dc.b 2 dc.b 0 dc.b 0 dc.b 0 dc.b $2D ; - dc.b 0 dc.b 0 dc.b 7 dc.b $68 ; h dc.b $EA ; ? dc.b $A dc.b 0 dc.b 0 dc.b 0 dc.b $F dc.b 0 dc.b $28 ; ( dc.b $2A ; * dc.b $68 ; h dc.b $96 ; ? dc.b $11 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 7 dc.b $88 ; ? dc.b 9 dc.b $22 ; " dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b $A dc.b $88 ; ? dc.b $15 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b 0 dc.b 5 dc.b $2B ; + dc.b $88 ; ? dc.b $1B dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b 0 dc.b 7 dc.b $1B dc.b $88 ; ? dc.b $29 ; ) dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 5 dc.b 0 dc.b 8 dc.b $2B ; + dc.b $88 ; ? dc.b $29 ; ) dc.b 2 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $90 ; ? dc.b $BE ; ? dc.b $20 dc.b $88 ; ? dc.b $2B ; + dc.b $B dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $89 ; ? dc.b $32 ; 2 dc.b $22 ; " dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $89 ; ? dc.b $32 ; 2 dc.b $62 ; b dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b 0 dc.b 0 dc.b $A dc.b $88 ; ? dc.b $3B ; ; dc.b 2 dc.b 0 dc.b 0 dc.b 0 dc.b 7 dc.b 0 dc.b $B dc.b $1B dc.b $88 ; ? dc.b $3B ; ; dc.b 3 dc.b 0 dc.b 0 dc.b 0 dc.b $12 dc.b 0 dc.b $13 dc.b $17 dc.b $88 ; ? dc.b $3B ; ; dc.b $3D ; = dc.b 0 dc.b 0 dc.b 0 dc.b 6 dc.b 0 dc.b 0 dc.b $A dc.b $88 ; ? dc.b $48 ; H dc.b 6 dc.b 0 dc.b 0 dc.b 0 dc.b $C dc.b 0 dc.b $16 dc.b $1B dc.b $88 ; ? dc.b $4B ; K dc.b $11 dc.b 0 dc.b 0 dc.b 0 dc.b 9 dc.b 0 dc.b 0 dc.b $A dc.b $88 ; ? dc.b $53 ; S dc.b 4 dc.b 0 dc.b 0 dc.b 0 dc.b $A dc.b 0 dc.b 0 dc.b $A dc.b $88 ; ? dc.b $59 ; Y dc.b $30 ; 0 dc.b 0 dc.b 0 dc.b 0 dc.b $B dc.b 0 dc.b $19 dc.b $1A dc.b $88 ; ? dc.b $63 ; c dc.b 2 dc.b 0 dc.b 0 dc.b 0 dc.b $1A dc.b 0 dc.b 0 dc.b 7 dc.b $88 ; ? dc.b $63 ; c dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b $C dc.b 0 dc.b $1B dc.b $1A dc.b $88 ; ? dc.b $63 ; c dc.b $20 dc.b 0 dc.b 0 dc.b 0 dc.b $D dc.b 0 dc.b $1E dc.b $2B ; + dc.b $88 ; ? dc.b $7B ; { dc.b 6 dc.b 0 dc.b 0 dc.b 0 dc.b $22 ; " dc.b 0 dc.b $23 ; # dc.b $17 dc.b $88 ; ? dc.b $83 ; ? dc.b $A dc.b 0 dc.b 0 dc.b 0 dc.b $11 dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $76 ; v dc.b 0 dc.b 0 dc.b $13 dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $81 ; ? dc.b 0 dc.b 0 dc.b $14 dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $82 ; ? dc.b 0 dc.b 0 dc.b $15 dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $83 ; ? dc.b 0 dc.b 0 dc.b $16 dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $84 ; ? dc.b 0 dc.b 0 dc.b $17 dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $85 ; ? dc.b 0 dc.b 0 dc.b $18 dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $88 ; ? dc.b 0 dc.b 0 dc.b $19 dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $89 ; ? dc.b 0 dc.b 0 dc.b $1A dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $8A ; ? dc.b 0 dc.b 0 dc.b $1B dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $8C ; ? dc.b 0 dc.b 0 dc.b $1C dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $8E ; ? dc.b 0 dc.b 0 dc.b $1D dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $8F ; ? dc.b 0 dc.b 0 dc.b $1E dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $9C ; ? dc.b 0 dc.b 0 dc.b $1F dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $9D ; ? dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $B4 ; ? dc.b 0 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $B7 ; ? dc.b 0 dc.b 0 dc.b $22 ; " dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $CB ; ? dc.b 0 dc.b 0 dc.b $23 ; # dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $CC ; ? dc.b 0 dc.b 0 dc.b $24 ; $ dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $D5 ; ? dc.b 0 dc.b 0 dc.b $25 ; % dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $DF ; ? dc.b 0 dc.b 0 dc.b $26 ; & dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $E2 ; ? dc.b 0 dc.b 0 dc.b $27 ; ' dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $E4 ; ? dc.b 0 dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $E9 ; ? dc.b 0 dc.b 0 dc.b $12 dc.b 0 dc.b 0 dc.b $1A dc.b $8A ; ? dc.b $EA ; ? dc.b $20 dc.b $77 ; w dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 2 dc.b $1B dc.b $A8 ; ? dc.b $B dc.b $20 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $A9 ; ? dc.b $24 ; $ dc.b 3 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $AB ; ? dc.b $24 ; $ dc.b 5 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $A9 ; ? dc.b $2A ; * dc.b $47 ; G dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $A9 ; ? dc.b $3A ; : dc.b $45 ; E dc.b 0 dc.b 0 dc.b 0 dc.b $D dc.b 0 dc.b $E dc.b $37 ; 7 dc.b $A8 ; ? dc.b $3B ; ; dc.b $22 ; " dc.b 0 dc.b 0 dc.b 0 dc.b $11 dc.b 0 dc.b 0 dc.b 7 dc.b $A8 ; ? dc.b $3B ; ; dc.b $30 ; 0 dc.b 0 dc.b 0 dc.b 0 dc.b $14 dc.b 0 dc.b 0 dc.b 7 dc.b $A8 ; ? dc.b $49 ; I dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 7 dc.b 0 dc.b 0 dc.b $A dc.b $A8 ; ? dc.b $4B ; K dc.b 9 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $A9 ; ? dc.b $62 ; b dc.b 6 dc.b 0 dc.b 0 dc.b 0 dc.b $1C dc.b 0 dc.b $1D dc.b $17 dc.b $A8 ; ? dc.b $73 ; s dc.b 8 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $21 ; ! dc.b $17 dc.b $A8 ; ? dc.b $83 ; ? dc.b 8 dc.b 0 dc.b 0 dc.b 0 dc.b $E dc.b 0 dc.b $24 ; $ dc.b $1B dc.b $A8 ; ? dc.b $83 ; ? dc.b $12 dc.b 0 dc.b 0 dc.b 0 dc.b $F dc.b 0 dc.b $25 ; % dc.b $2B ; + dc.b $A8 ; ? dc.b $83 ; ? dc.b $13 dc.b 0 dc.b 0 dc.b 0 dc.b $10 dc.b 0 dc.b $2A ; * dc.b $1B dc.b $A8 ; ? dc.b $B3 ; ? dc.b $11 dc.b 0 dc.b 0 dc.b 0 dc.b $10 dc.b 0 dc.b 0 dc.b $A dc.b $A8 ; ? dc.b $B3 ; ? dc.b $30 ; 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $A9 ; ? dc.b $CE ; ? dc.b 7 dc.b 0 dc.b 0 dc.b 0 dc.b $11 dc.b 0 dc.b $2E ; . dc.b $1B dc.b $A8 ; ? dc.b $F3 ; ? dc.b $11 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $90 ; ? dc.b $A8 ; ? dc.b $40 ; @ dc.b $A8 ; ? dc.b $FB ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $90 ; ? dc.b $AC ; ? dc.b $40 ; @ dc.b $A8 ; ? dc.b $FB ; ? dc.b 2 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $90 ; ? dc.b $B0 ; ? dc.b $40 ; @ dc.b $A8 ; ? dc.b $FB ; ? dc.b 3 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $90 ; ? dc.b $B4 ; ? dc.b $40 ; @ dc.b $A8 ; ? dc.b $FB ; ? dc.b 4 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $90 ; ? dc.b $B8 ; ? dc.b $40 ; @ dc.b $A8 ; ? dc.b $FB ; ? dc.b 5 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $A8 ; ? dc.b $FF dc.b 2 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $A9 ; ? dc.b $3A ; : dc.b $43 ; C dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $A9 ; ? dc.b $3A ; : dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $A9 ; ? dc.b $3A ; : dc.b $D dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $90 ; ? dc.b $C4 ; ? dc.b $20 dc.b $A8 ; ? dc.b $D3 ; ? dc.b $30 ; 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $A9 ; ? dc.b $14 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $C9 ; ? dc.b $15 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $C9 ; ? dc.b $2A ; * dc.b 7 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $C9 ; ? dc.b $3A ; : dc.b 5 dc.b 0 dc.b 0 dc.b 0 dc.b 9 dc.b 0 dc.b $A dc.b $1B dc.b $C8 ; ? dc.b $3B ; ; dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $C9 ; ? dc.b $3B ; ; dc.b $22 ; " dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $C9 ; ? dc.b $3B ; ; dc.b $30 ; 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $90 ; ? dc.b $C0 ; ? dc.b $10 dc.b $C8 ; ? dc.b $3B ; ; dc.b $3C ; < dc.b 0 dc.b 0 dc.b 0 dc.b 5 dc.b 0 dc.b 0 dc.b $1A dc.b $C8 ; ? dc.b $48 ; H dc.b 3 dc.b 0 dc.b 0 dc.b 0 dc.b 8 dc.b 0 dc.b $17 dc.b $1A dc.b $C8 ; ? dc.b $4B ; K dc.b $14 dc.b 0 dc.b 0 dc.b 0 dc.b $18 dc.b 0 dc.b 0 dc.b 7 dc.b $C8 ; ? dc.b $53 ; S dc.b $22 ; " dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $C9 ; ? dc.b $58 ; X dc.b $3C ; < dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $C9 ; ? dc.b $58 ; X dc.b $B dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $C9 ; ? dc.b $63 ; c dc.b $20 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $90 ; ? dc.b $C2 ; ? dc.b $20 dc.b $C8 ; ? dc.b $83 ; ? dc.b $16 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $C9 ; ? dc.b $B2 ; ? dc.b $3C ; < dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $CB ; ? dc.b $E4 ; ? dc.b $20 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $CB ; ? dc.b $EB ; ? dc.b $20 dc.b $9B ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $C9 ; ? dc.b $FE ; ? dc.b 6 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $C9 ; ? dc.b $3A ; : dc.b 3 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $C9 ; ? dc.b $14 dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $E9 ; ? dc.b $2A ; * dc.b $3C ; < dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $E9 ; ? dc.b $58 ; X dc.b $4B ; K dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $E8 ; ? dc.b $FF dc.b 3 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $E9 ; ? dc.b $3A ; : dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b $FB ; ? dc.b $C8 ; ? dc.b 1 dc.b $48 ; H dc.b $6B ; k dc.b $43 ; C dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b $FB ; ? dc.b $BC ; ? dc.b 1 dc.b $48 ; H dc.b $6B ; k dc.b $44 ; D dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b $FB ; ? dc.b $52 ; R dc.b 1 dc.b $48 ; H dc.b $6B ; k dc.b $47 ; G dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b $FB ; ? dc.b $C dc.b 1 dc.b $48 ; H dc.b $6B ; k dc.b $48 ; H dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b $FA ; ? dc.b $96 ; ? dc.b 1 dc.b $48 ; H dc.b $6B ; k dc.b $49 ; I dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b $FA ; ? dc.b $60 ; ` dc.b 1 dc.b $48 ; H dc.b $6B ; k dc.b $41 ; A dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b $FA ; ? dc.b $22 ; " dc.b 1 dc.b $48 ; H dc.b $6B ; k dc.b $42 ; B dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b $F9 ; ? dc.b $B2 ; ? dc.b 1 dc.b $48 ; H dc.b $6B ; k dc.b $45 ; E dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b $F9 ; ? dc.b $58 ; X dc.b 1 dc.b $48 ; H dc.b $6B ; k dc.b $46 ; F dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b $FD ; ? dc.b $18 dc.b $91 ; ? dc.b $EC ; ? dc.b 1 dc.b $7F ;  dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $11 dc.b $88 ; ? dc.b $B1 ; ? dc.b $EC ; ? dc.b 1 dc.b $6A ; j dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $1D dc.b $3A ; : dc.b $91 ; ? dc.b $EC ; ? dc.b 1 dc.b $EE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $1B dc.b $E8 ; ? dc.b $91 ; ? dc.b $EC ; ? dc.b 1 dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $EC ; ? dc.b 1 dc.b $60 ; ` dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b 5 dc.b $A8 ; ? dc.b $B1 ; ? dc.b $EC ; ? dc.b 1 dc.b $62 ; b dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b 7 dc.b $1A dc.b $B1 ; ? dc.b $EC ; ? dc.b 1 dc.b $63 ; c dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $11 dc.b $88 ; ? dc.b $B1 ; ? dc.b $EC ; ? dc.b 1 dc.b $6A ; j dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b 0 dc.b $40 ; @ dc.b $B1 ; ? dc.b $EC ; ? dc.b 1 dc.b $54 ; T dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b 0 dc.b $D0 ; ? dc.b $91 ; ? dc.b $EC ; ? dc.b 1 dc.b $57 ; W dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b 1 dc.b $F2 ; ? dc.b $B1 ; ? dc.b $EC ; ? dc.b 1 dc.b $59 ; Y dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $15 dc.b $80 ; ? dc.b $B1 ; ? dc.b $EC ; ? dc.b 1 dc.b $6C ; l dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $1A dc.b $8C ; ? dc.b $91 ; ? dc.b $EC ; ? dc.b 1 dc.b $7C ; | dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b $FF dc.b $6E ; n dc.b $91 ; ? dc.b $EC ; ? dc.b 1 dc.b $52 ; R dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $9A ; ? dc.b $3E ; > dc.b $90 ; ? dc.b $EC ; ? dc.b 1 dc.b $68 ; h dc.b 0 dc.b 0 off_3C00: dc.l unk_FF9A3D ; DATA XREF: Calibration:ENG_OIL_KE_ENGINE_OIL_PRESSURE_DEFAULTo dc.b $90 ; ? dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b 7 dc.b $FA ; ? dc.b $B1 ; ? dc.b $EC ; ? dc.b 1 dc.b $67 ; g dc.b 0 dc.b 0 dc.b $AA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $94 ; ? dc.b $EC ; ? dc.b 1 dc.b $E0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $9A ; ? dc.b $40 ; @ dc.b $A0 ; ? dc.b $EC ; ? dc.b 1 dc.b $74 ; t dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $EC ; ? dc.b 1 dc.b $69 ; i dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $9A ; ? dc.b $42 ; B dc.b $90 ; ? dc.b $EC ; ? dc.b 1 dc.b $7B ; { dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $7B ; { dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $7C ; | dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $BC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $7D ; } dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $7E ; ~ dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $A2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $80 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $81 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $A1 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $82 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $84 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $DC ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $86 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $DE ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $88 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $8A ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E0 ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $8C ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E2 ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $8E ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $90 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E4 ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $92 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E6 ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $94 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $96 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $A4 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $98 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $9A ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $A8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $9C ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $9E ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $AC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $A0 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $A2 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $B0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $A4 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $A6 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $B4 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $A8 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $AA ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $B8 ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $AC ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $BA ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $AE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $B0 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $BE ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $B2 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $C0 ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $B4 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $B6 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $C2 ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $B8 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $C4 ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $BA ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $BC ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $C6 ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $BE ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $C8 ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $C0 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $C2 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $CA ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $C4 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $CC ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $C6 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $C8 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $CE ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $CA ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $D0 ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $CC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $CE ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $D2 ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $D0 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $D4 ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $D2 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $D4 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $D6 ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $D6 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $D8 ; ? dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $D8 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $DA ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $DC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $DE ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $E0 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $E2 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $E4 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $E6 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $E8 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $EA ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $EC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $EE ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $F0 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $F2 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F4 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $F4 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_3E80: dc.b $80 ; ? ; DATA XREF: Calibration:CCP_KE_CCP_ENGINE_RUN_TIMEo dc.b $F5 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F7 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $F6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $F7 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $F8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $F9 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F9 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $FA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $FB ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_3ECC: dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $CB ; ? dc.b $9A ; ? dc.b 0 dc.b 1 dc.b $CB ; ? dc.b $F4 ; ? dc.b 0 dc.b 1 dc.b $CC ; ? dc.b $4E ; N unk_3EDC: dc.b 0 dc.b 0 unk_3EDE: dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 6 dc.b 0 dc.b 0 dc.b 0 dc.b 2 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b 2 dc.b 1 dc.b 0 dc.b 1 dc.b 3 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b 6 dc.b 0 dc.b 0 dc.b 1 dc.b 2 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 2 dc.b 0 dc.b 1 dc.b 0 dc.b 2 dc.b 1 dc.b 1 dc.b 0 dc.b 2 dc.b 2 dc.b 0 dc.b 0 dc.b 2 dc.b 2 dc.b 0 dc.b 0 dc.b 2 dc.b 4 dc.b 1 dc.b 0 dc.b 2 dc.b 2 dc.b 0 dc.b 0 dc.b 2 dc.b 6 dc.b 0 dc.b 0 dc.b 2 dc.b 2 dc.b 0 dc.b 0 dc.b 2 dc.b 1 dc.b 1 dc.b 0 dc.b 2 dc.b 2 dc.b 0 dc.b 0 dc.b 3 dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b 3 dc.b 0 dc.b 0 dc.b 3 dc.b 2 dc.b 1 dc.b 0 dc.b 3 dc.b 3 dc.b 0 dc.b 0 dc.b 3 dc.b 3 dc.b 0 dc.b 0 dc.b 3 dc.b 3 dc.b 0 dc.b 0 dc.b 3 dc.b 6 dc.b 0 dc.b 0 dc.b 3 dc.b 2 dc.b 1 dc.b 0 dc.b 3 dc.b 0 dc.b 1 dc.b 0 dc.b 3 dc.b 3 dc.b 0 dc.b 0 dc.b 4 dc.b 0 dc.b 1 dc.b 0 dc.b 4 dc.b 1 dc.b 1 dc.b 0 dc.b 4 dc.b 4 dc.b 0 dc.b 0 dc.b 4 dc.b 4 dc.b 0 dc.b 0 dc.b 4 dc.b 4 dc.b 0 dc.b 0 dc.b 4 dc.b 5 dc.b 1 dc.b 0 dc.b 4 dc.b 6 dc.b 0 dc.b 0 dc.b 4 dc.b 4 dc.b 0 dc.b 0 dc.b 4 dc.b 1 dc.b 1 dc.b 0 dc.b 4 dc.b 4 dc.b 0 dc.b 0 dc.b 5 dc.b 0 dc.b 1 dc.b 0 dc.b 5 dc.b 1 dc.b 1 dc.b 0 dc.b 5 dc.b 4 dc.b 0 dc.b 0 dc.b 5 dc.b 4 dc.b 0 dc.b 0 dc.b 5 dc.b 4 dc.b 1 dc.b 0 dc.b 5 dc.b 5 dc.b 0 dc.b 0 dc.b 5 dc.b 6 dc.b 0 dc.b 0 dc.b 5 dc.b 4 dc.b 0 dc.b 0 dc.b 5 dc.b 1 dc.b 1 dc.b 0 dc.b 5 dc.b 5 dc.b 0 dc.b 0 dc.b 6 dc.b 0 dc.b 1 dc.b 0 dc.b 6 dc.b 1 dc.b 1 dc.b 0 dc.b 6 dc.b 2 dc.b 1 dc.b 0 dc.b 6 dc.b 3 dc.b 1 dc.b 0 dc.b 6 dc.b 2 dc.b 1 dc.b 0 dc.b 6 dc.b 6 dc.b 0 dc.b 0 dc.b 6 dc.b 6 dc.b 0 dc.b 0 dc.b 6 dc.b 2 dc.b 1 dc.b 0 dc.b 6 dc.b 1 dc.b 1 dc.b 0 dc.b 6 dc.b 6 dc.b 0 dc.b 0 off_3FF4: dc.l X_SHIFT_KE_ETC_STAB_1ST_GEAR_OFFSET ; First gear offset used to calculate the target maximum engine speed in the ETC shift stabilization algorithm. ; RPM dc.l X_SHIFT_KE_ETC_STAB_2ND_GEAR_OFFSET ; Second gear offset used to calculate the target maximum engine speed in the ETC shift stabilization algorithm. ; RPM dc.b 0 dc.b 1 dc.b $D7 ; ? ; end of 'Boot' ; =========================================================================== ; Segment type: Pure code ; segment "ROM" dc.b $CE ; end of 'ROM' ; =========================================================================== ; Segment type: Regular ; segment "Param1" dc.b $69 ; i dc.b $CD ; ? dc.b $C5 ; ? dc.b $E4 ; ? Constant32_PCM_Hardware_number_1:dc.b 0 dc.b $C0 ; ? dc.b 2 dc.b $EB ; ? CurveTable_12_Columns_PCM_Serial_Number_1:dc.b $31 ; 1 dc.b $4B ; K dc.b $41 ; A dc.b $30 ; 0 dc.b $33 ; 3 dc.b $4C ; L dc.b $31 ; 1 dc.b $55 ; U dc.b $33 ; 3 dc.b $32 ; 2 dc.b $36 ; 6 dc.b $36 ; 6 dc.b $BC ; ? dc.b 0 dc.b $39 ; 9 dc.b $56 ; V Constant32_Calibration_ID_1:dc.b 0 dc.b $C0 ; ? dc.b $13 dc.b $87 ; ? CurveTable_4_Columns_Broadcast_Code__BCC__1:dc.b 'YFZB',0 CurveTable_17_Columns_VIN_1:dc.b '1G1YY32G445109232:g',0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $14 dc.b $80 ; ? dc.b $30 ; 0 dc.b $7F ;  dc.b $E7 ; ? dc.b $7F ;  dc.b $D7 ; ? dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $48 ; H dc.b $4C ; L dc.b 0 dc.b $B3 ; ? dc.b $36 ; 6 dc.b $5E ; ^ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $48 ; H dc.b $3E ; > dc.b 0 dc.b $B3 ; ? dc.b $50 ; P dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $48 ; H dc.b $3D ; = dc.b 0 dc.b $B3 ; ? dc.b $50 ; P dc.b $DD ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $48 ; H dc.b $2A ; * dc.b 0 dc.b $B3 ; ? dc.b $85 ; ? dc.b $C3 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $48 ; H dc.b $1A dc.b 0 dc.b $B3 ; ? dc.b $85 ; ? dc.b $C3 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $48 ; H dc.b $13 dc.b 0 dc.b $B3 ; ? dc.b $86 ; ? dc.b $33 ; 3 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $48 ; H dc.b $12 dc.b 0 dc.b $B3 ; ? dc.b $86 ; ? dc.b $4B ; K dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $48 ; H dc.b $C dc.b 0 dc.b $B3 ; ? dc.b $86 ; ? dc.b $51 ; Q dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $48 ; H dc.b 2 dc.b 0 dc.b $B3 ; ? dc.b $86 ; ? dc.b $56 ; V dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $48 ; H dc.b 2 dc.b 0 dc.b $B3 ; ? dc.b $86 ; ? dc.b $56 ; V dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $47 ; G dc.b $F9 ; ? dc.b 0 dc.b $B3 ; ? dc.b $86 ; ? dc.b $5C ; \ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $47 ; G dc.b $F4 ; ? dc.b 0 dc.b $B3 ; ? dc.b $86 ; ? dc.b $61 ; a dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $47 ; G dc.b $C0 ; ? dc.b 0 dc.b $B3 ; ? dc.b $F5 ; ? dc.b $13 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $47 ; G dc.b $A8 ; ? dc.b 0 dc.b $B4 ; ? dc.b $22 ; " dc.b $12 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $47 ; G dc.b $7F ;  dc.b 0 dc.b $B4 ; ? dc.b $87 ; ? dc.b $D7 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $47 ; G dc.b $7E ; ~ dc.b 0 dc.b $B4 ; ? dc.b $87 ; ? dc.b $E4 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $47 ; G dc.b $7D ; } dc.b 0 dc.b $B4 ; ? dc.b $87 ; ? dc.b $F1 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $47 ; G dc.b $7C ; | dc.b 0 dc.b $B4 ; ? dc.b $87 ; ? dc.b $F9 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $47 ; G dc.b $7A ; z dc.b 0 dc.b $B4 ; ? dc.b $88 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $47 ; G dc.b $7A ; z dc.b 0 dc.b $B4 ; ? dc.b $88 ; ? dc.b $F dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $A5 ; ? dc.b $A0 ; ? dc.b 3 dc.b $C1 ; ? dc.b $E5 ; ? dc.b $79 ; y dc.b $47 ; G dc.b $78 ; x dc.b 0 dc.b $B4 ; ? dc.b $88 ; ? dc.b $1E dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_49BA: dc.b $FF ; DATA XREF: Calibration:FUEL_O2_KV_BANK1_POST_LEAN_THRESHOLDo ; Calibration:FUEL_O2_KV_BANK2_POST_LEAN_THRESHOLDo dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF word_5830: dc.w $FFFF ; DATA XREF: OS4:00087AA2w dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_5DC0: dc.b $FF ; DATA XREF: Calibration:00009210o dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF ; end of 'Param1' dc.b $FF ; =========================================================================== ; Segment type: Regular ; segment "Param2" dc.b $FF dc.b $FF dc.b $FF dc.b $FF Constant32_PCM_Hardware_number_2:dc.b $FF dc.b $FF dc.b $FF dc.b $FF CurveTable_12_Columns_PCM_Serial_Number_2:dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF Constant32_Calibration_ID_2:dc.b $FF dc.b $FF dc.b $FF dc.b $FF CurveTable_4_Columns_Broadcast_Code__BCC__2:dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF CurveTable_17_Columns_VIN_2:dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF ; end of 'Param2' dc.b $FF ; =========================================================================== ; Segment type: Regular ; segment "Calibration" ENG_CALIBRATIONS_HEADER:dc.b $C1 ; ? ; DATA XREF: Boot:off_1EBCo ; DoManyThings1+254o ; Use this cal to identify the engine calibration ; Cal_ID_Record dc.b $E dc.b 0 dc.b 2 Constant32_Engine_Calibration_ID:dc.b 0 dc.b $C0 ; ? dc.b $13 dc.b $8E ; ? CurveTable_2_Columns_Engine_Calibration_Level:dc.b $41 ; A dc.b $44 ; D dc.b 0 dc.b 0 CurveTable_8_Columns_Engine_Calibration_ID_ASCII:dc.b '12587918',0 ; DATA XREF: sub_3F6FE+10Co dcb.b $B,0 FLASH_KE_SERVICE_CALIBRATION:dc.b 0 ; DATA XREF: sub_75322+2r CIC_KE_CIC_MEDIUM_RES_REF_FILTER:dc.b 6 ; DATA XREF: OS1:loc_288BCr ; DoManyThings1:loc_294ACr ETAS_KE_ETAS_PRESENCE_PATTERN:dc.w 0 ; DATA XREF: sub_138E+DEr sub_78BBE+4r ; Special calibration location written to by ETAS when ETAS instrumentation is hooked up. ; CARDINAL ETAS_KE_ETAS_PAD_BYTE_1:dc.b 0 ; ETAS Pad Byte is used to place slew cals on the proper byte boundry. Changing it's value does nothing. ; Byte ETAS_KE_ETAS_PAD_BYTE_2:dc.b 0 ; ETAS Pad Byte is used to place slew cals on the proper byte boundry. Changing it's value does nothing. ; Byte ETAS_KE_ETAS_PAD_BYTE_3:dc.b 0 ; ETAS Pad Byte is used to place slew cals on the proper byte boundry. Changing it's value does nothing. ; Byte ETAS_KE_ETAS_DATA_ACQUIRE_RATE_GROUP:dc.b 0 ; DATA XREF: sub_27AD2+6r ETAS_KE_ETAS_SLEW_CCP_MODE:dc.b 0 ; DATA XREF: sub_27C78r ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_CCP_ABS:dc.b 0 ; DATA XREF: sub_27C78+22r CurveTable_2_Rows_Ambiguous_Cam_Transition_Thresholds_??:dc.b 0 ETAS_KE_ETAS_SLEW_CCP_MOD:dc.b 0 ; DATA XREF: sub_27C78+32r ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Percent Flag_0x01_ETC_Present_Flag_??:dc.b 0 ETAS_KE_ETAS_SLEW_EQVR_MODE:dc.l unk_FF0000 ; DATA XREF: sub_27C78:loc_27CC4r ; sub_27C78+6Er ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes ETAS_KE_ETAS_SLEW_EQVR_MOD:dc.l off_0+$FF ; DATA XREF: sub_27C78+7Er ; sub_27C78:loc_27D10r ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Equiv_Ratio ETAS_KE_ETAS_SLEW_EGR_ABS:dc.w 0 ; DATA XREF: sub_27C78+BAr ETAS_KE_ETAS_SLEW_EGR_MOD:dc.w 0 ; DATA XREF: sub_27C78+CAr ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Percent ETAS_KE_ETAS_SLEW_FANHZ_MODE:dc.b 0 ; DATA XREF: sub_27C78:loc_27D5Cr ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_FANHZ_ABS:dc.w 0 ; DATA XREF: sub_27C78+106r ETAS_KE_ETAS_SLEW_FANHZ_MOD:dc.w 0 ; DATA XREF: sub_27C78+116r ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Hertz ETAS_KE_ETAS_SLEW_FFS_HZ_MODE:dc.b 0 ; DATA XREF: sub_27C78:loc_27DA8r ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_FFS_HZ_ABS:dc.w 0 ; DATA XREF: sub_27C78+152r ETAS_KE_ETAS_SLEW_FFS_HZ_MOD:dc.w 0 ; DATA XREF: sub_27C78+162r ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Hertz ETAS_KE_ETAS_SLEW_FFS_LOW_TIME_MODE:dc.b 0 ; DATA XREF: sub_27C78:loc_27DF4r ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_FFS_LOW_TIME_ABS:dc.w 0 ; DATA XREF: sub_27C78+19Er ETAS_KE_ETAS_SLEW_FFS_LOW_TIME_MOD:dc.w 0 ; DATA XREF: sub_27C78+1AEr ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Milliseconds ETAS_KE_ETAS_SLEW_FUEL_ECON_MODE:dc.b 0 ; DATA XREF: sub_27C78+1D0r ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes ETAS_KE_ETAS_SLEW_FUEL_ECON_SIGN:dc.b 0 ; DATA XREF: sub_27C78:loc_27E40r ETAS_KE_ETAS_SLEW_NVMEM_MODE:dc.b 0 ; DATA XREF: sub_27C78+1F6r ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes ETAS_KE_ETAS_SLEW_NVMEM_ABS:dc.b 0 ; DATA XREF: sub_27C78+214r ETAS_KE_ETAS_SLEW_NVMEM_MOD:dc.b 0 ; DATA XREF: sub_27C78+224r ETAS_KE_ETAS_SLEW_TCS_DISCRETE_MODE:dc.b 0 ; DATA XREF: sub_27C78+230r ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes ETAS_KE_ETAS_SLEW_TCS_DISCRETE_ABS:dc.b 0 ; DATA XREF: sub_27C78+24Er ETAS_KE_ETAS_SLEW_TCS_DISCRETE_MOD:dc.b 0 ; DATA XREF: sub_27C78+25Er ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; BOOLEAN ETAS_KE_ETAS_SLEW_TCS_DC_MODE:dc.b 0 ; DATA XREF: sub_27C78:loc_27EDEr ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_TCS_DC_ABS:dc.w 0 ; DATA XREF: sub_27C78+288r ETAS_KE_ETAS_SLEW_TCS_DC_MOD:dc.w 0 ; DATA XREF: sub_27C78+298r ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Percent ETAS_KE_ETAS_SLEW_SPARK_CRANK_MODE:dc.b 0 ; DATA XREF: sub_27C78:loc_27F2Ar ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_SPARK_CRANK_ABS:dc.w 0 ; DATA XREF: sub_27C78+2D0r ETAS_KE_ETAS_SLEW_SPARK_CRANK_MOD:dc.w 0 ; DATA XREF: sub_27C78+2F0r ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Degrees ETAS_KE_ETAS_SLEW_SPARK_RUN_MODE:dc.b 0 ; DATA XREF: sub_27C78:loc_27F80r ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_SPARK_RUN_ABS:dc.w 0 ; DATA XREF: sub_27C78+326r ETAS_KE_ETAS_SLEW_SPARK_RUN_MOD:dc.w 0 ; DATA XREF: sub_27C78+346r ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Degrees ETAS_KE_ETAS_SLEW_IAC_AIRFLOW_MODE:dc.b 0 ; DATA XREF: sub_27C78:loc_27FD6r ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_IAC_AIRFLOW_ABS:dc.w 0 ; DATA XREF: sub_27C78+37Cr ETAS_KE_ETAS_SLEW_IAC_AIRFLOW_MOD:dc.w 0 ; DATA XREF: sub_27C78+39Cr ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Grams/Second ETAS_KE_ETAS_SLEW_IAC_RPM_MODE:dc.b 0 ; DATA XREF: sub_27C78:loc_2802Cr ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_IAC_RPM_ABS:dc.w 0 ; DATA XREF: sub_27C78+3D2r ETAS_KE_ETAS_SLEW_IAC_RPM_MOD:dc.w 0 ; DATA XREF: sub_27C78+3F2r ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; RPM ETAS_KE_ETAS_SLEW_IAC_POSITION_MODE:dc.b 0 ; DATA XREF: sub_27C78+40Er ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_IAC_POSITION_ABS:dc.w 0 ; DATA XREF: sub_27C78+42Cr ETAS_KE_ETAS_SLEW_IAC_POSITION_MOD:dc.w 0 ; DATA XREF: sub_27C78+43Ar ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Steps ETAS_KE_ETAS_SLEW_OIL_LEVEL_MODE:dc.b 0 ; DATA XREF: sub_27C78+448r ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes ETAS_KE_ETAS_SLEW_OIL_LEVEL_ABS:dc.b 0 ; DATA XREF: sub_27C78+466r ETAS_KE_ETAS_SLEW_OIL_LEVEL_MOD:dc.b 0 ; DATA XREF: sub_27C78+476r ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; BOOLEAN ETAS_KE_ETAS_SLEW_TCC_CONTROL_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select the desired mode. ; Slew_Modes ETAS_KE_ETAS_SLEW_TCC_CONTROL_ABS:dc.b 0 ETAS_KE_ETAS_SLEW_DES_TORQ_REDUC_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes ETAS_KE_ETAS_SLEW_DES_TORQ_REDUC_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_FREEZE_ADAPT_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes ETAS_KE_ETAS_SLEW_FREEZE_ADAPT_ABS:dc.b 0 ETAS_KE_ETAS_SLEW_PRESSURE_MAN_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_PRESSURE_MAN_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_PRESSURE_MAN_MOD:dc.b 0 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; PSI dc.b 0 ETAS_KE_ETAS_SLEW_BASE_PRESSURE_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_BASE_PRESSURE_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_BASE_PRESSURE_MOD:dc.b 0 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; PSI dc.b 0 ETAS_KE_ETAS_SLEW_SHIFT_PRESSURE_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_SHIFT_PRESSURE_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_SHIFT_PRESSURE_MOD:dc.b 0 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; PSI dc.b 0 ETAS_KE_ETAS_SLEW_TCC_APP_2_SLEW_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_TCC_APP_2_SLEW_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_TCC_APP_3_SLEW_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_TCC_APP_3_SLEW_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_TCC_APP_4_SLEW_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_TCC_APP_4_SLEW_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_TCC_REL_2_SLEW_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_TCC_REL_2_SLEW_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_TCC_REL_3_SLEW_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_TCC_REL_3_SLEW_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_TCC_REL_4_SLEW_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_TCC_REL_4_SLEW_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_TCC_REL_4_SLEW_MOD:dc.b 0 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; MPH dc.b 0 ETAS_KE_ETAS_SLEW_TCC_APP_OP_PT_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_TCC_APP_OP_PT_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_TCC_APP_OP_PT_MOD:dc.b 0 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; PSI dc.b 0 ETAS_KE_ETAS_SLEW_TCC_APPLY_RATE_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_TCC_APPLY_RATE_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_TCC_APPLY_RATE_MOD:dc.b 0 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; PSI/Sec dc.b 0 ETAS_KE_ETAS_SLEW_TCC_ON_REF_SLP_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_TCC_ON_REF_SLP_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_TCC_ON_REF_SLP_MOD:dc.b 0 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; RPM dc.b 0 ETAS_KE_ETAS_SLEW_TCC_REL_TIME_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_TCC_REL_TIME_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_TCC_REL_TIME_MOD:dc.b 0 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Seconds dc.b 0 ETAS_KE_ETAS_SLEW_TCC_CAPACITY_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_TCC_CAPACITY_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_TCC_CAPACITY_MOD:dc.b 0 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Percent dc.b 0 ETAS_KE_ETAS_SLEW_THR_REL_OP_PT_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_THR_REL_OP_PT_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_THR_REL_OP_PT_MOD:dc.b 0 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Capacity dc.b 0 ETAS_KE_ETAS_SLEW_THR_REL_RATE_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_THR_REL_RATE_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_THR_REL_RATE_MOD:dc.b 0 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Capacity/Sec dc.b 0 ETAS_KE_ETAS_SLEW_1_2_NORM_LINE_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_1_2_NORM_LINE_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_2_3_NORM_LINE_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_2_3_NORM_LINE_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_3_4_NORM_LINE_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_3_4_NORM_LINE_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_2_1_NORM_LINE_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_2_1_NORM_LINE_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_3_2_NORM_LINE_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_3_2_NORM_LINE_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_4_3_NORM_LINE_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_4_3_NORM_LINE_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_ADAPT_K_FACTOR_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes dc.b $FF ETAS_KE_ETAS_SLEW_ADAPT_K_FACTOR_ABS:dc.b 0 dc.b 0 ETAS_KE_ETAS_SLEW_TCC_ADAP_CELLS_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes ETAS_KE_ETAS_SLEW_TCC_ADAP_CELLS_ABS:dc.b 0 ETAS_KE_ETAS_SLEW_ETC_S_S_STAB_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes ETAS_KE_ETAS_SLEW_ETC_S_S_STAB_ABS:dc.b 0 ETAS_KE_ETAS_SLEW_TCC_AD_CNF_FCT_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes ETAS_KE_ETAS_SLEW_TCC_AD_CNF_FCT_ABS:dc.b 0 ETAS_KE_ETAS_SLEW_ALT_PATTERN_SW_MODE:dc.b 0 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes ETAS_KE_ETAS_SLEW_ALT_PATTERN_SW_ABS:dc.b 0 ETAS_KE_ETAS_SLEW_GEAR_OVERRIDE_MODE:dc.b 0 ; DATA XREF: sub_28274r ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes ETAS_KE_ETAS_SLEW_GEAR_OVERRIDE_ABS:dc.b 0 ; DATA XREF: sub_28274+Ar ETAS_KE_ETAS_SLEW_PRELD_ADP_CEL_MODE:dc.b 0 ; DATA XREF: sub_2828Er ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes ETAS_KE_ETAS_SLEW_PRELD_ADP_CEL_ABS:dc.b 0 ; DATA XREF: sub_2828E+Ar ETAS_KE_ETAS_SLEW_DUMMY_ABS:dc.b 0 ETAS_KE_ETAS_SLEW_DUMMY_MOD:dc.b 0 ETAS_KE_ETAS_PAD_BYTE_4:dc.b 0 ; ETAS Pad Byte is used to place slew cals on the proper byte boundry. Changing it's value does nothing. ; Byte ETAS_KE_ETAS_PAD_BYTE_5:dc.b 0 ; ETAS Pad Byte is used to place slew cals on the proper byte boundry. Changing it's value does nothing. ; Byte ENG_CONSTANTS_KE_ENGINE_SCHEDULE_RPM_HI:dc.w $5000 ; DATA XREF: sub_82766+CEr ; The engine speed above which some of the sync. code activation rate is changed. ; RPM ENG_CONSTANTS_KE_ENGINE_SCHEDULE_RPM_LO:dc.w $4C00 ; DATA XREF: sub_82766:loc_82844r ; The engine speed below which some of the sync. code activation rate is changed. ; RPM ENG_CONSTANTS_KE_ENGINE_IDENTIFIER:dc.b 1 ; DATA XREF: sub_47DA2+35Er ; Describes the type of engine associated with the vehicle including the engine displacement and valve train geometry. ; Engine_Identifier_Type ENG_CONSTANTS_KE_NUMBER_CYLINDERS:dc.b 8 ; DATA XREF: sub_EF4+Cr sub_138E+1D2r ... ; Number of cylinders for this engine application. ; SHORTCARD ENG_CONSTANTS_KE_LOW_RESOLUTION_REFERENCE_ANGL:dc.w $B8E ; DATA XREF: sub_138E+1EAr ; sub_29320+3Ar ... ; Identifies the number of degrees from a low resolution pulse to Top Dead Center of the cylinder. ; Degrees ENG_CONSTANTS_KE_TYPE_OF_KNOCK_SENSORS:dc.l loc_30700+1 ; DATA XREF: sub_3CB4E+4r ; sub_60BE2+12r ... ; Identifies whether the engine is equipped with resonant( 0 ) or flat response( 1 ) knock sensors. ; Knock_Sensor_Type AIRFLOW_KA_EGR_AIR_FLOW:dc.b 0 ; EGR air flow through the EGR valve. ; Grams Per Second dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 AIRFLOW_KE_EGR_AIR_FLOW_FILT_COEF:dc.w 1 ; DATA XREF: sub_7AA26+64r ; The calculated EGRflow for Dyna-Air will be filtered using this coefficient. ; NONE 0-1 AIRFLOW_KE_EGR_DUTY_CYCLE_DYNAAIR:dc.w $66 ; DATA XREF: sub_7AA26+Cr ; The commanded EGR duty cycle must be at least this value to enable calculation of EGR air mass. ; Percent AIRFLOW_KE_VE_TEMPERATURE:dc.w $8800 ; DATA XREF: GetGramsPerCylinderViaSpeedDensity:loc_7A53Er AIRFLOW_KV_VOLUMETRIC_EFFICIENCY_BARO_CO:dc.b $12 dc.b $3D ; = dc.b $11 dc.b $EC ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $48 ; H dc.b $10 dc.b $E1 ; ? dc.b $10 dc.b $7B ; { dc.b $10 dc.b $3D ; = dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 AIRFLOW_KA_VOLUMETRIC_EFFICIENCY_CRANK:dc.b $B ; Volumetric efficiency at cranking speeds. ; Percent dc.b $66 ; f dc.b $B dc.b $66 ; f dc.b $C dc.b $33 ; 3 dc.b $C dc.b $66 ; f dc.b $C dc.b $66 ; f dc.b $C dc.b $9A ; ? dc.b $C dc.b $33 ; 3 dc.b $B dc.b $CD ; ? dc.b $B dc.b $66 ; f dc.b $B dc.b 0 dc.b $A dc.b $9A ; ? dc.b $A dc.b $9A ; ? dc.b $A dc.b $9A ; ? dc.b $A dc.b $9A ; ? dc.b $A dc.b $9A ; ? dc.b $A dc.b $9A ; ? dc.b $A dc.b $9A ; ? dc.b $A dc.b $9A ; ? dc.b $A dc.b $9A ; ? dc.b $A dc.b $9A ; ? dc.b $A dc.b $9A ; ? dc.b $A dc.b $9A ; ? dc.b $A dc.b $9A ; ? dc.b $A dc.b $9A ; ? dc.b $A dc.b $9A ; ? dc.b $A dc.b $9A ; ? dc.b $A dc.b $CD ; ? dc.b $A dc.b $E6 ; ? dc.b $B dc.b 0 dc.b $B dc.b $14 dc.b $B dc.b $33 ; 3 dc.b $B dc.b $33 ; 3 dc.b $B dc.b $33 ; 3 dc.b $B dc.b $66 ; f dc.b $B dc.b $66 ; f dc.b $C dc.b $33 ; 3 dc.b $C dc.b $66 ; f dc.b $C dc.b $66 ; f dc.b $C dc.b $9A ; ? dc.b $C dc.b $52 ; R dc.b $C dc.b $A dc.b $B dc.b $C3 ; ? dc.b $B dc.b $7B ; { dc.b $B dc.b $33 ; 3 dc.b $B dc.b $33 ; 3 dc.b $B dc.b $33 ; 3 dc.b $B dc.b $43 ; C dc.b $B dc.b $52 ; R dc.b $B dc.b $66 ; f dc.b $B dc.b $66 ; f dc.b $B dc.b $66 ; f dc.b $B dc.b $9A ; ? dc.b $B dc.b $A9 ; ? dc.b $B dc.b $B8 ; ? dc.b $B dc.b $CD ; ? dc.b $B dc.b $CD ; ? dc.b $C dc.b 0 dc.b $C dc.b $33 ; 3 dc.b $C dc.b $43 ; C dc.b $C dc.b $33 ; 3 dc.b $C dc.b $66 ; f dc.b $C dc.b $9A ; ? dc.b $C dc.b $9A ; ? dc.b $C dc.b $A9 ; ? dc.b $C dc.b $A9 ; ? dc.b $C dc.b $A9 ; ? dc.b $B dc.b $66 ; f dc.b $B dc.b $66 ; f dc.b $C dc.b $33 ; 3 dc.b $C dc.b $66 ; f dc.b $C dc.b $66 ; f dc.b $C dc.b $9A ; ? dc.b $C dc.b $66 ; f dc.b $C dc.b $33 ; 3 dc.b $C dc.b 0 dc.b $B dc.b $CD ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $CD ; ? dc.b $C dc.b 0 dc.b $C dc.b $29 ; ) dc.b $C dc.b $43 ; C dc.b $C dc.b $66 ; f dc.b $C dc.b $33 ; 3 dc.b $C dc.b $66 ; f dc.b $C dc.b $9A ; ? dc.b $C dc.b $B3 ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $D dc.b 0 dc.b $D dc.b $33 ; 3 dc.b $D dc.b $48 ; H dc.b $D dc.b $66 ; f dc.b $D dc.b $9A ; ? dc.b $D dc.b $9A ; ? dc.b $D dc.b $9A ; ? dc.b $D dc.b $C3 ; ? dc.b $D dc.b $C3 ; ? dc.b $D dc.b $C3 ; ? dc.b $B dc.b $66 ; f dc.b $B dc.b $66 ; f dc.b $C dc.b $33 ; 3 dc.b $C dc.b $66 ; f dc.b $C dc.b $66 ; f dc.b $C dc.b $9A ; ? dc.b $C dc.b $7B ; { dc.b $C dc.b $5C ; \ dc.b $C dc.b $3D ; = dc.b $C dc.b $1F dc.b $C dc.b 0 dc.b $C dc.b $33 ; 3 dc.b $C dc.b $66 ; f dc.b $C dc.b $CD ; ? dc.b $D dc.b 0 dc.b $D dc.b $33 ; 3 dc.b $D dc.b $33 ; 3 dc.b $D dc.b $33 ; 3 dc.b $D dc.b $66 ; f dc.b $D dc.b $9A ; ? dc.b $D dc.b $9A ; ? dc.b $D dc.b $9A ; ? dc.b $D dc.b $9A ; ? dc.b $D dc.b $CD ; ? dc.b $D dc.b $CD ; ? dc.b $D dc.b $E6 ; ? dc.b $E dc.b 0 dc.b $E dc.b $33 ; 3 dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $B dc.b $66 ; f dc.b $B dc.b $66 ; f dc.b $C dc.b $33 ; 3 dc.b $C dc.b $66 ; f dc.b $C dc.b $66 ; f dc.b $C dc.b $9A ; ? dc.b $C dc.b $9A ; ? dc.b $C dc.b $9A ; ? dc.b $C dc.b $9A ; ? dc.b $C dc.b $9A ; ? dc.b $C dc.b $9A ; ? dc.b $C dc.b $CD ; ? dc.b $D dc.b 0 dc.b $D dc.b $66 ; f dc.b $D dc.b $CD ; ? dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b $F dc.b $E dc.b $33 ; 3 dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $8A ; ? dc.b $E dc.b $9A ; ? dc.b $E dc.b $9A ; ? dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $B dc.b $66 ; f dc.b $B dc.b $66 ; f dc.b $C dc.b $33 ; 3 dc.b $C dc.b $66 ; f dc.b $C dc.b $66 ; f dc.b $C dc.b $9A ; ? dc.b $C dc.b $D7 ; ? dc.b $D dc.b $14 dc.b $D dc.b $52 ; R dc.b $D dc.b $8F ; ? dc.b $D dc.b $CD ; ? dc.b $E dc.b 0 dc.b $E dc.b $1A dc.b $E dc.b $33 ; 3 dc.b $E dc.b $3D ; = dc.b $E dc.b $4D ; M dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $9A ; ? dc.b $E dc.b $CD ; ? dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b $33 ; 3 dc.b $F dc.b $33 ; 3 dc.b $F dc.b $33 ; 3 dc.b $F dc.b $33 ; 3 dc.b $F dc.b $33 ; 3 dc.b $B dc.b $66 ; f dc.b $B dc.b $66 ; f dc.b $C dc.b $33 ; 3 dc.b $C dc.b $66 ; f dc.b $C dc.b $66 ; f dc.b $C dc.b $9A ; ? dc.b $C dc.b $E6 ; ? dc.b $D dc.b $33 ; 3 dc.b $D dc.b $80 ; ? dc.b $D dc.b $CD ; ? dc.b $E dc.b $1A dc.b $E dc.b $33 ; 3 dc.b $E dc.b $4D ; M dc.b $E dc.b $66 ; f dc.b $E dc.b $80 ; ? dc.b $E dc.b $9A ; ? dc.b $E dc.b $9A ; ? dc.b $E dc.b $CD ; ? dc.b $E dc.b $CD ; ? dc.b $E dc.b $CD ; ? dc.b $E dc.b $CD ; ? dc.b $F dc.b 0 dc.b $F dc.b $33 ; 3 dc.b $F dc.b $66 ; f dc.b $F dc.b $66 ; f dc.b $F dc.b $66 ; f dc.b $F dc.b $66 ; f dc.b $F dc.b $66 ; f dc.b $F dc.b $9A ; ? dc.b $F dc.b $9A ; ? dc.b $F dc.b $9A ; ? dc.b $F dc.b $9A ; ? dc.b $F dc.b $9A ; ? dc.b $B dc.b $66 ; f dc.b $B dc.b $66 ; f dc.b $C dc.b $33 ; 3 dc.b $C dc.b $66 ; f dc.b $C dc.b $66 ; f dc.b $C dc.b $9A ; ? dc.b $C dc.b $F6 ; ? dc.b $D dc.b $52 ; R dc.b $D dc.b $AE ; ? dc.b $E dc.b $A dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $9A ; ? dc.b $E dc.b $CD ; ? dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b $33 ; 3 dc.b $F dc.b $33 ; 3 dc.b $F dc.b $66 ; f dc.b $F dc.b $66 ; f dc.b $F dc.b $66 ; f dc.b $F dc.b $66 ; f dc.b $F dc.b $9A ; ? dc.b $F dc.b $CD ; ? dc.b $F dc.b $CD ; ? dc.b $F dc.b $CD ; ? dc.b $F dc.b $CD ; ? dc.b $F dc.b $CD ; ? dc.b $F dc.b $CD ; ? dc.b $F dc.b $F1 ; ? dc.b $F dc.b $F1 ; ? dc.b $F dc.b $F1 ; ? dc.b $B dc.b $66 ; f dc.b $B dc.b $66 ; f dc.b $C dc.b $CD ; ? dc.b $D dc.b $CD ; ? dc.b $D dc.b $CD ; ? dc.b $E dc.b 0 dc.b $E dc.b $33 ; 3 dc.b $E dc.b $66 ; f dc.b $E dc.b $9A ; ? dc.b $E dc.b $CD ; ? dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b $33 ; 3 dc.b $F dc.b $4D ; M dc.b $F dc.b $66 ; f dc.b $F dc.b $66 ; f dc.b $F dc.b $66 ; f dc.b $F dc.b $9A ; ? dc.b $F dc.b $9A ; ? dc.b $F dc.b $CD ; ? dc.b $F dc.b $CD ; ? dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b $33 ; 3 dc.b $10 dc.b $33 ; 3 dc.b $10 dc.b $33 ; 3 AIRFLOW_K_MAIN_VOLUMETRIC_EFFICIENCY:dc.b $13 ; DATA XREF: sub_79B10+82o ; sub_79B10+666o ... ; The volumetric efficiency term used for modeling the air per cylinder for Dyna-Air calculations. ; gm*K/kPa dc.b $17 dc.b $17 dc.b $2E ; . dc.b $14 dc.b $28 ; ( dc.b $18 dc.b $80 ; ? dc.b $16 dc.b $F6 ; ? dc.b $1A dc.b $CA ; ? dc.b $19 dc.b $3A ; : dc.b $1B dc.b $46 ; F dc.b $1D dc.b $F6 ; ? dc.b $20 dc.b $C3 ; ? dc.b $24 ; $ dc.b $F dc.b $20 dc.b $7B ; { dc.b $1D dc.b 0 dc.b $18 dc.b $94 ; ? dc.b $13 dc.b $D2 ; ? dc.b $F dc.b $A dc.b $F dc.b $A dc.b $F dc.b $A dc.b $F dc.b $A dc.b $F dc.b $A dc.b $14 dc.b $AA ; ? dc.b $18 dc.b $C2 ; ? dc.b $19 dc.b $EA ; ? dc.b $1E dc.b $42 ; B dc.b $1C dc.b $B1 ; ? dc.b $20 dc.b $32 ; 2 dc.b $1D dc.b $E2 ; ? dc.b $20 dc.b $BC ; ? dc.b $24 ; $ dc.b $6F ; o dc.b $26 ; & dc.b $51 ; Q dc.b $28 ; ( dc.b $F dc.b $25 ; % dc.b $AF ; ? dc.b $23 ; # dc.b $4F ; O dc.b $20 dc.b $1F dc.b $1C dc.b $71 ; q dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $16 dc.b $3E ; > dc.b $1A dc.b $55 ; U dc.b $1D dc.b $23 ; # dc.b $1F dc.b $2F ; / dc.b $1E dc.b $A0 ; ? dc.b $22 ; " dc.b $8B ; ? dc.b $20 dc.b $E6 ; ? dc.b $23 ; # dc.b $3E ; > dc.b $26 ; & dc.b $3F ; ? dc.b $28 ; ( dc.b $D1 ; ? dc.b $2B ; + dc.b $1E dc.b $29 ; ) dc.b $9D ; ? dc.b $28 ; ( dc.b $1C dc.b $25 ; % dc.b $CD ; ? dc.b $22 ; " dc.b $52 ; R dc.b $1E dc.b $76 ; v dc.b $1E dc.b $76 ; v dc.b $1E dc.b $76 ; v dc.b $1E dc.b $76 ; v dc.b $1E dc.b $76 ; v dc.b $18 dc.b $DF ; ? dc.b $1B dc.b $D9 ; ? dc.b $1E dc.b $A dc.b $20 dc.b $16 dc.b $20 dc.b $41 ; A dc.b $23 ; # dc.b $26 ; & dc.b $21 ; ! dc.b $5B ; [ dc.b $23 ; # dc.b $B4 ; ? dc.b $26 ; & dc.b $8A ; ? dc.b $29 ; ) dc.b $53 ; S dc.b $2C ; , dc.b $B4 ; ? dc.b $2B ; + dc.b $33 ; 3 dc.b $29 ; ) dc.b $B2 ; ? dc.b $27 ; ' dc.b $14 dc.b $24 ; $ dc.b $24 ; $ dc.b $20 dc.b $1F dc.b $20 dc.b $1F dc.b $20 dc.b $1F dc.b $20 dc.b $1F dc.b $20 dc.b $1F dc.b $19 dc.b $79 ; y dc.b $1C dc.b $72 ; r dc.b $1E dc.b $BE ; ? dc.b $20 dc.b $85 ; ? dc.b $20 dc.b $F2 ; ? dc.b $24 ; $ dc.b 0 dc.b $23 ; # dc.b $7F ;  dc.b $25 ; % dc.b $90 ; ? dc.b $28 ; ( dc.b $2B ; + dc.b $2A ; * dc.b $CB ; ? dc.b $2D ; - dc.b $44 ; D dc.b $2C ; , dc.b $3F ; ? dc.b $2A ; * dc.b $B5 ; ? dc.b $28 ; ( dc.b $5C ; \ dc.b $25 ; % dc.b $9F ; ? dc.b $21 ; ! dc.b $C3 ; ? dc.b $21 ; ! dc.b $C3 ; ? dc.b $21 ; ! dc.b $C3 ; ? dc.b $21 ; ! dc.b $C3 ; ? dc.b $21 ; ! dc.b $C3 ; ? dc.b $1A dc.b $12 dc.b $1D dc.b $B dc.b $1F dc.b $76 ; v dc.b $21 ; ! dc.b $3C ; < dc.b $21 ; ! dc.b $DE ; ? dc.b $25 ; % dc.b $24 ; $ dc.b $25 ; % dc.b $32 ; 2 dc.b $26 ; & dc.b $42 ; B dc.b $28 ; ( dc.b $86 ; ? dc.b $2B ; + dc.b $5F ; _ dc.b $2D ; - dc.b $B5 ; ? dc.b $2C ; , dc.b $CD ; ? dc.b $2B ; + dc.b $39 ; 9 dc.b $29 ; ) dc.b $48 ; H dc.b $26 ; & dc.b $57 ; W dc.b $22 ; " dc.b $AE ; ? dc.b $22 ; " dc.b $AE ; ? dc.b $22 ; " dc.b $AE ; ? dc.b $22 ; " dc.b $AE ; ? dc.b $22 ; " dc.b $AE ; ? dc.b $1C dc.b $71 ; q dc.b $1E dc.b 3 dc.b $1F dc.b $E7 ; ? dc.b $21 ; ! dc.b $AD ; ? dc.b $22 ; " dc.b $C0 ; ? dc.b $26 ; & dc.b $18 dc.b $26 ; & dc.b $2A ; * dc.b $27 ; ' dc.b $3A ; : dc.b $29 ; ) dc.b $22 ; " dc.b $2C ; , dc.b $14 dc.b $2E ; . dc.b $66 ; f dc.b $2D ; - dc.b $7D ; } dc.b $2C ; , dc.b $19 dc.b $2A ; * dc.b $33 ; 3 dc.b $27 ; ' dc.b $14 dc.b $23 ; # dc.b $9A ; ? dc.b $23 ; # dc.b $9A ; ? dc.b $23 ; # dc.b $9A ; ? dc.b $23 ; # dc.b $9A ; ? dc.b $23 ; # dc.b $9A ; ? dc.b $1D dc.b $3B ; ; dc.b $1E dc.b $CD ; ? dc.b $20 dc.b $58 ; X dc.b $22 ; " dc.b $1E dc.b $23 ; # dc.b $A3 ; ? dc.b $26 ; & dc.b $78 ; x dc.b $27 ; ' dc.b $22 ; " dc.b $28 ; ( dc.b $33 ; 3 dc.b $29 ; ) dc.b $BE ; ? dc.b $2C ; , dc.b $C9 ; ? dc.b $2F ; / dc.b $A dc.b $2E ; . dc.b 0 dc.b $2C ; , dc.b $9A ; ? dc.b $2A ; * dc.b $C3 ; ? dc.b $27 ; ' dc.b $A4 ; ? dc.b $24 ; $ dc.b $B3 ; ? dc.b $24 ; $ dc.b $B3 ; ? dc.b $24 ; $ dc.b $B3 ; ? dc.b $24 ; $ dc.b $B3 ; ? dc.b $24 ; $ dc.b $B3 ; ? dc.b $1E dc.b 4 dc.b $1F dc.b $96 ; ? dc.b $21 ; ! dc.b 6 dc.b $23 ; # dc.b $45 ; E dc.b $23 ; # dc.b $CE ; ? dc.b $26 ; & dc.b $D4 ; ? dc.b $27 ; ' dc.b $9E ; ? dc.b $28 ; ( dc.b $61 ; a dc.b $29 ; ) dc.b $E6 ; ? dc.b $2C ; , dc.b $A7 ; ? dc.b $2F ; / dc.b $37 ; 7 dc.b $2E ; . dc.b $6A ; j dc.b $2D ; - dc.b $33 ; 3 dc.b $2B ; + dc.b $4D ; M dc.b $28 ; ( dc.b 0 dc.b $25 ; % dc.b $3D ; = dc.b $25 ; % dc.b $3D ; = dc.b $25 ; % dc.b $3D ; = dc.b $25 ; % dc.b $3D ; = dc.b $25 ; % dc.b $3D ; = dc.b $1E dc.b $A4 ; ? dc.b $20 dc.b $49 ; I dc.b $21 ; ! dc.b $BC ; ? dc.b $23 ; # dc.b $FB ; ? dc.b $24 ; $ dc.b $20 dc.b $26 ; & dc.b $F6 ; ? dc.b $27 ; ' dc.b $ED ; ? dc.b $28 ; ( dc.b $BC ; ? dc.b $2A ; * dc.b $1A dc.b $2C ; , dc.b $C5 ; ? dc.b $2F ; / dc.b $3D ; = dc.b $2E ; . dc.b $97 ; ? dc.b $2D ; - dc.b $80 ; ? dc.b $2B ; + dc.b $7B ; { dc.b $28 ; ( dc.b $5C ; \ dc.b $25 ; % dc.b $9F ; ? dc.b $25 ; % dc.b $9F ; ? dc.b $25 ; % dc.b $9F ; ? dc.b $25 ; % dc.b $9F ; ? dc.b $25 ; % dc.b $9F ; ? dc.b $1F dc.b $61 ; a dc.b $21 ; ! dc.b $36 ; 6 dc.b $22 ; " dc.b $62 ; b dc.b $25 ; % dc.b $C1 ; ? dc.b $24 ; $ dc.b $FC ; ? dc.b $27 ; ' dc.b $1A dc.b $28 ; ( dc.b 4 dc.b $28 ; ( dc.b $E6 ; ? dc.b $2A ; * dc.b $47 ; G dc.b $2C ; , dc.b $9D ; ? dc.b $2F ; / dc.b $43 ; C dc.b $2E ; . dc.b $BF ; ? dc.b $2D ; - dc.b $AE ; ? dc.b $2B ; + dc.b $A9 ; ? dc.b $28 ; ( dc.b $8F ; ? dc.b $25 ; % dc.b $9F ; ? dc.b $25 ; % dc.b $9F ; ? dc.b $25 ; % dc.b $9F ; ? dc.b $25 ; % dc.b $9F ; ? dc.b $25 ; % dc.b $9F ; ? dc.b $20 dc.b $1F dc.b $22 ; " dc.b $22 ; " dc.b $23 ; # dc.b $17 dc.b $26 ; & dc.b $75 ; u dc.b $25 ; % dc.b $9B ; ? dc.b $27 ; ' dc.b $4D ; M dc.b $28 ; ( dc.b $3F ; ? dc.b $29 ; ) dc.b $33 ; 3 dc.b $2A ; * dc.b $60 ; ` dc.b $2C ; , dc.b $AF ; ? dc.b $2F ; / dc.b $48 ; H dc.b $2E ; . dc.b $CD ; ? dc.b $2E ; . dc.b $25 ; % dc.b $2C ; , dc.b 0 dc.b $28 ; ( dc.b $EC ; ? dc.b $26 ; & dc.b 0 dc.b $26 ; & dc.b 0 dc.b $26 ; & dc.b 0 dc.b $26 ; & dc.b 0 dc.b $26 ; & dc.b 0 dc.b $21 ; ! dc.b $38 ; 8 dc.b $22 ; " dc.b $F7 ; ? dc.b $23 ; # dc.b $E0 ; ? dc.b $26 ; & dc.b $D3 ; ? dc.b $26 ; & dc.b $46 ; F dc.b $27 ; ' dc.b $80 ; ? dc.b $28 ; ( dc.b $84 ; ? dc.b $29 ; ) dc.b $7B ; { dc.b $2A ; * dc.b $E8 ; ? dc.b $2C ; , dc.b $DE ; ? dc.b $2F ; / dc.b $4D ; M dc.b $2E ; . dc.b $DA ; ? dc.b $2E ; . dc.b $28 ; ( dc.b $2C ; , dc.b $66 ; f dc.b $29 ; ) dc.b $1A dc.b $26 ; & dc.b $57 ; W dc.b $26 ; & dc.b $57 ; W dc.b $26 ; & dc.b $57 ; W dc.b $26 ; & dc.b $57 ; W dc.b $26 ; & dc.b $57 ; W dc.b $21 ; ! dc.b $C3 ; ? dc.b $23 ; # dc.b $BE ; ? dc.b $24 ; $ dc.b $46 ; F dc.b $27 ; ' dc.b $39 ; 9 dc.b $26 ; & dc.b $6D ; m dc.b $27 ; ' dc.b $B3 ; ? dc.b $28 ; ( dc.b $E5 ; ? dc.b $29 ; ) dc.b $B3 ; ? dc.b $2B ; + dc.b $2A ; * dc.b $2D ; - dc.b $25 ; % dc.b $2F ; / dc.b $79 ; y dc.b $2F ; / dc.b $33 ; 3 dc.b $2E ; . dc.b $6C ; l dc.b $2C ; , dc.b $C8 ; ? dc.b $29 ; ) dc.b $A9 ; ? dc.b $26 ; & dc.b $8A ; ? dc.b $26 ; & dc.b $8A ; ? dc.b $26 ; & dc.b $8A ; ? dc.b $26 ; & dc.b $8A ; ? dc.b $26 ; & dc.b $8A ; ? dc.b $22 ; " dc.b $52 ; R dc.b $24 ; $ dc.b $85 ; ? dc.b $25 ; % dc.b $41 ; A dc.b $27 ; ' dc.b $52 ; R dc.b $26 ; & dc.b $99 ; ? dc.b $27 ; ' dc.b $E1 ; ? dc.b $28 ; ( dc.b $9C ; ? dc.b $29 ; ) dc.b $EB ; ? dc.b $2B ; + dc.b $88 ; ? dc.b $2D ; - dc.b $69 ; i dc.b $30 ; 0 dc.b 0 dc.b $2F ; / dc.b $9A ; ? dc.b $2E ; . dc.b $C3 ; ? dc.b $2D ; - dc.b $24 ; $ dc.b $2A ; * dc.b 0 dc.b $27 ; ' dc.b $14 dc.b $27 ; ' dc.b $14 dc.b $27 ; ' dc.b $14 dc.b $27 ; ' dc.b $14 dc.b $27 ; ' dc.b $14 dc.b $23 ; # dc.b $A dc.b $25 ; % dc.b $3D ; = dc.b $26 ; & dc.b $38 ; 8 dc.b $27 ; ' dc.b $6D ; m dc.b $26 ; & dc.b $C5 ; ? dc.b $27 ; ' dc.b $EA ; ? dc.b $29 ; ) dc.b $28 ; ( dc.b $2A ; * dc.b 8 dc.b $2B ; + dc.b $BD ; ? dc.b $2D ; - dc.b $F1 ; ? dc.b $30 ; 0 dc.b $B9 ; ? dc.b $2F ; / dc.b $F0 ; ? dc.b $2F ; / dc.b $26 ; & dc.b $2D ; - dc.b $80 ; ? dc.b $2A ; * dc.b $8F ; ? dc.b $27 ; ' dc.b $A4 ; ? dc.b $27 ; ' dc.b $A4 ; ? dc.b $27 ; ' dc.b $A4 ; ? dc.b $27 ; ' dc.b $A4 ; ? dc.b $27 ; ' dc.b $A4 ; ? dc.b $24 ; $ dc.b $24 ; $ dc.b $26 ; & dc.b 0 dc.b $26 ; & dc.b $B8 ; ? dc.b $27 ; ' dc.b $D2 ; ? dc.b $26 ; & dc.b $D7 ; ? dc.b $27 ; ' dc.b $F3 ; ? dc.b $29 ; ) dc.b $B5 ; ? dc.b $2A ; * dc.b $94 ; ? dc.b $2C ; , dc.b $19 dc.b $2F ; / dc.b 4 dc.b $31 ; 1 dc.b $FA ; ? dc.b $31 ; 1 dc.b $30 ; 0 dc.b $30 ; 0 dc.b $67 ; g dc.b $2F ; / dc.b $29 ; ) dc.b $2C ; , dc.b $66 ; f dc.b $29 ; ) dc.b $48 ; H dc.b $29 ; ) dc.b $48 ; H dc.b $29 ; ) dc.b $48 ; H dc.b $29 ; ) dc.b $48 ; H dc.b $29 ; ) dc.b $48 ; H dc.b $24 ; $ dc.b $B3 ; ? dc.b $26 ; & dc.b $29 ; ) dc.b $27 ; ' dc.b $14 dc.b $28 ; ( dc.b $2E ; . dc.b $26 ; & dc.b $E7 ; ? dc.b $27 ; ' dc.b $FB ; ? dc.b $2A ; * dc.b $42 ; B dc.b $2B ; + dc.b $21 ; ! dc.b $2C ; , dc.b $B1 ; ? dc.b $30 ; 0 dc.b $17 dc.b $33 ; 3 dc.b $3B ; ; dc.b $32 ; 2 dc.b $71 ; q dc.b $31 ; 1 dc.b $A7 ; ? dc.b $30 ; 0 dc.b $71 ; q dc.b $2D ; - dc.b $E1 ; ? dc.b $2A ; * dc.b $F1 ; ? dc.b $2A ; * dc.b $F1 ; ? dc.b $2A ; * dc.b $F1 ; ? dc.b $2A ; * dc.b $F1 ; ? dc.b $2A ; * dc.b $F1 ; ? dc.b $24 ; $ dc.b $B3 ; ? dc.b $26 ; & dc.b $29 ; ) dc.b $27 ; ' dc.b $14 dc.b $28 ; ( dc.b $2E ; . dc.b $26 ; & dc.b $E7 ; ? dc.b $27 ; ' dc.b $FB ; ? dc.b $2A ; * dc.b $42 ; B dc.b $2B ; + dc.b $21 ; ! dc.b $2C ; , dc.b $B1 ; ? dc.b $30 ; 0 dc.b $17 dc.b $33 ; 3 dc.b $3B ; ; dc.b $32 ; 2 dc.b $71 ; q dc.b $31 ; 1 dc.b $A7 ; ? dc.b $30 ; 0 dc.b $71 ; q dc.b $2D ; - dc.b $E1 ; ? dc.b $2A ; * dc.b $F1 ; ? dc.b $2A ; * dc.b $F1 ; ? dc.b $2A ; * dc.b $F1 ; ? dc.b $2A ; * dc.b $F1 ; ? dc.b $2A ; * dc.b $F1 ; ? AIRFLOW_KV_GAMMA_INIT_COOLANT_BREAKPOINT:dc.w $200 ; DATA XREF: sub_7A60C+6r ; Breakpoints for selection coolant zone for initializing Filtered_VE_Correction_Factor. ; Deg C word_873C: dc.w $600 ; DATA XREF: sub_7A60C:loc_7A61Er AIRFLOW_KA_GAMMA_INIT_TABLE:dc.b $A ; Initialize Filtered_VE_Correction_Factor to this value. ; NONE 0-2 dc.b $8F ; ? dc.b $A dc.b $3D ; = dc.b 9 dc.b $EC ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $71 ; q dc.b 9 dc.b $C3 ; ? dc.b 9 dc.b $71 ; q dc.b 9 dc.b $1F dc.b 8 dc.b $CD ; ? dc.b 8 dc.b $A4 ; ? dc.b 8 dc.b $F6 ; ? dc.b 8 dc.b $A4 ; ? dc.b 8 dc.b $52 ; R dc.b 8 dc.b 0 dc.b 8 dc.b 0 AIRFLOW_K_CYLINDER_VOLUME:dc.w $5AA6 ; DATA XREF: GetGramsPerCylinderViaSpeedDensity:loc_7A520r ; sub_7A99E+20r ; Volume of each cylinder in the engine. ; Liter AIRFLOW_KE_BACKUP_AIR_FLOW_FILTER_COEF:dc.w $14 ; DATA XREF: sub_79B10+16Er ; sub_79B10+21Ar ... ; Use this to filter air flow sensor reading to generate air flow 'prediction' in response to MAP OR TPS failure. ; NONE 0-1 AIRFLOW_KE_HI_SPEED_DYNA_AIR_THRESH:dc.w $5000 ; DATA XREF: sub_79B10+1E4r ; sub_79B10+1F4r ; Engine speed above which a filtered value OF Sensed_Air_Per_Cylinder is used instead of the Dyna-Air prediction. ; RPM AIRFLOW_KE_HI_SPEED_DYNA_AIR_HYSTERESIS:dc.w $200 ; DATA XREF: sub_79B10+1FAr ; Amount by which engine speed must drop below KE_Hi_Speed_Dyna_Air_Thresh before the Dyna_Air prediction is used again. ; RPM AIRFLOW_KE_USE_CHARGE_TEMPERATURE:dc.b 1 ; DATA XREF: sub_7A886r dc.b $FF AIRFLOW_K_DYNA_AIR_COEFFICIENT:dc.b 0 ; Array of corrective factors used to adjust the predicted volume of air that will get into the cylinder. ; Various dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $28 ; ( dc.b $1A dc.b $D dc.b $ED ; ? dc.b $F8 ; ? dc.b $A2 ; ? dc.b $F9 ; ? dc.b $F9 ; ? dc.b 2 dc.b $61 ; a dc.b 3 dc.b $A6 ; ? dc.b 7 dc.b $22 ; " dc.b $F5 ; ? dc.b $D8 ; ? dc.b 3 dc.b 6 dc.b $79 ; y dc.b $71 ; q dc.b $3C ; < dc.b $7C ; | dc.b $10 dc.b $38 ; 8 dc.b $F6 ; ? dc.b $DB ; ? dc.b $FB ; ? dc.b $81 ; ? dc.b 1 dc.b $99 ; ? dc.b 2 dc.b $E6 ; ? dc.b $C dc.b $E7 ; ? dc.b $EB ; ? dc.b 4 dc.b 8 dc.b $15 dc.b $78 ; x dc.b $ED ; ? dc.b $37 ; 7 dc.b $DD ; ? dc.b $F9 ; ? dc.b $24 ; $ dc.b 7 dc.b $80 ; ? dc.b $28 ; ( dc.b $D0 ; ? dc.b $C3 ; ? dc.b $BC ; ? dc.b $13 dc.b $74 ; t dc.b $C dc.b 8 dc.b $F9 ; ? dc.b $C0 ; ? dc.b $FA ; ? dc.b $38 ; 8 dc.b $7F ;  dc.b $5C ; \ dc.b $2A ; * dc.b $AA ; ? dc.b 2 dc.b $8F ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $7D ; } dc.b $71 ; q dc.b $28 ; ( dc.b $7A ; z dc.b $1D dc.b $3E ; > dc.b $EA ; ? dc.b 7 dc.b $F6 ; ? dc.b $41 ; A dc.b 3 dc.b $43 ; C dc.b 6 dc.b $7C ; | dc.b 1 dc.b $B6 ; ? dc.b $FF dc.b $D1 ; ? dc.b $FE ; ? dc.b $79 ; y dc.b $78 ; x dc.b $BB ; ? dc.b $19 dc.b $72 ; r dc.b $E dc.b $66 ; f dc.b $F9 ; ? dc.b $1B dc.b $F9 ; ? dc.b $99 ; ? dc.b 2 dc.b $E9 ; ? dc.b 3 dc.b $7E ; ~ dc.b 2 dc.b $7D ; } dc.b $FF dc.b $69 ; i dc.b $FE ; ? dc.b $1A dc.b $78 ; x dc.b $7F ;  dc.b $13 dc.b $E1 ; ? dc.b 5 dc.b $D2 ; ? dc.b 1 dc.b $A5 ; ? dc.b $FC ; ? dc.b $EB ; ? dc.b 4 dc.b $4D ; M dc.b $FE ; ? dc.b $C8 ; ? dc.b 0 dc.b $6B ; k dc.b 0 dc.b $86 ; ? dc.b $FF dc.b $F dc.b $78 ; x dc.b $89 ; ? dc.b $1B dc.b $63 ; c dc.b 4 dc.b $13 dc.b $FE ; ? dc.b $63 ; c dc.b $F4 ; ? dc.b $C4 ; ? dc.b $D dc.b $96 ; ? dc.b $FD ; ? dc.b $A6 ; ? dc.b 1 dc.b $D3 ; ? dc.b 0 dc.b 3 dc.b $FE ; ? dc.b $2A ; * dc.b $7D ; } dc.b $8A ; ? dc.b $1B dc.b $55 ; U dc.b $23 ; # dc.b $ED ; ? dc.b $E3 ; ? dc.b $35 ; 5 dc.b $FA ; ? dc.b $FC ; ? dc.b 1 dc.b $6A ; j dc.b 3 dc.b $9A ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $78 ; x dc.b $DE ; ? dc.b $13 dc.b $86 ; ? dc.b $F dc.b $90 ; ? dc.b $F7 ; ? dc.b $33 ; 3 dc.b $FE ; ? dc.b $B0 ; ? dc.b 0 dc.b $B7 ; ? dc.b 0 dc.b $99 ; ? dc.b $FF dc.b $D7 ; ? dc.b 1 dc.b $8A ; ? dc.b $FE ; ? dc.b $9F ; ? dc.b $79 ; y dc.b $3D ; = dc.b $1A dc.b $61 ; a dc.b 5 dc.b $C2 ; ? dc.b 1 dc.b $E0 ; ? dc.b $FD ; ? dc.b $6D ; m dc.b 2 dc.b $27 ; ' dc.b 0 dc.b $6C ; l dc.b 1 dc.b $36 ; 6 dc.b $FF dc.b $A8 ; ? dc.b $FF dc.b $22 ; " dc.b $78 ; x dc.b $5E ; ^ dc.b $1C dc.b $99 ; ? dc.b 2 dc.b $BD ; ? dc.b $FF dc.b $AD ; ? dc.b 0 dc.b $E9 ; ? dc.b $FB ; ? dc.b 5 dc.b 4 dc.b $12 dc.b 1 dc.b $56 ; V dc.b 0 dc.b 0 dc.b $FE ; ? dc.b $AA ; ? dc.b $7D ; } dc.b $96 ; ? dc.b $22 ; " dc.b $90 ; ? dc.b $22 ; " dc.b $60 ; ` dc.b $E8 ; ? dc.b $FE ; ? dc.b $FD ; ? dc.b $2D ; - dc.b 0 dc.b $E3 ; ? dc.b 1 dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $74 ; t dc.b $A2 ; ? dc.b $17 dc.b $52 ; R dc.b $F dc.b 1 dc.b $F9 ; ? dc.b $12 dc.b 2 dc.b $6B ; k dc.b $FF dc.b $56 ; V dc.b $FE ; ? dc.b $3F ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $77 ; w dc.b $ED ; ? dc.b $29 ; ) dc.b $82 ; ? dc.b 3 dc.b $86 ; ? dc.b 2 dc.b $7D ; } dc.b 8 dc.b 9 dc.b $FB ; ? dc.b $AC ; ? dc.b $FC ; ? dc.b $4B ; K dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $79 ; y dc.b $FD ; ? dc.b $3A ; : dc.b $47 ; G dc.b 1 dc.b $D3 ; ? dc.b $FE ; ? dc.b $D1 ; ? dc.b $14 dc.b $21 ; ! dc.b $F0 ; ? dc.b $D5 ; ? dc.b $FB ; ? dc.b $A dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $7F ;  dc.b $5C ; \ AIRFLOW_K_INITIAL_OPERATING_ZONE:dc.b 6 ; DATA XREF: sub_7A89E+84r ; Initial engine operating zone. ; Op. Zone # dc.b $FF AIRFLOW_K_WIDE_OPEN_THROTTLE_LO:dc.w $1400 ; DATA XREF: sub_7A65A+14r ; Minumum throttle percentage that is still considered wide open throttle. ; Percent AIRFLOW_K_IDLE_VEHICLE_SPEED_HI:dc.w 0 ; DATA XREF: sub_7A65A+32r ; Maximum vehicle speed that is still considered idle conditions. ; MPH AIRFLOW_K_IDLE_THROTTLE_HI:dc.w 0 ; DATA XREF: sub_7A65A:loc_7A680r ; Maximum throttle percentage that is still considered idle conditions. ; Percent AIRFLOW_K_ENGINE_SPEED_UPPER_BOUND:dc.w $13D2 ; DATA XREF: sub_7A65A+80r ; RPM boundaries between engine speed zones in the operating zones grid. ; RPM unk_88D8: dc.b $28 ; ( dc.b 5 word_88DA: dc.w $3BE1 ; DATA XREF: sub_7A65A:loc_7A6F2r AIRFLOW_KE_ENGINE_SPEED_HYSTERESIS:dc.w $43 ; DATA XREF: sub_7A65A+86r ; sub_7A65A+9Er ... ; RPM boundary hysteresis for changing engine speed zones. ; RPM AIRFLOW_K_MANIFOLD_PRESSURE_UPPER_BOUND:dc.b 5 ; Pressure boundaries between manifold pressure zones in the operating zones grid. ; kPa dc.b $53 ; S dc.b $B dc.b $DB ; ? dc.b $11 dc.b $9C ; ? dc.b 4 dc.b $BA ; ? dc.b $B dc.b $DB ; ? dc.b $11 dc.b $9C ; ? dc.b 4 dc.b $38 ; 8 dc.b $B dc.b $DB ; ? dc.b $11 dc.b $9C ; ? dc.b 4 dc.b $38 ; 8 dc.b $B dc.b $DB ; ? dc.b $11 dc.b $9C ; ? AIRFLOW_KE_MANIFOLD_PRESSURE_HYSTERESIS:dc.w $14 ; DATA XREF: sub_7A65A+110r ; sub_7A65A+13Ar ... ; Pressure boundary hysteresis for changing manifold pressure zones. ; kPa AIRFLOW_K_MAXFLOW_SAFETY_FACTOR:dc.w $83D7 ; DATA XREF: sub_79B10:loc_7A1AAr ; A safety factor multiplied by the calculated maximum air flow limit used on the air flow variables used by the fuel logic. ; NONE 0-2 AIRFLOW_K_DEEP_DECEL_MAP_THRESHOLD:dc.w $3CD ; DATA XREF: sub_7A568+20r ; MAP threshold below which the engine is considered to be in deep deceleration. ; kPa AIRFLOW_K_MODEL_OF_AIR_FILTER_COEF:dc.w $3A ; DATA XREF: sub_79B10+4DAr ; Filter coefficient for the Model_Of_Air_Per_Cylinder term. ; NONE 0-1 AIRFLOW_K_STEADY_STATE_RPM_THRESHOLD:dc.w $3C00 ; DATA XREF: sub_79B10+406r ; sub_79B10+45Ar ; Steady state enable/disable threshold. Used to determine if high MAP or low MAP conditions will be used. ; kPa AIRFLOW_K_STEADY_STATE_MAP_THRESHOLD:dc.w $13CD ; DATA XREF: sub_79B10+3FAr ; sub_79B10+44Er ; Steady state enable/disable threshold. Used to determine if high MAP or low MAP conditions will be used. ; kPa AIRFLOW_K_STEADY_STATE_LOW_MAP_DELTA:dc.w 0 ; DATA XREF: sub_79B10+40Er ; sub_79B10+462r ; If low MAP conditions, delta MAP must equal this to enter steady state. ; kPa AIRFLOW_K_STEADY_STATE_HIGH_MAP_DELTA:dc.w $3D ; DATA XREF: sub_79B10:loc_79F52r ; sub_79B10:loc_79FACr ; Delta MAP criteria for enable/disable of steady state if high MAP conditions. ; kPa AIRFLOW_K_STEADY_STATE_LOW_TPS_DELTA:dc.w $33 ; DATA XREF: sub_79B10:loc_79F84r ; sub_79B10+494r ; Delta TPS for disable of steady state if low MAP conditions. ; Percent AIRFLOW_K_STEADY_STATE_HIGH_TPS_DELTA:dc.w $33 ; DATA XREF: sub_79B10+4A6r ; sub_79B10+4B6r ; Delta TPS for disable of steady state if high MAP conditions. ; Percent AIRFLOW_KE_IDLE_SS_COUNTER_THRESH:dc.b 4 ; DATA XREF: sub_79B10:loc_79E9Er dc.b $FF AIRFLOW_KE_IDLE_SS_INT_THRESH:dc.w $40 ; DATA XREF: sub_79B10+374r ; Change in MAP integrator required to disable steady state IF engine is currently in the steady state condition. ; kPa AIRFLOW_KE_IDLE_SS_MPH_THRESH:dc.w $7D00 ; DATA XREF: sub_79B10+33Er ; Vehicle must be < this to enable the idle steady STATE detection algorithm. ; MPH AIRFLOW_KE_IDLE_SS_TPS_THRESH:dc.w $4D ; DATA XREF: sub_79B10+330r ; Throttle position must be < this to enable the idle steady STATE detection algorithm. ; Percent AIRFLOW_KE_IDLE_TRANS_COUNTER_THRESH:dc.b 9 ; DATA XREF: sub_79B10:loc_79EBAr dc.b $FF AIRFLOW_KE_IDLE_TRANS_INT_THRESH:dc.w $40 ; DATA XREF: sub_79B10+3B4r ; Change in MAP integrator required to disable steady state IF engine is currently NOT in the steady state condition. ; kPa AIRFLOW_K_VE_CORR_FACTOR_FILTER_COEF:dc.w $C ; DATA XREF: sub_7A568+78r ; Filter coefficient for Filtered_VE_Correction_Factor. ; Filt Coef AIRFLOW_K_VE_CORR_FACTOR_LOW_LIMIT:dc.w $400 ; DATA XREF: sub_7A568+84r ; Lower limit of the Filtered_VE_Correction_Factor term. ; NONE 0-2 AIRFLOW_K_VE_CORR_FACTOR_HIGH_LIMIT:dc.w $C00 ; DATA XREF: sub_7A568:loc_7A5FAr ; Upper limit of the Filtered_VE_Correction_Factor term. ; NONE 0-2 AIRFLOW_K_USE_MAX_AIR_FIRST_TIME_IN_1:dc.b 0 ; DATA XREF: sub_79B10+2C6r ; TRUE if Air_Per_Cylinder 1 and 2 ahead are to be set to Maximum_Air_Per_Cylinder when zone 1 is entered. ; BOOLEAN dc.b $FF AIRFLOW_K_VE_CORR_FACTOR_RESET_THRESH:dc.w $866 ; DATA XREF: sub_7A568+3Ar ; Reset Filtered_VE_Correction_Factor to 1.0 if it is less than this calibration when exiting deep deceleration. ; NONE 0-2 AIRFLOW_KE_EGR_DIAG_FINISHED_TIME:dc.w 0 ; DATA XREF: sub_79AB0+38r ; sub_79B10+30Er ; Dyna-Air learn is disabled during an intrusive EGR test and for this long after the intrusive EGR test has finished. ; Seconds AIRFLOW_KE_CRANK_TO_RUN_RATIO:dc.w $20 ; DATA XREF: sub_79B10+796r ; sub_79B10+802r AIR_PUMP_KE_AIR_HOT_RESTART_TIME_ON:dc.w 0 ; DATA XREF: OS1:0002C76Er AIR_PUMP_KE_MAX_TOTAL_PUMP_TIME_ON:dc.w $9600 ; DATA XREF: OS1:loc_2C778r ; AIR system is forced off for the rest of this ignition cycle after being on for a total of this long in this ignition cycle. ; Seconds AIR_PUMP_KE_AIR_DELAY_AFTER_START:dc.w 0 ; DATA XREF: sub_2C6DE+10r ; AIR system is not allowed on until engine has run for this long. ; Seconds AIR_PUMP_KE_AIR_ECT_DISABLE:dc.w $FF00 ; DATA XREF: sub_2C4F4+5Er ; AIR system is not allowed on at this time if coolant temperature is below this. ; Deg C AIR_PUMP_KE_AIR_OVERRUN_DISABLE_THRESHOLD:dc.w $400 ; DATA XREF: sub_2C4F4+66r ; AIR system is disabled when Manifold Pressure is < this AND remains diabled for KE_AIR_Extended_Overrun_Time thereafter. ; kPa AIR_PUMP_KE_AIR_EXTENDED_OVERRUN_TIME:dc.w $A0 ; DATA XREF: sub_2C4F4+7Er AIR_PUMP_KE_AIR_HIGH_RPM_DISABLE_THRESHOL:dc.w $3880 ; DATA XREF: sub_2C4F4:loc_2C598r ; AIR system is disabled when Engine Speed is > this FOR KE_AIR_High_RPM_Time and remains diabled until Engine Speed is <= this. ; RPM AIR_PUMP_KE_AIR_HIGH_RPM_TIME:dc.w $320 ; DATA XREF: sub_2C4F4+B6r ; sub_2C4F4:loc_2C5D2r ... AIR_PUMP_KE_AIR_HIGH_VSS_DISABLE_THRESHOL:dc.w $1E00 ; DATA XREF: sub_2C4F4+ECr AIR_PUMP_KE_AIR_HIGH_MAP_DISABLE_THRESHOL:dc.w $1333 ; DATA XREF: sub_2C4F4+F4r ; ; kPa AIR_PUMP_KE_AIR_PUMP_TURN_ON_DELAY:dc.w $10 ; DATA XREF: sub_2C60E+12r ; Delay turning on AIR pump for this long after turning on AIR solenoid. ; Seconds AIR_PUMP_KE_AIR_PUMP_TURN_OFF_DELAY:dc.w $10 ; DATA XREF: sub_2C60E+4Cr ; Delay turning off AIR pump for this long after turning off AIR solenoid. ; Seconds BAROMETER_KE_BARO_DEFAULT_MAP_FAILED:dc.w $1200 ; DATA XREF: sub_7AD7E:loc_7ADAAr ; sub_7AF40:loc_7AF6Er ; Default barometric pressure used if MAP sensor fails. ; kPa BAROMETER_KE_BARO_TPS_LIMIT:dc.w $780 ; DATA XREF: sub_7AD7E+4Cr ; Minimum throttle position to allow a part throttle barometer update. ; Percent BAROMETER_KE_BARO_TPS_DELTA_LIMIT:dc.w 1 ; DATA XREF: sub_7AD7E:loc_7ADDEr ; Minimum change in throttle position during last 100 mS to allow a part throttle barometer update. ; Percent BAROMETER_KE_BARO_MAP_DELTA_LIMIT:dc.w $F ; DATA XREF: sub_7AD7E:loc_7ADF4r ; Maximum change in manifold pressure during last 100 mS to allow a part throttle barometer update. ; kPa BAROMETER_KE_BARO_STABILITY_TIME:dc.w $10 ; DATA XREF: sub_7AD7E+AAr ; Minimum time MAP and throttle must be stable to allow a part throttle barometer update. ; Seconds BAROMETER_KE_MIN_RPM_FOR_BARO_UPDATE:dc.w $1800 ; DATA XREF: sub_7AD7E+92r ; Minimum RPM at which to allow a barometric pressure update. ; RPM BAROMETER_KE_MAX_RPM_FOR_BARO_UPDATE:dc.w $4800 ; DATA XREF: sub_7AD7E+84r ; Maximum RPM at which to allow a barometric pressure update. ; RPM BAROMETER_KE_MAX_BARO_OFFSET_FOR_UPDATE:dc.w $CD ; DATA XREF: sub_7AD7E+118r ; Maximum calculated barometric pressure offset to allow baro update. ; kPa BAROMETER_KE_BARO_FILTER_COEFFICIENT:dc.b $FF ; DATA XREF: sub_7AD7E+16Cr ; Barometer value update rate lag filter time constant. ; Coefficient dc.b $FF BAROMETER_KV_BARO_OFFSET_FACTOR:dc.b $A ; Scaling factor used to correct the barometer offset value for altitude changes. ; Factor dc.b $66 ; f dc.b $B dc.b $33 ; 3 dc.b $C dc.b 0 dc.b $C dc.b $CD ; ? dc.b $D dc.b $9A ; ? dc.b $E dc.b $66 ; f dc.b $F dc.b $33 ; 3 dc.b $F dc.b $EC ; ? dc.b $10 dc.b 0 BAROMETER_KA_BARO_OFFSET:dc.b $B ; Sea level pressure offset to be added to the part throttle manifold pressure to correct the barometric pressure. ; kPA dc.b 0 dc.b 4 dc.b $CD ; ? dc.b 1 dc.b $9A ; ? dc.b 0 dc.b $7B ; { dc.b 0 dc.b $1A dc.b 0 dc.b $A dc.b 0 dc.b 5 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $D dc.b $29 ; ) dc.b 6 dc.b $B8 ; ? dc.b 3 dc.b $57 ; W dc.b 0 dc.b $AE ; ? dc.b 0 dc.b $2E ; . dc.b 0 dc.b $F dc.b 0 dc.b $A dc.b 0 dc.b 5 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $E dc.b $9A ; ? dc.b $A dc.b $48 ; H dc.b 6 dc.b $33 ; 3 dc.b 1 dc.b $8F ; ? dc.b 0 dc.b $71 ; q dc.b 0 dc.b $2E ; . dc.b 0 dc.b $14 dc.b 0 dc.b $F dc.b 0 dc.b $A dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b $F dc.b $3D ; = dc.b $C dc.b $85 ; ? dc.b 8 dc.b $B3 ; ? dc.b 2 dc.b $8F ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $52 ; R dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $1A dc.b 0 dc.b $12 dc.b 0 dc.b $F dc.b 0 dc.b $A dc.b $10 dc.b $24 ; $ dc.b $D dc.b 0 dc.b $A dc.b $52 ; R dc.b 3 dc.b $AE ; ? dc.b 1 dc.b $3D ; = dc.b 0 dc.b $85 ; ? dc.b 0 dc.b $43 ; C dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $1F dc.b 0 dc.b $1A dc.b 0 dc.b $17 dc.b $10 dc.b $94 ; ? dc.b $D dc.b $C8 ; ? dc.b $B dc.b $E6 ; ? dc.b 5 dc.b $1F dc.b 1 dc.b $D2 ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $66 ; f dc.b 0 dc.b $43 ; C dc.b 0 dc.b $2E ; . dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $1F dc.b $10 dc.b $CD ; ? dc.b $E dc.b $52 ; R dc.b $C dc.b $D7 ; ? dc.b 6 dc.b $57 ; W dc.b 2 dc.b $7B ; { dc.b 1 dc.b $14 dc.b 0 dc.b $94 ; ? dc.b 0 dc.b $5C ; \ dc.b 0 dc.b $43 ; C dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $2E ; . dc.b $11 dc.b $29 ; ) dc.b $E dc.b $E1 ; ? dc.b $D dc.b $B8 ; ? dc.b 7 dc.b $94 ; ? dc.b 3 dc.b $38 ; 8 dc.b 1 dc.b $76 ; v dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $5C ; \ dc.b 0 dc.b $4D ; M dc.b 0 dc.b $43 ; C dc.b $11 dc.b $66 ; f dc.b $F dc.b $9A ; ? dc.b $E dc.b $94 ; ? dc.b 8 dc.b $DC ; ? dc.b 4 dc.b $14 dc.b 1 dc.b $F1 ; ? dc.b 1 dc.b $A dc.b 0 dc.b $AE ; ? dc.b 0 dc.b $7B ; { dc.b 0 dc.b $66 ; f dc.b 0 dc.b $5C ; \ dc.b $11 dc.b $66 ; f dc.b $10 dc.b 0 dc.b $F dc.b $38 ; 8 dc.b $A dc.b $F dc.b 5 dc.b $F dc.b 2 dc.b $80 ; ? dc.b 1 dc.b $5C ; \ dc.b 0 dc.b $E6 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $85 ; ? dc.b 0 dc.b $7B ; { dc.b $11 dc.b $66 ; f dc.b $10 dc.b $66 ; f dc.b $F dc.b $57 ; W dc.b $B dc.b $1F dc.b 5 dc.b $F6 ; ? dc.b 3 dc.b $F dc.b 1 dc.b $BD ; ? dc.b 1 dc.b $1F dc.b 0 dc.b $D2 ; ? dc.b 0 dc.b $A9 ; ? dc.b 0 dc.b $9A ; ? dc.b $11 dc.b $66 ; f dc.b $10 dc.b $66 ; f dc.b $F dc.b $6C ; l dc.b $B dc.b $C3 ; ? dc.b 6 dc.b $CD ; ? dc.b 3 dc.b $9F ; ? dc.b 2 dc.b $14 dc.b 1 dc.b $5C ; \ dc.b 1 dc.b 0 dc.b 0 dc.b $D2 ; ? dc.b 0 dc.b $BD ; ? dc.b $11 dc.b $66 ; f dc.b $10 dc.b $66 ; f dc.b $E dc.b $F1 ; ? dc.b $C dc.b $33 ; 3 dc.b 7 dc.b $6C ; l dc.b 4 dc.b $14 dc.b 2 dc.b $61 ; a dc.b 1 dc.b $94 ; ? dc.b 1 dc.b $29 ; ) dc.b 0 dc.b $F1 ; ? dc.b 0 dc.b $DC ; ? dc.b $11 dc.b $66 ; f dc.b $10 dc.b $66 ; f dc.b $E dc.b $F1 ; ? dc.b $C dc.b $57 ; W dc.b 7 dc.b $B8 ; ? dc.b 4 dc.b $57 ; W dc.b 2 dc.b $8F ; ? dc.b 1 dc.b $B8 ; ? dc.b 1 dc.b $43 ; C dc.b 1 dc.b 5 dc.b 0 dc.b $F1 ; ? dc.b $11 dc.b $66 ; f dc.b $10 dc.b $66 ; f dc.b $E dc.b $F1 ; ? dc.b $C dc.b $8A ; ? dc.b 8 dc.b $F dc.b 4 dc.b $8F ; ? dc.b 2 dc.b $BD ; ? dc.b 1 dc.b $D2 ; ? dc.b 1 dc.b $5C ; \ dc.b 1 dc.b $1F dc.b 1 dc.b 5 dc.b $11 dc.b $66 ; f dc.b $10 dc.b $66 ; f dc.b $E dc.b $F1 ; ? dc.b $C dc.b $8A ; ? dc.b 8 dc.b $F dc.b 4 dc.b $8F ; ? dc.b 2 dc.b $BD ; ? dc.b 1 dc.b $D2 ; ? dc.b 1 dc.b $5C ; \ dc.b 1 dc.b $1F dc.b 1 dc.b 5 dc.b $11 dc.b $66 ; f dc.b $10 dc.b $66 ; f dc.b $E dc.b $F1 ; ? dc.b $C dc.b $8A ; ? dc.b 8 dc.b $F dc.b 4 dc.b $8F ; ? dc.b 2 dc.b $BD ; ? dc.b 1 dc.b $D2 ; ? dc.b 1 dc.b $5C ; \ dc.b 1 dc.b $1F dc.b 1 dc.b 5 dc.b $11 dc.b $66 ; f dc.b $10 dc.b $66 ; f dc.b $E dc.b $F1 ; ? dc.b $C dc.b $8A ; ? dc.b 8 dc.b $F dc.b 4 dc.b $8F ; ? dc.b 2 dc.b $BD ; ? dc.b 1 dc.b $D2 ; ? dc.b 1 dc.b $5C ; \ dc.b 1 dc.b $1F dc.b 1 dc.b 5 BRAKE_TORQUE_CONTROL_KE_TRANSFER_CASE_RATIO:dc.w $800 ; DATA XREF: sub_24716:loc_247D6r ; sub_24716+D8r ... ; Transfer case gear ratio in 4WDLO for calibration application. ; Scaler_8 BRAKE_TORQUE_CONTROL_KE_DRIVELINE_EFFICIENCY:dc.w $6A4 ; DATA XREF: sub_7B33A+E4r ; sub_7B33A+10Cr ; Efficiency of transmission and axle gear multiplication for torque transfer. ; Scaler_1 BRAKE_TORQUE_CONTROL_KE_TCS_FAIL_TRQ_ALLOWED_FACTOR:dc.w $800 ; DATA XREF: sub_7B33A+1DCr ; Scale factor applied to the Engine_Torque_Allowed parameterwhen traction control is known to be inactive. ; Scaler 0-1 BRAKE_TORQUE_CONTROL_KE_BTM_RPM_OVERSPEED_ENABLE_LO:dc.w 0 ; DATA XREF: sub_7B33A+202r ; Once Brake Torque Management is enabled, engine speed must be at least this amount above desired idle speed to maintain BTM. ; RPM BRAKE_TORQUE_CONTROL_KE_BTM_RPM_OVERSPEED_ENABLE_HI:dc.w $400 ; DATA XREF: sub_7B33A:loc_7B544r ; Current engine speed must be at least this amount above desired idle speed to initially enable brake torque management. ; RPM BRAKE_TORQUE_CONTROL_KE_BTM_TORQUE_HYSTERESIS:dc.w 0 ; DATA XREF: sub_7B33A+1F4r ; sub_7B33A:loc_7B67Cr ; Hysteresis on the torque limit applied to prevent cycling in and out of limiting. ; Foot Pounds BRAKE_TORQUE_CONTROL_KE_LOOPS_BETWEEN_RAMP_STEPS:dc.b 2 ; DATA XREF: sub_7B33A+364r ; Number of loops to wait between increases in the ramp out. ; Counts dc.b $FF BRAKE_TORQUE_CONTROL_KE_TORQUE_ALLOW_OFFSET:dc.w 0 ; DATA XREF: sub_7B33A+338r ; Torque offset below the maximum that will set the control target. ; Foot Pounds BRAKE_TORQUE_CONTROL_KE_TORQUE_RAMP:dc.w $400 ; DATA XREF: sub_7B33A+30Er ; sub_7B33A+374r ; Step size of torque when ramping out of brake torque management. ; Foot Pounds BRAKE_TORQUE_CONTROL_KE_BTM_THROTTLE_OPEN:dc.w $1400 ; DATA XREF: sub_7B33A+4Cr BRAKE_TORQUE_CONTROL_KE_BTM_THROTTLE_CLOSED:dc.w $13CD ; DATA XREF: sub_7B33A+5Er BRAKE_TORQUE_CONTROL_KV_BRAKE_CAPACITY_VACUUM:dc.b $3B ; ; ; This defines the maximum torque the vehicle brakes can absorb. It should be entered as an average torque for a single wheel. ; Ft_lbs_vs_kPa dc.b $A6 ; ? dc.b $49 ; I dc.b $CD ; ? dc.b $57 ; W dc.b $F3 ; ? dc.b $66 ; f dc.b $1A dc.b $74 ; t dc.b $40 ; @ dc.b $82 ; ? dc.b $66 ; f dc.b $90 ; ? dc.b $8D ; ? dc.b $9E ; ? dc.b $B3 ; ? dc.b $AC ; ? dc.b $DA ; ? BRAKE_TORQUE_CONTROL_KV_EFFECTIVE_GEAR_RATIO:dc.b $48 ; H dc.b $CD ; ? dc.b $30 ; 0 dc.b $CD ; ? dc.b $23 ; # dc.b $9A ; ? dc.b $1B dc.b $5C ; \ dc.b $14 dc.b $3D ; = dc.b $D dc.b $AE ; ? dc.b $4F ; O dc.b $5C ; \ CONVERTER_KV_COT_INC_TEMPERATURE_FILTER_CO:dc.b 0 ; Filter used to predict current catalytic converter bed temperature when the predicted converter temperature is increasing. ; Multiplier 0-1 dc.b $CD ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f CONVERTER_KV_COT_DEC_TEMPERATURE_FILTER_CO:dc.b 0 ; Filter used to predict current catalytic converter bed temperature when the predicted converter temperature is decreasing. ; Multiplier 0-1 dc.b $29 ; ) dc.b 0 dc.b $52 ; R dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A4 ; ? CONVERTER_KV_COT_DFCO_TEMPERATURE_OFFSET:dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 CONVERTER_KV_COT_EQ_RATIO_TEMP_OFFSET:dc.b $FC ; ? dc.b $9A ; ? dc.b $FD ; ? dc.b $33 ; 3 dc.b $FE ; ? dc.b $33 ; 3 dc.b 0 dc.b 0 dc.b $FF dc.b $1A dc.b $FE ; ? dc.b 0 dc.b $FC ; ? dc.b $E6 ; ? dc.b $FB ; ? dc.b 0 dc.b $F9 ; ? dc.b $4D ; M dc.b $F8 ; ? dc.b $4D ; M dc.b $F7 ; ? dc.b $4D ; M dc.b $F6 ; ? dc.b $4D ; M dc.b $F5 ; ? dc.b $B8 ; ? dc.b $F5 ; ? dc.b $26 ; & dc.b $F4 ; ? dc.b $66 ; f dc.b $F3 ; ? dc.b $B3 ; ? dc.b $F2 ; ? dc.b $CD ; ? CONVERTER_KV_COT_FFS_MULTIPLIER:dc.w $1000 ; DATA XREF: sub_7BC70+202r ; Multiplier to compensate the stabilized temperature for any fuel composition effects on exhaust temperatures ; Scaler 1 dc.b $F dc.b $EC ; ? dc.b $F dc.b $D7 ; ? dc.b $F dc.b $9A ; ? dc.b $F dc.b $5C ; \ CONVERTER_KV_COT_INITIAL_TEMP_SOAK_MULT:dc.w $800 ; DATA XREF: OS3:loc_7C26Er ; soak timer modifier for Converter temperature prediction ; Scaler_2 dc.b 2 dc.b 0 dc.b 1 dc.b $A dc.b 0 dc.b $66 ; f dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R CONVERTER_KV_COT_RETARDED_SPARK_OFFSET:dc.l off_0+$200 ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b 3 dc.b 0 dc.b 4 dc.b 0 dc.b 5 dc.b 0 dc.b 6 dc.b 0 dc.b 7 dc.b 0 dc.b 8 dc.b 0 dc.b 9 dc.b 0 dc.b $A dc.b 0 dc.b $B dc.b 0 CONVERTER_KV_COT_VEH_SPEED_TEMP_OFFSET:dc.b 0 ; A prediction of the difference in stabilized catalytic converterbed temperature relative to the speed of the vehicle. ; Degrees_C dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 CONVERTER_KE_COT_TEMPERATURE_COOL_THRESHOL:dc.w $800 ; DATA XREF: OS3:0007C29Cr CONVERTER_KE_COT_TEMPERATURE_INITIAL:dc.w $2800 ; DATA XREF: OS3:0007C2A4r ; If the coolant temperature is larger than this calibration, thenthe converter temperature is initialized to this calibration. ; Degrees_C_S CONVERTER_KA_COT_TEMPERATURE_STOICH_STABLE:dc.b $2C ; , ; A prediction of the stabilized catalytic converter bed .temperature based on air-fuel ratio. ; Degrees_C dc.b $66 ; f dc.b $34 ; 4 dc.b 0 dc.b $3C ; < dc.b $9A ; ? dc.b $44 ; D dc.b 0 dc.b $4B ; K dc.b $1A dc.b $4D ; M dc.b $80 ; ? dc.b $4F ; O dc.b $1A dc.b $50 ; P dc.b $1A dc.b $51 ; Q dc.b 0 dc.b $51 ; Q dc.b $E6 ; ? dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b $B3 ; ? dc.b $53 ; S dc.b 0 dc.b $53 ; S dc.b $1A dc.b $53 ; S dc.b 0 dc.b $53 ; S dc.b 0 dc.b $53 ; S dc.b 0 dc.b $53 ; S dc.b 0 dc.b $53 ; S dc.b $33 ; 3 dc.b $53 ; S dc.b $33 ; 3 dc.b $52 ; R dc.b $80 ; ? dc.b $2E ; . dc.b $E6 ; ? dc.b $37 ; 7 dc.b $1A dc.b $3E ; > dc.b $E6 ; ? dc.b $45 ; E dc.b $80 ; ? dc.b $4C ; L dc.b $CD ; ? dc.b $4E ; N dc.b $E6 ; ? dc.b $50 ; P dc.b $CD ; ? dc.b $51 ; Q dc.b $CD ; ? dc.b $52 ; R dc.b $66 ; f dc.b $53 ; S dc.b $66 ; f dc.b $54 ; T dc.b $1A dc.b $54 ; T dc.b $80 ; ? dc.b $54 ; T dc.b $B3 ; ? dc.b $54 ; T dc.b $B3 ; ? dc.b $54 ; T dc.b $80 ; ? dc.b $54 ; T dc.b $80 ; ? dc.b $54 ; T dc.b $9A ; ? dc.b $54 ; T dc.b $9A ; ? dc.b $54 ; T dc.b $9A ; ? dc.b $54 ; T dc.b $CD ; ? dc.b $54 ; T dc.b $33 ; 3 dc.b $33 ; 3 dc.b 0 dc.b $3A ; : dc.b $66 ; f dc.b $42 ; B dc.b 0 dc.b $48 ; H dc.b $B3 ; ? dc.b $4E ; N dc.b $E6 ; ? dc.b $50 ; P dc.b $E6 ; ? dc.b $53 ; S dc.b $66 ; f dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b $B3 ; ? dc.b $55 ; U dc.b $1A dc.b $55 ; U dc.b $B3 ; ? dc.b $56 ; V dc.b $1A dc.b $56 ; V dc.b $4D ; M dc.b $56 ; V dc.b $66 ; f dc.b $56 ; V dc.b $80 ; ? dc.b $56 ; V dc.b $66 ; f dc.b $56 ; V dc.b $66 ; f dc.b $56 ; V dc.b $66 ; f dc.b $56 ; V dc.b $66 ; f dc.b $56 ; V dc.b $33 ; 3 dc.b $56 ; V dc.b $33 ; 3 dc.b $37 ; 7 dc.b $80 ; ? dc.b $3D ; = dc.b $4D ; M dc.b $44 ; D dc.b $1A dc.b $4A ; J dc.b $66 ; f dc.b $50 ; P dc.b $80 ; ? dc.b $52 ; R dc.b $66 ; f dc.b $54 ; T dc.b $4D ; M dc.b $55 ; U dc.b $4D ; M dc.b $56 ; V dc.b $4D ; M dc.b $57 ; W dc.b $66 ; f dc.b $57 ; W dc.b $CD ; ? dc.b $58 ; X dc.b $33 ; 3 dc.b $58 ; X dc.b $1A dc.b $58 ; X dc.b $33 ; 3 dc.b $58 ; X dc.b $33 ; 3 dc.b $58 ; X dc.b $1A dc.b $58 ; X dc.b 0 dc.b $58 ; X dc.b 0 dc.b $58 ; X dc.b 0 dc.b $58 ; X dc.b 0 dc.b $58 ; X dc.b 0 dc.b $3F ; ? dc.b $80 ; ? dc.b $40 ; @ dc.b $80 ; ? dc.b $45 ; E dc.b $9A ; ? dc.b $4B ; K dc.b $CD ; ? dc.b $52 ; R dc.b 0 dc.b $53 ; S dc.b $CD ; ? dc.b $55 ; U dc.b $33 ; 3 dc.b $56 ; V dc.b $9A ; ? dc.b $57 ; W dc.b $9A ; ? dc.b $58 ; X dc.b $9A ; ? dc.b $59 ; Y dc.b $80 ; ? dc.b $59 ; Y dc.b $B3 ; ? dc.b $59 ; Y dc.b $CD ; ? dc.b $59 ; Y dc.b $B3 ; ? dc.b $59 ; Y dc.b $80 ; ? dc.b $59 ; Y dc.b $80 ; ? dc.b $59 ; Y dc.b $4D ; M dc.b $59 ; Y dc.b $4D ; M dc.b $59 ; Y dc.b $4D ; M dc.b $59 ; Y dc.b $4D ; M dc.b $59 ; Y dc.b $4D ; M dc.b $44 ; D dc.b $80 ; ? dc.b $44 ; D dc.b $80 ; ? dc.b $47 ; G dc.b $E6 ; ? dc.b $4D ; M dc.b $9A ; ? dc.b $53 ; S dc.b $80 ; ? dc.b $54 ; T dc.b $E6 ; ? dc.b $56 ; V dc.b $66 ; f dc.b $57 ; W dc.b $CD ; ? dc.b $59 ; Y dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5B ; [ dc.b $1A dc.b $5B ; [ dc.b $B3 ; ? dc.b $5B ; [ dc.b $CD ; ? dc.b $5B ; [ dc.b $80 ; ? dc.b $5B ; [ dc.b $33 ; 3 dc.b $5B ; [ dc.b $33 ; 3 dc.b $5A ; Z dc.b $E6 ; ? dc.b $5A ; Z dc.b $E6 ; ? dc.b $5A ; Z dc.b $E6 ; ? dc.b $5A ; Z dc.b $CD ; ? dc.b $5A ; Z dc.b $CD ; ? dc.b $47 ; G dc.b 0 dc.b $47 ; G dc.b 0 dc.b $49 ; I dc.b $9A ; ? dc.b $4E ; N dc.b $CD ; ? dc.b $54 ; T dc.b $9A ; ? dc.b $55 ; U dc.b $B3 ; ? dc.b $57 ; W dc.b $80 ; ? dc.b $59 ; Y dc.b 0 dc.b $5A ; Z dc.b $33 ; 3 dc.b $5B ; [ dc.b $4D ; M dc.b $5C ; \ dc.b $66 ; f dc.b $5C ; \ dc.b $E6 ; ? dc.b $5D ; ] dc.b $1A dc.b $5D ; ] dc.b $1A dc.b $5D ; ] dc.b $4D ; M dc.b $5D ; ] dc.b $66 ; f dc.b $5D ; ] dc.b $4D ; M dc.b $5D ; ] dc.b $33 ; 3 dc.b $5D ; ] dc.b $33 ; 3 dc.b $5D ; ] dc.b 0 dc.b $5C ; \ dc.b $E6 ; ? dc.b $49 ; I dc.b $80 ; ? dc.b $49 ; I dc.b $80 ; ? dc.b $4B ; K dc.b $CD ; ? dc.b $4F ; O dc.b $E6 ; ? dc.b $55 ; U dc.b $E6 ; ? dc.b $57 ; W dc.b 0 dc.b $58 ; X dc.b $B3 ; ? dc.b $59 ; Y dc.b $E6 ; ? dc.b $5B ; [ dc.b $4D ; M dc.b $5C ; \ dc.b $9A ; ? dc.b $5D ; ] dc.b $9A ; ? dc.b $5E ; ^ dc.b $66 ; f dc.b $5F ; _ dc.b 0 dc.b $5F ; _ dc.b $33 ; 3 dc.b $5F ; _ dc.b $4D ; M dc.b $5F ; _ dc.b $4D ; M dc.b $5F ; _ dc.b $4D ; M dc.b $5F ; _ dc.b $4D ; M dc.b $5F ; _ dc.b $4D ; M dc.b $5F ; _ dc.b $33 ; 3 dc.b $5F ; _ dc.b $33 ; 3 dc.b $4C ; L dc.b $1A dc.b $4C ; L dc.b $1A dc.b $4D ; M dc.b $33 ; 3 dc.b $51 ; Q dc.b $33 ; 3 dc.b $56 ; V dc.b $E6 ; ? dc.b $58 ; X dc.b $B3 ; ? dc.b $5A ; Z dc.b $1A dc.b $5B ; [ dc.b $33 ; 3 dc.b $5C ; \ dc.b $80 ; ? dc.b $5D ; ] dc.b $E6 ; ? dc.b $5E ; ^ dc.b $E6 ; ? dc.b $5F ; _ dc.b $E6 ; ? dc.b $60 ; ` dc.b $9A ; ? dc.b $60 ; ` dc.b $CD ; ? dc.b $60 ; ` dc.b $E6 ; ? dc.b $61 ; a dc.b $4D ; M dc.b $61 ; a dc.b $33 ; 3 dc.b $61 ; a dc.b $4D ; M dc.b $61 ; a dc.b $9A ; ? dc.b $61 ; a dc.b $9A ; ? dc.b $61 ; a dc.b $9A ; ? dc.b $4E ; N dc.b $4D ; M dc.b $4E ; N dc.b $66 ; f dc.b $4F ; O dc.b $80 ; ? dc.b $52 ; R dc.b $9A ; ? dc.b $58 ; X dc.b $66 ; f dc.b $59 ; Y dc.b $CD ; ? dc.b $5B ; [ dc.b $4D ; M dc.b $5C ; \ dc.b $E6 ; ? dc.b $5E ; ^ dc.b $4D ; M dc.b $5F ; _ dc.b $66 ; f dc.b $60 ; ` dc.b $33 ; 3 dc.b $61 ; a dc.b $4D ; M dc.b $62 ; b dc.b 0 dc.b $62 ; b dc.b $33 ; 3 Flag_0x01_B0701___Catalytic_Converter_Protection_Enable:dc.b $62 ; b dc.b $4D ; M dc.b $62 ; b dc.b $B3 ; ? dc.b $62 ; b dc.b $B3 ; ? dc.b $62 ; b dc.b $B3 ; ? dc.b $62 ; b dc.b $CD ; ? Constant16_B0702___Catalytic_Converter_Protection_Low_Temp:dc.b $62 ; b dc.b $B3 ; ? Constant16_B0703___Catalytic_Converter_Protection_Medium_Temp:dc.b $62 ; b dc.b $B3 ; ? Constant16_B0704___Catalytic_Converter_Protection_High_Temp:dc.b $50 ; P dc.b $9A ; ? Constant16_B0705___Catalytic_Converter_Protection_Extreme_Temp:dc.b $50 ; P dc.b $9A ; ? Constant16______________Catalytic_Converter_Protection_Minimal_Enrichment:dc.b $51 ; Q dc.b $4D ; M Constant16______________Catalytic_Converter_Protection_Maximal_Enrichment:dc.b $54 ; T dc.b $80 ; ? dc.b $59 ; Y dc.b $E6 ; ? dc.b $5B ; [ dc.b $4D ; M dc.b $5C ; \ dc.b $CD ; ? dc.b $5E ; ^ dc.b $33 ; 3 dc.b $5F ; _ dc.b $B3 ; ? dc.b $60 ; ` dc.b $E6 ; ? dc.b $61 ; a dc.b $CD ; ? dc.b $62 ; b dc.b $9A ; ? dc.b $63 ; c dc.b $1A dc.b $63 ; c dc.b $4D ; M dc.b $63 ; c dc.b $80 ; ? dc.b $63 ; c dc.b $CD ; ? dc.b $63 ; c dc.b $80 ; ? dc.b $63 ; c dc.b $CD ; ? dc.b $63 ; c dc.b $E6 ; ? dc.b $63 ; c dc.b $E6 ; ? dc.b $64 ; d dc.b 0 dc.b $52 ; R dc.b $9A ; ? dc.b $52 ; R dc.b $9A ; ? dc.b $52 ; R dc.b $E6 ; ? dc.b $56 ; V dc.b $80 ; ? dc.b $5B ; [ dc.b $4D ; M dc.b $5C ; \ dc.b $9A ; ? dc.b $5E ; ^ dc.b $66 ; f dc.b $5F ; _ dc.b $CD ; ? dc.b $61 ; a dc.b $1A dc.b $62 ; b dc.b $1A Constant16_B0501___Canister_Purge_Min_Temp:dc.b $63 ; c dc.b $1A Constant16_B0502___Canister_Purge_Min_Speed_KPH:dc.b $63 ; c dc.b $CD ; ? Constant16_B0503___Canister_Purge_Min_Airflow:dc.b $64 ; d dc.b $33 ; 3 Constant32_B0504___Canister_Purge_Min_Run_Time:dc.b $64 ; d dc.b $4D ; M dc.b $64 ; d dc.b $80 ; ? dc.b $65 ; e dc.b 0 dc.b $64 ; d dc.b $B3 ; ? dc.b $65 ; e dc.b 0 dc.b $65 ; e dc.b $1A dc.b $65 ; e dc.b 0 dc.b $65 ; e dc.b $33 ; 3 Flag_0x01_B0505___Canister_Purge_During_Open_Loop:dc.b $54 ; T dc.b $4D ; M dc.b $54 ; T dc.b $4D ; M dc.b $54 ; T dc.b $1A dc.b $57 ; W dc.b $CD ; ? dc.b $5C ; \ dc.b $33 ; 3 dc.b $5D ; ] dc.b $B3 ; ? dc.b $5F ; _ dc.b $1A dc.b $60 ; ` dc.b $80 ; ? dc.b $61 ; a dc.b $9A ; ? dc.b $62 ; b dc.b $9A ; ? dc.b $63 ; c dc.b $9A ; ? dc.b $64 ; d dc.b $4D ; M dc.b $64 ; d dc.b $B3 ; ? dc.b $65 ; e dc.b $1A dc.b $65 ; e dc.b $66 ; f dc.b $65 ; e dc.b $B3 ; ? dc.b $65 ; e dc.b $E6 ; ? dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b $33 ; 3 dc.b $66 ; f dc.b $33 ; 3 dc.b $66 ; f dc.b $66 ; f dc.b $55 ; U dc.b $9A ; ? dc.b $55 ; U dc.b $9A ; ? dc.b $55 ; U dc.b $33 ; 3 dc.b $59 ; Y dc.b $4D ; M dc.b $5E ; ^ dc.b 0 dc.b $5F ; _ dc.b 0 dc.b $60 ; ` dc.b $66 ; f dc.b $61 ; a dc.b $66 ; f dc.b $62 ; b dc.b $80 ; ? dc.b $63 ; c dc.b $80 ; ? dc.b $64 ; d dc.b $66 ; f dc.b $65 ; e dc.b $1A dc.b $65 ; e dc.b $9A ; ? CurveTable_17_Rows_B0506___Canister_Purge_Flow_vs_Vacuum:dc.b $66 ; f dc.b $1A dc.b $66 ; f dc.b $80 ; ? dc.b $66 ; f dc.b $E6 ; ? dc.b $67 ; g dc.b 0 dc.b $67 ; g dc.b $1A dc.b $67 ; g dc.b $33 ; 3 dc.b $67 ; g dc.b $33 ; 3 dc.b $67 ; g dc.b $66 ; f dc.b $56 ; V dc.b $4D ; M dc.b $56 ; V dc.b $4D ; M dc.b $56 ; V dc.b $66 ; f dc.b $5A ; Z dc.b $4D ; M dc.b $5F ; _ dc.b $4D ; M dc.b $60 ; ` dc.b $1A dc.b $61 ; a dc.b $66 ; f dc.b $62 ; b dc.b $4D ; M dc.b $63 ; c dc.b $80 ; ? dc.b $64 ; d dc.b $4D ; M dc.b $65 ; e dc.b $33 ; 3 dc.b $65 ; e dc.b $CD ; ? dc.b $66 ; f dc.b $9A ; ? dc.b $67 ; g dc.b $1A dc.b $67 ; g dc.b $80 ; ? dc.b $67 ; g dc.b $E6 ; ? dc.b $68 ; h dc.b $1A dc.b $68 ; h dc.b $1A dc.b $68 ; h dc.b $1A dc.b $68 ; h dc.b $1A dc.b $68 ; h dc.b $1A CONVERTER_KE_COT_THROTTLE_OPENED:dc.w $100 ; DATA XREF: sub_7BC70+72r ; sub_7BC70:loc_7C1D2r ; Throttle position >= this allows immediate update OF catalytic converter temperature. ; Percent CONVERTER_KE_COT_THROTTLE_CLOSED:dc.w $9A ; DATA XREF: sub_7BC70+2Cr ; sub_7BC70+552r ; Throttle position <= this causes airflow to determine timing of catalytic converter temperature update. ; Percent CONVERTER_KE_COT_AIRFLOW_DELTA:dc.w $C00 ; DATA XREF: sub_7BC70+44r ; Airflow dropping >= this IN one seconds causes delay OF catalytic converter temperature update. ; gm/S CONVERTER_KE_COT_TEMPERATURE_DELAY_TIME:dc.w $320 ; DATA XREF: sub_7BC70:loc_7BCC4r ; Overrun causes delay of this length in catalytic converter temperature update. ; Seconds CONVERTER_KE_COT_EQ_RATIO_DEC_FILTER_LIMIT:dc.w $40A ; DATA XREF: sub_7BC70+2C8r CONVERTER_KE_COT_DEC_TEMP_FILTER_RICH_RATE:dc.w $1800 ; DATA XREF: sub_7BC70+2D0r CONVERTER_KE_COT_HOT_DETERMINATION_ENABLE:dc.b 1 ; DATA XREF: sub_7BC70:loc_7BF94r ; COT hot determination is activated IFF this is TRUE. ; BOOLEAN dc.b $FF CONVERTER_KE_COT_HOT_TIME_THRESHOLD:dc.w $640 ; DATA XREF: sub_7BC70+36Er ; sub_7BC70:loc_7BFECr ; If the catalytic converter temperature is above KE_COT_Temperature_High for this time, then the converter is too high. ; Seconds CONVERTER_KE_COT_1PERCENT_TIME_THRESHOLD:dc.w $1680 ; DATA XREF: sub_7BC70+342r CONVERTER_KE_COT_1PERCENT_CYCLE_TIME:dc.l unk_8CA00 ; DATA XREF: sub_7BC70+416r CONVERTER_KE_COT_TEMPERATURE_LOW:dc.w $5300 ; DATA XREF: sub_7BC70:loc_7C03Cr ; The lowest catalytic converter temperature protection threshold. ; Degrees_C_S CONVERTER_KE_COT_TEMPERATURE_MEDIUM:dc.w $5400 ; DATA XREF: sub_7BC70+45Cr ; sub_7BC70:loc_7C100r ; The second catalytic converter temperature protection threshold. ; Degrees_C_S CONVERTER_KE_COT_TEMPERATURE_HIGH:dc.w $5500 ; DATA XREF: sub_7BC70+32Er ; The third catalytic converter temperature protection threshold. ; Degrees_C_S CONVERTER_KE_COT_TEMPERATURE_EXTREME:dc.w $5C00 ; DATA XREF: sub_7BC70:loc_7BFD2r ; The Highest catalytic converter temperature protection threshold. ; Degrees_C_S CONVERTER_KE_COT_MIN_EQ_ALLOWED:dc.w $41A ; DATA XREF: sub_7BC70:loc_7C184r ; sub_7BC70+52Ar ... ; Minimum amount of fueling that COT will try to deliver. Have this minimum help to get back to closed loop fuel sooner. ; Equiv_Ratio_Type CONVERTER_KE_COT_MAX_EQ_ALLOWED:dc.w $500 ; DATA XREF: sub_7BC70:loc_7C170r ; Maximum amount of authority the COT EQ offset can have. ; Equiv_Ratio_Type CONVERTER_KV_COT_BARO_MULTIPLIER:dc.b $10 dc.b $7B ; { dc.b $10 dc.b $52 ; R dc.b $10 dc.b $29 ; ) dc.b $10 dc.b 0 dc.b $10 dc.b 0 CONVERTER_KV_COT_INC_COEF_TEMP_DELTA_MULT:dc.b $10 ; Multiplier on the COT increasing filter coeff based on delta between COT stabilized and 1 second old converter temperature. ; Mult_0_to_1 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 CONVERTER_KV_COT_EQ_RATIO_OFFSET:dc.l off_0+$1F ; ???. ; Equiv_Ratio_Type dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $2E ; . dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $3D ; = dc.b 0 dc.b $43 ; C dc.b 0 dc.b $48 ; H dc.b 0 dc.b $4D ; M dc.b 0 dc.b $52 ; R dc.b 0 dc.b $57 ; W dc.b 0 dc.b $5C ; \ dc.b 0 dc.b $61 ; a dc.b 0 dc.b $66 ; f CCP_KE_CCP_COOLANT_TEMPERATURE:dc.w $300 ; DATA XREF: sub_2CC22+104r ; Coolant Temperature threshold above which purge may beenabled ; Degrees_C CCP_KE_CCP_VEHICLE_SPEED_FILTERED:dc.w $500 ; DATA XREF: sub_2CC22+116r ; Vehicle Speed threshold above which purge may be enabled ; MPH CCP_KE_CCP_MASS_AIRFLOW:dc.w $600 ; DATA XREF: sub_2CC22+122r ; Mass Airflow threshold above which purge may be enabled ; Grams Per Second CCP_KE_CCP_ENGINE_RUN_TIME:dc.l unk_3E80 ; DATA XREF: sub_2CC22:loc_2CD4Cr ; Continuous Engine Run Time threshold above whichPurge may be enabled ; Seconds CCP_KE_COOLANT_TEMPERATURE_STARTRUN:dc.w $700 ; DATA XREF: OS1:0002D772r ; OS1:0002D7DEr ; Coolant Threshold for determining purge enable delay startfrom closed loop entry. ; Degrees_C CCP_KE_COLD_START_CLOSED_LOOP_TIME:dc.w $2580 ; DATA XREF: OS1:0002D77Ar ; OS1:0002D7E6r ; Purge Enable Delay after going closed loop if a coldstart occurred. ; Seconds CCP_KE_WARM_START_CLOSED_LOOP_TIME:dc.w $640 ; DATA XREF: OS1:loc_2D784r ; OS1:loc_2D7F0r ; Purge Enable Delay after closed loop if a warm start occurred. ; Seconds CCP_KE_CCP_COOLANT_STARTRUN:dc.w $500 ; DATA XREF: OS1:loc_2D78Cr ; OS1:loc_2D7F8r ; Coolant Threshold for determining purge enable delay from closed loop or open loop fuel control if selected. ; Degrees_C CCP_KE_CCP_COLD_OPEN_LOOP_TIME:dc.w $5DC0 ; DATA XREF: OS1:0002D794r ; OS1:0002D800r ; Purge Enable Delay after engine run if a cold startoccurred. ; Seconds CCP_KE_CCP_WARM_OPEN_LOOP_TIME:dc.w $1C20 ; DATA XREF: OS1:loc_2D7A0r ; OS1:loc_2D80Ar ; Purge Enable Delay after engine run if a warm startoccurred. ; Seconds CCP_KE_CCP_OPEN_LOOP_PURGE_ENABLE:dc.b 0 ; DATA XREF: sub_2CC22+4Er ; Bit selectable flag for purging when fuel control is in openloop. To be used primarily for exports without oxygensensors. ; BOOLEAN CCP_KE_CYLINDERS_ENABLED_ALLOW_CCP:dc.b 8 ; DATA XREF: sub_2CC22+64r ; Number of cylinders that must be enabled to allowCanister Purge. ; CCP_KE_CANISTER_PURGE_OXYGEN_INITIAL:dc.w $19A ; DATA XREF: OS1:0002D7CEr ; Initial Value of Oxygen Multiplier ; Unitless CCP_KV_CANISTER_OXYGEN_VOLTAGE_HIGH:dc.b $56 ; V ; High Oxygen Sensor Voltage threshold used to set the direction of Oxygen Purge Adjustment to decrease and the rate of learning. ; MilliVolts dc.b $66 ; f dc.b $56 ; V dc.b $66 ; f CCP_KE_CCP_MIN_OXYGEN_ADJUST:dc.w 0 ; DATA XREF: sub_2CC22:loc_2CF50r ; sub_2CC22+3C8r ; Minimum allowable value of the Canister_Purge_Oxygen_Adjustmultiplier. ; Unitless CCP_KE_CCP_OPEN_LOOP_OXYGEN_ADJUST:dc.w $1000 ; DATA XREF: sub_2CC22+18Er ; Default value of the Canister_Purge_Oxygen_Adjust factor whenpurge is being performed in open loop fuel control. ; Unitless 0-2 CCP_KE_CCP_SHORT_DELAY_RATE:dc.w $50 ; DATA XREF: sub_2CC22+24Er ; Short delay time between multiplier learns if oxygen voltage is high for a calibrated amount of time. ; Seconds CCP_KE_CCP_LEARN_RATE_NORMAL:dc.w $40 ; DATA XREF: sub_2CC22+26Ar ; sub_2CC22:loc_2CEA8r ; Time delay between oxygen multiplier learns if the multiplier is increasing. ; Seconds CCP_KE_CCP_LEARN_RATE_MULTIPLIER:dc.w $800 ; DATA XREF: sub_2CC22+270r CCP_KV_CANISTER_OXYGEN_VOLTAGE_LOW:dc.b $3F ; ? ; Low Oxygen voltage threshold that is used to determinethe direction of the oxygen multiplier. ; Millivolts dc.b $5C ; \ dc.b $3F ; ? dc.b $5C ; \ CCP_KA_CCP_OXYGEN_ADJUST_SIZE:dc.b 0 ; Step size for oxygen multiplier when the oxygen voltagehas not been high for a calibrated amount of time. ; Unitless dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F CCP_KV_CCP_OXYGEN_ADJUST_TIMED_SIZE:dc.l unk_A000A ; Step size for oxygen multiplier when the oxygen voltagehas been high for a calibrated amount of time. ; Unitless CCP_KE_CCP_CHOOSE_OXYGEN_DATA:dc.b 0 ; DATA XREF: sub_2CC22:loc_2CDBCr ; Choose what oxygen data to be used if no oxygen faultsare present. ; Unitless dc.b $FF CCP_KE_CCP_MAX_FLOW:dc.w $90 ; DATA XREF: sub_2CC1Ar ; Largest value in the KV_CCP_Max_Allowed_Purge_Flow table i.e. the maximum allowed purge flow at any manifold vacuum ; GPS CCP_KE_CCP_PRESSURE_HIGH:dc.w $49A ; DATA XREF: sub_2D6D2+6r ; Manifold pressure upper threshold for enabling purge onceit has been disabled. ; kPa CCP_KE_CCP_PRESSURE_LOW:dc.w $433 ; DATA XREF: sub_2D6D2:loc_2D6E0r ; Manifold pressure lower threshold for disabling purge onceit has been enabled. ; kPa CCP_KE_CCP_VACUUM_HIGH:dc.w $19A ; DATA XREF: sub_2D6FA+6r ; Manifold vacuum upper threshold for enabling purge onceit has been disabled. ; kPa CCP_KE_CCP_VACUUM_LOW:dc.w $B3 ; DATA XREF: sub_2D6FA:loc_2D708r ; Manifold vacuum lower threshold for disabling purge onceit has been enabled. ; kPa CCP_KV_CCP_OXYGEN_VOLTAGE_HIGH_TIME:dc.w $A0 ; DATA XREF: sub_2CC22:loc_2CE22r ; Time of which the oxygen voltage must remain high to use a short delay rate for multiplier learning ; Seconds dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ CCP_KV_CCP_MAX_ALLOWED_PURGE_FLOW:dc.w 0 ; DATA XREF: sub_2CC22:loc_2CEC4r ; Maximum allowed purge flow value as a function ofmanifold vacuum. ; GPS dc.b 0 dc.b $2E ; . dc.b 0 dc.b $53 ; S dc.b 0 dc.b $6A ; j dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? CCP_KV_CCP_BASE_DESIRED_PURGE_FLOW:dc.w 0 ; DATA XREF: sub_2CC22:loc_2CEFAr ; Determines the canister purge desired base flow ; GPS dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $86 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $7A ; z dc.b 0 dc.b $7A ; z dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s dc.b 0 dc.b $73 ; s CCP_KA_CCP_MAX_OXYGEN_ADJUST:dc.b $C ; Maximum allowed value for oxygen multiplier ; Unitless dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $D dc.b $9A ; ? dc.b $E dc.b $66 ; f dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $E dc.b $66 ; f dc.b $C dc.b $CD ; ? dc.b $C dc.b 0 dc.b 9 dc.b $9A ; ? dc.b 6 dc.b $66 ; f dc.b 5 dc.b $1F dc.b 4 dc.b $CD ; ? dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $D dc.b $9A ; ? dc.b $E dc.b $66 ; f dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $E dc.b $66 ; f dc.b $C dc.b $CD ; ? dc.b $C dc.b 0 dc.b 9 dc.b $9A ; ? dc.b 6 dc.b $66 ; f dc.b 5 dc.b $1F dc.b 4 dc.b $CD ; ? dc.b 4 dc.b 0 dc.b 4 dc.b 0 CCP_KE_CCP_OPEN_LOOP_BLM_ADJUST:dc.w $1000 ; DATA XREF: sub_2CC22+462r ; Default value of the BLM adjust factor whenpurge is being performed in open loop fuel control. ; Unitless 0-2 CCP_KE_CCP_MAX_BLM_SENSOR_ADJUST:dc.w $1000 ; DATA XREF: sub_2CC22:loc_2D12Er ; Minimum allowed BLM multiplier for canister purge. ; Unitless CCP_KE_CCP_MIN_BLM_SENSOR_ADJUST:dc.w $800 ; DATA XREF: sub_2CC22:loc_2D0C2r ; sub_2CC22:loc_2D124r ; ; Unitless CCP_KV_CANISTER_BLM_HIGH_THRESHOLD:dc.b 7 ; BLM Threshold that must be exceeded to have BLMMultiplier to increase. ; Unitless dc.b $1F dc.b 7 dc.b $1F CCP_KE_CCP_INITIAL_BLM_ADJUST:dc.w $1000 ; DATA XREF: OS1:loc_2D812r ; BLM purge learn multiplier initial value at powerup andstartrun. ; Unitless CCP_KV_CANISTER_BLM_LOW_THRESHOLD:dc.b 6 ; BLM must be below this threshold to have BLMMultiplier to decrease. ; Unitless dc.b $A0 ; ? dc.b 6 dc.b $A0 ; ? CCP_KV_CCP_BLM_ADJUST_SIZE:dc.l unk_80008 ; BLM Purge Learn Multiplier step size ; Unitless CCP_KE_CANISTER_PURGE_CHOOSE_BLM:dc.b 0 ; DATA XREF: sub_2CC22:loc_2D042r ; sub_2D1C4+256r ; Choose what BLM data is to be used if no closed loopresets are present. ; Unitless dc.b $FF CCP_KE_BLM_INITIAL_VALUE:dc.w $800 ; DATA XREF: sub_2CC22+418r ; Value the BLM data will assume when Closed Loopreset for both banks occur ; Scaler_2 CCP_KE_CCP_PE_MULTIPLIER:dc.w $1000 ; DATA XREF: sub_2D1C4+11Cr ; Power enrichment multiplier for CCP total adjust. ; Unitless 0-1 CCP_KE_CCP_COT_MULTIPLIER:dc.w $1000 ; DATA XREF: sub_2D1C4+12Ar ; Converter Too Hot multiplier for CCP total adjust. ; Unitless 0-1 CCP_KE_HRP_HOLD_ACTIVE_TIME:dc.w 0 ; DATA XREF: sub_2D1C4+5Ar ; sub_2D1C4+7Ar ; Amount of time HRP is held active before decay to zero. ; Seconds CCP_KE_HRP_EXIT_DECAY_TIME:dc.w 0 ; DATA XREF: sub_2D1C4+66r ; sub_2D1C4+8Er ... ; HRP is decayed to zero in this amount of time. ; Seconds CCP_KV_CCP_BASE_FLOW_OFF_IDLE_MAF:dc.w 0 ; DATA XREF: sub_2D1C4:loc_2D33Ar ; This is the calibrated Base Flow Off Idle based on Mass Airflow ; GPS dc.b 0 dc.b $F dc.b 0 dc.b $17 dc.b 0 dc.b $3F ; ? dc.b 0 dc.b $6A ; j dc.b 0 dc.b $8D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? CCP_KV_CCP_BASE_FLOW_IDLE_MAF:dc.w 0 ; DATA XREF: sub_2D1C4:loc_2D30Cr ; Calibrated Base Flow Idle based on Mass Airflow ; GPS dc.l unk_A000E dc.b 0 dc.b $11 dc.b 0 dc.b $14 dc.b 0 dc.b $1D dc.b 0 dc.b $26 ; & dc.b 0 dc.b $2E ; . dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $43 ; C CCP_KV_CANISTER_PURGE_DUTY_CYCLE:dc.w 0 ; DATA XREF: sub_2D1C4:loc_2D2BEr ; sub_2D1C4:loc_2D394r ; Establishes the nonignition voltage limited canister purge duty cycle. ; Percent dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 0 dc.b 3 dc.b $77 ; w dc.b 4 dc.b $16 dc.b 4 dc.b $B5 ; ? dc.b 5 dc.b $54 ; T dc.b 5 dc.b $F3 ; ? dc.b 6 dc.b $92 ; ? dc.b 7 dc.b $31 ; 1 dc.b 7 dc.b $D0 ; ? dc.b 8 dc.b $70 ; p dc.b 9 dc.b $F dc.b 9 dc.b $AE ; ? dc.b $A dc.b $4D ; M dc.b $A dc.b $EC ; ? dc.b $B dc.b $8B ; ? dc.b $C dc.b $2A ; * dc.b $C dc.b $C9 ; ? dc.b $D dc.b $68 ; h CurveTable_22_Rows_B0507___Canister_Purge_Flow_MAP_Multiplier:dc.b $E dc.b 7 dc.b $E dc.b $A6 ; ? dc.b $F dc.b $46 ; F dc.b $F dc.b $E4 ; ? dc.b $10 dc.b $84 ; ? dc.b $11 dc.b $23 ; # dc.b $11 dc.b $C2 ; ? dc.b $12 dc.b $61 ; a dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 CCP_KE_CCP_DUTY_CYCLE_CHANGE_LIMIT:dc.w $33 ; DATA XREF: sub_2D4F2:loc_2D522r ; Maximum delta the purge solenoid duty cycle can change eachloop by. If change exceeds this limit, the new value isfiltered in. ; Percent CCP_KE_CCP_VEHICLE_SPEED_THRESHOLD:dc.w $A00 ; DATA XREF: sub_2D4F2:loc_2D52Cr ; Speed at which the CCP filter coefficient decides to use thehigh speed coefficient table or the low speed coefficienttable. ; MPH CCP_KV_CCP_LOW_SPEED_CCP_CLOSING_COE:dc.w $100 ; DATA XREF: sub_2D4F2:loc_2D5DCr ; Filter coefficient based on a low vehicle speed and massairflow Calibration. ; Coeff. dc.b 1 dc.b 0 dc.b 0 dc.b $66 ; f dc.b 0 dc.b $D dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $80 ; ? CCP_KV_CCP_HIGH_SPEED_CCP_CLOSING_CO:dc.w $C0 ; DATA XREF: sub_2D4F2:loc_2D552r ; Filter coefficient based on a high vehicle speed and massairflow Calibration. ; Coeff. dc.b 0 dc.b $C0 ; ? dc.b 0 dc.b $4D ; M dc.b 0 dc.b $26 ; & dc.b 0 dc.b $26 ; & dc.b 0 dc.b $4D ; M dc.b 0 dc.b $73 ; s dc.b 0 dc.b $8D ; ? dc.b 0 dc.b $8D ; ? CCP_KV_CCP_LOW_SPEED_CCP_OPENING_COE:dc.w $100 ; DATA XREF: sub_2D4F2:loc_2D5B0r ; Filter coefficient based on a low vehicle speed and massairflow Calibration. ; Coeff. dc.b 1 dc.b 0 dc.b 0 dc.b $66 ; f dc.b 0 dc.b $D dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $80 ; ? CCP_KV_CCP_HIGH_SPEED_CCP_OPENING_CO:dc.w $100 ; DATA XREF: sub_2D4F2:loc_2D584r ; Filter coefficient based on a high vehicle speed and massairflow Calibration. ; Coeff. dc.b 1 dc.b 0 dc.b 0 dc.b $66 ; f dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $66 ; f dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $B3 ; ? dc.b 0 dc.b $B3 ; ? CCP_KV_CCP_DUTY_CYCLE_MINIMUM:dc.w 0 ; DATA XREF: sub_2CC22:loc_2CFA4r ; sub_2CC22:loc_2D0FCr ... ; Minimum allowed canister purge duty cycle. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $9A ; ? dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 0 dc.b 0 CCP_KV_CCP_VACUUM_MULTIPLIER:dc.w 0 ; DATA XREF: sub_2D1C4+196r ; Canister Purge compensation for Manifold Vacuum. ; Unitless dc.b $C dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 CCP_KE_VENT_VALVE_STRIKE_CYCLE_PERIO:dc.w $20 ; DATA XREF: sub_2D620+54r ; sub_2D620:loc_2D67Cr ; Period for each extra close-open cycle of vent valve on open-to-closed transitions. ; Seconds CCP_KE_VENT_VALVE_STRIKE_CYCLE_LIMIT:dc.b 3 ; DATA XREF: sub_2D620+1Er ; Number of extra close-open cycles of vent valve on open-to-closed transitions. ; Unitless dc.b $FF CCP_KE_CCP_TPS_LOW_FOR_IDLE:dc.w 0 ; DATA XREF: sub_2CB78:loc_2CBEEr ; Lower threshold of throttle position to disable purge. ; Percent CCP_KE_CCP_TPS_HIGH_FOR_IDLE:dc.w 0 ; DATA XREF: sub_2CB78+62r ; Upper threshold of throttle position to re-enable purge. ; Percent CCP_KV_PURGE_VEHICLE_SPEED_HYST_HIGH:dc.l loc_780 ; Upper threshold of vehicle speed which will re-enable purge. ; MPH CCP_KV_PURGE_VEHICLE_SPEED_HYST_LOW:dc.l unk_600 ; Lower threshold of vehicle speed which will disable purge. ; MPH CCP_KE_IDLE_PURGE_PWRUP_IAT_THRESH:dc.w $333 ; DATA XREF: sub_2CB78+Er ; Induction air temperature threshold above which is deemed warm enough to not delay idle purge at all. ; Degrees_C CCP_KE_IDLE_PURGE_PWRUP_COOL_THRESH:dc.w $480 ; DATA XREF: sub_2CB78+1Ar CCP_KE_IDLE_PURGE_WARM_DELAY_TIME:dc.l loc_C80 ; DATA XREF: sub_2CB78+22r ; Calibration time to delay purging if delay is desired and conditions are relatively warm. ; Seconds_L CCP_KV_IDLE_PURGE_COLD_DELAY_TIME:dc.l unk_8CA00 ; Calibration time to delay purging if delay is desiredand conditions are relatively cold. ; Seconds_L dc.l loc_69780 dc.l loc_46500 dc.l loc_2EE00 dc.l unk_1C200 dc.l FUEL_EQ_KV_PARK_DRIVE_DELAY_TIME ; Amount of time after PRNDL shifts into drive before adding park to drive enrichment. ; Seconds dc.l unk_ABE0 dc.l unk_5DC0 dc.l off_12C0 dc.l off_12C0 dc.l off_12C0 dc.l off_12C0 dc.l off_12C0 dc.l off_12C0 dc.l off_12C0 dc.l off_12C0 CCP_KE_HRP_MIN_SOAK_TIMER_TO_ENABLE:dc.l 0 ; DATA XREF: sub_2CC22+574r ; Disable hot restart purge mode if engine has not soaked for atleast this amount of time. ; Seconds_L CCP_KE_HRP_MAX_SOAK_TIMER_TO_DISABLE:dc.l 0 ; DATA XREF: sub_2CC22+57Cr ; Disable hot restart purge mode if engine has soaked for more than this time. ; Seconds_L CCP_KE_HRP_MIN_PERCENTAGE_ETHANOL:dc.w 0 ; DATA XREF: sub_2CC22+588r CCP_KE_HRP_ENGINE_OIL_TEMPERATURE:dc.w 0 ; DATA XREF: OS1:0002D87Er ; Enable hot restart purge mode if estimated oil temperature is greater than this value + other conditions must be satisfied. ; Degrees_C CCP_KE_HRP_COOLANT_TEMPERATURE:dc.w $DFF ; DATA XREF: OS1:0002D88Ar ; Enable hot restart purge mode if coolant temperature is greater than this value + other conditions must be satisfied. ; Degrees_C CCP_KE_HRP_INDUCTION_AIR_TEMPERATURE:dc.w $DFF ; DATA XREF: OS1:0002D896r ; Enable hot restart purge mode if induction air temperature is greater than this value + other conditions must be satisfied. ; Degrees_C CCP_KE_HRP_BLM_ADJUST_LIMIT:dc.w 0 ; DATA XREF: OS1:0002D8A2r ; Enable hot restart purge mode if canister purge BLM adjust is <= this value + other conditions must be satisfied. ; Scaler 0-2 CCP_KE_HRP_PLM_LIMIT:dc.w 0 ; DATA XREF: OS1:0002D8AEr ; OS1:0002D8BAr ; Enable hot restart purge mode if either Purge Learn Multiplier (Bank1/2) is <= this value + other conditions must be satisfied. ; Scaler 0-2 CCP_KE_HRP_IDLE_BLM_LIMIT:dc.w 0 ; DATA XREF: OS1:0002D8C2r CCP_KA_HRP_PURGE_FLOW:dc.b 0 ; IMPORTANT: Remember to ramp out. Purge flow based on engine run time and vacuum when hot restart purge mode is active. ; Gram_Per_Second dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 Constant16_B1201___Abuse_Management_Upper_RPM_Threshold_in_Gear:dc.b 0 dc.b 0 Constant16_B1202___Abuse_Management_Lower_RPM_Threshold_in_Gear:dc.b 0 dc.b 0 Constant16_B1203___Abuse_Management_Upper_RPM_Threshold_in_P_N:dc.b 0 dc.b 0 Constant16_B1204___Abuse_Management_Lower_RPM_Threshold_in_P_N:dc.b 0 dc.b 0 Constant16_B1205___Abuse_Management_TPS_Upper_Threshold:dc.b 0 dc.b 0 Constant16_B1206___Abuse_Management_TPS_Lower_Threshold:dc.b 0 dc.b 0 Constant16_B1207___Abuse_Management_Vehicle_Speed_Threshold:dc.b 0 dc.b 0 Constant16_B1208___Abuse_Management_Commanded_Fuel:dc.b 0 dc.b 0 dc.b 0 dc.b 0 CurveTable_16_Rows_B1209___Abuse_Management_Time:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 CCP_KE_CCP_MODE_TPS_LOW:dc.w 0 ; DATA XREF: sub_2CC22:loc_2D168r ; Lower threshold of throttle position hysteresis for CCP Mode. ; Percent CCP_KE_CCP_MODE_TPS_HIGH:dc.w 0 ; DATA XREF: sub_2CC22+538r ; Upper threshold of throttle position hysteresis for CCP Mode. ; Percent CCP_KE_CCP_MODE_VSS_LOW:dc.w 0 ; DATA XREF: sub_2CC22+54Cr ; Lower threshold of vehicle speed hysteresis for CCP Mode. ; MPH CCP_KE_CCP_MODE_VSS_HIGH:dc.w 0 ; DATA XREF: sub_2CC22+53Er ; Upper threshold of vehicle speed hysteresis for CCP Mode. ; MPH CCP_KE_CCP_REDUCTION_INTEGRAL:dc.l $7A12000 ; DATA XREF: sub_2D1C4+248r ; Volume of purge flow which must accumulate before flow reduction can start ; Grams CCP_KE_CCP_BLM_REDUCTION_DELTA:dc.w $1000 ; DATA XREF: sub_2D1C4:loc_2D46Cr ; Delta limit allowed between purge and non-purge fuel control cells. ; Scaler_2 CCP_KE_CCP_FLOW_REDUCTION_HYST_TIME:dc.w $FFFF ; DATA XREF: sub_2D1C4:loc_2D484r ; Hysteresis time for flow reduction mode. ; Seconds CCP_KE_CCP_REDUCTION_LIMIT:dc.w $1400 ; DATA XREF: sub_2D1C4+2FEr ; sub_2D1C4+306r ; Maximum allowed canister purge duty cycle during purge reduction. ; Percent CRUIS_CONTROL_KE_LOW_SPEED_INHIBIT:dc.w $C00 ; DATA XREF: sub_75FCA+9Er ; sub_75FCA+506r ... ; Filtered vehicle speed below which transitional cruisemodes can not be established ; MPH CRUIS_CONTROL_KE_HIGH_SPEED_INHIBIT:dc.w $5280 ; DATA XREF: sub_75FCA+A6r ; sub_76A4E+38Er ... ; Filtered vehicle speed above which transitional cruisemodes can not be established ; MPH CRUIS_CONTROL_KE_CRUISE_INTEGRATOR_HIGH:dc.w $400 ; DATA XREF: sub_76516:loc_767D2r ; Integrator maximum value while cruise is engaged ; MPH CRUIS_CONTROL_KE_CRUISE_INTEGRATOR_LOW:dc.w $FC00 ; DATA XREF: sub_76516:loc_767E2r ; Integrator minimum value while cruise is engaged ; MPH CRUIS_CONTROL_KE_CRUISE_POWER_LIMIT:dc.w $1200 ; DATA XREF: sub_75FCA:loc_763E2r ; Maximum desired power that cruise can request ; Percent CRUIS_CONTROL_KE_HYSTERESIS:dc.w $20 ; DATA XREF: sub_75FCA+2FCr ; Hysteresis constant ; MPH CRUIS_CONTROL_KE_CRUISE_INTEGRATOR_GAIN:dc.w $266 ; DATA XREF: sub_76516:loc_76742r ; Integrator gain when not in Resume or Accel modes. ; Scaler 0-1 CRUIS_CONTROL_KE_SCHEDULED_ACCEL_GAIN_OVER:dc.w $E ; DATA XREF: sub_76516+1C6r ; Overspeed scheduled acceleration rate gain ; MPH_PER_SECOND CRUIS_CONTROL_KE_SCHEDULED_ACCEL_GAIN_UNDER:dc.w $E ; DATA XREF: sub_76516+202r ; Underspeed scheduled acceleration rate gain ; MPH_PER_SECOND CRUIS_CONTROL_KE_LOCKUP_CLAMP_HIGH:dc.w $80 ; DATA XREF: sub_76516+30Ar ; The high limit that the Lockup_Integrator is clamped to ; MPH CRUIS_CONTROL_KE_LOCKUP_CLAMP_LOW:dc.w $FF80 ; DATA XREF: sub_76516:loc_76830r ; The low limit that the Lockup_Integrator is clamped to ; MPH CRUIS_CONTROL_KE_LOCKUP_INT_FILTER:dc.w $1994 ; DATA XREF: sub_76516+2FCr ; Filter coefficient for the lockup integrator for the cruisecontrol algorithm ; Seconds CRUIS_CONTROL_KE_LOCKUP_POWER_LIMIT:dc.w $B9A ; DATA XREF: sub_76516+2ECr ; The percentage of desired power above which theLockup_Integrator should not be updated. ; Percent CRUIS_CONTROL_KE_CRUISE_VEH_SPEED_DELTA_HIGH:dc.w $13 ; DATA XREF: sub_76516:loc_7678Cr ; sub_76516+27Er ; Acceleration error minimum value and maximum integratordecrement per 100ms ; MPH per 100ms CRUIS_CONTROL_KE_CRUISE_VEH_SPEED_DELTA_LOW:dc.w $FFED ; DATA XREF: sub_76516:loc_7679Cr ; sub_76516+28Er ; Acceleration error maximum value and maximum integratorincrement per 100ms ; MPH per 100ms CRUIS_CONTROL_KE_CRUISE_GEAR_COMP_OFFSET:dc.w $100 ; DATA XREF: sub_75FCA:loc_7615Er ; sub_75FCA:loc_7621Cr ; DC offset to gear compensation term for cruise control ; MPH CRUIS_CONTROL_KE_CRUISE_GEAR_RAMP_IN:dc.w $F0 ; DATA XREF: sub_75FCA+1B2r ; sub_75FCA+27Er ; Length of time over which the gear compensation termfor cruise control will be ramped in. ; Seconds CRUIS_CONTROL_KE_CRUISE_GEAR_RAMP_OUT:dc.w $FF00 ; DATA XREF: sub_75FCA:loc_7618Er CRUIS_CONTROL_KE_CRUISE_GEAR_COMPENSATION:dc.b 7 ; DATA XREF: sub_75FCA+148r ; Gear to be compensated for, in the cruise control algorithm- normally highest gear in a manual vehicle. ; Gear 1st to 6th dc.b $FF CRUIS_CONTROL_KV_CRUISE_BARO_COMPENSATION:dc.w $C52 ; DATA XREF: sub_75FCA+400r ; Adjusts the cruise desired power to compensate for ambientpressure. ; Scaler dc.b $A dc.b $A4 ; ? dc.b 9 dc.b $71 ; q dc.b 8 dc.b $66 ; f dc.b 7 dc.b $9A ; ? CRUIS_CONTROL_KV_GAIN_TABLE:dc.b $14 ; Effective Speed Error vs Cruise Desired Power, Gain Table 0 ; Percent dc.b 0 dc.b $14 dc.b 0 dc.b $12 dc.b $4D ; M dc.b $10 dc.b $9A ; ? dc.b $E dc.b $E6 ; ? dc.b $D dc.b $33 ; 3 dc.b $B dc.b $80 ; ? dc.b 9 dc.b $CD ; ? dc.b 8 dc.b $1A dc.b 6 dc.b $66 ; f dc.b 4 dc.b $B3 ; ? dc.b 3 dc.b 0 dc.b 1 dc.b $4D ; M dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $3A ; : dc.b 0 dc.b $29 ; ) dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 CRUIS_CONTROL_KV_HIGH_DECEL_RATE:dc.b $F8 ; ? ; The deceleration rate below which a cruise disengagewill be performed ; MPH_PER_SECOND_S dc.b $80 ; ? dc.b $F8 ; ? dc.b $80 ; ? dc.b $F8 ; ? dc.b $80 ; ? dc.b $F8 ; ? dc.b $80 ; ? dc.b $F8 ; ? dc.b $80 ; ? dc.b $F8 ; ? dc.b $80 ; ? dc.b $F8 ; ? dc.b $80 ; ? dc.b $F8 ; ? dc.b $80 ; ? dc.b $F8 ; ? dc.b $80 ; ? dc.b $F8 ; ? dc.b $80 ; ? dc.b $F8 ; ? dc.b $80 ; ? dc.b $F8 ; ? dc.b $80 ; ? CRUIS_CONTROL_KV_HIGH_ACCEL_RATE:dc.b 5 ; The accel rate above which a cruise disengagewill be performed ; MPH_PER_SECOND dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 CRUIS_CONTROL_KV_UNDER_SCHEDULE_DISENGAGE:dc.b $FB ; ? ; Speed error as a function of vehicle speed below whichcruise will be disengaged ; MPH_S dc.b $80 ; ? dc.b $FB ; ? dc.b 0 dc.b $FA ; ? dc.b $C0 ; ? dc.b $FA ; ? dc.b $80 ; ? dc.b $FA ; ? dc.b $40 ; @ dc.b $FA ; ? dc.b 0 dc.b $F9 ; ? dc.b $C0 ; ? dc.b $F9 ; ? dc.b $80 ; ? dc.b $F9 ; ? dc.b $40 ; @ dc.b $F9 ; ? dc.b 0 dc.b $F8 ; ? dc.b $C0 ; ? dc.b $F8 ; ? dc.b $80 ; ? CRUIS_CONTROL_KV_VARIABLE_GAIN_WITH_SPEED:dc.b 8 dc.b 0 dc.b 9 dc.b $9A ; ? dc.b $B dc.b $33 ; 3 dc.b $C dc.b $CD ; ? dc.b $E dc.b $66 ; f dc.b $10 dc.b 0 dc.b $12 dc.b $66 ; f dc.b $14 dc.b $CD ; ? dc.b $15 dc.b $9A ; ? dc.b $15 dc.b $9A ; ? dc.b $15 dc.b $9A ; ? dc.b $15 dc.b $9A ; ? CRUIS_CONTROL_KV_CRUISE_GEAR_COMP_GAIN:dc.b $38 ; 8 ; Integrator multiplier used for gear compensation for cruisecontrol. ; Scaler dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $34 ; 4 dc.b $92 ; ? dc.b $31 ; 1 dc.b $25 ; % dc.b $2D ; - dc.b $B7 ; ? dc.b $2A ; * dc.b $49 ; I dc.b $26 ; & dc.b $DB ; ? dc.b $23 ; # dc.b $6E ; n dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 CRUIS_CONTROL_KV_VELOCITY_COMPENSATION:dc.l off_0+$18 ; ; MPH dc.b 0 dc.b $4E ; N dc.b 0 dc.b $6D ; m dc.b 0 dc.b $B7 ; ? dc.b 1 dc.b 1 dc.b 1 dc.b $32 ; 2 dc.b 1 dc.b $6D ; m dc.b 1 dc.b $A0 ; ? dc.b 1 dc.b $FF dc.b 2 dc.b $3A ; : dc.b 2 dc.b $93 ; ? CRUIS_CONTROL_KE_CRUISE_VEH_ACCEL_FILTER:dc.w $1AEC ; DATA XREF: sub_76516+62r ; Filter coefficient for vehicle acceleration for the cruisecontrol algorithm ; Seconds CRUIS_CONTROL_KE_CRUISE_VEH_SPEED_FILTER:dc.w $A00 ; DATA XREF: sub_75FCA+5Cr ; Filter coefficient for vehicle speed for the cruise controlalgorithm ; Seconds CRUIS_CONTROL_KE_HIGH_SPEED_DISENGAGE:dc.w $5500 ; DATA XREF: sub_75FCA+118r ; Maximum allowed cruise speed cruise disengage ; MPH CRUIS_CONTROL_KE_LOW_SPEED_DISENGAGE:dc.w $A00 ; DATA XREF: sub_75FCA:loc_760F2r ; Minimum allowed cruise speed cruise disengage ; MPH CRUIS_CONTROL_KE_OVERSPEED_DISENGAGE:dc.w $4B00 ; DATA XREF: sub_75FCA+102r ; Maximum overspeed value allowed without a cruise disengage ; MPH CRUIS_CONTROL_KE_PERFORM_BRK_OR_CLUTCH_TEST:dc.b 1 ; DATA XREF: sub_75FCA+18r ; Brake before cruise security option. If TRUE, the brakeinput must be asserted before cruise can be enabled ; BOOLEAN dc.b $FF CRUIS_CONTROL_KE_CRUISE_EFF_SPD_ERROR_MAX:dc.w $500 ; DATA XREF: sub_76844+28r ; OS3:0007694Cr ; Maximum value effective speed error can be. ; MPH CRUIS_MANAGE_KE_TAP_UP_VS_ACCEL_TIME:dc.w $78 ; DATA XREF: sub_75FCA+26Ar ; sub_76A4E+4E4r CRUIS_MANAGE_KE_ACCEL_TERMINATION_OVERSHOOT:dc.w $80 ; DATA XREF: sub_77472+B4r ; sub_77472+11Er ... CRUIS_MANAGE_KE_ACCEL_COMP_R_A:dc.w $800 ; DATA XREF: sub_76A4E:loc_76EBEr ; sub_76A4E+504r ... ; Calibration used to scale vehicle acceleration into Demand Register during a resume. ; Scaler CRUIS_MANAGE_KE_RESUME_IGNORE_RA_TIME:dc.w $F0 ; DATA XREF: sub_76A4E+34Cr CRUIS_MANAGE_KE_RESUME_VS_ACCEL_TIME:dc.w $F0 ; DATA XREF: sub_76A4E+572r ; sub_77472+F2r ... CRUIS_MANAGE_KE_CRUISE_SET_TIME:dc.w 6 ; DATA XREF: sub_76A4E+1F0r ; The minimum amount of time the S/C switch must be depressedin order to move to engaged upon the release of the switch. ; Seconds CRUIS_MANAGE_KE_CRUISE_SWITCH_FAIL_TIME:dc.w $3840 ; DATA XREF: sub_76A4E+34r ; sub_76A4E+B4r ; If S/C or R/A switch is continuously depressed for greaterthan this amount of time, diagnostic P0567/P0568 will befailed. ; Seconds CRUIS_MANAGE_KE_CRUISE_SWITCH_PASS_TIME:dc.w $320 ; DATA XREF: sub_76A4E+70r ; sub_76A4E+F0r CRUIS_MANAGE_KE_ACCEL_COMP_S_C:dc.w $3000 ; DATA XREF: sub_76A4E:loc_76C06r ; sub_76A4E+202r ; Calibration used to scale vehicle acceleration into Demand Register during a set. ; Scaler CRUIS_MANAGE_KE_TAP_DOWN_TIMEOUT:dc.w $1E0 ; DATA XREF: sub_76A4E+2AEr CRUIS_MANAGE_KE_TAP_DOWN_SPEED_HIGH:dc.w $280 ; DATA XREF: sub_76A4E+2C4r CRUIS_MANAGE_KE_TAP_DOWN_VS_COAST_TIME:dc.w $50 ; DATA XREF: sub_76A4E+5FCr CRUIS_MANAGE_KE_TAP_DOWN_WINS:dc.w $F0 ; DATA XREF: sub_76A4E+1B0r CRUIS_MANAGE_KE_TAP_INCREMENT:dc.w $80 ; DATA XREF: sub_76A4E+2E4r ; sub_76A4E+2F6r ... ; The tap up/down increment to memory speed and demand register. ; MPH CRUIS_MANAGE_KE_TAP_UP_SPEED_HIGH:dc.w $500 ; DATA XREF: sub_76A4E+380r ; sub_77472+54r CRUIS_MANAGE_KE_TAP_UP_SPEED_LOW:dc.w $FB00 ; DATA XREF: sub_76A4E+376r CRUIS_MANAGE_KE_TAP_UP_WINS:dc.w $F0 ; DATA XREF: sub_77472+D4r CRUIS_MANAGE_KV_ACCEL_STEP_FROM_SBE:dc.b 0 ; An additional term added to the Demand Register at the initiation of an Accel in order to obtain more Desired Power. ; MPH dc.b $80 ; ? dc.b 0 dc.b $74 ; t dc.b 0 dc.b $69 ; i dc.b 0 dc.b $5D ; ] dc.b 0 dc.b $51 ; Q dc.b 0 dc.b $46 ; F dc.b 0 dc.b $3A ; : dc.b 0 dc.b $2F ; / dc.b 0 dc.b $23 ; # dc.b 0 dc.b $17 dc.b 0 dc.b $C dc.b 0 dc.b 0 CRUIS_MANAGE_KV_ACCEL_STEP_FROM_ENG:dc.b 0 ; An additional term added to the Demand Register at the initiation of an Accel in order to obtain more Desired Power. ; MPH dc.b $60 ; ` dc.b 0 dc.b $57 ; W dc.b 0 dc.b $4F ; O dc.b 0 dc.b $46 ; F dc.b 0 dc.b $3D ; = dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $2C ; , dc.b 0 dc.b $23 ; # dc.b 0 dc.b $1A dc.b 0 dc.b $11 dc.b 0 dc.b 9 dc.b 0 dc.b 0 CRUIS_MANAGE_KV_RESUME_RATE:dc.b 0 ; The resume rate increment per 100 ms. ; MPH dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $22 ; " dc.b 0 dc.b $20 dc.b 0 dc.b $1C dc.b 0 dc.b $18 dc.b 0 dc.b $13 dc.b 0 dc.b $D CRUIS_MANAGE_KV_ACCEL_RATE:dc.b 0 ; The accel rate increment per 100 ms. ; MPH dc.b $26 ; & dc.b 0 dc.b $23 ; # dc.b 0 dc.b $20 dc.b 0 dc.b $1D dc.b 0 dc.b $1A dc.b 0 dc.b $17 dc.b 0 dc.b $14 dc.b 0 dc.b $12 dc.b 0 dc.b $11 dc.b 0 dc.b $11 dc.b 0 dc.b $11 dc.b 0 dc.b $11 CRUIS_MANAGE_KE_COAST_RATE:dc.w $FFE0 ; DATA XREF: sub_77246+11Cr ; The coast rate increment per 100 ms. ; MPH CRUIS_MANAGE_KE_TAP_RATE:dc.w $D ; DATA XREF: sub_77246:loc_7738Er ; The tap up/down rate increment per 100 ms. ; MPH CRUIS_MANAGE_KE_HYSTERESIS_RATE:dc.w $20 ; DATA XREF: sub_77246+140r ; The hysteresis rate increment per 100 ms. ; MPH CRUIS_MANAGE_KE_ACCEL_STEP_FROM_SBE_SCALER:dc.w $FF00 ; DATA XREF: sub_76A4E+422r ; Maximum cruise speed error for which a full accel stepfrom SBE will be applied. ; MPH_S CRUIS_MANAGE_KE_MAX_ACCEL_FROM_SBE_ERROR:dc.w 0 ; DATA XREF: sub_76A4E+400r ; Maximum cruise speed error for which accel from SBE modewill be entered when the R/A switch is applied. ; MPH_S DT_ABUSE_MGMT_KE_ABUSE_DRIVE_RPM_HIGH:dc.w $8400 ; DATA XREF: sub_7C8A2+E0r ; sub_7C8A2+1D4r DT_ABUSE_MGMT_KE_ABUSE_DRIVE_RPM_LOW:dc.w $8200 ; DATA XREF: sub_7C8A2+174r ; sub_7C8A2+1E4r DT_ABUSE_MGMT_KE_ABUSE_PN_RPM_HIGH:dc.w $8400 ; DATA XREF: sub_7C8A2+1A6r DT_ABUSE_MGMT_KE_ABUSE_PN_RPM_LOW:dc.w $8200 ; DATA XREF: sub_7C8A2+186r ; sub_7C8A2+1B6r DT_ABUSE_MGMT_KE_ABUSE_THROTTLE_HIGH:dc.w $13FB ; DATA XREF: sub_7C8A2+C2r ; If the throttle position is greater than this hysteresis limit,drivetrain abuse can be enabled. ; Percent DT_ABUSE_MGMT_KE_ABUSE_THROTTLE_LOW:dc.w $13CD ; DATA XREF: sub_7C8A2+44r ; If the throttle position is greater than this hysteresis limit,drivetrain abuse can be enabled. ; Percent DT_ABUSE_MGMT_KE_ABUSE_VEHICLE_SPEED_THRESH:dc.w 0 ; DATA XREF: sub_7C8A2+D4r ; If the vehicle speed is greater than or equal to this value,drivetrain abuse can not be enabled. ; MPH DT_ABUSE_MGMT_KE_ABUSE_EQUIVALENCE_RATIO:dc.w $4CD ; DATA XREF: sub_7C8A2:loc_7CAA6r ; If drivetrain abuse is active, the fuel equivalence ratiois commanded to this value. ; Equiv_Ratio_Type DT_ABUSE_MGMT_KV_ABUSE_CYLINDER_DISABLE_PN:dc.b $FF ; DATA XREF: sub_7C8A2+1FCr ; Vector specifying which cylinders to disable in abuse managementwhen PSM indicates Park or Neutral. FALSE = DISABLED ; BOOLEAN DT_ABUSE_MGMT_KV_ABUSE_CYLINDER_DISABLE_NOT_PN:dc.b $FF ; DATA XREF: sub_7C8A2+214r ; Vector specifying which cylinders to disable in abuse managementwhen PSM does not indicate Park or Neutral. FALSE = DISABLED ; BOOLEAN DT_ABUSE_MGMT_KV_ABUSE_TIME:dc.w 0 ; DATA XREF: sub_7C8A2+B0r dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 EGR_KE_EGR_ENABLED:dc.b 0 ; DATA XREF: DoLoopB:loc_2A0B2r ; DoLoopC+44r ... ; controls execution of EGR logic ; BOOLEAN dc.b $FF EGR_KE_EGR_FULL_SCALE_GAIN:dc.w $3B6 ; DATA XREF: sub_2DA2A:loc_2DA42r ; OS2:00043F0Ar ; EGR position sensor scaling factor. ; % / Count EGR_KE_EGR_OFFSET_FILTER_COEFF:dc.b 6 ; DATA XREF: sub_2DACE+84r ; sub_2DACE+19Cr ; First order filter coefficient used to reduce zero linear EGR position offset. ; Seconds dc.b $FF EGR_KE_EGR_POSITION_CLOSED_MIN:dc.w $800 ; DATA XREF: sub_2DACE+7Cr ; sub_2DACE+164r ; Minimum allowable value of learned EGR closed position. ; A/D Counts EGR_KE_EGR_POSITION_CLOSED_MAX:dc.w $3700 ; DATA XREF: sub_2DAA6+Ar ; sub_2DACE+74r ... ; Maximum allowable value of learned EGR closed position. ; A/D Counts EGR_KE_EGR_POSITION_FILTER_COEF:dc.w $3025 ; DATA XREF: sub_2DA2A:loc_2DA7Cr ; First order lag filter coefficient for percent pintle opening. ; Seconds EGR_KE_DESIRED_EGR_POSITION_MINIMUM:dc.w $100 ; DATA XREF: sub_2E27C+14r ; If desired EGR position is less than this calibration, desired EGR position is set to 0.0. ; Percent EGR_KE_EGR_OFF_VACUUM_HYST_THRES:dc.w $19A ; DATA XREF: sub_2DACE+1E8r ; sub_2DACE:loc_2DCC8r ... ; Hysteresis value which enables EGR from off state. ; kPa EGR_KE_EGR_OFF_VACUUM_THRESHOLD:dc.w $100 ; DATA XREF: sub_2DACE+1C2r ; Disables EGR below this calibration and linearly interpolates from KE_EGR_Full_Vacuum_Threshold. ; kPa EGR_KE_EGR_FULL_VACUUM_THRESHOLD:dc.w $200 ; DATA XREF: sub_2DACE+1CCr ; Enables full EGR above this calibration. ; kPa EGR_KE_EGR_TCC_RPM_HIGH_HYST:dc.w 0 ; DATA XREF: sub_2DED8+14r ; If Engine Speed is above this threshold, disable the TCC multiplier (Torque Converter Multiplier <- 1.0 ). ; RPM EGR_KE_EGR_TCC_RPM_LOW_HYST:dc.w 0 ; DATA XREF: sub_2DED8+22r ; If Engine Speed is below this threshold, enable the TCC multiplier using KV_Torque_Converter_Multiplier. ; RPM EGR_KE_EGR_LEARN_ENABLE_TIME:dc.w $A0 ; DATA XREF: sub_2DACE+56r ; sub_2DACE+13Ar ; Defines the time required to allow the start of offset learning. ; Seconds EGR_KE_EGR_INIT_LEARN_CMPT_TIME:dc.w $1E0 ; DATA XREF: sub_2DACE+6Cr ; sub_2DACE+ACr EGR_KE_EGR_INIT_LOW_POSITION:dc.w $1C00 ; DATA XREF: sub_2DACE+DAr ; Minimum allowable value of the initial learned low EGR closed offset. ; A/D Counts EGR_KE_EGR_INIT_HIGH_POSITION:dc.w $3100 ; DATA XREF: sub_2DACE+E2r ; Maximum allowable value of the initial learned low EGR closed offset. ; A/D Counts EGR_KE_EGR_OFFSET_IGN_COUNT_MAX:dc.w $3E8 ; DATA XREF: sub_2DACE+F4r ; Initial EGR initial offset is relearned when this ignition cycle counter expires. ; Count EGR_KE_EGR_PINTLE_GROWTH_MAX:dc.w $900 ; DATA XREF: sub_2DACE+16Cr ; Max allowable +/- change in the EGR offset relative to the initial learn position. ; A/D Counts EGR_KE_EGR_MIN_NOISE_POSITION:dc.w $100 ; DATA XREF: sub_2DA2A+64r ; Below this percent pintle position opening, the EGR valve is considered closed. ; Percent EGR_KV_COOLANT_TEMPERATURE_MULTIPLIE:dc.w 0 ; DATA XREF: sub_2DED8:loc_2DF74r ; Coolant terperature multiplier modifying desired EGR position. ; Multiplier dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 EGR_KV_EQUIVALENCE_RATIO_MULTIPLIER:dc.w $CCD ; DATA XREF: sub_2DED8:loc_2DFB4r ; Equivalence ratio multiplier modifying desired EGR position. ; Multiplier dc.b $D dc.b $DB ; ? dc.b $E dc.b $EF ; ? dc.b $10 dc.b 0 dc.b 8 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 EGR_KV_THROTTLE_POSITION_MULTIPLIER:dc.w 0 ; DATA XREF: sub_2DACE:loc_2DD7Ar ; Decreasing delta throttle position multiplier modifying desired EGR position. ; Multiplier CurveTable_37_Rows_EGR_Commanded_Position_Coolant_Temp_??_Multiplier:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 8 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 EGR_KV_TORQUE_CONVERTER_MULTIPLIER:dc.b $10 ; Torque converter clutch multiplier modifying desired EGR position. ; Multiplier dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 EGR_KV_BAROMETER_MULTIPLIER:dc.b $10 ; Barometer multiplier modifying desired EGR position. ; Multiplier dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 EGR_KA_EGR_DESIRED_POSITION:dc.b 0 ; EGR desired pintle position based on engine speed and Grams Air Per Cylinder. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 Constant16__97FC__Change_Oil_Lamp_Startup_Test_Time:dc.b 0 dc.b 0 Constant16_Change_Oil_Request_Oil_Life_Threshold_2:dc.b 0 dc.b 0 Constant16_Change_Oil_Request_Oil_Life_Threshold_1:dc.b 0 dc.b 0 Constant16__9802__Change_Oil_Lamp_Blink_Time_??:dc.b 0 dc.b 0 Flag_0x01__9804__Change_Oil_Request_For_Engine_Overheat_Enable:dc.b 0 Flag_0x01__9805__Change_Oil_Lamp_Startup_Test_Enable_??:dc.b 0 Flag_0x01__9806__Engine_very_low_oil_life_diagnostics_enable:dc.b 0 dc.b 0 Constant16__9808__Change_Oil_Request_For_Engine_Overheat_Temp_Threshold:dc.b 0 dc.b 0 EGR_KE_EGR_VEHICLE_SPEED_THRESHOLD:dc.w $680 ; DATA XREF: sub_2DACE+380r ; Increasing desired EGR position filter coefficient MPH threshold. ; MPH EGR_KV_HIGH_VEHICLE_SPEED_COEFFICIEN:dc.w $199A ; DATA XREF: sub_2DACE:loc_2DE68r ; Lag filter coefficient used only on increasing desired EGR position above KE_Vehicle_Speed_Threshold. ; Coeff. dc.b $80 ; ? dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF EGR_KV_LOW_VEHICLE_SPEED_COEFFICIENT:dc.w $199A ; DATA XREF: sub_2DACE:loc_2DE84r ; Lag filter coefficient used only on increasing desired EGR position below KE_Vehicle_Speed_Threshold. ; Coeff. dc.b $19 dc.b $9A ; ? dc.b $19 dc.b $9A ; ? dc.b $19 dc.b $9A ; ? Flag_0x01__981E__Change_Oil_Lamp_Startup_Test_Enable_??:dc.b $19 Flag_0x01__981F__Engine_low_oil_life_enable_switch_??:dc.b $9A ; ? EGR_KV_EGR_VEHICLE_SPEED_COEFFICIENT:dc.w $FFFF ; DATA XREF: sub_2DACE:loc_2DEA0r ; Lag filter coefficient used only on decreasing desired EGR position. ; Coeff. dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF EGR_KV_INITIAL_DUTY_CYCLE:dc.w $600 ; DATA XREF: sub_2E27C+84r ; The nominal duty cycle required to move the EGR valve from the closed position to the desired position. ; Percent dc.b 4 dc.b 0 dc.b 6 dc.b $EC ; ? dc.b $A dc.b 0 dc.b $B dc.b $A9 ; ? EGR_KV_INITIAL_INTEGRAL_VACUUM_CORRE:dc.b $10 ; Multiplies initial EGR integrator term to correct for engine vacuum. ; Multiplier dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 EGR_KV_POSITION_INTEGRAL_GAIN:dc.w $FD ; DATA XREF: sub_2E27C+C6r ; Gain applied to the position error term to calculate the integral correction. ; Multiplier dc.b 0 dc.b $ED ; ? dc.b 0 dc.b $DD ; ? dc.b 0 dc.b $AE ; ? dc.b 0 dc.b $61 ; a dc.b 0 dc.b $13 dc.b 0 dc.b $2A ; * dc.b 0 dc.b $41 ; A dc.b 0 dc.b $4F ; O dc.b 0 dc.b $54 ; T dc.b 0 dc.b $59 ; Y EGR_KV_INTEGRAL_VACUUM_CORRECTION:dc.b $10 ; Multiplies EGR integral term to correct for engine vacuum. ; Multiplier dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 EGR_KV_POSITION_PROPORTIONAL_GAIN:dc.w $80D ; DATA XREF: sub_2E27C+13Cr ; Gain applied to the position error term to calculate the proportional correction. ; Multiplier Constant16__988C__Oil_Temperature_Calculation_IAT_Factor:dc.b 5 dc.b $BA ; ? Constant16__988E__Oil_Temperature_Calculation_CTS_Factor:dc.b 3 dc.b $67 ; g Constant16__9890__Oil_Temperature_Calculation_Engine_Speed_Scaler_??:dc.b 2 dc.b $58 ; X dc.b 2 dc.b $8C ; ? dc.b 2 dc.b $C0 ; ? Constant32__9896__Oil_Life_Reset_Something_??:dc.b 3 dc.b $D5 ; ? dc.b 4 dc.b $E9 ; ? Constant16__989A__Oil_Life_Reset_Something_??:dc.b 5 dc.b $73 ; s dc.b 5 dc.b $73 ; s dc.b 5 dc.b $73 ; s EGR_KV_PROPORTIONAL_VACUUM_CORRECTIO:dc.b $10 ; Multiplies EGR proportional term to correct for engine vacuum. ; Multiplier dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 EGR_KE_VEHICLE_SPEED_DISABLE_THRESHO:dc.w $300 ; DATA XREF: sub_2E010+36r ; MPH threshold below which EGR is disabled when enabled. ; MPH EGR_KE_VEHICLE_SPEED_ENABLE_THRESHOL:dc.w $400 ; DATA XREF: sub_2E010:loc_2E04Er ; MPH threshold above which EGR is enabled when disabled. ; MPH EGR_KE_THROTTLE_POSITION_DISABLE_THR:dc.w $66 ; DATA XREF: sub_2E010+16r ; TPS threshold below which EGR is disabled when enabled. ; Percent EGR_KE_THROTTLE_POSITION_ENABLE_THRE:dc.w $A0 ; DATA XREF: sub_2E010:loc_2E02Er ; TPS threshold above which EGR is enabled when disabled. ; Percent EGR_KE_LOWER_IAT_ENABLE_THRESHOLD:dc.w $4D ; DATA XREF: sub_2E010:loc_2E0BCr ; sub_2E010:loc_2E0D8r ; Lower IAT threshold above which EGR is enabled when disabled. ; Degrees C EGR_KE_LOWER_IAT_DISABLE_THRESHOLD:dc.w $FFE6 ; DATA XREF: sub_2E010+9Er ; Lower IAT threshold below which EGR is disabled when enabled. ; Degrees C EGR_KE_EGR_HIGH_AIRFLOW_THRESHOLD:dc.w $280 ; DATA XREF: sub_2E010+A4r ; High Mass Airflow threshold which EGR is disabled. ; Grams/Sec. EGR_KE_EGR_LOW_AIRFLOW_THRESHOLD:dc.l loc_8CC+1 ; DATA XREF: sub_2E010+B2r ; sub_2E010:loc_2E0F8r ; Low Mass Airflow threshold which EGR is disabled. ; Grams/Sec. EGR_KE_LOWER_MAP_DISABLE_THRESHOLD:dc.w $800 ; DATA XREF: sub_2E010+E0r ; Lower MAP threshold below which EGR is disabled when enabled. ; kPa EGR_KE_CLUTCH_TRANSITION_TIMER_THRES:dc.w 0 ; DATA XREF: sub_2E010+1DEr ; EGR disable time after air conditioner clutch engagement. ; Seconds EGR_KE_EGR_PWRUP_COOLANT_DELAY_THRES:dc.w $80 ; DATA XREF: sub_2E010+5Ar EGR_KE_EGR_COOLANT_ENABLE_THRESHOLD:dc.w $833 ; DATA XREF: sub_2E010+6Er EGR_KE_EGR_ENABLE_COOLANT_TIME:dc.w 0 ; DATA XREF: sub_2E010+84r ; Time after coolant temperatures requirements have been met before enabling EGR. ; Seconds EGR_KE_UPPER_TPS_ENABLE_THRESHOLD:dc.w $1366 ; DATA XREF: sub_2E010:loc_2E120r ; Upper TPS threshold below which EGR is enabled when disabled. ; Percent EGR_KE_UPPER_TPS_DISABLE_THRESHOLD:dc.w $13CD ; DATA XREF: sub_2E010+106r ; Upper TPS threshold above which EGR is disabled when enabled. ; Percent EGR_KE_EGR_MULTI_STROKE_ENABLED:dc.b 1 ; DATA XREF: sub_2E438:loc_2E4C4r ; Set this calibration TRUE to enable EGR Multi Stroke. ; TRUE/FALSE dc.b $FF EGR_KE_EGR_STRK_LOW_COOLANT_TEMP:dc.w $800 ; DATA XREF: sub_2E438+A6r ; Disable EGR Multi Stroke when coolant is colder than this. ; Degrees C EGR_KE_EGR_STRK_HIGH_COOLANT_TEMP:dc.w $BCD ; DATA XREF: sub_2E438+B4r ; Disable EGR Multi Stroke when coolant is warmer than this. ; Degrees C EGR_KE_EGR_STRK_LOW_EGR_POSITION:dc.w $A00 ; DATA XREF: sub_2E438+CCr ; Disable EGR Multi Stroke when Desired EGR is less than this. ; Percent EGR_KE_EGR_STROKE_COUNTER_LMT:dc.b $14 ; DATA XREF: sub_2E438+DEr ; Disable EGR Multi Stroke after this many strokes in normallentgh ignition cycle. ; Strokes dc.b $FF EGR_KE_EGR_STROKE_TIME_DELAY:dc.w $960 ; DATA XREF: sub_2E438+12r ; Minimum amount of time the EGR valve is commanded opento max position to be considered an EGR stroke event. ; Seconds EGR_KE_EGR_STROKE_STABILIZATION:dc.w $50 ; DATA XREF: sub_2E438+114r ; Minimum time enabling conditions must hold before each stroke for EGR Multi Stroke. ; Seconds EGR_KE_EGR_STROKE_RESET_TIME_PERIOD:dc.l unk_8CA00 ; DATA XREF: sub_2E438+5Ar ; EGR Multi Stroke is re-enabled this often. ; Seconds EGR_KE_EGR_STRK_MAX_OPEN_TIME:dc.w $40 ; DATA XREF: sub_2E438+17Ar ; Time EGR valve is commanded on for each stroke for EGR Multi Stroke. ; Seconds ENG_OIL_KE_ENGINE_OIL_PRESSURE_COEFF:dc.b $26 ; DATA XREF: sub_7CEB6+118r ; Filter coefficient used to filter engine oil pressure. ; Seconds dc.b $FF ENG_OIL_KE_OIL_PRESSURE_GAGE_PWM_MIN:dc.w 0 ; DATA XREF: sub_7CDE0:loc_7CE5Ar ; The minimum allowed PWM signal to be sent to the oilpressure gage. ; Percent ENG_OIL_KE_OIL_PRESSURE_GAGE_PWM_MAX:dc.w 0 ; DATA XREF: sub_7CDE0:loc_7CE6Ar ; The maximum allowed PWM signal to be sent to the oilpressure gage. ; Percent ENG_OIL_KV_OIL_PRESSURE_TO_PWM_FOR_GAGE:dc.b 0 ; The PWM signal to be sent to the oil pressure gage. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 ENG_OIL_KE_EFFECTIVE_REVOLUTION_LIMIT:dc.w $3E8 ; DATA XREF: sub_7D262+82r ; Decrement Oil Life interval when effective_engine_revolutions exceeds this. ; Revolutions ENG_OIL_KE_ENG_OIL_PRES_SCALE_FACTOR:dc.w $DCA ; DATA XREF: sub_7CEB6+10r ; Engine oil pressure sensor scaling factor. ; Factor ENG_OIL_KE_ENG_OIL_SENSOR_OFFSET:dc.l $FFFFE9F1 ; DATA XREF: sub_7CEB6+1Er ; Engine oil pressure sensor offset value. ; kPa ENG_OIL_KE_ENGINE_OIL_PRESSURE_DEFAULT:dc.l off_3C00 ; DATA XREF: sub_7CEB6:loc_7CFBEr ; Default value for engine oil pressure, if sensor has failed. ; kPa ENG_OIL_KE_ENGINE_OIL_PRES_LOWER_FAULTS:dc.b 4 ; DATA XREF: sub_7CFF8+6Cr ; If the number of consecutive faults is greater than or equal to this value, it is considereded a fault. ; counts ENG_OIL_KE_ENGINE_OIL_PRES_UPPER_FAULTS:dc.b 4 ; DATA XREF: sub_7CFF8+32r ; If the number of consecutive faults is greater than or equal to this value, it is considereded a fault. ; counts ENG_OIL_KE_ENGINE_OIL_PRES_MAX_LIMIT:dc.w $F3 ; DATA XREF: sub_7CFF8+16r ; If the oil pressure reading is equal to or greater than this value, it is considered out of limits. ; A/D counts ENG_OIL_KE_ENGINE_OIL_PRES_MIN_LIMIT:dc.w $10 ; DATA XREF: sub_7CFF8+50r ; If the oil pressure reading is equal to or less than this value, it is considered out of limits. ; A/D counts ENG_OIL_KV_OIL_EQUILIBRIUM_FILTER_COEF:dc.w $7D ; DATA XREF: sub_7D0BE:loc_7D1EEr ; First order lag filter coefficient for estimated oil temperature in equilibrium mode. ; Multiplier dc.b 0 dc.b $83 ; ? dc.b 0 dc.b $93 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $D2 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b 6 dc.b 1 dc.b $2D ; - dc.b 1 dc.b $55 ; U dc.b 1 dc.b $7F ;  dc.b 1 dc.b $AA ; ? dc.b 1 dc.b $E1 ; ? dc.b 2 dc.b $20 dc.b 2 dc.b $67 ; g dc.b 2 dc.b $B7 ; ? dc.b 3 dc.b $11 dc.b 3 dc.b $77 ; w dc.b 3 dc.b $EA ; ? dc.b 4 dc.b $6C ; l ENG_OIL_KE_OIL_LEVEL_LIGHT_ON_FOR_RUN:dc.b 1 ; DATA XREF: OS3:loc_7CC20r ; OS3:loc_7CCA6r ; If TRUE and Oil Level is low turn on Oil Low Light. ; BOOLEAN ENG_OIL_KE_OIL_LEVEL_LOW_SAMPLES:dc.b 3 ; DATA XREF: sub_7CCBC+4Ar ; Number of Oil level samples reporting low needed to determine low oil level. ; Counts ENG_OIL_KE_OIL_LEVEL_SAMPLE_QUANTITY:dc.b 5 ; DATA XREF: sub_7CCBC:loc_7CD24r ; Amount of oil level samples to be taken for a given period. ; Counts dc.b $FF ENG_OIL_KV_OIL_LEVEL_DELTA:dc.w $280 ; DATA XREF: sub_7CCBC+A4r ; Value to be compared to Coolant_Stoprun - Coolant_Powerup.This value has Range 0 to 180, since it is a delta. ; Degrees C dc.b 1 dc.b $4D ; M dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b $1A dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 ENG_OIL_KE_OIL_LIFE_BULB_TIME:dc.w 0 ; DATA XREF: sub_7D490+5Ar ; Length of time Bulb check should last. ; Seconds ENG_OIL_KE_OIL_LIFE_CHANGE_NOW:dc.w $33 ; DATA XREF: sub_7D508+8Cr ; Determines when to turn on the Change Oil Now. ; Percent ENG_OIL_KE_OIL_LIFE_CHANGE_SOON:dc.w $100 ; DATA XREF: sub_7D508:loc_7D5ACr ; Determines when the Change Oil Soon lamp will be requested. ; Percent ENG_OIL_KE_OIL_LIFE_FLASH_LIGHT_TIME:dc.w 0 ; DATA XREF: sub_7D508+52r ; Determine how long to flash the NOW light during a reset. ; Seconds ENG_OIL_KE_OIL_LIFE_HOT_ENABLE:dc.b 1 ; DATA XREF: sub_7D262+Er ; Enables the option to kill oil life upon overheating. ; BOOLEAN ENG_OIL_KE_OIL_LIFE_NOW_BULB_CHECK_REQ:dc.b 0 ; DATA XREF: sub_7D490+12r ; If TRUE, Oil Life Now Bulb check will be run. ; BOOLEAN ENG_OIL_KE_OIL_LIFE_NOW_ENABLED:dc.b 1 ; DATA XREF: sub_7D508+94r ; Determine if the NOW lamp is used. ; BOOLEAN dc.b $FF ENG_OIL_KE_OIL_LIFE_OVERTEMP:dc.w $E00 ; DATA XREF: sub_7D262+6r ; Determine when the engine oil is to be changed upon overheating. ; Degrees_C ENG_OIL_KV_OIL_LIFE_PENALTY_FACTOR:dc.b 5 ; DATA XREF: sub_7D262:loc_7D2AAr ; Engine revolution correction factor, based on estimated engine oil temperature. ; Scale Factor dc.b 5 dc.b 5 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 2 dc.b 2 dc.b 2 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 2 dc.b 5 dc.b $A dc.b $A dc.b $A ENG_OIL_KE_OIL_LIFE_SOON_BULB_CHECK_REQ:dc.b 0 ; DATA XREF: sub_7D490+Cr ; If TRUE, Oil Life Soon Bulb check will be run. ; BOOLEAN ENG_OIL_KE_OIL_LIFE_SOON_ENABLED:dc.b 1 ; DATA XREF: sub_7D508+ACr ; Determine if SOON lamp is used. ; BOOLEAN ENG_OIL_KE_OIL_PRESSURE_HYSTERESIS:dc.l loc_6E4+2 ; DATA XREF: sub_7CEB6+8Cr ; Hysteresis on low oil pressure. ; kPa ENG_OIL_KE_OIL_PRESSURE_LOW_TIME:dc.w $190 ; DATA XREF: sub_7CEB6+FEr ; Time oil pressure must be low to turn on the warning. ; Seconds ENG_OIL_KV_OIL_PRESSURE_MINIMUM:dc.l 0 ; DATA XREF: sub_7CEB6:loc_7CF3Ar ; sub_7CEB6:loc_7CF84r ; Minimum allowed oil pressure for normal operation. ; kPa per RPM dc.l unk_673 dc.l loc_9E4+1 dc.l loc_CB8+1 dc.l loc_F20+2 dc.l unk_11D4 dc.l loc_145C+4 dc.l loc_1708 dc.l loc_19C0+1 dc.l loc_1AD2+5 dc.l loc_1BE8+5 dc.l off_1E80+2 dc.l unk_2118 dc.l PID_jump_table.Function+$82 dc.l PID_jump_table.Function+$82 dc.l PID_jump_table.Function+$82 dc.l PID_jump_table.Function+$82 ENG_OIL_KE_OIL_TEMPERATURE_EQUILIBRIUM:dc.w $900 ; DATA XREF: OS3:0007CB24r ENG_OIL_KV_OIL_TEMPERATURE_REV_DELAY:dc.w $2CEC ; DATA XREF: sub_7D0BE+24r ; Oil temperature warm-up delay as a function of initial coolant temperature. ; Revs per Deg C dc.b $26 ; & dc.b $48 ; H dc.b $20 dc.b 8 dc.b $1A dc.b $2C ; , dc.b $14 dc.b $B4 ; ? dc.b $10 dc.b 4 dc.b $B dc.b $B8 ; ? dc.b 8 dc.b $98 ; ? dc.b 5 dc.b $46 ; F dc.b 2 dc.b $BC ; ? dc.b 0 dc.b $FA ; ? dc.b 0 dc.b $50 ; P dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( ENG_OIL_KE_OL_AIR_TEMP_COEFFICIENT:dc.w $1E98 ; DATA XREF: sub_7D0BE+5Cr ; Factor to adjust the effect of induction air temperature on oil temperature. ; Multiplier ENG_OIL_KE_OL_COOLANT_COEFFICIENT:dc.w $BD71 ; DATA XREF: sub_7D0BE+7Ar ; Factor to adjust the effect of coolant temperature on oil temperature. ; Multiplier ENG_OIL_KE_OL_ENGINE_SPEED_COEFFICIENT:dc.w $27E ; DATA XREF: sub_7D0BE+C8r ; Factor to adjust the effect of engine speed on oil temperature. ; Multiplier ENG_OIL_KE_OL_VEHICLE_SPEED_COEFFICIENT:dc.l $FFFFF333 ; DATA XREF: sub_7D0BE+9Cr ; Factor to adjust the effect of vehicle speed on oil temperature. ; Multiplier ENG_OIL_KE_RECOMMENDED_MILEAGE:dc.l $3938700 ; DATA XREF: sub_7D332+14r ; sub_7D368+32r ... ; Maximum allowed distance between oil changes. Immediate oil change will be requested if this value is exceeded. ; Miles ENG_OIL_KE_REVOLUTION_UNTIL_SERVICE:dc.w $7530 ; DATA XREF: sub_7D262+B6r ; sub_7D368:loc_7D38Er ... ; Maximum number of effective engine revolutions before an engine oil change is requested. ; Revolutions ENG_OIL_KE_WARMUP_COOLANT_COEFFICIENT:dc.w $999A ; DATA XREF: OS3:0007CB50r ENG_OIL_KE_WARMUP_STAT_OPEN_MULTIPLIER:dc.b $B3 ; ? ; Multiplier used to adjust the effect of coolant temp on estimated oil temp after termostat opens. ; Multiplier dc.b $33 ; 3 ENG_OIL_KE_OIL_LEVEL_IGN_CYCLES:dc.b 3 ; DATA XREF: sub_7CCBC+C2r ; sub_7CCBC+F2r ; Determine how many ignition cycles to collect low oil levelsamples prior to turning on low oil level light ; SHORTCARD EXECUTIVE_KE_STOP_ENABLED:dc.b 0 ; DATA XREF: sub_29980:loc_29992r ; When set to TRUE a stop instruction will be used to fill up the dead time between tasks. ; BOOLEAN ENG_PROTECTION_KE_ENGINE_PROTECTION_COOLANT_HIG:dc.w $D33 ; DATA XREF: OS3:loc_7D75Er ; Coolant Temperature must rise above this threshold toenable engine overtemperature protection ; Degrees C ENG_PROTECTION_KE_ENGINE_PROTECTION_COOLANT_LOW:dc.w $CA6 ; DATA XREF: OS3:loc_7D78Cr ; Coolant temperature threshold below which engine overtemperatureprotection is disabled ; Degrees C ENG_PROTECTION_KE_ENGINE_PROTECTION_DELAY_TIME:dc.w $640 ; DATA XREF: OS3:0007D76Ar ENG_PROTECTION_KE_CYCLES_BETWEEN_RAMP_STEPS:dc.w $14 ; DATA XREF: sub_7D7AA+78r ; sub_7D7AA+E8r ; Number of engine cycles to run before ramping in or out another cylinder. ; Unitless ENG_PROTECTION_KE_CYCLES_BETWEEN_SWITCHING:dc.w $B4 ; DATA XREF: sub_7D7AA+BEr ; Number of engine cycles to run before switching cylinder groups. ; Unitless ENG_PROTECTION_KE_ENGINE_ALARM_COOLANT_TEMP:dc.w $DFF ; DATA XREF: sub_7DCB4+4r ; sub_7DCEE+32r ; Turn on 120 peeps per minute alarm and check gauges lamp when coolant temperature exceeds this value. ; Degrees C ENG_PROTECTION_KE_ENGINE_PROTECTION_STARTUP_DEL:dc.w $640 ; DATA XREF: sub_7D7AA+2r ; Amount of time to delay engine overheat protection modeafter engine has been running ; Seconds ENG_PROTECTION_KE_ENG_SHUTDOWN_CLT_TEMP_OFFSET:dc.w $FFFF ; DATA XREF: sub_7DCEE+2Cr ENG_PROTECTION_KE_ENGINE_SHUTDOWN_COOLANT_TIME:dc.w $FFFF ; DATA XREF: sub_7DCEE+82r ENG_PROTECTION_KE_ENG_SHUTDOWN_LOW_CLT_ENABLE:dc.b 0 ; DATA XREF: sub_7DCEE+1Ar ; Set TRUE to enable engine shutdown based on low coolant switch. ; BOOLEAN dc.b $FF ENG_PROTECTION_KE_ENGINE_SHUTDOWN_TIME:dc.w $FFFF ; DATA XREF: sub_7DB64+70r ; Initiate engine shutdown when the 300 beeps per minute alarm has been sounding for this amount of time. ; Seconds ENG_PROTECTION_KE_CYLINDER_CUTOUT_HYSTERESIS:dc.w $133 ; DATA XREF: sub_7D8E0+11Er ; Hysteresis on the Torque_Percentage applied to prevent cyclingbetween the number of cylinders enabled. ; Percent ENG_PROTECTION_KV_CYLINDER_GROUP_ONE:dc.b $55 ; DATA XREF: sub_7D7AA+A2r ; Vector specifying first set of cylinders to disable for engine overtemperature protection ; BOOLEAN ENG_PROTECTION_KV_CYLINDER_GROUP_TWO:dc.b $AA ; DATA XREF: sub_7D7AA+AAr ; Vector specifying second set of cylinders to disable for engine overtemperature protection ; BOOLEAN ENG_PROTECTION_KV_ENG_PROT_CYLINDERS_TO_DISABLE:dc.b $7F ; DATA XREF: sub_7D7AA+20r ; Vector specifying which cylinders to disable for Engine protectionFALSE = DISABLED ; BOOLEAN dc.b $77 ; w dc.b $57 ; W dc.b $55 ; U dc.b $15 dc.b $11 dc.b 1 dc.b 0 ENG_PROTECTION_KV_BTM_PM_CYLINDERS_TO_DISABLE:dc.b $FF ; Vector specifying which cylinders to disable for brake torque management and ETC power management FALSE=DISABLED. ; BOOLEAN dc.b $77 ; w dc.b $77 ; w dc.b $55 ; U dc.b $55 ; U dc.b $11 dc.b $11 dc.b 0 ENG_PROTECTION_KV_POWER_HOP_PM_CYL_TO_DISABLE:dc.b $FF ; Vector specifing which cylinders to disable for power hop torque management, based on number of cylinders to be disabled. ; BOOLEAN dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF PROTECTED_KV_ENGINE_SPEED_LIMIT:dc.b $B4 ; ? ; Engine speed below which the ETC governor attemptsto keep the engine speed. ; RPM dc.b 0 dc.b $B4 ; ? dc.b 0 dc.b $B4 ; ? dc.b 0 dc.b $B4 ; ? dc.b 0 dc.b $B4 ; ? dc.b 0 dc.b $B4 ; ? dc.b 0 dc.b $B4 ; ? dc.b 0 dc.b $B4 ; ? dc.b 0 dc.b $B4 ; ? dc.b 0 dc.b $B4 ; ? dc.b 0 PROTECTED_KE_ENGINE_OVERSPEED_LAMP:dc.w $B400 ; DATA XREF: sub_7DFBA+1Cr ; sub_7E000+22r ; Engine speed threshold for lighting the engine overspeed lamp ; RPM PROTECTED_KE_TACH_PULLUP_ENABLE:dc.b 0 ; If TRUE the tachometer is pulled up internal to the PCM. ; BOOLEAN PROTECTED_KE_ENGINE_SPEED_FILTER_COEF:dc.b $1A ; DATA XREF: sub_7DE52+106r ; Filter coefficient used to first order lag filter engine speed. ; Unitless PROTECTED_KE_FANLOCKUPRPMLIMIT:dc.w $7800 ; DATA XREF: sub_7DD88+2Cr ; Calibration value at which the engine speed is limited to prevent fan failure due to rotational speed. ; RPM ENG_STATE_KE_NO_REF_TIME:dc.b $3C ; DATA XREF: sub_282C4+74r ; sub_282C4+1CAr ... ; Engine is considered stopped if no ref pulses have occured in this amount of time. ; Seconds dc.b $FF CRITICAL_REGION_KE_IGNITION_OFF_TIME:dc.w 2 ; DATA XREF: sub_282C4+242r ; sub_282C4+284r ; Ignition must be off for this period of time before the state changes due to ignition being off. ; Seconds CRITICAL_REGION_KE_EXTENDED_POWEROFF_ON_TIME:dc.l $90880 ; DATA XREF: sub_282C4+3A0r ; Amount of time the Engine will stay in the Extended Poweroff state to allow the EVAP diagnostic to run. ; Seconds_L CRITICAL_REGION_KV_STARTRUN_PULSES:dc.l unk_C000C ; DATA XREF: sub_282C4+180r ; Number of consecutive low resolution reference pulses above KV_Startrun_RPM required for transition from Crank to Run. ; Pulses dc.b 0 dc.b 9 dc.b 0 dc.b 7 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 3 dc.b 0 dc.b 3 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 CRITICAL_REGION_KV_STARTRUN_RPM:dc.b 6 ; Engine speed threshold for transition from Crank to Run. See KE_Startrun_Pulses for more information. ; RPM dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 5 dc.b $66 ; f dc.b 4 dc.b $CD ; ? dc.b 4 dc.b $66 ; f dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 ENG_TORQUE_KE_ENGINE_MAX_TORQUE:dc.w $4600 ; DATA XREF: sub_24716+6B8r ; sub_24716+716r ... ; Maximum net torque output from the engine. ; ft-lb ENG_TORQUE_KE_ENGINE_INERTIA:dc.w 0 ; DATA XREF: DoLoopB+2B8r ; sub_7E0BC+10Cr ... ; Desired axle torque for rear axle protection ; Mult0to2 ENG_TORQUE_KV_THERMAL_EFF_BLEND_FACTOR:dc.w 0 ; DATA XREF: sub_2FAFC+110r ; Interpolation fraction between E0 and E80 fuel for Indicated MBT Torque Efficiency tables. ; Mult_0_to_1 dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b $A dc.b 0 dc.b $10 dc.b 0 ENG_TORQUE_KV_AC_TURN_ON_DELAY:dc.l off_0+$20 ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $50 ; P dc.b 0 dc.b $58 ; X dc.b 0 dc.b $5E ; ^ dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $6C ; l dc.b 0 dc.b $70 ; p dc.b 0 dc.b $74 ; t dc.b 0 dc.b $78 ; x dc.b 0 dc.b $78 ; x dc.b 0 dc.b $78 ; x dc.b 0 dc.b $78 ; x ENG_TORQUE_KV_AC_TURN_OFF_DELAY:dc.b 0 ; AC compressor turn off delay to prevent engine flareF( AC_Torque_Adjusted ). ; Seconds dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P ENG_TORQUE_KV_AC_BUMP_AIR_REF_DLY_OFF:dc.b $14 dc.b $1E dc.b $23 ; # dc.b $23 ; # dc.b $26 ; & dc.b $26 ; & dc.b $26 ; & dc.b $26 ; & dc.b $26 ; & dc.b $26 ; & dc.b $26 ; & dc.b $26 ; & dc.b $26 ; & dc.b $26 ; & ENG_TORQUE_KV_AC_BUMP_AIR_REF_DLY_ON:dc.b $C dc.b $C dc.b $C dc.b $C dc.b $B dc.b $B dc.b $A dc.b $A CurveTable_19_Rows_G0107___A_C_Turn_on_Delay_vs_IAT:dc.b $A dc.b $A dc.b $A dc.b $A dc.b $A dc.b $A ENG_TORQUE_KE_MAXIMUM_AC_BUMP_THROTTLE_AREA:dc.w $100 ; DATA XREF: OS3:loc_7EFA8r ; Used to clip and hold the ac bump throttle area for ETC. ; Percent ENG_TORQUE_KA_AC_BUMP_SPARK_RETARD_LIMIT:dc.b 0 ; Maximum amount of spark retard allowed for AC Bump logic. ; Degrees dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b $8E ; ? dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $39 ; 9 dc.b 5 dc.b $55 ; U dc.b 5 dc.b $55 ; U dc.b 3 dc.b $8E ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b $8E ; ? dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $39 ; 9 dc.b 5 dc.b $55 ; U dc.b 5 dc.b $55 ; U dc.b 3 dc.b $8E ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $72 ; r dc.b 7 dc.b $1C dc.b 7 dc.b $1C dc.b 7 dc.b $1C dc.b 7 dc.b $1C dc.b 7 dc.b $1C dc.b 7 dc.b $1C dc.b 7 dc.b $1C dc.b 4 dc.b $72 ; r dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_9C40: dc.b 0 ; DATA XREF: Calibration:DI_EONV_KE_EONV_TOTALVEHICLEMILEAGEMINo dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 6 dc.b $39 ; 9 dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 6 dc.b $39 ; 9 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 6 dc.b $39 ; 9 dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 6 dc.b $39 ; 9 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 6 dc.b $39 ; 9 dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 6 dc.b $39 ; 9 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 ENG_TORQUE_KE_UNITS_CONSTANT:dc.l $5075999A ; DATA XREF: sub_7E0BC:loc_7E2E4r ENG_TORQUE_KA_INDICATED_MBT_TORQUE_EFF_E0:dc.l off_0+$22C ; DATA XREF: sub_7E0BC:loc_7E21Eo ; sub_7E0BC+17Eo ... ; Thermal Efficiency factor used in calculating Indicated_MBT_Torque with E0 fuel. ; NONE 0-1 dc.b 2 dc.b $78 ; x dc.b 2 dc.b $7A ; z dc.b 2 dc.b $90 ; ? dc.b 2 dc.b $9C ; ? dc.b 2 dc.b $AE ; ? dc.b 2 dc.b $AA ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $B2 ; ? dc.b 2 dc.b $A7 ; ? dc.b 2 dc.b $AE ; ? dc.b 2 dc.b $B9 ; ? dc.b 2 dc.b $C0 ; ? dc.b 2 dc.b $C7 ; ? dc.b 2 dc.b $CF ; ? dc.b 2 dc.b $CF ; ? dc.b 2 dc.b $CF ; ? dc.b 2 dc.b $CF ; ? dc.b 2 dc.b $CF ; ? dc.b 2 dc.b $CF ; ? dc.b 0 dc.b 0 dc.b 2 dc.b $3B ; ; dc.b 2 dc.b $9B ; ? dc.b 2 dc.b $AF ; ? dc.b 2 dc.b $C3 ; ? dc.b 2 dc.b $C7 ; ? dc.b 2 dc.b $D7 ; ? dc.b 2 dc.b $D2 ; ? dc.b 2 dc.b $CF ; ? dc.b 2 dc.b $D6 ; ? dc.b 2 dc.b $CF ; ? dc.b 2 dc.b $D5 ; ? dc.b 2 dc.b $DC ; ? dc.b 2 dc.b $E0 ; ? dc.b 2 dc.b $E7 ; ? dc.b 2 dc.b $EE ; ? dc.b 2 dc.b $EE ; ? dc.b 2 dc.b $EE ; ? dc.b 2 dc.b $EE ; ? dc.b 2 dc.b $EE ; ? dc.b 2 dc.b $EE ; ? dc.b 0 dc.b 0 dc.b 2 dc.b $68 ; h dc.b 2 dc.b $D1 ; ? dc.b 2 dc.b $E9 ; ? dc.b 2 dc.b $F7 ; ? dc.b 2 dc.b $F3 ; ? dc.b 3 dc.b 0 dc.b 2 dc.b $FB ; ? dc.b 2 dc.b $FD ; ? dc.b 2 dc.b $FB ; ? dc.b 2 dc.b $F7 ; ? dc.b 2 dc.b $FC ; ? dc.b 2 dc.b $FF dc.b 3 dc.b 1 dc.b 3 dc.b 6 dc.b 3 dc.b $D dc.b 3 dc.b $D dc.b 3 dc.b $D dc.b 3 dc.b $D dc.b 3 dc.b $D dc.b 3 dc.b $D dc.b 0 dc.b 0 dc.b 2 dc.b $7F ;  dc.b 2 dc.b $EC ; ? dc.b 3 dc.b 5 dc.b 3 dc.b $16 dc.b 3 dc.b $18 dc.b 3 dc.b $22 ; " dc.b 3 dc.b $1E dc.b 3 dc.b $20 dc.b 3 dc.b $1E dc.b 3 dc.b $1B dc.b 3 dc.b $13 dc.b 3 dc.b $16 dc.b 3 dc.b $16 dc.b 3 dc.b $1B dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $21 ; ! dc.b 0 dc.b 0 dc.b 2 dc.b $8F ; ? dc.b 2 dc.b $FE ; ? dc.b 3 dc.b $17 dc.b 3 dc.b $28 ; ( dc.b 3 dc.b $2F ; / dc.b 3 dc.b $39 ; 9 dc.b 3 dc.b $34 ; 4 dc.b 3 dc.b $36 ; 6 dc.b 3 dc.b $38 ; 8 dc.b 3 dc.b $35 ; 5 dc.b 3 dc.b $34 ; 4 dc.b 3 dc.b $34 ; 4 dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $38 ; 8 dc.b 3 dc.b $3E ; > dc.b 3 dc.b $3E ; > dc.b 3 dc.b $3E ; > dc.b 3 dc.b $3E ; > dc.b 3 dc.b $3E ; > dc.b 3 dc.b $3E ; > dc.b 0 dc.b 0 dc.b 2 dc.b $9A ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $1E dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $3A ; : dc.b 3 dc.b $44 ; D dc.b 3 dc.b $43 ; C dc.b 3 dc.b $46 ; F dc.b 3 dc.b $47 ; G dc.b 3 dc.b $46 ; F dc.b 3 dc.b $40 ; @ dc.b 3 dc.b $44 ; D dc.b 3 dc.b $48 ; H dc.b 3 dc.b $46 ; F dc.b 3 dc.b $4F ; O dc.b 3 dc.b $4F ; O dc.b 3 dc.b $4F ; O dc.b 3 dc.b $4F ; O dc.b 3 dc.b $4F ; O dc.b 3 dc.b $4F ; O dc.b 0 dc.b 0 dc.b 2 dc.b $9F ; ? dc.b 3 dc.b $B dc.b 3 dc.b $1F dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $3C ; < dc.b 3 dc.b $46 ; F dc.b 3 dc.b $46 ; F dc.b 3 dc.b $49 ; I dc.b 3 dc.b $4D ; M dc.b 3 dc.b $4C ; L dc.b 3 dc.b $47 ; G dc.b 3 dc.b $47 ; G dc.b 3 dc.b $45 ; E dc.b 3 dc.b $47 ; G dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 0 dc.b 0 dc.b 2 dc.b $9D ; ? dc.b 3 dc.b $A dc.b 3 dc.b $1F dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $3A ; : dc.b 3 dc.b $45 ; E dc.b 3 dc.b $46 ; F dc.b 3 dc.b $49 ; I dc.b 3 dc.b $4D ; M dc.b 3 dc.b $4C ; L dc.b 3 dc.b $47 ; G dc.b 3 dc.b $47 ; G dc.b 3 dc.b $48 ; H dc.b 3 dc.b $47 ; G dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 0 dc.b 0 dc.b 2 dc.b $9B ; ? dc.b 3 dc.b 7 dc.b 3 dc.b $1C dc.b 3 dc.b $2F ; / dc.b 3 dc.b $38 ; 8 dc.b 3 dc.b $41 ; A dc.b 3 dc.b $42 ; B dc.b 3 dc.b $47 ; G dc.b 3 dc.b $4C ; L dc.b 3 dc.b $4A ; J dc.b 3 dc.b $47 ; G dc.b 3 dc.b $46 ; F dc.b 3 dc.b $48 ; H dc.b 3 dc.b $47 ; G dc.b 3 dc.b $52 ; R dc.b 3 dc.b $52 ; R dc.b 3 dc.b $52 ; R dc.b 3 dc.b $52 ; R dc.b 3 dc.b $52 ; R dc.b 3 dc.b $52 ; R dc.b 0 dc.b 0 dc.b 2 dc.b $9A ; ? dc.b 3 dc.b 5 dc.b 3 dc.b $19 dc.b 3 dc.b $2B ; + dc.b 3 dc.b $34 ; 4 dc.b 3 dc.b $3E ; > dc.b 3 dc.b $40 ; @ dc.b 3 dc.b $43 ; C dc.b 3 dc.b $49 ; I dc.b 3 dc.b $47 ; G dc.b 3 dc.b $43 ; C dc.b 3 dc.b $44 ; D dc.b 3 dc.b $45 ; E dc.b 3 dc.b $44 ; D dc.b 3 dc.b $50 ; P dc.b 3 dc.b $50 ; P dc.b 3 dc.b $50 ; P dc.b 3 dc.b $50 ; P dc.b 3 dc.b $50 ; P dc.b 3 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 2 dc.b $84 ; ? dc.b 2 dc.b $F0 ; ? dc.b 3 dc.b 9 dc.b 3 dc.b $15 dc.b 3 dc.b $1F dc.b 3 dc.b $2C ; , dc.b 3 dc.b $2A ; * dc.b 3 dc.b $30 ; 0 dc.b 3 dc.b $36 ; 6 dc.b 3 dc.b $32 ; 2 dc.b 3 dc.b $2F ; / dc.b 3 dc.b $2F ; / dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $32 ; 2 dc.b 3 dc.b $3A ; : dc.b 3 dc.b $3A ; : dc.b 3 dc.b $3A ; : dc.b 3 dc.b $3A ; : dc.b 3 dc.b $3A ; : dc.b 3 dc.b $3A ; : dc.b 0 dc.b 0 dc.b 2 dc.b $7D ; } dc.b 2 dc.b $EA ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $11 dc.b 3 dc.b $1C dc.b 3 dc.b $28 ; ( dc.b 3 dc.b $25 ; % dc.b 3 dc.b $2A ; * dc.b 3 dc.b $31 ; 1 dc.b 3 dc.b $2B ; + dc.b 3 dc.b $29 ; ) dc.b 3 dc.b $2A ; * dc.b 3 dc.b $30 ; 0 dc.b 3 dc.b $2D ; - dc.b 3 dc.b $35 ; 5 dc.b 3 dc.b $35 ; 5 dc.b 3 dc.b $35 ; 5 dc.b 3 dc.b $35 ; 5 dc.b 3 dc.b $35 ; 5 dc.b 3 dc.b $35 ; 5 dc.b 0 dc.b 0 dc.b 2 dc.b $79 ; y dc.b 2 dc.b $E5 ; ? dc.b 2 dc.b $FF dc.b 3 dc.b 9 dc.b 3 dc.b $16 dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $25 ; % dc.b 3 dc.b $28 ; ( dc.b 3 dc.b $27 ; ' dc.b 3 dc.b $24 ; $ dc.b 3 dc.b $26 ; & dc.b 3 dc.b $2A ; * dc.b 3 dc.b $24 ; $ dc.b 3 dc.b $2D ; - dc.b 3 dc.b $2D ; - dc.b 3 dc.b $2D ; - dc.b 3 dc.b $2D ; - dc.b 3 dc.b $2D ; - dc.b 3 dc.b $2D ; - dc.b 0 dc.b 0 dc.b 2 dc.b $63 ; c dc.b 2 dc.b $D5 ; ? dc.b 2 dc.b $F8 ; ? dc.b 3 dc.b 3 dc.b 3 dc.b $F dc.b 3 dc.b $1B dc.b 3 dc.b $1B dc.b 3 dc.b $1F dc.b 3 dc.b $23 ; # dc.b 3 dc.b $22 ; " dc.b 3 dc.b $1F dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $20 dc.b 3 dc.b $1A dc.b 3 dc.b $23 ; # dc.b 3 dc.b $23 ; # dc.b 3 dc.b $23 ; # dc.b 3 dc.b $23 ; # dc.b 3 dc.b $23 ; # dc.b 3 dc.b $23 ; # dc.b 0 dc.b 0 dc.b 2 dc.b $5D ; ] dc.b 2 dc.b $CE ; ? dc.b 2 dc.b $F2 ; ? dc.b 2 dc.b $FC ; ? dc.b 3 dc.b 9 dc.b 3 dc.b $14 dc.b 3 dc.b $16 dc.b 3 dc.b $18 dc.b 3 dc.b $1E dc.b 3 dc.b $1E dc.b 3 dc.b $1B dc.b 3 dc.b $1D dc.b 3 dc.b $1C dc.b 3 dc.b $16 dc.b 3 dc.b $1F dc.b 3 dc.b $1F dc.b 3 dc.b $1F dc.b 3 dc.b $1F dc.b 3 dc.b $1F dc.b 3 dc.b $1F dc.b 0 dc.b 0 dc.b 2 dc.b $53 ; S dc.b 2 dc.b $C5 ; ? dc.b 2 dc.b $EA ; ? dc.b 2 dc.b $F6 ; ? dc.b 3 dc.b 3 dc.b 3 dc.b $F dc.b 3 dc.b $11 dc.b 3 dc.b $14 dc.b 3 dc.b $1A dc.b 3 dc.b $19 dc.b 3 dc.b $16 dc.b 3 dc.b $19 dc.b 3 dc.b $18 dc.b 3 dc.b $12 dc.b 3 dc.b $1B dc.b 3 dc.b $1B dc.b 3 dc.b $1B dc.b 3 dc.b $1B dc.b 3 dc.b $1B dc.b 3 dc.b $1B ENG_TORQUE_KA_INDICATED_MBT_TORQUE_EFF_E80:dc.l off_0+$22C ; DATA XREF: sub_7E0BC+196o ; sub_7E0BC+1AAo ... ; Thermal Efficiency factor used in calculating Indicated_MBT_Torque with E80 fuel. ; NONE 0-1 dc.b 2 dc.b $78 ; x dc.b 2 dc.b $7A ; z dc.b 2 dc.b $90 ; ? dc.b 2 dc.b $9C ; ? dc.b 2 dc.b $AE ; ? dc.b 2 dc.b $AA ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $B2 ; ? dc.b 2 dc.b $A7 ; ? dc.b 2 dc.b $AE ; ? dc.b 2 dc.b $B9 ; ? dc.b 2 dc.b $C0 ; ? dc.b 2 dc.b $C7 ; ? dc.b 2 dc.b $CF ; ? dc.b 2 dc.b $CF ; ? dc.b 2 dc.b $CF ; ? dc.b 2 dc.b $CF ; ? dc.b 2 dc.b $CF ; ? dc.b 2 dc.b $CF ; ? dc.b 0 dc.b 0 dc.b 2 dc.b $3B ; ; dc.b 2 dc.b $9B ; ? dc.b 2 dc.b $AF ; ? dc.b 2 dc.b $C3 ; ? dc.b 2 dc.b $C7 ; ? dc.b 2 dc.b $D7 ; ? dc.b 2 dc.b $D2 ; ? dc.b 2 dc.b $CF ; ? dc.b 2 dc.b $D6 ; ? dc.b 2 dc.b $CF ; ? dc.b 2 dc.b $D5 ; ? dc.b 2 dc.b $DC ; ? dc.b 2 dc.b $E0 ; ? dc.b 2 dc.b $E7 ; ? dc.b 2 dc.b $EE ; ? dc.b 2 dc.b $EE ; ? dc.b 2 dc.b $EE ; ? dc.b 2 dc.b $EE ; ? dc.b 2 dc.b $EE ; ? dc.b 2 dc.b $EE ; ? dc.b 0 dc.b 0 dc.b 2 dc.b $68 ; h dc.b 2 dc.b $D1 ; ? dc.b 2 dc.b $E9 ; ? dc.b 2 dc.b $F7 ; ? dc.b 2 dc.b $F3 ; ? dc.b 3 dc.b 0 dc.b 2 dc.b $FB ; ? dc.b 2 dc.b $FD ; ? dc.b 2 dc.b $FB ; ? dc.b 2 dc.b $F7 ; ? dc.b 2 dc.b $FC ; ? dc.b 2 dc.b $FF dc.b 3 dc.b 1 dc.b 3 dc.b 6 dc.b 3 dc.b $D dc.b 3 dc.b $D dc.b 3 dc.b $D dc.b 3 dc.b $D dc.b 3 dc.b $D dc.b 3 dc.b $D dc.b 0 dc.b 0 dc.b 2 dc.b $7F ;  dc.b 2 dc.b $EC ; ? dc.b 3 dc.b 5 dc.b 3 dc.b $16 dc.b 3 dc.b $18 dc.b 3 dc.b $22 ; " dc.b 3 dc.b $1E dc.b 3 dc.b $20 dc.b 3 dc.b $1E dc.b 3 dc.b $1B dc.b 3 dc.b $13 dc.b 3 dc.b $16 dc.b 3 dc.b $16 dc.b 3 dc.b $1B dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $21 ; ! dc.b 0 dc.b 0 dc.b 2 dc.b $8F ; ? dc.b 2 dc.b $FE ; ? dc.b 3 dc.b $17 dc.b 3 dc.b $28 ; ( dc.b 3 dc.b $2F ; / dc.b 3 dc.b $39 ; 9 dc.b 3 dc.b $34 ; 4 dc.b 3 dc.b $36 ; 6 dc.b 3 dc.b $38 ; 8 dc.b 3 dc.b $35 ; 5 dc.b 3 dc.b $34 ; 4 dc.b 3 dc.b $34 ; 4 dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $38 ; 8 dc.b 3 dc.b $3E ; > dc.b 3 dc.b $3E ; > dc.b 3 dc.b $3E ; > dc.b 3 dc.b $3E ; > dc.b 3 dc.b $3E ; > dc.b 3 dc.b $3E ; > dc.b 0 dc.b 0 dc.b 2 dc.b $9A ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $1E dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $3A ; : dc.b 3 dc.b $44 ; D dc.b 3 dc.b $43 ; C dc.b 3 dc.b $46 ; F dc.b 3 dc.b $47 ; G dc.b 3 dc.b $46 ; F dc.b 3 dc.b $40 ; @ dc.b 3 dc.b $44 ; D dc.b 3 dc.b $48 ; H dc.b 3 dc.b $46 ; F dc.b 3 dc.b $4F ; O dc.b 3 dc.b $4F ; O dc.b 3 dc.b $4F ; O dc.b 3 dc.b $4F ; O dc.b 3 dc.b $4F ; O dc.b 3 dc.b $4F ; O dc.b 0 dc.b 0 dc.b 2 dc.b $9F ; ? dc.b 3 dc.b $B dc.b 3 dc.b $1F dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $3C ; < dc.b 3 dc.b $46 ; F dc.b 3 dc.b $46 ; F dc.b 3 dc.b $49 ; I dc.b 3 dc.b $4D ; M dc.b 3 dc.b $4C ; L dc.b 3 dc.b $47 ; G dc.b 3 dc.b $47 ; G dc.b 3 dc.b $45 ; E dc.b 3 dc.b $47 ; G dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 0 dc.b 0 dc.b 2 dc.b $9D ; ? dc.b 3 dc.b $A dc.b 3 dc.b $1F dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $3A ; : dc.b 3 dc.b $45 ; E dc.b 3 dc.b $46 ; F dc.b 3 dc.b $49 ; I dc.b 3 dc.b $4D ; M dc.b 3 dc.b $4C ; L dc.b 3 dc.b $47 ; G dc.b 3 dc.b $47 ; G dc.b 3 dc.b $48 ; H dc.b 3 dc.b $47 ; G dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 0 dc.b 0 dc.b 2 dc.b $9B ; ? dc.b 3 dc.b 7 dc.b 3 dc.b $1C dc.b 3 dc.b $2F ; / dc.b 3 dc.b $38 ; 8 dc.b 3 dc.b $41 ; A dc.b 3 dc.b $42 ; B dc.b 3 dc.b $47 ; G dc.b 3 dc.b $4C ; L dc.b 3 dc.b $4A ; J dc.b 3 dc.b $47 ; G dc.b 3 dc.b $46 ; F dc.b 3 dc.b $48 ; H dc.b 3 dc.b $47 ; G dc.b 3 dc.b $52 ; R dc.b 3 dc.b $52 ; R dc.b 3 dc.b $52 ; R dc.b 3 dc.b $52 ; R dc.b 3 dc.b $52 ; R dc.b 3 dc.b $52 ; R dc.b 0 dc.b 0 dc.b 2 dc.b $9A ; ? dc.b 3 dc.b 5 dc.b 3 dc.b $19 dc.b 3 dc.b $2B ; + dc.b 3 dc.b $34 ; 4 dc.b 3 dc.b $3E ; > dc.b 3 dc.b $40 ; @ dc.b 3 dc.b $43 ; C dc.b 3 dc.b $49 ; I dc.b 3 dc.b $47 ; G dc.b 3 dc.b $43 ; C dc.b 3 dc.b $44 ; D dc.b 3 dc.b $45 ; E dc.b 3 dc.b $44 ; D dc.b 3 dc.b $50 ; P dc.b 3 dc.b $50 ; P dc.b 3 dc.b $50 ; P dc.b 3 dc.b $50 ; P dc.b 3 dc.b $50 ; P dc.b 3 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 2 dc.b $84 ; ? dc.b 2 dc.b $F0 ; ? dc.b 3 dc.b 9 dc.b 3 dc.b $15 dc.b 3 dc.b $1F dc.b 3 dc.b $2C ; , dc.b 3 dc.b $2A ; * dc.b 3 dc.b $30 ; 0 dc.b 3 dc.b $36 ; 6 dc.b 3 dc.b $32 ; 2 dc.b 3 dc.b $2F ; / dc.b 3 dc.b $2F ; / dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $32 ; 2 dc.b 3 dc.b $3A ; : dc.b 3 dc.b $3A ; : dc.b 3 dc.b $3A ; : dc.b 3 dc.b $3A ; : dc.b 3 dc.b $3A ; : dc.b 3 dc.b $3A ; : dc.b 0 dc.b 0 dc.b 2 dc.b $7D ; } dc.b 2 dc.b $EA ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $11 dc.b 3 dc.b $1C dc.b 3 dc.b $28 ; ( dc.b 3 dc.b $25 ; % dc.b 3 dc.b $2A ; * dc.b 3 dc.b $31 ; 1 dc.b 3 dc.b $2B ; + dc.b 3 dc.b $29 ; ) dc.b 3 dc.b $2A ; * dc.b 3 dc.b $30 ; 0 dc.b 3 dc.b $2D ; - dc.b 3 dc.b $35 ; 5 dc.b 3 dc.b $35 ; 5 dc.b 3 dc.b $35 ; 5 dc.b 3 dc.b $35 ; 5 dc.b 3 dc.b $35 ; 5 dc.b 3 dc.b $35 ; 5 dc.b 0 dc.b 0 dc.b 2 dc.b $79 ; y dc.b 2 dc.b $E5 ; ? dc.b 2 dc.b $FF dc.b 3 dc.b 9 dc.b 3 dc.b $16 dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $25 ; % dc.b 3 dc.b $28 ; ( dc.b 3 dc.b $27 ; ' dc.b 3 dc.b $24 ; $ dc.b 3 dc.b $26 ; & dc.b 3 dc.b $2A ; * dc.b 3 dc.b $24 ; $ dc.b 3 dc.b $2D ; - dc.b 3 dc.b $2D ; - dc.b 3 dc.b $2D ; - dc.b 3 dc.b $2D ; - dc.b 3 dc.b $2D ; - dc.b 3 dc.b $2D ; - dc.b 0 dc.b 0 dc.b 2 dc.b $63 ; c dc.b 2 dc.b $D5 ; ? dc.b 2 dc.b $F8 ; ? dc.b 3 dc.b 3 dc.b 3 dc.b $F dc.b 3 dc.b $1B dc.b 3 dc.b $1B dc.b 3 dc.b $1F dc.b 3 dc.b $23 ; # dc.b 3 dc.b $22 ; " dc.b 3 dc.b $1F dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $20 dc.b 3 dc.b $1A dc.b 3 dc.b $23 ; # dc.b 3 dc.b $23 ; # dc.b 3 dc.b $23 ; # dc.b 3 dc.b $23 ; # CurveTable_14_Rows_B4362___A_C_Clutch_Disengagement_Spark_Delay_??:dc.b 3 dc.b $23 ; # dc.b 3 dc.b $23 ; # dc.b 0 dc.b 0 dc.b 2 dc.b $5D ; ] dc.b 2 dc.b $CE ; ? dc.b 2 dc.b $F2 ; ? dc.b 2 dc.b $FC ; ? dc.b 3 dc.b 9 dc.b 3 dc.b $14 dc.b 3 dc.b $16 dc.b 3 dc.b $18 dc.b 3 dc.b $1E dc.b 3 dc.b $1E dc.b 3 dc.b $1B CurveTable_14_Rows_B4360___A_C_Inertia_Torque:dc.b 3 dc.b $1D dc.b 3 dc.b $1C dc.b 3 dc.b $16 dc.b 3 dc.b $1F dc.b 3 dc.b $1F dc.b 3 dc.b $1F dc.b 3 dc.b $1F dc.b 3 dc.b $1F dc.b 3 dc.b $1F dc.b 0 dc.b 0 dc.b 2 dc.b $53 ; S dc.b 2 dc.b $C5 ; ? dc.b 2 dc.b $EA ; ? dc.b 2 dc.b $F6 ; ? CurveTable_17_Rows_B4361___A_C_Inertia_Torque_Airflow_Ramp_Out_Rate:dc.b 3 dc.b 3 dc.b 3 dc.b $F dc.b 3 dc.b $11 dc.b 3 dc.b $14 dc.b 3 dc.b $1A dc.b 3 dc.b $19 dc.b 3 dc.b $16 dc.b 3 dc.b $19 dc.b 3 dc.b $18 dc.b 3 dc.b $12 dc.b 3 dc.b $1B dc.b 3 dc.b $1B dc.b 3 dc.b $1B dc.b 3 dc.b $1B dc.b 3 dc.b $1B dc.b 3 dc.b $1B ENG_TORQUE_KA_TORQUE_LOSS_FROM_SPARK_RETARD:dc.b 0 dc.b 0 Flag_0x01_B4359___A_C_Torque_Loss_Spark_Correction__Idle__Disable:dc.b 0 dc.b 4 CurveTable_14_Rows_B4365___A_C_Clutch_Engagement_Added_Airflow_Time:dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $F8 ; ? dc.b 1 dc.b $93 ; ? dc.b 2 dc.b $53 ; S dc.b 3 dc.b $38 ; 8 dc.b 4 dc.b $42 ; B dc.b 5 dc.b $71 ; q dc.b 6 dc.b $C4 ; ? dc.b 8 dc.b $3C ; < dc.b 9 dc.b $DA ; ? dc.b $B dc.b $9C ; ? dc.b $D dc.b $83 ; ? dc.b $F dc.b $8E ; ? Constant16______________A_C_Clutch_Disengagement_Torque_Hold_Time:dc.b $11 dc.b $BF ; ? dc.b $14 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $F8 ; ? dc.b 1 dc.b $93 ; ? dc.b 2 dc.b $53 ; S dc.b 3 dc.b $38 ; 8 dc.b 4 dc.b $42 ; B dc.b 5 dc.b $71 ; q dc.b 6 dc.b $C4 ; ? dc.b 8 dc.b $3C ; < dc.b 9 dc.b $DA ; ? dc.b $B dc.b $9C ; ? dc.b $D dc.b $83 ; ? dc.b $F dc.b $8E ; ? dc.b $11 dc.b $BF ; ? dc.b $14 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $F8 ; ? dc.b 1 dc.b $93 ; ? dc.b 2 dc.b $53 ; S dc.b 3 dc.b $38 ; 8 dc.b 4 dc.b $42 ; B dc.b 5 dc.b $71 ; q dc.b 6 dc.b $C4 ; ? dc.b 8 dc.b $3C ; < dc.b 9 dc.b $DA ; ? dc.b $B dc.b $9C ; ? dc.b $D dc.b $83 ; ? dc.b $F dc.b $8E ; ? dc.b $11 dc.b $BF ; ? dc.b $14 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $F8 ; ? dc.b 1 dc.b $93 ; ? dc.b 2 dc.b $53 ; S dc.b 3 dc.b $38 ; 8 dc.b 4 dc.b $42 ; B dc.b 5 dc.b $71 ; q dc.b 6 dc.b $C4 ; ? dc.b 8 dc.b $3C ; < dc.b 9 dc.b $DA ; ? dc.b $B dc.b $9C ; ? dc.b $D dc.b $83 ; ? dc.b $F dc.b $8E ; ? dc.b $11 dc.b $BF ; ? dc.b $14 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $F8 ; ? dc.b 1 dc.b $93 ; ? dc.b 2 dc.b $53 ; S dc.b 3 dc.b $38 ; 8 dc.b 4 dc.b $42 ; B dc.b 5 dc.b $71 ; q dc.b 6 dc.b $C4 ; ? dc.b 8 dc.b $3C ; < dc.b 9 dc.b $DA ; ? dc.b $B dc.b $9C ; ? dc.b $D dc.b $83 ; ? dc.b $F dc.b $8E ; ? dc.b $11 dc.b $BF ; ? dc.b $14 dc.b 0 ENG_TORQUE_KV_AC_COMPRESSOR_TORQUE:dc.w $33 ; DATA XREF: sub_7E0BC:loc_7E3C0r ; Torque consumed by friction in AC compressor when AC compressor clutch is engaged. ; lb_ft dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 1 dc.b $18 dc.b 1 dc.b $2E ; . dc.b 1 dc.b $57 ; W dc.b 1 dc.b $8A ; ? dc.b 1 dc.b $F6 ; ? dc.b 2 dc.b $AC ; ? dc.b 3 dc.b $71 ; q dc.b 4 dc.b $57 ; W ENG_TORQUE_KV_AC_COMP_IAT_TORQUE:dc.b 0 ; AC compressor torque loss due to induction air temperature ; lb_ft dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $E6 ; ? dc.b 1 dc.b 0 dc.b 1 dc.b $66 ; f dc.b 1 dc.b $80 ; ? dc.b 1 dc.b $8A ; ? dc.b 1 dc.b $B3 ; ? dc.b 1 dc.b $CD ; ? dc.b 1 dc.b $E6 ; ? dc.b 2 dc.b 0 ENG_TORQUE_KV_ACCESSORY_DRIVE_TORQUE:dc.b 1 ; Parasitic torque due to powersteering pump and alternator ; lb_ft dc.b $33 ; 3 dc.b 1 dc.b $33 ; 3 dc.b 0 dc.b $FB ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $B8 ; ? dc.b 0 dc.b $BD ; ? dc.b 0 dc.b $C3 ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $D2 ; ? dc.b 0 dc.b $DC ; ? dc.b 0 dc.b $F6 ; ? dc.b 1 dc.b 0 dc.b 1 dc.b $1A dc.b 1 dc.b $1F dc.b 1 dc.b $24 ; $ dc.b 1 dc.b $29 ; ) dc.b 1 dc.b $2E ; . dc.b 1 dc.b $33 ; 3 dc.b 1 dc.b $38 ; 8 dc.b 1 dc.b $3D ; = dc.b 1 dc.b $43 ; C ENG_TORQUE_KA_FRICTION_TORQUE:dc.b 5 ; DATA XREF: sub_7E0BC+2CAo ; Torque consumed by friction in engine -- base value. ; lb_ft dc.b $33 ; 3 dc.b 5 dc.b $9A ; ? dc.b 6 dc.b 0 dc.b 6 dc.b $33 ; 3 dc.b 6 dc.b $66 ; f dc.b 6 dc.b $8A ; ? dc.b 5 dc.b $33 ; 3 dc.b 5 dc.b $9A ; ? dc.b 6 dc.b 0 dc.b 6 dc.b $33 ; 3 dc.b 6 dc.b $66 ; f dc.b 6 dc.b $8A ; ? dc.b 3 dc.b $36 ; 6 dc.b 4 dc.b $21 ; ! dc.b 4 dc.b $FD ; ? dc.b 5 dc.b $E4 ; ? dc.b 6 dc.b $88 ; ? dc.b 6 dc.b $FA ; ? dc.b 3 dc.b $5C ; \ dc.b 4 dc.b $3D ; = dc.b 5 dc.b $2E ; . dc.b 6 dc.b $A dc.b 6 dc.b $D2 ; ? dc.b 7 dc.b $5E ; ^ dc.b 4 dc.b 3 dc.b 4 dc.b $FD ; ? dc.b 5 dc.b $DA ; ? dc.b 6 dc.b $C0 ; ? dc.b 7 dc.b $6E ; n dc.b 7 dc.b $E8 ; ? dc.b 4 dc.b $8A ; ? dc.b 5 dc.b $80 ; ? dc.b 6 dc.b $61 ; a dc.b 7 dc.b $29 ; ) dc.b 7 dc.b $E6 ; ? dc.b 8 dc.b $6B ; k dc.b 5 dc.b $48 ; H dc.b 6 dc.b $33 ; 3 dc.b 6 dc.b $F6 ; ? dc.b 7 dc.b $BD ; ? dc.b 8 dc.b $6C ; l dc.b 8 dc.b $E5 ; ? dc.b 6 dc.b $4A ; J dc.b 7 dc.b 3 dc.b 7 dc.b $A6 ; ? dc.b 8 dc.b $54 ; T dc.b 8 dc.b $E9 ; ? dc.b 9 dc.b $51 ; Q dc.b 7 dc.b $8D ; ? dc.b 8 dc.b $31 ; 1 dc.b 8 dc.b $BB ; ? dc.b 9 dc.b $45 ; E dc.b 9 dc.b $9C ; ? dc.b 9 dc.b $D9 ; ? dc.b 9 dc.b 5 dc.b 9 dc.b $71 ; q dc.b 9 dc.b $E1 ; ? dc.b $A dc.b $38 ; 8 dc.b $A dc.b $6C ; l dc.b $A dc.b $8F ; ? dc.b $A dc.b $E4 ; ? dc.b $B dc.b $3B ; ; dc.b $B dc.b $78 ; x dc.b $B dc.b $97 ; ? dc.b $B dc.b $8D ; ? dc.b $B dc.b $86 ; ? dc.b $C dc.b $76 ; v dc.b $C dc.b $B3 ; ? dc.b $C dc.b $EC ; ? dc.b $C dc.b $E1 ; ? dc.b $C dc.b $7B ; { dc.b $C dc.b $33 ; 3 dc.b $E dc.b $31 ; 1 dc.b $E dc.b $54 ; T dc.b $E dc.b $54 ; T dc.b $E dc.b $21 ; ! dc.b $D dc.b $97 ; ? dc.b $D dc.b $36 ; 6 dc.b $F dc.b $5F ; _ dc.b $F dc.b $78 ; x dc.b $F dc.b $69 ; i dc.b $F dc.b $36 ; 6 dc.b $E dc.b $B1 ; ? dc.b $E dc.b $53 ; S dc.b $10 dc.b $9F ; ? dc.b $10 dc.b $AE ; ? dc.b $10 dc.b $80 ; ? dc.b $10 dc.b $1F dc.b $F dc.b $80 ; ? dc.b $F dc.b $11 dc.b $11 dc.b $92 ; ? dc.b $11 dc.b $73 ; s dc.b $11 dc.b $26 ; & dc.b $10 dc.b $9C ; ? dc.b $F dc.b $F3 ; ? dc.b $F dc.b $7D ; } dc.b $12 dc.b $85 ; ? dc.b $12 dc.b $6E ; n dc.b $12 dc.b 3 dc.b $11 dc.b $4F ; O dc.b $10 dc.b $9C ; ? dc.b $10 dc.b $1F dc.b $13 dc.b $78 ; x dc.b $13 dc.b $69 ; i dc.b $12 dc.b $DF ; ? dc.b $12 dc.b 3 dc.b $11 dc.b $45 ; E dc.b $10 dc.b $C1 ; ? dc.b $14 dc.b $6C ; l dc.b $14 dc.b $64 ; d dc.b $13 dc.b $BB ; ? dc.b $12 dc.b $B6 ; ? dc.b $11 dc.b $EE ; ? dc.b $11 dc.b $62 ; b dc.b $15 dc.b $5F ; _ dc.b $15 dc.b $5F ; _ dc.b $14 dc.b $97 ; ? dc.b $13 dc.b $69 ; i dc.b $12 dc.b $97 ; ? dc.b $12 dc.b 4 dc.b $16 dc.b $52 ; R dc.b $16 dc.b $5A ; Z dc.b $15 dc.b $73 ; s dc.b $14 dc.b $1C dc.b $13 dc.b $40 ; @ dc.b $12 dc.b $A6 ; ? ENG_TORQUE_KA_OIL_TEMP_FRICTION_MODIFIER:dc.b $13 ; DATA XREF: sub_7E0BC+2B2o ; This is the change in the friction torque due to changesin oil temperature. ; NONE 0-4 dc.b $AE ; ? dc.b $11 dc.b $EC ; ? dc.b $10 dc.b $7B ; { dc.b $F dc.b $A dc.b $D dc.b $D7 ; ? dc.b $C dc.b $66 ; f dc.b $B dc.b $1F dc.b $A dc.b $29 ; ) dc.b 9 dc.b $5C ; \ dc.b 8 dc.b $E1 ; ? dc.b 8 dc.b $7B ; { dc.b 8 dc.b $29 ; ) dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b $13 dc.b $AE ; ? dc.b $11 dc.b $EC ; ? dc.b $10 dc.b $7B ; { dc.b $F dc.b $A dc.b $D dc.b $D7 ; ? dc.b $C dc.b $66 ; f dc.b $B dc.b $1F dc.b $A dc.b $29 ; ) dc.b 9 dc.b $5C ; \ dc.b 8 dc.b $E1 ; ? dc.b 8 dc.b $7B ; { dc.b 8 dc.b $29 ; ) dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b $12 dc.b $66 ; f dc.b $10 dc.b $F6 ; ? dc.b $F dc.b $AE ; ? dc.b $E dc.b $66 ; f dc.b $D dc.b $48 ; H dc.b $C dc.b $14 dc.b $A dc.b $F6 ; ? dc.b $A dc.b $14 dc.b 9 dc.b $5C ; \ dc.b 8 dc.b $CD ; ? dc.b 8 dc.b $7B ; { dc.b 8 dc.b $29 ; ) dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b $11 dc.b $30 ; 0 dc.b $F dc.b $FE ; ? dc.b $E dc.b $DA ; ? dc.b $D dc.b $C4 ; ? dc.b $C dc.b $BA ; ? dc.b $B dc.b $BB ; ? dc.b $A dc.b $C6 ; ? dc.b 9 dc.b $F8 ; ? dc.b 9 dc.b $45 ; E dc.b 8 dc.b $C9 ; ? dc.b 8 dc.b $77 ; w dc.b 8 dc.b $29 ; ) dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b $10 dc.b $1F dc.b $F dc.b $19 dc.b $E dc.b $20 dc.b $D dc.b $32 ; 2 dc.b $C dc.b $4F ; O dc.b $B dc.b $75 ; u dc.b $A dc.b $A4 ; ? dc.b 9 dc.b $E9 ; ? dc.b 9 dc.b $3F ; ? dc.b 8 dc.b $C1 ; ? dc.b 8 dc.b $6F ; o dc.b 8 dc.b $29 ; ) dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b $F dc.b $D dc.b $E dc.b $34 ; 4 dc.b $D dc.b $66 ; f dc.b $C dc.b $A0 ; ? dc.b $B dc.b $E4 ; ? dc.b $B dc.b $2F ; / dc.b $A dc.b $81 ; ? dc.b 9 dc.b $DA ; ? dc.b 9 dc.b $3A ; : dc.b 8 dc.b $B8 ; ? dc.b 8 dc.b $66 ; f dc.b 8 dc.b $29 ; ) dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b $E dc.b $2A ; * dc.b $D dc.b $71 ; q dc.b $C dc.b $C0 ; ? dc.b $C dc.b $18 dc.b $B dc.b $76 ; v dc.b $A dc.b $DC ; ? dc.b $A dc.b $48 ; H dc.b 9 dc.b $B9 ; ? dc.b 9 dc.b $30 ; 0 dc.b 8 dc.b $BB ; ? dc.b 8 dc.b $64 ; d dc.b 8 dc.b $29 ; ) dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b $D dc.b $47 ; G dc.b $C dc.b $AD ; ? dc.b $C dc.b $1B dc.b $B dc.b $8F ; ? dc.b $B dc.b 9 dc.b $A dc.b $89 ; ? dc.b $A dc.b $E dc.b 9 dc.b $98 ; ? dc.b 9 dc.b $26 ; & dc.b 8 dc.b $BE ; ? dc.b 8 dc.b $61 ; a dc.b 8 dc.b $29 ; ) dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b $C dc.b $96 ; ? dc.b $C dc.b $15 dc.b $B dc.b $9A ; ? dc.b $B dc.b $24 ; $ dc.b $A dc.b $B3 ; ? dc.b $A dc.b $47 ; G dc.b 9 dc.b $E0 ; ? dc.b 9 dc.b $7C ; | dc.b 9 dc.b $1D dc.b 8 dc.b $BA ; ? dc.b 8 dc.b $5D ; ] dc.b 8 dc.b $29 ; ) dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b $C dc.b $19 dc.b $B dc.b $A9 ; ? dc.b $B dc.b $3D ; = dc.b $A dc.b $D7 ; ? dc.b $A dc.b $75 ; u dc.b $A dc.b $17 dc.b 9 dc.b $BD ; ? dc.b 9 dc.b $66 ; f dc.b 9 dc.b $12 dc.b 8 dc.b $AF ; ? dc.b 8 dc.b $58 ; X dc.b 8 dc.b $29 ; ) dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b $B dc.b $9C ; ? dc.b $B dc.b $3C ; < dc.b $A dc.b $E1 ; ? dc.b $A dc.b $8A ; ? dc.b $A dc.b $36 ; 6 dc.b 9 dc.b $E6 ; ? dc.b 9 dc.b $99 ; ? dc.b 9 dc.b $4F ; O dc.b 9 dc.b 8 dc.b 8 dc.b $A4 ; ? dc.b 8 dc.b $52 ; R dc.b 8 dc.b $29 ; ) dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b $A dc.b $F3 ; ? dc.b $A dc.b $A6 ; ? dc.b $A dc.b $5E ; ^ dc.b $A dc.b $18 dc.b 9 dc.b $D6 ; ? unk_A580: dc.b 9 ; DATA XREF: Boot:off_1E0Ao unk_A581: dc.b $97 ; ? ; DATA XREF: Boot:off_1E06o dc.b 9 dc.b $5A ; Z dc.b 9 dc.b $1F dc.b 8 dc.b $E7 ; ? dc.b 8 dc.b $9A ; ? dc.b 8 dc.b $52 ; R dc.b 8 dc.b $29 ; ) dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b $A dc.b $49 ; I dc.b $A dc.b $10 dc.b 9 dc.b $DB ; ? dc.b 9 dc.b $A7 ; ? dc.b 9 dc.b $76 ; v dc.b 9 dc.b $47 ; G dc.b 9 dc.b $1A dc.b 8 dc.b $EF ; ? dc.b 8 dc.b $C5 ; ? dc.b 8 dc.b $8F ; ? dc.b 8 dc.b $52 ; R dc.b 8 dc.b $29 ; ) dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b 9 dc.b $D7 ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $71 ; q dc.b 9 dc.b $48 ; H dc.b 9 dc.b $1F dc.b 9 dc.b $A dc.b 8 dc.b $F6 ; ? dc.b 8 dc.b $CD ; ? dc.b 8 dc.b $A4 ; ? dc.b 8 dc.b $7B ; { dc.b 8 dc.b $3D ; = dc.b 8 dc.b $29 ; ) dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b 9 dc.b $71 ; q dc.b 9 dc.b $33 ; 3 dc.b 9 dc.b $A dc.b 8 dc.b $F6 ; ? dc.b 8 dc.b $E1 ; ? dc.b 8 dc.b $CD ; ? dc.b 8 dc.b $B8 ; ? dc.b 8 dc.b $A4 ; ? dc.b 8 dc.b $8F ; ? dc.b 8 dc.b $66 ; f dc.b 8 dc.b $3D ; = dc.b 8 dc.b $29 ; ) dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b 9 dc.b $A dc.b 8 dc.b $E1 ; ? dc.b 8 dc.b $A4 ; ? dc.b 8 dc.b $A4 ; ? dc.b 8 dc.b $8F ; ? dc.b 8 dc.b $8F ; ? dc.b 8 dc.b $7B ; { dc.b 8 dc.b $7B ; { dc.b 8 dc.b $66 ; f dc.b 8 dc.b $52 ; R dc.b 8 dc.b $3D ; = dc.b 8 dc.b $14 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b 8 dc.b $B8 ; ? dc.b 8 dc.b $8F ; ? dc.b 8 dc.b $7B ; { dc.b 8 dc.b $7B ; { dc.b 8 dc.b $66 ; f dc.b 8 dc.b $66 ; f dc.b 8 dc.b $52 ; R dc.b 8 dc.b $52 ; R dc.b 8 dc.b $3D ; = dc.b 8 dc.b $3D ; = dc.b 8 dc.b $29 ; ) dc.b 8 dc.b $14 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b 8 dc.b $7B ; { dc.b 8 dc.b $66 ; f dc.b 8 dc.b $52 ; R dc.b 8 dc.b $3D ; = dc.b 8 dc.b $3D ; = dc.b 8 dc.b $3D ; = dc.b 8 dc.b $29 ; ) dc.b 8 dc.b $29 ; ) dc.b 8 dc.b $29 ; ) dc.b 8 dc.b $29 ; ) dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b 8 dc.b $3D ; = dc.b 8 dc.b $3D ; = dc.b 8 dc.b $3D ; = dc.b 8 dc.b $29 ; ) dc.b 8 dc.b $29 ; ) dc.b 8 dc.b $29 ; ) dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b 8 dc.b $29 ; ) dc.b 8 dc.b $29 ; ) dc.b 8 dc.b $29 ; ) dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b $14 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $3D ; = ENG_TORQUE_KE_INDICATED_TORQUE_FILTER:dc.w $100 ; DATA XREF: sub_7E0BC+280r ; This is the filter coefficient for indicated MBT torque andindicated MBT torque all cylinders. ; Seconds ENG_TORQUE_KE_STALL_PROTECTION_DUTY_CYCLE:dc.w $466 ; DATA XREF: sub_7E0BC+616r ; Duty cycle broadcast on the Delivered Torque PWM. ; Percent ENG_TORQUE_KE_AC_BUMP_SPARK_ENABLE:dc.b 1 ; DATA XREF: OS3:loc_7EAF2r ; OS3:loc_7ED38r ... ; Enables spark for AC Bump logic when TRUE. ; BOOLEAN dc.b $FF ENG_TORQUE_KE_AC_BUMP_CLUTCH_DELAY:dc.w 0 ; DATA XREF: OS3:0007EB28r ; Amount of time from AC_Commanded_On TRUE to when compressorload hits the engine. ; Seconds ENG_TORQUE_KE_AC_BUMP_TORQUE_RAMP_IN:dc.w $CD ; DATA XREF: OS3:0007EB3Ar ; The rate at which the torque is ramped in when the AC compressorclutch engages. ; Foot Pounds ENG_TORQUE_KE_AC_BUMP_TORQUE_RAMP_OUT:dc.w $CD ; DATA XREF: OS3:0007ED62r ; The rate at which the torque is ramped out when the AC compressorclutch disengages. ; Foot Pounds ENG_TORQUE_KE_AC_FLOW_OFFSET_DELTA:dc.w $F800 ; DATA XREF: OS3:0007ECFCr ; Any delta change in AC Flow Offset that is less than this amount, the variation correction cells will be reset. ; Grams per Second ENG_TORQUE_KE_AC_BUMP_SPARK_DURATION_LIMIT:dc.w $1E0 ; DATA XREF: OS3:0007EEACr ; Any non-zero AC_Bump_Torque value that persists for this amountof time will be set to zero. ; Seconds ENG_TORQUE_KE_TCS_SHIFT_DUTY_CYCLE:dc.w $29A ; DATA XREF: sub_7E0BC+624r ; Duty cycle broadcast on the Delivered Torque PWM in the eventthat the PCM determines that a shift is in progress. ; Percent ENG_TORQUE_KE_TCS_DEL_TORQ_DUTY_CYCLE_LOW:dc.w $600 ; DATA XREF: sub_7E04C:loc_7E0AAr ; OS3:loc_7F188r ; Lowest duty cycle broadcast on the Delivered Torque PWM for normal conditions. ; Percent ENG_TORQUE_KE_ENGINE_SPEED_STALL:dc.w $3C00 ; DATA XREF: sub_7E0BC+602r ; Engine speed below which stall protection mode will be enabledwhen TCS_Stall_Protection_Number is below a cal also. ; RPM ENG_TORQUE_KE_TCS_STALL_DELTA_GAIN:dc.w $C00 ; DATA XREF: sub_7E0BC+58Cr ; Gain on the derivative term for calculation ofTCS_Stall_Protection_Number. ; Scaler 0-16 ENG_TORQUE_KE_ENG_SPEED_STALL_ABSOLUTE_HI:dc.w $800 ; DATA XREF: sub_7E0BC+5D0r ENG_TORQUE_KE_ENG_SPEED_STALL_ABSOLUTE_LO:dc.w $600 ; DATA XREF: sub_7E0BC:loc_7E6A8r ENG_TORQUE_KE_MIN_TORQUE_NORM:dc.w $FE66 ; DATA XREF: sub_7E04C:loc_7E07Cr ; sub_7E04C+38r ... ; Used to calculate torque PWM minimum ; Fraction -1_to_1 ENG_TORQUE_KE_LCT_TRQ_MNG_FAIL_DUTY_CYCLE:dc.w $166 ; DATA XREF: sub_7E0BC:loc_7E728r ENG_TORQUE_KV_AC_BUMP_CLUTCH_OFF_SPK_DLY:dc.b 0 ; Time from KE_HLD_AC_AIR_OFF expiring until AC Bump_Spark Retard is ramped out. F( AC_Torque_Adjusted ). ; Seconds dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $3E ; > dc.b 0 dc.b $48 ; H dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $58 ; X dc.b 0 dc.b $58 ; X dc.b 0 dc.b $58 ; X ENG_TORQUE_KV_AC_INERTIA_TORQUE:dc.b 0 ; The inertia Torque that compensates for the inertia load of the A/C Clutch. F( AC_Torque ). ; Ft Pounds dc.b $1A dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $E6 ; ? dc.b 1 dc.b $4D ; M dc.b 1 dc.b $80 ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $B3 ; ? dc.b 1 dc.b $CD ; ? dc.b 1 dc.b $E6 ; ? dc.b 2 dc.b 0 dc.b 2 dc.b $1A dc.b 2 dc.b $33 ; 3 dc.b 2 dc.b $4D ; M ENG_TORQUE_KV_RAMP_INERTIA_AIRFLOW_OUT:dc.b 0 ; Amount of AC Inertia Torque air to ramp out per 12.5ms loop once KV_HLD_AC_AIR_ON timer expires. F( AC_Inertia_Torque ). ; GPS dc.b $B dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $D dc.b 0 dc.b $D dc.b 0 dc.b $D ENG_TORQUE_KE_AC_BUMP_SPARK_IDLE_OFF:dc.b 0 ; DATA XREF: OS3:0007EAFAr ; OS3:0007ED40r ... ; When TRUE, bump spark will not be calculated at idle. ; BOOLEAN dc.b $FF ENG_TORQUE_KV_HLD_AC_AIR_ON:dc.b 0 ; Time to hold_AC_Inertia_Torque air following AC_Commanded_On is TRUE. F( AC_Torque_Adjusted ). ; Seconds dc.b $78 ; x dc.b 0 dc.b $C8 ; ? dc.b 1 dc.b $18 dc.b 1 dc.b $18 dc.b 1 dc.b $18 dc.b 1 dc.b $18 dc.b 1 dc.b $18 dc.b 1 dc.b $18 dc.b 1 dc.b $18 dc.b 1 dc.b $18 dc.b 1 dc.b $18 dc.b 1 dc.b $18 dc.b 1 dc.b $18 dc.b 1 dc.b $18 ENG_TORQUE_KE_HLD_AC_AIR_OFF:dc.w $A ; DATA XREF: OS3:0007ED96r ; Time to hold AC_Torque contribution to CIA beforeramping down to CIA without AC Torque ; Seconds ETC_ENGINE_AIR_KV_ENG_ACCELERATION_THRESHOLD:dc.w 0 ; DATA XREF: sub_20D54:loc_20DF4r ; Lookup for engine accel threshold above which lead governing isenabled as a function of engine speed. ; Engine_Accel_Type_Vs_RPM_Table dc.b 0 dc.b $1A dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $57 ; W dc.b 0 dc.b $66 ; f dc.b 0 dc.b $80 ; ? dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b $14 dc.b 0 ETC_ENGINE_AIR_KV_ENGINE_SPEED_GOV_INT_GAIN:dc.w $3333 ; DATA XREF: sub_20D54:loc_20EAEr ; Integral gain value for the PID engine speed governor indexed withEngine Speed Error. ; RPM_S_Vs_EngSpd_Int_Gain dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $33 ; 3 ETC_ENGINE_AIR_KV_ENG_SPEED_GOV_DERIVATIVE_GAIN:dc.w $333 ; DATA XREF: sub_20D54:loc_20F92r ; Derivative gain value for the PID engine speed governor indexed with Engine_Speed_Error. ; RPM_S_Vs_EngSpd_Deriv_Gain dc.b 2 dc.b $E1 ; ? dc.b 2 dc.b $8F ; ? dc.b 2 dc.b $3D ; = dc.b 1 dc.b $EC ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $48 ; H dc.b 0 dc.b $F6 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $52 ; R dc.b 0 dc.b 0 dc.b 0 dc.b $52 ; R dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $F6 ; ? dc.b 1 dc.b $48 ; H dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $EC ; ? dc.b 2 dc.b $3D ; = dc.b 2 dc.b $8F ; ? dc.b 2 dc.b $E1 ; ? dc.b 3 dc.b $33 ; 3 ETC_ENGINE_AIR_KV_ENGINE_SPEED_GOV_PROP_GAIN:dc.w $36 ; DATA XREF: sub_20D54:loc_20F32r ; Proportional gain value for the PID engine speed governor indexed with Engine_Speed_Error. ; RPM_S_Vs_EngSpd_Prop_Gain dc.b 0 dc.b $2C ; , dc.b 0 dc.b $22 ; " dc.b 0 dc.b $19 dc.b 0 dc.b $F dc.b 0 dc.b 5 dc.b 0 dc.b 4 dc.b 0 dc.b 3 dc.b 0 dc.b 2 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b $10 dc.b 0 dc.b $13 dc.b 0 dc.b $1A dc.b 0 dc.b $1F dc.b 0 dc.b $25 ; % dc.b 0 dc.b $26 ; & dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $29 ; ) ETC_ENGINE_AIR_KV_VEH_SPEED_GOV_INT_GAIN:dc.b $14 ; DATA XREF: sub_21094:loc_21170r ; Integral gain value for the PID vehicle speed governor indexed withDesired_Throttle_Position. ; Percent_Vs_VehSpd_Int_Gain dc.b 5 dc.b 5 dc.b 6 dc.b 9 dc.b $A ETC_ENGINE_AIR_KV_VEH_SPEED_GOV_PROP_GAIN:dc.b $9F ; DATA XREF: sub_21094:loc_211EEr ; Proportional gain value for the PID vehicle speed governor indexedwith Vehicle speed error. ; MPH_S_Vs_VehSpd_Prop_Gain dc.b $7F ;  dc.b $70 ; p dc.b $60 ; ` dc.b $60 ; ` dc.b $60 ; ` dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b $60 ; ` dc.b $7F ;  dc.b $7F ;  dc.b $7F ;  dc.b $7F ;  dc.b $9F ; ? dc.b $FF ETC_ENGINE_AIR_KV_VEH_ACCELERATION_THRESHOLD:dc.l off_0+1 ; Vehicle accel threshold above which lead governing is enabled asa function of Vehicle_Acceleration_Error ; MPH_Per_300ms_S_Vs_MPH_Table dc.l loc_30002+1 dc.l unk_A00C8 dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $C8 ; ? ETC_ENGINE_AIR_KV_ENG_SPEED_GOV_AREA_INITIAL:dc.b 1 ; Initial value used for throttle area if less than Desired_Throttle_Position. ; Gear_Vs_Percent_Table dc.b 0 dc.b 2 dc.b 0 dc.b 3 dc.b 0 dc.b 4 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $66 ; f dc.b 1 dc.b 0 ETC_ENGINE_AIR_KV_TRANS_STAB_GOV_AREA_INITIAL:dc.b 0 ; Initial value used for throttle area if less than Desired_Throttle_Position and ETC Trans stablization is enabled. ; Gear_Vs_Percent_Table dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 ETC_ENGINE_AIR_KV_ENG_SPD_GOV_PID_DELAY_CNT:dc.b 2 ; Specifies the number of control loops that the PID terms will be initialized upon activation of the engine speed governor. ; Gear_Vs_Count_Table dc.b 3 dc.b 4 dc.b 6 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 2 dc.b 2 ETC_ENGINE_AIR_KE_ENG_SPD_GOV_EXIT_HYSTERESIS:dc.w $400 ; DATA XREF: sub_20D54+2B8r ; Exit Engine speed gov when speed drops this amout below Engine_ Speed_Max_Limit and RPM_Gov is not the throt cmd source ; RPM ETC_ENGINE_AIR_KE_ENGINE_SPD_GOV_AREA_MIN:dc.w $66 ; DATA XREF: sub_20D54:loc_2105Cr ; Lower clamp for engine speed governor speed area ; Percent ETC_ENGINE_AIR_KE_VEH_SPEED_GOV_AREA_INITIAL:dc.w $700 ; DATA XREF: sub_21094+AAr ; Initial value used in lead mode if current throttle area is less than this calibration. ; Percent ETC_ENGINE_AIR_KE_VEH_SPEED_DERIVATIVE_GAIN:dc.b $33 ; DATA XREF: sub_21094+196r ; The gain coefficient in the Vehicle speed gov derivative term ; Vehicle_Spd_Gain_Type dc.b $FF ETC_ENGINE_AIR_KE_VEH_SPD_GOV_EXIT_HYSTERESIS:dc.w $180 ; DATA XREF: sub_21094:loc_212BAr ; Exit vehicle speed gov when speed drops this amout below Vehicle_ Speed_Max_Limit and MPH_Gov is not the throt cmd source ; MPH ETC_ENGINE_AIR_KE_VEHICLE_SPD_GOV_AREA_MIN:dc.w $33 ; DATA XREF: sub_21094:loc_21314r ; Lower clamp for governor speed area ; Percent ETC_ENGINE_AIR_KE_ACCEL_LOW_MPH_THRESHOLD:dc.w $280 ; DATA XREF: sub_2132C+Cr ; Programmed acceleration low vehicle speed. ; MPH ETC_ENGINE_AIR_KE_ACCEL_HIGH_MPH_THRESHOLD:dc.w $A00 ; DATA XREF: sub_2132C:loc_21348r ; Programmed acceleration High vehicle speed. ; MPH ETC_ENGINE_AIR_KE_LOW_SPEED_ACCEL_RATE:dc.w $14 ; DATA XREF: sub_2132C+14r ; Programmed acceleration low vehicle speed acceleration rate. ; MPH_Per_Second_S ETC_ENGINE_AIR_KE_MEDIUM_SPEED_ACCEL_RATE:dc.w $E ; DATA XREF: sub_2132C+24r ; Programmed acceleration Medium vehicle speed acceleration rate. ; MPH_Per_Second_S ETC_ENGINE_AIR_KE_HIGH_SPEED_ACCEL_RATE:dc.w $E ; DATA XREF: sub_2132C:loc_21358r ; Programmed acceleration High vehicle speed acceleration rate. ; MPH_Per_Second_S ETC_ENGINE_AIR_KE_ACCEL_GOVERNOR_PROPORTIONAL_G:dc.w $66 ; DATA XREF: sub_2132C+72r ; sub_2132C+D6r ; Programmed acceleration proportional gain term. ; Percent_S ETC_ENGINE_AIR_KE_ACCEL_GOVERNOR_INTEGRAL_GAIN:dc.b $F ; DATA XREF: sub_2132C+A8r ; Programmed acceleration integral gain term. ; Vehicle_Accel_Int_Gain_Type dc.b $FF ETC_ENGINE_AIR_KE_LOW_SPEED_MAX_AREA:dc.w $71 ; DATA XREF: sub_2132C:loc_2146Ar ; Clamp for max throttle commanded when vehicle speed is too low ; Percent ETC_ENGINE_AIR_KE_VEHICLE_SPEED_FILT_COEF:dc.w $6600 ; DATA XREF: sub_20CB2+Cr ; Coefficient used to filter vehicle speed for core ETC algorithm ; Coefficient ETC_ENGINE_AIR_KE_ENGINE_SPEED_GOV_ENABLED:dc.b 0 ; DATA XREF: sub_20D54+4r ; Used to prevent engine speed governor from executing. ; BOOLEAN FUEL_KE_TWO_BANK_FUEL_CONTROL:dc.b 1 ; DATA XREF: OS2:00049E96r ; Used to determine if two bank fuel control is to be used or not. ; BOOLEAN ETC_PEDAL_KE_PEDAL_TRANSITION_INTERVAL:dc.w $20 ; DATA XREF: sub_21930+224r ; Time period for transitioning to reduced or failed performance ; Seconds ETC_PEDAL_KE_PEDAL_ROTATION_SCALER:dc.w $15B7 ; DATA XREF: sub_21930+118r ; sub_21930+138r ; Indicated pedal position to load scaler. ; Scaler_4 ETC_PEDAL_KE_RELAXED_PEDAL_DEADBAND:dc.w $33 ; DATA XREF: sub_21930+154r ; Deadband subrtracted from pedal position for pedal load ; Percent ETC_PEDAL_KV_PEDAL_AREA_REDUCED:dc.w 0 ; DATA XREF: sub_21930:loc_21C30r ; Lookup reduced performance desired throttle area vs pedal load. ; Percent_Area_Vs_Percent_Table dc.l unk_A0014 dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $3E ; > dc.b 0 dc.b $52 ; R dc.b 0 dc.b $66 ; f dc.b 0 dc.b $7A ; z dc.b 0 dc.b $90 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $B8 ; ? dc.b 0 dc.b $CC ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? ETC_PEDAL_KV_PEDAL_HYSTERESIS:dc.w $1A ; DATA XREF: sub_21930+1AAr ; Lookup for hysteresis in indicated pedal position vs. position. ; Percent_Vs_Percent_Table dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $66 ; f dc.b 0 dc.b $78 ; x dc.b 0 dc.b $8A ; ? dc.b 0 dc.b $94 ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? ETC_PEDAL_KE_BATTERY_SAVER_TIME:dc.w $640 ; DATA XREF: sub_21C8A+18r ; Engine / Pedal inactivity time limit for battery saver enable. ; Seconds ETC_PEDAL_KA_PEDAL_AREA_A:dc.l off_0+$20 ; Pedal area as a function of pedal rotation and altitude (baro). ; Percent Pedal Area dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 ETC_PEDAL_KA_PEDAL_AREA_B:dc.l off_0+$20 ; Pedal area as a function of pedal rotation and altitude (baro) with trailer mode engaged. ; Percent Pedal Area dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 unk_ABE0: dc.b $28 ; ( ; DATA XREF: Calibration:0000920Co dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $DA ; ? dc.b 1 dc.b $12 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $C6 ; ? dc.b 2 dc.b $1E dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 4 dc.b 3 dc.b $A2 ; ? dc.b 4 dc.b $52 ; R dc.b 5 dc.b $20 dc.b 6 dc.b 6 dc.b 6 dc.b $FE ; ? dc.b 8 dc.b $14 dc.b 9 dc.b $52 ; R dc.b $A dc.b $AC ; ? dc.b $C dc.b $4C ; L dc.b $E dc.b $3A ; : dc.b $10 dc.b $56 ; V dc.b $12 dc.b $B6 ; ? dc.b $15 dc.b $26 ; & dc.b $17 dc.b $AE ; ? dc.b $1A dc.b $32 ; 2 dc.b $1C dc.b $C4 ; ? dc.b $21 ; ! dc.b $33 ; 3 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 ETC_R_PEDAL_KE_R_PEDAL_TRANSITION_INTERVAL:dc.l off_0+$40 ; DATA XREF: sub_21CCA+120r ; REDUNDANT time period for transitioning to reduced or failed performance ; R_Seconds ETC_R_PEDAL_KE_R_PEDAL_ROTATION_SCALER:dc.w $2B6E ; DATA XREF: sub_21CCA+58r ; REDUNDANT Indicated pedal position to Rotation scaler. ; R_Scaler_4 ETC_R_PEDAL_KE_R_RELAXED_PEDAL_DEADBAND:dc.w $66 ; DATA XREF: sub_21CCA:loc_21D48r ; REDUNDANT Deadband subrtracted from pedal position for the pedal load ; R_Percent ETC_R_PEDAL_KV_R_PEDAL_AREA_REDUCED:dc.l off_0+$14 ; DATA XREF: sub_21CCA+18Co ; REDUNDANT Lookup reduced performance desired throttle area vs pedal load. ; R_Percent_Area_Vs_R_Percnt_Table dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $50 ; P dc.b 0 dc.b $7C ; | dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $CC ; ? dc.b 0 dc.b $F4 ; ? dc.b 1 dc.b $20 dc.b 1 dc.b $48 ; H dc.b 1 dc.b $70 ; p dc.b 1 dc.b $98 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? dc.b 1 dc.b $C4 ; ? ETC_R_PEDAL_KV_R_PEDAL_HYSTERESIS:dc.b 0 ; DATA XREF: sub_21CCA:loc_21D76o ; REDUNDANT Lookup for hysteresis in indicated pedal position vs. position. ; R_Percent_Vs_R_Percent_Table dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $CC ; ? dc.b 0 dc.b $F0 ; ? dc.b 1 dc.b $14 dc.b 1 dc.b $28 ; ( dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 ETC_R_PEDAL_KA_R_PEDAL_AREA_A:dc.l off_0+$40 ; DATA XREF: sub_21CCA+1C8o ; sub_21CCA+204o ; REDUNDANT Pedal area as a function of altitude (baro). ; Percent Pedal Area dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 ETC_R_PEDAL_KA_R_PEDAL_AREA_B:dc.l off_0+$40 ; DATA XREF: sub_21CCA:loc_21E9Ao ; sub_21CCA:loc_21ED6o ; REDUNDANT Pedal area as a function of altitude (baro) with trailer mode engaged. ; Percent Pedal Area dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? CurveTable_5_Rows_Key_on_Initial_Fuel_Prime_Baro_Correction:dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? CurveTable_16_Rows_B3201___Key_on_Initial_Fuel_Prime_Pulse_:dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 SurfaceTable_2x16_Non_Sequential_Fuel_Pulse:dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f SurfaceTable_2x16_Non_Sequential_Fuel_Pulse_Delay:dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 CurveTable_16_Rows_B3202___Key_on_Initial_Fuel_Prime_Delay:dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? CurveTable_16_Rows_B3203___Key_on_Initial_Fuel_Prime_Timer:dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 Constant16_Prime_Pulse_Disable_RPM_Threshold:dc.b 6 dc.b 8 Flag_0x01_Check_fuel_pump_voltage_for_prime_pulse_delivery_??:dc.b 7 dc.b $44 ; D Constant32_Prime_Pulse_Heat_Soak_Correction_Runtime:dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ Constant16_Prime_Pulse_Heat_Soak_Correction_Temperature:dc.b $C dc.b $C Constant32_Key_on_Initial_Prime_Pulse_Re_enable_Time:dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( CurveTable_29_Rows_Key_on_Initial_Fuel_Prime_Pulse_Heat_Soak_Correction:dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? SurfaceTable_2x29_Non_Sequential_Fuel_Pulse_Heat_Soak_Correction:dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $B4 ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 8 dc.b 3 dc.b $8C ; ? dc.b 4 dc.b $3C ; < dc.b 5 dc.b 0 dc.b 6 dc.b 8 dc.b 7 dc.b $44 ; D dc.b 8 dc.b $A4 ; ? dc.b $A dc.b $40 ; @ dc.b $C dc.b $C dc.b $D dc.b $FC ; ? dc.b $10 dc.b $28 ; ( dc.b $12 dc.b $A4 ; ? dc.b $15 dc.b $58 ; X dc.b $18 dc.b $98 ; ? dc.b $1C dc.b $74 ; t dc.b $20 dc.b $AC ; ? dc.b $25 ; % dc.b $6C ; l dc.b $2A ; * dc.b $4C ; L dc.b $2F ; / dc.b $5C ; \ dc.b $34 ; 4 dc.b $64 ; d dc.b $39 ; 9 dc.b $88 ; ? dc.b $42 ; B dc.b $66 ; f dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 ETC_R_THROTTLE_KV_R_THROTTLE_ROTATION:dc.l off_0+$1A6 ; DATA XREF: sub_220F0:loc_2213Eo ; REDUNDANT throttle area to throttle angle conversion table. ; R_Rotation_Vs_Area_Table dc.b 3 dc.b $16 dc.b 4 dc.b $38 ; 8 dc.b 5 dc.b $2E ; . dc.b 5 dc.b $FE ; ? dc.b 6 dc.b $AA ; ? Constant16______________DFCO_M6_Exit_Spark_Advance_Restore_Rate:dc.b 7 dc.b $3C ; < Constant8______________DFCO_Spark_Decay_Delay:dc.b 7 dc.b $B8 ; ? Constant16_B5938___DFCO_Spark_High_TPS_threshold:dc.b 9 dc.b $28 ; ( Constant16_B5940___DFCO_Spark_Low_TPS_threshold:dc.b $A dc.b $4E ; N Constant8_B3337___DFCO_Spark_Transition_Delay:dc.b $B Flag_0x01______________DFCO_Spark_Advance_Ramp_Out_at_Exit:dc.b $50 ; P CurveTable_21_Rows_B5937___DFCO_Spark_Timing__High_TPS:dc.b $C dc.b $3A ; : dc.b $D dc.b $14 dc.b $D dc.b $DE ; ? dc.b $E dc.b $98 ; ? dc.b $F dc.b $46 ; F dc.b $F dc.b $EE ; ? dc.b $10 dc.b $90 ; ? dc.b $11 dc.b $2A ; * dc.b $11 dc.b $C0 ; ? dc.b $12 dc.b $4C ; L dc.b $12 dc.b $D2 ; ? dc.b $13 dc.b $52 ; R dc.b $13 dc.b $D0 ; ? dc.b $14 dc.b $44 ; D dc.b $14 dc.b $B6 ; ? dc.b $15 dc.b $22 ; " dc.b $15 dc.b $8E ; ? dc.b $15 dc.b $FA ; ? dc.b $16 dc.b $60 ; ` dc.b $16 dc.b $C2 ; ? dc.b $17 dc.b $26 ; & CurveTable_21_Rows_B5939___DFCO_Spark_Timing__Low_TPS:dc.b $17 dc.b $88 ; ? dc.b $17 dc.b $EA ; ? dc.b $18 dc.b $4A ; J dc.b $18 dc.b $A8 ; ? dc.b $19 dc.b 4 dc.b $19 dc.b $5E ; ^ dc.b $19 dc.b $BA ; ? dc.b $1A dc.b $14 dc.b $1A dc.b $6A ; j dc.b $1A dc.b $C0 ; ? dc.b $1B dc.b $16 dc.b $1B dc.b $6C ; l dc.b $1B dc.b $C2 ; ? dc.b $1C dc.b $14 dc.b $1C dc.b $68 ; h dc.b $1C dc.b $BA ; ? dc.b $1D dc.b $C dc.b $1D dc.b $5C ; \ dc.b $1D dc.b $B0 ; ? dc.b $1E dc.b 6 dc.b $1E dc.b $5E ; ^ CurveTable_17_Rows_B3335___DFCO_Exit_Spark_Advance_Restore_Rate:dc.b $1E dc.b $B4 ; ? dc.b $1F dc.b $10 dc.b $1F dc.b $70 ; p dc.b $1F dc.b $D6 ; ? dc.b $20 dc.b $3A ; : dc.b $20 dc.b $9E ; ? dc.b $21 ; ! dc.b 6 dc.b $21 ; ! dc.b $70 ; p dc.b $21 ; ! dc.b $E8 ; ? dc.b $22 ; " dc.b $60 ; ` dc.b $22 ; " dc.b $EA ; ? dc.b $23 ; # dc.b $6A ; j dc.b $23 ; # dc.b $FE ; ? dc.b $24 ; $ dc.b $B4 ; ? dc.b $25 ; % dc.b $66 ; f dc.b $26 ; & dc.b $5C ; \ dc.b $27 ; ' dc.b $F4 ; ? ETC_R_THROTTLE_KV_R_MAX_THROTTLE_POSITION:dc.b $28 ; ( ; DATA XREF: sub_220F0:loc_22230o ; REDUNDANT Max permitted Throttle angle vs RPM for reduced induction noise and improves transient response without losing power. ; R_Rotation_Vs_RPM_Table dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 ETC_R_THROTTLE_KV_R_MAX_ALLOWED_NORMAL_THROTTLE:dc.b 7 ; DATA XREF: sub_220F0+10Eo ; REDUNDANT max permitted Throttle angle vs indicated pedal position in normal operating modes. ; R_Rotation_Vs_Percent_By10_Table dc.b $9A ; ? dc.b $D dc.b $8C ; ? dc.b $13 dc.b $7E ; ~ dc.b $19 dc.b $68 ; h CurveTable_21_Rows_B3334___DFCO_Entering_Spark_Advance_Decay_Rate:dc.b $1F dc.b $64 ; d dc.b $25 ; % dc.b $56 ; V dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 ETC_R_THROTTLE_KE_R_MAX_IDLE_AREA:dc.w $23E ; DATA XREF: sub_21F2C+1Cr ; sub_21F2C+176r ; REDUNDANT Maximum idle area contribution allowed for ETC ; R_Percent Area_Area ETC_R_THROTTLE_KE_R_MAX_MIN_TORQUE_AUTHORITY:dc.w 0 ; DATA XREF: sub_21F2C+108r ; sub_21F2C+110r ; REDUNDANT limit the authority of drop throttle to command the throttle ; R_Percent_Area ETC_R_THROTTLE_KE_R_MAX_DRAG_THROTTLE_POSITION:dc.w 0 ; DATA XREF: sub_220F0:loc_221E8r ; REDUNDANTMaximum throttle position that Drag control can command ; R_Pedal_Rotation ETC_R_THROTTLE_KE_R_MAX_IDLE_THROTTLE_POSITION:dc.w $752 ; DATA XREF: sub_220F0:loc_22214r ; sub_220F0+180r ; Maximum throttle position that idle control can command. ; R_Pedal_Rotation ETC_R_THROTTLE_KE_R_LIMITED_POWER_MAX_THROT_POS:dc.w $6AA ; DATA XREF: sub_220F0+CCr ; Maximum throttle position that limited power mode is allowed. ; R_Pedal_Rotation ETC_R_THROTTLE_KE_R_THROTTLE_STOP_MIN_SW:dc.w $40 ; DATA XREF: sub_220F0:loc_222BAr ; Min value to prevent throttle from reaching the mechanicalstop ; R_Percent_Rotation ETC_R_THROTTLE_KE_R_THROTTLE_STOP_MAX_SW:dc.w $2800 ; DATA XREF: sub_220F0:loc_222C8r ; Max value to prevent throttle from reaching the mechanicalstop ; R_Percent_Rotation ETC_R_THROTTLE_KE_R_MIN_MECHANICAL_POSITION_AR:dc.w $34 ; DATA XREF: sub_220F0+14r ; Used to rescale des throttle area unfiltered to account for themechanical stop for area to rotation conversion lookups ; R_Percent_Area ETC_R_THROTTLE_KE_R_THROTTLE_HI_LIMIT_PERIOD:dc.w $14 ; DATA XREF: sub_220F0:loc_222A8r ; Number of 18.75 ms loops that the throttle position can be abovethe max allowed throttle position. ; R_SHORTCARD ETC_R_THROTTLE_KE_R_DELTA_MAX_ALLOW_THROT_LIMIT:dc.w $800 ; DATA XREF: sub_220F0:loc_22254r ; The maximum allowed desired throttle delta between current and previous loop. ; R_Percent_Rotation ETC_SERIAL_DATA_KE_TPS_WOT_10BIT_EQUIVALENT:dc.w $317 ; DATA XREF: sub_229DE+232r ; OS2:0004449Ar ; Value representing max software stop and would also be defined as 100% throttle position ; Raw_10_Bit_AD_Type ETC_SERIAL_DATA_KE_MAX_PPS_IND:dc.w $15C ; DATA XREF: OS2:00044454r ; Value representing max software stop and would also be defined as 100% pedal position ; Raw_10_Bit_AD_Type ETC_SERIAL_DATA_KA_ETC_PM_TORQUE:dc.b $FA ; ? ; Lookup of power management torque based on desired throttle position and engine speed ; Foot_Pounds_S dc.b $11 dc.b $FF dc.b $BE ; ? Constant16______________Fuel_Cut_off_Stall_Speed_Threshold:dc.b 5 dc.b $6B ; k Constant16_B3301___Engine_Overspeed_Time_Allowed:dc.b $B dc.b $18 Constant16_B3330___Fuel_Cut_off_in_P_N:dc.b $F dc.b $8E ; ? Constant16_B3331___Fuel_Re_enable_in_P_N:dc.b $13 dc.b $D7 ; ? Constant16_B3322___Fuel_Cut_off_VSS_Failed:dc.b $18 dc.b $20 Constant16_B3323___Fuel_Re_enable_VSS_Failed:dc.b $1B dc.b $A9 ; ? SurfaceTable_2x10_B3303___Fuel_Cut_off_Limiters_in_Gear:dc.b $1E dc.b $F2 ; ? dc.b $22 ; " dc.b $3B ; ; dc.b $25 ; % dc.b $24 ; $ dc.b $FA ; ? dc.b $11 dc.b $FF dc.b $BE ; ? dc.b 5 dc.b $6B ; k dc.b $B dc.b $18 dc.b $F dc.b $8E ; ? dc.b $13 dc.b $D7 ; ? dc.b $18 dc.b $20 dc.b $1B dc.b $A9 ; ? dc.b $1E dc.b $F2 ; ? dc.b $22 ; " dc.b $3B ; ; dc.b $25 ; % dc.b $24 ; $ dc.b $F9 ; ? dc.b $B3 ; ? dc.b $FD ; ? dc.b $B4 ; ? dc.b 1 dc.b $B4 ; ? dc.b 5 dc.b $B4 ; ? dc.b 9 dc.b $B5 ; ? dc.b $D dc.b $B5 ; ? Constant16_B3333___Fuel_Re_enable_Low_RPM:dc.b $11 dc.b $B6 ; ? Constant16_B3332___Fuel_Cut_off_Low_RPM:dc.b $15 dc.b $53 ; S CurveTable_16_Rows_B3305___Cold_Engine_Rev_Protection_Timer:dc.b $18 dc.b $CF ; ? dc.b $1C dc.b $4B ; K dc.b $21 ; ! dc.b $6E ; n dc.b $F7 ; ? dc.b $94 ; ? dc.b $FA ; ? dc.b $62 ; b dc.b $FD ; ? dc.b $30 ; 0 dc.b $FF dc.b $FD ; ? dc.b 2 dc.b $CB ; ? dc.b 5 dc.b $99 ; ? dc.b 8 dc.b $66 ; f dc.b $B dc.b $8B ; ? dc.b $E dc.b $CD ; ? dc.b $12 dc.b $F dc.b $18 dc.b $4D ; M dc.b $F6 ; ? dc.b $B3 ; ? dc.b $F8 ; ? dc.b $B6 ; ? Constant16______________DFCO_M6_Delay:dc.b $FA ; ? dc.b $B8 ; ? Constant16______________DFCO_M6_TPS_Hysteresis:dc.b $FC ; ? dc.b $BB ; ? Constant16______________DFCO_M6_Time:dc.b $FE ; ? dc.b $BD ; ? Constant16______________DFCO_M6_TPS_Delta:dc.b 0 dc.b $BF ; ? Constant16______________DFCO_M6_Re_Enable_Timer:dc.b 2 dc.b $C2 ; ? Constant16______________DFCO_M6_Enable_Time_Window:dc.b 5 dc.b $5E ; ^ Constant16_B3307___DFCO_Re_Enable_Timer:dc.b 8 dc.b $2D ; - Constant16_B3308___DFCO_M6_Enable_Temp:dc.b $A dc.b $FD ; ? Constant16_B3309___DFCO_M6_RPM:dc.b $11 dc.b $A Constant16_B3310___DFCO_M6_MAP:dc.b $F5 ; ? dc.b $CE ; ? Constant16_B3311___DFCO_M6_TPS:dc.b $F7 ; ? dc.b $74 ; t Constant16_B3312___DFCO_M6_Speed:dc.b $F9 ; ? dc.b $19 Constant16_B3313___DFCO_Temp_Enable:dc.b $FA ; ? dc.b $BF ; ? Constant16_B3317___DFCO_Throttle_Hysteresis:dc.b $FC ; ? dc.b $64 ; d Constant16_B3315___DFCO_Vehicle_Speed_Hysteresis:dc.b $FE ; ? dc.b 9 Constant16_B3319___DFCO_RPM_Hysteresis:dc.b $FF dc.b $AF ; ? Constant16_B3321___DFCO_MAP_Hysteresis:dc.b 2 dc.b $15 CurveTable_5_Rows_B3314___DFCO_Vehicle_Speed_Enable:dc.b 4 dc.b $BC ; ? dc.b 7 dc.b $63 ; c dc.b $D dc.b 9 dc.b $F5 ; ? dc.b $1A dc.b $F6 ; ? dc.b $55 ; U SurfaceTable_2x10_B3318___DFCO_RPM:dc.b $F7 ; ? dc.b $90 ; ? dc.b $F8 ; ? dc.b $CC ; ? dc.b $FA ; ? dc.b 7 dc.b $FB ; ? dc.b $43 ; C dc.b $FC ; ? dc.b $7E ; ~ dc.b $FE ; ? dc.b $C2 ; ? dc.b 1 dc.b $5F ; _ dc.b 3 dc.b $FB ; ? dc.b 9 dc.b $13 dc.b $F4 ; ? dc.b $2F ; / dc.b $F5 ; ? dc.b $3A ; : dc.b $F6 ; ? dc.b $44 ; D dc.b $F7 ; ? dc.b $4F ; O dc.b $F8 ; ? dc.b $59 ; Y dc.b $F9 ; ? dc.b $64 ; d dc.b $FA ; ? dc.b $6E ; n dc.b $FC ; ? dc.b $5A ; Z dc.b $FE ; ? dc.b $91 ; ? dc.b 0 dc.b $C9 ; ? dc.b 5 dc.b $57 ; W Constant16______________DFCO_Exit_RPM_Delta:dc.b $F2 ; ? dc.b $14 Constant16______________DFCO_M6_Exit_RPM_Delta:dc.b $F3 ; ? dc.b $A SurfaceTable_2x5_B3320___DFCO_MAP:dc.b $F4 ; ? dc.b 0 dc.b $F4 ; ? dc.b $F6 ; ? dc.b $F5 ; ? dc.b $EC ; ? dc.b $F6 ; ? dc.b $E1 ; ? dc.b $F7 ; ? dc.b $D7 ; ? dc.b $F9 ; ? dc.b $45 ; E dc.b $FA ; ? dc.b $DC ; ? dc.b $FC ; ? dc.b $72 ; r dc.b 0 dc.b $6E ; n ETC_SERIAL_DATA_KE_ETC_LOW_VOLTAGE_THRESHOLD:dc.w $780 ; DATA XREF: sub_22F02+2Cr ; Voltage at which the smart pedal/actuator will not function. ; Volts ETC_SERIAL_DATA_KE_SHUTDOWN_VACUUM_TOO_LOW:dc.l unk_FA00 ; DATA XREF: sub_22F92+14Cr ; sub_22F92+154r ; Vacuum level at which braking ability may be inadequate to stop the vehicle ; kPa ETC_SERIAL_DATA_KE_IND_THROTTLE_POSITION_SCALER:dc.w $A56 ; DATA XREF: sub_223EA+544r ; Scaler to convert the ETM indicated throttle position in units of counts, to units of percent rotation ; Scaler 0 to 4 ETC_SERIAL_DATA_KE_TACM_CLEAR_CODES_TIMER_1:dc.w 0 ; DATA XREF: sub_22D9A+90r ; Time limit that TPS codes will be masked at low voltage after engine starts. ; Seconds ETC_SERIAL_DATA_KE_TACM_FAULT_INHIBIT_MAX_VOLT:dc.w 0 ; DATA XREF: sub_22D9A+10r ; Upper voltage below which TPS Faults are masked if the engine is not running. ; Volts ETC_SERIAL_DATA_KE_TACM_FAULT_INHIBIT_MIN_VOLT:dc.w $1980 ; DATA XREF: sub_22D9A+8r ; Lower voltage above which TPS Faults are masked if the engine is not running. ; Volts ETC_THROT_KV_THROTTLE_LOAD:dc.w 0 ; DATA XREF: Lookup_Throttle_Load+Cr ; Throttle area to pseudo throttle position conversion table. ; Percent_Vs_Percent_Area_Table dc.b 3 dc.b $DC ; ? dc.b 5 dc.b $27 ; ' dc.b 6 dc.b $1D dc.b 6 dc.b $EF ; ? dc.b 7 dc.b $A3 ; ? dc.b 8 dc.b $48 ; H dc.b 8 dc.b $E0 ; ? dc.b 9 dc.b $69 ; i dc.b 9 dc.b $E8 ; ? dc.b $A dc.b $5B ; [ dc.b $A dc.b $C7 ; ? dc.b $B dc.b $30 ; 0 dc.b $B dc.b $93 ; ? dc.b $B dc.b $F5 ; ? Constant16______________DFCO_Enable_Delay___Cat_Overheat_Protection_Active:dc.b $C dc.b $54 ; T Constant16______________DFCO_Enable_Delay:dc.b $C dc.b $AF ; ? Constant16______________DFCO_Enable_Delay_For_Auto_Trans_Manual_Downshift:dc.b $D dc.b $A dc.b $D dc.b $60 ; ` dc.b $D dc.b $B6 ; ? dc.b $E dc.b $A dc.b $E dc.b $5D ; ] dc.b $E dc.b $AE ; ? CurveTable_17_Rows______________DFCO_Time_For_Auto_Trans_Manual_Downshift:dc.b $F dc.b 3 dc.b $F dc.b $5A ; Z dc.b $F dc.b $B8 ; ? dc.b $10 dc.b $1D dc.b $10 dc.b $83 ; ? dc.b $10 dc.b $F4 ; ? dc.b $11 dc.b $75 ; u dc.b $11 dc.b $FF dc.b $14 dc.b 0 dc.b $14 dc.b 0 ETC_THROT_KV_THROTTLE_ROTATION:dc.w 0 ; DATA XREF: sub_2340C:loc_23E82r ; InitializeThrottleAreaStuff:loc_24294r ; Throttle area to throttle rotation conversion table. ; Rotation_Vs_Percent_Area_Table dc.b 0 dc.b $D3 ; ? dc.b 1 dc.b $8B ; ? dc.b 2 dc.b $1C dc.b 2 dc.b $97 ; ? dc.b 2 dc.b $FF dc.b 3 dc.b $55 ; U SurfaceTable_2x16_B3306___Cold_Engine_Rev_Limiter:dc.b 3 dc.b $9E ; ? dc.b 3 dc.b $DC ; ? dc.b 4 dc.b $94 ; ? dc.b 5 dc.b $27 ; ' dc.b 5 dc.b $A8 ; ? dc.b 6 dc.b $1D dc.b 6 dc.b $8A ; ? dc.b 6 dc.b $EF ; ? dc.b 7 dc.b $4C ; L dc.b 7 dc.b $A3 ; ? dc.b 7 dc.b $F7 ; ? dc.b 8 dc.b $48 ; H dc.b 8 dc.b $95 ; ? dc.b 8 dc.b $E0 ; ? dc.b 9 dc.b $26 ; & dc.b 9 dc.b $69 ; i dc.b 9 dc.b $A9 ; ? dc.b 9 dc.b $E8 ; ? dc.b $A dc.b $22 ; " dc.b $A dc.b $5B ; [ dc.b $A dc.b $91 ; ? dc.b $A dc.b $C7 ; ? dc.b $A dc.b $FD ; ? dc.b $B dc.b $30 ; 0 dc.b $B dc.b $61 ; a dc.b $B dc.b $93 ; ? dc.b $B dc.b $C4 ; ? dc.b $B dc.b $F5 ; ? dc.b $C dc.b $25 ; % dc.b $C dc.b $54 ; T dc.b $C dc.b $82 ; ? dc.b $C dc.b $AF ; ? Flag_0x01_Option_byte_for_applying_dynamic_cylinder_fuel_mass:dc.b $C dc.b $DD ; ? Constant16_TPS_threshold_to_compensate_for_throttle_opening:dc.b $D dc.b $A Constant16_B3415___RPM_threshold_to_compensate_for_manifold_fuel_dynamics:dc.b $D dc.b $35 ; 5 Constant16_B3416___TPS_threshold_to_compensate_for_manifold_fuel_dynamics:dc.b $D dc.b $60 ; ` Constant16_Min_deliverable_injector_PW_for_fuel_dynamics_compensation:dc.b $D dc.b $8B ; ? Constant16_Throttle_Opening_Compensation_Negative_Fuel_Mass_Limit:dc.b $D dc.b $B6 ; ? Constant16_Throttle_Opening_Compensation_Minimum_Fuel_Mass:dc.b $D dc.b $E1 ; ? CurveTable_16_Rows_B3428___Gain_multiplier_for_previous_throttle_opening_fuel_mass:dc.b $E dc.b $A dc.b $E dc.b $34 ; 4 dc.b $E dc.b $5D ; ] dc.b $E dc.b $86 ; ? dc.b $E dc.b $AE ; ? dc.b $E dc.b $D8 ; ? dc.b $F dc.b 3 dc.b $F dc.b $2F ; / dc.b $F dc.b $5A ; Z dc.b $F dc.b $88 ; ? dc.b $F dc.b $B8 ; ? dc.b $F dc.b $EB ; ? dc.b $10 dc.b $1D dc.b $10 dc.b $4F ; O dc.b $10 dc.b $83 ; ? dc.b $10 dc.b $B8 ; ? CurveTable_16_Rows_B3426___Intial_decay_multiplier_for_throttle_opening_compensation_fuel_mass:dc.b $10 dc.b $F4 ; ? dc.b $11 dc.b $30 ; 0 dc.b $11 dc.b $75 ; u dc.b $11 dc.b $B5 ; ? dc.b $11 dc.b $FF dc.b $12 dc.b $5A ; Z dc.b $12 dc.b $B3 ; ? dc.b $13 dc.b $2E ; . dc.b $13 dc.b $FA ; ? ETC_THROT_KV_MAX_THROTTLE_POSITION:dc.w $1400 ; DATA XREF: sub_2340C:loc_23F70r ; Max permitted Throttle angle vs RPM. Provides reduced induction noise and improves transient response without losing power. ; Rotation_Vs_RPM_Table dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 CurveTable_16_Rows_Throttle_Opening_Compensation_Fuel_Mass_Decay_Rate_Multiplier:dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 ETC_THROT_KV_MAX_ALLOWED_NORMAL_THROTTLE:dc.w $3CD ; DATA XREF: sub_2340C+B3Er ; Max permitted Throttle angle vs indicated pedal position in normal operating modes. ; Rotation_Vs_Percent_By10_Table dc.b 6 dc.b $C6 ; ? dc.b 9 dc.b $BF ; ? dc.b $C dc.b $B4 ; ? dc.b $F dc.b $B2 ; ? dc.b $12 dc.b $AB ; ? CurveTable_29_Rows_Multiplier_for_compensating_throttle_opening_compensation_fuel_mass_:dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 ETC_THROT_KV_THROT_SLEW_INCR_1ST_GEAR:dc.b $32 ; 2 ; DATA XREF: sub_24094+24o ; sub_24094:loc_24170o ; Lookup of Increasing Throttle Slew Rate in Degrees Per Engine Revolution for manual trans. in 1st gear. ; Degrees_Per_Revolution dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 ETC_THROT_KV_THROT_SLEW_INCR_2ND_GEAR:dc.b $32 ; 2 ; DATA XREF: sub_24094+40o ; Lookup of Increasing Throttle Slew Rate in Degrees Per Engine Revolution for manual trans. in 2nd gear. ; Degrees_Per_Revolution dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 Constant16_Fuel_From_Wall_Stabilization:dc.b $32 ; 2 dc.b 0 CurveTable_33_Rows_Impact_Factor_Airflow_Multiplier:dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 ETC_THROT_KV_THROT_SLEW_INCR_3RD_GEAR:dc.b $32 ; 2 ; DATA XREF: sub_24094+62o ; Lookup of Increasing Throttle Slew Rate in Degrees Per Engine Revolution for manual trans. in 3rd gear. ; Degrees_Per_Revolution dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 ETC_THROT_KV_THROT_SLEW_INCR_4TH_GEAR:dc.b 2 ; DATA XREF: sub_24094+82o ; Lookup of Increasing Throttle Slew Rate in Degrees Per Engine Revolution for manual trans. in 4th gear. ; Degrees_Per_Revolution dc.b $61 ; a dc.b 2 dc.b $61 ; a dc.b 2 dc.b $61 ; a dc.b 2 dc.b $61 ; a dc.b 2 dc.b $CD ; ? dc.b 3 dc.b $26 ; & dc.b 3 dc.b $92 ; ? dc.b 3 dc.b $DA ; ? dc.b 4 dc.b $33 ; 3 dc.b 4 dc.b $7B ; { dc.b 4 dc.b $C2 ; ? dc.b 5 dc.b $B dc.b 5 dc.b $64 ; d dc.b 5 dc.b $F3 ; ? dc.b 7 dc.b $24 ; $ dc.b 7 dc.b $FB ; ? dc.b 7 dc.b $FB ; ? ETC_THROT_KV_THROT_SLEW_INCR_5TH_GEAR:dc.b 1 ; DATA XREF: sub_24094+A2o ; Lookup of Increasing Throttle Slew Rate in Degrees Per Engine Revolution for manual trans. in 5th gear. ; Degrees_Per_Revolution dc.b $A1 ; ? dc.b 1 dc.b $A1 ; ? dc.b 1 dc.b $A1 ; ? dc.b 1 dc.b $A1 ; ? dc.b 1 dc.b $EC ; ? dc.b 2 dc.b $29 ; ) dc.b 2 dc.b $73 ; s dc.b 2 dc.b $A4 ; ? dc.b 2 dc.b $E1 ; ? dc.b 3 dc.b $12 dc.b 3 dc.b $43 ; C dc.b 3 dc.b $75 ; u dc.b 3 dc.b $B3 ; ? dc.b 4 dc.b $14 dc.b 4 dc.b $E6 ; ? dc.b 5 dc.b $78 ; x dc.b 5 dc.b $78 ; x ETC_THROT_KV_THROT_SLEW_INCR_6TH_GEAR:dc.b 1 ; DATA XREF: sub_24094+C2o ; Lookup of Increasing Throttle Slew Rate in Degrees Per Engine Revolution for manual trans. in 6th gear. ; Degrees_Per_Revolution dc.b $B3 ; ? dc.b 1 dc.b $B3 ; ? dc.b 1 dc.b $B3 ; ? dc.b 1 dc.b $B3 ; ? dc.b 2 dc.b 0 dc.b 2 dc.b $40 ; @ dc.b 2 dc.b $8D ; ? dc.b 2 dc.b $C0 ; ? dc.b 3 dc.b 0 dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $66 ; f dc.b 3 dc.b $9A ; ? dc.b 3 dc.b $DA ; ? dc.b 4 dc.b $40 ; @ dc.b 5 dc.b $1A dc.b 5 dc.b $B3 ; ? dc.b 5 dc.b $B3 ; ? ETC_THROT_KE_MIN_SLEW_RPM_1ST_GEAR:dc.w $1200 ; DATA XREF: sub_24094:loc_24182r ETC_THROT_KE_MIN_SLEW_RPM_2ND_GEAR:dc.w $1200 ; DATA XREF: sub_24094+52r ETC_THROT_KE_MIN_SLEW_RPM_3RD_GEAR:dc.w $1200 ; DATA XREF: sub_24094+74r ETC_THROT_KE_MIN_SLEW_RPM_4TH_GEAR:dc.w $1200 ; DATA XREF: sub_24094+94r ETC_THROT_KE_MIN_SLEW_RPM_5TH_GEAR:dc.w $1200 ; DATA XREF: sub_24094+B4r ETC_THROT_KE_MIN_SLEW_RPM_6TH_GEAR:dc.w $1200 ; DATA XREF: sub_24094+D4r ; Min engine RPM for converting the max throttle angle per manuals. ; RPM ETC_THROT_KE_MAX_IDLE_AREA:dc.w $11F ; DATA XREF: sub_2340C:DetermineIdleContributionr ; sub_2340C+9C6r ... ; Maximum idle area contribution allowed for ETC ; Percent_Area ETC_THROT_KE_DRAG_CNTL_ACCEL_TOO_HI_TIME:dc.w 0 ; DATA XREF: sub_2340C+148r ; Time limit vehicle accel is allowed to be above an accel forprior to limiting the drag control function. ; Seconds ETC_THROT_KE_DRAG_CNTL_ACCEL_TOO_HIGH:dc.b 0 ; DATA XREF: sub_2340C+13Cr ; limit on vehicle accel rate during which any drag controlfeature is allowed to be active. ; MPH_Per_300ms dc.b $FF ETC_THROT_KE_MAX_MIN_TORQUE_AUTHORITY:dc.w 0 ; DATA XREF: sub_2340C+830r ; Limit the authority of drop throttle to command the throttle ; Percent_Area ETC_THROT_KE_MIN_SLEW_RPM:dc.w $1200 ; DATA XREF: sub_24094+136r ; Minimum engine speed for converting the max throttle angle per engine rev into an angle change per software loop. ; RPM ETC_THROT_KE_THROTTLE_SLEW_INCREASE:dc.w $3200 ; DATA XREF: sub_24094:loc_241C4r ; Maximum permitted throttle angle change per engine rev when thethrottle is opening. ; Percent_Rotation_Per_Rev ETC_THROT_KE_THROTTLE_SLEW_DECREASE:dc.w $3200 ; DATA XREF: sub_24094+176r ; Maximum permitted throttle angle change per engine rev when thethrottle is closing. ; Percent_Rotation_Per_Rev ETC_THROT_KE_MAX_DRAG_THROTTLE_POSITION:dc.w 0 ; DATA XREF: sub_2340C+B24r ; Maximum throttle position that Drag control can command. ; Pedal_Rotation ETC_THROT_KE_MAX_IDLE_THROTTLE_POSITION:dc.w $3A9 ; DATA XREF: sub_2340C+B30r ; sub_2340C:loc_23FA0r ; Maximum throttle position that idle control can command. ; Pedal_Rotation ETC_THROT_KE_LIMITED_POWER_MAX_THROT_POS:dc.w $355 ; DATA XREF: sub_2340C+AFEr ; Maximum throttle position that limited power mode is allowed. ; Pedal_Rotation ETC_THROT_KE_THROTTLE_STOP_MIN_SW:dc.w $20 ; DATA XREF: sub_2340C:loc_23FFCr ; InitializeThrottleAreaStuff+5Cr ... ; Min value to prevent throttle from reaching the mechanicalstop ; Percent_Rotation ETC_THROT_KE_THROTTLE_STOP_MAX_SW:dc.w $1400 ; DATA XREF: sub_2340C:loc_2400Ar ; InitializeThrottleAreaStuff:loc_242AAr ; Max value to prevent throttle from reaching the mechanicalstop ; Percent_Rotation ETC_THROT_KE_MIN_MECHANICAL_POSITION_AREA:dc.w $1A ; DATA XREF: sub_2340C+A2Er ; sub_2340C+A4Ar ; Used to rescale des throttle area unfiltered to account for themechanical stop for area to rotation conversion lookups ; Percent_Area ETC_THROT_KE_THROTTLE_HI_LIMIT_PERIOD:dc.b $A ; DATA XREF: sub_2340C+BCEr ; Number of 18.75 ms loops that the throttle position can be abovethe max allowed throttle position. ; SHORTCARD ETC_THROT_KE_TRANS_DESIRED_THROTTLE_LOAD:dc.b 0 ; DATA XREF: sub_2340C+868r ; sub_2340C+8DAr ... ; Determines where in the throttle arbitration process the transload is obtained. ; Throttle_Load_Selector_Type ETC_THROT_KE_4WD_LO_THROTTLE_PROG_ENABLE:dc.b 0 ; DATA XREF: sub_242EE+Ar ; sub_242EE+1Ar dc.b $FF ETC_THROT_KV_INCLUDE_THROT_SRC_IN_TPS_LOAD:dc.b 1 ; DATA XREF: sub_2340C+734r ; Determines which throttle sources will be included in the transmission throttle position load parameter. ; BOOLEAN byte_B799: dc.b 0 ; DATA XREF: sub_2340C+7EAr dc.b 0 byte_B79B: dc.b 0 ; DATA XREF: sub_2340C+84Ar byte_B79C: dc.b 0 ; DATA XREF: sub_2340C+8A0r byte_B79D: dc.b 0 ; DATA XREF: sub_2340C+8C4r byte_B79E: dc.b 1 ; DATA XREF: sub_2340C+908r byte_B79F: dc.b 1 ; DATA XREF: sub_2340C+92Cr ETC_THROT_KE_DELTA_MAX_ALLOWED_THROT_LIMIT:dc.w $400 ; DATA XREF: sub_2340C:loc_23F88r ; Maximum allowed desired throttle delta between current and previous execution loop. ; Percent Rotation ETC_THROT_KE_MAX_STAT_PTO_MPH:dc.w $180 ; DATA XREF: sub_2340C+40r ; ETC PTO safety gate. Stationary PTO is disabled if vehicle speed is >= this value. ; MPH ETC_THROT_KE_MAX_MOBILE_PTO_MPH:dc.w $F00 ; DATA XREF: sub_2340C+72r ; ETC PTO safety gate. Mobile PTO is disabled if vehicle speed is >= this value. ; MPH ETC_DATA_LOGGER_KE_ETC_FLIGHT_RECORD_SPEED_COEF:dc.w $1A00 ; DATA XREF: sub_243A8+1Er ; Coefficient used to filter vehicle speed for ETC Datalogger. ; Coefficient ETC_DATA_LOGGER_KE_TRIGGER_VALIDITY_PERIOD:dc.w $12C0 ; DATA XREF: sub_243A8+158r ; Delay before Trigger validation period expires ; Seconds ETC_DATA_LOGGER_KE_DECEL_TRIGGER_THRESHOLD:dc.w $FF7C ; DATA XREF: sub_243A8+CCr ; sub_243A8+F2r ; Maximum deceleration threshold FOR triggering flight recorder ; MPH_Per_300ms_S FUEL_COMPOSITION_KE_FLEX_FUEL_EQUIPPED:dc.b 0 ; DATA XREF: sub_2F780+8r ; Indicates that vehicle is flex fuel capable. ; TRUE/FALSE dc.b $FF FUEL_COMPOSITION_KE_FFS_COMP_CHANGE_THRESH:dc.w 0 ; DATA XREF: sub_2F780:loc_2FA24r ; Minimum fuel composition change to initiate an update of the filtered fuel composition. ; Percent FUEL_COMPOSITION_KE_FFS_COMP_DELAY_VOLUME:dc.w 0 ; DATA XREF: sub_2F780+2DAr ; Volume of fuel to be consumed by the engine before a new fuel composition reaches the injector rail. ; Liters FUEL_COMPOSITION_KE_FFS_COMP_TRANSITION_VOLUME:dc.w 0 ; DATA XREF: sub_2F780+2FEr ; sub_2F780+316r ; Volume of fuel consumed by the engine during which the transition occurs from the old fuel composition to a new one. ; Liters FUEL_COMPOSITION_KE_FFS_COMPOSITION_DEFAULT:dc.w 0 ; DATA XREF: sub_2F780:loc_2F910r ; Value to be used when fuel composition can not otherwise be determined. ; Percent FUEL_COMPOSITION_KE_FFS_0PCT_ALCOHOL_FREQUENCY:dc.w 0 ; DATA XREF: sub_2F780+140r ; Frequency of the FFS PWM input corresponding to 0% alcohol. ; Hertz FUEL_COMPOSITION_KE_FFS_COMPOSITION_SLOPE:dc.w 0 ; DATA XREF: sub_2F780+136r ; Proportional constant for determining fuel composition from the frequency of the FFS PWM input. ; Scaler_16_S FUEL_COMPOSITION_KE_FFS_MIN_TEMPERATURE:dc.w 0 ; DATA XREF: sub_2F780:loc_2F96Ar ; Minimum temperature value measured by the Flex Fuel Sensor. ; Degrees_C FUEL_COMPOSITION_KE_FFS_MAX_TEMPERATURE:dc.w 0 ; DATA XREF: sub_2F780:loc_2F99Ar ; Maximum temperature value measured by the Flex Fuel Sensor. ; Degrees_C FUEL_COMPOSITION_KE_FFS_MIN_TEMP_LOW_TIME:dc.w 0 ; DATA XREF: sub_2F780+1ACr ; Low time of FFS input PWM corresponding to the minimum temperature value measured by the Flex Fuel Sensor. ; Milliseconds FUEL_COMPOSITION_KE_FFS_TEMPERATURE_SLOPE:dc.w 0 ; DATA XREF: sub_2F780+1BAr ; Proportional constant for determining fuel temperature from the low time of the Flex Fuel Sensor PWM input. ; Multiplier_-+_1000 FUEL_CRANK_KV_FUEL_BARO_GAIN:dc.b $A ; Gain applied to account for air density charges with barometric pressure. ; NONE 0-2 dc.b $B0 ; ? dc.b $C dc.b $10 dc.b $D dc.b $50 ; P dc.b $E dc.b $C0 ; ? dc.b $10 dc.b 0 FUEL_CRANK_KV_FUEL_PRESSURE_DELAY:dc.w 0 ; DATA XREF: sub_299AC+60r ; DoLoopB+24Cr ... ; Amount of time to delay after powerup before allowing key on prime pulse to be delivered. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_CRANK_KV_OCTIFIRE2_SOAKTIMER_MODIFIER:dc.w $600 ; DATA XREF: sub_2FC92:loc_2FE80r ; sub_31AE2:loc_31C2Er ; A modifier to Second_Octifire_Prime based on soaktimerif enabled. ; NONE 0_2 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 FUEL_CRANK_KV_PRIME_PULSE_MASS:dc.w $8A0 ; DATA XREF: OS1:000300C6r ; OS1:0003022Er ; This is the mass of fuel to be injected on the first simultaneous, nonsynchronous (Prime) injection. ; Grams dc.b 7 dc.b $AE ; ? dc.b 4 dc.b $6A ; j dc.b 2 dc.b $9C ; ? dc.b 1 dc.b $F4 ; ? dc.b 1 dc.b $29 ; ) dc.b 0 dc.b $CB ; ? dc.b 0 dc.b $7F ;  dc.b 0 dc.b $7F ;  dc.b 0 dc.b $7F ;  dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_CRANK_KV_FIRST_PULSE_MASS:dc.w $AD5 ; DATA XREF: sub_2FC92+F4r ; This is the mass of fuel to be injected on the first simultaneous, synchronous (octifire) injection. ; Grams dc.b $A dc.b $7B ; { dc.b 6 dc.b 4 dc.b 2 dc.b $F6 ; ? dc.b 2 dc.b $3D ; = dc.b 1 dc.b $29 ; ) dc.b 0 dc.b $CB ; ? dc.b 0 dc.b $7F ;  dc.b 0 dc.b $7F ;  dc.b 0 dc.b $7F ;  dc.b 0 dc.b $62 ; b dc.b 0 dc.b $62 ; b dc.b 0 dc.b $62 ; b dc.b 0 dc.b $62 ; b dc.b 0 dc.b $62 ; b dc.b 0 dc.b $62 ; b FUEL_CRANK_KV_SECOND_PULSE_MASS:dc.w $AD5 ; DATA XREF: sub_2FC92+196r dc.b $A dc.b $7B ; { dc.b 6 dc.b 4 dc.b 2 dc.b $F6 ; ? dc.b 2 dc.b $3D ; = dc.b 1 dc.b $29 ; ) dc.b 0 dc.b $CB ; ? dc.b 0 dc.b $7F ;  dc.b 0 dc.b $7F ;  dc.b 0 dc.b $7F ;  dc.b 0 dc.b $62 ; b dc.b 0 dc.b $62 ; b dc.b 0 dc.b $62 ; b dc.b 0 dc.b $62 ; b dc.b 0 dc.b $62 ; b dc.b 0 dc.b $62 ; b FUEL_CRANK_KV_FIRST_OCTIFIRE_REF_COUNT:dc.b 3 ; DATA XREF: sub_2FC92+D2r dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 FUEL_CRANK_KV_SECOND_OCTIFIRE_REF_OFFSET:dc.b 6 ; DATA XREF: sub_2FC92+170r dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 FUEL_CRANK_KV_PRIME_MIN_RUN_TIME:dc.w $7080 ; DATA XREF: sub_2FC54+20r ; This is the minimum engine run time required to allow a prime pulse to issued. ; Seconds dc.b $4B ; K dc.b 0 dc.b $35 ; 5 dc.b $20 dc.b $1F dc.b $40 ; @ dc.b $15 dc.b $E0 ; ? dc.b $F dc.b $A0 ; ? dc.b 8 dc.b $C0 ; ? dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ FUEL_CRANK_KE_PRIME_FUEL_ENG_SPEED_DISABLE:dc.w $6C ; DATA XREF: sub_2FC92+3Cr FUEL_CRANK_KE_USE_FUEL_PUMP_DEVELOPMENT_SW:dc.b 0 ; DATA XREF: sub_2FC92+2D8r ; OS1:000300ACr ... ; If TRUE look at Pin J1-52 to check if FP dev switch is open, if so don't deliver prime pulse. ; BOOLEAN dc.b $FF FUEL_CRANK_KE_SOAKTIMER_ENG_RUNTIME_LIMIT:dc.l unk_FA00 ; DATA XREF: OS1:0003006Cr ; OS1:000301DCr ... FUEL_CRANK_KE_SOAKTIMER_COOLANT_LIMIT:dc.w $300 ; DATA XREF: OS1:00030078r ; OS1:000301E8r ... FUEL_CRANK_KE_KEY_ON_PRIME_REENABLE_TIME:dc.l $232800 ; DATA XREF: OS1:0003005Ar ; Key-on Prime is delivered if the previous key-on primedelivered was at least this time ago which is based onthe soak timer. ; Seconds FUEL_CRANK_KV_KEY_ON_SOAKTIMER_MODIFIER:dc.w $600 ; DATA XREF: OS1:loc_3011Er ; OS1:loc_30286r ; A modifier to Key_On_Prime based on soaktimer if enabled. ; NONE 0_2 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 FUEL_CRANK_KV_OCTIFIRE1_SOAKTIMER_MODIFIER:dc.w $600 ; DATA XREF: sub_2FC92:loc_2FDE2r ; A modifier to First_Octifire_Prime based on soaktimerif enabled. ; NONE 0_2 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 FUEL_CRANK_KA_FFS_COMPOSITION_GAIN:dc.b $10 ; Gain applied to account for changes due to fuel alcohol composition ; Mult 0 to 4 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 FUEL_CRANK_KE_CRANK_SEQUENTIAL_COOLANT_ENAB:dc.w $FC00 ; DATA XREF: OS1:0002FFF2r ; OS1:00030188r ... ; Enable sequential fueling during crank when coolant temperature is less than this calibration. ; Degrees_C FUEL_CU_KE_CLUTCH_DFCO_SPK_EXIT_RATE:dc.w $17 ; DATA XREF: OS1:0003AB9Ar ; Determines ramp rate of spark advance during exit of aclutch-based DFCO event. ; Degrees FUEL_CU_KE_DFCO_SPK_CONTINUE_REF_COUNT:dc.b 2 ; DATA XREF: OS1:0003AB64r ; Number of low res. reference pulse counts to hold continue spark after DFCO exit. ; Counts dc.b $FF FUEL_CU_KE_DFCO_SPK_CONTINUE_TPS_HIGH:dc.w $1400 ; DATA XREF: OS1:0003AB0Er ; Throttle position high limit for usage of DFCO continue spark. ; Percent FUEL_CU_KE_DFCO_SPK_CONTINUE_TPS_LOW:dc.w $13CD ; DATA XREF: OS1:loc_3AB26r ; Throttle position Low limit for usage of DFCO continue spark. ; Percent FUEL_CU_KE_DFCO_SPK_DISABLED_HOLD_REF:dc.b $28 ; DATA XREF: OS1:0003AAD8r FUEL_CU_KE_DFCO_SPK_INTERRUPTED_RAMP:dc.b 1 ; DATA XREF: OS1:0003AAA2r FUEL_CU_KV_DFCO_SPK_CONTINUE_SPARK_HIGH:dc.b 0 ; If throttle position is above the high threshold, then this cal. is used for DFCO continue spark. ; Degrees dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $E4 ; ? dc.b 1 dc.b $3F ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? FUEL_CU_KV_DFCO_SPK_CONTINUE_SPARK_LOW:dc.b 0 ; If throttle position is below the low threshold, then this cal. is used for DFCO continue spark. ; Degrees dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $E4 ; ? dc.b 1 dc.b $3F ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? FUEL_CU_KV_DFCO_SPK_EXIT_RAMP_RATE:dc.l unk_A001B ; This calibration establishes the rate in which Net Spark Advance will increase during DFCO exit. ; Degrees dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ FUEL_CU_KV_DFCO_SPK_HOLD_SPARK:dc.b 0 ; Net Spark advance during DFCO after the ramp is completed. ; Degrees dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $B6 ; ? dc.b 1 dc.b $11 dc.b 1 dc.b $6C ; l dc.b 1 dc.b $C7 ; ? dc.b 2 dc.b $22 ; " dc.b 2 dc.b $7D ; } dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $AB ; ? FUEL_CU_KV_DFCO_SPK_ENTRY_RAMP_RATE:dc.b 1 ; This calibration establishes the rate in which Net Spark Advance will decrease during DFCO. ; Multiplier_0_to_1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? FUEL_CU_KE_STALL_ENGINE_SPEED:dc.w $1000 ; DATA XREF: sub_3068C+D2r ; sub_3068C+E8r ... ; Min engine speed in which fuel cutoff is still allowed. Lowerspeeds than this may result in a stall. ; RPM FUEL_CU_KE_ENGINE_OVERSPEED_TIME:dc.w 4 ; DATA XREF: sub_30368+1E4r ; The time that engine speed must exceed the calibratible threshold before fuel is shut off. ; Seconds FUEL_CU_KE_PN_ENGINE_OVERSPEED_HIGH:dc.w $7C00 ; DATA XREF: sub_30368+90r ; sub_30368+17Ar ; This is the Engine Speed above which fuel is shutoff if the transmission is in park or neutral. ; RPM FUEL_CU_KE_PN_ENGINE_OVERSPEED_LOW:dc.w $7BFB ; DATA XREF: sub_30368+36r ; sub_30368+120r ; Engine Speed must fall below this limit before allowing fuel to be turned back on if the transmission is in park or neutral. ; RPM FUEL_CU_KE_ENG_OVERSPEED_VSS_FAIL_HIGH:dc.w $7C00 ; DATA XREF: sub_30368:loc_30442r ; sub_30368:loc_3052Cr ; Eng speed above which fuel is shutoff if a VSS failure existsUsed for chassis protection on med duty trucks ; RPM FUEL_CU_KE_ENG_OVERSPEED_VSS_FAIL_LOW:dc.w $7BFB ; DATA XREF: sub_30368:loc_303E8r ; sub_30368:loc_304D2r ; Eng speed must fall below before fuel is turned on if a VSS failureexists. Used for chassis protection on med duty trucks ; RPM FUEL_CU_KV_ENGINE_OVERSPEED_HIGH:dc.b $7C ; | dc.b 0 dc.b $7C ; | dc.b 0 dc.b $7C ; | dc.b 0 dc.b $7C ; | dc.b 0 dc.b $7C ; | dc.b 0 dc.b $7C ; | dc.b 0 dc.b $7C ; | dc.b 0 dc.b $7C ; | dc.b 0 dc.b $7C ; | dc.b 0 dc.b $7C ; | dc.b 0 FUEL_CU_KV_ENGINE_OVERSPEED_LOW:dc.b $7B ; { ; This is the calibration that the engine speed must fall below before allowing fuel to be turned back on. ; RPM dc.b $FB ; ? dc.b $7B ; { dc.b $FB ; ? dc.b $7B ; { dc.b $FB ; ? dc.b $7B ; { dc.b $FB ; ? dc.b $7B ; { dc.b $FB ; ? dc.b $7B ; { dc.b $FB ; ? dc.b $7B ; { dc.b $FB ; ? dc.b $7B ; { dc.b $FB ; ? dc.b $7B ; { dc.b $FB ; ? dc.b $7B ; { dc.b $FB ; ? FUEL_CU_KE_LOW_RPM_FUEL_CUTOFF_HIGH:dc.w $100 ; DATA XREF: sub_307A6+84r ; Turn fuel on above this RPM if fuel is currently turned off due to low RPM. ; RPM FUEL_CU_KE_LOW_RPM_FUEL_CUTOFF_LOW:dc.w $D7 ; DATA XREF: sub_307A6:loc_3083Er ; Turn fuel off below this RPM if fuel is the engine speed has been above KE_Low_RPM_Fuel_Cutoff_High. ; RPM FUEL_CU_KV_COLD_ENGINE_PROTECTION_TIME:dc.w $2580 ; DATA XREF: sub_308A8+34r ; Amount of time that cold engine protection should be enabled ; Seconds dc.b 9 dc.b $60 ; ` dc.b 3 dc.b $20 dc.b 3 dc.b $20 dc.b 3 dc.b $20 dc.b 3 dc.b $20 dc.b 3 dc.b $20 dc.b 3 dc.b $20 dc.b 3 dc.b $20 dc.b 3 dc.b $20 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_CU_KE_CLUTCH_DFCO_ENTRY_DELAY:dc.w $C ; DATA XREF: sub_3090C+6Er ; Clutch-based DFCO enabling conditions must exist continuously for this long to enable clutch-based DFCO. ; Seconds FUEL_CU_KE_CLUTCH_DFCO_EXIT_TPS_INCREASE:dc.w $4D ; DATA XREF: sub_3090C+1C6r ; Exit clutch-based DFCO if throttle position increases by more than this amount over a 25 mS interval. ; Percent FUEL_CU_KE_CLUTCH_DFCO_HOLD_TIME:dc.w $38 ; DATA XREF: sub_3090C+336r ; The duration of a clutch-based DFCO event. ; Seconds FUEL_CU_KE_CLUTCH_THROTTLE_DECREASE:dc.w $4D ; DATA XREF: sub_30566:loc_30592r FUEL_CU_KE_CLUTCH_DFCO_REENABLE_DELAY:dc.w $A0 ; DATA XREF: sub_30566+BCr ; sub_30566+EEr ; Minimum amount of time between clutch-based DFCO events. ; Seconds FUEL_CU_KE_CLUTCH_THROTTLE_WINDOW:dc.w $78 ; DATA XREF: sub_30566+A8r ; sub_30566+DCr ; Window of time either before or after the clutch pedal is depressed when a throttle decrease indicates a shift maneuver. ; Seconds FUEL_CU_KE_DFCO_REENTRY_DELAY:dc.w $320 ; DATA XREF: sub_3090C+2E4r ; sub_3090C+368r ; Amount of time to disable DFCO from becoming active after exiting DFCO. ; Seconds FUEL_CU_KE_CLUTCH_DFCO_COOLANT_TEMP:dc.w $DFF ; DATA XREF: sub_3090C+E2r ; Minimum coolant temperature to enable clutch-based DFCO. ; Degrees_C FUEL_CU_KE_CLUTCH_DFCO_ENGINE_SPEED:dc.w $C800 ; DATA XREF: sub_3090C+136r ; sub_3090C+174r ; Minimum engine speed to enable clutch-based DFCO. ; RPM FUEL_CU_KE_CLUTCH_DFCO_MAP:dc.w 0 ; DATA XREF: sub_3090C+1F4r ; sub_3090C+274r ; Maximum manifold pressure to enable clutch-based DFCO. ; kPa FUEL_CU_KE_CLUTCH_DFCO_THROTTLE_POSITION:dc.w 0 ; DATA XREF: sub_3090C+198r ; Maximum throttle position to enable clutch-based DFCO. ; Percent FUEL_CU_KE_CLUTCH_DFCO_VEHICLE_SPEED:dc.w $6400 ; DATA XREF: sub_3090C+FEr ; Minimum vehicle speed to enable clutch-based DFCO. ; MPH FUEL_CU_KE_DFCO_COOLANT_TEMPERATURE:dc.w $400 ; DATA XREF: sub_3090C:loc_309F6r ; Minimum coolant to enable DFCO. ; Degrees_C FUEL_CU_KE_DFCO_THROTTLE_HYSTERESIS:dc.w $14 ; DATA XREF: sub_3090C:loc_30ADAr ; Throttle must be < (KV_DFCO_Throttle_Position + this) to keep DFCO enabled. ; Percent FUEL_CU_KE_DFCO_VEH_SPEED_HYSTERESIS:dc.w $100 ; DATA XREF: sub_3090C+118r ; Hysteresis on vehicle speed during DFCO wait timer ; MPH FUEL_CU_KE_DFCO_ENGINE_SPEED_HYSTERESIS:dc.w $1A ; DATA XREF: sub_3090C:loc_30A48r FUEL_CU_KE_DFCO_MANIFOLD_PRESSURE_HYSTER:dc.w $33 ; DATA XREF: sub_3090C:loc_30B06r FUEL_CU_KV_DFCO_VEHICLE_SPEED:dc.w $E00 ; DATA XREF: sub_3090C+10Ar ; Vehicle speed must be > this to enable DFCO. ; MPH dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 FUEL_CU_KV_DFCO_ENGINE_SPEED:dc.b $8C ; ? ; Minimum engine speed to enable DFCO. ; RPM dc.b 0 dc.b $24 ; $ dc.b $CD ; ? dc.b $24 ; $ dc.b $CD ; ? dc.b $24 ; $ dc.b $CD ; ? dc.b $24 ; $ dc.b 0 dc.b $22 ; " dc.b $66 ; f dc.b $24 ; $ dc.b $CD ; ? dc.b $24 ; $ dc.b $CD ; ? dc.b $8C ; ? dc.b 0 dc.b $8C ; ? dc.b 0 FUEL_CU_KV_DFCO_EXIT_ENGINE_SPEED:dc.b $88 ; ? ; When engine speed goes below this cal with fuel cutoff, the fuel is turned on. ; RPM dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $1F dc.b $33 ; 3 dc.b $1E dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $88 ; ? dc.b 0 dc.b $88 ; ? dc.b 0 FUEL_CU_KV_DFCO_FAST_EXIT_DELTA_RPM:dc.b $FE ; ? ; If the engine speed changes by more than this in a constant time period, a DFCO fast exit will occur. ; RPM_S dc.b $80 ; ? dc.b $80 ; ? dc.b 0 FUEL_CU_KV_DFCO_MANIFOLD_PRESSURE:dc.b 3 ; Maximum manifold pressure to enable DFCO. ; kPa dc.b $CD ; ? dc.b 3 dc.b $CD ; ? dc.b 3 dc.b $CD ; ? dc.b 3 dc.b $CD ; ? dc.b 3 dc.b $CD ; ? FUEL_CU_KV_DFCO_EXIT_MANIFOLD_PRESSURE:dc.b 5 ; When MAP goes above this cal with fuel cutoff, the fuel is turned on. ; kPa dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 FUEL_CU_KV_DFCO_THROTTLE_POSITION:dc.w 0 ; DATA XREF: sub_3090C+1B0r ; Throttle must be < this to enable DFCO. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $14 dc.b 0 dc.b $1F dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $43 ; C dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M FUEL_CU_KV_DFCO_ENTRY_TIME:dc.b 0 ; DFCO enabling conditions must exist continuously for this long to enable DFCO. ; Seconds dc.b $78 ; x dc.b 0 dc.b $A0 ; ? word_BBCE: dc.w 0 ; DATA XREF: sub_3090C+360r FUEL_CU_KE_TOTAL_REFS_TO_MODIFY_AIR:dc.b $10 ; DATA XREF: sub_307A6+20r ; Total number of reference pulses to factor in residual air for DFCO exits. ; Refs FUEL_CU_KE_SECONDARY_REFS_TO_MODIFY_AIR:dc.b 8 ; DATA XREF: sub_307A6:loc_30800r ; Number of reference pulses to factor in residual air using KE_Final_DFCO_Residual_Factor for DFCO exits. ; Refs FUEL_CU_KE_INITIAL_DFCO_RESIDUAL_FACTOR:dc.l off_2DE0 ; DATA XREF: sub_307A6:loc_30810r FUEL_CU_KE_FINAL_DFCO_RESIDUAL_FACTOR:dc.l $D1B ; DATA XREF: sub_307A6+62r FUEL_CU_KV_DFCO_TRANS_AIR_DELAY:dc.w 0 ; DATA XREF: sub_3090C:loc_30940r ; Amount of time required to remove excess air added by the auto transmission forced downshift DFCO exit logic. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_CU_KV_COLD_ENG_PROT_OVERSPEED_HIGH:dc.w $5000 ; DATA XREF: sub_30368+AEr ; sub_30368+198r ; This is the engine speed above which fuel is shutoff if cold engine protection mode is enabled. ; RPM dc.b $50 ; P dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 FUEL_CU_KV_COLD_ENG_PROT_OVERSPEED_LOW:dc.w $4FFB ; DATA XREF: sub_30368+54r ; sub_30368+13Er ; The engine speed must fall below this limit before allowing fuel to be turned back on, if cold engine protection is enabled. ; RPM dc.b $4F ; O dc.b $FB ; ? dc.b $63 ; c dc.b $FB ; ? dc.b $63 ; c dc.b $FB ; ? dc.b $63 ; c dc.b $FB ; ? dc.b $63 ; c dc.b $FB ; ? dc.b $63 ; c dc.b $FB ; ? dc.b $63 ; c dc.b $FB ; ? dc.b $63 ; c dc.b $FB ; ? dc.b $63 ; c dc.b $FB ; ? dc.b $63 ; c dc.b $FB ; ? dc.b $63 ; c dc.b $FB ; ? dc.b $63 ; c dc.b $FB ; ? dc.b $63 ; c dc.b $FB ; ? dc.b $63 ; c dc.b $FB ; ? dc.b $63 ; c dc.b $FB ; ? FUEL_DY_KE_MAKEUP_FUEL_ENABLED:dc.b 1 ; DATA XREF: sub_30DA8+4ECr ; sub_32A0C:loc_32B3Er ; Flag used to enable/disable the calculation and delivery of makeup fuel. ; TRUE | FALSE dc.b $FF FUEL_DY_KA_K2_PRIOR_STOMP_COMP_REDUCTION:dc.b $B dc.b $9A ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $55 ; U dc.b $A dc.b $99 ; ? dc.b 9 dc.b $9A ; ? dc.b 8 dc.b $44 ; D dc.b 6 dc.b $EF ; ? dc.b 5 dc.b $99 ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $55 ; U dc.b $A dc.b $99 ; ? dc.b 9 dc.b $9A ; ? dc.b 8 dc.b $44 ; D dc.b 6 dc.b $EF ; ? dc.b 5 dc.b $99 ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $55 ; U dc.b $A dc.b $99 ; ? dc.b 9 dc.b $9A ; ? dc.b 8 dc.b $44 ; D dc.b 6 dc.b $EF ; ? dc.b 5 dc.b $99 ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $55 ; U dc.b $A dc.b $99 ; ? dc.b 9 dc.b $9A ; ? dc.b 8 dc.b $44 ; D dc.b 6 dc.b $EF ; ? dc.b 5 dc.b $99 ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $9A ; ? dc.b $B dc.b $55 ; U dc.b $A dc.b $99 ; ? dc.b 9 dc.b $9A ; ? dc.b 8 dc.b $44 ; D dc.b 6 dc.b $EF ; ? dc.b 5 dc.b $99 ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? dc.b 4 dc.b $CC ; ? FUEL_DY_KV_K4_STOMP_COMP_DELTA_LIMIT:dc.w $1D ; DATA XREF: sub_2FAFC+7Cr ; Minimum delta fuel limit to add stomp compensation. ; Grams dc.b 0 dc.b $1D dc.b 0 dc.b $1D dc.b 0 dc.b $1D dc.b 0 dc.b $1D FUEL_DY_KV_K5_STOMP_COMP_DELTA_LOW_LIMIT:dc.w $FFEC ; DATA XREF: sub_2FAFC+8Cr ; Delta mass threshold to disable throttle stomp compensation on tip outs. ; Grams dc.b $FF dc.b $EC ; ? dc.b $FF dc.b $EC ; ? dc.b $FF dc.b $EC ; ? dc.b $FF dc.b $EC ; ? FUEL_DY_KA_IMPACT_FACTOR_20KPA_MAP:dc.b 6 ; Describes the fraction of the injected pulse that will impact the port wall at 20kPa MAP. ; Mult_0_to_1 dc.b $66 ; f dc.b 5 dc.b $BC ; ? dc.b 4 dc.b $F6 ; ? dc.b 4 dc.b $4E ; N dc.b 3 dc.b $DA ; ? dc.b 3 dc.b $94 ; ? dc.b 3 dc.b $4C ; L dc.b 3 dc.b 6 dc.b 2 dc.b $C0 ; ? dc.b 2 dc.b $7A ; z dc.b 2 dc.b $2E ; . dc.b 1 dc.b $DE ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $56 ; V dc.b 1 dc.b $12 dc.b 0 dc.b $F6 ; ? dc.b 0 dc.b $F6 ; ? dc.b 0 dc.b $F0 ; ? dc.b 0 dc.b $CC ; ? dc.b 6 dc.b $66 ; f dc.b 5 dc.b $BC ; ? dc.b 4 dc.b $F6 ; ? dc.b 4 dc.b $4E ; N dc.b 3 dc.b $DA ; ? dc.b 3 dc.b $94 ; ? dc.b 3 dc.b $4C ; L dc.b 3 dc.b 6 dc.b 2 dc.b $C0 ; ? dc.b 2 dc.b $7A ; z dc.b 2 dc.b $2E ; . dc.b 1 dc.b $DE ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $56 ; V dc.b 1 dc.b $12 dc.b 0 dc.b $F6 ; ? dc.b 0 dc.b $F6 ; ? dc.b 0 dc.b $F0 ; ? dc.b 0 dc.b $CC ; ? dc.b 6 dc.b $66 ; f dc.b 5 dc.b $BC ; ? dc.b 4 dc.b $F6 ; ? dc.b 4 dc.b $4E ; N dc.b 3 dc.b $DA ; ? dc.b 3 dc.b $94 ; ? dc.b 3 dc.b $4C ; L dc.b 3 dc.b 6 dc.b 2 dc.b $C0 ; ? dc.b 2 dc.b $7A ; z dc.b 2 dc.b $2E ; . dc.b 1 dc.b $DE ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $56 ; V dc.b 1 dc.b $12 dc.b 0 dc.b $F6 ; ? dc.b 0 dc.b $F6 ; ? dc.b 0 dc.b $F0 ; ? dc.b 0 dc.b $CC ; ? dc.b 6 dc.b $66 ; f dc.b 5 dc.b $BC ; ? dc.b 4 dc.b $F6 ; ? dc.b 4 dc.b $4E ; N dc.b 3 dc.b $DA ; ? dc.b 3 dc.b $94 ; ? dc.b 3 dc.b $4C ; L dc.b 3 dc.b 6 dc.b 2 dc.b $C0 ; ? dc.b 2 dc.b $7A ; z dc.b 2 dc.b $2E ; . dc.b 1 dc.b $DE ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $56 ; V dc.b 1 dc.b $12 dc.b 0 dc.b $F6 ; ? dc.b 0 dc.b $F6 ; ? dc.b 0 dc.b $F0 ; ? dc.b 0 dc.b $CC ; ? dc.b 6 dc.b $66 ; f dc.b 5 dc.b $BC ; ? dc.b 4 dc.b $F6 ; ? dc.b 4 dc.b $4E ; N dc.b 3 dc.b $DA ; ? dc.b 3 dc.b $94 ; ? dc.b 3 dc.b $4C ; L dc.b 3 dc.b 6 dc.b 2 dc.b $C0 ; ? dc.b 2 dc.b $7A ; z dc.b 2 dc.b $2E ; . dc.b 1 dc.b $DE ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $56 ; V dc.b 1 dc.b $12 dc.b 0 dc.b $F6 ; ? dc.b 0 dc.b $F6 ; ? dc.b 0 dc.b $F0 ; ? dc.b 0 dc.b $CC ; ? FUEL_DY_KA_IMPACT_FACTOR_100KPA_MAP:dc.b $B ; Describes the fraction of the injected pulse that will impact the port wall at 100kPa MAP. ; Mult_0_to_1 dc.b $AE ; ? dc.b $B dc.b $26 ; & dc.b $A dc.b $9C ; ? dc.b $A dc.b $E dc.b 9 dc.b $7C ; | dc.b 8 dc.b $E0 ; ? dc.b 8 dc.b $24 ; $ dc.b 7 dc.b $62 ; b dc.b 6 dc.b $AA ; ? dc.b 5 dc.b $F6 ; ? dc.b 5 dc.b $30 ; 0 dc.b 4 dc.b $5E ; ^ dc.b 3 dc.b $D8 ; ? dc.b 3 dc.b $50 ; P dc.b 2 dc.b $FE ; ? dc.b 2 dc.b $B8 ; ? dc.b 2 dc.b $66 ; f dc.b 1 dc.b $F8 ; ? dc.b 1 dc.b $70 ; p dc.b $B dc.b $AE ; ? dc.b $B dc.b $26 ; & dc.b $A dc.b $9C ; ? dc.b $A dc.b $E dc.b 9 dc.b $7C ; | dc.b 8 dc.b $E0 ; ? dc.b 8 dc.b $24 ; $ dc.b 7 dc.b $62 ; b dc.b 6 dc.b $AA ; ? dc.b 5 dc.b $F6 ; ? dc.b 5 dc.b $30 ; 0 dc.b 4 dc.b $5E ; ^ dc.b 3 dc.b $D8 ; ? dc.b 3 dc.b $50 ; P dc.b 2 dc.b $FE ; ? dc.b 2 dc.b $B8 ; ? dc.b 2 dc.b $66 ; f dc.b 1 dc.b $F8 ; ? dc.b 1 dc.b $70 ; p dc.b $B dc.b $AE ; ? dc.b $B dc.b $26 ; & dc.b $A dc.b $9C ; ? dc.b $A dc.b $E dc.b 9 dc.b $7C ; | dc.b 8 dc.b $E0 ; ? dc.b 8 dc.b $24 ; $ dc.b 7 dc.b $62 ; b dc.b 6 dc.b $AA ; ? dc.b 5 dc.b $F6 ; ? dc.b 5 dc.b $30 ; 0 dc.b 4 dc.b $5E ; ^ dc.b 3 dc.b $D8 ; ? dc.b 3 dc.b $50 ; P dc.b 2 dc.b $FE ; ? dc.b 2 dc.b $B8 ; ? dc.b 2 dc.b $66 ; f dc.b 1 dc.b $F8 ; ? dc.b 1 dc.b $70 ; p dc.b $B dc.b $AE ; ? dc.b $B dc.b $26 ; & dc.b $A dc.b $9C ; ? dc.b $A dc.b $E dc.b 9 dc.b $7C ; | dc.b 8 dc.b $E0 ; ? dc.b 8 dc.b $24 ; $ dc.b 7 dc.b $62 ; b dc.b 6 dc.b $AA ; ? dc.b 5 dc.b $F6 ; ? dc.b 5 dc.b $30 ; 0 dc.b 4 dc.b $5E ; ^ dc.b 3 dc.b $D8 ; ? dc.b 3 dc.b $50 ; P dc.b 2 dc.b $FE ; ? dc.b 2 dc.b $B8 ; ? dc.b 2 dc.b $66 ; f dc.b 1 dc.b $F8 ; ? dc.b 1 dc.b $70 ; p dc.b $B dc.b $AE ; ? dc.b $B dc.b $26 ; & dc.b $A dc.b $9C ; ? dc.b $A dc.b $E dc.b 9 dc.b $7C ; | dc.b 8 dc.b $E0 ; ? dc.b 8 dc.b $24 ; $ dc.b 7 dc.b $62 ; b dc.b 6 dc.b $AA ; ? dc.b 5 dc.b $F6 ; ? dc.b 5 dc.b $30 ; 0 dc.b 4 dc.b $5E ; ^ dc.b 3 dc.b $D8 ; ? dc.b 3 dc.b $50 ; P dc.b 2 dc.b $FE ; ? dc.b 2 dc.b $B8 ; ? dc.b 2 dc.b $66 ; f dc.b 1 dc.b $F8 ; ? dc.b 1 dc.b $70 ; p FUEL_DY_KA_BOIL_TIME_CONST_20KPA_MAP:dc.b 0 ; Describes the time it takes for 63% of liquid fuel on port wall to vaporize at 20kPa MAP. ; Seconds dc.b $26 ; & dc.b 0 dc.b $25 ; % dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $23 ; # dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $20 dc.b 0 dc.b $1E dc.b 0 dc.b $1C dc.b 0 dc.b $1B dc.b 0 dc.b $18 dc.b 0 dc.b $15 dc.b 0 dc.b $14 dc.b 0 dc.b $12 dc.b 0 dc.b $10 dc.b 0 dc.b $F dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 8 dc.b 0 dc.b $26 ; & dc.b 0 dc.b $25 ; % dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $23 ; # dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $20 dc.b 0 dc.b $1E dc.b 0 dc.b $1C dc.b 0 dc.b $1B dc.b 0 dc.b $18 dc.b 0 dc.b $15 dc.b 0 dc.b $14 dc.b 0 dc.b $12 dc.b 0 dc.b $10 dc.b 0 dc.b $F dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 8 dc.b 0 dc.b $26 ; & dc.b 0 dc.b $25 ; % dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $23 ; # dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $20 dc.b 0 dc.b $1E dc.b 0 dc.b $1C dc.b 0 dc.b $1B dc.b 0 dc.b $18 dc.b 0 dc.b $15 dc.b 0 dc.b $14 dc.b 0 dc.b $12 dc.b 0 dc.b $10 dc.b 0 dc.b $F dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 8 dc.b 0 dc.b $26 ; & dc.b 0 dc.b $25 ; % dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $23 ; # dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $20 dc.b 0 dc.b $1E dc.b 0 dc.b $1C dc.b 0 dc.b $1B dc.b 0 dc.b $18 dc.b 0 dc.b $15 dc.b 0 dc.b $14 dc.b 0 dc.b $12 dc.b 0 dc.b $10 dc.b 0 dc.b $F dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 8 dc.b 0 dc.b $26 ; & dc.b 0 dc.b $25 ; % dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $23 ; # dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $20 dc.b 0 dc.b $1E dc.b 0 dc.b $1C dc.b 0 dc.b $1B dc.b 0 dc.b $18 dc.b 0 dc.b $15 dc.b 0 dc.b $14 dc.b 0 dc.b $12 dc.b 0 dc.b $10 dc.b 0 dc.b $F dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 8 FUEL_DY_KA_BOIL_TIME_CONST_100KPA_MAP:dc.b 0 ; Describes the time it takes for 63% of liquid fuel on port wall to vaporize at 100kPa MAP. ; Seconds dc.b $3A ; : dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2C ; , dc.b 0 dc.b $2A ; * dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $1E dc.b 0 dc.b $1D dc.b 0 dc.b $1C dc.b 0 dc.b $1A dc.b 0 dc.b $19 dc.b 0 dc.b $17 dc.b 0 dc.b $13 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2C ; , dc.b 0 dc.b $2A ; * dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $1E dc.b 0 dc.b $1D Constant16_B3619___Hot_Enrichment_Mode_Coolant_Temp_Threshold__Entry_:dc.b 0 dc.b $1C Constant16_B3620___Hot_Enrichment_Mode_Coolant_Temp_Threshold__Exit_:dc.b 0 dc.b $1A Constant16_B3621___Hot_Enrichment_Mode_TPS_Threshold__Entry_:dc.b 0 dc.b $19 Constant16_B3622___Hot_Enrichment_Mode_TPS_Threshold__Exit_:dc.b 0 dc.b $17 Constant16_B3623___Hot_Enrichment_Mode_MAP_Threshold__Entry_:dc.b 0 dc.b $13 Constant16_B3624___Hot_Enrichment_Mode_MAP_Threshold__Exit_:dc.b 0 dc.b $3A ; : Constant16_B3625___Hot_Enrichment_Mode_Speed_Threshold__Entry_:dc.b 0 dc.b $37 ; 7 Constant16_B3626___Hot_Enrichment_Mode_Speed_Threshold__Exit_:dc.b 0 dc.b $35 ; 5 Constant16______________Hot_Enrichment_Mode_Base_Coolant_Temp:dc.b 0 dc.b $33 ; 3 Constant16______________Hot_Enrichment_Mode_Enrichment_Factor:dc.b 0 dc.b $31 ; 1 Constant16_B3606___Hot_Enrichment_Mode_Maximum_AFR:dc.b 0 dc.b $30 ; 0 Constant16_B3614___PE_Hot_Mode_Coolant_Temp_Threshold:dc.b 0 dc.b $2E ; . Constant16______________PE_TPS_Threshold_Hysteresis_when_in_Catalytic_Overtemp:dc.b 0 dc.b $2C ; , dc.b 0 dc.b $2A ; * Constant16_B3613___PE_MAP_Threshold:dc.b 0 dc.b $27 ; ' Constant16______________PE_MAP_Threshold_Hysteresis:dc.b 0 dc.b $24 ; $ CurveTable_19_Rows_B3615___PE_Hot_Mode_Enable:dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $1E dc.b 0 dc.b $1D dc.b 0 dc.b $1C dc.b 0 dc.b $1A dc.b 0 dc.b $19 dc.b 0 dc.b $17 dc.b 0 dc.b $13 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2C ; , dc.b 0 dc.b $2A ; * dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $24 ; $ CurveTable_19_Rows_B3616___PE_Normal_Mode_Enable:dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $1E dc.b 0 dc.b $1D dc.b 0 dc.b $1C dc.b 0 dc.b $1A dc.b 0 dc.b $19 dc.b 0 dc.b $17 dc.b 0 dc.b $13 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2C ; , dc.b 0 dc.b $2A ; * dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $24 ; $ CurveTable_19_Rows_B3618___PE_Commanded_Fuel:dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $1E dc.b 0 dc.b $1D dc.b 0 dc.b $1C dc.b 0 dc.b $1A dc.b 0 dc.b $19 dc.b 0 dc.b $17 dc.b 0 dc.b $13 FUEL_DY_KE_DFCO_STOMP_COMP_TPS_MIN:dc.w $8F ; DATA XREF: sub_30DA8+2ACr ; Throttle position below which stomp comp will not be applied when exiting DFCO. ; Percent FUEL_DY_KE_FUEL_IGNORE_WALL_WETTING_RPM:dc.w 0 ; DATA XREF: sub_30DA8+442r FUEL_DY_KE_FUEL_IGNORE_WALL_WETTING_TPS:dc.w 0 ; DATA XREF: sub_30DA8+44Er FUEL_DY_KE_MIN_PULSE_WIDTH:dc.w $41 ; DATA XREF: sub_30DA8+394r FUEL_DY_KA_K1_INITIAL_STOMP_COMP_TIME_FA:dc.b $16 ; DATA XREF: OS1:000314EAo dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b 0 dc.b $14 dc.b 0 CurveTable_19_Rows_B3617___PE_Modifier_Based_on_Coolant_Temp:dc.b $11 dc.b $4B ; K dc.b $E dc.b $95 ; ? dc.b $B dc.b $E0 ; ? dc.b 9 dc.b $72 ; r dc.b 7 dc.b $A7 ; ? dc.b 6 dc.b $B6 ; ? dc.b 6 dc.b $87 ; ? dc.b 6 dc.b $6E ; n dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b 0 dc.b $14 dc.b 0 CurveTable_19_Rows_B3641___PE_Modifier_Based_on_Intake_Temp:dc.b $11 dc.b $4B ; K dc.b $E dc.b $95 ; ? dc.b $B dc.b $E0 ; ? dc.b 9 dc.b $72 ; r dc.b 7 dc.b $A7 ; ? dc.b 6 dc.b $B6 ; ? dc.b 6 dc.b $87 ; ? dc.b 6 dc.b $6E ; n dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b 0 dc.b $14 dc.b 0 SurfaceTable_17x19_B3605___Open_Loop_Commanded_Fuel:dc.b $11 dc.b $4B ; K dc.b $E dc.b $95 ; ? dc.b $B dc.b $E0 ; ? dc.b 9 dc.b $72 ; r dc.b 7 dc.b $A7 ; ? dc.b 6 dc.b $B6 ; ? dc.b 6 dc.b $87 ; ? dc.b 6 dc.b $6E ; n dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b 0 dc.b $14 dc.b 0 dc.b $11 dc.b $4B ; K dc.b $E dc.b $95 ; ? dc.b $B dc.b $E0 ; ? dc.b 9 dc.b $72 ; r dc.b 7 dc.b $A7 ; ? dc.b 6 dc.b $B6 ; ? dc.b 6 dc.b $87 ; ? dc.b 6 dc.b $6E ; n dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b $66 ; f dc.b $16 dc.b 0 dc.b $14 dc.b 0 dc.b $11 dc.b $4B ; K dc.b $E dc.b $95 ; ? dc.b $B dc.b $E0 ; ? dc.b 9 dc.b $72 ; r dc.b 7 dc.b $A7 ; ? dc.b 6 dc.b $B6 ; ? dc.b 6 dc.b $87 ; ? dc.b 6 dc.b $6E ; n dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f FUEL_DY_KA_K3_STOMP_COMP_TIME_DECAY:dc.b $F ; The stomp compensation factor is decayed by this multiplier once per second. ; NONE 0_1 dc.b $EC ; ? dc.b $F dc.b $E9 ; ? dc.b $F dc.b $E5 ; ? dc.b $F dc.b $E3 ; ? dc.b $F dc.b $E0 ; ? dc.b $F dc.b $D9 ; ? dc.b $F dc.b $CC ; ? dc.b $F dc.b $92 ; ? dc.b $F dc.b $AB ; ? dc.b $F dc.b $B2 ; ? dc.b $F dc.b $9B ; ? dc.b $F dc.b $71 ; q dc.b $F dc.b $A dc.b $D dc.b $70 ; p dc.b $A dc.b $C6 ; ? dc.b 7 dc.b $33 ; 3 dc.b 3 dc.b $BB ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b $F dc.b $EC ; ? dc.b $F dc.b $E9 ; ? dc.b $F dc.b $E5 ; ? dc.b $F dc.b $E3 ; ? dc.b $F dc.b $E0 ; ? dc.b $F dc.b $D9 ; ? dc.b $F dc.b $CC ; ? dc.b $F dc.b $92 ; ? dc.b $F dc.b $AB ; ? dc.b $F dc.b $B2 ; ? dc.b $F dc.b $9B ; ? dc.b $F dc.b $71 ; q dc.b $F dc.b $A dc.b $D dc.b $70 ; p dc.b $A dc.b $C6 ; ? dc.b 7 dc.b $33 ; 3 dc.b 3 dc.b $BB ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b $F dc.b $EC ; ? dc.b $F dc.b $E9 ; ? dc.b $F dc.b $E5 ; ? dc.b $F dc.b $E3 ; ? dc.b $F dc.b $E0 ; ? dc.b $F dc.b $D9 ; ? dc.b $F dc.b $CC ; ? dc.b $F dc.b $92 ; ? dc.b $F dc.b $AB ; ? dc.b $F dc.b $B2 ; ? dc.b $F dc.b $9B ; ? dc.b $F dc.b $71 ; q dc.b $F dc.b $A dc.b $D dc.b $70 ; p dc.b $A dc.b $C6 ; ? dc.b 7 dc.b $33 ; 3 dc.b 3 dc.b $BB ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b $F dc.b $EC ; ? dc.b $F dc.b $E9 ; ? dc.b $F dc.b $E5 ; ? dc.b $F dc.b $E3 ; ? dc.b $F dc.b $E0 ; ? dc.b $F dc.b $D9 ; ? dc.b $F dc.b $CC ; ? dc.b $F dc.b $92 ; ? dc.b $F dc.b $AB ; ? dc.b $F dc.b $B2 ; ? dc.b $F dc.b $9B ; ? dc.b $F dc.b $71 ; q dc.b $F dc.b $A dc.b $D dc.b $70 ; p dc.b $A dc.b $C6 ; ? dc.b 7 dc.b $33 ; 3 dc.b 3 dc.b $BB ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b $F dc.b $EC ; ? dc.b $F dc.b $E9 ; ? dc.b $F dc.b $E5 ; ? dc.b $F dc.b $E3 ; ? dc.b $F dc.b $E0 ; ? dc.b $F dc.b $D9 ; ? dc.b $F dc.b $CC ; ? dc.b $F dc.b $92 ; ? dc.b $F dc.b $AB ; ? dc.b $F dc.b $B2 ; ? dc.b $F dc.b $9B ; ? dc.b $F dc.b $71 ; q dc.b $F dc.b $A dc.b $D dc.b $70 ; p dc.b $A dc.b $C6 ; ? dc.b 7 dc.b $33 ; 3 dc.b 3 dc.b $BB ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? FUEL_DY_KV_K1_SOAKTIMER_MODIFIER:dc.w $600 ; DATA XREF: OS1:loc_31550r ; A modifier to Stomp_Comp_Time_Decay_Factor based on.soaktimer if enabled. ; NONE 0_2 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 7 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 FUEL_DY_KE_WALL_MASS_FACTOR:dc.w $800 ; DATA XREF: sub_30CA4+DCr ; Multiplier used to guarantee stability of the Wall Wetting model. ; NONE 0_2 FUEL_DY_KV_IMPACT_FACTOR_MODIFIER:dc.w $800 ; DATA XREF: sub_31318:loc_313A4r ; Factor, based on air flow, which reduces KA_Boiling_Time_Constant. ; NONE 0_1 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 7 dc.b $9A ; ? dc.b 7 dc.b $33 ; 3 dc.b 6 dc.b $CD ; ? dc.b 6 dc.b $66 ; f dc.b 6 dc.b 0 dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $33 ; 3 dc.b 4 dc.b $CD ; ? dc.b 4 dc.b $66 ; f dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 FUEL_DY_KA_IMPACT_FACTOR_BLEND_FRACTION:dc.b 0 ; Normalized fraction describing the impact factor surface relative to the 20kPa and 100kPa MAP extremities. ; Scaler_16_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 2 dc.b $E9 ; ? dc.b 2 dc.b $EF ; ? dc.b 2 dc.b $FD ; ? dc.b 2 dc.b $FD ; ? dc.b 2 dc.b $F4 ; ? dc.b 2 dc.b $E7 ; ? dc.b 2 dc.b $DA ; ? dc.b 2 dc.b $C1 ; ? dc.b 2 dc.b $BB ; ? dc.b 2 dc.b $B5 ; ? dc.b 2 dc.b $A4 ; ? dc.b 2 dc.b $7A ; z dc.b 2 dc.b $49 ; I dc.b 2 dc.b $98 ; ? dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $62 ; b dc.b 1 dc.b $EA ; ? dc.b 1 dc.b $84 ; ? dc.b 0 dc.b 0 dc.b 5 dc.b $D3 ; ? dc.b 5 dc.b $E0 ; ? dc.b 5 dc.b $F7 ; ? dc.b 5 dc.b $FA ; ? dc.b 5 dc.b $EA ; ? dc.b 5 dc.b $CE ; ? dc.b 5 dc.b $B4 ; ? dc.b 5 dc.b $85 ; ? dc.b 5 dc.b $76 ; v dc.b 5 dc.b $6B ; k dc.b 5 dc.b $4C ; L dc.b 4 dc.b $F3 ; ? dc.b 4 dc.b $92 ; ? dc.b 5 dc.b $30 ; 0 dc.b 5 dc.b $55 ; U dc.b 4 dc.b $BB ; ? dc.b 3 dc.b $D3 ; ? dc.b 3 dc.b 8 dc.b 0 dc.b 0 dc.b 6 dc.b $8B ; ? dc.b 6 dc.b $95 ; ? dc.b 6 dc.b $A6 ; ? dc.b 6 dc.b $A7 ; ? dc.b 6 dc.b $9A ; ? dc.b 6 dc.b $80 ; ? dc.b 6 dc.b $6A ; j dc.b 6 dc.b $4F ; O dc.b 6 dc.b $5B ; [ dc.b 6 dc.b $55 ; U dc.b 6 dc.b $31 ; 1 dc.b 5 dc.b $FA ; ? dc.b 5 dc.b $B7 ; ? dc.b 5 dc.b $F2 ; ? dc.b 5 dc.b $FC ; ? dc.b 5 dc.b $7A ; z dc.b 4 dc.b $91 ; ? dc.b 3 dc.b $B2 ; ? dc.b 1 dc.b $13 dc.b 7 dc.b $47 ; G dc.b 7 dc.b $4C ; L dc.b 7 dc.b $53 ; S dc.b 7 dc.b $56 ; V dc.b 7 dc.b $4A ; J dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $1F dc.b 7 dc.b $19 dc.b 7 dc.b $3C ; < dc.b 7 dc.b $3B ; ; dc.b 7 dc.b $16 dc.b 7 dc.b 0 dc.b 6 dc.b $DB ; ? dc.b 6 dc.b $B4 ; ? dc.b 6 dc.b $AB ; ? dc.b 6 dc.b $30 ; 0 dc.b 5 dc.b $59 ; Y dc.b 4 dc.b $4E ; N dc.b 2 dc.b $C dc.b 7 dc.b $A5 ; ? dc.b 7 dc.b $A4 ; ? dc.b 7 dc.b $AB ; ? dc.b 7 dc.b $AD ; ? dc.b 7 dc.b $A5 ; ? dc.b 7 dc.b $90 ; ? dc.b 7 dc.b $68 ; h dc.b 7 dc.b $6A ; j dc.b 7 dc.b $79 ; y dc.b 7 dc.b $89 ; ? dc.b 7 dc.b $8B ; ? dc.b 7 dc.b $80 ; ? dc.b 7 dc.b $71 ; q dc.b 7 dc.b $56 ; V dc.b 7 dc.b $51 ; Q dc.b 6 dc.b $EF ; ? dc.b 6 dc.b $38 ; 8 dc.b 5 dc.b $93 ; ? dc.b 4 dc.b $19 dc.b 8 dc.b 0 CurveTable_16_Rows_B3664___Additional_After_start_Enrichment_Delay:dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 7 dc.b $FD ; ? dc.b 7 dc.b $EE ; ? dc.b 7 dc.b $B1 ; ? dc.b 7 dc.b $BA ; ? dc.b 7 dc.b $B2 ; ? CurveTable_16_Rows_B3665___Additional_After_start_Enrichment_Active:dc.b 7 dc.b $D2 ; ? dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 7 dc.b $A5 ; ? dc.b 7 dc.b $21 ; ! CurveTable_16_Rows_B3627___After_start_Enrichment_Decay_Delay:dc.b 6 dc.b $CA ; ? dc.b 6 dc.b $C dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 7 dc.b $F7 ; ? CurveTable_16_Rows_B3628___After_start_Enrichment_Decay_Rate:dc.b 7 dc.b $D8 ; ? dc.b 7 dc.b $DF ; ? dc.b 7 dc.b $DB ; ? dc.b 7 dc.b $E9 ; ? dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 CurveTable_16_Rows_B3650___After_start_Enrichment_Decay_Factor:dc.b 8 dc.b 0 dc.b 7 dc.b $D2 ; ? dc.b 7 dc.b $91 ; ? dc.b 7 dc.b $65 ; e dc.b 7 dc.b 6 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 CurveTable_16_Rows_B3630___Park_to_Drive_Enrichment_Decay_Delay:dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 FUEL_DY_KA_BOIL_TIME_CONST_BLND_FRACTION:dc.b 0 ; Normalized fraction describing the boiling time constant surface relative to the 20kPa and 100kPa MAP extremities. ; Scaler_16_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 CurveTable_16_Rows_B3651___Park_to_Drive_Enrichment_Decay_Factor:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 2 dc.b $66 ; f dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $D3 ; ? dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 0 CurveTable_16_Rows_B3632___After_start_Coolant_Temp_Enrichment:dc.b 2 dc.b $80 ; ? dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 0 dc.b 2 dc.b $AB ; ? dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $14 dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $2F ; / dc.b 5 dc.b $33 ; 3 dc.b 5 dc.b $55 ; U CurveTable_16_Rows_B3633___After_start_Intake_Temp_Enrichment:dc.b 5 dc.b $A6 ; ? dc.b 5 dc.b $80 ; ? dc.b 5 dc.b $80 ; ? dc.b 5 dc.b $80 ; ? dc.b 5 dc.b $80 ; ? dc.b 6 dc.b 0 dc.b 5 dc.b $DE ; ? dc.b 5 dc.b $DE ; ? dc.b 5 dc.b $DE ; ? dc.b 6 dc.b $27 ; ' dc.b 6 dc.b 0 dc.b 5 dc.b $8A ; ? dc.b 4 dc.b $EC ; ? dc.b 4 dc.b $AB ; ? dc.b 4 dc.b $EC ; ? dc.b 4 dc.b $4F ; O CurveTable_16_Rows_B3629___Park_to_Drive_Enrichment:dc.b 4 dc.b $5D ; ] dc.b 6 dc.b $66 ; f dc.b 6 dc.b $AB ; ? dc.b 6 dc.b $97 ; ? dc.b 6 dc.b $80 ; ? dc.b 7 dc.b 0 dc.b 6 dc.b $80 ; ? dc.b 6 dc.b $80 ; ? dc.b 7 dc.b 0 dc.b 6 dc.b $EF ; ? dc.b 6 dc.b $EF ; ? dc.b 6 dc.b $EF ; ? dc.b 7 dc.b $62 ; b dc.b 6 dc.b $AB ; ? dc.b 6 dc.b $27 ; ' dc.b 6 dc.b $27 ; ' CurveTable_29_Rows_B3662___After_start_Enrichment_Factor:dc.b 6 dc.b 0 dc.b 6 dc.b $27 ; ' dc.b 5 dc.b $8A ; ? dc.b 5 dc.b $D1 ; ? dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 6 dc.b $C5 ; ? dc.b 6 dc.b $C5 ; ? dc.b 7 dc.b $55 ; U dc.b 6 dc.b $C5 ; ? dc.b 6 dc.b $C5 ; ? dc.b 7 dc.b $46 ; F dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 SurfaceTable_29x19_B3661___Restart_Enrichment:dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 7 dc.b $62 ; b dc.b 7 dc.b $62 ; b dc.b 8 dc.b 0 dc.b 7 dc.b $62 ; b dc.b 7 dc.b $62 ; b dc.b 7 dc.b $46 ; F dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 FUEL_DY_KV_INITIAL_WW_DELAY_REFS:dc.b $32 ; DATA XREF: sub_30DA8+5Ar ; Number of reference pulses to delay, after PCM state equal run, before enabling Wall Wetting. ; SHORTCARD dc.b $32 ; 2 dc.b $32 ; 2 dc.b $2D ; - dc.b $28 ; ( dc.b $23 ; # dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E FUEL_DY_KE_STARTUP_MAKEUP_DELAY:dc.w $F ; DATA XREF: sub_30DA8+516r ; Number of reference pulses to delay after engine is running before calculating makeup fuel. ; CARDINAL FUEL_DY_KV_MAKEUP_FUEL_CHANNEL:dc.b 2 ; Selects the cylinder to receive makeup fuel based on the current cylinder. ; CYL NUM dc.b 3 dc.b 4 dc.b 5 dc.b 6 dc.b 7 dc.b 0 dc.b 1 dc.b 8 dc.b $FF FUEL_DY_KV_MAKEUP_CYLINDER_INDEX:dc.b 5 ; Selects the cylinder index for which to calculate makeup fuel based on the cylinder to receive makeup fuel. ; CYL NUM dc.b 6 dc.b 7 dc.b 0 dc.b 1 dc.b 2 dc.b 3 dc.b 4 dc.b 8 dc.b $FF FUEL_DY_KA_IMPACT_FACTOR_MODIFIER_2:dc.b $FF ; Impact Factor modifier vs Delta Mass and Coolant Temp. ; Scaler 0-1 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF FUEL_DY_KA_BOILING_TIME_MODIFIER_2:dc.b $FF ; Impact Factor modifier vs Delta Mass and Coolant Temp. ; Scaler 0-1 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF FUEL_DY_KV_BOILING_TIME_MODIFIER:dc.w $800 ; DATA XREF: sub_30CA4:loc_30D36r ; Factor, based on air flow, which reduces KA_Boiling_Time_Constant. ; NONE 0_1 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 FUEL_ECONOMY_KE_FUEL_ECONOMY_SCALER:dc.w $800 ; DATA XREF: sub_75DDC+46r ; Scaler used to adjust liters of fuel for fuel economy calculations. ; NONE 0_2 FUEL_ECONOMY_KE_INSTANTANEOUS_FILTER_COEFF:dc.w $100 ; DATA XREF: sub_75DDC+A0r ; Coefficient for filtering instantaneous fuel ; NONE 0-1 FUEL_EQ_KV_GREEN_ENGINE_AIRFUEL_RATIO:dc.b 6 ; Commanded Airfuel Ratio during Green Engine Crank. ; Airfuel Ratio dc.b 0 dc.b 8 dc.b 0 dc.b $10 dc.b 0 FUEL_EQ_KE_CLEAR_FLOOD_THROTTLE_ENTER:dc.w $1000 ; DATA XREF: sub_2FC92:loc_2FD3Ar ; sub_31AE2:loc_31B38r ; Threshold which throttle position must initially cross for no crank or prime fuel to be delivered. ; Percent FUEL_EQ_KE_CLEAR_FLOOD_THROTTLE_EXIT:dc.w $F00 ; DATA XREF: sub_2FC92+A0r ; sub_31AE2+4Er ; Threshold which throttle position must remain above for no crank or prime fuel to be delivered. ; Percent FUEL_EQ_KV_STOICHIOMETRIC_FUEL_AIR:dc.w $117 ; DATA XREF: sub_2FAFC+14r ; Defines the ratio mass of fuel to mass of air for stoichiometric, based on alcohol content of fuel. ; Mult_0_to_1 dc.b 1 dc.b $17 dc.b 1 dc.b $17 dc.b 1 dc.b $17 dc.b 1 dc.b $17 dc.b 1 dc.b $17 dc.b 1 dc.b $17 dc.b 1 dc.b $17 dc.b 1 dc.b $17 dc.b 1 dc.b $17 dc.b 1 dc.b $17 dc.b 1 dc.b $17 dc.b 1 dc.b $17 dc.b 1 dc.b $17 dc.b 1 dc.b $17 dc.b 1 dc.b $17 dc.b 1 dc.b $17 FUEL_EQ_KV_OPEN_LP_EQ_RATIO_BLEND_FACTOR:dc.w 0 ; DATA XREF: sub_2FAFC+4Er dcb.b 8,0 FUEL_EQ_KV_PARK_DRIVE_DELAY_TIME:dc.w $FFFF ; DATA XREF: Calibration:00009208o ; sub_842B2+76r ; Amount of time after PRNDL shifts into drive before adding park to drive enrichment. ; Seconds dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF FUEL_EQ_KV_ENGINE_PROTECTION_EQUIVALENCE:dc.w $5E1 ; DATA XREF: sub_3158C:loc_315A8r ; Equivalence ratio based on engine speed if engine protection is enabled. ; Equiv_Ratio_Type dc.b 5 dc.b 0 dc.b 4 dc.b $E6 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? FUEL_EQ_KE_NORMAL_CRANK_EVENT_LIMIT:dc.b $10 ; DATA XREF: sub_31AE2+2Cr ; Absolute ref count defining the end of the normal crank portion of KA_Crank_Equivalence_Ratio. ; 1-32 FUEL_EQ_KE_EXTENDED_CRANK_EVENT_LIMIT:dc.b $20 ; DATA XREF: sub_31AE2+24r FUEL_EQ_KE_HOT_ENRICHMENT_COOLANT_ENTRY_:dc.w $DFF ; DATA XREF: sub_316EA:loc_31722r ; Coolant temperature above which the hot enrichment state can become active. ; Degrees_C FUEL_EQ_KE_HOT_ENRICHMENT_COOLANT_EXIT_T:dc.w $DCD ; DATA XREF: sub_316EA+1Er ; Coolant temperature below which the hot enrichment state will become inactive, used due to hysteresis. ; Degrees_C FUEL_EQ_KE_HOT_ENRICHMENT_THROTTLE_ENTRY:dc.w $1400 ; DATA XREF: sub_316EA+44r ; Throttle position above which the hot enrichment state can become active. ; Percent FUEL_EQ_KE_HOT_ENRICHMENT_THROTTLE_EXIT_:dc.w $13CD ; DATA XREF: sub_316EA+2Ar ; Throttle position below which the hot enrichment state will become inactive, used due to hysteresis. ; Percent FUEL_EQ_KE_HOT_ENRICHMENT_MAP_ENTRY_THRE:dc.w $14FF ; DATA XREF: sub_316EA+3Er ; Manifold pressure above which the hot enrichment state can become active. ; kPa FUEL_EQ_KE_HOT_ENRICHMENT_MAP_EXIT_THRES:dc.w $14CD ; DATA XREF: sub_316EA+24r ; Manifold pressure below which the hot enrichment state will become inactive, used due to hysteresis. ; kPa FUEL_EQ_KE_HOT_ENRICHMENT_VEH_SPEED_ENTR:dc.w $7F80 ; DATA XREF: sub_316EA+4Ar ; Vehicle speed above which the hot enrichment state can become active. ; MPH FUEL_EQ_KE_HOT_ENRICHMENT_VEH_SPEED_EXIT:dc.w $7F00 ; DATA XREF: sub_316EA+30r ; Vehicle speed below which the hot enrichment state will become inactive, used due to hysteresis. ; MPH FUEL_EQ_KE_HOT_ENRICHMENT_EQUIVALENCE_OF:dc.w $DFF ; DATA XREF: sub_316EA+6Cr ; Coolant temperature threshold in which enrichmentwill be applied. ; Degrees_C FUEL_EQ_KE_HOT_ENRICHMENT_EQUIVALENCE_MU:dc.w $29 ; DATA XREF: sub_316EA+92r ; Percentage of enrichment as a function of coolant temperature. ; Mult_0_to_2 FUEL_EQ_KE_MAXIMUM_ENRICHMENT_EQUIVALENC:dc.w $485 ; DATA XREF: sub_316EA:loc_317B2r ; Maximum allowable enrichment equivalence ratio. ; Equiv_Ratio_Type FUEL_EQ_KE_POWER_ENRICHMENT_HOT_TEMP:dc.w $DFF ; DATA XREF: sub_316EA+F8r ; Coolant temperature threshold above which a different enable criteria for PE is used. ; Degrees_C FUEL_EQ_KE_POWER_ENRICHMENT_THROTTLE_HYS:dc.w $143 ; DATA XREF: sub_316EA:loc_31830r ; Hysteresis to the base throttle threshold to prevent noise from turning PE on and off. ; Percent FUEL_EQ_KE_POWER_ENRICHMENT_COT_HYSTERES:dc.w $143 ; DATA XREF: sub_316EA+16Er ; Hysteresis to the base throttle threshold to prevent noise from turning PE on and off, while in COT. ; Percent FUEL_EQ_KE_POWER_ENRICHMENT_MAP_THRESHOL:dc.w $300 ; DATA XREF: sub_316EA+17Cr ; sub_316EA:loc_31878r ; Base MAP threshold to enable PE. ; kPa FUEL_EQ_KE_POWER_ENRICHMENT_MAP_HYSTERES:dc.w $133 ; DATA XREF: sub_316EA+182r ; Hysteresis to the base MAP threshold to prevent noise from turning PE on and off. ; kPa FUEL_EQ_KV_POWER_ENRICHMENT_HOT_THRESHOL:dc.w $900 ; DATA XREF: sub_316EA:loc_317FAr ; Defines the base enable throttle position for power enrichment when coolant temperature is above a calibration threshold. ; Percent dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 4 dc.b $9A ; ? dc.b 4 dc.b $9A ; ? Constant16______________Park_to_Drive_Enrichment_AFR_Threshold:dc.b 4 dc.b $9A ; ? Flag_0x01_B3668___Additional_After_start_Enrichment_Enable:dc.b 3 dc.b $CD ; ? Constant16_B3667___Additional_After_start_Decay_Amount:dc.b 3 dc.b $CD ; ? Constant16_B3666___Additional_After_start_Decay_Rate:dc.b 3 dc.b $CD ; ? Constant16______________PE_Desired_Torque_Threshold:dc.b 3 dc.b $CD ; ? Constant16______________PE_Desired_Torque_Threshold_Hysteresis:dc.b 3 dc.b $CD ; ? Constant16______________PE_TPS_Threshold_Hysteresis_when_in_Torque_Management:dc.b 3 dc.b $CD ; ? CurveTable_16_Rows_B3663___Additional_After_start_Enrichment:dc.b 3 dc.b $CD ; ? dc.b 3 dc.b $CD ; ? dc.b 3 dc.b $CD ; ? dc.b 3 dc.b $CD ; ? dc.b 3 dc.b $CD ; ? dc.b 3 dc.b $CD ; ? FUEL_EQ_KV_POWER_ENRICHMENT_COLD_THRESHO:dc.w $CCD ; DATA XREF: sub_316EA:loc_31814r ; Defines the base enable throttle position for power enrichment when coolant temperature is below a calibration threshold. ; Percent dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $B dc.b 0 SurfaceTable_21x15_B3639___Lean_Cruise_Enleanment:dc.b 9 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 5 dc.b $33 ; 3 dc.b 5 dc.b $33 ; 3 dc.b 5 dc.b $33 ; 3 dc.b 5 dc.b $33 ; 3 dc.b 5 dc.b $33 ; 3 dc.b 5 dc.b $33 ; 3 dc.b 5 dc.b $33 ; 3 FUEL_EQ_KV_POWER_ENRICHMENT_RPM_EQUIVALE:dc.w $4A8 ; DATA XREF: sub_316EA:loc_3195Cr ; Defines the base equivalence ratio for power enrichment based on RPM. ; Equiv_Ratio_Type dc.b 4 dc.b $A8 ; ? dc.b 4 dc.b $A8 ; ? dc.b 4 dc.b $A6 ; ? dc.b 4 dc.b $A5 ; ? dc.b 4 dc.b $A5 ; ? dc.b 4 dc.b $A7 ; ? dc.b 4 dc.b $A9 ; ? dc.b 4 dc.b $AC ; ? dc.b 4 dc.b $B0 ; ? dc.b 4 dc.b $B5 ; ? dc.b 4 dc.b $BB ; ? dc.b 4 dc.b $C2 ; ? dc.b 4 dc.b $CB ; ? dc.b 4 dc.b $D4 ; ? dc.b 4 dc.b $DE ; ? dc.b 4 dc.b $DE ; ? dc.b 4 dc.b $DE ; ? dc.b 4 dc.b $DE ; ? FUEL_EQ_KV_POWER_ENRICHMENT_COOLANT_EQUI:dc.w $1906 ; DATA XREF: sub_316EA+282r ; Used to modify the base equivalence ratio for power enrichment based on coolant. ; Equiv_Ratio_Type dc.b $16 dc.b $4E ; N dc.b $13 dc.b $CC ; ? dc.b $11 dc.b $37 ; 7 dc.b $E dc.b $8D ; ? dc.b $B dc.b $E2 ; ? dc.b 9 dc.b $37 ; 7 dc.b 6 dc.b $C3 ; ? dc.b 4 dc.b $19 dc.b 1 dc.b $81 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b 2 dc.b 6 dc.b 4 dc.b 6 dc.b 4 dc.b 6 dc.b 4 FUEL_EQ_KV_POWER_ENRICHMENT_IAT_EQUIV:dc.w 0 ; DATA XREF: sub_316EA+29Cr ; Used to modify the base equivalence ratio for power enrichment based on IAT. For Holden application. ; Equiv_Ratio_Type dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_EQ_KA_OPEN_LOOP_EQ_RATIO_E0:dc.b 6 dc.b $AE ; ? dc.b 5 dc.b $EF ; ? dc.b 5 dc.b $51 ; Q dc.b 5 dc.b $14 dc.b 4 dc.b $DB ; ? dc.b 4 dc.b $8D ; ? dc.b 4 dc.b $3D ; = dc.b 4 dc.b $2C ; , dc.b 4 dc.b $52 ; R dc.b 4 dc.b $48 ; H dc.b 4 dc.b $33 ; 3 dc.b 4 dc.b $1F dc.b 4 dc.b $14 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b $7E ; ~ dc.b 5 dc.b $EF ; ? dc.b 5 dc.b $51 ; Q dc.b 5 dc.b $14 dc.b 4 dc.b $DB ; ? dc.b 4 dc.b $94 ; ? dc.b 4 dc.b $43 ; C dc.b 4 dc.b $2F ; / dc.b 4 dc.b $52 ; R dc.b 4 dc.b $48 ; H dc.b 4 dc.b $3D ; = dc.b 4 dc.b $29 ; ) dc.b 4 dc.b $1F dc.b 4 dc.b $D dc.b 4 dc.b $D dc.b 4 dc.b $D dc.b 4 dc.b $D dc.b 4 dc.b $D dc.b 4 dc.b $D dc.b 6 dc.b $7E ; ~ dc.b 5 dc.b $FF dc.b 5 dc.b $56 ; V dc.b 5 dc.b $14 dc.b 4 dc.b $DB ; ? dc.b 4 dc.b $94 ; ? dc.b 4 dc.b $4B ; K dc.b 4 dc.b $37 ; 7 dc.b 4 dc.b $80 ; ? dc.b 4 dc.b $71 ; q dc.b 4 dc.b $48 ; H dc.b 4 dc.b $33 ; 3 dc.b 4 dc.b $29 ; ) dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 6 dc.b $7E ; ~ dc.b 6 dc.b $11 dc.b 5 dc.b $5B ; [ dc.b 5 dc.b $14 dc.b 4 dc.b $DB ; ? dc.b 4 dc.b $96 ; ? dc.b 4 dc.b $4E ; N dc.b 4 dc.b $47 ; G dc.b 4 dc.b $8F ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $48 ; H dc.b 4 dc.b $33 ; 3 dc.b 4 dc.b $29 ; ) dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 6 dc.b $96 ; ? dc.b 6 dc.b $25 ; % dc.b 5 dc.b $6B ; k dc.b 5 dc.b $1B dc.b 4 dc.b $DF ; ? dc.b 4 dc.b $A1 ; ? dc.b 4 dc.b $63 ; c dc.b 4 dc.b $5B ; [ dc.b 4 dc.b $8F ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $52 ; R dc.b 4 dc.b $3D ; = dc.b 4 dc.b $29 ; ) dc.b 4 dc.b $1C dc.b 4 dc.b $1C dc.b 4 dc.b $1C dc.b 4 dc.b $1C dc.b 4 dc.b $1C dc.b 4 dc.b $1C dc.b 6 dc.b $AE ; ? dc.b 6 dc.b $3B ; ; dc.b 5 dc.b $7C ; | dc.b 5 dc.b $29 ; ) dc.b 4 dc.b $EB ; ? dc.b 4 dc.b $AE ; ? dc.b 4 dc.b $76 ; v dc.b 4 dc.b $65 ; e dc.b 4 dc.b $8F ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $52 ; R dc.b 4 dc.b $3D ; = dc.b 4 dc.b $2A ; * dc.b 4 dc.b $2A ; * dc.b 4 dc.b $2A ; * dc.b 4 dc.b $2A ; * dc.b 4 dc.b $2A ; * dc.b 4 dc.b $2A ; * dc.b 4 dc.b $2A ; * dc.b 6 dc.b $AE ; ? dc.b 6 dc.b $3B ; ; dc.b 5 dc.b $93 ; ? dc.b 5 dc.b $45 ; E dc.b 5 dc.b 9 dc.b 4 dc.b $CF ; ? dc.b 4 dc.b $80 ; ? dc.b 4 dc.b $7D ; } dc.b 4 dc.b $8F ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $52 ; R dc.b 4 dc.b $3D ; = dc.b 4 dc.b $3A ; : dc.b 4 dc.b $3A ; : dc.b 4 dc.b $3A ; : dc.b 4 dc.b $3A ; : dc.b 4 dc.b $3A ; : dc.b 4 dc.b $3A ; : dc.b 4 dc.b $3A ; : dc.b 6 dc.b $AE ; ? dc.b 6 dc.b $4D ; M dc.b 5 dc.b $A5 ; ? dc.b 5 dc.b $54 ; T dc.b 5 dc.b $16 dc.b 4 dc.b $DB ; ? dc.b 4 dc.b $8B ; ? dc.b 4 dc.b $87 ; ? dc.b 4 dc.b $8F ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $52 ; R dc.b 4 dc.b $42 ; B dc.b 4 dc.b $42 ; B dc.b 4 dc.b $42 ; B dc.b 4 dc.b $42 ; B dc.b 4 dc.b $42 ; B dc.b 4 dc.b $42 ; B dc.b 4 dc.b $42 ; B dc.b 4 dc.b $42 ; B dc.b 6 dc.b $C7 ; ? dc.b 6 dc.b $51 ; Q dc.b 5 dc.b $B1 ; ? dc.b 5 dc.b $5B ; [ dc.b 5 dc.b $1F dc.b 4 dc.b $F4 ; ? dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $9A ; ? dc.b 4 dc.b $8F ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $52 ; R dc.b 4 dc.b $52 ; R dc.b 4 dc.b $52 ; R dc.b 4 dc.b $52 ; R dc.b 4 dc.b $52 ; R dc.b 4 dc.b $52 ; R dc.b 4 dc.b $52 ; R dc.b 4 dc.b $52 ; R dc.b 4 dc.b $52 ; R dc.b 6 dc.b $C7 ; ? dc.b 6 dc.b $63 ; c dc.b 5 dc.b $C3 ; ? dc.b 5 dc.b $6A ; j dc.b 5 dc.b $2D ; - dc.b 5 dc.b 2 dc.b 4 dc.b $CD ; ? dc.b 4 dc.b $B6 ; ? dc.b 4 dc.b $9A ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $5A ; Z dc.b 6 dc.b $E0 ; ? dc.b 6 dc.b $7A ; z dc.b 5 dc.b $D5 ; ? dc.b 5 dc.b $81 ; ? dc.b 5 dc.b $48 ; H dc.b 5 dc.b $1D dc.b 4 dc.b $E8 ; ? dc.b 4 dc.b $D3 ; ? dc.b 4 dc.b $B4 ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $74 ; t dc.b 4 dc.b $74 ; t dc.b 4 dc.b $74 ; t dc.b 4 dc.b $74 ; t dc.b 4 dc.b $74 ; t dc.b 4 dc.b $74 ; t dc.b 4 dc.b $74 ; t dc.b 4 dc.b $74 ; t dc.b 4 dc.b $74 ; t dc.b 6 dc.b $E0 ; ? dc.b 6 dc.b $7A ; z dc.b 5 dc.b $D5 ; ? dc.b 5 dc.b $89 ; ? dc.b 5 dc.b $56 ; V dc.b 5 dc.b $2F ; / dc.b 5 dc.b $C dc.b 4 dc.b $F6 ; ? dc.b 4 dc.b $B6 ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $7C ; | dc.b 4 dc.b $7C ; | dc.b 4 dc.b $7C ; | dc.b 4 dc.b $7C ; | dc.b 4 dc.b $7C ; | dc.b 4 dc.b $7C ; | dc.b 4 dc.b $7C ; | dc.b 4 dc.b $7C ; | dc.b 4 dc.b $7C ; | dc.b 6 dc.b $FB ; ? dc.b 6 dc.b $7E ; ~ dc.b 5 dc.b $E2 ; ? dc.b 5 dc.b $99 ; ? dc.b 5 dc.b $60 ; ` dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $11 dc.b 4 dc.b $FD ; ? dc.b 4 dc.b $B7 ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 6 dc.b $FB ; ? dc.b 6 dc.b $7E ; ~ SurfaceTable_19x13_Cranking_Enleanment_Factor:dc.b 5 dc.b $E2 ; ? dc.b 5 dc.b $99 ; ? dc.b 5 dc.b $60 ; ` dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $12 dc.b 4 dc.b $FD ; ? dc.b 4 dc.b $B7 ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 6 dc.b $FB ; ? dc.b 6 dc.b $7E ; ~ dc.b 5 dc.b $E2 ; ? dc.b 5 dc.b $99 ; ? dc.b 5 dc.b $60 ; ` dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $12 dc.b 4 dc.b $FD ; ? dc.b 4 dc.b $B7 ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 6 dc.b $FB ; ? dc.b 6 dc.b $7E ; ~ dc.b 5 dc.b $E2 ; ? dc.b 5 dc.b $99 ; ? dc.b 5 dc.b $60 ; ` dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $12 dc.b 4 dc.b $FD ; ? dc.b 4 dc.b $B7 ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 6 dc.b $FB ; ? dc.b 6 dc.b $7E ; ~ dc.b 5 dc.b $E2 ; ? dc.b 5 dc.b $99 ; ? dc.b 5 dc.b $60 ; ` dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $12 dc.b 4 dc.b $FD ; ? dc.b 4 dc.b $B7 ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? FUEL_EQ_KA_OPEN_LOOP_EQ_RATIO_E80:dc.b 6 dc.b $AE ; ? dc.b 5 dc.b $EF ; ? dc.b 5 dc.b $51 ; Q dc.b 5 dc.b $14 dc.b 4 dc.b $DB ; ? dc.b 4 dc.b $8D ; ? dc.b 4 dc.b $3D ; = dc.b 4 dc.b $2C ; , dc.b 4 dc.b $52 ; R dc.b 4 dc.b $48 ; H dc.b 4 dc.b $33 ; 3 dc.b 4 dc.b $1F dc.b 4 dc.b $14 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b $7E ; ~ dc.b 5 dc.b $EF ; ? dc.b 5 dc.b $51 ; Q dc.b 5 dc.b $14 dc.b 4 dc.b $DB ; ? dc.b 4 dc.b $94 ; ? dc.b 4 dc.b $43 ; C dc.b 4 dc.b $2F ; / dc.b 4 dc.b $52 ; R dc.b 4 dc.b $48 ; H dc.b 4 dc.b $3D ; = dc.b 4 dc.b $29 ; ) dc.b 4 dc.b $1F dc.b 4 dc.b $D dc.b 4 dc.b $D dc.b 4 dc.b $D dc.b 4 dc.b $D dc.b 4 dc.b $D dc.b 4 dc.b $D dc.b 6 dc.b $7E ; ~ dc.b 5 dc.b $FF dc.b 5 dc.b $56 ; V dc.b 5 dc.b $14 dc.b 4 dc.b $DB ; ? dc.b 4 dc.b $94 ; ? dc.b 4 dc.b $4B ; K dc.b 4 dc.b $37 ; 7 dc.b 4 dc.b $80 ; ? dc.b 4 dc.b $71 ; q dc.b 4 dc.b $48 ; H dc.b 4 dc.b $33 ; 3 dc.b 4 dc.b $29 ; ) dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 6 dc.b $7E ; ~ dc.b 6 dc.b $11 dc.b 5 dc.b $5B ; [ dc.b 5 dc.b $14 dc.b 4 dc.b $DB ; ? dc.b 4 dc.b $96 ; ? dc.b 4 dc.b $4E ; N dc.b 4 dc.b $47 ; G dc.b 4 dc.b $8F ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $48 ; H dc.b 4 dc.b $33 ; 3 dc.b 4 dc.b $29 ; ) dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 4 dc.b $14 dc.b 6 dc.b $96 ; ? dc.b 6 dc.b $25 ; % dc.b 5 dc.b $6B ; k dc.b 5 dc.b $1B dc.b 4 dc.b $DF ; ? dc.b 4 dc.b $A1 ; ? dc.b 4 dc.b $63 ; c dc.b 4 dc.b $5B ; [ dc.b 4 dc.b $8F ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $52 ; R dc.b 4 dc.b $3D ; = dc.b 4 dc.b $29 ; ) dc.b 4 dc.b $1C dc.b 4 dc.b $1C dc.b 4 dc.b $1C dc.b 4 dc.b $1C dc.b 4 dc.b $1C dc.b 4 dc.b $1C dc.b 6 dc.b $AE ; ? dc.b 6 dc.b $3B ; ; dc.b 5 dc.b $7C ; | dc.b 5 dc.b $29 ; ) dc.b 4 dc.b $EB ; ? dc.b 4 dc.b $AE ; ? dc.b 4 dc.b $76 ; v dc.b 4 dc.b $65 ; e dc.b 4 dc.b $8F ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $52 ; R dc.b 4 dc.b $3D ; = dc.b 4 dc.b $2A ; * dc.b 4 dc.b $2A ; * dc.b 4 dc.b $2A ; * dc.b 4 dc.b $2A ; * dc.b 4 dc.b $2A ; * dc.b 4 dc.b $2A ; * dc.b 4 dc.b $2A ; * dc.b 6 dc.b $AE ; ? dc.b 6 dc.b $3B ; ; dc.b 5 dc.b $93 ; ? dc.b 5 dc.b $45 ; E dc.b 5 dc.b 9 dc.b 4 dc.b $CF ; ? dc.b 4 dc.b $80 ; ? dc.b 4 dc.b $7D ; } dc.b 4 dc.b $8F ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $52 ; R dc.b 4 dc.b $3D ; = dc.b 4 dc.b $3A ; : dc.b 4 dc.b $3A ; : dc.b 4 dc.b $3A ; : dc.b 4 dc.b $3A ; : dc.b 4 dc.b $3A ; : dc.b 4 dc.b $3A ; : dc.b 4 dc.b $3A ; : dc.b 6 dc.b $AE ; ? dc.b 6 dc.b $4D ; M dc.b 5 dc.b $A5 ; ? dc.b 5 dc.b $54 ; T dc.b 5 dc.b $16 dc.b 4 dc.b $DB ; ? dc.b 4 dc.b $8B ; ? dc.b 4 dc.b $87 ; ? dc.b 4 dc.b $8F ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $52 ; R dc.b 4 dc.b $42 ; B dc.b 4 dc.b $42 ; B dc.b 4 dc.b $42 ; B dc.b 4 dc.b $42 ; B dc.b 4 dc.b $42 ; B dc.b 4 dc.b $42 ; B dc.b 4 dc.b $42 ; B dc.b 4 dc.b $42 ; B dc.b 6 dc.b $C7 ; ? dc.b 6 dc.b $51 ; Q dc.b 5 dc.b $B1 ; ? dc.b 5 dc.b $5B ; [ dc.b 5 dc.b $1F dc.b 4 dc.b $F4 ; ? dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $9A ; ? dc.b 4 dc.b $8F ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $52 ; R dc.b 4 dc.b $52 ; R dc.b 4 dc.b $52 ; R dc.b 4 dc.b $52 ; R dc.b 4 dc.b $52 ; R dc.b 4 dc.b $52 ; R dc.b 4 dc.b $52 ; R dc.b 4 dc.b $52 ; R dc.b 4 dc.b $52 ; R dc.b 6 dc.b $C7 ; ? dc.b 6 dc.b $63 ; c SurfaceTable_11x15_B3609___PE_Delay_Counter_Adjustment:dc.b 5 dc.b $C3 ; ? dc.b 5 dc.b $6A ; j dc.b 5 dc.b $2D ; - dc.b 5 dc.b 2 dc.b 4 dc.b $CD ; ? dc.b 4 dc.b $B6 ; ? dc.b 4 dc.b $9A ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $5A ; Z dc.b 6 dc.b $E0 ; ? dc.b 6 dc.b $7A ; z dc.b 5 dc.b $D5 ; ? dc.b 5 dc.b $81 ; ? dc.b 5 dc.b $48 ; H dc.b 5 dc.b $1D dc.b 4 dc.b $E8 ; ? dc.b 4 dc.b $D3 ; ? dc.b 4 dc.b $B4 ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $74 ; t dc.b 4 dc.b $74 ; t dc.b 4 dc.b $74 ; t dc.b 4 dc.b $74 ; t dc.b 4 dc.b $74 ; t dc.b 4 dc.b $74 ; t dc.b 4 dc.b $74 ; t dc.b 4 dc.b $74 ; t dc.b 4 dc.b $74 ; t dc.b 6 dc.b $E0 ; ? dc.b 6 dc.b $7A ; z dc.b 5 dc.b $D5 ; ? dc.b 5 dc.b $89 ; ? dc.b 5 dc.b $56 ; V dc.b 5 dc.b $2F ; / dc.b 5 dc.b $C dc.b 4 dc.b $F6 ; ? dc.b 4 dc.b $B6 ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $7C ; | dc.b 4 dc.b $7C ; | dc.b 4 dc.b $7C ; | dc.b 4 dc.b $7C ; | dc.b 4 dc.b $7C ; | dc.b 4 dc.b $7C ; | dc.b 4 dc.b $7C ; | dc.b 4 dc.b $7C ; | dc.b 4 dc.b $7C ; | dc.b 6 dc.b $FB ; ? dc.b 6 dc.b $7E ; ~ dc.b 5 dc.b $E2 ; ? dc.b 5 dc.b $99 ; ? dc.b 5 dc.b $60 ; ` dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $11 dc.b 4 dc.b $FD ; ? dc.b 4 dc.b $B7 ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 6 dc.b $FB ; ? dc.b 6 dc.b $7E ; ~ dc.b 5 dc.b $E2 ; ? dc.b 5 dc.b $99 ; ? dc.b 5 dc.b $60 ; ` dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $12 dc.b 4 dc.b $FD ; ? dc.b 4 dc.b $B7 ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 6 dc.b $FB ; ? dc.b 6 dc.b $7E ; ~ dc.b 5 dc.b $E2 ; ? dc.b 5 dc.b $99 ; ? dc.b 5 dc.b $60 ; ` dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $12 dc.b 4 dc.b $FD ; ? dc.b 4 dc.b $B7 ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 6 dc.b $FB ; ? dc.b 6 dc.b $7E ; ~ dc.b 5 dc.b $E2 ; ? dc.b 5 dc.b $99 ; ? dc.b 5 dc.b $60 ; ` dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $12 dc.b 4 dc.b $FD ; ? dc.b 4 dc.b $B7 ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 6 dc.b $FB ; ? dc.b 6 dc.b $7E ; ~ dc.b 5 dc.b $E2 ; ? dc.b 5 dc.b $99 ; ? dc.b 5 dc.b $60 ; ` dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $12 dc.b 4 dc.b $FD ; ? dc.b 4 dc.b $B7 ; ? dc.b 4 dc.b $8E ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? dc.b 4 dc.b $85 ; ? FUEL_EQ_KA_FAST_AFTERSTART_APPLY_DELAY:dc.b 0 ; DATA XREF: sub_31E86+8Co ; Number of reference pulses after engine run to wait prior to applying Fast Afterstart Enrichment. ; Engine_Revolutions dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 Constant16_B3608___PE_Delay_Maximal_Time:dc.b 0 dc.b 0 Constant16_B3610___PE_Delay_Bypass_RPM:dc.b 0 dc.b 0 Constant16______________PE_Delay_Bypass_Delta_RPM:dc.b 0 dc.b 0 Constant16______________PE_Delay_Bypass_Speed_MPH:dc.b 0 dc.b 0 Constant16_B3611___PE_Delay_Bypass_Coolant_Temp__Upper_:dc.b 0 dc.b $FF Constant16_B3612___PE_Delay_Bypass_Coolant_Temp__Lower_:dc.b 0 dc.b 0 Constant16______________PE_Delay_Bypass_Delta_TPS:dc.b 0 dc.b 0 Constant16______________PE_Delay_Bypass_High_Speed_Threshold:dc.b 0 dc.b 0 Constant16______________PE_Delay_Reduction_Speed_Negative_Delta_Threshold:dc.b 0 dc.b 0 Constant16______________PE_Delay_Reduction_High_Speed_Threshold:dc.b 0 dc.b 0 Constant16______________PE_Delay_Reduction_Speed_Positive_Delta_Threshold:dc.b 0 dc.b 0 Constant16______________PE_Delay_Reduction_TPS_Threshold:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF FUEL_EQ_KA_FAST_AFTERSTART_HOLD_REFS:dc.b 0 ; DATA XREF: sub_31E86+A2o ; Number of reference pulses initiated at engine run to start the Fast Afterstart Enrichment decay. ; Engine_Revolutions dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF FUEL_EQ_KA_AFTERSTART_DECAY_DELAY:dc.b $3C ; < ; DATA XREF: sub_31E86+10o dc.b $3C ; < dc.b $35 ; 5 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $2C ; , dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $FF dc.b $3C ; < dc.b $3C ; < dc.b $35 ; 5 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $2C ; , dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $FF dc.b $3C ; < dc.b $3C ; < dc.b $35 ; 5 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $2C ; , dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $FF dc.b $3C ; < dc.b $3C ; < dc.b $35 ; 5 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $2C ; , dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $FF dc.b $3C ; < dc.b $3C ; < dc.b $35 ; 5 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $32 ; 2 dc.b $2C ; , dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $FF FUEL_EQ_KA_AFTERSTART_DECAY_STEP:dc.b 6 ; DATA XREF: sub_31E86+48o ; This calibration along with the rate of change of KA_Afterstart_Decay_Delay determines the afterstart enrichment decay rate. ; Engine_Revolutions dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b $FF dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b $FF dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b $FF dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b $FF dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b $FF FUEL_EQ_KA_AFTERSTART_DECAY_MULTIPLIER:dc.b $F ; Decay multiplier applied to the current Afterstart Enrichment. ; NONE 0_1 dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $82 ; ? dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $E dc.b $F9 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $82 ; ? dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $E dc.b $F9 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $82 ; ? dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $E dc.b $F9 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $82 ; ? dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $E dc.b $F9 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $86 ; ? dc.b $F dc.b $82 ; ? dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $F dc.b $6C ; l dc.b $E dc.b $F9 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? dc.b $E dc.b $E2 ; ? FUEL_EQ_KV_PARK_DRIVE_DECAY_DELAY:dc.b $40 ; DATA XREF: sub_31E86+62r dc.b $40 ; @ dc.b $40 ; @ dc.b $40 ; @ dc.b $40 ; @ dc.b $40 ; @ dc.b $40 ; @ dc.b $40 ; @ dc.b $40 ; @ dc.b $40 ; @ dc.b $40 ; @ dc.b $40 ; @ dc.b $40 ; @ dc.b $40 ; @ dc.b $40 ; @ dc.b $40 ; @ FUEL_EQ_KV_PARK_DRIVE_DECAY_STEP:dc.b 4 ; DATA XREF: sub_31E86+7Cr ; This calibration along with the rate of change of KV_Park_Drive_Decay_Delay determines the park to drive enrichment decay rate. ; Engine_Revolutions dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 FUEL_EQ_KV_PARK_DRIVE_DECAY_MULTIPLIER:dc.w $7D1 ; DATA XREF: sub_31E86+70r ; Decay multiplier applied to the current Park to Drive Enrichment. ; NONE 0_1 aSSSSSSSSS: dc.b 7,'?',7,'?',7,'?',7,'?',7,'?',7,'?',7,'?',7,'?',7,'?',7,'?',7,'?',7,'?',7,'?',7 dc.b '?',7,'?',$A,0 dc.b 7 dc.b $AB ; ? dc.b 5 dc.b $10 dc.b 3 dc.b $66 ; f dc.b 2 dc.b $82 ; ? dc.b 1 dc.b $C5 ; ? dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B3 ; ? dc.b 0 dc.b $AB ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $41 ; A dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b $A dc.b 0 dc.b 7 dc.b $AB ; ? dc.b 5 dc.b $10 dc.b 3 dc.b $66 ; f dc.b 2 dc.b $82 ; ? dc.b 1 dc.b $C5 ; ? dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B3 ; ? dc.b 0 dc.b $AB ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $41 ; A dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b $A dc.b 0 dc.b 7 dc.b $AB ; ? dc.b 5 dc.b $10 dc.b 3 dc.b $66 ; f dc.b 2 dc.b $82 ; ? dc.b 1 dc.b $C5 ; ? dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B3 ; ? dc.b 0 dc.b $AB ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $41 ; A dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b $A dc.b 0 dc.b 7 dc.b $AB ; ? dc.b 5 dc.b $10 dc.b 3 dc.b $66 ; f dc.b 2 dc.b $82 ; ? dc.b 1 dc.b $C5 ; ? dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B3 ; ? dc.b 0 dc.b $AB ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $41 ; A dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b $A dc.b 0 dc.b 7 dc.b $AB ; ? dc.b 5 dc.b $10 dc.b 3 dc.b $66 ; f dc.b 2 dc.b $82 ; ? dc.b 1 dc.b $C5 ; ? dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B3 ; ? dc.b 0 dc.b $AB ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $41 ; A dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R FUEL_EQ_KV_INITIAL_IAT_ENRICHMENT:dc.w 0 ; DATA XREF: sub_31FCA+C4r ; Initial enrichment, based on Induction Air Temperature, to be added to open loop equivalence ratio. ; NONE -1_4 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_EQ_KV_INITIAL_PARK_DRIVE_ENRICHMENT:dc.w $CD ; DATA XREF: sub_321E2+1Cr ; Initial enrichment, applied when a park to drive transition occurs, to be added to open loop equivalence ratio. ; NONE -1_4 dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_EQ_KV_INITIAL_CLT_SOAKTIME_MODIFIER:dc.w $600 ; DATA XREF: sub_31FCA:loc_32046r ; A modifier to Initial_Coolant_Enrichment based onsoaktimer if enabled. ; NONE 0_2 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 7 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 FUEL_EQ_KA_INITIAL_HOT_SOAK_ENRICHMENT:dc.b 0 ; Initial Hot Soak enrichment based on Time Since EngineLast Ran and Coolant Temperature. ; NONE -32_32 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_EQ_KE_FAST_AFTERSTART_PD_MAX:dc.w $7FFF ; DATA XREF: sub_321E2+10r ; Maximum amount of KV_Fast_Afterstart Enrichment to allow Park to Drive. ; Equiv_Ratio_S_Type FUEL_EQ_KE_FAST_AFTERSTART_ENRICH_ENBLD:dc.b 0 ; DATA XREF: sub_31AE2:loc_31E18r ; Option to enable/disable the Fast Afterstart Enrichment algorithm. ; BOOLEAN dc.b $FF FUEL_EQ_KV_FAST_AFTERSTART_DECAY_STEPS:dc.w 0 ; DATA XREF: sub_31E86+C4r ; Equivalence ratio decay step for Fast Afterstart Enrichment. Amount decayed every KV_Fast_Afterstart_Decay_Intrvl. ; Equiv_Ratio_S_Type dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_EQ_KV_FAST_AFTERSTART_DECAY_INTRVL:dc.b 0 ; DATA XREF: sub_31E86+B6r ; Number of ref pulses between decay steps for Fast Afterstart Enrichment ; Ref Pulses dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF FUEL_EQ_KE_PCT_TRQ_DES_TO_ENABLE_PE:dc.w $1400 ; DATA XREF: sub_316EA:loc_3183Ar ; sub_316EA:loc_3184Cr ; When PE is not active, Pct_Trq_Des_To_Enable_PE is set to this cal as enabling threshold. ; Percent_0_To_200 FUEL_EQ_KE_HYST_PCT_TRQ_FOR_PE:dc.w $300 ; DATA XREF: sub_316EA+156r ; Pct_Trq_Des_To_Enable_PE threshold hystersis value applied when PE is active. ; Percent_0_To_200 FUEL_EQ_KE_TRQ_MGT_PWR_ENRICH_THROT_HYS:dc.w $800 ; DATA XREF: sub_316EA+13Er ; PE throttle threshold hysteresis value applied when PE is active and ETC torque management is active. ; Percent FUEL_EQ_KV_CRANK_EQ_RATIO_BLEND_FACTOR:dc.w 0 ; DATA XREF: sub_31AE2+A2r dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_EQ_KV_CRANK_EQ_RATIO_E80_FACTOR:dc.w $800 ; DATA XREF: sub_31AE2+B0r dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 FUEL_EQ_KA_FAST_AFTERSTART_ENRICHMENT:dc.b 0 ; DATA XREF: sub_31AE2+362o ; Additional coolant and fuel composition based afterstart enrichment. ; NONE 0_4 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_EQ_KA_LC_FUEL_DELTA:dc.b 0 ; Returns the target for Lean EQ based on the engine load. ; Equiv_Ratio dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_EQ_KA_CRANK_ER_ENLEAN_MODIFIER:dc.b $10 ; Modifer based on Coolant and RPM to better blend(enlean) from crank fuel to run fuel ; Mult_0_to_1 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $F dc.b $9A ; ? dc.b $F dc.b $9A ; ? dc.b $F dc.b $9A ; ? dc.b $F dc.b $9A ; ? dc.b $F dc.b $9A ; ? dc.b $F dc.b $33 ; 3 dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $F dc.b $33 ; 3 dc.b $F dc.b $33 ; 3 dc.b $F dc.b $33 ; 3 dc.b $F dc.b $33 ; 3 dc.b $F dc.b $33 ; 3 dc.b $C dc.b $CD ; ? dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $E dc.b $CD ; ? dc.b $E dc.b $CD ; ? dc.b $E dc.b $CD ; ? dc.b $E dc.b $CD ; ? dc.b $E dc.b $CD ; ? dc.b $B dc.b $33 ; 3 dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b 9 dc.b $9A ; ? dc.b 8 dc.b $CD ; ? dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b $D dc.b $9A ; ? dc.b $D dc.b $9A ; ? dc.b $D dc.b $9A ; ? dc.b $D dc.b $9A ; ? dc.b $D dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 8 dc.b $CD ; ? dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b 9 dc.b $9A ; ? dc.b 8 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $33 ; 3 dc.b 8 dc.b 0 dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b 9 dc.b $9A ; ? dc.b 8 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $33 ; 3 dc.b 8 dc.b 0 dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $B dc.b $33 ; 3 dc.b 9 dc.b $9A ; ? dc.b 8 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $33 ; 3 dc.b 8 dc.b 0 dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? FUEL_EQ_KA_PE_DELAY_ADJUSTMENT:dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? FUEL_EQ_KE_PE_DELAY_COUNT:dc.w 0 ; DATA XREF: sub_3158C+CCr ; sub_32510+14r ; PE conditions must exists for this amount before PE is enabled. ; Seconds FUEL_EQ_KE_PE_DELAY_ENGINE_SPEED:dc.w $6E00 ; DATA XREF: sub_316EA+20Cr ; Engine speed threshold to bypass PE_Delay, when RPM is above threshold. ; RPM FUEL_EQ_KE_PE_DELAY_ENGINE_SPEED_RISE:dc.w $FA00 ; DATA XREF: sub_316EA:loc_31912r ; Engine speed delta threshold used with vehicle speed to bypass PE_Delay, when RPM is above threshold. ; RPM FUEL_EQ_KE_PE_DELAY_ENGINE_SPEED_RISE_MP:dc.w $7D00 ; DATA XREF: sub_316EA+234r ; Vehicle speed threshold used with Engine speed delta criteria to bypass PE_Delay, when MPH is above or equal to threshold. ; MPH FUEL_EQ_KE_PE_DELAY_TEMPERATURE_HIGH:dc.w $C1A ; DATA XREF: sub_316EA+204r ; Coolant temperature upper window to bypass PE_Delay, when coolant is above threshold. ; Degrees_C FUEL_EQ_KE_PE_DELAY_TEMPERATURE_LOW:dc.w $580 ; DATA XREF: sub_316EA+1FCr ; Coolant temperature lower window to bypass PE_Delay, when coolant is below threshold. ; Degrees_C FUEL_EQ_KE_PE_DELAY_THROTTLE_RISE:dc.w $1400 ; DATA XREF: sub_316EA+214r ; Throttle delta threshold used with vehicle speed to bypass PE_Delay, when throttle delta is >= threshold. ; Percent FUEL_EQ_KE_PE_DELAY_THROTTLE_RISE_MPH:dc.w 0 ; DATA XREF: sub_316EA+220r ; Vehicle speed threshold used with throttle delta to bypass PE_Delay, when MPH is below threshold. ; MPH FUEL_EQ_KE_PE_DELAY_VEHICLE_SPEED_DROP:dc.w 0 ; DATA XREF: sub_3158C+66r ; Vehicle speed delta threshold used to decrement PE_Delay, when MPH decrease >= threshold. ; MPH FUEL_EQ_KE_PE_DELAY_VEHICLE_SPEED_MPH:dc.w $7D00 ; DATA XREF: sub_3158C+74r ; Vehicle speed threshold used to decrement PE_Delay, when MPH is below threshold. ; MPH FUEL_EQ_KE_PE_DELAY_VEHICLE_SPEED_RISE:dc.w 0 ; DATA XREF: sub_3158C+5Cr ; Vehicle speed threshold used to decrement PE_Delay, when MPH increase >= threshold. ; MPH FUEL_EQ_KE_PE_DELAY_VEHICLE_SPEED_TPS:dc.w 0 ; DATA XREF: sub_3158C+80r ; Throttle position threshold used to decrement PE_Delay, when throttle is above threshold. ; Percent FUEL_EQ_KE_OPEN_LOOP_LEAN_LIMIT:dc.w $400 ; DATA XREF: sub_31AE2+202r ; Lower (lean) limit for final equivalence ration when in anidle condition. ; Equiv_Ratio_Type FUEL_EQ_KE_PP_CLT:dc.w $DFF ; DATA XREF: sub_3158C+102r ; Coolant temperature higher than this value will enable piston protection if other conditions are satisfied ; Degrees C FUEL_EQ_KE_PP_DELAY_TIME:dc.w $C80 ; DATA XREF: sub_3158C+13Ar ; OS1:0003257Er ... ; Delay time in seconds before entering piston protection mode. ; Seconds FUEL_EQ_KE_PP_EQ_RAMP_RATE:dc.w 8 ; DATA XREF: sub_31F5C+18r ; This determines the blending rate ; Seconds FUEL_EQ_KE_PP_EQ_STEPSIZE:dc.w $14 ; DATA XREF: sub_31F5C+40r ; This determines the amount of change to the current equivalence ratio at each ramp rate. ; Equiv Ratio FUEL_EQ_KE_PP_MAF:dc.w $FA00 ; DATA XREF: sub_3158C+10Er ; Airflow rate higher than this value will enable piston protection if other conditions are satisfied ; Grams/Second FUEL_EQ_KE_PP_RPM:dc.w $FA00 ; DATA XREF: sub_3158C+EAr ; Engine speed higher than this value will enable piston protection if other conditions are satisfied ; RPM FUEL_EQ_KE_PP_TPS:dc.w $1400 ; DATA XREF: sub_3158C+F6r ; Throttle position higher than this value will enable piston protection if other conditions are satisfied ; Percent FUEL_EQ_KE_LC_VEHICLE_SPEED_HYST_HIGH:dc.w $7FFF ; DATA XREF: sub_32324:loc_3233Cr ; When vehicle speed is above this value with other conditions satisfied, it will enable Lean Cruise mode. ; MPH FUEL_EQ_KE_LC_VEHICLE_SPEED_HYST_LOW:dc.w $7F00 ; DATA XREF: sub_32324+10r ; When vehicle speed is above this value with other conditions satisfied, it will enable Lean Cruise mode. ; MPH FUEL_EQ_KV_PISTON_PROTECTION_EQUIVALENCE:dc.w $500 ; DATA XREF: sub_31F5C:loc_31F8Er ; Equivalence ratio if piston protection is enabled. ; Equiv_Ratio_Type dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 FUEL_EQ_KV_POWER_ENRICHMENT_RPM_THRESHOL:dc.b 6 ; Engine speed threshold to enable PE, when RPM is above or equal to threshold. ; RPM dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 FUEL_EQ_KA_CRANK_EQUIVALENCE_RATIO:dc.b $3A ; : ; Fuel/Air equivalence ratio to use during crankfor gasoline. ; Equiv_Ratio_Type dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $22 ; " dc.b $33 ; 3 dc.b $1A dc.b $9A ; ? dc.b $14 dc.b $77 ; w dc.b 9 dc.b $5C ; \ dc.b 7 dc.b $33 ; 3 dc.b 4 dc.b $B7 ; ? dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $22 ; " dc.b $33 ; 3 dc.b $1A dc.b $9A ; ? dc.b $14 dc.b $77 ; w dc.b 9 dc.b $5C ; \ dc.b 7 dc.b $33 ; 3 dc.b 4 dc.b $B7 ; ? dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $21 ; ! dc.b $33 ; 3 dc.b $17 dc.b 0 dc.b $14 dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 6 dc.b $66 ; f dc.b 4 dc.b $9A ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $21 ; ! dc.b $33 ; 3 dc.b $17 dc.b 0 dc.b $14 dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 6 dc.b $66 ; f dc.b 4 dc.b $9A ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $21 ; ! dc.b $33 ; 3 dc.b $17 dc.b 0 dc.b $14 dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 6 dc.b $66 ; f dc.b 4 dc.b $9A ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $21 ; ! dc.b $33 ; 3 dc.b $17 dc.b 0 dc.b $14 dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 6 dc.b $66 ; f dc.b 4 dc.b $9A ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $21 ; ! dc.b $33 ; 3 dc.b $17 dc.b 0 dc.b $14 dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 6 dc.b $66 ; f dc.b 4 dc.b $9A ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $21 ; ! dc.b $33 ; 3 dc.b $17 dc.b 0 dc.b $14 dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 6 dc.b $66 ; f dc.b 4 dc.b $9A ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $21 ; ! dc.b $33 ; 3 dc.b $17 dc.b 0 dc.b $14 dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 6 dc.b $66 ; f dc.b 4 dc.b $9A ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $21 ; ! dc.b $33 ; 3 dc.b $17 dc.b 0 dc.b $14 dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 6 dc.b $66 ; f dc.b 4 dc.b $9A ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $21 ; ! dc.b $33 ; 3 dc.b $17 dc.b 0 dc.b $14 dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 6 dc.b $66 ; f dc.b 4 dc.b $9A ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $21 ; ! dc.b $33 ; 3 dc.b $17 dc.b 0 dc.b $14 dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 6 dc.b $66 ; f dc.b 4 dc.b $9A ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $21 ; ! dc.b $33 ; 3 dc.b $17 dc.b 0 dc.b $14 dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 6 dc.b $66 ; f dc.b 4 dc.b $9A ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $12 dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b 9 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $12 dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b 9 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $12 dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b 9 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $38 ; 8 dc.b 0 dc.b $12 dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b 9 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $36 ; 6 dc.b 0 dc.b $12 dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b 9 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 4 dc.b 0 dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $36 ; 6 dc.b 0 dc.b $12 dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b 9 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 4 dc.b 0 dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $36 ; 6 dc.b 0 dc.b $12 dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b 9 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 4 dc.b 0 dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $36 ; 6 dc.b 0 dc.b $12 dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b 9 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 4 dc.b 0 dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $36 ; 6 dc.b 0 dc.b $12 dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b 9 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 4 dc.b 0 dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $36 ; 6 dc.b 0 dc.b $12 dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b 9 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 4 dc.b 0 dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $3A ; : dc.b $CD ; ? dc.b $3A ; : dc.b $CD ; ? dc.b $36 ; 6 dc.b 0 dc.b $12 dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b 9 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 4 dc.b 0 dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $A dc.b $CD ; ? dc.b 6 dc.b $D7 ; ? dc.b 5 dc.b $52 ; R dc.b 4 dc.b $18 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $A dc.b $CD ; ? dc.b 6 dc.b $D7 ; ? dc.b 5 dc.b $52 ; R dc.b 4 dc.b $18 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $A dc.b $CD ; ? dc.b 6 dc.b $D7 ; ? dc.b 5 dc.b $52 ; R dc.b 4 dc.b $18 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $A dc.b $CD ; ? dc.b 6 dc.b $D7 ; ? dc.b 5 dc.b $52 ; R dc.b 4 dc.b $18 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $A dc.b $CD ; ? dc.b 6 dc.b $D7 ; ? dc.b 5 dc.b $52 ; R dc.b 4 dc.b $18 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $A dc.b $CD ; ? dc.b 6 dc.b $D7 ; ? dc.b 5 dc.b $52 ; R dc.b 4 dc.b $18 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $A dc.b $CD ; ? dc.b 6 dc.b $D7 ; ? dc.b 5 dc.b $52 ; R dc.b 4 dc.b $18 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $A dc.b $CD ; ? dc.b 6 dc.b $D7 ; ? dc.b 5 dc.b $52 ; R dc.b 4 dc.b $18 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 3 dc.b $BD ; ? dc.b 3 dc.b $67 ; g dc.b 3 dc.b 0 dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v dc.b 2 dc.b $76 ; v FUEL_EQ_KE_PE_EQ_STEPSIZE:dc.w $400 ; DATA XREF: sub_316EA+31Ar ; sub_316EA+36Ar ... ; Step size taken for ramp-in or ramp-out of the PE EQ offset ; Equiv_Ratio_Type FUEL_EQ_KE_PE_EQ_RAMP_IN_RATE:dc.w 1 ; DATA XREF: sub_316EA+362r ; Unit time taken before applying stepsize to ramp-out PE EQ offset ; Seconds FUEL_EQ_KE_PE_EQ_RAMP_OUT_RATE:dc.w 1 ; DATA XREF: sub_316EA+30Er ; sub_316EA+3B6r ; Unit time taken before applying stepsize to ramp-in PE EQ offset ; Seconds FUEL_EQ_KE_LC_EQ_STEP_SIZE:dc.w 0 ; DATA XREF: sub_32324+126r ; This is the step size in which ramping is done. ; Equiv_Ratio_Type FUEL_EQ_KE_LC_ENGINE_RUN_TIME:dc.b 0 ; DATA XREF: sub_32324+36r ; When engine run time is above this, with other conditions satisfied, it will enable Lean Cruise mode. ; Seconds dc.b 0 Constant16_B3635___Lean_Cruise_Off_Idle_Timer:dc.b 0 dc.b 0 FUEL_EQ_KE_LC_TIME_SINCE_IDLE:dc.w 0 ; DATA XREF: sub_32324+3Er ; When Time_Since_Last_Idle is above this with other conditions satisfied, it will enable Lean Cruise mode. ; Seconds FUEL_EQ_KV_LC_COOLANT_MULTIPLIER:dc.w 0 ; DATA XREF: sub_32324+A0r ; sub_32324+15Er ; Multiplier used to vary the amount of lean cruise effect during warmup. ; 0_to_1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_EQ_KE_ICAT_CAN_ACTIVATE_RTN:dc.b 0 ; DATA XREF: sub_32262+Er ; Determines if Return to Normal will function after an ICAT intrusive event. ; Boolean FUEL_EQ_KE_POSD_CAN_ACTIVATE_RTN:dc.b 0 ; DATA XREF: sub_32262+1Er ; Determines if Return to Normal will function after an POSD intrusive event. ; Boolean FUEL_EQ_KE_RETURN_TO_NORMAL_EQ_RATIO:dc.w $400 ; DATA XREF: sub_32262+4Er ; Equivalence ratio if Return to Normal is active. ; Equiv_Ratio_Type FUEL_EQ_KV_PO2_RETURN_TO_NORMAL_MAX_TIME:dc.w 0 ; DATA XREF: sub_32262:loc_322E2r ; Max amount time that the Retun to Normal feature will be allowed to be continuously active. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_IO_KE_BOUNDARY_OFFSET:dc.w $680 ; DATA XREF: sub_327CA+8r FUEL_IO_KE_ENG_PROTECTION_NORMAL_END_OF_:dc.w $58D ; DATA XREF: sub_32738+Ar ; Normal pulse end of injection location if engine protection is enabled, in number of lores periods after the boundary. ; Lores_Periods FUEL_IO_KE_ENG_PROTECTION_TRIM_END_OF_IN:dc.w $58D ; DATA XREF: sub_32738+66r ; Trim pulse end of injection location if engine protection is enabled, in number of lores periods after the boundary. ; Lores_Periods FUEL_IO_KV_NORMAL_END_OF_INJECTION_COOLA:dc.w $28D ; DATA XREF: sub_32738+40r dc.b 2 dc.b $8D ; ? dc.b 2 dc.b $8D ; ? dc.b 2 dc.b $8D ; ? dc.b 2 dc.b $8D ; ? dc.b 2 dc.b $8D ; ? dc.b 3 dc.b $8D ; ? dc.b 4 dc.b $8D ; ? dc.b 4 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? FUEL_IO_KV_TRIM_END_OF_INJECTION_COOLANT:dc.w $58D ; DATA XREF: sub_32738+7Er ; Defines the trim pulse end of injection location, based on coolant temperature, in number of lores periods after the boundary. ; dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $8D ; ? FUEL_IO_KE_MINIMUM_INJECTOR_OFF_TIME:dc.w $28 ; DATA XREF: sub_EF4+2r ; Minimum amount of time that an injector must remain off before turning on again. ; Milliseconds FUEL_IO_KV_INJECTOR_OFFSET_ADJUSTMENT:dc.w 0 ; DATA XREF: sub_F1C+46r ; This is the injector offset used to account for injector dynamics due vacuum effects on the trapped sac volume fuel. ; Milliseconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_IO_KA_INJECTOR_OFFSET:dc.b 2 ; DATA XREF: sub_F1C+34o dc.b $3E ; > dc.b 2 dc.b $40 ; @ dc.b 2 dc.b $43 ; C dc.b 2 dc.b $45 ; E dc.b 2 dc.b $48 ; H dc.b 2 dc.b $4C ; L dc.b 2 dc.b $50 ; P dc.b 2 dc.b $53 ; S dc.b 2 dc.b $57 ; W dc.b 2 dc.b $5A ; Z dc.b 2 dc.b $5D ; ] dc.b 2 dc.b $60 ; ` dc.b 2 dc.b $63 ; c dc.b 2 dc.b $68 ; h dc.b 2 dc.b $6C ; l dc.b 2 dc.b $70 ; p dc.b 2 dc.b $75 ; u dc.b 2 dc.b $3E ; > dc.b 2 dc.b $40 ; @ dc.b 2 dc.b $43 ; C dc.b 2 dc.b $45 ; E dc.b 2 dc.b $48 ; H dc.b 2 dc.b $4C ; L dc.b 2 dc.b $50 ; P dc.b 2 dc.b $53 ; S dc.b 2 dc.b $57 ; W dc.b 2 dc.b $5A ; Z dc.b 2 dc.b $5D ; ] dc.b 2 dc.b $60 ; ` dc.b 2 dc.b $63 ; c dc.b 2 dc.b $68 ; h dc.b 2 dc.b $6C ; l dc.b 2 dc.b $70 ; p dc.b 2 dc.b $75 ; u dc.b 2 dc.b $3E ; > dc.b 2 dc.b $40 ; @ dc.b 2 dc.b $43 ; C dc.b 2 dc.b $45 ; E dc.b 2 dc.b $48 ; H dc.b 2 dc.b $4C ; L dc.b 2 dc.b $50 ; P dc.b 2 dc.b $53 ; S dc.b 2 dc.b $57 ; W dc.b 2 dc.b $5A ; Z dc.b 2 dc.b $5D ; ] dc.b 2 dc.b $60 ; ` dc.b 2 dc.b $63 ; c dc.b 2 dc.b $68 ; h dc.b 2 dc.b $6C ; l dc.b 2 dc.b $70 ; p dc.b 2 dc.b $75 ; u dc.b 0 dc.b $F3 ; ? dc.b 0 dc.b $F5 ; ? dc.b 0 dc.b $F8 ; ? dc.b 0 dc.b $FA ; ? dc.b 0 dc.b $FC ; ? dc.b 0 dc.b $FF dc.b 1 dc.b 3 dc.b 1 dc.b 7 dc.b 1 dc.b $B dc.b 1 dc.b $E dc.b 1 dc.b $12 dc.b 1 dc.b $15 dc.b 1 dc.b $18 dc.b 1 dc.b $1C dc.b 1 dc.b $21 ; ! dc.b 1 dc.b $25 ; % dc.b 1 dc.b $2A ; * dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C4 ; ? dc.b 0 dc.b $C6 ; ? dc.b 0 dc.b $C7 ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $CB ; ? dc.b 0 dc.b $CE ; ? dc.b 0 dc.b $D0 ; ? dc.b 0 dc.b $D3 ; ? dc.b 0 dc.b $D5 ; ? dc.b 0 dc.b $D7 ; ? dc.b 0 dc.b $D9 ; ? dc.b 0 dc.b $DB ; ? dc.b 0 dc.b $DE ; ? dc.b 0 dc.b $E1 ; ? dc.b 0 dc.b $E3 ; ? dc.b 0 dc.b $E6 ; ? dc.b 0 dc.b $91 ; ? dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $93 ; ? dc.b 0 dc.b $94 ; ? dc.b 0 dc.b $95 ; ? dc.b 0 dc.b $97 ; ? dc.b 0 dc.b $98 ; ? dc.b 0 dc.b $99 ; ? dc.b 0 dc.b $9B ; ? dc.b 0 dc.b $9C ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9E ; ? dc.b 0 dc.b $9F ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A1 ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7C ; | dc.b 0 dc.b $7D ; } dc.b 0 dc.b $7E ; ~ dc.b 0 dc.b $7F ;  dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $81 ; ? dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $83 ; ? dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $85 ; ? dc.b 0 dc.b $86 ; ? dc.b 0 dc.b $87 ; ? dc.b 0 dc.b $88 ; ? dc.b 0 dc.b $88 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $64 ; d dc.b 0 dc.b $65 ; e dc.b 0 dc.b $66 ; f dc.b 0 dc.b $67 ; g dc.b 0 dc.b $68 ; h dc.b 0 dc.b $69 ; i dc.b 0 dc.b $6A ; j dc.b 0 dc.b $6A ; j dc.b 0 dc.b $6B ; k dc.b 0 dc.b $6C ; l dc.b 0 dc.b $6C ; l dc.b 0 dc.b $6D ; m dc.b 0 dc.b $6E ; n dc.b 0 dc.b $6E ; n dc.b 0 dc.b $6F ; o dc.b 0 dc.b $6F ; o dc.b 0 dc.b $70 ; p dc.b 0 dc.b $57 ; W dc.b 0 dc.b $58 ; X dc.b 0 dc.b $58 ; X dc.b 0 dc.b $59 ; Y dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5C ; \ dc.b 0 dc.b $5D ; ] dc.b 0 dc.b $5D ; ] dc.b 0 dc.b $5D ; ] dc.b 0 dc.b $5D ; ] dc.b 0 dc.b $5E ; ^ dc.b 0 dc.b $5E ; ^ dc.b 0 dc.b $5F ; _ dc.b 0 dc.b $5F ; _ dc.b 0 dc.b $5F ; _ dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4B ; K dc.b 0 dc.b $4B ; K dc.b 0 dc.b $4C ; L dc.b 0 dc.b $4C ; L dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $41 ; A dc.b 0 dc.b $42 ; B dc.b 0 dc.b $42 ; B dc.b 0 dc.b $42 ; B dc.b 0 dc.b $43 ; C dc.b 0 dc.b $43 ; C dc.b 0 dc.b $44 ; D dc.b 0 dc.b $44 ; D dc.b 0 dc.b $45 ; E dc.b 0 dc.b $45 ; E dc.b 0 dc.b $45 ; E dc.b 0 dc.b $45 ; E dc.b 0 dc.b $45 ; E dc.b 0 dc.b $46 ; F dc.b 0 dc.b $46 ; F dc.b 0 dc.b $46 ; F dc.b 0 dc.b $47 ; G dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $39 ; 9 dc.b 0 dc.b $39 ; 9 dc.b 0 dc.b $39 ; 9 dc.b 0 dc.b $39 ; 9 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $3A ; : dc.b 0 dc.b $3B ; ; dc.b 0 dc.b $3B ; ; dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $2A ; * dc.b 0 dc.b $2A ; * dc.b 0 dc.b $2A ; * dc.b 0 dc.b $2A ; * dc.b 0 dc.b $2A ; * dc.b 0 dc.b $2A ; * dc.b 0 dc.b $2A ; * dc.b 0 dc.b $2A ; * dc.b 0 dc.b $2B ; + dc.b 0 dc.b $2B ; + dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $23 ; # dc.b 0 dc.b $23 ; # dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $25 ; % dc.b 0 dc.b $25 ; % dc.b 0 dc.b $1E dc.b 0 dc.b $1E dc.b 0 dc.b $1F dc.b 0 dc.b $1F dc.b 0 dc.b $1F dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $1B dc.b 0 dc.b $1C dc.b 0 dc.b $1C dc.b 0 dc.b $1C dc.b 0 dc.b $1C dc.b 0 dc.b $1C dc.b 0 dc.b $1D dc.b 0 dc.b $1D dc.b 0 dc.b $1D dc.b 0 dc.b $1D dc.b 0 dc.b $1D dc.b 0 dc.b $1D dc.b 0 dc.b $1D dc.b 0 dc.b $1D dc.b 0 dc.b $1D dc.b 0 dc.b $1D dc.b 0 dc.b $1D dc.b 0 dc.b $17 dc.b 0 dc.b $19 dc.b 0 dc.b $19 dc.b 0 dc.b $19 dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $13 dc.b 0 dc.b $15 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $11 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $B dc.b 0 dc.b $C dc.b 0 dc.b $D dc.b 0 dc.b $D dc.b 0 dc.b $D dc.b 0 dc.b $D dc.b 0 dc.b $D dc.b 0 dc.b $D dc.b 0 dc.b $D dc.b 0 dc.b $D dc.b 0 dc.b $D dc.b 0 dc.b $D dc.b 0 dc.b $D dc.b 0 dc.b $D dc.b 0 dc.b $D dc.b 0 dc.b $D dc.b 0 dc.b $D dc.b 0 dc.b 8 dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b 6 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 4 dc.b 0 dc.b 5 dc.b 0 dc.b 6 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 2 dc.b 0 dc.b 3 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 FUEL_IO_KA_FIRST_CYL_TO_GET_SEQUENTIAL:dc.l unk_10203 dc.b 4 dc.b 5 dc.b 6 dc.b 7 dc.b 0 dc.b 1 dc.b 2 dc.b 3 dc.b 4 dc.b 5 dc.b 6 dc.b 7 dc.b 0 dc.b 1 dc.b 2 dc.b 3 dc.b 4 dc.b 5 dc.b 6 dc.b 7 dc.b 0 dc.b 1 dc.b 2 dc.b 3 dc.b 4 dc.b 5 dc.b 6 dc.b 7 FUEL_IO_KV_BANK_FOR_CYLINDER:dc.l unk_10001 ; This calibration associates each cylinder with a bank of the engine. ; Bank1|Bank2 dc.b 1 dc.b 0 dc.b 1 dc.b 0 FUEL_IO_KA_UPDATE_FUEL_CHANNELS:dc.b 1 ; Determines whether to update Fuel Pulse Width for the injector based on the current cylinder. ; TRUE|FALSE dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 FUEL_IO_KE_AIRBAG_ENG_SHUTDOWN_VEH_SPEED:dc.w 0 ; DATA XREF: sub_32F08+22r ; Threshold below which the vehicle is considered to stationary ; MPH FUEL_IO_KE_AIRBAG_ENG_SHUTDOWN_TIMER:dc.w 0 ; DATA XREF: sub_32F08+2Er ; Timer above which the vehicle is considered to have been longenough to allow the state of the airbag to shutdown the engine ; Seconds FUEL_IO_KE_DESOOT_COOLANT_THRESH:dc.w $DFF ; DATA XREF: sub_32678+18r ; sub_32678:loc_326BEr ; Coolant must be at least this temperature to enable Desoot mode. ; Degrees_C FUEL_IO_KE_DESOOT_COOLANT_THRESH_HYSTERE:dc.w 0 ; DATA XREF: sub_32678+4Cr ; Hysteresis required of coolant temperature to disable Desoot mode. ; Degrees_C FUEL_IO_KE_DESOOT_MAP_THRESH:dc.w 0 ; DATA XREF: sub_32678+Cr ; sub_32678:loc_326AEr ; MAP must be at least this calibration to enable Desoot mode. ; kPa FUEL_IO_KE_DESOOT_MAP_THRESH_HYSTERESIS:dc.w 0 ; DATA XREF: sub_32678+3Cr ; Hysteresis required of MAP to disable Desoot mode. ; kPa FUEL_IO_KE_DESOOT_LO_MAP_EXIT_THRESH:dc.w 0 ; DATA XREF: sub_32678+B2r ; If MAP falls below this calibration, disable Desoot mode immediately. ; kPa FUEL_IO_KE_DESOOT_DELAY_TIME:dc.b 0 ; DATA XREF: sub_32678:loc_32708r ; Conditions must exist for this amount of time for the Desoot mode to activate. ; Seconds FUEL_IO_KE_USE_CRANK_EOIT:dc.b 0 ; DATA XREF: sub_32738+1Ar ; Prevent Desoot mode from affecting the end of injection targets ; BOOLEAN FUEL_IO_KE_DESOOT_EOIT:dc.w $58D ; DATA XREF: sub_32738+28r ; EOIT to use when Desoot mode has been activated ; Lores_Periods FUEL_IO_KV_END_OF_INJECTION_CRANK_TARGET:dc.w 0 ; DATA XREF: sub_32738+5Ar dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_IO_KV_INJECTOR_TRIM_FACTOR:dc.b 8 ; Allows for scaling of the final injector pulse width for demonstration purposes. ; Scaler_0_to_2 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 FUEL_IO_KA_DESOOT_UPDATE_FUEL_CHANNELS:dc.b 1 ; Determines whether to update Fuel Pulse Width for the injector based on the current cylinder when DeSoot mode is active ; BOOLEAN dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 Constant8_???_Option_byte_for_defining_number_of_O2_heaters_the_PCM_controls:dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 FUEL_IO_KV_FIRST_FUEL_DELAY:dc.b 0 ; Number of Ref pulses after sync that must occur before sequentialfuel delivery to allow prime fuel to be used. ; SHORTCARD dc.b 0 dc.b 0 dc.b 0 FUEL_IO_KE_MINIMUM_TRIM_PULSE_WIDTH:dc.w $4E ; DATA XREF: sub_32A0C+1B2r ; ; FUEL_LO_KE_CANISTER_LIMIT:dc.w $F1 ; DATA XREF: sub_334F8+114r ; Used to determine if canister purge is active or inactive. ; Percent FUEL_LO_KE_RPM_HYSTERESIS:dc.w $200 ; DATA XREF: sub_334F8+8Ar ; sub_334F8:loc_335BAr ; Provides more stability when transitioning from one cell to another. ; RPM FUEL_LO_KE_MAP_HYSTERESIS:dc.w $66 ; DATA XREF: sub_334F8+10r ; sub_334F8:loc_33540r ; Provides more stability when transitioning from one cell to another. ; kPa FUEL_LO_KE_LONG_TERM_IDLE_THROTTLE_THRES:dc.w $3D ; DATA XREF: sub_32F54+3F6r ; sub_334F8+140r ... ; Throttle threshold used to determine idle condition. ; Percent FUEL_LO_KE_LONG_TERM_IDLE_VEH_SPEED_THRE:dc.w $180 ; DATA XREF: sub_32F54+402r ; sub_334F8+148r ... ; Vehicle speed threshold used to determine idle condition. ; MPH FUEL_LO_KV_RPM_BOUNDARY:dc.w $1200 ; DATA XREF: sub_334F8+A2r ; sub_334F8:loc_335AAr ... ; Boundary for cells based on engine speed. ; RPM word_E794: dc.w $1C00 ; DATA XREF: sub_334F8+92r ; sub_334F8+C8r ... word_E796: dc.w $2C00 ; DATA XREF: sub_334F8+DAr ; sub_334F8:loc_335E4r ... FUEL_LO_KV_MAP_BOUNDARY:dc.w $766 ; DATA XREF: sub_334F8+28r ; sub_334F8:loc_33530r ... ; Boundary for cells based on manifold pressure. ; kPa word_E79A: dc.w $B66 ; DATA XREF: sub_334F8+18r ; sub_334F8+4Er ... word_E79C: dc.w $F66 ; DATA XREF: sub_334F8+60r ; sub_334F8:loc_33566r ... FUEL_LO_KE_BLENDING_SELECTED:dc.b 1 ; DATA XREF: sub_334F8+238r ; sub_334F8+2D2r ; Allow blending if target is below the current long term correction. ; TRUE|FALSE dc.b $FF FUEL_LO_KE_BLENDING_TIMER:dc.w 3 ; DATA XREF: sub_334F8+24Ar ; Time between long term memory blends. ; Seconds Constant16_LTFT_Enleanment_Rate_Limit_Update_Rate__O2__2:dc.w 3 ; DATA XREF: sub_334F8+2E4r FUEL_LO_KE_LONG_TERM_DELTA:dc.w $3D ; DATA XREF: sub_334F8:loc_336B6r ; If cell value changes more than this, reset integrator to 1.0. ; NONE 0-2 FUEL_LO_KV_PLM_REDUCTION_FACTOR:dc.w $800 ; DATA XREF: sub_334F8:loc_33884r ; sub_334F8:loc_33900r ; Factor to reduce PLM by before applying to pulse width. ; NONE 0-1 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 7 dc.b $9A ; ? dc.b 6 dc.b $E1 ; ? dc.b 6 dc.b $52 ; R dc.b 5 dc.b $D7 ; ? dc.b 5 dc.b $71 ; q dc.b 5 dc.b $A dc.b 4 dc.b $B8 ; ? dc.b 4 dc.b $7B ; { dc.b 4 dc.b $3D ; = dc.b 4 dc.b 0 dc.b 3 dc.b $CD ; ? dc.b 3 dc.b $A0 ; ? dc.b 3 dc.b $75 ; u dc.b 3 dc.b $50 ; P dc.b 3 dc.b $2B ; + dc.b 3 dc.b $A dc.b 2 dc.b $EE ; ? unk_E7DC: dc.b 2 dc.b $D1 ; ? dc.b 2 dc.b $B8 ; ? dc.b 2 dc.b $A0 ; ? dc.b 2 dc.b $89 ; ? dc.b 2 dc.b $75 ; u dc.b 2 dc.b $60 ; ` FUEL_LO_KE_ADAPTIVE_LOW_COOLANT_LIMIT:dc.w $580 ; DATA XREF: sub_32F54+50r ; Minimum coolant temperature to allow long term cell update. ; Degrees_C FUEL_LO_KE_ADAPTIVE_HIGH_COOLANT_LIMIT:dc.w $DFF ; DATA XREF: sub_32F54+44r ; Maximum coolant temperature to allow long term cell update. ; Degrees_C FUEL_LO_KE_LONG_TERM_CORRECTION_ENABLED:dc.b 1 ; DATA XREF: sub_32F54+1B8r ; Indicates long term cell update is enabled. ; TRUE|FALSE dc.b $FF FUEL_LO_KE_UPDATE_THRESHOLD:dc.w $50 ; DATA XREF: sub_32F54+296r ; sub_32F54+36Ar ; Amount the integrator must be above or below 1.0 for an update to occur. ; NONE 0-2 FUEL_LO_KE_UPDATE_DELTA:dc.w $14 ; DATA XREF: sub_32F54+2B2r ; sub_32F54+3DCr ; Value of the long term update amount. ; NONE 0-2 FUEL_LO_KE_LONG_TERM_MINIMUM:dc.w $68F ; DATA XREF: sub_32F54:loc_332A8r ; Minimum long term correction. ; NONE 0-2 FUEL_LO_KE_LONG_TERM_IDLE_MAXIMUM:dc.w $A00 ; DATA XREF: sub_32F54+40Ar ; Maximum long term correction for idle purge cells. ; NONE 0-2 FUEL_LO_KE_LONG_TERM_IDLE_MINIMUM:dc.w $68F ; DATA XREF: sub_32F54+336r ; Minimum long term correction for idle purge cells. ; NONE 0-2 FUEL_LO_KE_LONG_TERM_MAXIMUM:dc.w $A00 ; DATA XREF: sub_32F54:loc_33366r ; Maximum long term correction. ; NONE 0-2 FUEL_LO_KE_LONG_TERM_UPDATE_RATE:dc.w $48 ; DATA XREF: sub_32F54:loc_33148r ; Time required for update condition to exist to allow Long Term Adaptive update. ; Seconds FUEL_LO_KE_PLM_INCREASE_DELTA:dc.w $14 ; DATA XREF: sub_32F54+39Cr ; Value to increase PLM by when learning up. ; NONE 0-2 FUEL_LO_KE_PLM_REDUCTION_DELTA:dc.w $14 ; DATA XREF: sub_32F54+2FCr ; Value to reduce PLM by when learning down. ; NONE 0-2 FUEL_LO_KE_ADAPTIVE_NON_PURGE_MAX_KAM_LI:dc.w $A00 ; DATA XREF: OS1:00033A62r ; Max BLM which can be learned in KAM for non-CCP cells ; NONE 0-2 FUEL_LO_KE_ADAPTIVE_PURGE_MAX_KAM_LIMIT:dc.w $8CD ; DATA XREF: OS1:00033AB4r ; Max BLM which can be learned in KAM for CCP cells ; NONE 0-2 FUEL_LO_KV_ADAPTIVE_MIN_KAM_LIMIT:dc.b 7 ; Minimum block learn modifier which can be learned in KAM. ; NONE 0-2 dc.b $D7 ; ? dc.b 7 dc.b $A2 ; ? dc.b 7 dc.b $E1 ; ? FUEL_LO_KV_PLM_UPDATE_OFFSET:dc.b 1 ; If the BLM for the cell falls more than this offset below the BLM in KAM for the cell, the PLM is decrease. ; NONE 0-2 dc.b $A dc.b 1 dc.b $A dc.b 1 dc.b $A dc.b 1 dc.b $A dc.b 1 dc.b $A dc.b 1 dc.b $A dc.b 1 dc.b $A dc.b 1 dc.b $A dc.b 1 dc.b $A dc.b 1 dc.b $A dc.b 1 dc.b $A dc.b 1 dc.b $A dc.b 1 dc.b $A dc.b 1 dc.b $A dc.b 1 dc.b $A dc.b 1 dc.b $A dc.b 0 dc.b $B8 ; ? dc.b 0 dc.b $B8 ; ? dc.b 0 dc.b $B8 ; ? dc.b 0 dc.b $B8 ; ? FUEL_LO_KE_NON_CCP_KAM_LOW_COOLANT_LIMIT:dc.w $200 ; DATA XREF: sub_32F54+466r ; Lower limit of coolant window to tranfer non-CCP BLM values to KAM. ; Degrees_C FUEL_LO_KE_NON_CCP_KAM_HIGH_COOLANT_LIMI:dc.w $DFF ; DATA XREF: sub_32F54+45Ar ; Upper limit of coolant window to tranfer non-CCP BLM values to KAM. ; Degrees_C FUEL_LO_KV_PLM_MINIMUM:dc.b 6 ; Minimum PLM correction. ; NONE 0-2 dc.b $8F ; ? dc.b 6 dc.b $8F ; ? FUEL_LO_KV_ADAPTIVE_LOW_MAP_LIMIT:dc.w $400 ; DATA XREF: sub_334E6+4r ; Mimimum manifold pressure to allow long term cell update. ; kPa dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 FUEL_O2_KE_POST_DERIVATIVE_TERM_FILTER:dc.b $4D ; DATA XREF: sub_344B6+20r ; sub_344B6+58r ; Time coefficient for first order lag filter. ; NONE 0-1 dc.b $FF FUEL_O2_KE_POST_PROPORTIONAL_IDLE_FACTOR:dc.w $800 ; DATA XREF: sub_3442A+70r ; Modifier to proportional offset in idle condition to reduce the aggressiveness of proportional term. ; Scaler 2 FUEL_O2_KE_LONG_TERM_IDLETHROTTLE_THRESH:dc.w $4D ; DATA XREF: sub_3442A+58r ; Throttle threshold used to determine idle condition. ; Percent FUEL_O2_KE_LONG_TERM_IDLE_VEH_SPD_THRESH:dc.w $180 ; DATA XREF: sub_3442A+64r ; Vehicle speed threshold used to determine idle condition. ; SHORTCARD FUEL_O2_KE_POST_OXYGEN_LEAN_READY:dc.w $2852 ; DATA XREF: sub_33CBE+1Ar ; Lower voltage threshold to determine when the oxygen sensor is ready. ; Millivolts FUEL_O2_KE_POST_OXYGEN_RICH_READY:dc.w $3F97 ; DATA XREF: sub_33CBE+12r ; Upper voltage threshold to determine when the oxygen sensor is ready. ; Millivolts FUEL_O2_KE_POST_OXYGEN_READY_COUNTER:dc.b $50 ; DATA XREF: sub_33CBE+32r ; Count number of samples outside the control limits to determine when the sensor hsa become ready. ; Counts FUEL_O2_KE_BANK_EXHAUST:dc.b 1 ; DATA XREF: sub_33D02:loc_33D5Ar ; sub_33EC8:loc_33EF4r ... ; Configuration of the exhaust system for the specific application. ; Value FUEL_O2_KE_POST_OXYGEN_INTEGRAL_COOLANT:dc.w $700 ; DATA XREF: sub_33D02+66r ; sub_33D02+F6r ; Threshold for coolant temperature to enable Integral Part of Post Oxygen Fuel Trim. ; Degrees_C FUEL_O2_KV_POST_OXYGEN_BANK1_INTEGRATOR:dc.b 0 ; Closed loop integrator enable criteria for post oxygen control. ; NONE 0-2 dc.b $C0 ; ? dc.b 0 dc.b $C0 ; ? dc.b 0 dc.b $C0 ; ? dc.b 0 dc.b $C0 ; ? dc.b 0 dc.b $C0 ; ? FUEL_O2_KV_POST_OXYGEN_BANK2_INTEGRATOR:dc.b 0 ; Closed loop integrator enable criteria for post oxygen control. ; NONE 0-2 dc.b $C0 ; ? dc.b 0 dc.b $C0 ; ? dc.b 0 dc.b $C0 ; ? dc.b 0 dc.b $C0 ; ? dc.b 0 dc.b $C0 ; ? FUEL_O2_KE_POST_O2_DECEL_UPPER_LIMIT:dc.w $1500 ; DATA XREF: sub_33E7E:loc_33E90r ; Post O2 mode is DECEL if closed loop mode is greater than 0 and less than or equal to this calibration. ; NONE 0-64 FUEL_O2_KE_POST_O2_CRUISE_UPPER_LIMIT:dc.w $2000 ; DATA XREF: sub_33E7E:loc_33EA0r FUEL_O2_KE_POST_O2_LIGHT_ACCEL_UPPER_LIM:dc.w $3000 ; DATA XREF: sub_33E7E:loc_33EB0r FUEL_O2_KE_POST_TIME_CONSTANT:dc.b $20 ; DATA XREF: sub_33EC8:loc_33EE0r ; Time coefficient for first order lag filter. ; NONE 0-1 dc.b $FF FUEL_O2_KV_POST_OXYGEN_INT_OFFSET_MAX:dc.l off_0+$24E ; Limit maximum value of Post_Oxygen_Integral_Offset. ; Millivolts dc.b $C dc.b $AC ; ? dc.b $D dc.b $3F ; ? dc.b $D dc.b $3F ; ? FUEL_O2_KV_POST_OXYGEN_INT_OFFSET_MIN:dc.l unk_FDB2 ; Limit minimum value of Post_Oxygen_Integral_Offset. ; Millivolts dc.b $F1 ; ? dc.b $9A ; ? dc.b $F1 ; ? dc.b $9A ; ? dc.b $F1 ; ? dc.b $9A ; ? FUEL_O2_KV_BANK1_POST_LEAN_THRESHOLD:dc.l unk_49BA ; Post Oxygen lower threshold. ; Millivolts dc.b $49 ; I dc.b $BA ; ? dc.b $4A ; J dc.b $4D ; M dc.b $4A ; J dc.b $E1 ; ? FUEL_O2_KV_BANK2_POST_LEAN_THRESHOLD:dc.l unk_49BA ; Post Oxygen lower threshold. ; Millivolts dc.b $49 ; I dc.b $BA ; ? dc.b $4A ; J dc.b $4D ; M dc.b $4A ; J dc.b $E1 ; ? FUEL_O2_KV_BANK1_POST_RICH_THRESHOLD:dc.b $7F ;  ; Post Oxygen upper threshold. ; Millivolts dc.b $FC ; ? dc.b $4C ; L dc.b $9B ; ? dc.b $4C ; L dc.b $9B ; ? dc.b $4D ; M dc.b $2F ; / dc.b $4D ; M dc.b $C2 ; ? FUEL_O2_KV_BANK2_POST_RICH_THRESHOLD:dc.b $7F ;  ; Post Oxygen upper threshold. ; Millivolts dc.b $FC ; ? dc.b $4C ; L dc.b $9B ; ? dc.b $4C ; L dc.b $9B ; ? dc.b $4D ; M dc.b $2F ; / dc.b $4D ; M dc.b $C2 ; ? FUEL_O2_KE_POST_OXYGEN_INTEGRATE:dc.w $80 ; DATA XREF: sub_33FC6+D2r ; sub_33FC6+148r ; Integration value for post Oxygen transitions. ; Millivolts FUEL_O2_KV_POST_OXYGEN_INTEGRAL_DELAY:dc.b 3 ; Delay time between execution of the post oxygen integral correction. ; Seconds dc.b 0 dc.b 1 dc.b $C0 ; ? dc.b 1 dc.b $60 ; ` dc.b 1 dc.b $60 ; ` dc.b 1 dc.b $60 ; ` FUEL_O2_KV_POST_DERIV_DISABLE_TIME:dc.b 0 ; Disable derivative offsets after starts for this amount of time. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_O2_KV_POST_DERIV_RAMP_IN_TIME:dc.b 0 ; Once enabled, ramp the derivative offsets to desired values by this time. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_O2_KV_POST_OXYGEN_DERIVATIVE_OFFSET:dc.b 0 ; Apply this additive offset as derivative term based on filtered PO2 signal. ; Millivolts dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_O2_KV_POST_O2_PROPORTIONAL_OFFSET:dc.b 1 ; Apply this additive offset as proportional term based on filtered PO2 signal. ; Millivolts dc.b $F5 ; ? dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $F5 ; ? dc.b 0 dc.b 0 dc.b $FE ; ? dc.b $B dc.b $FE ; ? dc.b $B dc.b $FE ; ? dc.b $B dc.b $FE ; ? dc.b $B dc.b $FE ; ? dc.b $B dc.b $FE ; ? dc.b $B dc.b $FE ; ? dc.b $B dc.b $FE ; ? dc.b $B dc.b $FE ; ? dc.b $B dc.b $FE ; ? dc.b $B dc.b $FE ; ? dc.b $B dc.b $FE ; ? dc.b $B FUEL_O2_KV_POST_PROP_DISABLE_TIME:dc.b $25 ; % ; Disable proportional offsets after starts for this amount of time. ; Seconds dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $22 ; " dc.b $60 ; ` dc.b $14 dc.b $50 ; P dc.b 6 dc.b $40 ; @ dc.b 3 dc.b $20 dc.b 3 dc.b $20 dc.b 3 dc.b $20 FUEL_O2_KV_POST_PROP_RAMP_IN_TIME:dc.b $25 ; % ; Once enabled, ramp the proportional offsets to desired values by this time. ; Seconds dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $22 ; " dc.b $60 ; ` dc.b $1C dc.b $20 dc.b $15 dc.b $E0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? FUEL_PL_KV_INJECTOR_SLOPE:dc.w $1D6 ; DATA XREF: sub_34694+8r ; Defines the slope of the injector versus on time. ; Grams/Sec dc.b 1 dc.b $D9 ; ? dc.b 1 dc.b $DC ; ? dc.b 1 dc.b $DF ; ? dc.b 1 dc.b $E2 ; ? dc.b 1 dc.b $E4 ; ? dc.b 1 dc.b $E7 ; ? dc.b 1 dc.b $EA ; ? dc.b 1 dc.b $ED ; ? dc.b 1 dc.b $F0 ; ? dc.b 1 dc.b $F3 ; ? dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $F8 ; ? dc.b 1 dc.b $FB ; ? dc.b 1 dc.b $FD ; ? dc.b 2 dc.b 0 dc.b 2 dc.b 3 FUEL_PL_KV_FLOW_RATE_PUMP_CORRECTION:dc.w $1000 ; DATA XREF: sub_34694:loc_346CEr ; Correction to injector flow rate based on fuel pump voltage, Ignition voltage. ; Mult0to8 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 FUEL_PL_KE_SHORT_PULSE_LIMIT:dc.w $102 ; DATA XREF: sub_34550+14r ; Pulses shorter than this will be increased by an amount KV_Short_pulse_Adjustment. ; Milliseconds FUEL_PL_KV_SHORT_PULSE_ADJUSTMENT:dc.w $2B ; DATA XREF: sub_34550:loc_34582r dc.b 0 dc.b $2B ; + dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $22 ; " dc.b 0 dc.b $1F dc.b 0 dc.b $1D dc.b 0 dc.b $1C dc.b 0 dc.b $1A dc.b 0 dc.b $18 dc.b 0 dc.b $16 dc.b 0 dc.b $15 dc.b 0 dc.b $13 dc.b 0 dc.b $12 dc.b 0 dc.b $10 dc.b 0 dc.b $F dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 3 dc.b 0 dc.b 3 dc.b 0 dc.b 3 dc.b 0 dc.b 3 dc.b 0 dc.b 3 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_PL_KV_MINIMUM_PULSE_WIDTH:dc.w $52 ; DATA XREF: sub_34550+Cr ; This is the minimum pulse width allowed. ; Milliseconds dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R FUEL_PL_KV_DEFAULT_PULSE_WIDTH:dc.w $52 ; DATA XREF: sub_34550+62r ; This is the default pulse width used when the pulse is less than the minimum. ; Milliseconds dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $47 ; G dc.b 0 dc.b $47 ; G dc.b 0 dc.b $47 ; G dc.b 0 dc.b $47 ; G dc.b 0 dc.b $47 ; G dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R FUEL_PL_KE_USE_INJ_SLOPE_MODIFIER:dc.b 0 ; DATA XREF: sub_34694+44r ; Determines if the Injector Slope will be modified for fuel flow. ; BOOLEAN dc.b $FF FUEL_PL_KV_INJ_SLOPE_FUEL_FLOW_MOD:dc.w $800 ; DATA XREF: sub_34694:loc_34780r ; The correction to injector flow based on fuel flow rate. ; Unitless dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 FUEL_SH_KE_CL_IDLE_THROTTLE_POSITION:dc.w $100 ; DATA XREF: sub_34B00+10r ; sub_34B00:loc_34B28r ; Throttle position must be less than this calibration for Cl_Idle to be TRUE. ; Percent FUEL_SH_KE_CL_IDLE_THROTTLE_HYSTERESIS:dc.w $14 ; DATA XREF: sub_34B00+16r ; Throttle position hysteresis for CL_Idle determination. ; Percent FUEL_SH_KE_CL_IDLE_VEHICLE_SPEED:dc.w $780 ; DATA XREF: sub_34B00+3Ar ; sub_34B00:loc_34B52r ; Vehicle Speed must be less than this for CL_Idle to be TRUE. ; MPH FUEL_SH_KE_CL_IDLE_VEHICLE_SPEED_HYSTERE:dc.w $80 ; DATA XREF: sub_34B00+40r ; Vehicle Speed hysteresis for CL_Idle determination. ; MPH FUEL_SH_KE_CL_LOW_RPM_RESET_COOLANT_TEMP:dc.w $FC00 ; DATA XREF: sub_34B00+9BCr ; Coolant must be warmer than this to enable or trigger 'Low RPM Closed Loop Reset'. ; Degrees_C FUEL_SH_KE_CL_LOW_RPM_RESET_ENABLE_OFFSE:dc.w $800 ; DATA XREF: sub_34B00+9D6r ; Engine speed must exceed 'desired idle speed' BY more than this to enable 'Low RPM Closed Loop Reset'. ; RPM FUEL_SH_KE_CL_LOW_RPM_RESET_INTEGRAL_TER:dc.w $800 ; DATA XREF: sub_34B00:loc_35504r FUEL_SH_KE_CL_LOW_RPM_RESET_TRIGGER_OFFS:dc.w $100 ; DATA XREF: sub_34B00+9EEr FUEL_SH_KV_CL_MODE:dc.l off_0+$400 ; DATA XREF: sub_34B00:loc_34B80r ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b $C dc.b 0 dc.b $1E dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $2C ; , dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 FUEL_SH_KV_INTEGRAL_DELAY_BASE_LEAN:dc.b 0 ; Base factor applied to the Integral_Delay_Base when both Slow and Fast O2 status are LEAN. ; Seconds dc.b $A0 ; ? dc.b 0 dc.b $2E ; . dc.b 0 dc.b $1C dc.b 0 dc.b $18 dc.b 0 dc.b $15 dc.b 0 dc.b $13 dc.b 0 dc.b $12 dc.b 0 dc.b $11 dc.b 0 dc.b $10 FUEL_SH_KV_INTEGRAL_DELAY_BASE_RICH:dc.b 0 ; Base factor applied to the Integral_Delay_Base when both Slow and Fast O2 status are RICH. ; Seconds dc.b $A0 ; ? dc.b 0 dc.b $2E ; . dc.b 0 dc.b $1C dc.b 0 dc.b $18 dc.b 0 dc.b $15 dc.b 0 dc.b $13 dc.b 0 dc.b $12 dc.b 0 dc.b $11 dc.b 0 dc.b $10 FUEL_SH_KV_INTEGRAL_DELAY_GAIN_LEAN:dc.b 8 ; Gain factor applied to the Integral_Delay_Base when both Slow and Fast O2 status are LEAN. ; NONE 0-2 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 6 dc.b 0 dc.b 5 dc.b $52 ; R dc.b 4 dc.b $CD ; ? dc.b 4 dc.b $7B ; { dc.b 4 dc.b $29 ; ) dc.b 4 dc.b 0 FUEL_SH_KV_INTEGRAL_DELAY_GAIN_RICH:dc.b 8 ; Gain factor applied to the Integral_Delay_Base when both Slow and Fast O2 status are RICH. ; NONE 0-2 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 7 dc.b $33 ; 3 dc.b 6 dc.b 0 dc.b 5 dc.b $52 ; R dc.b 4 dc.b $CD ; ? dc.b 4 dc.b $7B ; { dc.b 4 dc.b $29 ; ) dc.b 4 dc.b 0 FUEL_SH_KE_INTEGRAL_TERM_ADJUSTMENT_IDLE:dc.w $A ; DATA XREF: sub_34B00+718r ; sub_34B00+8E0r ; Magnitude of adjustments to integral term under idle conditions. ; NONE 0-2 FUEL_SH_KE_INTEGRAL_TERM_MINIMUM:dc.w $59A ; DATA XREF: sub_34B00+788r ; sub_34B00+956r ; The minimum integrator factor value allowed in closed loopmode. ; NONE 0-2 FUEL_SH_KE_INTEGRAL_TERM_MINIMUM_AF_CL:dc.w $59A ; DATA XREF: sub_34B00:loc_35290r ; sub_34B00:loc_3545Er ; The minimum integrator factor value allowed in Air FuelClosed Loop mode. ; NONE 0-2 FUEL_SH_KE_INTEGRAL_TERM_MAXIMUM:dc.w $C00 ; DATA XREF: sub_34B00+7C0r ; sub_34B00+992r ; The maximum allowed integrator value. ; NONE 0-2 FUEL_SH_KV_INTEGRAL_TERM_ADJUSTMENT_LEAN:dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 FUEL_SH_KV_INTEGRAL_TERM_ADJUSTMENT_RICH:dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 FUEL_SH_KE_O2_AFTER_START_THRESHOLD_OFF:dc.w 0 ; DATA XREF: sub_34B00+142r ; sub_34B00+1FCr ; Offset added to O2 Rich Lean threshold. For Holden Vehicle only. ; Millivolts FUEL_SH_KE_O2_COLD_TEMPERATURE:dc.w $FC00 ; DATA XREF: sub_34B00+136r ; sub_34B00+1F0r FUEL_SH_KE_O2_COLD_TIME:dc.w 0 ; DATA XREF: sub_34B00+12Cr ; sub_34B00+1E6r ; The offset is added to the Rich Lean threshold as long as Engine run time is less this. Used for Holden vehicles only. ; Seconds FUEL_SH_KV_O2_RICH_LEAN_THRESHOLD:dc.w $33D7 ; DATA XREF: sub_34B00+92r ; Oxygen sensor voltage level for rich/lean decision ; MilliVolts dc.b $33 ; 3 dc.b $D7 ; ? dc.b $33 ; 3 dc.b $D7 ; ? dc.b $33 ; 3 dc.b $D7 ; ? dc.b $33 ; 3 dc.b $D7 ; ? dc.b $34 ; 4 dc.b $FE ; ? dc.b $36 ; 6 dc.b $24 ; $ dc.b $37 ; 7 dc.b $4B ; K dc.b $37 ; 7 dc.b $4B ; K word_EC0A: dc.w $33D7 ; DATA XREF: sub_34B00+162r dc.b $33 ; 3 dc.b $D7 ; ? dc.b $33 ; 3 dc.b $D7 ; ? dc.b $33 ; 3 dc.b $D7 ; ? dc.b $33 ; 3 dc.b $D7 ; ? dc.b $34 ; 4 dc.b $FE ; ? dc.b $36 ; 6 dc.b $24 ; $ dc.b $37 ; 7 dc.b $4B ; K dc.b $37 ; 7 dc.b $4B ; K FUEL_SH_KV_O2_OFF_RICH_LEAN_THRESHOLD:dc.b $33 ; 3 dc.b $D7 ; ? dc.b $33 ; 3 dc.b $D7 ; ? dc.b $33 ; 3 dc.b $D7 ; ? dc.b $33 ; 3 dc.b $D7 ; ? dc.b $33 ; 3 dc.b $D7 ; ? dc.b $34 ; 4 dc.b $FE ; ? dc.b $36 ; 6 dc.b $24 ; $ dc.b $37 ; 7 dc.b $4B ; K dc.b $37 ; 7 dc.b $4B ; K dc.b $33 ; 3 dc.b $D7 ; ? dc.b $33 ; 3 dc.b $D7 ; ? dc.b $33 ; 3 dc.b $D7 ; ? dc.b $33 ; 3 dc.b $D7 ; ? dc.b $33 ; 3 dc.b $D7 ; ? dc.b $34 ; 4 dc.b $FE ; ? dc.b $36 ; 6 dc.b $24 ; $ dc.b $37 ; 7 dc.b $4B ; K dc.b $37 ; 7 dc.b $4B ; K FUEL_SH_KE_PROPORTIONAL_TERM_IDLE_ENABLE:dc.b 1 ; DATA XREF: sub_34B00+3CAr ; Use specially formed idle proportional term at idle. ; TRUE_FALSE dc.b $FF FUEL_SH_KV_PROPORTIONAL_TERM_IDLE_BASE:dc.w $14 ; DATA XREF: sub_34B00:loc_34EE6r ; sub_34B00:loc_3500Cr ; Proportional term base for each bank under idle conditions ; NONE 0-2 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 FUEL_SH_KV_PROPORTIONAL_TERM_IDLE_GAIN:dc.w $800 ; DATA XREF: sub_34B00:loc_34F14r ; sub_34B00:loc_3503Er ; Gain factor applied to proportional term base for each bank under idle conditions ; NONE 0-2 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 9 dc.b $E8 ; ? dc.b $C dc.b 0 dc.b $D dc.b $C0 ; ? dc.b $F dc.b $60 ; ` dc.b $10 dc.b 0 dc.b $10 dc.b 0 FUEL_SH_KV_PROP_TERM_NORMAL_BASE_LEAN:dc.b 0 ; Base size of proportional term under normal (non-idle) conditions when Fast O2 Status is LEAN. ; NONE 0-2 dc.b $1A dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $10 FUEL_SH_KV_PROP_TERM_NORMAL_BASE_RICH:dc.b 0 ; Base size of proportional term under normal (non-idle) conditions when Fast O2 Status is RICH. ; NONE 0-2 dc.b $1A dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $10 FUEL_SH_KV_PROP_TERM_NORMAL_GAIN_LEAN:dc.b 8 ; Gain factor applied to proportional term under normal (non-idle) conditions when Fast O2 Status is LEAN. ; NONE 0-2 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $F8 ; ? dc.b $A dc.b $90 ; ? dc.b $C dc.b $D0 ; ? dc.b $F dc.b $60 ; ` dc.b $10 dc.b 0 dc.b $10 dc.b 0 FUEL_SH_KV_PROP_TERM_NORMAL_GAIN_RICH:dc.b 8 ; Gain factor applied to proportional term under normal (non-idle) conditions when Fast O2 Status is RICH. ; NONE 0-2 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b $F8 ; ? dc.b $A dc.b $90 ; ? dc.b $C dc.b $D0 ; ? dc.b $F dc.b $60 ; ` dc.b $10 dc.b 0 dc.b $10 dc.b 0 FUEL_SH_KE_PROPORTIONAL_TERM_AIRFUEL_GAI:dc.w $800 ; DATA XREF: sub_34B00+4C0r ; sub_34B00+5D2r ; Gain applied to proportional term when in Airfuel_Closedloop. ; NONE 0-2 FUEL_SH_KV_SLOW_O2_FILTER:dc.b 3 ; DATA XREF: sub_34B00+2AAr ; Filter constant for slow O2 voltage (long term mixture estimate for each bank (1 = Left; 2 = Right) ; Seconds dc.b 4 dc.b 6 dc.b 7 dc.b 9 dc.b $B dc.b $E dc.b $E dc.b $E dc.b $FF byte_ECD2: dc.b 3 ; DATA XREF: sub_34B00+33Ar dc.b 4 dc.b 6 dc.b 7 dc.b 9 dc.b $B dc.b $E dc.b $E dc.b $E dc.b $FF FUEL_SH_KV_SLOW_O2_FILTER_FOR_CCP:dc.b 3 ; DATA XREF: sub_34B00+2CCr ; Filter constant for slow O2 voltage (long term mixture estimatefor each bank (1 = Left; 2 = Right). Only used for CCP. ; Seconds dc.b 4 dc.b 6 dc.b 7 dc.b 9 dc.b $B dc.b $E dc.b $E dc.b $E dc.b $FF byte_ECE6: dc.b 3 ; DATA XREF: sub_34B00+356r dc.b 4 dc.b 6 dc.b 7 dc.b 9 dc.b $B dc.b $E dc.b $E dc.b $E dc.b $FF FUEL_SH_KE_O2_MIN_RICH_LEAN_THRESHOLD:dc.w $228F ; DATA XREF: sub_34B00:loc_34C0Er ; sub_34B00:loc_34CD0r ; O2 Rich Lean Threshold is min limited to this value after all the offset are added. ; Miilivots FUEL_SH_KE_O2_MAX_RICH_LEAN_THRESHOLD:dc.w $4AE1 ; DATA XREF: sub_34B00:loc_34BFCr ; O2 Rich Lean Threshold is max limited to this value after all the offset are added. ; Miilivots FUEL_SH_KE_O2_R_L_COLD_OFFSET_COOLANT:dc.w $FC00 ; DATA XREF: sub_34B00+D0r ; sub_34B00+198r ; Offset added to O2 Rich Lean threshold when Coolant Temperature is less than this and engine run time is below a Cal. ; Degrees C FUEL_SH_KE_O2_R_L_COLD_OFFSET_TIME:dc.w 0 ; DATA XREF: sub_34B00+C2r ; Offset added to O2 Rich Lean threshold when engine run time is less than this and coolant is below a Cal. ; Seconds FUEL_SH_KE_O2_RICH_LEAN_COLD_OFFSET:dc.w 0 ; DATA XREF: sub_34B00+DCr ; sub_34B00+1A4r FUEL_SH_KE_TPS_LAUNCH_TPS_THRESH:dc.w 0 ; DATA XREF: sub_34B00+A36r ; Threshold for determining closed TPS for launch integrator reset. ; Percent FUEL_SH_KE_TPS_LAUNCH_MPH_THRESH:dc.w 0 ; DATA XREF: sub_34B00+A52r ; Vehicle speed below which a launch condition will be allowed. ; MPH FUEL_SH_KE_TPS_LAUNCH_INT_THRESH:dc.w 0 ; DATA XREF: sub_34B00+B0Er ; sub_34B00+C02r ; Fuel integrator value below which integrators can reset on a launch condition. ; Unitless FUEL_SH_KV_CL_MINIMUM_MANIFOLD_PRESSURE:dc.w $400 ; DATA XREF: sub_3576A+4r dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 FUEL_ST_KE_OXYGEN_LOWER_READY_VOLTAGE:dc.w $2852 ; DATA XREF: sub_3593C+48r ; sub_3593C:loc_359BCr ... ; Lower voltage threshold in which the oxygen sensor voltage must fall below before indicating oxygen sensor ready. ; Millivolts FUEL_ST_KE_OXYGEN_UPPER_READY_VOLTAGE:dc.w $3F5C ; DATA XREF: sub_3593C+50r ; sub_3593C+88r ... ; Upper voltage threshold in which the oxygen sensor voltage must go above before indicating oxygen sensor ready. ; Millivolts FUEL_ST_KE_OXYGEN_NOT_READY_TIME:dc.w $640 ; DATA XREF: sub_3593C+6Er ; sub_3593C+E2r FUEL_ST_KE_COLD_CLOSED_LOOP_TEMPERATURE:dc.w $F3 ; DATA XREF: sub_3593Cr ; Startup coolant temperature below which the cold wait timer, KE_Cold_Wait_Time, is used. ; Degrees_C FUEL_ST_KE_HOT_CLOSED_LOOP_TEMPERATURE:dc.w $700 ; DATA XREF: sub_3593C+1Ar ; Startup coolant temperature above which the hot wait timer, KE_Hot_Wait_Time, is used. ; Degrees_C FUEL_ST_KE_COLD_WAIT_TIME:dc.w $76C0 ; DATA XREF: sub_3593C+Er ; Engine run time before closed loop is allowed when startup coolant is below KE_Cold_Closed_Loop_Temperature. ; Seconds FUEL_ST_KE_WARM_WAIT_TIME:dc.w $2BC0 ; DATA XREF: sub_3593C+22r FUEL_ST_KE_HOT_WAIT_TIME:dc.w $A00 ; DATA XREF: sub_3593C:loc_35966r ; Engine run time before closed loop is allowed when startup coolant is above KE_Hot_Closed_Loop_Temperature. ; Seconds FUEL_ST_KV_CLOSED_LOOP_COOLANT_TEMPERATU:dc.w $600 ; DATA XREF: sub_3580C+F2r ; sub_35A7A+32r ; Defines the coolant temperature above which closed loop fuel is allowed. ; Degrees_C dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 3 dc.b $5A ; Z dc.b 3 dc.b $5A ; Z dc.b 3 dc.b $5A ; Z dc.b 3 dc.b $5A ; Z dc.b 3 dc.b $5A ; Z dc.b 3 dc.b $5A ; Z dc.b 3 dc.b $5A ; Z dc.b 3 dc.b $5A ; Z dc.b 3 dc.b $5A ; Z dc.b 3 dc.b $5A ; Z dc.b 3 dc.b $5A ; Z dc.b 3 dc.b $5A ; Z dc.b 3 dc.b $5A ; Z dc.b 3 dc.b $5A ; Z dc.b 3 dc.b $5A ; Z dc.b 3 dc.b $5A ; Z FUEL_ST_KE_USE_AIRFUEL_CLOSED_LOOP_STATE:dc.b 0 ; DATA XREF: sub_3580C+100r FUEL_ST_KE_O2_READY_COUNTER_THRESHOLD:dc.b $A ; DATA XREF: sub_3593C+A0r ; sub_3593C+114r ; Number of O2 reads that must fall outside not ready window for the O2 sensor to be ready. ; Counter FUEL_ST_KE_OPEN_LOOP_FOR_MISFIRE:dc.b 0 ; DATA XREF: sub_3580C+6Ar ; sub_3591C:loc_35934r ; If this calibration is set TRUE, any Misfire faults will force Afterstart mode and reset LTM Fuel Cells. ; TRUE | FALSE dc.b $FF IAC_AIRFLOW_KE_IDLE_AREA_SCALAR:dc.w $687 ; DATA XREF: sub_35CFCr ; sub_35D1C+270r ... ; Conversion factor to convert to percent WOT from an effective throttle area in millimeters squared. ; Percent_Per_mm_Squared IAC_AIRFLOW_KE_THROTTLE_CRACKER_DISABLE_THRE:dc.w $80 ; DATA XREF: sub_36764+1Er ; DecideIdleMode+18Cr ; Vehicle speed must be <= to this calibration to disable the extended throttle cracker function. ; MPH IAC_AIRFLOW_KE_THROTTLE_CRACKER_ENABLE_THRES:dc.w $100 ; DATA XREF: sub_36764+2Cr ; DecideIdleMode+130r ... ; Vehicle speed must be >= to this calibration to enable the extended throttle cracker function. ; MPH IAC_AIRFLOW_KE_AC_OFFSET_FILTER_CONSTANT:dc.w $148 ; DATA XREF: sub_37912+3Ar ; Filter coefficient for first order lag filter. ; Filt_Coeff IAC_AIRFLOW_KE_CHOKE_FLOW_TIME:dc.w $50 ; DATA XREF: sub_35D1C+EAr ; Calibration used before engine is running to generate desired effective area based on choke flow pressure ratio. ; Seconds IAC_AIRFLOW_KE_COOLING_FAN_CORRECTION:dc.w $CD ; DATA XREF: sub_366BE:loc_366D4r ; Default value of airflow required to compensate for the parasitic load from a single cooling fan. ; GPS IAC_AIRFLOW_KE_COOLING_FANS_CORRECTION:dc.w $19A ; DATA XREF: sub_366BE+Cr ; Default value of airflow required to compensate for the parasitic load from multiple cooling fans. ; GPS IAC_AIRFLOW_KE_DFCO_ENTRANCE_HOLD_TIME:dc.w 0 ; DATA XREF: sub_36066+BCr ; The amount of time to hold decel fuel cutoff airflow before decaying it away. ; Seconds IAC_AIRFLOW_KE_DFCO_ENTRY_RAMP_RATE:dc.w 0 ; DATA XREF: sub_36066:loc_360DEr ; sub_36066+9Cr ; This calibration increases or decreases the decel fuel cutoff air value when decel fuel cutoff is entered. ; GPS IAC_AIRFLOW_KE_DFCO_EXIT_RAMP_RATE:dc.w 0 ; DATA XREF: sub_36066+174r ; sub_36066:loc_36206r ; This calibration increases or decreases the decel fuel cutoff air value when decel fuel cutoff is exited. ; GPS IAC_AIRFLOW_KE_DRIVE_CORRECTION_HIGH:dc.w $C00 ; DATA XREF: sub_379B4:loc_379EEr ; Upper limit allowed for adaptively learned correction to the airflow for the engine when the transmission is in gear. ; GPS IAC_AIRFLOW_KE_DRIVE_CORRECTION_LOW:dc.w $F400 ; DATA XREF: sub_379B4+2Cr ; Lower limit allowed for adaptively learned correction to the airflow for the engine when the transmission is in gear. ; GPS IAC_AIRFLOW_KE_DRIVE_FILTER_CONSTANT:dc.w $148 ; DATA XREF: sub_379B4+1Er ; Filter coefficient for first order lag filter for filtering Learned_Airflow_Drive. Activation rate: 25 ms. ; Filt_Coeff IAC_AIRFLOW_KE_FAN_INHIBIT_REGULATOR_TIME:dc.w $50 ; DATA XREF: sub_3622E+76r ; The constant speed regulator will be inhibited for this period of time when the Fan1 or Fan2 load has been applied or released. ; Seconds IAC_AIRFLOW_KE_HIGH_TO_LOW_PRESSURE_TIME:dc.w 0 ; DATA XREF: sub_3622E:loc_36396r IAC_AIRFLOW_KE_IDLE_TO_OFFIDLE_TIME:dc.w $C80 ; DATA XREF: sub_36AAA+A4r ; Calibration to enable reset of Breakaway_Friction_Airflow if the engine running time equals this value. ; Seconds IAC_AIRFLOW_KE_LEARNED_AC_AIRFLOW_OFFSET_DR:dc.w 0 ; DATA XREF: sub_378D2+6r ; Default value of AC_Airflow_Learned_Offset_DR. ; GPS IAC_AIRFLOW_KE_LEARNED_AC_AIRFLOW_OFFSET_PN:dc.w 0 ; DATA XREF: sub_378D2+Er ; Default value of AC_Airflow_Learned_Offset_PN. ; GPS IAC_AIRFLOW_KE_AC_OFFSET_LOW_DR:dc.w 0 ; DATA XREF: sub_37912+4Cr ; Lower limit allowed for adaptively learned correctionto the AC airflow offset while in a drive gear or a manual. ; GPS IAC_AIRFLOW_KE_AC_OFFSET_HIGH_DR:dc.w $200 ; DATA XREF: sub_37912:loc_3796Cr ; Upper limit allowed for adaptively learned correctionto the AC airflow offset while in a drive gear or a manual. ; GPS IAC_AIRFLOW_KE_AC_OFFSET_LOW_PN:dc.w 0 ; DATA XREF: sub_37912:loc_3797Cr ; Lower limit allowed for adaptively learned correctionto the AC airflow offset while in park or neutralin an automatic. ; GPS IAC_AIRFLOW_KE_AC_OFFSET_HIGH_PN:dc.l off_0+$200 ; DATA XREF: sub_37912:loc_3798Ar ; sub_378D2+16r ; Upper limit allowed for adaptively learned correctionto the AC airflow offset while in park or neutralin an automatic. ; GPS IAC_AIRFLOW_KE_LEARNED_AIRFLOW_PARK_NEUTRAL:dc.w 0 ; DATA XREF: sub_378D2+1Er ; Default value of Learned_Airflow_Park_Neutral. ; GPS IAC_AIRFLOW_KE_LOW_TO_HIGH_PRESSURE_TIME:dc.w 0 ; DATA XREF: sub_3622E+15Ar IAC_AIRFLOW_KE_MAP_AD_FAIL_THRESHOLD:dc.b $F0 ; DATA XREF: sub_35D1C+D0r ; Calibration used to determine the closed throttle maximum AD MAP. ; A/D Counts dc.b $FF IAC_AIRFLOW_KE_MAP_FOR_IAC_RESET:dc.w $600 ; DATA XREF: sub_35D1C+B0r ; Calibration used to control IAC motor park position since MAP goes to baro on engine shut down. ; kPa IAC_AIRFLOW_KE_MAX_DESIRED_IDLE_EFF_AREA:dc.w $A80 ; DATA XREF: sub_35CC0:loc_35CE2r ; sub_35CC0+2Ar ... IAC_AIRFLOW_KE_PARK_NEUTRAL_CORRECTION_HIGH:dc.w 0 ; DATA XREF: sub_37A02:loc_37A3Cr ; Upper limit allowed for adaptively learned correction to the airflow for the engine when the transmission is not in gear. ; GPS IAC_AIRFLOW_KE_PARK_NEUTRAL_CORRECTION_LOW:dc.w 0 ; DATA XREF: sub_37A02+2Cr ; Lower limit allowed for adaptively learned correction to the airflow for the engine when the transmission is not in gear. ; GPS IAC_AIRFLOW_KE_PARK_NEUTRAL_FILTER_CONSTANT:dc.w 0 ; DATA XREF: sub_37A02+1Er ; Filter coefficient for first order lag filter. Activation rate: 25 ms. ; Filt_Coeff IAC_AIRFLOW_KE_OFFIDLE_SCALAR:dc.w $7D0 ; DATA XREF: sub_36AAA+D2r IAC_AIRFLOW_KE_PERCENT_MAF_DEVIATION_FAIL_TH:dc.w $A00 ; DATA XREF: sub_35D1C+130r IAC_AIRFLOW_KV_RAMP_AC_AIRFLOW_IN:dc.b 4 ; Calibration to ramp the airflow to the required operating point...F(AC Torque Adjusted). ; GPS dc.b 0 dc.b 6 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b $C dc.b 0 dc.b $10 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 IAC_AIRFLOW_KV_RAMP_AC_AIRFLOW_OUT:dc.b 0 ; Calibration to ramp the airflow to zero....F(AC Torque Adjusted). ; GPS dc.b $29 ; ) dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = IAC_AIRFLOW_KE_START_UP_DECAY_INITIAL:dc.w $333 ; DATA XREF: sub_36AAA+54r ; sub_36AAA+80r ; Calibration defining the delta airflow increment used to decay the start up airflow value ; GPS IAC_AIRFLOW_KE_THROTTLE_FOLLOWER_TPS_HYSTERE:dc.w $33 ; DATA XREF: sub_36BBA:loc_36BECr ; sub_36BBA+5Er ... IAC_AIRFLOW_KV_AUTO_TRANS_MAN_DWNSHFT_AIR:dc.b 0 ; Amount of airflow necessary to reduce energy differential betweenthe engine and the transmission during a manual downshift ; GPS_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_CAT_LIGHTOFF_SPARK_AIRFLOW:dc.l off_0+$66 ; Amount of airflow necessary to replace torque lost due tospecific amounts of catalyst lightoff spark retard ; GPS dc.b 0 dc.b $CD ; ? dc.b 1 dc.b $33 ; 3 dc.b 2 dc.b $66 ; f dc.b 4 dc.b 0 dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $9A ; ? IAC_AIRFLOW_KV_RPM_FOLLOWER_AIRFLOW:dc.w $400 ; DATA XREF: sub_36BBA+120r ; Used to increasethe RPM follower airflow value based on engine speed ; GPS dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 IAC_AIRFLOW_KV_BREAKAWAY_AIRFLOW_VALUE:dc.w $66 ; DATA XREF: sub_36AAA+26r ; Incremental value used to decay Breakaway_Friction_Airflow. ; GPS dc.b 0 dc.b $66 ; f dc.b 0 dc.b $52 ; R dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $3D ; = dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 IAC_AIRFLOW_KV_BREAKAWAY_FRICTION_AIRFLOW:dc.b $22 ; " ; Calibration defining breakaway friction airflow. ; GPS dc.b 0 dc.b $1D dc.b $1F dc.b $19 dc.b $CD ; ? dc.b $18 dc.b $5C ; \ dc.b $16 dc.b $66 ; f dc.b $14 dc.b 0 dc.b $12 dc.b $CD ; ? dc.b $10 dc.b $EC ; ? dc.b $D dc.b $29 ; ) dc.b $A dc.b $E1 ; ? dc.b 9 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 IAC_AIRFLOW_KV_BREAKAWAY_FRICTION_DELAY:dc.l unk_40004 ; DATA XREF: sub_36AAA+10r ; Calibration defining delay before Breakaway_Friction_Airflow starts to decay. ; CAM Revs dc.l unk_40005 dc.l loc_50004+1 dc.l loc_50004+1 dc.l loc_50004+1 IAC_AIRFLOW_KV_DFCO_DECAY_FILTER_COEFFICIENT:dc.b 0 ; Filter coefficient used to decay decel fuel cutoff airflow when exiting decel fuel cutoff. ; Filt_Coeff dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_DFCO_ENTRANCE_AIRFLOW:dc.b 0 ; Target decel fuel cutoff airflow value when entering decel fuel cutoff. ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_DFCO_EXIT_AIRFLOW:dc.b 0 ; Target decel fuel cutoff airflow value when exiting decel fuel cutoff. ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_DRIVE_TO_PARK_NEUTRAL_DELAY:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_GEAR_TF_DELAY_TIME:dc.b 0 ; Delay time before throttle follower airflow starts to decay when the throttle is closing and the transmission is in gear. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_MOTOR_PARK_AIRFLOW:dc.b $84 ; ? ; Required airflow when the IAC motor is parked. ; GPS dc.b 0 dc.b $70 ; p dc.b 0 dc.b $5C ; \ dc.b 0 dc.b $54 ; T dc.b 0 dc.b $4C ; L dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 IAC_AIRFLOW_KV_NO_GEAR_TF_DECAY_AIRFLOW:dc.l loc_60006+2 ; Throttle follower decay airflow value when the transmission is not in gear. Activation rate: 12.5 ms. ; GPS dc.l unk_A0029 dc.b 0 dc.b $66 ; f dc.b 1 dc.b $33 ; 3 dc.b 3 dc.b $33 ; 3 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 IAC_AIRFLOW_KV_NO_GEAR_TF_DELAY_TIME:dc.b 0 ; Delay time before throttle follower airflow starts to decay when the throttle is closing and the transmission is not in gear. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_PARK_NEUTRAL_TO_DRIVE_DELAY:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_SQUARE_ROOT_AIR_TEMPERATURE:dc.b 7 ; Used to generate the square root of air temperature. ; Deg_K_Sqrt dc.b $A1 ; ? dc.b 7 dc.b $D3 ; ? dc.b 8 dc.b 4 dc.b 8 dc.b $33 ; 3 dc.b 8 dc.b $61 ; a dc.b 8 dc.b $8F ; ? dc.b 8 dc.b $BB ; ? dc.b 8 dc.b $E6 ; ? dc.b 9 dc.b $12 dc.b 9 dc.b $3C ; < dc.b 9 dc.b $65 ; e dc.b 9 dc.b $8D ; ? dc.b 9 dc.b $B6 ; ? dc.b 9 dc.b $DC ; ? dc.b $A dc.b 3 dc.b $A dc.b $29 ; ) IAC_AIRFLOW_KV_START_UP_AIRFLOW:dc.w $800 ; DATA XREF: sub_3774E+D2r ; Calibration defining start up airflow required. ; GPS dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_START_UP_DELAY_INITIAL:dc.w 0 ; DATA XREF: sub_36AAA+68r ; sub_3774E+F6r ; Calibration defining number of cam revolutions before Start_Up_Airflow_Initial is reduced. ; CAM Revs dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_THROTTLE_CRACKER_AF_DECAY:dc.b 0 ; Calibration provides the airflow decay when the transmission state is set to not in gear. ; GPS dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H IAC_AIRFLOW_KV_THROTTLE_CRACKER_AF_DECAY_DEL:dc.b 0 ; Calibration provides the airflow decay delay when the transmission state is set to not in gear. ; Seconds dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $48 ; H dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P IAC_AIRFLOW_KV_THROTTLE_FOLLOWER_AIRFLOW:dc.b 0 ; This calibration is used to increase the throttle follower airflow value based on the position of the throttle. ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $66 ; f dc.b 1 dc.b $33 ; 3 dc.b 2 dc.b 0 dc.b 2 dc.b $52 ; R dc.b 4 dc.b $CC ; ? dc.b 7 dc.b $F6 ; ? dc.b 7 dc.b $F6 ; ? dc.b 7 dc.b $F6 ; ? dc.b 7 dc.b $F6 ; ? dc.b 7 dc.b $F6 ; ? dc.b 7 dc.b $F6 ; ? dc.b 7 dc.b $F6 ; ? dc.b 7 dc.b $F6 ; ? IAC_AIRFLOW_KV_WARMED_UP_AIRFLOW_DRIVE:dc.b $54 ; T ; Airflow required by engine as coolant temperature is increasing and the transmission is in gear. ; GPS dc.b $66 ; f dc.b $4D ; M dc.b $9A ; ? dc.b $46 ; F dc.b 0 dc.b $3D ; = dc.b $33 ; 3 dc.b $38 ; 8 dc.b $CD ; ? dc.b $35 ; 5 dc.b $33 ; 3 dc.b $30 ; 0 dc.b $66 ; f dc.b $2C ; , dc.b 0 dc.b $25 ; % dc.b $9A ; ? dc.b $21 ; ! dc.b $D7 ; ? dc.b $1D dc.b $9A ; ? dc.b $1D dc.b $9A ; ? dc.b $1D dc.b $9A ; ? dc.b $1D dc.b $9A ; ? dc.b $1D dc.b $9A ; ? dc.b $1D dc.b $9A ; ? IAC_AIRFLOW_KV_WARMED_UP_AIRFLOW_PARK_NEUTRA:dc.b 0 ; Airflow required by engine as coolant temperature is increasing and the transmission is not in gear. ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KA_GEAR_TF_DECAY_AIRFLOW:dc.b 0 ; Throttle follower decay airflow value when the transmission is in gear. Activation rate: 12.5 ms. ; GPS dc.b $1A dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $3D ; = dc.b 0 dc.b $52 ; R dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $1A dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $3D ; = dc.b 0 dc.b $52 ; R dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $1A dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $3D ; = dc.b 0 dc.b $52 ; R dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $1A dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $52 ; R dc.b 0 dc.b $7B ; { dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $F6 ; ? dc.b 1 dc.b $33 ; 3 dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? IAC_AIRFLOW_KA_THROTTLE_CRACKER_AIRFLOW:dc.b 0 ; This calibration table provides the extended throttle cracker airflow values when the throttle position criteria has been met. ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 1 dc.b $6F ; o dc.b 1 dc.b $6F ; o dc.b 1 dc.b $6F ; o dc.b 1 dc.b $6F ; o dc.b 1 dc.b $6F ; o dc.b 1 dc.b $6F ; o dc.b 1 dc.b $6F ; o dc.b 1 dc.b $6F ; o dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 1 dc.b 0 dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 2 dc.b 0 dc.b 4 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 IAC_AIRFLOW_KV_AC_OFF_PI_DELAY:dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $F0 ; ? dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ IAC_AIRFLOW_KV_AC_ON_PI_DELAY:dc.b 0 dc.b $A0 ; ? dc.b 1 dc.b $20 dc.b 1 dc.b $30 ; 0 dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ IAC_AIRFLOW_KE_AIR_LEARN_AIRFLOW_CORR_THRESH:dc.w $960 ; DATA XREF: IsIdleAirLearningActive:loc_372FCr ; Allowable variation between MAF and MAP based airflows to allow learning. ; Milligrams_Per_Cylinder IAC_AIRFLOW_KE_AIR_LEARN_COOLANT_TMP_LOW:dc.w $FE00 ; DATA XREF: IsIdleAirLearningActive:loc_3729Ar ; Minimum coolant temperature at which Air Flow Learning can be enabled without interfering with Closed Loop Idle mode ; Degrees_C IAC_AIRFLOW_KE_AIR_LEARN_COOLANT_TMP_MIDDLE:dc.w $800 ; DATA XREF: IsIdleAirLearningActive+13Ar ; Minimum coolant temperature at which Air Flow Learning can be enabled without interfering with any idle mode ; Degrees_C IAC_AIRFLOW_KE_AIR_LEARN_COOLANT_TMP_HIGH:dc.w $B00 ; DATA XREF: IsIdleAirLearningActive+144r ; Maximum coolant temperature at which Air Flow Learning can be enabled without interfering with any idle mode ; Degrees_C IAC_AIRFLOW_KE_AIR_LEARN_ENGINE_SPEED_MAX:dc.w 0 ; DATA XREF: IsIdleAirLearningActive+18Cr ; MAX engine speed to allow air learning. ; RPM IAC_AIRFLOW_KE_AIR_LEARN_ENGINE_SPEED_MIN:dc.w $A000 ; DATA XREF: IsIdleAirLearningActive+182r ; MIN engine speed to allow air learning. ; RPM IAC_AIRFLOW_KE_AIR_LEARN_IND_THRT_PSTN_STAB:dc.w 6 ; DATA XREF: IsIdleAirLearningActive:loc_37326r ; Maximum allowable variation in indicated Throttle Position to allow learning. ; Percent IAC_AIRFLOW_KE_AIR_LEARN_LIMIT:dc.w $9A ; DATA XREF: IsIdleAirLearningActive+58Er ; IsIdleAirLearningActive:loc_376ECr ; Maximum allowable compensation per cell in the Air Learn Correction array. ; Percent_Area_S IAC_AIRFLOW_KE_AIR_LEARN_LOW_VACUUM_DISABLE:dc.w $200 ; DATA XREF: IsIdleAirLearningActive+1ECr ; Minimum allowable vacuum to allow learning. ; kPa IAC_AIRFLOW_KE_AIR_LEARN_MAX_DELTA:dc.w $3D ; DATA XREF: IsIdleAirLearningActive+3A0r ; IsIdleAirLearningActive:loc_3751Er ... ; Maximum allowable difference between two adjacent cell in Air_Learn Correction array. ; Percent_Area_S IAC_AIRFLOW_KE_AIR_LEARN_STAB_TIMER:dc.w $78 ; DATA XREF: IsIdleAirLearningActive+1C4r ; Limits learning from occuring every loop to reduce problems with transients. ; Seconds IAC_AIRFLOW_KE_TIME_SINCE_BARO_UPDATED:dc.l unk_17700 ; DATA XREF: IsIdleAirLearningActive+208r ; Maxmimum time allowed without Baro update before disabling Airflow Learning. ; Seconds_L IAC_AIRFLOW_KE_VSDI_INTEGRAL_DELAY:dc.w $FFFF ; DATA XREF: sub_36764+286r IAC_AIRFLOW_KE_VSDI_DISABLE_VEHICLE_SPEED:dc.w $7F80 ; DATA XREF: sub_36764+F4r ; Vehicle speed must be <= this cal to disable the VSDI mode of the throttle cracker function. ; MPH IAC_AIRFLOW_KE_VSDI_ENABLE_VEHICLE_SPEED:dc.w $7FFF ; DATA XREF: sub_36764+A8r ; Vehicle speed must be > this cal to enable the VSDI mode of the throttle cracker function. ; MPH IAC_AIRFLOW_KE_VSDI_THROTTLE_POSITION:dc.w 0 ; DATA XREF: sub_36764+17Cr ; If in VSDI mode, use KA_Throttle_Cracker_Airflow to calculate extended throttle cracker, while throttle position is > this cal. ; Percent IAC_AIRFLOW_KV_AIR_LEARN_RATE_LIMIT_DOWN:dc.w 1 ; DATA XREF: IsIdleAirLearningActive+2BCr ; Rate limit constant for increasing airflow. ; Percent_Area dc.l unk_10001 dc.l unk_10001 dc.l unk_10001 dc.l sub_20000+2 dc.l loc_30002+1 dc.b 0 dc.b 3 SurfaceTable_2x14______________A_C_Clutch_Spark_Delay_?:dc.l loc_30002+1 dc.l loc_30002+1 dc.l loc_30004 dc.l unk_40004 dc.l unk_40004 IAC_AIRFLOW_KV_AIR_LEARN_RATE_LIMIT_UP:dc.l unk_10001 ; DATA XREF: IsIdleAirLearningActive+28Er ; Rate limit constant for increasing airflow. ; Percent_Area dc.l unk_10001 dc.l unk_10001 dc.l unk_10002 dc.l sub_20000+2 dc.l sub_20000+2 dc.l sub_20000+2 dc.l sub_20000+2 dc.l sub_20000+3 dc.b 0 dc.b 3 Constant16_B4333___Rolling_Desired_Idle_Disable_Speed_KPH:dc.b 0 dc.b 3 Constant16_B4334___Rolling_Desired_Idle_Enable_Speed_KPH:dc.b 0 dc.b 3 Constant16_B4335___Rolling_Desired_Idle_Maximum_TPS_Position:dc.b 0 dc.b 3 IAC_AIRFLOW_KV_ENG_SPD_OFFSET_AFLW_DR:dc.b 0 ; Amount of airflow required to compensate for a temporary engine speed offset while in Drive ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_ENG_SPD_OFFSET_AFLW_PN:dc.b 0 ; Amount of airflow required to compensate for a temporary engine speed offset while in P/N in an Automatic ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_ENG_SPD_OFFSET_AFLW_MULT_DR:dc.b 0 ; Multiplier that compensate Engine Speed Offset Airflowbased on coolant temperature, while in Drive ; Scaler_2_Vs_Deg_C_Table dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_ENG_SPD_OFFSET_AFLW_MULT_PN:dc.b 0 ; Multiplier that compensate Engine Speed Offset Airflowbased on coolant temperature, while in PN ; Scaler_2_Vs_Deg_C_Table dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_PN_EXTENDED_THROT_CRACKER:dc.b 0 ; This cal provides the extended throttle cracker airflow values while in neutral or when the clutch is depressed. ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_VSDI_DESIRED_IDLE_SPEED:dc.b 0 ; This cal provides desired idle speed for VSDI mode. ; RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_CLO_SPARK_AIRFLOW_COOL_MULT:dc.w $800 ; DATA XREF: sub_3600A+3Cr ; This cal provides value to adjust amount of airflow necessaryto compensate for catalyst spark retard as the enginewarms up. ; Scaler_2_Vs_Deg_C_Table dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 IAC_AIRFLOW_KV_VSDI_SPEED_LOW_IN_PN:dc.b 0 ; VSDI integral correction when VSDI engine speed error is too low. ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_VSDI_SPEED_HIGH_IN_PN:dc.b 0 ; VSDI integral correction when VSDI engine speed error is too high. ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KE_PRESSURE_RATIO_MAP_HYSTERESIS:dc.w $CD ; DATA XREF: sub_35D1C:loc_35E8Er ; sub_35D1C+184r ... ; Used to control change in manifold pressure, used to calculate the pressure ratio. ; kPa IAC_AIRFLOW_KE_TRANSITION_AIRFLOW_SPEED_CONS:dc.b 0 ; ; dc.b 0 IAC_AIRFLOW_KV_AIRFLOW_DELAY_DR_TO_PN:dc.b 0 ; CIA uses PN tables after this time when thePRNDL is moved from any gear to PN.Must be <= KV_Drive_To_Park_Neutral_Delay. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_AIRFLOW_DELAY_PN_TO_DR:dc.b 0 ; CIA uses DR tables after this time, when the PRNDL is movedfrom PN to another gear.Must be <= KV_Park_Neutral_To_Drive_Delay. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_AIRFLOW_KV_VARIATION_CORRECTION_MAXIMUM:dc.w $1E7B ; DATA XREF: sub_37A50+11Ar ; sub_37A50+16Ar ; The maximum value that any one of the variation correction cells can achieve. ; IAC_GPS_W dc.b $18 dc.b $F6 ; ? dc.b $14 dc.b 0 dc.b $E dc.b $A4 ; ? dc.b 9 dc.b $48 ; H dc.b 4 dc.b 0 dc.b 2 dc.b $9A ; ? dc.b 1 dc.b $E1 ; ? dc.b 1 dc.b $E1 ; ? dc.b 1 dc.b $E1 ; ? IAC_MOTOR_KE_DEFAULT_PARK_POSITION:dc.w $136 ; DATA XREF: OS1:00038278r ; At powerup, if nonvolatile memory is lost, Actual_IAC_ Position is set to this parameter. ; Steps IAC_MOTOR_KE_IACV_STEP_RANGE:dc.w $136 ; DATA XREF: sub_37FC2+2Ar ; sub_37FC2+3Er ... ; Maximum stepping range of IACV motor. ; Steps IAC_MOTOR_KE_IACV_LOW_FREQUENCY_STEP:dc.w $C80 ; DATA XREF: sub_37DEE:loc_37E50r ; OS1:00038264r ; IACV motor step frequency when engine manifold vacuumis high. ; IACV_Hz_Type IAC_MOTOR_KE_IACV_HIGH_FREQUENCY_STEP:dc.w $1900 ; DATA XREF: sub_37DEE:loc_37E46r ; IACV motor step frequency when engine manifold vacuumis low. ; IACV_Hz_Type IAC_MOTOR_KE_MANIFOLD_VACUUM_FOR_LOW_FREQU:dc.w $200 ; DATA XREF: sub_37DEE+50r ; This calibration and the following are a hysteresis pairto provide a switch point for IACV motor step frequency. ; kPa IAC_MOTOR_KE_MANIFOLD_VACUUM_FOR_HIGH_FREQ:dc.w $1CD ; DATA XREF: sub_37DEE+48r ; This calibration and the previous are a hysteresis pairto provide a switch point for IACV motor step frequency. ; kPa IAC_MOTOR_KE_MAXIMUM_COIL_VOLTAGE:dc.w $1200 ; DATA XREF: sub_37C70+8r ; Disabling threshold for the IACV coils if ignition voltage goes above this parameter. ; Volts IAC_MOTOR_KE_MINIMUM_STEP_VOLTAGE:dc.w $900 ; DATA XREF: sub_37DEE+10r ; Below this threshold the IACV is not allowed to step. ; Volts IAC_MOTOR_KV_AREA_TO_IACV_STEPS:dc.b 0 ; Calibration used to translate effective area into equivalent IACV motor steps. ; Steps_vs_mm_squared_Table dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b $F dc.b 0 dc.b $19 dc.b 0 dc.b $23 ; # dc.b 0 dc.b $2D ; - dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $44 ; D dc.b 0 dc.b $50 ; P dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $63 ; c dc.b 0 dc.b $6C ; l dc.b 0 dc.b $74 ; t dc.b 0 dc.b $7A ; z dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $85 ; ? dc.b 0 dc.b $88 ; ? dc.b 0 dc.b $8C ; ? dc.b 0 dc.b $90 ; ? dc.b 0 dc.b $93 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $99 ; ? dc.b 0 dc.b $9B ; ? dc.b 0 dc.b $9F ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A7 ; ? dc.b 0 dc.b $AA ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $AF ; ? dc.b 0 dc.b $B2 ; ? dc.b 0 dc.b $B4 ; ? dc.b 0 dc.b $B7 ; ? dc.b 0 dc.b $B9 ; ? dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $BE ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C7 ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $D2 ; ? dc.b 0 dc.b $D7 ; ? dc.b 0 dc.b $DC ; ? dc.b 0 dc.b $E3 ; ? dc.b 0 dc.b $E8 ; ? dc.b 0 dc.b $EE ; ? dc.b 0 dc.b $F5 ; ? dc.b 0 dc.b $FC ; ? dc.b 1 dc.b 4 dc.b 1 dc.b $10 dc.b 1 dc.b $21 ; ! dc.b 1 dc.b $2C ; , dc.b 1 dc.b $31 ; 1 dc.b 1 dc.b $36 ; 6 dc.b 1 dc.b $36 ; 6 dc.b 1 dc.b $36 ; 6 dc.b 1 dc.b $36 ; 6 IAC_MOTOR_KE_IMLR_DEADBAND_SPEED_ERROR:dc.w $FFFF ; DATA XREF: sub_37FC2:loc_380B4r ; Lost motor reset logic can only engage when the absolute engine speed error is greater than this calibration. ; RPM IAC_MOTOR_KE_IMLR_MOTOR_LOST_TIME:dc.w $FFFF ; DATA XREF: sub_37FC2+124r ; IAC motor must appear lost for at least this amount of time before allowing the lost motor logic to initiate. ; Seconds IAC_MOTOR_KE_IMLR_MOTOR_WAIT_FOR_NEXT:dc.w $FFFF ; DATA XREF: sub_37FC2:loc_380F2r ; After the IAC motor is determined lost wait for at least this amount of time before allowing the next move to occur. ; Seconds IAC_MOTOR_KE_IMRR_THROTTLE_POSITION:dc.w $1400 ; DATA XREF: sub_37D56+4Cr ; Minimum throttle position to begin a running reset of the IAC motor position. ; Percent IAC_MOTOR_KE_IMRR_VEHICLE_SPEED:dc.w $7FFF ; DATA XREF: sub_37D56+40r ; Minimum vehicle speed to begin a running reset of the IAC motor position. ; Miles/Hour IAC_MOTOR_KV_IMLR_STEP_INCREMENT:dc.w 0 ; DATA XREF: sub_37FC2:loc_38134r ; Number of steps required to move to attempt to open/closed if the engine speed low/high and current in the lost motor mode. ; Steps dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_REGULATORS_KE_ADAPTIVE_TEMPERATURE_HIGH:dc.w $B33 ; DATA XREF: sub_3832E+84r ; Coolant temperature must be below this calibration to enable adaptive updates. ; Degrees_C IAC_REGULATORS_KE_ADAPTIVE_TEMPERATURE_LOW:dc.w $800 ; DATA XREF: sub_3832E+7Ar ; Coolant temperature must be above this calibration to enable adaptive updates. ; Degrees_C IAC_REGULATORS_KE_ENGINE_SPEED_LIGHTLY_FILTERED:dc.w $FF5C ; DATA XREF: DecideIdleMode+700r IAC_REGULATORS_KE_ENGINE_SPEED_HEAVILY_FILTERED:dc.w $2753 ; DATA XREF: DecideIdleMode+718r IAC_REGULATORS_KE_INTEGRAL_DEAD_BAND_ENGINE_SPE:dc.w $4D ; DATA XREF: DecideIdleMode:loc_38D1Cr IAC_REGULATORS_KE_MAXIMUM_IDLE_AIRFLOW:dc.w $A000 ; DATA XREF: DecideIdleMode:loc_393C0r ; Calibration used to limit the idle airflow to a maximum. ; GPS IAC_REGULATORS_KE_SPEED_ERROR_LIMIT_ADAPTIVE:dc.w $133 ; DATA XREF: sub_3832E:loc_3833Er ; Absolute value of engine speed error must be less than whis calibration for adaptive updates to occur. ; RPM IAC_REGULATORS_KE_SPEED_ERROR_LIMIT_TIMER:dc.w $F0 ; DATA XREF: sub_3832E+4Cr ; Continuous time engine speed must be below limit before adaptive updates are allowed. ; Seconds IAC_REGULATORS_KV_STALL_SAVER_SPEED_DRIVE:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_REGULATORS_KV_STALL_SAVER_SPEED_NEUTRAL:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_REGULATORS_KE_START_UP_ENGINE_UNDER_SPEED_T:dc.w $140 ; DATA XREF: DecideIdleMode+400r IAC_REGULATORS_KV_D_SPEED_DECREASING:dc.b 0 ; Derivative airflow correction when engine speed is decreasing. ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $C0 ; ? dc.b 0 dc.b $E0 ; ? dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 IAC_REGULATORS_KV_D_SPEED_INCREASING:dc.b 0 ; Derivative airflow correction when engine speed is increasing. ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $C0 ; ? dc.b 0 dc.b $E0 ; ? dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 IAC_REGULATORS_KV_I_SPEED_HIGH_IN_DRIVE:dc.l off_0+1 ; Integral correction when Engine_Speed_Error_Sum is too high and transmission is in drive. ; GPS dc.l sub_20000+3 dc.l loc_50006 dc.l unk_A000F dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 IAC_REGULATORS_KV_I_SPEED_HIGH_IN_PARK_NEUTRAL:dc.b 0 ; Integral correction when Engine_Speed_Error_Sum is too high and transmission is in park or neutral. ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_REGULATORS_KV_I_SPEED_LOW_IN_DRIVE:dc.l off_0+1 ; Integral correction when Engine_Speed_Error_Sum is too low and transmission is in drive. ; GPS dc.l sub_20000+3 dc.l loc_50006 dc.l unk_A000F dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 IAC_REGULATORS_KV_I_SPEED_LOW_IN_PARK_NEUTRAL:dc.b 0 ; Integral correction when Engine_Speed_Error_Sum is too low and transmission is in park or neutral. ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_REGULATORS_KV_P_SPEED_HIGH_IN_DRIVE:dc.b 0 ; Proportional correction when Engine_Speed_Error is positive and transmission is in drive. ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b 0 dc.b 6 dc.b 0 dc.b $D dc.b 0 dc.b $F dc.b 0 dc.b $13 dc.b 0 dc.b $20 dc.b 0 dc.b $26 ; & dc.b 0 dc.b $33 ; 3 IAC_REGULATORS_KV_P_SPEED_HIGH_IN_DRIVE_AC:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b 0 dc.b 6 dc.b 0 dc.b $D dc.b 0 dc.b $F dc.b 0 dc.b $13 dc.b 0 dc.b $20 dc.b 0 dc.b $26 ; & dc.b 0 dc.b $33 ; 3 IAC_REGULATORS_KV_P_SPEED_HIGH_IN_PARK_NEUTRAL:dc.b 0 ; Proportional correction when Engine_Speed_Error is positive and transmission is in park or neutral. ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_REGULATORS_KV_P_SPEED_LOW_IN_DRIVE:dc.b 0 ; Proportional correction when Engine_Speed_Error is negative and transmission is in drive. ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b 0 dc.b 6 dc.b 0 dc.b $D dc.b 0 dc.b $F dc.b 0 dc.b $13 dc.b 0 dc.b $20 dc.b 0 dc.b $26 ; & dc.b 0 dc.b $33 ; 3 IAC_REGULATORS_KV_P_SPEED_LOW_IN_DRIVE_AC:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b 0 dc.b 6 dc.b 0 dc.b $D dc.b 0 dc.b $F dc.b 0 dc.b $13 dc.b 0 dc.b $20 dc.b 0 dc.b $26 ; & dc.b 0 dc.b $33 ; 3 IAC_REGULATORS_KV_P_SPEED_LOW_IN_PARK_NEUTRAL:dc.b 0 ; Proportional correction when Engine_Speed_Error is negative and transmission is in park or neutral. ; GPS dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_REGULATORS_KE_PROPORTIONAL_DEAD_BAND_ENGINE:dc.w $100 ; DATA XREF: DecideIdleMode:loc_3895Er IAC_REGULATORS_KE_EARLY_PID_ENTRANCE_MAX_TPS:dc.w 0 ; DATA XREF: DecideIdleMode+154r ; TPS must be less than this value to enter Early PID mode. A zero value will completely disable this function. ; Percent IAC_REGULATORS_KE_EARLY_PID_RPM_HYSTERESIS:dc.w 0 ; DATA XREF: DecideIdleMode+10Er ; Once in early PID mode, extend the minimum set point speed criteria by this much. ; RPM IAC_REGULATORS_KE_START_UP_PID_DELAY:dc.w $C0 ; DATA XREF: DecideIdleMode+47Ar ; Calibration to delay PID control until after engine isrunning. ; Seconds IAC_REGULATORS_KE_DELAY_P_CONTROL:dc.w $D0 ; DATA XREF: DecideIdleMode+2C0r ; Cal to transition into proportional speed control duringcoast down and when exiting a neutral throttle tip in ; Seconds IAC_REGULATORS_KE_DELAY_I_CONTROL:dc.w $D0 ; DATA XREF: DecideIdleMode+2F8r ; Cal to transition into integral speed control duringcoast down and when exiting a neutral throttle tip in ; Seconds IAC_REGULATORS_KE_DELAY_D_CONTROL:dc.w $D0 ; DATA XREF: DecideIdleMode+2DCr ; Cal to transition into derivative speed control duringcoast down and when exiting a neutral throttle tip in ; Seconds IAC_REGULATORS_KE_DELAY_IDLE_SPARK:dc.w $D0 ; DATA XREF: DecideIdleMode+314r ; Cal to transition into idle saprk control during coastdown and when exiting a neutral throttle tip in ; Seconds IAC_RPM_KE_IDLE_TO_OFFIDLE_THROTTLE_POSI:dc.w $4D ; DATA XREF: sub_36AAA+C0r ; sub_397B0+2Ar ... IAC_RPM_KE_IDLE_TO_OFFIDLE_VEHICLE_SPEED:dc.w $280 ; DATA XREF: sub_36AAA+B4r ; sub_397B0+1Er ... IAC_RPM_KE_ALTERNATOR_FIELD_DC_FILTER:dc.w 6 ; DATA XREF: sub_2C7AC+A0r IAC_RPM_KE_BATTERY_CHARGE_DUTY_CYCLE:dc.w $1200 ; DATA XREF: sub_39546:loc_395A2r ; An alternator field duty cycle below this calibration will decrease the idle speed to decrease the alternator power output. ; Percent IAC_RPM_KE_BATTERY_DISCHARGE_DUTY_CYCLE:dc.w $13CD ; DATA XREF: sub_39546+1Ar ; An alternator field duty cycle above this calibration will increase the idle speed to increase the alternator power output. ; Percent IAC_RPM_KE_COOLANT_TEMPERATURE_LOW_LIMIT:dc.w $FC00 ; DATA XREF: sub_395EC+1Cr ; sub_39A52+14r ; Lower coolant temperature limit for enabling heater performance idle speed offset. ; Degrees Celsius IAC_RPM_KE_COOLANT_TEMPERATURE_HIGH_LIMI:dc.w $FC0D ; DATA XREF: sub_395EC+Ar ; Upper coolant temperature limit for enabling heater performance idle speed offset. ; Degrees Celsius IAC_RPM_KE_DECREASE_BATTERY_VOLTAGE_SPEE:dc.w 5 ; DATA XREF: sub_39546:loc_395AAr ; Integral gain when alternator voltage is below control setpoint. Activation rate: 100 ms. ; RPM IAC_RPM_KE_DRIVE_ENGINE_SPEED_LIMIT:dc.w $1800 ; DATA XREF: sub_3984E+118r ; sub_39A52:loc_39BD6r ; Maximum allowable set point speed with transmission in drive. ; RPM IAC_RPM_KE_ENGINE_PROTECTION_SPEED:dc.w $1000 ; DATA XREF: sub_395D6+6r ; Minimum engine speed when engine over tempuratureprotection is enabled. ; RPM IAC_RPM_KE_INCREASE_BATTERY_VOLTAGE_SPEE:dc.w 5 ; DATA XREF: sub_39546+22r ; Integral gain when alternator voltage is below control setpoint. Activation rate: 100 ms. ; RPM IAC_RPM_KE_INDUCTION_AIR_TEMPERATURE_THR:dc.w $FC00 ; DATA XREF: sub_395EC+28r ; sub_39A52+20r ; Induction air temperature limit for enabling heater performance idle speed offset. ; Degrees Celsius IAC_RPM_KE_MAXIMUM_BATTERY_SPEED_OFFSET:dc.w 0 ; DATA XREF: sub_39546+3Ar ; Maximum allowable engine speed offset due to battery voltage. ; RPM IAC_RPM_KE_MINIMUM_TIME_AC_SPEED:dc.l off_640 ; DATA XREF: sub_39686+12r IAC_RPM_KE_OFFIDLE_TO_IDLE_THROTTLE_POSI:dc.w $33 ; DATA XREF: sub_39A0E+18r IAC_RPM_KE_OFFIDLE_TO_IDLE_VEHICLE_SPEED:dc.w $C0 ; DATA XREF: sub_39A0E+Cr IAC_RPM_KE_RAMP_HEATER_PERFORMANCE_SPEED:dc.w 5 ; DATA XREF: sub_395EC+3Cr ; sub_395EC+8Ar ; Heater performance speed offset will be ramped to zero by this value per activation. ; RPM IAC_RPM_KE_SET_POINT_CHANGE_DELAY_TIME:dc.w $50 ; DATA XREF: sub_3984E:loc_39928r ; The amount of time that must elapse before the set point speed can be lowered after having been raised. ; Seconds IAC_RPM_KE_SET_POINT_SPEED_RATE_DRIVE:dc.w $A ; DATA XREF: sub_3984E:loc_39960r ; RPM rate that the set point speed can be raised or lowered when not in park or neutral. ; RPM IAC_RPM_KE_SET_POINT_SPEED_RATE_NEUTRAL:dc.w 0 ; DATA XREF: sub_3984E:loc_398C4r ; RPM rate that the set point speed can be raised or lowered when in park or neutral. ; RPM IAC_RPM_KE_START_UP_DELAY_TIME_NO_GEAR:dc.w 0 ; DATA XREF: sub_397B0+42r ; Period of time to delay after the wait time before the value of Start_Up_Speed_Offset_No_Gear starts to decay toward zero. ; Seconds IAC_RPM_KE_START_UP_DELAY_TIME_IN_GEAR:dc.w 0 ; DATA XREF: sub_397B0+60r ; Period of time to delay after the wait time before the value of Start_Up_Speed_Offset_In_Gear starts to decay toward zero. ; Seconds IAC_RPM_KE_START_UP_SPEED_DELTA_IN_GEAR:dc.w 0 ; DATA XREF: sub_397B0+6Er ; Delta RPM used to decay Start_Up_Speed_Offset_In_Gear toward zero. ; RPM IAC_RPM_KE_START_UP_SPEED_DELTA_NO_GEAR:dc.w 0 ; DATA XREF: sub_397B0+50r ; Delta RPM used to decay Start_Up_Speed_Offset_No_Gear toward zero. ; RPM IAC_RPM_KV_ENGINE_SPEED_DRIVE_AC_OFF:dc.b $15 ; Desired engine speed with transmission in drive and the air conditioner off. ; RPM dc.b 0 dc.b $15 dc.b 0 dc.b $15 dc.b 0 dc.b $14 dc.b 0 dc.b $13 dc.b $80 ; ? dc.b $13 dc.b 0 dc.b $12 dc.b $80 ; ? dc.b $11 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 IAC_RPM_KV_ENGINE_SPEED_DRIVE_AC_ON:dc.b $15 ; Desired engine speed with transmission in drive and the air conditioner on. ; RPM dc.b 0 dc.b $15 dc.b 0 dc.b $15 dc.b 0 dc.b $14 dc.b 0 dc.b $13 dc.b $80 ; ? dc.b $13 dc.b 0 dc.b $12 dc.b $80 ; ? dc.b $11 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 IAC_RPM_KV_ENGINE_SPEED_NEUTRAL_AC_OFF:dc.b 0 ; Desired engine speed with transmission in park or neutral and the air conditioner off. ; RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_RPM_KV_ENGINE_SPEED_NEUTRAL_AC_ON:dc.b 0 ; Desired engine speed with transmission in park or neutral and the air conditioner on. ; RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_RPM_KV_HEATER_PERF_SPEED_OFFSET_PARK:dc.b 0 ; Desired engine speed offset when heater performance is active and transmission is in park or neutral. ; RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_RPM_KV_HEATER_PERF_SPEED_OFFSET_DRIV:dc.b 0 ; Desired engine speed offset when heater performance is active and transmission is in drive. ; RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_RPM_KV_START_UP_SPEED_OFFSET_IN_GEAR:dc.b 0 ; Start up engine speed offset value when the transmission is in gear. ; RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_RPM_KV_START_UP_SPEED_OFFSET_NO_GEAR:dc.b 0 ; Start up engine speed offset value when the transmission is not in gear. ; RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 IAC_RPM_KE_PARK_NEUTRAL_ENGINE_SPEED_LIM:dc.w 0 ; DATA XREF: sub_3984E+7Cr ; sub_39A52+174r ; Maximum allowable set point speed with transmission in park or neutral. ; RPM IAC_RPM_KE_START_UP_WAIT_TIME:dc.w 0 ; DATA XREF: sub_397B0+Er ; Period of time after engine starts before looking to see if throttle was opened or vehicle speed was non-zero. ; Seconds IGNITION_KE_IGNITION_VOLTAGE_SCALE_FAC:dc.w $1980 ; DATA XREF: sub_80770+Er ; sub_838FE+18r ... ; Ignition 1 sensor scaling factor. ; PROTECTED_KE_IGN_VOLT_TOO_HIGH:dc.w $1200 ; DATA XREF: sub_80770+4Cr ; Ignition voltage is too high if it is greater than this. ; Volts PROTECTED_KE_IGN_VOLT_TOO_LOW:dc.w $600 ; DATA XREF: sub_80770+5Er ; Ignition voltage is too Low if it is less than this. ; Volts INLET_TEMP_KV_CHARGE_TEMPERATURE_SQUARE_ROO:dc.w $7A27 ; DATA XREF: sub_7AC3C+D4r ; sub_7AD24+4Cr dc.b $7C ; | dc.b $BF ; ? dc.b $7F ;  dc.b $49 ; I dc.b $81 ; ? dc.b $C6 ; ? dc.b $84 ; ? dc.b $38 ; 8 dc.b $86 ; ? dc.b $9E ; ? dc.b $88 ; ? dc.b $F9 ; ? dc.b $8B ; ? dc.b $4A ; J dc.b $8D ; ? dc.b $92 ; ? dc.b $8F ; ? dc.b $D0 ; ? dc.b $92 ; ? dc.b 5 dc.b $94 ; ? dc.b $32 ; 2 dc.b $96 ; ? dc.b $57 ; W dc.b $98 ; ? dc.b $74 ; t dc.b $9A ; ? dc.b $89 ; ? dc.b $9C ; ? dc.b $98 ; ? dc.b $9E ; ? dc.b $98 ; ? dc.b $A0 ; ? dc.b $A1 ; ? dc.b $A2 ; ? dc.b $9C ; ? INLET_TEMP_KV_CHARGE_TEMPERATURE_BIAS:dc.w $666 ; DATA XREF: sub_7AC3C+22r dc.b 3 dc.b $5C ; \ dc.b 2 dc.b $43 ; C dc.b 1 dc.b $F3 ; ? dc.b 1 dc.b $C2 ; ? dc.b 1 dc.b $9F ; ? dc.b 1 dc.b $82 ; ? dc.b 1 dc.b $68 ; h dc.b 1 dc.b $51 ; Q dc.b 1 dc.b $3B ; ; dc.b 1 dc.b $26 ; & dc.b 1 dc.b $13 dc.b 0 dc.b $FF dc.b 0 dc.b $EC ; ? dc.b 0 dc.b $DA ; ? dc.b 0 dc.b $B8 ; ? INLET_TEMP_KV_CHARGE_TEMPERATURE_FILTER:dc.w $40 ; DATA XREF: sub_7AC3C:loc_7ACB8r dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $3B ; ; dc.b 0 dc.b $3D ; = dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $43 ; C dc.b 0 dc.b $45 ; E dc.b 0 dc.b $48 ; H dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4F ; O dc.b 0 dc.b $52 ; R dc.b 0 dc.b $54 ; T dc.b 0 dc.b $57 ; W MASS_AIR_FLOW_SENSOR_KV_MASS_AIRFLOW:dc.w $BD ; DATA XREF: sub_80A78+76r ; sub_80B1C+64r ; Mass Air Flow rate from sensor ; Gram/Sec dc.b 0 dc.b $E6 ; ? dc.b 1 dc.b $10 dc.b 1 dc.b $3F ; ? dc.b 1 dc.b $72 ; r dc.b 1 dc.b $AA ; ? dc.b 1 dc.b $E7 ; ? dc.b 2 dc.b $2B ; + dc.b 2 dc.b $74 ; t dc.b 2 dc.b $C5 ; ? dc.b 3 dc.b $1C dc.b 3 dc.b $79 ; y dc.b 3 dc.b $DD ; ? dc.b 4 dc.b $48 ; H dc.b 4 dc.b $BA ; ? dc.b 5 dc.b $31 ; 1 dc.b 5 dc.b $B0 ; ? dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $CD ; ? dc.b 7 dc.b $6D ; m dc.b 8 dc.b $1B dc.b 8 dc.b $DA ; ? dc.b 9 dc.b $A9 ; ? dc.b $A dc.b $82 ; ? dc.b $B dc.b $63 ; c dc.b $C dc.b $45 ; E dc.b $D dc.b $37 ; 7 dc.b $E dc.b $35 ; 5 dc.b $F dc.b $3F ; ? dc.b $10 dc.b $55 ; U dc.b $11 dc.b $7A ; z dc.b $12 dc.b $AE ; ? dc.b $13 dc.b $F3 ; ? dc.b $15 dc.b $4F ; O dc.b $16 dc.b $BE ; ? dc.b $18 dc.b $40 ; @ dc.b $19 dc.b $D5 ; ? dc.b $1B dc.b $7D ; } dc.b $1D dc.b $38 ; 8 dc.b $1F dc.b 7 dc.b $20 dc.b $E9 ; ? dc.b $22 ; " dc.b $DE ; ? dc.b $24 ; $ dc.b $E7 ; ? dc.b $27 ; ' dc.b 4 dc.b $29 ; ) dc.b $34 ; 4 dc.b $2B ; + dc.b $78 ; x dc.b $2D ; - dc.b $D1 ; ? dc.b $30 ; 0 dc.b $3F ; ? dc.b $32 ; 2 dc.b $C1 ; ? dc.b $35 ; 5 dc.b $5B ; [ dc.b $38 ; 8 dc.b $C dc.b $3A ; : dc.b $D1 ; ? dc.b $3D ; = dc.b $AD ; ? dc.b $40 ; @ dc.b $9F ; ? dc.b $43 ; C dc.b $A6 ; ? dc.b $46 ; F dc.b $C4 ; ? dc.b $49 ; I dc.b $EF ; ? dc.b $4D ; M dc.b $35 ; 5 dc.b $50 ; P dc.b $93 ; ? dc.b $54 ; T dc.b $A dc.b $57 ; W dc.b $9C ; ? dc.b $5B ; [ dc.b $4A ; J dc.b $5F ; _ dc.b $1D dc.b $63 ; c dc.b $1B dc.b $67 ; g dc.b $2C ; , dc.b $6B ; k dc.b $66 ; f dc.b $6F ; o dc.b $C3 ; ? dc.b $74 ; t dc.b $43 ; C dc.b $78 ; x dc.b $EA ; ? dc.b $7D ; } dc.b $AC ; ? dc.b $82 ; ? dc.b $91 ; ? dc.b $87 ; ? dc.b $98 ; ? dc.b $8C ; ? dc.b $C4 ; ? dc.b $92 ; ? dc.b $13 dc.b $97 ; ? dc.b $87 ; ? dc.b $9D ; ? dc.b $20 dc.b $A2 ; ? dc.b $DE ; ? dc.b $A8 ; ? dc.b $C1 ; ? dc.b $AE ; ? dc.b $CB ; ? dc.b $B4 ; ? dc.b $FB ; ? dc.b $BB ; ? dc.b $52 ; R dc.b $C1 ; ? dc.b $D0 ; ? dc.b $C8 ; ? dc.b $76 ; v dc.b $CF ; ? dc.b $44 ; D dc.b $D6 ; ? dc.b $3B ; ; MEM_MANAGER_KE_MAX_RAM_FAIL_CTR_THRESHOLD:dc.b 1 ; DATA XREF: sub_27258+CCr ; Threshold for maximum number of RAM test failures that canoccur before latching a permanent fault. ; Counts MEM_MANAGER_KE_IGNORE_RAM_TEST:dc.b 0 ; DATA XREF: sub_27258+AAr ; When TRUE the ram test results are ignored. ; Boolean MEM_MANAGER_KE_MAX_ROM_FAIL_CTR_THRESHOLD:dc.b 0 ; DATA XREF: sub_27128+11Ar ; Threshold for maximum number of ROM test failures that canoccur before latching a permanent fault. ; Counts MEM_MANAGER_KE_IGNORE_FLASH_CHECKSUM:dc.b 0 ; DATA XREF: sub_27128+F2r ; When TRUE the rom test results are ignored. ; Boolean INDUCTION_AIR_KE_INDUCTION_AIR_TEMPERATURE_DEF:dc.w $300 ; DATA XREF: sub_7AAA8+4Cr ; sub_7AAA8:loc_7AB04r ... ; Default induction air temperature used when IAT sensor is failed. ; INDUCTION_AIR_KV_AIR_TEMP:dc.b $D ; Converts induction air temperature A/D counts to Degrees C. ; dc.b $FD ; ? dc.b $A dc.b $33 ; 3 dc.b 7 dc.b $CD ; ? dc.b 6 dc.b $80 ; ? dc.b 5 dc.b $66 ; f dc.b 4 dc.b $9A ; ? dc.b 3 dc.b $E6 ; ? dc.b 3 dc.b $4D ; M dc.b 2 dc.b $B3 ; ? dc.b 2 dc.b $33 ; 3 dc.b 1 dc.b $B3 ; ? dc.b 1 dc.b $1A dc.b 0 dc.b $66 ; f dc.b $FF dc.b $B3 ; ? dc.b $FE ; ? dc.b $CD ; ? dc.b $FD ; ? dc.b $80 ; ? dc.b $FC ; ? dc.b 0 OISTER_KE_OIL_STARVE_ENABLE:dc.b 1 ; DATA XREF: DoLoopF:loc_2AE60r ; DoLoopG+D8r ... ; Bit selectable to allow oil starvation algorithm to run. ; BOOLEAN dc.b $FF OISTER_KE_DRIVER_WARNING_DELAY_TIME:dc.w $320 ; DATA XREF: sub_80B94+312r ; OS4:000812B0r ... ; Driver notification to powertrain action delay time. ; Seconds OISTER_KE_HIGH_G_MINIMUM_TIME:dc.w $C80 ; DATA XREF: sub_80B94+3BEr ; OS4:000812B8r ... ; Minimum amount of time a high lateral acceleration manuever must be sustained before any powertrain action will take place. ; Seconds OISTER_KE_INTEGRAL_RESET_DELAY:dc.w $12C ; DATA XREF: sub_80B94+ACr ; This time will prevent lateral acceleration spikes from resetting the lateral G integrator. ; Delay_Seconds_W OISTER_KE_LAT_G_SPIKE_REJECTION_TIME:dc.w $1E0 ; DATA XREF: sub_80B94:loc_80F00r ; This time will allow lat G spikes to be ignored. After this time, the lat G will be acknowledged. ; Seconds OISTER_KE_LOWEST_GEAR_ALLOWED_LIMIT:dc.b 1 ; DATA XREF: sub_80B94:loc_81030r ; Allows the limiting of oil starvation protection transmission upshifts. ; Gear dc.b $FF OISTER_KE_MINIMUM_VEHICLE_SPEED_FOR_OIS:dc.w 0 ; DATA XREF: sub_81060+168r ; Minimum vehicle speed to allow the conditions to exist for oil starvation protection. ; MPH OISTER_KE_MAXIMUM_VEHICLE_SPEED_FOR_OIS:dc.w $1A80 ; DATA XREF: sub_81060+174r ; Maximum vehicle speed to allow the conditions to exist for oil starvation protection. ; MPH OISTER_KE_OIL_PRESSURE_G_ENABLE:dc.b $42 ; DATA XREF: sub_81060:loc_8112Er ; Lateral acceleration threshold to enable protection mode based on low oil pressure detection. ; Gs_B_U dc.b $FF OISTER_KE_OIL_PRESSURE_NOISE_REJECTION:dc.w $140 ; DATA XREF: sub_81060+92r ; sub_81060+136r ; Time delay to ensure the oil pressure level has truly exceeded the enable or disable thresholds. ; Seconds OISTER_KV_OIL_LEVEL_FILTER_COEFFICIENT:dc.w $EE14 ; DATA XREF: sub_80B94:loc_80E40r ; Filters the Lat G Seconds threshold transients based on the current threshold. ; Unitless dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 dc.b $EE ; ? dc.b $14 OISTER_KE_OIL_LEVEL_FILTER_COEFFICIENT:dc.b $EE ; ? ; Filters the maximum Lat G Seconds threshold transients based on the current threshold. ; Unitless dc.b $14 OISTER_KE_OIL_LOWEST_GEAR_RESET_SPEED:dc.w $500 ; DATA XREF: sub_80B94+4B4r ; Allows for the lowest gear possible to be reset to FIRST if the vehicle speed is below the cal. ; MPH OISTER_KE_OIL_MINIMUM_VEHICLE_SPEED:dc.w $800 ; DATA XREF: sub_80B94:loc_80FEEr ; Minimum ETC vehicle speed governor when the engine oil starvation protection mode is enabled. ; MPH OISTER_KE_OIL_SPEED_LIMIT_DECREASE:dc.w $40 ; DATA XREF: sub_80B94+464r ; Delta MPH decrease of ETC vehicle speed governor when engine oil starvation protection mode is enabled. ; MPH OISTER_KE_OIL_SPEED_LIMIT_INCREASE:dc.w $80 ; DATA XREF: sub_80B94+438r ; Delta MPH increase of ETC vehicle speed governor when engine oil starvation protection mode is NOT enabled. ; MPH OISTER_KE_POWERTRAIN_ACTION_TIME:dc.w $C80 ; DATA XREF: sub_80B94+3F6r ; Minimum amount of time the powertrain action will remain active once it has been initiated. ; Seconds OISTER_KE_PROTECTION_G_HIGH_HYSTERESIS:dc.b $48 ; DATA XREF: sub_80B94:loc_80F42r ; OS4:000812C0r ; Above this value will enable the High G Timer FOR skid pad testing detection. ; Gs_B_U OISTER_KE_PROTECTION_G_LOW_HYSTERESIS:dc.b $42 ; DATA XREF: sub_80B94+382r ; Below thisvalue will be considered not high G conditions ; Gs_B_U OISTER_KE_THROTTLE_MAX_TO_RESUME_DRIVER:dc.w $3D ; DATA XREF: sub_80B94+402r ; Once oil starvation is activated, throttle must close to this value before maximum speed is incremented. ; Percent OISTER_KE_OIL_FILTER_COEFFICIENT:dc.w $4CCD ; DATA XREF: sub_80B94+22r ; Coefficient to filter the lateral acceleration variable using a first order lag filter. ; Unitless OISTER_KV_OIL_MIN_ENGINE_RUN_TIME:dc.b $38 ; 8 ; Minimum amount of time engine must be running before the Oil Starvation criteria will be considered. ; Seconds dc.b $40 ; @ dc.b $2D ; - dc.b 0 dc.b $23 ; # dc.b 0 dc.b $19 dc.b 0 dc.b $D dc.b $C0 ; ? dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 9 dc.b $60 ; ` dc.b $11 dc.b $80 ; ? dc.b $19 dc.b 0 OISTER_KV_OIL_PRESSURE_DISABLE_LEVEL:dc.b 8 ; Engine oil pressure necessary to disable the oil starvation mode. ; kPa dc.b $46 ; F dc.b $B dc.b 8 dc.b $D dc.b $1A dc.b $F dc.b $2B ; + dc.b $11 dc.b $A6 ; ? dc.b $14 dc.b $22 ; " dc.b $16 dc.b $C1 ; ? dc.b $19 dc.b $19 dc.b $1B dc.b $94 ; ? dc.b $1E dc.b $56 ; V dc.b $21 ; ! dc.b $18 dc.b $23 ; # dc.b $DA ; ? dc.b $26 ; & dc.b $9C ; ? dc.b $29 ; ) dc.b $5E ; ^ dc.b $2C ; , dc.b $20 OISTER_KV_OIL_PRESSURE_ENABLE_LEVEL:dc.b 5 ; Abnormally low oil presure level which will cause engine damage if sustained. ; kPa dc.b $84 ; ? dc.b 8 dc.b $46 ; F dc.b $A dc.b $34 ; 4 dc.b $C dc.b $22 ; " dc.b $E dc.b $58 ; X dc.b $10 dc.b $46 ; F dc.b $12 dc.b $7A ; z dc.b $14 dc.b $8C ; ? dc.b $16 dc.b $C1 ; ? dc.b $18 dc.b $D2 ; ? dc.b $1A dc.b $E4 ; ? dc.b $1C dc.b $F5 ; ? dc.b $1F dc.b 7 dc.b $21 ; ! dc.b $18 dc.b $23 ; # dc.b $2A ; * OISTER_KV_OIL_TEMPERATURE_OFFSET:dc.w 0 ; DATA XREF: sub_80B94+27Ar ; Compensates the Maximum Lat G Seconds threshold for oil temperature. ; G_Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 OISTER_KV_RESET_INTEGRAL_LATERAL_GS:dc.b $30 ; 0 ; Threshold below which, the lateral_G integral gets reset to zero to avoid integral windup ; RPM dc.b 0 unk_FA00: dc.b $30 ; 0 ; DATA XREF: Calibration:ETC_SERIAL_DATA_KE_SHUTDOWN_VACUUM_TOO_LOWo ; Calibration:FUEL_CRANK_KE_SOAKTIMER_ENG_RUNTIME_LIMITo dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $3F ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $3F ; ? dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 OISTER_KA_OIL_BASE_LEVEL_LH:dc.b $7F ;  ; Left hand turn, threshold of Lateral G seconds, or an indication of amount of time spent as a function of G-forces ; G_Seconds dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 8 dc.b $CD ; ? dc.b 9 dc.b $E6 ; ? dc.b $B dc.b 0 dc.b $C dc.b $1A dc.b $D dc.b $33 ; 3 dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 8 dc.b $CD ; ? dc.b 9 dc.b $E6 ; ? dc.b $B dc.b 0 dc.b $C dc.b $1A dc.b $D dc.b $33 ; 3 dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 6 dc.b $AB ; ? dc.b 7 dc.b $80 ; ? dc.b 8 dc.b $55 ; U dc.b 9 dc.b $2B ; + dc.b $A dc.b 0 dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 4 dc.b $89 ; ? dc.b 5 dc.b $1A dc.b 5 dc.b $AB ; ? dc.b 6 dc.b $3C ; < dc.b 6 dc.b $CD ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 2 dc.b $66 ; f dc.b 2 dc.b $B3 ; ? dc.b 3 dc.b 0 dc.b 3 dc.b $4C ; L dc.b 3 dc.b $99 ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 2 dc.b $66 ; f dc.b 2 dc.b $B3 ; ? dc.b 3 dc.b 0 dc.b 3 dc.b $4C ; L dc.b 3 dc.b $99 ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 2 dc.b $66 ; f dc.b 2 dc.b $B3 ; ? dc.b 3 dc.b 0 dc.b 3 dc.b $4C ; L dc.b 3 dc.b $99 ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 2 dc.b $66 ; f dc.b 2 dc.b $B3 ; ? dc.b 3 dc.b 0 dc.b 3 dc.b $4C ; L dc.b 3 dc.b $99 ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 2 dc.b $66 ; f dc.b 2 dc.b $B3 ; ? dc.b 3 dc.b 0 dc.b 3 dc.b $4C ; L dc.b 3 dc.b $99 ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 2 dc.b $66 ; f dc.b 2 dc.b $B3 ; ? dc.b 3 dc.b 0 dc.b 3 dc.b $4C ; L dc.b 3 dc.b $99 ; ? OISTER_KA_OIL_BASE_LEVEL_RH:dc.b $7F ;  ; Right hand turn, threshold of Lateral G Seconds, or an indication of amount of time spent as function of G-forces ; G_Seconds dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 8 dc.b $CD ; ? dc.b 9 dc.b $E6 ; ? dc.b $B dc.b 0 dc.b $C dc.b $1A dc.b $D dc.b $33 ; 3 dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 8 dc.b $CD ; ? dc.b 9 dc.b $E6 ; ? dc.b $B dc.b 0 dc.b $C dc.b $1A dc.b $D dc.b $33 ; 3 dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 6 dc.b $AB ; ? dc.b 7 dc.b $80 ; ? dc.b 8 dc.b $55 ; U dc.b 9 dc.b $2B ; + dc.b $A dc.b 0 dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 4 dc.b $89 ; ? dc.b 5 dc.b $1A dc.b 5 dc.b $AB ; ? dc.b 6 dc.b $3C ; < dc.b 6 dc.b $CD ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 2 dc.b $66 ; f dc.b 2 dc.b $B3 ; ? dc.b 3 dc.b 0 dc.b 3 dc.b $4C ; L dc.b 3 dc.b $99 ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 2 dc.b $66 ; f dc.b 2 dc.b $B3 ; ? dc.b 3 dc.b 0 dc.b 3 dc.b $4C ; L dc.b 3 dc.b $99 ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 2 dc.b $66 ; f dc.b 2 dc.b $B3 ; ? dc.b 3 dc.b 0 dc.b 3 dc.b $4C ; L dc.b 3 dc.b $99 ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 2 dc.b $66 ; f dc.b 2 dc.b $B3 ; ? dc.b 3 dc.b 0 dc.b 3 dc.b $4C ; L dc.b 3 dc.b $99 ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 2 dc.b $66 ; f dc.b 2 dc.b $B3 ; ? dc.b 3 dc.b 0 dc.b 3 dc.b $4C ; L dc.b 3 dc.b $99 ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 2 dc.b $66 ; f dc.b 2 dc.b $B3 ; ? dc.b 3 dc.b 0 dc.b 3 dc.b $4C ; L dc.b 3 dc.b $99 ; ? OXYGEN_SENSOR_KE_DEV_CNTL_O2_HTR_AIRFLOW_LIMIT:dc.w $780 ; DATA XREF: sub_3DD56+22r ; The maximum airflow for O2 heater device control to be allowed. ; Grams_Per_Second OXYGEN_SENSOR_KE_O2_HEATER_OVERVOLTAGE_LIMIT:dc.w $1200 ; DATA XREF: sub_3DD56+6r ; sub_818F0+1Ar ; Ignition voltage greater than or equal to this value will shut the heaters off to protect against overvoltage. ; Volts OXYGEN_SENSOR_KE_OXYGEN_SENSOR_SCALE_FACTOR:dc.w $7FFC ; DATA XREF: sub_819C2+8r ; sub_819C2+28r ... ; Used to scale oxygen sensor analog input. ; mV_per_AD_Count OXYGEN_SENSOR_KE_INRUSH_CURRENT_STABILIZE_TIME:dc.w 8 ; DATA XREF: sub_81470+98r OXYGEN_SENSOR_KE_HEATER_INRUSH_OHMS_FILT_COEF:dc.w $B333 ; DATA XREF: sub_81470+C2r ; The coefficient to filter the heater inrush resistance. ; Filt Coef OXYGEN_SENSOR_KE_HEATER_OHMS_FILTER_COEF:dc.w $8000 ; DATA XREF: sub_817BC+82r ; The coefficient to filter the heater Resistance. ; Filter Coef OXYGEN_SENSOR_KE_HEATER_ON_SAMPLE_DELAY:dc.w $10 ; DATA XREF: sub_81470:loc_81544r ; The delay after the heaters are turned on during which part learning samples are being taken. ; Seconds OXYGEN_SENSOR_KE_LPL_ABS_TEMP_DIFF:dc.w $CD ; DATA XREF: sub_81470:loc_81648r OXYGEN_SENSOR_KE_LIMIT_LEARN_RUN_TIME_ABORT:dc.w $18 ; DATA XREF: sub_81470+15Ar ; The amount of time allowed for a limit part learn since engine run. ; Seconds OXYGEN_SENSOR_KE_MEASURED_HEATER_CURRENT_MIN:dc.w $40 ; DATA XREF: sub_817BC+18r ; The current below which values are considered to be invalid. ; Heater_Amps OXYGEN_SENSOR_KE_O2_HEATER_REZERO_OFF_TIME:dc.l $57E400 ; DATA XREF: sub_81470+10Ar ; The minimum amount of time that the engine has been off to allow a O2 sensor limit part error learn. ; Seconds OXYGEN_SENSOR_KE_O2_HEATER_REZERO_TEMP_DIFF:dc.w $CD ; DATA XREF: sub_81470+114r ; The maximum temperature difference between ambient and coolant to allow a O2 sensor limit part error learn. ; Degrees_C OXYGEN_SENSOR_KE_O2_HEATER_ROOM_TEMP:dc.w $200 ; DATA XREF: sub_81470+16Cr ; sub_817BC:loc_8189Ar ; The temperature offset used in the linear resistance temperature equation. ; Degrees_C OXYGEN_SENSOR_KE_POST_O2_HTR_STARTUP_COOL_MIN:dc.w $80 ; DATA XREF: sub_818F0+4Ar OXYGEN_SENSOR_KE_PRE_O2_SENSORS:dc.b 2 ; DATA XREF: sub_819C2+40r ; Determines the number of pre O2 sensors used in the system. ; 1-2 dc.b $FF OXYGEN_SENSOR_KE_RCOHT_LEARN_COOLANT_TEMP_MAX:dc.w $480 ; DATA XREF: sub_81470+136r ; The maximum coolant temperature to allow a O2 sensor limit part error learn. ; Degrees_C OXYGEN_SENSOR_KE_RCOHT_LEARN_COOLANT_TEMP_MIN:dc.w $FD00 ; DATA XREF: sub_81470+144r ; The minimum coolant temperature to allow O2 sensor limit part error learn. ; Degrees_C OXYGEN_SENSOR_KV_COLD_O2_HEATER_DELAY:dc.b 0 ; The amount of delay for each O2 heater to allow evaporation of any condensation in the exhaust system. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $25 ; % dc.b $80 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $25 ; % dc.b $80 ; ? OXYGEN_SENSOR_KV_HEATER_INRUSH_RESIST_MAX:dc.b $15 ; The maximum inrush resistance that can be added to the inrush resistancefilter. ; Ohms dc.b $3D ; = dc.b $2D ; - dc.b $48 ; H dc.b $15 dc.b $3D ; = dc.b $2D ; - dc.b $48 ; H OXYGEN_SENSOR_KV_LIMIT_PART_ERROR_MAX:dc.b 4 dc.b $F6 ; ? dc.b 9 dc.b $24 ; $ dc.b 4 dc.b $F6 ; ? dc.b 9 dc.b $24 ; $ OXYGEN_SENSOR_KV_LIMIT_PART_ERROR_MIN:dc.b $F7 ; ? dc.b $94 ; ? dc.b $F1 ; ? dc.b 0 dc.b $F7 ; ? dc.b $94 ; ? dc.b $F1 ; ? dc.b 0 OXYGEN_SENSOR_KV_O2_HEATER_CKT_VOLTAGE_ADJ:dc.b 0 ; Used to adjust from the ignition voltage reading to get to the heater voltage drop. ; Volts dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 OXYGEN_SENSOR_KV_O2_HEATER_PRESENT:dc.b 1 ; Indicates whether the O2 sensor is installed. 0 = NOT installed. 1 = installed. ; O2_Heater_Present_Type dc.b 1 dc.b 1 dc.b 1 OXYGEN_SENSOR_KV_O2_HEATER_ROOM_TEMP_RESIST:dc.b $B ; The heater resistance at KE_O2_Heater_Room_Temp degrees C. ; Ohms dc.b $33 ; 3 dc.b $1B dc.b $66 ; f dc.b $B dc.b $33 ; 3 dc.b $1B dc.b $66 ; f OXYGEN_SENSOR_KV_O2_HEATER_TURN_OFF_TEMP:dc.b $52 ; R ; Temperature above which the O2 Sensor Heaters have reached that the Heaters need to be turned OFF. ; Degrees_C_S dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 dc.b $52 ; R dc.b 0 OXYGEN_SENSOR_KV_O2_HEATER_TURN_ON_TEMP:dc.b $50 ; P ; Temperature below which the O2 Sensor Heaters have cooled down sufficiently and should be turned ON. ; Degrees_C_S dc.b $80 ; ? dc.b $50 ; P dc.b $80 ; ? dc.b $50 ; P dc.b $80 ; ? dc.b $50 ; P dc.b $80 ; ? OXYGEN_SENSOR_KA_O2_HEATER_DEGREES_PER_OHM:dc.b 5 ; The change in degrees C per 1 ohm resistance change in the oxygen sensor heater for each sensor. ; Degrees C dc.b $36 ; 6 dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $7E ; ~ dc.b 5 dc.b $C5 ; ? dc.b 6 dc.b $D dc.b 6 dc.b $55 ; U dc.b 6 dc.b $9D ; ? dc.b 6 dc.b $E5 ; ? dc.b 7 dc.b $2C ; , dc.b 7 dc.b $74 ; t dc.b 7 dc.b $BC ; ? dc.b 7 dc.b $BC ; ? dc.b 7 dc.b $BC ; ? dc.b 7 dc.b $BC ; ? dc.b 7 dc.b $BC ; ? dc.b 7 dc.b $BC ; ? dc.b 5 dc.b $1F dc.b 5 dc.b $3A ; : dc.b 5 dc.b $56 ; V dc.b 5 dc.b $71 ; q dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $A9 ; ? dc.b 5 dc.b $C4 ; ? dc.b 5 dc.b $E0 ; ? dc.b 5 dc.b $FB ; ? dc.b 6 dc.b $17 dc.b 6 dc.b $33 ; 3 dc.b 6 dc.b $4E ; N dc.b 6 dc.b $6A ; j dc.b 6 dc.b $86 ; ? dc.b 6 dc.b $A1 ; ? dc.b 6 dc.b $BD ; ? dc.b 6 dc.b $BD ; ? dc.b 6 dc.b $BD ; ? dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $7E ; ~ dc.b 5 dc.b $C5 ; ? dc.b 6 dc.b $D dc.b 6 dc.b $55 ; U dc.b 6 dc.b $9D ; ? dc.b 6 dc.b $E5 ; ? dc.b 7 dc.b $2C ; , dc.b 7 dc.b $74 ; t dc.b 7 dc.b $BC ; ? dc.b 7 dc.b $BC ; ? dc.b 7 dc.b $BC ; ? dc.b 7 dc.b $BC ; ? dc.b 7 dc.b $BC ; ? dc.b 7 dc.b $BC ; ? dc.b 5 dc.b $1F dc.b 5 dc.b $3A ; : dc.b 5 dc.b $56 ; V dc.b 5 dc.b $71 ; q dc.b 5 dc.b $8D ; ? dc.b 5 dc.b $A9 ; ? dc.b 5 dc.b $C4 ; ? dc.b 5 dc.b $E0 ; ? dc.b 5 dc.b $FB ; ? dc.b 6 dc.b $17 dc.b 6 dc.b $33 ; 3 dc.b 6 dc.b $4E ; N dc.b 6 dc.b $6A ; j dc.b 6 dc.b $86 ; ? dc.b 6 dc.b $A1 ; ? dc.b 6 dc.b $BD ; ? dc.b 6 dc.b $BD ; ? dc.b 6 dc.b $BD ; ? PTO_KE_LOW_SPEED_INHIBIT:dc.w 0 ; DATA XREF: sub_26DFA+19Ar ; sub_26DFA+1A2r ... ; Filtered engine speed below which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM PTO_KE_HIGH_SPEED_INHIBIT:dc.w 0 ; DATA XREF: sub_26DFA:loc_26FA8r ; sub_26DFA+1B6r ... ; Filtered engine speed above which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM PTO_KE_LOW_VEH_SPEED_DISENGAGE:dc.w 0 ; DATA XREF: sub_26DFA+268r ; sub_865A6+D6r ... ; Minimum allowed vehicle speed before Mobile PTO disengages. Also differentiates between Stationary and Mobile Variable PTO. ; MPH PTO_KE_HIGH_VEH_SPEED_DISENGAGE:dc.w 0 ; DATA XREF: sub_26DFA:loc_27070r ; sub_86AC4+E2r ... ; Maximum allowed HARDCODED vehicle speed for Mobile PTO. ; MPH PTO_KE_PTO_HIGH_IDLE_ENABLED:dc.b 0 ; DATA XREF: sub_869C0:loc_869DCr ; OS4:00086C50r ... ; Determines whether PTO High Idle mode will be allowed basedon the high idle switch input. ; BOOLEAN dc.b $FF PTO_KE_HIGH_IDLE_BULB_CHECK_TIME:dc.w 0 ; DATA XREF: sub_87698+Cr ; Time for illuminating the High Idle Lamp for a bulb check. ; Seconds PTO_KE_PTO_IDLE_ENGINE_SPEED_EEPROM:dc.b 0 ; DATA XREF: OS4:00086C0Ar ; PTO idle engine speed when PTO control is entered. ALSO the High Idle engine speed. ; RPM PTO_KE_PTO_MAX_ENGINE_SPEED_EEPROM:dc.b 0 ; DATA XREF: OS4:00086BFCr ; Maximum allowed Engine Speed for PTO control. ; RPM PTO_KE_SET_ENGINE_SPEED_EEPROM:dc.b 0 ; DATA XREF: OS4:00086C18r ; Preset PTO engine speed when SET is pressed. ; RPM PTO_KE_RESUME_ENGINE_SPEED_EEPROM:dc.b 0 ; DATA XREF: OS4:00086C26r ; Preset PTO engine speed when RESUME is pressed. ; RPM PTO_KE_PTO_MAX_VEHICLE_SPEED_EEPROM:dc.b 0 ; DATA XREF: OS4:00086C34r ; Maximum allowed vehicle speed for Mobile Variable PTO control. ; MPH dc.b $FF PTO_KE_PTO_RAISE_ENGINE_SPD_DLY_TIME:dc.w 0 ; DATA XREF: sub_8671C+134r ; Time after engaging PTO Relay before raising the engine speed. ; Seconds PTO_KE_PTO_RLY_ENGAGE_MAX_SPEED_EEPR:dc.b 0 ; DATA XREF: OS4:00086C42r ; Max allowed engine speed for engaging PTO relay. ; RPM PTO_KV_DESIRED_OPTION_EEPROM_DEFAULT:dc.b 0 ; DATA XREF: OS4:00086BEEr ; Default PTO & Engine Shutdown option modes to be used before EEPROM is dealer programmed. ; BOOLEAN PTO_CONTROL_KE_PTO_INTEGRATOR_HIGH:dc.w 0 ; DATA XREF: sub_8600A:loc_8620Er ; Integrator maximum value while PTO is engaged. ; RPM PTO_CONTROL_KE_PTO_INTEGRATOR_LOW:dc.w 0 ; DATA XREF: sub_8600A:loc_8621Er ; Integrator minimum value while PTO is engaged. ; RPM PTO_CONTROL_KE_PTO_THROTTLE_AREA_LIMIT:dc.w 0 ; DATA XREF: sub_859CC:loc_85CC8r ; Maximum desired throttle area that PTO can request. ; Percent PTO_CONTROL_KE_HYSTERESIS:dc.w 0 ; DATA XREF: sub_859CC+170r ; Hysteresis constant. ; RPM PTO_CONTROL_KE_SCHEDULED_ACCEL_GAIN_OVER:dc.w 0 ; DATA XREF: sub_8600A+A0r ; Overspeed scheduled acceleration rate gain. ; RPM_Per_Second PTO_CONTROL_KE_SCHEDULED_ACCEL_GAIN_UNDER:dc.w 0 ; DATA XREF: sub_8600A+12Ar ; Underspeed scheduled acceleration rate gain. ; RPM_Per_Second PTO_CONTROL_KE_PTO_ENG_SPEED_DELTA_HIGH:dc.w 0 ; DATA XREF: sub_8600A:loc_861C6r ; sub_8600A+1C4r ; Acceleration error maximum value and maximum integrator increment per 100ms. ; RPM per 100ms PTO_CONTROL_KE_PTO_ENG_SPEED_DELTA_LOW:dc.w 0 ; DATA XREF: sub_8600A:loc_861D6r ; sub_8600A+1D4r ; Acceleration error minimum value and maximum integrator decrement per 100ms. ; RPM per 100ms PTO_CONTROL_KV_PTO_BARO_COMPENSATION:dc.b 0 ; Adjusts the PTO desired throttle area to compensate for ambient pressure. ; Scaler dc.b 0 dc.b 0 dc.b 0 unk_FDB2: dc.b 0 ; DATA XREF: Calibration:FUEL_O2_KV_POST_OXYGEN_INT_OFFSET_MINo dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 PTO_CONTROL_KV_GAIN_TABLE:dc.b 0 ; Effective Speed Error vs PTO Desired Throttle Area, Gain Table 0. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 PTO_CONTROL_KA_VARIABLE_GAIN_WITH_SPEED:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 PTO_CONTROL_KA_VELOCITY_COMPENSATION:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_FF4A: dc.b 0 ; DATA XREF: Calibration:SPARK_ADVANCE_KV_IDLE_FLARE_CONTROLo dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_FFA0: dc.b 0 ; DATA XREF: Calibration:XDTP_TEMP_KE_TEMP_PERF_ENGINE_RUN_TIMEo ; Calibration:XDTP_TEMP_KE_TEMP_PERF_MPH_OUTPUT_SPD_TIMEo ... dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_FFD2: dc.b 0 ; DATA XREF: Calibration:SPARK_ADVANCE_KV_IDLE_OVERSPEED_ERRORo dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_10000: dc.b 0 ; DATA XREF: Calibration:XTCC_CONTROL_KE_SHIFT_STABILIZATION_ENABLEo ; sub_4D13A+212o ... unk_10001: dc.b 0 ; DATA XREF: Calibration:FUEL_IO_KV_BANK_FOR_CYLINDERo ; Calibration:0000F310o ... unk_10002: dc.b 0 ; DATA XREF: Calibration:0000F346o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 PTO_CONTROL_KE_PTO_ENG_SPEED_FILTER:dc.w 1 ; DATA XREF: sub_859CC+48r ; Filter coefficient for engine speed for the PTO control algorithm. ; Filter_Coefficient PTO_CONTROL_KE_OVERSPEED_DISENGAGE:dc.w 0 ; DATA XREF: sub_859CC+A2r ; Maximum overspeed value (PTO_Eng_Speed_Error - Demand_Register) allowed without a PTO disengage. ; RPM PTO_CONTROL_KE_PERFORM_BRK_OR_CLUTCH_TEST:dc.b 0 ; DATA XREF: sub_859CC+8r ; Brake before PTO security option. If TRUE, the brake or clutch input must be asserted before PTO can be enabled. ; BOOLEAN dc.b $FF PTO_CONTROL_KE_PTO_EFF_SPD_ERROR_MAX:dc.w 0 ; DATA XREF: OS4:00087114r ; OS4:00087158r ... ; Maximum value effective speed error can be. ; RPM PTO_CONTROL_KE_PTO_INTEGRATOR_GAIN:dc.w 0 ; DATA XREF: sub_8600A:loc_86166r ; Integrator gain when not in Resume or Accel modes. ; Multiplier_0_to_1 PTO_MANAGE_KE_ACCEL_TERMINATION_OVERSHOOT:dc.w 0 ; DATA XREF: sub_8688E+76r ; sub_8688E+BAr PTO_MANAGE_KE_RESUME_VS_ACCEL_TIME:dc.w 0 ; DATA XREF: sub_8688E+9Cr PTO_MANAGE_KE_PTO_SET_TIME:dc.w 0 ; DATA XREF: sub_853A2+174r ; The minimum amount of time the S/C switch must be depressed in order to move to engaged upon the release of the switch. ; Seconds PTO_MANAGE_KE_TAP_DOWN_TIMEOUT:dc.w 0 ; DATA XREF: sub_853A2+29Cr PTO_MANAGE_KE_TAP_DOWN_SPEED_HIGH:dc.w 0 ; DATA XREF: sub_853A2+2B0r PTO_MANAGE_KE_TAP_DOWN_VS_COAST_TIME:dc.w 0 ; DATA XREF: sub_853A2+4D6r PTO_MANAGE_KE_TAP_INCREMENT:dc.w 0 ; DATA XREF: sub_853A2+282r ; sub_853A2+2DAr ... ; The tap up/down increment to memory speed and demand register. ; RPM PTO_MANAGE_KE_TAP_UP_SPEED_HIGH:dc.w 0 ; DATA XREF: sub_853A2+35Cr ; sub_8688E+40r PTO_MANAGE_KE_TAP_UP_SPEED_LOW:dc.w 0 ; DATA XREF: sub_853A2+350r PTO_MANAGE_KE_TAP_UP_VS_ACCEL_TIME:dc.w 0 ; DATA XREF: sub_853A2+43Er PTO_MANAGE_KV_ACCEL_STEP_FROM_SBE:dc.b 0 ; DATA XREF: sub_853A2:loc_857A0o ; An additional term added to the Demand Register at the initiation of an Accel in order to obtain more Desired Throttle Area. ; RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 PTO_MANAGE_KV_ACCEL_STEP_FROM_ENG:dc.b 0 ; DATA XREF: sub_853A2:loc_85820o ; An additional term added to the Demand Register at the initiation of an Accel in order to obtain more Desired Throttle Area. ; RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 PTO_MANAGE_KV_RESUME_RATE:dc.b 0 ; DATA XREF: sub_8640C:loc_86468o ; The resume rate increment per 100 ms. ; RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 PTO_MANAGE_KV_ACCEL_RATE:dc.b 0 ; DATA XREF: sub_8640C:loc_864F8o ; The accel rate increment per 100 ms. ; RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 PTO_MANAGE_KE_COAST_RATE:dc.w 0 ; DATA XREF: sub_8640C+104r ; The coast rate increment per 100 ms. ; RPM PTO_MANAGE_KE_TAP_RATE:dc.w 0 ; DATA XREF: sub_8640C+12Cr ; sub_8640C+164r ; The tap up/down rate increment per 100 ms. ; RPM SHIFT_LIGHT_KE_REASONABLE_ENGINE_SPEED:dc.w $FFFF ; DATA XREF: sub_4A71A+292r SHIFT_LIGHT_KV_SHIFT_MAP_THRESHOLD:dc.w $14FF ; DATA XREF: sub_4A71A+194r ; Turn off shift light when MAP is below this threshold. ; kPa dc.b $14 dc.b $FF dc.b $14 dc.b $FF dc.b $14 dc.b $FF SHIFT_LIGHT_KE_TEMPERATURE_LO:dc.w 0 ; DATA XREF: sub_4A71A+162r ; KSLTMPA - The lowest coolant temperature at which to indicate a good shift point. ; Degrees_C SHIFT_LIGHT_KV_ENGINE_SPEED_LO:dc.w 0 ; DATA XREF: sub_4A71A+CCr dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SHIFT_LIGHT_KV_THROTTLE_LO:dc.w 0 ; DATA XREF: sub_4A71A+180r ; KTPSNLTA, KTPSNLTC - The lowest throttle at which to indicate a good shift point from each upshiftable gear. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SHIFT_LIGHT_KA_THROTTLE_HI_BASIC:dc.b 0 ; DATA XREF: sub_4A71A+E4o ; Throttle must be less than or equal to this value to permit a good shift point. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SHIFT_LIGHT_KV_THROTTLE_HI_HYST:dc.w 0 ; DATA XREF: sub_4A71A+120r ; Hysteresis value subtracted from KE_Throttle_Hi when the shift light is off. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SHIFT_LIGHT_KV_THROTTLE_HI_BARO_CORRECTION:dc.b $FF ; DATA XREF: sub_4A71A:loc_4A85Co ; Barometric correction used in determining the highest throttle allowed that indicates a good shift point. ; Gain 0-16 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF SHIFT_LIGHT_KE_SHIFT_DURATION:dc.w $FFFF ; DATA XREF: sub_4A71A+1FCr ; sub_4A71A+236r ; Max on time for the shift light. ; Seconds SHIFT_LIGHT_KV_GEAR_RATIO_LO:dc.w 0 ; DATA XREF: sub_4A71A:loc_4A782r ; KTRNGR12, KTRNGR23, KTRNGR34, KTRNGR45 - The lowest gear ratio (input/output) recognized as each upshiftable gear. ; Input/Out word_1014C: dc.w 0 ; DATA XREF: sub_4A71A:loc_4A78Er word_1014E: dc.w 0 ; DATA XREF: sub_4A71A:loc_4A79Ar word_10150: dc.w 0 ; DATA XREF: sub_4A71A:loc_4A7A6r SHIFT_LIGHT_KV_COLD_ENGINE_SPEED_LO:dc.w 0 ; DATA XREF: sub_4A71A+BEr ; Minimum engine speed allowed before indicating a good shift point when the engine is cold. ; RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SHIFT_LIGHT_KE_COLD_TEMP_LO:dc.w 0 ; DATA XREF: sub_4A71A+B2r ; Below this temperature, use the cold engine speed table to determine minimum engine speed for a good shift point. ; Degrees_C SHIFT_LIGHT_KV_DELAY_TIME:dc.b $FF ; DATA XREF: sub_4A71A:loc_4A75Eo ; Delay time from a good shift point to when the light will be turned on. ; Seconds dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF SHIFT_LIGHT_KE_CLUTCH_TRANS_INHIBIT_TIME:dc.w 0 ; DATA XREF: sub_4A71A+1B4r ; Number of shift light loops to prevent a good shift point condition following the release of the clutch pedal. ; Seconds SHIFT_LIGHT_KE_EXECUTE_UPSHIFT_LIGHT_ALGORIT:dc.b 0 ; DATA XREF: sub_4A71A+8r ; Set to TRUE if the upshift light logic should be executed. ; Boolean SHIFT_LIGHT_KE_CONTROL_UPSHIFT_LIGHT:dc.b 0 ; DATA XREF: sub_4A71A:loc_4A9C0r ; Set to TRUE if the upshift light logic should directly controlthe upshift light PCM output. (Class2 message not used). ; Boolean SPARK_ADVANCE_KA_CAT_LIGHTOFF_SPARK_RETARD:dc.b 0 ; DATA XREF: sub_3AF0C+92o ; The amount of spark retard to apply to lightoff the catalytic converter. ; Degrees_POSITIVE dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 2 unk_10201: dc.b $22 ; " ; DATA XREF: OS4:off_8A6F0o dc.b 2 unk_10203: dc.b $22 ; " ; DATA XREF: Calibration:FUEL_IO_KA_FIRST_CYL_TO_GET_SEQUENTIALo ; Calibration:DI_EOS_KV_EOSD_SENSOR_INDEXo ... dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 2 dc.b $22 ; " dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 0 dc.b 0 SurfaceTable_17x29_B5901___Catalytic_Converter_Warm_up_Spark_Retard:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_ADVANCE_KA_MBT_SPARK:dc.b 8 ; DATA XREF: sub_3A754+E8o ; Spark Advance for mean best timing. ; Degrees dc.b $2E ; . dc.b 8 dc.b $89 ; ? dc.b 8 dc.b $B6 ; ? dc.b 8 dc.b $B6 ; ? dc.b 9 dc.b $6C ; l dc.b 9 dc.b $C7 ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $3F ; ? dc.b 9 dc.b $3F ; ? dc.b 9 dc.b $11 dc.b 9 dc.b $11 dc.b 8 dc.b $B6 ; ? dc.b 8 dc.b $9F ; ? dc.b 8 dc.b $89 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 6 dc.b $BA ; ? dc.b 7 dc.b $15 dc.b 7 dc.b $43 ; C dc.b 7 dc.b $43 ; C dc.b 7 dc.b $F9 ; ? dc.b 8 dc.b $54 ; T dc.b 7 dc.b $FD ; ? dc.b 7 dc.b $A2 ; ? dc.b 7 dc.b $A2 ; ? dc.b 7 dc.b $9E ; ? dc.b 7 dc.b $9E ; ? dc.b 7 dc.b $43 ; C dc.b 7 dc.b $E6 ; ? dc.b 6 dc.b $EC ; ? dc.b 7 dc.b $47 ; G dc.b 7 dc.b $47 ; G unk_10680: dc.b 7 ; DATA XREF: Calibration:XMSN_IO_KE_MIN_ENGINE_RUN_TIMEo dc.b $47 ; G dc.b 7 dc.b $47 ; G dc.b 7 dc.b $47 ; G dc.b 7 dc.b $47 ; G dc.b 4 dc.b $EF ; ? dc.b 5 dc.b $97 ; ? dc.b 6 dc.b $37 ; 7 dc.b 6 dc.b $37 ; 7 dc.b 6 dc.b $ED ; ? dc.b 6 dc.b $FB ; ? dc.b 7 dc.b $39 ; 9 dc.b 6 dc.b $DE ; ? dc.b 6 dc.b $DE ; ? dc.b 6 dc.b $92 ; ? dc.b 6 dc.b $92 ; ? dc.b 6 dc.b $37 ; 7 dc.b 6 dc.b $A0 ; ? dc.b 6 dc.b $75 ; u dc.b 6 dc.b $83 ; ? dc.b 6 dc.b $83 ; ? dc.b 6 dc.b $83 ; ? dc.b 6 dc.b $83 ; ? dc.b 6 dc.b $83 ; ? dc.b 6 dc.b $83 ; ? dc.b 3 dc.b $85 ; ? dc.b 4 dc.b $81 ; ? dc.b 5 dc.b $7E ; ~ dc.b 5 dc.b $C5 ; ? dc.b 5 dc.b $ED ; ? dc.b 6 dc.b $34 ; 4 dc.b 6 dc.b $8F ; ? dc.b 6 dc.b $7B ; { dc.b 6 dc.b $34 ; 4 dc.b 5 dc.b $D9 ; ? dc.b 5 dc.b $D9 ; ? dc.b 5 dc.b $7E ; ~ dc.b 5 dc.b $D9 ; ? dc.b 5 dc.b $D9 ; ? dc.b 5 dc.b $D9 ; ? dc.b 5 dc.b $D9 ; ? dc.b 5 dc.b $D9 ; ? dc.b 5 dc.b $D9 ; ? dc.b 5 dc.b $D9 ; ? dc.b 5 dc.b $D9 ; ? dc.b 2 dc.b $F2 ; ? dc.b 4 dc.b 3 dc.b 5 dc.b $14 dc.b 5 dc.b $6F ; o dc.b 5 dc.b $B0 ; ? dc.b 5 dc.b $EB ; ? dc.b 6 dc.b $25 ; % dc.b 6 dc.b $25 ; % dc.b 6 dc.b $B dc.b 5 dc.b $F1 ; ? dc.b 5 dc.b $6F ; o dc.b 5 dc.b $55 ; U dc.b 5 dc.b $6F ; o dc.b 5 dc.b $B0 ; ? dc.b 5 dc.b $B0 ; ? dc.b 5 dc.b $B0 ; ? dc.b 5 dc.b $B0 ; ? dc.b 5 dc.b $B0 ; ? dc.b 5 dc.b $B0 ; ? dc.b 5 dc.b $B0 ; ? dc.b 2 dc.b $9D ; ? dc.b 3 dc.b $AE ; ? dc.b 4 dc.b $BF ; ? dc.b 5 dc.b $1A dc.b 5 dc.b $75 ; u dc.b 5 dc.b $C0 ; ? dc.b 5 dc.b $D0 ; ? dc.b 5 dc.b $D0 ; ? dc.b 5 dc.b $D0 ; ? dc.b 5 dc.b $96 ; ? dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $3B ; ; dc.b 5 dc.b $3B ; ; dc.b 5 dc.b $3B ; ; dc.b 5 dc.b $3B ; ; dc.b 5 dc.b $3B ; ; dc.b 5 dc.b $3B ; ; dc.b 5 dc.b $3B ; ; dc.b 2 dc.b $63 ; c dc.b 3 dc.b $59 ; Y dc.b 4 dc.b $6A ; j dc.b 4 dc.b $C5 ; ? dc.b 5 dc.b $20 dc.b 5 dc.b $7B ; { dc.b 5 dc.b $7B ; { dc.b 5 dc.b $7B ; { dc.b 5 dc.b $7B ; { dc.b 5 dc.b $20 dc.b 4 dc.b $FA ; ? dc.b 4 dc.b $FA ; ? dc.b 4 dc.b $FA ; ? dc.b 5 dc.b $2F ; / dc.b 5 dc.b $2F ; / dc.b 5 dc.b $2F ; / dc.b 5 dc.b $2F ; / dc.b 5 dc.b $2F ; / dc.b 5 dc.b $2F ; / dc.b 5 dc.b $2F ; / dc.b 2 dc.b $1C dc.b 2 dc.b $CB ; ? dc.b 4 dc.b $10 dc.b 4 dc.b $6B ; k dc.b 4 dc.b $C6 ; ? dc.b 5 dc.b $21 ; ! dc.b 5 dc.b $55 ; U dc.b 5 dc.b $21 ; ! dc.b 5 dc.b $55 ; U dc.b 4 dc.b $FA ; ? dc.b 4 dc.b $FA ; ? dc.b 4 dc.b $FA ; ? dc.b 4 dc.b $FA ; ? dc.b 4 dc.b $EE ; ? dc.b 5 dc.b $21 ; ! dc.b 5 dc.b $21 ; ! dc.b 5 dc.b $21 ; ! dc.b 5 dc.b $21 ; ! dc.b 5 dc.b $21 ; ! dc.b 5 dc.b $21 ; ! dc.b 1 dc.b $C2 ; ? dc.b 2 dc.b $4A ; J dc.b 3 dc.b $B6 ; ? dc.b 4 dc.b $11 dc.b 4 dc.b $6C ; l dc.b 4 dc.b $C7 ; ? dc.b 5 dc.b $22 ; " dc.b 4 dc.b $FA ; ? dc.b 4 dc.b $EF ; ? dc.b 4 dc.b $94 ; ? dc.b 4 dc.b $94 ; ? dc.b 4 dc.b $94 ; ? dc.b 4 dc.b $94 ; ? dc.b 5 dc.b 5 dc.b 4 dc.b $FA ; ? dc.b 4 dc.b $FA ; ? dc.b 4 dc.b $FA ; ? dc.b 4 dc.b $FA ; ? dc.b 4 dc.b $FA ; ? dc.b 4 dc.b $FA ; ? dc.b 1 dc.b $AB ; ? dc.b 2 dc.b $33 ; 3 dc.b 3 dc.b $9F ; ? dc.b 3 dc.b $FB ; ? dc.b 4 dc.b $56 ; V dc.b 4 dc.b $B1 ; ? dc.b 5 dc.b $C dc.b 4 dc.b $E4 ; ? dc.b 4 dc.b $D9 ; ? dc.b 4 dc.b $7E ; ~ dc.b 4 dc.b $7E ; ~ dc.b 4 dc.b $7E ; ~ dc.b 4 dc.b $7E ; ~ dc.b 4 dc.b $EF ; ? dc.b 4 dc.b $EF ; ? dc.b 4 dc.b $EF ; ? dc.b 4 dc.b $EF ; ? dc.b 4 dc.b $EF ; ? dc.b 4 dc.b $EF ; ? dc.b 4 dc.b $EF ; ? dc.b 1 dc.b $94 ; ? dc.b 2 dc.b $1D dc.b 3 dc.b $89 ; ? dc.b 3 dc.b $E4 ; ? dc.b 4 dc.b $3F ; ? dc.b 4 dc.b $9A ; ? dc.b 4 dc.b $F5 ; ? dc.b 4 dc.b $CD ; ? dc.b 4 dc.b $C2 ; ? dc.b 4 dc.b $67 ; g dc.b 4 dc.b $67 ; g dc.b 4 dc.b $67 ; g dc.b 4 dc.b $67 ; g dc.b 4 dc.b $D8 ; ? dc.b 4 dc.b $D8 ; ? dc.b 4 dc.b $D8 ; ? dc.b 4 dc.b $D8 ; ? dc.b 4 dc.b $D8 ; ? dc.b 4 dc.b $D8 ; ? dc.b 4 dc.b $D8 ; ? dc.b 1 dc.b $7D ; } dc.b 2 dc.b 6 dc.b 3 dc.b $72 ; r dc.b 3 dc.b $CD ; ? dc.b 4 dc.b $28 ; ( dc.b 4 dc.b $83 ; ? dc.b 4 dc.b $DE ; ? dc.b 4 dc.b $B6 ; ? unk_10800: dc.b 4 ; DATA XREF: sub_35D1C+1F6o dc.b $AB ; ? dc.b 4 dc.b $50 ; P dc.b 4 dc.b $50 ; P dc.b 4 dc.b $50 ; P dc.b 4 dc.b $50 ; P dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 1 dc.b $7D ; } dc.b 2 dc.b 6 dc.b 3 dc.b $72 ; r dc.b 3 dc.b $CD ; ? dc.b 4 dc.b $28 ; ( dc.b 4 dc.b $83 ; ? dc.b 4 dc.b $DE ; ? dc.b 4 dc.b $B6 ; ? dc.b 4 dc.b $AB ; ? dc.b 4 dc.b $50 ; P dc.b 4 dc.b $50 ; P dc.b 4 dc.b $50 ; P dc.b 4 dc.b $50 ; P dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 1 dc.b $7D ; } dc.b 2 dc.b 6 dc.b 3 dc.b $72 ; r dc.b 3 dc.b $CD ; ? dc.b 4 dc.b $28 ; ( dc.b 4 dc.b $83 ; ? dc.b 4 dc.b $DE ; ? dc.b 4 dc.b $B6 ; ? dc.b 4 dc.b $AB ; ? dc.b 4 dc.b $50 ; P dc.b 4 dc.b $50 ; P dc.b 4 dc.b $50 ; P dc.b 4 dc.b $50 ; P dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 1 dc.b $7D ; } dc.b 2 dc.b 6 dc.b 3 dc.b $72 ; r dc.b 3 dc.b $CD ; ? dc.b 4 dc.b $28 ; ( dc.b 4 dc.b $83 ; ? dc.b 4 dc.b $DE ; ? dc.b 4 dc.b $B6 ; ? dc.b 4 dc.b $AB ; ? dc.b 4 dc.b $50 ; P dc.b 4 dc.b $50 ; P dc.b 4 dc.b $50 ; P dc.b 4 dc.b $50 ; P dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? dc.b 4 dc.b $C1 ; ? SPARK_ADVANCE_KA_MAIN_OT_HIGH_OCTANE:dc.b 5 ; DATA XREF: sub_39F12+BCo ; sub_3C938+42o ; This calibration determines base spark 'good fuel' contribution to spark advance. ; Degrees dc.b $23 ; # dc.b 5 dc.b $7A ; z dc.b 5 dc.b $CC ; ? dc.b 6 dc.b $10 dc.b 6 dc.b $50 ; P dc.b 6 dc.b $86 ; ? dc.b 6 dc.b $B8 ; ? dc.b 6 dc.b $E1 ; ? dc.b 7 dc.b 6 dc.b 7 dc.b $21 ; ! dc.b 7 dc.b $38 ; 8 dc.b 7 dc.b $5C ; \ dc.b 7 dc.b $6A ; j dc.b 7 dc.b $6E ; n dc.b 7 dc.b $6A ; j dc.b 7 dc.b $61 ; a dc.b 7 dc.b $53 ; S dc.b 7 dc.b $45 ; E dc.b 7 dc.b $3C ; < dc.b 7 dc.b $3C ; < dc.b 7 dc.b $3C ; < dc.b 7 dc.b $3C ; < dc.b 7 dc.b $3C ; < dc.b 7 dc.b $3C ; < dc.b 7 dc.b $3C ; < dc.b 5 dc.b $1A dc.b 5 dc.b $75 ; u dc.b 5 dc.b $C3 ; ? dc.b 6 dc.b $B dc.b 6 dc.b $4B ; K dc.b 6 dc.b $82 ; ? dc.b 6 dc.b $AF ; ? dc.b 6 dc.b $D8 ; ? dc.b 6 dc.b $FD ; ? dc.b 7 dc.b $1C dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $53 ; S dc.b 7 dc.b $65 ; e dc.b 7 dc.b $6A ; j dc.b 7 dc.b $65 ; e dc.b 7 dc.b $58 ; X dc.b 7 dc.b $4A ; J dc.b 7 dc.b $41 ; A dc.b 7 dc.b $38 ; 8 dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $33 ; 3 dc.b 5 dc.b $11 dc.b 5 dc.b $68 ; h dc.b 5 dc.b $B5 ; ? dc.b 5 dc.b $FE ; ? dc.b 6 dc.b $3D ; = dc.b 6 dc.b $74 ; t dc.b 6 dc.b $A6 ; ? dc.b 6 dc.b $CF ; ? dc.b 6 dc.b $EF ; ? dc.b 7 dc.b $F dc.b 7 dc.b $26 ; & dc.b 7 dc.b $45 ; E dc.b 7 dc.b $58 ; X dc.b 7 dc.b $5C ; \ dc.b 7 dc.b $58 ; X dc.b 7 dc.b $4A ; J dc.b 7 dc.b $3C ; < dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $2A ; * dc.b 7 dc.b $21 ; ! dc.b 7 dc.b $21 ; ! dc.b 7 dc.b $21 ; ! dc.b 7 dc.b $21 ; ! dc.b 7 dc.b $21 ; ! dc.b 7 dc.b $21 ; ! dc.b 4 dc.b $F6 ; ? dc.b 5 dc.b $51 ; Q dc.b 5 dc.b $9E ; ? dc.b 5 dc.b $E7 ; ? dc.b 6 dc.b $22 ; " dc.b 6 dc.b $5D ; ] dc.b 6 dc.b $8B ; ? dc.b 6 dc.b $B4 ; ? dc.b 6 dc.b $D8 ; ? dc.b 6 dc.b $F8 ; ? dc.b 7 dc.b $F dc.b 7 dc.b $2F ; / dc.b 7 dc.b $41 ; A dc.b 7 dc.b $45 ; E dc.b 7 dc.b $41 ; A dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $26 ; & dc.b 7 dc.b $18 dc.b 7 dc.b $13 dc.b 6 dc.b $FD ; ? dc.b 6 dc.b $FD ; ? dc.b 6 dc.b $FD ; ? dc.b 6 dc.b $FD ; ? dc.b 6 dc.b $FD ; ? dc.b 6 dc.b $FD ; ? dc.b 4 dc.b $52 ; R dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $2C ; , dc.b 5 dc.b $83 ; ? dc.b 5 dc.b $C7 ; ? dc.b 6 dc.b 7 dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $66 ; f dc.b 6 dc.b $8F ; ? dc.b 6 dc.b $AF ; ? dc.b 6 dc.b $C6 ; ? dc.b 6 dc.b $EA ; ? dc.b 6 dc.b $FD ; ? dc.b 7 dc.b 1 dc.b 6 dc.b $F8 ; ? dc.b 6 dc.b $EA ; ? dc.b 6 dc.b $D8 ; ? dc.b 6 dc.b $CB ; ? dc.b 6 dc.b $BD ; ? dc.b 6 dc.b $BD ; ? dc.b 6 dc.b $BD ; ? dc.b 6 dc.b $BD ; ? dc.b 6 dc.b $C1 ; ? dc.b 6 dc.b $C1 ; ? dc.b 6 dc.b $C1 ; ? dc.b 3 dc.b $AA ; ? dc.b 4 dc.b $32 ; 2 dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $FA ; ? dc.b 5 dc.b $4C ; L dc.b 5 dc.b $8C ; ? dc.b 5 dc.b $C7 ; ? dc.b 5 dc.b $F5 ; ? dc.b 6 dc.b $1E dc.b 6 dc.b $3D ; = dc.b 6 dc.b $59 ; Y dc.b 6 dc.b $79 ; y dc.b 6 dc.b $86 ; ? dc.b 6 dc.b $86 ; ? dc.b 6 dc.b $7D ; } dc.b 6 dc.b $70 ; p dc.b 6 dc.b $5D ; ] dc.b 6 dc.b $50 ; P dc.b 6 dc.b $4B ; K dc.b 6 dc.b $4B ; K dc.b 6 dc.b $4B ; K dc.b 6 dc.b $4B ; K dc.b 6 dc.b $50 ; P dc.b 6 dc.b $50 ; P dc.b 6 dc.b $50 ; P dc.b 3 dc.b $A dc.b 3 dc.b $A5 ; ? dc.b 3 dc.b $E9 ; ? dc.b 4 dc.b $72 ; r dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $28 ; ( dc.b 5 dc.b $71 ; q dc.b 5 dc.b $A3 ; ? dc.b 5 dc.b $CC ; ? dc.b 5 dc.b $F0 ; ? dc.b 6 dc.b $B dc.b 6 dc.b $2B ; + dc.b 6 dc.b $34 ; 4 dc.b 6 dc.b $30 ; 0 dc.b 6 dc.b $27 ; ' dc.b 6 dc.b $19 dc.b 6 dc.b $10 dc.b 6 dc.b $10 dc.b 6 dc.b $1E dc.b 6 dc.b $22 ; " dc.b 6 dc.b $22 ; " dc.b 6 dc.b $22 ; " dc.b 6 dc.b $22 ; " dc.b 6 dc.b $22 ; " dc.b 6 dc.b $22 ; " dc.b 2 dc.b $70 ; p dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $B3 ; ? dc.b 4 dc.b $2E ; . dc.b 4 dc.b $72 ; r dc.b 4 dc.b $A4 ; ? dc.b 4 dc.b $E8 ; ? dc.b 5 dc.b $23 ; # dc.b 5 dc.b $75 ; u dc.b 5 dc.b $BE ; ? dc.b 5 dc.b $D5 ; ? dc.b 5 dc.b $F9 ; ? dc.b 6 dc.b 2 dc.b 5 dc.b $F9 ; ? dc.b 5 dc.b $EC ; ? dc.b 5 dc.b $DE ; ? dc.b 5 dc.b $DE ; ? dc.b 5 dc.b $EC ; ? dc.b 6 dc.b $14 dc.b 6 dc.b $14 dc.b 6 dc.b $14 dc.b 6 dc.b $14 dc.b 6 dc.b $14 dc.b 6 dc.b $14 dc.b 6 dc.b $14 dc.b 1 dc.b $DE ; ? dc.b 2 dc.b $AB ; ? dc.b 3 dc.b $4A ; J dc.b 3 dc.b $D7 ; ? dc.b 4 dc.b $17 dc.b 4 dc.b $4D ; M dc.b 4 dc.b $72 ; r dc.b 4 dc.b $B6 ; ? dc.b 5 dc.b $16 dc.b 5 dc.b $83 ; ? dc.b 5 dc.b $B5 ; ? dc.b 5 dc.b $D9 ; ? dc.b 5 dc.b $DE ; ? dc.b 5 dc.b $D5 ; ? dc.b 5 dc.b $C7 ; ? dc.b 5 dc.b $B9 ; ? dc.b 5 dc.b $B9 ; ? dc.b 5 dc.b $D0 ; ? dc.b 6 dc.b 7 dc.b 6 dc.b 7 dc.b 6 dc.b 7 dc.b 6 dc.b 7 dc.b 6 dc.b 7 dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 1 dc.b $5E ; ^ dc.b 2 dc.b $22 ; " dc.b 2 dc.b $C1 ; ? dc.b 3 dc.b $61 ; a dc.b 3 dc.b $BC ; ? dc.b 3 dc.b $E9 ; ? dc.b 4 dc.b $17 dc.b 4 dc.b $69 ; i dc.b 4 dc.b $F6 ; ? dc.b 5 dc.b $51 ; Q dc.b 5 dc.b $83 ; ? dc.b 5 dc.b $B0 ; ? dc.b 5 dc.b $CC ; ? dc.b 5 dc.b $BE ; ? dc.b 5 dc.b $A7 ; ? dc.b 5 dc.b $95 ; ? dc.b 5 dc.b $90 ; ? dc.b 5 dc.b $A3 ; ? dc.b 5 dc.b $D9 ; ? dc.b 5 dc.b $D9 ; ? dc.b 5 dc.b $DE ; ? dc.b 5 dc.b $DE ; ? dc.b 5 dc.b $DE ; ? dc.b 5 dc.b $DE ; ? dc.b 5 dc.b $DE ; ? dc.b 0 dc.b $E4 ; ? dc.b 1 dc.b $9A ; ? dc.b 2 dc.b $35 ; 5 dc.b 2 dc.b $DC ; ? dc.b 3 dc.b $5B ; [ dc.b 3 dc.b $96 ; ? dc.b 3 dc.b $D5 ; ? dc.b 4 dc.b $3B ; ; dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $28 ; ( dc.b 5 dc.b $55 ; U dc.b 5 dc.b $83 ; ? dc.b 5 dc.b $B0 ; ? dc.b 5 dc.b $B0 ; ? dc.b 5 dc.b $83 ; ? dc.b 5 dc.b $55 ; U dc.b 5 dc.b $55 ; U dc.b 5 dc.b $55 ; U dc.b 5 dc.b $55 ; U dc.b 5 dc.b $55 ; U dc.b 5 dc.b $55 ; U dc.b 5 dc.b $55 ; U dc.b 5 dc.b $55 ; U dc.b 5 dc.b $55 ; U dc.b 5 dc.b $55 ; U dc.b 0 dc.b $5B ; [ dc.b 1 dc.b $11 dc.b 1 dc.b $C7 ; ? dc.b 2 dc.b $70 ; p dc.b 2 dc.b $E5 ; ? dc.b 3 dc.b $3B ; ; dc.b 3 dc.b $77 ; w dc.b 3 dc.b $D2 ; ? dc.b 4 dc.b $89 ; ? dc.b 4 dc.b $E4 ; ? dc.b 5 dc.b $28 ; ( dc.b 5 dc.b $55 ; U dc.b 5 dc.b $83 ; ? dc.b 5 dc.b $83 ; ? dc.b 5 dc.b $55 ; U dc.b 5 dc.b $28 ; ( dc.b 4 dc.b $FA ; ? dc.b 4 dc.b $CD ; ? dc.b 4 dc.b $B6 ; ? dc.b 4 dc.b $B6 ; ? dc.b 4 dc.b $B6 ; ? dc.b 4 dc.b $B6 ; ? dc.b 4 dc.b $B6 ; ? dc.b 4 dc.b $B6 ; ? dc.b 4 dc.b $B6 ; ? dc.b 0 dc.b $2E ; . dc.b 0 dc.b $B6 ; ? dc.b 1 dc.b $6C ; l dc.b 2 dc.b $C dc.b 2 dc.b $94 ; ? dc.b 2 dc.b $EE ; ? dc.b 3 dc.b $37 ; 7 dc.b 3 dc.b $9A ; ? dc.b 4 dc.b $17 dc.b 4 dc.b $93 ; ? dc.b 4 dc.b $D2 ; ? dc.b 5 dc.b $16 dc.b 5 dc.b $28 ; ( dc.b 5 dc.b $28 ; ( dc.b 5 dc.b $D dc.b 4 dc.b $D2 ; ? dc.b 4 dc.b $76 ; v dc.b 4 dc.b $52 ; R dc.b 4 dc.b $44 ; D dc.b 4 dc.b $44 ; D dc.b 4 dc.b $44 ; D dc.b 4 dc.b $44 ; D dc.b 4 dc.b $44 ; D dc.b 4 dc.b $44 ; D dc.b 4 dc.b $44 ; D dc.b 0 dc.b 0 dc.b 0 dc.b $89 ; ? dc.b 1 dc.b $11 dc.b 1 dc.b $9A ; ? dc.b 2 dc.b $22 ; " dc.b 2 dc.b $AB ; ? dc.b 3 dc.b 6 dc.b 3 dc.b $61 ; a dc.b 3 dc.b $BC ; ? dc.b 4 dc.b $17 dc.b 4 dc.b $72 ; r dc.b 4 dc.b $CD ; ? dc.b 4 dc.b $FA ; ? dc.b 4 dc.b $FA ; ? dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $72 ; r dc.b 4 dc.b $29 ; ) dc.b 4 dc.b $20 dc.b 4 dc.b $17 dc.b 4 dc.b $17 dc.b 4 dc.b $17 dc.b 4 dc.b $17 dc.b 4 dc.b $17 dc.b 4 dc.b $17 dc.b 4 dc.b $17 dc.b 0 dc.b 0 dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $B6 ; ? dc.b 1 dc.b $3F ; ? dc.b 1 dc.b $C7 ; ? dc.b 2 dc.b $22 ; " dc.b 2 dc.b $7D ; } dc.b 3 dc.b 6 dc.b 3 dc.b $61 ; a dc.b 3 dc.b $BC ; ? dc.b 4 dc.b $17 dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $CD ; ? dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $44 ; D dc.b 4 dc.b $17 dc.b 4 dc.b 0 dc.b 3 dc.b $F7 ; ? dc.b 3 dc.b $E9 ; ? dc.b 3 dc.b $E9 ; ? dc.b 3 dc.b $E9 ; ? dc.b 3 dc.b $E9 ; ? dc.b 3 dc.b $E9 ; ? dc.b 3 dc.b $E9 ; ? dc.b 3 dc.b $E9 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $E4 ; ? dc.b 1 dc.b $4C ; L dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $F5 ; ? dc.b 2 dc.b $8F ; ? dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $8E ; ? dc.b 3 dc.b $E9 ; ? dc.b 4 dc.b $72 ; r dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $72 ; r dc.b 4 dc.b $17 dc.b 3 dc.b $E9 ; ? dc.b 3 dc.b $BC ; ? dc.b 3 dc.b $BC ; ? dc.b 3 dc.b $BC ; ? dc.b 3 dc.b $BC ; ? dc.b 3 dc.b $BC ; ? dc.b 3 dc.b $BC ; ? dc.b 3 dc.b $BC ; ? dc.b 3 dc.b $BC ; ? dc.b 3 dc.b $BC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $49 ; I dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $F1 ; ? dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $D9 ; ? dc.b 2 dc.b $59 ; Y dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $61 ; a dc.b 3 dc.b $E9 ; ? dc.b 4 dc.b $44 ; D dc.b 4 dc.b $17 dc.b 3 dc.b $BC ; ? dc.b 3 dc.b $BC ; ? dc.b 3 dc.b $BC ; ? dc.b 3 dc.b $8E ; ? dc.b 3 dc.b $8E ; ? dc.b 3 dc.b $8E ; ? dc.b 3 dc.b $8E ; ? dc.b 3 dc.b $8E ; ? dc.b 3 dc.b $8E ; ? dc.b 3 dc.b $8E ; ? dc.b 3 dc.b $8E ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $49 ; I dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $F1 ; ? dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $D9 ; ? dc.b 2 dc.b $59 ; Y dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $61 ; a dc.b 4 dc.b $E dc.b 4 dc.b $1B dc.b 4 dc.b $20 dc.b 3 dc.b $C5 ; ? dc.b 3 dc.b $97 ; ? dc.b 3 dc.b $8E ; ? dc.b 3 dc.b $7C ; | dc.b 3 dc.b $6E ; n dc.b 3 dc.b $6E ; n dc.b 3 dc.b $6E ; n dc.b 3 dc.b $6E ; n dc.b 3 dc.b $6E ; n dc.b 3 dc.b $6E ; n dc.b 3 dc.b $6E ; n dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $49 ; I dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $F1 ; ? dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $D9 ; ? dc.b 2 dc.b $59 ; Y dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $61 ; a dc.b 4 dc.b $E dc.b 4 dc.b $E dc.b 3 dc.b $EE ; ? dc.b 3 dc.b $9C ; ? dc.b 3 dc.b $6E ; n dc.b 3 dc.b $65 ; e dc.b 3 dc.b $58 ; X dc.b 3 dc.b $45 ; E dc.b 3 dc.b $45 ; E dc.b 3 dc.b $45 ; E dc.b 3 dc.b $45 ; E dc.b 3 dc.b $45 ; E dc.b 3 dc.b $45 ; E dc.b 3 dc.b $45 ; E dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $49 ; I dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $F1 ; ? dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $D9 ; ? dc.b 2 dc.b $59 ; Y dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $61 ; a dc.b 4 dc.b $E dc.b 4 dc.b $E dc.b 3 dc.b $A5 ; ? dc.b 3 dc.b $8A ; ? dc.b 3 dc.b $58 ; X dc.b 3 dc.b $41 ; A dc.b 3 dc.b $26 ; & dc.b 3 dc.b $26 ; & dc.b 3 dc.b $26 ; & dc.b 3 dc.b $26 ; & dc.b 3 dc.b $26 ; & dc.b 3 dc.b $26 ; & dc.b 3 dc.b $26 ; & dc.b 3 dc.b $26 ; & dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $49 ; I dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $F1 ; ? dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $D9 ; ? dc.b 2 dc.b $59 ; Y dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $61 ; a dc.b 4 dc.b $E dc.b 4 dc.b $E dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $6A ; j dc.b 3 dc.b $53 ; S dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $49 ; I dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $F1 ; ? dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $D9 ; ? dc.b 2 dc.b $59 ; Y dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $61 ; a dc.b 4 dc.b $E dc.b 4 dc.b $E dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $49 ; I dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $F1 ; ? dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $D9 ; ? dc.b 2 dc.b $59 ; Y dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $61 ; a dc.b 4 dc.b $E dc.b 4 dc.b $E dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $49 ; I dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $F1 ; ? dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $D9 ; ? dc.b 2 dc.b $59 ; Y dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $61 ; a dc.b 4 dc.b $E dc.b 4 dc.b $E dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $49 ; I dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $F1 ; ? dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $D9 ; ? dc.b 2 dc.b $59 ; Y dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $61 ; a dc.b 4 dc.b $E dc.b 4 dc.b $E dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $49 ; I dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $F1 ; ? dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $D9 ; ? dc.b 2 dc.b $59 ; Y dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $61 ; a dc.b 4 dc.b $E dc.b 4 dc.b $E dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $49 ; I dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $F1 ; ? dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $D9 ; ? dc.b 2 dc.b $59 ; Y dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $61 ; a dc.b 4 dc.b $E dc.b 4 dc.b $E dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $49 ; I dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $F1 ; ? dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $D9 ; ? dc.b 2 dc.b $59 ; Y dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $61 ; a dc.b 4 dc.b $E dc.b 4 dc.b $E dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b $49 ; I dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $F1 ; ? dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $D9 ; ? dc.b 2 dc.b $59 ; Y dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $61 ; a dc.b 4 dc.b $E dc.b 4 dc.b $E dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $53 ; S dc.b 3 dc.b $53 ; S dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 SPARK_ADVANCE_KA_MAIN_OT_LOW_OCTANE:dc.b 5 ; DATA XREF: sub_39F12+A4o ; sub_3C938+5Ao ; This calibration determines base spark 'bad fuel' contribution to spark advance. ; Degrees dc.b $23 ; # dc.b 5 dc.b $7A ; z dc.b 5 dc.b $CC ; ? dc.b 6 dc.b $10 dc.b 6 dc.b $50 ; P dc.b 6 dc.b $86 ; ? dc.b 6 dc.b $B8 ; ? dc.b 6 dc.b $E1 ; ? dc.b 7 dc.b 6 dc.b 7 dc.b $21 ; ! dc.b 7 dc.b $38 ; 8 dc.b 7 dc.b $5C ; \ dc.b 7 dc.b $6A ; j dc.b 7 dc.b $6E ; n dc.b 7 dc.b $6A ; j dc.b 7 dc.b $61 ; a dc.b 7 dc.b $53 ; S dc.b 7 dc.b $45 ; E dc.b 7 dc.b $3C ; < dc.b 7 dc.b $3C ; < dc.b 7 dc.b $3C ; < dc.b 7 dc.b $3C ; < dc.b 7 dc.b $3C ; < dc.b 7 dc.b $3C ; < dc.b 7 dc.b $3C ; < dc.b 5 dc.b $1A dc.b 5 dc.b $75 ; u dc.b 5 dc.b $C3 ; ? dc.b 6 dc.b $B dc.b 6 dc.b $4B ; K dc.b 6 dc.b $82 ; ? dc.b 6 dc.b $AF ; ? dc.b 6 dc.b $D8 ; ? dc.b 6 dc.b $FD ; ? dc.b 7 dc.b $1C dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $53 ; S dc.b 7 dc.b $65 ; e dc.b 7 dc.b $6A ; j dc.b 7 dc.b $65 ; e dc.b 7 dc.b $58 ; X dc.b 7 dc.b $4A ; J dc.b 7 dc.b $41 ; A dc.b 7 dc.b $38 ; 8 dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $33 ; 3 dc.b 5 dc.b $11 dc.b 5 dc.b $68 ; h dc.b 5 dc.b $B5 ; ? dc.b 5 dc.b $FE ; ? dc.b 6 dc.b $3D ; = dc.b 6 dc.b $74 ; t dc.b 6 dc.b $A6 ; ? dc.b 6 dc.b $CF ; ? dc.b 6 dc.b $EF ; ? dc.b 7 dc.b $F dc.b 7 dc.b $26 ; & dc.b 7 dc.b $45 ; E dc.b 7 dc.b $58 ; X dc.b 7 dc.b $5C ; \ dc.b 7 dc.b $58 ; X dc.b 7 dc.b $4A ; J dc.b 7 dc.b $3C ; < dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $2A ; * dc.b 7 dc.b $21 ; ! dc.b 7 dc.b $21 ; ! dc.b 7 dc.b $21 ; ! dc.b 7 dc.b $21 ; ! dc.b 7 dc.b $21 ; ! dc.b 7 dc.b $21 ; ! dc.b 4 dc.b $F6 ; ? dc.b 5 dc.b $51 ; Q dc.b 5 dc.b $9E ; ? dc.b 5 dc.b $E7 ; ? dc.b 6 dc.b $22 ; " dc.b 6 dc.b $5D ; ] dc.b 6 dc.b $8B ; ? dc.b 6 dc.b $B4 ; ? dc.b 6 dc.b $D8 ; ? dc.b 6 dc.b $F8 ; ? dc.b 7 dc.b $F dc.b 7 dc.b $2F ; / dc.b 7 dc.b $41 ; A dc.b 7 dc.b $45 ; E dc.b 7 dc.b $41 ; A dc.b 7 dc.b $33 ; 3 dc.b 7 dc.b $26 ; & dc.b 7 dc.b $18 dc.b 7 dc.b $13 dc.b 6 dc.b $FD ; ? dc.b 6 dc.b $FD ; ? dc.b 6 dc.b $FD ; ? dc.b 6 dc.b $FD ; ? dc.b 6 dc.b $FD ; ? dc.b 6 dc.b $FD ; ? dc.b 4 dc.b $52 ; R dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $2C ; , dc.b 5 dc.b $83 ; ? dc.b 5 dc.b $C7 ; ? dc.b 6 dc.b 7 dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $66 ; f dc.b 6 dc.b $8F ; ? dc.b 6 dc.b $AF ; ? dc.b 6 dc.b $C6 ; ? dc.b 6 dc.b $EA ; ? dc.b 6 dc.b $FD ; ? dc.b 7 dc.b 1 dc.b 6 dc.b $F8 ; ? dc.b 6 dc.b $EA ; ? dc.b 6 dc.b $D8 ; ? dc.b 6 dc.b $CB ; ? dc.b 6 dc.b $BD ; ? dc.b 6 dc.b $BD ; ? dc.b 6 dc.b $BD ; ? dc.b 6 dc.b $BD ; ? dc.b 6 dc.b $C1 ; ? dc.b 6 dc.b $C1 ; ? dc.b 6 dc.b $C1 ; ? dc.b 3 dc.b $4F ; O dc.b 3 dc.b $D7 ; ? dc.b 4 dc.b $44 ; D dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $F1 ; ? dc.b 5 dc.b $31 ; 1 dc.b 5 dc.b $6C ; l dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $C3 ; ? dc.b 5 dc.b $E2 ; ? dc.b 5 dc.b $FE ; ? dc.b 6 dc.b $1E dc.b 6 dc.b $2B ; + dc.b 6 dc.b $58 ; X dc.b 6 dc.b $7D ; } dc.b 6 dc.b $70 ; p dc.b 6 dc.b $5D ; ] dc.b 6 dc.b $50 ; P dc.b 6 dc.b $4B ; K dc.b 6 dc.b $4B ; K dc.b 6 dc.b $4B ; K dc.b 6 dc.b $4B ; K dc.b 6 dc.b $50 ; P dc.b 6 dc.b $50 ; P dc.b 6 dc.b $50 ; P dc.b 2 dc.b $27 ; ' dc.b 2 dc.b $94 ; ? dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $BC ; ? dc.b 4 dc.b $17 dc.b 4 dc.b $72 ; r dc.b 4 dc.b $BB ; ? dc.b 4 dc.b $ED ; ? dc.b 5 dc.b $16 dc.b 5 dc.b $3A ; : dc.b 5 dc.b $55 ; U dc.b 5 dc.b $75 ; u dc.b 5 dc.b $7E ; ~ dc.b 5 dc.b $7A ; z dc.b 5 dc.b $9E ; ? dc.b 5 dc.b $BE ; ? dc.b 5 dc.b $E2 ; ? dc.b 6 dc.b $10 dc.b 6 dc.b $1E dc.b 6 dc.b $22 ; " dc.b 6 dc.b $22 ; " dc.b 6 dc.b $22 ; " dc.b 6 dc.b $22 ; " dc.b 6 dc.b $22 ; " dc.b 6 dc.b $22 ; " dc.b 0 dc.b $A9 ; ? dc.b 1 dc.b $87 ; ? dc.b 2 dc.b $B9 ; ? dc.b 3 dc.b $34 ; 4 dc.b 3 dc.b $78 ; x dc.b 3 dc.b $AA ; ? dc.b 3 dc.b $EE ; ? dc.b 4 dc.b $29 ; ) dc.b 4 dc.b $7B ; { dc.b 4 dc.b $C4 ; ? dc.b 4 dc.b $DB ; ? dc.b 4 dc.b $FF dc.b 5 dc.b 8 dc.b 4 dc.b $FF dc.b 5 dc.b $36 ; 6 dc.b 5 dc.b $55 ; U dc.b 5 dc.b $83 ; ? dc.b 5 dc.b $EC ; ? dc.b 6 dc.b $14 dc.b 6 dc.b $14 dc.b 6 dc.b $14 dc.b 6 dc.b $14 dc.b 6 dc.b $14 dc.b 6 dc.b $14 dc.b 6 dc.b $14 dc.b $FF dc.b $8E ; ? dc.b 0 dc.b $FB ; ? dc.b 2 dc.b $22 ; " dc.b 2 dc.b $AF ; ? dc.b 2 dc.b $EF ; ? dc.b 3 dc.b $25 ; % dc.b 3 dc.b $4A ; J dc.b 3 dc.b $8E ; ? dc.b 4 dc.b 5 dc.b 4 dc.b $88 ; ? dc.b 4 dc.b $BB ; ? dc.b 4 dc.b $DF ; ? dc.b 4 dc.b $E4 ; ? dc.b 4 dc.b $DB ; ? dc.b 4 dc.b $E3 ; ? dc.b 5 dc.b 3 dc.b 5 dc.b $5E ; ^ dc.b 5 dc.b $BD ; ? dc.b 5 dc.b $F6 ; ? dc.b 5 dc.b $F7 ; ? dc.b 5 dc.b $F7 ; ? dc.b 5 dc.b $F8 ; ? dc.b 5 dc.b $F9 ; ? dc.b 5 dc.b $F9 ; ? dc.b 5 dc.b $FA ; ? dc.b $FF dc.b $C4 ; ? dc.b 0 dc.b $B6 ; ? dc.b 1 dc.b $82 ; ? dc.b 2 dc.b $22 ; " dc.b 2 dc.b $7D ; } dc.b 2 dc.b $AA ; ? dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $2A ; * dc.b 3 dc.b $E5 ; ? dc.b 4 dc.b $40 ; @ dc.b 4 dc.b $72 ; r dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $BB ; ? dc.b 4 dc.b $AD ; ? dc.b 4 dc.b $96 ; ? dc.b 4 dc.b $B2 ; ? dc.b 4 dc.b $DA ; ? dc.b 5 dc.b $66 ; f dc.b 5 dc.b $9D ; ? dc.b 5 dc.b $9F ; ? dc.b 5 dc.b $A0 ; ? dc.b 5 dc.b $A1 ; ? dc.b 5 dc.b $A3 ; ? dc.b 5 dc.b $A4 ; ? dc.b 5 dc.b $A5 ; ? dc.b $FF dc.b $A5 ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $F6 ; ? dc.b 1 dc.b $9D ; ? dc.b 2 dc.b $1C dc.b 2 dc.b $57 ; W dc.b 2 dc.b $96 ; ? dc.b 2 dc.b $FC ; ? dc.b 3 dc.b $8E ; ? dc.b 3 dc.b $E9 ; ? dc.b 4 dc.b $16 dc.b 4 dc.b $44 ; D dc.b 4 dc.b $72 ; r dc.b 4 dc.b $72 ; r dc.b 4 dc.b $45 ; E dc.b 4 dc.b $44 ; D dc.b 4 dc.b $71 ; q dc.b 4 dc.b $E7 ; ? dc.b 5 dc.b 0 dc.b 5 dc.b 3 dc.b 5 dc.b 6 dc.b 5 dc.b 9 dc.b 5 dc.b $B dc.b 5 dc.b $E dc.b 5 dc.b $11 dc.b $FF dc.b $1C dc.b $FF dc.b $D2 ; ? dc.b 0 dc.b $88 ; ? dc.b 1 dc.b $31 ; 1 dc.b 1 dc.b $A6 ; ? dc.b 1 dc.b $FC ; ? dc.b 2 dc.b $38 ; 8 dc.b 2 dc.b $93 ; ? dc.b 3 dc.b $4A ; J dc.b 3 dc.b $A5 ; ? dc.b 3 dc.b $E9 ; ? dc.b 4 dc.b $16 dc.b 4 dc.b $44 ; D dc.b 4 dc.b $44 ; D dc.b 4 dc.b $44 ; D dc.b 4 dc.b $44 ; D dc.b 4 dc.b $44 ; D dc.b 4 dc.b $3C ; < dc.b 4 dc.b $25 ; % dc.b 4 dc.b $28 ; ( dc.b 4 dc.b $2A ; * dc.b 4 dc.b $2C ; , dc.b 4 dc.b $2F ; / dc.b 4 dc.b $31 ; 1 dc.b 4 dc.b $33 ; 3 dc.b $FE ; ? dc.b $EE ; ? dc.b $FF dc.b $77 ; w dc.b 0 dc.b $2D ; - dc.b 0 dc.b $CD ; ? dc.b 1 dc.b $55 ; U dc.b 1 dc.b $AF ; ? dc.b 1 dc.b $F8 ; ? dc.b 2 dc.b $5B ; [ dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $54 ; T dc.b 3 dc.b $93 ; ? dc.b 3 dc.b $D7 ; ? dc.b 3 dc.b $E9 ; ? dc.b 3 dc.b $E9 ; ? dc.b 3 dc.b $EA ; ? dc.b 3 dc.b $E9 ; ? dc.b 3 dc.b $BC ; ? dc.b 3 dc.b $99 ; ? dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $87 ; ? dc.b 3 dc.b $88 ; ? dc.b 3 dc.b $89 ; ? dc.b 3 dc.b $8B ; ? dc.b 3 dc.b $8C ; ? dc.b 3 dc.b $8D ; ? dc.b $FE ; ? dc.b $B8 ; ? dc.b $FF dc.b $4A ; J dc.b $FF dc.b $D2 ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $E3 ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $C7 ; ? dc.b 2 dc.b $22 ; " dc.b 2 dc.b $7D ; } dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $8E ; ? dc.b 3 dc.b $BB ; ? dc.b 3 dc.b $BB ; ? dc.b 3 dc.b $60 ; ` dc.b 3 dc.b $53 ; S dc.b 3 dc.b $45 ; E dc.b 3 dc.b $3B ; ; dc.b 3 dc.b $31 ; 1 dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $35 ; 5 dc.b 3 dc.b $36 ; 6 dc.b 3 dc.b $38 ; 8 dc.b 3 dc.b $39 ; 9 dc.b 3 dc.b $3A ; : dc.b $FE ; ? dc.b $AB ; ? dc.b $FF dc.b $16 dc.b $FF dc.b $77 ; w dc.b 0 dc.b 0 dc.b 0 dc.b $88 ; ? dc.b 0 dc.b $E3 ; ? dc.b 1 dc.b $3E ; > dc.b 1 dc.b $C7 ; ? dc.b 2 dc.b $22 ; " dc.b 2 dc.b $7D ; } dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $60 ; ` dc.b 3 dc.b $8E ; ? dc.b 3 unk_11111: dc.b $60 ; ` ; DATA XREF: sub_5A12E+8Eo dc.b 3 dc.b 5 dc.b 2 dc.b $FD ; ? dc.b 2 dc.b $EF ; ? dc.b 2 dc.b $E8 ; ? dc.b 2 dc.b $DE ; ? dc.b 2 dc.b $E0 ; ? dc.b 2 dc.b $E1 ; ? dc.b 2 dc.b $E3 ; ? dc.b 2 dc.b $E5 ; ? dc.b 2 dc.b $E6 ; ? dc.b 2 dc.b $E8 ; ? dc.b $FE ; ? dc.b $AA ; ? dc.b $FE ; ? dc.b $D4 ; ? dc.b $FF dc.b $18 dc.b $FF dc.b $75 ; u dc.b $FF dc.b $E2 ; ? dc.b 0 dc.b $59 ; Y dc.b 0 dc.b $D5 ; ? dc.b 1 dc.b $52 ; R dc.b 1 dc.b $CA ; ? dc.b 2 dc.b $51 ; Q dc.b 2 dc.b $CD ; ? dc.b 3 dc.b $6B ; k dc.b 3 dc.b $B5 ; ? dc.b 3 dc.b $90 ; ? dc.b 2 dc.b $E5 ; ? dc.b 2 dc.b $B2 ; ? dc.b 2 dc.b $A8 ; ? dc.b 2 dc.b $94 ; ? dc.b 2 dc.b $8B ; ? dc.b 2 dc.b $8C ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $90 ; ? dc.b 2 dc.b $92 ; ? dc.b 2 dc.b $94 ; ? dc.b 2 dc.b $96 ; ? dc.b $FE ; ? dc.b $AA ; ? dc.b $FE ; ? dc.b $AD ; ? dc.b $FE ; ? dc.b $B5 ; ? dc.b $FE ; ? dc.b $DF ; ? dc.b $FF dc.b $26 ; & dc.b $FF dc.b $84 ; ? dc.b $FF dc.b $F3 ; ? dc.b 0 dc.b $6C ; l dc.b 0 dc.b $EB ; ? dc.b 1 dc.b $68 ; h dc.b 1 dc.b $E4 ; ? dc.b 2 dc.b $AD ; ? dc.b 3 dc.b $12 dc.b 2 dc.b $E8 ; ? dc.b 2 dc.b $8A ; ? dc.b 2 dc.b $5E ; ^ dc.b 2 dc.b $55 ; U dc.b 2 dc.b $41 ; A dc.b 2 dc.b $37 ; 7 dc.b 2 dc.b $3A ; : dc.b 2 dc.b $3C ; < dc.b 2 dc.b $3E ; > dc.b 2 dc.b $40 ; @ dc.b 2 dc.b $42 ; B dc.b 2 dc.b $44 ; D dc.b $FE ; ? dc.b $AA ; ? dc.b $FE ; ? dc.b $AD ; ? dc.b $FE ; ? dc.b $B5 ; ? dc.b $FE ; ? dc.b $DF ; ? dc.b $FF dc.b $26 ; & dc.b $FF dc.b $84 ; ? dc.b $FF dc.b $F3 ; ? dc.b 0 dc.b $6C ; l dc.b 0 dc.b $EB ; ? dc.b 1 dc.b $69 ; i dc.b 1 dc.b $E0 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $B1 ; ? dc.b 2 dc.b $B2 ; ? dc.b 2 dc.b $59 ; Y dc.b 2 dc.b $2D ; - dc.b 2 dc.b $23 ; # dc.b 2 dc.b $D dc.b 2 dc.b 3 dc.b 2 dc.b 4 dc.b 2 dc.b 6 dc.b 2 dc.b 7 dc.b 2 dc.b 8 dc.b 2 dc.b 9 dc.b 2 dc.b $A dc.b $FE ; ? dc.b $AA ; ? dc.b $FE ; ? dc.b $AD ; ? dc.b $FE ; ? dc.b $B5 ; ? dc.b $FE ; ? dc.b $DF ; ? dc.b $FF dc.b $26 ; & dc.b $FF dc.b $84 ; ? dc.b $FF dc.b $F3 ; ? dc.b 0 dc.b $6C ; l dc.b 0 dc.b $EB ; ? dc.b 1 dc.b $69 ; i dc.b 1 dc.b $E0 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $82 ; ? dc.b 2 dc.b $2F ; / dc.b 2 dc.b 3 dc.b 1 dc.b $F9 ; ? dc.b 1 dc.b $EB ; ? dc.b 1 dc.b $DA ; ? dc.b 1 dc.b $DB ; ? dc.b 1 dc.b $DC ; ? dc.b 1 dc.b $DE ; ? dc.b 1 dc.b $DF ; ? dc.b 1 dc.b $E0 ; ? dc.b 1 dc.b $E1 ; ? dc.b $FE ; ? dc.b $AA ; ? dc.b $FE ; ? dc.b $AD ; ? dc.b $FE ; ? dc.b $B5 ; ? dc.b $FE ; ? dc.b $DF ; ? dc.b $FF dc.b $26 ; & dc.b $FF dc.b $84 ; ? dc.b $FF dc.b $F3 ; ? dc.b 0 dc.b $6C ; l dc.b 0 dc.b $EB ; ? dc.b 1 dc.b $69 ; i dc.b 1 dc.b $E0 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $38 ; 8 dc.b 2 dc.b $1C dc.b 1 dc.b $EB ; ? dc.b 1 dc.b $D6 ; ? dc.b 1 dc.b $BA ; ? dc.b 1 dc.b $B0 ; ? dc.b 1 dc.b $B2 ; ? dc.b 1 dc.b $B3 ; ? dc.b 1 dc.b $B5 ; ? dc.b 1 dc.b $B6 ; ? dc.b 1 dc.b $B7 ; ? dc.b 1 dc.b $B9 ; ? dc.b $FE ; ? dc.b $AA ; ? dc.b $FE ; ? dc.b $AD ; ? dc.b $FE ; ? dc.b $B5 ; ? dc.b $FE ; ? dc.b $DF ; ? dc.b $FF dc.b $26 ; & dc.b $FF dc.b $84 ; ? dc.b $FF dc.b $F3 ; ? dc.b 0 dc.b $6C ; l dc.b 0 dc.b $EB ; ? dc.b 1 dc.b $69 ; i dc.b 1 dc.b $E0 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $19 dc.b 1 dc.b $FD ; ? dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b $FE ; ? dc.b $AA ; ? dc.b $FE ; ? dc.b $AD ; ? dc.b $FE ; ? dc.b $B5 ; ? dc.b $FE ; ? dc.b $DF ; ? dc.b $FF dc.b $26 ; & dc.b $FF dc.b $84 ; ? dc.b $FF dc.b $F3 ; ? dc.b 0 dc.b $6C ; l dc.b 0 dc.b $EB ; ? dc.b 1 dc.b $69 ; i dc.b 1 dc.b $E0 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $19 dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b $FE ; ? dc.b $AA ; ? dc.b $FE ; ? dc.b $AD ; ? dc.b $FE ; ? dc.b $B5 ; ? dc.b $FE ; ? dc.b $DF ; ? dc.b $FF dc.b $26 ; & dc.b $FF dc.b $84 ; ? dc.b $FF dc.b $F3 ; ? dc.b 0 dc.b $6C ; l dc.b 0 dc.b $EB ; ? dc.b 1 dc.b $69 ; i dc.b 1 dc.b $E0 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $19 dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b $FE ; ? dc.b $AA ; ? dc.b $FE ; ? dc.b $AD ; ? dc.b $FE ; ? dc.b $B5 ; ? dc.b $FE ; ? dc.b $DF ; ? dc.b $FF dc.b $26 ; & dc.b $FF dc.b $84 ; ? dc.b $FF dc.b $F3 ; ? dc.b 0 dc.b $6C ; l dc.b 0 dc.b $EB ; ? dc.b 1 dc.b $69 ; i dc.b 1 dc.b $E0 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $19 dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b $FE ; ? dc.b $AA ; ? dc.b $FE ; ? dc.b $AD ; ? dc.b $FE ; ? dc.b $B5 ; ? dc.b $FE ; ? dc.b $DF ; ? dc.b $FF dc.b $26 ; & dc.b $FF dc.b $84 ; ? dc.b $FF dc.b $F3 ; ? dc.b 0 dc.b $6C ; l dc.b 0 dc.b $EB ; ? dc.b 1 dc.b $69 ; i dc.b 1 dc.b $E0 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $19 dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b $FE ; ? dc.b $AA ; ? dc.b $FE ; ? dc.b $AD ; ? dc.b $FE ; ? dc.b $B5 ; ? dc.b $FE ; ? dc.b $DF ; ? dc.b $FF dc.b $26 ; & dc.b $FF dc.b $84 ; ? dc.b $FF dc.b $F3 ; ? dc.b 0 dc.b $6C ; l dc.b 0 dc.b $EB ; ? dc.b 1 dc.b $69 ; i dc.b 1 dc.b $E0 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $19 dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b $FE ; ? dc.b $AA ; ? dc.b $FE ; ? dc.b $AD ; ? dc.b $FE ; ? dc.b $B5 ; ? dc.b $FE ; ? dc.b $DF ; ? dc.b $FF dc.b $26 ; & dc.b $FF dc.b $84 ; ? dc.b $FF dc.b $F3 ; ? dc.b 0 dc.b $6C ; l dc.b 0 dc.b $EB ; ? dc.b 1 dc.b $69 ; i dc.b 1 dc.b $E0 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $19 dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b $FE ; ? dc.b $AA ; ? dc.b $FE ; ? dc.b $AD ; ? dc.b $FE ; ? dc.b $B5 ; ? dc.b $FE ; ? dc.b $DF ; ? dc.b $FF dc.b $26 ; & dc.b $FF dc.b $84 ; ? dc.b $FF dc.b $F3 ; ? dc.b 0 dc.b $6C ; l dc.b 0 dc.b $EB ; ? dc.b 1 dc.b $69 ; i dc.b 1 dc.b $E0 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $19 dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b $FE ; ? dc.b $AA ; ? dc.b $FE ; ? dc.b $AD ; ? dc.b $FE ; ? dc.b $B5 ; ? dc.b $FE ; ? dc.b $DF ; ? dc.b $FF dc.b $26 ; & dc.b $FF dc.b $84 ; ? dc.b $FF dc.b $F3 ; ? dc.b 0 dc.b $6C ; l dc.b 0 dc.b $EB ; ? dc.b 1 dc.b $69 ; i dc.b 1 dc.b $E0 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $19 dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? SPARK_ADVANCE_KV_FFS_SPARK_BLEND_FACTOR:dc.w 0 ; DATA XREF: sub_2FC1E+4r ; Interpolation fraction used to determine the portion of the FFS_Spark to use. ; Mult_0_to_1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_ADVANCE_KV_LAUNCH_SPARK_RAMP_OUT_MULT:dc.w $FAE ; DATA XREF: sub_3BDC4+37Er ; Multiplier applied to the Launch Spark value every ref pulse ince the hold duration has expired. ; 0 to 1 dc.b $F dc.b $AE ; ? dc.b $F dc.b $AE ; ? dc.b $F dc.b $AE ; ? dc.b $F dc.b $AE ; ? dc.b $F dc.b $33 ; 3 dc.b $F dc.b $33 ; 3 dc.b $F dc.b $33 ; 3 dc.b $F dc.b $33 ; 3 dc.b $F dc.b $33 ; 3 dc.b $F dc.b $33 ; 3 dc.b $D dc.b $9A ; ? dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 dc.b $C dc.b 0 SPARK_ADVANCE_KV_LIMIT_MAX_RETARD:dc.b $FD ; ? ; DATA XREF: sub_3B3DA+Ao ; sub_3DF16+36o ; Maximum spark retard limit allowed. ; Degrees dc.b $DE ; ? dc.b $FD ; ? dc.b $DE ; ? dc.b $FE ; ? dc.b $C1 ; ? dc.b $FF dc.b $1C dc.b $FF dc.b $77 ; w dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_ADVANCE_KE_AIR_PER_CYLINDER_BLEND_RATIO:dc.w $C00 ; DATA XREF: sub_79B10+85Ar ; sub_79B10+872r ; Describes the index and ratio for interpolation between two adjacent air per cylinder values. ; Scaler_2_S SPARK_ADVANCE_KE_HVS_RUN_MODE_ENABLE_RPM:dc.w 0 ; DATA XREF: DoLoopA+E6r ; Engine speed threshold above which the EST will switch to low resnormal mode for non 24X applications. ; RPM SPARK_ADVANCE_KE_HVS_RUN_MODE_DISABLE_RPM:dc.w 0 ; DATA XREF: DoLoopA+106r ; Engine speed threshold below which the EST will switch to low rescrank mode for non 24X applications. ; RPM SPARK_ADVANCE_KV_HVS_SWITCH_MODES_REF_COUNT:dc.b 0 ; DATA XREF: DoLoopA+DAr dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_ADVANCE_KA_LAUNCH_SPARK:dc.b 1 ; DATA XREF: sub_3BDC4+28Eo ; This calibration is a spark advance or retard based on Coolant Temperature and Engine Run Time. ; Degrees dc.b $DA ; ? dc.b 1 dc.b $DA ; ? dc.b 1 dc.b $DA ; ? dc.b 1 dc.b $DA ; ? dc.b 1 dc.b $DA ; ? dc.b 1 dc.b $DA ; ? dc.b 1 dc.b $DA ; ? dc.b 1 dc.b $B0 ; ? dc.b 1 dc.b $57 ; W dc.b 0 dc.b $FB ; ? dc.b 0 dc.b $A7 ; ? dc.b 0 dc.b $54 ; T dc.b 0 dc.b 0 dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $4F ; O dc.b 1 dc.b $4F ; O dc.b 1 dc.b $4F ; O dc.b 1 dc.b $4F ; O dc.b 1 dc.b $4F ; O dc.b 1 dc.b $4F ; O dc.b 1 dc.b $4F ; O dc.b 1 dc.b $38 ; 8 dc.b 1 dc.b 1 dc.b 0 dc.b $C3 ; ? dc.b 0 dc.b $88 ; ? dc.b 0 dc.b $3D ; = dc.b $FF dc.b $E2 ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 0 dc.b $DF ; ? dc.b 0 dc.b $DF ; ? dc.b 0 dc.b $DF ; ? dc.b 0 dc.b $DF ; ? dc.b 0 dc.b $DF ; ? dc.b 0 dc.b $DF ; ? dc.b 0 dc.b $DF ; ? dc.b 0 dc.b $D4 ; ? dc.b 0 dc.b $B2 ; ? dc.b 0 dc.b $8C ; ? dc.b 0 dc.b $61 ; a dc.b 0 dc.b $25 ; % dc.b $FF dc.b $C3 ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 0 dc.b $8C ; ? dc.b 0 dc.b $8C ; ? dc.b 0 dc.b $8C ; ? dc.b 0 dc.b $8C ; ? dc.b 0 dc.b $8C ; ? dc.b 0 dc.b $8C ; ? dc.b 0 dc.b $8C ; ? dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $70 ; p dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $3F ; ? dc.b 0 dc.b $E dc.b $FF dc.b $A5 ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $55 ; U dc.b 0 dc.b $47 ; G dc.b 0 dc.b $39 ; 9 dc.b 0 dc.b $22 ; " dc.b $FF dc.b $EB ; ? dc.b $FF dc.b $87 ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2A ; * dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $1D dc.b 0 dc.b 6 dc.b $FF dc.b $C8 ; ? dc.b $FF dc.b $68 ; h dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b $FF dc.b $E9 ; ? dc.b $FF dc.b $A5 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? SPARK_ADVANCE_KE_LAUNCH_SPARK_MAXCLTSOAKENABLE:dc.w $700 ; DATA XREF: sub_3BDC4+2A8r ; Maximum Coolant Temperature for Soak Time multiplier to be applied to Launch Spark. ; Degrees C SPARK_ADVANCE_KE_LAUNCH_SPARK_MINRUNSOAKENABLE:dc.l $2580 ; DATA XREF: sub_3BDC4+2B4r ; Minimum Previous Engine Run Time for Soak Time multiplier to be applied to Launch Spark. ; Seconds SPARK_ADVANCE_KE_LAUNCH_SPARKRPMMULTCOOLENABLE:dc.w $700 ; DATA XREF: sub_3BDC4+21Ar ; Minimum Coolant Temperature for enable of the Engine Speed Multiplier to Launch Spark. ; Degrees C SPARK_ADVANCE_KE_LIGHTOFF_AND_LAUNCHRAMPINTIME:dc.w $320 ; DATA XREF: sub_3AF0C+Er ; sub_3AF0C+1Cr ... ; Used to calculate a ramp in multiplier based upon engine run time. ; Seconds SPARK_ADVANCE_KE_LAUNCH_SPARKRPMRUNTIME:dc.w $3200 ; DATA XREF: sub_3BDC4+30Cr ; Minimum Engine Run Time for application of the RPMmultiplier. ; Seconds SPARK_ADVANCE_KV_LAUNCH_SPARK_RPM_MULTIPLIER:dc.l loc_D5A+3 ; DATA XREF: sub_3BDC4+31Co dc.b $D dc.b $5D ; ] dc.b $1A dc.b $AB ; ? dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $12 dc.b $B2 ; ? dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_ADVANCE_KV_LAUNCH_SPARK_SOAK_MULT:dc.b 4 ; DATA XREF: sub_3BDC4:loc_3C0A8o ; This calibration is a multiplier applied to Launch Spark in short soak time conditions. ; 0 to 2 dc.b 0 dc.b $A dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_ADVANCE_KV_LAUNCH_SPARK_DELTA_CYLAIRMASS:dc.b 0 ; DATA XREF: sub_3BDC4+1FAo ; This calibration is an enabler to Launch Spark when an increasing change in cylinder air mass is above this threshold. ; Grams dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $7B ; { dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = SPARK_ADVANCE_KV_LAUNCH_SPARK_DELTA_CYLAIRMULT:dc.w $666 ; DATA XREF: sub_3BDC4+208r ; This calibration is a multiplier for the cylinder air mass threshold. ; 0 to 1 dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b 6 dc.b $66 ; f dc.b $B dc.b $33 ; 3 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_ADVANCE_KV_LAUNCH_SPARK_DELT_CA_TPS_MULT:dc.w $1000 ; DATA XREF: sub_3BDC4+22Er ; This calibration is a multiplier to be applied to the cyli- nder air threshold. ; 0 to 2 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $18 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 SPARK_ADVANCE_KV_LAUNCH_SPARK_DURATION:dc.b $28 ; DATA XREF: sub_3BDC4+25Er ; This calibration is the number of low resolution reference pulses. ; Pulses dc.b $28 ; ( dc.b $28 ; ( dc.b $28 ; ( dc.b $28 ; ( dc.b $19 dc.b $19 dc.b $19 dc.b $19 dc.b $19 dc.b $10 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b $FF SPARK_ADVANCE_KA_EQ_RATIO_SPARK:dc.b 0 ; DATA XREF: sub_3A436+52o ; Equivalence ratio contribution to spark. ; Degrees dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? SPARK_ADVANCE_KA_EGR_SPARK:dc.b 0 ; DATA XREF: sub_3A330+6Ao ; EGR contribution to spark. ; Degrees dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_ADVANCE_KA_IAT_SPARK:dc.b 0 ; DATA XREF: sub_3A5CE+2Co ; This calibration determines the main induction air temperature spark. ; Degrees dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $E9 ; ? dc.b $FF dc.b $E1 ; ? dc.b $FF dc.b $D7 ; ? dc.b $FF dc.b $D0 ; ? dc.b $FF dc.b $CA ; ? dc.b $FF dc.b $C6 ; ? dc.b $FF dc.b $C4 ; ? dc.b $FF dc.b $C4 ; ? dc.b $FF dc.b $C4 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D8 ; ? dc.b $FF dc.b $C8 ; ? dc.b $FF dc.b $BA ; ? dc.b $FF dc.b $AD ; ? dc.b $FF dc.b $A3 ; ? dc.b $FF dc.b $9A ; ? dc.b $FF dc.b $93 ; ? dc.b $FF dc.b $8E ; ? dc.b $FF dc.b $8B ; ? dc.b $FF dc.b $89 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D0 ; ? dc.b $FF dc.b $BC ; ? dc.b $FF dc.b $A9 ; ? dc.b $FF dc.b $98 ; ? dc.b $FF dc.b $89 ; ? dc.b $FF dc.b $7B ; { dc.b $FF dc.b $6F ; o dc.b $FF dc.b $66 ; f dc.b $FF dc.b $5E ; ^ dc.b $FF dc.b $57 ; W dc.b $FF dc.b $5C ; \ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $E9 ; ? dc.b $FF dc.b $BD ; ? dc.b $FF dc.b $A5 ; ? dc.b $FF dc.b $8F ; ? dc.b $FF dc.b $7B ; { dc.b $FF dc.b $69 ; i dc.b $FF dc.b $59 ; Y dc.b $FF dc.b $4A ; J dc.b $FF dc.b $3D ; = dc.b $FF dc.b $3C ; < dc.b $FF dc.b $29 ; ) dc.b $FF dc.b $2F ; / dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $AE ; ? dc.b $FF dc.b $94 ; ? dc.b $FF dc.b $7B ; { dc.b $FF dc.b $64 ; d dc.b $FF dc.b $4E ; N dc.b $FF dc.b $3B ; ; dc.b $FF dc.b $2F ; / dc.b $FF dc.b $1A dc.b $FF dc.b $18 dc.b $FE ; ? dc.b $FF dc.b $FF dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $AE ; ? dc.b $FF dc.b $87 ; ? dc.b $FF dc.b $6E ; n dc.b $FF dc.b $51 ; Q dc.b $FF dc.b $39 ; 9 dc.b $FF dc.b $33 ; 3 dc.b $FF dc.b $13 dc.b $FF dc.b 6 dc.b $FE ; ? dc.b $EA ; ? dc.b $FE ; ? dc.b $DB ; ? dc.b $FE ; ? dc.b $E1 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $AE ; ? dc.b $FF dc.b $80 ; ? dc.b $FF dc.b $65 ; e dc.b $FF dc.b $44 ; D dc.b $FF dc.b $29 ; ) dc.b $FF dc.b $12 dc.b $FE ; ? dc.b $F8 ; ? dc.b $FE ; ? dc.b $E2 ; ? dc.b $FE ; ? dc.b $CE ; ? dc.b $FE ; ? dc.b $BC ; ? dc.b $FE ; ? dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $9C ; ? dc.b $FF dc.b $5F ; _ dc.b $FF dc.b $39 ; 9 dc.b $FF dc.b $10 dc.b $FE ; ? dc.b $ED ; ? dc.b $FE ; ? dc.b $D1 ; ? dc.b $FE ; ? dc.b $B5 ; ? dc.b $FE ; ? dc.b $9C ; ? dc.b $FE ; ? dc.b $86 ; ? dc.b $FE ; ? dc.b $75 ; u dc.b $FE ; ? dc.b $6E ; n dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $8A ; ? dc.b $FF dc.b $3E ; > dc.b $FF dc.b $D dc.b $FE ; ? dc.b $DC ; ? dc.b $FE ; ? dc.b $B0 ; ? dc.b $FE ; ? dc.b $90 ; ? dc.b $FE ; ? dc.b $71 ; q dc.b $FE ; ? dc.b $55 ; U dc.b $FE ; ? dc.b $3E ; > dc.b $FE ; ? dc.b $2D ; - dc.b $FE ; ? dc.b $26 ; & dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $E1 ; ? dc.b $FE ; ? dc.b $A8 ; ? dc.b $FE ; ? dc.b $74 ; t dc.b $FE ; ? dc.b $4E ; N dc.b $FE ; ? dc.b $2E ; . dc.b $FE ; ? dc.b $F dc.b $FD ; ? dc.b $F6 ; ? dc.b $FD ; ? dc.b $E6 ; ? dc.b $FD ; ? dc.b $DE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $E1 ; ? dc.b $FE ; ? dc.b $A8 ; ? dc.b $FE ; ? dc.b $74 ; t dc.b $FE ; ? dc.b $4E ; N dc.b $FE ; ? dc.b $2E ; . dc.b $FE ; ? dc.b $F dc.b $FD ; ? dc.b $F6 ; ? dc.b $FD ; ? dc.b $E6 ; ? dc.b $FD ; ? dc.b $DE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $E1 ; ? dc.b $FE ; ? dc.b $A8 ; ? dc.b $FE ; ? dc.b $74 ; t dc.b $FE ; ? dc.b $4E ; N dc.b $FE ; ? dc.b $2E ; . dc.b $FE ; ? dc.b $F dc.b $FD ; ? dc.b $F6 ; ? dc.b $FD ; ? dc.b $E6 ; ? dc.b $FD ; ? dc.b $DE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $E1 ; ? dc.b $FE ; ? dc.b $A8 ; ? dc.b $FE ; ? dc.b $74 ; t dc.b $FE ; ? dc.b $4E ; N dc.b $FE ; ? dc.b $2E ; . dc.b $FE ; ? dc.b $F dc.b $FD ; ? dc.b $F6 ; ? dc.b $FD ; ? dc.b $E6 ; ? dc.b $FD ; ? dc.b $DE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $E1 ; ? dc.b $FE ; ? dc.b $A8 ; ? dc.b $FE ; ? dc.b $74 ; t dc.b $FE ; ? dc.b $4E ; N dc.b $FE ; ? dc.b $2E ; . dc.b $FE ; ? dc.b $F dc.b $FD ; ? dc.b $F6 ; ? dc.b $FD ; ? dc.b $E6 ; ? dc.b $FD ; ? dc.b $DE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $E1 ; ? dc.b $FE ; ? dc.b $A8 ; ? dc.b $FE ; ? dc.b $74 ; t dc.b $FE ; ? dc.b $4E ; N dc.b $FE ; ? dc.b $2E ; . dc.b $FE ; ? dc.b $F dc.b $FD ; ? dc.b $F6 ; ? dc.b $FD ; ? dc.b $E6 ; ? dc.b $FD ; ? dc.b $DE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $E1 ; ? dc.b $FE ; ? dc.b $A8 ; ? dc.b $FE ; ? dc.b $74 ; t dc.b $FE ; ? dc.b $4E ; N dc.b $FE ; ? dc.b $2E ; . dc.b $FE ; ? dc.b $F dc.b $FD ; ? dc.b $F6 ; ? dc.b $FD ; ? dc.b $E6 ; ? dc.b $FD ; ? dc.b $DE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $E1 ; ? dc.b $FE ; ? dc.b $A8 ; ? dc.b $FE ; ? dc.b $74 ; t dc.b $FE ; ? dc.b $4E ; N dc.b $FE ; ? dc.b $2E ; . dc.b $FE ; ? dc.b $F dc.b $FD ; ? dc.b $F6 ; ? dc.b $FD ; ? dc.b $E6 ; ? dc.b $FD ; ? dc.b $DE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $E1 ; ? dc.b $FE ; ? dc.b $A8 ; ? dc.b $FE ; ? dc.b $74 ; t dc.b $FE ; ? dc.b $4E ; N dc.b $FE ; ? dc.b $2E ; . dc.b $FE ; ? dc.b $F dc.b $FD ; ? dc.b $F6 ; ? dc.b $FD ; ? dc.b $E6 ; ? dc.b $FD ; ? dc.b $DE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $E1 ; ? dc.b $FE ; ? dc.b $A8 ; ? dc.b $FE ; ? dc.b $74 ; t dc.b $FE ; ? dc.b $4E ; N dc.b $FE ; ? dc.b $2E ; . dc.b $FE ; ? dc.b $F dc.b $FD ; ? dc.b $F6 ; ? dc.b $FD ; ? dc.b $E6 ; ? dc.b $FD ; ? dc.b $DE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $E1 ; ? dc.b $FE ; ? dc.b $A8 ; ? dc.b $FE ; ? dc.b $74 ; t dc.b $FE ; ? dc.b $4E ; N dc.b $FE ; ? dc.b $2E ; . dc.b $FE ; ? dc.b $F dc.b $FD ; ? dc.b $F6 ; ? dc.b $FD ; ? dc.b $E6 ; ? dc.b $FD ; ? dc.b $DE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $E1 ; ? dc.b $FE ; ? dc.b $A8 ; ? dc.b $FE ; ? dc.b $74 ; t dc.b $FE ; ? dc.b $4E ; N dc.b $FE ; ? dc.b $2E ; . dc.b $FE ; ? dc.b $F dc.b $FD ; ? dc.b $F6 ; ? dc.b $FD ; ? dc.b $E6 ; ? dc.b $FD ; ? dc.b $DE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $E1 ; ? dc.b $FE ; ? dc.b $A8 ; ? dc.b $FE ; ? dc.b $74 ; t dc.b $FE ; ? dc.b $4E ; N dc.b $FE ; ? dc.b $2E ; . dc.b $FE ; ? dc.b $F dc.b $FD ; ? dc.b $F6 ; ? dc.b $FD ; ? dc.b $E6 ; ? dc.b $FD ; ? dc.b $DE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $E1 ; ? dc.b $FE ; ? dc.b $A8 ; ? dc.b $FE ; ? dc.b $74 ; t dc.b $FE ; ? dc.b $4E ; N dc.b $FE ; ? dc.b $2E ; . dc.b $FE ; ? dc.b $F dc.b $FD ; ? dc.b $F6 ; ? dc.b $FD ; ? dc.b $E6 ; ? dc.b $FD ; ? dc.b $DE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $E1 ; ? dc.b $FE ; ? dc.b $A8 ; ? dc.b $FE ; ? dc.b $74 ; t dc.b $FE ; ? dc.b $4E ; N dc.b $FE ; ? dc.b $2E ; . dc.b $FE ; ? dc.b $F dc.b $FD ; ? dc.b $F6 ; ? dc.b $FD ; ? dc.b $E6 ; ? dc.b $FD ; ? dc.b $DE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $E1 ; ? dc.b $FE ; ? dc.b $A8 ; ? dc.b $FE ; ? dc.b $74 ; t dc.b $FE ; ? dc.b $4E ; N dc.b $FE ; ? dc.b $2E ; . dc.b $FE ; ? dc.b $F dc.b $FD ; ? dc.b $F6 ; ? dc.b $FD ; ? dc.b $E6 ; ? dc.b $FD ; ? dc.b $DE ; ? SPARK_ADVANCE_KA_RDSC_DAMPING_GAIN_CT:dc.w $1333 ; DATA XREF: sub_39BFE+170r ; CLOSED Throttle gain to use in the calculation of RDSC active damping. ; Deg/RPM dc.b 9 dc.b $9A ; ? dc.b 7 dc.b $AE ; ? dc.b 6 dc.b $66 ; f dc.b 3 dc.b $D7 ; ? dc.b 3 dc.b $D7 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 6 dc.b $66 ; f word_1207E: dc.w $1333 ; DATA XREF: sub_39BFE+152r dc.b 9 dc.b $9A ; ? dc.b 7 dc.b $AE ; ? dc.b 6 dc.b $66 ; f dc.b 3 dc.b $D7 ; ? dc.b 3 dc.b $D7 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 6 dc.b $66 ; f SPARK_ADVANCE_KA_RDSC_DAMPING_GAIN_OT:dc.w $354 ; DATA XREF: sub_39BFE+98r ; OPEN Throttle gain to use in the calculation of RDSC active damping. ; Deg/RPM dc.b 2 dc.b $B0 ; ? dc.b 2 dc.b $5E ; ^ dc.b 2 dc.b 9 dc.b 1 dc.b $DB ; ? dc.b 1 dc.b $B3 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $B3 ; ? word_120A6: dc.w $354 ; DATA XREF: sub_39BFE+7Ar dc.b 2 dc.b $B0 ; ? dc.b 2 dc.b $5E ; ^ dc.b 2 dc.b 9 dc.b 1 dc.b $DB ; ? dc.b 1 dc.b $B3 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $B3 ; ? SPARK_ADVANCE_KA_RDSC_PHASE_DELAY_TIME_CT:dc.l unk_40003 ; DATA XREF: sub_39BFE+180r ; CLOSED Throttle delay of the actual deliveryof active damping spark. ; mSec dc.l sub_20000+2 dc.l unk_10001 dc.l sub_20000+2 dc.l loc_20004 off_120CE: dc.l unk_40003 ; DATA XREF: sub_39BFE+162r dc.l sub_20000+2 dc.l unk_10001 dc.l sub_20000+2 dc.l loc_20004 SPARK_ADVANCE_KA_RDSC_PHASE_DELAY_TIME_OT:dc.l unk_40003 ; DATA XREF: sub_39BFE+A8r ; OPEN Throttle delay of the actual deliveryof active damping spark. ; mSec dc.l sub_20000+2 dc.l unk_10001 dc.l sub_20000+2 dc.l loc_20004 off_120F6: dc.l unk_40003 ; DATA XREF: sub_39BFE+8Ar dc.l sub_20000+2 dc.l unk_10001 dc.l sub_20000+2 dc.l loc_20004 SPARK_ADVANCE_KA_RDSC_SPARK_LIMIT_CT:dc.w $16C ; DATA XREF: sub_39BFE+178r ; Limits the maximum absolute amount of RDSC active damping, when Closed Throttle. ; Degrees dc.b 1 dc.b $6C ; l dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $89 ; ? word_1211E: dc.w $16C ; DATA XREF: sub_39BFE+15Ar dc.b 1 dc.b $6C ; l dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $89 ; ? SPARK_ADVANCE_KA_RDSC_SPARK_LIMIT_OT:dc.w $16C ; DATA XREF: sub_39BFE+A0r ; Limits the maximum absolute amount of RDSC active damping, when OPEN Throttle. ; Degrees dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $6C ; l word_12146: dc.w $111 ; DATA XREF: sub_39BFE+82r dc.b 1 dc.b $11 dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $11 SPARK_ADVANCE_KA_MAIN_CT_DRIVE:dc.b 3 ; DATA XREF: sub_39F12+8Co ; sub_39F12+1D6o ... ; This calibration determines base spark closed throttle and drive contribution to spark advance. ; Degrees dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $17 dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $FA ; ? dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $B0 ; ? dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $B0 ; ? dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $B0 ; ? dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $B0 ; ? dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 2 dc.b $D8 ; ? dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $B0 ; ? dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 2 dc.b $94 ; ? dc.b 2 dc.b $94 ; ? dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $B0 ; ? dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 2 dc.b $71 ; q dc.b 2 dc.b $71 ; q dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $84 ; ? dc.b 5 dc.b $C5 ; ? dc.b 5 dc.b $E4 ; ? dc.b 5 dc.b $EB ; ? dc.b 5 dc.b $E2 ; ? dc.b 5 dc.b $D4 ; ? dc.b 5 dc.b $C8 ; ? dc.b 5 dc.b $C8 ; ? dc.b 1 dc.b $DF ; ? dc.b 1 dc.b $DF ; ? dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $71 ; q dc.b 5 dc.b $B7 ; ? dc.b 5 dc.b $D9 ; ? dc.b 5 dc.b $DF ; ? dc.b 5 dc.b $D5 ; ? dc.b 5 dc.b $C5 ; ? dc.b 5 dc.b $B8 ; ? dc.b 5 dc.b $B8 ; ? dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $5E ; ^ dc.b 2 dc.b $EC ; ? dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $52 ; R dc.b 5 dc.b $A1 ; ? dc.b 5 dc.b $C6 ; ? dc.b 5 dc.b $CC ; ? dc.b 5 dc.b $BF ; ? dc.b 5 dc.b $A9 ; ? dc.b 5 dc.b $96 ; ? dc.b 5 dc.b $90 ; ? dc.b 0 dc.b $EE ; ? dc.b 0 dc.b $EE ; ? dc.b 2 dc.b $8F ; ? dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $9B ; ? dc.b 5 dc.b $31 ; 1 dc.b 5 dc.b $8C ; ? dc.b 5 dc.b $B8 ; ? dc.b 5 dc.b $C0 ; ? dc.b 5 dc.b $AF ; ? dc.b 5 dc.b $90 ; ? dc.b 5 dc.b $6E ; n dc.b 5 dc.b $54 ; T dc.b 0 dc.b $93 ; ? dc.b 0 dc.b $93 ; ? dc.b 2 dc.b $32 ; 2 dc.b 3 dc.b $70 ; p dc.b 4 dc.b $5D ; ] dc.b 5 dc.b 5 dc.b 5 dc.b $6F ; o dc.b 5 dc.b $A6 ; ? dc.b 5 dc.b $B3 ; ? dc.b 5 dc.b $9E ; ? dc.b 5 dc.b $71 ; q dc.b 5 dc.b $36 ; 6 dc.b 4 dc.b $F6 ; ? dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 1 dc.b $D3 ; ? dc.b 3 dc.b $10 dc.b 4 dc.b $A dc.b 4 dc.b $C5 ; ? dc.b 5 dc.b $43 ; C dc.b 5 dc.b $8A ; ? dc.b 5 dc.b $9F ; ? dc.b 5 dc.b $86 ; ? dc.b 5 dc.b $46 ; F dc.b 4 dc.b $E3 ; ? dc.b 4 dc.b $77 ; w dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 1 dc.b $6D ; m dc.b 2 dc.b $9A ; ? dc.b 3 dc.b $9A ; ? dc.b 4 dc.b $68 ; h dc.b 4 dc.b $FF dc.b 5 dc.b $5C ; \ dc.b 5 dc.b $7D ; } dc.b 5 dc.b $60 ; ` dc.b 5 dc.b 5 dc.b 4 dc.b $71 ; q dc.b 4 dc.b $2B ; + dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $FF dc.b 2 dc.b 6 dc.b 3 dc.b 5 dc.b 3 dc.b $E6 ; ? dc.b 4 dc.b $9B ; ? dc.b 5 dc.b $14 dc.b 5 dc.b $46 ; F dc.b 5 dc.b $25 ; % dc.b 4 dc.b $A7 ; ? dc.b 4 dc.b $17 dc.b 4 dc.b 1 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $84 ; ? dc.b 1 dc.b $4E ; N dc.b 2 dc.b $41 ; A dc.b 3 dc.b $36 ; 6 dc.b 4 dc.b $E dc.b 4 dc.b $AB ; ? dc.b 4 dc.b $F3 ; ? dc.b 4 dc.b $CD ; ? dc.b 4 dc.b $21 ; ! dc.b 3 dc.b $ED ; ? dc.b 3 dc.b $E1 ; ? dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4F ; O dc.b 4 dc.b $16 dc.b 4 dc.b $7A ; z dc.b 4 dc.b $4F ; O dc.b 3 dc.b $F0 ; ? dc.b 3 dc.b $C3 ; ? dc.b 3 dc.b $B9 ; ? dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $1D dc.b 4 dc.b $1E dc.b 3 dc.b $C5 ; ? dc.b 3 dc.b $99 ; ? dc.b 3 dc.b $8F ; ? dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $EE ; ? dc.b 3 dc.b $9C ; ? dc.b 3 dc.b $6F ; o dc.b 3 dc.b $65 ; e dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $A4 ; ? dc.b 3 dc.b $88 ; ? dc.b 3 dc.b $58 ; X dc.b 3 dc.b $42 ; B dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $69 ; i dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 SPARK_ADVANCE_KA_MAIN_CT_PARK:dc.b 3 ; DATA XREF: sub_39F12+34o ; sub_39F12+146o ... ; This calibration determines base spark closed throttle and park or neutral contribution to spark advance. ; Degrees dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $17 dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $FA ; ? dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $B0 ; ? dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $B0 ; ? dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $B0 ; ? dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $B0 ; ? dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 2 dc.b $D8 ; ? dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $B0 ; ? dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 2 dc.b $94 ; ? dc.b 2 dc.b $94 ; ? dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $B0 ; ? dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 6 dc.b $B dc.b 2 dc.b $71 ; q dc.b 2 dc.b $71 ; q dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $84 ; ? dc.b 5 dc.b $C5 ; ? dc.b 5 dc.b $E4 ; ? dc.b 5 dc.b $EB ; ? dc.b 5 dc.b $E2 ; ? dc.b 5 dc.b $D4 ; ? dc.b 5 dc.b $C8 ; ? dc.b 5 dc.b $C8 ; ? dc.b 1 dc.b $DF ; ? dc.b 1 dc.b $DF ; ? dc.b 3 dc.b 6 dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $71 ; q dc.b 5 dc.b $B7 ; ? dc.b 5 dc.b $D9 ; ? dc.b 5 dc.b $DF ; ? dc.b 5 dc.b $D5 ; ? dc.b 5 dc.b $C5 ; ? dc.b 5 dc.b $B8 ; ? dc.b 5 dc.b $B8 ; ? dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $5E ; ^ dc.b 2 dc.b $EC ; ? dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $52 ; R dc.b 5 dc.b $A1 ; ? dc.b 5 dc.b $C6 ; ? dc.b 5 dc.b $CC ; ? dc.b 5 dc.b $BF ; ? dc.b 5 dc.b $A9 ; ? dc.b 5 dc.b $96 ; ? dc.b 5 dc.b $90 ; ? dc.b 0 dc.b $EE ; ? dc.b 0 dc.b $EE ; ? dc.b 2 dc.b $8F ; ? dc.b 3 dc.b $8E ; ? dc.b 4 dc.b $9B ; ? dc.b 5 dc.b $31 ; 1 dc.b 5 dc.b $8C ; ? dc.b 5 dc.b $B8 ; ? dc.b 5 dc.b $C0 ; ? dc.b 5 dc.b $AF ; ? dc.b 5 dc.b $90 ; ? dc.b 5 dc.b $6E ; n dc.b 5 dc.b $54 ; T dc.b 0 dc.b $93 ; ? dc.b 0 dc.b $93 ; ? dc.b 2 dc.b $32 ; 2 dc.b 3 dc.b $70 ; p dc.b 4 dc.b $5D ; ] dc.b 5 dc.b 5 dc.b 5 dc.b $6F ; o dc.b 5 dc.b $A6 ; ? dc.b 5 dc.b $B3 ; ? dc.b 5 dc.b $9E ; ? dc.b 5 dc.b $71 ; q dc.b 5 dc.b $36 ; 6 dc.b 4 dc.b $F6 ; ? dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 1 dc.b $D3 ; ? dc.b 3 dc.b $10 dc.b 4 dc.b $A dc.b 4 dc.b $C5 ; ? dc.b 5 dc.b $43 ; C dc.b 5 dc.b $8A ; ? dc.b 5 dc.b $9F ; ? dc.b 5 dc.b $86 ; ? dc.b 5 dc.b $46 ; F dc.b 4 dc.b $E3 ; ? dc.b 4 dc.b $77 ; w dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 1 dc.b $6D ; m dc.b 2 dc.b $9A ; ? dc.b 3 dc.b $9A ; ? dc.b 4 dc.b $68 ; h dc.b 4 dc.b $FF dc.b 5 dc.b $5C ; \ dc.b 5 dc.b $7D ; } dc.b 5 dc.b $60 ; ` dc.b 5 dc.b 5 dc.b 4 dc.b $71 ; q dc.b 4 dc.b $2B ; + dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $FF dc.b 2 dc.b 6 dc.b 3 dc.b 5 dc.b 3 dc.b $E6 ; ? dc.b 4 dc.b $9B ; ? dc.b 5 dc.b $14 dc.b 5 dc.b $46 ; F dc.b 5 dc.b $25 ; % dc.b 4 dc.b $A7 ; ? dc.b 4 dc.b $17 dc.b 4 dc.b 1 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $84 ; ? dc.b 1 dc.b $4E ; N dc.b 2 dc.b $41 ; A dc.b 3 dc.b $36 ; 6 dc.b 4 dc.b $E dc.b 4 dc.b $AB ; ? dc.b 4 dc.b $F3 ; ? dc.b 4 dc.b $CD ; ? dc.b 4 dc.b $21 ; ! dc.b 3 dc.b $ED ; ? dc.b 3 dc.b $E1 ; ? dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4F ; O dc.b 4 dc.b $16 dc.b 4 dc.b $7A ; z dc.b 4 dc.b $4F ; O dc.b 3 dc.b $F0 ; ? dc.b 3 dc.b $C3 ; ? dc.b 3 dc.b $B9 ; ? dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $1D dc.b 4 dc.b $1E dc.b 3 dc.b $C5 ; ? dc.b 3 dc.b $99 ; ? dc.b 3 dc.b $8F ; ? dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $EE ; ? dc.b 3 dc.b $9C ; ? dc.b 3 dc.b $6F ; o dc.b 3 dc.b $65 ; e dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $A4 ; ? dc.b 3 dc.b $88 ; ? dc.b 3 dc.b $58 ; X dc.b 3 dc.b $42 ; B dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $69 ; i dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 dc.b 0 dc.b $17 dc.b 0 dc.b $17 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $92 ; ? dc.b 1 dc.b $5F ; _ dc.b 2 dc.b $57 ; W dc.b 3 dc.b $4C ; L dc.b 4 dc.b $F dc.b 4 dc.b $F dc.b 3 dc.b $85 ; ? dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $51 ; Q dc.b 3 dc.b $33 ; 3 SPARK_ADVANCE_KA_CLT_SPARK:dc.b 0 ; DATA XREF: sub_3A2A8+12o ; Coolant temperature spark contribution. ; Degrees dc.b $E4 ; ? dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $28 ; ( dc.b 1 dc.b $28 ; ( dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $89 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 0 dc.b $89 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $77 ; w dc.b $FF dc.b $77 ; w dc.b $FF dc.b $77 ; w dc.b $FF dc.b $77 ; w dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 0 dc.b $89 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 0 dc.b $89 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 0 dc.b $89 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $77 ; w dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 0 dc.b $89 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 CurveTable_21_Rows_B6227___Knock_Sensor_Filter_??:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $28 ; ( dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $D2 ; ? dc.b $FF dc.b $4A ; J dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $EF ; ? SPARK_ADVANCE_KE_EGR_SPARK_DELAY:dc.w $14 ; DATA XREF: sub_3A330+30r ; The amount of time delay before enabling or disabling EGR spark. ; Seconds SPARK_ADVANCE_KE_EGR_DUTY_CYCLE_SPARK:dc.w $66 ; DATA XREF: sub_3A330+12r ; The EGR duty cycle threshold that allows enabling or disabling of EGR spark. ; Percent SPARK_ADVANCE_KE_RDSC_BLENDOUT_TIME:dc.w $10 ; DATA XREF: sub_3B1A8+16Er ; sub_3B1A8+19Cr ... ; This is the time after RDSC is active to blend to 0 degrees. ; Seconds SPARK_ADVANCE_KE_RDSC_COOLANT:dc.w $FF00 ; DATA XREF: sub_3B12A+14r ; Coolant must be greater than this to enable RDSC. ; Deg C SPARK_ADVANCE_KE_RDSC_COOLANT_HIGH_TEMP:dc.w $DFF ; DATA XREF: sub_3B12A+5Ar ; Coolant must be less than this to enable RDSC. ; Deg C SPARK_ADVANCE_KE_RDSC_FAULTS_THAT_DISABLE:dc.l $A0000000 ; DATA XREF: sub_3B12A+2Ar ; This identifies the diagnostic fault groups which will disable RDSC control. ; BOOLEAN SPARK_ADVANCE_KE_RDSC_IS_ENABLED:dc.b 1 ; DATA XREF: sub_3B12A+8r ; This defines if RPM derivative spark control is enabled. ; BOOLEAN dc.b $FF SPARK_ADVANCE_KE_RDSC_KNOCK_LIMIT:dc.w $5B ; DATA XREF: sub_39E12+E4r ; If ESC spark retard is greater than this then disable advance portion of RDSC. ; Degrees SPARK_ADVANCE_KE_RDSC_MIN_DELTA_RPM_CT:dc.w $F ; DATA XREF: sub_39BFE:loc_39D8Cr ; If RDSC delta RPM calculation is < this, then active damping is 0 degrees, when CLOSED Throttle. ; RPM SPARK_ADVANCE_KE_RDSC_MIN_DELTA_RPM_OT:dc.w $A4 ; DATA XREF: sub_39BFE:loc_39CB4r ; If RDSC delta RPM calculation is < this, then active damping is 0 degrees, when OPEN Throttle. ; RPM SPARK_ADVANCE_KE_RDSC_PE_FACTOR:dc.w $1000 ; DATA XREF: sub_39BFE+F8r ; sub_39BFE+1D0r ... ; IF PE is active, then RDSC damping and bias is reduced by this factor. ; Multiplier SPARK_ADVANCE_KE_RDSC_RUN_TIME:dc.w $960 ; DATA XREF: sub_3B12A+1Er ; RDSC is not allowed if engine has been running less than this time. ; Seconds SPARK_ADVANCE_KE_RDSC_STEADY_STATE_TIME:dc.w $FA00 ; DATA XREF: sub_3B1A8+12Cr ; This is the time RDSC is active once steady state triggered. ; Seconds SPARK_ADVANCE_KE_RDSC_TIP_TIME:dc.w $78 ; DATA XREF: sub_3B1A8+EAr ; This is the time RDSC is active once tirggered via a tip-in or tip-out. ; Seconds SPARK_ADVANCE_KE_RDSC_TIPIN_DELTA_TPS:dc.w $100 ; DATA XREF: sub_3B1A8+6Er ; Delta throttle position must be greater than this to trigger RDSC on a tip-in. ; Percent SPARK_ADVANCE_KE_RDSC_TIPIN_TPS:dc.w $200 ; DATA XREF: sub_3B1A8:loc_3B20Er ; 50 mS old throttle position must have been less than this to trigger RDSC on tip-in. ; Percent SPARK_ADVANCE_KE_RDSC_TIPOUT_DELTA_TPS:dc.w $19A ; DATA XREF: sub_3B1A8+80r ; Delta throttle position must be greater than this to trigger RDSC on a tip-out. ; Percent SPARK_ADVANCE_KE_RDSC_TIPOUT_TPS:dc.w $166 ; DATA XREF: sub_3B1A8:loc_3B21Er ; 50 mS old throttle position must have been greater than this to trigger RDSC on tip-out. ; Percent SPARK_ADVANCE_KE_RDSC_TORQUE_CONTROL_SPARK:dc.w $472 ; DATA XREF: sub_3B12A+66r ; If torque control spark is greater than this value, then disable RDSC. ; Degrees SPARK_ADVANCE_KE_RDSC_TPS_THRESHOLD:dc.w $5C ; DATA XREF: sub_39BFE+68r ; sub_39BFE+140r ... SPARK_ADVANCE_KE_LIMIT_MAX_ADVANCE:dc.w $82E ; DATA XREF: sub_3B3DA+1Ar ; sub_3B3DA:loc_3B436r ; The maximum allowable spark advance. ; Degrees SPARK_ADVANCE_KE_CT_TPS_THRESHOLD:dc.w $3D ; DATA XREF: sub_3B38C+Ar ; sub_3B38C:loc_3B3BEr ; This calibration establishes the threshold for closed throttle base spark table lookups. ; Percent SPARK_ADVANCE_KE_CT_TPS_HYSTERESIS:dc.w $14 ; DATA XREF: sub_3B38C+10r ; This calibration establishes closed throttle hysteresis for the base spark table lookups. ; Percent SPARK_ADVANCE_KE_CT_VEH_SPD_THRESHOLD:dc.w $7FFF ; DATA XREF: sub_3B38C+1Ar ; sub_3B38C+3Er ; This calibration establishes closed throttle vehicle speed threshold for the base spark table lookups. ; MPH SPARK_ADVANCE_KE_CT_VEH_SPD_HYSTERESIS:dc.w $80 ; DATA XREF: sub_3B38C+20r ; This calibration establishes closed throttle vehicle speed hysteresis for the base spark table lookups. ; MPH SPARK_ADVANCE_KE_SHIFT_DR_TO_PN_RAMP:dc.w $E4 ; DATA XREF: sub_39F12+2E4r ; Rate at which to ramp spark when transitioning from drive to park. ; Degrees SPARK_ADVANCE_KE_EGR_SPARK_MULT_LIMIT:dc.w $1000 ; DATA XREF: sub_3A330+54r SPARK_ADVANCE_KE_SHIFT_PN_TO_DR_RAMP:dc.w $E4 ; DATA XREF: sub_39F12+1E8r ; Rate at which to ramp spark when transitioning from park to drive. ; Degrees SPARK_ADVANCE_KE_POWER_STEERING_PRESS_MOD:dc.w 0 ; DATA XREF: sub_3A4CE+E2r ; This calibration is a high engine load power steering pressure input spark modifier. ; Degrees SPARK_ADVANCE_KV_APPLIED_OCTANE_SCALER_MULT:dc.w 0 ; DATA XREF: sub_3B78C+34r ; Modifies the calculated octane scaler to establish authority based on temperature. ; Multiplier_0_to_1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b 0 dc.b 8 dc.b 0 dc.b $C dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_ADVANCE_KV_ENG_PROTECTION_SPARK_ADVANCE:dc.b 1 ; DATA XREF: OS1:0003AC2Eo ; Spark advance value based on engine speed if engine protection is enabled. ; Degrees dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 1 dc.b $6C ; l dc.b 2 dc.b $50 ; P dc.b 2 dc.b $7D ; } dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 dc.b 3 dc.b 6 SPARK_ADVANCE_KV_EQ_RATIO_MAP_MODIFIER:dc.b 0 ; DATA XREF: sub_3A436+64o ; A MAP modifier applied to the equivalence ratio angle. ; Multiplier_0_to_2 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b $33 ; 3 dc.b 6 dc.b $66 ; f dc.b 9 dc.b $9A ; ? dc.b $C dc.b $CD ; ? dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_ADVANCE_KV_IAT_RPM_MODIFIER:dc.b 9 ; DATA XREF: sub_3A5CE+40o ; Induction air temperature spark modifier based on engine speed. ; Multiplier dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b $C dc.b $CD ; ? dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_ADVANCE_KV_IAT_SPARK_COOLANT_MODIFIER:dc.w 0 ; DATA XREF: sub_3B78C+Er ; Induction air temperature spark modifier based on coolant temperature. ; Multiplier_0_to_1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_ADVANCE_KV_IDLE_FLARE_COOLANT_MULT:dc.l loc_7FE+2 ; DATA XREF: sub_3B78C+24r ; Modifies the flare control idle spark as a function of coolant temperature. ; Multiplier_0_to_1 dc.b $E dc.b $66 ; f dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_ADVANCE_KV_LIMIT_LOW_RPM_DELTA:dc.b 0 ; DATA XREF: OS1:loc_3AED4o ; Maximum allowable spark advance delta between two consecutive events at low engine speeds. ; Degrees dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $A dc.b $AB ; ? dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_ADVANCE_KV_RDSC_DELTA_RPM_TIME:dc.l loc_60006 ; DATA XREF: sub_39BFE+22r ; This determines the sampling rate of RPM for delta RPM calc in RDSC. ; mSec dc.l unk_80008 dc.l unk_A000A dc.l unk_A000A dc.l unk_A0006 SPARK_ADVANCE_KV_RDSC_DELTA_RPM_SS_TIME:dc.l unk_80008 ; DATA XREF: sub_39BFE+42r ; This determines the sampling rate of RPM for delta RPM calc in steady state RDSC mode. ; mSec dc.l unk_80008 dc.l unk_A000A dc.l unk_A000A dc.l unk_A0008 SPARK_ADVANCE_KV_RDSC_MPH_RANGE:dc.w $5000 ; DATA XREF: sub_3B12A+4Er ; If the vehicle speed is outside this range, disable RDSC. ; MPH Constant16_B5930___Min_vehicle_speed_threshold_for_engine_speed_spark_damping:dc.w $226 ; DATA XREF: sub_3B12A+46r SPARK_ADVANCE_KV_RDSC_RPM_RANGE:dc.w $6000 ; DATA XREF: sub_3B12A+3Er ; If the engine speed is outside this range, disable RDSC. ; RPM Constant16_B5931___Min_RPM_threshold_for_engine_speed_spark_damping:dc.w $A00 ; DATA XREF: sub_3B12A+36r SPARK_ADVANCE_KV_RDSC_SPARK_BIAS_DELAY:dc.l unk_A0008 ; DATA XREF: sub_39E12+48r ; Delay time after tip-in RDSC triggered, before allowing RDSC bias retard. ; Seconds dc.l loc_70006 dc.l loc_60006 dc.l loc_60006 dc.l loc_60006 SPARK_ADVANCE_KV_RDSC_SPARK_BIAS_RETARD_CT:dc.w $89 ; DATA XREF: sub_39E12+1Ar ; Amount of RDSC spark bias retard when active, and CLOSED Throttle. ; Degrees dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2E ; . SPARK_ADVANCE_KV_RDSC_SPARK_BIAS_RETARD_OT:dc.w $89 ; DATA XREF: sub_39E12+28r ; Amount of RDSC spark bias retard when active, and OPEN Throttle. ; Degrees dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $2E ; . dc.b 0 dc.b $2E ; . dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $89 ; ? SPARK_ADVANCE_KV_RDSC_STEADY_STATE_TPS:dc.w $63 ; DATA XREF: sub_3B1A8+58r ; If TPS is less than this steady state RDSC is triggered. ; Percent Constant16_TPS_threshold_for_steady_state__spark_damping_active:dc.w $66 ; DATA XREF: sub_3B1A8:loc_3B208r SPARK_ADVANCE_KA_CLT_RPM_MODIFIER:dc.b $10 ; DATA XREF: sub_3A2A8+38o ; Coolant temperature spark modifier based on engine speed and coolant temperature. ; 0 to 2 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 4 dc.b 0 dc.b 6 dc.b $66 ; f dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 4 dc.b 0 dc.b 6 dc.b $66 ; f dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 4 dc.b 0 dc.b 6 dc.b $66 ; f dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 4 dc.b 0 dc.b 6 dc.b $66 ; f dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 CurveTable_10_Rows______________??_ETC_Tip_In_Torque_By_Gear_???:dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_ADVANCE_KV_CRANK_SPARK_MED_RES:dc.b 2 ; DATA XREF: sub_3A30C+14o ; Spark advance when engine is cranking. ; Degrees dc.b $7D ; } dc.b 2 dc.b $7D ; } dc.b 2 dc.b $7D ; } dc.b 2 dc.b $7D ; } dc.b 2 dc.b $70 ; p dc.b 2 dc.b $45 ; E dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $6C ; l dc.b 1 dc.b $3F ; ? dc.b 1 dc.b $11 dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $5B ; [ SPARK_ADVANCE_KV_IDLE_FLARE_CONTROL:dc.l unk_FF4A ; DATA XREF: sub_3A4CE:loc_3A504r ; Spark modifier based on input from IAC to control engine startup idle flare. ; Degrees dc.b $FE ; ? dc.b $EF ; ? dc.b $FE ; ? dc.b $39 ; 9 dc.b $FD ; ? dc.b $55 ; U dc.b $FC ; ? dc.b $17 dc.b $FB ; ? dc.b $8E ; ? dc.b $FA ; ? dc.b $AB ; ? dc.b $FA ; ? dc.b $AB ; ? dc.b $FC ; ? dc.b $72 ; r dc.b $FF dc.b $1C SPARK_ADVANCE_KV_IDLE_OVERSPEED_ERROR:dc.l unk_FFD2 ; DATA XREF: sub_3A4CE+88o ; This is the spark idle overspeed modifier. ; Degrees dc.b $FF dc.b $77 ; w dc.b $FF dc.b $1C dc.b $FE ; ? dc.b $C1 ; ? dc.b $FE ; ? dc.b $66 ; f dc.b $FE ; ? dc.b $66 ; f dc.b $FE ; ? dc.b $66 ; f dc.b $FE ; ? dc.b $66 ; f dc.b $FE ; ? dc.b $66 ; f SPARK_ADVANCE_KV_IDLE_UNDERSPEED_ERROR:dc.b 0 ; DATA XREF: sub_3A4CE:loc_3A598o ; This is the spark idle underspeed modifier. ; Degrees dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $B6 ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $6C ; l dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $2E ; . dc.b 0 dc.b 0 SPARK_ADVANCE_KV_SHIFT_DR_TO_PN_INHIBIT:dc.b 0 ; DATA XREF: sub_3B710+3Co ; Inhibits the drive to park spark transition until this time is expired. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_ADVANCE_KV_SHIFT_PN_TO_DR_INHIBIT:dc.b 0 ; DATA XREF: sub_3B710+2Co ; Inhibits the park to drive spark transition until this time is expired. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_ADVANCE_KA_FFS_E80_SPARK_SHIFT:dc.b 0 ; DATA XREF: sub_3A63E+6Ao ; This cal determines the flex fuel contribution to spark advance assuming E80 fuel (80% ethanol). ; Degrees dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_ADVANCE_KA_FFS_E80_MBT_SPARK_SHIFT:dc.b 0 ; DATA XREF: sub_3A754+6Ao ; This cal determines the flex fuel contribution to MBT assuming E80 fuel (80% ethanol). ; Degrees dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_ADVANCE_KE_HVS_TEST_RPM_HI:dc.w 0 ; DATA XREF: OS1:0003AC58r ; HVS position monitoring and limit adjusting logic is performed below this RPM. ; RPM SPARK_ADVANCE_KE_HVS_TEST_RPM_LO:dc.w 0 ; DATA XREF: OS1:0003AC62r ; HVS position monitoring and limit adjusting logic is performed above this RPM. ; RPM SPARK_ADVANCE_KE_HVS_MAX_RETARD:dc.w $FD55 ; DATA XREF: sub_3B3DA:loc_3B416r ; Maximum spark retard permitted by the HVS. ; Degrees SPARK_ADVANCE_KE_HVS_DEGREE_OFFSET_DEFAULT:dc.w 0 ; DATA XREF: OS1:0003AD1Cr ; Default HVS offset when no CAM falling edge is detected. ; Degrees SPARK_ADVANCE_KE_CRANK_BLEND_STEP_OT:dc.w $7FFF ; DATA XREF: OS1:loc_3AD72r ; Open throttle crank to run spark blending step size. ; Degrees SPARK_ADVANCE_KE_CRANK_BLEND_TPS:dc.w 0 ; DATA XREF: OS1:0003AD62r ; If throttle position is less than this value use Kx_TPS_Blend_Step otherwise use Kx_Spark_Blend_Step. ; Percent SPARK_ADVANCE_KE_CRANK_BLEND_STEP_CT:dc.w $7FFF ; DATA XREF: OS1:0003AD6Ar ; Closed throttle crank to run spark blending step size. ; Degrees SPARK_ADVANCE_KE_CAT_LIGHTOFF_REENABLE_REFS:dc.w $7D ; DATA XREF: sub_3AF0C+1BAr ; sub_3AF0C+1D6r ; Number of ref pulses over which lightoff retard is ramped back in after disable from vacuum or lauch spark. ; CARDINAL SPARK_ADVANCE_KE_CAT_LIGHTOFF_SPARK_VACUUM_DIS:dc.w $F00 ; DATA XREF: sub_3AF0C+10Er ; Set Catalyst Lightoff Spark Retard to zero when engine manifold vacuum is greater than this value. ; kPa SPARK_ADVANCE_KE_CAT_LIGHTOFF_SPARK_VACUUM_ENA:dc.w $E00 ; DATA XREF: sub_3AF0C+F0r SPARK_ADVANCE_KE_EGR_INCR_SPARK_FILT:dc.w 0 ; DATA XREF: sub_3A330:loc_3A3F4r ; ; SPARK_ADVANCE_KV_CRANK_AFTERSTART_STEP:dc.b 0 ; DATA XREF: sub_3B78C+54o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_ADVANCE_KV_CRANK_AFTERSTART_TIME:dc.b 0 ; DATA XREF: sub_3B78C+44o ; Engine run time below which crank to run blend is controlled by either Kx_Afterstart_Blend_Step or Kx_Spark_Blend_Step. ; Seconds dc.b 0 dc.b 0 dc.b 0 CurveTable_19_Rows_Engine_run_time_threshold_for_initial_transition_from_crank_to_run:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_ADVANCE_KV_CAT_LIGHTOFF_COOLANT_MULT:dc.b 0 ; DATA XREF: sub_3AF0C+5Ao ; Powerup coolant multiplier applied to the catalyst lightoffspark retard. ; Multiplier_0_to_2 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 8 dc.b 0 dc.b $13 dc.b $33 ; 3 dc.b $16 dc.b $66 ; f dc.b $10 dc.b 0 dc.b 8 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_ADVANCE_KV_CAT_LIGHTOFF_THROTTLE_MULT:dc.w $1000 ; DATA XREF: sub_3AF0C+6Er ; Throttle position multiplier applied to the catalyst lightoffspark retard. ; Multiplier_0_to_1 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b 8 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_ADVANCE_KV_CAT_LIGHTOFF_HOLD_TIME:dc.b 0 ; DATA XREF: OS1:0003B6ACo ; The amount of time catalyst lightoff retard is active. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $F dc.b $A0 ; ? dc.b $1F dc.b $40 ; @ dc.b $1F dc.b $40 ; @ dc.b $1F dc.b $40 ; @ dc.b $F dc.b $A0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_ADVANCE_KV_CAT_LIGHTOFF_DECAY_TIME:dc.b 0 ; DATA XREF: OS1:0003B6BCo ; The time over which catalyst lightoff retard is decayed to 0 after the hold time is satisfied. ; Seconds dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 9 dc.b $60 ; ` dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b 9 dc.b $60 ; ` dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? SPARK_ADVANCE_KA_PISTON_SLAP_SPARK_RETARD:dc.b 0 ; DATA XREF: sub_3A6D0+52o ; This calibration determines the Piston Slap contribution to spark advance. ; Degrees dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $3E ; > dc.b 2 dc.b $7D ; } dc.b 2 dc.b $7D ; } dc.b 2 dc.b $7D ; } dc.b 2 dc.b $7D ; } dc.b 2 dc.b $7D ; } dc.b 2 dc.b $7D ; } dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $9A ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $45 ; E dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_ADVANCE_KV_PISTON_SLAP_COOLANT_MULT:dc.w $1000 ; DATA XREF: sub_3A6D0+64r ; This calibration is a Piston Slap Spark modifier based on Coolant Temperature. ; Unitless dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $D dc.b $B7 ; ? dc.b 9 dc.b $25 ; % dc.b 4 dc.b $92 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_DWELL_KA_MAIN_DWELL_TIME:dc.b 7 ; DATA XREF: sub_3B82A+38o ; This determines the base dwell time. ; Milliseconds dc.b $94 ; ? dc.b 7 dc.b $94 ; ? dc.b 7 dc.b $53 ; S dc.b 7 dc.b $12 dc.b 6 dc.b $D2 ; ? dc.b 6 dc.b $91 ; ? dc.b 6 dc.b $50 ; P dc.b 6 dc.b $10 dc.b 5 dc.b $CF ; ? dc.b 5 dc.b $8F ; ? dc.b 5 dc.b $4E ; N dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 7 dc.b $94 ; ? dc.b 7 dc.b $94 ; ? dc.b 7 dc.b $53 ; S dc.b 7 dc.b $12 dc.b 6 dc.b $D2 ; ? dc.b 6 dc.b $91 ; ? dc.b 6 dc.b $50 ; P dc.b 6 dc.b $10 dc.b 5 dc.b $CF ; ? dc.b 5 dc.b $8F ; ? dc.b 5 dc.b $4E ; N dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 7 dc.b $94 ; ? dc.b 7 dc.b $94 ; ? dc.b 7 dc.b $53 ; S dc.b 7 dc.b $12 dc.b 6 dc.b $D2 ; ? dc.b 6 dc.b $91 ; ? dc.b 6 dc.b $50 ; P dc.b 6 dc.b $10 dc.b 5 dc.b $CF ; ? dc.b 5 dc.b $8F ; ? dc.b 5 dc.b $4E ; N dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 7 dc.b $94 ; ? dc.b 7 dc.b $94 ; ? dc.b 7 dc.b $53 ; S dc.b 7 dc.b $12 dc.b 6 dc.b $D2 ; ? dc.b 6 dc.b $91 ; ? dc.b 6 dc.b $50 ; P dc.b 6 dc.b $10 dc.b 5 dc.b $CF ; ? dc.b 5 dc.b $8F ; ? dc.b 5 dc.b $4E ; N dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 7 dc.b $94 ; ? dc.b 7 dc.b $94 ; ? dc.b 7 dc.b $53 ; S dc.b 7 dc.b $12 dc.b 6 dc.b $D2 ; ? dc.b 6 dc.b $91 ; ? dc.b 6 dc.b $50 ; P dc.b 6 dc.b $10 dc.b 5 dc.b $CF ; ? dc.b 5 dc.b $8F ; ? dc.b 5 dc.b $4E ; N dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 7 dc.b $94 ; ? dc.b 7 dc.b $94 ; ? dc.b 7 dc.b $53 ; S dc.b 7 dc.b $12 dc.b 6 dc.b $D2 ; ? dc.b 6 dc.b $91 ; ? dc.b 6 dc.b $50 ; P dc.b 6 dc.b $10 dc.b 5 dc.b $CF ; ? dc.b 5 dc.b $8F ; ? dc.b 5 dc.b $4E ; N dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 7 dc.b $94 ; ? dc.b 7 dc.b $94 ; ? dc.b 7 dc.b $53 ; S unk_14000: dc.b 7 ; DATA XREF: sub_220F0+12Eo ; sub_7B33A+112o dc.b $12 dc.b 6 dc.b $D2 ; ? dc.b 6 dc.b $91 ; ? dc.b 6 dc.b $50 ; P dc.b 6 dc.b $10 dc.b 5 dc.b $CF ; ? dc.b 5 dc.b $8F ; ? dc.b 5 dc.b $4E ; N dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 4 dc.b $FD ; ? dc.b 4 dc.b $ED ; ? dc.b 4 dc.b $C9 ; ? dc.b 4 dc.b $A6 ; ? dc.b 4 dc.b $83 ; ? dc.b 4 dc.b $5E ; ^ dc.b 4 dc.b $3B ; ; dc.b 4 dc.b $17 dc.b 3 dc.b $F4 ; ? dc.b 3 dc.b $D1 ; ? dc.b 3 dc.b $AC ; ? dc.b 3 dc.b $89 ; ? dc.b 3 dc.b $89 ; ? dc.b 3 dc.b $89 ; ? dc.b 3 dc.b $89 ; ? dc.b 3 dc.b $89 ; ? dc.b 3 dc.b $89 ; ? dc.b 3 dc.b $89 ; ? dc.b 3 dc.b $89 ; ? dc.b 3 dc.b $89 ; ? dc.b 3 dc.b $89 ; ? dc.b 2 dc.b $66 ; f dc.b 2 dc.b $46 ; F dc.b 2 dc.b $40 ; @ dc.b 2 dc.b $39 ; 9 dc.b 2 dc.b $32 ; 2 dc.b 2 dc.b $2C ; , dc.b 2 dc.b $25 ; % dc.b 2 dc.b $1F dc.b 2 dc.b $18 dc.b 2 dc.b $13 dc.b 2 dc.b $C dc.b 2 dc.b 5 dc.b 2 dc.b 5 dc.b 2 dc.b 5 dc.b 2 dc.b 5 dc.b 2 dc.b 5 dc.b 2 dc.b 5 dc.b 2 dc.b 5 dc.b 2 dc.b 5 dc.b 2 dc.b 5 dc.b 2 dc.b 5 dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $E5 ; ? dc.b 1 dc.b $E1 ; ? dc.b 1 dc.b $DF ; ? dc.b 1 dc.b $DC ; ? dc.b 1 dc.b $D8 ; ? dc.b 1 dc.b $D5 ; ? dc.b 1 dc.b $D2 ; ? dc.b 1 dc.b $CB ; ? dc.b 1 dc.b $C5 ; ? dc.b 1 dc.b $BE ; ? dc.b 1 dc.b $B7 ; ? dc.b 1 dc.b $B4 ; ? dc.b 1 dc.b $B4 ; ? dc.b 1 dc.b $B4 ; ? dc.b 1 dc.b $B4 ; ? dc.b 1 dc.b $B4 ; ? dc.b 1 dc.b $B4 ; ? dc.b 1 dc.b $B4 ; ? dc.b 1 dc.b $B4 ; ? dc.b 1 dc.b $B4 ; ? dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $7D ; } dc.b 1 dc.b $77 ; w dc.b 1 dc.b $70 ; p dc.b 1 dc.b $6A ; j dc.b 1 dc.b $64 ; d dc.b 1 dc.b $64 ; d dc.b 1 dc.b $64 ; d dc.b 1 dc.b $64 ; d dc.b 1 dc.b $64 ; d dc.b 1 dc.b $64 ; d dc.b 1 dc.b $64 ; d dc.b 1 dc.b $64 ; d dc.b 1 dc.b $64 ; d dc.b 1 dc.b $53 ; S dc.b 1 dc.b $53 ; S dc.b 1 dc.b $53 ; S dc.b 1 dc.b $53 ; S dc.b 1 dc.b $53 ; S dc.b 1 dc.b $53 ; S dc.b 1 dc.b $53 ; S dc.b 1 dc.b $53 ; S dc.b 1 dc.b $4D ; M dc.b 1 dc.b $4A ; J dc.b 1 dc.b $43 ; C dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $23 ; # dc.b 1 dc.b $23 ; # dc.b 1 dc.b $23 ; # dc.b 1 dc.b $23 ; # dc.b 1 dc.b $23 ; # dc.b 1 dc.b $23 ; # dc.b 1 dc.b $23 ; # dc.b 1 dc.b $23 ; # dc.b 1 dc.b $1D dc.b 1 dc.b $1D dc.b 1 dc.b $16 dc.b 1 dc.b $16 dc.b 1 dc.b $F dc.b 1 dc.b $F dc.b 1 dc.b $F dc.b 1 dc.b $F dc.b 1 dc.b $F dc.b 1 dc.b $F dc.b 1 dc.b $F dc.b 1 dc.b $F dc.b 1 dc.b $F dc.b 1 dc.b 5 dc.b 1 dc.b 5 dc.b 1 dc.b 5 dc.b 1 dc.b 5 dc.b 1 dc.b 5 dc.b 1 dc.b 5 dc.b 1 dc.b 5 dc.b 1 dc.b 5 dc.b 1 dc.b 2 dc.b 1 dc.b 2 dc.b 0 dc.b $FD ; ? dc.b 0 dc.b $F9 ; ? dc.b 0 dc.b $F3 ; ? dc.b 0 dc.b $EF ; ? dc.b 0 dc.b $EF ; ? dc.b 0 dc.b $EF ; ? dc.b 0 dc.b $EF ; ? dc.b 0 dc.b $EF ; ? dc.b 0 dc.b $EF ; ? dc.b 0 dc.b $EF ; ? dc.b 0 dc.b $EF ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $DC ; ? dc.b 0 dc.b $D5 ; ? dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $D5 ; ? dc.b 0 dc.b $D5 ; ? dc.b 0 dc.b $D5 ; ? dc.b 0 dc.b $D5 ; ? dc.b 0 dc.b $D5 ; ? dc.b 0 dc.b $D5 ; ? dc.b 0 dc.b $D5 ; ? dc.b 0 dc.b $D5 ; ? dc.b 0 dc.b $D5 ; ? dc.b 0 dc.b $D5 ; ? dc.b 0 dc.b $D2 ; ? dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $BC ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $BC ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $BC ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $BC ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $BC ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $BC ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $BC ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $BC ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $BC ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $BC ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $BC ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? SPARK_DWELL_KA_MODIFIER_DWELL_TIME:dc.b $10 ; DATA XREF: sub_3B82A+E2o dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b $F6 ; ? dc.b $11 dc.b $EC ; ? dc.b $11 dc.b $5C ; \ dc.b $10 dc.b $CD ; ? dc.b $10 dc.b $8F ; ? dc.b $10 dc.b $52 ; R dc.b $10 dc.b $A4 ; ? dc.b $10 dc.b $F6 ; ? dc.b $10 dc.b $8F ; ? dc.b $10 dc.b $29 ; ) dc.b $10 dc.b $29 ; ) dc.b $10 dc.b $29 ; ) dc.b $10 dc.b $29 ; ) dc.b $10 dc.b $29 ; ) dc.b $10 dc.b $29 ; ) dc.b $10 dc.b $29 ; ) dc.b $10 dc.b $29 ; ) dc.b $10 dc.b $29 ; ) dc.b $10 dc.b $29 ; ) dc.b $10 dc.b $29 ; ) dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $13 dc.b $A dc.b $16 dc.b $14 dc.b $14 dc.b $29 ; ) dc.b $12 dc.b $3D ; = dc.b $11 dc.b $EC ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $D7 ; ? dc.b $12 dc.b $14 dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $1F dc.b $11 dc.b $1F dc.b $11 dc.b $1F dc.b $11 dc.b $1F dc.b $11 dc.b $1F dc.b $11 dc.b $1F dc.b $11 dc.b $1F dc.b $11 dc.b $1F dc.b $11 dc.b $1F dc.b $11 dc.b $1F dc.b $11 dc.b $1F dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $16 dc.b $B8 ; ? dc.b $1D dc.b $71 ; q dc.b $17 dc.b $EC ; ? dc.b $12 dc.b $66 ; f dc.b $12 dc.b $52 ; R dc.b $12 dc.b $3D ; = dc.b $12 dc.b $52 ; R dc.b $12 dc.b $66 ; f dc.b $12 dc.b 0 dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $14 dc.b $A4 ; ? dc.b $19 dc.b $48 ; H dc.b $18 dc.b $14 dc.b $16 dc.b $E1 ; ? dc.b $14 dc.b $F6 ; ? dc.b $13 dc.b $A dc.b $12 dc.b $E1 ; ? dc.b $12 dc.b $B8 ; ? dc.b $12 dc.b $7B ; { dc.b $12 dc.b $3D ; = dc.b $12 dc.b $3D ; = dc.b $12 dc.b $3D ; = dc.b $12 dc.b $3D ; = dc.b $12 dc.b $3D ; = dc.b $12 dc.b $3D ; = dc.b $12 dc.b $3D ; = dc.b $12 dc.b $3D ; = dc.b $12 dc.b $3D ; = dc.b $12 dc.b $3D ; = dc.b $12 dc.b $3D ; = dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $13 dc.b $A dc.b $16 dc.b $14 dc.b $14 dc.b $8F ; ? dc.b $13 dc.b $A dc.b $12 dc.b $E1 ; ? dc.b $12 dc.b $B8 ; ? dc.b $13 dc.b $5C ; \ dc.b $14 dc.b 0 dc.b $13 dc.b $71 ; q dc.b $12 dc.b $E1 ; ? dc.b $12 dc.b $E1 ; ? dc.b $12 dc.b $E1 ; ? dc.b $12 dc.b $E1 ; ? dc.b $12 dc.b $E1 ; ? dc.b $12 dc.b $E1 ; ? dc.b $12 dc.b $E1 ; ? dc.b $12 dc.b $E1 ; ? dc.b $12 dc.b $E1 ; ? dc.b $12 dc.b $E1 ; ? dc.b $12 dc.b $E1 ; ? dc.b $B dc.b $5C ; \ dc.b $B dc.b $5C ; \ dc.b $B dc.b $5C ; \ dc.b $B dc.b $5C ; \ dc.b $B dc.b $5C ; \ dc.b $B dc.b $5C ; \ dc.b $B dc.b $5C ; \ dc.b $D dc.b $D7 ; ? dc.b $10 dc.b $52 ; R dc.b $E dc.b $F6 ; ? dc.b $D dc.b $9A ; ? dc.b $E dc.b $3D ; = dc.b $E dc.b $E1 ; ? dc.b $F dc.b $EC ; ? dc.b $10 dc.b $F6 ; ? dc.b $11 dc.b $48 ; H dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? SPARK_DWELL_KE_100MS_STEADY_STATE_RPM:dc.w 0 ; DATA XREF: sub_3B82A:loc_3B954r SPARK_DWELL_KE_CRANK_BOOST_DWELL:dc.w $1333 ; DATA XREF: sub_3B82A+10Er ; Cold start crank mode modifier to the core dwell. ; Multiplier_0_to_4 SPARK_DWELL_KE_INITIAL_DWELL:dc.w $287 ; DATA XREF: sub_3BA1Er ; Dwell is initialized to this value at powerup. ; Milliseconds SPARK_DWELL_KE_INITIAL_MAX_DWELL:dc.b $82 ; DATA XREF: sub_3BA1E+Ar ; Initial dwell multiplier to determine max dwell atpowerup. ; Multiplier_1p1_to_1p3 SPARK_DWELL_KE_INITIAL_MIN_DWELL:dc.b $5A ; DATA XREF: sub_3BA1E+24r ; Initial dwell multiplier to determine min dwell atpowerup. ; Multiplier_0_to_1p0 SPARK_DWELL_KV_HVS_MIN_RUN_DWELL:dc.w 0 ; DATA XREF: sub_3B82A:loc_3BA0Cr ; The minimum dwell required at a given RPM in low-res only ignition systems. ; Millisec_vs_RPM_0to8000_Table dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_DWELL_KV_MAX_DWELL:dc.b $82 ; ? ; DATA XREF: sub_3B82A+152o ; This determines the max dwell time . ; Mult1p1to1p3_vs_RPM_0to8000_Tbl dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $82 ; ? dc.b $FF SPARK_DWELL_KV_DWELL_MAP_MODIFIER:dc.b $10 ; DATA XREF: sub_3B82A+136o ; Modifier applied to the calculated dwell to adjust the value as a function of manifold pressure. ; Mult_0to2_vs_kPa_20to100_Table dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_DWELL_KV_MIN_DWELL:dc.b $5A ; Z ; DATA XREF: sub_3B82A+17Co ; This determines the min dwell time . ; Mult0to1p0_vs_RPM_0to8000_Table dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $5A ; Z dc.b $FF SPARK_DWELL_KE_HVS_MAX_CRANK_DWELL:dc.w 0 ; DATA XREF: sub_3B7F0+20r ; EST will be forced off after this amount of time to prevent coil damage. ; Seconds SPARK_KNOCK_KE_NUMBER_OF_SENSORS:dc.b 2 ; DATA XREF: sub_3C1EE:loc_3C2EAr ; sub_64914+C2r ... ; This is the number of ESC sensors used to determine if ESC sensors should be multiplexed in diagnostics. ; Number dc.b $FF SPARK_KNOCK_KE_DELTA_TPS_ABSOLUTE_MAD_DIS:dc.w $200 ; DATA XREF: sub_3BB66+4Er ; If TPS changes more than this in 200 ms MAD learning will be disabled ; Percent SPARK_KNOCK_KE_DELTA_RPM_ABSOLUTE_MAD_DIS:dc.w $500 ; DATA XREF: sub_3BB66+5Cr ; If RPM changes more than this in 200 ms MAD learning will be disabled ; RPM SPARK_KNOCK_KE_DELTA_MAP_ABSOLUTE_MAD_DIS:dc.w $E6 ; DATA XREF: sub_3BB66:loc_3BBA6r ; If 12p5_ms_Filtered_MAP has changed more than this MAD learning will be disabled ; RPM SPARK_KNOCK_KE_MAP_12P5_MS_FILT_COEFFICIENT:dc.b $1A ; DATA XREF: sub_3C1CC+Cr ; Filter coefficient for 12.5 ms MAP readings ; Coef. SPARK_KNOCK_KE_ADAPTIVE_BPF_GAIN_ADJ_RATE:dc.b 0 ; DATA XREF: sub_3C638+3Ar ; This controls the number of 200 ms loops betweenadaptive BPF gain calculations ; Counts SPARK_KNOCK_KE_INITIAL_ADAPTIVE_BPF_GAIN:dc.b 1 ; DATA XREF: sub_3CB70+98r ; This is the initial value for the BPF Gain. ; Gain_dB SPARK_KNOCK_KE_MIN_ADAPTIVE_BPF_GAIN:dc.b 1 ; DATA XREF: sub_3BC80+B6r ; This is the minimum value for the BPF Gain. ; Gain_dB SPARK_KNOCK_KE_MAX_ADAPTIVE_BPF_GAIN:dc.b $D ; DATA XREF: sub_3BC80+100r ; This is the maximum value for the BPF Gain. ; Gain_dB SPARK_KNOCK_KE_DIAG_IRIC_DB_GAIN:dc.b $D ; DATA XREF: sub_3CA2E:loc_3CA44r ; This is the value for the BPF Gain in diagnostic mode. ; Gain_dB SPARK_KNOCK_KE_RPM_KNOCK_LOW:dc.w $C00 ; DATA XREF: sub_3C1EE+270r ; RPM value below this level will not enable Delta RPM detection logic. ; RPM SPARK_KNOCK_KE_RPM_KNOCK_HIGH:dc.w $7800 ; DATA XREF: sub_3C1EE+278r ; RPM value above this level will not enable Delta RPM detection logic. ; RPM SPARK_KNOCK_KE_RPM_KNOCK_DELTA:dc.w $52 ; DATA XREF: sub_3C1EE+280r ; An RPM increase greater than this over a 25 msec time period will enable the Delta RPM detection logic. ; RPM SPARK_KNOCK_KE_RPM_KNOCK_TIME:dc.w $28 ; DATA XREF: sub_3C1EE+28Er ; Duration of time to modify knock thresholds due to an engine speed increase. ; Second SPARK_KNOCK_KA_OCTANE_INIT_MODIFIER:dc.b 0 ; DATA XREF: sub_3CB70+176o ; Octane adaptive scaler is modified by this calibrated amount every powerup when KE_Octane_Scaler_Modify_On_Init is TRUE. ; Scaler -1 to 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_KNOCK_KE_ADAPT_BPF_HIGH_AVG_NOISE_THRE:dc.w $133 ; DATA XREF: sub_3BC80+22r ; sub_3BC80+AAr ; If the average noise is greater than this value the adaptive gain will be decreased. ; Volts SPARK_KNOCK_KE_ADAPT_BPF_LOW_AVG_NOISE_THRES:dc.w $CD ; DATA XREF: sub_3BC80:loc_3BCCEr ; sub_3BC80:loc_3BD74r ; If the average noise is less than this value the adaptive gain will be increased. ; Volts SPARK_KNOCK_KE_KNOCK_DETECTOR_MAD_INIT:dc.l loc_1D60 ; DATA XREF: sub_3CB70+B6r ; Initialization value for Knock_Detector_MAD value invoked during powerup. ; Millivolts SPARK_KNOCK_KE_KNOCK_DETECTOR_MAD_MAX:dc.l off_2168 ; DATA XREF: sub_3BB66:loc_3BC40r ; Maximum allowable knock detector mean absolute deviation (MAD) for any sensor. ; Millivolts SPARK_KNOCK_KE_KNOCK_DETECTOR_MAD_MIN:dc.l loc_1A7C+3 ; DATA XREF: sub_3BB66:loc_3BC4Er ; Minimum allowable knock detector mean absolute deviation (MAD) for any sensor. ; Millivolts SPARK_KNOCK_KE_KNOCK_MAD_MAP_THRESH:dc.w $C00 ; DATA XREF: sub_3BB66+24r ; Above this manifold pressure, threshold Knock_Detector_MAD can be updated. ; kPa SPARK_KNOCK_KE_KNOCK_MAD_RPM_THRESH:dc.w $1400 ; DATA XREF: sub_3BB66+16r ; Above this engine speed, threshold Knock_Detector_MAD can be updated. ; RPM SPARK_KNOCK_KE_MAD_COEFFICIENT_SAMPLES:dc.w $190 ; DATA XREF: sub_3BB66+8Cr ; sub_3BB66+B6r ; Determines the number of samples used in computing Knock_Detector_MAD. ; Counts SPARK_KNOCK_KE_IR_AVERAGE_NOISE_INITIAL:dc.w $480 ; DATA XREF: sub_3CB70+134r ; If KE_IR_Avg_Noise_Modify_Init is TRUE then all IR average noise levels will be set to this calibration upon initialization. ; Volts SPARK_KNOCK_KE_IR_AVG_NOISE_MODIFY_INIT:dc.b 1 ; DATA XREF: sub_3CB70+126r ; When set to TRUE, all IR average noise levels will be set to a calibration upon initialization. ; Boolean dc.b $FF SPARK_KNOCK_KE_OCTANE_SCALER_DIAG_DEFAULT:dc.w 0 ; DATA XREF: sub_3C938+24r ; This is the octane scaler value if a knock sensor group fault is active. ; Multiplier_0_To_1 SPARK_KNOCK_KE_OCTANE_SCALER_MODIFY_ON_INIT:dc.b 0 ; DATA XREF: sub_3CB70:loc_3CCC6r ; When set to TRUE the octane adaptive scaler will be modified on every powerup. ; Boolean SPARK_KNOCK_KE_SPEED_CHANGE_HIGH_COUNTER_A:dc.b $20 ; DATA XREF: sub_3C68C+172r ; When this calibration is exceeded, the slow sample number will be used for determining the average noise level. ; Counts SPARK_KNOCK_KV_KNOCK_FAST_ATTACK_COOL_GAIN:dc.w 0 ; DATA XREF: sub_3BDC4+116r ; An attack rate coolant gain table that allows the detector to be disabled below an engine temperature. ; Scaler dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b 0 dc.b 8 dc.b 0 dc.b $C dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_KNOCK_KV_KNOCK_FAST_ATTACK_BARO_GAIN:dc.b $10 ; DATA XREF: sub_3BDC4:loc_3BF0Co ; An attack rate baro gain table that adjusts the detector's sensitivity for changes in altitude. ; Scaler dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_KNOCK_KV_KNOCK_FAST_IR_ATTACK_RATE:dc.b 4 ; DATA XREF: sub_3BDC4+108o ; This calibration is a knock retard fast multiplier based on engine speed for Integrate and Read Modes. ; Degrees/V dc.b $44 ; D dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $FA ; ? dc.b 5 dc.b $B0 ; ? dc.b 6 dc.b $B dc.b 6 dc.b $66 ; f dc.b 6 dc.b $C1 ; ? dc.b 7 dc.b $D2 ; ? dc.b 7 dc.b $D2 ; ? dc.b 7 dc.b $D2 ; ? dc.b 7 dc.b $D2 ; ? dc.b 7 dc.b $D2 ; ? dc.b 7 dc.b $D2 ; ? dc.b 7 dc.b $D2 ; ? dc.b 7 dc.b $D2 ; ? dc.b 7 dc.b $D2 ; ? SPARK_KNOCK_KV_KNOCK_RETARD_LIMIT_LOAD:dc.b 0 ; DATA XREF: sub_3BDC4+174o ; sub_3C1EE+12o ... ; This calibration is the total maximum knock retard authority allowed when Power Enrichment is not active. ; Degrees dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b $B6 ; ? dc.b 1 dc.b $33 ; 3 dc.b 1 dc.b $B0 ; ? dc.b 2 dc.b $2E ; . dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $AB ; ? dc.b 2 dc.b $AB ; ? SPARK_KNOCK_KV_KNOCK_RETARD_LIMIT_SPEED:dc.l off_0+$111 ; DATA XREF: sub_3BDC4+180o ; sub_3BDC4+1A8o ... ; This calibration is the total maximum knock retard authority allowed when Power Enrichment is active. ; Degrees dc.b 1 dc.b $6C ; l dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? dc.b 1 dc.b $C7 ; ? SPARK_KNOCK_KV_KNOCK_RETARD_DEFAULT_LOAD:dc.b 0 ; DATA XREF: sub_3BDC4+19Co ; sub_3C8BC+60o ; This calibration is the default value for knock retard fast when Knock System faults exist. ; Degrees dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_KNOCK_KV_KNOCK_FAST_RECOVER_RATE:dc.b 0 ; DATA XREF: sub_3C8BC+8o dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $3D ; = dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $35 ; 5 SPARK_KNOCK_KE_LRN_GAIN_MIN_MAP:dc.w $A00 ; DATA XREF: sub_3C4AC+8r ; Manifold Pressure value below which Learn Gain is set to zero. ; kPa SPARK_KNOCK_KE_LRN_GAIN_MAX_RPM:dc.w $8000 ; DATA XREF: sub_3C4AC+20r ; Engine Speed value above which Learn Gain is set to zero. ; RPM SPARK_KNOCK_KE_LRN_GAIN_MIN_RPM:dc.w $600 ; DATA XREF: sub_3C4AC+14r ; Engine Speed value below which Learn Gain is set to zero. ; RPM SPARK_KNOCK_KE_LRN_GAIN_MIN_COOL:dc.w $580 ; DATA XREF: sub_3C4AC+2Cr ; Coolant Temperature value below which Learn Gain is set to zero. ; Degrees_C SPARK_KNOCK_KE_LRN_GAIN_MIN_IAT:dc.w $FC00 ; DATA XREF: sub_3C4AC+38r ; Induction Air Temperature value below which Learn Gain is set to zero. ; Degrees_C SPARK_KNOCK_KE_LRN_GAIN_TOTAL_RTD:dc.w $2AB ; DATA XREF: sub_3C4AC+44r ; Total retard value above which Learn Gain is set to zero. ; Degrees SPARK_KNOCK_KE_MAP_WEIGHT_FACTOR:dc.w $400 ; DATA XREF: sub_3C4AC+12Er ; sub_3C4AC+14Ar ; Weighted Multiplier for MAP contribution to Learn Gain. ; Multiplier SPARK_KNOCK_KE_RPM_WEIGHT_FACTOR:dc.w $400 ; DATA XREF: sub_3C4AC+F8r ; sub_3C4AC+150r ; Weighted Multiplier for RPM contribution to Learn Gain. ; Multiplier SPARK_KNOCK_KE_COOL_WEIGHT_FACTOR:dc.w $400 ; DATA XREF: sub_3C4AC+D4r ; sub_3C4AC+156r ; Weighted Multiplier for coolant temperature contribution to Learn Gain. ; Multiplier SPARK_KNOCK_KE_DELTA_TIP_IN_TPS:dc.w $9A ; DATA XREF: sub_3C1EE+222r ; Delta TPS to activate transient condition check. ; Percent SPARK_KNOCK_KE_IAT_WEIGHT_FACTOR:dc.w 0 ; DATA XREF: sub_3C4AC+B6r ; sub_3C4AC+15Cr ; Weighted Multiplier for Induction Air Temperature contribution to Learn Gain. ; Multiplier SPARK_KNOCK_KE_TOTAL_RTD_WEIGHT_FACTOR:dc.w $1000 ; DATA XREF: sub_3C4AC+90r ; sub_3C4AC+162r ; Weighted Multiplier for Total Retard contribution to Learn Gain. ; Multiplier SPARK_KNOCK_KE_TIP_IN_KNOCK_TIME:dc.w $28 ; DATA XREF: sub_3C1EE+230r ; Time that the transient calibrations to modify the knock detection criteria are enabled. ; Seconds SPARK_KNOCK_KE_TPS_KNOCK_HIGH:dc.w $C00 ; DATA XREF: sub_3C1EE+21Ar ; Maximum TPS to activate transient condition check. ; Percent SPARK_KNOCK_KE_TPS_KNOCK_LOW:dc.w $66 ; DATA XREF: sub_3C1EE+212r ; Minimum TPS to activate transient condition check. ; Percent SPARK_KNOCK_KV_KNOCK_MAP_LEARN_GAIN:dc.b 0 ; DATA XREF: sub_3C4AC:loc_3C5D0o ; Manifold Pressure contribution to engine's propensity to knock. ; Multiplier dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $B dc.b $33 ; 3 dc.b $E dc.b $66 ; f dc.b $F dc.b $33 ; 3 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_KNOCK_KV_KNOCK_RPM_LEARN_GAIN:dc.w $800 ; DATA XREF: sub_3C4AC:loc_3C59Cr ; Engine Speed contribution to engine's propensity to knock. ; Multiplier dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_KNOCK_KV_KNOCK_COOL_LEARN_GAIN:dc.w 0 ; DATA XREF: sub_3C4AC+CCr ; Coolant Temperature contribution to engine's propensity to knock. ; Multiplier dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $C dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_KNOCK_KV_KNOCK_IAT_LEARN_GAIN:dc.w 0 ; DATA XREF: sub_3C4AC+ACr ; Induction Air Temperature contribution to engine's propensity to knock. ; Multiplier dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_KNOCK_KV_KNOCK_TOTAL_RTD_LEARN_GAIN:dc.l off_0+$333 ; DATA XREF: sub_3C4AC:loc_3C534r ; Total Spark Retard contribution to engine's propensity to knock. ; Multiplier dc.b 6 dc.b $66 ; f dc.b 9 dc.b $9A ; ? dc.b $C dc.b $CD ; ? dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_KNOCK_KE_OCTANE_INIT_SCALER:dc.w $1000 ; DATA XREF: sub_3CB70+14Cr ; This calibration is the initial value for Octane Scaler. ; Multiplier SPARK_KNOCK_KV_DELTA_OCTANE_MULT:dc.l off_0+$CD ; DATA XREF: sub_3C938:loc_3C9CEr ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b 3 dc.b $33 ; 3 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 byte_14A98: dc.b 8 ; DATA XREF: sub_3CA2E+52r dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_KNOCK_KE_OCTANE_SCALER_INCREMENT:dc.w 9 ; DATA XREF: sub_3C938+ACr ; This is the rate to increment the Octane Scaler when conditions are met. ; Multiplier SPARK_KNOCK_KE_OCT_KNOCK_FAST_THRESH:dc.w $5B ; DATA XREF: sub_3C938:loc_3CA02r ; Learn down octane scaler only if Knock_Retard_Fast exceeds this minimum threshold. ; Degrees SPARK_KNOCK_KE_OCTANE_SCALER_DECREMENT:dc.w $19 ; DATA XREF: sub_3C938+D6r ; This is the rate to decrement the Octane Scaler when conditions are met. ; Multiplier SPARK_KNOCK_KE_KNOCK_DETECTION_MODE:dc.b 0 ; DATA XREF: sub_3CB70+40r ; sub_3CB70+78r ; This calibration selects the knock detection configuration. ; IRIC Mode dc.b $FF SPARK_KNOCK_KE_BANK_HOLD_TIME:dc.w $1941 ; DATA XREF: sub_3C1EE+ACr ; sub_3C1EE+E8r ; This is the amount of time between toggling the ESC Select line when in diagnostics mode. ; Millisecs. SPARK_KNOCK_KE_MUX_PATTERN_CONTROL:dc.b $F6 ; DATA XREF: sub_3BC68+Ar ; sub_3BDC4+3BEr ... SPARK_KNOCK_KE_TDC_OFFSET:dc.b 4 ; DATA XREF: sub_3C1EE+136r SPARK_KNOCK_KV_BPF1_FC:dc.b 1 ; DATA XREF: sub_3CA2E+C2r ; This is the center frequency for bandpass filter 1. ; KHz dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b $FF SPARK_KNOCK_KV_BPF1_Q:dc.b 2 ; DATA XREF: sub_3CA2E+AAr ; This is the quality factor for bandpass filter 1. ; Q dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF SPARK_KNOCK_KA_INTEGRATION_TIME:dc.b 7 ; This sets the integration time constant for the Integrate and Read mode. ; Microsecs. dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b $FF dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $FF dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $FF dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $FF dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $FF dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $FF dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $12 dc.b $FF SPARK_KNOCK_KE_SPEED_CHANGE_HIGH:dc.w $A4 ; DATA XREF: sub_3C68C+112r ; When delta engine speed is above this threshold use the high noise channel time constants. ; RPM SPARK_KNOCK_KE_DIAG1_MODE:dc.b 1 ; DATA XREF: sub_3CA2E+90r ; This calibration selects the output for diagnostics mux 1. ; Mode SPARK_KNOCK_KE_DIAG2_MODE:dc.b 2 ; DATA XREF: sub_3CA2E:loc_3CAAAr ; This calibration selects the output for diagnostics mux 2. ; Mode SPARK_KNOCK_KV_ESC_SELECTION_TIME:dc.w $87 ; DATA XREF: sub_3C1EE:loc_3C352r ; Time delay from the TDC_Reference -MEDRES- to wherethe ESC Bank Select line will change. ; Millisecs. dc.b 0 dc.b $87 ; ? dc.b 0 dc.b $44 ; D dc.b 0 dc.b $2D ; - dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $1B dc.b 0 dc.b $17 dc.b 0 dc.b $14 dc.b 0 dc.b $11 dc.b 0 dc.b $F dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b $B dc.b 0 dc.b $B dc.b 0 dc.b $A dc.b 0 dc.b 9 dc.b 0 dc.b 9 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 7 dc.b 0 dc.b 7 SPARK_KNOCK_KA_GATE_DELAY:dc.b 0 ; DATA XREF: sub_3C1EE+1E8o ; Time delay from the TDC_Reference -MEDRES- to wherethe WINGATE goes high - start of integration. ; Microsecs. dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 1 dc.b $37 ; 7 dc.b 0 dc.b $DC ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $74 ; t dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $67 ; g dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $67 ; g dc.b 0 dc.b $55 ; U dc.b 0 dc.b $51 ; Q dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $47 ; G dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $74 ; t dc.b 0 dc.b $61 ; a dc.b 0 dc.b $55 ; U dc.b 0 dc.b $41 ; A dc.b 0 dc.b $41 ; A dc.b 0 dc.b $67 ; g dc.b 0 dc.b $67 ; g dc.b 0 dc.b $67 ; g dc.b 0 dc.b $55 ; U dc.b 0 dc.b $51 ; Q dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $47 ; G dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 1 dc.b 2 dc.b 1 dc.b 2 dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $6E ; n dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $67 ; g dc.b 0 dc.b $67 ; g dc.b 0 dc.b $67 ; g dc.b 0 dc.b $55 ; U dc.b 0 dc.b $51 ; Q dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $47 ; G dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 1 dc.b $43 ; C dc.b 1 dc.b $43 ; C dc.b 1 dc.b $37 ; 7 dc.b 0 dc.b $DC ; ? dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $61 ; a dc.b 0 dc.b $61 ; a dc.b 0 dc.b $67 ; g dc.b 0 dc.b $67 ; g dc.b 0 dc.b $67 ; g dc.b 0 dc.b $55 ; U dc.b 0 dc.b $51 ; Q dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $47 ; G dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b 2 dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $94 ; ? dc.b 0 dc.b $61 ; a dc.b 0 dc.b $64 ; d dc.b 0 dc.b $67 ; g dc.b 0 dc.b $67 ; g dc.b 0 dc.b $67 ; g dc.b 0 dc.b $55 ; U dc.b 0 dc.b $51 ; Q dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $47 ; G dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 2 dc.b $46 ; F dc.b 2 dc.b $46 ; F dc.b 1 dc.b $77 ; w dc.b 1 dc.b $F dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $67 ; g dc.b 0 dc.b $55 ; U dc.b 0 dc.b $51 ; Q dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $47 ; G dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 3 dc.b 8 dc.b 3 dc.b 8 dc.b 1 dc.b $77 ; w dc.b 1 dc.b $F dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $67 ; g dc.b 0 dc.b $55 ; U dc.b 0 dc.b $51 ; Q dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $47 ; G dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - SPARK_KNOCK_KA_GATE_ACTIVE:dc.b 0 ; DATA XREF: sub_3C1EE+1A4o ; Integration time - duration of WINGATE. ; Microsecs. dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $61 ; a dc.b 0 dc.b $4E ; N dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $39 ; 9 dc.b 0 dc.b $33 ; 3 dc.b 1 dc.b $43 ; C dc.b 1 dc.b $43 ; C dc.b 1 dc.b 2 dc.b 1 dc.b 2 dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $6E ; n dc.b 0 dc.b $61 ; a dc.b 0 dc.b $59 ; Y dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $61 ; a dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $4E ; N dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $30 ; 0 dc.b 1 dc.b $43 ; C dc.b 1 dc.b $43 ; C dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $6E ; n dc.b 0 dc.b $61 ; a dc.b 0 dc.b $59 ; Y dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $4E ; N dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $30 ; 0 dc.b 1 dc.b $43 ; C dc.b 1 dc.b $43 ; C dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $AF ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $6E ; n dc.b 0 dc.b $61 ; a dc.b 0 dc.b $59 ; Y dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $4E ; N dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $30 ; 0 dc.b 1 dc.b $43 ; C dc.b 1 dc.b $43 ; C dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $AF ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $6E ; n dc.b 0 dc.b $61 ; a dc.b 0 dc.b $59 ; Y dc.b 0 dc.b $74 ; t Constant16_???_EGR_Pintle_Position_Filtering_Coefficient_for_Fast_EGR_Operation_??:dc.b 0 dc.b $74 ; t dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $4E ; N dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $30 ; 0 dc.b 1 dc.b $43 ; C dc.b 1 dc.b $43 ; C dc.b 1 dc.b 2 dc.b 1 dc.b 2 dc.b 0 dc.b $DC ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $74 ; t dc.b 0 dc.b $67 ; g dc.b 0 dc.b $59 ; Y dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $4E ; N dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $30 ; 0 dc.b 1 dc.b $43 ; C dc.b 1 dc.b $43 ; C dc.b 1 dc.b $23 ; # dc.b 1 dc.b $23 ; # dc.b 0 dc.b $DC ; ? dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $8E ; ? dc.b 0 dc.b $7B ; { dc.b 0 dc.b $6E ; n dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $4E ; N dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $30 ; 0 SPARK_KNOCK_KE_MINIMUM_AVERAGE_NOISE_LEVEL:dc.w $80 ; DATA XREF: sub_3C68C:loc_3C888r ; This calibration establishes a minimum learned average noise level for the Integrate and Read detector threshold calculation. ; Volts SPARK_KNOCK_KE_IR_OFFSET_CANCEL:dc.b 1 ; DATA XREF: sub_3CA2E+F4r ; This calibration controls offset cancellation in the IRIC when in Integrate and Read modes. ; BOOLEAN SPARK_KNOCK_KE_CYLINDER_DETECTION_MODE:dc.b 1 ; DATA XREF: sub_3BC80+1Ar ; sub_3BDC4:loc_3BDFEr ; Determines for Integrate and Read Modes only if the cylinder detection strategy will be Global or Individual ; Mode SPARK_KNOCK_KE_KNOCK_PORTION:dc.w $19A ; DATA XREF: sub_3C68C+E2r ; The portion of the knock A/D reading used in the calculation of the average noise level knock event. ; Multiplier SPARK_KNOCK_KV_DELTA_RPM_KNOCK_ENERGY_MAD:dc.b $22 ; " ; DATA XREF: sub_3C68C+50o ; This calibration is used to establish the knock limit if Delta RPM knock detection is true. ; Multiplier dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 SPARK_KNOCK_KV_KNOCK_ENERGY_MAD:dc.b 0 ; DATA XREF: sub_3BDC4+5Eo ; This calibration is used with the Integrated energy read to determine if knock occurred. ; Multiplier dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_KNOCK_KV_TIP_IN_KNOCK_ENERGY_MAD:dc.b $1E ; DATA XREF: sub_3BDC4+56o ; sub_3BDC4+B8o ; This calibration is used to establish the knock limit if Tip_In_Knock_Detection is TRUE. ; Multiplier dc.b 0 dc.b $1E dc.b 0 dc.b $1E dc.b 0 dc.b $1E dc.b 0 dc.b $1E dc.b 0 dc.b $1E dc.b 0 dc.b $1E dc.b 0 dc.b $1E dc.b 0 dc.b $1E dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 dc.b $1A dc.b 0 SPARK_KNOCK_KA_KNOCK_ENERGY_MAD:dc.b $16 ; DATA XREF: sub_3BDC4+C4o ; This calibration is used with the Integrated energy read to determine if knock occurred. ; Multiplier dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 unk_14EAC: dc.b $12 ; DATA XREF: GetPid_000D_SpeedinKPH+Eo dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $16 dc.b 0 dc.b $14 dc.b 0 dc.b $16 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 SPARK_KNOCK_KV_KNOCK_ENERGY_MAD_GAIN:dc.b 0 ; DATA XREF: sub_3BDC4+46o ; This calibration is used with the Integrated energy read to establish a knock threshold. ; Multiplier dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 SPARK_KNOCK_KA_KNOCK_ENERGY_MAD_GAIN:dc.b $40 ; @ ; DATA XREF: sub_3BDC4+A0o ; This calibration is used with the Integrated energy read to establish a knock threshold. ; Multiplier dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ unk_15015: dc.b 0 ; DATA XREF: sub_4D13A+A2o dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $11 dc.b $9A ; ? dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $12 dc.b $66 ; f dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 SPARK_KNOCK_KE_SAMPLE_NUMBER_SLOW:dc.b 8 ; DATA XREF: sub_3C68C+17Ar ; sub_3CB70+A2r SPARK_KNOCK_KE_SAMPLE_NUMBER_FAST:dc.b 4 ; DATA XREF: sub_3C68C+124r ; sub_3C68C+1C2r SPARK_IO_KE_MIN_BURN_TIME:dc.w $D ; DATA XREF: sub_1958+14Cr ; sub_1958+166r ... ; EST must remain low for at least this amount of time to complete a burn. ; Milliseconds SPARK_IO_KE_SENSOR_LAG:dc.w 0 ; DATA XREF: sub_3BAB2r ; This is the angular lag of the ignition crank sensor data. ; Degrees SPARK_IO_KV_SENSOR_PROPAGATION_LAG:dc.l off_0+$B ; DATA XREF: sub_3BAB2+Co ; This is the angular lag due to the medium resolution signal processing. ; Degrees_vs_RPM_0to8000_Table dc.b 0 dc.b $16 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $2C ; , dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $4C ; L dc.b 0 dc.b $57 ; W dc.b 0 dc.b $62 ; b dc.b 0 dc.b $6D ; m dc.b 0 dc.b $78 ; x dc.b 0 dc.b $83 ; ? dc.b 0 dc.b $8E ; ? dc.b 0 dc.b $99 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $AF ; ? dc.b 0 dc.b $BA ; ? dc.b 0 dc.b $C5 ; ? dc.b 0 dc.b $D0 ; ? dc.b 0 dc.b $DA ; ? STARTER_MOTOR_CONTROL_KE_EXTENDED_CRANK_FUEL_LEVEL:dc.w 0 ; DATA XREF: sub_831BA+D0r ; If the primary tank fuel level falls below this threshold, disable the extended crank function. ; Liters STARTER_MOTOR_CONTROL_KE_STARTER_ENABLE_TYPE:dc.l unk_FF0000 ; DATA XREF: sub_831BA+8r ; OS4:loc_834AAr ... STARTER_MOTOR_CONTROL_KE_LOW_VOLTAGE_CRANK_TIME:dc.w 0 ; DATA XREF: sub_831BA+74r ; If the timer exceeds this value, set low voltage flag and disable the extended crank function. ; Seconds STARTER_MOTOR_CONTROL_KE_STARTER_ENABLE_SPEED:dc.w $600 ; DATA XREF: sub_8336E+44r ; The engine speed below which the starter will be re-enabled. ; RPM STARTER_MOTOR_CONTROL_KE_STARTER_GEAR_MILL_PROT_TIME:dc.w $FFFF ; DATA XREF: OS4:000834F0r ; Disable starter motor if Engine is not rotating within this time. ; Seconds STARTER_MOTOR_CONTROL_KE_STARTER_INHIBIT_SPEED:dc.w $A00 ; DATA XREF: sub_8336E+Er ; The engine speed above which the starter will be disabled, after KE_Starter_Inhibit_Delay seconds. ; RPM STARTER_MOTOR_CONTROL_KE_STARTER_INHIBIT_DELAY:dc.w $50 ; DATA XREF: sub_8336E+24r ; The delay after which the starter will be disabled, when engine speed is above KE_Starter_Inhibit_Speed RPM. ; Seconds STARTER_MOTOR_CONTROL_KE_STARTER_MAX_CRANK_TIME:dc.w 0 ; DATA XREF: sub_831BA+112r ; Maximum time starter is allowed to crank continuously. ; Seconds STARTER_MOTOR_CONTROL_KE_CRANK_RELAY_PROTECT_TIME:dc.w 0 ; DATA XREF: OS4:000834DAr ; Minimum time a crank event must be maintained for protection of the starter relay contacts. ; Seconds STARTER_MOTOR_CONTROL_KE_STARTER_ACTIVATION_DELAY:dc.w 0 ; DATA XREF: sub_831BA+182r ; OS4:000834E0r ... ; Time delay after starter motor active transitions from FALSE to TRUE that the starter relay will be energized. ; Seconds STARTER_MOTOR_CONTROL_KV_STARTER_REF_PULSES:dc.w 0 ; DATA XREF: sub_8347E+10r ; Number of consecutive low resolution reference pulses above KV_Starter_RPM_Thresh required to recognise engine as started. ; Pulses dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 STARTER_MOTOR_CONTROL_KV_STARTER_RPM_THRESH:dc.b 0 ; DATA XREF: sub_8345E+10o ; Engine speed threshold for recognising engine as started. See KV_Starter_Ref_Pulses for more information. ; RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 STARTER_MOTOR_CONTROL_KV_EXTENDED_CRANK_ENABLE_TIME:dc.b 0 ; DATA XREF: OS4:00083516o ; The crank request must be active for this time to enable the extended crank function. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 STARTER_MOTOR_CONTROL_KV_EXTENDED_CRANK_TIME_MAX:dc.b 0 ; DATA XREF: OS4:00083536o ; The maximum duration of an extended crank event. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 THROTTLE_KE_INITIAL_TPS_OFFSET:dc.w $2800 ; DATA XREF: OS4:00083574r ; Initial estimate of the zero position TPS offset. ; AD_Counts THROTTLE_KE_AIRFLOW_LEAK_AROUND_BLADE:dc.b 0 ; This defines the amount of airflow that flows around the throttle blade when the throttle and IAC are fully closed. ; Grams/Sec dc.b 0 THROTTLE_KE_THROTTLE_POSITION_DEFAULT:dc.w 0 ; DATA XREF: sub_83754+7Ar ; sub_8386E:loc_8387Er ; Default throttle position used when throttle sensor fails. ; Percent THROTTLE_KE_TPS_SCALE_FACTOR:dc.w $380 ; DATA XREF: sub_83754:loc_837AEr ; sub_83754:loc_83844r ... ; Throttle position sensor scaling factor. ; %/AD Cnts THROTTLE_KE_TPS_OFFSET_FILTER_COEF:dc.b $77 ; DATA XREF: sub_83754+92r ; First order filter coefficient used to reduce zero positon TPS offset. ; Filter_Coef dc.b $FF THROTTLE_KE_THROTTLE_STOMP_LO_THRESHOLD:dc.w $200 ; DATA XREF: sub_835B2+94r ; sub_835B2:loc_836D4r ; Minimum value through which the throttle/pedal position must travel in order to detect a throttle stomp. ; Percent Position THROTTLE_KE_THROTTLE_STOMP_HI_THRESHOLD:dc.w $F00 ; DATA XREF: sub_835B2:loc_8365Ar ; Maximum value through which the throttle/pedal position must travel in order to detect a throttle stomp. ; Percent Position THROTTLE_KE_THROTTLE_STOMPS_TO_ACTIVATE:dc.b 1 ; DATA XREF: sub_835B2+E8r ; Number of throttle stomps required to arm functions which are armed based on throttle stomps. ; Count dc.b $FF THROTTLE_KE_THROTTLE_STOMP_DETECT_TIME:dc.w $320 ; DATA XREF: sub_835B2+FEr ; sub_835B2+14Cr ; The elapsed time in which the number of throttle stomps, KE_Throttle_Stomps_To_Activate, must occur. ; Seconds THROTTLE_KE_CURRENT_POSITION_AT_ZERO:dc.w $640 ; DATA XREF: sub_835B2+15Er ; The consecutive time interval for a throttle position or pedal rotation of zero, to reinitialize the throttle stomp sequence. ; Seconds TRACTION_KE_USE_IAT_MIN:dc.b 1 ; DATA XREF: sub_269C2r ; Use to determine which Induction Air Temperature to select. ; Boolean dc.b $FF TRACTION_KA_SPARK_RETARD_FOR_TORQUE_LOSS:dc.l off_0+$1B0 ; DATA XREF: sub_24716+FEAo ; sub_261CA+19Co ... ; MBT spark retard as a function of a given torque loss value ; Degrees dc.b 2 dc.b $50 ; P dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $4A ; J dc.b 3 dc.b $A5 ; ? dc.b 4 dc.b 0 dc.b 4 dc.b $44 ; D dc.b 4 dc.b $89 ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $11 dc.b 5 dc.b $55 ; U dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $C7 ; ? dc.b 5 dc.b $F5 ; ? dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $66 ; f dc.b 6 dc.b $94 ; ? dc.b 6 dc.b $C1 ; ? dc.b 6 dc.b $EF ; ? dc.b 7 dc.b $1C dc.b 7 dc.b $4A ; J dc.b 7 dc.b $77 ; w dc.b 7 dc.b $A5 ; ? dc.b 7 dc.b $D2 ; ? dc.b 8 dc.b 0 dc.b 8 dc.b $17 dc.b 8 dc.b $44 ; D dc.b 8 dc.b $72 ; r dc.b 8 dc.b $89 ; ? dc.b 8 dc.b $B6 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 0 dc.b 0 dc.b 1 dc.b $B0 ; ? dc.b 2 dc.b $50 ; P dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $4A ; J dc.b 3 dc.b $A5 ; ? dc.b 4 dc.b 0 dc.b 4 dc.b $44 ; D dc.b 4 dc.b $89 ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $11 dc.b 5 dc.b $55 ; U dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $C7 ; ? dc.b 5 dc.b $F5 ; ? dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $66 ; f dc.b 6 dc.b $94 ; ? dc.b 6 dc.b $C1 ; ? dc.b 6 dc.b $EF ; ? dc.b 7 dc.b $1C dc.b 7 dc.b $4A ; J dc.b 7 dc.b $77 ; w dc.b 7 dc.b $A5 ; ? dc.b 7 dc.b $D2 ; ? dc.b 8 dc.b 0 dc.b 8 dc.b $17 dc.b 8 dc.b $44 ; D dc.b 8 dc.b $72 ; r dc.b 8 dc.b $89 ; ? dc.b 8 dc.b $B6 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 0 dc.b 0 dc.b 1 dc.b $B0 ; ? dc.b 2 dc.b $50 ; P dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $4A ; J dc.b 3 dc.b $A5 ; ? dc.b 4 dc.b 0 dc.b 4 dc.b $44 ; D dc.b 4 dc.b $89 ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $11 dc.b 5 dc.b $55 ; U dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $C7 ; ? dc.b 5 dc.b $F5 ; ? dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $66 ; f dc.b 6 dc.b $94 ; ? dc.b 6 dc.b $C1 ; ? dc.b 6 dc.b $EF ; ? dc.b 7 dc.b $1C dc.b 7 dc.b $4A ; J dc.b 7 dc.b $77 ; w dc.b 7 dc.b $A5 ; ? dc.b 7 dc.b $D2 ; ? dc.b 8 dc.b 0 dc.b 8 dc.b $17 dc.b 8 dc.b $44 ; D dc.b 8 dc.b $72 ; r dc.b 8 dc.b $89 ; ? dc.b 8 dc.b $B6 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 0 dc.b 0 dc.b 1 dc.b $B0 ; ? dc.b 2 dc.b $50 ; P dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $4A ; J dc.b 3 dc.b $A5 ; ? dc.b 4 dc.b 0 dc.b 4 dc.b $44 ; D dc.b 4 dc.b $89 ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $11 dc.b 5 dc.b $55 ; U dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $C7 ; ? dc.b 5 dc.b $F5 ; ? dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $66 ; f dc.b 6 dc.b $94 ; ? dc.b 6 dc.b $C1 ; ? dc.b 6 dc.b $EF ; ? dc.b 7 dc.b $1C dc.b 7 dc.b $4A ; J dc.b 7 dc.b $77 ; w dc.b 7 dc.b $A5 ; ? dc.b 7 dc.b $D2 ; ? dc.b 8 dc.b 0 dc.b 8 dc.b $17 dc.b 8 dc.b $44 ; D dc.b 8 dc.b $72 ; r dc.b 8 dc.b $89 ; ? dc.b 8 dc.b $B6 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? dc.b 0 dc.b 0 dc.b 1 dc.b $B0 ; ? dc.b 2 dc.b $50 ; P dc.b 2 dc.b $D8 ; ? dc.b 3 dc.b $4A ; J dc.b 3 dc.b $A5 ; ? dc.b 4 dc.b 0 dc.b 4 dc.b $44 ; D dc.b 4 dc.b $89 ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b $11 dc.b 5 dc.b $55 ; U dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $C7 ; ? dc.b 5 dc.b $F5 ; ? dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $66 ; f dc.b 6 dc.b $94 ; ? dc.b 6 dc.b $C1 ; ? dc.b 6 dc.b $EF ; ? dc.b 7 dc.b $1C dc.b 7 dc.b $4A ; J dc.b 7 dc.b $77 ; w dc.b 7 dc.b $A5 ; ? dc.b 7 dc.b $D2 ; ? dc.b 8 dc.b 0 dc.b 8 dc.b $17 dc.b 8 dc.b $44 ; D dc.b 8 dc.b $72 ; r dc.b 8 dc.b $89 ; ? dc.b 8 dc.b $B6 ; ? dc.b 8 dc.b $E4 ; ? dc.b 8 dc.b $E4 ; ? TRACTION_KE_AWD_FRONT_SCALER:dc.w $800 ; DATA XREF: sub_24716:loc_24806r ; Fraction of torque that is transferred to front when AWD ; Scaler 0-1 TRACTION_KE_AWD_REAR_SCALER:dc.w $800 ; DATA XREF: sub_24716+F8r ; Fraction of torque that is transferred to rear when AWD ; Scaler 0-1 TRACTION_KE_AXLE_ABUSE_LIMITING_ENABLE:dc.b 1 ; DATA XREF: sub_24716+62r ; Enabling cal for axle abuse torque limiting algorithm. ; TRUE/FALSE dc.b $FF TRACTION_KE_DELTA_MANIFOLD_PRESSURE_100MS:dc.w $200 ; DATA XREF: sub_261CA+44r ; Delta Manifold Pressure threshold over a 100ms time interval to enable transient torque overshoot spark control. ; kPa TRACTION_KE_ETC_MGT_DELTA_TORQUE_INITIAL:dc.w 0 ; DATA XREF: sub_261CA:loc_2621Cr TRACTION_KE_ETC_MGT_DELTA_TORQUE_FINAL:dc.w 0 ; DATA XREF: sub_261CA:loc_26258r ; Maximum allowable delta torque value allowed, signifying the completion of the spark retard authority ramp out. ; Foot_Pounds_S TRACTION_KE_ETC_MGT_SPARK_RETARD_DURATION:dc.w $1E0 ; DATA XREF: sub_261CA:loc_26226r ; Time period before ramp out of transient torque overshoot spark control begins. ; Seconds TRACTION_KE_ETC_MGT_DELTA_TRQ_INCREMENT:dc.w $1A ; DATA XREF: sub_261CA+76r ; Rate at which transient torque overshoot spark control is ramped out. ; Foot_Pounds_S TRACTION_KE_DESIRED_TORQUE_FAILURE_LIMIT:dc.b $FA ; DATA XREF: sub_24716+A08r ; Number of invalid desired torque reads out ofKE_Desired_Torque_Pass_Limit reads which will set a fault. ; Counts 0-255 TRACTION_KE_DESIRED_TORQUE_PASS_LIMIT:dc.b $FE ; DATA XREF: sub_24716:loc_25138r ; Number of desired torque reads which will set a pass ifKE_Desired_Torque_Failure_Limit invalid reads have notbeen reached ; Counts 0-255 TRACTION_KE_ENABLE_ETC_AIRFLOW_AXLE_ABUSE:dc.b 0 ; DATA XREF: sub_24716:loc_25820r ; Option selection to use ETC airflow in combination with spark for axle abuse. ; Boolean TRACTION_KE_ENABLE_POWER_HOP_CONTROL:dc.b 1 ; DATA XREF: sub_24716:loc_2578Cr ; Option selection to manage torque for Power Hop control using fuel and spark. ; Boolean TRACTION_KE_FAULTD_LCT_SPD_RATIO_FLT_COEF:dc.w $999A ; DATA XREF: sub_24716+1D4r TRACTION_KE_LCT_SPD_RATIO_FLT_COEF:dc.w $999A ; DATA XREF: sub_24716+208r ; Lag filter coefficient used to filter Allison transmission torque converter speed ratio. ; 0 to 1 TRACTION_KE_LCT_DFCO_EXIT_DUTY_CYCLE_HI:dc.w $166 ; DATA XREF: sub_24716+7AAr ; Upper bound on requested torque duty cycle for Allison TCM DFCO exit request. ; Percent TRACTION_KE_LCT_DFCO_EXIT_DUTY_CYCLE_LO:dc.w $CD ; DATA XREF: sub_24716+7A2r ; Lower bound on requested torque duty cycle for Allison TCM DFCO exit request. ; Percent TRACTION_KE_REQ_TRQ_FAIL_DUTY_CYCLE_HI:dc.w $1300 ; DATA XREF: sub_24716+6E2r ; Upper bound on duty cycle for the requested torque PWM line. Above this is a failure region. ; Percent TRACTION_KE_REQ_TRQ_FAIL_DUTY_CYCLE_LO:dc.w $100 ; DATA XREF: sub_24716+6EAr ; Lower bound on duty cycle for the requested torque PWM line. Below this is a failure region. ; Percent TRACTION_KE_LCT_XMSN_PWM_ENABLE:dc.b 0 ; DATA XREF: sub_24716+732r ; sub_24716:loc_24E66r ... ; Option selection to use the TCS PWM input to control the LCTAllison transmission. ; Boolean dc.b $FF TRACTION_KV_CONVERTER_TORQUE_RATIO_LCT:dc.w $2000 ; DATA XREF: sub_24716+226r ; Ratio used to determine gearbox torque for LCT. ; Ratio dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 TRACTION_KE_DRAG_CONTROL_EQUIPPED:dc.b 0 ; DATA XREF: sub_24716+B24r ; Allow selection of Drag Control ; Boolean dc.b $FF TRACTION_KE_DELTA_THR_AREA_TRQ_MGT_ACTIVE:dc.w $9A ; DATA XREF: sub_24716+1332r ; Threshold used to compare difference between Transmission Area and Desired Throttle Area to set ETC_Trq_Mgt_Active. ; Percent_S TRACTION_KE_TCS_PREVENT_DOWNSHIFT_OPTION:dc.b 0 ; DATA XREF: sub_24716+1668r ; This is an option selection to prevent downshiftsduring traction control ; Boolean TRACTION_KE_TCS_FREEZE_GEAR_OPTION:dc.b 0 ; DATA XREF: sub_24716:loc_26032r TRACTION_KE_TCS_DOWNSHIFT_DELAY:dc.w 0 ; DATA XREF: sub_24716+186Ar ; sub_24716+18AAr ... ; Amount of time to delay each downshift (except forthe first one) after exiting traction. ; Seconds TRACTION_KE_TCS_DOWNSHIFT_PEDAL:dc.w 0 ; DATA XREF: sub_24716+1856r ; Downshift will not be delayed when exiting tractionif pedal is below this value. ; Percent TRACTION_KE_TCS_DOWNSHIFT_PEDAL_DELTA:dc.w 0 ; DATA XREF: sub_24716+1862r ; Downshift will not be delayed when exiting tractionif pedal increases by this amount over 100mS. ; Percent TRACTION_KE_TCS_NORMAL_REGION_DEADBAND:dc.w $38 ; DATA XREF: sub_24716+83Er ; The deadband on duty cycle for traction control normal range ; Percent TRACTION_KE_TCS_PWM_DIAG_RUNTIME_DELAY:dc.w $320 ; DATA XREF: sub_24716+9F8r ; Don't enable Desired Torque PWM AND MFD Delivered Torque PWM diagnostics until the engine has run this long. ; Seconds TRACTION_KE_TORQUE_ERROR_DEADBAND:dc.w $3D ; DATA XREF: sub_24716:loc_25314r ; sub_24716:loc_2539Er ; Prevent proportional adjustments for small errors ; Foot_Pounds TRACTION_KE_PERCENT_TRQ_IND_DESIRED:dc.w $1400 ; DATA XREF: sub_24716+1220r ; Desired percentage of maximum available torque when utilizing the calibration development aid. ; Percent TRACTION_KE_PERCENT_TRQ_IND_ENABLE:dc.b 0 ; DATA XREF: sub_24716+1218r ; Enabling bit to turn on or off the calibration development aid feature. ; Boolean dc.b $FF TRACTION_KE_PROP_ERROR_MAX_POSITIVE:dc.w $F00 ; DATA XREF: sub_24716:loc_25302r ; Limits the error to be used for the proportional term ; Foot_Pounds TRACTION_KE_PROP_ERROR_MAX_NEGATIVE:dc.w $F100 ; DATA XREF: sub_24716+BDEr ; Limits the error to be used for the proportional term ; Foot_Pounds TRACTION_KE_PROPORTIONAL_GAIN:dc.w $666 ; DATA XREF: sub_24716+C06r ; Proportional gain for torque errors for traction control ; Multiplier_0_to_1 TRACTION_KE_INTEGRAL_ERROR_MAX_POSITIVE:dc.w $300 ; DATA XREF: sub_24716:loc_2538Cr ; Limits the error to be used for the integral term ; Foot_Pounds TRACTION_KE_INTEGRAL_ERROR_MAX_NEGATIVE:dc.w $FD00 ; DATA XREF: sub_24716+C68r ; Limits the error to be used for the Integral term ; Foot_Pounds TRACTION_KE_INTEGRAL_GAIN:dc.w $19A ; DATA XREF: sub_24716:loc_253AAr ; Integral gain for torque errors for traction/drag control ; Multiplier_0_to_1 TRACTION_KE_INTEGRAL_POSITIVE_LIMIT:dc.w $200 ; DATA XREF: sub_24716:loc_25404r ; Limits magnitued of the integral term for positive torque errors ; Foot_Pounds TRACTION_KE_INTEGRAL_NEGATIVE_LIMIT:dc.w $FE00 ; DATA XREF: sub_24716:loc_253F6r ; Limits magnitude of the integral term for negative torque errors ; Foot_Pounds TRACTION_KE_TCS_INTEGRAL_DELAY:dc.w $C ; DATA XREF: sub_24716+C56r ; Delay TCS integrator updates to account for system dynamics ; Seconds TRACTION_KE_PI_FINAL_POSITIVE_LIMIT:dc.w $1100 ; DATA XREF: sub_24716:loc_25440r ; Limits the final TCS torque PI feedback term for positive errors ; Foot_Pounds TRACTION_KE_PI_FINAL_NEGATIVE_LIMIT:dc.w $EF00 ; DATA XREF: sub_24716:loc_25432r ; Limits the final TCS torque PI feedback term for negative errors ; Foot_Pounds TRACTION_KE_TRACTION_DRAG_HYST_ZONE:dc.w $100 ; DATA XREF: sub_24716:loc_24FE8r ; sub_24716+966r ; Hysteresis zone width between drag control and traction control. ; Percent TRACTION_KE_TRACTION_TORQUE_AREA_HYST:dc.w 0 ; DATA XREF: sub_24716:loc_25B12r ; Hysteresis to avoid throttle vibration during traction control. ; Percent TRACTION_KE_TRACTION_TORQUE_AREA_RAMP:dc.w $1A ; DATA XREF: sub_24716+142Cr ; Ramp out rate for traction area when traction is no longer active or in the case of an input fault. ; Percent TRACTION_KE_TRACTION_DUTY_CYCLE_BOUND:dc.w $800 ; DATA XREF: sub_24716:loc_24F70r ; sub_24716+960r ; lower bound on duty cycle for traction control range. ; Percent TRACTION_KE_TCS_INPUT_PERIOD_BAND:dc.l $41 ; DATA XREF: sub_24716:loc_24E16r ; Tolerence band for traction control input period. ; Microseconds TRACTION_KE_FRICTION_TORQUE_BUFFER:dc.w $FFFF ; DATA XREF: sub_24716+808r ; Amount of torque above engine friction torque used as the AllisonTrans_Low_Limit for engine torque LCT Desired. ; Foot_Pounds TRACTION_KE_TORQUE_AREA_XMSN_EXIT_RAMP:dc.w $A00 ; DATA XREF: sub_24716+13D0r TRACTION_KE_TRACTION_RETARD_RAMP:dc.w $5B ; DATA XREF: sub_24716+FFEr ; sub_24716+1520r ... ; Step reduction rate of ramp out of non-zero traction spark retard ; Degrees TRACTION_KE_TRACTION_RETARD_MAX_TIME:dc.w $320 ; DATA XREF: sub_24716+1506r ; Maximum traction spare retard event duration time. ; Seconds TRACTION_KE_TRACTION_RETARD_MIN_TIME:dc.w $50 ; DATA XREF: sub_24716+15EEr ; Minimum traction spare retard event duration time. ; Seconds TRACTION_KE_4WDHI_FRONT_SCALER:dc.w $800 ; DATA XREF: sub_24716+B0r ; Fraction of torque that is transferred to front when 4WD HI ; Scaler 0-1 TRACTION_KE_4WDHI_REAR_SCALER:dc.w $800 ; DATA XREF: sub_24716+B8r ; Fraction of torque that is transferred to rear when 4WD HI ; Scaler 0-1 TRACTION_KE_4WDLO_FRONT_SCALER:dc.w $800 ; DATA XREF: sub_24716+C6r ; Fraction of torque that is transferred to front when 4WD LO ; Scaler 0-1 TRACTION_KE_4WDLO_REAR_SCALER:dc.w $800 ; DATA XREF: sub_24716+DEr ; Fraction of torque that is transferred to rear when 4WD LO ; Scaler 0-1 TRACTION_KE_MANUAL_1ST_GEAR_MPH_HI:dc.w 0 ; DATA XREF: sub_24716+11Er ; Vehicle speed below which a manual trans. assumes 1st gear. ; MPH TRACTION_KE_MANUAL_1ST_GEAR_MPH_LO:dc.w 0 ; DATA XREF: sub_24716:loc_2484Ar ; Vehicle speed above which a manual trans. assumes 1st gear. ; MPH TRACTION_KE_TRANSFER_CASE_EFFICIENCY:dc.w $EE1 ; DATA XREF: sub_24716+2C4r ; Efficiency of transfer case for torque transfer ; Multiplier_0_to_1 TRACTION_KE_ALLISON_FAULTED_GEAR_RATIO:dc.w $4A3D ; DATA XREF: sub_24716:loc_24892r TRACTION_KE_AXLE_EFFICIENCY:dc.w $F33 ; DATA XREF: sub_24716+258r ; sub_24716+26Er ; Efficiency of axle for torque transfer ; Multiplier 0 to 1 TRACTION_KE_TRANS_INPUT_LIMIT:dc.l $7FFFFFCD ; DATA XREF: sub_24716+70r ; sub_24716+27Er ; Transmission input torque limit for protection from failure ; Foot Pounds TRACTION_KE_TRANS_OUTPUT_LIMIT:dc.l $7FFFFFCD ; DATA XREF: sub_24716+29Cr ; sub_24716+354r ; Transmission output torque limit for protection from failure ; Foot Pounds TRACTION_KE_FRONT_AXLE_LIMIT:dc.l $7FFFFFCD ; DATA XREF: sub_24716+2D4r ; Front axle torque limit for protection from failure ; Foot Pounds TRACTION_KE_FRONT_PROP_LIMIT:dc.l $7FFFFFCD ; DATA XREF: sub_24716+2CEr ; Front prop torque limit for protection from failure ; Foot Pounds TRACTION_KE_REAR_AXLE_LIMIT:dc.l $7FFFFFCD ; DATA XREF: sub_24716+2E4r ; Rear axle torque limit for protection from failure ; Foot Pounds TRACTION_KE_REAR_PROP_LIMIT:dc.l $7FFFFFCD ; DATA XREF: sub_24716+2DAr ; Rear prop torque limit for protection from failure ; Foot Pounds TRACTION_KE_1_2_RPM_LO_MU:dc.w 0 ; DATA XREF: sub_24716+1724r TRACTION_KE_1_2_RPM_HI_MU:dc.w 0 ; DATA XREF: sub_24716:loc_25E5Ar TRACTION_KE_2_3_RPM_LO_MU:dc.w 0 ; DATA XREF: sub_24716+1782r TRACTION_KE_2_3_RPM_HI_MU:dc.w 0 ; DATA XREF: sub_24716:loc_25EB8r TRACTION_KE_3_4_RPM_LO_MU:dc.w 0 ; DATA XREF: sub_24716+17DEr TRACTION_KE_3_4_RPM_HI_MU:dc.w 0 ; DATA XREF: sub_24716:loc_25F14r TRACTION_KE_1_2_WHEEL_SPD_LO_MU:dc.w 0 ; DATA XREF: sub_24716+1730r TRACTION_KE_1_2_WHEEL_SPD_HI_MU:dc.w 0 ; DATA XREF: sub_24716+1752r TRACTION_KE_2_3_WHEEL_SPD_LO_MU:dc.w 0 ; DATA XREF: sub_24716+178Er TRACTION_KE_2_3_WHEEL_SPD_HI_MU:dc.w 0 ; DATA XREF: sub_24716+17B0r TRACTION_KE_3_4_WHEEL_SPD_LO_MU:dc.w 0 ; DATA XREF: sub_24716+17EAr TRACTION_KE_3_4_WHEEL_SPD_HI_MU:dc.w 0 ; DATA XREF: sub_24716+180Ar TRACTION_KE_DES_TRQ_LO_MU_1ST:dc.w 0 ; DATA XREF: sub_24716+173Cr ; Desired torque value below which the low friction surfacecalibrations will be used for traction control 1-2 shift. ; Ft_Lb TRACTION_KE_DES_TRQ_LO_MU_2ND:dc.w 0 ; DATA XREF: sub_24716+179Ar ; Desired torque value below which the low friction surfacecalibrations will be used for traction control 2-3 shift. ; Ft_Lb TRACTION_KE_DES_TRQ_LO_MU_3RD:dc.w 0 ; DATA XREF: sub_24716+17F6r ; Desired torque value below which the low friction surfacecalibrations will be used for traction control 3-4 shift. ; Ft_Lb TRACTION_KE_1_2_DES_TRQ_MAX:dc.w 0 ; DATA XREF: sub_24716+1760r ; Desired torque value above which a 1-2 traction shift will beprevented. ; Ft_Lb TRACTION_KE_2_3_DES_TRQ_MAX:dc.w 0 ; DATA XREF: sub_24716+17BCr ; Desired torque value above which a 2-3 traction shift will beprevented. ; Ft_Lb TRACTION_KE_3_4_DES_TRQ_MAX:dc.w 0 ; DATA XREF: sub_24716+1816r ; Desired torque value above which a 3-4 traction shift will beprevented. ; Ft_Lb TRACTION_KE_TCS_UPSHIFT_DELAY:dc.w 0 ; DATA XREF: sub_24716:loc_25E26r ; Minimum amount of time between traction forced upshifts. ; Seconds TRACTION_KE_TCS_MAX_SHIFT_TIME:dc.w 0 ; DATA XREF: sub_24716:loc_2607Er ; Maximum duration of a traction control shift. ; Seconds TRACTION_KE_TCC_CRUISE_DISENGAGE_TIME:dc.w $28 ; DATA XREF: sub_24716+1A3Ar ; Minimum length of a TCS or Drag event that will disengage TCC ANDcruise control. ; Seconds TRACTION_KE_TCC_REENABLE_TIME:dc.w 0 ; DATA XREF: sub_24716+1A66r ; Length of time after TCS or Drag event is completed that TCC willreturn to normal control. ; Seconds TRACTION_KE_BRAKE_TRAC_CC_DISENGAGE_TIME:dc.w $B4 ; DATA XREF: sub_24716+1A98r ; Minimum length of a Brake Traction (Active Handling) event thatwill disengage Cruise control. ; Seconds TRACTION_KE_TORQUE_AREA_XMSN_RAMP_DOWN:dc.w $1400 ; DATA XREF: sub_24716+13A4r ; Ramp down rate for torque throttle area when desired transmission torque is lower than the current engine torque. ; Percent TRACTION_KE_TORQUE_AREA_XMSN_RAMP_UP:dc.w $1A ; DATA XREF: sub_24716+1382r ; Ramp up rate for torque throttle area when desired transmission torque is greater than the current engine torque. ; Percent TRACTION_KE_TIP_IN_TRQ_MAX:dc.w $8001 ; DATA XREF: sub_24716+DC4r ; Maximum torque value that will allow tip in torque rate limiting. ; Foot_Pounds_S TRACTION_KE_TIP_IN_MPH_MIN:dc.w $7F80 ; DATA XREF: sub_24716+DD4r ; Minimum vehicle speed that will allow tip in torque rate limiting. ; MPH TRACTION_KE_TIP_OUT_MIN_ENGINE_SPEED:dc.w $FFFF ; DATA XREF: sub_24716+EE8r ; Minimum engine speed that will enable tip out torque rate limiting. ; RPM TRACTION_KE_TIP_OUT_TRQ_MANAGEMENT_ENABLE:dc.b 0 ; DATA XREF: sub_24716:loc_25578r ; Enabling cal for Tip out torque management algorithm. ; BOOLEAN dc.b $FF TRACTION_KE_STALL_SPEED_DEFAULT:dc.w $2C00 ; DATA XREF: sub_24716+1AEr TRACTION_KE_TRANSMISSION_EFFICIENCY:dc.w $F0A ; DATA XREF: sub_24716+28Ar ; Efficiency of the transmission including torque converter for torque transfer. ; Multiplier_0_to_1 TRACTION_KA_MAX_ENG_TRQ_IND_STOICH:dc.b $32 ; 2 ; DATA XREF: sub_24716+11B0o ; Max torque available as a function of Engine Speed assuming an equivalence ratio of 1.0 ; Foot_Pounds_S dc.b 0 dc.b $38 ; 8 dc.b $9A ; ? dc.b $3D ; = dc.b $E1 ; ? dc.b $42 ; B dc.b $29 ; ) dc.b $46 ; F dc.b $6A ; j dc.b $48 ; H dc.b $C3 ; ? dc.b $4B ; K dc.b $F dc.b $4D ; M dc.b $B8 ; ? dc.b $50 ; P dc.b 0 dc.b $52 ; R dc.b $DC ; ? dc.b $56 ; V dc.b $A2 ; ? dc.b $57 ; W dc.b $CD ; ? dc.b $58 ; X dc.b $1F dc.b $55 ; U dc.b $8F ; ? dc.b $52 ; R dc.b $14 dc.b $4E ; N dc.b $1A dc.b $48 ; H dc.b $9A ; ? dc.b $43 ; C dc.b $33 ; 3 dc.b $3B ; ; dc.b $CD ; ? dc.b $34 ; 4 dc.b $66 ; f dc.b $2D ; - dc.b $9A ; ? dc.b $32 ; 2 dc.b 0 dc.b $38 ; 8 dc.b $9A ; ? dc.b $3D ; = dc.b $E1 ; ? dc.b $42 ; B dc.b $29 ; ) dc.b $46 ; F dc.b $6A ; j dc.b $48 ; H dc.b $C3 ; ? dc.b $4B ; K dc.b $F dc.b $4D ; M dc.b $B8 ; ? dc.b $50 ; P dc.b 0 dc.b $52 ; R dc.b $DC ; ? dc.b $56 ; V dc.b $A2 ; ? dc.b $57 ; W dc.b $CD ; ? dc.b $58 ; X dc.b $1F dc.b $55 ; U dc.b $8F ; ? dc.b $52 ; R dc.b $14 dc.b $4E ; N dc.b $1A dc.b $48 ; H dc.b $9A ; ? dc.b $43 ; C dc.b $33 ; 3 dc.b $3B ; ; dc.b $CD ; ? dc.b $34 ; 4 dc.b $66 ; f dc.b $2D ; - dc.b $9A ; ? dc.b $32 ; 2 dc.b 0 dc.b $38 ; 8 dc.b $9A ; ? dc.b $3D ; = dc.b $E1 ; ? dc.b $42 ; B dc.b $29 ; ) dc.b $46 ; F dc.b $6A ; j dc.b $48 ; H dc.b $C3 ; ? dc.b $4B ; K dc.b $F dc.b $4D ; M dc.b $B8 ; ? dc.b $50 ; P dc.b 0 dc.b $52 ; R dc.b $DC ; ? dc.b $56 ; V dc.b $A2 ; ? dc.b $57 ; W dc.b $CD ; ? dc.b $58 ; X dc.b $1F dc.b $55 ; U dc.b $8F ; ? dc.b $52 ; R dc.b $14 dc.b $4E ; N dc.b $1A dc.b $48 ; H dc.b $9A ; ? dc.b $43 ; C dc.b $33 ; 3 dc.b $3B ; ; dc.b $CD ; ? dc.b $34 ; 4 dc.b $66 ; f dc.b $2D ; - dc.b $9A ; ? dc.b $32 ; 2 dc.b 0 dc.b $38 ; 8 dc.b $9A ; ? dc.b $3D ; = dc.b $E1 ; ? dc.b $42 ; B dc.b $29 ; ) dc.b $46 ; F dc.b $6A ; j dc.b $48 ; H dc.b $C3 ; ? dc.b $4B ; K dc.b $F dc.b $4D ; M dc.b $B8 ; ? dc.b $50 ; P dc.b 0 dc.b $52 ; R dc.b $DC ; ? dc.b $56 ; V dc.b $A2 ; ? dc.b $57 ; W dc.b $CD ; ? dc.b $58 ; X dc.b $1F dc.b $55 ; U dc.b $8F ; ? dc.b $52 ; R dc.b $14 dc.b $4E ; N dc.b $1A dc.b $48 ; H dc.b $9A ; ? dc.b $43 ; C dc.b $33 ; 3 dc.b $3B ; ; dc.b $CD ; ? dc.b $34 ; 4 dc.b $66 ; f dc.b $2D ; - dc.b $9A ; ? dc.b $32 ; 2 dc.b 0 dc.b $38 ; 8 dc.b $9A ; ? dc.b $3D ; = dc.b $E1 ; ? dc.b $42 ; B dc.b $29 ; ) dc.b $46 ; F dc.b $6A ; j dc.b $48 ; H dc.b $C3 ; ? dc.b $4B ; K dc.b $F dc.b $4D ; M dc.b $B8 ; ? dc.b $50 ; P dc.b 0 dc.b $52 ; R dc.b $DC ; ? dc.b $56 ; V dc.b $A2 ; ? dc.b $57 ; W dc.b $CD ; ? dc.b $58 ; X dc.b $1F dc.b $55 ; U dc.b $8F ; ? dc.b $52 ; R dc.b $14 dc.b $4E ; N dc.b $1A dc.b $48 ; H dc.b $9A ; ? dc.b $43 ; C dc.b $33 ; 3 dc.b $3B ; ; dc.b $CD ; ? dc.b $34 ; 4 dc.b $66 ; f dc.b $2D ; - dc.b $9A ; ? TRACTION_KV_TRQ_MGMT_GEAR_RATIO:dc.w $2A8F ; DATA XREF: sub_24716+18Cr ; sub_24716+236r ; Gear ratio for automatic transmission applications as a function of transmission gear. ; Multiplier_0_to_8 dc.b $1C dc.b $7B ; { dc.b $14 dc.b $CD ; ? dc.b $10 dc.b 0 dc.b $B dc.b $D7 ; ? dc.b 8 dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $2E ; . dc.b $66 ; f dc.b $2E ; . dc.b $66 ; f TRACTION_KV_TIP_IN_DELTA_TRQ_LIMIT:dc.w $7FFF ; DATA XREF: sub_24716+DF2r ; sub_24716+E3Ar ; Maximum allowable rate of torque increase when below a calibratedtorque level and above a calibrated vehicle speed. ; Foot_Pounds_S dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF TRACTION_KV_TIP_OUT_RAMP_RATE:dc.w $7FFF ; DATA XREF: sub_24716+F2Cr ; Maximum allowable rate of torque decrease when tip-out torque algorithm is active. ; Foot_Pounds_S dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF TRACTION_KV_TCS_MIN_DESIRED_TORQUE:dc.b $14 ; DATA XREF: sub_24716:loc_250DCo ; Limit desired torque request from EBCM as a function of RPM ; Ft_Lb dc.b 0 dc.b $14 dc.b 0 dc.b $12 dc.b 0 dc.b $10 dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b 8 dc.b 0 dc.b 6 dc.b 0 dc.b 4 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 CurveTable_19_Rows_B6613___Run_Time_Before_TCS:dc.l off_0+$1E0 ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b 1 dc.b $E0 ; ? dc.b 1 dc.b $40 ; @ dc.b 0 dc.b $F0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? TRACTION_KV_TORQUE_BARO_ADJUST:dc.w $534 ; DATA XREF: sub_24716+115Ar ; Adjusts the desired TCS torque to compensate for ambient pressure ; Scaler_2_Vs_kPa_Table dc.b 6 dc.b 0 dc.b 6 dc.b $CD ; ? dc.b 7 dc.b $9B ; ? dc.b 8 dc.b $67 ; g TRACTION_KV_TORQUE_IAT_ADJUST:dc.b 8 ; DATA XREF: sub_24716+1170o ; Adjusts desired TCS torque to compensate for Induction Air Temp ; Scaler_2_Vs_Deg_C_Table dc.b $FD ; ? dc.b 8 dc.b $C4 ; ? dc.b 8 dc.b $8E ; ? dc.b 8 dc.b $5D ; ] dc.b 8 dc.b $2F ; / dc.b 8 dc.b 4 dc.b 7 dc.b $DB ; ? dc.b 7 dc.b $B5 ; ? dc.b 7 dc.b $90 ; ? dc.b 7 dc.b $6E ; n dc.b 7 dc.b $4D ; M dc.b 7 dc.b $2E ; . dc.b 7 dc.b $11 dc.b 6 dc.b $F5 ; ? dc.b 6 dc.b $DA ; ? dc.b 6 dc.b $C0 ; ? TRACTION_KA_PERCENT_THROTTLE_AREA:dc.b 0 ; DATA XREF: sub_24716+12F2o ; Throttle area limit looked up based onPercent of max available torque and Engine Speed. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $67 ; g dc.b 0 dc.b $74 ; t dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $8D ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $AC ; ? dc.b 0 dc.b $BF ; ? dc.b 0 dc.b $C7 ; ? dc.b 0 dc.b $C7 ; ? dc.b 0 dc.b $C7 ; ? dc.b 0 dc.b $C7 ; ? dc.b 0 dc.b $C7 ; ? dc.b 0 dc.b $C7 ; ? dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $6A ; j dc.b 0 dc.b $81 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $AC ; ? dc.b 0 dc.b $C7 ; ? dc.b 0 dc.b $E1 ; ? dc.b 0 dc.b $F5 ; ? dc.b 1 dc.b $B dc.b 1 dc.b $17 dc.b 1 dc.b $25 ; % dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $39 ; 9 dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $78 ; x dc.b 0 dc.b $99 ; ? dc.b 0 dc.b $BC ; ? dc.b 0 dc.b $DF ; ? dc.b 0 dc.b $FE ; ? dc.b 1 dc.b $26 ; & dc.b 1 dc.b $4B ; K dc.b 1 dc.b $67 ; g dc.b 1 dc.b $85 ; ? dc.b 1 dc.b $90 ; ? dc.b 1 dc.b $9B ; ? dc.b 1 dc.b $B2 ; ? dc.b 1 dc.b $B2 ; ? dc.b 1 dc.b $B2 ; ? dc.b 1 dc.b $B2 ; ? dc.b 1 dc.b $B2 ; ? dc.b 1 dc.b $B2 ; ? dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $76 ; v dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $D2 ; ? dc.b 0 dc.b $FC ; ? dc.b 1 dc.b $2A ; * dc.b 1 dc.b $52 ; R dc.b 1 dc.b $84 ; ? dc.b 1 dc.b $B4 ; ? dc.b 1 dc.b $E0 ; ? dc.b 2 dc.b 0 dc.b 2 dc.b $14 dc.b 2 dc.b $1C dc.b 2 dc.b $32 ; 2 dc.b 2 dc.b $32 ; 2 dc.b 2 dc.b $32 ; 2 dc.b 2 dc.b $32 ; 2 dc.b 2 dc.b $32 ; 2 dc.b 2 dc.b $32 ; 2 dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $9B ; ? dc.b 0 dc.b $D6 ; ? dc.b 1 dc.b $B dc.b 1 dc.b $43 ; C dc.b 1 dc.b $7A ; z dc.b 1 dc.b $AE ; ? dc.b 1 dc.b $EA ; ? dc.b 2 dc.b $23 ; # dc.b 2 dc.b $5A ; Z dc.b 2 dc.b $88 ; ? dc.b 2 dc.b $A2 ; ? dc.b 2 dc.b $AC ; ? dc.b 2 dc.b $C2 ; ? dc.b 2 dc.b $C2 ; ? dc.b 2 dc.b $C2 ; ? dc.b 2 dc.b $C2 ; ? dc.b 2 dc.b $C2 ; ? dc.b 2 dc.b $C2 ; ? dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $7F ;  dc.b 0 dc.b $C5 ; ? dc.b 1 dc.b 6 dc.b 1 dc.b $4C ; L dc.b 1 dc.b $8B ; ? dc.b 1 dc.b $CE ; ? dc.b 2 dc.b $F dc.b 2 dc.b $5A ; Z dc.b 2 dc.b $A7 ; ? dc.b 2 dc.b $EA ; ? dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $43 ; C dc.b 3 dc.b $4F ; O dc.b 3 dc.b $6C ; l dc.b 3 dc.b $6C ; l dc.b 3 dc.b $6C ; l dc.b 3 dc.b $6C ; l dc.b 3 dc.b $6C ; l dc.b 3 dc.b $6C ; l dc.b 0 dc.b $66 ; f dc.b 0 dc.b $6A ; j dc.b 0 dc.b $A5 ; ? dc.b 0 dc.b $FA ; ? dc.b 1 dc.b $48 ; H dc.b 1 dc.b $9D ; ? dc.b 1 dc.b $EB ; ? dc.b 2 dc.b $41 ; A dc.b 2 dc.b $95 ; ? dc.b 2 dc.b $F6 ; ? dc.b 3 dc.b $6F ; o dc.b 3 dc.b $B3 ; ? dc.b 3 dc.b $F5 ; ? dc.b 4 dc.b $22 ; " dc.b 4 dc.b $29 ; ) dc.b 4 dc.b $5B ; [ dc.b 4 dc.b $5B ; [ dc.b 4 dc.b $5B ; [ dc.b 4 dc.b $5B ; [ dc.b 4 dc.b $5B ; [ dc.b 4 dc.b $5B ; [ dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $9C ; ? dc.b 0 dc.b $E3 ; ? dc.b 1 dc.b $48 ; H dc.b 1 dc.b $A8 ; ? dc.b 2 dc.b $14 dc.b 2 dc.b $72 ; r dc.b 2 dc.b $E6 ; ? dc.b 3 dc.b $5B ; [ dc.b 3 dc.b $D8 ; ? dc.b 4 dc.b $84 ; ? dc.b 4 dc.b $D7 ; ? dc.b 5 dc.b $2D ; - dc.b 5 dc.b $5F ; _ dc.b 5 dc.b $5E ; ^ dc.b 5 dc.b $A6 ; ? dc.b 5 dc.b $A6 ; ? dc.b 5 dc.b $A6 ; ? dc.b 5 dc.b $A6 ; ? dc.b 5 dc.b $A6 ; ? dc.b 5 dc.b $A6 ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $AB ; ? dc.b 0 dc.b $F2 ; ? dc.b 1 dc.b $5E ; ^ dc.b 1 dc.b $CA ; ? dc.b 2 dc.b $3B ; ; dc.b 2 dc.b $A3 ; ? dc.b 3 dc.b $24 ; $ dc.b 3 dc.b $A4 ; ? dc.b 4 dc.b $38 ; 8 dc.b 4 dc.b $E8 ; ? dc.b 5 dc.b $50 ; P dc.b 5 dc.b $A6 ; ? dc.b 5 dc.b $DC ; ? dc.b 5 dc.b $D5 ; ? dc.b 6 dc.b $2A ; * dc.b 6 dc.b $2A ; * dc.b 6 dc.b $2A ; * dc.b 6 dc.b $2A ; * dc.b 6 dc.b $2A ; * dc.b 6 dc.b $2A ; * dc.b 0 dc.b $AC ; ? dc.b 0 dc.b $BB ; ? dc.b 1 dc.b 8 dc.b 1 dc.b $7B ; { dc.b 1 dc.b $F0 ; ? dc.b 2 dc.b $70 ; p dc.b 2 dc.b $E4 ; ? dc.b 3 dc.b $72 ; r dc.b 3 dc.b $FD ; ? dc.b 4 dc.b $E4 ; ? dc.b 5 dc.b $7E ; ~ dc.b 5 dc.b $EF ; ? dc.b 6 dc.b $3D ; = dc.b 6 dc.b $7D ; } dc.b 6 dc.b $78 ; x dc.b 6 dc.b $E6 ; ? dc.b 6 dc.b $E6 ; ? dc.b 6 dc.b $E6 ; ? dc.b 6 dc.b $E6 ; ? dc.b 6 dc.b $E6 ; ? dc.b 6 dc.b $E6 ; ? dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $D9 ; ? dc.b 1 dc.b $26 ; & dc.b 1 dc.b $AA ; ? dc.b 2 dc.b $1F dc.b 2 dc.b $B5 ; ? dc.b 3 dc.b $34 ; 4 dc.b 3 dc.b $CB ; ? dc.b 4 dc.b $65 ; e dc.b 5 dc.b $76 ; v dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $C7 ; ? dc.b 7 dc.b 9 dc.b 7 dc.b $5E ; ^ dc.b 7 dc.b $41 ; A dc.b 7 dc.b $CA ; ? dc.b 7 dc.b $CA ; ? dc.b 7 dc.b $CA ; ? dc.b 7 dc.b $CA ; ? dc.b 7 dc.b $CA ; ? dc.b 7 dc.b $CA ; ? dc.b 0 dc.b $D8 ; ? dc.b 0 dc.b $F6 ; ? dc.b 1 dc.b $59 ; Y dc.b 1 dc.b $F1 ; ? dc.b 2 dc.b $6A ; j dc.b 3 dc.b 9 dc.b 3 dc.b $96 ; ? dc.b 4 dc.b $3F ; ? dc.b 4 dc.b $FC ; ? dc.b 6 dc.b $1E dc.b 7 dc.b $40 ; @ dc.b 7 dc.b $CE ; ? dc.b 8 dc.b $32 ; 2 dc.b 8 dc.b $70 ; p dc.b 8 dc.b $AE ; ? dc.b 9 dc.b $1B dc.b 9 dc.b $1B dc.b 9 dc.b $1B dc.b 9 dc.b $1B dc.b 9 dc.b $1B dc.b 9 dc.b $1B dc.b 0 dc.b $F5 ; ? dc.b 1 dc.b $14 dc.b 1 dc.b $8A ; ? dc.b 2 dc.b $98 ; ? dc.b 3 dc.b 9 dc.b 3 dc.b $AD ; ? dc.b 4 dc.b $53 ; S dc.b 5 dc.b $13 dc.b 6 dc.b $85 ; ? dc.b 7 dc.b $F8 ; ? dc.b 9 dc.b $F dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $B1 ; ? dc.b $A dc.b $19 dc.b $A dc.b $80 ; ? dc.b $B dc.b $1D dc.b $B dc.b $1D dc.b $B dc.b $1D dc.b $B dc.b $1D dc.b $B dc.b $1D dc.b $B dc.b $1D dc.b 1 dc.b $12 dc.b 1 dc.b $C8 ; ? dc.b 2 dc.b $9A ; ? dc.b 4 dc.b 3 dc.b 4 dc.b $D7 ; ? dc.b 5 dc.b $47 ; G dc.b 6 dc.b $18 dc.b 7 dc.b $D8 ; ? dc.b 9 dc.b $D1 ; ? dc.b $D dc.b $8F ; ? dc.b $E dc.b $80 ; ? dc.b $E dc.b $FB ; ? dc.b $F dc.b 0 dc.b $E dc.b $6C ; l dc.b $E dc.b $CD ; ? dc.b $F dc.b $3D ; = dc.b $F dc.b $3D ; = dc.b $F dc.b $3D ; = dc.b $F dc.b $3D ; = dc.b $F dc.b $3D ; = dc.b $F dc.b $3D ; = dc.b 1 dc.b $30 ; 0 dc.b 3 dc.b $61 ; a dc.b 5 dc.b $AE ; ? dc.b $D dc.b $8E ; ? dc.b $F dc.b $7A ; z dc.b $10 dc.b $5C ; \ dc.b $10 dc.b $F5 ; ? dc.b $10 dc.b $F5 ; ? dc.b $10 dc.b $F5 ; ? dc.b $10 dc.b $F5 ; ? dc.b $10 dc.b $F5 ; ? dc.b $10 dc.b $F5 ; ? dc.b $10 dc.b $F5 ; ? dc.b $10 dc.b $F5 ; ? dc.b $10 dc.b $FB ; ? dc.b $11 dc.b $48 ; H dc.b $11 dc.b $48 ; H dc.b $11 dc.b $48 ; H dc.b $11 dc.b $48 ; H dc.b $11 dc.b $48 ; H dc.b $11 dc.b $48 ; H dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 TRACTION_KV_SPARK_RETARD_TCS:dc.b 3 ; DATA XREF: sub_24716:loc_25CC8o ; sub_24716:loc_25D44o ; Adjusts the desired TCS torque to compensate for ambient pressure ; Degrees_Vs_RPM_Table dc.b 6 dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $61 ; a dc.b 3 dc.b $8E ; ? dc.b 3 dc.b $BC ; ? dc.b 3 dc.b $E9 ; ? dc.b 4 dc.b $17 dc.b 4 dc.b $44 ; D dc.b 4 dc.b $72 ; r dc.b 4 dc.b $9F ; ? dc.b 4 dc.b $CD ; ? dc.b 4 dc.b $FA ; ? dc.b 5 dc.b $28 ; ( dc.b 5 dc.b $55 ; U dc.b 5 dc.b $83 ; ? dc.b 5 dc.b $B0 ; ? dc.b 5 dc.b $DE ; ? dc.b 6 dc.b $B dc.b 6 dc.b $39 ; 9 dc.b 6 dc.b $66 ; f TRACTION_KV_SPARK_RETARD_TCS_AGGRESSIVE:dc.b 0 ; DATA XREF: sub_24716:loc_25C80o ; Adjusts the desired TCS torque to compensate for ambientpressure, first retard cycle only. ; Degrees_Vs_RPM_Table dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 TRACTION_KA_ENG_TORQUE_ETC_DESIRED_XMSN:dc.b $7F ;  ; DATA XREF: sub_24716+D80o ; Desired engine torque for transmission protection. ; Ft_Lbs_S dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF TRACTION_KA_ENG_TRQ_ETC_DES_XMSN_MULT:dc.b 8 ; DATA XREF: sub_24716+D96o ; Desired engine torque multiplier. ; Scaler 2 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 TRACTION_KA_TIP_OUT_INITIAL_TORQUE:dc.b 0 ; DATA XREF: sub_24716+E74o ; Starting torque level for tip out management algorithm. ; Ft_Lbs_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 TRACTION_KA_TIP_OUT_THROTTLE_AREA:dc.b 0 ; DATA XREF: sub_24716+EC4o ; Delivers the throttle area for the tip out torque managment algorithm desired engine torque. ; Percent_Vs_Ft_Lbs_And_RPM_Table dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF ENGDIAGNOSTICS_HEADER:dc.b $3B ; ; ; DATA XREF: DoManyThings1+278o ; Use this cal to identify the engine diagnostic calibration ; Cal_ID_Record dc.b $E7 ; ? dc.b 0 dc.b 3 Constant32_Engine_Diagnostics_Calibration_ID:dc.b 0 ; DATA XREF: sub_269DE:loc_26A4Ao dc.b $C0 ; ? dc.b $F dc.b $7B ; { CurveTable_2_Columns_Engine_Diagnostics_Calibration_Level:dc.b $41 ; A ; DATA XREF: sub_269DE:loc_26AEEo dc.b $42 ; B dc.b 0 dc.b 0 CurveTable_8_Columns_Engine_Diagnostics_Calibration_ID_ASCII:dc.b '12586875',0 ; DATA XREF: sub_3F6FE+11Eo dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 OBD2_CONTROL_KE_MISFIRE_DIAG_RPM_LIMIT:dc.w $C800 ; DATA XREF: OS1:00028EF2r ; Engine speed below which the misfire diagnostic data collection is enabled. ; RPM OBD2_CONTROL_KE_MISFIRE_DIAG_RPM_HYSTERESIS:dc.w $100 ; DATA XREF: OS1:00028F10r ; This plus KE_Misfire_Diag_RPM_Limit is the engine speed above which the misfire diagnostic data collection is disabled. ; RPM OBD2_CONTROL_KV_DIAGNOSTIC_ENABLE:dc.b 1 ; DATA XREF: OS1:loc_2891Co ; sub_869C0+CCr ... ; Boolean flags for enabling the OBD II diagnostics ; BOOLEAN dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 0 OBD2_CONTROL_KV_DIAGNOSTIC_DISABLE_FOR_PTO:dc.b 0 ; DATA XREF: sub_755FA+Ar ; sub_869C0+C0r ; Boolean flags for disabling the OBD II diagnostics when PTO is enabled ; BOOLEAN dc.l off_0+$101 ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 OBD2_CONTROL_KE_MIL_TIME:dc.w $50 ; DATA XREF: sub_757C0+44r ; sub_757C0+86r ; Time that the MIL should be on or off during MIL flashing ; Seconds BRAKE_IO_KE_EXTENDED_TRAVEL_BRAKE_FAIL_CO:dc.b $F ; DATA XREF: sub_7AFBE+23Ar ; If the fail count exceeds this value,extended travel brake diagnostic fails. ; Counts BRAKE_IO_KE_EXTENDED_TRAVEL_BRAKE_SAMPLE_:dc.b $14 ; DATA XREF: sub_7AFBE+258r ; If the sample count exceeds this value,extended travel brake diagnostic is passed. ; Counts BRAKE_IO_KE_BRAKE_ETM_FAIL_COUNT:dc.b $F ; DATA XREF: sub_7AFBE+E0r ; If the fail count exceeds this value, ETM brake diagnostic fails. ; Counts BRAKE_IO_KE_BRAKE_ETM_SAMPLE_COUNT:dc.b $14 ; DATA XREF: sub_7AFBE+136r ; If the sample count exceeds this value, ETM brake diagnostic is passed. ; Counts BRAKE_IO_KE_BRAKE_CRZ_FAIL_COUNT:dc.b $F ; DATA XREF: sub_7AFBE+11Ar ; If the fail count exceeds this value, TCC brake diagnostic fails. ; Counts BRAKE_IO_KE_BRAKE_CRZ_SAMPLE_COUNT:dc.b $14 ; DATA XREF: sub_7AFBE+154r ; If the sample count exceeds this value, TCC brake diagnostic is passed. ; Counts BRAKE_IO_KE_BRAKE_DIAG_SPEED_DELTA:dc.w $14D ; DATA XREF: sub_7AFBE+9Cr ; sub_7AFBE+214r ; Check brake inputs if vehicle speed is decelerating more than this value over a 250 msec. period. ; MPH BRAKE_IO_KE_BRAKE_TEST_ENGINE_SPEED:dc.w $E00 ; DATA XREF: sub_7B2B2+8r ; Engine speed above which for a continuous time period, the brake monitoring is allowed to begin. ; RPM BRAKE_IO_KE_BRAKE_TEST_RUN_TIME:dc.w $140 ; DATA XREF: sub_7B2B2+66r ; Time with engine speed KE_Brake_Test_Engine_Speed to allow brake switch monitoring to begin. ; Seconds BRAKE_IO_KE_BRAKE_ENABLE_WHEEL_SPD:dc.w $F00 ; DATA XREF: sub_7AFBE+68r ; sub_7AFBE+1E2r ; Wheel speed at or above which the brake switch monitoring cycle begins. ; MPH BRAKE_IO_KE_BRAKE_DISABLE_WHEEL_SPD:dc.w $500 ; DATA XREF: sub_7AFBE:loc_7B036r ; sub_7AFBE:loc_7B1B0r ; Wheel speed at or below which the brake switch monitoring cycle ends. ; MPH C2_J1979_MSGS_KE_OBD_01_20_TEST_SUPPORT:dc.l $68540000 ; DATA XREF: sub_3EA90+16r ; sub_3EA90+46r ... ; Bit encoded calibration which indicates which mode 6 tests are supported. ; BOOLEAN C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_1:dc.b $FC ; DATA XREF: sub_3EA90+308r ; sub_3EA90+9AAr ... ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_2:dc.b $10 ; DATA XREF: sub_3EA90+B44r ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_3:dc.b $FD ; DATA XREF: sub_3EA90:loc_3EDDEr ; sub_3EA90:loc_3EDF2r ... ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_4:dc.b $FF ; DATA XREF: sub_3EA90:loc_3EF1Cr ; sub_3EA90:loc_3EF54r ... ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_5:dc.b $7D ; DATA XREF: sub_3EA90:loc_3F0AAr ; sub_3EA90:loc_3F0E6r ... ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_6:dc.b $EC ; DATA XREF: sub_3EA90:loc_3F23Cr ; sub_3EA90:loc_3F276r ... ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN C2_J1979_MSGS_KE_MODE_8_01_20_TEST_SUPPORT:dc.l $80000000 ; DATA XREF: sub_3F674+10r ; sub_3F674+28r ; Bit encoded calibration which indicates which mode 8 tests in this range are supported. ; BOOLEAN C2_J1979_MSGS_KE_MODE9_01_08_SUPPORT:dc.b $FC ; DATA XREF: sub_3F6FE+1Cr ; sub_3F6FE+30r ... ; Bit encoded calibration which indicates support or non-support for a particular mode 9 info type. ; BOOLEAN INSTRUMENTATION_KE_ENABLE_MALF_DISPLAY:dc.b 1 ; DATA XREF: sub_26672+8r ; Enables the storing of data used to display malf codes. ; BOOLEAN C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS:dc.b $33 ; DATA XREF: sub_3EA90+A16r ; sub_3EA90+A3Cr ... ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN dc.b $FF C2_M5_DEFINITION_KE_MODE_5_01_20_TEST_SUPPORT:dc.l 0 ; DATA XREF: sub_429F8+42r ; sub_42AC0+18r ... ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 C2_M5_DEFINITION_KE_MODE_5_21_40_TEST_SUPPORT:dc.l 0 ; DATA XREF: sub_429F8+50r ; sub_42AC0+36r ... ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 C2_M5_DEFINITION_KE_MODE_5_41_60_TEST_SUPPORT:dc.l 0 ; DATA XREF: sub_429F8+5Er ; sub_42AC0+54r ... ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 C2_M5_DEFINITION_KE_MODE_5_61_80_TEST_SUPPORT:dc.l 0 ; DATA XREF: sub_429F8+6Cr ; sub_42AC0+72r ... ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 C2_M5_DEFINITION_KE_MODE_5_81_A0_TEST_SUPPORT:dc.l 0 ; DATA XREF: sub_429F8+7Ar ; sub_42AC0+8Er ... ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 C2_M5_DEFINITION_KE_MODE_5_A1_C0_TEST_SUPPORT:dc.l 0 ; DATA XREF: sub_429F8+88r ; sub_42AC0+AAr ... ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 C2_M5_DEFINITION_KE_MODE_5_C1_E0_TEST_SUPPORT:dc.l 0 ; DATA XREF: sub_429F8+96r ; sub_42AC0+C6r ... ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 C2_M5_DEFINITION_KE_MODE_5_E1_FF_TEST_SUPPORT:dc.l 0 ; DATA XREF: sub_429F8+A4r ; sub_42AC0+DCr ... ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 C2_PIDS_KE_MODE_1_PID_01_08_SUPPORT:dc.b $BF ; DATA XREF: sub_494B8+20r ; OS2:000495FEr ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type C2_PIDS_KE_MODE_1_PID_09_10_SUPPORT:dc.b $BF ; DATA XREF: sub_494B8+28r ; OS2:00049606r ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type C2_PIDS_KE_MODE_1_PID_11_18_SUPPORT:dc.b $F9 ; DATA XREF: sub_494B8+30r ; OS2:0004960Er ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type C2_PIDS_KE_MODE_1_PID_19_20_SUPPORT:dc.b $90 ; DATA XREF: sub_494B8+38r ; OS2:00049616r ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type C2_PIDS_KE_MODE_1_PID_21_28_SUPPORT:dc.b 0 ; DATA XREF: sub_494B8:loc_494FCr ; OS2:0004962Ar ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type C2_PIDS_KE_MODE_1_PID_29_30_SUPPORT:dc.b 0 ; DATA XREF: sub_494B8+4Cr ; OS2:00049632r ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type C2_PIDS_KE_MODE_1_PID_31_38_SUPPORT:dc.b 0 ; DATA XREF: sub_494B8+54r ; OS2:0004963Ar ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type C2_PIDS_KE_MODE_1_PID_39_40_SUPPORT:dc.b 0 ; DATA XREF: sub_494B8+5Cr ; OS2:00049642r ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type C2_PIDS_KE_MODE_2_PID_01_08_SUPPORT:dc.b $7F ; DATA XREF: sub_494B8+78r ; OS2:00049656r ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type C2_PIDS_KE_MODE_2_PID_09_10_SUPPORT:dc.b $B9 ; DATA XREF: sub_494B8+80r ; OS2:0004965Er ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type C2_PIDS_KE_MODE_2_PID_11_18_SUPPORT:dc.b $80 ; DATA XREF: sub_494B8+88r ; OS2:00049666r ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type C2_PIDS_KE_MODE_2_PID_19_20_SUPPORT:dc.b 0 ; DATA XREF: sub_494B8+90r ; OS2:0004966Er ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type C2_PIDS_KE_PEAK_AIRFLOW_SEALEVEL:dc.w $8C00 ; DATA XREF: sub_4974A+3Cr ; OS2:00049E3Ar ; This calibration indicates the mass air flow corrected corrected to sealevel. ; Grams_per_Second C2_PIDS_KE_SEALEVEL_BAROMETER:dc.w $1438 ; DATA XREF: sub_4974A+52r ; OS2:00049E50r ; It indicates the barometric pressure corrected corrected to sealevel. ; kPa C2_PIDS_KE_OBD2_SYSTEM_TYPE:dc.b 1 ; DATA XREF: OS2:GetPid_001C_OBDRequirementsr ; This Calibration indicates which on_board diagnostic system is used. ; SHORTCARD dc.b $FF COOLANT_KE_INITIAL_COOLANT_DEFAULT:dc.w $100 ; DATA XREF: OS3:loc_7B846r ; Initial coolant default, used if IAT failed on powerup. ; Degrees C COOLANT_KE_WARM_ENGINE_DEFAULT_COOLANT_M:dc.w $B9A ; DATA XREF: OS3:0007B886r ; GetCoolantTemperature+A2r ; Maximum value allowed for default coolant temperature. ; Degrees C COOLANT_KV_DEFAULT_COOLANT:dc.l off_0+$158 ; DATA XREF: GetCoolantTemperature:loc_7B992o ; This is added to what the ambient air temperature was at powerup to determine what the default coolant temperature should be. ; Degrees C dc.b 2 dc.b $52 ; R dc.b 3 dc.b $4D ; M dc.b 3 dc.b $E9 ; ? dc.b 4 dc.b $86 ; ? dc.b 5 dc.b $22 ; " dc.b 5 dc.b $80 ; ? dc.b 5 dc.b $DE ; ? dc.b 6 dc.b $1C dc.b 6 dc.b $9A ; ? dc.b 6 dc.b $F7 ; ? dc.b 7 dc.b $36 ; 6 dc.b 7 dc.b $94 ; ? dc.b 7 dc.b $D2 ; ? dc.b 8 dc.b $11 dc.b 8 dc.b $50 ; P dc.b 8 dc.b $AE ; ? dc.b 8 dc.b $CD ; ? dc.b 9 dc.b $B dc.b 9 dc.b $4A ; J dc.b 9 dc.b $89 ; ? dc.b 9 dc.b $C7 ; ? dc.b 9 dc.b $E6 ; ? dc.b $A dc.b 6 dc.b $A dc.b $44 ; D dc.b $A dc.b $64 ; d dc.b $A dc.b $83 ; ? dc.b $A dc.b $C1 ; ? dc.b $A dc.b $E1 ; ? dc.b $B dc.b 0 CYLINDER_NUMBER_KV_CYLINDER_AT_CAM:dc.b 4 ; DATA XREF: sub_7C3FE+52r ; The cylinder number present when CAM has just transitionedto the indicated state. ; Cam_Transition dc.b 1 CYLINDER_NUMBER_KV_SYNC_REFERENCES:dc.b $1E ; DATA XREF: sub_7C482+52o ; Number of low-resolution reference pulses that must occur before a change in cam signal is assumed. ; SHORTCARD dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $1E dc.b $FF DG_AC_KE_AC_CLUTCH_HIGH_FAIL_THRESHOLD:dc.b $32 ; DATA XREF: sub_5F4A6+26r ; The number of failures required to set P1539 ; Counts DG_AC_KE_AC_CLUTCH_HIGH_PASS_THRESHOLD:dc.b $64 ; DATA XREF: sub_5F4A6:loc_5F4EAr ; The number of passes required to pass P1539 ; Counts DG_AC_KE_AC_CLUTCH_LOW_FAIL_THRESHOLD:dc.b $32 ; DATA XREF: sub_5F4A6+7Er ; The number of failures required to set P1546 ; Counts DG_AC_KE_AC_CLUTCH_LOW_PASS_THRESHOLD:dc.b $64 ; DATA XREF: sub_5F4A6:loc_5F540r ; The number of passes required to pass P1546 ; Counts DG_AC_KE_AC_PRESSURE_IN_FLT_TMR:dc.w $320 ; DATA XREF: OS2:0005F488r ; The time that a failure must exsist to cause a fault to be displayed for AC pressure. ; Seconds DG_AC_KE_P0531_AC_PRESSURE_DELTA:dc.w $14 ; DATA XREF: sub_5F566:loc_5F5FEr ; The amount of PSI rise after AC compressor engagement, at all ambient temperatures, that indicates the sensor is not stuck. ; PSI DG_AC_KE_P0531_STARTUP_AC_PRESS_DELTA:dc.w $A00 ; DATA XREF: sub_5F566:loc_5F59Cr DG_AC_KE_P0531_AC_PRESS_ENABLE_TEST:dc.w $100 ; DATA XREF: sub_5F566+62r ; When AC pressure is greater than this or when KE_P0531_IAT_Enable_Test is met, allow P0531 test to run. ; PSI DG_AC_KE_P0531_IAT_ENABLE_TEST:dc.w $19A ; DATA XREF: sub_5F566+7Er ; When IAT is greater than this or when KE_P0531_AC_Press_Enable_Test is met, allow P0531 test to run ; Degrees_C DG_AC_KE_P0531_AC_HOLD_OFF_IAT:dc.w $280 ; DATA XREF: sub_5F566+11Cr ; Hold AC compressor off for KE_P0531_AC_Off_Time when compressor turns off when IAT less than this. ; Degrees_C DG_AC_KE_P0531_AC_ON_TIME:dc.w $640 ; DATA XREF: sub_5F566+C4r ; The amount of time allowed for the AC pressure to rise the required delta before failing the P0531 diagnostic. ; Seconds DG_AC_KE_P0531_AC_OFF_TIME:dc.w $640 ; DATA XREF: sub_5F566+F8r ; The delay time after the clutch is turned off before the diagnostic is enabled. This allows the pressure to decay. ; Seconds DG_AC_KV_AC_PRES_AD_CNT:dc.b $FC ; DATA XREF: OS2:0005F448r ; When AC pressure is outside the window, then it is considered invalid. ; Counts byte_1653B: dc.b 5 ; DATA XREF: OS2:0005F450r DG_AIR_KE_AIRD_ENGINE_RUN_TIME_MIN:dc.w $12C0 ; DATA XREF: OS2:loc_5F7CEr ; sub_60178:loc_602C8r ; The minimum engine run time required to start the AIR diagnostic ; Seconds DG_AIR_KE_AIRD_ACTIVE_CONTROL_WAIT_TIME:dc.b $A ; DATA XREF: OS2:0005FD40r ; Minimum length of time before stopping the air induction request. ; Seconds DG_AIR_KE_AIRD_ACTIVE_ENABLE_TIME_MIN:dc.b $14 ; DATA XREF: OS2:0005FD5Er ; Minimum length of time the enable conditions for the active test shall be met. ; Seconds DG_AIR_KE_AIRD_ACTIVE_ENG_AIRFLOW_MAX:dc.w $B00 ; DATA XREF: OS2:0005FCF0r ; The maximum amount of engine airflow allowed during the active test. ; Grams DG_AIR_KE_AIRD_ACTIVE_ENGINE_LOAD_MAX:dc.w $800 ; DATA XREF: OS2:0005FCE2r ; The maximum engine load allowed during the active test. ; Percent DG_AIR_KE_AIRD_ACTIVE_ENGINE_SPEED_MIN:dc.w $1100 ; DATA XREF: OS2:0005FCFEr ; The minimum engine speed required to run the active test. ; Speed DG_AIR_KE_AIRD_ACTIVE_LEAN_VOLT_MAX:dc.w $1993 ; DATA XREF: OS2:0005FF7Cr ; Maximum O2 sensor voltage to update the lean timer during the active test. ; Millivolts DG_AIR_KE_AIRD_ACTIVE_TEST_TIME_LIMIT:dc.b $23 ; DATA XREF: OS2:0005FF58r ; Maximum amount of time allowed in the active test. ; Seconds dc.b $FF DG_AIR_KE_AIRD_ACTIVE_VEH_SPEED_MIN:dc.w $780 ; DATA XREF: OS2:0005FD0Ar ; The minimum vehicle speed required to run the active test. ; Miles per Hour DG_AIR_KE_AIRD_ENGINE_VACUUM_MIN:dc.w 0 ; DATA XREF: OS2:0005F858r ; OS2:0005FD18r ; The minimum engine vacuum threshold to enable the passive and active tests. ; Kilopascals DG_AIR_KE_AIRD_PASV_AIRFUEL_RATIO_MIN:dc.w $8340 ; DATA XREF: OS2:0005F86Ar ; The commanded engine air/fuel control ratio shall be above this value for the passive test to run. ; Ratio DG_AIR_KE_AIRD_PASV_COLD_START_TEMP_LIM:dc.w $FF00 ; DATA XREF: OS2:0005FBAAr ; Determines the powerup coolant temperature below which the passive test will be considered a cold start passive test. ; Degrees DG_AIR_KE_AIRD_PASV_ENG_AIRFLOW_MAX:dc.w $900 ; DATA XREF: OS2:0005F84Ar ; Maximum engine airflow allowed during the passive test. ; Grams DG_AIR_KE_AIRD_PASV_EXH_BACKPRES_MAX:dc.w $1400 ; DATA XREF: OS2:0005F832r ; Maximum engine load allowed during the passive test. ; Percent DG_AIR_KE_AIRD_PASV_PART2_RICH_SAMP_MIN:dc.b 0 ; DATA XREF: OS2:0005FC92r ; Minimum number of rich samples required to pass part 2 of the passive test. ; Count dc.b $FF DG_AIR_KE_AIRD_PASV_PART2_RICH_VOLT_MIN:dc.w 0 ; DATA XREF: OS2:0005FC6Er ; Minimum O2 sensor voltage during part 2 of the passive test to consider the O2 sensor sample rich. ; Millivolts DG_AIR_KE_AIRD_PASV_PART2_TIME_MIN:dc.w 0 ; DATA XREF: OS2:0005FCA6r ; Minimum amount of time required for passive test part 2 to complete. ; Seconds DG_AIR_KE_AIRD_PASV_TEMP_THRESHOLD:dc.w $FF00 ; DATA XREF: OS2:0005FA00r ; Threshold to determine whether to use the cold or hot passive test logic. ; Degrees DG_AIR_KE_AIRD_PASV_TPS_DELTA_MAX:dc.w $CD ; DATA XREF: OS2:0005F83Er ; The maximum change in TPS values over 100ms interval allowed during the passive test. ; Percent DG_AIR_KE_AIRD_PRETEST_DELAY_TIME:dc.b $1E ; DATA XREF: OS2:0005FEE6r ; Amount of time necessary to complete the pretest delay. ; Seconds DG_AIR_KE_AIRD_PRETEST_FUEL_TRIM_MAX:dc.b $68 ; DATA XREF: OS2:0005FEBEr ; The short term fuel trim variable shall be below this value to start the active test. ; Value DG_AIR_KE_AIRD_PRETEST_FUEL_TRIM_MIN:dc.b $60 ; DATA XREF: OS2:0005FEB6r ; The short term fuel trim variable shall be above this value to start the active test. ; Unitless dc.b $FF DG_CAM_KV_CAM_INITIAL_FIRST_CYCLE:dc.b 2 ; DATA XREF: sub_60BE2+38o ; sub_60BE2+154o dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF DG_CAM_KV_CAM_INITIAL_SECOND_CYCLE:dc.b 2 ; DATA XREF: sub_60BE2+C8o ; sub_60BE2+1D6o dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF DG_CAM_KE_CAM_X_SHORTED_HIGH_CRANK:dc.w $F ; DATA XREF: sub_60880+246r ; Limit of allowable high transitions when a hightransition should not have occured during crank state. ; NONE 0-255 DG_CAM_KE_CAM_X_SHORTED_HIGH_RUN:dc.w $32 ; DATA XREF: sub_60880+256r ; Limit of allowable high transitions when a hightransition should not have occured during engine run. ; NONE 0-255 DG_CAM_KE_CAM_X_SHORTED_LOW_CRANK:dc.w $F ; DATA XREF: sub_60880+28Er ; Limit of allowable low transitions when a lowtransition should not have occured during crank state. ; NONE 0-255 DG_CAM_KE_CAM_X_SHORTED_LOW_RUN:dc.w $32 ; DATA XREF: sub_60880+29Er ; Limit of allowable low transitions when a lowtransition should not have occured during engine run. ; NONE 0-255 DG_CAM_KE_CAM_X_PERFORMANCE_CRANK:dc.w $F ; DATA XREF: sub_60880+2C4r ; Limit of number of too many transitions occuringwhen only one transition should have occured duringcrank state. ; NONE 0-255 DG_CAM_KE_CAM_X_PERFORMANCE_RUN:dc.w $F ; DATA XREF: sub_60880+2D4r ; Limit of number of too many transitions occuringwhen only one transition should have occured. ; NONE 0-255 DG_CAM_KE_CAM_X_SAMPLES_CRANK:dc.w $64 ; DATA XREF: sub_60880+2F4r ; Limit of number of samples for cranking. ; NONE 0-255 DG_CAM_KE_CAM_X_SAMPLES_RUN:dc.w $64 ; DATA XREF: sub_60880+304r ; Limit of number of samples for engine run. ; NONE 0-255 DG_CAM_KE_CAM_MISSING_SAMPLES:dc.b $A ; DATA XREF: sub_6080C+3Cr ; This many seconds of CAM transitions must be seen before reporting a Pass for the missing CAM signal diagnostic. Gen 1E only. ; Samples DG_CAM_KE_CAM_MISSING_FAIL_LIMIT:dc.b 5 ; DATA XREF: sub_6080C+58r ; If no CAM transitions are detected for this many seconds, report a Fail for the missing CAM signal diagnostic. Gen 1E only. ; Counts DG_CAM_KE_CAM_SYNC_FAILURE_LIMIT:dc.w $28 ; DATA XREF: sub_60880+7Cr ; The number of failed tests within a sample size that will report a failure for the cam sync test. Gen 1E only. ; Failures DG_CAM_KE_CAM_SYNC_SAMPLE_LIMIT:dc.w $64 ; DATA XREF: sub_60880+5Ar ; The number of tests that make up a sample size for the cam sync test. Gen 1E only. ; Samples DG_CAM_KE_CAM_MAX_TEST_COUNTER:dc.b $32 ; DATA XREF: sub_60880+C2r ; The number of times (engine cycles) to run the position test after the engine running flag is active. Gen 1E only. ; Counts DG_CAM_KE_CAM_POSITION_MAX_DIAG_COUNT:dc.b $1E ; DATA XREF: sub_60880+14Cr ; The number of continuous position errors to qualify as a fault. Gen 1E only. ; Counts DG_CAM_KE_CAM_POSITION_ERROR_MAX:dc.w $1800 ; DATA XREF: sub_60880+102r ; Lower boundry multiplier for crank-cam pulse timing window. Gen 1E only. ; 0_to_4 DG_CAM_KE_CAM_POSITION_ERROR_MIN:dc.w $C00 ; DATA XREF: sub_60880+118r ; Upper boundry multiplier for crank-cam pulse timing window. Gen 1E only. ; 0_to_4 DG_CASE_KE_CASE_COLLECT_CAM_DATA:dc.b $11 ; DATA XREF: sub_60E42+108r ; sub_61088+E0r ... dc.b $FF DG_CASE_KE_CASE_FACTOR_MAX:dc.w $8148 ; DATA XREF: sub_61088+120r ; Defines the threshold above which a cylinder compensation factor is considered to be too large. ; unitless DG_CASE_KE_CASE_FACTOR_MIN:dc.w $7EB8 ; DATA XREF: sub_61088+128r ; Defines the threshold below which a cylinder compensation factor is considered out of range. ; unitless DG_CASE_KE_CASE_FACTOR_SUM_MAX:dc.l loc_2001E+3 ; DATA XREF: sub_61088+218r ; sub_61460+64r ... ; Defines the threshold beyond which the sum of the opposing cylinder pair compensation factors is considered to be out of range. ; unitless DG_CASE_KE_CASE_FACTOR_SUM_MIN:dc.l unk_1FFDF ; DATA XREF: sub_61088:loc_61298r ; sub_61460:loc_614BAr ; Defines the threshold below which the sum of the opposing cylinder pair compensation factors is considered to be out of range. ; unitless DG_CASE_KE_CASE_FAIL_TIMER_MAX:dc.b 5 ; DATA XREF: sub_61502+84r ; Defines the diagnostic failure threshold according to the activation rate specified herein for the owner process. ; seconds DG_CASE_KE_CASE_OPP_CYL_DIFF_MAX:dc.b $83 ; DATA XREF: sub_61088+176r ; Defines the threshold above which the opposing cylinder factors are considered to be too far apart. ; unitless DG_CASE_KE_DSBL_MFR_ENBL_CTR_FOR_CASE:dc.b 0 ; DATA XREF: sub_61502+9Ar dc.b $FF DG_CRANK_KE_LOSS_OF_MATCH_FAIL_LIMIT:dc.w $32 ; DATA XREF: sub_6163A:loc_6168Ar ; Number of Loss of Match events required to report a Crank Sync Lost failure. ; Match Loss DG_CRANK_KE_LOW_RES_REF_LOM_THRESHOLD:dc.w $C30 ; DATA XREF: sub_6163A:loc_616A4r ; Number of low res ref pulses that must occur before Loss Of Match density is evaluated. ; Lo-Res Ref DG_CRANK_KE_CRANK_SYNC_LOST_RATIO_LIMIT:dc.w $415 ; DATA XREF: sub_6163A+76r ; Loss Of Match density (ratio of Loss OF Match events to low res ref pulses) that will report a Crank Sync Lost failure. ; NONE 0-1 DG_CRANK_KE_CRANK_SYNC_TEST_SAMPLE_LIMIT:dc.b $28 ; DATA XREF: sub_616D8:loc_617E0r ; Number of crank synch not achieved samples required to report test passed. ; Samples DG_CRANK_KE_CRANK_SYNC_TEST_FAIL_LIMIT:dc.b $1E ; DATA XREF: sub_616D8+EEr ; Number of crank synch not achieved failures within a sample sample size required to report a crank synch not achieved failure. ; Failures DG_CRANK_KE_MATCH_HAS_OCCURRED_THRESHOLD:dc.w $A ; DATA XREF: sub_616D8:loc_617A2r ; This many matches in a single sample register as one crank synch not achieved failure. ; matches DG_CRANK_KE_MIN_CRANKING_MASS_AIRFLOW:dc.w $173 ; DATA XREF: sub_616D8+2Ar ; Level of airflow when engine is cranking. ; gm/S DG_CRANK_KE_START_CRANK_SAMPLE_SIZE:dc.b $14 ; DATA XREF: sub_616D8:loc_61776r DG_CRANK_KE_START_CRANK_FAILURE_LIMIT:dc.b $F ; DATA XREF: sub_616D8+82r DG_CRANK_KE_ACCELERATION_LIMIT_VALUE:dc.w $1400 ; DATA XREF: sub_6183E+4Cr ; RPM changes greater than this value over a 12.5ms interval must be faulty. Gen 1E only. ; RPM DG_CRANK_KE_MIN_RUNNING_MASS_AIRFLOW:dc.w $281 ; DATA XREF: sub_6183E+6Cr ; Minimum airflow that indicates the engine is rotating and should be running. Gen 1E only. ; Grams_Per_Second DG_CRANK_KE_CRANK_INTERMITTENT_FAIL_LIMIT:dc.w $A ; DATA XREF: sub_6183E+CEr ; Number of failed crank sensor tests for high acceleration out of a sample size that will report a failure. Gen 1E only. ; Failures DG_CRANK_KE_LONG_INTERMITTENT_FAIL_LIMIT:dc.w 1 ; DATA XREF: sub_6183E+ECr DG_CRANK_KE_CRANK_INTERMITTENT_SAMPLES_LI:dc.w $1F4 ; DATA XREF: sub_6183E:loc_6193Cr ; Number of samples that make up a sample size for the crank sensor test. Gen 1E only. ; Samples DG_CRANK_KE_MIN_CAM_EDGES_AFTER_CRK_LOSS:dc.w 6 ; DATA XREF: sub_6183E+A8r ; If the crank sensor fails on a running engine, atleast this many cam edges must occur before setting a code. Gen IE only. ; Counts DG_ECTR_KE_ECTR_ENGINE_AIRFLOW_MAX:dc.w $2580 ; DATA XREF: sub_61A3E+254r ; Limit the value of engine airflow at this maximum. ; GmsPerSec DG_ECTR_KE_ECTR_ENGINE_AIRFLOW_MIN:dc.w $780 ; DATA XREF: sub_61A3E:loc_61CA2r ; Airflow is set to zero, so that no airflow is accumulated below the mimimum. ; GmsPerSec DG_ECTR_KE_ECTR_MAX_AMBIENT_TEMP:dc.w $573 ; DATA XREF: sub_61A3E+12r ; The maximum value that can be assigned to OBD_Intake_Air_ Temperature to represent ambient temperature. ; Degrees_C DG_ECTR_KE_ECTR_MAX_ENGINE_RUN_TIME:dc.w $55A ; DATA XREF: sub_61A3E+44r ; Maximum engine run time that will enable the test. ; Seconds DG_ECTR_KE_ECTR_MIN_ENGINE_RUN_TIME:dc.w $78 ; DATA XREF: sub_61A3E+6Cr ; Minimum engine run time that will enable the test. ; Seconds DG_ECTR_KE_ECTR_MIN_REQUIRED_IAT:dc.w $FF4D ; DATA XREF: sub_61A3E+3Cr ; Minimum intake air temperature value to enable the rationality test(s). ; Degrees_C DG_ECTR_KE_ECTR_MIN_VEHICLE_SPEED:dc.w $280 ; DATA XREF: sub_61A3E+10Ar ; Minimum vehicle speed value to update the distance measurement. ; MPH DG_ECTR_KE_ECTR_MAX_ETH_PERCENT:dc.w $300 ; DATA XREF: sub_61A3E+58r ; The maximum fuel ethanol composition allowed to enable the test. ; Percent DG_ECTR_KE_ECTR_TEST_FAIL_LIM:dc.b $1E ; DATA XREF: sub_61A3E:loc_61E06r ; Number of consecutive failures without a pass to report a failed rationality test. ; Failures dc.b $FF DG_ECTS_KE_ECTS_ENG_RUN_TIME_HIGH_MIN:dc.b $3C ; DATA XREF: sub_61F02:loc_6209Ar ; Minimum engine run time threshold to record a short to high fault. ; Seconds DG_ECTS_KE_ECTS_ENG_RUN_TIME_LOW_MIN:dc.b $A ; DATA XREF: sub_61F02:loc_61F36r ; Minimum engine run time threshold to record a short to low fault. ; Seconds DG_ECTS_KE_ECTS_INT_SHORT_HIGH_FAIL_LIM:dc.w $37 ; DATA XREF: sub_61F02+22Cr ; Number of failed intermittent short to high tests that will report an intermittent failure. ; Failures DG_ECTS_KE_ECTS_INT_SHORT_HIGH_SMPL_LIM:dc.w $3E8 ; DATA XREF: sub_61F02+24Cr ; Number of intermittent short high tests that make up a sample size. ; Samples DG_ECTS_KE_ECTS_INT_SHORT_LOW_FAIL_LIM:dc.w $37 ; DATA XREF: sub_61F02+C8r ; Number of failed intermittent short to low tests that will report an intermittent failure. ; Failures DG_ECTS_KE_ECTS_INT_SHORT_LOW_SMPL_LIM:dc.w $3E8 ; DATA XREF: sub_61F02+E8r ; Number of intermittent short low tests that make up a sample size. ; Samples DG_ECTS_KE_ECTS_SHORT_HIGH_FAIL_LIM:dc.w $2D ; DATA XREF: sub_61F02+264r ; Number of failed short to high tests that will report a failure. ; Failures DG_ECTS_KE_ECTS_SHORT_HIGH_SMPL_LIM:dc.w $32 ; DATA XREF: sub_61F02+2ACr ; Number of short high tests that make up a sample size. ; Samples DG_ECTS_KE_ECTS_SHORT_LOW_FAIL_LIM:dc.w $2D ; DATA XREF: sub_61F02+100r ; Number of failed short to low tests that will report a failure. ; Failures DG_ECTS_KE_ECTS_SHORT_LOW_SMPL_LIM:dc.w $32 ; DATA XREF: sub_61F02+148r ; Number of short low tests that make up a sample size. ; Samples DG_ECTS_KE_ECTS_SHORTED_HIGH_IAT_MIN:dc.w 0 ; DATA XREF: sub_61F02+1A4r ; Minimum IAT to enable an ECT shorted high failure prior to achieving sufficient engine run time. ; Degrees C DG_ECTS_KE_ECTS_SHORTED_LOW_IAT_MAX:dc.w $500 ; DATA XREF: sub_61F02+40r ; Maximum IAT to enable an ECT shorted low failure prior to achieving sufficient engine run time. ; Degrees C DG_ECTS_KV_ECTS_SHORTED_HIGH_THRESH:dc.w $13C3 ; DATA XREF: sub_61F02+174r ; The threshold above which the coolant sensor is considered shorted to a positive voltage. ; Percent dc.b $13 dc.b $D7 ; ? DG_ECTS_KV_ECTS_SHORTED_LOW_THRESH:dc.w $F1 ; DATA XREF: sub_61F02+Er ; The threshold below which the coolant sensor is considered opened or shorted to ground. ; Percent dc.b 0 dc.b $24 ; $ DG_EGRQ_KV_EGRF_ACHIEVED_POS_COMP:dc.b $80 ; DATA XREF: sub_622EE:loc_6283Cr ; Compensation factor to reduce the delta MAP for high achieved positions. ; Unitless dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $9A ; ? dc.b $8D ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $7A ; z dc.b $73 ; s dc.b $73 ; s dc.b $80 ; ? dc.b $80 ; ? DG_EGRQ_KV_EGRF_EWMA_COMPENSATION:dc.b $80 ; DATA XREF: sub_622EE:loc_6286Cr ; Compensation factor to reduce the delta MAP for various restriction amounts. ; Unitless dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $FF DG_EGRQ_KV_EGRF_ON_TIME_COMPENSATION:dc.b $9F ; DATA XREF: sub_622EE:loc_6281Cr ; Compensation factor to reduce the delta MAP for long on-times. ; Unitless dc.b $9F ; ? dc.b $9F ; ? dc.b $80 ; ? dc.b $76 ; v dc.b $6F ; o dc.b $61 ; a dc.b $57 ; W dc.b $4D ; M dc.b $4D ; M dc.b $4D ; M dc.b $4D ; M dc.b $4D ; M dc.b $4D ; M dc.b $4D ; M dc.b $4D ; M dc.b $4D ; M dc.b $FF DG_EGRQ_KE_EGRF_ABORT_INTERVAL:dc.w $C0 ; DATA XREF: sub_622EE+154r ; Interval between test control assertions when the previous test was aborted during the intrusive period. ; Seconds DG_EGRQ_KE_EGRF_AIRFLOW_DIFFERENCE:dc.b $1E ; DATA XREF: sub_622EE+2E0r ; Maximum allowable difference between commanded and actual airflow during the TEST_STARTED mode. ; Grams/Sec dc.b $FF DG_EGRQ_KE_EGRF_ALTITUDE_COMP_MAP_HIGH:dc.w $219A ; DATA XREF: sub_622EE+2F0r ; Upper limit of range above which flow test is not run. ; kPa DG_EGRQ_KE_EGRF_ALTITUDE_COMP_MAP_LOW:dc.w $E66 ; DATA XREF: sub_622EE+2E8r ; Lower limit of range below which flow test is not run. ; kPa DG_EGRQ_KE_EGRF_BARO_MINIMUM:dc.w $3B33 ; DATA XREF: sub_622EE+8Er ; Minimum barometric pressure below which test may is not run. ; kPa DG_EGRQ_KE_EGRF_BASE_ON_TIME_COUNTER:dc.b 6 ; DATA XREF: sub_62228+50r ; Initial number of execution loops that the valve will be commanded open, after a powerup or a non-volatile init. ; Counts DG_EGRQ_KE_EGRF_CODE_CLEAR_ON_TIME_CTR:dc.b 4 ; DATA XREF: sub_622EE+10r ; Initial number of execution loops that the valve will be commanded open, after an ALDL code clear. ; Counts DG_EGRQ_KE_EGRF_COMPLETE_INTERVAL:dc.w $C0 ; DATA XREF: sub_62228:loc_62270r ; sub_622EE+140r ; Interval between test control assertions, when the previous test was completed. ; Seconds DG_EGRQ_KE_EGRF_DFCO_ENABLE:dc.b 0 ; DATA XREF: sub_622EE+10Er ; sub_622EE:loc_6240Ar ; Condition for enabling flow mode test based on decel fuel cut off state. ; Enum dc.b $FF DG_EGRQ_KE_EGRF_EWMA_FAIL_THRESHOLD:dc.w $FFFC ; DATA XREF: sub_622EE+778r ; Threshold above which the diagnostic is considered failing,if the diagnostic is currently indicating a failure. ; kPa DG_EGRQ_KE_EGRF_EWMA_FAIL_COEF:dc.w $33 ; DATA XREF: sub_622EE+780r ; Filter coefficient for EWMA calculation when test is indicating a failure. ; Coef DG_EGRQ_KE_EGRF_EWMA_NONFAIL_THRESH:dc.w $5C ; DATA XREF: sub_62228+40r ; sub_622EE+32r ... ; Threshold above which the diagnostic is considered failing if the diagnostic is currently not indicating a failure. ; kPa DG_EGRQ_KE_EGRF_EWMA_NONFAIL_COEF:dc.w $D ; DATA XREF: sub_622EE+790r ; Filter coefficient for EWMA calculation when test is not indicating a failure. ; Coef DG_EGRQ_KE_EGRF_EWMA_PASS_SAMPLES:dc.b 9 ; DATA XREF: sub_622EE+7D6r ; Number of test samples required before the diagnostic can be considered passing. ; Counts dc.b $FF DG_EGRQ_KE_EGRF_MAX_DELTA_MAP:dc.w $66 ; DATA XREF: sub_622EE+2D8r ; Maximum range that MAP can fluctuate during test start period. ; kPa DG_EGRQ_KE_EGRF_MAX_DELTA_MPH:dc.w $200 ; DATA XREF: sub_622EE:loc_626B0r ; Max range that vehicle speed can fluctuate during the intrusive portions of the test ; MPH DG_EGRQ_KE_EGRF_MAX_NEG_RPM_CHANGE:dc.w $600 ; DATA XREF: sub_622EE+3D6r ; Max negative change in engine speed allowed during the intrusive portions of the test. ; RPM DG_EGRQ_KE_EGRF_MAX_ON_TIME_COUNTER:dc.b $B ; DATA XREF: sub_622EE+46Er ; Maximum number of execution loops the valve will be commanded open. ; Counts dc.b $FF DG_EGRQ_KE_EGRF_MAX_POS_RPM_CHANGE:dc.w $100 ; DATA XREF: sub_622EE+3CAr ; Max positive change in engine speed allowed during the intrusive portions of the test ; RPM DG_EGRQ_KE_EGRF_MAXIMUM_RPM:dc.w $2200 ; DATA XREF: sub_622EE+2D0r ; High limit of engine speed range to enable the flow test. ; RPM DG_EGRQ_KE_EGRF_MAXIMUM_TPS:dc.w $3D ; DATA XREF: sub_622EE:loc_62352r ; TPS must be below this value to enable the flow test. ; Percent DG_EGRQ_KE_EGRF_MINIMUM_RPM:dc.w $1000 ; DATA XREF: sub_622EE+2C8r ; Low limit of engine speed range to enable the flow test. ; RPM DG_EGRQ_KE_EGRF_MIN_ON_TIME_COUNTER:dc.b 3 ; DATA XREF: sub_622EE+424r ; sub_622EE+50Cr ; Minimum number of execution loops that the valve will be commanded open, ; Counts DG_EGRQ_KE_EGRF_OVER_UNDER_COUNT:dc.b 2 ; DATA XREF: sub_622EE+418r ; sub_622EE+462r ; Number of consecutive overshoot or undershoot events necessary to modify the duty cycle on-time. ; Counts DG_EGRQ_KE_EGRF_OVERSHOOT_POSITION:dc.w $1300 ; DATA XREF: sub_622EE:loc_626EEr ; Position above which the test will decrement the duty cycle on-time. ; Percent DG_EGRQ_KE_EGRF_RPM_COMPENSATION:dc.b 0 ; DATA XREF: sub_622EE:loc_62916r ; Used to choose desired RPM compensation method. START_RPM = Starting RPM, MINIMUM_RPM = Minimum RPM during test ; ENUM DG_EGRQ_KE_EGRF_SAMPLE_TIME:dc.b $20 ; DATA XREF: sub_622EE+3E8r ; Amount of time the test is in the SAMPLE_CALCULATION mode. ; Seconds DG_EGRQ_KE_EGRF_SAMPLES_AFTER_RESET:dc.b $D ; DATA XREF: sub_622EE+D0r ; sub_622EE+83Ar DG_EGRQ_KE_EGRF_SAMPLES_AFTER_STEP:dc.b $19 ; DATA XREF: sub_622EE:loc_623A6r ; sub_622EE+858r DG_EGRQ_KE_EGRF_SAMPLES_PER_TRIP:dc.b 1 ; DATA XREF: sub_622EE+DCr ; sub_622EE+846r ; Maximum number of samples per trip. ; Counts dc.b $FF DG_EGRQ_KE_EGRF_START_MAX_POSITION:dc.w $38 ; DATA XREF: sub_622EE+2C0r ; Maximum EGR starting position below which the valve is considered closed. ; Percent DG_EGRQ_KE_EGRF_STEP_DELTA:dc.w $185 ; DATA XREF: sub_622EE:loc_62A4Ar ; Minimum difference between MAPDIFF and EWMA to trigger multiple tests for step change ; kPa DG_EGRQ_KE_EGRF_STEP_MAPDIFF:dc.w $FF89 ; DATA XREF: sub_622EE+764r ; Minimum value of MAPDIFF to trigger multiple tests for step change ; kPa DG_EGRQ_KE_EGRF_STEP_SAMPLES_PER_TRIP:dc.b 5 ; DATA XREF: sub_622EE+F4r ; sub_622EE+864r ; Maximum number of samples per trip after a step change. ; Counts dc.b $FF DG_EGRQ_KE_EGRF_TEST_ENABLE_DELAY:dc.w $A0 ; DATA XREF: sub_622EE+B0r ; Length of time the throttle must be virtually closed before a flow test is allowed. ; Seconds DG_EGRQ_KE_EGRF_UNDERSHOOT_POSITION:dc.w $E00 ; DATA XREF: sub_622EE:loc_62738r ; Position below which the test will increment the duty cycle on-time. ; Percent DG_ESC_KE_ESC_NOISE_RPM_HIGH:dc.w $3C00 ; DATA XREF: DoLoopA+39Ar ; sub_64914+2Ar ; One condition to run the diagnostic is that engine speed be less than this cal. ; RPM DG_ESC_KE_ESC_CIRCUIT_ENG_RUN_TIME:dc.w $640 ; DATA XREF: sub_64B3E+2r ; If the engine run time is less than this value, then the test is to be bypassed. ; Seconds DG_ESC_KE_ESC_CIRCUIT_FAIL_SAMPLES:dc.b $18 ; DATA XREF: sub_64B3E+38r ; Number of fail samples needed to report a fail in a sample period less than KE_ESC_Samples total. ; Counts DG_ESC_KE_ESC_CIRCUIT_SAMPLES:dc.b $1E ; DATA XREF: sub_64B3E:loc_64B8Er ; Number of samples needed before a pass can be reported. ; Counts DG_ESC_KE_ESC_COOLANT_TEMP_MIN:dc.w $600 ; DATA XREF: sub_64914+16r ; sub_64C70+14r ; Minimum coolant temperature required to learn minimum noise. ; Degrees C DG_ESC_KE_ESC_FILTER_COEFF:dc.w $4CD ; DATA XREF: sub_64B9E+1Ar ; sub_64B9E+3Er ; Lag filter coefficient used in filtering the ESC noise channel. ; Scaler_0_to_1 DG_ESC_KE_ESC_INITIAL_NOISE:dc.b $80 ; DATA XREF: OS3:00064D14r ; An initial startup value for filter purposes. ; A/D Counts dc.b $FF DG_ESC_KE_ESC_NOISE_ENGINE_RUN_TIME:dc.w $640 ; DATA XREF: sub_64914+58r ; Minimum engine run time before test can be enabled. ; Seconds DG_ESC_KE_ESC_NOISE_LOW_COUNT:dc.b $18 ; DATA XREF: sub_64914+10Cr ; sub_64914+17Er ; Number of successive low noise level conditions necessary to report a fail condition. ; Counts DG_ESC_KE_ESC_NOISE_LOW_LEVEL:dc.b $11 ; DATA XREF: sub_64914:loc_64A0Er ; sub_64914:loc_64A80r ; Low noise level threshold which must be exceeded a calibratable number of times to report a fail. ; A/D Counts DG_ESC_KE_ESC_NOISE_LOW_SAMPLE_COUNT:dc.b $1E ; DATA XREF: sub_64914+128r ; sub_64914+19Ar ; Number of samples before a low noise pass can be reported. ; Counts DG_ESC_KE_ESC_NOISE_HIGH_COUNT:dc.b $FF ; DATA XREF: sub_64914:loc_64AC6r ; Number of high noise level conditions per sample size necessary to report a fail condition. ; Counts DG_ESC_KE_ESC_NOISE_HIGH_LEVEL:dc.b $FF ; DATA XREF: sub_64914+E2r ; sub_64914+156r ; High noise level threshold which must be exceeded a calibratable number of times to report a failure. ; A/D Counts DG_ESC_KE_ESC_NOISE_HIGH_SAMPLE_COUNT:dc.b 0 ; DATA XREF: sub_64914:loc_64AEEr ; Number of passes needed before a high noise pass can be reported. ; Counts DG_ESC_KE_ESC_NOISE_RPM_LOW:dc.w $2100 ; DATA XREF: sub_64914+20r ; One condition to run the diagnostic is that engine speed be greater than this cal. ; RPM DG_ESC_KE_ESC_NOISE_TPS_MIN:dc.w 0 ; DATA XREF: sub_64914:loc_64960r ; One condition to run the diagnostic is that Throttle position be greater than this cal. ; Percent DG_ESC_KE_ESC_RPM_MAX:dc.w $1380 ; DATA XREF: sub_64C70+34r ; Maximum engine speed to enable minimum noise learning. ; RPM DG_ESC_KE_ESC_RPM_MIN:dc.w $980 ; DATA XREF: sub_64C70+2Cr ; Minimum engine speed to enable minimum noise learning. ; RPM DG_ESC_KE_ESC_RUN_TIME_MIN:dc.w $640 ; DATA XREF: sub_64C70+1Er ; Minimum engine run time to enable minimum noise learning. ; Seconds DG_ESC_KE_ESC_SENSOR_INITIAL_NOISE:dc.b $40 ; DATA XREF: OS3:00064D20r dc.b $FF DG_ESC_KE_ESC_SYSTEM_VOLTAGE_MIN:dc.w $A00 ; DATA XREF: sub_64914+6Cr ; sub_64B3E+14r ... ; Minimum system voltage required to enable the circuit test. ; Volts DG_ESC_KE_IR_INSTANT_MAX:dc.b $FE ; DATA XREF: sub_648CC+10r ; Any IR instant knock exceeding this threshold is considered too long. ; A/D Counts DG_ESC_KE_IR_KNOCK_MAX:dc.b 1 ; DATA XREF: sub_648CC+20r ; Number of fail samples needed to report a fail in a sample period less than KE_IR_Test_Max. ; Counts DG_ESC_KE_IR_TEST_MAX:dc.b 1 ; DATA XREF: sub_648CC+28r ; sub_648CC:loc_64902r ; Number of samples needed before the IR counters will be reset for the next test cycle. ; Counts dc.b $FF DI_FAN_KE_FAND_DELTA_FAN_SPEED_COEF:dc.w $100 ; DATA XREF: sub_66F48+40r ; The filter coefficient for the delta fan speed variable used by the system performance test. ; 0-1 DI_FAN_KE_FAND_IAT_MIN:dc.w $FF4D ; DATA XREF: sub_6720E+7Ar ; The minimum allowable intake air temperature to enable the tests. ; Degrees C DI_FAN_KE_FAND_PUMP_OUT_RPM_MIN:dc.w $2300 ; DATA XREF: sub_6720E+10Cr ; The minimum RPM required to pump oil out of the working chamber. ; RPM DI_FAN_KE_FAND_PUMP_OUT_TIME:dc.w $47E0 ; DATA XREF: sub_6720E+114r ; Length of time above which the fan clutch oil should have completed being pumped out. ; Seconds DI_FAN_KE_FAND_SYS_VOLTAGE_MIN:dc.b $55 ; DATA XREF: sub_6720E:loc_6727Cr ; The minimum allowable system voltage to enable the tests. ; Volts dc.b $FF DG_FAN_KE_FAND_DELTA_FAN_SPEED_LIM:dc.w $1400 ; DATA XREF: sub_66F48+50r ; Maximum error allowed before incrementing the fail counter. ; RPM DG_FAN_KE_FAND_ENGINE_SPEED_DELTA_MAX:dc.w $500 ; DATA XREF: sub_66ED2+28r ; Maximum allowable change in the engine speed to enable the performance test. ; RPM DG_FAN_KE_FAND_FAN_SPEED_MAX:dc.w $2000 ; DATA XREF: sub_67010+42r ; Threshold of fan speed above which is considered high. ; RPM DG_FAN_KE_FAND_OVERSPEED_FAIL_LIM:dc.w 2 ; DATA XREF: sub_6716E+5Ar ; Number of fails counts required to fail the overspeed test. ; Unitless DG_FAN_KE_FAND_OVERSPEED_SMPL_LIM:dc.w 2 ; DATA XREF: sub_6716E+7Er ; Number of samples required to pass the overspeed test. ; Unitless DG_FAN_KE_FAND_OVERSPEED_THRESHOLD:dc.w $280 ; DATA XREF: sub_6716E:loc_671ACr ; Threshold of fan speed above which is unsafe. ; Hertz DG_FAN_KE_FAND_SENSOR_FAIL_LIM:dc.w $384 ; DATA XREF: sub_670C2+5Ar ; Number of fails counts required to fail the fan speed sensor circuit test. ; Unitless DG_FAN_KE_FAND_SENSOR_FREQ_MIN:dc.w 4 ; DATA XREF: sub_670C2:loc_67100r ; Minimum fan speed frequency below which the speed input is considered missing. ; Hertz DG_FAN_KE_FAND_SENSOR_SMPL_LIM:dc.w $4B0 ; DATA XREF: sub_670C2+82r ; Number of samples required to pass the fan speed sensor circuit test. ; Unitless DG_FAN_KE_FAND_SPEEDHI_FAIL_LIM:dc.w $320 ; DATA XREF: sub_67010+5Er ; Number of fail counts required to fail the test. ; Unitless DG_FAN_KE_FAND_SPEEDHI_RPM_MAX:dc.w $4000 ; DATA XREF: sub_67010+24r ; Maximum engine speed that will allow evaluation of the fan speed. ; RPM DG_FAN_KE_FAND_SPEEDHI_RPM_MIN:dc.w $1C00 ; DATA XREF: sub_67010+1Ar ; Minimum engine speed that will allow evaluation of the fan speed. ; RPM DG_FAN_KE_FAND_SPEEDHI_SMPL_LIM:dc.w $3E8 ; DATA XREF: sub_67010+8Er ; Number of samples required to pass the fan speed too high test. ; Unitless DG_FAN_KE_FAND_STABLE_SPEED_TIME:dc.b $64 ; DATA XREF: sub_66ED2+54r ; Amount of time that the speed command must remain stable to perform the system performance test. ; Seconds dc.b $FF DG_FAN_KE_FAND_SYSPERF_FAIL_LIM:dc.w $64 ; DATA XREF: sub_66F48+6Cr ; Number of fails counts required to fail the system performance test. ; Unitless DG_FAN_KE_FAND_SYSPERF_RPM_MAX:dc.w $4000 ; DATA XREF: sub_66ED2+32r ; Maximum allowable engine speed to enable the system performance test. ; RPM DG_FAN_KE_FAND_SYS_SMPL_LIM:dc.w $7D ; DATA XREF: sub_66F48+9Cr ; Number of samples required to pass the system performance test. ; Unitless DG_FASD_KEFADD_B_FASD_DIAGNOSTICENABLED:dc.b 1 ; DATA XREF: sub_67410+14r ; Global Diagnostic Enabling flag. ; BOOLEAN dc.b $FF DG_FASD_KEFADD_CNT_FASD_ABORTTIMEMAX:dc.w $64 ; DATA XREF: sub_67410+1482r ; Maximum number of samples between intrusive test segments when an abort of a test segment occurs. ; Unitless DG_FASD_KEFADD_CNT_FASD_ACCUMLEARNMIN:dc.w $F0 ; DATA XREF: sub_67410+1AD2r ; sub_67410+1CCEr ... ; Min data count of accumulator learning before first report is allowed to prevent premature first report. ; Unitless DG_FASD_KEFADD_CNT_FASD_MAXPURGECOUNT:dc.w $1770 ; DATA XREF: sub_67410+1A68r DG_FASD_KEFADD_CNT_FASD_MAXSEGMENTFAILS:dc.b 3 ; DATA XREF: sub_67410+A34r ; An intrusive test failure is reported if the number of failing segments reaches this threshold. ; Unitless DG_FASD_KEFADD_CNT_FASD_MAXTESTSEGMENTS:dc.b 5 ; DATA XREF: sub_67410+A44r ; sub_67410+A6Cr ... ; The intrusive test is stopped if this number of segments occurs without a passing or failing result. ; Unitless DG_FASD_KEFADD_CNT_FASD_READYTOREPORTMIN:dc.b $14 ; DATA XREF: sub_67410+1ABCr ; sub_67410+1CBAr ; The number of continuously accumulated sample counts required before allowing a report to the data manager. ; Unitless DG_FASD_KEFADD_CNT_FASD_STABLESMPLCNTMIN:dc.b 3 ; This number of samples are not counted when a cell change occurs during the intrusive test segment. ; Unitless DG_FASD_KEFADD_CNT_FASD_STALEACCUMMAX:dc.w $FFFF ; DATA XREF: sub_67360+5Cr ; sub_67410+16B2r DG_FASD_KEFADD_CNT_FASD_WAITTIMEMAX:dc.w $12C ; DATA XREF: sub_67410+1462r ; Maximum number of samples between intrusive test segments when a normal completion of a test segment occurs. ; Unitless DG_FASD_KEFADD_CNT_MAXINTRUSVATTEMPT:dc.b $14 ; DATA XREF: sub_67410+C1Cr ; Data will be discarded if the the purge valve is open above this threshold and the vent valve is closed. ; Unitless DG_FASD_KEFADD_CNT_MAXSEGMENTPASSES:dc.b 3 ; DATA XREF: sub_67410+A64r DG_FASD_KEFADD_CNT_OVERALLSAMPLESMIN:dc.w $FFFF ; DATA XREF: sub_67410+882r ; The number of samples required (after the minimum cell learning) before a passive result can be used. ; Unitless DG_FASD_KEFADD_CNT_SEGMENTSMPLCNTMIN:dc.w $3C ; DATA XREF: sub_67410:loc_682DAr ; This number of accumulated samples is required before the intrusive segment is considered complete. ; Unitless DG_FASD_KEFADD_CNT_STABILITYSAMPLMIN:dc.b 3 ; DATA XREF: sub_67410+218r ; sub_67410+226r ; Calibration used to record the number of samples since the fuel trim cell number has changed. ; Unitless dc.b $FF DG_FASD_KEFADD_CNT_STALEACCUMINITMAX:dc.w $FFFF ; DATA XREF: sub_67410+16BCr DG_FASD_KEFADD_CNT_STALENONPGINITMAX:dc.w $FFFF ; DATA XREF: sub_67410+1964r DG_FASD_KEFADD_CNT_STALENONPURGEDEC:dc.w 2 ; DATA XREF: sub_67410+1874r ; Amount the non-purge accumulator stale data counter is decremented if a sample is used (not discarded). ; Unitless DG_FASD_KEFADD_CNT_STALENONPURGEMAX:dc.w $FFFF ; DATA XREF: sub_67360+52r ; sub_67410+195Ar DG_FASD_KEFADD_CNT_WARMCOOLSAMPLEMIN:dc.w $FFFF ; DATA XREF: sub_67410+890r DG_FASD_KEFADD_DM_FASD_ENGAIRFLOWHIGH:dc.w $7D00 ; DATA XREF: sub_67410+A4r ; Data will be discarded if the air flow is above this threshold. ; Grams/Sec DG_FASD_KEFADD_DM_FASD_PGENGAIRFLOWHIGH:dc.w $7D00 ; DATA XREF: sub_67410+616r ; An airflow value above this threshold will cause the intrusive diagnostic to be disabled. ; Grams/Sec DG_FASD_KEFADD_DM_PURGENGAIRFLOWLOW:dc.w $180 ; DATA XREF: sub_67410+60Er ; An airflow value below this threshold will cause the intrusive diagnostic to be disabled. ; Grams/Sec DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL:dc.w $4000 ; DATA XREF: sub_67360:loc_6736Ar ; sub_67410+31Er ... ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless DG_FASD_KEFADD_K_FASD_ACTIVEACCUMGAIN:dc.w $106 ; DATA XREF: sub_67410+158Cr ; sub_67410+1634r ... ; EWMA gain used to filter the currently active long term fuel trim cell data. ; Unitless DG_FASD_KEFADD_K_FASD_FUELCTRLOVERRIDE:dc.w $7AE ; DATA XREF: sub_67360+94r ; sub_67410+C92r DG_FASD_KEFADD_K_FASD_NONPURGEACCUMGAIN:dc.w $666 ; DATA XREF: sub_67410+186Ar ; sub_67410+18EEr ... ; EWMA gain used to filter the non-purge long term fuel trim cell data during both the passive and intrusive vapor tests. ; Unitless DG_FASD_KEFADD_K_FASD_SHORTTERMGAIN:dc.w $CCD ; DATA XREF: sub_67410+1596r ; sub_67410+161Er ... ; EWMA gain used to filter the short term integrator data. ; Unitless DG_FASD_KEFADD_K_FASD_SHORTTERMLEANLIM:dc.w $3000 ; DATA XREF: sub_67410+1B22r ; Failure threshold for the short term accumulator while non-intrusive purge activity is occurring. ; Unitless DG_FASD_KEFADD_K_FASD_SHORTTERMRICHLIM:dc.w $5000 ; DATA XREF: sub_67410+1B54r ; Short term accumulator threshold, while non-intrusive purge activity is occurring, to determine an excess vapor test is needed. ; Unitless DG_FASD_KEFADD_K_FASD_SHRTNONPRGRICHLIM:dc.w $5000 ; DATA XREF: sub_67410+9D8r ; sub_67410+B3Cr ; Short term accumulator threshold, while intrusive purge activity is occurring, to determine if excess vapor test is failing. ; Unitless DG_FASD_KEFADD_M_FASD_ACCUMPURGETHRSHLD:dc.l $112A880 ; DATA XREF: sub_67410+3AEr ; Threshold of accumulated purge flow required to reduce the excess purge vapor condition before continuing intrusive testing. ; Grams DG_FASD_KEFADD_N_FASD_PURGERPMMIN:dc.w $780 ; DATA XREF: sub_67410+606r ; An engine speed value below this threshold will cause the intrusive diagnostic to be disabled. ; RPM DG_FASD_KEFADD_N_FASD_RPM_HIGH:dc.w $8200 ; DATA XREF: sub_67410+86r ; Data will be discarded if the engine speed is above this threshold. ; RPM DG_FASD_KEFADD_N_FASD_RPM_LOW:dc.w $800 ; DATA XREF: sub_67410+7Cr ; Data will be discarded if the engine speed is below this threshold. ; RPM DG_FASD_KEFADD_P_FASD_BAROMETERLOW:dc.w $3B33 ; DATA XREF: sub_67410+94r ; Data will be discarded if the barometric pressure is below this threshold. ; kPa DG_FASD_KEFADD_P_FASD_PURGE_MAP_HIGH:dc.w $5400 ; DATA XREF: sub_67410+626r ; An manifold pressure value above this threshold will cause the intrusive diagnostic to be disabled. ; kPa DG_FASD_KEFADD_P_MANIFOLDPRESSUREHIGH:dc.w $5400 ; DATA XREF: sub_67410+DCr ; Data will be discarded if the manifold pressure is above this threshold. ; kPa DG_FASD_KEFADD_P_MANIFOLDPRESSURELOW:dc.w $C00 ; DATA XREF: sub_67410+D4r ; Data will be discarded if the manifold pressure is below this threshold. ; kPa DG_FASD_KEFADD_PCT_FASD_PURGEOPENMIN:dc.w $19A ; DATA XREF: sub_67410+E8r ; sub_67410+1D8r ... ; Data will be discarded if the purge valve is open above this threshold and the vent valve is closed. ; Percent DG_FASD_KEFADD_PCT_PGOVERRIDEMINLIM:dc.w 0 ; DATA XREF: sub_67410:loc_681F4r ; During intrusive test, purge valve is closed to less than or equal to this limit. ; Percent DG_FASD_KEFADD_T_BLENDINGOPENMAX:dc.b $A ; DATA XREF: sub_67410+119Cr DG_FASD_KEFADD_T_FASD_BLENDDURATIONMAX:dc.b $A ; DATA XREF: sub_67410+109Ar DG_FASD_KEFADD_T_FASD_COOLANTTEMPHIGH:dc.w $DFF ; DATA XREF: sub_67410+72r ; Data will be discarded if the coolant temperature is above this threshold. ; Deg C DG_FASD_KEFADD_T_FASD_COOLANTTEMPLOW:dc.w $FC00 ; DATA XREF: sub_67410+68r ; Data will be discarded if the coolant temperature is below this threshold. ; Deg C DG_FASD_KEFADD_T_FASD_COOLANTTEMPMIN:dc.w $FC00 ; DATA XREF: sub_67410+84Cr ; A calibrated number of samples above this minimum are required before a passive vapor test is allowed. ; Deg C DG_FASD_KEFADD_T_FASD_CTLREQDURATIONMAX:dc.b $28 ; DATA XREF: sub_67410+FFEr DG_FASD_KEFADD_T_FASD_DECIMALTIMESTEP:dc.b 1 ; DATA XREF: sub_67410:loc_68382r ; The minor time increment used by the timers. Equals the execution loop time interval. ; Seconds DG_FASD_KEFADD_T_FASD_EXTENDPGDURATION:dc.w $2EE0 ; DATA XREF: sub_67410+11ECr DG_FASD_KEFADD_T_FASD_IAT_HIGH:dc.w $F32 ; DATA XREF: sub_67410+B4r ; Data will be discarded if the intake air temperature is above this threshold. ; Deg C DG_FASD_KEFADD_T_FASD_IAT_LOW:dc.w 0 ; DATA XREF: sub_67410+ACr ; Data will be discarded if the intake air temperature is below this threshold. ; Deg C DG_FASD_KEFADD_T_FASD_NONSELDURATIONMAX:dc.b $14 ; DATA XREF: sub_67410+1140r dc.b $FF DG_FASD_KEFADD_T_FASD_PASSVONLYDURATION:dc.w $FFFF ; DATA XREF: sub_67410+1200r ; The amount of time the diagnostic will remain in the extended purging state after a passive only vapor test has occurred. ; Seconds DG_FASD_KEFADD_T_FASD_SEGMNTDURATIONMAX:dc.w $A0 ; DATA XREF: sub_67410+10E2r ; The maximum time allowed for an intrusive segment. The intrusive segment will abort if this threshold is reached. ; Seconds DG_FASD_KEFADD_T_FASD_VALVCLSDDURATION:dc.b $28 ; DATA XREF: sub_67410+104Cr ; The intrusive segment will abort if this threshold is reached before the purge valve closes to a non-purging level. ; Seconds dc.b $FF DG_FASD_KEFADD_V_FASD_VEHSPEEDHIGH:dc.w $2900 ; DATA XREF: sub_67410+CCr ; Data will be discarded if the vehicle speed is above this threshold. ; MPH DG_FASD_KEFADD_CNT_EXTENDPASSCNTMIN:dc.w $1E ; DATA XREF: sub_67410+1BC4r ; Number of continuous passing report attempts required before allowing an actual pass report during the extended purging period. ; Unitless DG_FASD_KEFADD_CNT_FASD_STALEACCUMDEC:dc.w 2 ; DATA XREF: sub_67410+15A0r ; Amount the active accumulator stale data counter is decremented if a sample is used (not discarded). ; Unitless DG_FASD_KEFADD_DM_FASD_ENGAIRFLOWLOW:dc.w $80 ; DATA XREF: sub_67410+9Cr ; Data will be discarded if the air flow is below this threshold. ; Grams/Sec DG_FASD_KEFADD_P_FASD_PURGE_MAP_LOW:dc.w $C00 ; DATA XREF: sub_67410+61Er ; An manifold pressure value below this threshold will cause the intrusive diagnostic to be disabled. ; kPa DG_FASD_KTFADD_K_FASD_NONPURGERICHLIM:dc.w $35C3 ; DATA XREF: sub_67410+2F2r ; Vector table for the rich failure threshold for non-purging cells relative to the fuel ethanol percentage. ; Unitless dc.b $35 ; 5 dc.b $C3 ; ? dc.b $35 ; 5 dc.b $C3 ; ? dc.b $35 ; 5 dc.b $C3 ; ? dc.b $35 ; 5 dc.b $C3 ; ? dc.b $35 ; 5 dc.b $C3 ; ? dc.b $35 ; 5 dc.b $C3 ; ? dc.b $35 ; 5 dc.b $C3 ; ? dc.b $35 ; 5 dc.b $C3 ; ? dc.b $35 ; 5 dc.b $C3 ; ? dc.b $35 ; 5 dc.b $C3 ; ? DG_FASD_KTFADD_K_FASD_LONGTERMTRIMRICH:dc.w $351F ; DATA XREF: sub_67410+302r ; Vector table for the rich threshold to run a vapor test relative to the fuel ethanol percentage. ; Unitless dc.b $35 ; 5 dc.b $1F dc.b $35 ; 5 dc.b $1F dc.b $35 ; 5 dc.b $1F dc.b $35 ; 5 dc.b $1F dc.b $35 ; 5 dc.b $1F dc.b $35 ; 5 dc.b $1F dc.b $35 ; 5 dc.b $1F dc.b $35 ; 5 dc.b $1F dc.b $35 ; 5 dc.b $1F dc.b $35 ; 5 dc.b $1F DG_FASD_KTFADD_K_FASD_LONGTERMTRIMLEAN:dc.w $4F5C ; DATA XREF: sub_67410+310r ; Vector table for the lean failure threshold relative to the fuel ethanol percentage. ; Unitless dc.b $4F ; O dc.b $5C ; \ dc.b $4F ; O dc.b $5C ; \ dc.b $4F ; O dc.b $5C ; \ dc.b $4F ; O dc.b $5C ; \ dc.b $4F ; O dc.b $5C ; \ dc.b $4F ; O dc.b $5C ; \ dc.b $4F ; O dc.b $5C ; \ dc.b $4F ; O dc.b $5C ; \ dc.b $4F ; O dc.b $5C ; \ dc.b $4F ; O dc.b $5C ; \ DG_FASD_KTFADD_PCT_FASD_VALVERAMPSTEP:dc.w 5 ; DATA XREF: sub_67360+A2r ; sub_67410+DBAr ; Step size, based on the starting valve position, used while closing the purge valve during the intrusive test. ; Percent dc.b 0 dc.b $80 ; ? dc.b 1 dc.b 0 dc.b 1 dc.b $80 ; ? dc.b 2 dc.b 0 dc.b 2 dc.b $80 ; ? dc.b 3 dc.b 0 dc.b 3 dc.b $80 ; ? dc.b 4 dc.b 0 dc.b 4 dc.b $80 ; ? dc.b 5 dc.b 0 DG_FASD_KTFADD_DM_FASD_MAXPURGEFLOW:dc.b 0 ; DATA XREF: sub_67410:loc_67754r dc.b $2F ; / dc.b $43 ; C dc.b $50 ; P dc.b $57 ; W dc.b $58 ; X dc.b $59 ; Y dc.b $5A ; Z dc.b $5A ; Z dc.b $FF DG_FASD_KTFADD_K_FASD_THRESHLDTEMPMULT:dc.b $66 ; DATA XREF: sub_67410:loc_677B0r ; Used to compensate the accumulated purge flow threshold for the variation of excess purge vapor generation due to temperature. ; Unitless dc.b $66 ; f dc.b $66 ; f dc.b $66 ; f dc.b $66 ; f dc.b $66 ; f dc.b $66 ; f dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? DI_FASD_KE_FASD_NUMBER_OF_BANKS:dc.b 2 ; DATA XREF: sub_67410:loc_6751Er ; sub_691DA:loc_691F6r ... ; The number of engineBanks that have independant fuel control. ; Unitless dc.b $FF DI_FASD_KAFADD_CNT_FASD_MINSMPLSINSTART:dc.w $96 ; DATA XREF: sub_67410+456r ; Number of samples required to ensure the fuel trim value represents the current conditions for that cell. ; Counts dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? DI_FASD_KAFADD_B_FASD_INTRUSIVECELLSET:dc.b 1 ; DATA XREF: sub_67410+1A2r ; An intrusive test will not be enabled if the table is FALSE for that cell. ; BOOLEAN dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b $FF DI_FASD_KAFADD_E_FASD_SELECTCELLSET:dc.b 1 ; DATA XREF: sub_67410:loc_675CAr ; Use of thecell in the FASD diagnostic. 0 = Not Selected, 1 = Selected Purge Cell 2 = Selected Non Purge Cell ; 0_1_2 dc.b 1 word_168F0: dc.w $101 ; DATA XREF: sub_67410:loc_678EEr ; sub_67410+12E6r dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 2 dc.b 2 dc.b 2 dc.b $FF DI_FASD_KAFADD_I_FASD_MATCHNONPURGE:dc.b $15 ; DATA XREF: sub_67410+1214r ; Translate from the current cell number to the cell number after the purge valve is closed. ; SHORTCARD dc.b $15 dc.b $15 dc.b $15 dc.b $16 dc.b $16 dc.b $16 dc.b $16 dc.b $16 dc.b $16 dc.b $16 dc.b $16 dc.b $16 dc.b $16 dc.b $16 dc.b $16 dc.b $14 dc.b $14 dc.b $14 dc.b $14 dc.b $14 dc.b $15 dc.b $16 dc.b $FF DI_FASD_KAFADD_K_FASD_NORMALIZELEAN:dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 word_1694C: dc.w $4000 ; DATA XREF: sub_67410:loc_67942r ; sub_67410+1286r dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 DI_FASD_KAFADD_K_FASD_NORMALIZERICH:dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 DI_FASD_KEFADD_T_FASD_MINIATENABLE:dc.w 0 ; DATA XREF: sub_67410+C0r ; FASD will be disabled if the min IAT is below this threshold. ; Degrees C DI_FASD_KEFADD_FASD_FUELLEVELMIN:dc.w $200 ; DATA XREF: sub_692E0:loc_69370r ; Minimum fuel level at which the FASD will allow lean system diagnostic to continue. ; Percent DI_FASD_KEFADD_FUELLEVELLOWTIME:dc.w $640 ; DATA XREF: sub_692E0+B0r ; Determines how long the fuel level has to be below its minimum threshold before the diagnostic will be disabled. ; Seconds DI_FASD_KEFADD_MINIAT_MAF_CTR_MIN:dc.w $2EE0 ; DATA XREF: sub_692E0+18Cr ; MAF must be greater than KeFADD_MAF_To_Update_MinIAT for at least this many 100msec samples for Min IAT to update. ; Counts DI_FASD_KEFADD_MAF_TO_UPDATE_MINIAT:dc.w $A00 ; DATA XREF: sub_692E0+168r ; Min IAT will be updated when MAF is greater than this threshold and Long Soak is FALSE. ; Grams/Sec DI_FASD_KEFADD_LONG_SOAK_TIME_MIN:dc.l $697800 ; DATA XREF: sub_692E0+142r ; Soak time less than this will intialize FASD min IAT to NVMEM min IAT from previous trip. ; Seconds DI_FASD_KEFADD_TIME_SINCE_PWRUP_MAX:dc.l off_0+$A0 ; DATA XREF: sub_692E0+136r ; Time since PCM powerup must be less than or equal to this to initialize FASD min IAT. ; Seconds DI_FASD_KEFADD_IAT_RATE_LIMIT:dc.w 1 ; DATA XREF: sub_692E0:loc_693D6r ; sub_692E0+108r ... ; Max amount that raw IAT is allowed to change per 100msec. for use in min IAT. ; Degrees_C DG_FFS_KE_FFSD_COMP_FAIL_LIM:dc.w $19 ; DATA XREF: sub_696E2+B8r ; Maximum number of failure counts required to fail the test. ; Unitless DG_FFS_KE_FFSD_COMP_SHORTED_HI_THRESH:dc.b $9B ; DATA XREF: sub_6955E:loc_69584r ; The threshold above which the flex fuel composition sensor frequency is considered out of range high. ; Hertz DG_FFS_KE_FFSD_COMP_SHORTED_LO_THRESH:dc.b $2D ; DATA XREF: sub_695C0:loc_695E6r ; The threshold below which the flex fuel composition sensor frequency is considered out of range low. ; Hertz DG_FFS_KE_FFSD_COMP_SHRTHI_FAIL_LIM:dc.b 0 ; DATA XREF: sub_6955E+48o ; Number of failed out of range high tests within a sample size that will report a failure. ; Unitless dc.b $64 ; d DG_FFS_KE_FFSD_COMP_SHRTHI_SMPL_LIM:dc.b 0 ; DATA XREF: sub_6955E+4Eo ; Number of out of range high tests that make up a sample size. ; Unitless dc.b $C8 ; ? DG_FFS_KE_FFSD_COMP_SHRTLO_FAIL_LIM:dc.b 1 ; DATA XREF: sub_695C0+48o ; Number of failed out of range low tests within a sample size that will report a failure. ; Unitless dc.b $68 ; h DG_FFS_KE_FFSD_COMP_SHRTLO_SMPL_LIM:dc.b 1 ; DATA XREF: sub_695C0+4Eo ; Number of out of range low tests that make up a sample size. ; Unitless dc.b $A4 ; ? DG_FFS_KE_FFSD_COMP_SMPL_LIM:dc.w $1E ; DATA XREF: sub_696E2+D4r ; Total number of sample counts required to pass the composition test. ; Unitless DG_FFS_KE_FFSD_RAT_TEMP_DIFF:dc.w $380 ; DATA XREF: sub_697CC+18r ; Maximum temperature difference allowed for enabling the FFSD rationality test. ; Degrees DG_FFS_KE_FFSD_TEMP_SHORTED_HI_THRESH:dc.w $10A ; DATA XREF: sub_69622:loc_69646r ; The threshold above which the flex fuel temperature sensor active time is considered out of range high. ; Milliseconds DG_FFS_KE_FFSD_TEMP_SHORTED_LO_THRESH:dc.w $26 ; DATA XREF: sub_69682:loc_696A6r ; The threshold below which the flex fuel temperature sensor active time is considered out of range low. ; Milliseconds DG_FFS_KE_FFSD_TEMP_SHRTHI_FAIL_LIM:dc.b 0 ; DATA XREF: sub_69622+46o ; Number of failed out of range high tests within a sample size that will report a failure. ; Unitless dc.b $64 ; d DG_FFS_KE_FFSD_TEMP_SHRTHI_SMPL_LIM:dc.b 0 ; DATA XREF: sub_69622+4Co ; Number of out of range high tests that make up a sample size. ; Unitless dc.b $C8 ; ? DG_FFS_KE_FFSD_TEMP_SHRTLO_FAIL_LIM:dc.b 0 ; DATA XREF: sub_69682+46o ; Number of failed out of range low tests within a sample size that will report a failure. ; Unitless dc.b $64 ; d DG_FFS_KE_FFSD_TEMP_SHRTLO_SMPL_LIM:dc.b 0 ; DATA XREF: sub_69682+4Co ; Number of out of range low tests that make up a sample size. ; Unitless dc.b $C8 ; ? DG_FFS_KV_FFSD_FUEL_COMPOSITION:dc.b $6A ; DATA XREF: sub_696E2:loc_69714r ; The maximum upper limit allowed for the flex fuel sensor frequency value based on intake air temperature. ; Hertz dc.b $7E ; ~ dc.b $7E ; ~ dc.b $7E ; ~ dc.b $7E ; ~ dc.b $84 ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? dc.b $8A ; ? DI_FFS_KE_FFSD_TIME_SINCE_ENG_RUN:dc.w $1F4 ; DATA XREF: sub_6983E:loc_698F6r ; sub_6983E:loc_6995Er DI_FFS_KE_FFSD_MIN_ENG_RUN_TIME:dc.l off_12C0 ; DATA XREF: sub_6983E+38r ; Minimum amount of time that the engine must be running before the FFSD will be enabled. ; Seconds DI_FFS_KE_FFSD_SYSTEM_VOLT_MIN:dc.b $6E ; DATA XREF: sub_6983E+40r ; Lower limit for the system voltage below which the FFSD is not enabled. ; Volts DI_FFS_KE_FFSD_SYSTEM_VOLT_MAX:dc.b $B4 ; DATA XREF: sub_6983E+48r ; Upper limit for the system voltage above which the FFSD is not enabled. ; Volts DG_FUEL_TRIM_KE_FTRM_EXCESS_PURGE_PRESENT_LIM:dc.b 4 ; DATA XREF: OS3:00069DFEr ; Limits the number of purge tests per trip by limiting the number of tests that have indicated an excess amount of purge. ; Unitless DG_FUEL_TRIM_KE_FTRM_LEAN_TEST_FAIL_LIMIT:dc.b $19 ; DATA XREF: OS3:00069ED2r ; Determines how long the system can be lean before a lean failure is reported to the Diagnostic Executive. ; Unitless DG_FUEL_TRIM_KE_FTRM_NORMAL_PURGE_PRESENT_LIM:dc.b 6 ; DATA XREF: OS3:00069DE6r ; Limits the number of purge tests per trip by limiting the number of tests that have indicated normal amounts of purge. ; Unitless DG_FUEL_TRIM_KE_FTRM_PURGE_TEST_REQUEST_LIM:dc.b $FF ; DATA XREF: OS3:00069DF2r ; Limits the number of purge tests per trip by limiting the number of purge test requests. ; Unitless DG_FUEL_TRIM_KE_FTRM_RICH_TEST_FAIL_LIMIT:dc.b 4 ; DATA XREF: OS3:0006A004r ; Determines how long the system can be rich before a rich failure is reported to the Diagnostic Executive. ; Unitless DG_FUEL_TRIM_KE_FTRM_SHORT_TERM_SAMPLE_COUNT:dc.b 1 ; DATA XREF: OS3:00069BEEr ; Determines how many samples will be collected and used in the short term fuel trim average calculations. ; Unitless DG_FUEL_TRIM_KE_FTRM_SHORT_TERM_TRIM_LEAN:dc.b $66 ; DATA XREF: OS3:00069EB0r ; Determines at what point the short term fuel trim average is considered to be lean. ; Unitless DG_FUEL_TRIM_KE_FTRM_SHORT_TERM_TRIM_RICH:dc.b $9A ; DATA XREF: OS3:00069FE2r ; Determines at what point the short term fuel trim average is considered to be rich. ; Unitless DG_FUEL_TRIM_KE_FTRM_WAIT_TIME_MAX:dc.w $64 ; DATA XREF: OS3:00069B5Cr ; Maximum time the diagnostic will wait before executing after excess purge has been detected. ; Seconds DG_HSCR_KE_HSCR_STARTUP_TEMP_DIFF:dc.w $180 ; DATA XREF: sub_6AB0C+32r DG_HSCR_KE_HSCR_IAT_ENABLE:dc.w $180 ; DATA XREF: sub_6AB0C+3Er ; The threshold above which the intake air temperature must be,to enable the HSCR diagnostic. ; Degrees_C DG_HSCR_KE_HSCR_VEHICLE_SPEED_MIN:dc.w $780 ; DATA XREF: sub_6AB0C+4Ar ; The threshold above which the vehicle speed must be to increment the HSCR vehicle speed time. ; MPH DG_HSCR_KE_HSCR_VEHICLE_DRIVE_TIME_MIN:dc.w $190 ; DATA XREF: sub_6AB0C+5Cr ; The threshold above which the HSCR vehicle speed time must be to enable the comparison of powerup IAT with min IAT. ; Seconds DG_HSCR_KE_HSCR_IAT_DROP_MAX:dc.w $4D ; DATA XREF: sub_6AB0C+6Cr DI_HSCR_KE_HSCR_TIME_SINCE_ENG_RUN:dc.w $258 ; DATA XREF: sub_6ABEA+52r ; Minimum amount of time that has passed since the engine was last turned off. ; Minutes DG_IAT_KE_IATD_ENG_RUN_TIME_HIGH_MIN:dc.b $78 ; DATA XREF: sub_6AC86+20r ; Minimum engine run time threshold to record a short to high fault ; Seconds DG_IAT_KE_IATD_ENG_RUN_TIME_LOW_MIN:dc.b $2D ; DATA XREF: sub_6AC86+178r ; Minimum engine run time threshold to record a short to low fault ; Seconds DG_IAT_KE_IATD_INT_SHORT_HIGH_FAIL_LIM:dc.w $32 ; DATA XREF: sub_6AC86+B4r ; Number of failed intermittent short to high tests that will report an intermittent failure ; Unitless DG_IAT_KE_IATD_INT_SHORT_HIGH_SMPL_LIM:dc.w $3E8 ; DATA XREF: sub_6AC86+D4r ; Number of intermittent short high tests that make up a sample size ; Unitless DG_IAT_KE_IATD_INT_SHORT_LOW_FAIL_LIM:dc.w $32 ; DATA XREF: sub_6AC86+20Ar ; Number of failed intermittent short to low tests that will report an intermittent failure ; Unitless DG_IAT_KE_IATD_INT_SHORT_LOW_SMPL_LIM:dc.w $3E8 ; DATA XREF: sub_6AC86+22Ar ; Number of intermittent short low tests that make up a sample size ; Unitless DG_IAT_KE_IATD_SHORT_HIGH_FAIL_LIM:dc.w $19 ; DATA XREF: sub_6AC86+ECr ; Number of failed short to high tests within a sample size that will report a failure ; Unitless DG_IAT_KE_IATD_SHORT_HIGH_SMPL_LIM:dc.w $32 ; DATA XREF: sub_6AC86+134r ; Number of IAT short high tests that make up a sample size ; Unitless DG_IAT_KE_IATD_SHORT_LOW_FAIL_LIM:dc.w $19 ; DATA XREF: sub_6AC86+242r ; Number of failed short to low tests within a sample size that will report a failure ; Unitless DG_IAT_KE_IATD_SHORT_LOW_SMPL_LIM:dc.w $32 ; DATA XREF: sub_6AC86+28Ar ; Number of IAT short low tests that make up a sample size ; Unitless DG_IAT_KE_IATD_SHORTED_HIGH_THRESH:dc.w $13D7 ; DATA XREF: sub_6AC86+8r ; The threshold above which the IAT sensor is considered shorted high ; Percent DG_IAT_KE_IATD_SHORTED_LOW_THRESH:dc.w $24 ; DATA XREF: sub_6AC86+160r ; The threshold below which the IAT sensor is considered opened or shorted to ground ; Percent DI_IAT_KE_IATD_SHORT_HIGH_ECT_MIN:dc.w $600 ; DATA XREF: sub_6AF7C+52r ; Minimum coolant temperature to fail the IAT short to high test. ; Degrees_C DI_IAT_KE_IATD_SHORT_HIGH_MAF_MAX:dc.w $780 ; DATA XREF: sub_6AF7C+5Er ; Maximum mass air flow threshold to fail the IAT short to high test. ; Grams/Second DI_IAT_KE_IATD_SHORT_HIGH_VSS_MAX:dc.w $380 ; DATA XREF: sub_6AF7C+6Ar ; Maximum vehicle speed threshold to fail the IAT short to high test. ; Miles/Hour DI_IAT_KE_IATD_SHORT_LOW_ECT_MAX:dc.w $C80 ; DATA XREF: sub_6AF7C+88r ; Maximum coolant temperature to fail the IAT short to low test. ; Degrees_C DI_IAT_KE_IATD_SHORT_LOW_VSS_MIN:dc.w $C80 ; DATA XREF: sub_6AF7C+94r ; Minimum vehicle speed threshold to fail the IAT short to low test. ; Miles/Hour DG_ICAT_KE_CAT_EWMA_FILTER_COEF:dc.b $1A ; DATA XREF: sub_6B602+34Er ; Exponentially weighted moving average filter coefficient. ; Coef dc.b $FF DG_ICAT_KE_CAT_AFT1_TRANSITION_TIME_MAX:dc.w $348 ; DATA XREF: sub_6B156:loc_6B29Cr ; Maximum allowed duration for Air/Fuel transition 1. ; Seconds DG_ICAT_KE_CAT_AFT2_TRANSITION_TIME_MAX:dc.w $258 ; DATA XREF: sub_6B602+6Er ; Maximum allowed duration for Air/Fuel transition 2. ; Seconds DG_ICAT_KE_CAT_HIGH_OSC_TIME_DEFAULT:dc.w $4B0 ; DATA XREF: sub_6B602+86r ; sub_6B602+1D6r DG_ICAT_KE_CAT_POST_O2_LEAN_VOLT_MAX:dc.w $2852 ; DATA XREF: sub_6B156+330r ; Maximum post O2 voltage to be considered saturated lean while in AFT1. ; Millivolts DG_ICAT_KE_CAT_PRE_O2_LEAN_VOLT_MAX:dc.w $2280 ; DATA XREF: sub_6B156+310r ; Maximum pre O2 voltage to be considered saturated lean while in AFT1. ; Millivolts DG_ICAT_KE_CAT_POST_O2_RICH_VOLT_MIN:dc.w $4500 ; DATA XREF: sub_6B156+2D6r ; Minimum post O2 voltage to be considered saturated rich while in AFT1. ; Millivolts DG_ICAT_KE_CAT_PRE_O2_RICH_VOLT_MIN:dc.w $4500 ; DATA XREF: sub_6B156+2B6r ; Minimum pre O2 voltage to be considered saturated rich while in AFT1. ; Millivolts DG_ICAT_KE_CAT_MAX_RSR_TESTS:dc.b $12 ; DATA XREF: sub_6B084+BEr ; sub_6B156+56r ... ; The maximum number of tests to run once the rapid step response is activated. ; Unitless DG_ICAT_KE_CAT_MAX_TESTS_PER_TRIP:dc.b 6 ; DATA XREF: sub_6B602+330r ; The maximum number of tests to run each trip once the rapid step response is activated. ; Unitless DG_ICAT_KE_CAT_MIN_SAMPLES_TO_RPT_PASS:dc.b 6 ; DATA XREF: sub_6B602+258r ; sub_6B602+3A4r ; Minimum number of tests run before reporting a pass. ; Unitless dc.b $FF DG_ICAT_KE_CAT_POST_O2_LEAN_VOLTAGE:dc.w $7E9A ; DATA XREF: sub_6B156+218r ; Maximum post O2 voltage to be considered lean. ; Millivolts DG_ICAT_KE_CAT_POST_O2_RICH_VOLTAGE:dc.w $7E9A ; DATA XREF: sub_6B156+1FEr ; Minimum post O2 voltage to be considered rich. ; Millivolts DG_ICAT_KE_CAT_STOICH_REFERENCE_VOLT:dc.w $3400 ; DATA XREF: sub_6B156+3DAr ; sub_6B156:loc_6B594r ; Theoretical O2 voltage for a stoichiometric A/F ratio. ; Millivolts DG_IDLE_KE_IAC_INTRUSIVE_TEST_OPTION:dc.b 0 ; DATA XREF: sub_6C7C0+40r ; This calibration option determines whether or not the valvetest should be allowed to execute. ; BOOLEAN dc.b $FF DG_IDLE_KE_IAC_RPM_DELTA_LIMIT:dc.w $100 ; DATA XREF: sub_6C7C0+8Er ; RPM delta threshold to disable the valve test. ; RPM DG_IDLE_KE_IAC_TPS_DELTA_LIMIT:dc.w $29 ; DATA XREF: sub_6C7C0+86r ; TPS delta threshold to disable the valve test. ; Percent DG_IDLE_KE_IAC_VALVE_TEST_AIRFLOW_MAX:dc.w $1180 ; DATA XREF: sub_6C7C0+1Er ; Upper threshold airflow value to disable the valve test. ; Grams/Sec DG_IDLE_KE_IAC_VALVE_TEST_AIRFLOW_MIN:dc.w $680 ; DATA XREF: sub_6C7C0+10r ; Lower threshold airflow value to disable the valve test. ; Grams/Sec DG_IDLE_KE_IAC_VALVE_TEST_VEH_SPEED_MAX:dc.w $2680 ; DATA XREF: sub_6C7C0+38r ; Upper threshold vehicle speed value to disable the valve test. ; MPH DG_IDLE_KE_IAC_VALVE_TEST_VEH_SPEED_MIN:dc.w $A00 ; DATA XREF: sub_6C7C0+2Cr ; Lower threshold vehicle speed value to disable the valve test. ; MPH DG_IDLE_KE_IAC_AIRFLOW_RESPONSE_THRESH:dc.w $D3 ; DATA XREF: sub_6C9C0+56r ; This calibration determines how much airflow decrease must occur in order to consider the valve functioning properly. ; Grams/Sec DG_IDLE_KE_IAC_VALVE_TEST_TIME_LIMIT:dc.b $F ; DATA XREF: sub_6C9C0+20r ; This calibration limits how long the valve test will execute. ; Seconds DG_IDLE_KE_IAC_REPORT_IDLE_RESULTS:dc.b 1 ; DATA XREF: sub_6CB04+Cr DG_IDLE_KV_IAC_RPM_ERROR_HIGH_THRESHOLD:dc.b $19 ; DATA XREF: sub_6CC3C+Co ; Minimum RPM error used to determine if the OBD_Idle_RPM_Error is too high. ; RPM dc.b 0 dc.b $16 dc.b $80 ; ? dc.b $14 dc.b 0 dc.b $11 dc.b $80 ; ? dc.b $F dc.b 0 dc.b $C dc.b $80 ; ? dc.b $A dc.b 0 dc.b 7 dc.b $80 ; ? dc.b 5 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 DG_IDLE_KE_IAC_RPM_HIGH_TIMER_LIMIT:dc.b $32 ; DATA XREF: sub_6CC3C+2Cr ; Minimum amount of time used to indicate that there is a high idle RPM problem. ; Seconds dc.b $FF DG_IDLE_KV_IAC_RPM_ERROR_LOW_THRESHOLD:dc.b $E9 ; ? ; DATA XREF: sub_6CC3C+60o ; Maximum RPM error used to determine if the OBD_Idle_RPM_Error is too low. ; RPM dc.b $80 ; ? dc.b $EC ; ? dc.b 0 dc.b $EE ; ? dc.b $80 ; ? dc.b $F1 ; ? dc.b 0 dc.b $F3 ; ? dc.b $80 ; ? dc.b $F6 ; ? dc.b 0 dc.b $F8 ; ? dc.b $80 ; ? dc.b $FB ; ? dc.b 0 dc.b $FD ; ? dc.b 0 dc.b $FE ; ? dc.b 0 dc.b $FE ; ? dc.b 0 dc.b $FE ; ? dc.b 0 dc.b $FE ; ? dc.b 0 dc.b $FE ; ? dc.b 0 dc.b $C0 ; ? dc.b 0 dc.b $C0 ; ? dc.b 0 dc.b $C0 ; ? dc.b 0 DG_IDLE_KE_IAC_RPM_LOW_TIMER_LIMIT:dc.b $32 ; DATA XREF: sub_6CC3C+76r ; Minimum amount of time used to indicate that there is a low idle RPM error problem. ; Seconds dc.b $FF DG_IDLE_KE_IAC_FILTERED_RPM_ERROR_MAX:dc.w $200 ; DATA XREF: sub_6CD00+32r ; Maximum value for the allowable filtered RPM error. ; RPM DG_IDLE_KE_IAC_TEST_PASS_TIME:dc.b $50 ; DATA XREF: sub_6CD00+3Er ; Minimum time duration for the RPM to be within its allowable filtered RPM error to report that the Idle RPM is passing. ; Seconds dc.b $FF DG_IDLE_KE_IAC_RPM_ERROR_FILTER_COEFF:dc.w $40 ; DATA XREF: sub_6CD00+22r ; This is the coefficient for the first order lag filter of the error. ; Coef DG_IGNITION_CONTROL_KE_IGN_CONTROL_COUNTER_RPM_THRES:dc.w $1E00 ; DATA XREF: sub_6CF1E+Cr ; Samples and failures wih engine speed >= this are twice as significant as those with engine speed < this. ; RPM DG_IGNITION_CONTROL_KE_IGNITION_CONTROL_FAILURE_LIMI:dc.b $1E ; DATA XREF: sub_6D042+50r ; Number of failed tests within a sample set that will report an ignition control failure. ; NONE DG_IGNITION_CONTROL_KE_IGNITION_CONTROL_SAMPLES_LIMI:dc.b $64 ; DATA XREF: sub_6D042:loc_6D0B6r ; Number of tests in a sample SET. ; NONE DG_IGNITION_CONTROL_KV_EST_TESTED_CYLINDER_XREF:dc.w $47 ; DATA XREF: sub_6D042+64r ; sub_6D042+88r ; Map EST channel to cylinder number. ; P_CODE dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4D ; M dc.b 0 dc.b $48 ; H dc.b 0 dc.b $4C ; L dc.b 0 dc.b $4B ; K dc.b 0 dc.b $4A ; J dc.b 0 dc.b $49 ; I DG_IOT_KE_IOTD_IGNITION_OFF_DELTA:dc.b 1 ; DATA XREF: sub_6D110+74r ; The acceptable difference between the previous and current Ignition Off Timer values. ; Seconds DG_IOT_KE_IOTD_MAX_EXPECTED_TIME:dc.b 5 ; DATA XREF: sub_6D110+32r ; The maximum time the Ignition Off Timer is expected to be reporting after an ignition off period begins. ; Seconds DG_IOT_KE_IOTD_MIN_EXPECTED_TIME:dc.b 0 ; DATA XREF: sub_6D110+28r ; The minimum time the Ignition Off Timer is expected to be reporting after an ignition off period begins. ; Seconds DG_IOT_KE_IOTD_SAMPLE_COUNTER_MAX:dc.b $D ; DATA XREF: sub_6D110+68r ; sub_6D110:loc_6D1D4r ; The maximum number of samples below which the Ignition Off Timer is expected to increment. ; Counts DG_IOT_KE_IOTD_SAMPLE_COUNTER_MIN:dc.b 7 ; DATA XREF: sub_6D110+60r ; The minimum number of samples above which the Ignition Off Timer is expected to increment. ; Counts DG_IOT_KE_IOTD_SMPLS_WITHOUT_CHANGE:dc.b $28 ; DATA XREF: sub_6D110+BAr DG_IOT_KE_IOTD_TRANSITION_THRESHOLD:dc.b 1 ; DATA XREF: sub_6D110+54r ; The number of Ingition Off Timer transitions above which the diagnostic may proceed. ; Counts dc.b $FF DG_LEGR_KE_EGRP_SIGNAL_LOW_POS_MAX:dc.w $9F ; DATA XREF: sub_6D316+2CAr ; Maximum valid EGR position below which is considered a low signal. ; Percent DG_LEGR_KE_EGRP_CLOSED_VALVE_FAIL_COUNT:dc.b 3 ; DATA XREF: sub_6D316+238r ; sub_6D636+6r ; Maximum number of fail conditions before reporting a fail. ; Counts DG_LEGR_KE_EGRP_CLOSED_VALVE_OPEN_TIME:dc.b $14 ; DATA XREF: sub_6D316+27Ar ; Minimum time the EGR desired position must remain in a stable open position prior to the next closed valve test iteration. ; Seconds DG_LEGR_KE_EGRP_CV_OPEN_POSITION:dc.w $600 ; DATA XREF: sub_6D316+25Er ; Minimum EGR position to achieve and sustain following a failed closed valve test and prior to the next test iteration. ; Percent DG_LEGR_KE_EGRP_CV_POSITION_OFFSET:dc.w $124 ; DATA XREF: sub_6D316:loc_6D486r DG_LEGR_KE_EGRP_CV_POSITION_TIME:dc.b $64 ; DATA XREF: sub_6D316+1F4r ; Maximun allowable time that a high position offset can exceed a threshold before logging a failure. ; Seconds DG_LEGR_KE_EGRP_OPEN_VALVE_MAX_COUNT:dc.b $7D ; DATA XREF: sub_6D316+DEr ; Maximum allowable times the EGR position error can exceed a failure threshold before reporting a failure. ; Counts DG_LEGR_KE_EGRP_SIGNAL_LOW_TIME:dc.b $32 ; DATA XREF: sub_6D316+2ECr ; Minimum allowable time limit for a low signal to report a failure condition. ; Seconds DG_LEGR_KE_EGRP_CV_DELAY_OPTION:dc.b 0 ; DATA XREF: sub_6D316:loc_6D568r ; Option to delay closed valve testing for partial valve opening or pintle cleaning routine. ; Delay_Type DG_LEGR_KE_EGRP_POSITION_ERROR_MAX1:dc.w $266 ; DATA XREF: sub_6D316+94r ; Threshold above which the error in EGR position is considered unaccptable (Zone #1 - position error test.) ; Percent DG_LEGR_KE_EGRP_POSITION_ERROR_MAX2:dc.w $266 ; DATA XREF: sub_6D29E+1Cr ; sub_6D316:loc_6D3BAr ; Threshold above which the error in EGR position is considered unaccptable ( Zone #2 - position error test. ) ; Percent DG_LEGR_KE_EGRP_POS_ERR_BOUNDARY_SELECT:dc.w $1400 ; DATA XREF: sub_6D316+8Ar ; Threshold used to determine if EGR is in Zone 1 and should use KE..Max1 or Zone 2 and use KE..Max2 ( position error test ). ; Percent DG_LEGR_KE_EGRP_MAX_DESIRED_POS_DELTA:dc.w $400 ; DATA XREF: sub_6D316:loc_6D382r ; The maximum allowable difference in desired position to enable the position error test. ; Percent DG_LEGR_KE_EGRP_TIME_TO_PASS_CV:dc.b $14 ; DATA XREF: sub_6D316+1B0r ; The minimum allowable time to elapse before a P1404 pass will be indicated. ; Seconds dc.b $FF DG_MAF_KE_MAFD_FREQ_HIGH_FAIL_LIM:dc.w $12 ; DATA XREF: sub_6D88A+1Ar ; Number of failed high tests within a sample size that will report a high frequency failure ; Failures DG_MAF_KE_MAFD_FREQ_HIGH_SMPL_LIM:dc.w $18 ; DATA XREF: sub_6D88A+4Ar ; Minimum number of MAF high frequency tests required to report a pass. ; Samples DG_MAF_KE_MAFD_FREQ_HIGH_THRESH:dc.w $34BC ; DATA XREF: sub_6D7FC+20r ; High frequency threshold above which represents a high frequency failure ; Cycles/Sec DG_MAF_KE_MAFD_FREQ_LOW_FAIL_LIM:dc.l loc_60024+4 ; DATA XREF: sub_6D88A+6Ar ; sub_6D88A+9Ar ; Number of failed low tests within a sample size that will report a low frequency failure ; Failures DG_MAF_KE_MAFD_FREQ_LOW_THRESH:dc.w $4B0 ; DATA XREF: sub_6D7FC+56r ; Low frequency threshold above which represents a low frequency failure ; Cycles/Sec DG_MAF_KE_MAFD_RAT_FAIL_LIM:dc.w $28 ; DATA XREF: sub_6D944+64r ; Number of failed tests within a sample size that will report a MAF Rationality failure ; Failures DG_MAF_KE_MAFD_RAT_SMPL_LIM:dc.w $64 ; DATA XREF: sub_6D944:loc_6D9D0r ; Number of MAF Rationality tests that make up a sample size. ; Samples DG_MAF_KV_MAFD_PREDICTED_MAF_DELTA_MAX:dc.w $32E ; DATA XREF: sub_6D944:loc_6D97Cr ; Maximum predicted mass air flow delta value based on a calculated mass air flow value for the MAF rationality test. ; GPS dc.b 5 dc.b $E dc.b 6 dc.b $D6 ; ? dc.b $A dc.b $E1 ; ? dc.b $C dc.b $CE ; ? dc.b $E dc.b $CF ; ? dc.b $10 dc.b $E4 ; ? dc.b $13 dc.b $D dc.b $15 dc.b $4A ; J dc.b $17 dc.b $9B ; ? dc.b $1A dc.b 0 DI_MAF_KE_MAFD_RAT_EGR_POS_MAX:dc.w $1400 ; DATA XREF: sub_6DA1A+14r ; Maximum allowed EGR pintle position value to run the MAF rationality test. ; Percent DI_MAF_KE_MAFD_RAT_ENG_VACUUM_MAX:dc.w $1000 ; DATA XREF: sub_6DA1A+1ACr ; Maximum allowed engine vacuum value to run the MAF rationality test. ; kPa DI_MAF_KE_MAFD_RAT_IGN_VOLT_MIN:dc.w $B00 ; DATA XREF: sub_6DA1A+26r ; Minimum ignition voltage necessary to run the MAF rationality test. ; Volts DI_MAF_KE_MAFD_RAT_IGN_VOLT_MAX:dc.w $1200 ; DATA XREF: sub_6DA1A+2Er ; Maximum ignition voltage necessary to run the MAF rationality test. ; Volts DI_MAF_KE_MAFD_RAT_IGN_VOLT_LOW_THRESH:dc.w $B00 ; DATA XREF: sub_6DA1A+36r ; Ignition voltage below which it is necessary to compare the mass airflow reading to a threshold. ; Volts DI_MAF_KE_MAFD_RAT_LOW_VOLT_MAF_THRESH:dc.w $1900 ; DATA XREF: sub_6DA1A+3Er ; Threshold below which the MAF value must be to run the MAF rationality test. ; GPS DI_MAF_KE_MAFD_RAT_MAP_DELTA_MAX:dc.w $9A ; DATA XREF: sub_6DA1A:loc_6DBA0r ; Maximum allowed manifold pressure delta value to run MAF rationality test. ; kPa DI_MAF_KE_MAFD_RAT_MAF_FILT_COEFF:dc.w $1A ; DATA XREF: sub_6DC40+1Cr ; Filter coefficient for the mass air flow rescaled in the MAF rationality test. ; 0-1 DI_MAF_KE_MAFD_RAT_PURGE_DC_MAX:dc.w $1400 ; DATA XREF: sub_6DA1A+172r ; Maximum allowed canister purge duty cycle value to run the MAF rationality test. ; Percent DI_MAF_KE_MAFD_RAT_STABLE_TIME_MIN:dc.w $F0 ; DATA XREF: sub_6DA1A+202r ; Minimum stabilization time after conditions have been met to run the MAF rationality test. ; Seconds DI_MAF_KE_MAFD_RAT_TPS_DELTA_MAX:dc.w $100 ; DATA XREF: sub_6DA1A:loc_6DBBAr ; Maximum allowed throttle position delta to run the MAF rationality test. ; Percent DI_MAF_KE_MAFD_RAT_TPS_MAX:dc.w $1300 ; DATA XREF: sub_6DA1A:loc_6DBE6r ; Maximum allowed throttle position value to run the MAF rationality test. ; Percent DI_MAF_KE_MAFD_FREQ_ENG_RUN_TIME_MIN:dc.b 0 ; DATA XREF: sub_6DC40+30r ; Minimum engine run time necessary to run the MAF frequency test. ; Seconds dc.b 0 Constant16_C2908___MAF_Test_Min_Run_Time:dc.b 1 dc.b $40 ; @ DI_MAF_KE_MAFD_FREQ_IGN_VOLT_MIN:dc.w $800 ; DATA XREF: sub_6DC40+48r ; Minimum ignition voltage necessary to run the MAF frequency test. ; Volts DI_MAF_KE_MAFD_FREQ_RPM_MIN:dc.w $800 ; DATA XREF: sub_6DC40+3Cr ; Minimum engine speed necessary to run the MAF frequency test. ; RPM DI_MAF_KE_MAFD_FREQ_STABLE_TIME_MIN:dc.w $A0 ; DATA XREF: sub_6DC40+78r ; Minimum stabilization time after conditions have been met to run the MAF frequency test. ; Seconds DG_MAP_KA_MAPD_PREDICTED_MAP_MAX:dc.b $54 ; T ; DATA XREF: sub_6DD7A:loc_6DDE8o ; Upper threshold MAP readings ; Kilopascals dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $2B ; + dc.b $33 ; 3 dc.b $26 ; & dc.b $66 ; f dc.b $21 ; ! dc.b $9A ; ? dc.b $1C dc.b $CD ; ? dc.b $19 dc.b $9A ; ? dc.b $18 dc.b 0 dc.b $54 ; T dc.b 0 dc.b $47 ; G dc.b $33 ; 3 dc.b $3C ; < dc.b 0 dc.b $33 ; 3 dc.b $33 ; 3 dc.b $2C ; , dc.b 0 dc.b $23 ; # dc.b $33 ; 3 dc.b $1A dc.b $66 ; f dc.b $18 dc.b $CD ; ? dc.b $54 ; T dc.b 0 dc.b $52 ; R dc.b $66 ; f dc.b $49 ; I dc.b $9A ; ? dc.b $3E ; > dc.b $66 ; f dc.b $31 ; 1 dc.b $9A ; ? dc.b $26 ; & dc.b $66 ; f dc.b $23 ; # dc.b $33 ; 3 dc.b $20 dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $4E ; N dc.b $66 ; f dc.b $45 ; E dc.b $9A ; ? dc.b $39 ; 9 dc.b $9A ; ? dc.b $30 ; 0 dc.b $CD ; ? dc.b $2E ; . dc.b $66 ; f dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $51 ; Q dc.b $9A ; ? dc.b $50 ; P dc.b 0 dc.b $47 ; G dc.b $33 ; 3 dc.b $41 ; A dc.b $9A ; ? dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $50 ; P dc.b 0 dc.b $4C ; L dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 DG_MAP_KA_MAPD_PREDICTED_MAP_MIN:dc.b 8 ; DATA XREF: sub_6DD7A:loc_6DE32o ; Lower threshold MAP readings ; Kilopascals dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 9 dc.b $9A ; ? dc.b 9 dc.b $9A ; ? dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $13 dc.b $33 ; 3 dc.b $F dc.b $33 ; 3 dc.b $C dc.b 0 dc.b 8 dc.b $CD ; ? dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b $23 ; # dc.b $33 ; 3 dc.b $23 ; # dc.b $33 ; 3 dc.b $23 ; # dc.b $33 ; 3 dc.b $19 dc.b $9A ; ? dc.b $14 dc.b $CD ; ? dc.b $12 dc.b $66 ; f dc.b $E dc.b $66 ; f dc.b $C dc.b $CD ; ? dc.b $24 ; $ dc.b $CD ; ? dc.b $24 ; $ dc.b $CD ; ? dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $22 ; " dc.b $66 ; f dc.b $1D dc.b $9A ; ? dc.b $17 dc.b $33 ; 3 dc.b $16 dc.b $66 ; f dc.b $25 ; % dc.b $9A ; ? dc.b $25 ; % dc.b $9A ; ? dc.b $25 ; % dc.b $9A ; ? dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $23 ; # dc.b $33 ; 3 dc.b $21 ; ! dc.b $9A ; ? dc.b $20 dc.b 0 dc.b $26 ; & dc.b $66 ; f dc.b $26 ; & dc.b $66 ; f dc.b $26 ; & dc.b $66 ; f dc.b $26 ; & dc.b $66 ; f dc.b $26 ; & dc.b $66 ; f dc.b $24 ; $ dc.b 0 dc.b $23 ; # dc.b $33 ; 3 dc.b $23 ; # dc.b $33 ; 3 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 DG_MAP_KE_MAPD_INT_SHORT_HIGH_FAIL_LIM:dc.w $280 ; DATA XREF: sub_6DEDA+26Cr ; Number of failed intermittent short to high tests within a sample size that will report a failure. ; Unitless DG_MAP_KE_MAPD_INT_SHORT_HIGH_SMPL_LIM:dc.w $FA0 ; DATA XREF: sub_6DEDA:loc_6E162r ; Number of intermittent short to high tests that make up a sample size. ; Unitless DG_MAP_KE_MAPD_INT_SHORT_LOW_FAIL_LIM:dc.w $280 ; DATA XREF: sub_6DEDA+DEr ; Number of failed intermittent short to low tests within a sample size that will report a failure. ; Unitless DG_MAP_KE_MAPD_INT_SHORT_LOW_SMPL_LIM:dc.w $FA0 ; DATA XREF: sub_6DEDA:loc_6DFD4r ; Number of intermittent short to low tests that make up a sample size. ; Unitless DG_MAP_KE_MAPD_RAT_FAIL_LIM:dc.w $14 ; DATA XREF: sub_6DD7A+ECr ; Number of rationality failed tests within a sample size that will report a failure. ; Unitless DG_MAP_KE_MAPD_RAT_SMPL_LIM:dc.w $1E ; DATA XREF: sub_6DD7A+132r ; Number of rationality tests that make up a sample size. ; Unitless DG_MAP_KE_MAPD_SHORT_HIGH_FAIL_LIM:dc.w $140 ; DATA XREF: sub_6DEDA+2A0r ; Number of failed short to high tests within a sample size that will report a failure. ; Unitless DG_MAP_KE_MAPD_SHORT_HIGH_RPM:dc.w $1800 ; DATA XREF: sub_6DEDA+1D6r ; sub_6DEDA+1E8r DG_MAP_KE_MAPD_SHORT_HIGH_SMPL_LIM:dc.w $190 ; DATA XREF: sub_6DEDA:loc_6E1C0r ; Number of short to high tests that make up a sample size. ; Unitless DG_MAP_KE_MAPD_SHORT_LOW_FAIL_LIM:dc.w $140 ; DATA XREF: sub_6DEDA+112r ; Number of failed short to low tests within a sample size that will report a failure. ; Unitless DG_MAP_KE_MAPD_SHORT_LOW_RPM:dc.w $1000 ; DATA XREF: sub_6DEDA+48r ; sub_6DEDA+5Ar DG_MAP_KE_MAPD_SHORT_LOW_SMPL_LIM:dc.w $190 ; DATA XREF: sub_6DEDA:loc_6E032r ; Number of short to low tests that make up a sample size. ; Unitless DG_MAP_KE_MAPD_SHORTED_HIGH_THRESH:dc.w $139A ; DATA XREF: sub_6DEDA+1F6r ; The threshold above which the MAP sensor is considered shorted to a positive voltage. ; Percent DG_MAP_KE_MAPD_SHORTED_LOW_THRESH:dc.w $3C ; DATA XREF: sub_6DEDA+68r ; The threshold below which the MAP sensor is considered opened or shorted to ground. ; Percent DG_MAP_KE_MAPD_TPS_OVER_RPM_THRESH_MAX:dc.w $400 ; DATA XREF: sub_6DEDA:loc_6E0B8r DG_MAP_KE_MAPD_TPS_OVER_RPM_THRESH_MIN:dc.w $280 ; DATA XREF: sub_6DEDA:loc_6DF2Ar DG_MAP_KE_MAPD_TPS_UNDER_RPM_THRESH_MAX:dc.w $33 ; DATA XREF: sub_6DEDA+1CEr DG_MAP_KE_MAPD_TPS_UNDER_RPM_THRESH_MIN:dc.w 0 ; DATA XREF: sub_6DEDA+40r DI_MAP_KV_MAPD_COLD_START_RUN_TIME:dc.w $9740 ; DATA XREF: sub_6E4FE:loc_6E540r ; The MAP Short to High test will be disabled if the engine run time is less than this calibration. ; Seconds dc.b $75 ; u dc.b $80 ; ? dc.b $53 ; S dc.b $C0 ; ? dc.b $32 ; 2 dc.b 0 dc.b 6 dc.b $40 ; @ DI_MAP_KE_MAPD_RAT_DELTA_EGR_POS_MAX:dc.w $400 ; DATA XREF: sub_6E1FA:loc_6E378r ; Maximum EGR flow rate change to still consider conditions stable for MAP rationality. ; Percent DI_MAP_KE_MAPD_RAT_DELTA_IAC_IDLE_MAX:dc.w $2800 ; DATA XREF: sub_6E1FA+188r ; Maximum idle air value change to still consider conditions stable for MAP rationality. ; Grams/Second DI_MAP_KE_MAPD_RAT_DELTA_RPM_MAX:dc.w $280 ; DATA XREF: sub_6E1FA:loc_6E336r ; Maximum engine speed change to still consider conditions stable for MAP rationality. ; Percent DI_MAP_KE_MAPD_RAT_DELTA_TPS_MAX:dc.w $1400 ; DATA XREF: sub_6E1FA:loc_6E362r ; Maximum throttle position change to still consider conditions stable for MAP rationality. ; Percent DI_MAP_KE_MAPD_RAT_RPM_HIGH:dc.w $6400 ; DATA XREF: sub_6E1FA+1BEr ; Maximum RPM threshold under which the MAP rationality test can proceed. ; RPM DI_MAP_KE_MAPD_RAT_RPM_LOW:dc.w $A00 ; DATA XREF: sub_6E1FA+1B2r ; Minimum RPM value above which the MAP rationality test can proceed. ; RPM DI_MAP_KE_MAPD_RAT_STABLE_TIME_MIN:dc.w $50 ; DATA XREF: sub_6E1FA+1A4r ; Minimum stabilization time after the conditions have been met necessary to run the MAP rationality test. ; Seconds DG_MF_ENGINE_CYCLE_KE_MISF_ABNORMAL_SPEED_OPTION:dc.b 0 ; DATA XREF: sub_6F29A:loc_6FC7Cr ; sub_6F29A:loc_6FDFEr ... ; Indicates when to analyze the abnormal speed data. ; Unitless dc.b $FF PROTECTED_KE_MISF_ASSEMBLY_PLANT_DELAY:dc.w $1F4 ; DATA XREF: sub_6F126+64r PROTECTED_KE_MISF_BALANCED_TIME_OFFSET:dc.b 1 ; DATA XREF: sub_6F29A+732r PROTECTED_KE_MISF_CALIBRATE_MODE:dc.b 0 ; DATA XREF: sub_6F29A:loc_6F682r ; Enables the diagnostic to collect data in both cylinder and revolution mode for development purposes. ; Flag PROTECTED_KE_MISF_CYL_ABNORMAL_ENGINE_SPD:dc.b 3 ; DATA XREF: sub_6F29A:loc_6FC0Cr ; Threshold for distinguishing abnormal speed in cylinder mode. ; Unitless dc.b $FF PROTECTED_KE_MISF_IDLE_ENGINE_SPEED:dc.w $1300 ; DATA XREF: sub_6F29A+9AAr ; sub_6F29A+B2Cr ; Maximum engine speed necessary to have abnormal speed detected. ; RPM PROTECTED_KE_MISF_IDLE_THROTTLE_POSITION:dc.w $33 ; DATA XREF: sub_6F29A:loc_6FC38r ; sub_6F29A:loc_6FDBAr ; Maximum throttle position necessary to have abnormal speed detected. ; Percent PROTECTED_KE_MISF_IDLE_VEHICLE_SPEED:dc.w $180 ; DATA XREF: sub_6F29A+97Er ; sub_6F29A+B00r ; Maximum vehicle speed necessary to have abnormal speed detected. ; MPH PROTECTED_KE_MISF_NUMBER_OF_NORMALS_FILTER:dc.b 3 ; DATA XREF: sub_6F29A+A1Ar ; sub_6F29A+B9Cr ; Minimum number of normals necessary to reset misfire information. ; Unitless PROTECTED_KE_MISF_OPP_CYL_SINGLE_PEAK:dc.b 0 ; DATA XREF: sub_6F29A+7D6r ; sub_6F29A+BD2r ; Indicates whether to use the single peak method of analyzing peaks in opposing cylinder mode. ; Flag PROTECTED_KE_MISF_OPP_CYLINDER:dc.b $50 ; DATA XREF: sub_6F29A+DCAr ; Minimum number of misfires necessary to add in the number of misfires detected in opposing cylinder mode. ; Unitless PROTECTED_KE_MISF_REV_ABNORMAL_ENGINE_SPD:dc.b 4 ; DATA XREF: sub_6F29A:loc_6FD8Er ; Threshold distinguishing abnormal speed in revolution mode. ; Unitless PROTECTED_KE_MISF_REV_MODE_CYLINDER_OFFSET:dc.b 1 ; DATA XREF: sub_6F29A:loc_70008r ; sub_6F29A+D7Er ... ; Compensates for revolution mode phase delay to find proper cylinder which misfired. ; Unitless PROTECTED_KE_MISF_RING_FILTER:dc.b 4 ; DATA XREF: sub_6F29A+9DAr ; sub_6F29A+B5Cr ; Number of engine cycles to ignore due to misfire induced drive train ringing. ; Unitless PROTECTED_KE_MISF_SINGLE_PEAK_REV_METHOD:dc.b 1 ; DATA XREF: sub_6F29A:loc_6F8FEr ; Indicates whether to use only one cylinder's peak in determining the highest peak of the revolution mode data. ; Flag dc.b $FF PROTECTED_KV_MISF_POWERUP_DELAY:dc.b 0 ; DATA XREF: sub_6F126:loc_6F14Cr ; Number of engine cycles to delay on powerup. ; Unitless dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 PROTECTED_KV_MISF_ZERO_TORQUE_TEMPERATURE:dc.b $20 ; DATA XREF: sub_6F29A:loc_6F6FAr dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $FF DG_MF_REPORTING_KE_MISF_1_CYL_NO_CAT_DAMAGE_LOAD:dc.w $800 ; DATA XREF: sub_702A6+3DCr ; Identifies the engine load region where a single cylinder misfire cannot cause catalyst damage. ; Percent DG_MF_REPORTING_KE_MISF_1_CYL_NO_CAT_DAMAGE_LVL:dc.b $AA ; DATA XREF: sub_702A6+3FAr ; The amount of misfire that is needed in a single cylinder to indicate a single cylinder misfire is occurring. ; Counts dc.b $FF DG_MF_REPORTING_KE_MISF_1_CYL_NO_CAT_DAMAGE_RPM:dc.w $2800 ; DATA XREF: sub_702A6+3D0r ; Identifies the engine speed region where a single cylinder misfire cannot cause catalyst damage. ; RPM DG_MF_REPORTING_KE_MISF_ABNORMAL_SPEED_THRESHOLD:dc.b $40 ; DATA XREF: sub_702A6:loc_704EAr ; Minimum ratio necessary to detect abnormal speed. ; Unitless DG_MF_REPORTING_KE_MISF_CATALYST_ARRAY_SIZE:dc.b $10 ; DATA XREF: sub_702A6+4D2r ; Determines the number of elements in the Catalyst_Array to consider. ; Unitless DG_MF_REPORTING_KE_MISF_DETERMINE_MISFIRE_P_CODE:dc.b $73 ; DATA XREF: sub_702A6:loc_70CB6r ; Maximum value necessary to detect which cylinder is misfiring. ; Unitless dc.b $FF DG_MF_REPORTING_KE_MISF_DFCO_TIME_STOP_MIL_FLASH:dc.w $1E ; DATA XREF: sub_702A6+A2r ; Amount of time engine is in decel fuel cutoff before the Malfunction Indicator Light is forced to stop flashing. ; Seconds DG_MF_REPORTING_KE_MISF_DISABLE_TCC:dc.b 0 ; DATA XREF: sub_702A6+770r ; Maximum value of misfire counts necessary to disable the TCC(Torque Converter Clutch) ; Unitless DG_MF_REPORTING_KE_MISF_EMISSION_ARRAY_SIZE:dc.b $10 ; DATA XREF: sub_702A6+52Ar ; Determines the number of elements in the Emission_Array to consider. ; Unitless DG_MF_REPORTING_KE_MISF_FLASH_MIL_ENGINE_LOAD:dc.w $C00 ; DATA XREF: sub_702A6+BCr ; Forces the Malfunction Indicator Light to stop flashing at lower engine loads. ; Percent DG_MF_REPORTING_KE_MISF_FLASH_MIL_LATCH:dc.w $FFFF ; DATA XREF: sub_702A6+146r DG_MF_REPORTING_KE_MISF_FLASH_MIL_VEHICLE_SPEED:dc.w $F00 ; DATA XREF: sub_702A6+B0r ; Forces the Malfunction Indicator Light to stop flashing at lower vehicle speeds. ; MPH DG_MF_REPORTING_KE_MISF_FTP_MAX_ENGINE_LOAD:dc.w $A00 ; DATA XREF: sub_702A6+63Cr DG_MF_REPORTING_KE_MISF_FTP_MAX_ENGINE_SPEED:dc.w $2C00 ; DATA XREF: sub_702A6+630r DG_MF_REPORTING_KE_MISF_INDISPUTABLE_MISFIRE:dc.b $AA ; DATA XREF: sub_702A6+2AAr ; sub_702A6+326r ... DG_MF_REPORTING_KE_MISF_INITIAL_EMISSION_FACTOR:dc.b $10 ; DATA XREF: sub_702A6:loc_7057Ar DG_MF_REPORTING_KE_MISF_MARSHALLING_FACTOR:dc.b $10 ; DATA XREF: sub_702A6+5Ar ; Multiplier to increase emission misfire level. This must be set to 1.0, unless prior government approval is received. ; Factor dc.b $FF DG_MF_REPORTING_KE_MISF_MARSHALLING_ODOMETER:dc.w 0 ; DATA XREF: sub_702A6+26r ; The distance the vehicle is driven after the assembly plant dynamic vehicle test. ; Kilometers DG_MISFIRE_KE_MISF_CYLINDER_MODE_EQUATION:dc.b 0 ; DATA XREF: sub_6EF00+11Er ; sub_6F29A+A42r ... DG_MISFIRE_KE_MISF_CONSECUTIVE_NEGATIVE:dc.b $FF ; DATA XREF: sub_6EF00+1ECr ; Minimum number of consecutive cylinder events the engine is accelerating to cause a delay. ; Unitless DG_MISFIRE_KE_MISF_CONSECUTIVE_POSITIVE:dc.b $FF ; DATA XREF: sub_6EF00:loc_6F0E4r ; Minimum number of consecutive cylinder events the engine is decelerating to cause a delay. ; Unitless dc.b $FF DG_EOS_KE_EOSD_ASYMMETRICRATIO_TEST:dc.b 0 ; DATA XREF: sub_71DC2+352r ; sub_71DC2+4F0r ; Determines which response test method is to be used. TRUE = ratio test, FALSE = difference test. ; Boolean dc.b $FF DG_EOS_KE_EOSD_OPEN_FAST_PASS_THRESH:dc.w $226 ; DATA XREF: sub_714E0:loc_715BCr DG_EOS_KE_EOSD_OPEN_FP_HIGH_THRESHOLD:dc.w $3F5C ; DATA XREF: sub_714E0+74r DG_EOS_KE_EOSD_OPEN_FP_LOW_THRESHOLD:dc.w $2852 ; DATA XREF: sub_714E0+6Cr DG_EOS_KE_EOSD_REL_PE_SENSOR_THRESH:dc.w $2979 ; DATA XREF: sub_714E0+4CAr ; The related sensor voltage required to allow monitoring of the current sensor during the PE test. ; Millivolts DG_EOS_KE_EOSD_RESP_SAMPLE_TIME_LIM:dc.w $1F40 ; DATA XREF: sub_71122+1Cr ; Amount of time to collect response data. ; Milliseconds DI_AIR_KE_AIRD_FAILED_TEST_MAX:dc.b 3 ; DATA XREF: OS2:0005FE10r ; sub_60178+516r ; The maximum number of AIR diagnostic test failures required to fail the AIR diagnostic. ; unitless dc.b $FF DI_AIR_KE_AIRD_FUEL_TRIM_UPDATE_RATE:dc.w 5 ; DATA XREF: sub_60178+488r ; The fixed integrator update rate during the Active AIR Injection test. ; Seconds DI_AIR_KE_AIRD_INTAKE_AIR_TEMP_MIN:dc.w $FF00 ; DATA XREF: OS1:0002C736r ; sub_60178+366r ; Minimum intake air temperature threshold to enable the diagnostic. ; Degrees_C DI_AIR_KE_AIRD_NUMBER_OF_O2_MONITORS:dc.w $2FF ; DATA XREF: sub_5F6BC+3Cr ; OS2:0005F8B0r ... ; The number of O2 sensors that independently receive air injection from the secondary AIR system. ; Unitless DI_AIR_KV_AIRD_PASV_COLD_LEAN_RATIO:dcb.b 2,0 ; Minimum value for the O2 lean ratio, to pass part 1 of the passive test, during a cold start. ; Ratio word_16D5C: dc.w 0 ; DATA XREF: OS2:0005FA22r DI_AIR_KV_AIRD_PASV_COLD_LEAN_THRESH:dcb.b 2,0 ; Maximum threshold value to update the passive lean timer. ; Seconds word_16D60: dc.w 0 ; DATA XREF: OS2:loc_5FA68r DI_AIR_KV_AIRD_PASV_COLD_MIN_TIME:dc.b 0 ; Minimum time to calculate a cold and lean ratio for the cold test. ; Seconds dc.b $64 ; d word_16D64: dc.w $64 ; DATA XREF: OS2:loc_5FBDAr DI_AIR_KV_AIRD_PASV_COLD_RICH_RATIO:dc.b 8 ; Maximum value for the O2 rich ratio, to pass part 1 of the passive test, during a cold start. ; Ratio dc.b 0 word_16D68: dc.w $800 ; DATA XREF: OS2:loc_5FA46r DI_AIR_KV_AIRD_PASV_COLD_RICH_THRESH:dcb.b 2,0 ; Minimum threshold value to update the passive rich timer. ; Volts word_16D6C: dc.w 0 ; DATA XREF: OS2:0005FC00r DI_AIR_KV_AIRD_PASV_HOT_LEAN_RATIO:dc.w 0 ; DATA XREF: sub_60178+43Cr ; Minimum value for the O2 lean ratio, to pass part 1 of the passive test, during a hot start. ; Ratio word_16D70: dc.w 0 ; DATA XREF: OS2:0005FAE6r DI_AIR_KV_AIRD_PASV_HOT_LEAN_THRESH:dcb.b 2,0 ; Maximum threshold value to update the passive lean timer. ; Volts word_16D74: dc.w 0 ; DATA XREF: OS2:loc_5FB2Cr DI_AIR_KV_AIRD_PASV_HOT_MIN_TIME:dc.b 0 ; Minimum threshold time to calculate a hot and lean ratio for the hot test. ; Seconds dc.b $64 ; d word_16D78: dc.w $64 ; DATA XREF: OS2:loc_5FC24r DI_AIR_KV_AIRD_PASV_HOT_RICH_RATIO:dc.b 8 ; Maximum value for the O2 rich ratio, to pass part1 of the passive test, during a hot start. ; Ratio dc.b 0 word_16D7C: dc.w $800 ; DATA XREF: OS2:loc_5FB0Ar DI_AIR_KV_AIRD_PASV_HOT_RICH_THRESH:dc.b 0 ; Minimum threshold value to update the passive rich timer. ; Volts dc.b 0 dc.b 0 dc.b 0 DI_AIR_KE_AIRD_PU_COOLANT_TEMP_MAX:dc.w $700 ; DATA XREF: OS1:0002C758r ; sub_60178+358r ; Maximum powerup coolant temperature threshold to enable the diagnostic. ; Degrees_C DI_AIR_KA_AIRD_ACTIVE_FUEL_TRIM_DELTA:dc.b 1 ; Determines the pass/fail thresholds for the fuel trim delta in the AIR diagnostic active test. ; scaler_2 dc.b $EC ; ? dc.b 1 dc.b $EC ; ? dc.b 1 dc.b $EC ; ? dc.b 1 dc.b $EC ; ? dc.b 1 dc.b $EC ; ? dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b 1 dc.b $EC ; ? dc.b 1 dc.b $EC ; ? dc.b 1 dc.b $EC ; ? dc.b 1 dc.b $EC ; ? dc.b 1 byte_16DA1: dc.b $EC ; DATA XREF: sub_60178+444r dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 DI_AIR_KA_AIRD_ACTIVE_LEAN_TIMER:dc.b $F ; Determines the pass/fail thresholds for the active lean timer in AIR diagnoctic active test. ; seconds dc.b $F dc.b $F dc.b $F dc.b $F dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $F dc.b $F dc.b $F dc.b $F dc.b $F dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF DI_AIR_KE_AIRD_ADAPTIVE_LEARN_TIME_MIN:dc.b $96 ; DATA XREF: sub_60178+11Er dc.b $FF DI_AIR_KE_AIRD_AIRFLOW_MIN:dc.w 0 ; DATA XREF: sub_60178+33Cr ; Minimum amount of airflow allowed to enable the diagnostic. ; grams per second DI_AIR_KE_AIRD_BARO_MIN:dc.w $3B33 ; DATA XREF: sub_60178+32Er ; Minimum amount of barometric pressure allowed to enable the diagnostic. ; kPa DI_AIR_KE_AIRD_COOLANT_TEMP_MAX:dc.w $B00 ; DATA XREF: sub_60178+38Cr ; ; Degrees_C DI_AIR_KE_AIRD_COOLANT_TEMP_MIN:dc.w $FF00 ; DATA XREF: sub_60178+380r ; Minimum coolant temperature threshold to enable the diagnostic. ; Degrees_C DI_AIR_KE_AIRD_ENGINE_LOAD_MIN:dc.w 0 ; DATA XREF: sub_60178+34Ar ; Minimum engine load threshold to enable the diagnostic. ; Percent DI_AIR_KE_AIRD_INTAKE_AIR_TEMP_MAX:dc.w $A00 ; DATA XREF: sub_60178+374r ; Maximum intake air temperature threshold to enable the diagnostic. ; Degrees_C DI_AIR_KE_AIRD_SYSTEM_VOLTAGE_MIN:dc.b $6E ; DATA XREF: sub_60178:loc_60538r ; Minimum system voltage threshold to enable the diagnostic. ; Volts DI_AIR_KE_AIRD_VOLTAGE_LOW_TIME:dc.b $1C ; DATA XREF: sub_60178+EEr ; sub_60178+3CCr ... ; Length of time the voltage must stay below the minimum voltage to disable the diagnostic. ; Seconds DI_AIR_KV_AIRD_ADAPTIVE_INDEX:dc.b 1 ; The adaptive indices in which the active test may run. ; unitless dc.b 2 dc.b 3 dc.b 4 dc.b 5 dc.b $FF dc.b $FF dc.b $FF word_16DD8: dc.w $FFFF ; DATA XREF: sub_60178+4A6r DI_AIR_KV_AIRD_SHORT_TERM_FUEL_TRIM:dc.b 4 ; Frozen rich short term fuel trim value used during the IAR active test in the base pulse width equation. ; unitless dc.b $56 ; V dc.b 4 dc.b $56 ; V DI_EOS_KE_EOSD_NUMBER_OF_HEATED_SENSORS:dc.b 4 ; DATA XREF: sub_73106:loc_731A0r ; sub_733E0+32r ... ; The number of O2 sensors in which the heater test is to be done. ; Unitless DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS:dc.b 4 ; DATA XREF: sub_714E0+4r ; sub_714E0:loc_716FCr ... DI_EOS_KE_EOSD_NUMBER_OF_RESP_SENSORS:dc.b 2 ; DATA XREF: sub_71122:loc_7114Cr ; sub_71DC2+2Er ... DI_EOS_KE_EOSD_INTRUSIVE_CNTRL_ENABLE:dc.b 0 ; DATA XREF: sub_34B00:loc_34EA0r ; This allow EOSD to intrusive control the fuel proportional terms and post O2 min/max limiting. ; Boolean DI_EOS_KE_EOSD_POST_OXYGEN_OFFSET_MAX:dc.w $7FFC ; DATA XREF: sub_34180:loc_341D2r ; sub_34180:loc_3423Er ; Limit maximum value of Post Oxygen Threshold Offset. ; Millivolts DI_EOS_KE_EOSD_POST_OXYGEN_OFFSET_MIN:dc.w $8004 ; DATA XREF: sub_34180+42r ; sub_34180+AEr ; Limit minimum value of Post Oxygen Threshold Offset. ; Millivolts DI_EOS_KE_EOSD_SYSTEM_VOLTAGE_MAX:dc.w $B464 ; DATA XREF: sub_72688+80r ; sub_72B0E+5C8r ... ; Maximum system voltage above which the O2 diag will be disabled. ; Volts DI_EOS_KV_EOSD_DELTA_TPS_LIMIT:dc.b 1 ; The change in throttle position required to increment EOSD_Num_Of_Delta_TPS_Changes. ; Percent dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 word_16DEE: dc.w $100 ; DATA XREF: sub_714E0+85Er DI_EOS_KV_EOSD_DFCO_FAIL_LIMIT:dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - word_16DF6: dc.w $2D ; DATA XREF: sub_714E0+892r DI_EOS_KV_EOSD_DFCO_SAMPLE:dc.b 0 ; Number of samples taken to complete a DFCO test assuming the failure threshold has not been reached. ; Counts dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 word_16DFE: dc.w $32 ; DATA XREF: sub_714E0+836r DI_EOS_KV_EOSD_DFCO_THRESHOLD:dc.b $3E ; > dc.b $35 ; 5 dc.b $37 ; 7 dc.b $4B ; K dc.b $3E ; > dc.b $35 ; 5 dc.b $37 ; 7 byte_16E07: dc.b $4B ; DATA XREF: sub_73106+BCr ; sub_748D0+12Cr DI_EOS_KV_EOSD_HEATED_SENSOR_INDEX:dc.b 1 ; A cross reference of heater sensor index to sensor index for heater testing sensor identification. ; Unitless dc.b 2 dc.b 3 byte_16E0B: dc.b 4 ; DATA XREF: sub_714E0+310r DI_EOS_KV_EOSD_LEAN_FAIL_DELAY_LIMIT:dc.b 5 ; Maximum number of times to count while waiting for completion of the related sensors lean test. ; Counts dc.b 5 word_16E0E: dc.w $505 ; DATA XREF: sub_714E0+2CCr DI_EOS_KV_EOSD_LEAN_FAIL_LIMIT:dc.b 1 ; Maximum times an oxygen sensor can be in a failure region for a given number of samples during the lean test. ; Counts dc.b $36 ; 6 dc.b 1 dc.b $7C ; | dc.b 1 dc.b $36 ; 6 word_16E16: dc.w $17C ; DATA XREF: sub_714E0+2A4r DI_EOS_KV_EOSD_LEAN_LOW_LIMIT:dc.b 1 ; The number of lean failure samples required to set the fault pending flag. ; Counts dc.b $36 ; 6 dc.b 1 dc.b $7C ; | dc.b 1 dc.b $36 ; 6 word_16E1E: dc.w $17C ; DATA XREF: sub_714E0+27Cr DI_EOS_KV_EOSD_LEAN_LOW_THRESHOLD:dc.b $17 ; Voltage threshold below which a sensor will be considered to be failed lean for the fault pending criteria. ; Millivolts dc.b $A dc.b 9 dc.b $37 ; 7 dc.b $17 dc.b $A word_16E26: dc.w $937 ; DATA XREF: sub_714E0+398r DI_EOS_KV_EOSD_LEAN_SAMPLE:dc.b 1 ; Number of samples taken to complete a lean test assuming the failure threshold has not been reached. ; Counts dc.b $4A ; J dc.b 1 dc.b $90 ; ? dc.b 1 dc.b $4A ; J word_16E2E: dc.w $190 ; DATA XREF: sub_714E0+25Ar DI_EOS_KV_EOSD_LEAN_THRESHOLD:dc.b $17 dc.b $A dc.b 9 dc.b $37 ; 7 dc.b $17 dc.b $A word_16E36: dc.w $937 ; DATA XREF: sub_714E0+15Ar DI_EOS_KV_EOSD_NUM_OF_DELTA_TPS_MAX:dc.l off_0+6 ; The number of delta TPS changes required to allow the Open test to report a failure. ; Counts dc.b 0 dc.b 0 dc.b 0 byte_16E3F: dc.b 6 ; DATA XREF: sub_714E0+4B0r DI_EOS_KV_EOSD_NUM_OF_REL_PE_SENSORS:dc.b 0 ; Number of related PE sensors to check whenever a power enrichment condition is executed. ; Unitless dc.b 0 dc.b 0 byte_16E43: dc.b 0 ; DATA XREF: sub_714E0+322r ; sub_714E0+688r DI_EOS_KV_EOSD_NUM_OF_RELATED_SENSORS:dc.b 2 ; Number of sensors to check whenever a rich or lean condition is suspected. ; Unitless dc.b 2 word_16E46: dc.w $202 ; DATA XREF: sub_714E0+134r ; sub_714E0+14Ar ... DI_EOS_KV_EOSD_OPEN_FAIL_LIMIT:dc.b 2 dc.b $3A ; : dc.b 5 dc.b $AA ; ? dc.b 2 dc.b $3A ; : word_16E4E: dc.w $5AA ; DATA XREF: sub_714E0+9Cr DI_EOS_KV_EOSD_OPEN_HIGH_THRESHOLD:dc.b $3F ; ? dc.b $5C ; \ dc.b $38 ; 8 dc.b $72 ; r dc.b $3F ; ? dc.b $5C ; \ word_16E56: dc.w $3872 ; DATA XREF: sub_714E0:loc_71572r DI_EOS_KV_EOSD_OPEN_LOW_THRESHOLD:dc.b $28 ; ( dc.b $52 ; R dc.b $2F ; / dc.b $3B ; ; dc.b $28 ; ( dc.b $52 ; R word_16E5E: dc.w $2F3B ; DATA XREF: sub_714E0+19Er DI_EOS_KV_EOSD_OPEN_SAMPLE:dc.b 2 ; Number of samples taken to complete an open test assuming the failure threshold has not been reached. ; Counts dc.b $58 ; X dc.b 5 dc.b $DC ; ? dc.b 2 dc.b $58 ; X dc.b 5 byte_16E67: dc.b $DC ; DATA XREF: sub_742A6+A4r ; sub_742A6+294r ... DI_EOS_KV_EOSD_POST_SENSOR_INDEX:dc.w $204 ; DATA XREF: sub_714E0+518r ; A cross-reference of the post O2 sensor index to sensor index for post sensor testing identification. ; Unitsless DI_EOS_KV_EOSD_POWER_FAIL_LIMIT:dc.b 0 dc.b $5F ; _ dc.b 0 dc.b $5F ; _ dc.b 0 dc.b $5F ; _ word_16E70: dc.w $5F ; DATA XREF: sub_714E0+54Cr DI_EOS_KV_EOSD_POWER_SAMPLE:dc.b 0 ; Number of samples taken to complete a power enrichment test assuming the failure threshold has not been reached. ; Counts dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d word_16E78: dc.w $64 ; DATA XREF: sub_714E0+4F0r DI_EOS_KV_EOSD_POWER_THRESHOLD:dc.b $29 ; ) dc.b $79 ; y dc.b $30 ; 0 dc.b $62 ; b dc.b $29 ; ) dc.b $79 ; y dc.b $30 ; 0 byte_16E81: dc.b $62 ; DATA XREF: sub_714E0+4BCr DI_EOS_KV_EOSD_RELATED_PE_SENSOR_INDEX:dc.b 3 ; A cross-reference of the PE sensor index to the sensor index which serves to identify the specific sensor during PE testing. ; Unitless dc.b 4 dc.b 1 byte_16E85: dc.b 2 ; DATA XREF: sub_714E0+330r ; sub_714E0+372r ... DI_EOS_KV_EOSD_RELATED_SENSOR_INDEX:dc.b 2 dc.b 1 dc.b 1 byte_16E89: dc.b 3 ; DATA XREF: sub_714E0+388r ; sub_714E0+6EEr DI_EOS_KV_EOSD_RELATED_2ND_SENSOR_INDEX:dc.b 3 dc.b 3 word_16E8C: dc.w $401 ; DATA XREF: sub_71122:loc_7145Er ; sub_71122:loc_714A8r DI_EOS_KV_EOSD_RESP_HC_LEAN_THRESH:dc.b $2E ; . ; Threshold which separates normal and lean operating zones using the half cycle time method. ; Millivolts dc.b $14 word_16E90: dc.w $2E14 ; DATA XREF: sub_71122:loc_71470r ; sub_71122:loc_7147Cr DI_EOS_KV_EOSD_RESP_HC_RICH_THRESH:dc.b $39 ; 9 ; Threshold which separates normal and rich operating zones using the half cycle time method. ; Millivolts dc.b $99 ; ? word_16E94: dc.w $3999 ; DATA XREF: sub_42224+60r ; sub_71122:loc_7120Cr ... DI_EOS_KV_EOSD_RESP_ST_LEAN_THRESH:dc.w $1CCD ; DATA XREF: sub_3EA90+38Cr ; Threshold which separates normal and lean operating zones using the slope time method. ; Millivolts word_16E98: dc.w $1CCD ; DATA XREF: sub_3EA90+53Cr ; sub_422AA+60r ... DI_EOS_KV_EOSD_RESP_ST_RICH_THRESH:dc.w $47FF ; DATA XREF: sub_3EA90+3A8r ; Threshold which separates normal and rich operating zones using the slope time method. ; Millivolts unk_16E9C: dc.b $47 ; G ; DATA XREF: sub_3EA90+556r byte_16E9D: dc.b $FF ; DATA XREF: sub_70CF2+8Er ; sub_70CF2+A2r ... DI_EOS_KV_EOSD_RESP_SENSOR_INDEX:dc.b 1 byte_16E9F: dc.b 3 ; DATA XREF: sub_714E0+676r DI_EOS_KV_EOSD_RICH_FAIL_DELAY_LIMIT:dc.b 5 ; The number of times to count while waiting for completion of the related sensors' rich test. ; Counts dc.b 5 word_16EA2: dc.w $505 ; DATA XREF: sub_714E0+632r DI_EOS_KV_EOSD_RICH_FAIL_LIMIT:dc.b 1 dc.b $36 ; 6 dc.b 1 dc.b $7C ; | dc.b 1 dc.b $36 ; 6 word_16EAA: dc.w $17C ; DATA XREF: sub_714E0+60Ar DI_EOS_KV_EOSD_RICH_HIGH_LIMIT:dc.b 1 ; The number of rich failure samples required to set the fault pending flag. ; Counts dc.b $36 ; 6 dc.b 1 dc.b $7C ; | dc.b 1 dc.b $36 ; 6 word_16EB2: dc.w $17C ; DATA XREF: sub_714E0+5E2r DI_EOS_KV_EOSD_RICH_HIGH_THRESHOLD:dc.b $67 ; g ; Value above which a sensor will be considered to be failed rich for the fault pending criteria. ; Millivolts dc.b $AD ; ? dc.b $6D ; m dc.b $70 ; p dc.b $67 ; g dc.b $AD ; ? word_16EBA: dc.w $6D70 ; DATA XREF: sub_714E0+6FEr DI_EOS_KV_EOSD_RICH_SAMPLE:dc.b 1 ; Number of samples taken to complete a rich test assuming the failure threshold has not been reached. ; Counts dc.b $4A ; J dc.b 1 dc.b $90 ; ? dc.b 1 dc.b $4A ; J word_16EC2: dc.w $190 ; DATA XREF: sub_714E0+5C0r DI_EOS_KV_EOSD_RICH_THRESHOLD:dc.b $67 ; g dc.b $AD ; ? dc.b $6D ; m dc.b $70 ; p dc.b $67 ; g dc.b $AD ; ? dc.b $6D ; m byte_16ECB: dc.b $70 ; DATA XREF: sub_714E0+E8r ; sub_714E0+100r ... DI_EOS_KV_EOSD_SENSOR_INDEX:dc.l unk_10203 ; A mapping of sensor names to the sensor index which serves to identify the specific sensor during testing, reporting, etc. ; Unitless DI_EOS_KV_EOSD_PROP_TERM_NORM_BAS_LEAN:dc.b 0 ; DATA XREF: sub_34B00+458o ; sub_34B00+570o dc.b $4A ; J dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4A ; J DI_EOS_KV_EOSD_PROP_TERM_NORM_BAS_RICH:dc.b 0 ; DATA XREF: sub_34B00+43Co ; sub_34B00+554o dc.b $4A ; J dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4A ; J DI_EOS_KA_EOSD_ST_LRA_LIM_RS1:dc.b $FF ; DATA XREF: sub_42438+8Co ; sub_71DC2+3F2o ... ; The lean-to-rich average response time (Bank 1 Sensor 1) threshold above which a response time failure will be reported. ; Milliseconds dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF DI_EOS_KA_EOSD_ST_LRA_LIM_RS2:dc.b $FF ; DATA XREF: sub_42438:loc_424CCo ; sub_71DC2:loc_721BCo ... ; The lean-to-rich average response time (Bank 2 Sensor 1) threshold above which a response time failure will be reported. ; Milliseconds dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF DI_EOS_KA_EOSD_ST_RLA_LIM_RS1:dc.b $FF ; DATA XREF: sub_42330+8Co ; sub_71DC2+466o ... ; The rich-to-lean average response time threshold (Bank 1 Sensor 1) above which a response time failure will be reported. ; Milliseconds dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF DI_EOS_KA_EOSD_ST_RLA_LIM_RS2:dc.b $FF ; DATA XREF: sub_42330:loc_423C4o ; sub_71DC2:loc_72230o ... ; The rich-to-lean average response time threshold (Bank 2 Sensor 1) above which a response time failure will be reported. ; Milliseconds dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF DI_EOS_KE_EOSD_ST_LRS_LIM_RS1:dc.b 1 ; DATA XREF: sub_425EE+7Er ; sub_71DC2+74r ; The number of lean-to-rich switches (Bank 1 Sensor 1) below which a switches failure will be reported. ; Unitless DI_EOS_KE_EOSD_ST_LRS_LIM_RS2:dc.b 1 ; DATA XREF: sub_425EE+88r ; sub_71DC2+7Er ; The number of lean-to-rich switches (Bank 2 Sensor 1) below which a switches failure will be reported. ; Unitless DI_EOS_KE_EOSD_ST_RLS_LIM_RS1:dc.b 1 ; DATA XREF: sub_42540+7Er ; sub_71DC2+8Er ; The number of rich-to-lean switches (Bank 1 Sensor 1) below which a switches failure will be reported. ; Unitless DI_EOS_KE_EOSD_ST_RLS_LIM_RS2:dc.b 1 ; DATA XREF: sub_42540+88r ; sub_71DC2+98r ; The number of rich-to-lean switches (Bank 2 Sensor 1) below which a switches failure will be reported. ; Unitless DI_EOS_KA_EOSD_HC_LRS_LIM_RS1:dc.b 5 ; DATA XREF: sub_71DC2+144o ; The number of lean-to-rich half cycle switches (Bank 1 Sensor 1) below which a switches failure will be reported. ; Unitless dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 DI_EOS_KA_EOSD_HC_LRS_LIM_RS2:dc.b 5 ; DATA XREF: sub_71DC2:loc_71F0Eo ; The number of lean-to-rich half cycle switches (Bank 2 Sensor 1) below which a switches failure will be reported. ; Unitless dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 DI_EOS_KA_EOSD_HC_RLS_LIM_RS1:dc.b 5 ; DATA XREF: sub_71DC2+1ACo ; The number of rich-to-lean half cycle switches (Bank 1 Sensor 1) below which a switches failure will be reported. ; Unitless dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 DI_EOS_KA_EOSD_HC_RLS_LIM_RS2:dc.b 5 ; DATA XREF: sub_71DC2:loc_71F76o ; The number of rich-to-lean half cycle switches (Bank 2 Sensor 1) below which a switches failure will be reported. ; Unitless dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 DI_EOS_KA_EOSD_ST_RATIO_LOW_LIM_RS1:dc.b 3 ; DATA XREF: sub_4269C+7Ao ; sub_71DC2+572o dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 DI_EOS_KA_EOSD_ST_RATIO_LOW_LIM_RS2:dc.b 3 ; DATA XREF: sub_4269C:loc_4271Eo ; sub_71DC2:loc_7233Co dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 DI_EOS_KA_EOSD_ST_RATIO_HIGH_LIM_RS1:dc.b $FF ; DATA XREF: sub_4269C+DAo ; sub_71DC2+50Ao dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF DI_EOS_KA_EOSD_ST_RATIO_HIGH_LIM_RS2:dc.b $FF ; DATA XREF: sub_4269C:loc_4277Eo ; sub_71DC2:loc_722D4o dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF DI_EOS_KA_EOSD_ST_DIFFLOW_LIM_RS1:dc.b $FF ; DATA XREF: sub_71DC2+67Co dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 DI_EOS_KA_EOSD_ST_DIFFLOW_LIM_RS2:dc.b $FF ; DATA XREF: sub_71DC2:loc_72446o dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b $38 ; 8 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 dc.b $FF dc.b 1 DI_EOS_KA_EOSD_ST_DIFFHIGH_LIM_RS1:dc.b 0 ; DATA XREF: sub_71DC2+614o dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF DI_EOS_KA_EOSD_ST_DIFFHIGH_LIM_RS2:dc.b 0 ; DATA XREF: sub_71DC2:loc_723DEo dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF DI_EOS_KE_EOSD_CURMON_AIRFLOW_LOW:dc.w $180 ; DATA XREF: sub_73106+36r ; Minimum airflow value for enabling the oxygen sensor heater current monitor. ; Grams Per Second DI_EOS_KE_EOSD_CURMON_AIRFLOW_HIGH:dc.w $1400 ; DATA XREF: sub_73106+3Er ; Maximum airflow value for enabling the oxygen sensor heater current monitor. ; Grams Per Second DI_EOS_KE_EOSD_CURMON_COOLANT_TEMP:dc.w $500 ; DATA XREF: sub_73106+62r ; Coolant temperature above which the oxygen sensor heater current monitor test will be enabled. ; Degrees_C DI_EOS_KV_EOSD_CURMON_CURRENT_MAX:dc.w $320 ; DATA XREF: sub_73106+14Ar dc.b 1 dc.b $60 ; ` dc.b 3 dc.b $20 dc.b 1 dc.b $60 ; ` DI_EOS_KV_EOSD_CURMON_CURRENT_MIN:dc.w $40 ; DATA XREF: sub_73106+140r dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $40 ; @ DI_EOS_KE_EOSD_CURMON_DELAY_TIMER:dc.w 0 ; DATA XREF: sub_73106+106r ; The delay time between consecutive oxygen sensor current monitor tests. ; Seconds DI_EOS_KE_EOSD_CURMON_ENABLE_DELAY:dc.w $140 ; DATA XREF: sub_73106+78r ; The delay time before which the oxygen sensor heater current monitor test will be enabled. ; Seconds DI_EOS_KE_EOSD_CURMON_ENG_RUN_TIME:dc.w $4B00 ; DATA XREF: sub_73106:loc_7315Cr ; Engine run time above which the oxygen sensor heater current monitor test will be enabled. ; Seconds DI_EOS_KE_EOSD_CURMON_ENGINE_SPEED_LOW:dc.w $A00 ; DATA XREF: sub_73106+26r ; Minimum engine speed value for enabling the oxygen sensor heater current monitor diagnostic. ; RPM DI_EOS_KE_EOSD_CURMON_ENGINE_SPEED_HIGH:dc.w $3C00 ; DATA XREF: sub_73106+2Er ; Maximum engine speed value for enabling the oxygen sensor heater current monitor diagnostic. ; RPM DI_EOS_KE_EOSD_CURMON_FAIL_LIMIT:dc.w 8 ; DATA XREF: sub_73106+172r ; sub_73106+1A4r ... ; The number of failure samples required to fail an oxygen sensor heatercurrent monitor test. ; Counts DI_EOS_KE_EOSD_CURMON_SAMPLE_LIMIT:dc.w $A ; DATA XREF: sub_73106+1F0r ; Number of samples required to complete an oxygen sensor heater current monitor test. ; Counts DI_EOS_KE_EOSD_CURMON_TEST_CTR_LIMIT:dc.b 1 ; DATA XREF: sub_73106+FCr ; The maximum number of oxygen sensor heater current monitor tests to be run during this key cycle. ; Counts dc.b $FF DI_EOS_KE_EOSD_FAULTS_THAT_DISABLE:dc.l $287818C6 ; DATA XREF: sub_72688+32r ; If TRUE is specified for the indexed fault group, then any active fault within that group will inhibit the EOSD diagnostic. ; Cal_Set_Of_Fault_Group_Type DI_EOS_KE_EOSD_PE_DFCO_RUN_TIME:dc.w $12C0 ; DATA XREF: sub_72B0E:loc_72DBEr ; sub_72B0E:loc_72E9Cr ; Engine run time above which the oxygen sensor power enrichment and DFCO tests will be enabled. ; Seconds DI_EOS_KE_EOSD_LEAN_DELAY:dc.w $140 ; DATA XREF: sub_72B0E+F8r ; Delay time after the lean test enable criteria have been met before starting data collection for lean test. ; Seconds DI_EOS_KE_EOSD_LEANPE_ETHANOL_THRESH:dc.w $1200 ; DATA XREF: sub_72B0E+52r ; sub_72B0E+27Cr ; The ethanol percent below which the lean and power enrichment test will be enabled. ; Percent DI_EOS_KE_EOSD_LOW_FUEL_DISABLE:dc.w $200 ; DATA XREF: sub_72748+68r ; sub_72B0E+84r ... ; The fuel levelbelow which certain O2 sensor diagnostics will be disabled ; Percent DI_EOS_KE_EOSD_MAX_EQUIVALENCE_RATIO:dc.w $40E ; DATA XREF: sub_72B0E+76r ; sub_72B0E+186r ; Maximum Equivalence Ratio to enable the lean and rich oxygen sensor range tests. ; Ratio DI_EOS_KE_EOSD_MIN_EQUIVALENCE_RATIO:dc.w $3F8 ; DATA XREF: sub_72B0E+68r ; sub_72B0E+178r ; Minimum Equivalence Ratio to enable the lean and rich oxygen sensor range tests. ; Ratio DI_EOS_KE_EOSD_O2_DFCO_TEST_ENABLE:dc.b 1 ; DATA XREF: sub_72B0E+35Ar ; Used to enable or disable the activation of the O2 DFCO test. ; Flag DI_EOS_KE_EOSD_O2_LEAN_TEST_ENABLE:dc.b 1 ; DATA XREF: sub_72B0E+22r ; Used to enable or disable the activation of the O2 lean test. ; Flag DI_EOS_KE_EOSD_O2_OPEN_TEST_ENABLE:dc.b 1 ; DATA XREF: sub_72B0E+48Er ; sub_72B0E+4C2r ; Used to enable or disable the activation of the O2 open test. ; Flag DI_EOS_KE_EOSD_O2_PE_TEST_ENABLE:dc.b 1 ; DATA XREF: sub_72B0E+286r ; Used to enable or disable the activation of the O2 PE test. ; Flag DI_EOS_KE_EOSD_O2_RESPONSE_TEST_ENABLE:dc.b 1 ; DATA XREF: sub_72748+1Ar ; Used to enable or disable the activation of the O2 response test. ; Flag DI_EOS_KE_EOSD_O2_RICH_TEST_ENABLE:dc.b 1 ; DATA XREF: sub_72B0E+158r ; Used to enable or disable the activation of the O2 rich test. ; Flag DI_EOS_KE_EOSD_OPEN_ENGINE_RUN_TIME:dc.w $BB80 ; DATA XREF: sub_72B0E+4A2r ; sub_72B0E+566r ; Minimum engine run time threshold to enable the oxygen sensor range tests. ; Seconds DI_EOS_KE_EOSD_OPEN_ETHANOL_THRESH:dc.w $1200 ; DATA XREF: sub_72B0E+49Ar ; sub_72B0E+4F2r ; The ethanol percent below which the open test will be enabled. ; Percent DI_EOS_KE_EOSD_OPEN_FAST_PASS_PERIOD:dc.w $7D00 ; DATA XREF: sub_72B0E+530r ; Post catalyst oxygen sensor fast pass period. ; Seconds DI_EOS_KE_EOSD_RESP_DELAY_TIME:dc.w $A0 ; DATA XREF: sub_729F4+90r ; Delay time after the response test enable criteria have been met but before starting data collection for the response test. ; Seconds DI_EOS_KE_EOSD_RESP_ENGINE_SPEED_HIGH:dc.w $2E00 ; DATA XREF: sub_729F4+44r ; Maximum engine speed for enabling data collection for the response test. ; RPM DI_EOS_KE_EOSD_RESP_ENGINE_SPEED_LOW:dc.w $1400 ; DATA XREF: sub_729F4+3Ar ; Mimimum engine speed for enabling data collection for the response test. ; RPM DI_EOS_KE_EOSD_RESP_ETHANOL_THRESH:dc.w $1200 ; DATA XREF: sub_72748+10r ; The ethanol percent below which the response test will be enabled. ; Percent DI_EOS_KE_EOSD_RESP_FLOW_HIGH:dc.w $1B80 ; DATA XREF: sub_729F4+30r ; Maximum airflow value for enabling data collection for the response test. ; GPS DI_EOS_KE_EOSD_RESP_FLOW_LOW:dc.w $780 ; DATA XREF: sub_729F4+26r ; Minimum airflow value for enabling data collection for the response test. ; GPS DI_EOS_KE_EOSD_RESP_MIN_COOLANT_TEMP:dc.w $500 ; DATA XREF: sub_72748+32r ; Minimum coolant temperature threshold required to start data collection for the response test. ; Degrees C DI_EOS_KE_EOSD_RESP_MIN_ENGINE_RUN:dc.w $6400 ; DATA XREF: sub_72748:loc_72794r ; Minimum engine run time threshold required to start data collection for the response test. ; Seconds DI_EOS_KE_EOSD_RESP_PURGE_DC_MIN:dc.w $33 ; DATA XREF: sub_72748+5Ar ; Minimum allowable purge duty cycle threshold which still permits data collection for the response test. ; Percent DI_EOS_KE_EOSD_RESP_TPS_MIN:dc.w $100 ; DATA XREF: sub_729F4:loc_72A5Ar ; Minimum TPS required to enable the response diagnostic. ; Percent DI_EOS_KE_EOSD_RICH_DELAY:dc.w $140 ; DATA XREF: sub_72B0E+208r ; Delay time after the rich test enable criteria have been met before starting data collection for rich test. ; Seconds DI_EOS_KE_EOSD_RICHDFCO_ETHANOL_THRESH:dc.w $1200 ; DATA XREF: sub_72B0E+16Ar ; sub_72B0E+36Cr ; The ethanol percent below which the rich and decel fuel cutoff test will be enabled. ; Percent DI_EOS_KE_EOSD_RICH_SATURATED_ER:dc.w $433 ; DATA XREF: sub_72B0E+336r ; The equivalence ration below which the rich saturation counter of the DFCO test will be incremented. ; Ratio DI_EOS_KE_EOSD_SYSTEM_VOLTAGE_TIME:dc.w $320 ; DATA XREF: sub_72688+8Ar ; Length of time the voltage must stay below the minimum voltage to disable the O2 diagnostics. ; Seconds DI_EOS_KE_O2_DIAG_COLD_START_AMBIENT:dc.w $500 ; DATA XREF: sub_73608+4Cr ; Powerup ambient temperature must be less than this for an O2 diagnostic cold start. ; Degrees_C DI_EOS_KE_O2_DIAG_COLD_START_COOLANT:dc.w $500 ; DATA XREF: sub_73608+44r ; Powerup coolant temperature must be less than this for an O2 diagnostic cold start. ; Degrees_C DI_EOS_KE_O2_DIAG_COLD_START_DELTA:dc.w $CD ; DATA XREF: sub_73608:loc_73676r DI_EOS_KE_TRANSIENT_TPS_TIME:dc.w $140 ; DATA XREF: sub_72926+9Ar ; Time that the min and max TPS will be measured over. ; Seconds DI_EOS_KE_EOSD_RCOHT_OOR_CHECK_ENABLED:dc.b 0 ; DATA XREF: sub_73106+ECr ; sub_73106+284r ; Indicates whether reporting of the RCOHT limit part learn out of range check is enabled. ; BOOLEAN dc.b $FF DI_EOS_KV_EOSD_O2_HTR_TEMPERATURE_MIN:dc.w $8000 ; DATA XREF: sub_72748+D4r ; The front O2 heaters must be below this value to allow the response diagnostic to be enabled. ; Degrees_C dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 DI_EOS_KV_EOSD_O2_HTR_TEMPERATURE_MAX:dc.w $7FFF ; DATA XREF: sub_72748+DEr ; ; dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF word_17356: dc.w $7FFF ; DATA XREF: sub_72B0E:loc_72EF8r ; sub_72B0E+412r DI_EOS_KV_EOSD_DFCO_DELAY:dc.b 1 ; Delay time after the DFCO test enable criteria have been met before starting data collection for the DFCO test. ; Seconds dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 1 dc.b $40 ; @ word_1735E: dc.w $640 ; DATA XREF: sub_72B0E+BEr DI_EOS_KV_EOSD_LEAN_THROTTLE_LOW:dc.b 0 ; Minimum TPSThreshold below which the lean test will be disabled. ; Percent dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? word_17366: dc.w $9A ; DATA XREF: sub_72B0E+C8r DI_EOS_KV_EOSD_LEAN_THROTTLE_HIGH:dc.b $E ; Maximum TPSThreshold above which the lean test will be disabled. ; Percent dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 word_1736E: dc.w $E00 ; DATA XREF: sub_72B0E+2FEr DI_EOS_KV_EOSD_POWER_DELAY:dc.b 0 ; Delay time after the PE test enable criteria have been met before starting data collection for the PE test. ; Seconds dc.b $A0 ; ? dc.b 1 dc.b $40 ; @ dc.b 0 dc.b $A0 ; ? word_17376: dc.w $140 ; DATA XREF: sub_72B0E+1CEr DI_EOS_KV_EOSD_RICH_THROTTLE_LOW:dc.b 0 ; Minimum TPSThreshold below which the rich test will be disabled. ; Percent dc.b $9A ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9A ; ? word_1737E: dc.w $9A ; DATA XREF: sub_72B0E+1D8r DI_EOS_KV_EOSD_RICH_THROTTLE_HIGH:dc.b $E ; Maximum TPSThreshold above which the rich test will be disabled. ; Percent dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 DG_ODM_KE_OUTPUT_DRIVER_ENGINE_SPEED_TH:dc.w $800 ; DATA XREF: sub_73A3E+20r ; sub_73A3E+A4r ... ; Above this speed, output driver diagnostics may be enabled. ; RPM DG_ODM_KV_SIDM_FAIL_COUNTER:dc.b $A ; DATA XREF: sub_740E0+70r dc.b $A dc.b $FA ; ? dc.b $FA ; ? dc.b $A dc.b $A dc.b $A dc.b $28 ; ( dc.b $FA ; ? dc.b $A dc.b $FA ; ? dc.b $FA ; ? dc.b $FA ; ? dc.b $A dc.b $A dc.b $FA ; ? dc.b $FA ; ? dc.b $FA ; ? dc.b $A dc.b $A dc.b $FA ; ? dc.b $FF DG_ODM_KV_SIDM_SAMPLE_COUNTER:dc.b $64 ; DATA XREF: sub_740E0+9Ar dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF DG_ODM_KV_ODM_FAIL_COUNTER:dc.b $A ; DATA XREF: sub_73A3E+1A8r byte_173B7: dc.b $FA ; DATA XREF: sub_73A3E+21Er byte_173B8: dc.b $A ; DATA XREF: sub_73A3E+294r byte_173B9: dc.b $A ; DATA XREF: sub_73A3E+324r byte_173BA: dc.b $FA ; DATA XREF: sub_73A3E+39Ar dc.b $FF DG_ODM_KV_ODM_SAMPLE_COUNTER:dc.b $64 ; DATA XREF: sub_73A3E+1C8r byte_173BD: dc.b $64 ; DATA XREF: sub_73A3E+23Er byte_173BE: dc.b $64 ; DATA XREF: sub_73A3E+2B4r byte_173BF: dc.b $64 ; DATA XREF: sub_73A3E+344r byte_173C0: dc.b $64 ; DATA XREF: sub_73A3E+3BAr dc.b $FF DG_ODM_KV_MFD1_FAIL_COUNTER:dc.b 5 ; DATA XREF: sub_73A3E+41Er byte_173C3: dc.b $A ; DATA XREF: sub_73A3E+484r byte_173C4: dc.b $3C ; DATA XREF: sub_73A3E+4EAr dc.b $FF DG_ODM_KV_MFD1_SAMPLE_COUNTER:dc.b $64 ; DATA XREF: sub_73A3E+43Er byte_173C7: dc.b $64 ; DATA XREF: sub_73A3E+4A4r byte_173C8: dc.b $64 ; DATA XREF: sub_73A3E+50Ar DG_ODM_KE_TFD_FAIL_COUNTER:dc.b $A ; DATA XREF: sub_73A3E+5A2r ; This is the fail counter cal for TFD diagnostics. ; SHORTCARD DG_ODM_KE_TFD_SAMPLE_COUNTER:dc.b $64 ; DATA XREF: sub_73A3E:loc_73FFAr ; This is the pass counter cal for TFD diagnostics. ; SHORTCARD dc.b $FF DG_POS_KE_POSD_STAGE2_ENABLE_TIME_MIN:dc.w $1FA4 ; DATA XREF: sub_742A6+10Er DI_POS_KE_POSD_NUM_OF_POST_O2_SENSORS:dc.b 2 ; DATA XREF: sub_742A6+4r ; sub_742A6+13Ar ... ; The number of post catalyst oxygen sensors in the system. ; Unitless dc.b $FF DI_POS_KV_POSD_LEAN_TIMER:dc.b $FE ; DATA XREF: sub_742A6+258r ; The amount of time to wait during the lean intrusive test before considering the sensor failed. ; Seconds dc.b $FE ; ? dc.b $FE ; ? dc.b $FE ; ? word_173D4: dc.w $FEFF ; DATA XREF: sub_742A6+2Er ; sub_742A6+CEr ... DI_POS_KV_POSD_POST_O2_LEAN_THRESHOLD:dc.b $28 ; ( ; The voltage threshold below which the post catalyst oxygen sensor is considered to be in a lean state. ; Millivolts dc.b $51 ; Q word_173D8: dc.w $2851 ; DATA XREF: sub_742A6:loc_742E8r ; sub_742A6+F2r ... DI_POS_KV_POSD_POST_O2_RICH_THRESHOLD:dc.b $51 ; Q ; The voltage threshold above which the post catalyst oxygen sensor is considered to be in a rich state. ; Millivolts dc.b $CA ; ? word_173DC: dc.w $51CA ; DATA XREF: sub_742A6+1F4r DI_POS_KV_POSD_PRE_O2_LEAN_THRESHOLD:dc.b $22 ; " ; The voltage threshold below which the pre-catalyst oxygen sensor is considered to be in a lean state. ; Millivolts dc.b $8F ; ? word_173E0: dc.w $228F ; DATA XREF: sub_742A6+1E2r DI_POS_KV_POSD_PRE_O2_RICH_THRESHOLD:dc.b $45 ; E ; The voltage threshold above which the pre-catalyst oxygen sensor is considered to be in a rich state. ; Millivolts dc.b $1E dc.b $45 ; E dc.b $1E DI_POS_KV_POSD_RICH_TIMER:dc.b $FE ; DATA XREF: sub_742A6+33Cr ; The amount of time to wait during the rich intrusive test before considering the sensor failed. ; Seconds dc.b $FE ; ? dc.b $FE ; ? dc.b $FE ; ? dc.b $FE ; ? dc.b $FF DI_POS_KE_POSD_ENGINE_AIRFLOW_MAX:dc.w $1B80 ; DATA XREF: sub_7468C+72r ; The maximum engine airflow above which the intrusive test is disabled. ; Grams_Per_Second DI_POS_KE_POSD_ENGINE_AIRFLOW_MIN:dc.w $280 ; DATA XREF: sub_7468C+68r ; The minimum engine airflow below which the intrusive test is disabled. ; Grams_Per_Second DI_POS_KE_POSD_ENGINE_RUN_TIME_MIN:dc.w $140 ; DATA XREF: sub_748D0:loc_748E4r ; Minimum engine running time before the time activated processes are run. ; Seconds DI_POS_KE_POSD_ENGINE_SPEED_MAX:dc.w $6400 ; DATA XREF: sub_7468C+5Er ; The maximum engine speed above which the intrusive test is disabled. ; RPM DI_POS_KE_POSD_ENGINE_SPEED_MIN:dc.w $A00 ; DATA XREF: sub_7468C+54r ; The minimum engine speed below which the intrusive test is disabled. ; RPM DI_POS_KE_POSD_LEAN_EQUIV_RATIO:dc.w $3AE ; DATA XREF: sub_7468C+206r ; The A/F commanded adjustment requested to force the fuel system lean during the intrusive test. ; 0 - 32 DI_POS_KE_POSD_NUM_STAGE2_TESTS:dc.b $C ; DATA XREF: sub_7468C:loc_746D6r ; The maximum number of intrusive tests to run during any one trip. ; SHORTCARD DI_POS_KE_POSD_NUMBER_OF_POST_LTM_CELLS:dc.b $16 ; DATA XREF: sub_7468C+6r ; The number of adaptive (block learn) cells that can be configured to enable the response diagnostic in specific adaptive cells. ; SHORTCARD DI_POS_KE_POSD_RICH_EQUIV_RATIO:dc.w $452 ; DATA XREF: sub_7468C+228r ; The A/F commanded adjustment requested to force the fuel system rich during the intrusive test. ; 0 - 32 DI_POS_KE_POSD_STAGE2_STABILIZATION_MIN:dc.w $A0 ; DATA XREF: sub_7468C+ACr ; The minimum amount of time required for the system criteria to be stabilized before executing intrusive tests. ; Seconds DI_POS_KE_POSD_STAGE2_TEST_ORDER:dc.b 1 ; DATA XREF: sub_7468C+172r ; Determines if the fuel control will be commanded rich-to-lean or leasn-to-rich during the intrusive test. ; Test Order Type dc.b $FF DI_POS_KE_POSD_VEHICLE_SPEED_MAX:dc.w $2900 ; DATA XREF: sub_7468C+86r ; The maximum vehicle speed above which the intrusive test is disabled. ; MPH DI_POS_KE_POSD_VEHICLE_SPEED_MIN:dc.w $780 ; DATA XREF: sub_7468C+7Cr ; The minimum vehicle speed below which the intrusive test is disabled. ; MPH DI_POS_KV_POSD_CL_SHORT_TERM_INT_MAX:dc.b $8C ; ? ; Maximum short term integrator value above which the intrusive portion of the test will be disabled. ; 0 - 2 byte_17405: dc.b $8C ; DATA XREF: sub_7468C+11Er DI_POS_KV_POSD_CL_SHORT_TERM_INT_MIN:dc.b $73 ; s ; Minimum short term integrator value below which the intrusive portion of the test will be disabled. ; 0 - 2 byte_17407: dc.b $73 ; DATA XREF: sub_7468C+1Cr DI_POS_KV_POSD_POST_CELL_ENABLE:dc.l unk_10203 ; A table of adaptive (block learn) cells in which to enable the post oxygen sensor tests. ; Unitless dc.b 4 dc.b 5 dc.b 6 dc.b 7 dc.b 8 dc.b 9 dc.b $A dc.b $B dc.b $C dc.b $D dc.b $E dc.b $F dc.b $10 dc.b $11 dc.b $12 dc.b $13 dc.b $14 dc.b $15 dc.b $16 dc.b $FF DG_TPS_KE_TPSD_INT_SHORT_HIGH_FAIL_LIM:dc.w $65 ; DATA XREF: sub_74E74+16Er ; Number of failed intermittent short to high tests within a sample size that will report a failure. ; Failures DG_TPS_KE_TPSD_INT_SHORT_HIGH_SMPL_LIM:dc.w $7D0 ; DATA XREF: sub_74E74:loc_74FFEr ; Number of intermittent short to high tests that make up a sample size. ; Samples DG_TPS_KE_TPSD_INT_SHORT_LOW_FAIL_LIM:dc.w $65 ; DATA XREF: sub_74E74+6Er ; Number of failed intermittent short to low tests within a sample size that will report a failure. ; Failures DG_TPS_KE_TPSD_INT_SHORT_LOW_SMPL_LIM:dc.w $7D0 ; DATA XREF: sub_74E74:loc_74EFEr ; Number of intermittent short to low tests that make up a sample size. ; Samples DG_TPS_KE_TPSD_RAT_ECT_MIN:dc.w $600 ; DATA XREF: sub_74CBE+88r ; The coolant value above which the TPS rationality diagnostic can be enabled. ; Degrees C DG_TPS_KE_TPSD_RAT_ENG_RUN_TIME_MIN:dc.w $78 ; DATA XREF: sub_74CBE+74r ; Ensures that the engine has reached stable operating conditions before enabling the TPS rationality diagnostic ; Seconds DG_TPS_KE_TPSD_RAT_FAIL_LIM:dc.w $96 ; DATA XREF: sub_74CBE+156r ; Number of rationality failed tests within a sample size that will report a failure. ; Failures DG_TPS_KE_TPSD_RAT_HIGH_MAP:dc.w $2C00 ; DATA XREF: sub_74CBE+CCr ; Maximum MAP for TPS to be checked for rationality high failures. ; kPa DG_TPS_KE_TPSD_RAT_LOW_MAP:dc.w $3400 ; DATA XREF: sub_74CBE:loc_74DD0r ; Minimum MAP for TPS to be checked for rationality low failures. ; kPa DG_TPS_KE_TPSD_RAT_MAP_DELTA_MAX:dc.w $133 ; DATA XREF: sub_74CBE+46r ; Maximum allowable MAP Delta over a test interval which can enable the TPS rationality diagnostic ; kPa DG_TPS_KE_TPSD_RAT_MAP_STABLE_TIME:dc.b $A ; DATA XREF: sub_74CBE+96r ; Minimum amount of time the delta MAP value must stay stable to enable the TPS rationality test. ; Seconds dc.b $FF DG_TPS_KE_TPSD_RAT_SMPL_LIM:dc.w $C8 ; DATA XREF: sub_74CBE+18Er ; Number of rationality tests that make up a sample size. ; Samples DG_TPS_KE_TPSD_SHORT_HIGH_FAIL_LIM:dc.w $5A ; DATA XREF: sub_74E74+1A2r ; Number ofNumber of failed short to high tests within a sample size that will report a failure. ; Failures DG_TPS_KE_TPSD_SHORT_HIGH_SMPL_LIM:dc.w $64 ; DATA XREF: sub_74E74:loc_75058r ; Number of short to high tests that make up a sample size. ; Samples DG_TPS_KE_TPSD_SHORT_LOW_FAIL_LIM:dc.w $5A ; DATA XREF: sub_74E74+A2r ; Number of short to low tests that make up a sample size. ; Samples DG_TPS_KE_TPSD_SHORT_LOW_SMPL_LIM:dc.w $64 ; DATA XREF: sub_74E74:loc_74F58r ; ; DG_TPS_KE_TPSD_SHORTED_HIGH_THRESH:dc.w $139A ; DATA XREF: sub_74E74+11Cr ; The threshold below which the throttle position sensor is considered opened or shorted to ground. ; Percent DG_TPS_KE_TPSD_SHORTED_LOW_THRESH:dc.w $9A ; DATA XREF: sub_74E74+1Cr ; ; DG_TPS_KV_TPSD_PREDICTED_TPS_HIGH_TEST:dc.w $500 ; DATA XREF: sub_74CBE+FAr ; A predicted TPS value based on RPM for the stuck high test. ; Percent dc.b 6 dc.b $9A ; ? dc.b 7 dc.b $66 ; f dc.b 7 dc.b $DC ; ? dc.b 8 dc.b $29 ; ) dc.b 8 dc.b $94 ; ? dc.b 9 dc.b $2E ; . dc.b 9 dc.b $D2 ; ? dc.b $A dc.b $61 ; a dc.b $B dc.b $F dc.b $B dc.b $E1 ; ? dc.b $C dc.b $4D ; M dc.b $C dc.b $B3 ; ? dc.b $C dc.b $D7 ; ? dc.b $D dc.b 0 dc.b $D dc.b 0 DG_TPS_KV_TPSD_PREDICTED_TPS_LOW_TEST:dc.w 0 ; DATA XREF: sub_74CBE+140r ; A predicted TPS value based on RPM for the stuck low test. ; Percent dc.l off_0+$66 ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b 1 dc.b $33 ; 3 dc.b 2 dc.b 0 dc.b 2 dc.b $9A ; ? dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $CD ; ? dc.b 4 dc.b $66 ; f dc.b 5 dc.b 0 dc.b 5 dc.b $9A ; ? dc.b 6 dc.b 0 dc.b 6 dc.b $66 ; f dc.b 6 dc.b $9A ; ? dc.b 6 dc.b $9A ; ? dc.b 6 dc.b $9A ; ? DG_VOLT_KE_IGN_VOLT_LOW_ENGINE_RUN_TIME:dc.l off_640 ; DATA XREF: sub_7523C+82r ; Engine run time which must be exceeded to test code 562. ; Seconds DG_VOLT_KE_IGN_VOLT_LOW_ENGINE_SPEED:dc.w $1400 ; DATA XREF: sub_7523C+76r ; Minimum engine speed below which code 562 will not test. ; RPM DG_VOLT_KE_IGN_VOLT_LOW_VEHICLE_SPEED:dc.w $280 ; DATA XREF: sub_7523C+6Ar ; Minimum vehicle speed below which code 562 will not test. ; MPH DG_VOLT_KE_IGN_VOLTAGE_HIGH:dc.w $1200 ; DATA XREF: sub_7523C+1Cr ; Ignition voltage above which failure conditions have been met, and the Fail counter will be incremented. ; Volts DG_VOLT_KE_IGN_VOLTAGE_HIGH_FAIL_COUNT:dc.b $32 ; DATA XREF: sub_7523C+4Er ; Fail counter above which code 563 will be set. ; Counts DG_VOLT_KE_IGN_VOLTAGE_HIGH_SAMPLE_COUNT:dc.b $3C ; DATA XREF: sub_7523C:loc_75260r ; Sample counter above which a pass will be indicated if Fail counter is not exceeded. ; Counts DG_VOLT_KE_IGN_VOLTAGE_LOW:dc.w $800 ; DATA XREF: sub_7523C+9Er ; Ignition voltage below which failure conditions have been met and the Fail Counter will be incremented. ; Volts DG_VOLT_KE_IGN_VOLTAGE_LOW_FAIL_COUNT:dc.b $32 ; DATA XREF: sub_7523C+D0r ; Fail counter above which code 562 will be set. ; Counts DG_VOLT_KE_IGN_VOLTAGE_LOW_SAMPLE_COUNT:dc.b $3C ; DATA XREF: sub_7523C:loc_752E2r ; Sample counter above which a pass will be indicated if Fail counter is not exceeded. ; Counts DG_VOLT_KE_V5B1_VOLTAGE_FAULT_TIMER:dc.w $140 ; DATA XREF: sub_751B4+1Er ; Time that V5B1 voltage has to be wrong for a fault to set. ; Seconds DG_VOLT_KE_V5B2_VOLTAGE_FAULT_TIMER:dc.w $140 ; DATA XREF: sub_751F8+1Er ; Time that V5B2 voltage has to be wrong for a fault to set. ; Seconds DI_CASE_KE_CASE_FUEL_CUTOFF_THRESHOLD:dc.w $5000 ; DATA XREF: OS1:00028EF8r ; sub_60E42+EEr ... ; Threshold above which fuel will be cut off to all cylinders. ; RPM DI_CASE_KE_CASE_ETC_ENG_SPD_LIMIT_OFFSET:dc.w $A00 ; DATA XREF: sub_7DD88+18r ; RPM above the KE_CASE_Fuel_Cutoff_Threshold which the ETC governor will limit engine speed to when CASE learn is in progress. ; RPM DI_CASE_KE_CASE_LOWER_RPM_THRESHOLD:dc.w $2800 ; DATA XREF: sub_60E42+116r ; Engine speed below which crank error data collection and intrusive fuel control are disabled. ; RPM DI_CASE_KE_CASE_UPPER_RPM_THRESHOLD:dc.w $4C00 ; DATA XREF: sub_60E42+11Er ; Engine speed at which to begin the crank error calculation. ; RPM DI_CASE_KE_CASE_ENGINE_SPEED_HYSTERESIS:dc.w $100 ; DATA XREF: sub_60E42+12Ar ; Engine speed hysteresis for enabling crank error learning. ; RPM DI_CASE_KE_CASE_COOLANT_TEMP_ENABLE:dc.w $600 ; DATA XREF: sub_60E42+46r ; Minimum coolant temperature to allow learning of Crank Angle Sensing Error. ; Degrees_ DI_CASE_KE_CASE_ATTEMPTS_TO_LEARN_MAX:dc.b $FF ; DATA XREF: sub_60E42+38r ; sub_61A3E+16Ao ; Maximum number of times the system will attempt to learn the crank errors in one key cycle. ; Counts dc.b $FF DI_ECTR_KV_ECTR_ETH_COMPENSATION:dc.w $1000 ; DATA XREF: sub_61A3E+13Ar ; Modifies the total air threshold for variations in the ethanol composition. ; Mult_0to2 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 DI_ECTR_KE_ECTR_NUM_OF_TEMP_TESTS:dc.w $2FF ; DATA XREF: sub_61A3E:loc_61AC0r ; sub_61A3E+1A4r ... ; The number of rationality tests or stabilized engine coolant temperature levels that will be checked. ; Unitless DI_ECTR_KV_ECTR_MIN_STABILIZED_ECT_TEMP:dc.b 7 ; Minimum coolant temperature value to be considered passing the associated rationality test. ; Degrees_C dc.b $80 ; ? word_174B4: dc.w $35C ; DATA XREF: sub_61A3E+33Er ; sub_61A3E+3AAr DI_ECTR_KV_ECTR_DTCS:dc.b 0 ; Defines the fault code associated with the rationality test index. ; PCodes dc.b $14 dc.b 0 dc.b $13 DI_ECTR_KA_ECTR_TTL_AIR_GRAMS_AT_PWRUP:dc.b $44 ; D ; Power up coolant temperature-related portion of the calculated minimum total air threshold. ; GramsOfAir dc.b $3A ; : dc.b $44 ; D dc.b $3A ; : dc.b $44 ; D dc.b $3A ; : dc.b $3C ; < dc.b $34 ; 4 dc.b $34 ; 4 dc.b $2D ; - dc.b $2C ; , dc.b $27 ; ' dc.b $24 ; $ dc.b $21 ; ! dc.b $1C dc.b $1B dc.b $14 dc.b $15 dc.b $C dc.b $F dc.b $C dc.b $F dc.b $1C dc.b $36 ; 6 dc.b $1C dc.b $36 ; 6 dc.b $1C dc.b $36 ; 6 dc.b $17 dc.b 1 dc.b $11 dc.b $CB ; ? dc.b $C dc.b $96 ; ? dc.b 7 dc.b $60 ; ` dc.b 7 dc.b $60 ; ` dc.b 7 dc.b $60 ; ` dc.b 7 dc.b $60 ; ` word_174E4: dc.w $760 ; DATA XREF: sub_61A3E+374r DI_ECTR_KV_ECTR_MIN_TRIP_DISTANCE:dc.b $15 dc.b $18 dc.b 7 byte_174E9: dc.b 8 ; DATA XREF: sub_61A3E+198r DI_ECTR_KV_ECTR_HEAT_LOSS_COEF:dc.w 0 ; DATA XREF: sub_61A3E+A2r ; Used to calculate the heat loss portion of the minimum total air threshold. ; GramsOfAir DI_ECTR_KV_ECTR_MAX_POWERUP_ECT:dc.b 7 ; Maximum powerup coolant temperature value that will enable the associated rationality test. ; Degrees_C dc.b 0 word_174EE: dc.w $2DC ; DATA XREF: sub_61A3E+388r DI_ECTR_KV_ECTR_MIN_AIR_GRAMS_PER_SEC:dc.b 7 ; Minimum average engine airflow rate to renable reporting a failure condition. ; GramsPerSec dc.b 0 dc.b 7 dc.b 0 DI_EGRQ_KV_EGRF_ETH_COMP_MULTIPLIER:dc.w $1000 ; DATA XREF: sub_622EE+676r ; sub_622EE+6ECr ; Compensation factor to modify the expected MAP change based on ethanol content. ; Mult_0to2 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 DI_EGRQ_KE_EGR_HS_POSITION_FILTER:dc.w $FFFE ; DATA XREF: sub_2DA2A:loc_2DA74r ; First order filter coefficient for percent pintle opening during EGRF high speed mode. ; Seconds DI_EGRQ_KA_EGRF_MNRPM_MAP_CHANGE_THRESH:dc.b 0 ; DATA XREF: sub_622EE+6F6o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 DI_EGRQ_KA_EGRF_STRPM_MAP_CHANGE_THRESH:dc.b 0 ; DATA XREF: sub_622EE+680o dc.b $C1 ; ? dc.b 0 dc.b $FE ; ? dc.b 1 dc.b $37 ; 7 dc.b 0 dc.b $BC ; ? dc.b 0 dc.b $FA ; ? dc.b 1 dc.b $31 ; 1 dc.b 0 dc.b $BA ; ? dc.b 0 dc.b $F4 ; ? dc.b 1 dc.b $2D ; - dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $F0 ; ? dc.b 1 dc.b $27 ; ' dc.b 0 dc.b $B2 ; ? dc.b 0 dc.b $EC ; ? dc.b 1 dc.b $23 ; # dc.b 0 dc.b $B0 ; ? dc.b 0 dc.b $E7 ; ? dc.b 1 dc.b $1D dc.b 0 dc.b $AC ; ? dc.b 0 dc.b $E3 ; ? dc.b 1 dc.b $19 dc.b 0 dc.b $AA ; ? dc.b 0 dc.b $DF ; ? dc.b 1 dc.b $12 dc.b 0 dc.b $A6 ; ? dc.b 0 dc.b $DB ; ? dc.b 1 dc.b $C dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $D7 ; ? dc.b 1 dc.b 8 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 DI_EGRQ_KE_EGRF_RPM_OFFSET:dc.w $1000 ; DATA XREF: sub_62228:loc_622A6r ; sub_62228+90r ... ; Used in defining the RPM range for KA_EGRF_StRPM_MAP_ Change_Thresh and KA_EGRF_MnRPM_MAP_Change_Thresh. ; RPM DI_EGRQ_KE_EGRF_STARTED_TIME:dc.b $30 ; DATA XREF: sub_622EE+22Ar ; Amount of time the test is in the TEST_STARTED mode. ; Seconds dc.b $FF DI_EGRQ_KE_EGRF_ETHANOL_DISABLE_PERCENT:dc.w 0 ; DATA XREF: sub_62B70+222r ; The ethanol percentage at which the EGR diagnostic will be disabled. ; Percent DI_EGRQ_KE_EGRF_DFCO_STABLE_TIME:dc.w 0 ; DATA XREF: sub_62B70+72r ; Minimum amount of time since a DFCO change before EGR considers DFCO stable. ; Seconds DI_EGRQ_KE_EGRF_VEHICLE_SPEED_MAXIMUM:dc.w $2300 ; DATA XREF: sub_62B70+1E6r ; Maximum vehicle speed allowed to run test. ; MPH DI_EGRQ_KE_EGRF_VEHICLE_SPEED_MINIMUM:dc.w $C80 ; DATA XREF: sub_62B70+1F2r ; Minimum vehicle speed allowed to run test. ; MPH DI_EGRQ_KE_EGRF_ENGINE_STALL_RPM:dc.w $C00 ; DATA XREF: sub_62B70+1FEr ; Minimum engine speed allowed to run test. ; RPM DI_EGRQ_KE_EGRF_COOLANT_TEMP_MAXIMUM:dc.w $C4D ; DATA XREF: sub_62B70+1CCr ; Maximum coolant temperature allowed to run test. ; Degrees C DI_EGRQ_KE_EGRF_COOLANT_TEMP_MINIMUM:dc.w $606 ; DATA XREF: sub_62B70+1DAr ; Minimum coolant temperature allowed to run test. ; Degrees C DI_EGRQ_KE_EGRF_IAT_MAXIMUM:dc.w $A00 ; DATA XREF: sub_62B70+20Ar ; Maximum vehicle manifold air temperature allowed to run test ; Degrees C DI_EGRQ_KE_EGRF_IAT_MINIMUM:dc.w $4D ; DATA XREF: sub_62B70+216r ; Minimum vehicle manifold air temperature allowed to run test ; Degrees C DI_EGRQ_KE_EGRF_IGNITION_VOLTAGE_MAX:dc.w $1200 ; DATA XREF: sub_62B70+22Er ; Maximum ignition voltage allowed to run test. ; Volts DI_EGRQ_KE_EGRF_IGNITION_VOLTAGE_MIN:dc.w $B00 ; DATA XREF: sub_62B70+23Ar ; Minimum ignition voltage allowed to run test. ; Volts DI_EGRQ_KE_EGRF_IAC_POSITION_DELTA_MAX:dc.w 2 ; DATA XREF: sub_62B70+276r ; Maximum changes of IAC steps allowed while common enableconditions are met. ; Steps DI_EGRQ_KE_EGRF_IDLE_AREA_DELTA_MAX:dc.w $60 ; DATA XREF: sub_62B70+282r ; Maximum changes of IAC area for ETC allowed while common enableconditions are met. ; Millimeters_Squared DI_EGRQ_KE_EGRF_PURGE_FREEZE:dc.w $1FF ; DATA XREF: sub_62B70+374r ; sub_62F92:loc_62FBAr ; Indication of desire to freeze the purge duty cycle duringcertain test intervals. ; TRUE/FALSE DI_EGRQ_KV_EGRF_DUTY_CYCLE:dc.b $14 ; The desired EGR duty cycle value. ; Percent dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 byte_1761B: dc.b 0 ; DATA XREF: sub_69A62+76r ; OS3:00069D3Er dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 byte_17629: dc.b 0 ; DATA XREF: sub_69A62+4Cr ; OS3:00069D84r DI_FUEL_TRIM_KV_FTRM_LONG_TERM_IDLE_COEFF:dc.l unk_FFFF60A6 ; Coefficient applied to each 'Idle' Long Term Target used FOR this diagnostic. ; NONE 0-2 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $60 ; ` dc.b $A6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 DI_FUEL_TRIM_KE_FTRM_NUMBER_OF_OFF_IDLE_CELLS:dc.b $C ; DATA XREF: sub_69A62+5Ar ; OS3:00069CA4r ... ; Number of 'Off Idle' cells used in this diagnostic. ; Cells byte_1764D: dc.b $FF ; DATA XREF: OS3:00069CC4r ; OS3:00069CEAr ... DI_FUEL_TRIM_KV_FTRM_OFF_IDLE_CELLS_TO_AVG:dc.l unk_10203 ; Indicates for which Adaptive Regions to use the Long Term Target for this diagnostic. ; Region dc.b 4 dc.b 5 dc.b 6 dc.b 7 dc.b 8 dc.b 9 dc.b $A dc.b $B dc.b 0 dc.b 0 dc.b 0 dc.b 0 DI_FUEL_TRIM_KE_FTRM_ENABLE_PLM_MODIFIER:dc.w $733 ; DATA XREF: OS3:00069D12r ; OS3:00069F92r ... ; Used as a modifier to the PLM multiplier for FTRM diagnostics. ; 0_to_1 DI_FUEL_TRIM_KE_FTRM_NUMBER_OF_IDLE_CELLS:dc.b 5 ; DATA XREF: sub_6A2E8+24r ; Number of Idle Cells the system is calibrated to use FOR this diagnostic. ; Cells byte_17661: dc.b $FF ; DATA XREF: sub_6A2E8+3Cr DI_FUEL_TRIM_KV_FTRM_IDLE_CELLS_TO_AVG:dc.b $10 ; Indicates for which adaptive regions the Long Term Target should be used for this diagnostic. ; Region dc.b $11 dc.b $12 dc.b $13 dc.b $14 dc.b 0 dc.b 0 dc.b 0 DI_FUEL_TRIM_KE_FTRM_DEFAULT_IDLE_CELL:dc.b $14 ; Initialize idle fuel trim data to that indicated in this region. ; Region dc.b $FF DI_FUEL_TRIM_KE_FTRM_DIAG_INHIBITING_FAULTS:dc.l $A87814D6 ; DATA XREF: sub_6A3ECr ; If TRUE is specified for the indexed fault group, then any active fault within that group will inhibit FTRM diagnostic. ; Boolean DI_FUEL_TRIM_KE_FTRM_COOLANT_TEMP_LOW:dc.w $500 ; DATA XREF: sub_6A442+4Er ; Coolant temperature must be > this to enable diagnostic. ; Degrees_C DI_FUEL_TRIM_KE_FTRM_COOLANT_TEMP_HIGH:dc.w $B80 ; DATA XREF: sub_6A442+5Cr ; Coolant temperature must be < this to enable diagnostic. ; Degrees_C DI_FUEL_TRIM_KE_FTRM_MAT_LOW:dc.w $FE00 ; DATA XREF: sub_6A442+6Ar ; Manifold air temperature must be > this to enable diagnostic. ; Degrees_C DI_FUEL_TRIM_KE_FTRM_MAT_HIGH:dc.w $900 ; DATA XREF: sub_6A442+78r ; Manifold air temperature must be < this to enable diagnostic. ; Degrees_C DI_FUEL_TRIM_KE_FTRM_MAP_LOW:dc.w $14CD ; DATA XREF: sub_6A442+88r ; Manifold absolute pressure must be > this to enable diagnostic. ; kPa DI_FUEL_TRIM_KE_FTRM_MAP_HIGH:dc.w $4800 ; DATA XREF: sub_6A442+96r ; Manifold absolute pressure must be < this to enable diagnostic. ; kPa DI_FUEL_TRIM_KE_FTRM_ENGINE_AIR_FLOW_LOW:dc.w $280 ; DATA XREF: sub_6A442+A2r ; Engine air flow must be > this to enable diagnostic. ; gm/s DI_FUEL_TRIM_KE_FTRM_ENGINE_AIR_FLOW_HIGH:dc.w $2D00 ; DATA XREF: sub_6A442+AEr ; Engine air flow must be < this to enable diagnostic. ; gm/s DI_FUEL_TRIM_KE_FTRM_PURGE_TEST_TMR_OFFSET_DC:dc.w $100 ; DATA XREF: sub_6A694+356r DI_FUEL_TRIM_KE_FTRM_RPM_LOW:dc.w $800 ; DATA XREF: sub_6A442+BAr ; Engine speed must be > this to enable diagnostic. ; RPM DI_FUEL_TRIM_KE_FTRM_RPM_HIGH:dc.w $A000 ; DATA XREF: sub_6A442+C6r ; Engine speed must be < this to enable diagnostic. ; RPM DI_FUEL_TRIM_KE_FTRM_VEHICLE_SPEED_HIGH:dc.w $2A80 ; DATA XREF: sub_6A442+D2r ; Vehicle speed must be < this to enable diagnostic. ; MPH DI_FUEL_TRIM_KE_FTRM_TPS_HIGH:dc.b $12 ; Throttle position (opening) must be < this to enable diagnostic. ; Percent dc.b 0 DI_FUEL_TRIM_KE_FTRM_BAROMETER_LOW:dc.w $3B33 ; DATA XREF: sub_6A442+FCr ; Barometric pressure must be > this to enable diagnostic. ; kPa DI_FUEL_TRIM_KE_FTRM_FUEL_LEVEL_MIN:dc.w $200 ; DATA XREF: sub_6A576:loc_6A584r DI_FUEL_TRIM_KE_FTRM_FUEL_LEVEL_LOW_TIME:dc.w $FA ; DATA XREF: sub_6A576+32r DI_FUEL_TRIM_KE_FTRM_PURGE_RPM_MIN:dc.w $1200 ; DATA XREF: sub_6A5D2+7Cr ; Engine Speed must be > this to run the Excess Purge Test. ; RPM DI_FUEL_TRIM_KE_FTRM_ENG_AIRFLOW_LOW:dc.w $600 ; DATA XREF: sub_6A5D2+88r ; Engine Airflow must be > this to run the Excess Purge Test. ; gm/S DI_FUEL_TRIM_KE_FTRM_ENG_AIRFLOW_HIGH:dc.w $1680 ; DATA XREF: sub_6A5D2+4Cr ; sub_6A5D2+94r ; Engine Airflow < this to run the Excess Purge Test. ; gm/S DI_FUEL_TRIM_KV_FTRM_INDEX_OPER_TIME:dc.b 1 ; This much time must be spent in the current adaptive index region before the Excess Purge Test can be run. ; Seconds dc.b $90 ; ? dc.b 1 dc.b $90 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $90 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 word_176B4: dc.w 0 ; DATA XREF: sub_6A5D2+5Er DI_FUEL_TRIM_KV_FTRM_PR_INDEX_OPER_TIME:dc.b 1 ; This much time must be spent in the current adaptive index region before the Excess Purge Test can report a pass. ; Seconds dc.b $90 ; ? dc.b 1 dc.b $90 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $90 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 DI_FUEL_TRIM_KV_FTRM_PURGE_LONG_TERM_DELTA:dc.w $20 ; DATA XREF: sub_6A694+54r dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 DI_FUEL_TRIM_KV_FTRM_PURGE_SHORT_TERM_DELTA:dc.w $20 ; DATA XREF: sub_6A694+70r dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 dc.b 0 dc.b $20 DI_FUEL_TRIM_KE_FTRM_EXCESS_PURGE_TEST_TIME:dc.w $14 ; DATA XREF: sub_6A694+1DCr ; Intrusive Excess Purge Test lasts this long. ; Seconds DI_FUEL_TRIM_KE_FTRM_EXCESS_PURGE_DELTA_DELAY:dc.w 2 ; DATA XREF: sub_6A694+A8r ; The amount of time to delay the delta calculation once the excess purge test timer begins incrementing. ; Seconds DI_FUEL_TRIM_KE_FTRM_PURGE_CNTRL_STABLE_WINDO:dc.w $1E ; DATA XREF: sub_6A694+242r ; Amount of time to wait for integrals to correct before enabling purge test. ; Seconds DI_FUEL_TRIM_KE_FTRM_PURGE_WAIT_LIMIT:dc.w $FFFA ; DATA XREF: sub_6AAE4+4r ; NON-Intrusive Excess Purge Test lasts this long. ; Seconds DI_FUEL_TRIM_KE_FTRM_PURGE_DUTY_CYCLE_MIN:dc.w $600 ; DATA XREF: sub_6A694+228r ; Purge Ducty Cycle must be >= this to make Excess Purge Test intrusive. ; Percent DI_FUEL_TRIM_KV_FTRM_CCP_SHUT_OFF_DUTY_CYCLE:dc.b 1 ; DATA XREF: sub_6A694+262o ; Purge Ducty Cycle is set to this to shut of CCP. ; Percent dc.b $66 ; f dc.b 1 dc.b $66 ; f dc.b 1 dc.b $66 ; f dc.b 1 dc.b $66 ; f dc.b 1 dc.b $66 ; f dc.b 1 dc.b $66 ; f unk_17700: dc.b 1 ; DATA XREF: Calibration:IAC_AIRFLOW_KE_TIME_SINCE_BARO_UPDATEDo ; Calibration:DI_ICAT_KE_CAT_ENGINE_RUN_TIME_MINo ... dc.b $66 ; f dc.b 1 dc.b $66 ; f dc.b 1 dc.b $66 ; f dc.b 1 dc.b $66 ; f dc.b 1 dc.b $66 ; f dc.b 1 dc.b $66 ; f dc.b 1 dc.b $66 ; f dc.b 1 dc.b $66 ; f dc.b 1 dc.b $66 ; f dc.b 1 dc.b $66 ; f dc.b 1 dc.b $66 ; f DI_FUEL_TRIM_KV_FTRM_LONG_TERM_TRIM_LEAN:dc.w $13DF ; DATA XREF: sub_6A2E8+8r ; Threshold where the long term fuel trim average is failing due to lean fueling at a given level of ethanol in the fuel. ; NONE 0-2 dc.b $13 dc.b $DF ; ? dc.b $13 dc.b $DF ; ? dc.b $13 dc.b $DF ; ? dc.b $13 dc.b $DF ; ? DI_FUEL_TRIM_KV_FTRM_LONG_TERM_TRIM_RICH:dc.w $DA0 ; DATA XREF: sub_6A2E8+18r ; Threshold where the long term fuel trim average is failing due to rich fueling at a given level of ethanol in the fuel. ; NONE 0-2 dc.b $D dc.b $A0 ; ? dc.b $D dc.b $A0 ; ? dc.b $D dc.b $A0 ; ? word_17728: dc.w $DA0 ; DATA XREF: sub_6A2E8+DCr DI_FUEL_TRIM_KV_FTRM_IDLE_CELL_OPER_TIME_MIN:dc.b 2 dc.b $BC ; ? dc.b 2 dc.b $BC ; ? dc.b 2 dc.b $BC ; ? dc.b 2 dc.b $BC ; ? dc.b 2 dc.b $BC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 DI_FUEL_TRIM_KV_FTRM_MAX_PURGE_FLOW:dc.l off_0+$2E ; DATA XREF: sub_6AA60:loc_6AA76o ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b 0 dc.b $53 ; S dc.b 0 dc.b $6A ; j dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $9D ; ? DI_FUEL_TRIM_KE_FTRM_ACCUM_PURGE_THRESHOLD:dc.w $273 ; DATA XREF: sub_6AA60+6Cr ; Threshold of accumulated purge flow required to reduce the excess purge vapor condition before continuing testing ; Grams DI_FUEL_TRIM_KV_FTRM_THRESHOLD_TEMP_MULT:dc.b $10 ; DATA XREF: sub_6AA60:loc_6AAC2o ; Threshold multiplier to compensate for the variation of excess purge vapor generation due to temperature. ; Multiplier_0_to_2 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 DI_FUEL_TRIM_KE_FTRM_PURGE_OPEN_MIN:dc.w $1400 ; DATA XREF: sub_6A442+DEr ; Minimum purge duty cycle value to begin the excess purge test and where purge valve is considered open. ; Percent DI_FUEL_TRIM_KE_FTRM_FUEL_TRIM_UPDATE_RATE:dc.w $30 ; DATA XREF: sub_6A694+33Er ; Integral delay value to be used for the short term learn when FTRM requests override. ; Seconds DI_ICAT_KA_CAT_AFT1_FUEL_OFFSET_LEAN:dc.b $FF ; DATA XREF: sub_6B156+2E2o ; The percent change to the average Fuel during A/F transition period 1 to cause a lean state. ; Percent dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 DI_ICAT_KA_CAT_AFT1_FUEL_OFFSET_RICH:dc.b 0 ; DATA XREF: sub_6B156+288o ; The percent change to the average Fuel during A/F transition period 1 to cause a rich state. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 DI_ICAT_KA_CAT_AFT2_FUEL_OFFSET_LEAN:dc.b 0 ; DATA XREF: sub_6B156+374o ; The percent change added to the average Fuel during A/F transition period 2 to cause a lean state. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 DI_ICAT_KA_CAT_AFT2_FUEL_OFFSET_RICH:dc.b 1 ; DATA XREF: sub_6B156+37Eo ; The percent change added to the average Fuel during A/F transition period 2 to cause a rich state. ; Percent dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 word_17890: dc.w $100 ; DATA XREF: sub_6B602+5Er DI_ICAT_KV_CAT_AFT1_POST_RESP_TIME_MAX:dc.b 2 ; Maximum allowed time for the post-catalyst O2 sensor to reach a stabilized voltage during the first air/fuel transition period. ; Seconds dc.b $A8 ; ? word_17894: dc.w $2A8 ; DATA XREF: sub_6B602+2Cr DI_ICAT_KV_CAT_AFT1_PRE_RESP_TIME_MAX:dc.b 0 ; Maximum allowed time for the pre-catalyst O2 sensor to reach a stabilized voltage during the first air/fuel transition period. ; Seconds dc.b $60 ; ` word_17898: dc.w $60 ; DATA XREF: sub_6B602+3Er DI_ICAT_KV_CAT_AFT2_PRE_RESP_TIME_MAX:dc.b 0 ; Maximum allowed time for the pre-catalyst O2 sensor to reach a stabilized voltage during the second air/fuel transition period. ; Seconds dc.b $60 ; ` word_1789C: dc.w $60 ; DATA XREF: sub_6B602+17Ar DI_ICAT_KV_CAT_CATALYTIC_CONVERTERS:dc.b 0 dc.b $58 ; X word_178A0: dc.w $59 ; DATA XREF: sub_6B602+18Cr DI_ICAT_KV_CAT_EWMA_THRESH_HIGH:dc.b 1 ; Minimum difference value to fail test if test is currently not failing. ; Seconds dc.b $35 ; 5 word_178A4: dc.w $135 ; DATA XREF: sub_6B602+2F0r DI_ICAT_KV_CAT_MIN_DIFF_TO_ENABLE_RSR:dcb.b 2,0 ; The minimum diff value to trigger the rapid step response test. ; Seconds word_178A8: dc.w 0 ; DATA XREF: sub_6B602+2E0r DI_ICAT_KV_CAT_MIN_OSC_STEP_FOR_RSR:dc.b 3 dc.b $F3 ; ? word_178AC: dc.w $3F3 ; DATA XREF: sub_6B602+310r DI_ICAT_KV_CAT_MIN_RSR_EWMA:dc.b $FD ; ? dc.b $E8 ; ? word_178B0: dc.w $FDE8 ; DATA XREF: sub_6B602+24Cr DI_ICAT_KV_CAT_OSC_STG1_FAIL_THRESH:dc.b $FF ; Maximum time difference in stage 1 to report a pass immediately to the executive. ; Seconds dc.b $CB ; ? word_178B4: dc.w $FFCB ; DATA XREF: sub_6B602:loc_6B7E8r DI_ICAT_KV_CAT_OSC_WORST_PASS_THRESH:dc.b 0 ; Worst acceptable( lowest time ) oxygen storage time measurement to pass. ; Seconds dc.b $ED ; ? dc.b 0 dc.b $ED ; ? DI_ICAT_KE_CAT_FAN_STABLE_TIME:dc.w $140 ; DATA XREF: sub_6BAAC+82r ; Required time for Fan1 and Fan2 state to remain unchanged. ; Seconds DI_ICAT_KE_FAN1_ON_EXTENDED_TIME_MAX:dc.w $FA00 ; DATA XREF: sub_6BAAC+14r ; Maximum time allowed to hold the Fan1 state on. ; Seconds DI_ICAT_KE_CAT_CONTROLS_FAN1:dc.b 1 ; DATA XREF: sub_6BAACr ; Enables the control of Fan1 Held-On feature to make conditions favorable for the Idle CAT Monitor Diagnostic to complete. ; BOOLEAN DI_ICAT_KE_CAT_NUM_CATALYST_TO_DIAGNOSE:dc.b 2 ; DATA XREF: sub_5F3D2+4r ; sub_6B156+16r ... ; The number of catalytic converters to diagnose. ; Unitless DI_ICAT_KE_CAT_NUM_FUEL_CONTROL_BANKS:dc.b 2 ; DATA XREF: sub_6B156+D4r ; sub_6B156+122r ... ; The number of fuel control banks to loop during each process. ; Unitless dc.b $FF DI_ICAT_KA_CAT_1_COMP_LEAN_TO_RICH:dc.b 5 ; DATA XREF: sub_6C362+33Ao dc.b 5 dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $FF dc.b 1 dc.b 1 dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $FF dc.b 0 dc.b 0 dc.b $50 ; P dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $FF dc.b 0 dc.b 0 dc.b $14 dc.b $7E ; ~ dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $FF dc.b 0 dc.b 0 dc.b 5 dc.b $1F dc.b $4E ; N dc.b $88 ; ? dc.b $C5 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $FF dc.b 0 dc.b 0 dc.b 1 dc.b 7 dc.b $13 dc.b $21 ; ! dc.b $30 ; 0 dc.b $3F ; ? dc.b $4C ; L dc.b $59 ; Y dc.b $65 ; e dc.b $70 ; p dc.b $7A ; z dc.b $83 ; ? dc.b $8B ; ? dc.b $93 ; ? dc.b $9A ; ? dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 2 dc.b 5 dc.b 8 dc.b $C dc.b $F dc.b $13 dc.b $16 dc.b $19 dc.b $1B dc.b $1E dc.b $20 dc.b $22 ; " dc.b $24 ; $ dc.b $25 ; % dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 2 dc.b 3 dc.b 4 dc.b 5 dc.b 5 dc.b 6 dc.b 7 dc.b 7 dc.b 8 dc.b 8 dc.b 9 dc.b 9 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF DI_ICAT_KA_CAT_1_COMP_RICH_TO_LEAN:dc.b $64 ; d ; DATA XREF: sub_6C362+2C4o dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF DI_ICAT_KA_CAT_2_COMP_LEAN_TO_RICH:dc.b 5 ; DATA XREF: sub_6C362+358o dc.b 5 dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $FF dc.b 1 dc.b 1 dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $FF dc.b 0 dc.b 0 dc.b $50 ; P dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $FF dc.b 0 dc.b 0 dc.b $14 dc.b $7E ; ~ dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $FF dc.b 0 dc.b 0 dc.b 5 dc.b $1F dc.b $4E ; N dc.b $88 ; ? dc.b $C5 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $C8 ; ? dc.b $FF dc.b 0 dc.b 0 dc.b 1 dc.b 7 dc.b $13 dc.b $21 ; ! dc.b $30 ; 0 dc.b $3F ; ? dc.b $4C ; L dc.b $59 ; Y dc.b $65 ; e dc.b $70 ; p dc.b $7A ; z dc.b $83 ; ? dc.b $8B ; ? dc.b $93 ; ? dc.b $9A ; ? dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 2 dc.b 5 dc.b 8 dc.b $C dc.b $F dc.b $13 dc.b $16 dc.b $19 dc.b $1B dc.b $1E dc.b $20 dc.b $22 ; " dc.b $24 ; $ dc.b $25 ; % dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 2 dc.b 3 dc.b 4 dc.b 5 dc.b 5 dc.b 6 dc.b 7 dc.b 7 dc.b 8 dc.b 8 dc.b 9 dc.b 9 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b $FF DI_ICAT_KA_CAT_2_COMP_RICH_TO_LEAN:dc.b $64 ; d ; DATA XREF: sub_6C362+316o dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $64 ; d dc.b $FF DI_ICAT_KE_ICAT_O2_VOLT_THRESHOLD:dc.w $33D7 ; DATA XREF: sub_6BB84:loc_6BBE4r ; Voltage level below which O2 output is considered to be leanfor switch summming ; Millivolts DI_ICAT_KE_ICAT_MIN_NUM_O2_SWITCHES:dc.b 1 ; DATA XREF: sub_6BB84+92r ; Minimum number of O2 sensor voltage switches to completesumming. ; Unitless dc.b $FF DI_ICAT_KE_ICAT_MAX_O2_SWITCH_TIME:dc.w $320 ; DATA XREF: sub_6BB84+34r ; Maximum time to allow switch summing process ; Seconds DI_ICAT_KE_ICAT_MIN_O2_SWITCH_TIME:dc.w $1E0 ; DATA XREF: sub_6BB84+A2r ; Used to allow a stable idle to be measured before fuel controlis requested ; Seconds DI_ICAT_KE_CAT_AC_CLUTCH_IS_STABLE_TIME:dc.w $1E0 ; DATA XREF: sub_6BF68+22Cr ; Required time for AC clutch state to remain unchanged. ; Seconds DI_ICAT_KE_CAT_AC_OFF_EXTEND_TIME_MAX:dc.w $12C0 ; DATA XREF: sub_6BF68+29Cr ; Maximum time allowed to hold AC Clutch disengaged. ; Seconds DI_ICAT_KE_CAT_CONTROLS_AC:dc.b 1 ; DATA XREF: sub_6BF68:loc_6C1B6r DI_ICAT_KE_CAT_ATTEMPTS_THIS_TRIP_MAX:dc.b 6 ; DATA XREF: sub_6C362+1CAr ; Maximum number of test attempts this trip. ; Unitless DI_ICAT_KE_CAT_BAROMETRIC_PRESSURE_MIN:dc.w $ECD ; DATA XREF: sub_6C236+CEr ; Minimum barometric pressure value to enable the catalyst test at idle. ; kPa DI_ICAT_KE_CAT_CONVERTER_TEMP_MAX:dc.w $3600 ; DATA XREF: sub_6BF68+72r ; Maximum acceptable converter temperature value. ; Degrees_C DI_ICAT_KE_CAT_COOLANT_TEMP_MAX:dc.w $C00 ; DATA XREF: sub_6C236+DEr ; Maximum coolant Temperature value to enable the catalyst test at idle. ; Degrees_C DI_ICAT_KE_CAT_COOLANT_TEMP_MIN:dc.w $700 ; DATA XREF: sub_6C236+D6r ; Minimum coolant temperature value to enable the catalyst test at idle. ; Degrees_C DI_ICAT_KE_CAT_DESIRED_IDLE_RPM_DROP_MAX:dc.w $200 ; DATA XREF: sub_6BF68:loc_6C038r DI_ICAT_KE_CAT_DESIRED_IDLE_RPM_GAIN_MAX:dc.w $400 ; DATA XREF: sub_6BF68:loc_6C02Ar DI_ICAT_KE_CAT_ENGINE_RUN_TIME_MIN:dc.l unk_17700 ; DATA XREF: sub_6C362+182r ; Minimum time from engine start before stabilized conditions are met. ; Seconds DI_ICAT_KE_CAT_IDLE_EFF_AREA_MAX:dc.w $FFFF ; DATA XREF: sub_6BF68:loc_6C01Ar ; Maximum change in desired idle effective area per 12.5 ms period. ; Millimeters_Squared DI_ICAT_KE_CAT_IDLE_AIRFLOW_MAX:dc.b $64 ; DATA XREF: sub_6BF68+9Er ; Maximum airflow value for closed loop stability. ; gm_per_sec DI_ICAT_KE_CAT_IDLE_AIRFLOW_MIN:dc.b $1E ; DATA XREF: sub_6BF68+92r ; Minimum airflow value for closed loop stability. ; gm_per_sec DI_ICAT_KE_CAT_EXCESS_IDLE_TIME_LIMIT:dc.w $1C20 ; DATA XREF: sub_6C236+FCr ; Maximum amount of idle time to enable the catalyst test at idle. A max value in this cal will never check the idle time limit, ; Seconds DI_ICAT_KE_CAT_IDLE_TPS_MAX:dc.w $66 ; DATA XREF: sub_6BF68:loc_6BF90r ; Maximum Throttle position value to consider the vehicle idling. ; Percent DI_ICAT_KE_CAT_IDLE_VEHICLE_SPEED_MAX:dc.w $100 ; DATA XREF: sub_6BF68+8r ; sub_6C236+46r ... ; Maximum vehicle speed value to consider the vehicle idling. ; MPH DI_ICAT_KE_CAT_INTAKE_AIR_TEMP_MAX:dc.w $880 ; DATA XREF: sub_6C236+108r ; Maximum intake air temperature threshold to continue to enable the catalyst test. ; Degrees_C DI_ICAT_KE_CAT_INTAKE_AIR_TEMP_MIN:dc.w $FF4D ; DATA XREF: sub_6C700+A0r ; Minimum intake air temperature threshold to continue to enable the catalyst test. ; Degrees_C DI_ICAT_KE_CAT_INTEGRATOR_MAX:dc.b $87 ; DATA XREF: sub_6C362:loc_6C3EAr ; Maximum integrator value to enable the catalyst diagnostic. ; Unitless DI_ICAT_KE_CAT_INTEGRATOR_MIN:dc.b $78 ; DATA XREF: sub_6C362:loc_6C3AEr ; Minimum integrator value to enable the catalyst diagnostic. ; Unitless DI_ICAT_KE_CAT_MIN_TIME_ABOVE_MIN_RPM:dc.w $BE0 ; DATA XREF: sub_6C362+176r ; Minimum time that the minimum RPM must be maintained prior to entering idle for stabilization conditions to be satisfied. ; Seconds DI_ICAT_KE_CAT_MAT_BURNOFF_TEMP_THRESH:dc.w $2B80 ; DATA XREF: sub_6C700:loc_6C72Cr ; The minimum temperature required for the catalytic converter toburn off the material when it is 'green' ; Degrees C_S DI_ICAT_KE_CAT_MATERIAL_BURNOFF_DELAY:dc.l loc_46500 ; DATA XREF: sub_6C700+6Ar ; sub_6C700+7Er DI_ICAT_KE_CAT_RPM_TO_WARMUP_CATALYST:dc.w $1200 ; DATA XREF: sub_6C236+52r ; sub_6C362+15Er ; Minimum RPM that must be maintained for the catalyst warmup timer to increment. ; RPM DI_ICAT_KE_CAT_STABILIZATION_TIME_MAX:dc.w $460 ; DATA XREF: sub_6BF68+FCr ; Maximum amount of stabilization time before enabling the catalyst diagnostic. ; Seconds DI_ICAT_KE_CAT_STABILIZATION_TIME_MIN:dc.w $140 ; DATA XREF: sub_6BF68:loc_6C06Cr ; Minimum amount of stabilization time to enable the catalyst diagnostic. ; Seconds DI_ICAT_KE_CAT_VOLTAGE_MIN:dc.w $B00 ; DATA XREF: sub_6C236+EAr ; Minimum battery voltage threshold to enable the catalyst test at idle. ; Volts DI_ICAT_KE_EGPT_ENG_AIRFLOW_HIGH:dc.w $2D00 ; DATA XREF: sub_6BC6C:loc_6BCE6r ; Maximum engine air flow to be used in steady state temperature calculations. ; Grams_Air_Per_Second DI_ICAT_KE_EGPT_RPM_HIGH:dc.w $5A00 ; DATA XREF: sub_6BC6C:loc_6BCD4r ; Maximum engine speed to be used in steady state temperature calculations. ; Revolutions per minute DI_ICAT_KE_CAT_AC_CLUTCH_HAS_BEEN_ON_VST:dc.w $3180 ; DATA XREF: sub_6BF68+262r ; sub_6BF68+27Er ; Maximum vehicle speed threshold to allow AC_Clutch_Has_Been_Onset to TRUE. ; MPH DI_ICAT_KE_NUM_INTEGRATOR_SAMPLES:dc.w $32 ; DATA XREF: sub_6C362+9Ar ; Number of consecutive periods that all integrator values must remain within range to establish stability. ; Unitless DI_ICAT_KE_CAT_MAX_ETH_PERCENT:dc.w $300 ; DATA XREF: sub_6BF68+164r ; Minimum fuel ethanol percent threshold to enable the catalyst test. ; Percent DI_ICAT_KV_CAT_1_ETH_COMPENSATION_FACTOR:dc.w $1000 ; DATA XREF: sub_6C362+2DAr dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 DI_ICAT_KV_CAT_2_ETH_COMPENSATION_FACTOR:dc.w $1000 ; DATA XREF: sub_6C362+36Er dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 DI_ICAT_KV_CAT_DISABLE_IF_CODE_SET:dc.l $AD7D15DE ; DATA XREF: sub_6C700+90r ; Disable diagnostic test if any malfunctions in the groups marked TRUE are active. ; BOOLEAN DI_ICAT_KV_CAT_RPM_CHANGE_MAX:dc.w $200 ; DATA XREF: sub_6BF68+86r ; Used to set the maximum RPM change value based on whether or not fuel control mode is active. ; RPM word_17BAC: dc.w $400 ; DATA XREF: sub_6BC6C+36r DI_ICAT_KV_EGPT_ECT_ENABLE_MIN:dc.b 4 ; Minimum coolant temperature threshold for the location to enable the exhaust location temperature model. ; Unitless dc.b $80 ; ? word_17BB0: dc.w $480 ; DATA XREF: sub_6BC6C+166r DI_ICAT_KV_EGPT_EXHAUST_TEMP_WARM_MIN:dc.b $2B ; + ; Minimum exhaust location temperature threshold for the location to be considered warm enough to test. ; Unitless dc.b $80 ; ? word_17BB4: dc.w $2B80 ; DATA XREF: sub_6BC6C+144r DI_ICAT_KV_EGPT_FILTER_COEF_DECREASING:dc.b 1 dc.b $FC ; ? word_17BB8: dc.w $1FC ; DATA XREF: sub_6BC6C:loc_6BDBAr DI_ICAT_KV_EGPT_FILTER_COEF_INCREASING:dc.l $9170917 ; DATA XREF: sub_6BC6C+98r DI_ICAT_KV_EGPT_SS_ENG_AIRFLOW_COEF:dc.l loc_56C54+3 ; Engine air flow multiplier used in steady state temperature calculation. ; Unitless dc.b 0 dc.b 5 word_17BC4: dc.w $6C57 ; DATA XREF: sub_6BC6C+124r DI_ICAT_KV_EGPT_SS_EXHAUST_TEMP_DEFAULT:dc.b $1E ; Default steady state temperature. ; Degrees Celsius dc.b 0 word_17BC8: dc.w $1E00 ; DATA XREF: sub_6BC6C:loc_6BCCCr DI_ICAT_KV_EGPT_SS_LOW_OFFSET_TEMP:dc.b $1E dc.b $CD ; ? word_17BCC: dc.w $1ECD ; DATA XREF: sub_6BC6C+56r DI_ICAT_KV_EGPT_SS_HIGH_OFFSET_TEMP:dc.b $21 ; ! dc.b $4D ; M word_17BD0: dc.w $214D ; DATA XREF: sub_6BC6C+4Cr DI_ICAT_KV_EGPT_SS_OFFSET_TRANSIT_TEMP:dc.b $2B ; + ; Temperature boundry used to determine whether the high or low offset is used in the steady state temperature calculation. ; Degrees Celsius dc.b 0 word_17BD4: dc.w $2B00 ; DATA XREF: sub_6BC6C+CAr DI_ICAT_KV_EGPT_SS_RPM_COEF:dc.b 0 ; Engine speed multiplier used in steady state temperature calculation. ; Degrees Celsius / RPM dc.b $D5 ; ? dc.b 0 dc.b $D5 ; ? DI_ICAT_KV_EGPT_SS_ETH_COMPENSATION:dc.w 0 ; DATA XREF: sub_6BC6C+F6r ; Modifies the predicted steady state exhaust gas temperatureto account for variations caused by ethanol fuel. ; Degrees_Celsius dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 DI_IDLE_KE_IAC_BAROMETRIC_PRESSURE_MIN:dc.w $D00 ; DATA XREF: sub_6CE22+1Ar ; Minimum barometric pressure threshold to enable the IAC diagnostic. ; kPa DI_IDLE_KE_IAC_COOL_TEMP_MIN:dc.w $600 ; DATA XREF: sub_6CE22+28r ; Minimum coolant temperature threshold to enable the IAC diagnostic. ; Degrees_C DI_IDLE_KE_IAC_ENGINE_RUN_TIME_MIN:dc.w $2580 ; DATA XREF: sub_6CE22+34r ; Minimum engine run time to enable the IAC diagnostic. ; Seconds DI_IDLE_KE_IAC_IGNITION_VOLTAGE_MAX:dc.w $1200 ; DATA XREF: sub_6CE22+54r ; Maximum ignition system voltage threshold to enable the IAC diagnostic. ; Volts DI_IDLE_KE_IAC_IGNITION_VOLTAGE_MIN:dc.w $900 ; DATA XREF: sub_6CE22+42r ; Minimum ignition system voltage threshold to enable the IAC diagnostic. ; Volts DI_IDLE_KE_IAC_INTAKE_AIR_TEMP_MIN:dc.w $FF00 ; DATA XREF: sub_6CE22+62r ; Minimum intake air temperature threshold to enable the IAC diagnostic. ; Degrees_C DI_IDLE_KE_IAC_IDLE_THROTTLE_POS_MAX:dc.w $26 ; DATA XREF: sub_6CDBA:loc_6CDE8r ; Maximum throttle position threshold to allow idle conditions. ; Percent DI_IDLE_KE_IAC_IDLE_VEHICLE_SPEED_MAX:dc.w $80 ; DATA XREF: sub_6CDBA+Er ; Maximum vehicle speed threshold to allow idle conditions. ; MPH DI_IDLE_KE_IAC_DIAG_STABLE_WINDOW_TIME:dc.w $140 ; DATA XREF: sub_6CDBA+4Ar ; Time for which the appropriate conditions must be stable before Idle Conditions Present flag can be SET. ; Seconds DI_LEGR_KE_EGRP_STRK_MAX_OPEN_TIME:dc.w $70 ; DATA XREF: sub_2E438+12Ar ; Maximum amount of time the EGR valve is commanded open to 100 percent. ; Seconds DI_LEGR_KE_EGRP_STROKE_TIME_DELAY:dc.w $10 ; DATA XREF: sub_2E438:loc_2E46Cr DI_LEGR_KE_EGRP_STRK_LOW_EGR_POSITION:dc.w $400 ; DATA XREF: sub_2E438+F0r ; EGR desired must be greater than or equal to this in order to enable EGR stroking for pintle diagnostics. ; Percent DI_LEGR_KE_EGRP_STROKE_COUNTER_LMT:dc.b 3 ; DATA XREF: sub_2E438+FEr ; sub_2E438+1D0r ; Maximum amount of successful stroking events which will be allowed for one stroking set. ; Strokes dc.b $FF DI_LEGR_KE_EGRP_IGNITION_VOLTAGE_MIN:dc.w $B00 ; DATA XREF: sub_6D636+40r ; Minimum ignition voltage required to enable the EGRP tests. ; Volts DI_MISFIRE_KE_MISF_IDLE_MODE_VEH_SPD:dc.w $180 ; DATA XREF: sub_6F29A+DEr ; Maximum vehicle speed before cylinder mode (idle) misfire detection is disabled. ; MPH DI_MISFIRE_KE_MISF_GENERIC_DELAY:dc.w 4 ; DATA XREF: DoLoopA+410r DoLoopC+202r ... ; Number of engine cycles to delay for the enable criteria not being met, decel fuel cutoff, fuel shut off, or torque reduction. ; Eng Cycles DI_MISFIRE_KE_MISF_CRANK_ANGLE_CRRCTN_USED:dc.b 1 ; DATA XREF: sub_6EF00+9Er ; Determines if crank angle correction should be used. ; BOOLEAN DI_MISFIRE_KE_MISF_REPORT_EMISSION_MISFIRE:dc.b 5 ; DATA XREF: sub_702A6+5D2r DI_MISFIRE_KE_MISF_EMISSION_MISFIRE:dc.b $1E ; DATA XREF: sub_702A6+2C2r ; If misfire counts are above this threshold, catalyst damage misfire is possible. ; Unitless dc.b $FF DI_MISFIRE_KA_MISF_CATALYST_MISFIRE:dc.b $AA ; ? ; DATA XREF: sub_702A6:loc_705FEo ; sub_702A6+36Eo ; If misfire counts are above this threshold, catalyst damage misfire is possible. ; Unitless dc.b $AA ; ? dc.b $AA ; ? dc.b $AA ; ? dc.b $AA ; ? dc.b $AA ; ? dc.b $AA ; ? dc.b $AA ; ? dc.b $95 ; ? dc.b $63 ; c dc.b $63 ; c dc.b $FF dc.b $AA ; ? dc.b $AA ; ? dc.b $AA ; ? dc.b $AA ; ? dc.b $85 ; ? dc.b $85 ; ? dc.b $85 ; ? dc.b $85 ; ? dc.b $63 ; c dc.b $63 ; c dc.b $63 ; c dc.b $FF dc.b $AA ; ? dc.b $AA ; ? dc.b $AA ; ? dc.b $AA ; ? dc.b $85 ; ? dc.b $63 ; c dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $FF dc.b $AA ; ? dc.b $AA ; ? dc.b $85 ; ? dc.b $85 ; ? dc.b $63 ; c dc.b $63 ; c dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $FF dc.b $AA ; ? dc.b $AA ; ? dc.b $63 ; c dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $FF dc.b $AA ; ? dc.b $AA ; ? dc.b $63 ; c dc.b $63 ; c dc.b $63 ; c dc.b $63 ; c dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $FF dc.b $AA ; ? dc.b $AA ; ? dc.b $63 ; c dc.b $63 ; c dc.b $63 ; c dc.b $63 ; c dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $FF dc.b $AA ; ? dc.b $AA ; ? dc.b $63 ; c dc.b $63 ; c dc.b $63 ; c dc.b $63 ; c dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $FF dc.b $AA ; ? dc.b $AA ; ? dc.b $63 ; c dc.b $63 ; c dc.b $63 ; c dc.b $63 ; c dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $50 ; P dc.b $FF DI_MISFIRE_KA_MISF_REPORT_CATALYST_MISFIRE:dc.b 1 ; DATA XREF: sub_702A6+564r ; sub_702A6+580r dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b $FF dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b $FF dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b $FF dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b $FF dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b $FF dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b $FF dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b $FF dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b $FF dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b $FF DI_MISFIRE_KA_MISF_CYLINDER_MODE_IDLE:dc.w $7FFF ; DATA XREF: sub_6F29A+110r ; sub_6F29A+148o word_17CE2: dc.w $7FFF ; DATA XREF: sub_6F29A+124r dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF word_17D02: dc.w $7FFF ; DATA XREF: sub_6F29A+11Ar word_17D04: dc.w $7FFF ; DATA XREF: sub_6F29A+12Er dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 2 dc.b $EE ; ? dc.b 2 dc.b $EE ; ? dc.b 3 dc.b $F0 ; ? dc.b 4 dc.b $B0 ; ? dc.b 7 dc.b $B dc.b 8 dc.b $C4 ; ? dc.b 8 dc.b $34 ; 4 dc.b 8 dc.b $FC ; ? dc.b 9 dc.b $C4 ; ? dc.b $A dc.b $8C ; ? dc.b $B dc.b $54 ; T dc.b $C dc.b $1C dc.b $C dc.b $E4 ; ? dc.b $D dc.b $AC ; ? dc.b $E dc.b $74 ; t dc.b $F dc.b $3C ; < dc.b $7F ;  dc.b $FF dc.b 2 dc.b $58 ; X dc.b 2 dc.b $58 ; X dc.b 3 dc.b $32 ; 2 dc.b 3 dc.b $84 ; ? dc.b 5 dc.b $14 dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $A4 ; ? dc.b 7 dc.b 8 dc.b 7 dc.b $6C ; l dc.b 7 dc.b $D0 ; ? dc.b 8 dc.b $34 ; 4 dc.b 8 dc.b $98 ; ? dc.b 8 dc.b $FC ; ? dc.b 9 dc.b $60 ; ` dc.b 9 dc.b $C4 ; ? dc.b $A dc.b $28 ; ( dc.b $7F ;  dc.b $FF dc.b 1 dc.b $C2 ; ? dc.b 1 dc.b $C2 ; ? dc.b 1 dc.b $C2 ; ? dc.b 1 dc.b $C2 ; ? dc.b 2 dc.b $26 ; & dc.b 2 dc.b $44 ; D dc.b 2 dc.b $58 ; X dc.b 2 dc.b $8A ; ? dc.b 2 dc.b $BC ; ? dc.b 2 dc.b $EE ; ? dc.b 3 dc.b $20 dc.b 3 dc.b $52 ; R dc.b 3 dc.b $B6 ; ? dc.b 8 dc.b $98 ; ? dc.b 8 dc.b $FC ; ? dc.b 9 dc.b $60 ; ` dc.b $7F ;  dc.b $FF dc.b 1 dc.b $53 ; S dc.b 1 dc.b $53 ; S dc.b 0 dc.b $EB ; ? dc.b 1 dc.b $27 ; ' dc.b 1 dc.b $4A ; J dc.b 1 dc.b $C2 ; ? dc.b 1 dc.b $C2 ; ? dc.b 1 dc.b $C2 ; ? dc.b 1 dc.b $F4 ; ? dc.b 2 dc.b $D dc.b 2 dc.b $58 ; X dc.b 2 dc.b $BC ; ? dc.b 3 dc.b $20 dc.b 3 dc.b $84 ; ? dc.b 7 dc.b $C1 ; ? dc.b 8 dc.b $5E ; ^ dc.b $7F ;  dc.b $FF dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $FA ; ? dc.b 1 dc.b $18 dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $FA ; ? dc.b 1 dc.b $2C ; , dc.b 1 dc.b $68 ; h dc.b 1 dc.b $C2 ; ? dc.b 1 dc.b $F4 ; ? dc.b 2 dc.b $26 ; & dc.b 2 dc.b $FE ; ? dc.b 3 dc.b $20 dc.b 3 dc.b $84 ; ? dc.b 4 dc.b $B0 ; ? dc.b 5 dc.b $78 ; x dc.b $7F ;  dc.b $FF dc.b 0 dc.b $AF ; ? dc.b 0 dc.b $AF ; ? dc.b 1 dc.b $2C ; , dc.b 1 dc.b 4 dc.b 0 dc.b $AF ; ? dc.b 0 dc.b $D2 ; ? dc.b 0 dc.b $DC ; ? dc.b 0 dc.b $E1 ; ? dc.b 1 dc.b $2C ; , dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $7C ; | dc.b 1 dc.b $A9 ; ? dc.b 2 dc.b $3B ; ; dc.b 2 dc.b $50 ; P dc.b 2 dc.b $65 ; e dc.b 2 dc.b $BC ; ? dc.b $7F ;  dc.b $FF dc.b 0 dc.b $B1 ; ? dc.b 0 dc.b $B1 ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $8C ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $B4 ; ? dc.b 0 dc.b $C3 ; ? dc.b 0 dc.b $DC ; ? dc.b 1 dc.b 9 dc.b 1 dc.b $31 ; 1 dc.b 1 dc.b $72 ; r dc.b 1 dc.b $A4 ; ? dc.b 2 dc.b $20 dc.b 2 dc.b $4F ; O dc.b 2 dc.b $7E ; ~ dc.b $7F ;  dc.b $FF dc.b 0 dc.b $6F ; o dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $64 ; d dc.b 0 dc.b $6E ; n dc.b 0 dc.b $87 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A5 ; ? dc.b 0 dc.b $AA ; ? dc.b 0 dc.b $BE ; ? dc.b 0 dc.b $DC ; ? dc.b 0 dc.b $FA ; ? dc.b 1 dc.b $77 ; w dc.b 1 dc.b $96 ; ? dc.b 1 dc.b $B8 ; ? DI_MISFIRE_KA_MISF_CYLINDER_MODE_REG1:dc.w $7FFF ; DATA XREF: sub_6F29A+164r ; sub_6F29A+192o word_17E36: dc.w $7FFF ; DATA XREF: sub_6F29A+178r dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF word_17E56: dc.w $7FFF ; DATA XREF: sub_6F29A+16Er word_17E58: dc.w $7FFF ; DATA XREF: sub_6F29A+182r dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 2 dc.b $EE ; ? dc.b 2 dc.b $EE ; ? dc.b 3 dc.b $F0 ; ? dc.b 4 dc.b $B0 ; ? dc.b 7 dc.b $B dc.b 8 dc.b $C4 ; ? dc.b 8 dc.b $34 ; 4 dc.b 8 dc.b $FC ; ? dc.b 9 dc.b $C4 ; ? dc.b $A dc.b $8C ; ? dc.b $B dc.b $54 ; T dc.b $C dc.b $1C dc.b $C dc.b $E4 ; ? dc.b $D dc.b $AC ; ? dc.b $E dc.b $74 ; t dc.b $F dc.b $3C ; < dc.b $7F ;  dc.b $FF dc.b 2 dc.b $58 ; X dc.b 2 dc.b $58 ; X dc.b 3 dc.b $32 ; 2 dc.b 3 dc.b $84 ; ? dc.b 5 dc.b $14 dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $A4 ; ? dc.b 7 dc.b 8 dc.b 7 dc.b $6C ; l dc.b 7 dc.b $D0 ; ? dc.b 8 dc.b $34 ; 4 dc.b 8 dc.b $98 ; ? dc.b 8 dc.b $FC ; ? dc.b 9 dc.b $60 ; ` dc.b 9 dc.b $C4 ; ? dc.b $A dc.b $28 ; ( dc.b $7F ;  dc.b $FF dc.b 1 dc.b $C2 ; ? dc.b 1 dc.b $C2 ; ? dc.b 1 dc.b $C2 ; ? dc.b 1 dc.b $C2 ; ? dc.b 2 dc.b $26 ; & dc.b 2 dc.b $44 ; D dc.b 2 dc.b $58 ; X dc.b 2 dc.b $8A ; ? dc.b 2 dc.b $BC ; ? dc.b 2 dc.b $EE ; ? dc.b 3 dc.b $20 dc.b 3 dc.b $52 ; R dc.b 3 dc.b $B6 ; ? dc.b 8 dc.b $98 ; ? dc.b 8 dc.b $FC ; ? dc.b 9 dc.b $60 ; ` dc.b $7F ;  dc.b $FF dc.b 1 dc.b $53 ; S dc.b 1 dc.b $53 ; S dc.b 0 dc.b $EB ; ? dc.b 0 dc.b $D4 ; ? dc.b 1 dc.b $4A ; J dc.b 1 dc.b $C2 ; ? dc.b 1 dc.b $C2 ; ? dc.b 1 dc.b $C2 ; ? dc.b 1 dc.b $F4 ; ? dc.b 2 dc.b $D dc.b 2 dc.b $58 ; X dc.b 2 dc.b $BC ; ? dc.b 3 dc.b $20 dc.b 3 dc.b $84 ; ? dc.b 7 dc.b $C1 ; ? dc.b 8 dc.b $5E ; ^ dc.b $7F ;  dc.b $FF dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $FA ; ? dc.b 1 dc.b $2C ; , dc.b 1 dc.b $68 ; h dc.b 1 dc.b $C2 ; ? dc.b 1 dc.b $F4 ; ? dc.b 2 dc.b $26 ; & dc.b 2 dc.b $FE ; ? dc.b 3 dc.b $20 dc.b 3 dc.b $84 ; ? dc.b 4 dc.b $B0 ; ? dc.b 5 dc.b $78 ; x dc.b $7F ;  dc.b $FF dc.b 0 dc.b $AF ; ? dc.b 0 dc.b $AF ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $AF ; ? dc.b 0 dc.b $D2 ; ? dc.b 0 dc.b $DC ; ? dc.b 0 dc.b $E1 ; ? dc.b 1 dc.b $2C ; , dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $7C ; | dc.b 1 dc.b $A9 ; ? dc.b 2 dc.b $3B ; ; dc.b 2 dc.b $50 ; P dc.b 2 dc.b $65 ; e dc.b 2 dc.b $BC ; ? dc.b $7F ;  dc.b $FF dc.b 0 dc.b $B1 ; ? dc.b 0 dc.b $B1 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $8C ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $B4 ; ? dc.b 0 dc.b $C3 ; ? dc.b 0 dc.b $DC ; ? dc.b 1 dc.b 9 dc.b 1 dc.b $31 ; 1 dc.b 1 dc.b $72 ; r dc.b 1 dc.b $A4 ; ? dc.b 2 dc.b $20 dc.b 2 dc.b $4F ; O dc.b 2 dc.b $7E ; ~ dc.b $7F ;  dc.b $FF dc.b 0 dc.b $6F ; o dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $69 ; i dc.b 0 dc.b $64 ; d dc.b 0 dc.b $6E ; n dc.b 0 dc.b $87 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A5 ; ? dc.b 0 dc.b $AA ; ? dc.b 0 dc.b $BE ; ? dc.b 0 dc.b $DC ; ? dc.b 0 dc.b $FA ; ? dc.b 1 dc.b $77 ; w dc.b 1 dc.b $96 ; ? dc.b 1 dc.b $B8 ; ? DI_MISFIRE_KA_MISF_CYLINDER_MODE_REG2:dc.w $7FFF ; DATA XREF: sub_6F29A+1C0r ; sub_6F29A+1F6o word_17F8A: dc.w $6F ; DATA XREF: sub_6F29A+1D8r dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $69 ; i dc.b 0 dc.b $64 ; d dc.b 0 dc.b $6E ; n dc.b 0 dc.b $87 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A5 ; ? dc.b 0 dc.b $AA ; ? dc.b 0 dc.b $BE ; ? dc.b 0 dc.b $DC ; ? dc.b 0 dc.b $FA ; ? dc.b 1 dc.b $77 ; w dc.b 1 dc.b $96 ; ? dc.b 1 dc.b $B8 ; ? word_17FAA: dc.w $7FFF ; DATA XREF: sub_6F29A+1CCr word_17FAC: dc.w $4E ; DATA XREF: sub_6F29A+1E4r dc.b 0 dc.b $8C ; ? dc.b 0 dc.b $3C ; < dc.b 0 dc.b $41 ; A dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $4E ; N dc.b 0 dc.b $50 ; P dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $78 ; x dc.b 0 dc.b $78 ; x dc.b 0 dc.b $90 ; ? dc.b 0 dc.b $9B ; ? dc.b 0 dc.b $AA ; ? dc.b 0 dc.b $DC ; ? dc.b 0 dc.b $EB ; ? dc.b 0 dc.b $FA ; ? dc.b $7F ;  dc.b $FF dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $2E ; . dc.b 0 dc.b $23 ; # dc.b 0 dc.b $2C ; , dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $53 ; S dc.b 0 dc.b $52 ; R unk_17FE0: dc.b 0 ; DATA XREF: Boot:00001EC4o dc.b $69 ; i dc.b 0 dc.b $62 ; b dc.b 0 dc.b $70 ; p dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $8B ; ? dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $99 ; ? dc.b $7F ;  dc.b $FF dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $3C ; < dc.b 0 dc.b $20 dc.b 0 dc.b $19 dc.b 0 dc.b $1E dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $43 ; C dc.b 0 dc.b $46 ; F dc.b 0 dc.b $50 ; P dc.b 0 dc.b $56 ; V dc.b 0 dc.b $5F ; _ dc.b 0 dc.b $68 ; h dc.b 0 dc.b $71 ; q dc.b 0 dc.b $7A ; z dc.b $7F ;  dc.b $FF dc.b 0 dc.b $1E dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $1A dc.b 0 dc.b $15 dc.b 0 dc.b $17 dc.b 0 dc.b $1E dc.b 0 dc.b $23 ; # dc.b 0 dc.b $25 ; % dc.b 0 dc.b $2C ; , dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $39 ; 9 dc.b 0 dc.b $3E ; > dc.b 0 dc.b $47 ; G dc.b 0 dc.b $50 ; P dc.b 0 dc.b $59 ; Y dc.b 0 dc.b $62 ; b dc.b $7F ;  dc.b $FF dc.b 0 dc.b $16 dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $14 dc.b 0 dc.b $10 dc.b 0 dc.b $12 dc.b 0 dc.b $16 dc.b 0 dc.b $1D dc.b 0 dc.b $1D dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $2D ; - dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $3C ; < dc.b 0 dc.b $42 ; B dc.b 0 dc.b $48 ; H dc.b $7F ;  dc.b $FF dc.b 0 dc.b $A dc.b 0 dc.b $19 dc.b 0 dc.b $F dc.b 0 dc.b $C dc.b 0 dc.b $E dc.b 0 dc.b $11 dc.b 0 dc.b $15 dc.b 0 dc.b $17 dc.b 0 dc.b $1D dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $2A ; * dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $2A ; * dc.b $7F ;  dc.b $FF dc.b 0 dc.b $A dc.b 0 dc.b $18 dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b 0 dc.b $B dc.b 0 dc.b $D dc.b 0 dc.b $11 dc.b 0 dc.b $13 dc.b 0 dc.b $16 dc.b 0 dc.b $1A dc.b 0 dc.b $1E dc.b 0 dc.b $20 dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $25 ; % dc.b 0 dc.b $26 ; & dc.b 0 dc.b $27 ; ' dc.b $7F ;  dc.b $FF dc.b 0 dc.b $A dc.b 0 dc.b $17 dc.b 0 dc.b $B dc.b 0 dc.b $A dc.b 0 dc.b 9 dc.b 0 dc.b $A dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $10 dc.b 0 dc.b $14 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $1A dc.b 0 dc.b $1B dc.b 0 dc.b $1C dc.b 0 dc.b $1D dc.b $7F ;  dc.b $FF dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b 9 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b $A dc.b 0 dc.b $C dc.b 0 dc.b $E dc.b 0 dc.b $10 dc.b 0 dc.b $12 dc.b 0 dc.b $15 dc.b 0 dc.b $18 dc.b 0 dc.b $19 dc.b 0 dc.b $1A dc.b 0 dc.b $1B dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF DI_MISFIRE_KA_MISF_CYLINDER_MODE_REG3:dc.w $7FFF ; DATA XREF: sub_6F29A+226r ; sub_6F29A+26Eo word_18342: dc.w $7FFF ; DATA XREF: sub_6F29A+24Ar dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF word_18362: dc.w $7FFF ; DATA XREF: sub_6F29A+23Er word_18364: dc.w $7FFF ; DATA XREF: sub_6F29A+25Cr dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF DI_MISFIRE_KA_MISF_REVOLUTION_MODE_REG1:dc.w $7FFF ; DATA XREF: sub_6F29A+2B8r ; sub_6F29A+2FEo word_18386: dc.w $7FFF ; DATA XREF: sub_6F29A+2D4r dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF word_183A6: dc.w $7FFF ; DATA XREF: sub_6F29A+2CAr word_183A8: dc.w $7FFF ; DATA XREF: sub_6F29A+2E4r dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF DI_MISFIRE_KA_MISF_REVOLUTION_MODE_REG2:dc.w $7FFF ; DATA XREF: sub_6F29A+32Er ; sub_6F29A+35Co word_183EC: dc.w $7FFF ; DATA XREF: sub_6F29A+342r dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF word_1840C: dc.w $7FFF ; DATA XREF: sub_6F29A+338r word_1840E: dc.w $7FFF ; DATA XREF: sub_6F29A+34Cr dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  unk_184AD: dc.b $FF ; DATA XREF: sub_7A99E+26o dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 0 dc.b $3B ; ; dc.b 0 dc.b $3B ; ; dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $4E ; N dc.b 0 dc.b $59 ; Y dc.b 0 dc.b $7D ; } dc.b 0 dc.b $94 ; ? dc.b 0 dc.b $B3 ; ? dc.b 0 dc.b $C9 ; ? dc.b 0 dc.b $F1 ; ? dc.b 1 dc.b 6 dc.b 1 dc.b $20 dc.b 1 dc.b $3D ; = dc.b 1 dc.b $5A ; Z dc.b 1 dc.b $77 ; w dc.b 1 dc.b $94 ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 0 dc.b $2F ; / dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $4A ; J dc.b 0 dc.b $57 ; W dc.b 0 dc.b $73 ; s dc.b 0 dc.b $8C ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $AC ; ? dc.b 0 dc.b $CE ; ? dc.b 0 dc.b $DD ; ? dc.b 0 dc.b $F2 ; ? dc.b 1 dc.b $A dc.b 1 dc.b $22 ; " dc.b 1 dc.b $3A ; : dc.b 1 dc.b $52 ; R dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $42 ; B dc.b 0 dc.b $51 ; Q dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $72 ; r dc.b 0 dc.b $81 ; ? dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $AB ; ? dc.b 0 dc.b $B4 ; ? dc.b 0 dc.b $C5 ; ? dc.b 0 dc.b $D7 ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b $FB ; ? dc.b 1 dc.b $D dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 0 dc.b $1D dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $39 ; 9 dc.b 0 dc.b $45 ; E dc.b 0 dc.b $52 ; R dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $70 ; p dc.b 0 dc.b $7B ; { dc.b 0 dc.b $90 ; ? dc.b 0 dc.b $97 ; ? dc.b 0 dc.b $A6 ; ? dc.b 0 dc.b $B4 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $D0 ; ? dc.b 0 dc.b $DE ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 0 dc.b $1C dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $3E ; > dc.b 0 dc.b $4A ; J dc.b 0 dc.b $56 ; V dc.b 0 dc.b $65 ; e dc.b 0 dc.b $70 ; p dc.b 0 dc.b $7F ;  dc.b 0 dc.b $87 ; ? dc.b 0 dc.b $95 ; ? dc.b 0 dc.b $A1 ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $B9 ; ? dc.b 0 dc.b $C5 ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 0 dc.b $1A dc.b 0 dc.b $1D dc.b 0 dc.b $2B ; + dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $42 ; B dc.b 0 dc.b $4C ; L dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $64 ; d dc.b 0 dc.b $6D ; m dc.b 0 dc.b $77 ; w dc.b 0 dc.b $85 ; ? dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $99 ; ? dc.b 0 dc.b $A3 ; ? dc.b 0 dc.b $AD ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 0 dc.b $18 dc.b 0 dc.b $1F dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $3D ; = dc.b 0 dc.b $46 ; F dc.b 0 dc.b $52 ; R dc.b 0 dc.b $5B ; [ dc.b 0 dc.b $63 ; c dc.b 0 dc.b $6F ; o dc.b 0 dc.b $79 ; y dc.b 0 dc.b $81 ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $91 ; ? dc.b 0 dc.b $99 ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 0 dc.b $15 dc.b 0 dc.b $1C dc.b 0 dc.b $25 ; % dc.b 0 dc.b $2C ; , dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $4A ; J dc.b 0 dc.b $52 ; R dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $66 ; f dc.b 0 dc.b $6D ; m dc.b 0 dc.b $74 ; t dc.b 0 dc.b $7B ; { dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $89 ; ? dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 0 dc.b $13 dc.b 0 dc.b $1A dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $42 ; B dc.b 0 dc.b $49 ; I dc.b 0 dc.b $51 ; Q dc.b 0 dc.b $5C ; \ dc.b 0 dc.b $61 ; a dc.b 0 dc.b $67 ; g dc.b 0 dc.b $6C ; l dc.b 0 dc.b $71 ; q dc.b 0 dc.b $76 ; v dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 0 dc.b $11 dc.b 0 dc.b $18 dc.b 0 dc.b $1E dc.b 0 dc.b $25 ; % dc.b 0 dc.b $2D ; - dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $42 ; B dc.b 0 dc.b $49 ; I dc.b 0 dc.b $50 ; P dc.b 0 dc.b $56 ; V dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $66 ; f dc.b 0 dc.b $6C ; l dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 0 dc.b $F dc.b 0 dc.b $16 dc.b 0 dc.b $1B dc.b 0 dc.b $22 ; " dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $2E ; . dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $41 ; A dc.b 0 dc.b $44 ; D dc.b 0 dc.b $4B ; K dc.b 0 dc.b $4E ; N dc.b 0 dc.b $54 ; T dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $60 ; ` dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 0 dc.b $E dc.b 0 dc.b $14 dc.b 0 dc.b $19 dc.b 0 dc.b $1F dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $2A ; * dc.b 0 dc.b $2E ; . dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $3D ; = dc.b 0 dc.b $43 ; C dc.b 0 dc.b $47 ; G dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4D ; M dc.b 0 dc.b $50 ; P dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 0 dc.b $C dc.b 0 dc.b $13 dc.b 0 dc.b $18 dc.b 0 dc.b $1C dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $25 ; % dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $2F ; / dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $41 ; A dc.b 0 dc.b $42 ; B dc.b 0 dc.b $43 ; C dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 0 dc.b $B dc.b 0 dc.b $11 dc.b 0 dc.b $16 dc.b 0 dc.b $1A dc.b 0 dc.b $1E dc.b 0 dc.b $22 ; " dc.b 0 dc.b $26 ; & dc.b 0 dc.b $2B ; + dc.b 0 dc.b $2E ; . dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $3F ; ? dc.b 0 dc.b $41 ; A dc.b 0 dc.b $42 ; B dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 0 dc.b $B dc.b 0 dc.b $F dc.b 0 dc.b $14 dc.b 0 dc.b $18 dc.b 0 dc.b $1D dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $2B ; + dc.b 0 dc.b $2F ; / dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $3B ; ; dc.b 0 dc.b $3E ; > dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b 0 dc.b $A dc.b 0 dc.b $D dc.b 0 dc.b $12 dc.b 0 dc.b $16 dc.b 0 dc.b $1B dc.b 0 dc.b $1F dc.b 0 dc.b $22 ; " dc.b 0 dc.b $25 ; % dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $2C ; , dc.b 0 dc.b $2F ; / dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $37 ; 7 dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF DI_MISFIRE_KA_MISF_REVOLUTION_MODE_REG3:dc.w $7FFF ; DATA XREF: sub_6F29A+38Cr ; sub_6F29A+3D4o word_187A4: dc.w $7FFF ; DATA XREF: sub_6F29A+3B0r dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF word_187C4: dc.w $7FFF ; DATA XREF: sub_6F29A+3A4r word_187C6: dc.w $7FFF ; DATA XREF: sub_6F29A+3C2r dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF DI_MISFIRE_KV_MISF_ZERO_TORQUE_REG1_SPEED:dc.w $2B3 ; DATA XREF: sub_6F29A+48Cr dc.b 2 dc.b $B3 ; ? dc.b 2 dc.b $B3 ; ? dc.b 2 dc.b $AA ; ? dc.b 2 dc.b $A0 ; ? dc.b 2 dc.b $96 ; ? dc.b 2 dc.b $8D ; ? dc.b 2 dc.b $4D ; M dc.b 2 dc.b $4D ; M dc.b 2 dc.b $4D ; M DI_MISFIRE_KV_MISF_ZERO_TORQUE_REG2_SPEED:dc.w $24D ; DATA XREF: sub_6F29A+4B2r dc.b 2 dc.b $4D ; M dc.b 2 dc.b $4D ; M dc.b 2 dc.b $4D ; M dc.b 2 dc.b $4D ; M dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $66 ; f dc.b 2 dc.b $9A ; ? dc.b 2 dc.b $CD ; ? dc.b 3 dc.b 0 dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $66 ; f dc.b 3 dc.b $9A ; ? dc.b 3 dc.b $CD ; ? dc.b 4 dc.b 0 dc.b 4 dc.b $33 ; 3 dc.b 4 dc.b $66 ; f dc.b 4 dc.b $9A ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b 0 dc.b 5 dc.b $33 ; 3 dc.b 5 dc.b $66 ; f dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $CD ; ? dc.b 8 dc.b 0 dc.b $A dc.b 0 DI_MISFIRE_KV_MISF_ZERO_TORQUE_REG3_SPEED:dc.w $1400 ; DATA XREF: sub_6F29A+4CEr dc.b $14 dc.b 0 dc.b $14 dc.b 0 dc.b $14 dc.b 0 DI_MISFIRE_KV_MISF_ENGINE_BLOCK_CYLINDER_ID:dc.b 4 ; DATA XREF: sub_42E12+Cr ; sub_6F29A+E54r ... ; Identifies the actual engine block cylinder from the misfire diagnostic cylinder counter. ; Unitless dc.b 3 dc.b 1 dc.b 8 dc.b 7 dc.b 2 dc.b 6 dc.b 5 DI_MISFIRE_KE_MISF_ABUSIVE_ENGINE_SPEED:dc.w $8600 ; DATA XREF: sub_6EB10+4r ; Minimum abusive engine speed to delay the diagnostic. ; RPM DI_MISFIRE_KE_MISF_CTS_AT_STARTUP_HIGH:dc.w $21A ; DATA XREF: sub_6EB4A+2B6r ; If startup coolant temp is not above CTS_At_Startup_Low cal, enable misfire detection when coolant exceeds this. ; Deg_C DI_MISFIRE_KE_MISF_CTS_AT_STARTUP_LOW:dc.w $FF53 ; DATA XREF: sub_6EE6A+2Cr ; Minimum engine starup coolant temperature to allow misfire detection. ; Deg_C DI_MISFIRE_KE_MISF_COOLANT_TEMP_HIGH:dc.w $D00 ; DATA XREF: sub_6EB4A+40r ; Maximum coolant temperature to allow misfire detection. ; Deg_C DI_MISFIRE_KE_MISF_COOLANT_TEMP_LOW:dc.w $FF4D ; DATA XREF: sub_6EB4A+32r ; Minimum coolant temperature to allow misfire detection. ; Deg_C DI_MISFIRE_KE_MISF_CRANK_UNLEARNED_RPM_MAX:dc.w $1400 ; DATA XREF: sub_6EB4A+29Ar ; Maximum engine speed to allow misfire detection. ; RPM DI_MISFIRE_KE_MISF_RPM_HIGH:dc.w $7800 ; DATA XREF: sub_6EE46+Cr ; Maximum engine speed to allow misfire detection. ; RPM DI_MISFIRE_KE_MISF_RPM_LOW:dc.w $D00 ; DATA XREF: sub_6EE46+4r ; Minimum engine speed to allow misfire detection. ; RPM DI_MISFIRE_KE_MISF_VOLTAGE_HIGH:dc.w $1200 ; DATA XREF: sub_6EB4A+Cr ; Maximum ignition voltage to allow misfire detection. ; Volts DI_MISFIRE_KE_MISF_VOLTAGE_LOW:dc.w $B00 ; DATA XREF: sub_6EB4A+4r ; Minimum ignition voltage to allow misfire detection. ; Volts DI_MISFIRE_KE_MISF_INHIBITING_FAULTS:dc.b $A0 ; ? ; If TRUE is specified for the indexed fault group, then any active fault within that group will inhibit the Misfire diagnostic. ; Cal_Set_Of_Fault_Group_Type dc.b $18 dc.b 0 dc.b $54 ; T DI_MISFIRE_KE_MISF_IDLE_BLMS_LEARNED_TIME:dc.b 0 ; This is the time limit for learning BLMs. ; Seconds dc.b 0 DI_MISFIRE_KE_MISF_TPS_LIMIT:dc.w $33 ; DATA XREF: sub_6E81E+178r ; Maximum throttle position to delay the diagnostic. ; Percent DI_MISFIRE_KE_MISF_VEHICLE_SPEED_LIMIT:dc.w $F00 ; DATA XREF: sub_6E81E+184r ; Minimum vehicle speed to delay the diagnostic. ; MPH DI_MISFIRE_KE_MISF_TPS_NEGATIVE_DELTA:dc.w $600 ; DATA XREF: sub_6E81E+1A4r ; Maximum allowable negative throttle position delta before misfire diagnostic is disabled. ; Percent DI_MISFIRE_KE_MISF_TPS_POSITIVE_DELTA:dc.w $600 ; DATA XREF: sub_6E81E+1B0r ; Maximum allowable positive throttle position delta before misfire diagnostic is disabled. ; Percent DI_MISFIRE_KE_MISF_FUEL_LEVEL_MINIMUM:dc.w $200 ; DATA XREF: sub_6E81E+122r ; If fuel level is below this value, misfire diagnostic will be delayed. ; Percent DI_MISFIRE_KE_MISF_ABS_ENGINE_LOAD:dc.w $C00 ; DATA XREF: sub_6E81E+7Cr ; sub_6E81E+1DEr ... ; Disable ABS rough road detection above this engine load. ; Percent DI_MISFIRE_KE_MISF_ABS_ENGINE_SPEED:dc.w $4000 ; DATA XREF: sub_6E81E+70r ; sub_6E81E+1D0r ... ; Disable ABS rough road detection above this engine speed. ; RPM DI_MISFIRE_KV_MISF_CAT_DAMAGE_ETH_FACTOR:dc.w $64 ; DATA XREF: sub_6EB10+16r ; Modifies the misfire catalyst damage threshold for ethanol. ; Multiplier dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d DI_MISFIRE_KV_MISF_EMS_FAIL_ETHANOL_FACTOR:dc.w $64 ; DATA XREF: sub_6EB10+26r ; Modifies the misfire emission failure threshold for ethanol. ; Multiplier dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d DI_MISFIRE_KV_MISF_ABS_WITH_TCS_LIMIT:dc.b $1E ; DATA XREF: sub_6E81E+52r dc.b $28 ; ( dc.b $32 ; 2 dc.b $3C ; < dc.b $46 ; F dc.b $50 ; P dc.b $5E ; ^ dc.b $6D ; m dc.b $7B ; { dc.b $89 ; ? dc.b $97 ; ? dc.b $A6 ; ? dc.b $B4 ; ? dc.b $FF DI_MISFIRE_KV_MISF_ABS_ONLY_LIMIT:dc.b $1E ; DATA XREF: sub_6E81E+64r dc.b $28 ; ( dc.b $32 ; 2 dc.b $3C ; < dc.b $46 ; F dc.b $50 ; P dc.b $5E ; ^ dc.b $6D ; m dc.b $7B ; { dc.b $89 ; ? dc.b $97 ; ? dc.b $A6 ; ? dc.b $B4 ; ? dc.b $FF DI_MISFIRE_KE_MISF_ABUSIVE_ENGINE_SPD_DELAY:dc.w $4E2 ; DATA XREF: sub_6E5D0+FAr ; sub_6E5D0+102r ; Number of engine cycles to delay if an abusive high engine speed occurs. ; Eng Cycles DI_MISFIRE_KE_MISF_AIR_CONDITIONER_DELAY:dc.w 0 ; DATA XREF: sub_6E5D0+4Ar ; sub_6E5D0+52r ; Number of engine cycles to delay if the air conditioner clutch as changed state. ; Eng Cycles DI_MISFIRE_KE_MISF_AIR_TEST_DELAY:dc.w 0 ; DATA XREF: sub_6E5D0+60r ; sub_6E5D0+68r ; Number of engine cycles to delay if the AIR test is intrusive. ; Eng Cycles DI_MISFIRE_KE_MISF_AUTO_TRANS_SHIFT_DELAY:dc.w 0 ; DATA XREF: sub_6E5D0+CEr ; sub_6E5D0+D6r ; Number of engine cycles to delay the diagnostic during automatic transmission shifts. ; Eng Cycles DI_MISFIRE_KE_MISF_CAM_MALFUNCTION_DELAY:dc.w 0 ; DATA XREF: sub_6E5D0+76r ; sub_6E5D0+7Er ; Number of engine cycles to delay on a cam malfunction. ; Eng Cycles DI_MISFIRE_KE_MISF_EGR_TEST_DELAY:dc.w 0 ; DATA XREF: sub_6E5D0+8Cr ; sub_6E5D0+94r ; Number of engine cycles to delay if the EGR test is active. ; Eng Cycles DI_MISFIRE_KE_MISF_ETHANOL_PERCENT:dc.w $1200 ; DATA XREF: sub_6E81E+136r ; The percent ethanol in the fuel which disables the Misfire diagnostic. ; Percent DI_MISFIRE_KE_MISF_EXCESS_ACCEL_DELAY:dc.w 0 ; DATA XREF: sub_6E5D0+110r ; sub_6E5D0+118r ; Number of engine cycles to delay if excess acceleration is detected. ; Eng Cycles DI_MISFIRE_KE_MISF_FUEL_DELAY:dc.w $1F4 ; DATA XREF: sub_6E5D0+A2r ; sub_6E5D0+AAr ; Number of engine cycles to delay during periods of low fuel. ; Eng Cycles DI_MISFIRE_KE_MISF_TPS_DELTA_DELAY:dc.w 6 ; DATA XREF: sub_6E5D0+E4r ; sub_6E5D0+ECr ; Number of engine cycles to delay on changes to the throttle position. ; Eng Cycles DI_MISFIRE_KE_MISF_UNDETECTABLE_DELAY:dc.w 4 ; DATA XREF: sub_6E5D0+13Cr ; sub_6E5D0+144r DI_MISFIRE_KE_MISF_ABS_FAIL_COUNTER:dc.w $1C2 ; DATA XREF: sub_6E81E+22Ar ; Minimum number of ABS failures needed to consider an ABS fault. ; counts DI_MISFIRE_KE_MISF_ABS_SAMPLE_COUNTER:dc.w $1F4 ; DATA XREF: sub_6E81E:loc_6EA6Cr ; Minimum number of samples necessary to restart the test. ; counts DI_MISFIRE_KE_MISF_ABS_VEHICLE_SPEED:dc.w $280 ; DATA XREF: sub_6E81E+84r ; sub_6E81E:loc_6E9DCr ; Disable Misfire-ABS rough road diagnostic below this vehicle speed. ; MPH DI_MISFIRE_KE_MISF_WHEEL_SLIP_VEHICLE_SPEED:dc.w $500 ; DATA XREF: sub_6E81E+CAr DI_MISFIRE_KE_MISF_WHEEL_SLIP_LIMIT:dc.w $500 ; DATA XREF: sub_6E81E:loc_6E8FCr ; Misfire diagnostic is disabled when the driven wheels are spinning faster than the non-drive wheels BY this threshold. ; MPH DI_MISFIRE_KE_MISF_SERIAL_DATA_FAIL_CNTR:dc.w $1C2 ; DATA XREF: sub_6E81E+2B4r ; Minimum number of serial data failures necessary to consider a fault. ; Counts DI_MISFIRE_KE_MISF_SERIAL_DATA_FAIL_DELAY:dc.b 1 ; Minimum timer value necessary to increment the serial data fail counter. ; Seconds dc.b $E0 ; ? DI_MISFIRE_KE_MISF_SERIAL_DATA_SAMPLE_CNTR:dc.w $1F4 ; DATA XREF: sub_6E81E:loc_6EAF6r ; Minimum number of samples necessary to restart the test. ; counts DI_MISFIRE_KE_MISF_FUEL_DELAY_DISABLE_TIME:dc.w $640 ; DATA XREF: sub_6E81E:loc_6E934r DI_MISFIRE_KE_MISF_SHIFT_DELAY_DISABLE_TIME:dc.w $640 ; DATA XREF: sub_6E742:loc_6E7EAr DI_MISFIRE_KE_MISF_START_DELAY_DISABLE_TIME:dc.w $640 ; DATA XREF: sub_6E5D0:loc_6E5E0r ; sub_6E742:loc_6E772r ... DI_TPS_KE_TPSD_IAC_POS_MIN:dc.w 0 ; DATA XREF: sub_750E2+6r ; Minimum IAC position to be within normal operating window. ; Steps DI_TPS_KE_TPSD_IAC_POS_MAX:dc.w $136 ; DATA XREF: sub_750E2+Er ; Maximum IAC position to be within normal operating window. ; Steps DM_DATA_MANAGER_KE_DGDM_FUEL_SYS_CONDS_LIMIT:dc.w $A ; DATA XREF: sub_5E08A+100r DM_DATA_MANAGER_KE_DGDM_MAX_LOW_COOLANT:dc.w $800 ; DATA XREF: sub_5E08A+10r ; sub_5E08A+98r ... DM_DATA_MANAGER_KE_DGDM_MIN_HIGH_COOLANT:dc.w $706 ; DATA XREF: sub_5E08A:loc_5E0AAr ; sub_5E08A:loc_5E132r ... DM_DATA_MANAGER_KE_DGDM_MISFIRE_CONDS_LIMIT:dc.w $A ; DATA XREF: sub_5E08A+78r DM_EXECUTIVE_KV_DGDM_DTC_DEP_FR_LIST_ID:dc.b 0 ; DATA XREF: sub_5DE36+118r ; Defines the relationship between a DTC identifier and the DTC dependent PID list used in a Failure Record. ; Enumeration dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 DM_EXECUTIVE_KE_DGDM_COOLANT_RAIL:dc.b $FD ; DATA XREF: sub_5EFCC+40r ; This calibration is intended to represent the supply voltage to which an open coolant sensor input would float. ; Counts DM_EXECUTIVE_KE_DGDM_MAP_RAIL:dc.b 2 ; DATA XREF: sub_5EFCC+32r ; This calibration is intended to represent the supply voltage to which an open manifold pressure sensor input would float. ; Counts DM_EXECUTIVE_KE_DGDM_ODO_SINCE_CC_SCALE_FACT:dc.b $DA ; DATA XREF: sub_5EF12+6r ; Multiplier factor for determining proper DGDM_Odo_Since_CC scaling. ; KPS/MPH DM_EXECUTIVE_KE_DGDM_ODO_WITH_MIL_ON_SCALE_FA:dc.b $DA ; DATA XREF: sub_5EF12+6Cr ; Multiplier factor for determining proper DGDM_Odo_With_MIL_On scaling. ; KPS/MPH dc.b $FF DM_EXECUTIVE_KE_DGDM_SVS_ON_MIN_DURATION:dc.w $320 ; DATA XREF: sub_5EE7E+54r DM_TYPES_KV_NON_CONTINUOUS_TEST_SUPPORTED:dc.w $6DFF ; DATA XREF: OS2:00049FC6r ; OS2:loc_49FDAr ... ; This calibration indicates what non-continuous diagnostics are supported by the diagnostic executive. ; BOOLEAN DM_TYPES_KV_DM_FAULT_TYPE:dc.b 3 ; DATA XREF: sub_40044+Er ; sub_400FE+22r ... ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type dc.b 3 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 3 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 3 dc.b 3 dc.b 3 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 3 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 3 dc.b 3 dc.b 3 dc.b 1 dc.b 1 dc.b 3 dc.b 1 dc.b 1 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 1 dc.b 3 dc.b 0 dc.b 1 dc.b 3 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 2 dc.b 2 dc.b 2 dc.b 1 dc.b 1 dc.b 3 dc.b 1 dc.b 1 dc.b 3 dc.b 3 dc.b 1 dc.b 1 dc.b 3 dc.b 3 dc.b 1 dc.b 1 dc.b 2 dc.b 2 dc.b 3 dc.b 2 dc.b 3 dc.b 3 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b 0 dc.b 2 dc.b 3 dc.b 3 dc.b 2 dc.b 1 dc.b 2 dc.b 1 dc.b 1 dc.b 2 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 2 dc.b 3 dc.b 1 dc.b 2 dc.b 1 dc.b 3 dc.b 2 dc.b 3 dc.b 3 dc.b 3 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 3 dc.b 3 dc.b 0 dc.b 1 dc.b 1 dc.b 3 dc.b 3 dc.b 1 dc.b 1 dc.b 3 dc.b 3 dc.b 0 dc.b 3 dc.b 2 dc.b 2 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 0 dc.b 3 dc.b 2 dc.b 2 dc.b 3 dc.b 2 dc.b 2 dc.b 3 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 2 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 2 dc.b 2 dc.b 2 dc.b 0 dc.b 0 dc.b 3 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 0 dc.b 3 dc.b 1 dc.b 3 dc.b 3 dc.b 3 dc.b 0 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b $FF DM_TYPES_KV_DM_LIGHT_ENABLE:dc.b 0 ; DATA XREF: sub_5EA4A+3Ar ; sub_5EA4A+102r ... ; This calibration enables or disables the telltale lamp for any fault code. ; BOOLEAN dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF ETC_DIAG_KA_ETC_AIR_A0_FILT_COEF:dc.b $F8 ; ? ; DATA XREF: sub_200DE+17Co ; MAP based airflow diagnostic A0 filter time constant in msecs. ; Milliseconds dc.b $94 ; ? dc.b $F8 ; ? dc.b $94 ; ? dc.b $F9 ; ? dc.b $5F ; _ dc.b $FD ; ? dc.b $1B dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $F8 ; ? dc.b $94 ; ? dc.b $F8 ; ? dc.b $94 ; ? dc.b $F9 ; ? dc.b $C7 ; ? dc.b $FD ; ? dc.b $7B ; { dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $F8 ; ? dc.b $B7 ; ? dc.b $F8 ; ? dc.b $B7 ; ? dc.b $FA ; ? dc.b $87 ; ? dc.b $FD ; ? dc.b $E9 ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $F8 ; ? dc.b $D0 ; ? dc.b $F8 ; ? dc.b $D0 ; ? dc.b $FA ; ? dc.b $C2 ; ? dc.b $FE ; ? dc.b $27 ; ' dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $F8 ; ? dc.b $F1 ; ? dc.b $F8 ; ? dc.b $F1 ; ? dc.b $FB ; ? dc.b $A dc.b $FE ; ? dc.b $6B ; k dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $F9 ; ? dc.b $1E dc.b $F9 ; ? dc.b $1E dc.b $FB ; ? dc.b $61 ; a dc.b $FE ; ? dc.b $B4 ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $F9 ; ? dc.b $5F ; _ dc.b $F9 ; ? dc.b $5F ; _ dc.b $FB ; ? dc.b $CF ; ? dc.b $FF dc.b 4 dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $F9 ; ? dc.b $C7 ; ? dc.b $F9 ; ? dc.b $C7 ; ? dc.b $FC ; ? dc.b $5D ; ] dc.b $FF dc.b $5D ; ] dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FA ; ? dc.b $87 ; ? dc.b $FA ; ? dc.b $87 ; ? dc.b $FD ; ? dc.b $1B dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FB ; ? dc.b $CF ; ? dc.b $FB ; ? dc.b $CF ; ? dc.b $FE ; ? dc.b $27 ; ' dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? dc.b $FF dc.b $BE ; ? ETC_DIAG_KA_ETC_AIR_B0_FILT_COEF:dc.b 0 ; DATA XREF: sub_200DE+130o ; MAP based airflow diagnostic B0 filter time constant in msecs. ; Milliseconds dc.b $4A ; J dc.b 0 dc.b $4A ; J dc.b 0 dc.b $B0 ; ? dc.b 2 dc.b $8E ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 0 dc.b $4A ; J dc.b 0 dc.b $4A ; J dc.b 0 dc.b $E4 ; ? dc.b 2 dc.b $BD ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 0 dc.b $5C ; \ dc.b 0 dc.b $5C ; \ dc.b 1 dc.b $43 ; C dc.b 2 dc.b $F5 ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 0 dc.b $68 ; h dc.b 0 dc.b $68 ; h dc.b 1 dc.b $61 ; a dc.b 3 dc.b $14 dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 0 dc.b $78 ; x dc.b 0 dc.b $78 ; x dc.b 1 dc.b $85 ; ? dc.b 3 dc.b $35 ; 5 dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $8F ; ? dc.b 1 dc.b $B1 ; ? dc.b 3 dc.b $5A ; Z dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 0 dc.b $B0 ; ? dc.b 0 dc.b $B0 ; ? dc.b 1 dc.b $E8 ; ? dc.b 3 dc.b $82 ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $E4 ; ? dc.b 2 dc.b $2F ; / dc.b 3 dc.b $AE ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 1 dc.b $43 ; C dc.b 1 dc.b $43 ; C dc.b 2 dc.b $8E ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 1 dc.b $E8 ; ? dc.b 1 dc.b $E8 ; ? dc.b 3 dc.b $14 dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? dc.b 3 dc.b $DF ; ? ETC_DIAG_KA_ETC_MAF_FILT_A0_COEF:dc.b $F8 ; ? ; DATA XREF: sub_200DE+2CEo ; MAF based airflow diagnostic A0 filter time constant in msecs. ; Milliseconds dc.b $5E ; ^ dc.b $F8 ; ? dc.b $6B ; k dc.b $F8 ; ? dc.b $7C ; | dc.b $F8 ; ? dc.b $A7 ; ? dc.b $F8 ; ? dc.b $D6 ; ? dc.b $F8 ; ? dc.b $F1 ; ? dc.b $F9 ; ? dc.b 1 dc.b $F9 ; ? dc.b $A dc.b $F9 ; ? dc.b $14 dc.b $F9 ; ? dc.b $29 ; ) dc.b $F9 ; ? dc.b $29 ; ) dc.b $F8 ; ? dc.b $5E ; ^ dc.b $F8 ; ? dc.b $6B ; k dc.b $F8 ; ? dc.b $7C ; | dc.b $F8 ; ? dc.b $D6 ; ? dc.b $F9 ; ? dc.b $A dc.b $F9 ; ? dc.b $A dc.b $F9 ; ? dc.b $14 dc.b $F9 ; ? dc.b $29 ; ) dc.b $F9 ; ? dc.b $35 ; 5 dc.b $F9 ; ? dc.b $42 ; B dc.b $F9 ; ? dc.b $42 ; B dc.b $F8 ; ? dc.b $6B ; k dc.b $F8 ; ? dc.b $94 ; ? dc.b $F8 ; ? dc.b $F1 ; ? dc.b $F9 ; ? dc.b $29 ; ) dc.b $F9 ; ? dc.b $5F ; _ dc.b $F9 ; ? dc.b $5F ; _ dc.b $F9 ; ? dc.b $5F ; _ dc.b $F9 ; ? dc.b $5F ; _ dc.b $F9 ; ? dc.b $5F ; _ dc.b $F9 ; ? dc.b $5F ; _ dc.b $F9 ; ? dc.b $5F ; _ dc.b $F8 ; ? dc.b $A4 ; ? dc.b $F8 ; ? dc.b $DC ; ? dc.b $F9 ; ? dc.b $35 ; 5 dc.b $F9 ; ? dc.b $5F ; _ dc.b $F9 ; ? dc.b $82 ; ? dc.b $F9 ; ? dc.b $82 ; ? dc.b $F9 ; ? dc.b $8E ; ? dc.b $F9 ; ? dc.b $97 ; ? dc.b $F9 ; ? dc.b $A4 ; ? dc.b $F9 ; ? dc.b $AE ; ? dc.b $F9 ; ? dc.b $AE ; ? dc.b $F9 ; ? dc.b $5F ; _ dc.b $F9 ; ? dc.b $AE ; ? dc.b $F9 ; ? dc.b $AE ; ? dc.b $F9 ; ? dc.b $AE ; ? dc.b $F9 ; ? dc.b $AE ; ? dc.b $F9 ; ? dc.b $AE ; ? dc.b $F9 ; ? dc.b $C7 ; ? dc.b $F9 ; ? dc.b $E4 ; ? dc.b $FA ; ? dc.b 4 dc.b $FA ; ? dc.b $2A ; * dc.b $FA ; ? dc.b $2A ; * dc.b $F9 ; ? dc.b $E4 ; ? dc.b $FA ; ? dc.b $2A ; * dc.b $FA ; ? dc.b $2A ; * dc.b $FA ; ? dc.b $2A ; * dc.b $FA ; ? dc.b $2A ; * dc.b $FA ; ? dc.b $55 ; U dc.b $FA ; ? dc.b $72 ; r dc.b $FA ; ? dc.b $87 ; ? dc.b $FA ; ? dc.b $A9 ; ? dc.b $FA ; ? dc.b $C2 ; ? dc.b $FA ; ? dc.b $C2 ; ? dc.b $FB ; ? dc.b $A dc.b $FB ; ? dc.b $A dc.b $FB ; ? dc.b $A dc.b $FB ; ? dc.b $A dc.b $FB ; ? dc.b $A dc.b $FB ; ? dc.b $CF ; ? dc.b $FB ; ? dc.b $CF ; ? dc.b $FB ; ? dc.b $CF ; ? dc.b $FB ; ? dc.b $CF ; ? dc.b $FB ; ? dc.b $CF ; ? dc.b $FB ; ? dc.b $CF ; ? dc.b $FB ; ? dc.b $CF ; ? dc.b $FB ; ? dc.b $CF ; ? dc.b $FB ; ? dc.b $CF ; ? dc.b $FB ; ? dc.b $CF ; ? dc.b $FB ; ? dc.b $CF ; ? dc.b $FC ; ? dc.b $5D ; ] dc.b $FC ; ? dc.b $5D ; ] dc.b $FC ; ? dc.b $5D ; ] dc.b $FC ; ? dc.b $5D ; ] dc.b $FC ; ? dc.b $5D ; ] dc.b $FC ; ? dc.b $5D ; ] dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B dc.b $FD ; ? dc.b $1B ETC_DIAG_KA_ETC_MAF_FILT_B0_COEF:dc.b 0 ; DATA XREF: sub_200DE+284o ; MAF based airflow diagnostic B0 filter time constant in msecs. ; Milliseconds dc.b $2F ; / dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $3E ; > dc.b 0 dc.b $54 ; T dc.b 0 dc.b $6B ; k dc.b 0 dc.b $78 ; x dc.b 0 dc.b $81 ; ? dc.b 0 dc.b $85 ; ? dc.b 0 dc.b $8A ; ? dc.b 0 dc.b $94 ; ? dc.b 0 dc.b $94 ; ? dc.b 0 dc.b $2F ; / dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $3E ; > dc.b 0 dc.b $6B ; k dc.b 0 dc.b $85 ; ? dc.b 0 dc.b $85 ; ? dc.b 0 dc.b $8A ; ? dc.b 0 dc.b $94 ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $A1 ; ? dc.b 0 dc.b $A1 ; ? dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $4A ; J dc.b 0 dc.b $78 ; x dc.b 0 dc.b $94 ; ? dc.b 0 dc.b $B0 ; ? dc.b 0 dc.b $B0 ; ? dc.b 0 dc.b $B0 ; ? dc.b 0 dc.b $B0 ; ? dc.b 0 dc.b $B0 ; ? dc.b 0 dc.b $B0 ; ? dc.b 0 dc.b $B0 ; ? dc.b 0 dc.b $52 ; R dc.b 0 dc.b $6E ; n dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $B0 ; ? dc.b 0 dc.b $C1 ; ? dc.b 0 dc.b $C1 ; ? dc.b 0 dc.b $C7 ; ? dc.b 0 dc.b $CB ; ? dc.b 0 dc.b $D2 ; ? dc.b 0 dc.b $D7 ; ? dc.b 0 dc.b $D7 ; ? dc.b 0 dc.b $B0 ; ? dc.b 0 dc.b $D7 ; ? dc.b 0 dc.b $D7 ; ? dc.b 0 dc.b $D7 ; ? dc.b 0 dc.b $D7 ; ? dc.b 0 dc.b $D7 ; ? dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $F2 ; ? dc.b 1 dc.b 2 dc.b 1 dc.b $15 dc.b 1 dc.b $15 dc.b 0 dc.b $F2 ; ? dc.b 1 dc.b $15 dc.b 1 dc.b $15 dc.b 1 dc.b $15 dc.b 1 dc.b $15 dc.b 1 dc.b $2A ; * dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $43 ; C dc.b 1 dc.b $55 ; U dc.b 1 dc.b $61 ; a dc.b 1 dc.b $61 ; a dc.b 1 dc.b $85 ; ? dc.b 1 dc.b $85 ; ? dc.b 1 dc.b $85 ; ? dc.b 1 dc.b $85 ; ? dc.b 1 dc.b $85 ; ? dc.b 1 dc.b $E8 ; ? dc.b 1 dc.b $E8 ; ? dc.b 1 dc.b $E8 ; ? dc.b 1 dc.b $E8 ; ? dc.b 1 dc.b $E8 ; ? dc.b 1 dc.b $E8 ; ? dc.b 1 dc.b $E8 ; ? dc.b 1 dc.b $E8 ; ? dc.b 1 dc.b $E8 ; ? dc.b 1 dc.b $E8 ; ? dc.b 1 dc.b $E8 ; ? dc.b 2 dc.b $2F ; / dc.b 2 dc.b $2F ; / dc.b 2 dc.b $2F ; / dc.b 2 dc.b $2F ; / dc.b 2 dc.b $2F ; / dc.b 2 dc.b $2F ; / dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 unk_19191: dc.b $8E ; ? ; DATA XREF: sub_4974A+78o dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? dc.b 2 dc.b $8E ; ? ETC_DIAG_KV_MAX_ETC_MAF_AIRFLOW:dc.w $29E0 ; DATA XREF: sub_200DE:loc_2030Er ; Lookup to clamp the value of the MAF sensor based airflow usingengine speed as the index ; Milligrams_Per_Cylinder dc.b $25 ; % dc.b $80 ; ? dc.b $26 ; & dc.b $20 dc.b $28 ; ( dc.b 0 dc.b $29 ; ) dc.b $40 ; @ dc.b $2A ; * dc.b $30 ; 0 dc.b $2B ; + dc.b $70 ; p dc.b $2E ; . dc.b $90 ; ? dc.b $2F ; / dc.b $80 ; ? dc.b $30 ; 0 dc.b $70 ; p dc.b $31 ; 1 dc.b $60 ; ` dc.b $2F ; / dc.b $80 ; ? dc.b $2B ; + dc.b $C0 ; ? dc.b $28 ; ( dc.b $A0 ; ? dc.b $26 ; & dc.b $20 dc.b $23 ; # dc.b $F0 ; ? dc.b $21 ; ! dc.b $C0 ; ? ETC_DIAG_KV_DESIRED_TERM_COEF_0:dc.b 4 ; DATA XREF: sub_20718:loc_207F8o ; Nth order model coefficient vs. ignition voltage for current Desired Throttle Position. ; Nth_Model_Coef_Vs_Volts_Table dc.b $62 ; b dc.b 4 dc.b $62 ; b dc.b 4 dc.b $62 ; b dc.b 4 dc.b $62 ; b dc.b 3 dc.b $2F ; / dc.b 3 dc.b $9F ; ? dc.b 5 dc.b $8D ; ? dc.b 4 dc.b 2 dc.b 5 dc.b $A1 ; ? dc.b 3 dc.b $6F ; o dc.b 4 dc.b $C7 ; ? dc.b 5 dc.b $26 ; & dc.b 4 dc.b $94 ; ? dc.b 3 dc.b $DA ; ? dc.b 3 dc.b $8C ; ? dc.b 3 dc.b $8C ; ? ETC_DIAG_KV_DESIRED_TERM_COEF_1:dc.b 8 ; DATA XREF: sub_20718:loc_207CEo ; Nth order model coefficient vs. ingition voltage for 1 sample old Desired Throttle Position. ; Nth_Model_Coef_Vs_Volts_Table dc.b $97 ; ? dc.b 8 dc.b $97 ; ? dc.b 8 dc.b $97 ; ? dc.b 8 dc.b $97 ; ? dc.b $B dc.b $99 ; ? dc.b $C dc.b $12 dc.b $E dc.b 6 dc.b $E dc.b $63 ; c dc.b $10 dc.b $71 ; q dc.b $11 dc.b $7E ; ~ dc.b $F dc.b $31 ; 1 dc.b $12 dc.b $1F dc.b $12 dc.b $E9 ; ? dc.b $11 dc.b $ED ; ? dc.b $11 dc.b $B2 ; ? dc.b $11 dc.b $B2 ; ? ETC_DIAG_KV_DESIRED_TERM_COEF_2:dc.b $14 ; DATA XREF: sub_20718:loc_207AAo ; Nth order model coefficient vs. ingition voltage for 2 samples old Desired Throttle Position. ; Nth_Model_Coef_Vs_Volts_Table dc.b $1C dc.b $14 dc.b $1C dc.b $14 dc.b $1C dc.b $14 dc.b $1C dc.b $16 dc.b 2 dc.b $16 dc.b $59 ; Y dc.b $1A dc.b $64 ; d dc.b $19 dc.b $4D ; M dc.b $20 dc.b $33 ; 3 dc.b $1E dc.b $11 dc.b $1D dc.b $21 ; ! dc.b $21 ; ! dc.b $41 ; A dc.b $1F dc.b $87 ; ? dc.b $1E dc.b $D8 ; ? dc.b $20 dc.b $35 ; 5 dc.b $20 dc.b $35 ; 5 ETC_DIAG_KV_ESTIMATED_TERM_COEF_1:dc.b $D4 ; ? ; DATA XREF: sub_20718:loc_20840o ; Nth order model coefficient vs. ingition voltage for 1 sample old Nth order model output. ; Nth_Model_Coef_Vs_Volts_Table dc.b $5C ; \ dc.b $D4 ; ? dc.b $5C ; \ dc.b $D4 ; ? dc.b $5C ; \ dc.b $D4 ; ? dc.b $5C ; \ dc.b $DB ; ? dc.b $E3 ; ? dc.b $DD ; ? dc.b $B2 ; ? dc.b $E6 ; ? dc.b $F6 ; ? dc.b $E6 ; ? dc.b $62 ; b dc.b $F1 ; ? dc.b $97 ; ? dc.b $F0 ; ? dc.b $56 ; V dc.b $EC ; ? dc.b $B5 ; ? dc.b $F4 ; ? dc.b $19 dc.b $F1 ; ? dc.b $DC ; ? dc.b $F0 ; ? dc.b $88 ; ? dc.b $F2 ; ? dc.b $91 ; ? dc.b $F2 ; ? dc.b $91 ; ? ETC_DIAG_KV_ESTIMATED_TERM_COEF_2:dc.b $C ; DATA XREF: sub_20718:loc_2081Ao ; Nth order model coefficient vs. ingition voltage for 2 samples old Nth order model output. ; Nth_Model_Coef_Vs_Volts_Table dc.b $AE ; ? dc.b $C dc.b $AE ; ? dc.b $C dc.b $AE ; ? dc.b $C dc.b $AE ; ? dc.b 8 dc.b $D8 ; ? dc.b 8 dc.b $41 ; A dc.b 6 dc.b $DA ; ? dc.b 5 dc.b $40 ; @ dc.b 4 dc.b $99 ; ? dc.b 2 dc.b $A5 ; ? dc.b 4 dc.b $5D ; ] dc.b 4 dc.b $62 ; b dc.b 5 dc.b $17 dc.b 4 dc.b $2E ; . dc.b 2 dc.b $F0 ; ? dc.b 2 dc.b $F0 ; ? ETC_DIAG_KA_SATP_AIRFLOW:dc.b $25 ; % ; DATA XREF: sub_200DE+86o ; Predicted airflow at standard pressure and temp based on currentEngine speed and commanded throttle position. ; mGPC_Vs_RPM_And_Rotation_Table dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b 6 dc.b $E0 ; ? dc.b $D dc.b $C0 ; ? dc.b $17 dc.b $70 ; p dc.b $1D dc.b $10 dc.b $1F dc.b $40 ; @ dc.b $20 dc.b $30 ; 0 dc.b $21 ; ! dc.b $20 dc.b $21 ; ! dc.b $20 dc.b $21 ; ! dc.b $20 dc.b $21 ; ! dc.b $20 dc.b $21 ; ! dc.b $20 dc.b $21 ; ! dc.b $20 dc.b $21 ; ! dc.b $20 dc.b $21 ; ! dc.b $20 dc.b $21 ; ! dc.b $20 dc.b $21 ; ! dc.b $20 dc.b $21 ; ! dc.b $20 dc.b 3 dc.b $C0 ; ? dc.b 7 dc.b $80 ; ? dc.b $F dc.b $50 ; P dc.b $17 dc.b $70 ; p dc.b $1E dc.b 0 dc.b $20 dc.b $80 ; ? dc.b $21 ; ! dc.b $C0 ; ? dc.b $21 ; ! dc.b $C0 ; ? dc.b $21 ; ! dc.b $C0 ; ? dc.b $21 ; ! dc.b $C0 ; ? dc.b $21 ; ! dc.b $C0 ; ? dc.b $21 ; ! dc.b $C0 ; ? dc.b $21 ; ! dc.b $C0 ; ? dc.b $21 ; ! dc.b $C0 ; ? dc.b $21 ; ! dc.b $C0 ; ? dc.b $21 ; ! dc.b $C0 ; ? dc.b $21 ; ! dc.b $C0 ; ? dc.b 2 dc.b $D0 ; ? dc.b 4 dc.b $B0 ; ? dc.b $A dc.b 0 dc.b $11 dc.b $D0 ; ? dc.b $1B dc.b $D0 ; ? dc.b $20 dc.b $D0 ; ? dc.b $22 ; " dc.b $B0 ; ? dc.b $23 ; # dc.b $50 ; P dc.b $23 ; # dc.b $A0 ; ? dc.b $23 ; # dc.b $A0 ; ? dc.b $23 ; # dc.b $A0 ; ? dc.b $23 ; # dc.b $A0 ; ? dc.b $23 ; # dc.b $A0 ; ? dc.b $23 ; # dc.b $A0 ; ? dc.b $23 ; # dc.b $A0 ; ? dc.b $23 ; # dc.b $A0 ; ? dc.b $23 ; # dc.b $A0 ; ? dc.b 2 dc.b $30 ; 0 dc.b 3 dc.b $C0 ; ? dc.b 7 dc.b $80 ; ? dc.b $F dc.b 0 dc.b $18 dc.b $B0 ; ? dc.b $1E dc.b $F0 ; ? dc.b $22 ; " dc.b $10 dc.b $23 ; # dc.b $50 ; P dc.b $23 ; # dc.b $F0 ; ? dc.b $24 ; $ dc.b $90 ; ? dc.b $24 ; $ dc.b $E0 ; ? dc.b $24 ; $ dc.b $E0 ; ? dc.b $24 ; $ dc.b $E0 ; ? dc.b $24 ; $ dc.b $E0 ; ? dc.b $24 ; $ dc.b $E0 ; ? dc.b $24 ; $ dc.b $E0 ; ? dc.b $24 ; $ dc.b $E0 ; ? dc.b 1 dc.b $90 ; ? dc.b 3 dc.b $20 dc.b 5 dc.b 0 dc.b $B dc.b $40 ; @ dc.b $15 dc.b $40 ; @ dc.b $1C dc.b $20 dc.b $20 dc.b $80 ; ? dc.b $23 ; # dc.b $50 ; P dc.b $24 ; $ dc.b $40 ; @ dc.b $25 ; % dc.b $30 ; 0 dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $D0 ; ? dc.b $25 ; % dc.b $D0 ; ? dc.b $25 ; % dc.b $D0 ; ? dc.b $25 ; % dc.b $D0 ; ? dc.b $25 ; % dc.b $D0 ; ? dc.b $25 ; % dc.b $D0 ; ? dc.b 1 dc.b $90 ; ? dc.b 3 dc.b $20 dc.b 5 dc.b 0 dc.b 9 dc.b $10 dc.b $13 dc.b $60 ; ` dc.b $19 dc.b $A0 ; ? dc.b $20 dc.b $30 ; 0 dc.b $24 ; $ dc.b $40 ; @ dc.b $25 ; % dc.b $80 ; ? dc.b $26 ; & dc.b $70 ; p dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b 1 dc.b $90 ; ? dc.b 3 dc.b $20 dc.b 4 dc.b $10 dc.b 7 dc.b $30 ; 0 dc.b $F dc.b $A0 ; ? dc.b $17 dc.b $C0 ; ? dc.b $1E dc.b 0 dc.b $23 ; # dc.b 0 dc.b $26 ; & dc.b $20 dc.b $28 ; ( dc.b $50 ; P dc.b $28 ; ( dc.b $F0 ; ? dc.b $29 ; ) dc.b $90 ; ? dc.b $29 ; ) dc.b $E0 ; ? dc.b $2A ; * dc.b $30 ; 0 dc.b $2A ; * dc.b $30 ; 0 dc.b $2A ; * dc.b $30 ; 0 dc.b $2A ; * dc.b $30 ; 0 dc.b 1 dc.b $90 ; ? dc.b 3 dc.b $20 dc.b 3 dc.b $C0 ; ? dc.b 6 dc.b $40 ; @ dc.b $D dc.b $20 dc.b $15 dc.b $90 ; ? dc.b $1C dc.b $20 dc.b $22 ; " dc.b $B0 ; ? dc.b $26 ; & dc.b $20 dc.b $28 ; ( dc.b 0 dc.b $29 ; ) dc.b $40 ; @ dc.b $2A ; * dc.b $80 ; ? dc.b $2B ; + dc.b $20 dc.b $2B ; + dc.b $20 dc.b $2B ; + dc.b $20 dc.b $2B ; + dc.b $20 dc.b $2B ; + dc.b $20 dc.b 1 dc.b $90 ; ? dc.b 3 dc.b $20 dc.b 3 dc.b $20 dc.b 5 dc.b $A0 ; ? dc.b 9 dc.b $10 dc.b $11 dc.b $80 ; ? dc.b $1A dc.b $E0 ; ? dc.b $21 ; ! dc.b $70 ; p dc.b $24 ; $ dc.b $40 ; @ dc.b $26 ; & dc.b $C0 ; ? dc.b $29 ; ) dc.b $E0 ; ? dc.b $2B ; + dc.b $20 dc.b $2B ; + dc.b $20 dc.b $2B ; + dc.b $20 dc.b $2C ; , dc.b $10 dc.b $2C ; , dc.b $10 dc.b $2C ; , dc.b $10 dc.b 1 dc.b $90 ; ? dc.b 3 dc.b $20 dc.b 3 dc.b $20 dc.b 5 dc.b $A0 ; ? dc.b 9 dc.b $10 dc.b $10 dc.b $90 ; ? dc.b $19 dc.b $A0 ; ? dc.b $20 dc.b $80 ; ? dc.b $23 ; # dc.b 0 dc.b $26 ; & dc.b $20 dc.b $28 ; ( dc.b $A0 ; ? dc.b $2B ; + dc.b $20 dc.b $2B ; + dc.b $C0 ; ? dc.b $2C ; , dc.b $60 ; ` dc.b $2C ; , dc.b $60 ; ` dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b 1 dc.b $90 ; ? dc.b 3 dc.b $20 dc.b 3 dc.b $20 dc.b 5 dc.b $A0 ; ? dc.b 9 dc.b $10 dc.b $F dc.b $F0 ; ? dc.b $19 dc.b $F0 ; ? dc.b $1F dc.b $E0 ; ? dc.b $22 ; " dc.b $10 dc.b $25 ; % dc.b $80 ; ? dc.b $26 ; & dc.b $C0 ; ? dc.b $28 ; ( dc.b 0 dc.b $29 ; ) dc.b $90 ; ? dc.b $2A ; * dc.b $30 ; 0 dc.b $2A ; * dc.b $D0 ; ? dc.b $2B ; + dc.b $20 dc.b $2B ; + dc.b $20 dc.b 1 dc.b $90 ; ? dc.b 3 dc.b $20 dc.b 3 dc.b $20 dc.b 5 dc.b $A0 ; ? dc.b 9 dc.b $10 dc.b $F dc.b $F0 ; ? dc.b $19 dc.b $F0 ; ? dc.b $1F dc.b $40 ; @ dc.b $21 ; ! dc.b $70 ; p dc.b $24 ; $ dc.b $40 ; @ dc.b $24 ; $ dc.b $E0 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $D0 ; ? dc.b $26 ; & dc.b $70 ; p dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $60 ; ` dc.b $27 ; ' dc.b $60 ; ` dc.b 1 dc.b $90 ; ? dc.b 3 dc.b $20 dc.b 3 dc.b $20 dc.b 5 dc.b $A0 ; ? dc.b 9 dc.b $10 dc.b $F dc.b $F0 ; ? dc.b $18 dc.b $B0 ; ? dc.b $1E dc.b 0 dc.b $20 dc.b $80 ; ? dc.b $22 ; " dc.b $60 ; ` dc.b $23 ; # dc.b 0 dc.b $23 ; # dc.b $50 ; P dc.b $23 ; # dc.b $A0 ; ? dc.b $23 ; # dc.b $F0 ; ? dc.b $24 ; $ dc.b $40 ; @ dc.b $24 ; $ dc.b $40 ; @ dc.b $24 ; $ dc.b $40 ; @ dc.b 1 dc.b $90 ; ? dc.b 3 dc.b $20 dc.b 3 dc.b $20 dc.b 5 dc.b $A0 ; ? dc.b 9 dc.b $10 dc.b $F dc.b $F0 ; ? dc.b $17 dc.b $E0 ; ? dc.b $1C dc.b $70 ; p dc.b $1E dc.b 0 dc.b $1F dc.b $40 ; @ dc.b $1F dc.b $E0 ; ? dc.b $20 dc.b $80 ; ? dc.b $20 dc.b $D0 ; ? dc.b $21 ; ! dc.b $20 dc.b $21 ; ! dc.b $70 ; p dc.b $21 ; ! dc.b $C0 ; ? dc.b $21 ; ! dc.b $C0 ; ? dc.b 1 dc.b $90 ; ? dc.b 3 dc.b $20 dc.b 3 dc.b $20 dc.b 5 dc.b $A0 ; ? dc.b 9 dc.b $10 dc.b $F dc.b $F0 ; ? dc.b $17 dc.b $60 ; ` dc.b $1B dc.b $80 ; ? dc.b $1C dc.b $E0 ; ? dc.b $1D dc.b $90 ; ? dc.b $1E dc.b $60 ; ` dc.b $1E dc.b $B0 ; ? dc.b $1E dc.b $F0 ; ? dc.b $1F dc.b $40 ; @ dc.b $1F dc.b $40 ; @ dc.b $1F dc.b $90 ; ? dc.b $1F dc.b $90 ; ? dc.b 1 dc.b $90 ; ? dc.b 3 dc.b $20 dc.b 3 dc.b $20 dc.b 5 dc.b $A0 ; ? dc.b 9 dc.b $10 dc.b $F dc.b $F0 ; ? dc.b $16 dc.b $40 ; @ dc.b $19 dc.b $D0 ; ? dc.b $1B dc.b $40 ; @ dc.b $1B dc.b $D0 ; ? dc.b $1C dc.b $20 dc.b $1C dc.b $70 ; p dc.b $1C dc.b $C0 ; ? dc.b $1D dc.b $10 dc.b $1D dc.b $60 ; ` dc.b $1D dc.b $60 ; ` dc.b $1D dc.b $60 ; ` ETC_DIAG_KV_BARO_CORR_FACTOR:dc.b $4D ; M ; DATA XREF: sub_200DE:loc_2019Eo ; Lookup for a correction factor for barometric pressure. ; Scaler_0to2_Vs_kPa_Table dc.b $5A ; Z dc.b $66 ; f dc.b $73 ; s dc.b $80 ; ? dc.b $FF ETC_DIAG_KV_INDUCTION_TEMP_CORR_FACTOR:dc.b $90 ; ? ; DATA XREF: sub_200DE+D6o ; Lookup for a correction factor for induction air temperature. ; Scaler_0to2_Vs_Degrees_C_Table dc.b $8D ; ? dc.b $8A ; ? dc.b $87 ; ? dc.b $85 ; ? dc.b $82 ; ? dc.b $80 ; ? dc.b $7E ; ~ dc.b $7C ; | dc.b $7A ; z dc.b $78 ; x dc.b $76 ; v dc.b $75 ; u dc.b $73 ; s dc.b $72 ; r dc.b $70 ; p dc.b $6F ; o dc.b $6D ; m dc.b $6C ; l dc.b $FF ETC_DIAG_KA_PEDAL_STATUS_DECODE:dc.b 0 ; DATA XREF: sub_20000+4Er ; Pedal sensor vrs pedal sensor faults conversion constants. DISAGREE 0=1-2 1=1-3 2=2-3 X RANGE 0=PPS1, 1=PPS2, 2=PPS3 ; Pedal_Status_Table_Type dc.l off_0+$100 ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b 1 dc.b 1 dc.b 2 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 2 dc.b 1 dc.b 1 dc.b 2 dc.b 0 dc.b 0 dc.b 2 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 2 dc.b 1 dc.b 0 dc.b 2 dc.b 1 dc.b 2 dc.b 1 dc.b 1 dc.b 2 dc.b 0 dc.b 2 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 2 dc.b 1 dc.b 2 dc.b 0 dc.b 1 dc.b 2 dc.b 1 dc.b 1 dc.b 2 dc.b 1 dc.b 2 dc.b 2 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 1 dc.b 2 dc.b 1 dc.b 1 dc.b 2 ETC_DIAG_KV_THROTTLE_STATUS_DECODE:dc.b 0 ; DATA XREF: sub_2008A+3Ar ; Throttle status as a function of throttle related diagnostic flags0=TPS1 range 1=TPS2 Range 2=TPS Disagree ; Throttle_Status_Table_Type dc.b 1 dc.b 1 dc.b 2 dc.b 1 dc.b 1 dc.b 1 dc.b 2 ETC_DIAG_KE_MIN_MAF_VALID_TIME:dc.w $A0 ; DATA XREF: sub_200DE+8r ; Time that ignition voltage must be present for the MAF sensorheating element to warm up. ; Seconds ETC_DIAG_KE_TPS_VS_MAF_ACTUATION_ERROR:dc.w $960 ; DATA XREF: sub_200DE+35Er ; Limit for TPS Vs MAF airflow actuation error. ; Milligrams_Per_Cylinder ETC_DIAG_KE_TPS_VS_MAP_ACTUATION_ERROR:dc.w $960 ; DATA XREF: sub_200DE+3F8r ; Limit for TPS Vs MAP airflow actuation error. ; Milligrams_Per_Cylinder ETC_DIAG_KE_THROTTLE_ACTUATION_ERROR_COUN:dc.b $14 ; DATA XREF: sub_208D8:loc_20A00r ; Max limit for accumulated local actuation errors ; SHORTCARD dc.b $FF ETC_DIAG_KE_THROTTLE_ACTUATION_ERROR_THRE:dc.w $133 ; DATA XREF: sub_208D8:loc_2092Ar ETC_DIAG_KE_DEFAULT_THROTTLE_POSITION:dc.w $3EA ; DATA XREF: sub_200DE:loc_2011Ar ; sub_20718+6Cr ; Throttle position to use when ETC link not awake or UART fault for estimating engine airflow. ; Percent_Rotation ETC_DIAG_KE_MAX_ALLOWABLE_INCONSISTENCY:dc.w $100 ; DATA XREF: sub_20A3A:loc_20A5Ar ; limit of difference between primary and redundant throt position ; Percent_Rotation ETC_DIAG_KE_MIN_MAF_VALID_RPM:dc.w $A00 ; DATA XREF: sub_200DE+1FEr ; sub_200DE+338r ... ; Lowest engine speed at which behavior of the MAF sensor is deemedaccurate. ; RPM ETC_DIAG_KE_AIRFLOW_ACTUATION_COUNT_LIMIT:dc.b $14 ; DATA XREF: sub_200DE+53Cr ; Number of times the airflow diagnostic must run before the testcomplete flag is set. ; SHORTCARD ETC_DIAG_KE_TPS_VS_MAF_ERROR_COUNT_LIMIT:dc.b $14 ; DATA XREF: sub_200DE+38Cr ; Limit for TPS vs MAF accumulated airflow actuation errors. ; SHORTCARD ETC_DIAG_KE_TPS_VS_MAF_ACT_UP_COUNTER:dc.b 2 ; DATA XREF: sub_200DE+36Cr ; Amount to inc the airflow act error count when possible TPS vs MAF airflow actuation error ; SHORTCARD ETC_DIAG_KE_TPS_VS_MAP_ACT_DOWN_COUNTER:dc.b 1 ; DATA XREF: sub_200DE+418r ; Amount to dec the tps vs MAP airflow act error count when no actuation error ; SHORTCARD ETC_DIAG_KE_TPS_VS_MAP_ERROR_COUNT_LIMIT:dc.b $14 ; DATA XREF: sub_200DE+426r ; Limit for TPS vs MAP accumulated airflow actuation errors. ; SHORTCARD ETC_DIAG_KE_TPS_VS_MAP_ACT_UP_COUNTER:dc.b 2 ; DATA XREF: sub_200DE+406r ; Amount to inc the airflow act error count when possible TPS vs MAP airflow actuation error ; SHORTCARD ETC_DIAG_KE_TPS_VS_MAF_ACT_DOWN_COUNTER:dc.b 1 ; DATA XREF: sub_200DE+37Er ; Amount to dec the tps vs MAF airflow act error count when no actuation error ; SHORTCARD ETC_DIAG_KE_THR_HI_CTR_INC:dc.b 2 ; DATA XREF: sub_208D8+62r ETC_DIAG_KE_THR_HI_CTR_POS_ERR_DEC:dc.b 1 ; DATA XREF: sub_208D8+94r ETC_DIAG_KE_THR_HI_CTR_NEG_ERR_DEC:dc.b 5 ; DATA XREF: sub_208D8+C2r ETC_DIAG_KE_THR_HI_CTR_NEG_THRESH_DEC:dc.b $FF ; DATA XREF: sub_208D8+E8r ETC_DIAG_KE_THR_LO_CTR_INC:dc.b 2 ; DATA XREF: sub_208D8+FAr ETC_DIAG_KE_THR_LO_CTR_NEG_ERR_DEC:dc.b 1 ; DATA XREF: sub_208D8+D4r ETC_DIAG_KE_THR_LO_CTR_POS_ERR_DEC:dc.b 5 ; DATA XREF: sub_208D8+A6r ETC_DIAG_KE_THR_LO_CTR_POS_THRESH_DEC:dc.b $FF ; DATA XREF: sub_208D8+76r dc.b $FF MANIFOLD_KE_MAP_DEFAULT_SLOPE:dc.w $1F00 ; DATA XREF: sub_807E0+C4r ; Manifold absolute pressure scaling factor used to convert cylinder air mass to manifold pressure for default calculation. ; kPa/Gram/Cylinder MANIFOLD_KV_MAP_DEFAULT_OFFSET:dc.w $A00 ; DATA XREF: sub_807E0+BCr ; Manifold absolute pressure offset value for defaultcalculation. ; dc.b 3 dc.b 0 dc.b 2 dc.b $1A dc.b 1 dc.b $9A ; ? dc.b 1 dc.b $33 ; 3 dc.b 1 dc.b 0 dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $66 ; f dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 MANIFOLD_KE_MAP_DEFAULT_ENGINE_NOT_RUNNIN:dc.w $1200 ; DATA XREF: sub_807E0:loc_808CCr ; sub_807E0:loc_808E2r ... ; Manifold absolute pressure offset value for defaultcalculation. ; kPa MANIFOLD_KE_MAF_DEFAULT_SLOPE:dc.w $500 ; DATA XREF: sub_807E0:loc_8083Er MANIFOLD_KE_MAF_DEFAULT_MINIMUM:dc.w $340 ; DATA XREF: sub_807E0:loc_80852r MANIFOLD_KE_MAP_SENSOR_SCALE_FACTOR:dc.w $12E3 ; DATA XREF: sub_807E0+16r ; sub_8093C+2Cr ... ; Manifold absolute pressure sensor scaling factor. ; kPa/Count MANIFOLD_KE_MAP_SENSOR_OFFSET:dc.w $211 ; DATA XREF: sub_807E0+Er ; sub_8093C:loc_80960r ... ; Manifold absolute pressure sensor offset value. ; kPa T_DG_TASKS_KE_MAN_VSS_COOLANT_TEMPERATURE:dc.w $380 ; DATA XREF: sub_4B494+1Ar ; Disable VSS diagnostic below this temperature. ; Degrees C T_DG_TASKS_KE_MAN_VSS_DELAY:dc.b $14 ; DATA XREF: sub_4B4C4+88r ; Delay time to meet enable criteria, before checking VSS. ; Counts dc.b $FF T_DG_TASKS_KE_MAN_VSS_DIAG_FAIL:dc.w $1F4 ; DATA XREF: sub_4B4C4+CEr ; Number of failures to fail the code. ; Counts T_DG_TASKS_KE_MAN_VSS_DIAG_MAX_THROTTLE:dc.w $1400 ; DATA XREF: sub_4B4C4+3Er ; Diagnostic does not run above this throttle position. ; Percent T_DG_TASKS_KE_MAN_VSS_DIAG_MIN_THROTTLE:dc.w $100 ; DATA XREF: sub_4B4C4+32r ; Diagnostic does not run below this throttle position. ; Percent T_DG_TASKS_KE_MAN_VSS_DIAG_PASS:dc.w $258 ; DATA XREF: sub_4B4C4:loc_4B5B2r ; Number of passes to pass the code. ; Counts T_DG_TASKS_KE_MAN_VSS_DIAG_RPM:dc.w $1400 ; DATA XREF: sub_4B4C4+26r ; Diagnostic does not run below this RPM. ; RPM T_DG_TASKS_KV_MAN_VSS_DIAG_MAX_MAP:dc.w $14CD ; DATA XREF: sub_4B4C4+74r ; Diagnostic does not run above this pressure. ; kPa dc.b $14 dc.b $CD ; ? T_DG_TASKS_KV_MAN_VSS_DIAG_MIN_MAP:dc.w $800 ; DATA XREF: sub_4B4C4+58r ; Diagnostic does not run below this pressure. ; kPa dc.b 9 dc.b 0 T_DG_TASKS_KE_CLUTCH_SWITCH_FAIL_COUNT_MAX:dc.b 7 ; DATA XREF: sub_75BC0+66r ; If Clutch_Switch_Fail_Count exceeds this calibration, a clutch switch failure will be logged to the diagnostic executive ; Counts T_DG_TASKS_KE_CLUTCH_SWITCH_SAMPLE_COUNT_MA:dc.b 8 ; DATA XREF: sub_75BC0:loc_75C00r ; If Clutch_Switch_Sample_Count exceeds this calibration, a clutch switch test passed will be logged to the diagnostic executive ; Counts T_DG_TASKS_KE_PRNDL_CKT_FAIL_COUNT_MAX:dc.b $64 ; DATA XREF: sub_759C6+4Cr ; If PRNDL_Ckt_Fail_Count exceeds this value, PRNDL_Range_Fault will be logged to the diagnostic. ; Counts T_DG_TASKS_KE_PRNDL_CKT_SAMPLE_COUNT_MAX:dc.b $96 ; DATA XREF: sub_759C6:loc_75A2Er ; If PRNDL_Ckt_Sample_Count exceeds this value, PRNDL_Range_Passed will be logged to the diagnostic. ; Counts T_DG_TASKS_KE_PRNDL_PNSWITCH_DR_FAIL_CNT:dc.b $FF ; DATA XREF: sub_758D8+AAr T_DG_TASKS_KE_PRNDL_PNSWITCH_DR_PASS_CNT:dc.b 0 ; DATA XREF: sub_758D8:loc_759A4r T_DG_TASKS_KE_PRNDL_PNSWITCH_PN_FAIL_CNT:dc.b $64 ; DATA XREF: sub_75A66+CCr T_DG_TASKS_KE_PRNDL_PNSWITCH_PN_PASS_CNT:dc.b $96 ; DATA XREF: sub_75A66+F0r T_DG_TASKS_KE_CLUTCH_VEHICLE_SPEED_THRESH:dc.w $C00 ; DATA XREF: sub_75BC0+92r ; The vehicle speed threshold at which there should be at least one transmission clutch switch transition. ; MPH T_DG_TASKS_KE_PRNDL_PNSWITCH_ENG_RUN_MIN:dc.w $2580 ; DATA XREF: sub_75A66+4Cr T_DG_TASKS_KE_PRNDL_PNSWITCH_GEAR_MIN:dc.b 2 ; DATA XREF: sub_75A66+8Er dc.b $FF T_DG_TASKS_KE_PRNDL_PNSWITCH_THROTTLE_MIN:dc.w $100 ; DATA XREF: sub_75A66+5Er T_DG_TASKS_KE_PRNDL_PNSWITCH_TORQUE_MIN:dc.w $A00 ; DATA XREF: sub_75A66+78r ; Engine troque must be greater than or equal to this in order to run Park/Neutral test of the PRNDL_Switch diagnostic (P706). ; Foot_Pounds T_DG_TASKS_KE_PRNDL_PNSWITCH_VEH_SPD_MIN:dc.w $A00 ; DATA XREF: sub_75A66+6Cr T_DG_TASKS_KE_PRNDL_PNSWITCH_VOLTAGE_MIN:dc.b $3C ; DATA XREF: sub_758D8+88r ; sub_759C6+3Cr ... T_DG_TASKS_KE_PRNDL_PNSWITCH_VOLTAGE_MAX:dc.b $B4 ; DATA XREF: sub_758D8+9Ar ; sub_75A66+40r VOLTAGE_MONITOR_KE_SA_V5B1_FRACTION_LOW:dc.w $E0C5 ; DATA XREF: sub_75CD6+Cr ; Minimum threshold that the ratio of V5B1 voltage to 5volt reference can be before setting a fault. ; Unitless VOLTAGE_MONITOR_KE_SA_V5B1_FRACTION_HIGH:dc.w $F0E5 ; DATA XREF: sub_75CD6+14r ; Maximum threshold that the ratio of V5B1 voltage to 5volt reference can be before setting a fault. ; Unitless VOLTAGE_MONITOR_KE_SA_V5B2_FRACTION_LOW:dc.w $E0C5 ; DATA XREF: sub_75D50+Cr ; Minimum threshold that the ratio of V5B2 voltage to 5volt reference can be before setting a fault. ; Unitless VOLTAGE_MONITOR_KE_SA_V5B2_FRACTION_HIGH:dc.w $F0E5 ; DATA XREF: sub_75D50+14r ; Maximum threshold that the ratio of V5B2 voltage to 5volt reference can be before setting a fault. ; Unitless dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF TRANCALIBRATIONS_HEADER:dc.b $36 ; 6 ; DATA XREF: DoManyThings1+28Ao ; Use this cal to identify the transmission calibration set ; Cal_ID_Record dc.b $67 ; g dc.b 0 dc.b 4 Constant32_Transmission_Calibration_ID:dc.b 0 ; DATA XREF: sub_269DE:loc_26A52o dc.b $BF ; ? dc.b $F1 ; ? dc.b $27 ; ' CurveTable_2_Columns_Transmission_Calibration_Level:dc.b $41 ; A ; DATA XREF: sub_269DE:loc_26AF6o dc.b $46 ; F dc.b 0 dc.b 0 CurveTable_8_Columns_Transmission_Calibration_ID_ASCII:dc.b '12579111',0 ; DATA XREF: sub_3F6FE+130o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 Constant16_Multiplier_for_correcting_VSS_input_for_4WD_transfer_case:dc.b 0 dc.b 0 TRANS_IO_KE_TRANSFER_CASE_RATIO:dc.w 0 ; DATA XREF: sub_83986:loc_83F66r ; Ratio of trans output speed to transfer case output. ; Factor TRANS_IO_KE_TRANSMISSION_TYPE:dc.b 2 ; DATA XREF: sub_2340C:loc_236A6r ; sub_24716:loc_24824r ... ; This determines which type of transmission is on the vehicle. ; Xmsn. Type TRANS_IO_KE_MANUAL_TRANSMISSION_SPEEDS:dc.b 1 ; DATA XREF: sub_47DA2+260r ; Used to configure Class 2 3A3C transmission option message for manual transmissions. ; Xmsn_Spd_Type TRANS_IO_KE_REVERSE_LOCKOUT_EQUIPPED:dc.b 1 ; DATA XREF: sub_3DF96+Cr ; sub_8443E+8r ; Set TRUE if manual transmission has reverse lockout control solenoid. ; Boolean TRANS_IO_KE_ALLISON_LCT_MODEL:dc.b 0 ; DATA XREF: sub_47DA2+27Ar ; Used to configure Class 2 3A3C transmission option message for Allison LCT applications. ; Allison_LCT_Model_Type TRANS_IO_KE_FORCE_MOTOR_FREQUENCY:dc.w 0 ; DATA XREF: sub_4AA18:loc_4AAA6r ; sub_4AA18+170r ; Frequency at which to operate the Force Motor output. ; Hertz TRANS_IO_KE_CLUTCH_SWITCH_TYPE:dc.b 1 ; DATA XREF: sub_83986+3EEr ; Describes the type of clutch switch, if any, used on thevehicle. ; No_switch/Closed to IGN/GRN dc.b $FF TRANS_IO_KE_PRNDL_ERROR_TIME:dc.w $320 ; DATA XREF: sub_83986+1FAr ; Force DRIVE4 value if PRNDL reading is bad for this length of time. ; Seconds TRANS_IO_KE_PRNDL_GOOD_TIME:dc.w 8 ; DATA XREF: sub_83986+22Er ; Update PRNDL position if PRNDL reading is good for this length of time. ; Seconds TRANS_IO_KE_PSM_ERROR_TIME:dc.w 0 ; DATA XREF: sub_83986+9Er ; Force DRIVE4 value if PSM reading is bad for this length of time. ; Seconds TRANS_IO_KE_PSM_GOOD_TIME:dc.w 0 ; DATA XREF: sub_83986+D6r ; Update PSM position if PSM reading is good for this length of time. ; Seconds TRANS_IO_KE_RPM_DROP:dc.w $100 ; DATA XREF: sub_83986+674r ; PN to Drive shift occurred if RPM drops more than this. ; RPM TRANS_IO_KE_RPM_RISE:dc.w $100 ; DATA XREF: sub_83986+626r ; Drive to PN shift occurred if RPM rises more than this. ; RPM TRANS_IO_KE_SF_PULSES_PER_REVOLUTION:dc.w $2800 ; DATA XREF: sub_83986+4FEr ; Transmission output speed sensor scaling factor. ; Pulses/Rev TRANS_IO_KE_SF_MAX_TIME_SINCE_LAST_PULSE:dc.w $50 ; DATA XREF: sub_83986+4D8r ; If no transmission output speed pulses have been seen for this length of time then the speed is considered to be zero. ; Seconds TRANS_IO_KE_NEUTRAL_START_SWITCH_EQUIPPED:dc.b 0 ; DATA XREF: sub_83986:loc_8406Er ; True if vehicle is equipped with a Neutral_Start_Switch or Bottom_of_Travel_Clutch_Switch. ; Boolean dc.b $FF TRANS_IO_KE_XMIS_MODULATOR_OFF_DELAY_TIME:dc.w 0 ; DATA XREF: sub_842B2+146r TRANS_IO_KV_XMIS_MODULATOR_TPS:dc.b 0 ; DATA XREF: sub_842B2:loc_84382o ; sub_842B2:loc_843B8o ; Throttle position above this cal enables high load shiftpattern in the transmission. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 TRANS_IO_KV_XMIS_MODULATOR_TPS_HYSTERESIS:dc.b 0 ; DATA XREF: sub_842B2:loc_843D6o ; KV_Xmis_Modulator_TPS minus this cal allows high load shiftpattern to be disabled. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 TRANS_IO_KE_MANUAL_MODE_ALLOWED:dc.b 0 ; DATA XREF: sub_83986+3BEr ; This determines whether manual mode is allowed as a shift pattern. ; BOOLEAN TRANS_IO_KE_MNP_TYPE:dc.b 0 ; DATA XREF: sub_83986:loc_83C28r ; This determines how many shift pattern switches are used as input. ; Switches TRANS_IO_KE_NE_TOSS_FIRST_LOW:dc.w $7CCD ; DATA XREF: sub_840B4+106r ; This is the lower numerical value of NE/TOSS in first gear.MUST BE less than KE_NE_TOSS_First_High. ; NE_TOSS_Ratio TRANS_IO_KE_NE_TOSS_FIRST_HIGH:dc.w $C000 ; DATA XREF: sub_840B4+10Er ; This is the higher numerical value of NE/TOSS in first gear.MUST BE greater than KE_NE_TOSS_First_Low. ; NE_TOSS_Ratio TRANS_IO_KE_NE_TOSS_SECOND_LOW:dc.w $54CD ; DATA XREF: sub_840B4:loc_841D2r ; This is the lower numerical value of NE/TOSS in second gear.MUST BE less than KE_NE_TOSS_Second_High. ; NE_TOSS_Ratio TRANS_IO_KE_NE_TOSS_SECOND_HIGH:dc.w $7000 ; DATA XREF: sub_840B4+126r ; This is the higher numerical value of NE/TOSS in second gear.MUST BE greater than KE_NE_TOSS_Second_Low. ; NE_TOSS_Ratio TRANS_IO_KE_NE_TOSS_THIRD_LOW:dc.w $3D9A ; DATA XREF: sub_840B4:loc_841EAr ; This is the lower numerical value of NE/TOSS in third gear.MUST BE less than KE_NE_TOSS_Third_High. ; NE_TOSS_Ratio TRANS_IO_KE_NE_TOSS_THIRD_HIGH:dc.w $54CD ; DATA XREF: sub_840B4+13Er ; This is the higher numerical value of NE/TOSS in third gear.MUST BE greater than KE_NE_TOSS_Third_Low. ; NE_TOSS_Ratio TRANS_IO_KE_NE_TOSS_FOURTH_LOW:dc.w $2F85 ; DATA XREF: sub_840B4:loc_84202r ; This is the lower numerical value of NE/TOSS in fourth gear.MUST BE less than KE_NE_TOSS_Fourth_High. ; NE_TOSS_Ratio TRANS_IO_KE_NE_TOSS_FOURTH_HIGH:dc.w $3D9A ; DATA XREF: sub_840B4+156r ; This is the higher numerical value of NE/TOSS in fourth gear.MUST BE greater than KE_NE_TOSS_Fourth_Low. ; NE_TOSS_Ratio TRANS_IO_KE_NE_TOSS_FIFTH_LOW:dc.w $228F ; DATA XREF: sub_840B4:loc_8421Ar ; This is the lower numerical value of NE/TOSS in fifth gear.MUST BE less than KE_NE_TOSS_Fifth_High. ; NE_TOSS_Ratio TRANS_IO_KE_NE_TOSS_FIFTH_HIGH:dc.w $2F85 ; DATA XREF: sub_840B4+16Er ; This is the higher numerical value of NE/TOSS in fifth gear.MUST BE greater than KE_NE_TOSS_Fifth_Low. ; NE_TOSS_Ratio TRANS_IO_KE_NE_TOSS_SIXTH_LOW:dc.w $1666 ; DATA XREF: sub_840B4:loc_84232r ; This is the lower numerical value of NE/TOSS in sixth gear.MUST BE less than KE_NE_TOSS_Sixth_High. ; NE_TOSS_Ratio TRANS_IO_KE_NE_TOSS_SIXTH_HIGH:dc.w $228F ; DATA XREF: sub_840B4+186r ; This is the higher numerical value of NE/TOSS in sixth gear.MUST BE greater than KE_NE_TOSS_Sixth_Low. ; NE_TOSS_Ratio TRANS_IO_KE_NE_TOSS_RATIO_TRANSITION:dc.w 0 ; DATA XREF: OS4:00084706r ; OS4:00084782r ... ; This is the value NE_TOSS_Ratio is set to during a PCMstate transition. ; NE_TOSS_Ratio TRANS_IO_KE_REVERSE_ENABLE_ON:dc.w $100 ; DATA XREF: sub_8443E+2Ar ; The vehicle speed below which reverse is allowed. ; MPH TRANS_IO_KE_REVERSE_ENABLE_OFF:dc.w $180 ; DATA XREF: sub_8443E+22r ; The vehicle speed above which reverse is not allowed. ; MPH TRANS_IO_KE_CARS_FIRST_MIN:dc.w $7CCD ; DATA XREF: sub_8443E+BAr ; This is the minimum value of NE_TOSS_Ratio in the first CARSgear. MUST BE less than KE_CARS_First_Max. ; NE_TOSS_Ratio TRANS_IO_KE_CARS_FIRST_MAX:dc.w $C000 ; DATA XREF: sub_8443E+C2r ; This is the maximum value of NE_TOSS_Ratio in the first CARSgear. MUST BE greater than KE_CARS_First_Min. ; NE_TOSS_Ratio TRANS_IO_KE_CARS_FINAL_MIN:dc.w $228F ; DATA XREF: sub_8443E:loc_8450Er ; This is the minimum value of NE_TOSS_Ratio in the final CARSgear. MUST BE less than KE_CARS_Final_Max. ; NE_TOSS_Ratio TRANS_IO_KE_CARS_FINAL_MAX:dc.w $6CCD ; DATA XREF: sub_8443E+D8r ; This is the maximum value of NE_TOSS_Ratio in the final CARSgear. MUST BE greater than KE_CARS_Final_Min. ; NE_TOSS_Ratio TRANS_IO_KE_CARS_MAX_PEDAL:dc.w $443 ; DATA XREF: sub_8443E+128r ; Maximum accelerator pedal position for CARS to be enabled. ; Percent TRANS_IO_KE_CARS_COOLANT:dc.w $7B3 ; DATA XREF: sub_8443E+140r ; Minimum coolant for CARS to be enabled. ; DegreesC TRANS_IO_KE_CARS_MAX_SPEED:dc.w $980 ; DATA XREF: sub_8443E+14Cr ; Vehicle speeds greater than this will disable CARS. ; MPH TRANS_IO_KE_CARS_RESET_SPEED:dc.w $80 ; DATA XREF: sub_8443E+158r ; Vehicle speeds equal to or less than this will reset the CARS logic to look for the vehicle speed window. ; MPH TRANS_IO_KE_CARS_ENABLE_SPEED:dc.w $780 ; DATA XREF: sub_8443E+16Cr ; sub_8443E+18Cr ; Vehicle speeds equal to or greater than this will be the CARS on speed (if currently not on). ; MPH TRANS_IO_KE_CARS_SPEED_HYSTERESIS:dc.w $80 ; DATA XREF: sub_8443E+172r ; Vehicle speeds hysteresis for low side of vehicle speedenables of CARS. ; MPH TRANS_IO_KE_CARS_BARO_LOW:dc.w $F33 ; DATA XREF: sub_8443E+114r ; Baro pressure below which CARS is disabled (must be lowerthan KE_CARS_Baro_Low). ; kPa TRANS_IO_KE_CARS_BARO_HIGH:dc.w $F9A ; DATA XREF: sub_8443E+102r ; Baro pressure below which CARS is disabled (must be higherthan KE_CARS_Baro_Low). ; kPa TRANS_IO_KE_CARS_BULB_TIME:dc.w $50 ; DATA XREF: sub_8443E+92r ; The amount of time to turn CARS light on during bulb check. ; Seconds TRANS_IO_KE_CARS_BULB_CHECK:dc.b 0 ; DATA XREF: sub_8443E+64r ; Determine if the bulb check is to be used. ; Boolean TRANS_IO_KE_EXECUTE_CARS_ALGORITHM:dc.b 1 ; DATA XREF: sub_8443E:loc_84498r ; Set to TRUE if the CARS (skip shift) logic should be executed ; Boolean TRANS_IO_KE_CONTROL_CARS_LIGHT:dc.b 1 ; DATA XREF: sub_8443E:loc_845E2r ; Set to TRUE if the CARS (skip shift) logic should directlycontrol the CARS light PCM output. (Class2 message not used) ; Boolean TRANS_IO_KE_MANUAL_XMSN_HAS_TEMP_SENSOR:dc.b 0 ; DATA XREF: sub_842B2:loc_8441Er TCM_IO_INTERFACE_KE_TRANS_DIAG_SYSTEM_VOLT_LOW:dc.b $50 ; DATA XREF: DoLoopC+184r ; DoLoopE+C2r ... ; System voltage below which transmission diagnostics willbe disabled. ; Volts TCM_IO_INTERFACE_KE_TRANS_DIAG_SYSTEM_VOLT_HIGH:dc.b $B4 ; DATA XREF: DoLoopC+18Cr ; DoLoopE+CCr ... ; System voltage above which transmission diagnostics willbe disabled. ; Volts TCM_IO_INTERFACE_KE_ALLISON_TCM_VOLTAGE:dc.b 0 ; DATA XREF: sub_4B68C+16r ; Voltage below which the TCM MIL request will not be monitored ; Volts dc.b $FF TCM_IO_INTERFACE_KE_TCM_POWERUP_INTEGRITY_DELAY:dc.w 0 ; DATA XREF: sub_4B68C+44r ; Time after ignition on that the PCM will start monitoring theAllison TCM MIL request for line integrity check - P0802 ; Seconds TCM_IO_INTERFACE_KE_TCM_POWERUP_INTEGRITY_COMPLET:dc.w 0 ; DATA XREF: sub_4B68C+4Cr ; sub_4B68C:loc_4B6F6r ... ; Time after ignition on that the PCM will stop monitoring theAllison TCM MIL request for line integrity check - P0802 ; Seconds TCM_IO_INTERFACE_KE_TCM_GENERAL_DELAY_REQUEST:dc.w 0 ; DATA XREF: sub_4B68C+76r ; sub_4B68C+A0r ... TCM_IO_INTERFACE_KE_TCM_MIL_REQUEST_TIME:dc.w 0 ; DATA XREF: sub_4B68C+C6r ; sub_757C0+B6r ; Allison TCM MIL request line must be active for this amount of time before PCM will log a P0700 and illuminate the MIL. ; Seconds TCM_IO_INTERFACE_KE_TCC_DC_LOW_THRESH:dc.w $CCD ; DATA XREF: sub_4AE50+42r ; When the TCC PWM is below this threshold the TCC PWM isconsidered OFF. ; Percent TCM_IO_INTERFACE_KE_TCC_DC_HIGH_THRESH:dc.w $7333 ; DATA XREF: sub_4AE50:loc_4AEA0r ; When the TCC PWM is above this threshold the TCC PWM isconsidered ON. ; Percent TCM_OPTIONS_K_FOUR_WHEEL_DRIVE_AVAILABLE:dc.b 0 ; DATA XREF: sub_4DD5C+51Cr ; sub_4DD5C+6E6r ... ; If TRUE, vehicle has four wheel drive. ; BOOLEAN TCM_OPTIONS_K_INPUT_SPEED_PRESENT:dc.b 0 ; DATA XREF: DoLoopC:loc_2A3F6r ; DoLoopE+154r ... ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV:dc.b 0 ; DATA XREF: sub_4CFF8+112r ; sub_4F896r ... ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN TCM_OPTIONS_K_TCC_ENABLE_SOLENOID_PRESENT:dc.b 0 ; DATA XREF: DoLoopE+114r ; sub_4B054:loc_4B0CCr ... ; Indicates whether the transmission has a TCC enable solenoid. ; BOOLEAN TCM_OPTIONS_KE_TRANS_HAS_TCC_RELEASE_SWITCH:dc.b 0 ; DATA XREF: DoLoopB:loc_2A05Cr ; DoLoopE+168r ... ; Trans has TCC Release Switch. Used with 4T65E transmissions. ; BOOLEAN dc.b $FF TCM_OPTIONS_KE_TCC_CONTROL_OPERATING_FREQ:dc.w $100 ; DATA XREF: sub_4B054+11Ar ; OS2:0004B2DEr ... ; Used to tune the TCC control solenoid operating frequency ; Hertz TCM_OPTIONS_KE_TRANS_HAS_SIGNED_TORQUE_MODEL:dc.b 0 ; DATA XREF: sub_4EFF2+C8r ; sub_5436E:loc_54E26r ... ; When TRUE, allows for signed engine torque values and uses the negative torque model. ; T/F TCM_OPTIONS_KE_SIGNED_TRQ_SHIFT_PRESS_ENBL:dc.b 0 ; DATA XREF: sub_4EFF2+D0r ; sub_4EFF2:loc_4F1B2r ... ; When TRUE, signed torque pressure control is enabled if KE_Trans_Has_Signed_Torque_Model is also TRUE. ; T/F TCM_OPTIONS_K_TRANS_HAS_THIRD_GEAR_DEFAULT:dc.b 0 ; DATA XREF: sub_4F5D0+4r ; sub_4F726+2r ... ; If TRUE, then the transmission will assume third gear when the wiring harness is disabled; otherwise, second gear. ; BOOLEAN TCM_OPTIONS_K_USE_STALL_ABUSE_TORQUE_RED:dc.b 0 ; DATA XREF: sub_86CBE:loc_86CEEr ; If TRUE, a stall torque reduction and/or abuse torquereduction condition is present. ; BOOLEAN TCM_OPTIONS_K_TRANS_HAS_ECCC:dc.b 0 ; DATA XREF: sub_575C6+1C0r ; sub_575C6:loc_5792Er ... ; If TRUE, Transmission has ECCC ; BOOLEAN TCM_OPTIONS_K_D32_PRESS_BIAS_CONTROL_AVAIL:dc.b 0 ; DATA XREF: DoLoopD+ACr ; DoLoopE:loc_2A98Er ... ; If TRUE, electronic control of the 3-2 downshift timing is available. ; BOOLEAN TCM_OPTIONS_KE_TCC_REL_DBNC_TIME:dc.w $A0 ; DATA XREF: DoLoopB:loc_2A092r ; Determines the amount of time the TCC release switch status waits before transitioning to a new state. (used with 4T65E). ; Seconds TCM_OPTIONS_KE_FM_FDBCK_CURR_CRTN_ENABLE:dc.b 0 ; DATA XREF: sub_4BC94r ; sub_4BD8C:loc_4BE02r ... ; TRUE if force motor feedback current circuit characterization is available and desired, else FALSE. ; T/F TCM_OPTIONS_K_DEFAULT_GEAR:dc.b 2 ; DATA XREF: sub_4CFF8+9Er ; sub_4EE50+20r ... ; Default hydraulic gear for the transmission. ; Gear T_INP_SPEED_KE_INPUT_SPD_ZERO_PULSE_TIME:dc.w 0 ; DATA XREF: sub_4ABB2+70r ; Time with out input speed pulses to assume zero speed. ; Seconds T_INP_SPEED_KE_CALCULATED_PULSES_PER_REV:dc.w $100 ; DATA XREF: sub_4ABB2+CCr ; Defines the number of input speed sensor pulses as Input_Speed_Pulses_Per_Rev / KE_Drive_Sproket_Ratio. ; Pulses/Rev T_PRESSURE_TABLES_KV_BASE_PRESSURE_NORMAL_2:dc.b $16 ; DATA XREF: OS4:000892A2o ; OS4:000892BAo ; Base pressure for normal pressure pattern, 2nd Gear ; PSI dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? T_PRESSURE_TABLES_KV_BASE_PRESSURE_NORMAL_3:dc.b $16 ; DATA XREF: OS4:000892A6o ; OS4:000892BEo ; Base pressure for normal pressure pattern, 3rd Gear ; PSI dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? T_PRESSURE_TABLES_KV_BASE_PRESSURE_NORMAL_4:dc.b $16 ; DATA XREF: OS4:000892AAo ; OS4:off_892C2o ; Base pressure for normal pressure pattern, 4th Gear ; PSI dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? T_PRESSURE_TABLES_KV_BASE_PRESSURE_PERFORMANCE_2:dc.b $16 ; DATA XREF: OS4:000892AEo ; Base pressure for performance pressure pattern, 2nd Gear ; PSI dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? T_PRESSURE_TABLES_KV_BASE_PRESSURE_PERFORMANCE_3:dc.b $16 ; DATA XREF: OS4:000892B2o ; Base pressure for performance pressure pattern, 3rd Gear ; PSI dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? T_PRESSURE_TABLES_KV_BASE_PRESSURE_PERFORMANCE_4:dc.b $16 ; DATA XREF: OS4:000892B6o ; Base pressure for performance pressure pattern, 4th Gear ; PSI dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? T_PRESSURE_TABLES_KA_2_DOWN_TEMP_PRESSURE_MOD:dc.b 0 ; DATA XREF: OS4:000892D2o ; 3D Downshift Pressure Temperature Compensation ; PSI_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_PRESSURE_TABLES_KA_3_DOWN_TEMP_PRESSURE_MOD:dc.b 0 ; DATA XREF: OS4:000892D6o ; 3D Downshift Pressure Temperature Compensation ; PSI_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_19999: dc.b 0 ; DATA XREF: sub_3BDC4+276o ; sub_3BDC4+2CCo ... dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_PRESSURE_TABLES_KA_4_DOWN_TEMP_PRESSURE_MOD:dc.b 0 ; DATA XREF: OS4:000892DAo ; 3D Downshift Pressure Temperature Compensation ; PSI_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_PRESSURE_TABLES_KA_2ND_PRESSURE_TEMP_COMP_TABLE:dc.b 0 ; DATA XREF: OS4:000892C6o ; 3D Pressure Temperature Compensation ; PSI_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_PRESSURE_TABLES_KA_3RD_PRESSURE_TEMP_COMP_TABLE:dc.b 0 ; DATA XREF: OS4:000892CAo ; 3D Pressure Temperature Compensation ; PSI_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_PRESSURE_TABLES_KA_4TH_PRESSURE_TEMP_COMP_TABLE:dc.b 0 ; DATA XREF: OS4:off_892CEo ; 3D Pressure Temperature Compensation ; PSI_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_PRESSURE_TABLES_KV_1_BRAKING_PRESS_TABLE:dc.b 0 ; DATA XREF: OS4:off_892E0o ; Braking pressure for 1st gear ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $E0 ; ? dc.b 3 dc.b $C0 ; ? dc.b 5 dc.b 0 dc.b 6 dc.b $40 ; @ dc.b 7 dc.b $80 ; ? dc.b 8 dc.b $C0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_PRESSURE_TABLES_KV_2_BRAKING_PRESS_TABLE:dc.b 0 ; DATA XREF: OS4:off_892FEo ; Braking pressure for 2nd gear ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b $8F ; ? dc.b 6 dc.b $1F dc.b 6 dc.b $AE ; ? dc.b 7 dc.b $3D ; = dc.b 7 dc.b $CD ; ? dc.b 8 dc.b $5C ; \ dc.b 8 dc.b $EC ; ? dc.b 9 dc.b $7B ; { dc.b $A dc.b $A dc.b $A dc.b $9A ; ? dc.b $B dc.b $29 ; ) dc.b $B dc.b $B8 ; ? dc.b $C dc.b $48 ; H T_PRESSURE_TABLES_KV_3_BRAKING_PRESS_TABLE:dc.b 0 ; Braking pressure for 3rd gear ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ dc.b 6 dc.b $40 ; @ T_PRESSURE_TABLES_KV_2_1_NORMAL_PRESS_MODIFIER:dc.b 0 ; Normal downshift pressure offset modifier for 2nd gear ; PSI_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_PRESSURE_TABLES_KV_3_2_NORMAL_PRESS_MODIFIER:dc.b 0 ; Normal downshift pressure offset modifier for 3rd gear ; PSI_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_PRESSURE_TABLES_KV_4_3_NORMAL_PRESS_MODIFIER:dc.b 0 ; DATA XREF: OS4:off_8935Eo ; Normal downshift pressure offset modifier for 4th gear ; PSI_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_PRESSURE_TABLES_KV_BASE_PRESSURE_BRAKE_ON_ELE_2:dc.b $16 ; DATA XREF: OS4:0008936Eo ; Used todetermine second gear Base_Pressure during downshifts whenbraking element is applied - negative torque model. ; PSI dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? T_PRESSURE_TABLES_KV_BASE_PRESSURE_BRAKE_ON_ELE_3:dc.b $16 ; DATA XREF: OS4:00089372o ; Used todetermine third gear Base_Pressure during downshifts whenbraking element is applied - negative torque model. ; PSI dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? T_PRESSURE_TABLES_KV_BASE_PRESSURE_BRAKE_ON_ELE_4:dc.b $16 ; DATA XREF: OS4:00089376o ; Used todetermine fourth gear Base_Pressure during downshifts whenbraking element is applied - negative torque model. ; PSI dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? T_PRESSURE_TABLES_KA_1_2_GEARBOX_INERTIA_TRQ_MULT:dc.b 0 ; DATA XREF: OS4:00089362o ; Base pressure multiplier for a 1-2 upshift. ; Scaler dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_19E50: dc.b 0 ; DATA XREF: sub_5A12E:loc_5A1E6o ; sub_5A12E:loc_5A1FAo dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_PRESSURE_TABLES_KA_2_3_GEARBOX_INERTIA_TRQ_MULT:dc.b 0 ; DATA XREF: OS4:00089366o ; Base pressure multiplier for a 1-2 upshift. ; Scaler dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_PRESSURE_TABLES_KA_3_4_GEARBOX_INERTIA_TRQ_MULT:dc.b 0 ; DATA XREF: OS4:off_8936Ao ; Base pressure multiplier for a 1-2 upshift. ; Scaler dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SEM_KV_DRIVE_RANGE_TIME:dc.b 0 ; DATA XREF: OS4:00089A4Ao ; OS4:00089A52o ... ; Time limit during which abuse mode may be active as a functionof temperature ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SEM_KV_REVERSE_RANGE_TIME:dc.b 0 ; DATA XREF: OS4:00089A4Eo ; OS4:00089A56o ... ; Time limit during which abuse mode may be active as a functionof temperature ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SEM_KV_FIRST_DN_PERCENT_TOT_TRQ_RED:dc.b 0 ; DATA XREF: OS4:off_89A7Ao ; Percentage of total torque reduction for 2-1 downshift ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SEM_KV_SECOND_DN_PERCENT_TOT_TRQ_RED:dc.b 0 ; DATA XREF: OS4:00089A7Eo ; Percentage of total torque reduction for 3-2 downshift ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SEM_KV_THIRD_DN_PERCENT_TOT_TRQ_RED:dc.b 0 ; DATA XREF: OS4:00089A82o ; Percentage of total torque reduction for 4-3 downshift ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 Constant16_D2901___TCC_Minimum_Pressure_???:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SEM_KV_UPSHIFT_TOT_TRQ_RED_NORM_2:dc.b 0 ; DATA XREF: OS4:00089A62o ; Percentage of total torque reduction for 1-2 upshiftusing Normal pressure pattern ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SEM_KV_UPSHIFT_TOT_TRQ_RED_NORM_3:dc.b 0 ; DATA XREF: OS4:00089A66o ; Percentage of total torque reduction for 2-3 upshiftusing Normal pressure pattern ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SEM_KV_UPSHIFT_TOT_TRQ_RED_NORM_4:dc.b 0 ; DATA XREF: OS4:00089A6Ao ; Percentage of total torque reduction for 3-4 upshiftusing Normal pressure pattern ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SEM_KV_UPSHIFT_TOT_TRQ_RED_PERF_2:dc.b 0 ; DATA XREF: OS4:00089A6Eo ; Percentage of total torque reduction for 1-2 upshiftusing Performance pressure pattern ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SEM_KV_UPSHIFT_TOT_TRQ_RED_PERF_3:dc.b 0 ; DATA XREF: OS4:00089A72o ; Percentage of total torque reduction for 2-3 upshiftusing Performance pressure pattern ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SEM_KV_UPSHIFT_TOT_TRQ_RED_PERF_4:dc.b 0 ; DATA XREF: OS4:00089A76o ; Percentage of total torque reduction for 3-4 upshiftusing Performance pressure pattern ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SHIFT_TABLES_KV_SHIFT_STAB_SHIFT_PATTRN_ENBLE:dc.b 1 ; DATA XREF: sub_4D97C+34r ; These flags will enable or disable ETC shift stabilization for the indicated shift pattern. ; T/F dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b $FF T_SHIFT_TABLES_KV_1_2_NORMAL_LINE:dc.b $B ; Normal 1st to 2nd gear upshift shift line table ; MPH dc.b 0 dc.b $B dc.b 0 dc.b $D dc.b 0 dc.b $F dc.b 0 dc.b $12 dc.b 0 dc.b $15 dc.b 0 dc.b $19 dc.b 0 dc.b $1C dc.b 0 dc.b $20 dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $26 ; & dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $2A ; * dc.b 0 dc.b $2B ; + dc.b 0 dc.b $2C ; , dc.b 0 dc.b $2C ; , dc.b 0 dc.b $2C ; , dc.b 0 T_SHIFT_TABLES_KV_2_3_NORMAL_LINE:dc.b $14 ; Normal 2nd to 3rd gear upshift shift line table ; MPH dc.b 0 dc.b $14 dc.b 0 dc.b $17 dc.b 0 dc.b $1C dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $2F ; / dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $3B ; ; dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $46 ; F dc.b 0 dc.b $4B ; K dc.b 0 dc.b $4F ; O dc.b 0 dc.b $52 ; R dc.b 0 dc.b $54 ; T dc.b 0 dc.b $55 ; U dc.b 0 dc.b $57 ; W dc.b 0 T_SHIFT_TABLES_KV_3_4_NORMAL_LINE:dc.b $1C ; Normal 3rd to 4th gear upshift shift line table ; MPH dc.b 0 dc.b $1C dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $41 ; A dc.b 0 dc.b $64 ; d dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 T_SHIFT_TABLES_KV_2_1_NORMAL_LINE:dc.b $A ; Normal 2nd to 1st gear downshift shift line table ; MPH dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $23 ; # dc.b 0 T_SHIFT_TABLES_KV_3_2_NORMAL_LINE:dc.b $12 ; Normal 3rd to 2nd gear downshift shift line table ; MPH dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $13 dc.b 0 dc.b $15 dc.b 0 dc.b $17 dc.b 0 dc.b $1A dc.b 0 dc.b $1D dc.b 0 dc.b $22 ; " dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $2D ; - dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $42 ; B dc.b 0 dc.b $55 ; U dc.b 0 T_SHIFT_TABLES_KV_4_3_NORMAL_LINE:dc.b $19 ; Normal 4th to 3rd gear downshift shift line table ; MPH dc.b 0 dc.b $19 dc.b 0 dc.b $1B dc.b 0 dc.b $1D dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $25 ; % dc.b 0 dc.b $2B ; + dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $4C ; L dc.b 0 dc.b $5F ; _ dc.b 0 dc.b $6C ; l dc.b 0 dc.b $74 ; t dc.b 0 dc.b $7B ; { dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 T_SHIFT_TABLES_KV_1_2_CRUISE_LINE:dc.b $B ; Cruise 1st to 2nd gear upshift shift line table ; MPH dc.b 0 dc.b $B dc.b 0 dc.b $D dc.b 0 dc.b $F dc.b 0 dc.b $12 dc.b 0 dc.b $15 dc.b 0 dc.b $19 dc.b 0 dc.b $1C dc.b 0 dc.b $20 dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $26 ; & dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $2A ; * dc.b 0 dc.b $2B ; + dc.b 0 dc.b $2C ; , dc.b 0 dc.b $2C ; , dc.b 0 dc.b $2C ; , dc.b 0 T_SHIFT_TABLES_KV_2_3_CRUISE_LINE:dc.b $14 ; Cruise 2nd to 3rd gear upshift shift line table ; MPH dc.b 0 dc.b $14 dc.b 0 dc.b $17 dc.b 0 dc.b $1C dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $2F ; / dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $3B ; ; dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $46 ; F dc.b 0 dc.b $4B ; K dc.b 0 dc.b $4F ; O dc.b 0 dc.b $52 ; R dc.b 0 dc.b $54 ; T dc.b 0 dc.b $55 ; U dc.b 0 dc.b $57 ; W dc.b 0 T_SHIFT_TABLES_KV_3_4_CRUISE_LINE:dc.b $1C ; Cruise 3rd to 4th gear upshift shift line table ; MPH dc.b 0 dc.b $1C dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $41 ; A dc.b 0 dc.b $64 ; d dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 T_SHIFT_TABLES_KV_2_1_CRUISE_LINE:dc.b $A ; Cruise 2nd to 1st gear downshift shift line table ; MPH dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $23 ; # dc.b 0 T_SHIFT_TABLES_KV_3_2_CRUISE_LINE:dc.b $12 ; Cruise 3rd to 2nd gear downshift shift line table ; MPH dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $13 dc.b 0 dc.b $15 dc.b 0 dc.b $17 dc.b 0 dc.b $1A dc.b 0 dc.b $1D dc.b 0 dc.b $22 ; " dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $2D ; - dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $42 ; B dc.b 0 dc.b $55 ; U dc.b 0 T_SHIFT_TABLES_KV_4_3_CRUISE_LINE:dc.b $19 ; Cruise 4th to 3rd gear downshift shift line table ; MPH dc.b 0 dc.b $19 dc.b 0 dc.b $1B dc.b 0 dc.b $1D dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $25 ; % dc.b 0 dc.b $2B ; + dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $4C ; L dc.b 0 dc.b $5F ; _ dc.b 0 dc.b $6C ; l dc.b 0 dc.b $74 ; t dc.b 0 dc.b $7B ; { dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 T_SHIFT_TABLES_KV_1_2_DRIVE_2_LINE:dc.b 0 ; Drive-2 1st to 2nd gear upshift shift line table ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SHIFT_TABLES_KE_2_3_DRIVE_2_LINE:dc.b 0 ; Drive-2 2nd to 3rd gear downshift shift line cal ; MPH dc.b 0 T_SHIFT_TABLES_KV_2_1_DRIVE_2_LINE:dc.b 0 ; Drive-2 2nd to 1st gear downshift shift line table ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SHIFT_TABLES_KE_3_2_DRIVE_2_LINE:dc.b 0 ; Drive-2 3rd to 2nd gear downshift shift line cal ; MPH dc.b 0 T_SHIFT_TABLES_KE_1_2_DRIVE_LOW_LINE:dc.b $FF ; Drive-Low 1st to 2nd gear upshift shift line. ; MPH dc.b 0 T_SHIFT_TABLES_KE_2_1_DRIVE_LOW_LINE:dc.b $2C ; , ; Drive-Low 2nd to 1st gear downshift shift line. ; MPH dc.b 0 T_SHIFT_TABLES_KE_2_3_DRIVE_LOW_LINE:dc.b 0 ; Drive-Low 2nd to 3rd gear upshift shift line. ; MPH dc.b 0 T_SHIFT_TABLES_KE_3_2_DRIVE_LOW_LINE:dc.b 0 ; Drive-Low 3rd to 2nd gear downshift shift line. ; MPH dc.b 0 T_SHIFT_TABLES_KV_1_2_HP_EP_DELTA_LINE:dc.b 0 ; Maximum amount shift point could be modified when inheater performance/engine protection mode ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SHIFT_TABLES_KV_2_3_HP_EP_DELTA_LINE:dc.b 0 ; Maximum amount shift point could be modified when inheater performance/engine protection mode ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SHIFT_TABLES_KV_3_4_HP_EP_DELTA_LINE:dc.b 0 ; Maximum amount shift point could be modified when inheater performance/engine protection mode ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SHIFT_TABLES_KV_2_1_HP_EP_DELTA_LINE:dc.b 0 ; Maximum amount shift point could be modified when inheater performance/engine protection mode ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SHIFT_TABLES_KV_3_2_HP_EP_DELTA_LINE:dc.b 0 ; Maximum amount shift point could be modified when inheater performance/engine protection mode ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SHIFT_TABLES_KV_4_3_HP_EP_DELTA_LINE:dc.b 0 ; Maximum amount shift point could be modified when inheater performance/engine protection mode ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SHIFT_TABLES_KV_1_2_HOT_NORMAL_LINE:dc.b $B ; Hot normal 1st to 2nd gear upshift shift line. ; MPH dc.b 0 dc.b $B dc.b 0 dc.b $D dc.b 0 dc.b $F dc.b 0 dc.b $12 dc.b 0 dc.b $15 dc.b 0 dc.b $19 dc.b 0 dc.b $1C dc.b 0 dc.b $20 dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $26 ; & dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $2A ; * dc.b 0 dc.b $2B ; + dc.b 0 dc.b $2C ; , dc.b 0 dc.b $2C ; , dc.b 0 dc.b $2C ; , dc.b 0 T_SHIFT_TABLES_KV_2_3_HOT_NORMAL_LINE:dc.b $14 ; Hot normal 2nd to 3rd gear upshift shift line. ; MPH dc.b 0 dc.b $14 dc.b 0 dc.b $17 dc.b 0 dc.b $1C dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $2F ; / dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $3B ; ; dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $46 ; F dc.b 0 dc.b $4B ; K dc.b 0 dc.b $4F ; O dc.b 0 dc.b $52 ; R dc.b 0 dc.b $54 ; T dc.b 0 dc.b $55 ; U dc.b 0 dc.b $57 ; W dc.b 0 T_SHIFT_TABLES_KV_3_4_HOT_NORMAL_LINE:dc.b $32 ; 2 ; Hot normal 3rd to 4th gear upshift shift line. ; MPH dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $41 ; A dc.b 0 dc.b $64 ; d dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 T_SHIFT_TABLES_KV_2_1_HOT_NORMAL_LINE:dc.b $A ; Hot normal 1st to 2nd gear upshift shift line. ; MPH dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $A dc.b 0 dc.b $23 ; # dc.b 0 T_SHIFT_TABLES_KV_3_2_HOT_NORMAL_LINE:dc.b $12 ; Hot normal 2nd to 3rd gear upshift shift line. ; MPH dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $13 dc.b 0 dc.b $15 dc.b 0 dc.b $17 dc.b 0 dc.b $1A dc.b 0 dc.b $1D dc.b 0 dc.b $22 ; " dc.b 0 dc.b $27 ; ' dc.b 0 dc.b $2D ; - dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $42 ; B dc.b 0 dc.b $55 ; U dc.b 0 T_SHIFT_TABLES_KV_4_3_HOT_NORMAL_LINE:dc.b $30 ; 0 ; Hot normal 3rd to 4th gear upshift shift line. ; MPH dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $37 ; 7 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $4C ; L dc.b 0 dc.b $5F ; _ dc.b 0 dc.b $6C ; l dc.b 0 dc.b $74 ; t dc.b 0 dc.b $7B ; { dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 T_SHIFT_TABLES_KV_1_2_PERFORMANCE:dc.b $FF ; Performance 1st to 2nd gear upshift shift line. ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_SHIFT_TABLES_KV_2_3_PERFORMANCE:dc.b $FF ; Performance 2nd to 3rd gear upshift shift line. ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_SHIFT_TABLES_KV_3_4_PERFORMANCE:dc.b $FF ; Performance 3rd to 4th gear upshift shift line. ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_SHIFT_TABLES_KV_2_1_PERFORMANCE:dc.b $FF ; Performance 1st to 2nd gear upshift shift line. ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_SHIFT_TABLES_KV_3_2_PERFORMANCE:dc.b $FF ; Performance 2nd to 3rd gear upshift shift line. ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_SHIFT_TABLES_KV_4_3_PERFORMANCE:dc.b $FF ; Performance 3rd to 4th gear upshift shift line. ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_SHIFT_TABLES_KE_1_2_DETENT:dc.b $2E ; . ; Detent 1st to 2nd gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_2_3_DETENT:dc.b $5D ; ] ; Detent 2nd to 3rd gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_3_4_DETENT:dc.b $FF ; Detent 3rd to 4th gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_2_1_DETENT:dc.b $2A ; * ; Detent 1st to 2nd gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_3_2_DETENT:dc.b $5A ; Z ; Detent 2nd to 3rd gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_4_3_DETENT:dc.b $9B ; ? ; Detent 3rd to 4th gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_1_2_HOT_DETENT:dc.b $2E ; . ; Hot detent 1st to 2nd gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_2_3_HOT_DETENT:dc.b $5D ; ] ; Hot detent 2nd to 3rd gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_3_4_HOT_DETENT:dc.b $FF ; Hot detent 3rd to 4th gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_2_1_HOT_DETENT:dc.b $2A ; * ; Hot detent 1st to 2nd gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_3_2_HOT_DETENT:dc.b $5A ; Z ; Hot detent 2nd to 3rd gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_4_3_HOT_DETENT:dc.b $9B ; ? ; Hot detent 3rd to 4th gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_1_2_PERFORMANCE_DETENT:dc.b $2E ; . ; Performance detent 1st to 2nd gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_2_3_PERFORMANCE_DETENT:dc.b $5D ; ] ; Performance detent 2nd to 3rd gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_3_4_PERFORMANCE_DETENT:dc.b $FF ; Performance detent 3rd to 4th gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_2_1_PERFORMANCE_DETENT:dc.b $2A ; * ; Performance detent 1st to 2nd gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_3_2_PERFORMANCE_DETENT:dc.b $5A ; Z ; Performance detent 2nd to 3rd gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KE_4_3_PERFORMANCE_DETENT:dc.b $9B ; ? ; Performance detent 3rd to 4th gear upshift shift point. ; MPH dc.b 0 T_SHIFT_TABLES_KV_1_2_NORMAL_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 1st to 2nd normal upshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_2_3_HOT_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 2nd to 3rd upshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_3_4_HOT_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 3rd to 4th upshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_3_2_HOT_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 3rd to 2nd downshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_4_3_HOT_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 4th to 3rd downshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KE_1_2_DETENT_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 1st to 2nd detent upshift. ; MPH dc.b 0 T_SHIFT_TABLES_KE_2_3_DETENT_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 2nd to 3rd detent upshift. ; MPH dc.b 0 T_SHIFT_TABLES_KE_3_4_DETENT_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 3rd to 4th detent upshift. ; MPH dc.b 0 T_SHIFT_TABLES_KE_2_1_DETENT_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 2nd to 1st detent downshift. ; MPH dc.b 0 T_SHIFT_TABLES_KE_3_2_DETENT_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 3rd to 2nd detent downshift. ; MPH dc.b 0 T_SHIFT_TABLES_KE_4_3_DETENT_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 4th to 3rd detent downshift. ; MPH dc.b 0 T_SHIFT_TABLES_KE_1_2_DETENT_RPM_LINE:dc.b $5D ; ] ; Engine speed threshold for a 1-2 detent upshift ; RPM dc.b $C0 ; ? T_SHIFT_TABLES_KE_2_3_DETENT_RPM_LINE:dc.b $5C ; \ ; Engine speed threshold for a 2-3 detent upshift ; RPM dc.b $30 ; 0 T_SHIFT_TABLES_KE_3_4_DETENT_RPM_LINE:dc.b $5C ; \ ; Engine speed threshold for a 3-4 detent upshift ; RPM dc.b $30 ; 0 T_SHIFT_TABLES_KE_1_2_HOT_DETENT_RPM_LINE:dc.b $5D ; ] ; Engine speed threshold for a 1-2 hot detent upshift ; RPM dc.b $C0 ; ? T_SHIFT_TABLES_KE_2_3_HOT_DETENT_RPM_LINE:dc.b $5C ; \ ; Engine speed threshold for a 2-3 hot detent upshift ; RPM dc.b $30 ; 0 T_SHIFT_TABLES_KE_3_4_HOT_DETENT_RPM_LINE:dc.b $5C ; \ ; Engine speed threshold for a 3-4 hot detent upshift ; RPM dc.b $30 ; 0 T_SHIFT_TABLES_KE_1_2_RPM_HP_EP_DELTA_LINE:dc.b 0 ; Engine speed cold temperature 1-2 detent upshift modifier ; RPM dc.b 0 T_SHIFT_TABLES_KE_2_3_RPM_HP_EP_DELTA_LINE:dc.b 0 ; Engine speed cold temperature 2-3 detent upshift modifier ; RPM dc.b 0 T_SHIFT_TABLES_KE_3_4_RPM_HP_EP_DELTA_LINE:dc.b 0 ; Engine speed cold temperature 3-4 detent upshift modifier ; RPM dc.b 0 T_SHIFT_TABLES_KE_1_2_PERF_DETENT_RPM:dc.b $5D ; ] ; Engine speed threshold for a 1-2 perf. detent upshift. ; RPM dc.b $C0 ; ? T_SHIFT_TABLES_KE_2_3_PERF_DETENT_RPM:dc.b $5C ; \ ; Engine speed threshold for a 2-3 perf. detent upshift. ; RPM dc.b $30 ; 0 T_SHIFT_TABLES_KE_3_4_PERF_DETENT_RPM:dc.b $5C ; \ ; Engine speed threshold for a 3-4 perf. detent upshift. ; RPM dc.b $30 ; 0 T_SHIFT_TABLES_KE_1_2_ALTITUDE_ENG_SPD_OFFSET:dc.b 0 ; Altitude compensation engine speed offset for a 1st to 2nd upshift. ; RPM dc.b 0 T_SHIFT_TABLES_KE_2_3_ALTITUDE_ENG_SPD_OFFSET:dc.b 0 ; Altitude compensation engine speed offset for a 2nd to 3rd upshift. ; RPM Flag_0x01_D3601___Performance_Mode_Pressure_Adjust_Disable_?:dc.l off_0+$C ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b 0 dc.b $1C dc.b 0 word_1A656: dc.w $2B00 ; DATA XREF: sub_5973C+30r ; sub_5973C+46r T_SHIFT_TABLES_KV_DNSHFT_COOLANT_DUMP_LIMIT:dc.b $C dc.b 0 dc.b $1C dc.b 0 dc.b $2B ; + dc.b 0 T_SHIFT_TABLES_KV_UPSHFT_COLD_ENG_STRT_LIMIT:dc.w $1100 ; DATA XREF: sub_59700+2Cr dc.b $21 ; ! dc.b 0 dc.b $30 ; 0 dc.b 0 T_SHIFT_TABLES_KV_UPSHFT_COOLANT_DUMP_LIMIT:dc.w $1100 ; DATA XREF: sub_59700+18r dc.b $21 ; ! dc.b 0 dc.b $30 ; 0 dc.b 0 T_SHIFT_TABLES_KV_12_NORM_MAX_THR_ALLOWED:dc.b $7F ;  ; DATA XREF: Boot:00002D48o ; Boot:00002D54o ... ; Used tp determine maximum amount of throttle before a 2-1 downshift is commanded. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_SHIFT_TABLES_KV_23_NORM_MAX_THR_ALLOWED:dc.b $7F ;  ; DATA XREF: Boot:00002D4Co ; Boot:00002D58o ... ; Used tp determine maximum amount of throttle before a 3-2 downshift is commanded. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_SHIFT_TABLES_KV_34_NORM_MAX_THR_ALLOWED:dc.b $7F ;  ; DATA XREF: Boot:00002D50o ; Boot:00002D5Co ... ; Used tp determine maximum amount of throttle before a 4-3 downshift is commanded. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_SHIFT_TABLES_KV_12_CRS_MAX_THR_ALLOWED:dc.b $7F ;  ; DATA XREF: Boot:00002D84o ; Used tp determine maximum amount of throttle before a 2-1 downshift is commanded. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_SHIFT_TABLES_KV_23_CRS_MAX_THR_ALLOWED:dc.b $7F ;  ; DATA XREF: Boot:00002D88o ; Used tp determine maximum amount of throttle before a 3-2 downshift is commanded. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_SHIFT_TABLES_KV_34_CRS_MAX_THR_ALLOWED:dc.b $7F ;  ; DATA XREF: Boot:00002D8Co ; Used tp determine maximum amount of throttle before a 4-3 downshift is commanded. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_SHIFT_TABLES_KV_12_PERF_MAX_THR_ALLOWED:dc.b $7F ;  ; DATA XREF: Boot:00002D9Co ; Boot:00002DA8o ; Used tp determine maximum amount of throttle before a 2-1 downshift is commanded. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_SHIFT_TABLES_KV_23_PERF_MAX_THR_ALLOWED:dc.b $7F ;  ; DATA XREF: Boot:00002DA0o ; Boot:00002DACo ; Used tp determine maximum amount of throttle before a 3-2 downshift is commanded. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_SHIFT_TABLES_KV_34_PERF_MAX_THR_ALLOWED:dc.b $7F ;  ; DATA XREF: Boot:00002DA4o ; Boot:00002DB0o ; Used tp determine maximum amount of throttle before a 4-3 downshift is commanded. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_SHIFT_TABLES_KV_1_2_DRIVE_LOW_URBAN_LINE:dc.b 0 ; Drive-Low urban 1st to 2nd gear upshift shift line table ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SHIFT_TABLES_KV_2_3_DRIVE_LOW_URBAN_LINE:dc.b $FF ; Drive-Low urban 2nd to 3rd gear upshift shift line table ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_SHIFT_TABLES_KV_2_1_DRIVE_LOW_URBAN_LINE:dc.b 0 ; Drive-Low urban 2nd to 1st gear downshift shift line table ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_SHIFT_TABLES_KV_3_2_DRIVE_LOW_URBAN_LINE:dc.b $FF ; Drive-Low urban 3rd to 2nd gear downshift shift line table ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_SHIFT_TABLES_KV_2_3_NORMAL_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 2nd to 3rd normal upshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_3_4_NORMAL_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 3rd to 4th normal upshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_3_2_NORMAL_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 3rd to 2nd normal downshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_4_3_NORMAL_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 4th to 3rd normal downshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_1_2_HOT_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 1st to 2nd hot normal upshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_1_2_PERF_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 1st to 2nd performance upshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_2_3_PERF_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 2nd to 3rd performance upshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_3_4_PERF_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 3rd to 4th performance upshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_3_2_PERF_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 3rd to 2nd performance downshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_4_3_PERF_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 4th to 3rd performance downshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_1_2_CRUISE_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 1st to 2nd cruise upshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_2_3_CRUISE_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 2nd to 3rd cruise upshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_3_4_CRUISE_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 3rd to 4th cruise upshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_3_2_CRUISE_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 3rd to 2nd cruise downshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KV_4_3_CRUISE_ALTITUDE_OFFSET:dc.b 0 ; Altitude compensation speed offset for 4th to 3rd cruise downshift. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_SHIFT_TABLES_KE_2_1_4WD_LOW_DETENT:dc.b 0 ; Vehicle speed where shifts occur. Max value disables upshifsmin value disable downshifts. ; MPH dc.b 0 T_SHIFT_TABLES_KE_3_2_4WD_LOW_DETENT:dc.b 0 ; Vehicle speed where shifts occur. Max value disables upshifsmin value disable downshifts. ; MPH dc.b 0 T_SHIFT_TABLES_KE_4_3_4WD_LOW_DETENT:dc.b 0 ; Vehicle speed where shifts occur. Max value disables upshifsmin value disable downshifts. ; MPH dc.b 0 T_SHIFT_TABLES_KE_1_2_4WD_LOW_DETENT:dc.b 0 ; Describe the desired engine speed points for detentupshifts when 4WD low engaged is true. ; MPH dc.b 0 T_SHIFT_TABLES_KE_2_3_4WD_LOW_DETENT:dc.b 0 ; Describe the desired engine speed points for detentupshifts when 4WD low engaged is true. ; MPH dc.b 0 T_SHIFT_TABLES_KE_3_4_4WD_LOW_DETENT:dc.b 0 ; Describe the desired engine speed points for detentupshifts when 4WD low engaged is true. ; MPH dc.b 0 T_SHIFT_TABLES_KE_1_2_4WD_LOW_DETENT_RPM:dc.b 0 ; Describe the engine speed where shifts occur. Max value disables upshifs, min value disable downshifts. ; RPM dc.b 0 T_SHIFT_TABLES_KE_2_3_4WD_LOW_DETENT_RPM:dc.b 0 ; Describe the engine speed where shifts occur. Max value disables upshifs, min value disable downshifts. ; RPM dc.b 0 T_SHIFT_TABLES_KE_3_4_4WD_LOW_DETENT_RPM:dc.b 0 ; Describe the engine speed where shifts occur. Max value disables upshifs, min value disable downshifts. ; RPM dc.b 0 T_TCC_TABLES_KV_APPLY_2_NORMAL_LINE:dc.b $FF ; Normal 2nd gear TCC Apply line table ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_TCC_TABLES_KV_APPLY_3_NORMAL_LINE:dc.b $20 ; Normal 3rd gear TCC Apply line table ; MPH dc.b 0 dc.b $20 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $41 ; A dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 T_TCC_TABLES_KV_APPLY_4_NORMAL_LINE:dc.b $2D ; - ; Normal 4th gear TCC Apply line table ; MPH dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 T_TCC_TABLES_KV_RELEASE_2_NORMAL_LINE:dc.b $FF ; Normal 2rd gear TCC Release line table ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_TCC_TABLES_KV_RELEASE_3_NORMAL_LINE:dc.b $1E ; Normal 3rd gear TCC Release line table ; MPH dc.b 0 dc.b $1E dc.b 0 dc.b $1E dc.b 0 dc.b $1E dc.b 0 dc.b $20 dc.b 0 dc.b $22 ; " dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $26 ; & dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $2C ; , dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $3D ; = dc.b 0 dc.b $4E ; N dc.b 0 dc.b $5D ; ] dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 T_TCC_TABLES_KV_RELEASE_4_NORMAL_LINE:dc.b $2B ; + ; Normal 4th gear TCC Release line table ; MPH dc.b 0 dc.b $2B ; + dc.b 0 dc.b $2B ; + dc.b 0 dc.b $2B ; + dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 T_TCC_TABLES_KV_APPLY_2_CRUISE_LINE:dc.b $FF ; Cruise 2nd gear TCC Apply line table ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_TCC_TABLES_KV_APPLY_3_CRUISE_LINE:dc.b $20 ; Cruise 3rd gear TCC Apply line table ; MPH dc.b 0 dc.b $20 dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $41 ; A dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $64 ; d dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 T_TCC_TABLES_KV_APPLY_4_CRUISE_LINE:dc.b $2D ; - ; Cruise 4th gear TCC Apply line table ; MPH dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2D ; - dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 T_TCC_TABLES_KV_RELEASE_2_CRUISE_LINE:dc.b $FF ; Cruise 2nd gear TCC Release line table ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_TCC_TABLES_KV_RELEASE_3_CRUISE_LINE:dc.b $1E ; Cruise 3rd gear TCC Release line table ; MPH dc.b 0 dc.b $1E dc.b 0 dc.b $1E dc.b 0 dc.b $1E dc.b 0 dc.b $20 dc.b 0 dc.b $22 ; " dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $26 ; & dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $2C ; , dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $3D ; = dc.b 0 dc.b $4E ; N dc.b 0 dc.b $5D ; ] dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 T_TCC_TABLES_KV_RELEASE_4_CRUISE_LINE:dc.b $2B ; + ; Cruise 4th gear TCC Release line table ; MPH dc.b 0 dc.b $2B ; + dc.b 0 dc.b $2B ; + dc.b 0 dc.b $2B ; + dc.b 0 dc.b $2D ; - dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $2F ; / dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 T_TCC_TABLES_KV_APPLY_2_HOT:dc.b $FF ; Hot 2nd gear TCC Apply line table ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_TCC_TABLES_KV_APPLY_3_HOT:dc.b $24 ; $ ; Hot 3rd gear TCC Apply line table ; MPH dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 T_TCC_TABLES_KV_APPLY_4_HOT:dc.b $32 ; 2 ; Hot 4th gear TCC Apply line table ; MPH dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 T_TCC_TABLES_KV_RELEASE_2_HOT:dc.b $FF ; Hot 2nd gear TCC Release line table ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF CurveTable_4_Rows_Barometric_Pressure_Shift_Correction_Factor_?:dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_TCC_TABLES_KV_RELEASE_3_HOT:dc.b $22 ; " ; Hot 3rd gear TCC Release line table ; MPH dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 Constant8_PCS_Force_Motor_Current_Maximum:dc.b $22 ; " Constant8_PCS_Force_Motor_Current_Minimum:dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $22 ; " dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 T_TCC_TABLES_KV_RELEASE_4_HOT:dc.b $30 ; 0 ; Hot 4th gear TCC Release line table ; MPH dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 T_TCC_TABLES_KV_APPLY_2_PERFORMANCE:dc.b $FF ; Performance 2nd gear TCC Apply line table ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_TCC_TABLES_KV_APPLY_3_PERFORMANCE:dc.b $FF ; Performance 3rd gear TCC Apply line table ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_TCC_TABLES_KV_APPLY_4_PERFORMANCE:dc.b $FF ; Performance 4th gear TCC Apply line table ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_TCC_TABLES_KV_RELEASE_2_PERFORMANCE:dc.b $FF ; Performance 2nd gear TCC Release line table ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_TCC_TABLES_KV_RELEASE_3_PERFORMANCE:dc.b $FF ; Performance 3rd gear TCC Release line table ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_TCC_TABLES_KV_RELEASE_4_PERFORMANCE:dc.b $FF ; Performance 4th gear TCC Release line table ; MPH dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_TCC_TABLES_KV_APPLY_2_NORM_ALT_OFFSET:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_APPLY_3_NORM_ALT_OFFSET:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_APPLY_4_NORM_ALT_OFFSET:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_APPLY_2_CRUISE_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Apply Cruise. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_APPLY_3_CRUISE_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Apply Cruise. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_APPLY_4_CRUISE_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Apply Cruise. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_APPLY_2_HOT_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Apply Hot. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_APPLY_3_HOT_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Apply Hot. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_APPLY_4_HOT_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Apply Hot. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_APPLY_2_PERF_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Apply Performance. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_APPLY_3_PERF_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Apply Performance. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_APPLY_4_PERF_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Apply Performance. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_RELEASE_2_NORMAL_ALT_OFFSET:dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_TCC_TABLES_KV_RELEASE_3_NORMAL_ALT_OFFSET:dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_TCC_TABLES_KV_RELEASE_4_NORMAL_ALT_OFFSET:dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF T_TCC_TABLES_KV_RELEASE_2_CRUISE_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Release Cruise. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_RELEASE_3_CRUISE_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Release Cruise. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_RELEASE_4_CRUISE_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Release Cruise. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_RELEASE_2_HOT_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Release Cruise. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_RELEASE_3_HOT_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Release Hot. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_RELEASE_4_HOT_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Release Hot. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_RELEASE_2_PERF_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Release Performance. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_RELEASE_3_PERF_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Release Performance. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_RELEASE_4_PERF_ALT_OFFSET:dc.b 0 ; Altitude compensation offset for TCC Release Performance. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TCC_TABLES_KV_TCC_APPLY_2_HP_EP_OFFSET:dc.b 0 ; Max amount TCC apply point could be modified when in heater performance or engine protection mode. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_TCC_TABLES_KV_TCC_APPLY_3_HP_EP_OFFSET:dc.b 0 ; Max amount TCC apply point could be modified when in heater performance or engine protection mode. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_TCC_TABLES_KV_TCC_APPLY_4_HP_EP_OFFSET:dc.b 0 ; Max amount TCC apply point could be modified when inheater performance or engine protection mode. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_TCC_TABLES_KV_TCC_RELEASE_2_HP_EP_OFFSET:dc.b 0 ; Max amount TCC Release point could be modified when in heater performance or engine protection mode. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_TCC_TABLES_KV_TCC_RELEASE_3_HP_EP_OFFSET:dc.b 0 ; Max amount TCC Release point could be modified when in heater performance or engine protection mode. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_TCC_TABLES_KV_TCC_RELEASE_4_HP_EP_OFFSET:dc.b 0 ; Max amount TCC Release point could be modified when inheater performance or engine protection mode. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_TCC_TABLES_KV_2_NORM_MAX_THR_BEFORE_REL:dc.b $7F ;  ; Used to determine maximum amount of throttle before a TCC release is commanded in second gear. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_TCC_TABLES_KV_3_NORM_MAX_THR_BEFORE_REL:dc.b $7F ;  ; Used to determine maximum amount of throttle before a TCC release is commanded in third gear. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_TCC_TABLES_KV_4_NORM_MAX_THR_BEFORE_REL:dc.b $7F ;  ; Used to determine maximum amount of throttle before a TCC release is commanded in fourth gear. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_TCC_TABLES_KV_2_CRS_MAX_THR_BEFORE_REL:dc.b $7F ;  ; Used to determine maximum amount of throttle before a TCC release is commanded in second gear. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_TCC_TABLES_KV_3_CRS_MAX_THR_BEFORE_REL:dc.b $7F ;  ; Used to determine maximum amount of throttle before a TCC release is commanded in third gear. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_TCC_TABLES_KV_4_CRS_MAX_THR_BEFORE_REL:dc.b $7F ;  ; Used to determine maximum amount of throttle before a TCC release is commanded in fourth gear. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_TCC_TABLES_KV_2_PERF_MAX_THR_BEFORE_REL:dc.b $7F ;  ; Used to determine maximum amount of throttle before a TCC release is commanded in second gear. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_TCC_TABLES_KV_3_PERF_MAX_THR_BEFORE_REL:dc.b $7F ;  ; Used to determine maximum amount of throttle before a TCC release is commanded in third gear. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_TCC_TABLES_KV_4_PERF_MAX_THR_BEFORE_REL:dc.b $7F ;  ; Used to determine maximum amount of throttle before a TCC release is commanded in fourth gear. ; % dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF T_TIMING_TABLES_KV_1_2_NORMAL_DESIRED_SHIFT_TIME:dc.b 0 ; DATA XREF: OS4:0008997Ao ; Desired shift time for a 1-2 shift in normal mode. ; Seconds dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $48 ; H dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4F ; O dc.b 0 dc.b $51 ; Q dc.b 0 dc.b $52 ; R dc.b 0 dc.b $54 ; T dc.b 0 dc.b $56 ; V dc.b 0 dc.b $57 ; W T_TIMING_TABLES_KV_2_3_NORMAL_DESIRED_SHIFT_TIME:dc.b 0 ; DATA XREF: OS4:0008997Eo ; Desired shift time for a 2-3 shift in normal mode. ; Seconds dc.b $35 ; 5 dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $3D ; = dc.b 0 dc.b $41 ; A dc.b 0 dc.b $43 ; C dc.b 0 dc.b $46 ; F dc.b 0 dc.b $4B ; K dc.b 0 dc.b $51 ; Q dc.b 0 dc.b $56 ; V dc.b 0 dc.b $57 ; W dc.b 0 dc.b $57 ; W dc.b 0 dc.b $57 ; W dc.b 0 dc.b $57 ; W dc.b 0 dc.b $57 ; W dc.b 0 dc.b $57 ; W dc.b 0 dc.b $57 ; W dc.b 0 dc.b $57 ; W T_TIMING_TABLES_KV_3_4_NORMAL_DESIRED_SHIFT_TIME:dc.b 0 ; DATA XREF: OS4:00089982o ; Desired shift time for a 3-4 shift in normal mode. ; Seconds dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P T_TIMING_TABLES_KV_1_2_PERF_DESIRED_SHIFT_TIME:dc.b 0 ; DATA XREF: OS4:00089986o ; Desired shift time for a 1-2 shift in performance mode. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_TIMING_TABLES_KV_2_3_PERF_DESIRED_SHIFT_TIME:dc.b 0 ; DATA XREF: OS4:0008998Ao ; Desired shift time for a 2-3 shift in performance mode. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_TIMING_TABLES_KV_3_4_PERF_DESIRED_SHIFT_TIME:dc.b 0 ; DATA XREF: OS4:off_8998Eo ; Desired shift time for a 3-4 shift in performance mode. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_TIMING_TABLES_KV_1_2_PRESS_LOW_ADAPT_LIMIT:dc.b 0 ; DATA XREF: OS4:00089992o ; Adaptive pressure low limit for 1-2 shift. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $FF T_TIMING_TABLES_KV_2_3_PRESS_LOW_ADAPT_LIMIT:dc.b 0 ; DATA XREF: OS4:00089996o ; Adaptive pressure low limit for 2-3 shift. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $FF T_TIMING_TABLES_KV_3_4_PRESS_LOW_ADAPT_LIMIT:dc.b 0 ; DATA XREF: OS4:off_8999Ao ; Adaptive pressure low limit for 3-4 shift. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TIMING_TABLES_KV_PRESS_HIGH_ADAPT_LIMIT:dc.b 0 ; DATA XREF: sub_5D45C+314o ; Adaptive pressure high limit. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TIMING_TABLES_KV_1_2_NORMAL_DST_OFFSET:dc.b 0 ; DATA XREF: OS4:0008999Eo ; Altitude compensation factor offset for 1-2 upshift in normalmode used within shift quality's Desired Shift Time algorithm. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 8 dc.b 0 dc.b $A dc.b 0 dc.b $10 dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $A dc.b 0 dc.b 5 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 T_TIMING_TABLES_KV_2_3_NORMAL_DST_OFFSET:dc.b 0 ; DATA XREF: OS4:000899A2o ; Altitude compensation factor offset for 2-3 upshift in normalmode used within shift quality's Desired Shift Time algorithm. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 8 dc.b 0 dc.b 5 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_TIMING_TABLES_KV_3_4_NORMAL_DST_OFFSET:dc.b 0 ; DATA XREF: OS4:000899A6o ; Altitude compensation factor offset for 3-4 upshift in normalmode used within shift quality's Desired Shift Time algorithm. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_TIMING_TABLES_KV_1_2_PERF_DST_OFFSET:dc.b 0 ; DATA XREF: OS4:000899AAo dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_TIMING_TABLES_KV_2_3_PERF_DST_OFFSET:dc.b 0 ; DATA XREF: OS4:000899AEo dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_TIMING_TABLES_KV_3_4_PERF_DST_OFFSET:dc.b 0 ; DATA XREF: OS4:off_899B2o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_TIMING_TABLES_KV_1_2_DST_ALTITUDE_FACTOR:dc.b 0 ; DATA XREF: OS4:000899B6o ; Multiplicative Altitude compensation factor based on barometricpressure for 1-2 shift normal mode within Desired Shift Times. ; Factor dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TIMING_TABLES_KV_2_3_DST_ALTITUDE_FACTOR:dc.b 0 ; DATA XREF: OS4:000899BAo ; Multiplicative Altitude compensation factor based on barometricpressure for 2-3 shift normal mode within Desired Shift Times. ; Factor dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF T_TIMING_TABLES_KV_3_4_DST_ALTITUDE_FACTOR:dc.b 0 ; DATA XREF: OS4:000899BEo ; Multiplicative Altitude compensation factor based on barometricpressure for 3-4 shift normal mode within Desired Shift Times. ; Factor dc.b 0 dc.b 0 dc.b 0 dc.b 0 X_TCM_EXECUTION_KE_USE_SHIFT_STABILIZATION_ACCEL:dc.b 0 ; DATA XREF: DoLoopF+382r ; Bypass shift stabilization accel routine if this is false. ; T/F T_FM_CONTROL_KE_FM_MIN_DUTY_CYCLE_MFD:dc.w $666 ; DATA XREF: sub_4AA18:loc_4AB6Cr ; Minimum force motor duty cycle required for MFD chip to accurately measure the actual force motor current. ; Percent XMSN_IO_KE_MAX_PRESSURE:dc.w $1680 ; DATA XREF: sub_4CD5E:loc_4CDDAr ; sub_4CD5E+96r ... ; Max allowable force motor pressure used for limitingcalculations. ; PSI XMSN_IO_KE_DRIVE_SPROKET_RATIO:dc.w $1000 ; DATA XREF: sub_24716+2FEr ; sub_24716+34Er ... ; Turbine shaft and Input shaft interconnect chain ratio. ; Ratio XMSN_IO_KV_CONVERTER_TORQUE_RATIO:dc.w $1ECD ; DATA XREF: sub_24716+56r ; sub_4DD5C+58r ... ; Ratio used to determine gearbox torque. ; Ratio dc.b $1D dc.b $D0 ; ? dc.b $1C dc.b $D1 ; ? dc.b $1B dc.b $EC ; ? dc.b $1B dc.b $10 dc.b $1A dc.b $27 ; ' dc.b $19 dc.b $2B ; + dc.b $18 dc.b $25 ; % dc.b $17 dc.b $A dc.b $15 dc.b $EC ; ? dc.b $14 dc.b $CC ; ? dc.b $13 dc.b $A7 ; ? dc.b $12 dc.b $7B ; { dc.b $11 dc.b $38 ; 8 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 XMSN_IO_KE_FIRST_GEAR_RATIO:dc.w $30F2 ; DATA XREF: sub_24716+150r ; OS4:off_8A5DCo ; Gear ratio for 1st gear. ; Ratio XMSN_IO_KE_SECOND_GEAR_RATIO:dc.w $1A00 ; DATA XREF: sub_24716:loc_24872r ; OS4:0008A5E0o ; Gear ratio for 2nd gear. ; Ratio XMSN_IO_KE_REVERSE_GEAR_RATIO:dc.b $24 ; $ ; DATA XREF: OS4:0008A5ECo ; OS4:0008A5F0o ... ; Gear ratio for 1st gear. ; Ratio dc.b $B4 ; ? XMSN_IO_KE_DIAG_SYS_VOLTS_LOW:dc.b $50 ; DATA XREF: sub_4F8C8+10r ; sub_4F9F4+12r ... ; The low thresholdof Ignition voltage range ; Volts XMSN_IO_KE_DIAG_SYS_VOLTS_HIGH:dc.b $B4 ; DATA XREF: sub_4F8C8+18r ; sub_4F9F4+1Ar ... ; The high thresholdof Ignition voltage range ; Volts XMSN_IO_KE_BRAKE_DEBOUNCE_TIME:dc.w 4 ; DATA XREF: sub_5436E+B4r ; Amount of time to debounce the brake switch input. ; Seconds XMSN_IO_KE_DEFAULT_THROTTLE_POSITION:dc.w $2000 ; DATA XREF: sub_5436E+2C8r ; sub_5436E+318r ; Default throttle to use when throttle is faulted. ; Percent XMSN_IO_KE_DEFAULT_THROTTLE_LOW:dc.w $1333 ; DATA XREF: sub_5436E+320r ; Negative delta for throttle recovery. ; Percent XMSN_IO_KE_DEFAULT_THROTTLE_HIGH:dc.w $2CCD ; DATA XREF: sub_5436E+32Ar ; Positive delta for throttle recovery. ; Percent XMSN_IO_KE_USE_ENGINE_TPS:dc.b 1 ; DATA XREF: sub_5436E:loc_5462Er ; sub_5436E+310r ; Determines whether to set default throttle position toa calibrated value or to an undefaulted throttle position. ; T/F dc.b $FF XMSN_IO_KE_THROTTLE_KICKDOWN_LOW_THRESH:dc.w $6CCD ; DATA XREF: sub_5436E+406r ; Exit throttle kickdown when throttle is below this. ; Percent XMSN_IO_KE_THROTTLE_KICKDOWN_HIGH_THRESH:dc.w $799A ; DATA XREF: sub_5436E:loc_5476Er ; Enter throttle kickdown when throttle is above this. ; Percent XMSN_IO_KE_THROT_KICKDN_4WDLOW_LO_THRESH:dc.w $6CCD ; DATA XREF: sub_5436E+3DAr ; Defines the throttle position threshold below which the kickdown (detent) flag will be set to FALSE. ; Percent XMSN_IO_KE_THROT_KICKDN_4WDLOW_HI_THRESH:dc.w $799A ; DATA XREF: sub_5436E+3D4r ; Defines the throttle position threshold above which the kickdown (detent) flag will be set to TRUE. ; Percent XMSN_IO_KE_THROT_KICKDN_CRUISE_LO_THRESH:dc.w $6CCD ; DATA XREF: sub_5436E+3F8r ; Defines the throttle position threshold for cruise below which the kickdown (detent) flag will be set to FALSE. ; Percent XMSN_IO_KE_THROT_KICKDN_CRUISE_HI_THRESH:dc.w $799A ; DATA XREF: sub_5436E+3F2r ; Defines the throttle position threshold for cruise above which the kickdown (detent) flag will be set to TRUE. ; Percent XMSN_IO_KE_ENGINE_SPEED_KALMAN_GAIN_1:dc.w $18F6 ; DATA XREF: sub_5436E+44Cr ; Gain used in kalman filter associated with plant speed noise. ; Gain XMSN_IO_KE_ENGINE_SPEED_KALMAN_GAIN_2:dc.w $A6A6 ; DATA XREF: sub_5436E+4B0r ; Gain used in kalman filter associated with plant acceleration noise. ; Gain XMSN_IO_KE_ENGINE_SPEED_KALMAN_GAIN_3:dc.w $6910 ; DATA XREF: sub_5436E+50Er ; Gain used in kalman filter associated with plant jerk noise. ; Gain XMSN_IO_KE_ENGINE_SPEED_FILTER_COEFF:dc.w $8000 ; DATA XREF: sub_5436E+53Er ; Filter Coefficient for filtering engine speed. ; Coeff XMSN_IO_KE_ENG_SPD_FILTER_COEFF:dc.w 0 ; DATA XREF: sub_5434C+4r ; Filter coefficient for filtering Engine Speed at 6.25 ms for use in Modeled Ratio calculation. ; Coeff XMSN_IO_KE_OUTPUT_SPEED_FILTER_COEFF:dc.w $8000 ; DATA XREF: sub_5436E:loc_54A72r ; Filter Coefficient for filtering output speed. ; Coeff XMSN_IO_KE_MPH_OUTPUT_SPEED_FILTER_COEFF:dc.w $8000 ; DATA XREF: sub_5436E+7E0r ; Filter Coefficient for filtering MPH output speed. ; Coeff XMSN_IO_KE_SLIP_FILTER_COEFF:dc.w $2600 ; DATA XREF: sub_5436E+9E2r ; Filter Coefficient for filtering Slip. ; Coeff XMSN_IO_KE_TURBINE_SPEED_FILTER_COEFF:dc.w $8000 ; DATA XREF: sub_5436E+996r ; Filter Coefficient for filtering turbine speed. ; Coeff XMSN_IO_KE_ENGINE_TORQUE_FILTER_COEFF:dc.w $8000 ; DATA XREF: sub_5436E:loc_54E60r ; Filter Coefficient for filtering turbine speed. ; Coeff XMSN_IO_KE_ECCC_ENGINE_TORQ_FILTER_CONST:dc.w 0 ; DATA XREF: sub_5436E:loc_54E84r ; Filter Coefficient for determining ECCC_Engine_Torque. ; Coeff XMSN_IO_KE_SPANNED_TIME_ECCC_ENGINE_TORQ:dc.w 0 ; DATA XREF: sub_5436E+B44r ; Update Spanned_ECCC_Engine_Torq every this many seconds. ; Seconds XMSN_IO_KE_SLIP_LOW_THRESHOLD:dc.w $F1F0 ; DATA XREF: sub_5436E+A00r ; Enter floating slip mode when slip is less than this. ; RPM XMSN_IO_KE_SLIP_HIGH_THRESHOLD:dc.w $F218 ; DATA XREF: sub_5436E+A12r ; Exit floating slip mode when slip is greater than this. ; RPM XMSN_IO_KE_ENGINE_RUNNING_ENG_SPD_THRESH:dc.w $4B0 ; DATA XREF: sub_5436E+556r ; Speed threshold above which engine is considered running. ; RPM XMSN_IO_KE_PWRTRAIN_MOVING_ENG_SPD_THRSH:dc.w $4B0 ; DATA XREF: sub_5436E+A42r ; Speed threshold below which engine speed is considered stopped. ; RPM XMSN_IO_KE_STOPPED_POWERTRAIN_TIME_LIMIT:dc.w 8 ; DATA XREF: sub_5436E+A60r ; When all speed inputs indicate zero motion for this amount of time, indicate that the powertrain is not moving. ; Seconds XMSN_IO_KE_ENGINE_RUN_NOT_CUT_OFF_TIME:dc.w $320 ; DATA XREF: sub_5436E+A9Er ; The amount of time the engine must be running not in fuel cut off. ; Seconds XMSN_IO_KE_OUTPUT_ACCEL_FILTER_COEFF:dc.w $8000 ; DATA XREF: sub_5436E:loc_54B02r ; Filter Coefficient for filtering output acceleration. ; Coeff XMSN_IO_KE_FAST_DECEL_THRESHOLD:dc.w 0 ; DATA XREF: sub_5436E+7B0r ; If output acceleration below this, TCC is turned off. ; RPM_per_Sec XMSN_IO_KV_LINEAR_HOT_TEMPERATURE_TABLE:dc.w $C7 ; DATA XREF: sub_54FDC+1Er ; Table used to translate temperature sensor A/D counts into Degrees C. This table is for the 348 Ohm pullup resistor. ; Deg C dc.b 0 dc.b $C7 ; ? dc.b 0 dc.b $A3 ; ? dc.b 0 dc.b $88 ; ? dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $7D ; } dc.b 0 dc.b $79 ; y dc.b 0 dc.b $71 ; q dc.b 0 dc.b $67 ; g dc.b 0 dc.b $5D ; ] dc.b 0 dc.b $53 ; S dc.b 0 dc.b $49 ; I dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $39 ; 9 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $35 ; 5 XMSN_IO_KV_LINEAR_COLD_TEMPERATURE_TABLE:dc.w $D5 ; DATA XREF: sub_54FDC+2Er ; Table used to translate temperature sensor A/D counts into Degrees C. This table is for the 4K Ohm pullup resistor. ; Deg C dc.b 0 dc.b $73 ; s dc.b 0 dc.b $57 ; W dc.b 0 dc.b $43 ; C dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $2E ; . dc.b 0 dc.b $26 ; & dc.b 0 dc.b $1E dc.b 0 dc.b $17 dc.b 0 dc.b $10 dc.b 0 dc.b 9 dc.b 0 dc.b 2 dc.b $FF dc.b $FA ; ? dc.b $FF dc.b $F1 ; ? dc.b $FF dc.b $E6 ; ? dc.b $FF dc.b $D5 ; ? dc.b $FF dc.b $CA ; ? XMSN_IO_KE_TEMPERATURE_FACTOR_SOURCE:dc.b 0 ; DATA XREF: sub_54FDC:loc_552C4r ; Indicates the temperatue source used to calculate thetemperature factor for heater performance ; NONE dc.b $FF XMSN_IO_KE_TRANS_TEMP_FILTER_COEFFICIENT:dc.w $3300 ; DATA XREF: sub_54FDC:loc_5504Ar ; Filter coefficient for filtering Transmission Temperature. ; Coeff XMSN_IO_KE_DEFAULT_TRANS_TEMPERATURE:dc.w $B4 ; DATA XREF: sub_54FDC:loc_5506Ar ; Default transmission temperature when sensor fails. ; Deg C XMSN_IO_KE_LOW_MAX_GEAR_INHIBIT_THRESH:dc.b $36 ; DATA XREF: sub_54FDC+2A6r ; When Coolant temperature falls below this value, inhibit max gear. ; Deg C XMSN_IO_KE_HIGH_MAX_GEAR_INHIBIT_THRESH:dc.b $37 ; DATA XREF: sub_54FDC+292r ; When Coolant temperature rises above this value, Enable max gear. ; Deg C XMSN_IO_KE_COLD_ENGINE_LOW_THRESHOLD:dc.b $82 ; DATA XREF: sub_54FDC:loc_55226r ; When Coolant temperature falls below this value, the engine cold indicator is set. ; Deg C XMSN_IO_KE_COLD_ENGINE_HIGH_THRESHOLD:dc.b $86 ; DATA XREF: sub_54FDC+23Ar ; When Coolant temperature rises above this value, the engine cold indicator is cleared. ; Deg C XMSN_IO_KE_HOT_ENGINE_LOW_THRESHOLD:dc.b $C9 ; DATA XREF: sub_54FDC+264r ; When Coolant temperature falls below this value, the engine hot indicator is cleared. ; Deg C XMSN_IO_KE_HOT_ENGINE_HIGH_THRESHOLD:dc.b $E0 ; DATA XREF: sub_54FDC+278r ; When Coolant temperature rises above this value, the engine Hot indicator is Set. ; Deg C XMSN_IO_KE_INTAKE_AIR_TEMP_LOW_OFFSET:dc.w 7 ; DATA XREF: sub_54FDC+164r ; Offset added to coolant temperature to determine defaulttrans temp when air temp is below a threshold. ; Deg C XMSN_IO_KE_INTAKE_AIR_TEMP_HIGH_OFFSET:dc.w $D ; DATA XREF: sub_54FDC+192r ; Offset added to coolant temperature to determine defaulttrans temp when air temp is above a threshold. ; Deg C XMSN_IO_KE_TRANS_TEMP_COND_UNKNOWN:dc.w $B4 ; DATA XREF: sub_54FDC:loc_55084r ; Default transmission temperature when a reliable engine coolant temperature is not available. ; Deg C XMSN_IO_KE_TRANS_TEMP_ENG_TEMP_LOW:dc.w $50 ; DATA XREF: sub_54FDC+1B0r ; Default transmission temperature when engine run time is above a cal and coolant temperature is below a cal. ; Deg C XMSN_IO_KE_TRANS_TEMP_STARTUP:dc.w $78 ; DATA XREF: sub_54FDC:loc_550F8r ; Default transmission temperature when engine run time is below a cal and coolant temperature is below a cal. ; Deg C XMSN_IO_KE_MIN_ENGINE_RUN_TIME:dc.l unk_10680 ; DATA XREF: sub_54FDC:loc_550AEr ; Engine run time threshold for deteremining which default transmission temperature to use. ; Seconds XMSN_IO_KE_ENG_PROT_MODE_HIGH_THROT_THR:dc.w $7800 ; DATA XREF: sub_54FDC+2DAr ; High threshold for the throttle position to switch Heater Performance Mode to Engine Protection Mode. ; Percent XMSN_IO_KE_ENG_PROT_MODE_LOW_THROT_THR:dc.w $6CCD ; DATA XREF: sub_54FDC+2C4r XMSN_IO_KE_COLD_DAY_LOW_TEMP_FACT_THR:dc.b 0 ; DATA XREF: sub_54FDC:loc_5532Er ; If coolant temperature of a Cold Day is below this threshold then Temperature_Factor is 1 ; Degrees_C XMSN_IO_KE_COLD_DAY_HIGH_TEMP_FACT_THR:dc.b 0 ; DATA XREF: sub_54FDC+358r ; If coolant temperature of a Cold Day is above this threshold then Temperature_Factor is 0 ; Degrees_C XMSN_IO_KE_COOL_DAY_LOW_TEMP_FACT_THR:dc.b 0 ; DATA XREF: sub_54FDC+344r ; If coolant temperature of a Cool Day is below this threshold then Temperature_Factor is 1 ; Degrees_C XMSN_IO_KE_COOL_DAY_HIGH_TEMP_FACT_THR:dc.b 0 ; DATA XREF: sub_54FDC+34Ar ; If coolant temperature of a Cool Day is above this threshold then Temperature_Factor is 0 ; Degrees_C XMSN_IO_KE_COLD_DAY_KUM_THRESH:dc.b 0 ; DATA XREF: sub_5546E+20r ; If Startup_Intake_Air_Temp is below this threshold then cold day is present ; Degrees_C XMSN_IO_KE_COOL_DAY_KUM_THRESH:dc.b 0 ; DATA XREF: sub_5546E+32r ; If Startup_Intake_Air_Temp is below this threshold andthen cool day is present ; Degrees_C XMSN_IO_KV_ENGINE_PROTECTION_TEMP_FACTOR:dc.b 0 ; DATA XREF: sub_54FDC+332r ; Temperature Factor in Engine Protection Mode ; Factor 0_1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF XMSN_IO_KE_THIRD_GEAR_RATIO:dc.b $10 ; DATA XREF: OS4:off_8A5E4o ; Gear ratio for 1st gear. ; Ratio dc.b 0 XMSN_IO_KE_FOURTH_GEAR_RATIO:dc.b $B ; DATA XREF: OS4:0008A5E8o ; Gear ratio for 1st gear. ; Ratio dc.b $23 ; # XMSN_IO_KE_DEFAULT_TEMP_ENG_TO_HOT:dc.w $B4 ; DATA XREF: sub_54FDC+C8r XMSN_IO_KE_MIN_COOLANT_TEMP_THRESH:dc.w $35 ; DATA XREF: sub_54FDC+12Ar ; sub_54FDC+1A4r XMSN_IO_KE_MAX_COOLANT_TEMP_THRESH:dc.w $A7 ; DATA XREF: sub_54FDC:loc_5508Er XMSN_IO_KE_STARTUP_TEMP_LOW_THRESH:dc.w $14 ; DATA XREF: sub_54FDC+156r XMSN_IO_KE_STARTUP_TEMP_HIGH_THRESH:dc.w $2F ; DATA XREF: sub_54FDC:loc_55160r XMSN_IO_KE_TRANS_STARTUP_DELAY_TIME:dc.l off_640 ; DATA XREF: sub_54FDC+20Ar ; The minimum amount of time engine must be running beforeStoring Trans_Temp_At_Engine_Start. ; Seconds XMSN_IO_KE_USE_CONST_FOR_TRANS_TEMP:dc.b 0 ; DATA XREF: sub_54FDC:loc_55192r dc.b $FF XMSN_IO_KE_DIAG_SYS_VOLTS_RANGE_TIME:dc.w 0 ; DATA XREF: sub_554C6+24r ; sub_554C6+50r ; Amount of time that system voltage must be out of range before taking remedial action in transmission. ; Seconds XMSN_IO_KE_OUTPUT_SPEED_FREEZE_TIME:dc.w 0 ; DATA XREF: sub_5436E+692r ; Freeze output speed for this long after the start of an upshift or downshift if an ISS is present. ; Seconds XMSN_IO_KE_IMS_DEBOUNCE_TIME:dc.w 0 ; DATA XREF: sub_55544+3Ar ; Time that the filtered IMS can be set to the last positive IMS value when the IMS value is Transition or Illegal_Range ; Seconds XMSN_IO_KE_STARTER_MOTOR_CONTROL:dc.b 0 ; TRUE if starter motor control is from the PCM, FALSE otherwise. ; T/F XMSN_IO_KE_IMS_PREDICTIVE_STATE:dc.b 0 ; DATA XREF: sub_5427A:loc_5430Er ; TRUE if the predictive algorithm is to be used when the IMSstate is Transition or Illegal_Range, FALSE otherwise. ; T/F XMSN_IO_KE_IMS_DEFAULTED_DRIVE_RANGE:dc.b 0 ; DATA XREF: sub_5427A:loc_542E4r ; Default range used when IMS is requesting failsoft. ; Range dc.b $FF XMSN_IO_KA_PREDICTED_TRANS_FAILSOFT_IMS:dc.b 0 ; Used to derive Predicted Internal Mode Switch State from Last Positive IMS State and Current IMS State. ; IMS Type dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF byte_1B392: dc.b 0 ; DATA XREF: sub_5427A+B0r dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF XMSN_IO_KA_PREDICTED_ENG_FAILSOFT_IMS:dc.b 0 ; Used to derive Predicted Internal Mode Switch State from Last Positive IMS State and Current IMS State. ; IMS Type dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF byte_1B412: dc.b 0 ; DATA XREF: sub_5427A+BAr dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF XMSN_IO_KE_USE_TRANSMISSION_OIL_LIFE:dc.b 0 ; DATA XREF: sub_54FDC+47Er ; Bypass the oil life counter feature if this is false. ; T/F dc.b $FF XPRS_BRAKING_PRESSURE_KE_BRAKING_SLIP:dc.w 0 ; DATA XREF: sub_55796+5Er ; sub_58B52+Cr ; Slip accross Torque Converter used to determine if engine braking present torque being transmitted from transmission to engine. ; RPM_s XPRS_BRAKING_PRESSURE_KE_BRAKING_PRESSURE_TPS_LIMIT:dc.w $51F ; DATA XREF: sub_55796+6Ar ; sub_58B52+18r ; Braking Pressure Throttle position opening for use in determining a coast or power-on shift. ; Percent XPRS_BRAKING_PRESSURE_KE_COAST_SOL_CHANGE_ENABLE:dc.b 0 ; DATA XREF: sub_55796+34r dc.b $FF XPRS_GARAGE_PRESSURE_KE_GS_PARK_NEUTRAL_MPH:dc.w $A00 ; DATA XREF: sub_4C30C+5Ar ; sub_559D6+D4r XPRS_GARAGE_PRESSURE_KE_GS_REVERSE_DRIVE_MPH:dc.w $A00 ; DATA XREF: sub_4C30C+60r ; sub_559D6+2Cr ... XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_START_FORWRD:dc.w 0 ; DATA XREF: sub_559D6+E6Er ; sub_559D6+E7Cr ... ; Pressure is used at the beginning of the initial abuseramp when in a forward range ; PSI XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_START_REVRS:dc.w 0 ; DATA XREF: sub_559D6+E9Er ; sub_559D6+EACr ... ; Pressure is used at the beginning of the initial abuseramp when in a reverse range ; PSI XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_END_FORWRD:dc.w 0 ; DATA XREF: sub_559D6+E76r ; sub_559D6+F0Er ... ; The end value for the torque signal pressure ramp in an initial abuse situation while in a forward range ; PSI XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_END_REVRS:dc.w 0 ; DATA XREF: sub_559D6+EA6r ; sub_559D6+F26r ... ; The end value for the torque signal pressure ramp in an initial abuse situation while in a reverse range ; PSI XPRS_GARAGE_PRESSURE_KE_GARAGE_SHIFT_SLIP_THRESH:dc.w 0 ; DATA XREF: sub_559D6+8Cr ; sub_559D6+C0r ; This calibration is used in determining the garageshift type when a garage shift occurs ; RPM XPRS_GARAGE_PRESSURE_KE_GS_CLUTCH_SLIP_HIGH_THRESH:dc.w $7FFF ; DATA XREF: sub_559D6+Cr XPRS_GARAGE_PRESSURE_KE_GS_CLUTCH_SLIP_LOW_THRESH:dc.w $8000 ; DATA XREF: sub_559D6+3Er XPRS_GARAGE_PRESSURE_KE_GS_MAXIMUM_TIME:dc.w 0 ; DATA XREF: sub_559D6+52r ; The maximum amount of time that a garageshift may take. ; Seconds XPRS_GARAGE_PRESSURE_KA_GS_DRIVE_ROLLING_MODIFIER:dc.b $FF ; DATA XREF: sub_559D6:loc_5674Eo ; Rolling modifier to account for a garage shift made into drive with a moving powertrain ; PSI_s dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF XPRS_GARAGE_PRESSURE_KA_GS_REVERSE_ROLLING_MODIFIER:dc.b $FF ; DATA XREF: sub_559D6:loc_56796o ; Rolling modifier to account for a garage shift made into reverse with a moving powertrain ; PSI_s dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF XPRS_GARAGE_PRESSURE_KA_GS_REVERSE_TO_DRIVE_BASE_PRES:dc.b 0 ; DATA XREF: sub_559D6:loc_55FE0o ; sub_559D6:loc_5620Eo ; Three dimensional table determining base garage pressurewhen a reverse to drive garage shift occurs ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_GARAGE_PRESSURE_KA_GS_DRIVE_TO_REVERSE_BASE_PRES:dc.b 0 ; DATA XREF: sub_559D6:loc_5603Eo ; sub_559D6:loc_56268o ; Three dimensional table determining base garage pressurewhen a Drive to reverse garage shift occurs ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_GARAGE_PRESSURE_KA_GS_PN_TO_DRIVE_BASE_PRES:dc.b 0 ; DATA XREF: sub_559D6:loc_56092o ; sub_559D6:loc_5615Co ; Three dimensional table determining base garage pressurewhen a park/neutral to drive garage shift occurs ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_GARAGE_PRESSURE_KA_GS_PN_TO_REVERSE_BASE_PRES:dc.b 0 ; DATA XREF: sub_559D6:loc_55F82o ; sub_559D6:loc_561B6o ; Three dimensional table determining base garage pressurewhen a park/neutral to drive garage shift occurs ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_GARAGE_PRESSURE_KA_GS_DRIVE_TO_REV_PULSE_TIME:dc.b 0 ; DATA XREF: sub_559D6:loc_55E8Co ; The sum of this calibration and the adapt table is thetotal pulse time commanded for garage shit type Drive_To_Reverse ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_GARAGE_PRESSURE_KA_GS_PN_TO_DRIVE_PULSE_TIME:dc.b 0 ; DATA XREF: sub_559D6:loc_55D1Co ; The sum of this calibration and the adapt table is thetotal pulse time commanded for garage shit type Park_Neutral_To_Drive ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_GARAGE_PRESSURE_KA_GS_PN_TO_REVERSE_PULSE_TIME:dc.b 0 ; DATA XREF: sub_559D6:loc_55DB0o ; The sum of this calibration and the adapt table is thetotal pulse time commanded for garage shit type Park_Neutral_To_Reverse ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_GARAGE_PRESSURE_KA_GS_REV_TO_DRIVE_PULSE_TIME:dc.b 0 ; DATA XREF: sub_559D6:loc_55E20o ; The sum of this calibration and the adapt table is thetotal pulse time commanded for garage shit typeReverse_To_Drive ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_GARAGE_PRESSURE_KV_GS_LAST_DRIVE_TIME_THRESH:dc.w 0 ; DATA XREF: sub_559D6:loc_55C20r ; The time since last drive range must be greater than orequal to this calibration in order for a pulse to becommanded ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_GARAGE_PRESSURE_KV_GS_LAST_REVERSE_TIME_THRESH:dc.w 0 ; DATA XREF: sub_559D6:loc_55C62r ; The time since last reverse range must be greater thanor equal to this calibration in order for a pulse to becommanded ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_GARAGE_PRESSURE_KE_GS_DRIVE_TO_REVERSE_PULSE:dc.w 0 ; DATA XREF: sub_559D6:loc_55E2Ar ; This calibraions returns a pressure pulse value for garageshift type of Drive_To_Reverse ; PSI XPRS_GARAGE_PRESSURE_KE_GS_PN_TO_DRIVE_PULSE:dc.w 0 ; DATA XREF: sub_559D6+2E0r ; This calibrations returns a pressure pulse value forgarage shift type of Park_Neutral_To_Drive ; PSI XPRS_GARAGE_PRESSURE_KE_GS_PN_TO_REVERSE_PULSE:dc.w 0 ; DATA XREF: sub_559D6:loc_55D4Ar ; This calibrations returns a pressure pulse value forgarage shift type of Park_Neutral_To_Reverse ; PSI XPRS_GARAGE_PRESSURE_KE_GS_REVERSE_TO_DRIVE_PULSE:dc.w 0 ; DATA XREF: sub_559D6:loc_55DBAr ; This calibrations returns a pressure pulse value forgarage shift type of Reverse_To_Drive ; PSI XPRS_GARAGE_PRESSURE_KE_GS_DELAY_TIME_MAX:dc.w 2 ; DATA XREF: sub_559D6:loc_5631Cr ; sub_559D6:loc_5649Cr ... ; Garage shift delay time must be less than this calibrationin order for garage shift fill pulse time adapt to bemodified ; Seconds XPRS_GARAGE_PRESSURE_KE_GS_ENGINE_SPEED_HIGH:dc.w 0 ; DATA XREF: sub_559D6+AB8r ; The high limit of engine speed for garage shift fillpulse time adapt to be modified ; RPM XPRS_GARAGE_PRESSURE_KE_GS_ENGINE_SPEED_LOW:dc.w 0 ; DATA XREF: sub_559D6+AB0r ; The low limit of engine speed for garage shift fillpulse time adapt to be modified ; RPM XPRS_GARAGE_PRESSURE_KE_GS_TRANS_TEMP_HIGH:dc.w $190 ; DATA XREF: sub_559D6+A7Ar ; The high limit of transmission temperature for garageshift fill pulse time adapt to be modified ; DegreesC XPRS_GARAGE_PRESSURE_KE_GS_TRANS_TEMP_LOW:dc.w $190 ; DATA XREF: sub_559D6+A72r ; The low limit of transmission temperature for garageshift fill pulse time adapt to be modified ; DegreesC XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_PHASE_1_RATE:dc.w 0 ; DATA XREF: sub_559D6+9CEr ; Value that iscontinuously added to garage shift pressure profilemodifier until phase 1 time has been reached ; PSI/Second XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_PHASE_1_TIME:dc.w 2 ; DATA XREF: sub_559D6+9BCr ; Time limit for phase 1 of the garage shift pressureprofile ; Seconds XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_PHASE_2_RATE:dc.w 0 ; DATA XREF: sub_559D6+A04r ; Value that iscontinuously added to garage shift pressure profilemodifier until phase 2 time has been reached ; PSI/Second XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_PHASE_2_TIME:dc.w 2 ; DATA XREF: sub_559D6:loc_563C8r ; Time limit for phase 2 of the garage shift pressureprofile ; Seconds XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_PHASE_3_RATE:dc.w 0 ; DATA XREF: sub_559D6+A38r XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_PHASE_3_TIME:dc.w 2 ; DATA XREF: sub_559D6:loc_563FCr ; Time limit for phase 3 of the garage shift pressureprofile ; Seconds XPRS_GARAGE_PRESSURE_KE_GS_INPUT_SPEED_ACCEL_THRESH:dc.w 0 ; DATA XREF: sub_559D6+178r ; This calibration is used to determine the start of thegarage shift when turbine speed acceleration drops belowthis calibration ; RPM/Second XPRS_GARAGE_PRESSURE_KE_GS_RD_TO_DR_INPUT_ACCEL_HIGH:dc.w 0 ; DATA XREF: sub_559D6+8EEr XPRS_GARAGE_PRESSURE_KE_GS_RD_TO_DR_INPUT_ACCEL_LOW:dc.w 0 ; DATA XREF: sub_559D6+906r XPRS_GARAGE_PRESSURE_KE_GS_PN_TO_RD_INPUT_ACCEL_THRE:dc.w 0 ; DATA XREF: sub_559D6+938r XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_MAX_TPS:dc.w 0 ; DATA XREF: sub_559D6+96Er ; Maximum throttle position for disabling garage profile. ; Percent XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_TEMP_HIGH:dc.w 0 ; DATA XREF: sub_559D6+956r ; This calibration is for setting the Garage PressureModifier to 0. ; Degrees C XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_TEMP_LOW:dc.w 0 ; DATA XREF: sub_559D6+962r ; This calibration is for setting the Garage PressureModifier to 0. ; Degrees C XPRS_GARAGE_PRESSURE_KE_GS_ADAPT_TOTAL_PULSE_TIME_MAX:dc.w 0 ; DATA XREF: sub_559D6:loc_56648r ; sub_559D6+C86r ... XPRS_GARAGE_PRESSURE_KE_GS_PULSE_TIME_PERCENT_DRV:dc.b 0 ; DATA XREF: sub_559D6+B3Cr ; This calibrationis the desired pulse time percent of the shift delayfor Park-Neutral to Drive shifts. ; Factor XPRS_GARAGE_PRESSURE_KE_GS_PULSE_TIME_PERCENT_RVRS:dc.b 0 ; DATA XREF: sub_559D6+B74r ; This calibrationis the desired pulse time percent of the shift delayfor Park-Neutral to Reverse shifts. ; Factor XPRS_GARAGE_PRESSURE_KV_GS_ADAPT_CELL_WEIGHT_FACTOR:dcb.b 2,0 byte_1BA00: dc.b 0 ; DATA XREF: sub_559D6+BF8r dc.b 0 dc.b 0 dc.b $FF XPRS_GARAGE_PRESSURE_KV_GS_PULSE_MOD_DRIVE_TABLE:dc.b 0 ; DATA XREF: sub_559D6+B34o ; Pulse time adapt modifier table for a drive garage shift ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_GARAGE_PRESSURE_KV_GS_PULSE_MOD_REVERSE_TABLE:dc.b 0 ; DATA XREF: sub_559D6:loc_56542o ; Pulse time adapt modifier table for a reverse garage shift ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_GARAGE_PRESSURE_KV_GS_FIRST_SHIFT_COLD_DRV_MOD:dc.w 0 ; DATA XREF: sub_55912:loc_5595Er ; Offset added to Garage Pressure when First Garage Shift Cold Drive is indicated. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_GARAGE_PRESSURE_KV_GS_FIRST_SHIFT_COLD_RVRS_MOD:dc.w 0 ; DATA XREF: sub_55912:loc_559B4r ; Offset added to Garage Pressure when First Garage Shift Cold Reverse is indicated. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_GARAGE_PRESSURE_KE_GS_PWRON_MIN_TEMP:dc.b $FF ; Transmission temperature must be greater than thisfor power-on garage shifts to be activated. ; DegreesC dc.b $FF XPRS_GARAGE_PRESSURE_KE_GS_PWRON_MIN_TPS:dc.b $7F ;  ; Throttle must be greater than thisfor power-on garage shifts to be activated. ; Percent dc.b $FF XPRS_GARAGE_PRESSURE_KE_GS_PWRON_CLUTCH_SLIP_HI:dc.b $FF ; Clutch_Slip must exceed this before Power-On GarageBase Pressure is allowed to start ramping. ; RPM dc.b $FF XPRS_GARAGE_PRESSURE_KE_GS_PWRON_DRV_MAX_PLS_TIME:dc.b $FF dc.b $FF XPRS_GARAGE_PRESSURE_KE_GS_PWRON_REV_MAX_PLS_TIME:dc.b $FF dc.b $FF XPRS_GARAGE_PRESSURE_KE_GS_PWRON_DRV_PROF_CLSLIP:dc.b $FF ; If Clutch_Slip is less than this, Power-On Garage BasePressure starts to ramp for P/N to Drive or Reverse toDrive Pwron GS. ; RPM dc.b $FF XPRS_GARAGE_PRESSURE_KE_GS_PWRON_REV_PROF_CLSLIP:dc.b $FF ; If Clutch_Slip is less than this, Power-On Garage BasePressure starts to ramp for P/N to Reverse or Drive toReverse Pwron GS. ; RPM dc.b $FF XPRS_GARAGE_PRESSURE_KE_GS_PWRON_END_TIME:dc.b $FF ; If GS_Pwron_End_Timer is greater than this, the Power-OnGarage Shift Pressure Calculation is terminated. ; Seconds dc.b $FF XPRS_GARAGE_PRESSURE_KE_GS_PWRON_END_PTS:dc.b $18 ; If Pwron_Clutch_Slip_Status is equal to End_Triggered,Pwron_Garage_Pressure_Base is set equal to this. ; PSI dc.b 0 XPRS_GARAGE_PRESSURE_KV_GS_PWRON_BASE_TEMP_FACTOR:dc.b $FF ; Temperature compensation factor used in base pressurecalculation for Power-On Garage Shift Pressure. ; Factor dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF XPRS_GARAGE_PRESSURE_KV_GS_PWRON_DRV_END_CLSLIP:dc.b $FF ; If Clutch_Slip is less than this, Status is End_Triggeredfor P/N to drive or reverse to drive garage shift. ; RPM dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF XPRS_GARAGE_PRESSURE_KV_GS_PWRON_REV_END_CLSLIP:dc.b $FF ; If Clutch_Slip is less than this, Status is End_Triggeredfor P/N to reverse or drive to reverse garage shift. ; RPM dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF XPRS_GARAGE_PRESSURE_KV_GS_PWRON_DRV_PROFILE:dc.b $FF ; Pressure_Ramp_Rate when P/N to drive or reverse to drivegarage shift occurs. ; PSI/Sec dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF XPRS_GARAGE_PRESSURE_KV_GS_PWRON_REV_PROFILE:dc.b $FF ; Pressure_Ramp_Rate when P/N to reverse or drive to reversegarage shift occurs. ; PSI/Sec dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF XPRS_GARAGE_PRESSURE_KV_GS_PWRON_PLS_TEMP_FACTOR:dc.b $FF ; Pressure pulse temperature compensation factorfor Power-On Garage Shift Pressure control. ; Factor dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF XPRS_GARAGE_PRESSURE_KA_GS_PWRON_DRV_BASE:dc.b $18 ; Base Pressure for Power-On Garage Shift for aP/N to drive or a reverse to drive garage shift. ; PSI dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 XPRS_GARAGE_PRESSURE_KA_GS_PWRON_REV_BASE:dc.b $18 ; Base Pressure for Power-On Garage Shift for aP/N to reverse or a drive to reverse garage shift. ; PSI dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 XPRS_GARAGE_PRESSURE_KA_GS_PWRON_DRV_PULSE:dc.b $18 ; Pulse Magnitude for Power-On Garage Shift for aP/N to drive or a reverse to drive garage shift. ; PSI dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 XPRS_GARAGE_PRESSURE_KA_GS_PWRON_REV_PULSE:dc.b $18 ; Pulse Magnitude for Power-On Garage Shift for aP/N to drive or a reverse to drive garage shift. ; PSI dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 dc.b $18 dc.b 0 XPRS_GARAGE_PRESSURE_KA_GS_PWRON_DRV_PULSE_MOD_TIME:dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF XPRS_GARAGE_PRESSURE_KA_GS_PWRON_REV_PULSE_MOD_TIME:dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF XPRS_GARAGE_PRESSURE_KA_ATM_PWRON_DRV_RDCTN_MAG:dc.b $7F ;  ; Reduction Magnitude for Power-On Garage Shift TorqueManagement for P/N to drive or reverse to drive shift. ; Percent dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF XPRS_GARAGE_PRESSURE_KA_ATM_PWRON_REV_RDCTN_MAG:dc.b $7F ;  ; Reduction Magnitude for Power-On Garage Shift TorqueManagement for P/N to reverse or drive to reverse shift. ; Percent dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF unk_1BD54: dc.b $7F ;  ; DATA XREF: sub_56AE4+BEo ; sub_56AE4+176o dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF XPRS_GARAGE_PRESSURE_KE_ATM_PWRON_CLSLIP_HI:dc.b $FF ; Clutch_Slip must exceed this before Power-On GarageShift Torque Control is activated. ; RPM dc.b $FF XPRS_GARAGE_PRESSURE_KE_ATM_PWRON_DRV_CLSLIP_LO:dc.b $FF ; Clutch_Slip must be below this for PowerOn_GS_Reductionto start to ramp for a P/N to drive or a reverseto drive shift. ; RPM dc.b $FF XPRS_GARAGE_PRESSURE_KE_ATM_PWRON_REV_CLSLIP_LO:dc.b $FF ; Clutch_Slip must be below this for PowerOn_GS_Reductionto start to ramp for a P/N to reverse or a driveto reverse shift. ; RPM dc.b $FF XPRS_GARAGE_PRESSURE_KE_ATM_PWRON_DRV_RAMP_TIME:dc.b $FF ; This is the time duration that PowerOn_GS_Reductionis linearly ramped during a P/N to drive or a reverseto drive shift. ; Seconds dc.b $FF XPRS_GARAGE_PRESSURE_KE_ATM_PWRON_REV_RAMP_TIME:dc.b $FF ; This is the time duration that PowerOn_GS_Reductionis linearly ramped during a P/N to reverse or a driveto reverse shift. ; Seconds dc.b $FF XPRS_GARAGE_PRESSURE_KE_ATM_PWRON_MIN_COOLANT:dc.b $FF ; Coolant_Temperature must be greater than this forpower-on garage shift torque control to be activated. ; DegreesC dc.b $FF XPRS_GARAGE_PRESSURE_KE_ATM_PWRON_MIN_RUNTIME:dc.b $FF ; Engine_Run_Time must be greater than this forpower-on garage shift torque control to be activated. ; Seconds dc.b $FF dc.b $FF dc.b $FF XPRS_RATIO_KA_PRESSURE_PROFILE_INIT_OFFSET:dc.b 0 ; To add an initial offset to thePressure_Profile_Modifier before it begins ramping with the1st offset ; PSI_s dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_1BDA2: dc.b 0 ; DATA XREF: sub_56AE4:loc_56BC4o ; sub_56AE4+19Co dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_RATIO_KA_PRESSURE_PROFILE_1ST_OFFSET:dc.b 0 ; Used to determine pressure profile modifier. ; PSI_s dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_1BDF0: dc.b 0 ; DATA XREF: sub_56AE4:loc_56CA2o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_RATIO_KA_PRESSURE_PROFILE_2ND_OFFSET:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_1BE3E: dc.b 0 ; DATA XREF: sub_56AE4+36o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_RATIO_KA_PRESS_PROFILE_START_RATIO:dc.b 0 ; Contains the starting gear ratio values for upshift timing. ; Ratio dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_1BE8C: dc.b 0 ; DATA XREF: sub_56AE4+7Co dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_RATIO_KA_PRESS_PROFILE_MIDDLE_RATIO:dc.b 0 ; Ratio values used to trigger 2nd pressure profile modifier to Shift_Pressure. ; Ratio dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_1BEDA: dc.b 0 ; DATA XREF: sub_56AE4+58o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_RATIO_KA_PRESS_PROFILE_END_RATIO:dc.b 0 ; Contains the ending gear ratio values for upshift timing. ; Ratio dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_RATIO_KV_12_DLOW_ACCUM_PROF_OFFSET:dc.w 0 ; DATA XREF: sub_56D72+64r dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_RATIO_KV_12_DLOW_ACCUM_PROF_RATE:dc.w 0 ; DATA XREF: sub_56D72+FEr dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_RATIO_KV_DLOW_ACCUM_PROF_START:dc.w 0 ; DATA XREF: sub_56D72+BAr ; Time threshold for the start of the 1-2 drive low urban shift accumulator ramp ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_1BF8E: dc.b 0 ; DATA XREF: sub_56EDC+1A8o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_SHIFT_KE_ENABLE_G_I_TRQ_RATIO_MULT:dc.b 0 ; DATA XREF: sub_571CE:loc_57306r ; Enables base pressure modification for upshifts based on ratio of gearbox and inertia torque. ; T/F dc.b $FF XPRS_SHIFT_KA_DOWNSHIFT_PRESS_MODIFICATION:dc.b 0 ; Used to find Inertia_Torque ; PSI_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_1BFE2: dc.b 0 ; DATA XREF: sub_56EDC+160o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_SHIFT_KA_JUMP_DS_PRESS_OFFSET:dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_1C018: dc.b 0 ; DATA XREF: sub_56EDC+CCo dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 word_1C034: dc.w 0 ; DATA XREF: sub_56EDC+9Er XPRS_SHIFT_KV_JUMP_DS_MOD_TIME_LIMIT:dc.b 0 ; The amount of time to limit Jump_Down_Modifier to seejump downshift. ; Seconds dc.b 0 dc.b 0 dc.b 0 XPRS_SHIFT_KA_JUMP_DS_BASE_PRESS_OFFSET:dc.b 0 ; ; dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_SHIFT_KV_DRIVE2_PRESS_OFFSET_TABLE:dc.b 0 ; DATA XREF: sub_571CE+5Co ; sub_571CE+122o ; Offset addedto Base_Pressure during 1-2 and 2-1 shifts in Drive_2 ; PSI_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_1C09C: dc.b 0 ; DATA XREF: sub_571CE+1E8o dc.b 0 word_1C09E: dc.w 0 ; DATA XREF: sub_56EDC+108r XPRS_SHIFT_KV_WHEEL_SLIP_RATIO:dc.b 0 ; Contains the wheel slipgear ratio value FOR calculating the wheel slip modifier ; Ratio dc.b 0 dc.b 0 dc.b 0 word_1C0A4: dc.w 0 ; DATA XREF: sub_56EDC+11Er XPRS_SHIFT_KV_WHEEL_SLIP_PRESSURE:dc.b 0 ; Used to determinethe wheel slip modifier ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_SHIFT_KE_ELIMINATE_DN_TURB_MOD_ELE_ON:dc.b 0 ; DATA XREF: sub_56EDC+188r ; When TRUE, eliminate the use of the downshift pressuremodifier when the braking element is applied. ; T/F dc.b $FF XPRS_SHIFT_KA_FIRST_UPSHIFT_COLD_FACTOR:dc.b 0 ; Factor multiplied by Base Pressure when First Upshift Cold is indicated. ; Factor dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_STEADY_STATE_KE_SS_DISABLE_ADAPT_TIME:dc.w 0 ; DATA XREF: sub_575C6:loc_57822r ; sub_5824A+4r ; Amount of time an adapt cell update will be delayed after a previous adapt update. ; Seconds XPRS_STEADY_STATE_KE_SS_ADAPT_RANGE_CHANGE_TIME:dc.w 0 ; DATA XREF: sub_575C6+CCr ; The amount of time that Time_Since_Last_Range_Change must be greater than in order to allow a SS adapt. ; Seconds XPRS_STEADY_STATE_KE_SS_ADAPT_OUTPUT_SPEED_VALID:dc.w $FFFF ; DATA XREF: sub_575C6+10Er ; Vehicle speed must be greater than this for a valid steady state adapts update. ; MPH XPRS_STEADY_STATE_KE_SS_ADAPT_CC_HIGH:dc.w 0 ; DATA XREF: sub_575C6+38Ar ; sub_575C6+432r ; This calibration defines a minimum limit of clutchcontrol capacity before allowing steady state adapts. ; Scaler XPRS_STEADY_STATE_KE_SS_ADAPT_COUNT_HIGH:dc.w 0 ; DATA XREF: sub_575C6+2FCr ; sub_575C6+3D2r ... ; Update steady state adapt up pressure cells when slip counter exceeds this cal. ; Counts XPRS_STEADY_STATE_KE_SS_ADAPT_COUNT_LOW:dc.w $19 ; DATA XREF: sub_575C6+33Er ; sub_575C6+4AEr ... ; Update steady state adapt down pressure cells when slip counter exceeds this cal. ; Counts XPRS_STEADY_STATE_KV_SS_ADAPTIVE_CELLS_DOWN:dc.w 0 ; DATA XREF: sub_575C6+6D0r ; sub_575C6+718r ... ; This is subtracted from the steady state adaptive pressure cells when adapt down conditions are met. ; PSI dcb.b $E,0 XPRS_STEADY_STATE_KV_SS_ADAPTIVE_CELLS_UP:dc.w 0 ; DATA XREF: sub_575C6+5DEr ; sub_575C6+628r ... ; This is added to the steady state adaptive pressure cells when adapt up conditions are met. ; PSI dcb.b $E,0 XPRS_STEADY_STATE_KV_LINE_CLUTCH_GAIN:dc.b $80 ; DATA XREF: sub_575C6+9EEr ; sub_575C6+A74r ; Gain used to calculate steady state line pressure. ; Gain dc.b $66 ; f dc.b $66 ; f dc.b $80 ; ? dc.b $66 ; f dc.b $66 ; f dc.b $80 ; ? dc.b $A0 ; ? XPRS_STEADY_STATE_KV_BRK_ELEMENT_LINE_CLUTCH_GAIN:dc.b 0 ; DATA XREF: sub_575C6+B30r ; Amount of clutch gain to be used in steady state linedetermination when in coast braking. ; Gain dcb.b 7,0 XPRS_STEADY_STATE_KV_SS_LINE_TEMP_COMP:dc.b $80 ; DATA XREF: sub_575C6+9DCr ; sub_575C6+A62r ... ; Temperature compensation factor to steady state line pressure. ; PSI/Ftlb dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $8F ; ? dc.b $8F ; ? dc.b $99 ; ? dc.b $A5 ; ? dc.b $A5 ; ? dc.b $FF XPRS_STEADY_STATE_KV_LINE_CLUTCH_OFFSET:dc.w $608 ; DATA XREF: sub_575C6:loc_57FD8r ; sub_575C6:loc_5805Er ... ; Offset used to calculate steady state line pressure. ; PSI dc.b 6 dc.b 8 dc.b 6 dc.b $85 ; ? dc.b 6 dc.b $85 ; ? dc.b 6 dc.b 8 dc.b 6 dc.b $85 ; ? dc.b 6 dc.b $85 ; ? dc.b 7 dc.b $80 ; ? XPRS_STEADY_STATE_KV_BRK_ELEMENT_LINE_CLUTCH_OFST:dc.w 0 ; DATA XREF: sub_575C6+ACCr ; sub_575C6+AE6r ... ; Offset used to calculate steady state line pressure. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_STEADY_STATE_KV_PRESSURE_OFFSET:dc.w $F00 ; DATA XREF: sub_575C6+C38r ; Pressure offset used in steady state pressure calculation. ; PSI dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 dc.b $14 dc.b 0 dc.b $F dc.b 0 dc.b $F dc.b 0 XPRS_STEADY_STATE_KV_LINE_TCC_OFFSET_PRESSURE:dc.w 0 ; DATA XREF: sub_575C6+C0Ar ; Clutch pressure offset used in steady state pressure calculation when TCC is on. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_STEADY_STATE_KV_PRESSURE_GAIN:dc.w $6AE1 ; DATA XREF: sub_575C6+C4Cr ; Pressure gain used in steady state pressure calculation. ; Gain dc.b $6A ; j dc.b $E1 ; ? dc.b $6A ; j dc.b $E1 ; ? dc.b $6A ; j dc.b $E1 ; ? dc.b $86 ; ? dc.b $66 ; f dc.b $6A ; j dc.b $E1 ; ? dc.b $6A ; j dc.b $E1 ; ? XPRS_STEADY_STATE_KE_SS_ADAPT_CLUTCH_SLIP_HIGH:dc.w 0 ; DATA XREF: sub_575C6+2B0r ; This determines if clutch slip is high enough to adapt up steady state pressure. ; RPM XPRS_STEADY_STATE_KE_SS_ADAPT_CLUTCH_SLIP_LOW:dc.w 0 ; DATA XREF: sub_575C6:loc_578CEr ; This determines if clutch slip is low enough to adapt down steady state pressure. ; RPM XPRS_STEADY_STATE_KE_SS_ADAPT_SLIP_HIGH:dc.w $7FFF ; DATA XREF: sub_575C6+37Er ; sub_575C6+426r ; This determines if TCC slip is high enough to adapt up steady state pressure. ; RPM XPRS_STEADY_STATE_KE_SS_ADAPT_SLIP_LOW:dc.w 0 ; DATA XREF: sub_575C6:loc_579A8r ; sub_575C6:loc_57A42r ; This determines if TCC slip is low enough to adapt down steady state pressure. ; RPM XPRS_STEADY_STATE_KV_CLUTCH_SLIP_ADAPT_UP_COUNTER:dc.w 0 ; DATA XREF: sub_575C6:loc_578A4r ; Amount to increment slip counter by when clutch slip conditions are met for steady state adapt up pressure. ; Counts dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_STEADY_STATE_KV_TCC_SLIP_ADAPT_UP:dc.w 0 ; DATA XREF: sub_575C6:loc_5797Er ; sub_575C6:loc_57A26r ; Amount to increment slip counter by when TCC slip conditions are met for steady state adapt up pressure. ; Counts dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_STEADY_STATE_KV_SS_ADAPT_DOWN_COUNTER:dc.w 0 ; DATA XREF: sub_575C6+324r ; sub_575C6+400r ... ; Amount to decrement slip counter by when slip conditions are met for steady state adapt down pressure. ; Counts dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_STEADY_STATE_KE_SS_BRAKING_TORQUE:dc.w 0 ; DATA XREF: sub_575C6+4EAr XPRS_STEADY_STATE_KA_SS_BRAKING_ADAPT_ENABLED:dc.b 0 ; DATA XREF: sub_575C6+206r dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_STEADY_STATE_KV_D1_BRAKING_ELEMENT_ON_RANGE:dc.b 0 ; DATA XREF: OS4:off_8A7A4o ; Indicates if braking element is applied for Drive_Low dueto the hydromechanical design of the transmission. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 XPRS_STEADY_STATE_KV_D2_BRAKING_ELEMENT_ON_RANGE:dc.b 0 ; DATA XREF: OS4:0008A7A8o ; Indicates if braking element is applied for Drive_Low dueto the hydromechanical design of the transmission. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 XPRS_STEADY_STATE_KV_D3_BRAKING_ELEMENT_ON_RANGE:dc.b 0 ; DATA XREF: OS4:0008A7ACo ; Indicates if braking element is applied for Drive_Low dueto the hydromechanical design of the transmission. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 XPRS_STEADY_STATE_KV_D4_BRAKING_ELEMENT_ON_RANGE:dc.b 0 ; DATA XREF: OS4:0008A7B0o ; Indicates if braking element is applied for Drive_Low dueto the hydromechanical design of the transmission. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 XPRS_STEADY_STATE_KE_SS_DELTA_THROTTLE_FILTER_COEF:dc.w 0 ; DATA XREF: sub_57562+4r ; Lag filter coefficient used to achieve the filtered steadystate throttle. ; Coeff XPRS_STEADY_STATE_KE_SS_DELTA_THROTTLE_GAIN:dc.l 0 ; DATA XREF: sub_57562+32r ; This calibration is multiplied with the steady state deltathrotttle to yield steady state delta throttle modifier. ; PSI/Percent XPRS_STEADY_STATE_KE_SS_DELTA_THROTTLE_MOD_LIMIT:dc.w 0 ; DATA XREF: sub_57562:loc_575ACr ; The steady state delta throttle modifier is limited to thisvalue. ; PSI XPRS_STEADY_STATE_KE_SS_DELTA_THROTTLE_THRESHOLD:dc.w 0 ; DATA XREF: sub_575C6+BC6r XPRS_STEADY_STATE_KE_SS_CLOSED_THROT_MIN_TPS:dc.w $7FFF ; DATA XREF: sub_575C6+93Ar ; ; XPRS_STEADY_STATE_KE_SS_CLOSED_THROT_MIN_MPH:dc.w $FFFF ; DATA XREF: sub_575C6+946r ; Do Closed Throttle calculation of steady state pressure if MPH is less than this. ; MPH XPRS_STEADY_STATE_KA_SS_CLOSED_THROT_LINE_PRES:dc.b 0 ; DATA XREF: sub_575C6+970o ; Steady state line pressure in Closed Throttle mode. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_1C200: dc.b 0 ; DATA XREF: Calibration:00009204o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XPRS_STEADY_STATE_KE_USE_STEADY_STATE_ADAPTS:dc.b 0 ; DATA XREF: sub_575C6+BAr ; Bypass the steady state adapt update if this is false. ; T/F dc.b $FF XSEM_ABUSE_TORQUE_KE_DRIVE_RAMP_OUT_TIME:dc.w 0 ; DATA XREF: sub_582B0+1AEr ; sub_582B0+1C0r ; Amount of time to ramp the torque reduction to stall torquereduction when range = Drive ; Seconds XSEM_ABUSE_TORQUE_KE_REVERSE_RAMP_OUT_TIME:dc.w 0 ; DATA XREF: sub_582B0+214r ; sub_582B0+22Ar ; Amount of time to ramp the torque reduction to stall torquereduction when range = Reverse ; Seconds XSEM_ABUSE_TORQUE_KE_SEM_ENGINE_SPD_ABUSE_LIMIT:dc.w $12C0 ; DATA XREF: sub_582B0+A8r ; Engine speed limit for detecting abuse conditions ; RPM XSEM_ABUSE_TORQUE_KE_SEM_INPUT_SPEED_LIMIT:dc.w 0 ; DATA XREF: sub_582B0+CCr ; sub_582B0+13Er ; Minimum input speed limit used to determine garage shiftinformation ; RPM XSEM_ABUSE_TORQUE_KE_SEM_THROTTLE_ABUSE_LIMIT:dc.w $666 ; DATA XREF: sub_582B0+B4r ; Percent throttle limit for detecting abuse conditions ; Percent XSEM_ABUSE_TORQUE_KE_SPEED_RAMP_OUT_TIME:dc.w 0 ; DATA XREF: sub_582B0+162r ; sub_582B0+176r ; Amount of time to ramp the torque reduction to stall torquereduction when input speed becomes less thanKE_SEM_Input_Speed_Limit ; Seconds XSEM_ABUSE_TORQUE_KE_VEHICLE_SPEED_THRESHOLD:dc.w $FF00 ; DATA XREF: sub_582B0+2Ar ; Vehicle speed threshold used to determine abuse mode ; MPH XSEM_ABUSE_TORQUE_KV_ABUSE_TORQUE_REDUCTION:dc.w 0 ; DATA XREF: sub_582B0:loc_583C8r ; Amount of abuse torque reduction as function of engine speed ; Percent dcb.b 4,0 dc.b $40 ; @ dc.b 0 dc.b $7E ; ~ dc.b $B8 ; ? dc.b $7E ; ~ dc.b $B8 ; ? dc.b $7E ; ~ dc.b $B8 ; ? dc.b $7E ; ~ dc.b $B8 ; ? dc.b $7E ; ~ dc.b $B8 ; ? dc.b $7E ; ~ dc.b $B8 ; ? dc.b $7E ; ~ dc.b $B8 ; ? dc.b $7E ; ~ dc.b $B8 ; ? dc.b $7E ; ~ dc.b $B8 ; ? dc.b $7E ; ~ dc.b $B8 ; ? dc.b $7E ; ~ dc.b $B8 ; ? dc.b $7E ; ~ dc.b $B8 ; ? dc.b $7E ; ~ dc.b $B8 ; ? dc.b $7E ; ~ dc.b $B8 ; ? XSEM_ABUSE_TORQUE_KV_ABUSE_RAMP_TIME:dc.w 0 ; DATA XREF: sub_5855C:loc_5858Er ; Duration of the abuse ramp for the Torque_Signal_Pressure for the initial occurance of the abuse mode. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XSEM_RATIO_KA_DNSHFT_SEM_RAMP_OUT_STRT_TIME:dc.b 0 ; DATA XREF: sub_585F4+246o ; sub_585F4+2E2o ; Ramp out begin time used to determine when maximum torquereduction should end and begin ramping from maximum to zero ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XSEM_RATIO_KA_DNSHIFT_SEM_RAMP_IN_END_RATIO:dc.b 0 ; DATA XREF: sub_585F4+15Ao ; sub_585F4+1ECo dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XSEM_RATIO_KA_DWN_SEM_STRT_RAMP_IN_RATIO:dc.b 0 ; DATA XREF: sub_585F4+188o ; sub_585F4+1AAo ... ; Ramp in start ratio limit used to determine when downshifttorque reduction ramping up should be begin ; Ratio dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_1C3BE: dc.b 0 ; DATA XREF: sub_58914+1B0o ; sub_58914+1F6o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XSEM_RATIO_KA_UPSHFT_SEM_RMP_OUT_STRT_RATIO:dc.b $2E ; . ; Ratio thresholds that decide when torque reduction shouldbegin ramping from maximum to zero ; Ratio dc.b $66 ; f dc.b $2C ; , dc.b $FA ; ? dc.b $2B ; + dc.b $8E ; ? dc.b $2A ; * dc.b $22 ; " dc.b $28 ; ( dc.b $B6 ; ? dc.b $27 ; ' dc.b $4A ; J dc.b $25 ; % dc.b $DE ; ? dc.b $24 ; $ dc.b $72 ; r dc.b $23 ; # dc.b 6 dc.b $21 ; ! dc.b $9A ; ? dc.b $23 ; # dc.b $33 ; 3 dc.b $23 ; # dc.b $33 ; 3 dc.b $23 ; # dc.b $33 ; 3 dc.b $23 ; # dc.b $33 ; 3 dc.b $23 ; # dc.b $33 ; 3 dc.b $23 ; # dc.b $33 ; 3 dc.b $23 ; # dc.b $33 ; 3 dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $5A ; Z dc.b $17 dc.b $E7 ; ? dc.b $17 dc.b $75 ; u dc.b $17 dc.b 2 dc.b $16 dc.b $8F ; ? dc.b $16 dc.b $1D dc.b $15 dc.b $AA ; ? dc.b $15 dc.b $37 ; 7 dc.b $14 dc.b $C5 ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? unk_1C424: dc.b 0 ; DATA XREF: sub_58914+1DAo dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XSEM_RATIO_KA_UPSHIFT_SEM_RMP_OUT_END_RATIO:dc.b $21 ; ! ; Ratio thresholds that decide when torque reduction shouldstop ramping from maximum to zero ; Ratio dc.b $9A ; ? dc.b $21 ; ! dc.b $9A ; ? dc.b $21 ; ! dc.b $9A ; ? dc.b $21 ; ! dc.b $9A ; ? dc.b $21 ; ! dc.b $9A ; ? dc.b $21 ; ! dc.b $9A ; ? dc.b $21 ; ! dc.b $9A ; ? dc.b $21 ; ! dc.b $9A ; ? dc.b $21 ; ! dc.b $9A ; ? dc.b $21 ; ! dc.b $9A ; ? dc.b $21 ; ! dc.b $9A ; ? dc.b $21 ; ! dc.b $9A ; ? dc.b $21 ; ! dc.b $9A ; ? dc.b $21 ; ! dc.b $9A ; ? dc.b $21 ; ! dc.b $9A ; ? dc.b $21 ; ! dc.b $9A ; ? dc.b $21 ; ! dc.b $9A ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? dc.b $14 dc.b $CD ; ? unk_1C48A: dc.b 0 ; DATA XREF: sub_58914+14Ao dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XSEM_RATIO_KA_UPSHIFT_SEM_RMP_IN_STRT_RATIO:dc.b $2E ; . ; Ratio thresholds that decide when torque reduction shouldbegin ramping from zero to maximum ; Ratio dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? unk_1C4F0: dc.b 0 ; DATA XREF: sub_58914+12Eo dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XSEM_RATIO_KA_UPSHIFT_SEM_RAMP_IN_END_RATIO:dc.b $2E ; . ; Ratio thresholds that decide when torque reduction shouldstop ramping from zero to maximum and stay at maximum ; Ratio dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $2E ; . dc.b $8F ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b $18 dc.b $CD ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XSEM_RATIO_KA_SEM_END_TIME_THRESHOLD:dc.b 0 ; DATA XREF: sub_585F4+272o ; sub_585F4+2BAo ; End time threshold table used to end ratio-based torque management for a downshift. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XSEM_RATIO_KV_BRK_TRQ_MGT_MIN_ENGINE_SPEED:dc.w $7FFF ; DATA XREF: sub_58B52+40r ; Minimum engine speed to enable brake torque management. ; RPM dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF XSEM_RATIO_KV_BRK_TRQ_MGT_UNDERLAP_RATIO_A:dc.w $7FFF ; DATA XREF: sub_58B52+7Er ; Ratio value to start requesting brake torque management for an underlap manual downshift. ; Ratio dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF XSEM_RATIO_KV_BRK_TRQ_MGT_RATIO_A:dc.w $7FFF ; DATA XREF: sub_58B52+88r ; Ratio value to start requesting brake torque management for a regular manual downshift. ; Ratio dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF XSEM_RATIO_KV_BRK_TRQ_MGT_RATIO_B:dc.w $7FFF ; DATA XREF: sub_58B52+9Cr ; sub_58B52+BEr ... ; Ratio value to finish requesting brake torque management for a regular manual downshift. ; Ratio dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF XSEM_RATIO_KV_BRK_TRQ_MGT_END_TIME:dc.w $FFFF ; DATA XREF: sub_58B52+CCr ; Amount of time to continue brake torque management after a ratio reaches KV_Brk_Trq_Mgt_Ratio_B for a manual downshift. ; Seconds dc.b $FF dc.b $FF dc.b $FF dc.b $FF XSEM_SHIFT_TORQUE_KE_SEM_PN_DISABLE_TPS:dc.w $CCD ; DATA XREF: sub_585F4+DCr ; sub_58914+AAr ; Defines the highest throttle pedal position allowed forsetting the percent of reduction torque equal to zero. ; Percent XSEM_SHIFT_TORQUE_KV_DNSHFT_SEM_MPH_SPEED_DISABLE:dc.w 0 ; DATA XREF: sub_585F4+4Er ; The vehicle speed limits to disable downshift torque management. ; MPH dc.b 0 dc.b 0 dc.b 0 dc.b 0 XSEM_SHIFT_TORQUE_KE_SEM_START_TIME_LIMIT:dc.b 0 ; ; dc.b $E0 ; ? XSEM_STALL_TORQUE_KE_SEM_STALL_ENGINE_SPEED_HIGH:dc.w $7FFF ; DATA XREF: sub_58D18+14r ; Engine speed limit above which stall could be selected ; RPM XSEM_STALL_TORQUE_KE_SEM_STALL_ENGINE_SPEED_LOW:dc.w $7FFF ; DATA XREF: sub_58D18+54r ; Engine speed below which stall will not be selected ; RPM XSEM_STALL_TORQUE_KE_SEM_STALL_THROTTLE_HIGH:dc.w $7FFF ; DATA XREF: sub_58D18+20r ; Throttle limit above which stall could be selected ; Percent XSEM_STALL_TORQUE_KE_SEM_STALL_THROTTLE_LOW:dc.w $7FFF ; DATA XREF: sub_58D18+60r ; Throttle below which stall will not be selected ; Percent XSHFT_3RD_GEAR_DEFAULT_KE_ENGINE_SPEED_DEFAULT_LIMIT:dc.w $2710 ; DATA XREF: sub_58DCE+34r ; When soft landing is in affect and desired gear is second gear and engine speed is greater than this, don't allow shifts. ; RPM XSHFT_ADAPT_KE_1_2_DETENT_ADAPT_UP_ENABLE:dc.b 0 ; DATA XREF: OS4:0008950Eo ; Adapt Enabling timer for 1-2 detent upshifts. ; Seconds dc.b $50 ; P XSHFT_ADAPT_KE_2_3_DETENT_ADAPT_UP_ENABLE:dc.b 0 ; DATA XREF: OS4:00089512o ; Adapt Enabling timer for 2-3 detent upshifts. ; Seconds dc.b $50 ; P XSHFT_ADAPT_KE_3_4_DETENT_ADAPT_UP_ENABLE:dc.b 0 ; DATA XREF: OS4:00089516o ; Adapt Enabling timer for 3-4 detent upshifts. ; Seconds dc.b 0 XSHFT_ADAPT_KE_1_2_DETENT_ADAPT_DOWN_ENABLE:dc.b 0 ; DATA XREF: OS4:off_89502o ; Used as an enabling contingency for performing a 1-2 detent upshift adapt. ; Seconds dc.b 0 XSHFT_ADAPT_KE_2_3_DETENT_ADAPT_DOWN_ENABLE:dc.b 0 ; DATA XREF: OS4:00089506o ; Used as an enabling contingency for performing a 2-3 detent upshift adapt. ; Seconds dc.b 0 XSHFT_ADAPT_KE_3_4_DETENT_ADAPT_DOWN_ENABLE:dc.l off_0+2 ; DATA XREF: OS4:off_8950Ao ; OS4:000894F6o ; Used as an enabling contingency for performing a 3-4 detent upshift adapt. ; Seconds XSHFT_ADAPT_KE_2_3_DETENT_ADAPT_ERROR:dc.l sub_20000 ; DATA XREF: OS4:000894FAo ; OS4:000894FEo ; Enable 2-3 detent upshift adatps when Delay_Time_Error is greater than or equal to this. ; Seconds XSHFT_ADAPT_KE_1_2_DETENT_ERROR_MIN:dc.b 0 ; DATA XREF: OS4:000894EAo ; Minimum value of adapt cells for a 1-2 detent upshift. ; Seconds dc.b 0 XSHFT_ADAPT_KE_2_3_DETENT_ERROR_MIN:dc.b 0 ; DATA XREF: OS4:000894EEo ; Minimum value of adapt cells for a 2-3 detent upshift. ; Seconds dc.b 0 XSHFT_ADAPT_KE_3_4_DETENT_ERROR_MIN:dc.l off_0+$10 ; DATA XREF: OS4:off_894F2o ; OS4:000894DEo ; Minimum value of adapt cells for a 3-4 detent upshift. ; Seconds XSHFT_ADAPT_KE_2_3_DETENT_ERROR_MAX:dc.b 0 ; DATA XREF: OS4:000894E2o ; Maximum value of adapt cells for a 2-3 detent upshift. ; Seconds dc.b $10 XSHFT_ADAPT_KE_3_4_DETENT_ERROR_MAX:dc.l off_0+$190 ; DATA XREF: OS4:off_894E6o ; OS4:000894C6o ; Maximum value of adapt cells for a 3-4 detent upshift. ; Seconds XSHFT_ADAPT_KE_2_3_DETENT_HIGH_TEMP_ENABLE:dc.b 1 ; DATA XREF: OS4:000894CAo ; Upper limitthat Transmission Temperature can be during a 2 3 shiftand still adapt ; DegreesC dc.b $90 ; ? XSHFT_ADAPT_KE_3_4_DETENT_HIGH_TEMP_ENABLE:dc.b 1 ; DATA XREF: OS4:000894CEo ; Upper limitthat Transmission Temperature can be during a 3 4 shiftand still adapt ; DegreesC dc.b $90 ; ? XSHFT_ADAPT_KE_1_2_DETENT_LOW_TEMP_ENABLE:dc.b 1 ; DATA XREF: OS4:000894BAo ; Lower limitthat Transmission Temperature can be during a 1 2 shiftand still adapt ; DegreesC dc.b $90 ; ? XSHFT_ADAPT_KE_2_3_DETENT_LOW_TEMP_ENABLE:dc.b 1 ; DATA XREF: OS4:000894BEo ; Lower limitthat Transmission Temperature can be during a 2 3 shiftand still adapt ; DegreesC dc.b $90 ; ? XSHFT_ADAPT_KE_3_4_DETENT_LOW_TEMP_ENABLE:dc.b 1 ; DATA XREF: OS4:off_894C2o ; Lower limitthat Transmission Temperature can be during a 3 4 shiftand still adapt ; DegreesC dc.b $90 ; ? XSHFT_ADAPT_KE_DETENT_LOW_CELL_WEIGHT_FACTOR:dc.b 0 ; DATA XREF: OS4:000894D2o ; To scale the amount the lower cell is adapted by ; NONE XSHFT_ADAPT_KE_DETENT_CELL_WEIGHT_FACTOR:dc.b 0 ; DATA XREF: OS4:off_894D6o ; To scale the amount the target cell is adapted by ; NONE XSHFT_ADAPT_KE_DETENT_HIG_CELL_WEIGHT_FACTOR:dc.b 0 ; DATA XREF: OS4:off_894DAo ; To scale the amount the upper cell is adapted by ; NONE dc.b $FF XSHFT_ADAPT_KV_DETENT_ADAPT_ERROR:dc.w 0 ; DATA XREF: sub_59064:loc_59138r ; ; dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XSHFT_ADAPT_KV_1_2_DETENT_UPSHIFT_MODIFIER:dc.b 0 ; DATA XREF: OS4:off_89526o ; Delay line time modifier for 1-2 detent upshifts. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XSHFT_ADAPT_KV_1_2_DETENT_UPSHIFT_DELAY:dc.b 0 ; DATA XREF: OS4:off_8951Ao ; Predicted delay time for a 1-2 detent upshift. ; Seconds dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $50 ; P dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $2B ; + dc.b 0 dc.b $40 ; @ XSHFT_ADAPT_KV_2_3_DETENT_UPSHIFT_DELAY:dc.b 0 ; DATA XREF: OS4:0008951Eo ; Predicted delay time for a 2-3 detent upshift. ; Seconds dc.b $D8 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $90 ; ? dc.b 0 dc.b $78 ; x dc.b 0 dc.b $78 ; x dc.b 0 dc.b $78 ; x dc.b 0 dc.b $88 ; ? dc.b 0 dc.b $A0 ; ? XSHFT_ADAPT_KV_3_4_DETENT_UPSHIFT_DELAY:dc.b 0 ; DATA XREF: OS4:00089522o ; Predicted delay time for a 3-4 detent upshift. ; Seconds dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 word_1C696: dc.w $30 ; DATA XREF: sub_58F64+62r XSHFT_ADAPT_KV_WHLSLP_INH_DETENT_ADAPT_LOW:dc.b 0 ; Disable detent adapts if wheel slip accel is less than this. ; MPH/Sec dc.b 0 dc.b 0 dc.b 0 word_1C69C: dc.w 0 ; DATA XREF: sub_58F64+6Cr XSHFT_ADAPT_KV_WHLSLP_INH_DETENT_ADAPT_HIGH:dc.b 0 ; Disable detent adapts if wheel slip accel is greater than this. ; MPH/Sec dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XSHFT_MODIFICATIONS_KE_DOWNSHIFT_TCC_DELAY_TIME:dc.w 0 ; DATA XREF: sub_594F4+Cr ; sub_594F4+36r ; Delay a downshift until TCC has been off for this amount of time. ; Seconds XSHFT_MODIFICATIONS_KE_DOWNSHIFT_DELAY_SLIP_THRESH:dc.w 0 ; DATA XREF: sub_594F4+18r ; sub_594F4+42r ; Delay a downshift until TCC slip is less than this RPM threshold. ; RPM_s XSHFT_MODIFICATIONS_KE_DOWNSHIFT_42_LOW_TIME:dc.w $40 ; DATA XREF: sub_59368+48r ; Delay a 3-2 downshift when the gear change time is greater than this low window time and less than the high window time. ; Seconds XSHFT_MODIFICATIONS_KE_DOWNSHIFT_42_HIGH_TIME:dc.w $A0 ; DATA XREF: sub_59368+50r ; Delay a 3-2 downshift when the gear change time is less thanthis high window time and greater than the low window time. ; Seconds XSHFT_MODIFICATIONS_KE_DOWNSHIFT_SEQ_DELAY_MAX_TIME:dc.w $28 ; DATA XREF: sub_59368+CEr ; sub_59368+10Er ... ; The maximum downshift delay used with the 4-3-2 downshiftsequencing delay ; Seconds XSHFT_MODIFICATIONS_KE_DOWNSHIFT_SEQ_DELAY_MIN_TIME:dc.w $28 ; DATA XREF: sub_59368+106r ; sub_59368:loc_5949Ar ; The minimum downshift delay used with the 4-3-2 downshiftsequencing delay ; Seconds XSHFT_MODIFICATIONS_KE_DOWNSHIFT_DELAY_HI_MPH_THRESH:dc.w $5000 ; DATA XREF: sub_59368:loc_59440r ; Vehicle speed low threshold used to determine the downshiftdelay time used with the 4-3-2 downshift sequencing delay ; MPH XSHFT_MODIFICATIONS_KE_DOWNSHIFT_DELAY_LO_MPH_THRESH:dc.w $1E00 ; DATA XREF: sub_59368:loc_59428r ; Vehicle speed high threshold used to determine the downshiftdelay time used with the 4-3-2 downshift sequencing delay ; MPH XSHFT_MODIFICATIONS_KE_2_1_INHIBIT_MIN_MPH:dc.w $2800 ; DATA XREF: sub_5955E+Ar XSHFT_MODIFICATIONS_KE_2_1_INHIBIT_POS_DELTA_THR:dc.w $7EB8 ; DATA XREF: sub_5955E+50r ; Used in comparison with Positive_Delta_Throttle toinhibit a 2-1 downshift. ; Percent XSHFT_MODIFICATIONS_KE_2_1_INHIBIT_THR_THRESHOLD:dc.w $7EB8 ; DATA XREF: sub_5955E+16r XSHFT_MODIFICATIONS_KE_2_1_INHIBIT_ACC_THRESH_LO:dc.w $7D00 ; DATA XREF: sub_5955E:loc_5958Er ; If the vehicle acceleration falls below this value,the 2-1 downshift inhibit is disabled. ; MPH_per_Second_S XSHFT_MODIFICATIONS_KE_2_1_INHIBIT_ACC_THRESH_HI:dc.w $7FFF ; DATA XREF: sub_5955E+22r ; If the filtered vehicle acceleration is above this value,the 2-1 downshift inhibit is enabled. ; MPH_per_Second_S XSHFT_MODIFICATIONS_KE_1_3_UPSHIFT_SEQUENCING_TIME:dc.w 0 ; DATA XREF: sub_59332+Ar ; Total time required to be in second gear before allowing a shift to third. ; Seconds XSHFT_MODIFICATIONS_KE_1_4_UPSHIFT_SEQUENCING_TIME:dc.w 0 ; DATA XREF: sub_59332+1Er ; Total time required to be in second and third gear before allowing a shift to fourth. ; Seconds XSHFT_MODIFICATIONS_KE_2_4_UPSHIFT_SEQUENCING_TIME:dc.w 0 ; DATA XREF: sub_59332+2Ar ; Total time required to be in third gear before allowing a shift to fourth. ; Seconds XSHFT_MODIFICATIONS_KE_INHIBIT_DOWN_TO_SECOND_MPH:dc.w $1E00 ; DATA XREF: sub_59626+1Cr ; Used to determine if the downshift to second should beinhibited if the diagnostic malf has occurred. ; MPH XSHFT_MODIFICATIONS_KV_MANUAL_DWNSHFT_42_DELAY_TIME:dc.w 0 ; DATA XREF: sub_59368:loc_5941Ar ; Total time required to be in third gear before allowing a shift to fourth. ; Seconds dcb.b 8,0 XSHFT_MODIFICATIONS_KE_INHIBIT_2_1_SINCE_1ST_GEAR:dc.w 0 ; DATA XREF: sub_595C0+16r XSHFT_MODIFICATIONS_KE_INHIBIT_2_1_SINCE_1ST_MPH_THR:dc.w 0 ; DATA XREF: sub_595C0+Er ; Inhibit a 2-1 downshift after a 1-2 upshift only if vehicle speed is greater than this value. ; MPH XTEMP_STATUS_KE_COLD_TRANS_LOW_THRESHOLD:dc.w $1B ; DATA XREF: sub_5546E+40r ; sub_5A270+4r ; When Transmission temperature falls below this value, the transmission cold indicator is set. ; Deg C XTEMP_STATUS_KV_HOT_MODE_STATOR_ENTRANCE:dc.w $FFA0 ; DATA XREF: sub_59E38+42r dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $FF dc.b $A0 ; ? dc.b $70 ; p dc.b $80 ; ? dc.b $70 ; p dc.b $80 ; ? dc.b $5D ; ] dc.b $C0 ; ? dc.b $4B ; K dc.b 0 dc.b $38 ; 8 dc.b $40 ; @ dc.b $25 ; % dc.b $80 ; ? dc.b $25 ; % dc.b $80 ; ? dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTEMP_STATUS_KE_HOT_MODE_STATOR_SPD_RATIO_MAX:dc.b $9A ; DATA XREF: sub_59E38+B4r ; TCC Speed ratio value at which Hot_Mode_Stator_Entrance_Timer gets reset to zero, in hot mode stator temperature test ; Factor XTEMP_STATUS_KE_HOT_MODE_STATOR_SPD_RATIO_MIN:dc.b $7A ; DATA XREF: sub_59E38+10r ; Minimum TCC speed ratio value to enable hot mode stator temperature test. ; Factor XTEMP_STATUS_KE_HOT_MODE_STATOR_DELAY_TIMER:dc.w $9600 ; DATA XREF: sub_59E38+8Ar ; Maximum amount of time before Hot_Mode_Stator_Delay_Timer and Hot_Mode_Stator_Entrance_Timer are reset to zero. ; Seconds XTEMP_STATUS_KE_HOT_MODE_STATOR_EXIT_TEMP:dc.w $58 ; DATA XREF: sub_59E38+10Er ; Transmission sump temperature threshold value to exit hot mode stator temperature test (static). ; Deg C XTEMP_STATUS_KE_HOT_MODE_STATOR_TEMP_MIN:dc.w $58 ; DATA XREF: sub_59E38+1Cr ; Minimum transmission sump temperature value to enable hot mode stator temperature test. ; Deg C XTEMP_STATUS_KE_HOT_MODE_STATOR_VEHSPD_MIN:dc.w $1900 ; DATA XREF: sub_59E38+2Er ; Minimum vehicle speed value to enable hot mode stator temperature test. ; MPH XTEMP_STATUS_KE_HOT_STATOR_LOW_THRESHOLD:dc.b 1 ; Temperature above which stator hot mode is exited. ; Deg C dc.b $90 ; ? XTEMP_STATUS_KE_HOT_STATOR_HIGH_THRESHOLD:dc.b 1 ; Temperature above which stator hot mode is activated. ; Deg C dc.b $90 ; ? XTEMP_STATUS_KE_HOT_STATOR_MIN_TIME_LIMIT:dc.b 0 ; Amount of time stator hot mode is active before returning to normal operation. ; Seconds dc.b 0 XTEMP_STATUS_KV_HOT_MODE_BASE_DELTA_TABLE:dc.b $FF ; DATA XREF: sub_59F72:loc_59FCCr ; Determine base transmission fluid temperature rate of change during normal mode in order to enter transmission hot mode ; DegC/Min dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $C8 ; ? dc.b $8C ; ? dc.b $50 ; P dc.b $14 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTEMP_STATUS_KE_HOT_MODE_DESIRED_PEAK_TEMP:dc.b $FE ; DATA XREF: sub_59F72+120r ; Desired hot mod peak transmission fluid sump temperature ; Deg C XTEMP_STATUS_KE_KALMAN_RATE_OF_CHANGE_GAIN:dc.w $114 ; DATA XREF: sub_5A12E+E0r ; Kalman filter rate of change of transmission sump temperature. ; Inverse_Minute XTEMP_STATUS_KE_HOT_MODE_EXIT_TIMER:dc.w $BB80 ; DATA XREF: sub_59E38+D4r ; sub_59F72+A2r XTEMP_STATUS_KV_HOT_MODE_EXIT_TEMP_TABLE:dc.w 7 ; DATA XREF: sub_59E38:loc_59F34r ; sub_59F72:loc_5A03Cr ; Determine transmission fluid sump temperature threshold to exit hot mode return to normal mode. ; Deg C dc.l loc_70006+1 dc.l loc_70006+1 dc.l loc_70006+1 dc.l loc_70006+1 dc.b 0 dc.b $95 ; ? dc.b 0 dc.b $95 ; ? dc.b 0 dc.b $95 ; ? dc.b 0 dc.b $95 ; ? dc.b 0 dc.b $95 ; ? dc.b 0 dc.b $95 ; ? XTEMP_STATUS_KE_HOT_MODE_SUMP_TEMP_MIN:dc.b $E7 ; DATA XREF: sub_59F72+16r ; Minimum transmission sump temperature value to enable hot mode sump temperature test. ; Deg C dc.b $FF XTEMP_STATUS_KV_HOT_MODE_ADAPT_MOD_TABLE:dc.b 0 ; DATA XREF: sub_59F72+136r ; Hot mode adaptive outputs modifier table. ; DegC_per_Min_vs_DegC_Delta_Table dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF XTEMP_STATUS_KE_KALMAN_TEMPERATURE_GAIN:dc.w $B73 ; DATA XREF: sub_5A12E+6Cr ; Kalman filter gain of transmission sump temperature. ; Gain XTEMP_STATUS_KE_TCC_TEMP_DIAG_LOW_THRESH:dc.w $A0 ; DATA XREF: sub_59E04+20r ; When trans. temperature falls below this value, the TCC Off diagnostic override is cleared. ; Deg C XTEMP_STATUS_KE_TCC_TEMP_DIAG_HIGH_THRESH:dc.w $AD ; DATA XREF: sub_59E04:loc_59E2Er ; sub_5A2F2+4r ; When trans. temperature rises below this value, the TCC Off diagnostic override is set. ; Deg C XTEMP_STATUS_KE_COLD_TRANS_HIGH_THRESHOLD:dc.w $17 ; DATA XREF: sub_5A270:loc_5A284r ; When Transmission temperature rises above this value, the transmission cold indicator is cleared. ; Deg C XTCC_CONTROL_KE_TCC_BRAKE_VEHICLE_SPEED_HIGH:dc.w $2800 ; DATA XREF: sub_5A6A0+B8r XTCC_CONTROL_KE_TCC_BRAKE_THROTTLE_HIGH:dc.w $CCD ; DATA XREF: sub_5A6A0+ACr XTCC_CONTROL_KE_HOT_MODE_FULL_LOCK_ENABLE:dc.b 1 ; DATA XREF: sub_5B874+7Er ; sub_5B874+11Ar ; Flag that indicates whether to allow ECCC full lockup inHot Mode. ; BOOLEAN dc.b $FF XTCC_CONTROL_KE_TCC_ENABLE_ON_DELAY_TIME:dc.w 0 ; DATA XREF: sub_5B542+90r ; sub_5B542:loc_5B5F8r ... ; TCC Enable is turned on after this amount of time has elapsed from the start of an apply. ; Seconds XTCC_CONTROL_KE_TCC_APPLY_RAMP_DELAY_TIME:dc.w 0 ; DATA XREF: sub_5B542+BCr ; sub_5B744+2Ar ... ; TCC apply ramping begins after this amount of time has elapsed from when TCC Enable was turned on. ; Seconds XTCC_CONTROL_KE_TCC_ENABLE_OFF_DELAY_TIME:dc.w 0 ; DATA XREF: sub_5C340+13Ar ; sub_5C340+15Ar ; Used by release logic to help enable Failsafe Delay Phase. ; Seconds XTCC_CONTROL_KE_TCC_APPLY_SLIP_DIFFERENCE:dc.w 0 ; DATA XREF: sub_5A582+5Er ; sub_5B744+A4r ; TCC apply is completed when KE_TCC_Apply_Slip_Difference + TCC_On_Reference_Slip >= Slip. ; RPM XTCC_CONTROL_KE_TCC_LOW_FAILSAFE_THRESHOLD:dc.w $400 ; DATA XREF: sub_5B4EE:loc_5B51Ar XTCC_CONTROL_KE_TCC_HIGH_FAILSAFE_THRESHOLD:dc.w $600 ; DATA XREF: sub_5B4EE+1Ar XTCC_CONTROL_KE_TCC_FAILSAFE_DELAY_TIME:dc.w 0 ; DATA XREF: sub_5C340+16Ar ; Maximum time that the Release Failsafe Phase is in affect. ; Seconds XTCC_CONTROL_KE_TCC_MAX_RELEASE_DELAY:dc.w $1E0 ; DATA XREF: sub_5C340+DCr ; TCC release is completed when release time exceeds this amount of time. ; Seconds XTCC_CONTROL_KE_TCC_MAX_RAMP_OFF_TIME:dc.w $140 ; DATA XREF: sub_5C340+10Ar ; TCC release is completed when release time exceeds this amount of time. ; Seconds XTCC_CONTROL_KE_TCC_RELEASE_SLIP_THRESHOLD:dc.w $C8 ; DATA XREF: sub_5C340+BCr ; TCC release complete when Slip > KE_TCC_Release_Slip_Threshold ; RPM XTCC_CONTROL_KE_AC_LOCKED_MODE_ENABLE:dc.b 1 ; Enable AC Locked Mode Cal. ; BOOLEAN dc.b $FF XTCC_CONTROL_KE_LOCK_HIGH_VEHICLE_SPEED:dc.w 0 ; DATA XREF: sub_5B874+FEr ; Reenable Full Lockup possible when Vehicle Speed > this cal. ; MPH XTCC_CONTROL_KE_LOCK_LOW_VEHICLE_SPEED:dc.w 0 ; DATA XREF: sub_5B874+62r ; Enable Full Lockup if Vehicle Speed > this cal. ; MPH XTCC_CONTROL_KE_LOCK_REENABLE_TIME:dc.w 4 ; DATA XREF: sub_5B874+176r ; Time-Out for TCC_Lock_Reenable_Timer. ; Seconds XTCC_CONTROL_KE_LOCKED_OFF_SLIP_OFFSET:dc.w 0 ; DATA XREF: sub_5B874+1Cr ; Offset KV_TCC_On_Reference_Slip in TCC Full Lockup Select Logic. ; RPM_s XTCC_CONTROL_KE_LOCKED_ON_SLIP_OFFSET:dc.w 0 ; DATA XREF: sub_5B874+3Ar ; Offset KV_TCC_On_Reference_Slip in TCC Full Lockup Select Logic. ; RPM_s XTCC_CONTROL_KE_LOCKED_OFF_TIME:dc.w 0 ; DATA XREF: sub_5B874+BAr ; Time-Out for Locked_Off_Timer. ; Seconds XTCC_CONTROL_KE_LOCKED_ON_TIME:dc.w 0 ; DATA XREF: sub_5B874+144r ; Time-Out for Locked_On_Timer. ; Seconds XTCC_CONTROL_KE_SHIFT_STABILIZATION_ENABLE:dc.l unk_10000 ; DATA XREF: sub_4D97C+40r ; sub_4DD5C+88Ar ... ; Boolean calibration to show if the shift stabilization is enabled or disabled. ; BOOLEAN XTCC_CONTROL_KE_LOCK_ENGINE_TORQUE_HIGH:dc.l off_0+$10 ; DATA XREF: sub_5B874+10Ar ; sub_5BDC8+BEr ; One contingencies that must be met before entering ECCC full lockup is that Engine Torque must be greater than this cal. ; FtLb XTCC_CONTROL_KE_TCC_ON_MIN_REF_SLIP:dc.w 0 ; DATA XREF: sub_5BDC8+CAr XTCC_CONTROL_KE_TCC_UPSHIFT_SLIP_MIN:dc.w 0 ; DATA XREF: sub_5BA2E+84r ; sub_5BA2E+348r XTCC_CONTROL_KV_TCC_RAMP_HOLD_DELAY:dcb.b 4,0 ; When this time is reached, the Ramp freeze is cleared which allows the ramp to be adjusted(if not frozen due to an upshift). ; Sec word_1C7B0: dc.w 0 ; DATA XREF: sub_5BA2E+C6r XTCC_CONTROL_KV_UPSHIFT_TCC_RAMP_DELAY:dc.l off_0+$A0 ; Amount of time to freeze the ramp after an upshift has completed. ; Sec dc.b 1 dc.b $E0 ; ? XTCC_CONTROL_KE_TCC_APPLY_CROWD_DELAY_TIME:dc.w 0 ; DATA XREF: sub_5B542+140r XTCC_CONTROL_KE_TCC_LOW_BARO_DELAY_ENABLE:dc.b 0 ; DATA XREF: sub_5AB84+464r ; Apply_Delay_Timer is set to a cal if Barometric Pressure is less than this. ; KPA XTCC_CONTROL_KE_TCC_HIGH_BARO_DELAY_DISABLE:dc.b 0 ; DATA XREF: sub_5AB84:loc_5B006r ; Apply_Delay_Timer is set to Reapply_Delay_Timer if Barometric Pressure is greater than this. ; KPA XTCC_CONTROL_KE_ALT_APPLY_DELAY_TIME:dc.w 0 ; DATA XREF: sub_5A582+1Er ; sub_5AB84+46Cr ; Extend apply delay by this at altitude. ; Seconds XTCC_CONTROL_KE_TCC_COAST_WHILE_MANUAL_DNSHFT:dc.b 0 ; DATA XREF: sub_5A6A0+3C4r ; If true, manual downshifts will continue to stay in coast mode if in coast mode at start of shift. ; T/F XTCC_CONTROL_KE_TCC_COAST_WHILE_BRAKE_ENGAGED:dc.b 0 ; DATA XREF: sub_5A6A0+124r XTCC_CONTROL_KA_COAST_MODE_RANGE_GEAR_ENABLE:dc.b 0 ; TRUE enables coast mode for this gear and range combination. ; T/F dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTCC_CONTROL_KE_TCC_LO_DRIVE2_OFF:dc.b 0 ; DATA XREF: sub_5A6A0:loc_5AACAr ; Enables Drive 2 Range Check. ; Boolean XTCC_CONTROL_KE_TCC_DRIVE3_OFF:dc.b 0 ; DATA XREF: sub_5A6A0+436r ; Enables Drive 3 Range Check. ; Boolean XTCC_CONTROL_KE_TCC_DRIVE4_OFF:dc.b 0 ; DATA XREF: sub_5A6A0+44Ar ; Enables Drive 4 Range Check. ; Boolean XTCC_CONTROL_KE_TCC_UPSHIFT_OFF:dc.b 0 ; DATA XREF: sub_5A6A0+310r ; sub_5AB84:loc_5ACE0r XTCC_CONTROL_KE_SCHEDULED_RELEASE_DELAY:dc.w 0 ; DATA XREF: sub_5AB84:loc_5ADFCr ; sub_5AB84:loc_5AE50r ... ; Re-apply delay for scheduled release. ; Seconds XTCC_CONTROL_KE_SCH_REL_BUSY_DETECT_TIME:dc.w 0 ; DATA XREF: sub_5AB84+312r ; Re-apply delay for scheduled release. ; Seconds XTCC_CONTROL_KE_SCH_REL_BUSY_DELAY_TIME:dc.w 0 ; DATA XREF: sub_5AB84+2D2r ; sub_5AB84+2E8r ; Business added re-apply delay for scheduled release. ; Seconds XTCC_CONTROL_KE_INC_BUSYNESS_DELAY:dc.w 0 ; DATA XREF: sub_5AB84+2B4r ; Amount of time a TCC minimum throttle release re-applyshould be incremented due to busyness. ; Seconds XTCC_CONTROL_KE_DEC_BUSYNESS_DELAY:dc.w 0 ; DATA XREF: sub_5AB84+424r ; Amount of time a TCC minimum throttle release re-applyshould be decremented due to busyness. ; Seconds XTCC_CONTROL_KE_APPLY_COUNTER_STEP:dc.b 0 ; DATA XREF: sub_5AB84+418r ; Amount of steps the apply counter must increment in orderfor the lock delay to be decremented by cal. value. ; SHORTCARD dc.b $FF XTCC_CONTROL_KV_TCC_UPSHIFT_OFF_TIME:dc.w 0 ; DATA XREF: sub_5A6A0+352r ; sub_5AB84+19Er ; Specifies the amount of time that TCC will be turned off for when an upshift is desired. ; Seconds dcb.b 2,0 dc.b 2 dc.b $80 ; ? dc.b 2 dc.b $80 ; ? XTCC_CONTROL_KV_TCC_DOWNSHIFT_OFF_TIME:dc.w 0 ; DATA XREF: sub_5A6A0+3D2r ; Specifies the amount of time that TCC will be turned off for when a downshift is desired. ; Seconds dcb.b 2,0 dc.b 2 dc.b $80 ; ? word_1C7EA: dc.w $280 ; DATA XREF: sub_5B14C+30r XTCC_CONTROL_KV_TCC_AC_ON_HIGH_LIMIT:dcb.b 4,0 ; Upper speed limit at which TCC is enabled when AC is on. ; MPH word_1C7F0: dc.w 0 ; DATA XREF: sub_5AB84+144r XTCC_CONTROL_KV_TCC_AC_ON_LOW_LIMIT:dcb.b 6,0 ; Lower speed limit at which TCC is disabled when AC is on. ; MPH XTCC_CONTROL_KE_MIN_THROTTLE_DELAY_TIME:dc.w 0 ; DATA XREF: sub_5AB84+25Cr ; sub_5AB84+2A4r ... ; Base Re-apply delay time after a minimum throttle release. ; Seconds XTCC_CONTROL_KE_BUSYNESS_DETECTION_TIME:dc.l 0 ; DATA XREF: sub_5AB84+306r ; Amount of time after a minimum throttle release to detect throttle busyness ; Seconds XTCC_CONTROL_KE_COAST_STOP_TIME:dc.w $FFFF ; DATA XREF: sub_5A582+DCr ; Maximum time in Coast Mode if Slip > KE_Coast_Slip_High. ; Seconds XTCC_CONTROL_KE_COAST_SLIP_HIGH:dc.w $7FFF ; DATA XREF: sub_5A582+CCr ; Maximum time in Coast Mode if Slip > KE_Coast_Slip_High. ; RPM_s XTCC_CONTROL_KE_TCC_COAST_THROTTLE_HIGH:dc.w 0 ; DATA XREF: sub_5A582+B4r ; Exit Coast Mode if Throttle > KE_Coast_Slip_High. ; Percent XTCC_CONTROL_KE_TCC_COAST_THROTTLE_LOW:dc.w 0 ; DATA XREF: sub_5A582+40r ; Enter Coast Mode if Throttle < KE_Coast_Slip_Low and no Minimum Throttle. ; Percent XTCC_CONTROL_KE_TCC_ALT_APPLY_OFFSET:dc.w 0 ; DATA XREF: sub_5B062+9Ar ; TCC Apply point offset during third gear and baro pressure below a threshold. ; MPH_s XTCC_CONTROL_KE_TCC_ALT_RELEASE_OFFSET:dc.w 0 ; DATA XREF: sub_5AB84+78r ; TCC Release point offset during third gear and baro pressure below a threshold. ; MPH_s XTCC_CONTROL_KE_TCC_BARO_APPLY_LOW:dc.b 0 ; DATA XREF: sub_5B062+8r ; Lower baro pressure threshold below which TCC will not apply. ; KPa XTCC_CONTROL_KE_TCC_BARO_APPLY_HIGH:dc.b 0 ; DATA XREF: sub_5B062:loc_5B080r ; Upper baro pressure threshold above which TCC will apply. ; KPa XTCC_CONTROL_KE_MIN_THROTTLE_SPEED_LOW:dc.w $FFFF ; DATA XREF: sub_5A6A0+186r ; When vehicle speed is less than this, use min throttle threshold 1. ; MPH XTCC_CONTROL_KE_MIN_THROTTLE_SPEED_HIGH:dc.w $FFFF ; DATA XREF: sub_5A6A0:loc_5A836r ; When vehicle speed is greater than this, use min throttle threshold 2. ; MPH XTCC_CONTROL_KE_MIN_THROTTLE_1_LOW_THRESHOLD:dc.w 0 ; DATA XREF: sub_5A6A0+1D0r ; Enter minimum throttle mode when throttle is below this. ; Percent XTCC_CONTROL_KE_MIN_THROTTLE_1_HIGH_THRESHOLD:dc.w 0 ; DATA XREF: sub_5A6A0+1B8r ; Exit minimum throttle mode when throttle is above this. ; Percent XTCC_CONTROL_KE_MIN_THROTTLE_2_LOW_THRESHOLD:dc.w 0 ; DATA XREF: sub_5A6A0+1F2r ; Enter minimum throttle mode when throttle is below this. ; Percent XTCC_CONTROL_KE_MIN_THROTTLE_2_HIGH_THRESHOLD:dc.w 0 ; DATA XREF: sub_5A6A0+1E4r ; Exit minimum throttle mode when throttle is above this. ; Percent XTCC_CONTROL_KE_TCC_BRAKE_THROTTLE_LOW:dc.w $666 ; DATA XREF: sub_5A6A0+D0r XTCC_CONTROL_KE_TCC_BRAKE_VEHICLE_SPEED_LOW:dc.w $2300 ; DATA XREF: sub_5A6A0+DCr XTCC_CONTROL_KE_NEGDELTHR_OFF_TIME_FROM_ECCC:dc.w 0 ; DATA XREF: sub_5A336+3Cr ; Amount of time off mode is selected after negative delta throttle and previously TCC is On or applying. ; Sec XTCC_CONTROL_KE_NEGDELTHR_OFF_TIME_FROM_OFF:dc.w 0 ; DATA XREF: sub_5A336+56r ; Amount of time off mode is selected after negative delta throttle and previously TCC is Off or releasing. ; Sec XTCC_CONTROL_KE_POS_DELTA_THROT_SPEED:dc.w $3700 ; DATA XREF: sub_5A336+B8r ; sub_5A336+118r XTCC_CONTROL_KE_POSDELTHR_HIMPH_OFF_TIME_ECCC:dc.w 0 ; DATA XREF: sub_5A336+CCr XTCC_CONTROL_KE_POSDELTHR_HIMPH_OFF_TIME_OFF:dc.w 0 ; DATA XREF: sub_5A336+12Cr XTCC_CONTROL_KE_POSDELTHR_LOMPH_OFF_TIME_ECCC:dc.w 0 ; DATA XREF: sub_5A336+E2r XTCC_CONTROL_KE_POSDELTHR_LOMPH_OFF_TIME_OFF:dc.w 0 ; DATA XREF: sub_5A336+14Cr XTCC_CONTROL_KE_POSDELTHR_RELEASE_TIME:dc.w 0 ; DATA XREF: sub_5A336:loc_5A420r ; sub_5A336+17Er ; Amount of release time after positive delta throttle condition has occurred and previously TCC is On or Releasing. ; Sec XTCC_CONTROL_KE_NEG_DELTA_OFF_THROTTLE_THRESH:dc.w $7FFF ; DATA XREF: sub_5A336+4Cr XTCC_CONTROL_KE_NEG_DELTA_ON_THROTTLE_THRESH:dc.w $7FFF ; DATA XREF: sub_5A336+2Cr XTCC_CONTROL_KE_POS_DEL_THR_OFF_THRESH_HIMPH:dc.w $7FFF ; DATA XREF: sub_5A336+124r XTCC_CONTROL_KE_POS_DEL_THR_OFF_THRESH_LOMPH:dc.w $7FFF ; DATA XREF: sub_5A336+144r XTCC_CONTROL_KE_POS_DEL_THR_ON_THRESH_HIMPH:dc.w $7FFF ; DATA XREF: sub_5A336+C4r XTCC_CONTROL_KE_POS_DEL_THR_ON_THRESH_LOMPH:dc.w $7FFF ; DATA XREF: sub_5A336+DAr XTCC_CONTROL_KV_TCC_REFERENCE_SLIP_2:dc.b 0 ; DATA XREF: OS4:off_8A6E0o ; OS4:0008A6E4o ; TCC on mode reference slip for second gear. ; RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTCC_CONTROL_KV_TCC_REFERENCE_SLIP_3:dc.b 0 ; DATA XREF: OS4:0008A6E8o ; TCC on mode reference slip for third gear. ; RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTCC_CONTROL_KV_TCC_REFERENCE_SLIP_4:dc.b 0 ; DATA XREF: OS4:0008A6ECo ; TCC on mode reference slip for fourth gear. ; RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTCC_CONTROL_KE_COAST_MODE_ENABLE:dc.b 0 ; DATA XREF: sub_5A582+34r ; sub_5A6A0+232r ; Enables the coast mode conditions. ; Boolean dc.b $FF XTCC_CONTROL_KE_COAST_VEH_SPD_HIGH:dc.w 0 ; DATA XREF: sub_5A6A0+208r ; Output Speed must exceed this value to meet coast speed conditions. ; MPH XTCC_CONTROL_KE_COAST_VEH_SPD_LOW:dc.w 0 ; DATA XREF: sub_5A6A0:loc_5A8B8r ; Minimum Output Speed to meet coast speed conditions. ; MPH XTCC_EXECUTION_KE_TCC_TRQ_POS_TPS_RELEASE_RATE:dc.w $2800 ; DATA XREF: sub_5C340+6Ar ; Rate off TCC release when Pos. Delta Throttle. ; PSI/Sec XTCC_EXECUTION_KE_TCC_MINIMUM_PRESSURE:dc.w 0 ; DATA XREF: sub_5B4EE+34r ; sub_5B542+D6r ... ; TCC pressure set to this in off mode. ; PSI XTCC_EXECUTION_KE_TCC_APPLY_PRESSURE_GAIN:dc.w $200 ; DATA XREF: sub_5B542+32r ; Used to find Torque based Apply Operating Point. ; PSI/FtLB XTCC_EXECUTION_KV_TCC_APPLY_PRESSURE_OFFSET:dc.w 0 ; DATA XREF: sub_5B542:loc_5B5B4r ; Used to find Torque based Apply Operating Point. ; PSI_s dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTCC_EXECUTION_KE_TCC_FULL_LOCKUP_OFFSET_TRQ:dc.w $A00 ; DATA XREF: sub_5BA2E+2DCr ; sub_5BDC8:loc_5BE20r ; Used to find Torque based Locked Point. ; PSI_s XTCC_EXECUTION_KE_TCC_RELEASE_RAMP_RATE:dc.w $2800 ; DATA XREF: sub_5C340:loc_5C3B4r ; Ramp rate for Release mode. ; PSI/Sec XTCC_EXECUTION_KE_TCC_MAX_ALLOWED_PRESSURE:dc.w $3C00 ; DATA XREF: sub_5B4EE+22r ; sub_5B744+D0r ... ; Maximum TCC pressure. ; PSI XTCC_EXECUTION_KA_TCC_MAXIMUM_CAPACITY:dc.b $7A ; z ; DATA XREF: sub_5C510+78o ; Sets maximum duty cycle for Control TCC Solenoids. ; Capacity dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? dc.b $7A ; z dc.b $E1 ; ? XTCC_EXECUTION_KV_TCC_MAXIMUM_PRESSURE:dc.w $1E00 ; DATA XREF: sub_5B3F8+12r ; Used to find TCC_PSI Pressure from Pressure. ; PSI dc.b $23 ; # dc.b 2 dc.b $28 ; ( dc.b 6 dc.b $2D ; - dc.b 4 dc.b $32 ; 2 dc.b $A dc.b $37 ; 7 dc.b 2 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3C ; < dc.b 0 XTCC_EXECUTION_KA_TCC_MINIMUM_CAPACITY:dc.b $C ; DATA XREF: sub_5C510+3Ao ; Used to find minimum duty cycle for Control TCC Solenoids. ; Percent dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? XTCC_EXECUTION_KV_TCC_ON_RATE_TRQ:dc.w $500 ; DATA XREF: sub_5BDC8:loc_5BECAr ; sub_5C1FE:loc_5C260r ; TCC On mode pressure ramp rate. ; PSI/Sec dc.b 4 dc.b 0 dc.b 3 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 2 dc.b 0 dc.b 3 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 dc.b 4 dc.b 0 XTCC_EXECUTION_KV_COAST_PRESS_OP_PT:dc.w 0 ; DATA XREF: sub_5C1FE:loc_5C226r ; Used during Coast mode to set initial operating point. ; PSI_vs_RPM dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b $80 ; ? dc.b 7 dc.b 0 dc.b 7 dc.b $80 ; ? dc.b 8 dc.b 0 dc.b 8 dc.b $80 ; ? dc.b 9 dc.b 0 dc.b 9 dc.b $80 ; ? dc.b $A dc.b 0 dc.b $A dc.b $80 ; ? dc.b $B dc.b 0 XTCC_EXECUTION_KE_TCC_LOW_SLIP_RATE_TRQ:dc.w 0 ; DATA XREF: sub_5BDC8:loc_5BED8r XTCC_EXECUTION_KE_ADAPT_COMPLETE_CONF:dc.w 0 ; DATA XREF: sub_5BDC8+17Er XTCC_EXECUTION_KE_ECCC_ANTI_LOCK_GAIN:dc.w 0 ; DATA XREF: sub_5BDC8+1A0r ; Used in determining changes in TCC_Ramp value when there is a significant ECCC engien torque increase over the previous loop. ; PSI/Ft_Lb XTCC_EXECUTION_KE_ANTI_LOCK_TORQUE_STEP:dc.w 0 ; DATA XREF: sub_5BDC8+1D6r ; Used to determine if there is a significant increase or decrease in ECCC engine torque over the previous loop ; Ft_Lb XTCC_EXECUTION_KA_TCC_ADAPT_MEMBERSHIP:dc.w 0 ; DATA XREF: sub_5CC7E+78r ; Membership variable for each cell used as an index into KV_TCC_Adapt_Cell_Weight. ; Factor dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTCC_EXECUTION_KV_TCC_ADAPT_CELL_WEIGHT:dc.w 0 ; DATA XREF: sub_5CC7E+90r ; Adapt Cell Weight value used in the calculations of each of the TCC Adapt Cells. ; Factor dcb.b 8,0 XTCC_EXECUTION_KA_TCC_ADAPT_CONF_FACT_GAIN:dc.b 0 ; DATA XREF: sub_5CC7E+9Co ; Adapt confidence factor gain used in the calculations of each of the TCC Adapt Cells. ; Factor dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTCC_EXECUTION_KE_TCC_ADAPT_DEADBAND:dc.w 0 ; DATA XREF: sub_5CC7E:loc_5CD52r ; If the ECCC adapt modification value for a cell is BELOW this threshold, then no adapting is performed on that particular cell. ; PSI XTCC_EXECUTION_KE_TCC_ADAPT_MIN:dc.w 0 ; DATA XREF: sub_5CC7E:loc_5CD72r ; Each individual adapt cell is limited to this minimum value. ; PSI XTCC_EXECUTION_KE_TCC_ADAPT_MAX:dc.w 0 ; DATA XREF: sub_5CC7E:loc_5CD80r ; Each individual adapt cell is limited to this maximum value. ; PSI XTCC_EXECUTION_KE_TCC_CONF_FACT_INC:dc.w 0 ; DATA XREF: sub_5CA7C+B0r ; sub_5CA7C+162r ; Percentage used in calculating the increased value for the neighboring cellswhen updating TCC_Adapt_Conf_Factor cells ; % XTCC_EXECUTION_KV_TCC_CONF_FACT_DEC:dc.w 0 ; DATA XREF: sub_5CA7C:loc_5CB68r ; sub_5CA7C:loc_5CC14r ; Used in calculating the decreased value of the neighboring cells when updating TCC_Adapt_Conf_Factor cells. ; % dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTCC_EXECUTION_KE_TCC_ADAPT_TEMP_LOW:dc.b 0 ; DATA XREF: sub_5C900+1Er XTCC_EXECUTION_KE_TCC_ADAPT_TEMP_HIGH:dc.b 0 ; DATA XREF: sub_5C900+2Ar XTCC_EXECUTION_KE_TCC_ADAPT_SS_ADAPT_LOW:dc.w 0 ; DATA XREF: sub_5C900+94r ; When the steady state adapts in the current mode is above this, the ECCC adapts are disabled. ; PSI XTCC_EXECUTION_KE_TCC_ADAPT_TPS_LOW:dc.w 0 ; DATA XREF: sub_5C900+AEr ; When throttle is below this value, the ECCC adapts are disabled. ; % XTCC_EXECUTION_KE_TCC_ADAPT_TPS_HIGH:dc.w 0 ; DATA XREF: sub_5C900+B6r ; When throttle is below this value, the ECCC adapts are disabled. ; % XTCC_EXECUTION_KE_TCC_ADAPT_TORQUE_LOW:dc.w 0 ; DATA XREF: sub_5C900+D0r ; ECCC adapts are disabled if ECCC engine torque is below this. ; Ft_Lb XTCC_EXECUTION_KE_TCC_ADAPT_TORQUE_HIGH:dc.w 0 ; DATA XREF: sub_5C900+D8r ; ECCC adapts are disabled if ECCC engine torque is above this. ; Ft_Lb XTCC_EXECUTION_KE_TCC_ADAPT_VSPD_LOW:dc.w 0 ; DATA XREF: sub_5C900+F2r ; ECCC adapts are disabled if MPH Output speed is below this. ; MPH XTCC_EXECUTION_KE_TCC_ADAPT_VSPD_HIGH:dc.w 0 ; DATA XREF: sub_5C900+FAr ; ECCC adapts are disabled if MPH Output speed is above this. ; MPH XTCC_EXECUTION_KE_TCC_ADAPT_UPDATE_TIME:dc.b 0 ; DATA XREF: sub_5C900+152r ; Conditions must be valid for this long before ECCC adapts are allowed. ; Seconds byte_1CB1D: dc.b 0 ; DATA XREF: sub_5C900+70r XTCC_EXECUTION_KA_TCC_ADAPT_RANGE_GEAR:dc.l off_0+$FF ; Enable ECCC adapts by Range and Gear. ; T/F dc.l off_0+$FF ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.l off_0+$FF ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dcb.b 2,0 dc.b 1 dc.b $FF XTCC_EXECUTION_KE_TCC_STABLE_RAMP_FILT:dc.w 0 ; DATA XREF: sub_5C7B4+4r ; Filter coefficient used in determining TCC_On_Ramp_Avg. ; Coeff XTCC_EXECUTION_KE_TCC_STABLE_TORQUE_FILT:dc.w 0 ; DATA XREF: sub_5C7B4+36r ; Filter coefficient used in determining TCC_Eng_Torque_Avg. ; Coeff XTCC_EXECUTION_KE_TCC_STABLE_THROTTLE_FILT:dc.w 0 ; DATA XREF: sub_5C7B4+58r ; Filter coefficient used in determining TCC_Throttle_Avg. ; Coeff XTCC_EXECUTION_KE_TCC_RAMP_STABILITY_LOW:dc.w 0 ; DATA XREF: sub_5C7B4:loc_5C834r ; Reset ramp stability variables if Ramp_Stability is above this. ; PSI XTCC_EXECUTION_KE_TCC_TORQUE_STABILITY_LOW:dc.w 0 ; DATA XREF: sub_5C7B4:loc_5C854r ; Reset torque stability variables if Torque_Stability is above this. ; Ft_Lb XTCC_EXECUTION_KE_TCC_THROTTLE_STABILITY_LOW:dc.w 0 ; DATA XREF: sub_5C7B4:loc_5C874r ; Reset throttle stability variables if Throttle_Stability is above this. ; % XTCC_EXECUTION_KE_TCC_SLIPERR_STABILITY_LOW:dc.w 0 ; DATA XREF: sub_5C7B4:loc_5C8A6r ; Reset TCC_Stability_Timer if abs ( slip_error ) is above this. ; RPM XTCC_EXECUTION_KE_TCC_STABLE_TIME:dc.w 0 ; DATA XREF: sub_5C7B4+132r ; ECCC must be stable this long before updating ECCC adapts. ; Seconds XTCC_EXECUTION_KE_TCC_ADAPT_CONTROL:dc.b 0 ; DATA XREF: sub_5C78Er ; sub_5C78E:loc_5C7A2r ; Select which ECCC adapt algorithms will run. ; ENUM dc.b $FF XTCC_EXECUTION_KA_TCC_LESS_CONF_FACTOR:dc.b 0 ; DATA XREF: sub_5BDC8:loc_5C030o ; Used in determining changes in TCC_Ramp value when there is a significant change in engine torque. ; Factor dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTCC_EXECUTION_KV_ECCC_POS_ANTI_LOCK_FACTOR:dc.w 0 ; DATA XREF: sub_5BDC8:loc_5BFEEr ; Used in determining changes in TCC_Ramp value when there is a significant change in engine torque. ; Factor dcb.b 6,0 word_1CB68: dc.w 0 ; DATA XREF: sub_5BDC8+20Ar XTCC_EXECUTION_KV_ECCC_NEG_ANTI_LOCK_FACTOR:dc.w 0 ; DATA XREF: sub_5BDC8+330r ; Used in determining changes in TCC_Ramp value when there is a significant change in engine torque. ; Factor dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 word_1CB72: dc.w 0 ; DATA XREF: sub_5BDC8+31Er XTCC_EXECUTION_KV_NEG_TORQ_CONF_FACTOR:dc.w 0 ; DATA XREF: sub_5BDC8+33Er ; Used in determining changes in TCC_Ramp value when there is a significant change in engine torque. ; Factor dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTCC_EXECUTION_KV_TCC_APPLY_CONF_OFFSET:dc.w 0 ; DATA XREF: sub_5BA2E+266r ; TCC Apply Confidence Factor based offset used in determining TCC_Apply_Init_Offset. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTCC_EXECUTION_KV_TCC_APPLY_TEMP_OFFSET:dc.w 0 ; DATA XREF: sub_5BA2E:loc_5BC76r ; TCC Apply Temperature based offset used in determining TCC_Apply_Init_Offset. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTCC_EXECUTION_KA_TCC_APPLY_BASE_OFFSET_2:dc.b 0 ; TCC Apply Base offset for 2nd gear used in determining TCC_Apply_Init_Offset. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTCC_EXECUTION_KA_TCC_APPLY_BASE_OFFSET_3:dc.b 0 ; TCC Apply Base offset for 3rd gear used in determining TCC_Apply_Init_Offset. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTCC_EXECUTION_KA_TCC_APPLY_BASE_OFFSET_4:dc.b 0 ; TCC Apply Base offset for 4th gear used in determining TCC_Apply_Init_Offset. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_1CCA6: dc.b 0 ; DATA XREF: sub_5D45C+1A2o dc.b 0 XTCC_EXECUTION_KE_TCC_TORQUE_STEP_OFFSET:dc.w 0 ; DATA XREF: sub_5B542:loc_5B6BCr ; sub_5B542:loc_5B6DEr ... ; Offset for the ECCC adapt and confidence factor cells. ; Ft_Lb XTCC_EXECUTION_KE_TCC_TORQUE_STEP_SIZE:dc.w 0 ; DATA XREF: sub_5B542+162r ; sub_5B542+1C6r ... ; Spacing value of the ECCC adapt and confidence factor cells. ; Ft_Lb XTIM_ADAPT_KV_ADAPT_CELL_WEIGHT_FACTOR:dc.b $13 ; Weighting factors for adaptive cells ; Factor dc.b $33 ; 3 byte_1CCAE: dc.b $80 ; DATA XREF: sub_5D45C+24Cr dc.b $33 ; 3 word_1CCB0: dc.w $13FF ; DATA XREF: sub_5D45C+114r XTIM_ADAPT_KV_LONG_SHIFT_TIME_ERROR:dc.b $C2 ; ? ; Shift time error to be considered as a long shift. ; Seconds dc.b $20 dc.b $C2 ; ? dc.b $20 dc.b 0 dc.b 0 XTIM_ADAPT_KA_PRESSURE_ADAPT_CELL_MODIFIER:dc.b $14 ; Amount of pressure to add to adaptive cells. ; PSI_s dc.b $14 dc.b $14 dc.b $14 dc.b $14 dc.b $C dc.b 8 dc.b 1 dc.b 0 dc.b $FF dc.b $F8 ; ? dc.b $F4 ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $FF dc.b $14 dc.b $14 dc.b $14 dc.b $14 dc.b $14 dc.b $C dc.b 4 dc.b 0 dc.b 0 dc.b 0 dc.b $FC ; ? dc.b $F4 ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $EC ; ? dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_1CCE0: dc.b 0 ; DATA XREF: sub_5D45C:loc_5D4BCo dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 byte_1CCED: dc.b $FF ; DATA XREF: sub_5D45C+12Ar XTIM_ADAPT_KV_LONG_SHIFT_ADAPTIVE_MODIFIER:dc.l off_0+$FF ; Modifiers for long shifts adaption. ; PSI_s XTIM_ADAPT_KA_SHIFT_DELAY_BASE_CORRECTION:dc.b 0 ; Long shift delay base correction used in calculatinglong delay adaptive modifier. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_1CD1E: dc.b 0 ; DATA XREF: sub_5D45C+8Eo dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTIM_ADAPT_KA_SHIFT_DELAY_MULT_COEF:dc.b 0 ; Long shift delay multiplier used in calculating longdelay adaptive modifier. ; Factor dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 unk_1CD34: dc.b 0 ; DATA XREF: sub_5D45C+20o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF XTIM_ADAPT_KA_SHIFT_DELAY_LIMIT:dc.b 0 ; Long shift delay error limit used to determine whento calculate long delay adaptive modifier. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 XTIM_ADAPT_KE_SHIFT_DELAY_MOD_HYSTERESIS:dc.w $1800 ; DATA XREF: sub_5D45C+DAr ; sub_5D45C+14Ao ; This is the maximum long shift delay time allowedin using the long shift delay modifier. ; PSI XTIM_ADAPT_KE_FACTOR_MIN_TEMP_RISE:dc.w 0 ; DATA XREF: sub_5D252+Ar ; sub_5D252+18r ... ; Low limit transmission temperature rise used to determineshift adapt factor due to temperature rise ; Degree C XTIM_ADAPT_KE_FACTOR_TEMP_RISE:dc.w 0 ; DATA XREF: sub_5D252+4r ; sub_5D252+12r XTIM_ADAPT_KE_FACTOR_WARM_TEMP_A:dc.w 0 ; DATA XREF: sub_5D252+C6r ; sub_5D252+CCr ; Lower limit transmission temperature in warm state for shiftadapt factor rising point A ; Degree C XTIM_ADAPT_KE_FACTOR_WARM_TEMP_B:dc.w 1 ; DATA XREF: sub_5D252+C0r XTIM_ADAPT_KE_FACTOR_WARM_TEMP_C:dc.w $154 ; DATA XREF: sub_5D252+B8r ; sub_5D252+F6r XTIM_ADAPT_KE_FACTOR_WARM_TEMPERATURE:dc.w $64 ; DATA XREF: sub_5D252:loc_5D2A8r ; sub_5D252+64r XTIM_ADAPT_KE_FACTOR_TPS_1_MINUS_PERCENT:dc.b 0 ; DATA XREF: sub_5D252+12Ar ; sub_5D252+174r ; Limit shift throttle deviation for shift adapt factorfalling down ; Factor XTIM_ADAPT_KE_SHIFT_ADAPT_TEMP_RISE_WEIGHT:dc.b $80 ; DATA XREF: sub_5D252+1A2r ; Weight factor for shift adapt factor due to transmissiontemperature rise ; Factor XTIM_ADAPT_KE_SHIFT_ADAPT_WARM_TEMP_WEIGHT:dc.b $80 ; DATA XREF: sub_5D252+1B2r ; Weight factor for shift adapt factor due to transmissiontemperature in warm state ; Factor dc.b $FF XTIM_ADAPT_KA_PRESSURE_ADAPT_TORQUE_FACTOR:dc.b 0 ; Shift torque compensation factor. ; Factor dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF XTIM_ADAPT_KE_ADAPTIVE_PRELOAD_CHECKSUM:dc.w 0 ; DATA XREF: sub_5D15C+3Cr ; Preload Checksum value for Shift Adaptive Cells. ; Cardinal XTIM_ADAPT_KA_ADAPTIVE_CELL_PRELOADS:dc.b 0 ; DATA XREF: sub_5D15C+Eo ; sub_5D15C+4Co ; These define preloadable values for the Adaptive_Cells; There are 17 cells per shift. ; PSI_s dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF unk_1CDD8: dc.b 0 ; DATA XREF: sub_5D15C+68o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF unk_1CDEA: dc.b 0 ; DATA XREF: sub_5D15C+84o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF XTIM_DOWNSHIFT_KE_DOWNSHIFT_DELAY_TIME_LIMIT:dc.w $18 ; DATA XREF: sub_5DA34+8Cr ; sub_5DA34+ACr ; Maximum delay time period to wait for starting engine speed acceleration to be reached. ; Seconds XTIM_DOWNSHIFT_KV_DOWNSHIFT_TIME:dc.b 0 ; Amount of time to apply downshift pressure modifiers. ; Seconds dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? word_1CE02: dc.w $A0 ; DATA XREF: sub_5D8C4+16r XTIM_RATIO_KV_UPSHIFT_START_RATIO:dc.b $2C ; , ; Ratio used to start timing the upshift time ; Ratio dc.b $CD ; ? dc.b $17 dc.b $66 ; f word_1CE08: dc.w $E66 ; DATA XREF: sub_5D8C4+20r XTIM_RATIO_KV_UPSHIFT_END_RATIO:dc.b $1C ; Ratio used to determine if a new gear is reached ; Ratio dc.b $98 ; ? dc.b $11 dc.b $9A ; ? dc.b $C dc.b $52 ; R XTIM_RATIO_KV_DOWNSHIFT_START_RATIO:dc.w $7FFF ; DATA XREF: sub_5DA34+7Er ; Ratio used to start timing the downshift time. ; Ratio dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF XTIM_RATIO_KV_DOWNSHIFT_END_RATIO:dc.w $7FFF ; DATA XREF: sub_5DA34+122r ; Ratio used to determine if a new gear is reached. ; Ratio dc.b $7F ;  dc.b $FF dc.b $7F ;  dc.b $FF XTIM_RATIO_KV_DS_END_OF_SHIFT_TIME:dc.w $FFFF ; DATA XREF: sub_5DA34:loc_5DA80r ; Time used to determine if end of downshift reached. ; Seconds dc.b $FF dc.b $FF dc.b $FF dc.b $FF XTIM_RATIO_KV_DOWNSHIFT_MAX_TIME:dc.w $FFFF ; DATA XREF: sub_5DA34+CAr ; End of downshift time. If exceeded, this timer will always end the current downshift. ; Seconds dc.b $FF dc.b $FF word_1CE26: dc.w $FFFF ; DATA XREF: sub_5D8C4+12Er XTIM_UPSHIFT_KV_UPSHIFT_MAX_TIME:dc.b 2 dc.b $80 ; ? dc.b 2 dc.b $80 ; ? word_1CE2C: dc.w $280 ; DATA XREF: sub_5D8C4+E8r XTIM_UPSHIFT_KV_END_OF_SHIFT_TIME:dc.b 0 ; The amount of time after shift complete is set until end of shift flag is set. ; Seconds dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` XTIM_VALIDATION_KV_THROTTLE_VARIATION_LIMIT:dc.b $C ; DATA XREF: sub_5D252+11Eo ; sub_5D252+14Co ... dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? dc.b $C dc.b $CD ; ? XTIM_VALIDATION_KE_TRANSMISSION_TEMP_LOW_VALID:dc.w $49 ; DATA XREF: sub_5D252+5Cr ; sub_5D252+6Ar ... ; The lowest transmission temperature to be considered valid. ; Degrees_C XTIM_VALIDATION_KE_TRANSMISSION_TEMP_HIGH_VALID:dc.w $8A ; DATA XREF: sub_5D252:loc_5D342r ; sub_5D252+FCr ... ; The highest transmission temperature to be considered valid. ; Degrees_C XTIM_VALIDATION_KV_WHEEL_SLIP_ACCEL_HI:dc.b $7F ;  ; If wheel slipacceleration is greater than this cal then the wheel isslipping ; MPH/Sec dc.b $FF dc.b $7F ;  dc.b $FF word_1CE46: dc.w $7FFF ; DATA XREF: sub_5DC70+F2r XTIM_VALIDATION_KV_WHEEL_SLIP_ACCEL_LO:dc.b $80 ; ? ; If wheel slipacceleration is less than this cal then the wheel isslipping ; MPH/Sec dc.b 0 dc.b $80 ; ? dc.b 0 word_1CE4C: dc.w $8000 ; DATA XREF: sub_5DD8A+2Er XTIM_VALIDATION_KV_ALLOWED_SHIFT_DELAY:dc.b 0 dc.b $A0 ; ? dc.b 1 dc.b $40 ; @ dc.b 0 dc.b 0 XTIM_VALIDATION_KE_HOT_MODE_ADAPT_VALID:dc.b 0 ; DATA XREF: sub_5DBA0:loc_5DC12r ; Allow adapts when transmission is in hot mode if this is true. ; T/F XTIM_VALIDATION_KE_INHIBIT_PERFORMANCE_ADAPT:dc.b 1 ; DATA XREF: sub_5DBA0:loc_5DBD4r ; When TRUE, performance mode adapts are NOT allowed. ; True/False XTIM_VALIDATION_KE_GEAR_CHANGE_TIME_VALID:dc.w 0 ; DATA XREF: sub_5DBA0+52r ; Time for between-gear change to be a valid Upshift. ; Seconds XTIM_VALIDATION_KE_RANGE_CHANGE_TIME_VALID:dc.w 0 ; DATA XREF: sub_5DBA0+64r ; Time for between-range change to be a valid Upshift. ; Seconds XTIM_VALIDATION_KE_ADAPTIVE_TORQUE_LIMIT_LOW:dc.w $4D0 ; DATA XREF: sub_5DC70+24r ; The lower limit of shift torque for a shift to be considered valid. ; Ft_lb XTIM_VALIDATION_KE_ADAPTIVE_TORQUE_LIMIT_HIGH:dc.w $1770 ; DATA XREF: sub_5DC70+2Cr ; sub_5DC70+44r ; The upper limit of shift torque for a shift to be considered valid. ; Ft_lb XTIM_VALIDATION_KV_THROTTLE_LOW_LIMIT_VALID:dc.b $20 ; The lowest throttle position for an upshift to be considered valid. ; Percent dc.b 0 dc.b $20 dc.b 0 word_1CE62: dc.w $7EB8 ; DATA XREF: sub_5DC70:loc_5DCEAr XTIM_VALIDATION_KV_VEHICLE_SPEED_VARIATION:dc.b $FF ; The maximum vehicle speed variation for an upshift to be considered valid. ; MPH dc.b 0 dc.b $FF dc.b 0 word_1CE68: dc.w 0 ; DATA XREF: sub_5DD8A+6Cr XTIM_VALIDATION_KV_LONG_UPSHIFT_TIME:dc.b 0 ; Actual shift time to be considered long. ; Seconds dc.b $88 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b 0 XTIM_VALIDATION_KE_INITIAL_UPSHIFT_TIME:dc.w 0 ; DATA XREF: sub_5DD8A+4Ar ; sub_5DD8A+62r ; The minimum time allowed before the ratio or engine acceleration reaches the starting point. ; Seconds XTIM_VALIDATION_KV_SHORT_UPSHIFT_TIME:dc.b 0 ; Actual shift time to be considered short. ; Seconds dc.b $2A ; * byte_1CE74: dc.b 0 ; DATA XREF: sub_5DBA0+16r dc.b $30 ; 0 dc.b 0 dc.b 0 XTIM_VALIDATION_KA_ENABLE_UPSHIFT_ADAPT_TABLE:dc.b 0 ; This table indicates whether shift adapts are enabled for eachtype of shift, based on Gear and Range. ; Boolean dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 X_D32_CONTROL_KE_32_VEHICLE_SPEED:dc.w $3600 ; DATA XREF: sub_4B866+CCr ; OS2:0004B9F2r ; Used to select adapt table and solenoid status at start of the 3-2 downshift. ; MPH X_D32_CONTROL_KE_32_SOLENOID_TEMP:dc.w $28 ; DATA XREF: sub_4B866+E0r ; Transmission temperature threshold FOR determining the 3-2 solenoid status. ; Degrees_C X_D32_CONTROL_KE_D32_DIAGNOSTIC_MODE_PRESSURE:dc.w $1680 ; DATA XREF: OS2:loc_4B9CEr ; Pressure modifier when Mode = Diagnostic. ; PSI X_D32_CONTROL_KE_D32_RANGE_MODE_PRESSURE:dc.w 0 ; DATA XREF: OS2:loc_4B9DAr ; Pressure modifier when Mode = Range. ; PSI X_D32_CONTROL_KA_D32_LOW_SPEED_MAIN_PRESSURE:dc.b 0 ; DATA XREF: OS2:0004BA5Co ; Used to determine the base 3-2 pressure when the 3-2 vehicle speed is less than the 3-2 vehicle speed check value. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $F dc.b $C0 ; ? dc.b $E dc.b $C0 ; ? dc.b $E dc.b $80 ; ? dc.b $C dc.b $80 ; ? dc.b $B dc.b $40 ; @ dc.b $A dc.b 0 dc.b 9 dc.b 0 dc.b 7 dc.b $80 ; ? dc.b 7 dc.b $80 ; ? dc.b 7 dc.b $80 ; ? dc.b 7 dc.b $80 ; ? dc.b 7 dc.b $80 ; ? dc.b 7 dc.b $80 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $12 dc.b $C0 ; ? dc.b $11 dc.b $C0 ; ? dc.b $10 dc.b $80 ; ? dc.b $F dc.b $40 ; @ dc.b $10 dc.b $C0 ; ? dc.b $D dc.b 0 dc.b $C dc.b 0 dc.b $A dc.b $C0 ; ? dc.b 9 dc.b $80 ; ? dc.b 8 dc.b $80 ; ? dc.b 7 dc.b $80 ; ? dc.b 7 dc.b $80 ; ? dc.b 7 dc.b $80 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $11 dc.b $80 ; ? dc.b $10 dc.b $40 ; @ dc.b $F dc.b 0 dc.b $D dc.b $C0 ; ? dc.b $C dc.b $80 ; ? dc.b $B dc.b $40 ; @ dc.b $A dc.b 0 dc.b 8 dc.b $C0 ; ? dc.b 8 dc.b $C0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $11 dc.b $80 ; ? dc.b $10 dc.b $40 ; @ dc.b $F dc.b 0 dc.b $D dc.b $C0 ; ? dc.b $C dc.b $80 ; ? dc.b $B dc.b $40 ; @ dc.b $A dc.b 0 dc.b 8 dc.b $C0 ; ? dc.b 8 dc.b $C0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $11 dc.b $80 ; ? dc.b $10 dc.b $40 ; @ dc.b $F dc.b 0 dc.b $D dc.b $C0 ; ? dc.b $C dc.b $80 ; ? dc.b $B dc.b $40 ; @ dc.b $A dc.b 0 dc.b 8 dc.b $C0 ; ? dc.b 8 dc.b $C0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $11 dc.b $80 ; ? dc.b $10 dc.b $40 ; @ dc.b $F dc.b 0 dc.b $D dc.b $C0 ; ? dc.b $C dc.b $80 ; ? dc.b $B dc.b $40 ; @ dc.b $A dc.b 0 dc.b 8 dc.b $C0 ; ? dc.b 8 dc.b $C0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $12 dc.b $C0 ; ? dc.b $11 dc.b $80 ; ? dc.b $10 dc.b $40 ; @ dc.b $F dc.b 0 dc.b $D dc.b $C0 ; ? dc.b $C dc.b $80 ; ? dc.b $B dc.b $40 ; @ dc.b $A dc.b 0 dc.b 8 dc.b $C0 ; ? dc.b 8 dc.b $C0 ; ? X_D32_CONTROL_KA_D32_HIGH_SPEED_MAIN_PRESSURE:dc.b 0 ; DATA XREF: OS2:0004BB72o ; Used to determine the base 3-2 pressure when the 3-2 vehicle speed is greater than the 3-2 vehicle speed check value. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $F dc.b $C0 ; ? dc.b $E dc.b $60 ; ` dc.b $D dc.b 0 dc.b $B dc.b $A0 ; ? dc.b $A dc.b $40 ; @ dc.b 8 dc.b $C0 ; ? dc.b 8 dc.b $C0 ; ? dc.b 8 dc.b $C0 ; ? dc.b 8 dc.b $C0 ; ? dc.b 8 dc.b $C0 ; ? dc.b 8 dc.b $C0 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $12 dc.b $C0 ; ? dc.b $11 dc.b $A0 ; ? dc.b $10 dc.b $80 ; ? dc.b $F dc.b $60 ; ` dc.b $E dc.b $40 ; @ dc.b $D dc.b $20 dc.b $C dc.b 0 dc.b $A dc.b $E0 ; ? dc.b 9 dc.b $C0 ; ? dc.b 8 dc.b $C0 ; ? dc.b 8 dc.b $C0 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $15 dc.b $60 ; ` dc.b $14 dc.b $40 ; @ dc.b $13 dc.b $20 dc.b $12 dc.b 0 dc.b $10 dc.b $E0 ; ? dc.b $F dc.b $C0 ; ? dc.b $E dc.b $A0 ; ? dc.b $D dc.b $80 ; ? dc.b $C dc.b $60 ; ` dc.b $B dc.b $40 ; @ dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $15 dc.b $E0 ; ? dc.b $14 dc.b $C0 ; ? dc.b $13 dc.b $A0 ; ? dc.b $12 dc.b $80 ; ? dc.b $11 dc.b $60 ; ` dc.b $10 dc.b $40 ; @ dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? dc.b $16 dc.b $80 ; ? X_D32_CONTROL_KA_D32_LOW_SPD_ENG_SPD_MODIFIER:dc.b 0 ; DATA XREF: OS2:loc_4BAAAo ; Used to modify 3-2 base pressure as a function of engine speed. ; PSI_s dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 X_D32_CONTROL_KA_D32_HIGH_SPD_ENG_SPD_MODIFIER:dc.b 0 ; DATA XREF: OS2:loc_4BBC2o ; Used to modify 3-2 base pressure as a function of engine speed. ; PSI_s dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 8 dc.b $C0 ; ? dc.b 7 dc.b $80 ; ? dc.b 6 dc.b $40 ; @ dc.b 5 dc.b 0 dc.b 3 dc.b $C0 ; ? dc.b 2 dc.b $80 ; ? dc.b 1 dc.b $40 ; @ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 8 dc.b $C0 ; ? dc.b 6 dc.b $40 ; @ dc.b 5 dc.b 0 dc.b 3 dc.b $C0 ; ? dc.b 2 dc.b $80 ; ? dc.b 1 dc.b $40 ; @ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 8 dc.b $C0 ; ? dc.b 7 dc.b $80 ; ? dc.b 6 dc.b $40 ; @ dc.b 2 dc.b $80 ; ? dc.b 1 dc.b $40 ; @ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 8 dc.b $C0 ; ? dc.b 8 dc.b $C0 ; ? dc.b 6 dc.b $40 ; @ dc.b 2 dc.b $80 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 8 dc.b $C0 ; ? dc.b 8 dc.b $C0 ; ? dc.b 8 dc.b $C0 ; ? dc.b 8 dc.b $C0 ; ? dc.b 0 dc.b 0 X_D32_CONTROL_KV_D32_TRANS_TEMP_PRESS_MODIFIER:dc.w $7C0 ; DATA XREF: OS2:loc_4BAECr ; OS2:loc_4BC00r ; Used to determine 3-2 shift pressure modifications due to temperature. ; PSI_s dc.b 5 dc.b $C0 ; ? dc.b 3 dc.b 0 dc.b 2 dc.b $40 ; @ dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $40 ; @ dc.b 7 dc.b $80 ; ? X_D32_CONTROL_KE_32_COASTDOWN_SPEED:dc.w $1400 ; DATA XREF: sub_4B866+A0r ; Vehicle speed condition for 3-2 downshift to coastdown mode. ; MPH X_D32_CONTROL_KE_32_COASTDOWN_THROTTLE:dc.w $666 ; DATA XREF: sub_4B866+ACr ; Throttle condition for 3-2 downshift to coastdown mode. ; Percent X_D32_CONTROL_KE_32_COASTDOWN_SOL_STATE:dc.b 0 ; DATA XREF: sub_4B866+BAr ; This calibration is used to determine the 3-2 solenoid state when it is in coastdown mode. ; ENUM dc.b $FF X_FM_CONTROL_KE_FM_CURRENT_OVER_LIMIT_TIME:dc.w $FFFF ; DATA XREF: sub_4BD8C+47Ar ; Time in which force motor current is over range before the force motor is considered out of control. ; Seconds X_FM_CONTROL_KE_FM_CURRENT_UNDER_LIMIT_TIME:dc.w $FFFF ; DATA XREF: sub_4BD8C+4AEr ; Time in which force motor current is under range before the force motor is considered out of control. ; Seconds X_FM_CONTROL_KE_FM_ENABLE_RETEST:dc.b 1 ; DATA XREF: sub_4BD8C+342r ; When TRUE, will enable the Force Motor Retest Logic. ; T/F X_FM_CONTROL_KE_FM_HIGH_CURRENT_THRSH_GAIN:dc.b $FF ; DATA XREF: sub_4BD8C+174r ; ; Gain used when calculating the F X_FM_CONTROL_KE_FM_HIGH_CURRENT_THRSH_OFFSET:dc.b $FF ; DATA XREF: sub_4BD8C+186r ; Offset used when calculating the Force Motor HIGH current threshold. ; Amps X_FM_CONTROL_KE_FM_HIGH_VOLT_THRSH_DISABLE:dc.b $FF ; DATA XREF: sub_4BD8C+298r ; sub_4BD8C+2ACr ; The high voltage threshold used in determining if ignition voltage is out of range. ; Volts X_FM_CONTROL_KE_FM_LOW_CURRENT_THRSH_GAIN:dc.b $FF ; DATA XREF: sub_4BD8C+146r ; Gain used when calculating the Force Motor LOW current threshold. ; Amps dc.b $FF X_FM_CONTROL_KE_FM_LOW_CURRENT_THRSH_OFFSET:dc.w $FFFF ; DATA XREF: sub_4BD8C+156r ; Offset used when calculating the Force Motor LOW current threshold. ; Amps X_FM_CONTROL_KE_FM_LOW_VOLT_THRSH_DISABLE_HI:dc.b $FF ; DATA XREF: sub_4BD8C:loc_4BF68r ; The HIGH value used in calculating the low voltage threshold used to determine if ignition voltage is out of range. ; Volts X_FM_CONTROL_KE_FM_LOW_VOLT_THRSH_DISABLE_LO:dc.b $FF ; DATA XREF: sub_4BD8C+1E2r ; sub_4BD8C+228r ; The LOW value used in calculating the low voltage threshold used to determine if ignition voltage is out of range. ; Volts X_FM_CONTROL_KE_FM_LOW_VOLT_THRSH_ENABLE_HI:dc.b $FF ; DATA XREF: sub_4BD8C+238r ; The HIGH value used in calculating the low voltage threshold used to determine if ignition voltage is within range. ; Volts X_FM_CONTROL_KE_FM_LOW_VOLT_THRSH_ENABLE_LO:dc.b $FF ; DATA XREF: sub_4BD8C+23Er ; sub_4BD8C+280r X_FM_CONTROL_KE_FM_MAX_FAIL_IN_RETEST:dc.b 0 ; DATA XREF: sub_4BD8C+41Er ; This calibration defines the limit for the number of times that the force motor can fail while in the retest operating state. ; Counts dc.b $FF X_FM_CONTROL_KE_FM_OFF_BEFORE_RETEST_TIME:dc.w 0 ; DATA XREF: sub_4BD8C+39Cr X_FM_CONTROL_KE_FM_VOLTAGE_LIMIT_TIME:dc.w $FFFF ; DATA XREF: sub_4BD8C+2D6r X_FM_CONTROL_KE_FM_MAX_TRANSITION_TO_RETEST:dc.b $FF ; DATA XREF: sub_4BD8C+350r dc.b $FF X_FM_CONTROL_KE_FM_RETEST_PASS_TIME:dc.w 0 ; DATA XREF: sub_4BD8C+3E4r X_FM_CONTROL_KV_FORCE_MOTOR_GAIN_TABLE_1:dc.w $28 ; DATA XREF: sub_4BC2E+4Er ; Table 1 of force motor gains. ; Gain dc.b 0 dc.b $25 ; % dc.b 0 dc.b $22 ; " dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $1F dc.b 0 dc.b $1E dc.b 0 dc.b $1E dc.b 0 dc.b $1E X_FM_CONTROL_KV_FORCE_MOTOR_GAIN_TABLE_2:dc.w $18 ; DATA XREF: sub_4BC2E+58r ; Table 2 of force motor gains. ; Gain dc.b 0 dc.b $14 dc.b 0 dc.b $12 dc.b 0 dc.b $10 dc.b 0 dc.b $E dc.b 0 dc.b $C dc.b 0 dc.b $B dc.b 0 dc.b $A X_FM_CONTROL_KE_FM_RETEST_DESIRED_CURRENT:dc.b 0 ; DATA XREF: sub_4BD8C+28r ; Desired Force Motor current in retest mode. ; Amps X_FM_CONTROL_KE_FM_FDBCK_CRTN_CURR_ENABLE:dc.b 0 ; DATA XREF: sub_4BC94+28r ; sub_4BD8C+84r ... ; Above this value, full compensation applied. ; Amps X_FM_CONTROL_KE_FM_FDBCK_CRTN_CURR_DISABLE:dc.b 0 ; DATA XREF: sub_4BC94:loc_4BCF0r ; sub_4BC94+8Cr ... ; Below this value, no compensation applied. ; Amps X_FM_CONTROL_KE_FM_CRTD_DSRD_CURR_LIMIT_MAX:dc.b 0 ; DATA XREF: sub_4BD8C:loc_4BEA2r ; Maximum value of corrected desired current. ; Amps X_FM_CONTROL_KE_FM_CRTD_DSRD_CURR_LIMIT_MIN:dc.b 0 ; DATA XREF: sub_4BD8C+102r ; Minimum value of corrected desired current. ; Amps dc.b $FF X_FM_CONTROL_KE_FM_FDBCK_CRTN_CURR_FAILSOFT:dc.w 0 ; DATA XREF: sub_4BC94+16r ; sub_4C296+14r ; Value of FM ckt characterization offset incase of a checksum failure or other failsoftingcondition. ; Amps_s X_FM_CONTROL_KA_FM_PRESSURE_TO_CURRENT:dc.b $DB ; ? ; DATA XREF: sub_4BD8C+50o ; FM current converted FROM pressure. ; Amps dc.b $B3 ; ? dc.b $B3 ; ? dc.b $B3 ; ? dc.b $AB ; ? dc.b $A3 ; ? dc.b $9F ; ? dc.b $93 ; ? dc.b $8B ; ? dc.b $83 ; ? dc.b $7C ; | dc.b $70 ; p dc.b $64 ; d dc.b $54 ; T dc.b $44 ; D dc.b $2C ; , dc.b $2C ; , dc.b $FF dc.b $DB ; ? dc.b $BB ; ? dc.b $B7 ; ? dc.b $B3 ; ? dc.b $AB ; ? dc.b $A3 ; ? dc.b $9F ; ? dc.b $97 ; ? dc.b $8B ; ? dc.b $83 ; ? dc.b $7C ; | dc.b $70 ; p dc.b $64 ; d dc.b $54 ; T dc.b $44 ; D dc.b $2C ; , dc.b $2C ; , dc.b $FF dc.b $DB ; ? dc.b $BB ; ? dc.b $B7 ; ? dc.b $B3 ; ? dc.b $AB ; ? dc.b $A3 ; ? dc.b $9F ; ? dc.b $97 ; ? dc.b $8F ; ? dc.b $83 ; ? dc.b $7C ; | dc.b $70 ; p dc.b $64 ; d dc.b $58 ; X dc.b $48 ; H dc.b $34 ; 4 dc.b $34 ; 4 dc.b $FF dc.b $DB ; ? dc.b $BB ; ? dc.b $B7 ; ? dc.b $B3 ; ? dc.b $AB ; ? dc.b $A3 ; ? dc.b $9F ; ? dc.b $97 ; ? dc.b $8B ; ? dc.b $83 ; ? dc.b $7C ; | dc.b $70 ; p dc.b $64 ; d dc.b $54 ; T dc.b $44 ; D dc.b $30 ; 0 dc.b $30 ; 0 dc.b $FF dc.b $DB ; ? dc.b $BB ; ? dc.b $B7 ; ? dc.b $B3 ; ? dc.b $AB ; ? dc.b $A3 ; ? dc.b $9B ; ? dc.b $93 ; ? dc.b $8B ; ? dc.b $83 ; ? dc.b $78 ; x dc.b $6C ; l dc.b $60 ; ` dc.b $54 ; T dc.b $44 ; D dc.b $2C ; , dc.b $2C ; , dc.b $FF dc.b $DB ; ? dc.b $BF ; ? dc.b $B7 ; ? dc.b $B3 ; ? dc.b $AB ; ? dc.b $A3 ; ? dc.b $9B ; ? dc.b $93 ; ? dc.b $8B ; ? dc.b $80 ; ? dc.b $78 ; x dc.b $6C ; l dc.b $60 ; ` dc.b $50 ; P dc.b $40 ; @ dc.b $28 ; ( dc.b $28 ; ( dc.b $FF dc.b $DB ; ? dc.b $BF ; ? dc.b $B7 ; ? dc.b $AF ; ? dc.b $AB ; ? dc.b $A3 ; ? dc.b $9B ; ? dc.b $93 ; ? dc.b $8B ; ? dc.b $80 ; ? dc.b $78 ; x dc.b $6C ; l dc.b $60 ; ` dc.b $50 ; P dc.b $3C ; < dc.b $24 ; $ dc.b $24 ; $ dc.b $FF dc.b $DB ; ? dc.b $BF ; ? dc.b $B7 ; ? dc.b $AF ; ? dc.b $AB ; ? dc.b $A3 ; ? dc.b $9B ; ? dc.b $93 ; ? dc.b $8B ; ? dc.b $80 ; ? dc.b $78 ; x dc.b $6C ; l dc.b $5C ; \ dc.b $50 ; P dc.b $3C ; < dc.b $20 dc.b $20 dc.b $FF dc.b $DB ; ? dc.b $BF ; ? dc.b $B7 ; ? dc.b $AF ; ? dc.b $AB ; ? dc.b $A3 ; ? dc.b $9B ; ? dc.b $93 ; ? dc.b $8B ; ? dc.b $80 ; ? dc.b $78 ; x dc.b $6C ; l dc.b $5C ; \ dc.b $50 ; P dc.b $3C ; < dc.b $20 dc.b $20 dc.b $FF dc.b $DB ; ? dc.b $BF ; ? dc.b $B7 ; ? dc.b $AF ; ? dc.b $A7 ; ? dc.b $A3 ; ? dc.b $9B ; ? dc.b $93 ; ? dc.b $8B ; ? dc.b $80 ; ? dc.b $78 ; x dc.b $6C ; l dc.b $5C ; \ dc.b $50 ; P dc.b $3C ; < dc.b $20 dc.b $20 dc.b $FF dc.b $DB ; ? dc.b $BF ; ? dc.b $B7 ; ? dc.b $AF ; ? dc.b $A7 ; ? dc.b $A3 ; ? dc.b $9B ; ? dc.b $93 ; ? dc.b $87 ; ? dc.b $80 ; ? dc.b $74 ; t dc.b $6C ; l dc.b $5C ; \ dc.b $50 ; P dc.b $3C ; < dc.b $20 dc.b $20 dc.b $FF dc.b $DB ; ? dc.b $BB ; ? dc.b $B7 ; ? dc.b $AF ; ? dc.b $A7 ; ? dc.b $9F ; ? dc.b $9B ; ? dc.b $93 ; ? dc.b $87 ; ? dc.b $80 ; ? dc.b $74 ; t dc.b $6C ; l dc.b $5C ; \ dc.b $50 ; P dc.b $3C ; < dc.b $20 dc.b $20 dc.b $FF dc.b $DB ; ? dc.b $BB ; ? dc.b $B7 ; ? dc.b $AF ; ? dc.b $A7 ; ? dc.b $9F ; ? dc.b $9B ; ? dc.b $93 ; ? dc.b $87 ; ? dc.b $80 ; ? dc.b $74 ; t dc.b $68 ; h dc.b $5C ; \ dc.b $50 ; P dc.b $3C ; < dc.b $20 dc.b $20 dc.b $FF dc.b $DB ; ? dc.b $BB ; ? dc.b $B7 ; ? dc.b $AF ; ? dc.b $A7 ; ? dc.b $9F ; ? dc.b $97 ; ? dc.b $8F ; ? dc.b $87 ; ? dc.b $80 ; ? dc.b $74 ; t dc.b $68 ; h dc.b $5C ; \ dc.b $4C ; L dc.b $3C ; < dc.b $20 dc.b $20 dc.b $FF dc.b $DB ; ? dc.b $BB ; ? dc.b $B3 ; ? dc.b $AF ; ? dc.b $A7 ; ? dc.b $9F ; ? dc.b $97 ; ? dc.b $8F ; ? dc.b $87 ; ? dc.b $80 ; ? dc.b $74 ; t dc.b $68 ; h dc.b $5C ; \ dc.b $4C ; L dc.b $3C ; < dc.b $20 dc.b $20 dc.b $FF dc.b $DB ; ? dc.b $BB ; ? dc.b $B3 ; ? dc.b $AF ; ? dc.b $A7 ; ? dc.b $9F ; ? dc.b $97 ; ? dc.b $8F ; ? dc.b $87 ; ? dc.b $80 ; ? dc.b $74 ; t dc.b $68 ; h dc.b $5C ; \ dc.b $4C ; L dc.b $38 ; 8 dc.b $1C dc.b $1C dc.b $FF dc.b $DB ; ? dc.b $BB ; ? dc.b $B3 ; ? dc.b $AF ; ? dc.b $A7 ; ? dc.b $9F ; ? dc.b $97 ; ? dc.b $8F ; ? dc.b $87 ; ? dc.b $80 ; ? dc.b $74 ; t dc.b $68 ; h dc.b $5C ; \ dc.b $4C ; L dc.b $38 ; 8 dc.b $1C dc.b $1C dc.b $FF X_INP_SPEED_KE_INPUT_SPEED_FILTER_COEFF:dc.w $FFFF ; DATA XREF: sub_4C30C+4Ar ; sub_5436E+92Er ; Filter Coefficient for filtering input speed. ; Coeff X_INP_SPEED_KE_INPUT_SPEED_KALMAN_GAIN_1:dc.w 0 ; DATA XREF: sub_4C30C+9Ar ; This is a gain used in the Kalman Filter routine, and isassociated with plant speed noise ; Gain X_INP_SPEED_KE_INPUT_SPEED_KALMAN_GAIN_2:dc.w 0 ; DATA XREF: sub_4C30C+104r ; This is a gain used in the Kalman Filter routine, and isassociated with plant acceleration noise ; Gain X_INP_SPEED_KE_INPUT_SPEED_KALMAN_GAIN_3:dc.w 0 ; DATA XREF: sub_4C30C+162r ; This is a gain used in the Kalman Filter routine, and isassociated with plant jerk noise ; Gain X_LIBRARY_KV_ALTITUDE_FACTOR:dc.b 0 ; DATA XREF: sub_5436E:loc_545DAr ; sub_598D4:loc_599FAr ... ; Shift point altitude compensation gain factor ; Factor 0-1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE:dc.w $58 ; DATA XREF: OS2:0004BA02r ; OS2:loc_4BA4Ar ... ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb X_OVERRIDES_KE_C2_SHIFT_ENG_SPEED_ALLOWABLE:dc.w $55F0 ; DATA XREF: sub_4C570+36r ; The limit of engine speed for a Class II gear shift ; RPM X_OVERRIDES_KE_C2_SHIFT_MPH_SPEED_ALLOWABLE:dc.w $6400 ; DATA XREF: sub_4C570+24r ; The limit of vehicle speed for a Class II gear shift ; MPH X_OVERRIDES_KE_C2_32_DOWN_SPEED_ALLOWABLE:dc.w $3C00 ; DATA XREF: sub_4C570+7Cr ; The limit of vehicle speed for a Class II 32 downshift ; MPH X_OVERRIDES_KE_C2_21_DOWN_SPEED_ALLOWABLE:dc.w $1E00 ; DATA XREF: sub_4C570+8Er ; The limit of vehicle speed for a Class II 21 downshift ; MPH X_OVERRIDES_KE_C2_FM_ENG_LIMIT:dc.w $1770 ; DATA XREF: sub_3E346+78r ; sub_4CA06+56r ; The limit of engine speed for a Class II force motor ; RPM X_OVERRIDES_KE_C2_FM_OVERRIDE_HI_LIMIT:dc.b $E0 ; DATA XREF: sub_3E346+24r ; sub_4CA06+1Ar ; The high threshold of Force Motor current for theClass II Device Control Limits ; Amps X_OVERRIDES_KE_C2_FM_OVERRIDE_LO_LIMIT:dc.b $14 ; DATA XREF: sub_3E346+1Cr ; sub_4CA06+12r ; The low threshold of Force Motor current for theClass II Device Control Limits ; Amps X_OVERRIDES_KE_C2_TCC_OVERRIDE_OFF_TIME:dc.w $2580 ; DATA XREF: sub_4C664+A2r ; The limit amount of time that TCC can be commanded OFFwhen using the Class II Device ; Seconds X_PRESSURE_KE_FIRST_SHIFT_COLD_ENABLED:dc.b 0 ; DATA XREF: sub_55912r ; sub_571CE:loc_5733Ar ; This ca;ibration is used to enable First Cold Garage Pressure and Base Upshift Pressure Logic. ; T/F X_PRESSURE_KE_FIRST_SHIFT_COLD_DELTA_1:dc.b 0 ; DATA XREF: sub_56A08+32r ; sub_574BE+1Cr ; Temperature below which First Upshift Cold is indicated. ; Deg_C X_PRESSURE_KE_FIRST_SHIFT_COLD_DELTA_2:dc.b 0 ; DATA XREF: sub_56A08+60r ; sub_574BE+4Cr ; Temperature below which First Upshift Cold is indicated. ; Deg_C dc.b $FF X_PRESSURE_KE_PRESSURE_OFFSET_MALF:dc.w 0 ; DATA XREF: sub_4CD5E+258r ; Offset added to Pressure when Torque PressureOffset Malf present. ; PSI_S X_PRESSURE_KA_LUBE_PRESSURE:dc.b 0 ; DATA XREF: sub_4CD5E+40o ; Lube pressure based on the gear and output speed. ; PSI dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 X_PRESSURE_KE_UPSHFT_VS_SS_PRES_OFFSET:dc.w 0 ; DATA XREF: sub_4CD5E+180r X_PRESSURE_KE_DNSHFT_VS_SS_PRES_OFFSET:dc.w 0 ; DATA XREF: sub_4CD5E+1A4r X_PRESSURE_KV_DNSHFT_VS_BRAKING_PRES_OFFSET:dc.w 0 ; DATA XREF: sub_4CD5E+1D6r dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 X_PRESSURE_KV_UPSHFT_VS_BRAKING_PRES_OFFSET:dc.w 0 ; DATA XREF: sub_4CD5E+1C8r dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 X_PRESSURE_KE_BRAKING_VS_SS_PRES_OFFSET:dc.w 0 ; DATA XREF: sub_4CD5E+1E4r ; sub_4CD5E+1FAr X_PRESSURE_KE_GS_PRESSURE_DIFFERENCE:dc.w 0 ; DATA XREF: sub_4CD5E+B2r ; sub_4CD5E+C2r ... X_RATIO_KV_UPSHIFT_DELAY_TIME_MIN:dc.b 0 ; Minimum time allowed fro shift delay. If Time_Since_Shift _Init is greater than this, shift_State is set to shifting. ; Seconds dc.b $20 dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $20 X_RATIO_KE_USE_ACTUAL_ENGINE_TORQUE:dc.b 0 ; DATA XREF: sub_4D13A+4r ; IF true, set MRatio_Engine_Torque to Actual_Engine_Torque, otherwise, set to Unmanaged_Engine_Out_Torque. ; T/F dc.b $FF X_RATIO_KE_MRATIO_ENG_TORQ_FILTER_COEFF:dc.w $8000 ; DATA XREF: sub_4D13A:loc_4D178r ; Filter coefficient for filtering MRatio_Engine_Torque. ; Coeff X_RATIO_KE_TCC_PRESSURE_FILTER_COEFF:dc.w $8000 ; DATA XREF: sub_4D13A:loc_4D232r ; Filter coefficient for filtering calculated TCC Pressure. ; Coeff X_RATIO_KE_MRATIO_SLIP_FILTER_COEFF:dc.w $8000 ; DATA XREF: sub_4D13A:loc_4D6ECr ; Filter coefficient for filtering calculated TCC slip. ; Coeff X_RATIO_KE_RATIO_ERROR_FILTER_COEFF:dc.w $4000 ; DATA XREF: sub_4CFF8+F6r ; Filter coefficient for filtering ratio error. ; Coeff X_RATIO_KE_ENG_INERTIA:dc.w 0 ; DATA XREF: sub_4D13A+86r ; Moment of inertia for calculating Inertia Torque. ; Kg-m-m X_RATIO_KE_TCC_OFFSET:dc.w $140 ; DATA XREF: sub_4D13A+10Er ; Pressure offset subtracted from filtered TCC Pressure. ; PSI X_RATIO_KE_TCC_GAIN:dc.w $6666 ; DATA XREF: sub_4D13A:loc_4D252r ; Gain multiplied with filtered TCC Pressure minus offset to yield TCC Torque. ; Ftlb/PSI X_RATIO_KE_KFACT_E_TORQUE_HI:dc.w 0 ; DATA XREF: sub_4D13A:loc_4D2E0r ; sub_4D13A:loc_4D2FEr ... ; Calibration above which K Factor Torque Compensation is set to zero. ; Ftlb X_RATIO_KE_KFACT_E_TORQUE_LO:dc.w 0 ; DATA XREF: sub_4D13A:loc_4D2EEr ; sub_4D13A+1CAr ; Calibration below which K Factor Torque Compensation is set to KE_KFact_Offset_At_Lo_Torq. ; Ftlb X_RATIO_KE_KFACT_OFFSET_AT_LO_TORQ:dc.w $A00 ; DATA XREF: sub_4D13A+1BCr ; sub_4D13A+202r ; K Factor Torque Compensation when MRatio_Engine_Torque is less than a calibration. ; RPM/SQRTNM X_RATIO_KE_TEMP_COMP_AT_MINUS_40:dc.w $A00 ; DATA XREF: sub_4D13A+262r ; K Factor Temperature Compensation at minus 40 degrees. ; RPM/SQRTNM X_RATIO_KE_TEMP_COMP_START:dc.w $FFCA ; DATA XREF: sub_4D13A:loc_4D358r ; sub_4D13A+234r ; Transmission Temperature above which K Factor Temperature compensation returns to zero. ; Degrees_C X_RATIO_KE_SQRT_STEP:dc.w $80 ; DATA XREF: sub_4D13A+150r ; sub_4D13A+178r ; Used to determine the step size of KV_Sqrt_Torque Table ; N_Meter X_RATIO_KV_SQRT_TORQUE:dc.w 0 ; DATA XREF: sub_4D13A+17Er ; Square root of torque (in Newton-meters) used in the calculation for K_Factor_wo_Compensation. ; SQRT_N_Meter dc.b $2D ; - dc.b $41 ; A dc.b $40 ; @ dc.b 0 dc.b $4E ; N dc.b $62 ; b dc.b $5A ; Z dc.b $82 ; ? dc.b $65 ; e dc.b $31 ; 1 dc.b $6E ; n dc.b $DA ; ? dc.b $77 ; w dc.b $BC ; ? dc.b $80 ; ? dc.b 0 dc.b $87 ; ? dc.b $C4 ; ? dc.b $8F ; ? dc.b $1C dc.b $96 ; ? dc.b $18 dc.b $9C ; ? dc.b $C4 ; ? dc.b $A3 ; ? dc.b $2B ; + dc.b $A9 ; ? dc.b $54 ; T dc.b $AF ; ? dc.b $45 ; E dc.b $B5 ; ? dc.b 5 X_RATIO_KE_ADAPT_AT_OR_ABOVE_GEAR:dc.b 1 ; DATA XREF: sub_4D13A+364r ; Gear below which adapt of K_Factor is disabled. ; Gear dc.b $FF X_RATIO_KE_ADAPT_HI_TORQUE:dc.w $1770 ; DATA XREF: sub_4D13A+37Ar ; MRatio_Engine_Torque above which adapt of the K_Factor is disabled. ; Ftlb X_RATIO_KE_ADAPT_LO_TORQUE:dc.w $12C ; DATA XREF: sub_4D13A+382r ; MRatio_Engine_Torque below which adapt of the K_Factor is disabled. ; Ftlb X_RATIO_KE_ADAPT_MIN_S_RATIO:dc.b $53 ; DATA XREF: sub_4D13A:loc_4D522r ; Speed Ratio below which adapt of the K_Factor is disabled. ; Factor_0_To_2 dc.b $FF X_RATIO_KE_ADAPT_MIN_TRANS_TEMP:dc.w 0 ; DATA XREF: sub_4D13A+410r ; Transmission Temperature below which adapt of the K_Factor is disabled. ; Degrees_C X_RATIO_KE_ADAPT_RATIO_LOW_MULT:dc.b $7D ; DATA XREF: sub_4D13A+438r ; The Adapt_Time_Counter is decremented when modeled ratio is less than Ratio multiplied by this calibration. ; Factor_0_T0_2 X_RATIO_KE_ADAPT_RATIO_HIGH_MULT:dc.b $83 ; DATA XREF: sub_4D13A+486r ; The Adapt_Time_Counter is incremented when modeled ratio is greater than Ratio multiplied by this calibration. ; Factor_0_To_2 X_RATIO_KE_ADAPT_TIME_COUNTER:dc.w $80 ; DATA XREF: sub_4D13A+4C0r X_RATIO_KE_ADAPT_LIMIT:dc.w $A00 ; DATA XREF: sub_4D13A:loc_4D646r ; The Adapt_K_Factor is limited to this value. ; RPM/SQRTNM X_RATIO_KE_ADAPT_RANGE:dc.w $1400 ; DATA XREF: sub_4D13A+308r ; sub_4D13A+328r X_RATIO_KE_COUPLING_KFACT_OR_ABV:dc.w $4B00 ; DATA XREF: sub_4D13A+530r ; sub_4D774+2r ... X_RATIO_KE_KFACT_STEP:dc.w $B80 ; DATA XREF: sub_4D774:loc_4D786r ; sub_4D774+62r ... ; Used to determine the step size of KV_Trq_Cnv_SRatio Table. ; RPM/SQRTNM X_RATIO_KV_TRQ_CNV_SRATIO:dc.l off_0+2 ; DATA XREF: sub_4D13A:loc_4D480o ; This calibration is used in the calculation of Speed Ratio. ; Factor_0_To_2 dc.b $15 dc.b $25 ; % dc.b $31 ; 1 dc.b $3A ; : dc.b $42 ; B dc.b $4A ; J dc.b $50 ; P dc.b $56 ; V dc.b $5B ; [ dc.b $60 ; ` dc.b $65 ; e dc.b $68 ; h dc.b $6A ; j dc.b $FF X_RATIO_KE_SNGLE_CAL_COUPLING_APPROX:dc.w $5E88 ; DATA XREF: sub_4D13A:loc_4D6A8r X_SEM_KE_SEM_NO_REDUCTION:dc.w 0 ; DATA XREF: sub_582B0+256r ; sub_582B0:loc_5852Cr ... ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent X_SHIFT_KE_VEHICLE_SPEED_RATIO:dc.w $8D5C ; DATA XREF: sub_4ED50+1Cr ; sub_5436E+7D0r ; Output_Speed / Vehicle_Speed Ratio. ; 60 RPMI X_SHIFT_KV_MAX_GEAR_TABLE:dc.b 1 ; DATA XREF: sub_4DD5C+D72r ; sub_5A6A0+33Ar ; Maximum allowable gear based of range selector. ; Gear dc.b 1 dc.b 2 dc.b 3 X_SHIFT_KE_SHIFT_CAUSED_BY_RANGE_TIME:dc.w 0 ; DATA XREF: sub_4DD5C+E92r ; Time used to determine a shift caused be a range change. ; Seconds X_SHIFT_KE_URBAN_ABOVE_MPH:dc.w $500 ; DATA XREF: sub_4DD5C+4BEr ; sub_4DD5C+660r ; This calibration disables urban conditions if you are above this cal for KE_Urban_Above_MPH_Time. ; MPH X_SHIFT_KE_URBAN_ABOVE_MPH_TIME:dc.w $12C0 ; DATA XREF: sub_4DD5C:loc_4E238r ; sub_4DD5C:loc_4E3DAr ... ; This calibration is used to disable the Urban Pattern if time has expired. ; Secs X_SHIFT_KE_URBAN_BARO:dc.b $73 ; DATA XREF: sub_4DD5C+508r ; sub_4DD5C+6B4r X_SHIFT_KE_URBAN_COOLANT_TEMP:dc.b $9A ; DATA XREF: sub_4DD5C+514r ; sub_4DD5C+6C0r X_SHIFT_KE_URBAN_HI_TIME:dc.w $12C0 ; DATA XREF: sub_4DD5C+560r ; sub_4DD5C+71Cr X_SHIFT_KE_URBAN_LO_TIME:dc.w $A0 ; DATA XREF: sub_4DD5C+558r ; sub_4DD5C+714r X_SHIFT_KE_URBAN_MPH_HIGH:dc.w $2200 ; DATA XREF: sub_4DD5C+694r ; This calibration is used as an upper bound for the range that vehicle speed must be in to meet a condition for the urban tests. ; MPH X_SHIFT_KE_URBAN_MPH_LOW:dc.w $1D00 ; DATA XREF: sub_4DD5C+68Cr ; This calibration is used as a lower bound for the range that vehicle speed must be in to meet a condition for the urban tests. ; MPH X_SHIFT_KE_DISABLE_URBAN_DUE_TO_4WD_LO:dc.b 1 ; DATA XREF: sub_4DD5C:loc_4E43Ar X_SHIFT_KE_DISABLE_URBAN_DUE_TO_CRUISE:dc.b 1 ; DATA XREF: sub_4DD5C+6D6r X_SHIFT_KE_URBAN_ENG_BRAKE_MPH:dc.w 0 ; DATA XREF: sub_4DD5C+48Cr ; sub_4DD5C+600r ; This is the threshold which Urban_Vehicle_Speed must be greater than in order to satisfy urban engine braking conditions. ; MPH X_SHIFT_KE_URBAN_ENG_BRAKE_THR:dc.w 0 ; DATA XREF: sub_4DD5C+47Er X_SHIFT_KE_URBAN_ENG_BRAKE_TIME:dc.w 0 ; DATA XREF: sub_4DD5C:loc_4E20Cr ; sub_4EE50+8r ; This specifies how long the vehicle must be in urban engine braking conditions before exiting urban conditions. ; Secs X_SHIFT_KE_DRIVE_LOW_URBAN_TEST_ENABLE:dc.b 0 ; DATA XREF: sub_4DD5C:loc_4E1CCr dc.b $FF X_SHIFT_KE_URBAN_THROTTLE:dc.w $599A ; DATA XREF: sub_4DC04+44r ; sub_4DD5C+6A8r ; If throttle is greater than this cal and Urban conditions are met we want to delay downshift to reduce noise emmisions. ; % X_SHIFT_KE_VEH_ACCELERATION_FILTER_COEFF:dc.w 0 ; DATA XREF: sub_4ED50+54r ; Lag filter coefficient for filtering vehicle acceleration. ; Coeff X_SHIFT_KE_WHEEL_SLIP_FILTER_COEFF:dc.w $FF ; DATA XREF: sub_4DC04+60r ; sub_4ED50+98r ; The filter coefficient for filtering the wheel slip acceleration ; None X_SHIFT_KV_DELAY_DOWNSHIFT_TIMER:dc.b $D ; Amount of time to delay downshift when noise cond. met. ; Seconds dc.b $C0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 X_SHIFT_KV_SHIFT_STABLE_OVERALL_RATIO:dc.w $45CE ; DATA XREF: sub_4DD5C+6Ar ; sub_4DD5C+BCr ... dc.b $25 ; % dc.b $88 ; ? dc.b $17 dc.b $E8 ; ? dc.b $10 dc.b $B8 ; ? X_SHIFT_KV_TRQ_CONV_K_FACTOR:dc.w $30 ; DATA XREF: sub_4DD5C:loc_4DE48r ; Used to calculate the current torque converter K factor. ; KFactor dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $35 ; 5 dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $3A ; : dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3F ; ? dc.b 0 dc.b $43 ; C dc.b 0 dc.b $59 ; Y dc.b 1 byte_1D4A5: dc.b 0 ; DATA XREF: sub_4DD5C+10Ar X_SHIFT_KV_UPSHIFT_K_FACTOR_RATIO:dc.b $64 ; d ; Used to calculate predicted ( after upshift ) torque converter K factor from the current K factor. ; Ratio dc.b $83 ; ? dc.b $F1 ; ? dc.b $FF X_SHIFT_KV_PRED_TRQ_CONV_SPD_RATIO:dc.w 0 ; DATA XREF: sub_4DD5C:loc_4DE88r ; Used to calculate the predicted torque converter speed ratio. ; Ratio dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 2 dc.b $15 dc.b 9 dc.b $E9 ; ? dc.b $B dc.b $65 ; e dc.b $B dc.b $CB ; ? dc.b $C dc.b $30 ; 0 dc.b $C dc.b $5B ; [ dc.b $C dc.b $76 ; v dc.b $C dc.b $9D ; ? dc.b $C dc.b $C4 ; ? dc.b $C dc.b $DE ; ? dc.b $D dc.b 5 dc.b $D dc.b 5 dc.b $D dc.b 5 X_SHIFT_KV_DS_SOLENOID_DELAY_TIME:dc.b $10 ; DATA XREF: sub_4DD5C+E5Cr ; The amount of time to delay the state change of the shift solenoidfor downshift. ; Seconds dc.b 0 dc.b 0 dc.b $FF X_SHIFT_KV_DS_JUMP_SOLENOID_DELAY_TIME:dc.b 0 ; DATA XREF: sub_4DD5C+E46r ; The amount of time to delay the state change of the shift solenoidfor a jump downshift. ; Seconds byte_1D4D1: dc.b 0 ; DATA XREF: sub_4DD5C+64Er X_SHIFT_KV_URBAN_TEST_ENABLED:dcb.b 2,0 ; This is a calibration table based on Range which will enable the urban test for the specified PRNDL Range. ; T/F dc.b 1 dc.b $FF X_SHIFT_KV_STABIL_DISABLE_VEH_ACCEL_HI:dc.w 0 ; DATA XREF: sub_4ED50+DCr ; If Vehicle acceleration is grater than this cal then shift stabilization is disabled. ; MPH_per_Second_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 X_SHIFT_KV_STABIL_DISABLE_VEH_ACCEL_LO:dc.w 0 ; DATA XREF: sub_4ED50:loc_4EE3Er ; If Vehicle acceleration is less than this cal then shift stabilization is enabled. ; MPH_per_Second_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 X_SHIFT_KA_SHIFT_STABLE_ENG_TORQUE:dc.l off_0+$46 ; DATA XREF: sub_4DD5C+3Ao ; sub_4DD5C+A0o ... ; Used to calculate normalized engine torque for the shift stabilization algorithm. ; Norm Torque dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $B4 ; ? dc.b 0 dc.b $D2 ; ? dc.b 0 dc.b $DD ; ? dc.b 0 dc.b $E0 ; ? dc.b 0 dc.b $E1 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E3 ; ? dc.b 0 dc.b $E7 ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $2B ; + dc.b 0 dc.b $75 ; u dc.b 0 dc.b $B9 ; ? dc.b 0 dc.b $E5 ; ? dc.b 0 dc.b $F4 ; ? dc.b 0 dc.b $FB ; ? dc.b 0 dc.b $FE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $4E ; N dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $DF ; ? dc.b 1 dc.b 0 dc.b 1 dc.b $D dc.b 1 dc.b $13 dc.b 1 dc.b $15 dc.b 1 dc.b $16 dc.b 1 dc.b $17 dc.b 1 dc.b $16 dc.b 1 dc.b $16 dc.b 1 dc.b $16 dc.b 1 dc.b $16 dc.b 1 dc.b $16 dc.b 1 dc.b $16 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2F ; / dc.b 0 dc.b $72 ; r dc.b 0 dc.b $CB ; ? dc.b 0 dc.b $FE ; ? dc.b 1 dc.b $14 dc.b 1 dc.b $1D dc.b 1 dc.b $21 ; ! dc.b 1 dc.b $23 ; # dc.b 1 dc.b $25 ; % dc.b 1 dc.b $24 ; $ dc.b 1 dc.b $24 ; $ dc.b 1 dc.b $25 ; % dc.b 1 dc.b $26 ; & dc.b 1 dc.b $25 ; % dc.b 1 dc.b $25 ; % dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $19 dc.b 0 dc.b $58 ; X dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $ED ; ? dc.b 1 dc.b $B dc.b 1 dc.b $1A dc.b 1 dc.b $22 ; " dc.b 1 dc.b $26 ; & dc.b 1 dc.b $28 ; ( dc.b 1 dc.b $2B ; + dc.b 1 dc.b $2D ; - dc.b 1 dc.b $2D ; - dc.b 1 dc.b $2D ; - dc.b 1 dc.b $2E ; . dc.b 1 dc.b $2D ; - dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 2 dc.b 0 dc.b $3F ; ? dc.b 0 dc.b $93 ; ? dc.b 0 dc.b $DC ; ? dc.b 1 dc.b 6 dc.b 1 dc.b $1A dc.b 1 dc.b $24 ; $ dc.b 1 dc.b $2A ; * dc.b 1 dc.b $2D ; - dc.b 1 dc.b $32 ; 2 dc.b 1 dc.b $33 ; 3 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $35 ; 5 dc.b 1 dc.b $35 ; 5 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $2D ; - dc.b 0 dc.b $7B ; { dc.b 0 dc.b $C9 ; ? dc.b 0 dc.b $FB ; ? dc.b 1 dc.b $16 dc.b 1 dc.b $25 ; % dc.b 1 dc.b $2D ; - dc.b 1 dc.b $31 ; 1 dc.b 1 dc.b $36 ; 6 dc.b 1 dc.b $38 ; 8 dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $3A ; : dc.b 1 dc.b $3A ; : dc.b 1 dc.b $3A ; : dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $1F dc.b 0 dc.b $67 ; g dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $EE ; ? dc.b 1 dc.b $F dc.b 1 dc.b $22 ; " dc.b 1 dc.b $2F ; / dc.b 1 dc.b $35 ; 5 dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $3B ; ; dc.b 1 dc.b $3C ; < dc.b 1 dc.b $3D ; = dc.b 1 dc.b $3E ; > dc.b 1 dc.b $3E ; > dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $10 dc.b 0 dc.b $53 ; S dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $E4 ; ? dc.b 1 dc.b $D dc.b 1 dc.b $23 ; # dc.b 1 dc.b $30 ; 0 dc.b 1 dc.b $37 ; 7 dc.b 1 dc.b $3B ; ; dc.b 1 dc.b $3E ; > dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $41 ; A dc.b 1 dc.b $42 ; B dc.b 1 dc.b $42 ; B dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 3 dc.b 0 dc.b $43 ; C dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $D3 ; ? dc.b 1 dc.b 3 dc.b 1 dc.b $22 ; " dc.b 1 dc.b $32 ; 2 dc.b 1 dc.b $3C ; < dc.b 1 dc.b $42 ; B dc.b 1 dc.b $46 ; F dc.b 1 dc.b $48 ; H dc.b 1 dc.b $4A ; J dc.b 1 dc.b $4C ; L dc.b 1 dc.b $4C ; L dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $7B ; { dc.b 0 dc.b $C1 ; ? dc.b 0 dc.b $F8 ; ? dc.b 1 dc.b $19 dc.b 1 dc.b $2E ; . dc.b 1 dc.b $39 ; 9 dc.b 1 dc.b $41 ; A dc.b 1 dc.b $46 ; F dc.b 1 dc.b $49 ; I dc.b 1 dc.b $4C ; L dc.b 1 dc.b $4D ; M dc.b 1 dc.b $4D ; M dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $26 ; & dc.b 0 dc.b $69 ; i dc.b 0 dc.b $AF ; ? dc.b 0 dc.b $E7 ; ? dc.b 1 dc.b $F dc.b 1 dc.b $27 ; ' dc.b 1 dc.b $35 ; 5 dc.b 1 dc.b $3E ; > dc.b 1 dc.b $45 ; E dc.b 1 dc.b $48 ; H dc.b 1 dc.b $4B ; K dc.b 1 dc.b $4D ; M dc.b 1 dc.b $4D ; M dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $19 dc.b 0 dc.b $58 ; X dc.b 0 dc.b $9B ; ? dc.b 0 dc.b $D6 ; ? dc.b 1 dc.b 0 dc.b 1 dc.b $1A dc.b 1 dc.b $2A ; * dc.b 1 dc.b $35 ; 5 dc.b 1 dc.b $3C ; < dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $43 ; C dc.b 1 dc.b $45 ; E dc.b 1 dc.b $45 ; E dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $B dc.b 0 dc.b $48 ; H dc.b 0 dc.b $85 ; ? dc.b 0 dc.b $BF ; ? dc.b 0 dc.b $EA ; ? dc.b 1 dc.b 5 dc.b 1 dc.b $15 dc.b 1 dc.b $1A dc.b 1 dc.b $20 dc.b 1 dc.b $24 ; $ dc.b 1 dc.b $27 ; ' dc.b 1 dc.b $29 ; ) dc.b 1 dc.b $29 ; ) dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b $6E ; n dc.b 0 dc.b $A1 ; ? dc.b 0 dc.b $CB ; ? dc.b 0 dc.b $E6 ; ? dc.b 0 dc.b $F5 ; ? dc.b 1 dc.b 1 dc.b 1 dc.b 7 dc.b 1 dc.b $B dc.b 1 dc.b $F dc.b 1 dc.b $11 dc.b 1 dc.b $12 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $1F dc.b 0 dc.b $55 ; U dc.b 0 dc.b $81 ; ? dc.b 0 dc.b $A9 ; ? dc.b 0 dc.b $C3 ; ? dc.b 0 dc.b $D3 ; ? dc.b 0 dc.b $E5 ; ? dc.b 0 dc.b $EC ; ? dc.b 0 dc.b $F0 ; ? dc.b 0 dc.b $F3 ; ? dc.b 0 dc.b $F6 ; ? dc.b 0 dc.b $F8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $3F ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $E2 ; ? dc.b 1 dc.b 4 dc.b 1 dc.b $14 dc.b 1 dc.b $21 ; ! dc.b 1 dc.b $28 ; ( dc.b 1 dc.b $2B ; + dc.b 1 dc.b $2E ; . dc.b 1 dc.b $32 ; 2 dc.b 1 dc.b $35 ; 5 dc.b 1 dc.b $38 ; 8 dc.b 1 dc.b $3B ; ; X_SHIFT_KE_LIFT_FOOT_TIME:dc.w 0 ; DATA XREF: sub_4DCF2+1Er ; sub_4DCF2+3Er ; Time to inhibit upshift once power off inhibiting is triggered. ; seconds X_SHIFT_KE_POWER_ON_THROTTLE:dc.w 0 ; DATA XREF: sub_4DD5C+2F4r ; The rate of change in throttle which is considered apower-on manuver. ; %/sec X_SHIFT_KE_SHIFT_STAB_DELTHR_LFTFT:dc.w 0 ; DATA XREF: sub_4DCF2+Cr ; Threshold of rate of change of throttle to trigger power offshift stabilization. ; %/sec X_SHIFT_KE_SHIFT_STAB_POWER_ON_TIME:dc.w 0 ; DATA XREF: sub_4DD5C+2FCr ; The time to freeze the power-off vehicle torque modifier duringa power-on manuever. ; Seconds X_SHIFT_KE_VEHICLE_ACCELERATING_MAX:dc.w 0 ; DATA XREF: sub_4DD5C+414r ; Maximum acceleration defining steady state within shiftstabilization power off routine. ; MPH/Sec X_SHIFT_KE_VEHICLE_ACCELERATING_MIN:dc.w 0 ; DATA XREF: sub_4DD5C+408r ; Minimum acceleration defining steady state within shiftstabilization power off routine. ; MPH/Sec X_SHIFT_KE_SHIFT_STAB_UPSHF_DELAY_TIME:dc.w 0 ; DATA XREF: sub_4DB06:loc_4DB3Er X_SHIFT_KV_PRED_BASE_NORM_VEH_TORQUE:dc.w 0 ; DATA XREF: sub_4DD5C:loc_4E0A8r ; Normalized Tractive Effort on a level road table used in theShift Stabilization power off rountine. ; None dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 X_SHIFT_KV_VEH_TORQ_MOD_ERR_TABLE:dc.l 0 ; DATA XREF: sub_4DD5C:loc_4E19Cr dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 X_SHIFT_KE_VEH_TORQ_ERR_FILTCOEF:dc.b 0 ; DATA XREF: sub_4DD5C+398r ; Lag filter weighting used for Vehicle_Torque_Error used withinthe power off shift stabilization power off routine. ; NONE dc.b $FF X_SHIFT_KE_32_23_SOL_DELAY_TIME:dc.w 0 ; DATA XREF: sub_4DD5C+F48r ; Threshold delay time for the solenoid state change for 2-3 upshift after 3-2 downshift. ; Seconds X_SHIFT_KE_32_23_HIGH_TIME:dc.w 0 ; DATA XREF: sub_4DD5C+F18r ; If time since 3-2 downshift is greater than this, the 2-3 shift should not be delayed. ; Seconds X_SHIFT_KE_32_23_LOW_TIME:dc.w 0 ; DATA XREF: sub_4DD5C+F10r ; If time since 3-2 downshift is less than this, the 2-3 shift should not be delayed. ; Seconds X_SHIFT_KE_32_23_SOLENOID_DELAY_ENABLE:dc.b 0 ; DATA XREF: sub_4DD5C:loc_4EC04r ; 2-3 upshift solenoid state change delay is active after a 2-3 upshift. ; T/F dc.b $FF X_SHIFT_KV_ETC_STAB_DISABLED_MIN_GEAR:dc.b 0 ; DATA XREF: sub_4DD5C+8AAr ; Minimum gear that when manually selected disables the ETC shift stability algorithm. ; Gear dc.b 0 dc.b 0 dc.b 0 X_SHIFT_KV_ETC_STAB_OFFSET_TEMP_SCALAR:dc.w 0 ; DATA XREF: sub_4DD5C+8F0r ; Amount to scale the gear offset by as a function of temperature. ; Factor dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_1D7C4: dc.b 0 ; DATA XREF: sub_4EFF2+254o ; sub_4EFF2+302o ... dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 X_SHIFT_KE_ETC_STAB_1ST_GEAR_OFFSET:dc.b 0 ; DATA XREF: Boot:off_3FF4o ; First gear offset used to calculate the target maximum engine speed in the ETC shift stabilization algorithm. ; RPM dc.b 0 X_SHIFT_KE_ETC_STAB_2ND_GEAR_OFFSET:dc.b 0 ; DATA XREF: Boot:00003FF8o ; Second gear offset used to calculate the target maximum engine speed in the ETC shift stabilization algorithm. ; RPM dc.b 0 X_SHIFT_KE_ETC_STAB_3RD_GEAR_OFFSET:dc.b 0 ; Third gear offset used to calculate the target maximum engine speed in the ETC shift stabilization algorithm. ; RPM dc.b 0 X_SHIFT_KE_ETC_STAB_JUMP_DOWN_THRESHOLD:dc.w 0 ; DATA XREF: sub_4DD5C+AF0r ; sub_4DD5C+B02r ... ; Threshold for the difference between actual and target engine speed that causes the target to jump down. ; RPM X_SHIFT_KE_ETC_STAB_RPM_DECREASE_RATE:dc.w 0 ; DATA XREF: sub_4DD5C+B64r ; Rate at which the engine speed limit is ramped down. ; RPM/Sec X_SHIFT_KE_ETC_STAB_RPM_INCREASE_RATE:dc.w 0 ; DATA XREF: sub_4DD5C+BACr ; sub_4DD5C+C12r ; Rate at which the engine speed limit is ramped up. ; RPM/Sec X_SHIFT_KE_ETC_STAB_JUMP_UP_THRESHOLD:dc.w 0 ; DATA XREF: sub_4DD5C+BF0r ; Threshold for the difference between actual and target engine speed that causes the target to jump up. ; RPM X_SHIFT_KE_ETC_STAB_ENABLE:dc.b 0 ; DATA XREF: sub_4D97C+Ar ; sub_4DD5C+890r ; Boolean calibration to show if the ETC shift stabilization is enabled or disabled. ; T/F X_SHIFT_KE_ETC_SHIFT_STAB_ONCE_PER_GEAR:dc.b 1 ; DATA XREF: sub_4DD5C+C64r ; Boolean calibration to show whether to reactivate ETC Shift Stabilization. When FALSE, ETC Stabilization can be reactivated. ; T/F X_SHIFT_KV_DETENT_RPM_POINT_ENABLE:dc.b 0 ; DATA XREF: sub_4DB5C+56r ; This is a calibration table to enable or disable detent shiftstabilization. ; T/F dc.b 0 dc.b 0 dc.b 0 X_TIMING_KE_POSITIVE_DELTA_SHIFT_THROTTLE:dc.w $7AE ; DATA XREF: sub_4EFF2+174r ; Used to detect an increase in throttleby a specific amount. ; Percent X_TIMING_KE_NEGATIVE_DELTA_SHIFT_THROTTLE:dc.w $11EC ; DATA XREF: sub_4EFF2+1FAr ; Used to detect an increase in throttleby a specific amount. ; Percent X_TIMING_KE_MINIMUM_SHIFT_THROTTLE:dc.w $199A ; DATA XREF: sub_4EFF2+1A4r ; Used to detect when a minimum threshold throttle has been exceeded. ; Percent X_TIMING_KE_SHIFT_LIFTFOOT_THROTTLE:dc.w $15C3 ; DATA XREF: sub_4EFF2:loc_4F18Er ; Used to detect when a liftfoot throttle condition has taken place. ; Percent X_TIMING_KA_INERTIA_TORQUE:dc.l off_0+$5A ; Used to find Inertia_Torque ; Ft-lb dc.b 0 dc.b $B4 ; ? dc.b 1 dc.b $E dc.b 1 dc.b $7B ; { dc.b 1 dc.b $E6 ; ? dc.b 2 dc.b $58 ; X dc.b 2 dc.b $BC ; ? dc.b 3 dc.b $20 dc.b 3 dc.b $84 ; ? dc.b 3 dc.b $E8 ; ? dc.b 4 dc.b $4C ; L dc.b 4 dc.b $B0 ; ? Constant16_Transmission_Diagnostics_Calibration_Checksum:dc.b 5 dc.b $14 dc.b 5 dc.b $77 ; w Constant32_Transmission_Diagnostics_Calibration_ID:dc.b 5 dc.b $DB ; ? dc.b 6 dc.b $3F ; ? CurveTable_2_Columns_Transmission_Diagnostics_Calibration_Level:dc.l off_0+$4C ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. CurveTable_8_Columns_Transmission_Diagnostics_Calibration_ID_ASCII:dc.b 0 dc.b $97 ; ? dc.b 0 dc.b $E3 ; ? dc.b 1 dc.b $50 ; P dc.b 1 dc.b $A4 ; ? dc.b 1 dc.b $F8 ; ? dc.b 2 dc.b $4C ; L dc.b 2 dc.b $A0 ; ? dc.b 2 dc.b $E0 ; ? dc.b 3 dc.b $1C dc.b 3 dc.b $55 ; U dc.b 3 dc.b $A3 ; ? dc.b 3 dc.b $F0 ; ? dc.b 4 dc.b $3E ; > dc.b 4 dc.b $8B ; ? dc.b 4 dc.b $D9 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $3C ; < dc.b 0 dc.b $7A ; z dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $FF dc.b 1 dc.b $47 ; G dc.b 1 dc.b $92 ; ? dc.b 1 dc.b $E1 ; ? dc.b 2 dc.b $34 ; 4 dc.b 2 dc.b $8C ; ? dc.b 2 dc.b $E8 ; ? dc.b 3 dc.b $33 ; 3 dc.b 3 dc.b $7D ; } dc.b 3 dc.b $C7 ; ? dc.b 4 dc.b $12 dc.b 4 dc.b $5C ; \ dc.b 4 dc.b $A7 ; ? X_TIMING_KE_FRZ_SHFTTRQ_MAN_DNSHFT_TRQMNT:dc.b 0 ; DATA XREF: sub_4EFF2:loc_4F382r ; Enable/disable manual downshift inertia torque management. ; T/F dc.b $FF XOIL_LIFE_KE_TRANS_OIL_LIFE_TIME_TO_TEST:dc.w $12C0 ; DATA XREF: sub_555EA+8r ; Sampling period oftransmission oil temperature for transmission oil life. ; Seconds XOIL_LIFE_KV_TRANS_OIL_LIFE_COUNTER:dc.l 0 ; DATA XREF: sub_555EA+20r ; Counts to add to oil life counter based on transmission oil temperature. ; Seconds dword_1D854: dc.l 0 ; DATA XREF: sub_555EA+2Er dword_1D858: dc.l 0 ; DATA XREF: sub_555EA+3Cr dword_1D85C: dc.l 1 ; DATA XREF: sub_555EA+4Ar dword_1D860: dc.l 6 ; DATA XREF: sub_555EA+58r dword_1D864: dc.l $1A ; DATA XREF: sub_555EA+66r off_1D868: dc.l off_0+$54 ; DATA XREF: sub_555EA+74r ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. off_1D86C: dc.l off_0+$FF ; DATA XREF: sub_555EA:loc_55666r ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. XOIL_LIFE_KE_TRANS_OIL_LIFE_TIME_TO_CHANGE:dc.w $148 ; DATA XREF: sub_555EA:loc_556CEr ; Low threshold value of transmission oil life remaining. ; % XOIL_LIFE_KE_TRANS_OIL_LIFE_EXPECTANCY:dc.l $B08C18 ; DATA XREF: sub_555EA+AAr ; sub_555EA+BAr ... ; Transmission oil life expectancy. ; Counts XOIL_LIFE_KE_TRANS_OIL_LIFE_UPON_RESET:dc.w $7FFF ; DATA XREF: sub_55730+1Cr ; Default transmission oil life expectancy upon EEPROM reset. ; % dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF TRAN_DIAGNOSTICS_HEADER:dc.b $18 ; DATA XREF: DoManyThings1+29Co ; Use this cal to identify the Transmission Diag calibration ; Cal_ID_Record dc.b $5C ; \ dc.b 0 dc.b 5 unk_1D8B4: dc.b 0 ; DATA XREF: sub_269DE:loc_26A5Ao dc.b $BF ; ? dc.b $F1 ; ? dc.b $2B ; + unk_1D8B8: dc.b $41 ; A ; DATA XREF: sub_269DE:loc_26AFEo dc.b $4A ; J dc.b 0 dc.b 0 a12579115: dc.b '12579115',0 ; DATA XREF: sub_3F6FE+142o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_DIAGNOSTIC_TEST_ENABLED:dc.b 0 ; DATA XREF: sub_53F90:loc_54076r ; This parameter defines which diagnostics are enabled ; BOOLEAN byte_1D8CD: dc.b 0 ; DATA XREF: sub_51498+4r byte_1D8CE: dc.b 0 ; DATA XREF: sub_53F90+2r byte_1D8CF: dc.b 0 ; DATA XREF: sub_52CD6+2r byte_1D8D0: dc.b 0 ; DATA XREF: sub_52BE8+2r byte_1D8D1: dc.b 0 ; DATA XREF: sub_53008+2r byte_1D8D2: dc.b 0 ; DATA XREF: sub_52E70+4r byte_1D8D3: dc.b 0 ; DATA XREF: sub_53182:loc_53198r ; sub_5334E:loc_53360r ... byte_1D8D4: dc.b 0 ; DATA XREF: sub_53BDC+4r dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 byte_1D8DB: dc.b 0 ; DATA XREF: sub_5285A+18r ; sub_5285A+2A6r byte_1D8DC: dc.b 0 ; DATA XREF: sub_5285A+134r ; sub_5285A+248r byte_1D8DD: dc.b 0 ; DATA XREF: sub_53DDA:loc_53DFAr dc.b 0 byte_1D8DF: dc.b 0 ; DATA XREF: sub_4FCA2+4r byte_1D8E0: dc.b 0 ; DATA XREF: sub_4FCA2:loc_4FD9Er byte_1D8E1: dc.b 0 ; DATA XREF: sub_4F8C8+2r byte_1D8E2: dc.b 0 ; DATA XREF: sub_4FB1A+2r byte_1D8E3: dc.b 0 ; DATA XREF: sub_4F9F4+4r byte_1D8E4: dc.b 0 ; DATA XREF: sub_513C0+2r byte_1D8E5: dc.b 0 ; DATA XREF: sub_4FC18+4r byte_1D8E6: dc.b 0 ; DATA XREF: sub_50628+E6r byte_1D8E7: dc.b 0 ; DATA XREF: sub_50FB6+4r byte_1D8E8: dc.b 0 ; DATA XREF: sub_50C1C+ACr byte_1D8E9: dc.b 0 ; DATA XREF: sub_50EAA+2r byte_1D8EA: dc.b 0 ; DATA XREF: sub_5195C+4r byte_1D8EB: dc.b 0 ; DATA XREF: sub_503CAr dcb.b 4,0 byte_1D8F0: dc.b 0 ; DATA XREF: sub_505A4+4r dc.b $FF T_DG_TYPES_KV_FREEZE_ECCC_ADAPT_MALF:dc.b 0 ; DATA XREF: sub_4F726:loc_4F814r ; Diagnostic faults which will cause the ECCC adapts to be frozen. ; True/False dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_DIAGNOSTIC_ACTION_ENABLED:dc.b 0 ; DATA XREF: sub_4F5D0+6Er ; This parameter defines which action for the corresponding diagnostic faults are enabled. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 byte_1D96A: dc.b 0 ; DATA XREF: sub_4F5D0+B8r dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_FAULT_DIAGNOSTIC_RECOVER_INFO:dc.b 0 ; DATA XREF: sub_4F5D0+78r ; This parameter defines which diagnostic tests are Fault_Active or Fault_Active_This_Key_On. ; F_A/This_Key_On dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_SPEED_LIMIT_DEFAULT_GEAR_MALF:dc.b 0 ; DATA XREF: sub_4F726+Er ; Dianostic faults which will cause thedefault gear action to occur ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_SPEED_LIMIT_SOFT_LANDING_MALF:dc.b 0 ; DATA XREF: sub_4F726:loc_4F744r ; Diagnostic faults which will cause softlanding to occur ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_DISABLE_32_MALFUNCTIONS:dc.b 0 ; DATA XREF: sub_4F726+3Ar ; Diagnostic faults which will cause the 3-2 pressure bias remedial action to be taken ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_INHIBIT_SEM_MALFUNCTIONS:dc.b 0 ; DATA XREF: sub_4F726:loc_4F884r ; Diagnostic faults which will cause the SEM disabled remedial action to be taken. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_DEFAULT_GEAR_MALFUNCTIONS:dc.b 0 ; DATA XREF: sub_4F726:loc_4F824r ; Diagnostic faults which will cause default gear action to be taken ; True/False dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_SOFT_LANDING_MALFUNCTIONS:dc.b 0 ; DATA XREF: sub_4F726:loc_4F834r ; Diagnostic faults which will cause soft landing action to be taken ; True/False dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_LIMIT_GEAR_MALFUNCTIONS:dc.b 0 ; DATA XREF: sub_4F726:loc_4F844r ; Diagnostic faults which will cause limiting gear action to be taken ; True/False dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_LIMIT_GEAR_TRANS_HOT_MALF:dc.b 0 ; DATA XREF: sub_4F726:loc_4F864r ; Diagnostic faults which will cause limiting gear action to be taken ; True/False dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_INHIBIT_DOWN_TO_SECOND:dc.b 0 ; DATA XREF: sub_4F726:loc_4F874r ; Diagnostic faults will result in inhibiting downshift to second. ; True/False dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_DIAGNOSTIC_FM_OVERRIDE:dc.b 0 ; DATA XREF: sub_4F726+4Er ; Diagnostic faults which will cause disabling FM action to be taken. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_DRIVE_2_PRESSURE_MALFUNCTIONS:dc.b 0 ; DATA XREF: sub_4F726:loc_4F784r ; Diagnostic faults which will cause drive 2 pressure schedule action to be taken. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_MAXIMUM_PRESSURE_MALFUNCTIONS:dc.b 0 ; DATA XREF: sub_4F726:loc_4F794r ; Diagnostic faults which will cause maximum pressure action to be taken. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_FREEZE_ADAPT_MALFUNCTIONS:dc.b 0 ; DATA XREF: sub_4F726:loc_4F7A4r ; Diagnostic faults which will cause the freezing of the adaptive pressure modifier to be taken. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_TORQUE_PRESSURE_OFFSET_MALF:dc.b 0 ; DATA XREF: sub_4F726:loc_4F7B4r ; Diagnostic faults that disable the torque pressure offsets. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_ENGINE_TORQUE_MALFUNCTION:dc.b 0 ; DATA XREF: sub_4F726:loc_4F7C4r ; Diagnostic faults that involvethe Engine Torque Calc. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_TCC_OFF_MALFUNCTIONS:dc.b 0 ; DATA XREF: sub_4F726:loc_4F7D4r ; Diagnostic faults which will cause the TCC be turned off action to be taken ; True/False dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_APPLY_IN_4TH_MALFUNCTIONS:dc.b 0 ; DATA XREF: sub_4F726:loc_4F7E4r ; Diagnostic faults which will cause the TCC applying in 4th gear action to be taken ; True/False dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_TCC_INHIBIT_OUTPUTS_MALFS:dc.b 0 ; DATA XREF: sub_4F726:loc_4F7F4r ; Diagnostic faults which will cause the TCC output to be inhibited. ; True/False dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KV_APPLY_IN_3RD_OR_4TH_MALFS:dc.b 0 ; DATA XREF: sub_4F726:loc_4F804r ; Defines which diagnostic faults will resultin the TCC applying in 3rd or 4th gear. ; True/False dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 T_DG_TYPES_KE_SOFT_LIMIT_GEAR_MALF:dc.b 0 ; DATA XREF: sub_4F726+128r ; TRUE indicates soft limit max gear is desired. FALSE indicates immediate limit max gear is desired for diagnostic action. ; True/False XDT_COMMON_KE_DISABLE_DIAG_FOR_PTO:dc.b 1 ; DATA XREF: DoLoopC+19Cr ; DoLoopE+EAr ... ; To disable diagnostics when PTO is active, set this to TRUE. ; T/F XDTA_CTCC_KE_TCC_CTRL_SOLENOID_TOTAL_MAX:dc.b $32 ; DATA XREF: sub_4F8C8+114r ; Number of times that the TCC control solenoid status can be tested before the test counters are reset. ; Counts XDTA_CTCC_KE_TCC_CTRL_SOLENOID_FAIL_MAX:dc.b $2B ; DATA XREF: sub_4F8C8+A0r ; Number of times that an illegal TCC control solenoid status must be seen before the fault is set. ; Counts XDTA_CTCC_KE_TCC_CTRL_SOLENOID_PASS_MAX:dc.b $2B ; DATA XREF: sub_4F8C8+DAr ; Number of times that a valid TCC control solenoid status must be seen before the fault is passed. ; Counts dc.b $FF XDTA_CTCC_KE_TCC_CTRL_DUTY_CYCLE_HIGH:dc.w $7333 ; DATA XREF: sub_4F8C8+50r ; TCC DutyCycle(Capacity)should be ABOVE this threshold to enablethe test for TCC control solenoid ; Percent XDTA_CTCC_KE_TCC_CTRL_DUTY_CYCLE_LOW:dc.w $CCD ; DATA XREF: sub_4F8C8+58r ; TCC DutyCycle(Capacity)should be BELOW this threshold to enablethe test for TCC control solenoid ; Percent XDTA_CTCC_KE_DIAG_TCC_CS_SYS_VOLT_TIME:dc.w 0 ; DATA XREF: sub_4F8C8+40r ; TCC control solenoid output will not be tested if ignition voltage is out of range for longer than this. ; Seconds XDTA_D32_KE_D32_SOLENOID_FAIL_COUNT:dc.b $2B ; DATA XREF: sub_4F9F4+9Ar ; Number of times that an illegal downshift 3-2 solenoid status must be seen before the fault is set. ; Counts XDTA_D32_KE_D32_SOLENOID_PASS_COUNT:dc.b $2B ; DATA XREF: sub_4F9F4+EAr ; Number of times that a legal downshift 3-2 solenoid status must be seen before the fault is cleared. ; Counts XDTA_D32_KE_D32_SOLENOID_TEST_COUNT:dc.b $32 ; DATA XREF: sub_4F9F4+10Cr ; Total number of times that a legal/ illegal downshift 3-2 solenoid status must be seen before the test counters are reset. ; Counts dc.b $FF XDTA_D32_KE_DIAG_32DSO_SYS_VOLT_TIME:dc.w 0 ; DATA XREF: sub_4F9F4+42r ; 3-2 downshift solenoid output will not be tested if ignition voltage is out of range for longer than this. ; Seconds XDTA_ETCC_KE_TCC_ENABLE_FAIL_COUNT:dc.b $2B ; DATA XREF: sub_4FB1A+8Ar ; Number of times that an illegal TCC Enable solenoid status must be seen before the fault is set. ; Counts XDTA_ETCC_KE_TCC_ENABLE_PASS_COUNT:dc.b $2B ; DATA XREF: sub_4FB1A+C4r ; Number of times that a legal TCC Enable solenoid status must be seen before the fault is cleared. ; Counts XDTA_ETCC_KE_TCC_ENABLE_MAX_COUNT:dc.b $32 ; DATA XREF: sub_4FB1A+E6r ; Total number of times that a legal/illegal TCC Enable solenoid status must be seen before the counters are reset. ; Counts dc.b $FF XDTA_ETCC_KE_DIAG_TCC_ENABLE_SO_SVOLT_TIME:dc.w 0 ; DATA XREF: sub_4FB1A+40r ; TCC enable solenoid output will not be tested if ignition voltage is out of range for longer than this. ; Seconds XDTA_SHIFT_SOL_KE_SHIFT_SOLENOID_A_FAIL_COUNT:dc.b $2B ; DATA XREF: sub_4FCA2+8Cr ; The number of times an invalid status on solenoid A must be seen before the diagnostic fault is set. ; Counts XDTA_SHIFT_SOL_KE_SHIFT_SOLENOID_A_MAX_COUNT:dc.b $32 ; DATA XREF: sub_4FCA2+E8r ; The number of times solenoid A must be tested before resetting all solenoid A diagnostic counters. ; Counts XDTA_SHIFT_SOL_KE_SHIFT_SOLENOID_A_PASS_COUNT:dc.b $2B ; DATA XREF: sub_4FCA2+C6r ; The number of times a valid status on solenoid A must be seen before the pass condition is set. ; Counts XDTA_SHIFT_SOL_KE_SHIFT_SOLENOID_B_FAIL_COUNT:dc.b $2B ; DATA XREF: sub_4FCA2+184r ; The number of times an invalid status on solenoid B must be seen before the diagnostic fault is set. ; Counts XDTA_SHIFT_SOL_KE_SHIFT_SOLENOID_B_MAX_COUNT:dc.b $32 ; DATA XREF: sub_4FCA2+1E0r ; The number of times solenoid B must be tested before resetting all solenoid B diagnostic counters. ; Counts XDTA_SHIFT_SOL_KE_SHIFT_SOLENOID_B_PASS_COUNT:dc.b $2B ; DATA XREF: sub_4FCA2+1BEr ; The number of times a valid status on solenoid A must be seen before the pass condition is set. ; Counts XDTA_SHIFT_SOL_KE_DIAG_SSA_SYS_VOLT_TIME:dc.w 0 ; DATA XREF: sub_4FCA2+42r ; Shift solenoid A output will not be tested if ignition voltage is out of range for longer than this. ; Seconds XDTA_SHIFT_SOL_KE_DIAG_SSB_SYS_VOLT_TIME:dc.w 0 ; DATA XREF: sub_4FCA2+13Ar ; Shift solenoid B output will not be tested if ignition voltage is out of range for longer than this. ; Seconds XDTP_4W_LOW_KE_4WD_ETORQUE_LOW:dc.w 0 ; DATA XREF: OS2:00050166r ; Lower engine torque threshold to enable 4WD-Lo diagnostic. Used in a hysteresis pair with KE_4WD_Etorque_High. ; Ft_lb XDTP_4W_LOW_KE_4WD_ETORQUE_HIGH:dc.w $300 ; DATA XREF: OS2:00050170r ; Higher engine torque threshold to enable 4WD-Lo diagnostic. Used in a hysteresis pair with KE_4WD_Etorque_Low. ; Ft_lb XDTP_4W_LOW_KE_4WD_VAC_LOW_THRESH:dc.b $F ; DATA XREF: OS2:00050184r ; Lower engine vacuum threshold to enable 4WD-Lo diagnostic. Used in a hysteresis pair with KE_4WD_Vac_High_Thresh. ; kPa XDTP_4W_LOW_KE_4WD_VAC_HIGH_THRESH:dc.b $87 ; DATA XREF: OS2:00050196r ; Higher engine vacuum threshold to enable 4WD-Lo diagnostic. Used in a hysteresis pair with KE_4WD_Vac_Low_Thresh. ; kPa XDTP_4W_LOW_KE_4WD_LOW_TPS:dc.w $2EE0 ; DATA XREF: sub_503CA:loc_504A6r ; Lower throttle range threshold to enable 4WD-Lo diagnostic. Used in a hysteresis pair with KE_4WD_High_TPS. ; Percent XDTP_4W_LOW_KE_4WD_HIGH_TPS:dc.w $A66 ; DATA XREF: sub_503CA:loc_504D0r ; Upper throttle range threshold to enable 4WD-Lo diagnostic. Used in a hysteresis pair with KE_4WD_Low_TPS. ; Percent XDTP_4W_LOW_KE_4WD_LOW_TRANS_TEMP:dc.w $190 ; DATA XREF: sub_503CA+11Ar XDTP_4W_LOW_KE_4WD_HIGH_TRANS_TEMP:dc.w $190 ; DATA XREF: sub_503CA+122r XDTP_4W_LOW_KE_4WD_MPH_THRESH:dc.w $4100 ; DATA XREF: OS2:0004FEDEr ; Vehicle speed threshold above which enables the 4WD-Lo diagnostic. ; MPH XDTP_4W_LOW_KE_4WD_LOW_TCR_MIN_RATIO:dc.w $190 ; DATA XREF: OS2:loc_4FFD2r ; OS2:loc_50268r ... ; Transfer Case Ratio; when in 4WD-Lo, manimum value. Used in a hysteresis pair with KE_4WD_Low_TCR_Max_Ratio. ; Unitless XDTP_4W_LOW_KE_4WD_LOW_TCR_MAX_RATIO:dc.w $190 ; DATA XREF: OS2:0004FFDCr ; OS2:loc_50006r ... ; Transfer Case Ratio; when in 4WD-Lo, maximum value. Used in a hysteresis pair with KE_4WD_Low_TCR_Min_Ratio. ; Unitless XDTP_4W_LOW_KE_4WD_HIGH_TCR_MIN_RATIO:dc.w $50 ; DATA XREF: OS2:0004FF6Er ; OS2:loc_50072r ... ; Transfer case ratio, when not in 4WD-Lo, minimum value. Used in a hysteresis pair with KE_4WD_High_TCR_Max_Ratio. ; Unitless XDTP_4W_LOW_KE_4WD_HIGH_TCR_MAX_RATIO:dc.w $50 ; DATA XREF: OS2:0004FF76r ; OS2:0005007Ar ... ; Transfer case ratio, when not in 4WD-Lo, maximum value. Used in a hysteresis pair with KE_4WD_High_TCR_Min_Ratio. ; Unitless XDTP_4W_LOW_KE_4WD_LO_STUCK_OFF_FAIL_COUNTS:dc.b $64 ; DATA XREF: OS2:0005003Ar ; OS2:0005031Er ; 4WD-Lo switch stuck off fail counter limit ; Counts XDTP_4W_LOW_KE_4WD_LO_STUCK_ON_FAIL_COUNTS:dc.b $64 ; DATA XREF: OS2:0004FFAAr ; OS2:00050246r ; 4WD-Lo switch stuck on fail counter limit ; Counts XDTP_4W_LOW_KE_4WD_STUCK_OFF_FAIL_TIME:dc.w $FFFF ; DATA XREF: OS2:00050016r ; OS2:000502ECr XDTP_4W_LOW_KE_4WD_STUCK_OFF_PASS_TIME:dc.w $FFFF ; DATA XREF: OS2:0005008Ar ; OS2:00050388r XDTP_4W_LOW_KE_4WD_STUCK_ON_FAIL_TIME:dc.w $D020 ; DATA XREF: OS2:0004FF86r ; OS2:00050222r XDTP_4W_LOW_KE_4WD_STUCK_ON_PASS_TIME:dc.w $4000 ; DATA XREF: OS2:0004FFEEr ; OS2:000502A0r XDTP_4W_LOW_KE_4WD_LO_FAIL_STCK_OFF_SLIP_LO:dc.w $CCD ; DATA XREF: OS2:000502D4r XDTP_4W_LOW_KE_4WD_LO_FAIL_STCK_OFF_SLIP_HI:dc.w $4000 ; DATA XREF: OS2:000502C8r XDTP_4W_LOW_KE_4WD_LO_FAIL_STCK_ON_SLIP_LO:dc.w $8F6 ; DATA XREF: OS2:00050206r XDTP_4W_LOW_KE_4WD_LO_FAIL_STCK_ON_SLIP_HI:dc.w $2300 ; DATA XREF: OS2:00050212r XDTP_4W_LOW_KE_4WD_LO_PASS_STCK_OFF_SLIP_LO:dc.w $500 ; DATA XREF: OS2:00050368r XDTP_4W_LOW_KE_4WD_LO_PASS_STCK_OFF_SLIP_HI:dc.w $4100 ; DATA XREF: OS2:00050376r XDTP_4W_LOW_KE_4WD_LO_PASS_STCK_ON_SLIP_LO:dc.w $1900 ; DATA XREF: OS2:00050280r XDTP_4W_LOW_KE_4WD_LO_PASS_STCK_ON_SLIP_HI:dc.w $7AE ; DATA XREF: OS2:loc_5028Er ; sub_505A4+2Cr XDTP_SHIFT_TIME_KV_SHIFT_TIME_LONG_DIAG_LIMIT:dc.b $FF ; Time limit above which shift time is considered long ; Seconds dc.b $FF dc.b $FF dc.b $FF dc.b $FF byte_1DEEB: dc.b $FF ; DATA XREF: sub_505A4+5Ar XDTP_SHIFT_TIME_KV_LONG_SHIFT_AT_MAX_ADAPT_LIMIT:dc.b $64 ; d ; Limit for number of long transmission upshifts with adapts at the max limit. When the limit is reached, the diagnostic is set ; Counts dc.b $64 ; d dc.b $64 ; d dc.b $FF XDTP_SLIP_COMPONENT_KE_SLIP_COMP_EXTENDED_TIME_1:dc.w $460 ; DATA XREF: sub_50628+3BCr ; TCC Slip must be in a calibratable range for this long before 1st fault can be set in trans comp slip test. ; Seconds XDTP_SLIP_COMPONENT_KE_SLIP_COMP_EXTENDED_TIME_2:dc.w $460 ; DATA XREF: sub_50628+416r ; TCC Slip must be in a calibratable range for this long before 2nd fault can be set in trans comp slip test. ; Seconds XDTP_SLIP_COMPONENT_KE_SLIP_COMP_EXTENDED_TIME_3:dc.w $460 ; DATA XREF: sub_50628+470r ; TCC Slip must be in a calibratable range for this long before fault can be set in trans comp slip test. ; Seconds XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FAIL_LOW_LIMIT_1:dc.w $140 ; DATA XREF: sub_50628+3A0r ; Low threshold for TCC slip fail band in condition 1, fail case 2, trans comp slip test. ; RPM XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FAIL_LOW_LIMIT_2:dc.w $140 ; DATA XREF: sub_50628+3FAr ; Low threshold for TCC slip fail band in condition 2, fail case 2, trans comp slip test. ; RPM XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FAIL_LOW_LIMIT_3:dc.w $140 ; DATA XREF: sub_50628+44Er ; Low threshold for TCC slip fail band in condition 3, fail case 2, trans comp slip test. ; RPM XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FAIL_HIGH_LIMIT_1:dc.w $C80 ; DATA XREF: sub_50628+3ACr ; High threshold for TCC slip fail band in condition 1, fail case2, trans comp slip test. ; RPM XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FAIL_HIGH_LIMIT_2:dc.w $C80 ; DATA XREF: sub_50628+406r ; High threshold for TCC slip fail band in condition 2, fail case2, trans comp slip test. ; RPM XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FAIL_HIGH_LIMIT_3:dc.w $C80 ; DATA XREF: sub_50628+45Ar ; High threshold for TCC slip fail band in condition 3, fail case2, trans comp slip test. ; RPM XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FC2_THROTTLE_LOW:dc.w $CCD ; DATA XREF: sub_50628+378r ; The lower limit of throttle position for enabling fail case 2 in the Trans Slip Comp test. ; % XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FC2_THROTTLE_HIGH:dc.w $3333 ; DATA XREF: sub_50628+382r ; The upper limit of throttle position for enabling fail case 2 in the Trans Slip Comp test. ; % XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FC2_ENABLE:dc.b 1 ; DATA XREF: sub_50628+348r ; sub_50628+36Ar ; Enables fail case 2 in Trans Comp Slip test. ; T/F dc.b $FF XDTP_SLIP_COMPONENT_KE_COMP_SLIP_TCC_TURN_OFF_TIME:dc.w $F0 ; DATA XREF: sub_50628+598r ; Amount of time TCC must be turned off due to TCC slipping detected in Trans Comp Slip test, fail case 2, cond 2. ; Seconds XDTP_SLIP_COMPONENT_KE_TRANS_COMP_SLIP_MAX_COUNT:dc.b 3 ; DATA XREF: sub_50628+33Cr ; Transmission component slipping fail case counter. ; Counts dc.b $FF XDTP_SLIP_COMPONENT_KE_SLIPPING_COMP_TCC_ON_TIME:dc.w $320 ; DATA XREF: sub_50628+7Cr ; sub_50628+F4r ; Amount of time TCC must be commanded on before the transmission component slipping test is run. ; Seconds XDTP_SLIP_COMPONENT_KE_SLIPPING_COMPONENT_DIAG_TIME:dc.w $460 ; DATA XREF: sub_50628+2FAr ; sub_50628+506r ; Amount of time which slip must be above threshold to set the malfunction ; Seconds XDTP_SLIP_COMPONENT_KE_SLIPPING_COMP_THROTTLE_HIGH:dc.w $4000 ; DATA XREF: sub_50628+2EAr ; sub_50628+4E6r ; Maximum throttle position for enabling the Transmission Slipping Component test. ; Percent XDTP_SLIP_COMPONENT_KE_SLIPPING_COMP_THROTTLE_LOW:dc.w $CCD ; DATA XREF: sub_50628+2DEr ; sub_50628+4DAr ; Minimum throttle position for enabling the Transmission Slipping Component test. ; Percent XDTP_SLIP_COMPONENT_KE_SLIPPING_COMP_TRANS_TEMP_HIGH:dc.w $AD ; DATA XREF: sub_50628+110r ; Maximum transmission temperature for enabling the Transmission Slipping Component tests. ; Degrees_C XDTP_SLIP_COMPONENT_KE_SLIPPING_COMP_TRANS_TEMP_LOW:dc.w $1B ; DATA XREF: sub_50628+102r ; Minimum transmission temperature for enabling the Transmission Slipping Component tests. ; Degrees_C XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_ENG_TRQ_LOW:dc.w $A0 ; DATA XREF: sub_50628+11Er ; Upper engine torque bound for transmission component slipping diagnostic test to be enabled. ; Foot Lbs XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_ENG_TRQ_HIGH:dc.w $640 ; DATA XREF: sub_50628+12Cr ; Lower engine torque bound for transmission component slipping diagnostic test to be enabled. ; Foot Lbs XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_ENG_VAC_LOW:dc.b 0 ; DATA XREF: sub_50628+140r ; Upper bound of engine vacuum constraint. ; kPa XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_ENG_VAC_HIGH:dc.b $87 ; DATA XREF: sub_50628+154r ; Lower bound of engine vacuum constraint. ; kPa XDTP_SLIP_COMPONENT_KE_TCC_OFF_THROTTLE_HIGH:dc.w 0 ; DATA XREF: sub_50C1C+DCr ; Maximum throttle position for enabling the TCC stuck off test. ; Percent XDTP_SLIP_COMPONENT_KE_TCC_OFF_THROTTLE_LOW:dc.w 0 ; DATA XREF: sub_50C1C+CEr ; Minimum throttle position for enabling the TCC stuck off test. ; Percent XDTP_SLIP_COMPONENT_KE_TCC_OFF_TRANS_TEMP_HIGH:dc.w 0 ; DATA XREF: sub_50C1C+86r ; Maximum transmission temperature for enabling the TCC Stuck Off tests. ; Degrees_C XDTP_SLIP_COMPONENT_KE_TCC_OFF_TRANS_TEMP_LOW:dc.w 0 ; DATA XREF: sub_50C1C+94r ; Minimum transmission temperature for enabling the TCC Stuck Off tests. ; Degrees_C XDTP_SLIP_COMPONENT_KE_TCC_OFF_FAIL_SLIP_LIMIT:dc.w 0 ; DATA XREF: sub_50C1C+1B2r ; Above this value the TCC Stuck Off malfunction may be set ; RPM XDTP_SLIP_COMPONENT_KE_TCC_OFF_PASS_SLIP_LIMIT:dc.w 0 ; DATA XREF: sub_50C1C+22Cr ; Above this value the TCC Stuck Off malfunction may be cleared ; RPM XDTP_SLIP_COMPONENT_KE_TCC_OFF_FAIL_DIAG_TIME:dc.w 0 ; DATA XREF: sub_50C1C+1D4r ; Amount of time slip must be above threshold to clear the malfunction ; Seconds XDTP_SLIP_COMPONENT_KE_TCC_OFF_PASS_DIAG_TIME:dc.w 0 ; DATA XREF: sub_50C1C+23Cr ; Amount of time slip must be above threshold to clear the malfunction ; Seconds XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FAIL_HIGH_LIMIT:dc.w $C80 ; DATA XREF: sub_50628+2D0r ; High threshold for TCC slip failband ; RPM XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FAIL_LOW_LIMIT:dc.w $140 ; DATA XREF: sub_50628+2C6r ; Low threshold for TCC slip failband ; RPM XDTP_SLIP_COMPONENT_KE_SLIP_COMP_PASS_HIGH_LIMIT:dc.w $A0 ; DATA XREF: sub_50628+4CCr ; High threshold for TCC slip pass. ; RPM XDTP_SLIP_COMPONENT_KE_SLIP_COMP_PASS_LOW_LIMIT:dc.w $FFB0 ; DATA XREF: sub_50628+4C2r ; Low threshold for TCC slip pass. ; RPM XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FULL_LOCK_TIME:dc.w $500 ; DATA XREF: sub_50628+BCr ; sub_50628+29Ar ; Time TCC must be commanded at fullat full duty cycle before fail test enables. ; Seconds XDTP_SLIP_COMPONENT_KE_2_TCC_STUCK_OFF_RATIO_HIGH:dc.w 0 ; DATA XREF: sub_50C1C+130r ; Higher Ratio bound for 2nd gear in the TCCstuck off diagnostic test. ; Ratio_Type XDTP_SLIP_COMPONENT_KE_2_TCC_STUCK_OFF_RATIO_LOW:dc.w 0 ; DATA XREF: sub_50C1C+138r ; Lower Ratio bound for 2nd gear in the TCCstuck off diagnostic test. ; Ratio_Type XDTP_SLIP_COMPONENT_KE_3_TCC_STUCK_OFF_RATIO_HIGH:dc.w 0 ; DATA XREF: sub_50C1C+14Ar ; Higher Ratio bound for 3rd gear in the TCCstuck off diagnostic test. ; Ratio_Type XDTP_SLIP_COMPONENT_KE_3_TCC_STUCK_OFF_RATIO_LOW:dc.w 0 ; DATA XREF: sub_50C1C+152r ; Lower Ratio bound for 3rd gear in the TCCstuck off diagnostic test. ; Ratio_Type XDTP_SLIP_COMPONENT_KE_4_TCC_STUCK_OFF_RATIO_HIGH:dc.w 0 ; DATA XREF: sub_50C1C+164r ; Higher Ratio bound for 4th gear in the TCCstuck off diagnostic test. ; Ratio_Type XDTP_SLIP_COMPONENT_KE_4_TCC_STUCK_OFF_RATIO_LOW:dc.w 0 ; DATA XREF: sub_50C1C+16Cr ; Lower Ratio bound for 4th gear in the TCCstuck off diagnostic test. ; Ratio_Type XDTP_SLIP_COMPONENT_KE_TCC_LOCKED_OFF_TIME:dc.w 0 ; DATA XREF: sub_50C1C+4Er ; sub_50C1C+194r ; Amount of time TCCmust be in locked mode before TCC Stuck OffDiagnostic Test is run. ; Seconds XDTP_SLIP_COMPONENT_KE_TCC_STUCK_OFF_MAX_COUNT:dc.b 0 ; DATA XREF: sub_50C1C+200r ; Fail counter for TCC_Stuck_Off. ; Counts dc.b $FF XDTP_SLIP_COMPONENT_KE_TORQUE_CONV_STRESS_MPH:dc.w 0 ; DATA XREF: sub_50EAA+Er ; Vehicle speed must be less than this to enable torque converter overstress diagnostic. ; MPH XDTP_SLIP_COMPONENT_KE_TORQUE_CONV_STRESS_THR_HIGH:dc.w 0 ; DATA XREF: sub_50EAA+64r ; Throttle must be greater than this to fail the torque converter overstress diagnostic. ; Percent XDTP_SLIP_COMPONENT_KE_TORQUE_CONV_STRESS_SLIP_HIGH:dc.w 0 ; DATA XREF: sub_50EAA+70r ; Slip must be greater than this to fail the torque converter overstress diagnostic. ; RPM XDTP_SLIP_COMPONENT_KE_TORQUE_CONV_STRESS_FAIL_TIME:dc.w 0 ; DATA XREF: sub_50EAA+7Cr ; Amount of time the torque converter overstress fail conditions must be met before the diagnostic Fails. ; Seconds XDTP_SLIP_COMPONENT_KE_TORQUE_CONV_STRESS_THR_LOW:dc.w 0 ; DATA XREF: sub_50EAA+C0r ; Throttle must be less than this to pass the torque converter overstress diagnostic. ; Percent XDTP_SLIP_COMPONENT_KE_TORQUE_CONV_STRESS_SLIP_LOW:dc.w 0 ; DATA XREF: sub_50EAA+CCr ; Slip must be less than this to pass the torque converter overstress diagnostic. ; RPM XDTP_SLIP_COMPONENT_KE_TORQUE_CONV_STRESS_PASS_TIME:dc.w 0 ; DATA XREF: sub_50EAA+D8r ; Amount of time the torque converter overstress pass conditions must be met before the diagnostic Passes. ; Seconds XDTP_SLIP_COMPONENT_KE_TCC_OFF_LAST_RANGE_CHNG_TIME:dc.w 0 ; DATA XREF: sub_50C1C+A2r ; Amount of time since the last change in transmission range status before the TCC Stuck Off diagnostic can be enabled. ; Seconds XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_DRIVE_RANGE:dc.b 3 ; DATA XREF: sub_50628+176r ; Enable criterion for the diagnostic Note: Drive_3 exclusively for the 3T40-E trans. ; PRNDL_Type dc.b $FF XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_ENG_SPD_LOW:dc.w $12C0 ; DATA XREF: sub_50628+184r ; Low limit for the engine speed to enable diagnostic ; RPM XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_ENG_SPD_HIGH:dc.w $36B0 ; DATA XREF: sub_50628+192r ; High limit for the engine speed to enable diagnostic ; RPM XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_CMP_SPD_RATIO_LOW:dc.w $AB8 ; DATA XREF: sub_50628+1BCr ; Low limit for the speed ratio to enable diagnostic ; Ratio XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_CMP_SPD_RATIO_HIGH:dc.w $E66 ; DATA XREF: sub_50628+1CAr ; High limit for the speed ratio to enable diagnostic ; Ratio XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_VEH_SPD_LOW:dc.w $2300 ; DATA XREF: sub_50628+1A0r ; Low limit for the Vehicle speed to enable diagnostic ; MPH XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_VEH_SPD_HIGH:dc.w $4100 ; DATA XREF: sub_50628+1AEr ; High limit for the Vehicle speed to enable diagnostic ; MPH XDTP_SLIP_COMPONENT_KE_TCC_LOCKED_CAPACITY:dc.w $7333 ; DATA XREF: sub_50628+A0r ; sub_50C1C+3Ar XDTP_TCC_SLIP_KE_TCC_STUCK_ON_FAIL_LOW_SLIP:dc.w $FFB0 ; DATA XREF: sub_50FB6+266r ; TCC stuck on low limit, above this value malfucntion will be set ; RPM_S XDTP_TCC_SLIP_KE_TCC_STUCK_ON_FAIL_HIGH_SLIP:dc.w $78 ; DATA XREF: sub_50FB6+26Er ; TCC stuck on high limit, below this value malfucntion will be set ; RPM_S XDTP_TCC_SLIP_KE_TCC_STUCK_ON_PASS_LOW_SLIP:dc.w $208 ; DATA XREF: sub_50FB6+35Cr ; TCC stuck on low limit, above this value malfucntion will be cleared ; RPM_S XDTP_TCC_SLIP_KE_TCC_STUCK_ON_PASS_HIGH_SLIP:dc.w $1F40 ; DATA XREF: sub_50FB6+364r ; TCC stuck on high limit, below this value malfucntion will be cleared ; RPM_S XDTP_TCC_SLIP_KE_TCC_STUCK_ON_ETORQUE_LOW:dc.w $A0 ; DATA XREF: sub_50FB6+11Er ; TCC Stuck On diagnostic will not execute if torque below this level ; FtLB XDTP_TCC_SLIP_KE_TCC_STUCK_ON_ETORQUE_HIGH:dc.w $640 ; DATA XREF: sub_50FB6+12Cr ; TCC Stuck On diagnostic will not execute if torque above this level ; FtLB XDTP_TCC_SLIP_KE_TCC_STUCK_ON_VAC_HIGH_THRESH:dc.b $87 ; DATA XREF: sub_50FB6+110r ; In order to execute the TCC stuck on diagnostic, engine vac < this cal ; Kpa XDTP_TCC_SLIP_KE_TCC_STUCK_ON_VAC_LOW_THRESH:dc.b 0 ; DATA XREF: sub_50FB6+FCr ; In order to execute the TCC stuck on diagnostic, engine vac > this cal ; Kpa XDTP_TCC_SLIP_KE_TCC_STUCK_ON_FAIL_TIME:dc.w $280 ; DATA XREF: sub_50FB6+27Ar ; Amount of time TCC slip must be between thresholds in order to set malfunction ; Seconds XDTP_TCC_SLIP_KE_TCC_STUCK_ON_PASS_TIME:dc.w $280 ; DATA XREF: sub_50FB6+370r ; Amount of time TCC slip must be between thresholds in order to clear malfunction ; Seconds XDTP_TCC_SLIP_KE_TCC_STUCK_ON_THROTTLE_HIGH:dc.w $399A ; DATA XREF: sub_50FB6+E8r ; Maximum throttle position for enabling the TCC stuck on diagnostic ; Percent XDTP_TCC_SLIP_KE_TCC_STUCK_ON_THROTTLE_LOW:dc.w $CCD ; DATA XREF: sub_50FB6+DAr ; Minimum throttle position for enabling the TCC stuck on diagnostic ; Percent XDTP_TCC_SLIP_KE_TCC_STUCK_ON_FAIL_COUNTER:dc.b 3 ; DATA XREF: sub_50FB6+2E4r ; sub_50FB6+314r ; Number of times fail condition must occur in order for the test to report a failure ; SHORTCARD dc.b $FF XDTP_TCC_SLIP_KE_TCC_ON_LAST_RANGE_CHNG_TIME:dc.w $3C0 ; DATA XREF: sub_50FB6+7Cr ; Amount of time since the last change in in transmission range status before the TCCStuck On diagnostic can be enabled ; Seconds XDTP_TCC_SLIP_KE_TCC_SYST_PERF_STU_ON_TEMP_HI:dc.b 0 ; DATA XREF: sub_50FB6+BEr ; Disable TCC Stuck On with release switch diagnostic if transmission temperature is above this. ; Degrees_C XDTP_TCC_SLIP_KE_TCC_SYST_PERF_STU_ON_TEMP_LO:dc.b 0 ; DATA XREF: sub_50FB6+A8r ; Disable TCC Stuck On with release switch diagnostic if transmission temperature is below this. ; Degrees_C XDTP_TCC_SLIP_KE_TCC_ON_REL_SWITCH_TIME_FAIL:dc.w 0 ; DATA XREF: sub_50FB6+2C4r ; The amount of time that the TCC_Release_Switchindicates TCC release oil is not presentin order to fail ; Seconds XDTP_TCC_SLIP_KE_TCC_ON_REL_SWITCH_TIME_PASS:dc.w 0 ; DATA XREF: sub_50FB6+3BAr ; The amount of time that the TCC ReleaseSwitch indicates TCC Release oil is presentin order to pass ; Seconds XDTP_TCC_SLIP_KE_TCC_ON_W_REL_THROTTLE_HIGH:dc.w 0 ; DATA XREF: sub_50FB6+6Er ; High threshold throttle position for TCC Systemstuck on with release switch diagnostic test ; Percent XDTP_TCC_SLIP_KE_TCC_ON_W_REL_THROTTLE_LOW:dc.w 0 ; DATA XREF: sub_50FB6+60r ; Low threshold throttle position for TCC Systemstuck on with release switch diagnostic test ; Percent XDTP_TCC_SLIP_KE_TCC_STUCK_ON_DRIVE_RANGE:dc.b 3 ; DATA XREF: sub_50FB6+13Ar ; Enable criterion for the diagnostic Note: Drive_3 exclusively for the 3T40-E trans. ; PRNDL_Type dc.b $FF XDTP_TCC_SLIP_KE_TCC_STUCK_ON_ENG_SPD_HIGH:dc.w $36B0 ; DATA XREF: sub_50FB6+16Er ; High limit for the engine speed to enable diagnostic ; RPM XDTP_TCC_SLIP_KE_TCC_STUCK_ON_ENG_SPD_LOW:dc.w $FA0 ; DATA XREF: sub_50FB6+160r ; Low limit for the engine speed to enable diagnostic ; RPM XDTP_TCC_SLIP_KE_TCC_STUCK_ON_SPD_RATIO_HIGH:dc.w $14CD ; DATA XREF: sub_50FB6+1A6r ; High limit for the speed ratio to enable diagnostic ; Ratio XDTP_TCC_SLIP_KE_TCC_STUCK_ON_SPD_RATIO_LOW:dc.w $A66 ; DATA XREF: sub_50FB6+198r ; Low limit for the speed ratio to enable diagnostic ; Ratio XDTP_TCC_SLIP_KE_TCC_STUCK_ON_VEH_SPD_HIGH:dc.w $3700 ; DATA XREF: sub_50FB6+18Ar ; High limit for the Vehicle speed to enable diagnostic ; MPH XDTP_TCC_SLIP_KE_TCC_STUCK_ON_VEH_SPD_LOW:dc.w $1400 ; DATA XREF: sub_50FB6+17Cr ; Low limit for the Vehicle speed to enable diagnostic ; MPH XDTP_TEMP_KE_TRANS_OVER_TEMPERATURE_HIGH:dc.w $AD ; DATA XREF: sub_513C0+2Er ; Degrees Ctemperature threshold above which the transmission over temperature fault may occur ; Degrees_C XDTP_TEMP_KE_TRANS_OVER_TEMPERATURE_LOW:dc.w $AC ; DATA XREF: sub_513C0:loc_51444r ; Degrees Ctemperature threshold below which the transmission over temperature fault isreset ; Degrees_C XDTP_TEMP_KE_TRANS_OVER_TEMP_FAIL_TIME:dc.l unk_17700 ; DATA XREF: sub_513C0+68r ; Amountof time which transmission temperature must be above the high thresholds before a fault is set ; Seconds XDTP_TEMP_KE_TRANS_OVER_TEMP_PASS_TIME:dc.w $320 ; DATA XREF: sub_513C0+BAr ; Amountof time which transmission temperature must be below the low thresholds before a fault is cleared ; Seconds XDTP_TEMP_KE_TEMP_AT_START_UP_HIGH_THRESH:dc.w $1C ; DATA XREF: sub_51498+18Er ; Maximumstart up transmission fluid temperaturethreshold to enable fail case of thetransmission temperature performance test ; Degrees C XDTP_TEMP_KE_TEMP_AT_START_UP_LOW_THRESH:dc.w $FFCB ; DATA XREF: sub_51498+182r ; Minimumstart up transmission fluid temperaturethreshold to enable fail case of thetransmission temperature performance test ; Degrees C XDTP_TEMP_KE_TEMP_PERF_COOLANT_DELTA:dc.b $79 ; DATA XREF: sub_51498+1C4r XDTP_TEMP_KE_TEMP_PERF_COOLANT_THRESH:dc.b $93 ; DATA XREF: sub_51498+19Ar ; Minimum enginecoolant temperature threshold to enable failcase of the transmission temperatureperformance diagnostic test ; Degrees C XDTP_TEMP_KE_TEMP_PERF_ENGINE_RUN_TIME:dc.l unk_FFA0 ; DATA XREF: sub_51498+170r ; The minimumamount of time engine must be running toenable fail case of the transmissiontemperature performance diagnostic test ; Seconds XDTP_TEMP_KE_TEMP_PERF_MPH_OUTPUT_SPD_THRE:dc.w $500 ; DATA XREF: sub_51498+42r ; Minimumoutput speed threshold to enable fail caseof the transmission temperature performancediagnostic test ; MPH XDTP_TEMP_KE_TEMP_PERF_MPH_OUTPUT_SPD_TIME:dc.l unk_FFA0 ; DATA XREF: sub_51498+56r XDTP_TEMP_KE_TEMP_PERF_SLIP_THRESH:dc.w $1E0 ; DATA XREF: sub_51498+8Er ; Minimum slipthreshold to enable fail case of thetransmission temperature performancediagnostic test ; RPM_S XDTP_TEMP_KE_TEMP_PERF_SLIP_TIME:dc.l unk_FFA0 ; DATA XREF: sub_51498+A2r XDTP_TEMP_KE_TRANS_TEMP_AD_COUNTS_HIGH:dc.b $FA ; DATA XREF: sub_51498+164r ; sub_51498+37Cr ; The maximumtransmission temperature A/D counts to enablethe transmission temperature diagnostictest ; A/D Counts XDTP_TEMP_KE_TRANS_TEMP_AD_COUNTS_LOW:dc.b $A ; DATA XREF: sub_51498+150r ; sub_51498+36Ar ; The minimumtransmission temperature A/D counts to enablethe transmission temperature diagnostictest ; A/D Counts XDTP_TEMP_KE_TRANS_TEMP_FAIL_1_DELTA_THRES:dc.b $38 ; DATA XREF: sub_51498+250r ; Minimummabsolute delta transmission fluid temperaturefor fail case 1 of the transmissiontemperature performance diagnostic ; Degrees C dc.b $FF XDTP_TEMP_KE_TRANS_TEMP_FAIL_1_DIAG_TIME:dc.w $FFA0 ; DATA XREF: sub_51498+266r XDTP_TEMP_KE_TRANS_TEMP_FAIL_2_COUNT:dc.b $E ; DATA XREF: sub_51498+2F0r XDTP_TEMP_KE_TRANS_TEMP_FAIL_2_DELTA_THRES:dc.b $51 ; DATA XREF: sub_51498+2BCr ; Minimummabsolute delta transmission fluid temperaturefor fail case 2 of the transmissiontemperature performance diagnostic ; Degrees C XDTP_TEMP_KE_TRANS_TEMP_FAIL_2_DIAG_TIME:dc.w $460 ; DATA XREF: sub_51498:loc_51736r XDTP_TEMP_KE_TRANS_TEMP_PASS_1_DELTA_THRES:dc.b $39 ; DATA XREF: sub_51498+3ACr ; Minimummabsolute delta transmission fluid temperaturefor pass case 1 of the transmissiontemperature performance diagnostic ; Degrees C dc.b $FF XDTP_TEMP_KE_TRANS_TEMP_PASS_1_DIAG_TIME:dc.w $6E0 ; DATA XREF: sub_51498+3C2r XDTP_TEMP_KE_DIAG_SYS_VOLT_FAULT_TIME:dc.w 0 ; DATA XREF: sub_51498+100r XDTP_TRANS_RATIO_KE_RATIO_DIAG_THROTTLE_THRESH:dc.w $7FFF ; DATA XREF: sub_5195C+80r ; Low Throttle limit for Gear Ratio test enable. ; Throttle XDTP_TRANS_RATIO_KE_RATIO_DIAG_OUT_SPD_THRESH:dc.w $FFFF ; DATA XREF: sub_5195C+62r ; Low MPH limit for Gear Ratio test enable. ; MPH XDTP_TRANS_RATIO_KE_LOW_RATIO_TRAN_TEMP_THRESH:dc.b 1 ; Low Degrees C limit for Gear Ratio test enable. ; Deg_C dc.b $90 ; ? XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_DIAG_TIME:dc.w $FFFF ; DATA XREF: sub_5195C+202r ; sub_5195C+2B2r ; Amount of time ratio is outside of the thresholds in order to set malfunction ; Seconds XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_1ST_GEAR_HIGH:dc.w $7FFF ; DATA XREF: sub_5195C+1A0r ; sub_5195C+24Er ; High limit for 1st gear ratio used in determining if the ratio is unknown ; Gear Ratio XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_1ST_GEAR_LOW:dc.w $7FFF ; DATA XREF: sub_5195C+1A8r ; sub_5195C+256r ; Low limit for 1st gear ratio used in determining if the ratio is unknown ; Gear Ratio XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_REV_GEAR_HIGH:dc.w $7FFF ; DATA XREF: sub_5195C:loc_51B0Cr ; sub_5195C:loc_51BBAr ; High limit for reverse gear ratio used in determining if the ratio is unknown ; Gear Ratio XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_REV_GEAR_LOW:dc.w $7FFF ; DATA XREF: sub_5195C+1B8r ; sub_5195C+266r ; Low limit for reverse gear ratio used in determining if the ratio is unknown ; Gear Ratio XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_2ND_GEAR_HIGH:dc.w $7FFF ; DATA XREF: sub_5195C:loc_51B1Cr ; sub_5195C:loc_51BCAr ; High limit for 2nd gear ratio used in determining if the ratio is unknown ; Gear Ratio XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_2ND_GEAR_LOW:dc.w $7FFF ; DATA XREF: sub_5195C+1C8r ; sub_5195C+276r ; Low limit for 2nd gear ratio used in determining if the ratio is unknown ; Gear Ratio XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_3RD_GEAR_HIGH:dc.w $7FFF ; DATA XREF: sub_5195C:loc_51B2Cr ; sub_5195C:loc_51BDAr ; High limit for 3rd gear ratio used in determining if the ratio is unknown ; Gear Ratio XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_3RD_GEAR_LOW:dc.w $7FFF ; DATA XREF: sub_5195C+1D8r ; sub_5195C+286r ; Low limit for 3rd gear ratio used in determining if the ratio is unknown ; Gear Ratio XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_4TH_GEAR_HIGH:dc.w $7FFF ; DATA XREF: sub_5195C:loc_51B3Cr ; sub_5195C:loc_51BEAr ; High limit for 4th gear ratio used in determining if the ratio is unknown ; Gear Ratio XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_4TH_GEAR_LOW:dc.w $7FFF ; DATA XREF: sub_5195C+1E8r ; sub_5195C+296r ; Low limit for 4th gear ratio used in determining if the ratio is unknown ; Gear Ratio XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_ENG_TRQ_HIGH:dc.w $1770 ; DATA XREF: sub_5195C+B8r ; High limit of Engine Torque constraint in undefined ratio diagnostic test. ; Ft_lbs XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_ENG_TRQ_LOW:dc.w $1770 ; DATA XREF: sub_5195C+ACr ; Low limit of Engine Torque constraint in undefined ratio diagnostic test. ; Ft_lbs XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_ENG_VAC_HIGH:dc.b $87 ; DATA XREF: sub_5195C+DCr ; High limit of Engine Vacuum constraint in undefined ratio diagnostic test. ; k_Pa XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_ENG_VAC_LOW:dc.b $87 ; DATA XREF: sub_5195C+CAr ; Low limit of Engine Vacuum constraint in undefined ratio diagnostic test. ; k_Pa XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_RANGE_TIME:dc.w $FFFF ; DATA XREF: sub_5195C+8Cr ; Minimum amount of time since manual valve change constraint for undefined ratio diag. test. ; Seconds XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_TRANS_TEMP:dc.b $FF ; DATA XREF: sub_5195C+9Er ; Amount of transmission temp. constraint for undefined ratio test. ; Deg_C dc.b $FF XDTP_TRANS_RATIO_KE_UNKNW_RATIO_4WD_HIGH_MTCR_MAX:dc.w 0 ; DATA XREF: sub_5195C+136r XDTP_TRANS_RATIO_KE_UNKNW_RATIO_4WD_HIGH_MTCR_MIN:dc.w 0 ; DATA XREF: sub_5195C+12Er XDTP_TRANS_RATIO_KE_UNKNW_RATIO_4WD_LOW_MTCR_MAX:dc.w 0 ; DATA XREF: sub_5195C+118r XDTP_TRANS_RATIO_KE_UNKNW_RATIO_4WD_LOW_MTCR_MIN:dc.w 0 ; DATA XREF: sub_5195C+110r XDTP_TRANS_RATIO_KE_SS_PERF_ENAB_4WD_HI_MTCR_MAX:dc.w 0 ; DATA XREF: sub_51C44+146r ; 4WD High/Max measured transfer case ratio for Shift Solenoid Perfornce Diagnostic ; NONE XDTP_TRANS_RATIO_KE_SS_PERF_ENAB_4WD_HI_MTCR_MIN:dc.w 0 ; DATA XREF: sub_51C44+13Er ; 4WD High/Min measured transfer case ratio for Shift Solenoid Performance Diagnostic ; NONE XDTP_TRANS_RATIO_KE_SS_PERF_ENAB_4WD_LO_MTCR_MAX:dc.w 0 ; DATA XREF: sub_51C44+128r ; 4WD Low/Max measured transfer case ratio for Shift Solenoid Performance Diagnostic ; NONE XDTP_TRANS_RATIO_KE_SS_PERF_ENAB_4WD_LO_MTCR_MIN:dc.w 0 ; DATA XREF: sub_51C44+120r ; 4WD Low/Min measured transfer case rario for Shift Solenoid Performance Diagnostic ; NONE XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_DIAGTT_HIGH:dc.b 0 ; DATA XREF: sub_51C44+BAr ; High transmission temperature calibration limit for Shift Solenoid Performance Diagnostic enabling condition ; Deg_C XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_DIAGTT_LOW:dc.b 0 ; DATA XREF: sub_51C44+A4r ; Low transmission temperature calibration limit for Shift Solenoid Performance Diagnostic ; Deg_C XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_IGVOLT_HIGH:dc.b 0 ; DATA XREF: sub_51C44+D8r ; High ignition voltage calibration for enabling conditions for shift solenoid circuit performance ; Volts XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_IGVOLT_LOW:dc.b 0 ; DATA XREF: sub_51C44+C6r ; Low Ignition Voltage Calibration for enabling condition ; Volts XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_INPSPD_HIGH:dc.w 0 ; DATA XREF: sub_51C44+F6r ; High calibration limit for enabling conditions in Shift Solenoid Performance Diagnostic ; RPM XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_INPSPD_LOW:dc.w 0 ; DATA XREF: sub_51C44+E6r ; Low input speed calibration limit for Shift Solenoid Performance Diagnostic ; RPM XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_OUTSPD:dc.w 0 ; DATA XREF: sub_51C44+102r ; Output Speed calibratiofor Shift Solenoid Performance Diagnostic ; RPM XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC1_HIGH:dc.w 0 ; DATA XREF: sub_51C44+204r ; High Limit calibration for fail case 1 Engine Torque Shift Solenoid Performance Diagnostic ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC1_LOW:dc.w 0 ; DATA XREF: sub_51C44+1F4r ; Lower Limit Engine Torque used for Shift Solenoid Performance diagnostic Fail Case 1 ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC2_HIGH:dc.w 0 ; DATA XREF: sub_51C44+2F0r ; High Limit calibration for fail case 2 Engine Torque Shift Solenoid Performance Diagnostic ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC2_LOW:dc.w 0 ; DATA XREF: sub_51C44+2E0r ; Lower Limit Engine Torque Used for Shift Solenoid Performance Fail Case 2 diagnostic Test ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC3_HIGH:dc.w 0 ; DATA XREF: sub_51C44+38Er ; High Limit calibration for fail case 3 Engine Torque Shift Solenoid Performance Diagnostic ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC3_LOW:dc.w 0 ; DATA XREF: sub_51C44+37Er ; Lower Limit Engine Torque used for Shift Solenoid Performance (Fail Case 3) diagnostic test ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC4_HIGH:dc.w 0 ; DATA XREF: sub_51C44+442r ; High Limit calibration for fail case 4 Engine Torque Shift Solenoid Performance Diagnostic ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC4_LOW:dc.w 0 ; DATA XREF: sub_51C44+432r ; Lower Limit for fail Case 4 Engine Torque in Shift Solenoid Performance Diagnostic test ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC5_HIGH:dc.w 0 ; DATA XREF: sub_51C44+4E4r ; High Limit calibration for fail case 5 Engine Torque Shift Solenoid Performance Diagnostic ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC5_LOW:dc.w 0 ; DATA XREF: sub_51C44+4D2r ; Lower Limit for fail Case 5 Engine Torque in Shift Solenoid Performance Diagnostic test ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC6_HIGH:dc.w 0 ; DATA XREF: sub_51C44+5A2r ; High Limit calibration for fail case 1 Engine Torque Shift Solenoid Performance Diagnostic ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC6_LOW:dc.w 0 ; DATA XREF: sub_51C44+592r ; Lower Limit for fail Case 6 Engine Torque in Shift Solenoid Performance Diagnostic Tset ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC7_HIGH:dc.w 0 ; DATA XREF: sub_51C44+63Cr ; High Limit calibration for fail case 7 Engine Torque Shift Solenoid Performance Diagnostic ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC7_LOW:dc.w 0 ; DATA XREF: sub_51C44+62Cr ; Lower Limit for fail Case 7 Engine Torque in Shift Solenoid Performance Diagnostic Test ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC8_HIGH:dc.w 0 ; DATA XREF: sub_51C44+6F0r ; High limit calibration for fail case 8 Engine Torque Shift Solenoid Performance Diagnostic ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC8_LOW:dc.w 0 ; DATA XREF: sub_51C44+6E0r ; Lower Limit for Fail case 8 Engine Torque in Shift Solenoid Diagnostic Test ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_PC1_HIGH:dc.w 0 ; DATA XREF: sub_51C44+8A8r ; High pass case 1 limit Engine Torque used for Shift Solenoid Performance Diagnostio ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_PC1_LOW:dc.w 0 ; DATA XREF: sub_51C44+898r ; Lower pass case 1 Engine Torque calibration limit for Shift Solenoid Performance Diagnostic ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_PC2_HIGH:dc.w 0 ; DATA XREF: sub_51C44+93Ar ; High pass case 2 calibration limit for Shift Solenoid Performance Diagnostic ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_PC2_LOW:dc.w 0 ; DATA XREF: sub_51C44+92Ar ; Low pass case 2 Engine Torque calibration limit for Shift Solenoid Perfromance Diagnostic ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_PC3_HIGH:dc.w 0 ; DATA XREF: sub_51C44+9CCr ; High pass 3 Engine Torque calibration limit for Shift Solenoid Performance Diagnostic ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_PC3_LOW:dc.w 0 ; DATA XREF: sub_51C44+9BCr ; Low pass case 3 Engine Torque calibration limit For Shift Solenoid Performance Diagnostic ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_PC4_HIGH:dc.w 0 ; DATA XREF: sub_51C44+AAAr ; High pass case 4 Engine Torque calibration limit for Shift Solenoid Performance Diagnostic ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_PC4_LOW:dc.w 0 ; DATA XREF: sub_51C44+A9Ar ; Low pass case 4 Engine Torque calibration limit for Shift Solenoid Performance Diagnostic ; Ft_Lb XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_D1144_COUNTER:dc.b 0 ; DATA XREF: sub_51C44+7D0r ; Shift Solenoid Performance Diagnostic Fail Counter for 1144 Failure Mode ; counts XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_D1221_COUNTER:dc.b 0 ; DATA XREF: sub_51C44+85Er ; Shift Solenoid Performance Diagnostic Fail Counter for 1221 Failure Mode ; counts XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_D2233_COUNTER:dc.b 0 ; DATA XREF: sub_51C44+784r ; Shift Solenoid Performance Diagnostic Fail Counter for 2233 Failure Mode ; counts XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_D4334_COUNTER:dc.b 0 ; DATA XREF: sub_51C44+812r ; Shift Solenoid Performance Diagnostic Fail Counter for 4334 Failure Mode ; counts XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_TIME_FC1:dc.w 0 ; DATA XREF: sub_51C44+23Cr ; Fail case 1 timer for Shift Solenoid Performance Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_TIME_FC2:dc.w 0 ; DATA XREF: sub_51C44+32Cr ; Fail case 2 timer for Shift Solenoid Perfromance Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_TIME_FC3:dc.w 0 ; DATA XREF: sub_51C44+3C6r ; Fail case 3 timer for Shift Solenoid Performance Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_TIME_FC4:dc.w 0 ; DATA XREF: sub_51C44+47Er ; Fail case 4 timer for Shift Solenoid Performance Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_TIME_FC5:dc.w 0 ; DATA XREF: sub_51C44+540r ; Fail case 5 timer for Shift Solenoid Performance Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_TIME_FC6:dc.w 0 ; DATA XREF: sub_51C44+5DAr ; Fail case 6 timer for Shift Solenoid Performance Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_TIME_FC7:dc.w 0 ; DATA XREF: sub_51C44+674r ; Fail case 7 timer for Shift Solenoid Performance Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_TIME_FC8:dc.w 0 ; DATA XREF: sub_51C44+72Cr ; Fail case 8 timer for Shift Solenoid Performance Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_GEAR_CHANGE_TIMER_FC1:dc.w 0 ; DATA XREF: sub_51C44+21Cr ; Fail case 1 Gear change timer calibration for Shift Solenoid Performance Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_GEAR_CHANGE_TIMER_FC2:dc.w 0 ; DATA XREF: sub_51C44+308r ; Fail case 2 gear change timer calibration for Shift Solenoid Performnace Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_GEAR_CHANGE_TIMER_FC3:dc.w 0 ; DATA XREF: sub_51C44+3A6r ; Fail case 3 Gear change timer for Shift Solenoid Performnace Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_GEAR_CHANGE_TIMER_FC4:dc.w 0 ; DATA XREF: sub_51C44+45Ar ; Fail case 4 Gear change timer calibration for Shift Solenoid Performance Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_GEAR_CHANGE_TIMER_FC5:dc.w 0 ; DATA XREF: sub_51C44+4FCr ; Fail case 5 gear change timer for Shift Solenoid Performance Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_GEAR_CHANGE_TIMER_FC6:dc.w 0 ; DATA XREF: sub_51C44+5BAr ; Fail case 6 gear change timer calibration for Shift Solenoid Performance Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_GEAR_CHANGE_TIMER_FC7:dc.w 0 ; DATA XREF: sub_51C44+654r ; Fail case 7 gear change timer calibration for Shift Solenoid Performance Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_GEAR_CHANGE_TIMER_FC8:dc.w 0 ; DATA XREF: sub_51C44+708r ; Fail case 8 gear change timer calibration for Shift Solenoid Performance Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_FC4:dc.b 0 ; DATA XREF: sub_51C44+408r ; sub_51C44+7A6r ; Bit select enble calibration for fail case four ; T/F XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_FC8:dc.b 0 ; DATA XREF: sub_51C44+6B6r ; sub_51C44+834r ; Bit select enable calibrationfor fail case eight ; T/F XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_FC1:dc.b 0 ; DATA XREF: sub_51C44+1E6r ; Fail case 1 Modeled Speed Ratio calibration for Shift Solenoid Performance Diagnostic ; Factor XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_FC2:dc.b 0 ; DATA XREF: sub_51C44+2D0r ; Fail case 2 Modeled Speed Ratio calibration for Shift Solenoid Performance Diagnostic ; Factor XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_FC3:dc.b 0 ; DATA XREF: sub_51C44+36Er ; Fail case 3 Modeled Speed Ratio calibration ; Factor XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_FC4:dc.b 0 ; DATA XREF: sub_51C44+422r ; Fail case 4 Modeled Speed Ratio calibration for Shift Solenoid Perfromance Diagnostic ; Factor XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_FC5:dc.b 0 ; DATA XREF: sub_51C44+4C0r ; Fail case 5 Modeled Speed Ratio calibration for Shift Solenoid Perfromance Diagnostic ; Factor XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_FC6:dc.b 0 ; DATA XREF: sub_51C44+582r ; Fail case 6 Modeled Speed Ratio calibration for Shift Solenoid Performance Diagnostic ; Factor XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_FC7:dc.b 0 ; DATA XREF: sub_51C44+61Cr ; Fail case 7 Modeled Speed Ratio calibration for Shift Solenoid Performance Diagnostic ; Factor XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_FC8:dc.b 0 ; DATA XREF: sub_51C44+6D0r ; Fail case 8 Modeled Speed Ratio calibration for Shift Solenoid Performance Diagnostic ; Factor XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_PC1:dc.b 0 ; DATA XREF: sub_51C44+88Ar ; Pass case 1 Modeled Speed ratio calibration for Shift Solenoid Performance Diagnostic ; Factor XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_PC2:dc.b 0 ; DATA XREF: sub_51C44+91Ar ; Pass case 2 Modeled Speed Ratio calibration for Shift Solenoid Performance Diagnostic ; Factor XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_PC3:dc.b 0 ; DATA XREF: sub_51C44+9ACr ; Pass case 3 Model Speed Ratio calibration ; Factor XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_PC4:dc.b 0 ; DATA XREF: sub_51C44+A8Ar ; Pass case 4 Model Speed Ratio calibration ; Factor XDTP_TRANS_RATIO_KE_SS_PERF_OUTSPD_FC5:dc.w 0 ; DATA XREF: sub_51C44+508r ; Fail case 5 output speed calibration for Shift Solenoid Performance Diagnostic ; RPM XDTP_TRANS_RATIO_KE_SS_PERF_PASS_TIME_PC1:dc.w 0 ; DATA XREF: sub_51C44+8D4r ; Pass case 1 time calibration for Shift Solenoid Performance Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_PASS_TIME_PC2:dc.w 0 ; DATA XREF: sub_51C44+966r ; Pass case 2 time calibration for Shift Solenoid Performnace Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_PASS_TIME_PC3:dc.w 0 ; DATA XREF: sub_51C44+9F8r ; Pass case 3 timer calibration for Shift Solenoid Performance Diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_PASS_TIME_PC4:dc.w 0 ; DATA XREF: sub_51C44+ADAr ; Pass case 4 timer for Shift Solenoid Performance diagnostic ; Seconds XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC1_HIGH:dc.w 0 ; DATA XREF: sub_51C44+230r ; High ratio limit for fail case 1 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC1_LOW:dc.w 0 ; DATA XREF: sub_51C44+228r ; Lower ratio limt for fail case 1 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC2_HIGH:dc.w 0 ; DATA XREF: sub_51C44+320r ; Higher ratio limit for fail case 2 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC2_LOW:dc.w 0 ; DATA XREF: sub_51C44+318r ; Lower ratio limit for fail case 2 in Shift Solenoid Performnace Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC3_HIGH:dc.w 0 ; DATA XREF: sub_51C44+3BAr ; Higher ratio limit for fail case 3 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC3_LOW:dc.w 0 ; DATA XREF: sub_51C44+3B2r ; Lower ratio limit for fail case 3 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC4_HIGH:dc.w 0 ; DATA XREF: sub_51C44+472r ; High ratio limit for fail case 4 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC4_LOW:dc.w 0 ; DATA XREF: sub_51C44+46Ar ; Low ratio limit for fail case 4 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC5_HIGH:dc.w 0 ; DATA XREF: sub_51C44+534r ; High ratio limit for fail case 5 in Shift Solenoid Performnace Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC5_LOW:dc.w 0 ; DATA XREF: sub_51C44+52Cr ; Lower ratio limit for fail case 5 in Shift Solenoid Performance ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC6_HIGH:dc.w 0 ; DATA XREF: sub_51C44+5CEr ; High ratio limit for fail case 6 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC6_LOW:dc.w 0 ; DATA XREF: sub_51C44+5C6r ; Lower ratio limit for fail case 6 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC7_HIGH:dc.w 0 ; DATA XREF: sub_51C44+668r ; High ratio limit for fail case 7 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC7_LOW:dc.w 0 ; DATA XREF: sub_51C44+660r ; Lower ratio limit for fail case 7 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC8_HIGH:dc.w 0 ; DATA XREF: sub_51C44+720r ; High ratio limit for fail case 8 in Shift Solenoid Performance ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC8_LOW:dc.w 0 ; DATA XREF: sub_51C44+718r ; Lower ratio limit for fail case 8 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_PC1_HIGH:dc.w 0 ; DATA XREF: sub_51C44+8C8r ; High ratio limit for fail case 1 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_PC1_LOW:dc.w 0 ; DATA XREF: sub_51C44+8C0r ; Low ratio calibration limit for pass case 1 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_PC2_HIGH:dc.w 0 ; DATA XREF: sub_51C44+95Ar ; High ratio calibration limit for pass case 2 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_PC2_LOW:dc.w 0 ; DATA XREF: sub_51C44+952r ; Low ratio calibration limit for pass case 2 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_PC3_HIGH:dc.w 0 ; DATA XREF: sub_51C44+9ECr ; High ratio calibration for pass case 3 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_PC3_LOW:dc.w 0 ; DATA XREF: sub_51C44+9E4r ; Low ratio calibration limit for pass case 3 in Shift Soleoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_PC4_HIGH:dc.w 0 ; DATA XREF: sub_51C44+ACEr ; High ratio calibration limit for fail case 4 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_PC4_LOW:dc.w 0 ; DATA XREF: sub_51C44+AC6r ; Low ratio calibration limit for pass case 4 in Shift Solenoid Performance Diagnostic ; Ratio XDTP_TRANS_RATIO_KE_SS_PERF_SLIP_FC5_HIGH:dc.w 0 ; DATA XREF: sub_51C44+520r ; High slip limit for fail case 5 in Shift Solenoid Performance Diagnostic test ; RPM XDTP_TRANS_RATIO_KE_SS_PERF_SLIP_FC5_LOW:dc.w 0 ; DATA XREF: sub_51C44+510r ; Low slip limit for fail case 5 in Shift Solenoid Performance Diagnostic test ; RPM XDTP_TRANS_RATIO_KE_SS_PERF_THROT_FC1:dc.w 0 ; DATA XREF: sub_51C44+210r ; Fail case 1 Throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent XDTP_TRANS_RATIO_KE_SS_PERF_THROT_FC2:dc.w 0 ; DATA XREF: sub_51C44+2FCr ; Fail case 2 Throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent XDTP_TRANS_RATIO_KE_SS_PERF_THROT_FC3:dc.w 0 ; DATA XREF: sub_51C44+39Ar ; Fail case 3 Throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent XDTP_TRANS_RATIO_KE_SS_PERF_THROT_FC4:dc.w 0 ; DATA XREF: sub_51C44+44Er ; Fail case 4 Throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent XDTP_TRANS_RATIO_KE_SS_PERF_THROT_FC5:dc.w 0 ; DATA XREF: sub_51C44+4F0r ; Fail case 5 Throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent XDTP_TRANS_RATIO_KE_SS_PERF_THROT_FC6:dc.w 0 ; DATA XREF: sub_51C44+5AEr ; Fail case 6 Throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent XDTP_TRANS_RATIO_KE_SS_PERF_THROT_FC7:dc.w 0 ; DATA XREF: sub_51C44+648r ; Fail case 7 throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent XDTP_TRANS_RATIO_KE_SS_PERF_THROT_FC8:dc.w 0 ; DATA XREF: sub_51C44+6FCr ; Fail Case 8 throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent XDTP_TRANS_RATIO_KE_SS_PERF_THROT_PC1:dc.w 0 ; DATA XREF: sub_51C44+8B4r ; Pass case 1 throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent XDTP_TRANS_RATIO_KE_SS_PERF_THROT_PC2:dc.w 0 ; DATA XREF: sub_51C44+946r ; Pass case 2 throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent XDTP_TRANS_RATIO_KE_SS_PERF_THROT_PC3:dc.w 0 ; DATA XREF: sub_51C44+9D8r ; Pass case 3 throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent XDTP_TRANS_RATIO_KE_SS_PERF_THROT_PC4:dc.w 0 ; DATA XREF: sub_51C44+AB6r ; Pass case 4 throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent XDTS_BRAKE_KE_BRAKE_STUCK_ON_RECOVER_TIME:dc.w $140 ; DATA XREF: sub_5285A+2B2r XDTS_BRAKE_KE_BRAKE_STUCK_OFF_RECOVER_TIME:dc.w $140 ; DATA XREF: sub_5285A+256r XDTS_BRAKE_KE_BRAKE_ON_OUT_SPD_LOW_THRESH:dc.w $500 ; DATA XREF: sub_5285A+3Ar ; Starting speed for detecting an acceleration cycle for brakeswitch stuck on diagnostic. ; MPH XDTS_BRAKE_KE_BRAKE_OFF_OUT_SPD_LOW_THRESH:dc.w $500 ; DATA XREF: sub_5285A+1A2r ; sub_5285A:loc_52A30r ; Starting speed for detecting an acceleration cycle for brake switch stuck off diagnostic. ; MPH XDTS_BRAKE_KE_BRAKE_ON_OUT_SPD_HIGH_THRESH:dc.w $1400 ; DATA XREF: sub_5285A:loc_528B0r ; Ending speed for detecting an acceleration cycle for brake switch stuck on diagnostic. ; MPH XDTS_BRAKE_KE_BRAKE_OFF_OUT_SPD_HIGH_THRESH:dc.w $1400 ; DATA XREF: sub_5285A+160r ; Ending speed for detecting an acceleration cycle for brake switch stuck off diagnostic. ; MPH XDTS_BRAKE_KE_ON_HIGH_TIME_LIMIT:dc.w $3C0 ; DATA XREF: sub_5285A+9Er ; Amount of time vehicle speed must be above the high thresholdduring the accel cycle in thebrake stuck on test. ; Seconds XDTS_BRAKE_KE_ON_MED_TIME_LIMIT:dc.w $280 ; DATA XREF: sub_5285A+6Cr ; Amount of time vehicle speed must be in-between the high and low threshold during the brakestuck on test accelerationcycle. ; Seconds XDTS_BRAKE_KE_OFF_HIGH_TIME_LIMIT:dc.w $3C0 ; DATA XREF: sub_5285A+174r XDTS_BRAKE_KE_OFF_MED_TIME_LIMIT:dc.w $280 ; DATA XREF: sub_5285A+1B2r ; Amount of time vehicle speed must be in-between the low andhigh threshold during a decel cycle in the brake stuck off test. ; Seconds XDTS_BRAKE_KE_BRAKE_ON_WITH_ACCEL_LIMIT:dc.b 7 ; DATA XREF: sub_5285A+FAr ; Number of acceleration events with the brake depressed above which the brake switch stuck on malfunction will be set. ; Counts XDTS_BRAKE_KE_BRAKE_OFF_WITH_DECEL_LIMIT:dc.b 7 ; DATA XREF: sub_5285A+20Ar ; Number of deceleration events with the brake not depressed above which the brake switch stuck off malfunction will be set. ; Counts XDTS_BRAKE_KE_BRAKE_OFF_PASS_COUNT:dc.b 1 ; DATA XREF: sub_5285A+28Er ; Number of valid pass cycles before a pass condition is accepted for the brake switch stuck off test. ; Counts XDTS_BRAKE_KE_BRAKE_ON_PASS_COUNT:dc.b 1 ; DATA XREF: sub_5285A+2E8r ; Number of valid pass cycles before a pass condition is accepted for the brake switch stuck on test. ; Counts XDTS_BRAKE_KE_BRAKE_ON_FAIL_TIME_LIMIT:dc.l locret_23280 ; DATA XREF: sub_5285A+D2r ; Amount of time that the brake switch stuck on test must fail before the accelerationcycle counter is reset. ; Seconds XDTS_INPT_SPD_SENSOR_KE_IN_SPD_DIAG_OUT_SPD_THRESH:dc.w $B00 ; DATA XREF: sub_52BE8+3Er ; Vehicle speed threshold above which input speed diagnostic is enabled. ; MPH XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_LOW_THRESH:dc.w 4 ; DATA XREF: sub_52BE8+10r ; Input speed threshold below which a diagnostic fault is enabled. ; RPM XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_LOW_TIME:dc.w 0 ; DATA XREF: sub_52BE8+88r ; Amount of time input speed must be below the threshold in order to set malfunction. ; Seconds. XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_HIGH_THRESH:dc.w $1F34 ; DATA XREF: sub_52BE8:loc_52C84r ; Input speed threshold above which a diagnostic fault is cleared. ; RPM XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_HIGH_TIME:dc.w 0 ; DATA XREF: sub_52BE8+CEr ; Amount of time input speed must be above the threshold in order to clear malfunction. ; Seconds. XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_DELTA_TIME_FAIL:dc.w $12C0 ; DATA XREF: sub_52CD6+B6r ; Amount of time there must be a drop in the input speed for a failure to be reported. ; Seconds. XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_PERF_TIME_PASS:dc.w $FFFF ; DATA XREF: sub_52CD6+12Cr ; Amount of time pass condition for input speed sensor performance must be valid before a PASS is reported. ; Seconds. XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_PERF_PASS_THRESH:dc.w $7FFF ; DATA XREF: sub_52CD6+11Cr ; Input speed must be above this threshold for a period of time for the PASS test to be valid. ; RPM XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_PERF_DELTA_FAIL:dc.w $7FFF ; DATA XREF: sub_52CD6+A6r ; The drop in input speed must be above this for a period of time for a failure to be reported. ; RPM XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_PERF_DELTA_PASS:dc.w $7FFF ; DATA XREF: sub_52CD6+110r ; The drop in input speed must be below this for a period of time for a pass to be reported. ; RPM XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_PERF_MPH_THRESH:dc.w $FFFF ; DATA XREF: sub_52CD6+1Er ; Vehicle speed must be above this threshold for the input speed sensor performance fail test to be enabled. ; MPH XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_PERF_THR_THRESH:dc.w $7FFF ; DATA XREF: sub_52CD6+10r ; Throttle position must be above this threshold for the input speed sensor performance fail test to be enabled. ; Percent XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOSS_IN_PN_FAIL:dc.w $7D00 ; DATA XREF: sub_53008+7Er ; Change in transmission output shaft speed above which will trigger output speed loss diagnostic in park or neutral ; RPM XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOSS_NOT_PN_FAIL:dc.w $1450 ; DATA XREF: sub_53008:loc_53094r ; Change in transmission output shaft speed above which will trigger output speed loss diagnostic when not in park or neutral ; RPM XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOSS_TIME_FL_PN:dc.w $FFFF ; DATA XREF: sub_53008+84r XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOSS_TIME_FL_NOTPN:dc.w $1E0 ; DATA XREF: sub_53008+92r XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOSS_RANGE_CHG_TIME:dc.w $3C0 ; DATA XREF: sub_53008+30r ; Amount of time since the last change in transmission range status before the output speed loss diagnostic is enabled ; Seconds XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOSS_TIME_PASS:dc.w $1E0 ; DATA XREF: sub_53008+12Ar ; Amount of time the change in output speed must meet the pass conditions before the output speed loss diagnostic is passed ; Seconds XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOSS_MPH_PASS:dc.w $7D0 ; DATA XREF: sub_53008+106r ; Change in transmission output shaft speed below which the output speed loss diagnostic will be passed ; RPM XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOSS_MPH_UNFIL:dc.w $960 ; DATA XREF: sub_53008+10Er ; Unfiltered output shaft speed above which the output speed loss diagnostic will be passed ; RPM XDTS_OUTPT_SPD_SENSOR_KE_MAX_ALLOWED_POS_OUT_SPD_CHG:dc.w $960 ; DATA XREF: sub_53008+12r ; Maximum positive change in output speed over one loop that will still allow the output speed loss test to run ; RPM XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_TEST_DELAY_TIME:dc.w $3C0 ; DATA XREF: sub_53008+1Cr ; Amount of time to delay the Output Speed loss test after a Positive output speed spike has occured ; Seconds XDTS_OUTPT_SPD_SENSOR_KE_TIME_SINCE_4WDL_STATE_CHANGE:dc.w $3C0 ; DATA XREF: sub_53008+54r ; Enables the diagnostic if the time since the four wheel drive low state change is greater than this calibration. ; Seconds XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_IN_SPD_THRESH:dc.w $2EE0 ; DATA XREF: sub_52E70+A4r ; sub_52E70+C4r ; Amount of engine or input speed (depending on the application) below which the output speed low diagnostic is disabled ; RPM XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_VAC_HIGH_THRESH:dc.b $87 ; DATA XREF: sub_52E70+72r ; Amount of engine vacuum above which the output speed low diagnostic is disabled ; KPA XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_VAC_LOW_THRESH:dc.b 0 ; DATA XREF: sub_52E70+60r ; Amount of engine vacuum below which the output speed low diagnostic is disabled ; KPA XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_THROTTLE_THRESH:dc.w $1333 ; DATA XREF: sub_52E70+4Er ; Amount of throttle position below which output speed low diagnostic is disabled ; Percent XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_THRESHOLD_FAIL:dc.w $258 ; DATA XREF: sub_52E70+D6r ; Amount of transmission output shaft speed below which output speed low diagnostic will fail ; RPM XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_THRESHOLD_PASS:dc.w $3E8 ; DATA XREF: sub_52E70+146r ; Amount of transmission output shaft speed above which output speed low diagnostic will pass ; RPM XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_TIME_FAIL:dc.w $190 ; DATA XREF: sub_52E70+F2r ; Amount of time output speed is below the low threshold before the output speed low diagnostic is enabled ; Seconds XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_TIME_PASS:dc.w $140 ; DATA XREF: sub_52E70+162r ; Amount of time output speed is above the low threshold before the output speed low diagnostic is passed ; Seconds XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_ETORQUE_LOW:dc.w $78 ; DATA XREF: sub_52E70+7Er ; Amount of engine torque below which the output speed low diagnostic is disabled ; Ft_lb XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_ETORQUE_HIGH:dc.w $640 ; DATA XREF: sub_52E70+8Ar ; Amount of engine torque above which the output speed low diagnostic is disabled ; Ft_lb XDTS_RANGE_KE_ILLEGAL_RANGE_STATUS_TIME:dc.w $2580 ; DATA XREF: sub_532C4+2Cr ; sub_532C4+5Cr ; Amount of time an illegal range status must be seenbefore the diagnostic fault is set ; Seconds XDTS_RANGE_KE_ILLEGAL_P_N_FAIL_TIME:dc.w $640 ; DATA XREF: sub_5341E+10Ar ; Amount of time an illegal PSA state must be seen before the diagnostic fault is set ; Seconds XDTS_RANGE_KE_ILLEGAL_P_N_PASS_TIME:dc.w $640 ; DATA XREF: sub_5341E+13Ar ; Amount of time an legal PSA state must be seen before the diagnostic pass is set ; Seconds XDTS_RANGE_KE_DIAG_SPEED_RATIO_RANGE_HIGH:dc.w $CCD ; DATA XREF: sub_5341E+48r ; Ratio below which illegal park/neutral test is enabled. ; Ratio XDTS_RANGE_KE_DIAG_SPEED_RATIO_RANGE_LOW:dc.w $A66 ; DATA XREF: sub_5341E+56r ; Ratio above which illegal park/neutral test is enabled. ; Ratio XDTS_RANGE_KE_PSM_FAULT_ENG_SPD_LOW_THRESH:dc.w $140 ; DATA XREF: sub_53586+9Er ; Engine speed low threshold above which illegal drive_2 test is enabled. ; RPM XDTS_RANGE_KE_PSM_FAULT_ENG_SPD_HIGH_THRESH:dc.w $898 ; DATA XREF: sub_53586:loc_53662r ; Engine speed high threshold below which illegal drive_2 test is enabled. ; RPM XDTS_RANGE_KE_PSM_FAULT_MPH_THRESH:dc.w $200 ; DATA XREF: sub_53586+90r ; Vehicle speed threshold below which illegal drive_2 test is enabled. ; MPH XDTS_RANGE_KE_PSM_FAULT_INPUT_SPD_THRESH:dc.w $7FFF ; DATA XREF: sub_53586+174r ; Input speed threshold above which illegal drive_2 test is enabled. ; RPM XDTS_RANGE_KE_PSM_FAULT_TPS_LOW_THRESH:dc.w $A3D ; DATA XREF: sub_5341E+DEr ; Low threshold throttle position for pressureswitch assembly diagnostic test. ; Percent XDTS_RANGE_KE_PSM_FAULT_TPS_HIGH_THRESH:dc.w $399A ; DATA XREF: sub_5341E+D0r ; High threshold throttle position for pressureswitch assembly diagnostic test. ; Percent XDTS_RANGE_KE_PSM_ENG_SPD_FAIL_TIMER_LIMIT:dc.w $320 ; DATA XREF: sub_5334E+4Ar ; Amount of time an illegal PSM state must be seen before diagnostic Fail shall be set ; Seconds XDTS_RANGE_KE_PSM_ENG_SPD_PASS_TIMER_LIMIT:dc.w 3 ; DATA XREF: sub_5334E+92r ; Amount of time an illegal PSM state must be seen before diagnostic Pass shall be set ; Seconds XDTS_RANGE_KE_PSM_FAULT_ENG_SPD_LOW_TIME:dc.w $10 ; DATA XREF: sub_53586+B4r ; A timer limit for Engine_Speed to be below a threshold. Is used by the PSM diagnostic for the illegal drive2 determination. ; Seconds XDTS_RANGE_KE_PSM_FAULT_ENG_SPD_MED_TIME:dc.w $B ; DATA XREF: sub_53586+134r ; A timer limit for Engine_Speed to be between two thresholds Is used by the PSM diagnostic for the illegal drive2 determination. ; Seconds XDTS_RANGE_KE_PSA_MPH_OUTPUT_SPEED:dc.w $FFFF ; DATA XREF: sub_537A8+A4r ; Vehicle speed in MPH greater than this valueto enable case three of the pressure switchassembly test ; MPH XDTS_RANGE_KE_PSA_OUT_SPD_THROTTLE_THRESH:dc.w $7FFF ; DATA XREF: sub_537A8+B2r ; Throttle greater than this valueto enable case three of the pressure switchassembly test ; Percent XDTS_RANGE_KE_PSM_FAULT_ENG_TRQ_LOW_THRESH:dc.w $A0 ; DATA XREF: sub_5341E+C2r ; sub_537A8+CCr ; Low threshold engine torque for pressureswitch assembly diagnostic test. ; Ft_lb XDTS_RANGE_KE_PSM_FAULT_ENG_TRQ_HIGH_THRESH:dc.w $640 ; DATA XREF: sub_5341E+B4r ; sub_537A8+C0r ; High threshold engine torque for pressureswitch assembly diagnostic test. ; Ft_lb XDTS_RANGE_KE_PSM_FAULT_ENG_VAC_LOW_THRESH:dc.b 0 ; DATA XREF: sub_5341E+A6r ; sub_537A8+F0r ; Low threshold manifold pressure for pressureswitch assembly diagnostic test. ; KPA XDTS_RANGE_KE_PSM_FAULT_ENG_VAC_HIGH_THRESH:dc.b $87 ; DATA XREF: sub_5341E+92r ; sub_537A8+DEr ; High threshold manifold pressure for pressureswitch assembly diagnostic test. ; KPA XDTS_RANGE_KE_PSA_RATIO_IN_PARK_NEUTRAL:dc.w $7FFF ; DATA XREF: sub_537A8+192r ; Ratio value used to check low or high ratioin park or neutral range. ; NONE XDTS_RANGE_KE_PSA_LW_RAT_PARK_NEUTRAL_TIME:dc.w $FFFF ; DATA XREF: sub_537A8+1A2r ; Amount of Time used to check transmission range inpark or neutral with low gear ratio. ; Seconds XDTS_RANGE_KE_PSA_HGH_RAT_PARK_NEUTRAL_TIME:dc.w $FFFF ; DATA XREF: sub_537A8+1CEr ; Amount of Time used to check transmission range inpark or neutral with hhgh gear ratio. ; Seconds XDTS_RANGE_KE_PSA_REVERSE_RATIO_LOW:dc.w $7FFF ; DATA XREF: sub_537A8+27Er ; Low limit gear ratio used in transmissiondrivable range check. ; NONE XDTS_RANGE_KE_PSA_REVERSE_RATIO_HIGH:dc.w $7FFF ; DATA XREF: sub_537A8+286r ; High limit gear ratio used in transmissiondrivable range check. ; NONE XDTS_RANGE_KE_PSA_REV_RATIO_FAIL_TIME:dc.w 0 ; DATA XREF: sub_537A8+252r ; Amount of Time used to check transmission range inreverse with gear ratio either low or high ; Seconds XDTS_RANGE_KE_PSA_REV_RATIO_PASS_TIME:dc.w 0 ; DATA XREF: sub_537A8+296r ; Amount of Time used to check transmission range inreverse with gear ratio between low and high ; Seconds XDTS_RANGE_KE_PSA_DRIVE_RANGE_LOW_FAIL:dc.w $7FFF ; DATA XREF: sub_537A8+2D0r ; Low limit gear ratio used in transmissiondrivable range check. ; NONE XDTS_RANGE_KE_PSA_DRIVE_RANGE_HIGH_FAIL:dc.w $7FFF ; DATA XREF: sub_537A8+2D8r ; High limit gear ratio used in transmissiondrivable range check. ; NONE XDTS_RANGE_KE_PSA_DRIVE_RANGE_LOW_PASS:dc.w $7FFF ; DATA XREF: sub_537A8:loc_53AB4r ; Low limit gear ratio used in transmissiondrivable range check. ; NONE XDTS_RANGE_KE_PSA_DRIVE_RANGE_HIGH_PASS:dc.w $7FFF ; DATA XREF: sub_537A8+314r ; Low limit gear ratio used in transmissiondrivable range check. ; NONE XDTS_RANGE_KE_PSA_PASS_DRIVE_RANGE_TIME:dc.w $FFFF ; DATA XREF: sub_537A8+324r ; Amount of Time used to check transmission range inDrive with gear ratio between low and high ; Seconds XDTS_RANGE_KE_PSA_FAIL_DRIVE_RANGE_TIME:dc.w $FFFF ; DATA XREF: sub_537A8+2E8r ; Amount of Time used to check transmission range inDrive with gear ratio at low or high ; Seconds XDTS_RANGE_KE_PSA_REV_RATIO_1ST_GEAR_LOW:dc.w 0 ; DATA XREF: sub_537A8+20Ar ; Lowlimit for 1st gear ratio used in transmissiondrivable range check while in reverse ; NONE XDTS_RANGE_KE_PSA_REV_RATIO_1ST_GEAR_HIGH:dc.w 0 ; DATA XREF: sub_537A8+212r ; Highlimit for 1st gear ratio used in transmissiondrivable range check while in reverse ; NONE XDTS_RANGE_KE_PSA_REV_RATIO_2ND_GEAR_LOW:dc.w 0 ; DATA XREF: sub_537A8:loc_539C2r ; Lowlimit for 2nd gear ratio used in transmissiondrivable range check while in reverse ; NONE XDTS_RANGE_KE_PSA_REV_RATIO_2ND_GEAR_HIGH:dc.w 0 ; DATA XREF: sub_537A8+222r ; Highlimit for 2nd gear ratio used in transmissiondrivable range check while in reverse ; NONE XDTS_RANGE_KE_PSA_REV_RATIO_3RD_GEAR_LOW:dc.w 0 ; DATA XREF: sub_537A8:loc_539D2r ; Lowlimit for 3rd gear ratio used in transmissiondrivable range check while in reverse ; NONE XDTS_RANGE_KE_PSA_REV_RATIO_3RD_GEAR_HIGH:dc.w 0 ; DATA XREF: sub_537A8+232r ; Highlimit for 3rd gear ratio used in transmissiondrivable range check while in reverse ; NONE XDTS_RANGE_KE_PSA_REV_RATIO_4TH_GEAR_LOW:dc.w 0 ; DATA XREF: sub_537A8:loc_539E2r ; Lowlimit for 4th gear ratio used in transmissiondrivable range check while in reverse ; NONE XDTS_RANGE_KE_PSA_REV_RATIO_4TH_GEAR_HIGH:dc.w 0 ; DATA XREF: sub_537A8+242r ; Highlimit for 4th gear ratio used in transmissiondrivable range check while in reverse ; NONE XDTS_RANGE_KE_PSM_NOISS_VOLT_FAULT_TIME:dc.w 0 ; DATA XREF: sub_5341E+EAr XDTS_RANGE_KE_PSA_WISS_VOLT_FAULT_TIME:dc.w 0 ; DATA XREF: sub_537A8+10Ar ; Pressure switch assembly with input speed sensor will not be tested if ignition voltage is out of range for longer than this. ; Seconds XDTS_RANGE_KE_PSA_IMS_NUMBER:dc.b 0 ; DATA XREF: sub_53B10:loc_53B94r ; Comparison for diagnostic P1527 pass or fail. ; IMS Number dc.b $FF XDTS_RANGE_KV_PSA_IMS_AGE_FACTOR:dc.w 0 ; DATA XREF: sub_53B10+6Er ; Multiplying factor based on engine miles. ; Scaler dcb.b 8,0 XDTS_RANGE_KE_TOP_RANGE_MULTIPLIER:dc.b 0 ; DATA XREF: sub_53B10+1Er ; Multiplier for the Top Range Counter used in PSA/IMS comparison diagnostic. ; IMS Number XDTS_RANGE_KE_DG_IGN_VOLTAGE_LOW_THRSH:dc.b 0 ; DATA XREF: sub_53BDC+3Ar ; Lower limit for the system voltage for the PSA/IMS comparison diagnostic. ; Volts XDTS_RANGE_KE_DG_IGN_VOLTAGE_HIGH_THRSH:dc.b 0 ; DATA XREF: sub_53BDC+48r ; Upper limit for the system voltage for the PSA/IMS comparison diagnostic. ; Volts dc.b $FF XDTS_RANGE_KE_PSA_IMS_GENERAL_TIME:dc.w 0 ; DATA XREF: sub_53BDC+176r ; Upper limit for the PSA/IMS mismatch time. ; Seconds XDTS_RANGE_KE_PSA_IMS_TOP_RANGE_TIME:dc.w 0 ; DATA XREF: sub_53BDC+136r ; Upper limit for the PSA/IMS mismatch time when one of them indicates Drive 4. ; Seconds XDTS_RANGE_KE_PSA_F_IMS_ODD_TIME:dc.w 0 ; DATA XREF: sub_53BDC+C6r ; Upper limit for the PSA/IMS mismatch time during a garage shift window. ; Seconds XDTS_RANGE_KE_PSA_IMS_GS_WINDOW_TIME:dc.w 0 ; DATA XREF: sub_53BDC+DAr ; Time before and after a new garage shift that constitutes a garage shift window. ; Seconds XDTS_RANGE_KE_DIAG_PSA_SYS_VOLT_TIME:dc.w $FFFF ; DATA XREF: sub_53586+5Cr ; If ignition voltage is out of range for a time greater than this, do not test Pressure Switch Assembly Engine Speed Transition. ; Seconds XDTS_TCC_REL_SWCH_KE_TCC_REL_SW_DIAG_TIME_PASS:dc.w 0 ; DATA XREF: sub_53DDA+17Cr ; Pass time for TCC stuck off while TCC is being commanded ON. ; Seconds XDTS_TCC_REL_SWCH_KE_TCC_REL_SW_DIAG_TIME_FAIL:dc.w 0 ; DATA XREF: sub_53DDA+100r ; Fail time for TCC stuck off while TCC is being commanded ON. ; Seconds XDTS_TCC_REL_SWCH_KE_TCC_REL_SW_SLIP_LOW:dc.w $7FFF ; DATA XREF: sub_53DDA+92r ; TCC slip low threshold value to enable TCC stuck off while TCC is being commanded ON.- TCC Release switch circuit malfunction ; RPM_S XDTS_TCC_REL_SWCH_KE_TCC_REL_SW_SLIP_HIGH:dc.w $7FFF ; DATA XREF: sub_53DDA+A0r ; TCC slip high threshold value to enable TCC stuck off while TCC is being commanded ON. ; RPM_S XDTS_TCC_REL_SWCH_KE_TCC_REL_SW_ENGINE_TORQUE_HIGH:dc.w 0 ; DATA XREF: sub_53DDA+BCr ; High enable threshold to run rel sw diag for TCC stuck off when commanded on. ; Ft_Lb XDTS_TCC_REL_SWCH_KE_TCC_REL_SW_ENGINE_TORQUE_LOW:dc.w 0 ; DATA XREF: sub_53DDA+AEr ; Low enable threshold to run rel sw diag for TCC stuck off when commanded on. ; Ft_Lb XDTS_TCC_REL_SWCH_KE_TCC_REL_FAIL_COUNTER:dc.b $FF ; DATA XREF: sub_53DDA+11Cr ; TCC Stuck off while being commanded on fail counter - TCC release switch diag. ; Counts dc.b $FF XDTS_TCC_REL_SWCH_KE_TCC_REL_SW_TCC_PRESSURE_HIGH:dc.w 0 ; DATA XREF: sub_53DDA+D8r ; Low threshold to run TCC stuck off when being commanded on - TCC release switch diag. ; PSI XDTS_TCC_REL_SWCH_KE_TCC_REL_SW_TCC_PRESSURE_LOW:dc.w 0 ; DATA XREF: sub_53DDA+CAr ; High threshold to run TCC stuck off when being commanded on - TCC release switch diag. ; PSI XDTS_TEMP_KE_TRANS_TEMP_SENSOR_VOLT_HIGH:dc.b $F5 ; DATA XREF: sub_53F90:loc_53FCCr ; High limit for transmission temperature sensor voltage above which the diagnostic fault is set ; A/D Counts XDTS_TEMP_KE_TRANS_TEMP_SENSOR_VOLTAGE_LOW:dc.b $A ; DATA XREF: sub_53F90:loc_540B0r ; Low limit for transmission temperature sensor voltage below which the diagnostic fault is set ; A/D Counts XDTS_TEMP_KE_TRANS_TEMP_SENSOR_HIGH_TIME:dc.w $640 ; DATA XREF: sub_53F90+88r ; sub_53F90+CAr ; Amount of time transmission sensor voltage must be above high limit before the diagnostic fault is set ; Seconds XDTS_TEMP_KE_TRANS_TEMP_SENSOR_LOW_TIME:dc.w $640 ; DATA XREF: sub_53F90+16Cr ; sub_53F90+1B2r ; Amount of time transmission sensor voltage must be below low limit before the diagnostic fault is set ; Seconds XDTS_TEMP_KE_TTS_HIGH_VOLT_FAULT_TIME:dc.w 0 ; DATA XREF: sub_53F90+66r ; Transmission fluid temperature sensor circuit high will not be tested if ignition voltage is out of range for longer than this. ; Seconds XDTS_TEMP_KE_TTS_LOW_VOLT_FAULT_TIME:dc.w 0 ; DATA XREF: sub_53F90+14Ar ; Transmission fluid temperature sensor circuit low will not be tested if ignition voltage is out of range for longer than this. ; Seconds dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF FUELCALIBRATIONS_HEADER:dc.b $89 ; ? ; DATA XREF: DoManyThings1+266o ; Use this cal to identify the Fuel Systems calibration ; Cal_ID_Record dc.b $39 ; 9 dc.b 0 dc.b 6 Constant32_Fuel_System_Calibration_ID:dc.b 0 ; DATA XREF: sub_269DE:loc_26A62o dc.b $C0 ; ? dc.b 5 dc.b $D9 ; ? CurveTable_2_Columns_Fuel_System_Calibration_Level:dc.b $41 ; A ; DATA XREF: sub_269DE:loc_26B06o dc.b $42 ; B dc.b 0 dc.b 0 CurveTable_8_Columns_Fuel_System_Calibration_ID_ASCII:dc.b '12584409',0 ; DATA XREF: sub_3F6FE+154o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 F_TANK_KE_FUEL_TANK_VACUUM_OFFSET:dc.w $E200 ; DATA XREF: sub_7F4CA+36r ; sub_803A4+7Ar ... ; The y-intercept for the tank vacuum AD counts to inches water equation. ; Inches H2O F_TANK_KE_GAGE_TO_ZERO_ON_PUMP_FAULT:dc.b 0 ; DATA XREF: sub_47B78+1E6r ; sub_802BE+14r ; Bit selectable cal to force the PWM Fuel Level output to zero when a secondary fuel pump fault is present. ; BOOLEAN dc.b $FF F_TANK_KE_FUEL_TANK_RATED_CAPACITY:dc.w $1139 ; DATA XREF: sub_3CD78+606r ; OS2:GetPid_131Dr ... ; Maximum Fuel Tank volume as rated by GMUTS and/or the platform. ; Liters F_TANK_KE_FUEL_SYSTEM_USES_PULLUP_RESIS:dc.b 1 ; DATA XREF: DoManyThings1+DCr ; Determines whether to acitvate or de-activate the transistor to which allows the pullup resistor to be on or off. ; TRUE/FALSE dc.b $FF F_TANK_KE_FUEL_TANK_RATED_CAPACITY_GAGE:dc.w $1139 ; DATA XREF: sub_8016C+7Er ; Maximum Fuel Tank volume as rated by GMUTS and/or the platform. ; Liters F_TANK_KE_VSS_XFER_PUMP:dc.w 0 ; DATA XREF: sub_7F61E+5A2r ; Maximum value of vehicle speed that the secondary transfer pump will be diagnosed. ; MPH F_TANK_KE_FUEL_GAGE_PWM_MIN:dc.w 0 ; DATA XREF: sub_802BE+34r ; Minimum value allowed for fuel gage PWM signal. ; Percent F_TANK_KE_FUEL_GAGE_PWM_MAX:dc.w $1400 ; DATA XREF: sub_802BE:loc_80302r ; Maximum value allowed for fuel gage PWM signal. ; Percent F_TANK_KE_PRIMARY_TANK_RATED_CAPACITY:dc.w $83F ; DATA XREF: sub_7FEDC+36r ; OS3:loc_7FF68r ... ; Volume to which the primary tank is considered Full. ; Liters F_TANK_KE_PRI_TANK_RATED_CAPACITY_GAGE:dc.w $83F ; DATA XREF: OS3:0007FF7Cr ; OS3:0007FFBEr ; Volume to which the primary tank is considered Full for purposes of the fuel gage. ; Liters F_TANK_KE_GRAVITY_FUEL_FILL:dc.w 0 ; DATA XREF: sub_7F61E+2B6r ; Threshold in the secondary tank which determine the spill over level into the primary tank. ; Liters F_TANK_KE_PRIMARY_TANK_HIGH_XFER_LEVEL:dc.w $1900 ; DATA XREF: sub_7F61E:loc_7FA8Cr ; Volume in primary tank at which point the secondary transfer pump will be requested off after a calibratable time. ; Liters F_TANK_KE_SECONDARY_TANK_ZONE1_5_THRESH:dc.w $D4 ; DATA XREF: sub_7F61E+28r ; sub_7F61E+ACr ... F_TANK_KV_FUEL_LEVEL_TO_PWM_FOR_GAGE:dc.b 0 ; DATA XREF: sub_802BE+26o ; Table to convert fuel level to PWM duty cycleto drive a fuel gage in the cluster. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 F_TANK_KE_FUEL_SENDER_UNIT_TYPE:dc.b 1 ; DATA XREF: sub_7F61E+8r ; sub_7F61E:loc_7F74Er ... ; This calibration defines if the 5V or the 12V fuel tank level sensor is wired to the PCM. ; SenderType dc.b $FF F_TANK_KE_FUEL_LEVEL_INPUT_DELAY:dc.w $A0 ; DATA XREF: sub_7FEA2+18r ; The minimum amount of time to delay a valid fuel level reading. ; Seconds F_TANK_KE_PRIMARY_TANK_TOO_FULL_TIME:dc.w $7C60 ; DATA XREF: sub_7F61E+480r ; Time which the primary fuel level must remain above the threshold to turn off the xfer pump. ; Seconds F_TANK_KE_FUEL_LEVEL_UPPER_FAULTS:dc.b $3C ; DATA XREF: GetFuelLevel+4Er ; GetFuelLevel+C2r F_TANK_KE_FUEL_LEVEL_LOWER_FAULTS:dc.b $3C ; DATA XREF: GetFuelLevel+88r ; GetFuelLevel+100r F_TANK_KE_FUEL_LEVEL_PULSE_OFF_CTS_ETH:dc.b 0 ; DATA XREF: sub_7F36C+116r F_TANK_KE_FUEL_LEVEL_PULSE_OFF_CTS_EVP:dc.b 0 ; DATA XREF: sub_7F36C:loc_7F46Cr F_TANK_KE_FUEL_LEVEL_PULSE_ETHANOL_HI:dc.w $1200 ; DATA XREF: sub_7F36C+10Er F_TANK_KE_FUEL_LEVEL_PULSE_ETHANOL_LO:dc.w $1200 ; DATA XREF: sub_7F36C:loc_7F48Cr F_TANK_KE_FUEL_LEVEL_AD_HIGH_LIMIT:dc.b $96 ; DATA XREF: GetFuelLevel+32r ; sub_8006A+16r ... ; If the fuel level reading is equal to or above this value then it is considered a fault. ; A/D Counts F_TANK_KE_FUEL_LEVEL_AD_LOW_LIMIT:dc.b $14 ; DATA XREF: GetFuelLevel+70r ; GetFuelLevel+E8r ... ; If the fuel level reading is equal to or below this value then it is considered a fault. ; A/D Counts F_TANK_KV_CONVERT_PRIMARY_FUEL_LEVEL_TO:dc.b 0 ; DATA XREF: sub_8006A+24o ; Converts fuel level sender AD counts to liters. ; Liters dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $51 ; Q dc.b 0 dc.b $87 ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $BC ; ? dc.b 0 dc.b $D7 ; ? dc.b 0 dc.b $F2 ; ? dc.b 1 dc.b $11 dc.b 1 dc.b $2F ; / dc.b 1 dc.b $4D ; M dc.b 1 dc.b $6B ; k dc.b 1 dc.b $8A ; ? dc.b 1 dc.b $A8 ; ? dc.b 1 dc.b $C6 ; ? dc.b 1 dc.b $E5 ; ? dc.b 2 dc.b $D dc.b 2 dc.b $35 ; 5 dc.b 2 dc.b $5E ; ^ dc.b 2 dc.b $80 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $C5 ; ? dc.b 2 dc.b $EB ; ? dc.b 3 dc.b $13 dc.b 3 dc.b $3C ; < dc.b 3 dc.b $68 ; h dc.b 3 dc.b $99 ; ? dc.b 3 dc.b $C9 ; ? dc.b 3 dc.b $F1 ; ? dc.b 4 dc.b $1A dc.b 4 dc.b $42 ; B dc.b 4 dc.b $73 ; s dc.b 4 dc.b $A3 ; ? dc.b 4 dc.b $CF ; ? dc.b 4 dc.b $F8 ; ? dc.b 5 dc.b $20 dc.b 5 dc.b $53 ; S dc.b 5 dc.b $8F ; ? dc.b 5 dc.b $C6 ; ? dc.b 5 dc.b $F6 ; ? dc.b 6 dc.b $27 ; ' dc.b 6 dc.b $57 ; W dc.b 6 dc.b $88 ; ? dc.b 6 dc.b $B4 ; ? dc.b 6 dc.b $DC ; ? dc.b 7 dc.b 5 dc.b 7 dc.b $56 ; V dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? F_TANK_KV_CONVERT_SECONDARY_FUEL_LEVEL_:dc.b 0 ; DATA XREF: sub_8006A+70o ; Converts fuel level sender AD counts to liters. ; Liters dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $BF ; ? dc.b 0 dc.b $D2 ; ? dc.b 0 dc.b $E5 ; ? dc.b 0 dc.b $F7 ; ? dc.b 1 dc.b $A dc.b 1 dc.b $22 ; " dc.b 1 dc.b $3A ; : dc.b 1 dc.b $52 ; R dc.b 1 dc.b $6B ; k dc.b 1 dc.b $83 ; ? dc.b 1 dc.b $A1 ; ? dc.b 1 dc.b $BF ; ? dc.b 1 dc.b $DE ; ? dc.b 1 dc.b $FC ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $4D ; M dc.b 2 dc.b $75 ; u dc.b 2 dc.b $98 ; ? dc.b 2 dc.b $BA ; ? dc.b 2 dc.b $DD ; ? dc.b 3 dc.b 7 dc.b 3 dc.b $37 ; 7 dc.b 3 dc.b $67 ; g dc.b 3 dc.b $98 ; ? dc.b 3 dc.b $C8 ; ? dc.b 3 dc.b $F9 ; ? dc.b 4 dc.b $29 ; ) dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $8A ; ? dc.b 4 dc.b $BB ; ? dc.b 4 dc.b $F1 ; ? dc.b 5 dc.b $2E ; . dc.b 5 dc.b $6A ; j dc.b 5 dc.b $A7 ; ? dc.b 5 dc.b $E3 ; ? dc.b 6 dc.b $20 dc.b 6 dc.b $5D ; ] dc.b 6 dc.b $99 ; ? dc.b 6 dc.b $D6 ; ? dc.b 7 dc.b $12 dc.b 7 dc.b $4F ; O dc.b 7 dc.b $8B ; ? dc.b 8 dc.b $32 ; 2 dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? F_TANK_KV_PRI_FUEL_LEVEL_TO_VOL_GAGE:dc.b 0 ; DATA XREF: sub_8006A+3Ao ; Converts fuel level sender AD counts to liters for display on the fuel gage. ; Liters dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $51 ; Q dc.b 0 dc.b $87 ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $BC ; ? dc.b 0 dc.b $D7 ; ? dc.b 0 dc.b $F2 ; ? dc.b 1 dc.b $11 dc.b 1 dc.b $2F ; / dc.b 1 dc.b $4D ; M dc.b 1 dc.b $6B ; k dc.b 1 dc.b $8A ; ? dc.b 1 dc.b $A8 ; ? dc.b 1 dc.b $C6 ; ? dc.b 1 dc.b $E5 ; ? dc.b 2 dc.b $D dc.b 2 dc.b $35 ; 5 dc.b 2 dc.b $5E ; ^ dc.b 2 dc.b $80 ; ? dc.b 2 dc.b $A3 ; ? dc.b 2 dc.b $C5 ; ? dc.b 2 dc.b $EB ; ? dc.b 3 dc.b $13 dc.b 3 dc.b $3C ; < dc.b 3 dc.b $68 ; h dc.b 3 dc.b $99 ; ? dc.b 3 dc.b $C9 ; ? dc.b 3 dc.b $F1 ; ? dc.b 4 dc.b $1A dc.b 4 dc.b $42 ; B dc.b 4 dc.b $73 ; s dc.b 4 dc.b $A3 ; ? dc.b 4 dc.b $CF ; ? dc.b 4 dc.b $F8 ; ? dc.b 5 dc.b $20 dc.b 5 dc.b $53 ; S dc.b 5 dc.b $8F ; ? dc.b 5 dc.b $C6 ; ? dc.b 5 dc.b $F6 ; ? dc.b 6 dc.b $27 ; ' dc.b 6 dc.b $57 ; W dc.b 6 dc.b $88 ; ? dc.b 6 dc.b $B4 ; ? dc.b 6 dc.b $DC ; ? dc.b 7 dc.b 5 dc.b 7 dc.b $56 ; V dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? dc.b 8 dc.b $3F ; ? F_TANK_KV_SEC_FUEL_LEVEL_TO_VOL_GAGE:dc.b 0 ; DATA XREF: sub_8006A+86o ; Converts fuel level sender AD counts to liters for the secondary tank for display on the fuel gage. ; Liters dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $BF ; ? dc.b 0 dc.b $D2 ; ? dc.b 0 dc.b $E5 ; ? dc.b 0 dc.b $F7 ; ? dc.b 1 dc.b $A dc.b 1 dc.b $22 ; " dc.b 1 dc.b $3A ; : dc.b 1 dc.b $52 ; R dc.b 1 dc.b $6B ; k dc.b 1 dc.b $83 ; ? dc.b 1 dc.b $A1 ; ? dc.b 1 dc.b $BF ; ? dc.b 1 dc.b $DE ; ? dc.b 1 dc.b $FC ; ? dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $4D ; M dc.b 2 dc.b $75 ; u dc.b 2 dc.b $98 ; ? dc.b 2 dc.b $BA ; ? dc.b 2 dc.b $DD ; ? dc.b 3 dc.b 7 dc.b 3 dc.b $37 ; 7 dc.b 3 dc.b $67 ; g dc.b 3 dc.b $98 ; ? dc.b 3 dc.b $C8 ; ? dc.b 3 dc.b $F9 ; ? dc.b 4 dc.b $29 ; ) dc.b 4 dc.b $5A ; Z dc.b 4 dc.b $8A ; ? dc.b 4 dc.b $BB ; ? dc.b 4 dc.b $F1 ; ? dc.b 5 dc.b $2E ; . dc.b 5 dc.b $6A ; j dc.b 5 dc.b $A7 ; ? dc.b 5 dc.b $E3 ; ? dc.b 6 dc.b $20 dc.b 6 dc.b $5D ; ] dc.b 6 dc.b $99 ; ? dc.b 6 dc.b $D6 ; ? dc.b 7 dc.b $12 dc.b 7 dc.b $4F ; O dc.b 7 dc.b $8B ; ? dc.b 8 dc.b $32 ; 2 dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? dc.b 8 dc.b $FA ; ? F_TANK_KV_TRANSFER_PUMP_TIME_LIMIT:dc.b 0 ; DATA XREF: sub_7F61E:loc_7FA68o ; Maximum amount of time the transfer pump can be on continuously without burning up. ; Seconds_L dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 F_TANK_KV_FUEL_VAPOR_TEMPERATURE:dc.b 3 ; Used to linearize and scale the raw A/D fuel tank vapor temperature sensor. ; Degrees_C dc.b $96 ; ? dc.b 3 dc.b $99 ; ? dc.b 3 dc.b $8C ; ? dc.b 3 dc.b $6F ; o dc.b 3 dc.b $43 ; C dc.b 3 dc.b 7 dc.b 2 dc.b $BB ; ? dc.b 2 dc.b $60 ; ` dc.b 1 dc.b $F5 ; ? dc.b 1 dc.b $7A ; z dc.b 0 dc.b $F0 ; ? dc.b 0 dc.b $56 ; V dc.b $FF dc.b $AD ; ? dc.b $FE ; ? dc.b $F3 ; ? dc.b $FE ; ? dc.b $2A ; * dc.b $FD ; ? dc.b $52 ; R dc.b $FC ; ? dc.b $6A ; j F_TANK_KE_PRIMARY_TANK_FULL_THRESHOLD:dc.w $71D ; DATA XREF: sub_7F61E+1Ar ; sub_7F61E+55Cr ... ; Threshold of _measurable_, usable fuel in the primary tank above which the primary tank is considered full. ; Liters F_TANK_KE_PRIMARY_TANK_PUMP_ON_LEVEL:dc.w 0 ; DATA XREF: sub_7F61E+3ECr F_TANK_KE_SECONDARY_TANK_EMPTY_THRESHOL:dc.w $D4 ; DATA XREF: sub_7F61E:loc_7F6F8r ; sub_7F61E+32Cr ... ; Threshold of measurable, usable fuel in the secondary tank above which the secondary tank is considered full. ; Liters F_TANK_KE_SECONDARY_TANK_TRANSFER_THRES:dc.w 0 ; DATA XREF: sub_7F61E+40Ar ; Volume necessary in secondary tank to allow the transferpump to be turned on. ; Liters F_TANK_KE_SECONDARY_TANK_EMPTY_TIME:dc.w 0 ; DATA XREF: sub_7F61E+4EEr ; Time which the transfer pump has pumped the fuel in the secondary tank below the secondary empty threshold. ; Seconds F_TANK_KE_TRANSFER_PUMP_MIN_OFF_TIME:dc.w 0 ; DATA XREF: sub_7F61E+3FEr ; sub_803A4+214r ; Timer to prevent the fuel pump from turning off and turning right back on. ; Seconds F_TANK_KE_TRANSFER_PUMP_FUEL_LEVEL_DELT:dc.w 0 ; DATA XREF: sub_7F61E+624r ; Minimum level of change necessary to determine the senders are moving and the pump is working. ; Liters F_TANK_KE_TRANSFER_PUMP_FAIL_TIME:dc.w 0 ; DATA XREF: sub_7F61E:loc_7FC8Er F_TANK_KE_SLOSH_DELAY_XFER_PUMP_TIME:dc.w 0 ; DATA XREF: sub_7F61E:loc_7FBF2r ; Amount of delay time to allow fuel slosh to relax before the transfer pump is diagnosed. ; Seconds F_TANK_KE_FUEL_LEVEL_CHANGE_STATE_TIME:dc.w $12C0 ; DATA XREF: sub_7F61E:loc_7F67Ar ; sub_7F61E+98r ... ; Time sender readings must be in a new state before that new state's calculation method will be used. ; Seconds F_TANK_KE_FUEL_GAGE_NORMAL_FILTER:dc.w $82 ; DATA XREF: sub_8016C+56r ; Lag filter time constant used to over-damp fuel gage movement. ; Seconds F_TANK_KE_FUEL_GAGE_FAST_FILL_FILTER:dc.w $1E15 ; DATA XREF: sub_8016C+46r ; Lag filter time constant used to allow fast fuel gage movement during Fast Fill mode of gage operation. ; Seconds F_TANK_KE_FUEL_MAIN_TIME_CONSTANT:dc.w $512 ; DATA XREF: sub_8020E+10r ; The main filter coefficient for fuel tank level. ; Seconds F_TANK_KE_FUEL_SLOSH_TIME_CONSTANT:dc.w $2E67 ; DATA XREF: sub_7F36C+9Er ; Filter coefficient for both primary and secondary fuel levels used in slosh calculations. ; Seconds F_TANK_KE_FUEL_PRM_SLSH_THRSH_TIME_CNST:dc.w $652 ; DATA XREF: sub_8020E+5Cr ; Filter coefficient for primary fuel tank levelused in slosh threshold lookup. ; Seconds F_TANK_KE_FUEL_SEC_SLSH_THRSH_TIME_CNST:dc.w $652 ; DATA XREF: sub_8020E+86r ; Filter coefficient for secondary fuel tank levelused in slosh threshold lookup. ; Seconds F_TANK_KE_FUEL_LEVEL_DELTA:dc.w $C0 ; DATA XREF: sub_7F61E+1A4r ; sub_7F61E+298r ; If the fuel level reading has not moved this amount for a given amount of accumulated miles then it is considered a fault. ; Liters F_TANK_KE_PRIMARY_SENDER_MIN_MILES:dc.l $927C0 ; DATA XREF: sub_7F61E+1B6r F_TANK_KE_SECONDARY_SENDER_MIN_MILES:dc.l $927C0 ; DATA XREF: sub_7F61E+2AAr F_TANK_KE_FUEL_SENDER_MIN_MILES_IN_DEAD:dc.l $927C0 ; DATA XREF: sub_7F61E+208r ; If the fuel tank level remains in deadband this amount of miles, the fuel sender is considered to be malfunctioning. ; Miles F_TANK_KE_FUEL_LEVEL_RATIONALITY_TIME_L:dc.l loc_5DC00 ; DATA XREF: sub_7F61E+370r ; Time allowed for the fuel level readings to be inconsistant with reality. ; Seconds F_TANK_KE_REZERO_MIN_AD_COUNTS:dc.w $10A ; DATA XREF: sub_7F4CA+60r ; Vacuum Sensor raw reading must be above this TO adjust the tank vacuum bias. ; AD_Counts 10bit F_TANK_KE_REZERO_MAX_AD_COUNTS:dc.w $15C ; DATA XREF: sub_7F4CA+68r ; Vacuum Sensor raw reading must be below this TO adjust the tank vacuum bias. ; AD_Counts_10bit F_TANK_KE_SENSOR_WARMUP_TIME_MINIMUM:dc.w $A0 ; DATA XREF: sub_7F4CA+Ar ; The minimum amount of time the vacuum sensor needs power applied before an accurate reading can be obtained. ; Seconds F_TANK_KE_FUEL_TANK_VACUUM_SCALE:dc.w $64 ; DATA XREF: sub_7F4CA+22r ; sub_803A4+66r ... ; The slope coefficient for the tank vacuum AD counts to inches water equation. ; Scalar F_TANK_KE_VACUUM_SLOSH_TIME_CONSTANT:dc.w $274D ; DATA XREF: sub_7F4CA+12Er ; The filter coefficient for tank vacuum for fuel tank slosh determination. ; millisecs. F_TANK_KE_VACUUM_MAIN_TIME_CONSTANT:dc.w $C7C ; DATA XREF: sub_7F4CA+112r ; The filter coefficient for tank vacuum. ; Seconds F_TANK_KE_HIGH_VACUUM_THRESHOLD:dc.w $4100 ; DATA XREF: sub_7F36C:loc_7F39Er ; Enable the Tank Protection Mode when the tank vacuum is more negative than this value. ; Inches H2O F_TANK_KE_LOW_VACUUM_THRESHOLD:dc.w $3800 ; DATA XREF: sub_7F36C+28r ; Disable the Tank Protection Mode when the tank vacuum is less negative than this value. ; Inches H2O F_TANK_KE_EXCESSIVE_VACUUM_COUNT_LIMIT:dc.b $64 ; DATA XREF: sub_7F36C+64r ; Enable the Tank Protection Mode when the number OF excessive tank vacuum samples exceeds this value. ; count F_TANK_KE_NORMAL_VACUUM_COUNT_LIMIT:dc.b $C8 ; DATA XREF: sub_7F36C:loc_7F3E0r ; Disable the Tank Protection Mode when the total number OF tank vacuum samples exceeds this value. ; count F_TANK_KE_TANK_VACUUM_RAW_MAX:dc.w $3E8 ; DATA XREF: sub_7F4CA+102r ; Maximum tank vacuum reading indicating a valid tank vacuum sensor read. ; AD Counts 10bit F_TANK_KE_TANK_VACUUM_RAW_MIN:dc.w $28 ; DATA XREF: sub_7F4CA+FAr ; Minimum tank vacuum reading indicating a valid tank vacuum sensor read. ; AD Counts 10bit F_TANK_KE_FAST_FILL_RUN_TIME:dc.w $280 ; DATA XREF: sub_8016C+30r ; Indicates how long to use fast filter after the engine has begun running. ; Seconds F_TANK_KE_FUEL_GAGE_PWM_FREQUENCY:dc.w 0 ; DATA XREF: sub_802BE+54r ; Adjustable frequency TO drive the fuel gage ; Hertz F_TANK_KE_FUEL_GAGE_USES_PWM_OUTPUT:dc.b 0 ; DATA XREF: GetFuelLevel:loc_7FE38r ; Bit selectable cal to force the PWM output for certainapplications. ; BOOLEAN F_TANK_KE_F_TANK_IGNORE_MEC:dc.b 0 ; DATA XREF: sub_7F61E+15Ar ; sub_7F61E+256r ... ; When set FALSE, the sender diagnostics will only run when the Manufacturers Enable Counter is Zero. ; BOOLEAN F_TANK_KV_EVAP_STATE_ALLOWS_SEC_XFER_PU:dc.b 0 ; DATA XREF: sub_7F61E+420r ; sub_7F61E+4C4r ; Determines which evap test states allow the transferpump to be turned on. ; BOOLEAN dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 F_TANK_KE_FUEL_LEVEL_FILTER_COEF:dc.w $185D ; DATA XREF: sub_8006A+ACr ; sub_8006A+DAr ; Filter coefficient for both primary and secondary fuel levels used in fuel tank diagnostics. ; Seconds F_TANK_KE_VENT_RSTR_MIN_AD_COUNTS:dc.w $CC ; DATA XREF: sub_7F4CA+7Er F_TANK_KE_VENT_RSTR_MAX_AD_COUNTS:dc.w $200 ; DATA XREF: sub_7F4CA+86r F_TANK_KE_VENT_RESTRICT_PREP_TMR:dc.w $C80 ; DATA XREF: sub_7F4CA+AAr ; Used to determine if vent restriction failed. ; Seconds DG_EONV_KE_EONV_DELTA_FROM_PRESSURE_PEAK:dc.w $FFE6 ; DATA XREF: OS3:00063514r ; Decrease in pressure after a peak needed to identify it as a pressure peak. ; InchOfWat DG_EONV_KE_EONV_DELTA_FROM_VACUUM_PEAK:dc.w $1A ; DATA XREF: OS3:0006391Ar DG_EONV_KE_EONV_EWMA_FAIL_COEF:dc.w $26 ; DATA XREF: OS3:00063C46r ; This filter coefficient is used for the 0.020 inch EWMA calculation when the 0.020 inch EWMA is currently in the failing state. ; Unitless DG_EONV_KE_EONV_EWMA_FAIL_THRESHOLD:dc.w $1CCD ; DATA XREF: OS3:00063C3Er ; The fail threshold value that will set the MIL for P0442 once it is exceeded by EWMA. ; Unitless DG_EONV_KE_EONV_EWMA_NONFAIL_COEF:dc.w $26 ; DATA XREF: OS3:00063C56r ; This filter coefficient is used for the 0.020 inch EWMA calculation when the 0.020 inch EWMA is currently in the passing state. ; Unitless DG_EONV_KE_EONV_EWMA_NONFAIL_THRESHOLD:dc.w $2A3D ; DATA XREF: sub_63056+ACr ; OS3:loc_63C4Er ; The EWMA threshold value that will be used when the system is passing. ; Unitless DG_EONV_KE_EONV_EWMATESTSAMPLESTOPASS:dc.b 3 ; DATA XREF: OS3:loc_63DD4r ; The number of EWMA test samples required before the diagnostic is allowed to report a pass. ; Unitless DG_EONV_KE_EONV_MOD_VOLATILITY_MULT:dc.b $40 ; DATA XREF: OS3:000636C4r ; Correction factor based on moderate fuel volatility. ; Unitless DG_EONV_KE_EONV_PH1_COUNTS_AT_ZERO_MAX:dc.w $1770 ; DATA XREF: OS3:00063588r ; Number of counts needed to indicate the Phase 1 pressure build has stabilized at zero. ; Unitless DG_EONV_KE_EONV_PH2_COUNTS_AT_ZERO_MAX:dc.w $2710 ; DATA XREF: OS3:0006399Cr ; Number of counts needed to indicate the Phase 2 vacuum build has stabilized at zero. ; Unitless DG_EONV_KE_EONV_PHASE1_TEMP_DELTA_MIN:dc.w 0 ; DATA XREF: OS3:00063D60r ; Minimum temperature change required to report a failed test. ; Degrees_C DG_EONV_KE_EONV_PHASE1_TIME_LIMIT:dc.w $619E ; DATA XREF: OS3:000633D4r ; The maximum amount of time allowed to execute the pressure monitoring portions of the EONV Diagnostic. ; Seconds DG_EONV_KE_EONV_PHASE1_VAC_COUNTS_MAX:dc.w 1 ; DATA XREF: OS3:000635E8r ; Number of counts needed to indicate the Phase 1 vacuum build. ; Unitless DG_EONV_KE_EONV_PHASE1VACUUMALLOWED:dc.w $1A ; DATA XREF: OS3:loc_635C6r ; Lower boundary at which vacuum is considered to be building. ; InchOfWat DG_EONV_KE_EONV_PHASE1ZEROPRESSURE:dc.w $FFD8 ; DATA XREF: OS3:loc_6355Er ; Boundary at which pressure is considered zero in Phase 1. ; InchOfWat DG_EONV_KE_EONV_PHASE1ZEROVACUUM:dc.w $28 ; DATA XREF: OS3:00063566r ; Boundary at which vacuum is considered zero in Phase 1. ; InchOfWat DG_EONV_KE_EONV_PHASE2_TEMP_DELTA_MIN:dc.w 0 ; DATA XREF: OS3:00063D4Er ; Minimum temperature change required to report a failed test. ; Degrees_C DG_EONV_KE_EONV_PHASE2PRESSUREALLOWED:dc.w $FFD8 ; DATA XREF: OS3:000639ECr ; Lower boundary at which pressure is considered essentially zero. ; InchOfWat DG_EONV_KE_EONV_PHASE2ZEROPRESSURE:dc.w $FFDA ; DATA XREF: OS3:loc_63972r ; Boundary at which pressure is considered zero in Phase 2. ; InchOfWat DG_EONV_KE_EONV_PHASE2ZEROVACUUM:dc.w $26 ; DATA XREF: OS3:00063926r ; OS3:0006397Ar ; Boundary at which vacuum is considered zero in Phase 2. ; InchOfWat DG_EONV_KE_EONV_PRESS_HIGH_VOLATILITY:dc.l $FFFFFE00 ; DATA XREF: OS3:0006335Ar ; Defines the integration limit for high volatility fuels. ; InH2O/Sec DG_EONV_KE_EONV_PRESS_MOD_VOLATILITY:dc.l $FFFFFE80 ; DATA XREF: OS3:loc_6336Cr ; Defines the integration limit for moderate volatility fuels. ; InH2O/Sec DG_EONV_KE_EONV_PRESSWAIT_ATTEMPTS_MAX:dc.b 3 ; DATA XREF: OS3:00063A54r ; Maximum number of times this process can be activated without exiting Phase 2. ; Unitless dc.b $FF DG_EONV_KE_EONV_RATIONALITYTIME:dc.w $12C ; DATA XREF: OS3:00063B84r DG_EONV_KE_EONV_RATIONALITYWAITTIME:dc.w $1770 ; DATA XREF: OS3:00063AF8r ; The amount of time that the rationality check will wait for the KE_EONV_RationalityTime to be met. ; Seconds DG_EONV_KE_EONV_TIME_BETWEEN_PHASE:dc.w $FA ; DATA XREF: OS3:00063782r ; The minimum time to wait between Phase 1 and Phase 2. ; Seconds DG_EONV_KE_EONV_TOTAL_TIME:dc.w $61A8 ; DATA XREF: OS3:000633E0r ; OS3:0006342Er ... ; The elapsed time allowed to execute the EONV Diagnostic. If this time is exceeded, the test enters the analysis phase. ; Seconds DG_EONV_KE_EONV_VACUUM_THRESHOLD_MIN:dc.w 0 ; DATA XREF: OS3:000638A8r ; The minimum desired Phase 2 vacuum threshold. ; InchOfWat DG_EONV_KE_EONV_VEHICLE_HAS_TEMP_SENSOR:dc.b 0 ; DATA XREF: OS3:00063D46r ; Indicates whether or not the vehicle has a temperature sensor. ; BOOLEAN dc.b $FF DG_EONV_KE_EONV_WAITAFTERPRESSBUILDTIME:dc.w $BB8 ; DATA XREF: OS3:loc_63AAAr DG_EONV_KV_EONV_AVG_PH1_VAP_TEMP_MULT:dc.b $80 ; DATA XREF: OS3:loc_63700r ; Correction factor based on average vapor temperature in Phase 1. ; Unitless dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? Constant8_Charging_System_Min_PWM_Limit_?:dc.b $80 ; ? Constant8_Charging_System_Max_PWM_Limit_?:dc.b $80 ; ? dc.b $80 ; ? dc.b $FF DG_EONV_KV_EONV_DELTA_VAP_TEMP_MULT:dc.b $80 ; DATA XREF: OS3:loc_63720r ; Correction factor based on delta vapor temperature in Phase 1. ; Unitless dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $80 ; ? dc.b $FF DG_EONV_KV_EONV_VOLATILITY_TIME_MAX:dc.w $1C2 ; DATA XREF: OS3:loc_632E2r ; Calibrated amount of time allocated for the volatility check. ; Seconds dc.b 5 dc.b $DC ; ? dc.b 8 dc.b $34 ; 4 dc.b 8 dc.b $34 ; 4 dc.b 9 dc.b $C4 ; ? dc.b $C dc.b $80 ; ? dc.b $10 dc.b $9A ; ? dc.b $15 dc.b $7C ; | dc.b $17 dc.b $70 ; p dc.b $17 dc.b $70 ; p dc.b $17 dc.b $70 ; p dc.b $17 dc.b $70 ; p dc.b $17 dc.b $70 ; p dc.b $17 dc.b $70 ; p dc.b $17 dc.b $70 ; p dc.b $17 dc.b $70 ; p dc.b $17 dc.b $70 ; p DI_EONV_KA_EONV_PRESSURE_THRESHOLD:dc.b $FE ; ? ; DATA XREF: OS3:loc_63492o ; OS3:loc_6387Ao ... ; Pressure threshold attainable only by a system with a total leak less than 0.020 inch. ; InchOfWat dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` Constant16_PWM_VATS_Maximum_Frequency_?:dc.b $FE ; ? dc.b $60 ; ` Constant16_PWM_VATS_Minimum_Frequency_?:dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` dc.b $FE ; ? dc.b $60 ; ` DI_EONV_KE_EONV_REFUELINGDELTALVLMAX:dc.w $1400 ; DATA XREF: OS3:loc_63B6Cr ; sub_63E94+1AEr ; The minimum change in fuel level that must occur to indicate a refueling event. ; Percent DI_EONV_KE_EONV_FUEL_VAP_TEMP_MAX:dc.w $F00 ; DATA XREF: sub_63172+C6r ; sub_64058+D6r ; Upper fuel vapor temperature boundary for enabling EONV diagnostic. ; Degrees_C DI_EONV_KE_EONV_SYSTEM_VOLTAGE_MIN:dc.b 0 ; DATA XREF: sub_63172:loc_6321Er ; sub_64058:loc_64112r ; Minimum allowed system voltage below which system voltage will be considered too low. ; Volts DI_EONV_KE_EONV_DO_NOT_USE_FAST_PASS:dc.b 1 ; DATA XREF: sub_3EA90+206r ; sub_64EFC+3F8r ... ; Used to bypass the small leak test. ; BOOLEAN DI_EONV_KE_EONV_ATTEMPTS_MAX:dc.b 2 ; DATA XREF: sub_6457C+2Ar ; Maximum number of attempts that the diagnostic is allowed to enable in a given time frame. ; Counts dc.b $FF DI_EONV_KE_EONV_AMBAIRTIME:dc.l locret_23280 ; DATA XREF: sub_64276:loc_642D8r ; Delays the update of calculated estimated ambient air temperature. ; Seconds DI_EONV_KE_EONV_AMBAIR_IDLE_COUNTER_MAX:dc.w $3E8 ; DATA XREF: sub_64276+24r ; Maximum count for the EONV_AmbAir_Idle_Counter. ; Counts DI_EONV_KV_EONV_AMBAIR_IDLE_DECREMENTER:dc.l unk_A000A ; DATA XREF: sub_64276:loc_642BEo ; Decrement the estimated ambient air idle counter based on air flow at idle. ; Counter dc.l unk_A000A dc.l unk_A000A dc.l unk_A000A dc.l unk_A000A dc.l unk_A000A dc.l unk_A000A dc.l unk_A000A dc.b 0 dc.b $A DI_EONV_KV_EONV_AMBAIRTEMP_FILT_STEP:dc.l loc_30002+1 ; DATA XREF: sub_64276:loc_64372o ; sub_64276:loc_643ACo ; Change the estimated ambient air temperature based on air flow. ; Degrees_C dc.l loc_30002+1 dc.l loc_30002+1 dc.l loc_30002+1 dc.l loc_30002+1 dc.l loc_30002+1 dc.l loc_30002+1 dc.l loc_30002+1 dc.b 0 dc.b 3 DI_EONV_KV_EONV_DELTA_VACUUM_RISE_MAX:dc.b 0 ; DATA XREF: sub_64642+66o ; Change in vacuum over time above this level will indicate that a refuelevent has occurred. ; Inches H2O dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CD ; ? DI_EONV_KE_EONV_AMBAIR_AIRFLOW:dc.w $FFFF ; DATA XREF: sub_64276+18r ; Calibrated amount of airflow needed to prevent the idle counter from increasing. ; Grams_Per_Second DI_EONV_KE_EONV_AMBAIR_VEHSPD:dc.w $C80 ; DATA XREF: sub_64276+10r ; Calibrated amount of vehicle speed needed to update minimum intake air temperature and the ambient air temperature estimate. ; MPH DI_EONV_KE_EONV_AMBIENTAIRTEMP_LOWER_LIM:dc.w $33 ; DATA XREF: sub_64058+6Ar ; Lower boundary of the ambient air temperature window to enable EONV. ; Degrees_C DI_EONV_KE_EONV_AMBIENTAIRTEMP_UPPER_LIM:dc.w $333 ; DATA XREF: sub_64058+78r ; Upper boundary of the ambient air temperature window to enable EONV. ; Degrees_C DI_EONV_KE_EONV_DEFAULT_FUEL_LEVEL:dc.w $A00 ; DATA XREF: sub_63E94:loc_64020r DI_EONV_KE_EONV_DELTA_VAC_REFUELING_MAX:dc.w $400 ; DATA XREF: sub_64642:loc_646BEr ; Upper boundary on delta vacuum used to detect refueling to prevent intermittence from looking like a refueling event. ; Inches H2O DI_EONV_KE_EONV_ENGINE_RUN_TIME_MIN:dc.l unk_17700 ; DATA XREF: sub_64058+4Er ; To execute EONV, the engine run time must exceed this value. ; Seconds DI_EONV_KE_EONV_FUEL_TANK_VACUUM_OFFSET:dc.w $E200 ; DATA XREF: sub_644B0+7Cr ; sub_645B0:loc_645FEr ; The fuel tank vacuum offset for EONV. ; Inches H2O DI_EONV_KE_EONV_FL_SLOSH_PERIOD:dc.w $FFFF ; DATA XREF: sub_63E94+6Ar ; To determine the sample period for fuel level slosh. ; Counts DI_EONV_KE_EONV_FL_SLOSH_PERIOD_PRIM:dc.w $FFFF ; DATA XREF: sub_63E94+126r ; To determine unacceptable liquid slosh period in the secondary fuel tank. ; Counts DI_EONV_KE_EONV_FL_SLOSH_PERIOD_SEC:dc.w $FFFF ; DATA XREF: sub_63E94+132r ; ; Counts DI_EONV_KE_EONV_FUEL_LEVEL_MAX:dc.w $1100 ; DATA XREF: sub_64058+F2r ; Upper fuel level boundary for enabling EONV diagnostic. ; Percent DI_EONV_KE_EONV_FUEL_LEVEL_MIN:dc.w $300 ; DATA XREF: sub_64058+E4r ; Lower fuel level boundary for enabling EONV diagnostic. ; Percent DI_EONV_KE_EONV_FUEL_VAPORTEMP_FILT_COEF:dc.w $1A00 ; DATA XREF: sub_64216+2Er ; Filter coefficient for the fuel vapor temperature variable. ; 0-1 DI_EONV_KE_EONV_FUEL_VAP_TEMP_MIN:dc.w $FC00 ; DATA XREF: sub_64058+C8r ; Lower fuel vapor temperature boundary for enabling EONV diagnostic. ; Degrees_C DI_EONV_KE_EONV_MIN_TRIP_DISTANCE:dc.w $2A30 ; DATA XREF: sub_641DA+2Cr ; Minimum distance traveled to enable the EONV diagnostic. ; Miles DI_EONV_KE_EONV_MIN_VEHICLE_SPEED:dc.w $80 ; DATA XREF: sub_641DA+4r ; Minimum vehicle speed to start calculation of distance. ; MPH DI_EONV_KE_EONV_SLOSH_TANKVAC_FILT_COEF:dc.w $CCD ; DATA XREF: sub_645B0+76r ; Filtered coefficient for vacuum slosh. ; 0-1 DI_EONV_KE_EONV_SNAPSHOT_DELAY_MAX:dc.w $A0 ; DATA XREF: sub_64642+22r ; The time delta at which the current vacuum is compared to a previous vacuum in order to detect a refueling event. ; Seconds DI_EONV_KE_EONV_TANK_PRESSURE_MAX:dc.w $F000 ; DATA XREF: sub_64642+74r ; Maximum allowable pressure in the fuel tank. If exceeded, the diagnostic will consider a refueling event to have occurred. ; Inches H2O DI_EONV_KE_EONV_TANK_VACUUM_FILT_COEF:dc.w $199A ; DATA XREF: sub_64216+10r ; Filter coefficient for the tank vacuum variable. ; 0-1 DI_EONV_KE_EONV_TANK_VAC_FILTCOEF_REFUEL:dc.w $CCD ; DATA XREF: sub_64216+46r ; Filter coefficient for the refueling tank vacuum variable. ; 0-1 DI_EONV_KE_EONV_TANK_VACUUM_REZERO_MAX:dc.w $1B3 ; DATA XREF: sub_644B0+3Er ; Tank vacuum sensor voltage above which the tank vacuum variable will not be rezeroed. ; Volts DI_EONV_KE_EONV_TANK_VACUUM_REZERO_MIN:dc.w $14D ; DATA XREF: sub_644B0+18r ; Tank vacuum sensor voltage below which the tank vacuum variable will not be rezeroed. ; Volts DI_EONV_KE_EONV_TIME_BETWEEN_TESTS_MAX:dc.w $27D8 ; DATA XREF: sub_64058+Ar ; Maximum time to wait between completed EONV tests. ; Hours DI_EONV_KE_EONV_TIME_BETWEEN_TESTS_MIN:dc.w $1770 ; DATA XREF: sub_64058:loc_6406Cr ; sub_646F6+Er ... ; Minimum time to wait between completed EONV tests. ; Hours DI_EONV_KE_EONV_TOTALVEHICLEMILEAGEMIN:dc.l unk_9C40 ; DATA XREF: sub_64058+100r ; Mileage at which the EONV diagnostic can begin running. To prevent a dead battery at the assembly plant. ; Miles DI_EONV_KE_EONV_TSTAT_TARGET_TEMP:dc.w $700 ; DATA XREF: sub_64058+5Cr ; Coolant temperature must exceed this value in order to execute EONV diagnostic. ; Degrees_C DI_EONV_KE_EONV_VAC_SENSOR_SCALE_SLOPE:dc.w $1F4 ; DATA XREF: sub_644B0+Cr ; sub_644B0+84r ... ; Slope used to rescale tank vacuum sensor voltage to inches of water. ; Inches_H2O/Volts DI_EONV_KE_EONV_VENT_VLV_STRIKE_LIM:dc.b 1 ; DATA XREF: sub_643EE+7Cr ; Determines the number of vent valve strike cycles used by the cleaning process. ; Counts dc.b $FF DI_EONV_KE_EONV_VENT_VLV_STRIKE_ON_TMR:dc.w $10 ; DATA XREF: sub_643EE+2Er ; The limit of time that the vent valve will be commanded closed during the cleaning cycle period. ; Seconds DI_EONV_KE_EONV_VENT_VLV_STRIKE_PERIOD:dc.w $30 ; DATA XREF: sub_643EE:loc_6443Er ; Determines the limit of the vent valve cleaning cycle period. ; Seconds DI_EONV_KE_FUEL_LVL_FILT_COEF_SLOSH_PRI:dc.w $2E00 ; DATA XREF: sub_63E94+40r ; Filter coefficient for fuel level variable used by slosh detection. ; 0-1 DI_EONV_KE_FUEL_LVL_FILT_COEF_SLOSH_SEC:dc.w $2E00 ; DATA XREF: sub_63E94+5Ar ; Filter coefficient for fuel level variable used by slosh detection. ; 0-1 DI_EONV_KE_FUEL_LVL_VOLUME_FILT_COEF:dc.w $2E00 ; DATA XREF: sub_63E94+10r ; Filter coefficient for fuel level variable used by slosh detection. ; 0-1 DI_EONV_KV_EONV_FUEL_LEVEL_SLOSH_PRIM:dc.b $FF ; DATA XREF: sub_63E94:loc_63F60o ; Threshold for the determination of detected slosh if the fuel level delta is too high. ; Liters dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? DI_EONV_KV_EONV_FUEL_LEVEL_SLOSH_SEC:dc.b $FF ; DATA XREF: sub_63E94:loc_63F84o ; Threshold for the determination of detected slosh if the fuel level delta is too high. ; Liters dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? dc.b $FF dc.b $C0 ; ? DI_EONV_KA_EONV_ESTAMBAIR_OFFSET:dc.b 5 ; DATA XREF: sub_64276+B4o ; Offset the estimated ambient air temperature from the intake air temperature using vehicle speed and engine airflow. ; Degrees_C dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 5 dc.b $1A dc.b 3 dc.b $66 ; f dc.b 3 dc.b $66 ; f dc.b 3 dc.b $66 ; f dc.b 4 dc.b $80 ; ? dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $B3 ; ? dc.b 5 dc.b $CD ; ? dc.b 5 dc.b $E6 ; ? dc.b 6 dc.b 0 dc.b 6 dc.b $1A dc.b 6 dc.b $33 ; 3 dc.b 6 dc.b $4D ; M dc.b 6 dc.b $66 ; f dc.b 6 dc.b $80 ; ? dc.b 1 dc.b $E6 ; ? dc.b 1 dc.b $E6 ; ? dc.b 1 dc.b $E6 ; ? dc.b 2 dc.b $4D ; M dc.b 2 dc.b $B3 ; ? dc.b 3 dc.b $1A dc.b 3 dc.b $80 ; ? dc.b 3 dc.b $E6 ; ? dc.b 4 dc.b $4D ; M dc.b 4 dc.b $B3 ; ? dc.b 5 dc.b $1A dc.b 5 dc.b $33 ; 3 dc.b 5 dc.b $4D ; M dc.b 5 dc.b $66 ; f dc.b 5 dc.b $80 ; ? dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $B3 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 1 dc.b $52 ; R dc.b 2 dc.b $24 ; $ dc.b 2 dc.b $F6 ; ? dc.b 3 dc.b $C8 ; ? dc.b 4 dc.b $9A ; ? dc.b 4 dc.b $CD ; ? dc.b 5 dc.b 0 dc.b 5 dc.b $33 ; 3 dc.b 5 dc.b $3A ; : dc.b 5 dc.b $40 ; @ dc.b 5 dc.b $46 ; F dc.b 5 dc.b $4D ; M dc.b 5 dc.b $53 ; S dc.b 5 dc.b $5A ; Z dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $88 ; ? dc.b 0 dc.b $91 ; ? dc.b 0 dc.b $99 ; ? dc.b 0 dc.b $A1 ; ? dc.b 1 dc.b $21 ; ! dc.b 1 dc.b $A1 ; ? dc.b 2 dc.b $21 ; ! dc.b 2 dc.b $A1 ; ? dc.b 3 dc.b $21 ; ! dc.b 3 dc.b $4D ; M dc.b 3 dc.b $80 ; ? dc.b 3 dc.b $B3 ; ? dc.b 3 dc.b $E6 ; ? dc.b 4 dc.b $1A dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $6C ; l dc.b 0 dc.b $71 ; q dc.b 0 dc.b $76 ; v dc.b 0 dc.b $7B ; { dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $85 ; ? dc.b 0 dc.b $8A ; ? dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $94 ; ? dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $57 ; W dc.b 0 dc.b $61 ; a dc.b 0 dc.b $6C ; l dc.b 0 dc.b $76 ; v dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $83 ; ? dc.b 0 dc.b $85 ; ? dc.b 0 dc.b $88 ; ? dc.b 0 dc.b $8A ; ? dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $6A ; j dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $54 ; T dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b $33 ; 3 DG_EVAP_KE_TANK_VACUUM_RAW_MAX:dc.b $F5 ; DATA XREF: sub_64EFC:loc_64FC6r ; Maximum allowed voltage for the tank vacuum signal. ; Volts DG_EVAP_KE_TANK_VACUUM_RAW_MIN:dc.b 5 ; DATA XREF: sub_64EFC:loc_65000r ; Minimum allowed voltage for the tank vacuum signal. ; Volts DG_EVAP_KE_EVAP_COLD_TEST_TIMER_LIMIT:dc.w $ED8 ; DATA XREF: sub_64EFC+2A4r ; The maximum amount of time allowed to execute the cold fuel tank portions of the Evap Diagnostic. ; Seconds DG_EVAP_KE_EVAP_SERVICE_TEST_VSS_MAX:dc.w $500 ; DATA XREF: sub_64EFC+33Cr ; Maximum vehicle speed value to run the service bay test. ; MPH DG_EVAP_KE_EVAP_SERVICE_TPS_MAX:dc.w $A00 ; DATA XREF: sub_64EFC+50Er DG_EVAP_KE_EVAP_SERVICE_TPS_MIN:dc.w 0 ; DATA XREF: sub_64EFC:loc_65402r DG_EVAP_KE_EVAP_SLOSH_RAT_PASS_TIME_MIN:dc.w $50 ; DATA XREF: sub_64EFC+1BAr ; sub_64EFC+20Er ; Minimum amount of time that the slosh rationality test must be passing for a slosh rationality test to be considered passed. ; Seconds DG_EVAP_KE_EVAP_VEHICLE_REST_TIME_MIN:dc.w $C8 ; DATA XREF: sub_64EFC+194r ; Minimum amount of time that the vehicle at rest conditions must be met before the vehicle will be considered at rest. ; Seconds DG_EVAP_KE_EVAP_VEHICLE_REST_TPS_MAX:dc.w $66 ; DATA XREF: sub_64EFC:loc_65082r ; Maximum throttle position at which vehicle will be considered at rest. ; Percent DG_EVAP_KE_EVAP_VEHICLE_REST_VSS_MAX:dc.w $180 ; DATA XREF: sub_64EFC+164r ; Maximum vehicle speed at which vehicle will be considered at rest. ; MPH DG_EVAP_KE_EVAP_OVERPRESSURE_THRESH:dc.w $F400 ; DATA XREF: sub_64EFC+2DCr ; Fuel tank pressure above which the Evap Diagnostic_will be aborted. ; In. of H2O DG_EVAP_KE_EXCESS_VAC_STAGE2_DELAY_LIMIT:dc.w $12C ; DATA XREF: sub_64EFC+104Cr ; This calibration determines how long to delay before starting to monitor Tank_Vacuum_Filtered and Evap_System_Vacuum_Index. ; Seconds DG_EVAP_KE_EXCESS_VAC_STAGE2_FAIL_TIME:dc.w $28 ; DATA XREF: sub_64EFC:loc_65F96r ; If Excess_Vac_Stage2_Fail_Timer is >= this calibration, Stage2 of the Excess Vacuum test is failed and completed. ; Seconds DG_EVAP_KE_EXCESS_VAC_STAGE2_INTEGRAL:dc.l unk_A0000 ; DATA XREF: sub_64EFC+10B4r ; sub_64EFC:loc_65FC0r DG_EVAP_KE_EXCESS_VAC_STAGE2_TEST_LIMIT:dc.w $708 ; DATA XREF: sub_64EFC+1068r ; This calibration limits how long Stage2 of the Excess Vacuum test can run. ; Seconds DG_EVAP_KE_EXCESS_VAC_STAGE2_VAC_LEVEL:dc.w $3398 ; DATA XREF: sub_64EFC+107Cr ; If Tank_Vacuum_Filtered is >= this calibration, Excess_Vac_Stage2_Fail_Timer will be incremented. ; In. of H2O DG_EVAP_KE_EXCESS_VACUUM_LEVEL_STAGE1:dc.w $1C00 ; DATA XREF: sub_64EFC+F90r ; If the tank vacuum is above this calibration, Excess Vacuum Test Stage1 is failed. ; In. of H2O DG_EVAP_KE_EXCESS_VACUUM_TIME_STAGE1:dc.w $14 ; DATA XREF: sub_64EFC+F9Er ; Maximum time allowed for tank vacuum to stay above an excess vacuum threshold before failing Excess Vacuum Test Stage1. ; Seconds DG_EVAP_KE_FINAL_ITERATION_SEGMENT_TIME:dc.w $28 ; DATA XREF: sub_64EFC:loc_658A4r ; This calibration limits how long each segment will run until its slope is tested for passing or failing. ; Seconds DG_EVAP_KE_FINAL_SLOPE_MULTIPLIER:dc.w $80 ; DATA XREF: sub_64EFC+848r ; Adjusts the slope threshold used for the total slope of the final iteration. ; Unitless DG_EVAP_KE_PURGE_LEAK_TEST_TPS_MAX:dc.w $1400 ; DATA XREF: sub_64EFC+D82r ; The TPS must be <= this cal. to uncover the port on a ported purge system (manifold purge could use 100. ; Percent DG_EVAP_KE_PURGE_LEAK_TEST_TPS_MIN:dc.w 0 ; DATA XREF: sub_64EFC+D7Ar ; The TPS must be >= this cal. to uncover the port on a ported purge system (manifold purge could use 0. ; Percent DG_EVAP_KE_PURGE_VALVE_HIGH_VAC_TIME:dc.w $14 ; DATA XREF: sub_64EFC+DD0r ; Maximum time allowed for tank vacuum to stay above a high vacuum threshold before failing the Purge Valve Leak Test. ; Seconds DG_EVAP_KE_PURGE_VALVE_LEAK_TEST_DELAY:dc.w $96 ; DATA XREF: sub_64EFC:loc_65C26r ; This calibration determines how long to delay the Purge Valve Leak Test pass/fail determination. ; Seconds DG_EVAP_KE_PURGE_VALVE_LEAK_TEST_TIME:dc.w $708 ; DATA XREF: sub_64EFC+D1Ar ; The maximum amount of time the Purge Valve Leak Test will be allowed to run. ; Seconds DG_EVAP_KE_PURGE_VALVE_LEAK_VAC_TIME_MIN:dc.w $177 ; DATA XREF: sub_64EFC+DFEr ; sub_64EFC+E42r ; If the Purge_Valve_Leak_Vac_Timer is >= this cal., proper conditions for the test have been achieved. ; Seconds DG_EVAP_KE_PURGE_VALVE_LEAK_VACUUM_LEVEL:dc.w $3000 ; DATA XREF: sub_64EFC:loc_65CC0r ; sub_64EFC+E4Ar ; If tank vacuum is greater than this value, the Purge Valve Leak Test fails and ends. ; In. of H2O DG_EVAP_KE_PURGE_VALVE_LEAK_VAPOR_TIME:dc.w $7D0 ; DATA XREF: sub_64EFC+DAEr ; sub_64EFC+E56r ; If purge vapors are present for this amount of time or longer, the Purge Valve Leak Test fails and ends. ; Seconds DG_EVAP_KE_PURGE_VALVE_TEST_VAC_MIN:dc.w $800 ; DATA XREF: sub_64EFC+D72r ; The intake manifold vacuum must be > this value to ensure that there is enough vacuum source being applied to the evap system. ; kPa DG_EVAP_KE_SYSTEM_VENTING_TIME_DELAY:dc.w $A ; DATA XREF: sub_64EFC+72Ar ; The minimum amount of time delay before the tank vacuum is checked to start the vent pulse. ; Seconds DG_EVAP_KE_VAC_DECAY_ITERATION_TIME:dc.w $28 ; DATA XREF: sub_64EFC+8D6r ; sub_64EFC+8EEr ; This calibration limits how long each vacuum decay iteration will run until its slope is tested for passing or failing. ; Seconds DG_EVAP_KE_VAC_DECAY_SLOPE_TIME:dc.w $78 ; DATA XREF: sub_64EFC:loc_65710r ; This calibration limits how long a vacuum decay may run. ; Seconds DG_EVAP_KE_VAC_DECAY_TPS_HIGH_LMT:dc.w $F00 ; DATA XREF: sub_64EFC:loc_6544Ar ; The Vacuum Decay test will restart if throttle position is > this calibration. ; Percent DG_EVAP_KE_VAC_DECAY_VACUUM_MIN:dc.w $400 ; DATA XREF: sub_64EFC+820r ; If the tank vacuum goes below this cal., the vacuum decay slope will be calculated. ; In. of H2O DG_EVAP_KE_VAC_DECAY_VEH_SPEED_HIGH_LMT:dc.w $2D00 ; DATA XREF: sub_64EFC+55Ar ; The Vacuum Decay test will restart if vehicle speed is > this calibration. ; MPH DG_EVAP_KE_VAC_PULLDOWN_PURGEDC_MIN:dc.w 0 ; DATA XREF: sub_64EFC+14BCr DG_EVAP_KE_VAC_SENSOR_HIGH_FAIL_TIME:dc.w $32 ; DATA XREF: sub_64EFC+E2r ; Maximum amount of time the sensor is allowed to be out of range high. ; Seconds DG_EVAP_KE_VAC_SENSOR_LOW_FAIL_TIME:dc.w $32 ; DATA XREF: sub_64EFC+11Cr ; Maximum amount of time the sensor is allowed to be out of range low. ; Seconds DG_EVAP_KE_VACUUM_DECAY_ENABLE_VACUUM:dc.w $3400 ; DATA XREF: sub_64EFC+FFAr ; This is the level of tank vacuum needed to end stage1 of the Weak Vacuum Test and start the Small Leak Test. ; In. of H2O DG_EVAP_KE_VACUUM_DECAY_START_VAC_LEVEL:dc.w $2C00 ; DATA XREF: sub_64EFC:loc_6559Cr ; If tank vacuum level is > this calibration, then immediately proceed to the vacuum decay test. ; In. of H2O DG_EVAP_KE_VACUUM_PULLDOWN_INTEGRAL_LIM:dc.l $130000 ; DATA XREF: sub_64EFC+BD4r ; This calibration limits high the Vacuum_Pulldown_Integral can get before the vacuum pulldown expires. ; Seconds DG_EVAP_KE_VACUUM_PULLDOWN_VACUUM_LEVEL:dc.w $3400 ; DATA XREF: sub_64EFC+BE8r ; If tank vacuum is >= this calibration, the tank vacuum Pulldown is complete. ; In. of H2O DG_EVAP_KE_VAPOR_PRESSURE_SLOPE_TIMER:dc.w $12C ; DATA XREF: sub_64EFC:loc_659C2r ; This calibration limits how long to wait before calculating the Vapor_Pressure_Slope. ; Seconds DG_EVAP_KE_VAPOR_PRESSURE_TEST_MIN_PRESS:dc.w $FE00 ; DATA XREF: sub_64EFC+B0Ar ; This is the minimum pressure required to start the vapor pressure build monitoring. ; In. of H2O DG_EVAP_KE_VAPOR_PRESSURE_TEST_TIMER:dc.w $15E ; DATA XREF: sub_64EFC+B1Er DG_EVAP_KE_VAPOR_PRESSURE_VACUUM_LEVEL:dc.w $400 ; DATA XREF: sub_64EFC+A32r ; The tank vacuum must be <= this value in order to start the vapor pressure test. ; In. of H2O DG_EVAP_KE_VAPOR_PRESSURE_VENT_DELAY:dc.b $96 ; DATA XREF: sub_64EFC+A70r ; Determines how long the evap system should vent after it has reached its vented vacuum level. ; Seconds dc.b $FF DG_EVAP_KE_VAPOR_PRESSURE_WAIT_TIMER_LMT:dc.w $64 ; DATA XREF: sub_64EFC+A3Er ; Limits how long to wait before bypassing the vapor pressure build test. ; Seconds DG_EVAP_KE_VENT_ON_TIME_1:dc.w 0 ; DATA XREF: sub_64EFC+67Er ; sub_64EFC+796r ; At the tank vacuum level KE_Vent_On_Vacuum_Level_1, the canister will be on for this amount of time. ; Seconds DG_EVAP_KE_VENT_ON_TIME_2:dc.w 0 ; DATA XREF: sub_64EFC+66Er ; sub_64EFC+784r ; At the tank vacuum level KE_Vent_On_Vacuum_Level_2, the canister will be on for this amount of time. ; Seconds DG_EVAP_KE_VENT_ON_TIME_3:dc.w 0 ; DATA XREF: sub_64EFC+65Er ; sub_64EFC+772r ; At the tank vacuum level KE_Vent_On_Vacuum_Level_3, the canister will be on for this amount of time. ; Seconds DG_EVAP_KE_VENT_ON_VACUUM_LEVEL_1:dc.w $5000 ; DATA XREF: sub_64EFC+656r ; sub_64EFC:loc_6568Ar ; If the tank vacuum level is above this calibration, the canister vent will be on for the amount of time KE_Vent_On_Timer_1. ; In. of H2O DG_EVAP_KE_VENT_ON_VACUUM_LEVEL_2:dc.w $5200 ; DATA XREF: sub_64EFC:loc_65572r ; sub_64EFC:loc_65678r ; If the tank vacuum level is above this calibration, the canister vent will be on for the amount of time KE_Vent_On_Timer_2. ; In. of H2O DG_EVAP_KE_VENT_ON_VACUUM_LEVEL_3:dc.w $5400 ; DATA XREF: sub_64EFC+666r ; sub_64EFC+76Ar ; If the tank vacuum level is above this calibration, the canister vent will be on for the amount of time KE_Vent_On_Timer_3. ; In. of H2O DG_EVAP_KE_WEAK_VAC_STAGE2_VAC_LEVEL:dc.w $2C00 ; DATA XREF: sub_64EFC+E8Cr ; This calibration determines how high tank vacuum must be before it is considered to be passing stage2 of the Weak Vacuum Test. ; In. of H2O DG_EVAP_KE_WEAK_VAC_STAGE2_VAC_TEST:dc.w $36B0 ; DATA XREF: sub_64EFC+E78r ; This calibration limits how long the vacuum monitor portion of stage2 of the Weak Vacuum Test may run. ; Seconds DG_EVAP_KE_WEAK_VAC_STAGE2_VAC_TIME:dc.w $28 ; DATA XREF: sub_64EFC+EA4r ; This calibration determines how long the vacuum must be passing before stage2 of the Weak Vacuum Test passes. ; Seconds DG_EVAP_KE_WEAK_VAC_STAGE2_VAPOR_TEST:dc.w $FA0 ; DATA XREF: sub_64EFC+EFEr ; This calibration limits how long the purge vapor monitor portion of stage2 of the Weak Vacuum Test may run. ; Seconds DG_EVAP_KE_WEAK_VAC_STAGE2_VAPOR_TIME:dc.w $78 ; DATA XREF: sub_64EFC+F2Er ; This calibration determines how long purge vapors must be detected before stage2 of the Weak Vacuum Test passes. ; Seconds DG_EVAP_KE_WEAK_VACUUM_INTEGRAL_MIN:dc.l $190000 ; DATA XREF: sub_64EFC+1008r ; sub_64EFC:loc_65F1Er DG_EVAP_KE_EVAP_PURGE_ENABLE_COLD_TIME:dc.b 1 ; DATA XREF: sub_64EFC:loc_6515Er ; Setting this option to 'TRUE' causes the timer to start updating on 'purge enabled.' instead of 'engine run'. ; Flag DG_EVAP_KE_EVAP_SLOSH_RAT_PASS_TESTS_MIN:dc.b 2 ; DATA XREF: sub_64EFC+1D6r ; sub_64EFC+22Ar DG_EVAP_KE_FINAL_ITERATION_TRIP_MAX:dc.b $F ; DATA XREF: sub_64EFC+892r ; Limits the number of final iteration vacuum decays per trip. ; Counts DG_EVAP_KE_VAC_DECAY_ITERATION_LIMIT:dc.b 3 ; DATA XREF: sub_64EFC+8C6r ; If the number of vacuum decay iterations is >= this cal., each segment of the vacuum decay will be monitored. ; Count DG_EVAP_KE_VAPOR_PRESSURE_MULTIPLIER:dc.b $40 ; DATA XREF: sub_64EFC+B62r ; Multiplier correction for the Vapor_Pressure_Slope. ; Multiplier dc.b $FF DG_EVAP_KV_STABILIZ_PERIOD_LIM_NO_SLOSH:dc.w $E6 ; DATA XREF: sub_64EFC+6FEr ; The maximum amount of time that is required for the stabilization period when Evap_040_Level_Slosh_Detected is FALSE. ; Seconds dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $BE ; ? dc.b 0 dc.b $B4 ; ? dc.b 0 dc.b $AA ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $8C ; ? dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $78 ; x dc.b 0 dc.b $6E ; n DG_EVAP_KV_STABILIZ_PERIOD_LIM_SLOSH:dc.w $E6 ; DATA XREF: sub_64EFC+6E4r ; The maximum amount of time that is required for the stabilization period when Evap_040_Level_Slosh_Detected is TRUE. ; Seconds dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $BE ; ? dc.b 0 dc.b $B4 ; ? dc.b 0 dc.b $AA ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $8C ; ? dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $78 ; x dc.b 0 byte_1ED1F: dc.b $6E ; DATA XREF: sub_64EFC+908r DG_EVAP_KV_VAC_DECAY_SLOPE_FACTOR:dc.b $11 ; This factor is used to adjust the slope threshold for each iteration of the vacuum decay slope. ; Multiplier dc.b $10 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 byte_1ED29: dc.b $20 ; DATA XREF: sub_64EFC+9C4r DG_EVAP_KV_SEGMENT_SLOPE_FACTOR:dc.b $11 ; This factor is used to adjust each segment's slope threshold for the final iteration. ; Multiplier dc.b $F dc.b $20 dc.b $20 dc.b $20 dc.b $FF DI_EVAP_KV_EVAP_DIAG_PURGE_DUTY_CYCLE_LI:dc.w $1400 ; DATA XREF: sub_2F386+FCr ; ; dc.b $14 dc.b 0 dc.b $A dc.b 0 dc.b 9 dc.b 0 dc.b 8 dc.b 0 dc.b 8 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 7 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b 5 dc.b 0 dc.b $14 dc.b 0 DI_EVAP_KE_FUEL_LEVEL_ENABLE_MAX:dc.w $1100 ; DATA XREF: sub_6653A+6F8r ; sub_7F4CA+9Cr ; Fuel level must be <= this TO enable Evap diagnostic system. ; Percent DI_EVAP_KE_CCP_MAX_DUTY_CYCLE_CLOSED:dc.w 0 ; DATA XREF: sub_2D4F2+1Er DI_EVAP_KE_EVAP_PURGE_ENABLED_MIN_SPEED:dc.w $480 ; DATA XREF: sub_64EFC+27Ar ; sub_64EFC+39Ar ; The minimum necessary at the onset of purge being enabled to allow the Evap test to start. ; MPH DI_EVAP_KE_DELTA_VAC_SLOSH_FORSRT:dc.w $A4 ; DATA XREF: sub_6653A:loc_66A36r ; Amount of tank vacuum used to determine if irrational slosh has been present during the slosh rationality test. ; Inches Of Water DI_EVAP_KE_PRI_DELTA_FUEL_SLOSH_FORSRT:dc.w $56 ; DATA XREF: sub_6653A:loc_668D6r DI_EVAP_KE_SEC_DELTA_FUEL_SLOSH_FORSRT:dc.w $60 ; DATA XREF: sub_6653A+3A4r DI_EVAP_KV_SOLENOID_EVENT_SLOSH_DELAY:dc.b 1 ; DATA XREF: sub_6653A+402o ; This is the minimum amount of time after a solenoid event whichwill mask out the slosh detection algorithm. ; Seconds dc.b $E0 ; ? dc.b 1 dc.b $E0 ; ? dc.b 1 dc.b $E0 ; ? dc.b 1 dc.b $E0 ; ? dc.b 1 dc.b $E0 ; ? dc.b 1 dc.b $E0 ; ? dc.b 1 dc.b $E0 ; ? dc.b 1 dc.b $E0 ; ? dc.b 1 dc.b $E0 ; ? dc.b 1 dc.b $E0 ; ? dc.b 1 dc.b $E0 ; ? DI_EVAP_KV_ENGINE_VACUUM_MODIFIER:dc.w 0 ; DATA XREF: sub_6653A+26r ; Engine Vacuum contribution to Evap_System_Vacuum_Index. ; NONE 0-1 dc.l off_0+$CD ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b 2 dc.b $B8 ; ? dc.b 3 dc.b $AE ; ? dc.b 4 dc.b 0 dc.b 4 dc.b $52 ; R dc.b 4 dc.b $8F ; ? dc.b 4 dc.b $F6 ; ? dc.b 5 dc.b $71 ; q dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $9A ; ? dc.b 5 dc.b $9A ; ? DI_EVAP_KV_PURGE_MODIFIER:dc.w 0 ; DATA XREF: sub_6653A+32r ; Purge contribution to Evap_System_Vacuum_Index. ; NONE 0-1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $33 ; 3 dc.b 1 dc.b $AE ; ? dc.b 2 dc.b $14 dc.b 2 dc.b $8F ; ? dc.b 2 dc.b $F6 ; ? dc.b 3 dc.b $5C ; \ dc.b 3 dc.b $C3 ; ? dc.b 4 dc.b $29 ; ) dc.b 4 dc.b $8F ; ? dc.b 4 dc.b $F6 ; ? dc.b 5 dc.b $5C ; \ dc.b 5 dc.b $C3 ; ? dc.b 6 dc.b $29 ; ) dc.b 6 dc.b $A4 ; ? dc.b 7 dc.b $1F dc.b 7 dc.b $9A ; ? dc.b 7 dc.b $C3 ; ? dc.b 8 dc.b 0 DI_EVAP_KV_VACUUM_LOSS_OFFSET:dc.w $8F ; DATA XREF: sub_6653A+5Cr ; Vapor generation and porosity contribution TO Evap_System_Vacuum_Index. ; NONE 0-1 dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $94 ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9F ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A9 ; ? dc.b 0 dc.b $AE ; ? dc.b 0 dc.b $B3 ; ? DI_EVAP_KV_CCP_COLD_TEST_RAMP_TIMER_LMT:dc.w $FFFF ; DATA XREF: sub_66C78+44r ; sub_66C78+118r ... ; Indicates what a 'normal' CCP ducty cycle ramp up time is. ; Seconds dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF DI_EVAP_KE_PURGE_RAMP_TIMER_LIMIT:dc.w $FFFF ; DATA XREF: sub_6653A+E0r ; Purge ramp timer >= this indicates HC vapor present in canister. ; Seconds DI_EVAP_KE_CCP_PURGE_VAPOR_PLM:dc.w $71F ; DATA XREF: sub_6653A:loc_6662Er ; Closed loop fuel control Purge_Learn_Multiplier < KE_CCP_Purge_Vapor_PLM indicates closed loop HC vapor present. ; NONE 0-2 DI_EVAP_KA_VACUUM_DECAY_SLOPE:dc.b 0 ; DATA XREF: sub_6653A:loc_66700o ; Pass/Fail threshold for vacuum decay slope for applications with fuel level input. ; In H2O/Sec dc.b $E1 ; ? dc.b 0 dc.b $E1 ; ? dc.b 0 dc.b $E1 ; ? dc.b 0 dc.b $E1 ; ? dc.b 0 dc.b $E1 ; ? dc.b 0 dc.b $E1 ; ? dc.b 0 dc.b $D4 ; ? dc.b 0 dc.b $D4 ; ? dc.b 0 dc.b $D4 ; ? dc.b 0 dc.b $D4 ; ? dc.b 0 dc.b $D4 ; ? dc.b 0 dc.b $D4 ; ? dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $8E ; ? dc.b 0 dc.b $8E ; ? dc.b 0 dc.b $8E ; ? dc.b 0 dc.b $8E ; ? dc.b 0 dc.b $8E ; ? dc.b 0 dc.b $8E ; ? dc.b 0 dc.b $7F ;  dc.b 0 dc.b $7F ;  dc.b 0 dc.b $7F ;  dc.b 0 dc.b $7F ;  dc.b 0 dc.b $7F ;  dc.b 0 dc.b $7F ;  dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $6E ; n dc.b 0 dc.b $6E ; n dc.b 0 dc.b $6E ; n dc.b 0 dc.b $6E ; n dc.b 0 dc.b $6E ; n dc.b 0 dc.b $6E ; n dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M DI_EVAP_KA_VACUUM_DECAY_SLOPE_SEG:dc.b 0 ; DATA XREF: sub_6653A+1FAo ; Pass/Fail threshold for vacuum decay slope for applications with fuel level input (for segments of final iteration). ; In H2O/Sec dc.b $E1 ; ? dc.b 0 dc.b $E1 ; ? dc.b 0 dc.b $E1 ; ? dc.b 0 dc.b $E1 ; ? dc.b 0 dc.b $E1 ; ? dc.b 0 dc.b $E1 ; ? dc.b 0 dc.b $D4 ; ? dc.b 0 dc.b $D4 ; ? dc.b 0 dc.b $D4 ; ? dc.b 0 dc.b $D4 ; ? dc.b 0 dc.b $D4 ; ? dc.b 0 dc.b $D4 ; ? dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $8E ; ? dc.b 0 dc.b $8E ; ? dc.b 0 dc.b $8E ; ? dc.b 0 dc.b $8E ; ? dc.b 0 dc.b $8E ; ? dc.b 0 dc.b $8E ; ? dc.b 0 dc.b $7F ;  dc.b 0 dc.b $7F ;  dc.b 0 dc.b $7F ;  dc.b 0 dc.b $7F ;  dc.b 0 dc.b $7F ;  dc.b 0 dc.b $7F ;  dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $74 ; t dc.b 0 dc.b $6E ; n dc.b 0 dc.b $6E ; n dc.b 0 dc.b $6E ; n dc.b 0 dc.b $6E ; n dc.b 0 dc.b $6E ; n dc.b 0 dc.b $6E ; n dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $66 ; f dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $55 ; U dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $50 ; P dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4F ; O dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4E ; N dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M dc.b 0 dc.b $4D ; M DI_EVAP_KE_FUEL_LEVEL_PERCENT_DEFAULT:dc.w $800 ; DATA XREF: sub_6653A+150r ; sub_6653A+4A8r DI_EVAP_KE_CCP_PURGE_RAMP_O2_ADJUST:dc.w $59A ; DATA XREF: sub_6653A+A0r ; This calibration value defines the purge oxygen adjust multiplier at which the Purge_Ramp_Timer will stop. ; Unitless DI_EVAP_KE_EVPD_020_SLOPE_MULTIPLIER:dc.w $1000 ; DATA XREF: sub_6653A:loc_666EEr ; sub_6653A+4E6r ; The existing 040 calibration threshold tables are multiplied this calibration to find the effective, 0.020 slope threshold. ; Unitless DI_EVAP_KE_FUEL_TANK_RATED_CAPACITY:dc.w $1139 ; DATA XREF: sub_6653A+162r ; Rated capacity of the fuel tank as determined by GMUTS. ; Liters DI_EVAP_KE_FUEL_TANK_UNUSABLE_VOLUME:dc.w $40 ; DATA XREF: sub_6653A+178r ; Amount of fuel in tank crevices which cannot be reached by the fuel pump. ; Liters DI_EVAP_KE_FUEL_TANK_TOTAL_VAPOR_SPACE:dc.w $1200 ; DATA XREF: sub_6653A+180r ; Total volume of fuel tank and lines. Determined BY platform. ; Liters DI_EVAP_KV_DELTA_FUEL_LEVEL_SLOSH_PRIMAR:dc.b 0 ; DATA XREF: sub_6653A:loc_66828o ; Delta fuel level >= this indicates sloshing in fuel tank. ; Liters dc.b $60 ; ` dc.b 0 dc.b $AB ; ? dc.b 0 dc.b $CC ; ? dc.b 0 dc.b $AC ; ? dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $60 ; ` dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 DI_EVAP_KV_DELTA_FUEL_LEVEL_SLOSH_SECOND:dc.b 0 ; DATA XREF: sub_6653A:loc_66854o ; Delta fuel level >= this indicates sloshing in fuel tank. ; Liters dc.b $6A ; j dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $A0 ; ? dc.b 0 dc.b $90 ; ? dc.b 0 dc.b $76 ; v dc.b 0 dc.b $76 ; v dc.b 0 dc.b $76 ; v dc.b 0 dc.b $76 ; v dc.b 0 dc.b $76 ; v dc.b 0 dc.b $76 ; v dc.b 0 dc.b $76 ; v dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 DI_EVAP_KV_EVPD_DELTA_FUEL_040_SLOSH_PRI:dc.b 0 ; DATA XREF: sub_6653A:loc_66890o ; Delta fuel level >= this indicates sloshing in fuel tank. ; Liters dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 DI_EVAP_KV_EVPD_DELTA_FUEL_040_SLOSH_SEC:dc.b 0 ; DATA XREF: sub_6653A:loc_668BCo ; Delta fuel level >= this indicates sloshing in fuel tank. ; Liters dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 DI_EVAP_KV_DELTA_VACUUM_SLOSH:dc.b 0 ; DATA XREF: sub_6653A+4B2o ; Delta fuel tank vacuum >= this indicates sloshing in fuel tank. ; Inches H2O dc.b $B4 ; ? dc.b 0 dc.b $F8 ; ? dc.b 1 dc.b $28 ; ( dc.b 1 dc.b $50 ; P dc.b 1 dc.b $7C ; | dc.b 1 dc.b $90 ; ? dc.b 1 dc.b $94 ; ? dc.b 1 dc.b $A4 ; ? dc.b 1 dc.b $D4 ; ? dc.b 2 dc.b $10 dc.b 2 dc.b $24 ; $ DI_EVAP_KV_EVPD_DELTA_VAC_040_SLOSH:dc.b 0 ; DATA XREF: sub_6653A+4D0o ; Delta fuel tank vacuum >= this indicates sloshing in fuel tank. ; Inches H2O dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 DI_EVAP_KV_COLD_DELTA_TEMP_LIMIT:dc.w $D3 ; DATA XREF: sub_66414:loc_6643Cr ; Upper limit on difference between powerup coolant temperature and powerup induction air temperature for cold start conditions. ; Degrees C word_1F668: dc.w $DFF ; DATA XREF: sub_66414:loc_66460r DI_EVAP_KE_COLD_COOLANT_TEMP_LOW_LIMIT:dc.w $60 ; DATA XREF: sub_66414+5Cr ; Lower limit on powerup coolant temperature for cold start conditions. ; Degrees C DI_EVAP_KE_COLD_COOLANT_TEMP_HIGH_LIMIT:dc.w $300 ; DATA XREF: sub_66414+64r ; Upper limit on powerup coolant temperature for cold start conditions. ; Degrees C DI_EVAP_KE_COLD_MAN_AIR_TEMP_LOW_LIMIT:dc.w $60 ; DATA XREF: sub_66414+6Cr ; Lower limit on powerup induction air temperature for cold start conditions. ; Degrees C DI_EVAP_KE_COLD_MAN_AIR_TEMP_HIGH_LIMIT:dc.w $300 ; DATA XREF: sub_66414+74r ; Upper limit on powerup induction air temperature for cold start conditions. ; Degrees C DI_EVAP_KE_COLD_FUEL_LEVEL_LOW_LIMIT:dc.b 3 ; Lower limit on fuel level for cold start conditions. ; Percent dc.b 0 DI_EVAP_KE_COLD_FUEL_LEVEL_HIGH_LIMIT:dc.b $11 ; Upper limit on fuel level for cold start conditions. ; Percent dc.b 0 DI_EVAP_KE_COLD_BAROMETRIC_PRESSURE_LIMI:dc.w $ECD ; DATA XREF: sub_66414+80r ; Lower limit on barometric pressure for cold start conditions. ; kPa DI_EVAP_KE_FAIL_REPORT_HIGH_FUEL_LEVEL:dc.w $1180 ; DATA XREF: sub_6653A+570r ; Fuel level values > this indicate fuel tank is over-filled. ; Percent DI_EVAP_KE_FAIL_REPORT_MIN_MILES:dc.l 0 ; DATA XREF: sub_6653A+586r ; When fuel tank is over-filled, this many miles must be accumulated in this trip to enable general failure reporting. ; Miles DI_EVAP_KE_VAC_PROBLEM_FAIL_MIN_MILES:dc.l 0 ; DATA XREF: sub_6653A+602r DI_EVAP_KE_EVAP_DIAG_INHIBITING_FAULTS:dc.l $B1300040 ; DATA XREF: sub_6653A+676r ; Disable Evap diagnostic tests if any faults in the groups marked TRUE are active. ; BOOLEAN DI_EVAP_KE_FUEL_LEVEL_ENABLE_MIN:dc.w $300 ; DATA XREF: sub_6653A+6F0r ; Fuel level must be < this TO enable Evap diagnostic system. ; Percent DI_EVAP_KE_IGNITION_VOLTAGE_MIN:dc.w $A00 ; DATA XREF: sub_6653A+6A8r ; Minimum ignition voltage which permits execution of the EVAP diagnostic. ; Volts DI_EVAP_KE_IGNITION_VOLTAGE_MAX:dc.w $1200 ; DATA XREF: sub_6653A+6B0r ; Maximum ignition voltage which permits execution of the EVAP diagnostic. ; Volts DI_EVAP_KE_VENT_PRESSURE:dc.b $FE ; ? ; Minimum fuel tank vacuum at powerup for fuel tank vacuum to be in range at powerup. ; In H2O dc.b 0 DI_EVAP_KE_VENT_VACUUM:dc.b 2 ; Maximum fuel tank vacuum at powerup for fuel tank vacuum to be in range at powerup. ; In H2O dc.b 0 DI_EVAP_KE_EVAP_SERVICE_TEST_COOLANT_MAX:dc.w $800 ; DATA XREF: sub_664A0+3Cr ; Maximum coolant temperature value to run the service bay test. ; Degrees Celsius DI_EVAP_KE_EVAP_SERVICE_TEST_ENABLED:dc.b 0 ; DATA XREF: sub_664A0+12r ; Used to calibrate out the service bay test. ; Flag dc.b $FF DI_EVAP_KE_FUEL_LEVEL_OUT_OF_RANGE_TIME:dc.w $3840 ; DATA XREF: sub_6653A+700r ; sub_66C78+1Er ... ; Determine how long the fuel level must be outside of it's enable window in order to disable the evap diagnostic. ; Seconds DI_EVAP_KE_EVPD_FUEL_LEVEL_READ_DELAY:dc.w $640 ; DATA XREF: sub_6653A+238r ; Engine run delay before the slosh detection algorithm to operable. ; Seconds DI_EVAP_KE_IGNITION_VOLTAGE_EXCURSION_TI:dc.w $320 ; DATA XREF: sub_6653A+6B8r ; sub_66C78:loc_66C8Er ... ; Determine how long the ignition voltage must be outside of it's enable window in order to disable the evap diagnostic. ; Seconds dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF SYS_CALIBRATIONS_HEADER:dc.b $1F ; DATA XREF: DoManyThings1+2C0o ; Use this cal to identify the Vehicle System calibration ; Cal_ID_Record dc.b $70 ; p dc.b 0 dc.b 7 Constant32_Vehicle_System_Calibration_ID:dc.b 0 ; DATA XREF: sub_269DE:loc_26A6Ao dc.b $C0 ; ? dc.b 8 dc.b $43 ; C CurveTable_2_Columns_Vehicle_System_Calibration_Level:dc.b $41 ; A ; DATA XREF: sub_269DE:loc_26B0Eo dc.b $43 ; C dc.b 0 dc.b 0 CurveTable_8_Columns_Vehicle_System_Calibration_ID_ASCII:dc.b '12585027',0 ; DATA XREF: sub_3F6FE+166o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 VEH_SYS_KA_OPTION_MATRIX:dc.b 0 ; DATA XREF: sub_138E+220r ; sub_29320+70r ... ; Allows selection of options for a given platform. ; Platform_Option_Table_Type byte_1F6DD: dc.b 0 ; DATA XREF: sub_138E+22Ar ; sub_29320+7Ar ... byte_1F6DE: dc.b 0 ; DATA XREF: sub_138E+234r ; sub_29320+84r ... byte_1F6DF: dc.b 0 ; DATA XREF: sub_138E+23Er ; sub_29320+8Er ... byte_1F6E0: dc.b 0 ; DATA XREF: sub_138E+248r ; sub_29320+98r ... byte_1F6E1: dc.b 0 ; DATA XREF: sub_138E+252r ; sub_29320+A2r ... byte_1F6E2: dc.b 0 ; DATA XREF: sub_138E+25Cr ; sub_29320+ACr ... byte_1F6E3: dc.b 0 ; DATA XREF: sub_138E+266r ; sub_29320+B6r ... byte_1F6E4: dc.b 0 ; DATA XREF: sub_138E+270r ; sub_29320+C0r ... byte_1F6E5: dc.b 0 ; DATA XREF: sub_138E+27Ar ; sub_29320+CAr ... byte_1F6E6: dc.b 0 ; DATA XREF: sub_138E+284r ; sub_29320+D4r ... dc.b $FF dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF VEH_SYS_KE_RESTRAINTS_IDENTIFIER:dc.w 0 ; DATA XREF: sub_47DA2+4A0r ; Contains a serial data keying information for SDM used to verify that its calibration is correct for the vehicle it is in. ; CARDINAL VEH_SYS_KE_TYPE_OF_DISCRETE_GEAR_SELECT:dc.b 0 ; DATA XREF: sub_759C6:loc_759DEr ; sub_83986+14r ... ; Describes if the vehicle is equipped with PRNDL input, Park/Neutral switch or neither. ; Selection_List VEH_SYS_KE_TYPE_OF_INSTRUMENT_CLUSTER:dc.b 0 ; DATA XREF: OS2:00043178r VEH_SYS_KE_DRIVETRAIN_TYPE:dc.b 3 ; DATA XREF: DoLoopG+266r ; sub_45F3A:loc_46216r ... ; Describes the type of drivetrain used on the vehicle ; Drivetrain_Type VEH_SYS_KE_PLATFORM:dc.b 1 ; DATA XREF: sub_138E+216r ; sub_29320+66r ... ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type VEH_SYS_KE_TYPE_OF_FANS_ON_VEHICLE:dc.b 0 ; DATA XREF: sub_2E726+8r ; sub_2EA9A+8r ... ; Type of engine cooling system supported on vehicle ; Unitless dc.b $FF VEH_SYS_KE_NUMBER_MED_RES_TACH_HIGH:dc.w 6 ; DATA XREF: sub_1958+12Er ; Number of medium res periods to hold the tachometer output signal high. ; Unitless VEH_SYS_KE_NUMBER_MED_RES_TACH_LOW:dc.w 6 ; DATA XREF: sub_1958+136r ; Number of medium res periods to hold the tachometer output signal low. ; Unitless VEH_SYS_KE_VTD_CONFIGURATION:dc.l off_0+$24 ; DATA XREF: sub_3E4F2+176r ; sub_3E4F2+2B8r ... ; This is used to activate the different VTD functionalities within the PCM. ; Unitless dc.b $9F ; ? dc.b 1 VEH_SYS_KE_LOW_COOL_NEG_ACCEL_DEADBAND:dc.w 0 ; DATA XREF: sub_7BA62+B0r ; Ramp factor is not computed if vehicle deceleration is less than this. ; MPH/Sec VEH_SYS_KE_LOW_COOL_OCCURRENCES_TO_LATCH:dc.b 0 ; DATA XREF: sub_7BA62+5Ar ; If low coolant detection fails this many times, stop running the algorithm. ; Counts dc.b $FF VEH_SYS_KE_LOW_COOL_POS_ACCEL_DEADBAND:dc.w 0 ; DATA XREF: sub_7BA62+BCr ; Ramp factor is not computed if vehicle acceleration is more than this. ; MPH/Sec VEH_SYS_KE_LOW_COOLANT_MIN_TEMP:dc.w 0 ; DATA XREF: sub_7BA62+3Ar ; Run low coolant detection if coolant is above this. ; Degrees C VEH_SYS_KE_LOW_COOLANT_NOT_PRESENT_TIME:dc.w 0 ; DATA XREF: sub_7BA62+1E0r ; Time that low coolant input has to off to reset the low coolant flag. ; Seconds VEH_SYS_KE_LOW_COOLANT_RAMP_DECAY_DELAY:dc.w 0 ; DATA XREF: sub_7BA62+132r ; Delay between ramp delay actions. ; Seconds VEH_SYS_KE_LOW_COOLANT_RAMP_DECAY_STEP:dc.w 0 ; DATA XREF: sub_7BA62+144r ; Ramp decay value. ; Seconds VEH_SYS_KE_LOW_COOLANT_TIMER_MAX_VALUE:dc.w 0 ; DATA XREF: sub_7BA62:loc_7BC00r ; Max value for low coolant level timer. ; Seconds VEH_SYS_KV_LOW_COOL_VEH_SPEED_RAMP_MULT:dc.b 0 ; DATA XREF: sub_7BA62:loc_7BB38o ; Converts acceleration into time for low coolant time threshold. ; Factor dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF VEH_SYS_KV_LOW_COOLANT_ACCEL_FACTOR:dc.b 0 ; DATA XREF: sub_7BA62:loc_7BBC8o ; Converts acceleration into time for low coolant time threshold. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 VEH_SYS_KV_LOW_COOLANT_ACCEL_RAMP_MULT:dc.b 0 ; DATA XREF: sub_7BA62:loc_7BB58o ; Converts acceleration into time for low coolant time threshold. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 VEH_SYS_KV_LOW_COOLANT_VEH_SPEED_FACTOR:dc.b 0 ; DATA XREF: sub_7BA62:loc_7BBE4o ; Converts vehicle speed into time for low coolant time threshold. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 VEH_SYS_KE_ENGINE_OVERSPEED_BULB_CHECK:dc.w 0 ; DATA XREF: sub_7DFBA+4r ; sub_7E000+Ar ; Time to illuminate engine overspeed lamp on startup for bulb test Set to zero to disable bulb check. ; Seconds VEH_SYS_KE_CONTROL_ENGINE_OVERSPEED_LAMP:dc.b 0 ; DATA XREF: sub_7DFBA+30r ; sub_7E000+36r ; If set TRUE, enables control of the overspeed lamp via hardware. ; BOOLEAN VEH_SYS_KE_ENGINE_ALARM_ENABLE:dc.b 0 ; DATA XREF: sub_45F3A:loc_46B0Cr ; sub_45F3A:loc_46B30r ... ; If set TRUE, then execute engine alarm or shut down functionality. ; BOOLEAN VEH_SYS_KE_IGNORE_VEHICLE_SPEED_FAULT:dc.b 0 ; DATA XREF: sub_7BA62+4Cr ; If TRUE algorithm will execute even if there is a VehicleSpeed Group Fault. ; BOOLEAN VEH_SYS_KE_VUNLOCK_USED:dc.b 0 ; DATA XREF: sub_282C4+34Cr ; sub_282C4:loc_28680r ... ; Indicates if the Vunlock ignition switch wiring scheme is on the vehicle. ; BOOLEAN VEH_SYS_KE_ALT_DG_RESULTS_DISPLAY_METHOD:dc.b 0 ; DATA XREF: sub_2C7AC:loc_2CAD0r ; Method of displaying the alternator diagnostic results. ; Display_Type VEH_SYS_KE_ALTERNATOR_DIAGNOSTIC_TO_RUN:dc.b 0 ; DATA XREF: sub_2C7AC:loc_2C860r ; This enables/disables the different alternator diagnostics. ; Alternator_Diag_Type VEH_SYS_KE_AFTER_MARKET_PTO_POSSIBLE:dc.b 0 ; DATA XREF: sub_869C0+6Ar ; Denotes that the vehicle platform has the possibility of an aftermarket power take off device being connected. ; BOOLEAN C2_J2190_MSGS_KE_VULNERABILITY_FLAG:dc.b 0 ; DATA XREF: TenSecondDelayIsInHere+32r ; sub_40278+96r ; Bypass Data Link Security to PCM. 0FFH indicates PCM is unlocked. ; SHORTCARD AIR_CONDITIONING_KE_AUTO_RECIRCULATION_OPTION:dc.l unk_FF0000 ; DATA XREF: sub_2BA40:loc_2C228r ; sub_2BA40:loc_2C2CCr ... ; Auto recirculation mode is present on vehicle. ; boolean dc.b 0 dc.b $2D ; - dc.b 0 dc.b $BB ; ? dc.b 1 dc.b $48 ; H dc.b 1 dc.b $D6 ; ? dc.b 2 dc.b $64 ; d dc.b 2 dc.b $F1 ; ? dc.b 3 dc.b $7F ;  dc.b 4 dc.b $D dc.b 4 dc.b $9A ; ? dc.b 5 dc.b $28 ; ( dc.b 5 dc.b $B6 ; ? dc.b 6 dc.b $43 ; C dc.b 6 dc.b $D1 ; ? dc.b 7 dc.b $5E ; ^ dc.b 7 dc.b $EC ; ? dc.b 8 dc.b $7A ; z dc.b 9 dc.b 7 AIR_CONDITIONING_KE_TYPE_OF_AC_ON_VEHICLE:dc.b 2 ; DATA XREF: sub_2BA40+Ar ; sub_2BA40:loc_2BA96r ... ; Type of Air Conditioning System supported ; Unitless dc.b $FF AIR_CONDITIONING_KE_AC_SLUGGING_MAX_ALLOWABLE_TIM:dc.w $320 ; DATA XREF: sub_2BA40+294r ; When AC activated, it is turned off after this much time. ; Seconds AIR_CONDITIONING_KE_AC_STATUS_INPUT_EQUIPPED:dc.b 1 ; DATA XREF: sub_2BA40+14r ; Set to TRUE if AC clutch relay feedback is hard wired to a PCM on a vehicle. ; BOOLEAN dc.b $FF AIR_CONDITIONING_KE_IGN_VOLT_LOW_DISABLE_SLUGGING:dc.w $600 ; DATA XREF: sub_2BA40+2BAr ; AC slugging will not be enabled during crank when ignition voltage is below this value . ; Volts AIR_CONDITIONING_KE_REFERENCE_PULSES_AC_SLUGGING:dc.w $20 ; DATA XREF: sub_2BA40+2A6r ; Keep A/C enabled for at least this many reference pulses. ; Counts AIR_CONDITIONING_KE_AC_REQUEST_DEBOUNCE_TIME:dc.w $20 ; DATA XREF: sub_2C35A+1Cr ; Determines how long the AC Request must stay in a statebefore a state change is allowed. ; Seconds AIR_CONDITIONING_KE_AC_STARTUP_FAST_DEBOUNCE_TIME:dc.w $10 ; DATA XREF: sub_2C35A:loc_2C37Er AIR_CONDITIONING_KE_AC_INITIAL_STARTUP_WINDOW:dc.w $50 ; DATA XREF: sub_2C35A+10r AIR_CONDITIONING_KE_AC_ENGINE_SPEED_TIME:dc.w $10 ; DATA XREF: sub_2BA40+3AEr ; Amount of continuous time in which the engine speed has been maintained to disable air conditioner. ; Seconds AIR_CONDITIONING_KE_AC_TURN_OFF_DELAY:dc.b 0 ; A/C turn off delay to prevent engine flare. ; Seconds dc.b 0 AIR_CONDITIONING_KE_AC_HIGH_TPS_RE_ENABLE_TIME:dc.w 0 ; DATA XREF: sub_2BA40+48Cr ; Time in which wide open throttle launch disable is to last ; Seconds AIR_CONDITIONING_KE_AC_LOW_TPS_RE_ENABLE_TIME:dc.w 0 ; DATA XREF: sub_2BA40+4A0r ; Time in which power enrichment launch disable is to last ; Seconds AIR_CONDITIONING_KE_AC_HIGH_TPS_REPEAT_TIME:dc.w 0 ; DATA XREF: sub_2BA40:loc_2BE5Er ; Time in which high TPS AC disables are not allowed after the first disable. ; Seconds AIR_CONDITIONING_KE_AC_ENGINE_SPEED_LOWER_LIMIT:dc.w $5AE6 ; DATA XREF: sub_2BA40+372r ; sub_2BA40+3B6r ; Enable A/C if engine speed is below this threshold. ; RPM AIR_CONDITIONING_KE_AC_ENGINE_SPEED_UPPER_LIMIT:dc.w $61E6 ; DATA XREF: sub_2BA40+386r ; Disable A/C if engine speed is above this threshold. ; RPM AIR_CONDITIONING_KE_AC_SLUGGING_ENG_SPEED_ENABLE:dc.w $200 ; DATA XREF: sub_2BA40+27Er ; Activate AC slugging if engine RPM is greater than this value ; RPM AIR_CONDITIONING_KE_AC_SLUGGING_ENG_SPEED_TURN_OF:dc.w $2800 ; DATA XREF: sub_2BA40+2C6r ; When AC slugging is activated it is turned off wheneng speed reaches this level ; RPM AIR_CONDITIONING_KE_AC_HOT_COOLANT_LOWER_LIMIT:dc.w $C1A ; DATA XREF: sub_2BA40+5D8r ; Enable A/C if coolant temperature is below this threshold. ; Degrees_C AIR_CONDITIONING_KE_AC_HOT_COOLANT_UPPER_LIMIT:dc.w $C80 ; DATA XREF: sub_2BA40+5ECr ; Disable A/C if coolant temperature is above this threshold. ; Degrees_C AIR_CONDITIONING_KE_AC_COOLANT_TEMP_SLUGGING_HIGH:dc.w $300 ; DATA XREF: sub_2C3C0+9Cr ; Activate AC Slugging if coolant temp. is below this value ; Degrees_C AIR_CONDITIONING_KE_AC_SLUGGING_IAT:dc.w $80 ; DATA XREF: sub_2C3C0+A8r ; Activate AC slugging if Induction Air Temp is above this value ; Degrees_C AIR_CONDITIONING_KE_AC_SLUGGING_IAT_LAST_KEY_OFF:dc.w $166 ; DATA XREF: sub_2C3C0+B4r ; Activate AC slugging if Induction Air Temp at last keyoff isabove this value ; Degrees_C AIR_CONDITIONING_KE_AC_HIGH_TPS_DISABLE_THRESHOLD:dc.w $1400 ; DATA XREF: sub_2BA40+3E0r ; Throttle position in which AC needs to be disabled ; Percent AIR_CONDITIONING_KE_AC_HIGH_TPS_RE_ENABLE_THRESH:dc.w 0 ; DATA XREF: sub_2BA40+498r ; Throttle Position in which launch disable can be seperated fromWOT disable ; Percent AIR_CONDITIONING_KE_AC_VEH_SPEED_LAUNCH_DISABLE:dc.w 0 ; DATA XREF: sub_2BA40+3F0r AIR_CONDITIONING_KE_AC_VEHICLE_SPEED_RE_ENABLE:dc.w $7F80 ; DATA XREF: sub_2BA40+484r AIR_CONDITIONING_KE_AC_HIGH_PRESSURE_UPPER_LIMIT:dc.w $833 ; DATA XREF: sub_2BA40+4FAr ; Disable A/C if pressure is above this threshold. ; PSI AIR_CONDITIONING_KE_AC_HIGH_PRESSURE_LOWER_LIMIT:dc.w $4FB ; DATA XREF: sub_2BA40+4DAr ; sub_2BA40+562r ; Enable A/C if pressure is below this threshold. ; PSI AIR_CONDITIONING_KE_AC_LOW_PRESSURE_LOWER_LIMIT:dc.w $9A ; DATA XREF: sub_2BA40+4E2r ; sub_2BA40+502r ... ; Disable A/C if pressure is below this threshold. ; PSI AIR_CONDITIONING_KE_AC_LOW_PRESSURE_UPPER_LIMIT:dc.w $B3 ; DATA XREF: sub_2BA40+576r ; Enable A/C if pressure is above this threshold. ; PSI AIR_CONDITIONING_KE_AC_PRESSURE_SLUGGING:dc.w $B3 ; DATA XREF: sub_2C3C0+88r ; Enable A/C if air conditioner pressure is above this threshold. ; PSI AIR_CONDITIONING_KE_AC_LOW_VOLTAGE_UPPER_LIMIT:dc.w $A80 ; DATA XREF: sub_2BA40+5BEr ; AC compressor not allowed to engaged at voltage belowthis value. If compressor already engaged it willstay on. ; volts AIR_CONDITIONING_KE_AC_LOW_VOLTAGE_LOWER_LIMIT:dc.w $A00 ; DATA XREF: sub_2BA40+5AAr ; AC compressor is disengaged when voltage drops below this value. ; volts AIR_CONDITIONING_KE_AUTO_RECIRC_ENABLE_DELAY_TIME:dc.w 0 ; DATA XREF: sub_2BA40:loc_2C284r ; sub_2C3C0:loc_2C492r ; Recirc mode enable delay after conditions are met. ; seconds AIR_CONDITIONING_KE_AUTO_RECIRC_MIN_ON_TIME:dc.w 0 ; DATA XREF: sub_2BA40:loc_2C27Ar ; Minimum time that Auto Recirc mode must be enabled. ; seconds AIR_CONDITIONING_KE_AUTO_RECIRC_ON_MPH:dc.w 0 ; DATA XREF: sub_2BA40+7FEr ; Vehicle speed below which Auto Recirc mode is enabled for high pressure. ; MPH AIR_CONDITIONING_KE_AUTO_RECIRC_OFF_MPH:dc.w 0 ; DATA XREF: sub_2BA40+870r ; Vehicle speed above which Auto Recirc mode is disabled. ; MPH AIR_CONDITIONING_KE_AC_PRESSURE_INITIAL_DELAY_TIM:dc.w $3C0 ; DATA XREF: sub_2BA40+54Cr ; sub_2C3C0+112r AIR_CONDITIONING_KE_AC_TPS_DISABLE_FOR_POLICE:dc.b 0 ; DATA XREF: sub_2BA40:loc_2BEA2r ; Set to TRUE on Police vehicles. This forces AC off for the entire ignition cycle to give them more power for chases. ; BOOLEAN AIR_CONDITIONING_KE_AC_GEARS_FOR_LAUNCH_DISABLE:dc.b 8 ; DATA XREF: sub_2BA40+3FCr ; Actual transmission gear that is less than or equal to this that allows AC to be disabled by TPS. ; Gear AIR_CONDITIONING_KV_AC_MINIMUM_OFF_TIME:dc.w 0 ; DATA XREF: sub_2BA40:loc_2C096r ; sub_2BA40:loc_2C0FCr ; Minimum duration of clutch disable. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 AIR_CONDITIONING_KV_AC_IAT_ON_DELAY_TIME:dc.b 0 ; DATA XREF: sub_2C3C0+122o ; A/C turn on delay to prevent engine stall. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 ALTERNATOR_KE_P1637_FAIL_LIMIT:dc.b $78 ; DATA XREF: sub_2C7AC+1D6r ; sub_2C7AC+2C8r ; The number of sample of failed conditions to set P1637. ; NONE 0-255 ALTERNATOR_KE_P1637_SAMPLE_PERIOD:dc.b $C8 ; DATA XREF: sub_2C7AC+202r ; sub_2C7AC+2ECr ; The number of sample periods over which the Alternator L-Terminal Diagnostic is to run. ; NONE 0-255 ALTERNATOR_KE_VALT_P1638_FAIL_LIMIT:dc.b $78 ; DATA XREF: sub_2C7AC+228r ; Number of sample periods that F-Terminal failure has been detected to report P1638 failure. ; NONE 0-255 ALTERNATOR_KE_VALT_P1638_SAMPLE_PERIOD:dc.b $C8 ; DATA XREF: sub_2C7AC+254r ; The number of sample periods over which the Alternator F-Terminal Diagnostic is to run. ; NONE 0-255 ALTERNATOR_KE_VALT_MIN_NORMAL_RUNNING_DC:dc.w $100 ; DATA XREF: sub_2C7AC+DEr ; With L Term HI and Engine running: when Field Duty Cycle is less than this, set P1638 code. ; Percent ALTERNATOR_KE_VALT_L_SHORTED_HOT_F_OPEN_DC:dc.w $33 ; DATA XREF: sub_2C7AC+106r ; With L Term HI and Engine not running: when Field Duty Cycle is less than this set P1637 & P1637. ; Percent ALTERNATOR_KE_VALT_L_SHORTED_HOT_DC:dc.w $500 ; DATA XREF: sub_2C7AC+11Cr ; With L Term HI and Engine nor running: when Field Duty Cycle is is equal to this with hystersis set P1637. ; Percent ALTERNATOR_KE_VALT_F_AND_L_SHORTED_HOT_DC:dc.w $13CD ; DATA XREF: sub_2C7AC:loc_2C8ECr ; With L Term HI and Engine not running: when Field Duty Cycle is greater than this, set P1637 & P1638. ; Percent ALTERNATOR_KE_VALT_L_SHORT_TO_GND_DC:dc.w $100 ; DATA XREF: sub_2C7AC+160r ; With L Term LO and Engine running: when Field Duty Cycle is less than this set P1637 & P1638 else set P1637. ; Percent ALTERNATOR_KE_VALT_FIELD_OR_WIRING_FAULT_DC:dc.w $33 ; DATA XREF: sub_2C7AC+194r ; With L Term LO and Engine Not running: When Field Duty Cycle less than this set P1638. ; Percent ALTERNATOR_KE_VALT_POWERUP_DC:dc.w $500 ; DATA XREF: sub_2C7AC+1B0r ; With L Term LO and Engine nor running: when Field Duty Cycle is equal to this with hysteresis clear codes. ; Percent ALTERNATOR_KE_VALT_F_SHORTED_HOT_DC:dc.w $13CD ; DATA XREF: sub_2C7AC:loc_2C972r ; With L Term LO and engine not running: when Field Duty Cycle is Greater than this set P1638. ; Percent ALTERNATOR_KE_VALT_DC_HYSTERESIS:dc.w $300 ; DATA XREF: sub_2C7AC:loc_2C8C2r ; sub_2C7AC:loc_2C956r ; Used as hysteresis on the normal powerup mode and L Term shorted to 12v mode calibrations. ; Percent C2_DC_DEFINITION_KE_DEV_CNTL_GEAR_RPM_LIMIT:dc.w $6A00 ; DATA XREF: sub_3E250+54r ; The maximum engine rpm allowed for gear device control. ; RPM C2_DC_DEFINITION_KE_DEV_CNTL_32_VEHICLE_SPEED_LIM:dc.w $2300 ; DATA XREF: sub_3E250+9Er ; The maximum vehicle speed allowed for 32 gear down shiftdevice control. ; MPH C2_DC_DEFINITION_KE_DEV_CNTL_21_VEHICLE_SPEED_LIM:dc.w $1180 ; DATA XREF: sub_3E250+BAr ; The maximum engine rpm allowed for 21 gear down shiftdevice control. ; MPH C2_EXECUTIVE_KE_C2_IGN_VOLT_THRESH:dc.w $980 ; DATA XREF: DoLoopF+24Cr ; DoLoopF+59Cr ; Ignition voltage threshold below which U-codes aredisabled. ; Volts C2_EXECUTIVE_KE_C2_PASS_IGN_VOLT_TIME:dc.w $190 ; DATA XREF: DoLoopF+270r ; DoLoopF+5C0r ; Minimum time ignition voltage must be high tore-enable U-codes ; Seconds C2_EXECUTIVE_KE_C2_SHORT_TO_GROUND_DIAG_TIME:dc.w $1E0 ; DATA XREF: sub_86D9C+44r C2_EXECUTIVE_KE_C2_SHORT_TO_HIGH_DIAG_TIME:dc.w $1E0 ; DATA XREF: sub_85D6E:loc_85FF6r ; sub_87166:loc_8719Cr C2_EXECUTIVE_KE_MS_C2_INIT_PHASE2_DELAY:dc.w $68 ; DATA XREF: sub_3E4F2+140r ; sub_3E4F2+282r ; Wait this amount of time after phase 1 has started before starting phase 2. ; Seconds C2_EXECUTIVE_KE_MS_C2_INIT_PHASE3_DELAY:dc.w $18 ; DATA XREF: sub_3E4F2+1A6r ; Wait this amount of time after phase 2 has started before starting phase 3. ; Seconds C2_EXECUTIVE_KE_MS_C2_INIT_PHASE4_DELAY:dc.w $70 ; DATA XREF: sub_3E4F2+1ECr ; Wait this amount of time after phase 3 has started before starting phase 4. ; Seconds C2_EXECUTIVE_KE_MS_C2_FIRST_RETRY_INTERVAL:dc.b 3 ; DATA XREF: DoLoopF+1B6r ; DoLoopF+506r ; Re-queue Class2 serial data message if expected response is not received after this many 100 millisecond intervals. ; Counts C2_EXECUTIVE_KE_MS_C2_SUBSQNT_RETRY_INTERVAL:dc.b 8 ; DATA XREF: DoLoopF+1C0r ; DoLoopF+1D4r ... C2_EXECUTIVE_KE_MS_C2_MAX_RETRY_LIMIT:dc.b 7 ; DATA XREF: DoLoopF+1EEr ; DoLoopF+53Er ; Stop re-queuing Class2 serial data message afterthis many retries. The Class2 node is now failed. ; Counts dc.b $FF C2_NORMAL_MSGS_KE_C2_1211_HIGH_SPEED:dc.w 0 ; DATA XREF: sub_45F3A+358r ; The vehicle speed must be less than this to allow 12.5 msec check for queuing msg 1211 ; MPH C2_NORMAL_MSGS_KE_1211_SLOWDOWN_FOR_MEC:dc.b 0 ; DATA XREF: sub_45F3A+30Cr ; If set TRUE, activates the Allison 12-11 RPT message slow rate logic when Manufacturers Enable Counter is not zero ; Boolean C2_NORMAL_MSGS_KE_1211_SLOWDOWN_FOR_DIAG_TOOL:dc.b 0 ; DATA XREF: sub_45F3A:loc_46258r ; If set TRUE, activates the Allison 12-11 RPT message slow rate logic when a diagnostic tool is present ; Boolean C2_NORMAL_MSGS_KE_1211_SLOWDOWN_FOR_PRMD_DELTA:dc.w 0 ; DATA XREF: sub_45F3A+32Ar ; This time must be exceeded before the the Allison 12-11 RPT message fast rate logic will be allowed ; Seconds C2_NORMAL_MSGS_KE_C2_AC_CLUTCH_ENGAGED_MIN_INTE:dc.w 0 ; DATA XREF: sub_45F3A+71Er C2_NORMAL_MSGS_KE_C2_AC_PRESSURE_MIN_INTERVAL:dc.w 0 ; DATA XREF: sub_45F3A+A3Er C2_NORMAL_MSGS_KE_C2_AC_PRESSURE_DEFAULT_VALUE:dc.w 0 ; DATA XREF: sub_45F3A:loc_469FCr ; This is default value used for failsoft report. ; PSI C2_NORMAL_MSGS_KE_C2_AC_PRESSURE_SEND_ON_CHANGE:dc.w 0 ; DATA XREF: sub_45F3A:loc_4699Ar ; sub_45F3A:loc_469F4r C2_NORMAL_MSGS_KE_C2_ACCUMULATED_FUEL_MIN_INTER:dc.w $50 ; DATA XREF: sub_45F3A+1678r C2_NORMAL_MSGS_KE_C2_ACCUMULATED_FUEL_SEND_ON_C:dc.w 1 ; DATA XREF: sub_45F3A+1688r C2_NORMAL_MSGS_KE_C2_BAROMETRIC_PRESSURE_MIN_IN:dc.w $A0 ; DATA XREF: sub_45F3A+C80r ; The minimum required elapsed time before a F211 RPT message is queued due to a baro change. ; Seconds C2_NORMAL_MSGS_KE_C2_BAROMETRIC_PRESSURE_SEND_O:dc.w $14FF ; DATA XREF: sub_45F3A:loc_46BCEr C2_NORMAL_MSGS_KE_C2_CLUTCH_PEDAL_DEP_MIN_INT:dc.w 0 ; DATA XREF: sub_45F3A+8D0r C2_NORMAL_MSGS_KE_C2_COOLANT_TEMPERATURE_MIN_IN:dc.w $A0 ; DATA XREF: sub_45F3A+11B4r C2_NORMAL_MSGS_KE_C2_COOLANT_TEMP_MAX:dc.b $FF ; DATA XREF: sub_45F3A+118Ar ; sub_47DA2+2E8r dc.b $FF C2_NORMAL_MSGS_KE_C2_COOL_TEMP_LIMIT_RUNTIME:dc.l 0 ; DATA XREF: sub_45F3A+1198r ; sub_47DA2+2F6r ; Class 2 coolant temperature will be limited to KE_C2_Coolant_Temp for this amount of time. ; Seconds C2_NORMAL_MSGS_KE_C2_COOLANT_TEMPERATURE_SEND_O:dc.w $1A ; DATA XREF: sub_45F3A:loc_4710Er C2_NORMAL_MSGS_KE_C2_CRUISE_MEMORY_SPEED_MIN_IN:dc.w 0 ; DATA XREF: sub_45F3A+420r C2_NORMAL_MSGS_KE_C2_CRUISE_MEMORY_SPEED_SEND_O:dc.w $4D ; DATA XREF: sub_45F3A:loc_4636Er ; sub_4AA18+176o ... C2_NORMAL_MSGS_KE_C2_CURRENT_GEAR_MIN_INTERVAL:dc.w $30 ; DATA XREF: sub_45F3A+EB2r C2_NORMAL_MSGS_KE_C2_ENG_FAN_SPEED_MIN_INTERVAL:dc.w 0 ; DATA XREF: sub_45F3A+D8Ar ; Minimum required elapsed time since C2_4801_RPT_Eng_Fan_Speed was last queued for transmission on Class 2 bus. ; Seconds C2_NORMAL_MSGS_KE_C2_ENG_FAN_SPD_SEND_ON_CHANGE:dc.w 0 ; DATA XREF: sub_45F3A:loc_46CD6r C2_NORMAL_MSGS_KE_C2_ENG_TORQ_MIN_INTERVAL:dc.w 0 ; DATA XREF: sub_45F3A+676r C2_NORMAL_MSGS_KE_C2_ENG_TORQ_SEND_ON_CHANGE:dc.w 0 ; DATA XREF: sub_45F3A+6A4r C2_NORMAL_MSGS_KE_C2_ENGINE_OIL_PRESSURE_DEFAUL:dc.l 0 ; DATA XREF: sub_45F3A:loc_471CAr ; sub_45F3A:loc_471F0r ; This is default value used for failsoft report. ; kPa_L_S C2_NORMAL_MSGS_KE_C2_ENGINE_OIL_PRESSURE_MIN_IN:dc.w $A0 ; DATA XREF: sub_45F3A+125Ar C2_NORMAL_MSGS_KE_C2_ENGINE_OIL_PRESSURE_SEND_O:dc.l off_0+$161 ; DATA XREF: sub_45F3A:loc_471B6r ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. C2_NORMAL_MSGS_KE_C2_ENGINE_SPEED_DEFAULT_VALUE:dc.w 0 ; DATA XREF: sub_45F3A:loc_464F0r ; sub_45F3A+5FAr ; This is default value used for failsoft report. ; RPM C2_NORMAL_MSGS_KE_C2_ENGINE_SPEED_MIN_INTERVAL:dc.w $30 ; DATA XREF: sub_45F3A+570r C2_NORMAL_MSGS_KE_C2_ENGINE_SPEED_SEND_ON_CHANG:dc.w $A4 ; DATA XREF: sub_45F3A:loc_464DEr C2_NORMAL_MSGS_KE_C2_FE06_REQ_DELAY_TIME1:dc.w $10 ; DATA XREF: sub_45F3A+2B6r ; The minimum required elapsed time before a FE06 REQ message is queued due to a local PCM power mode change. ; Seconds C2_NORMAL_MSGS_KE_C2_FE06_REQ_DELAY_TIME2:dc.w $C ; DATA XREF: sub_47DA2+B80r ; The minimum required elapsed time before a FE06 REQ message is queued due to the PCM being capable of communicating on class2. ; Seconds C2_NORMAL_MSGS_KE_C2_LOCAL_POWERMODE_CONTROL:dc.b 0 ; DATA XREF: sub_45F3A:loc_4612Ar ; sub_47DA2+81Ar ... ; Set TRUE if PCM is local power mode master meaning application does not use FE06 system power mode control. ; Boolean dc.b $FF C2_NORMAL_MSGS_KE_C2_FUEL_PERCENT_DEFAULT_VALUE:dc.w 0 ; DATA XREF: sub_45F3A+1424r ; sub_45F3A:loc_47374r ... ; This is default value used for failsoft report. ; Percent C2_NORMAL_MSGS_KE_C2_FUEL_PERCENT_MIN_INTERVAL:dc.w 0 ; DATA XREF: sub_45F3A+13BEr C2_NORMAL_MSGS_KE_C2_FUEL_PERCENT_SEND_ON_CHANG:dc.w 0 ; DATA XREF: sub_45F3A:loc_47322r ; sub_45F3A:loc_4736Cr C2_NORMAL_MSGS_KE_C2_FUEL_VOLUME_DEFAULT_VALUE:dc.w 0 ; DATA XREF: sub_45F3A+152Cr ; sub_45F3A:loc_4747Cr ... ; This is default value used for failsoft report. ; Liters C2_NORMAL_MSGS_KE_C2_FUEL_VOLUME_MIN_INTERVAL:dc.w $A0 ; DATA XREF: sub_45F3A+14BAr C2_NORMAL_MSGS_KE_C2_FUEL_VOLUME_SEND_ON_CHANGE:dc.w 1 ; DATA XREF: sub_45F3A:loc_47422r ; sub_45F3A:loc_47474r C2_NORMAL_MSGS_KE_C2_HVAC_AUTO_RECIRC_MIN_INTER:dc.w 0 ; DATA XREF: sub_45F3A+15F6r ; The minimum required elapsed time before a B230 RPTmessage is queued. ; Seconds C2_NORMAL_MSGS_KE_C2_INDUCTION_AIR_TEMP_MIN_INT:dc.w $A0 ; DATA XREF: sub_45F3A+10F2r C2_NORMAL_MSGS_KE_C2_INDUCTION_AIR_TEMP_SEND_ON:dc.w $1A ; DATA XREF: sub_45F3A:loc_4704Er C2_NORMAL_MSGS_KE_C2_INSTANTANEOUS_FUEL_MIN_INT:dc.w 0 ; DATA XREF: sub_45F3A+9FAr C2_NORMAL_MSGS_KE_C2_INSTANTANEOUS_FUEL_SEND_ON:dc.w 0 ; DATA XREF: sub_45F3A:loc_46948r C2_NORMAL_MSGS_KE_C2_OIL_LIFE_REMAINING_MIN_INT:dc.w $A0 ; DATA XREF: sub_45F3A+1332r C2_NORMAL_MSGS_KE_C2_OIL_LIFE_REMAINING_SEND_ON:dc.w $33 ; DATA XREF: sub_45F3A:loc_47280r C2_NORMAL_MSGS_KE_C2_PARK_NEUTRAL_SW_ACTIVE_MIN:dc.w 0 ; DATA XREF: sub_45F3A+10Ar C2_NORMAL_MSGS_KE_C2_PEDAL_LOAD_MIN_INTERVAL:dc.w $30 ; DATA XREF: sub_45F3A+D12r C2_NORMAL_MSGS_KE_C2_PEDAL_LOAD_SEND_ON_CHANGE:dc.w $100 ; DATA XREF: sub_45F3A+3C0r ; sub_45F3A:loc_46C74r C2_NORMAL_MSGS_KE_C2_POWERTRAIN_NODE_ALIVE_PERI:dc.w $140 ; DATA XREF: sub_45F3A+C5Cr C2_NORMAL_MSGS_KE_C2_PRNDL_DISPLAY_INTERVAL:dc.w 0 ; DATA XREF: sub_45F3A+18Ar C2_NORMAL_MSGS_KE_C2_PRNDL_POSITION_MIN_INTERVA:dc.w 0 ; DATA XREF: sub_45F3A+DCEr C2_NORMAL_MSGS_KE_C2_PT_TCS_FAILURE_STATUS_MIN_:dc.w 0 ; DATA XREF: sub_45F3A+820r C2_NORMAL_MSGS_KE_C2_ROLLING_ODO_MIN_INTERVAL:dc.w 0 ; DATA XREF: sub_45F3A+962r C2_NORMAL_MSGS_KE_C2_ROLLING_ODO_SEND_ON_CHANGE:dc.l 0 ; DATA XREF: sub_45F3A:loc_468C0r C2_NORMAL_MSGS_KE_C2_TCC_BRAKE_DEPRESSED_MIN_IN:dc.w $10 ; DATA XREF: sub_45F3A+85Ar C2_NORMAL_MSGS_KE_C2_TRANSMISSION_OIL_TEMP_MIN_:dc.w $A0 ; DATA XREF: sub_45F3A+1874r C2_NORMAL_MSGS_KE_C2_TRANSMISSION_OIL_TEMP_SEND:dc.w $1A ; DATA XREF: sub_45F3A:loc_477CEr C2_NORMAL_MSGS_KE_C2_VEHICLE_SPEED_MIN_INTERVAL:dc.w $50 ; DATA XREF: sub_45F3A+7A2r C2_NORMAL_MSGS_KE_C2_VEHICLE_SPEED_SEND_ON_CHAN:dc.w $EF ; DATA XREF: sub_45F3A:loc_466FAr C2_NORMAL_MSGS_KE_C2_HI_RES_VEH_SPD_MIN_INTERVL:dc.w 0 ; DATA XREF: sub_45F3A+104Ar C2_NORMAL_MSGS_KE_C2_HI_RES_VEH_SPD_SEND_ON_CHG:dc.w 0 ; DATA XREF: sub_45F3A:loc_46FA4r C2_NORMAL_MSGS_KE_C2_IGNITION_VOLT_MIN_INTERVAL:dc.w 0 ; DATA XREF: sub_45F3A+16CEr C2_NORMAL_MSGS_KE_C2_IGNITION_VOLT_SEND_ON_CHG:dc.w 0 ; DATA XREF: sub_45F3A:loc_4761Cr C2_NORMAL_MSGS_KE_ENGINECOOLANTHOTHI:dc.w 0 ; DATA XREF: sub_45F3A+1702r ; sub_47DA2+6C8r C2_NORMAL_MSGS_KE_ENGINECOOLANTHOTLO:dc.w 0 ; DATA XREF: sub_45F3A:loc_4764Cr C2_NORMAL_MSGS_KE_ENGHOT_STOPENG_TEMPHI:dc.w 0 ; DATA XREF: sub_45F3A+1756r ; sub_47DA2+5BAr C2_NORMAL_MSGS_KE_ENGHOT_STOPENG_TEMPLO:dc.w 0 ; DATA XREF: sub_45F3A:loc_476A0r C2_NORMAL_MSGS_KE_TCS_FAILURE_STATUS_BITS_SUPPO:dc.b 7 ; DATA XREF: sub_45F3A+1Er ; sub_45F3A:loc_45F7Er ... ; This calibration indicates support or non-support ofa particular powertrain traction control failure status. ; TCS_Failure_Status_Record_Type byte_1F989: dc.b 0 ; DATA XREF: sub_45F3A+10r C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE7_P1:dc.b 3 ; DATA XREF: sub_3E4F2+11Eo ; Class2 msgs allowed during run phase 1 ; Tx_Msg_ID_Record_Type dc.b $FF dc.b $FF dc.b $FF dc.b $F6 ; ? dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $41 ; A dc.b $10 dc.b $80 ; ? dc.b $80 ; ? dc.b 0 dc.b 0 dc.b $56 ; V dc.b $95 ; ? dc.b $71 ; q dc.b $BA ; ? C2_TX_MSGS_KV_C2_MSGS_QUEUED_AT_MODE7_P1:dc.b 3 ; DATA XREF: sub_3E4F2+128o ; Class2 msgs queued during run phase 1 ; Tx_Msg_ID_Record_Type dc.b $F8 ; ? dc.b 0 dc.b 0 dc.b 1 dc.b $3D ; = dc.b $F4 ; ? dc.b $90 ; ? dc.b $3F ; ? dc.b $10 dc.b 3 dc.b $A2 ; ? dc.b $C6 ; ? dc.b $4F ; O dc.b $4C ; L dc.b $93 ; ? dc.b $61 ; a dc.b $BC ; ? C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE7_P2:dc.b 3 ; DATA XREF: sub_3E4F2+166o ; Class2 msgs allowed during run phase 2 ; Tx_Msg_ID_Record_Type dc.b $FF dc.b $FF dc.b $FF dc.b $F6 ; ? dc.b $29 ; ) dc.b $70 ; p dc.b $10 dc.b $41 ; A dc.b $10 dc.b $83 ; ? dc.b $80 ; ? dc.b 0 dc.b 0 dc.b $56 ; V dc.b $97 ; ? dc.b $71 ; q dc.b $BE ; ? C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE7_P3:dc.b 3 ; DATA XREF: sub_3E4F2+1CAo ; Class2 msgs allowed during run phase 3 ; Tx_Msg_ID_Record_Type dc.b $FF dc.b $FF dc.b $FF dc.b $F6 ; ? dc.b $29 ; ) dc.b $74 ; t dc.b $90 ; ? dc.b $7F ;  dc.b $10 dc.b $83 ; ? dc.b $A2 ; ? dc.b $C6 ; ? dc.b $4F ; O dc.b $5E ; ^ dc.b $97 ; ? dc.b $71 ; q dc.b $BE ; ? C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE7_P4:dc.b 3 ; DATA XREF: sub_3E4F2+20Ao ; Class2 msgs allowed during run phase 4 ; Tx_Msg_ID_Record_Type dc.b $FF dc.b $FF dc.b $FF dc.b $F7 ; ? dc.b $3D ; = dc.b $F4 ; ? dc.b $90 ; ? dc.b $7F ;  dc.b $10 dc.b $83 ; ? dc.b $A2 ; ? dc.b $C6 ; ? dc.b $4F ; O dc.b $5E ; ^ dc.b $97 ; ? dc.b $71 ; q dc.b $BE ; ? C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE8_P1:dc.b 3 ; DATA XREF: sub_3E4F2+258o ; Class2 msgs allowed during crank phase 1 ; Tx_Msg_ID_Record_Type dc.b $FF dc.b $FF dc.b $FF dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 C2_TX_MSGS_KV_C2_MSGS_QUEUED_AT_MODE8_P1:dc.b 3 ; DATA XREF: sub_3E4F2+262o ; Class2 msgs queued during crank phase 1 ; Tx_Msg_ID_Record_Type dc.b $F8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $20 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 4 C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE8_P2:dc.b 3 ; DATA XREF: sub_3E4F2+2A8o ; Class2 msgs allowed during crank phase 2 ; Tx_Msg_ID_Record_Type dc.b $FF dc.b $FF dc.b $FF dc.b $F7 ; ? dc.b $3D ; = dc.b $F4 ; ? dc.b $90 ; ? dc.b $7F ;  dc.b $10 dc.b $83 ; ? dc.b $A2 ; ? dc.b $C6 ; ? dc.b $4F ; O dc.b $5E ; ^ dc.b $97 ; ? dc.b $71 ; q dc.b $BE ; ? C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE10_P1:dc.b 3 ; DATA XREF: OS1:00028D8Ao ; sub_3E4F2+386o ; Class2 msgs allowed during powerup phase 1 ; Tx_Msg_ID_Record_Type dc.b $FF dc.b $FF dc.b $FF dc.b $F0 ; ? dc.b $20 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 C2_TX_MSGS_KV_C2_MSGS_QUEUED_AT_MODE10_P1:dc.b 3 ; DATA XREF: OS1:00028D84o ; sub_3E4F2+390o ; Class2 msgs queued during powerup phase 1 ; Tx_Msg_ID_Record_Type dc.b $F8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE28:dc.b 3 ; DATA XREF: OS1:00028EB4o ; sub_3E4F2+88o ; Class2 msgs allowed during mode28 active ; Tx_Msg_ID_Record_Type dc.b $FF dc.b $FF dc.b $FF dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 COLUMN_LOCK_KE_COLUMN_LOCK_PRESENT:dc.b 1 ; DATA XREF: sub_2D8D6+8r ; sub_307A6+DEr ; This calibration enables/disables the Column Lockfunctionality. Currently ONLY Y car should be TRUE. ; Boolean dc.b $FF COLUMN_LOCK_KE_COLUMN_LOCK_VSS_FUEL_DISABLE:dc.w $C0 ; DATA XREF: sub_2D8D6:loc_2D936r ; Vehicle speed at which the fuel must be discontinuedwhen the steering column can not be unlocked. ; MPH FAN_CONTROL_KE_AC_PRESSURE_FAN1_HIGH_THRESHO:dc.w $466 ; DATA XREF: sub_2E726:loc_2E778r ; Enable the Fan 1 output if AC Pressure is above this threshold ; PSI FAN_CONTROL_KE_AC_PRESSURE_FAN1_LOW_THRESHOL:dc.w $39A ; DATA XREF: sub_2E726+3Er ; The Fan1 output can be disabled if AC Pressure is below this threshold. ; PSI FAN_CONTROL_KE_ECT_FAN1_HIGH_THRESHOLD:dc.w $ACD ; DATA XREF: sub_2E726+58r ; Enable the Fan 1 output if coolant temperature is above this threshold. ; Degrees C FAN_CONTROL_KE_ECT_FAN1_LOW_THRESHOLD:dc.w $A66 ; DATA XREF: sub_2E716r ; sub_2E726+44r ; The Fan 1 output can be disabled if Coolant Temperature is belowthis threshold. ; Degrees C FAN_CONTROL_KE_ECT_FAN1_AC_ON_THRESHOLD:dc.w $880 ; DATA XREF: sub_2E726+A0r FAN_CONTROL_KE_ECT_FAN1_KEYOFF:dc.w $DFF ; DATA XREF: sub_2E726+130r ; Perform FAN RUNON on the fan1 output after keyoff, if coolanttemp is above this threshold at keyoff. ; Degrees_C FAN_CONTROL_KE_ENGINE_RUNNING_FAN1_TIME:dc.w $A0 ; DATA XREF: sub_2E726+2Ar ; The minimum engine run time required to expire before the Fan1output can be enabled. ; Seconds FAN_CONTROL_KE_FANCOMMAND_FOR_CTS_FAULT:dc.w $1400 ; DATA XREF: sub_2EBD6:loc_2EE6Cr ; Percent Fan Command to be forced when coolant sensor is shorted high or low. ; Percent FAN_CONTROL_KE_HI_VEH_SPD_FANS_OFF_AC_THRESH:dc.w $2D00 ; DATA XREF: sub_2E726+D2r ; sub_2E726+1B0r FAN_CONTROL_KE_VEHICLE_SPEED_HIGH_AC_FAN1_TH:dc.w $1180 ; DATA XREF: sub_2E726+4Ar ; Vehicle Speed threshold with AC compressor engaged above whichFan1 output can be turned off. ; MPH FAN_CONTROL_KE_VEHICLE_SPEED_LOW_AC_FAN1_THR:dc.w $F00 ; DATA XREF: sub_2E726+5Er ; Vehicle Speed threshold with AC compressor engaged below which Fan1 output is forced ON. ; MPH FAN_CONTROL_KE_MIN_RPM_TO_DETECT_FANLOCKUP:dc.w 0 ; DATA XREF: sub_2EBD6+38r ; Minimum engine speed required to detect fan lockup. ; RPM FAN_CONTROL_KE_MINIMUM_FAN1_ON_TIME:dc.w $1F40 ; DATA XREF: sub_2E726+11Ar ; Minimum amount of time that Fan1 is disabled after the output is turned off. ; Seconds FAN_CONTROL_KE_MINIMUM_FAN1_OFF_TIME:dc.w $A0 ; DATA XREF: sub_2E726:loc_2E7DCr ; ; Seconds FAN_CONTROL_KE_FAN1_DELAY_OFF_AFTER_FAN2_TUR:dc.w $A0 ; DATA XREF: sub_2E726+104r ; Time to delay turning off Fan1 after Fan2 has been turned off. ; Seconds FAN_CONTROL_KE_FAN2_ON_DELAY_TIME:dc.w $A0 ; DATA XREF: sub_2E726+15Er ; Amount of time after fan1 output has been enabled, before fan2 output can be enabled. ; Seconds FAN_CONTROL_KE_AC_PRESSURE_FAN2_HIGH_THRESHO:dc.w $51A ; DATA XREF: sub_2E726:loc_2E8A0r ; Fan2 output can be disabled if AC Pressure is above this threshold. ; PSI FAN_CONTROL_KE_AC_PRESSURE_FAN2_LOW_THRESHOL:dc.w $466 ; DATA XREF: sub_2E726+16Cr ; Fan2 output can be disabled if AC Pressure is below this threshold. ; PSI FAN_CONTROL_KE_ECT_FAN2_HIGH_THRESHOLD:dc.w $B4D ; DATA XREF: sub_2E726+180r ; Enable the fan2 output if Coolant Temperature is above thisthreshold. ; Degrees C FAN_CONTROL_KE_ECT_FAN2_LOW_THRESHOLD:dc.w $ADA ; DATA XREF: sub_2E71Er ; sub_2E726+172r ; Fan2 output can be disabled if Coolant Temperature is belowthis threshold. ; Degrees_C FAN_CONTROL_KE_MINIMUM_FAN2_ON_TIME:dc.w $1040 ; DATA XREF: sub_2E726+1D2r ; Minimum amount of time that Fan2 is enabled once it is turned on. ; Seconds FAN_CONTROL_KE_FAN1_TURN_ON_DELAY:dc.w $A0 ; DATA XREF: sub_2E726+22Ar ; OS1:0002F1B4r ... ; Delay the off to on transition of the Fan1 output, for this amount of time. ; Seconds FAN_CONTROL_KE_FAN1_TURN_OFF_DELAY:dc.w $A0 ; DATA XREF: sub_2E726+1F6r ; Delay the on to off transition of the Fan1 output, for this amount of time. ; Seconds FAN_CONTROL_KE_FAN2_TURN_ON_DELAY:dc.w $40 ; DATA XREF: sub_2E726+26Ar ; OS1:0002F1BCr ... ; Delay the off to on transition of the Fan2 output, for this amount of time. ; Seconds FAN_CONTROL_KE_FAN2_TURN_OFF_DELAY:dc.w $60 ; DATA XREF: sub_2E726+24Cr ; Delay the on to off transition of the Fan2 output, for this amount of time. ; Seconds FAN_CONTROL_KE_FAN1_ON_KEYOFF_TIME:dc.w $A0 ; DATA XREF: OS1:loc_2F1ACr ; OS1:0002F1D6r ... ; Amount of time to keep the fan on after the ignition key is turned off for fan runon. ; Seconds FAN_CONTROL_KE_AC_PRESSUREHIGH:dc.w 0 ; DATA XREF: sub_2EBD6:loc_2EE00r ; sub_2EBD6+408r ; A thershold of the AC High-side pressure below which a reduction in PCT_Fan_Command is Allowed due to WOT conditions. ; PSI FAN_CONTROL_KE_COOLANTTEMPOVERRIDE:dc.w $B80 ; DATA XREF: sub_2EBD6+1FEr FAN_CONTROL_KE_FANFAILSPEEDRPM:dc.w 0 ; DATA XREF: sub_2EBD6+44r ; Defines the engine speed at which the rotational forces may lead to structural failure for engine driven cooling fans. ; RPM FAN_CONTROL_KE_FANLOCKUPTIME:dc.w 0 ; DATA XREF: sub_2EBD6+5Ar ; If fan speed is above KE_FanFailSpeedRPM for this amount of time, fan is locked up. ; Seconds FAN_CONTROL_KE_FANSPEED_INCR_RATE_LIMIT:dc.w 0 ; DATA XREF: sub_2EBD6+49Ar ; sub_2EBD6+4A8r ; The maximum rate of increase of Fan Speed Desired. ; RPM FAN_CONTROL_KE_FANSPEED_DECR_RATE_LIMIT:dc.w 0 ; DATA XREF: sub_2EBD6+4C4r ; sub_2EBD6+4D2r ; The maximum rate of decrease of Fan Speed Desired. ; RPM FAN_CONTROL_KE_FANSPEEDLOW:dc.w 0 ; DATA XREF: sub_2EBD6+5AEr ; Defines the min fan speed threshold to prevent fan speed from dropping too low. ; RPM FAN_CONTROL_KE_LOWSPEEDPWM:dc.w 0 ; DATA XREF: sub_2EBD6+5B6r ; This value is commanded for fan speed when the fan speed drops too low. ; Percent FAN_CONTROL_KE_FANPWRUPDELAY:dc.w 0 ; DATA XREF: sub_2EBD6+20r ; Amount of time to delay operating the fans on engine power up for engine idle stabilization. ; Seconds FAN_CONTROL_KE_FANRPM_MAX:dc.w 0 ; DATA XREF: sub_2EBD6:loc_2F01Ar ; Max possible speed of the fan blades which corresponding to max available fan power. ; RPM FAN_CONTROL_KE_FANRPM_OFFSET:dc.w 0 ; DATA XREF: sub_2EBD6+44Ar ; sub_2EBD6+46Ar ; Min possible speed of the fan blades which corresponding to 0% fan power. ; RPM FAN_CONTROL_KE_MAXVEHICLESPEED:dc.w 0 ; DATA XREF: sub_2EBD6+232r ; sub_2EBD6+24Cr ; Maximum speed the vehicle is capable of. ; kPH FAN_CONTROL_KE_MAXFANPWMGRADIENTNEG:dc.w 0 ; DATA XREF: sub_2EBD6+37Ar ; Maximum allowed rate of change in the decreasing direction. ; Percent/Second FAN_CONTROL_KE_MAXFANPWMGRADIENTPOS:dc.w 0 ; DATA XREF: sub_2EBD6+380r ; Maximum allowed rate of change in the increasing direction. ; Percent/Second FAN_CONTROL_KE_MAXFANSPWMGRADIENTNEG:dc.w 0 ; DATA XREF: sub_2EBD6+368r ; Maximum allowed rate of change in the decreasing direction when fan is operating in the slip power mode. ; Percent/Second FAN_CONTROL_KE_MAXFANSPWMGRADIENTPOS:dc.w 0 ; DATA XREF: sub_2EBD6+36Er ; Maximum allowed rate of change in the increasing direction when fan is operating in the slip power mode. ; Percent/Second FAN_CONTROL_KE_SERVICEOVERRIDEALLOWED:dc.w 0 ; DATA XREF: sub_2EBD6+2AAr ; Threshold in percentage of fan power below which a Service tool is allowed control fans. ; Percent FAN_CONTROL_KE_SLIP_ECT_MAXHI:dc.w 0 ; DATA XREF: sub_2EBD6:loc_2EEC0r ; Threshold for engine coolant temperature above which slippower management is not allowed. ; Degrees C FAN_CONTROL_KE_SLIP_ECT_MAXLO:dc.w 0 ; DATA XREF: sub_2EBD6+2DAr ; Threshold for engine coolant temperature below which slippower management is allowed. ; Degrees C FAN_CONTROL_KE_SLIP_PCT_FANHI:dc.w 0 ; DATA XREF: sub_2EBD6+34Ar ; Percentage of fan power that PCt_Fan_Cmd_Modifier_Due_FanSlip is set to when fan drive speed is <= KE_SlipFanDriveHi. ; Percent FAN_CONTROL_KE_SLIPFANDRIVEHI:dc.w 0 ; DATA XREF: sub_2EBD6+342r ; Defines Fan Drive Speed above which the Pct_Fan_Command is set to KE_SlipPct_FanLo and below which set to KE_SlipPct_FanHi. ; RPM FAN_CONTROL_KE_SLIPFANDRIVELO:dc.w 0 ; DATA XREF: sub_2EBD6+32Er ; Defines Fan Drive Speed below which modifications to Pct_Fan_Command for slip power management is required. ; RPM FAN_CONTROL_KE_TEMPTRANSOILHI:dc.w $DFF ; DATA XREF: sub_2EBD6+212r ; sub_2EBD6+3FCr FAN_CONTROL_KE_TEMPENGINEOILHI:dc.w $DFF ; DATA XREF: sub_2EBD6+21Er ; High threshold above which 100% required fan speed based on Engine Oil Temperature. ; Degrees C FAN_CONTROL_KE_VEHICLESPDFANADJUSTLO:dc.w 0 ; DATA XREF: sub_2EBD6:loc_2EDB2r ; Threshold for vehicle speed below which, no fan speed adjustment due to vehicle speed is allowed. ; kPH FAN_CONTROL_KE_VEHICLESPDFANADJUSTHI:dc.w 0 ; DATA XREF: sub_2EBD6:loc_2EDC2r ; Threshold for vehicle speed above which, no fan speed adjustment due to vehicle speed is allowed. ; kPH FAN_CONTROL_KE_WATER_PUMP_PULLEY_RATIO:dc.w 0 ; DATA XREF: sub_2EBD6+78r ; Pulley ratio of the accessory drive that is driving the fan. ; Multiplier_0_to_16 FAN_CONTROL_KE_WOT_COOLANTTEMP:dc.w $FC00 ; DATA XREF: sub_2EBD6+3E8r ; Threshold of the engine coolant temperature below which a reduction in Pct_Fan_Command is allowed due to Wide Open Throttle. ; Degrees C FAN_CONTROL_KE_WOT_FANSPEEDLIMIT:dc.w $1400 ; DATA XREF: sub_2EBD6+3E0r ; Threshold of the throttle position sensor above which the reduction in Pct_Fan_Command is required due to Wide Open Throttle. ; Percent FAN_CONTROL_KE_WOT_MAXDISABLE:dc.w 0 ; DATA XREF: sub_2EBD6+438r ; The maximum amount of time that Pct_Fan_Command is set to KE_WOT_Pct_Fan due to Wide Open Throttle condition. ; Seconds FAN_CONTROL_KE_WOT_PCT_FAN:dc.w $1400 ; DATA XREF: sub_2EBD6+416r ; Percentage of fan power that is assigned to Pct_Fan_Command when Wide Open Throttle condition exists. ; Percent FAN_CONTROL_KV_AC_PCT_FANREQ:dc.b 0 ; DATA XREF: sub_2EBD6:loc_2ECD2o ; Percentage of fan power required for corresponding AC High-side pressure. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FAN_CONTROL_KV_ECT_PCT_FANREQ:dc.b 0 ; DATA XREF: sub_2EBD6:loc_2EC8Eo ; The percentage of fan power required for corresponding engine coolant temperature. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FAN_CONTROL_KV_MAXFAN_PCT_CMD:dc.w 0 ; DATA XREF: sub_2EBD6+326r ; Percentage of fan power required for cooresponding engine speed. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FAN_CONTROL_KV_TRANS_TEMP_PCT_FANREQ:dc.b 0 ; DATA XREF: sub_2EBD6:loc_2ED2Ao ; The percentage of fan power required for corresponding transmission oil temperature. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FAN_CONTROL_KV_ENG_OIL_TEMP_PCT_FANREQ:dc.b 0 ; DATA XREF: sub_2EBD6:loc_2ED6Ao ; The percentage of fan power required for corresponding engine oil temperature. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FAN_CONTROL_KA_DELTA:dc.b 0 ; DATA XREF: sub_2EBD6+580o ; Amount of adjustment to the PWM duty cycle required on the output driver due to fan speed feedback. ; Percent_S dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FAN_CONTROL_KA_PCT_PWM:dc.b 0 ; DATA XREF: sub_2EBD6+50Ao ; PWM duty cycle required on the output driver, prior to adjustment due to fan speed feedback. ; Percent dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 FUEL_PUMP_KE_FUEL_PUMP_PRIME_TIMER:dc.w $12C0 ; DATA XREF: sub_348C6+FAr RTD_KE_RTD_VEH_ACCEL_FILT_COEF_A1:dc.w $5B ; DATA XREF: sub_829FA+29Ar ; sub_829FA+4D0r ; Denomenator coefficient for the RTD VSS filter. ; RTD_Input_Type RTD_KE_RTD_VEH_ACCEL_FILT_COEF_A2:dc.w $1D ; DATA XREF: sub_829FA+2A6r ; sub_829FA+4DCr ; Denomenator coefficient for the RTD VSS filter. ; RTD_Input_Type RTD_KE_RTD_VEH_ACCEL_FILT_COEF_B0:dc.w $1338 ; DATA XREF: sub_829FA+278r ; sub_829FA+4AEr ; Numerator coefficient for the RTD VSS filter. ; RTD_Input_Type RTD_KE_RTD_VEH_ACCEL_FILT_COEF_B1:dc.w $2670 ; DATA XREF: sub_829FA+282r ; sub_829FA+4B8r ; Numerator coefficient for the RTD VSS filter. ; RTD_Input_Type RTD_KE_RTD_VEH_ACCEL_FILT_COEF_B2:dc.w $1338 ; DATA XREF: sub_829FA+28Cr ; sub_829FA+4C2r ; Numerator coefficient for the RTD VSS filter. ; RTD_Input_Type RTD_KE_RTD_VEH_ACCEL_LAGFILT_COEF_A1:dc.w $17 ; DATA XREF: sub_829FA+304r ; sub_829FA+53Ar ; Vehicle acceleration lag filter denomenator coefficient ; RTD_Input_Type RTD_KE_RTD_VEH_ACCEL_LAGFILT_COEF_A2:dc.w $A ; DATA XREF: sub_829FA+30Er ; sub_829FA+544r ; Vehicle acceleration lag filter denomenator coefficient ; RTD_Input_Type RTD_KE_RTD_VEH_ACCEL_LAGFILT_COEF_B0:dc.w 9 ; DATA XREF: sub_829FA+2E2r ; sub_829FA+518r ; Vehicle acceleration lag filter numerator coefficient ; RTD_Input_Type RTD_KE_RTD_VEH_ACCEL_LAGFILT_COEF_B1:dc.w $12 ; DATA XREF: sub_829FA+2ECr ; sub_829FA+522r ; Vehicle acceleration lag filter numerator coefficient ; RTD_Input_Type RTD_KE_RTD_VEH_ACCEL_LAGFILT_COEF_B2:dc.w 9 ; DATA XREF: sub_829FA+2F6r ; sub_829FA+52Cr ; Vehicle acceleration lag filter numerator coefficient ; RTD_Input_Type RTD_KE_RTD_VEH_ACCEL_FILT_DIVISOR:dc.w $40 ; DATA XREF: sub_829FA:loc_82C68r ; sub_829FA:loc_82E9Er ; Divisor for the RTD Veh Accel Differiator filter ; RTD_Input_Type RTD_KE_RTD_VEH_ACCEL_LAG_FILT_DIVISO:dc.w $11 ; DATA XREF: sub_829FA+2D8r ; sub_829FA+50Er ; Divisor for the RTD Veh Accel Lag filter ; RTD_Input_Type RTD_KE_RTD_VEH_ACCEL_BRAKING_DECEL:dc.w $1F40 ; DATA XREF: sub_829FA:loc_82DCCr ; sub_829FA:loc_83002r ; Lift/Dive Braking Decel Threshold ; RTD_Filter_Type RTD_KE_RTD_VEH_ACCEL_BRAKING_ACCEL:dc.w $36B0 ; DATA XREF: sub_829FA+3E4r ; sub_829FA+61Ar ; Lift/Dive Braking Accel Threshold ; RTD_Filter_Type RTD_KE_RTD_THROT_BRAKING_ACCEL:dc.w $200 ; DATA XREF: sub_829FA+3F0r ; sub_829FA+626r ; Throttle threshold below which braking release function is enabled. ; Percent RTD_KE_RTD_BRAKING_INPUT_HOLD_TIME:dc.w $140 ; DATA XREF: sub_829FA:loc_83042r ; RTD_Braking_Lift_Dive is updated only during this period of time after brakepedal was last applied. ; Seconds RTD_KE_RTD_VSS_BRAKING_ENABLE:dc.w $280 ; DATA XREF: sub_829FA+346r ; sub_829FA+57Cr ; Speed below which RTD Brake Transition Function is disabled ; MPH RTD_KE_RTD_ROUGH_RD_VSS_FILT_DISABLE:dc.b $B3 ; DATA XREF: sub_829FA+35Cr ; sub_829FA+592r ; Throttle Rate filter denomenator coefficient ; Gs dc.b $FF RTD_KE_RTD_VEH_SPEED_CLUTCH_DUMP:dc.w $280 ; DATA XREF: sub_829FA+426r ; Speed below which clutch dump Lift/Dive Function is enabled ; MPH RTD_KE_RTD_DESIRED_THROT_CLUTCH_DUMP:dc.w $200 ; DATA XREF: sub_829FA+432r ; Throttle above which clutch dump Lift/Dive Function is enabled ; Percent RTD_KE_RTD_ENGINE_SPEED_CLUTCH_DUMP:dc.w $2800 ; DATA XREF: sub_829FA+43Er ; Engine Speed above which clutch dump Lift/Dive Function is enabled ; RPM RTD_KE_RTD_LIFT_DIVE_ACTIVE_TIME:dc.b $14 ; DATA XREF: sub_829FA:loc_830BEr ; sub_829FA:loc_83106r ; The amount of time that the Lift Dive signal is to be active when a suspension load change has been detected. ; Seconds RTD_KE_RTD_LIFT_DIVE_TEST_TIME:dc.b $C8 ; DATA XREF: sub_829FA+69Er ; sub_829FA+6D8r RTD_KV_RTD_POS_DELTA_TORQUE_LIM:dc.w $2710 ; DATA XREF: sub_829FA:loc_82A78r ; Positive Delta Torque Threshold as a function of Engine_Speed to trip Lift/Dive Command Calibration. ; Engine_Spd_Int_Gain_Type dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 RTD_KV_RTD_NEG_DELTA_TORQUE_LIM:dc.w $2710 ; DATA XREF: sub_829FA:loc_82AA8r ; Negitive Delta Torque Threshold as a function of Engine_Speed to trip Lift/Dive Command Calibration. ; Engine_Spd_Int_Gain_Type dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 dc.b $27 ; ' dc.b $10 RTD_KV_RTD_DELTA_TORQUE_GEAR_MULT:dc.w $E8F ; DATA XREF: sub_829FA+58r ; Factor to multiply Delta Torque to reduce the engine power output expected at the rear axle for higher transmission gears. ; Engine_Spd_Int_Gain_Type dc.b 9 dc.b $BE ; ? dc.b 7 dc.b $1F dc.b 5 dc.b $79 ; y dc.b 4 dc.b $C dc.b 2 dc.b $C1 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $F dc.b $DB ; ? RTD_KE_RTD_MTRAN_GEAR_UPDATE_DELAY:dc.b $50 ; DATA XREF: sub_829FA+4Ar ; OS4:000831AAr dc.b $FF RTD_KV_RTD_2TO1_DOWNSHIFT_THROT_LIM:dc.w $E00 ; DATA XREF: sub_829FA:loc_82B3Er ; Commanded engine power output table for a 2 to 1 downshift. ; Engine_Spd_Int_Gain_Type dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 RTD_KV_RTD_3TO2_DOWNSHIFT_THROT_LIM:dc.w $1200 ; DATA XREF: sub_829FA:loc_82B6Ar ; Commanded engine power output table for a 3 to 2 downshift. ; Engine_Spd_Int_Gain_Type dc.b $12 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 RTD_KV_RTD_3TO1_DOWNSHIFT_THROT_LIM:dc.w $E00 ; DATA XREF: sub_829FA:loc_82B94r ; Commanded engine power output table for a 3 to 1 downshift. ; Engine_Spd_Int_Gain_Type dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 dc.b $E dc.b 0 RTD_KV_RTD_4TO2_DOWNSHIFT_THROT_LIM:dc.w $1000 ; DATA XREF: sub_829FA:loc_82BBEr ; Commanded engine power output table for a 4 to 2 downshift. ; Engine_Spd_Int_Gain_Type dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $10 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 dc.b $12 dc.b 0 RTD_KV_RTD_4TO1_DOWNSHIFT_THROT_LIM:dc.w $600 ; DATA XREF: sub_829FA:loc_82BE8r ; Commanded engine power output table for a 4 to 1 downshift. ; Engine_Spd_Int_Gain_Type dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 dc.b 6 dc.b 0 RTD_KE_RTD_DELTA_TORQUE_COEF_B0:dc.w $50 ; DATA XREF: sub_82954+50r ; Numerator coefficient for the RTD Delta Torque Calculation ; RTD_Input_Type RTD_KE_RTD_DELTA_TORQUE_COEF_B2:dc.w $50 ; DATA XREF: sub_82954+56r ; Numerator coefficient for the RTD Delta Torque Calculation ; RTD_Input_Type RTD_KE_RTD_DELTA_TORQUE_COEF_A1:dc.w $25 ; DATA XREF: sub_82954+64r ; Denomenator coefficient for the RTD Delta Torque Calculation ; RTD_Input_Type RTD_KE_RTD_DELTA_TORQUE_COEF_A2:dc.w $A ; DATA XREF: sub_82954+6Er ; Denomenator coefficient for the RTD Delta Torque Calculation ; RTD_Input_Type RTD_KE_RTD_DELTA_TORQUE_DIVISOR:dc.w $20 ; DATA XREF: sub_82954:loc_8299Ar ; Divisor for the RTD Delta Torque Calculation ; RTD_Input_Type VTD_KE_VTD_DIAG_ENABLED:dc.b 1 ; DATA XREF: sub_84AB0+132r ; sub_84AB0+244r ... ; TRUE indicates the diagnostic is enabled and VTD failure is reported via Class 2. ; BOOLEAN byte_1FE81: dc.b 1 ; DATA XREF: sub_8515E:loc_851B0r byte_1FE82: dc.b 1 ; DATA XREF: sub_84AB0+2E4r ; sub_8515E:loc_851F2r VTD_KE_VTD_BAD_PASSWORD:dc.b 3 ; DATA XREF: sub_84AB0+272r ; sub_84AB0+2EEr ... ; Threshold to compare against the Bad Password Counter during certain decision states. ; SHORTCARD VTD_KE_VTD_LEARNED_ENOUGH:dc.b 3 ; DATA XREF: sub_84AB0+1CAr ; sub_84AB0+486r ; Threshold to compare against the Auto Learn Counter during Auto-Learn state. ; SHORTCARD VTD_KE_VTD_LEARNED_PASSWORD:dc.b 3 ; DATA XREF: sub_84AB0+50Ar ; Threshold to compare against the Identical Password Counter during Learn Password state. ; SHORTCARD VTD_KE_VTD_DISABLE_TIME:dc.w $280 ; DATA XREF: sub_84AB0+84r ; sub_84AB0+336r ... ; Expiration time for the Fuel Disable Timer duringFuel Disable Lockout state. ; Seconds VTD_KE_VTD_AUTO_LEARN:dc.l unk_17700 ; DATA XREF: sub_84AB0+458r ; Expiration time for the Auto Learn Timer duringAuto-Learn Pending state. ; Seconds_L VTD_KE_VTD_C2_INIT:dc.w $F0 ; DATA XREF: sub_84AB0+108r ; Expiration time for the PCM C2 Init Timer duringIgnition 1 Off and Powerup Transitions. ; Seconds VTD_KE_VTD_C2_AUTO_LEARN:dc.l unk_17700 ; DATA XREF: sub_84AB0+42Ar ; Expiration time for the C2 Auto Learn Timer duringAuto-Learn and Auto-Learn Pending states. ; Seconds_L VTD_KE_VTD_TIME_TO_IGNITION_OFF:dc.w $A0 ; DATA XREF: sub_84AB0+10r ; sub_85342+38r ... ; The amount of time the ignition is off before the VTD logic performs powerdown state transitions. ; Seconds VTD_KE_VTDC2_NOT_AN_EXPORT_VEHICLE:dc.b 1 ; DATA XREF: sub_84AB0:loc_84E2Cr ; sub_84AB0+43Er ; Used to turn On/Off the VTD_Class2 auto learning function. ; BOOLEAN dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF SPD_CALIBRATIONS_HEADER:dc.b 5 ; DATA XREF: DoManyThings1+2AEo ; Use this cal to identify the Vehicle Speed calibration ; Cal_ID_Record dc.b $D4 ; ? dc.b 0 dc.b 8 Constant32_Speedometer_Calibration_ID:dc.b 0 ; DATA XREF: sub_269DE:loc_26A72o dc.b $BF ; ? dc.b $F1 ; ? dc.b $37 ; 7 CurveTable_2_Columns_Speedometer_Calibration_Level:dc.b $41 ; A ; DATA XREF: sub_269DE:loc_26B16o dc.b $45 ; E dc.b 0 dc.b 0 CurveTable_8_Columns_Speedometer_Calibration_ID_ASCII:dc.b '12579127',0 ; DATA XREF: sub_3F6FE+178o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 VEH_SPEED_KE_PULSES_PER_MILE:dc.w $1F07 ; DATA XREF: sub_84854:loc_8486Er ; Vehicle speed sensor scaling factor. ; Pulses/Mile VEH_SPEED_KE_USE_EEPROM_VSS_CALS:dc.b 0 ; DATA XREF: sub_24716:loc_2495Ar ; sub_84854+4r ; Determines whether to use the EEPROM based VSS cals or the Cal ROM VSS cals. ; BOOLEAN dc.b $FF VEH_SPEED_KE_PRIMARY_OUTPUT_PPM:dc.w $400 ; DATA XREF: sub_79A3E+40r ; Determines the PPM for the vehicle speed primary output. ; Pulses/Mile VEH_SPEED_KE_SECONDARY_OUTPUT_PPM:dc.w $8000 ; DATA XREF: sub_79A3E+22r ; Determines the PPM for the vehicle speed secondary output. ; Pulses/Mile VEH_SPEED_KE_VEH_SPEED_TIME:dc.w $12 ; DATA XREF: sub_848A8+74r ; If no vehicle speed pulses for this period of time, the vehicle is considered to be stationary. ; Seconds VEH_SPEED_KE_VEHICLE_SPEED_LIMIT:dc.w $7F80 ; DATA XREF: sub_21094+2r ; sub_21094+1DAr ... ; limit below which the ETC governor attempts to keep the vehicle speed ; MPH VEH_SPEED_KE_VSS_APPLICATION_TYPE:dc.b 1 ; DATA XREF: OS1:000288D8r ; DoManyThings1+86r dc.b $FF VEH_SPEED_KE_RTD_FAULT_ETC_GOV_MAX_SPEED:dc.w $27FF ; DATA XREF: sub_21094+14r ; sub_21094+3Er ... VEH_SPEED_KE_FINAL_DRIVE_RATIO:dc.w $36B8 ; DATA XREF: sub_24716:loc_2497Er ; Axle gear ratio for calibration application ; Multiplier_0_to_16 VEH_SPEED_KE_MAX_POSITIVE_MPH_CHANGE:dc.w $40 ; DATA XREF: sub_848A8+DEr ; sub_848A8+EAr ; The vehicle speed will not increase at a rate greater than this. ; MPH / Sec VEH_SPEED_KE_RTD_FAULT_MAX_SPEED:dc.w $2800 ; DATA XREF: sub_3068C+50r ; sub_3068C:loc_306E8r ... ; Maximum vehicle speed when an RTD fault is sent to the PCM by the RTD system. ; MPH VEH_SPEED_KE_VEHICLE_OVERSPEED_TIME:dc.w 4 ; DATA XREF: sub_3068C+A4r ; For a non ETC vehicle, time that vehicle speed must be over the max. limit before cutting off fuel. ; Seconds VEH_SPEED_KE_VEHICLE_OVERSPEED:dc.w $7F80 ; DATA XREF: sub_3068C:loc_3072Ar VEH_SPEED_KE_VEHICLE_OVERSPEED_TIME_ETC:dc.w $FFFF ; DATA XREF: sub_3068C+96r ; For an ETC vehicle, time that vehicle speed must be over the max. limit before cutting off fuel. ; Seconds VEH_SPEED_KE_VEHICLE_OVERSPEED_ETC:dc.w $7FFF ; DATA XREF: sub_3068C+90r VEH_SPEED_KE_VEHICLE_OVERSPEED_HYSTERESIS:dc.w $80 ; DATA XREF: sub_3068C+62r ; sub_3068C+C0r ; Hysteresis applied to vehicle speed at which fuel cutoff occurs. ; MPH VEH_SPEED_KE_C2_VEH_SPEED_DEFAULT_ENABLED:dc.b 0 ; DATA XREF: sub_848A8+10Er ; sub_848A8+152r ; Enable setting vehicle speed to a valid class 2 wheel speedwhen a fault in the vehicle speed group is active ; BOOLEAN dc.b $FF VEH_SPEED_KE_VEH_SPEED_FILTER:dc.w $3800 ; DATA XREF: sub_848A8+134r ; Vehicle speed filter coefficient used in the first order lag filter applied to the raw vehicle speed value. ; Seconds VEH_SPEED_KE_LOW_AXLE_SPEED_ADJUST:dc.w $1000 ; DATA XREF: sub_84854+4Ar ; Vehicle speed multiplier when Dual_Axle is Low. Note: Range from (0.1228 .. < 2.0)! ; Multiplier_0_to_2 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_1FFDF: dc.b $FF ; DATA XREF: Boot:off_1EC0o ; Calibration:DG_CASE_KE_CASE_FACTOR_SUM_MINo dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_1FFFE: dc.b $4A ; J ; DATA XREF: sub_E32:loc_E42r ; end of 'Calibration' dc.b $FC ; ? ; =========================================================================== ; Segment type: Regular ; segment "OS1" ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_20000: ; CODE XREF: sub_21930+8p ; DATA XREF: Calibration:XSHFT_ADAPT_KE_2_3_DETENT_ADAPT_ERRORo ... var_2 = -2 link a6,#-2 loc_20004: ; DATA XREF: Calibration:000120CAo ; Calibration:000120DEo ... movem.l d0-d1,-(sp) move.b (byte_FFFFA593).w,var_2(a6) move.b var_2(a6),d3 moveq #7,d1 and.b d1,d3 and.b d1,d3 andi.b #$F8,(byte_FFFFA33C).w loc_2001E: ; DATA XREF: Calibration:DG_CASE_KE_CASE_FACTOR_SUM_MAXo or.b d3,(byte_FFFFA33C).w move.b (byte_FFFFA592).w,var_2(a6) move.b var_2(a6),d3 and.b d1,d3 and.b d1,d3 andi.b #$F8,(byte_FFFFA33D).w or.b d3,(byte_FFFFA33D).w move.b (byte_FFFFA33D).w,d3 and.b d1,d3 move.b (byte_FFFFA33C).w,d0 and.b d1,d0 asl.b #3,d0 add.b d3,d0 andi.w #$FF,d0 move.b ETC_DIAG_KA_PEDAL_STATUS_DECODE(d0.w),d3 ; Pedal sensor vrs pedal sensor faults conversion constants. DISAGREE 0=1-2 1=1-3 2=2-3 X RANGE 0=PPS1, 1=PPS2, 2=PPS3 ; Pedal_Status_Table_Type cmp.b (byte_FFFFA2FE).w,d3 bls.s loc_20070 move.b d3,(byte_FFFFA2FE).w tst.b (byte_FFFFA34F).w bne.s loc_20070 move.w #$B0,d0 ; '?' jsr sub_5F110 loc_20070: ; CODE XREF: sub_20000+5Aj ; sub_20000+64j tst.b (byte_FFFFA2FE).w beq.s loc_2007C move.b #1,(byte_FFFFA34F).w loc_2007C: ; CODE XREF: sub_20000+74j move.b #1,(byte_FFFFA350).w movem.l (sp)+,d0-d1 unlk a6 rts ; End of function sub_20000 ; =============== S U B R O U T I N E ======================================= sub_2008A: ; CODE XREF: sub_2340C+C64p jsr sub_200DE clr.b (byte_FFFFA33B).w btst #3,(byte_FFFFA592).w beq.s loc_200A2 bset #0,(byte_FFFFA33B).w loc_200A2: ; CODE XREF: sub_2008A+10j btst #4,(byte_FFFFA592).w beq.s loc_200B0 bset #1,(byte_FFFFA33B).w loc_200B0: ; CODE XREF: sub_2008A+1Ej btst #3,(byte_FFFFA593).w beq.s loc_200BE bset #2,(byte_FFFFA33B).w loc_200BE: ; CODE XREF: sub_2008A+2Cj clr.w d3 move.b (byte_FFFFA33B).w,d3 move.b ETC_DIAG_KV_THROTTLE_STATUS_DECODE(d3.w),d3 ; Throttle status as a function of throttle related diagnostic flags0=TPS1 range 1=TPS2 Range 2=TPS Disagree ; Throttle_Status_Table_Type cmp.b (byte_FFFFA2FF).w,d3 bls.s loc_200D6 move.b d3,(byte_FFFFA2FF).w loc_200D6: ; CODE XREF: sub_2008A+46j jsr sub_20B50 rts ; End of function sub_2008A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_200DE: ; CODE XREF: sub_2008Ap var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a0,-(sp) move.w (ETC_DIAG_KE_MIN_MAF_VALID_TIME).l,d0 ; Time that ignition voltage must be present for the MAF sensorheating element to warm up. ; Seconds movea.l #unk_FFA338,a0 jsr sub_276D4 tst.b d0 beq.s loc_20104 bset #6,(byte_FFFFA34C).w bra.s loc_2010A ; --------------------------------------------------------------------------- loc_20104: ; CODE XREF: sub_200DE+1Cj bclr #6,(byte_FFFFA34C).w loc_2010A: ; CODE XREF: sub_200DE+24j move.b (byte_FFFFA59C).w,d3 tst.b (byte_FFFFA59D).w beq.s loc_2011A btst #6,d3 beq.s loc_20124 loc_2011A: ; CODE XREF: sub_200DE+34j move.w (ETC_DIAG_KE_DEFAULT_THROTTLE_POSITION).l,var_2(a6) ; Throttle position to use when ETC link not awake or UART fault for estimating engine airflow. ; Percent_Rotation bra.s loc_2012A ; --------------------------------------------------------------------------- loc_20124: ; CODE XREF: sub_200DE+3Aj move.w (word_FFFFA598).w,var_2(a6) loc_2012A: ; CODE XREF: sub_200DE+44j cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_202A6 move.w var_2(a6),d4 move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$A000,d3 bcc.s loc_2014E andi.l #$FFFF,d3 divu.w #$A,d3 bra.s loc_20152 ; --------------------------------------------------------------------------- loc_2014E: ; CODE XREF: sub_200DE+62j move.w #$1000,d3 loc_20152: ; CODE XREF: sub_200DE+6Ej asl.w #2,d4 andi.l #$FFFF,d4 divu.w #5,d4 moveq #$11,d2 move.l d3,d1 move.l d4,d0 movea.l #ETC_DIAG_KA_SATP_AIRFLOW,a0 ; Predicted airflow at standard pressure and temp based on currentEngine speed and commanded throttle position. ; mGPC_Vs_RPM_And_Rotation_Table jsr sub_2696E move.w d0,(word_FFFFA32C).w btst #4,(byte_FFFF8253).w bne.s loc_2019A move.w (word_FFFF82D2).w,d3 clr.w d4 cmpi.w #$C00,d3 bcc.s loc_2018C move.l d4,d3 bra.s loc_2019E ; --------------------------------------------------------------------------- loc_2018C: ; CODE XREF: sub_200DE+A8j cmpi.w #$1400,d3 bcc.s loc_2019A lsr.w #1,d3 subi.w #$600,d3 bra.s loc_2019E ; --------------------------------------------------------------------------- loc_2019A: ; CODE XREF: sub_200DE+9Cj ; sub_200DE+B2j move.w #$400,d3 loc_2019E: ; CODE XREF: sub_200DE+ACj ; sub_200DE+BAj movea.l #ETC_DIAG_KV_BARO_CORR_FACTOR,a2 ; Lookup for a correction factor for barometric pressure. ; Scaler_0to2_Vs_kPa_Table tblu.b (a2),d3 move.b d3,(byte_FFFFA33E).w move.w (word_FFFFB3E8).w,d3 addi.w #$400,d3 movea.l #ETC_DIAG_KV_INDUCTION_TEMP_CORR_FACTOR,a2 ; Lookup for a correction factor for induction air temperature. ; Scaler_0to2_Vs_Degrees_C_Table tblu.b (a2),d3 move.b d3,(byte_FFFFA33F).w clr.w d3 move.b (byte_FFFFA33E).w,d3 mulu.w (word_FFFFA32C).w,d3 move.w #$80,d4 ; '?' divu.w d4,d3 bvc.s loc_201D8 move.w #$FFFF,d3 loc_201D8: ; CODE XREF: sub_200DE+F4j clr.w d7 move.b (byte_FFFFA33F).w,d7 mulu.w d3,d7 divu.w d4,d7 bvc.s loc_201E8 move.w #$FFFF,d7 loc_201E8: ; CODE XREF: sub_200DE+104j move.w d7,(word_FFFFA32E).w move.w var_2(a6),d0 move.w (EngineRPM_PID_000C___).w,d1 cmpi.w #$A000,d1 bcc.s loc_20206 andi.l #$FFFF,d1 divu.w #$A,d1 bra.s loc_2020A ; --------------------------------------------------------------------------- loc_20206: ; CODE XREF: sub_200DE+11Aj move.w #$1000,d1 loc_2020A: ; CODE XREF: sub_200DE+126j lsr.w #1,d0 moveq #$B,d2 movea.l #ETC_DIAG_KA_ETC_AIR_B0_FILT_COEF,a0 ; MAP based airflow diagnostic B0 filter time constant in msecs. ; Milliseconds jsr sub_2696E move.w d0,d6 move.w (word_FFFFA32E).w,d3 add.w (word_FFFFA330).w,d3 bcc.s loc_2022A move.w #$FFFF,d3 loc_2022A: ; CODE XREF: sub_200DE+146j mulu.w d3,d6 lsr.l #8,d6 lsr.l #3,d6 clr.l d4 move.w (word_FFFFA332).w,d4 move.l d4,-(sp) move.w var_2(a6),d0 move.w (EngineRPM_PID_000C___).w,d1 cmpi.w #$A000,d1 bcc.s loc_20252 andi.l #$FFFF,d1 divu.w #$A,d1 bra.s loc_20256 ; --------------------------------------------------------------------------- loc_20252: ; CODE XREF: sub_200DE+166j move.w #$1000,d1 loc_20256: ; CODE XREF: sub_200DE+172j lsr.w #1,d0 moveq #$B,d2 movea.l #ETC_DIAG_KA_ETC_AIR_A0_FILT_COEF,a0 ; MAP based airflow diagnostic A0 filter time constant in msecs. ; Milliseconds jsr SurfaceTableLookup move.w d0,d3 ext.l d3 muls.l (sp)+,d3 bpl.s loc_20276 addi.l #$7FF,d3 loc_20276: ; CODE XREF: sub_200DE+190j asr.l #8,d3 asr.l #3,d3 andi.l #$FFFF,d6 sub.l d3,d6 bvc.s loc_20288 bmi.s loc_20294 bra.s loc_2029A ; --------------------------------------------------------------------------- loc_20288: ; CODE XREF: sub_200DE+1A4j tst.l d6 blt.s loc_2029A cmpi.l #$FFFF,d6 bls.s loc_2029C loc_20294: ; CODE XREF: sub_200DE+1A6j move.w #$FFFF,d6 bra.s loc_2029C ; --------------------------------------------------------------------------- loc_2029A: ; CODE XREF: sub_200DE+1A8j ; sub_200DE+1ACj clr.w d6 loc_2029C: ; CODE XREF: sub_200DE+1B4j ; sub_200DE+1BAj move.w d6,(word_FFFFA332).w move.w d7,(word_FFFFA330).w bra.s loc_202CE ; --------------------------------------------------------------------------- loc_202A6: ; CODE XREF: sub_200DE+52j move.w (word_FFFFA0CC).w,d3 moveq #$7D,d7 ; '}' mulu.w d7,d3 moveq #$40,d2 ; '@' divu.w d2,d3 bvc.s loc_202B8 move.w #$FFFF,d3 loc_202B8: ; CODE XREF: sub_200DE+1D4j move.w d3,(word_FFFFA330).w move.w (word_FFFFA0CC).w,d3 mulu.w d7,d3 divu.w d2,d3 bvc.s loc_202CA move.w #$FFFF,d3 loc_202CA: ; CODE XREF: sub_200DE+1E6j move.w d3,(word_FFFFA332).w loc_202CE: ; CODE XREF: sub_200DE+1C6j cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_203FA move.w (EngineRPM_PID_000C___).w,d1 cmp.w (ETC_DIAG_KE_MIN_MAF_VALID_RPM).l,d1 ; Lowest engine speed at which behavior of the MAF sensor is deemedaccurate. ; RPM bls.w loc_203FA btst #6,(byte_FFFFA34C).w beq.w loc_203FA move.w (EngineRPM_PID_000C___).w,d1 move.w d1,d3 move.w #$A000,d6 cmp.w d3,d6 bls.s loc_2030A andi.l #$FFFF,d3 moveq #$A,d2 divu.w d2,d3 bra.s loc_2030E ; --------------------------------------------------------------------------- loc_2030A: ; CODE XREF: sub_200DE+21Ej move.w #$1000,d3 loc_2030E: ; CODE XREF: sub_200DE+22Aj tblu.w (ETC_DIAG_KV_MAX_ETC_MAF_AIRFLOW).l,d3 ; Lookup to clamp the value of the MAF sensor based airflow usingengine speed as the index ; Milligrams_Per_Cylinder move.w d3,d4 move.w (word_FFFFA0CA).w,d3 moveq #$7D,d2 ; '}' mulu.w d2,d3 moveq #$40,d0 ; '@' divu.w d0,d3 bvc.s loc_2032A move.w #$FFFF,d3 loc_2032A: ; CODE XREF: sub_200DE+246j cmp.w d4,d3 bcc.s loc_20342 move.w (word_FFFFA0CA).w,d3 mulu.w d2,d3 divu.w d0,d3 bvc.s loc_2033C move.w #$FFFF,d3 loc_2033C: ; CODE XREF: sub_200DE+258j move.w d3,(word_FFFFA334).w bra.s loc_20346 ; --------------------------------------------------------------------------- loc_20342: ; CODE XREF: sub_200DE+24Ej move.w d4,(word_FFFFA334).w loc_20346: ; CODE XREF: sub_200DE+262j move.w var_2(a6),d0 cmp.w d1,d6 bls.s loc_2035A andi.l #$FFFF,d1 divu.w #$A,d1 bra.s loc_2035E ; --------------------------------------------------------------------------- loc_2035A: ; CODE XREF: sub_200DE+26Ej move.w #$1000,d1 loc_2035E: ; CODE XREF: sub_200DE+27Aj lsr.w #1,d0 moveq #$B,d2 movea.l #ETC_DIAG_KA_ETC_MAF_FILT_B0_COEF,a0 ; MAF based airflow diagnostic B0 filter time constant in msecs. ; Milliseconds jsr sub_2696E move.w d0,d6 move.w (word_FFFFA334).w,d3 add.w (word_FFFFA336).w,d3 bcc.s loc_2037E move.w #$FFFF,d3 loc_2037E: ; CODE XREF: sub_200DE+29Aj mulu.w d3,d6 lsr.l #8,d6 lsr.l #3,d6 clr.l d7 move.w (word_FFFFA2FC).w,d7 move.w var_2(a6),d0 move.w (EngineRPM_PID_000C___).w,d1 cmpi.w #$A000,d1 bcc.s loc_203A4 andi.l #$FFFF,d1 divu.w #$A,d1 bra.s loc_203A8 ; --------------------------------------------------------------------------- loc_203A4: ; CODE XREF: sub_200DE+2B8j move.w #$1000,d1 loc_203A8: ; CODE XREF: sub_200DE+2C4j lsr.w #1,d0 moveq #$B,d2 movea.l #ETC_DIAG_KA_ETC_MAF_FILT_A0_COEF,a0 ; MAF based airflow diagnostic A0 filter time constant in msecs. ; Milliseconds jsr SurfaceTableLookup move.w d0,d3 ext.l d3 muls.l d7,d3 bpl.s loc_203C8 addi.l #$7FF,d3 loc_203C8: ; CODE XREF: sub_200DE+2E2j asr.l #8,d3 asr.l #3,d3 andi.l #$FFFF,d6 sub.l d3,d6 bvc.s loc_203DA bmi.s loc_203E6 bra.s loc_203EC ; --------------------------------------------------------------------------- loc_203DA: ; CODE XREF: sub_200DE+2F6j tst.l d6 blt.s loc_203EC cmpi.l #$FFFF,d6 bls.s loc_203EE loc_203E6: ; CODE XREF: sub_200DE+2F8j move.w #$FFFF,d6 bra.s loc_203EE ; --------------------------------------------------------------------------- loc_203EC: ; CODE XREF: sub_200DE+2FAj ; sub_200DE+2FEj clr.w d6 loc_203EE: ; CODE XREF: sub_200DE+306j ; sub_200DE+30Cj move.w d6,(word_FFFFA2FC).w move.w (word_FFFFA334).w,(word_FFFFA336).w bra.s loc_20406 ; --------------------------------------------------------------------------- loc_203FA: ; CODE XREF: sub_200DE+1F6j ; sub_200DE+204j ... movea.w (word_FFFFA332).w,a2 move.w a2,(word_FFFFA2FC).w move.w a2,(word_FFFFA336).w loc_20406: ; CODE XREF: sub_200DE+31Aj move.b (ThrottleControlMode2?).w,d0 moveq #3,d1 cmp.b d0,d1 bne.w loc_204A6 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (ETC_DIAG_KE_MIN_MAF_VALID_RPM).l,d3 ; Lowest engine speed at which behavior of the MAF sensor is deemedaccurate. ; RPM bls.w loc_204A6 btst #6,(byte_FFFFA34C).w beq.s loc_204A6 clr.l d5 move.w (word_FFFFA332).w,d5 clr.l d3 move.w (word_FFFFA2FC).w,d3 sub.l d5,d3 move.l d3,(dword_FFFFA314).w clr.l d4 move.w (ETC_DIAG_KE_TPS_VS_MAF_ACTUATION_ERROR).l,d4 ; Limit for TPS Vs MAF airflow actuation error. ; Milligrams_Per_Cylinder cmp.l d3,d4 bge.s loc_20458 move.b (byte_FFFFA341).w,d4 add.b (ETC_DIAG_KE_TPS_VS_MAF_ACT_UP_COUNTER).l,d4 ; Amount to inc the airflow act error count when possible TPS vs MAF airflow actuation error ; SHORTCARD bcc.s loc_20466 move.b #$FF,d4 bra.s loc_20466 ; --------------------------------------------------------------------------- loc_20458: ; CODE XREF: sub_200DE+366j move.b (byte_FFFFA341).w,d4 sub.b (ETC_DIAG_KE_TPS_VS_MAF_ACT_DOWN_COUNTER).l,d4 ; Amount to dec the tps vs MAF airflow act error count when no actuation error ; SHORTCARD bcc.s loc_20466 clr.b d4 loc_20466: ; CODE XREF: sub_200DE+372j ; sub_200DE+378j ... move.b d4,(byte_FFFFA341).w cmp.b (ETC_DIAG_KE_TPS_VS_MAF_ERROR_COUNT_LIMIT).l,d4 ; Limit for TPS vs MAF accumulated airflow actuation errors. ; SHORTCARD bls.s loc_2047A bset #4,(byte_FFFFA34C).w bra.s loc_20480 ; --------------------------------------------------------------------------- loc_2047A: ; CODE XREF: sub_200DE+392j bclr #4,(byte_FFFFA34C).w loc_20480: ; CODE XREF: sub_200DE+39Aj cmp.b (byte_FFFFA342).w,d4 bls.s loc_2048A move.b d4,(byte_FFFFA342).w loc_2048A: ; CODE XREF: sub_200DE+3A6j tst.l d3 blt.s loc_2049A cmp.l (dword_FFFFA318).w,d3 ble.s loc_204AA move.l d3,(dword_FFFFA318).w bra.s loc_204AA ; --------------------------------------------------------------------------- loc_2049A: ; CODE XREF: sub_200DE+3AEj cmp.l (dword_FFFFA31C).w,d3 bge.s loc_204AA move.l d3,(dword_FFFFA31C).w bra.s loc_204AA ; --------------------------------------------------------------------------- loc_204A6: ; CODE XREF: sub_200DE+330j ; sub_200DE+33Ej ... clr.b (byte_FFFFA341).w loc_204AA: ; CODE XREF: sub_200DE+3B4j ; sub_200DE+3BAj ... cmp.b d0,d1 bne.w loc_20540 clr.l d0 move.w (word_FFFFA332).w,d0 move.w (word_FFFFA0CC).w,d3 mulu.w #$7D,d3 ; '}' divu.w #$40,d3 ; '@' bvc.s loc_204C8 move.w #$FFFF,d3 loc_204C8: ; CODE XREF: sub_200DE+3E4j andi.l #$FFFF,d3 sub.l d0,d3 move.l d3,(dword_FFFFA320).w clr.l d4 move.w (ETC_DIAG_KE_TPS_VS_MAP_ACTUATION_ERROR).l,d4 ; Limit for TPS Vs MAP airflow actuation error. ; Milligrams_Per_Cylinder cmp.l d3,d4 bge.s loc_204F2 move.b (byte_FFFFA343).w,d4 add.b (ETC_DIAG_KE_TPS_VS_MAP_ACT_UP_COUNTER).l,d4 ; Amount to inc the airflow act error count when possible TPS vs MAP airflow actuation error ; SHORTCARD bcc.s loc_20500 move.b #$FF,d4 bra.s loc_20500 ; --------------------------------------------------------------------------- loc_204F2: ; CODE XREF: sub_200DE+400j move.b (byte_FFFFA343).w,d4 sub.b (ETC_DIAG_KE_TPS_VS_MAP_ACT_DOWN_COUNTER).l,d4 ; Amount to dec the tps vs MAP airflow act error count when no actuation error ; SHORTCARD bcc.s loc_20500 clr.b d4 loc_20500: ; CODE XREF: sub_200DE+40Cj ; sub_200DE+412j ... move.b d4,(byte_FFFFA343).w cmp.b (ETC_DIAG_KE_TPS_VS_MAP_ERROR_COUNT_LIMIT).l,d4 ; Limit for TPS vs MAP accumulated airflow actuation errors. ; SHORTCARD bls.s loc_20514 bset #3,(byte_FFFFA34C).w bra.s loc_2051A ; --------------------------------------------------------------------------- loc_20514: ; CODE XREF: sub_200DE+42Cj bclr #3,(byte_FFFFA34C).w loc_2051A: ; CODE XREF: sub_200DE+434j cmp.b (byte_FFFFA344).w,d4 bls.s loc_20524 move.b d4,(byte_FFFFA344).w loc_20524: ; CODE XREF: sub_200DE+440j tst.l d3 blt.s loc_20534 cmp.l (dword_FFFFA324).w,d3 ble.s loc_20544 move.l d3,(dword_FFFFA324).w bra.s loc_20544 ; --------------------------------------------------------------------------- loc_20534: ; CODE XREF: sub_200DE+448j cmp.l (dword_FFFFA328).w,d3 bge.s loc_20544 move.l d3,(dword_FFFFA328).w bra.s loc_20544 ; --------------------------------------------------------------------------- loc_20540: ; CODE XREF: sub_200DE+3CEj clr.b (byte_FFFFA343).w loc_20544: ; CODE XREF: sub_200DE+44Ej ; sub_200DE+454j ... move.b (byte_FFFFA59C).w,d3 btst #3,(byte_FFFFA34C).w bne.s loc_20560 btst #4,(byte_FFFF8253).w bne.s loc_20560 cmpi.b #2,(byte_FFFFA2FF).w bne.s loc_20568 loc_20560: ; CODE XREF: sub_200DE+470j ; sub_200DE+478j bset #2,(byte_FFFFA34C).w bra.s loc_2056E ; --------------------------------------------------------------------------- loc_20568: ; CODE XREF: sub_200DE+480j bclr #2,(byte_FFFFA34C).w loc_2056E: ; CODE XREF: sub_200DE+488j btst #4,(byte_FFFFA34C).w bne.s loc_2058E btst #1,(byte_FFFF88C8).w bne.s loc_2058E btst #1,(byte_FFFF88CA).w bne.s loc_2058E cmpi.b #2,(byte_FFFFA2FF).w bne.s loc_20596 loc_2058E: ; CODE XREF: sub_200DE+496j ; sub_200DE+49Ej ... bset #1,(byte_FFFFA34C).w bra.s loc_2059C ; --------------------------------------------------------------------------- loc_20596: ; CODE XREF: sub_200DE+4AEj bclr #1,(byte_FFFFA34C).w loc_2059C: ; CODE XREF: sub_200DE+4B6j btst #4,(byte_FFFF8253).w bne.s loc_205BC btst #1,(byte_FFFF88C8).w bne.s loc_205BC btst #1,(byte_FFFF88CA).w bne.s loc_205BC btst #1,(byte_FFFF88C6).w beq.s loc_205C4 loc_205BC: ; CODE XREF: sub_200DE+4C4j ; sub_200DE+4CCj ... bset #0,(byte_FFFFA34C).w bra.s loc_205CA ; --------------------------------------------------------------------------- loc_205C4: ; CODE XREF: sub_200DE+4DCj bclr #0,(byte_FFFFA34C).w loc_205CA: ; CODE XREF: sub_200DE+4E4j btst #2,(byte_FFFFA34C).w beq.s loc_20604 btst #1,(byte_FFFFA34C).w beq.s loc_20604 btst #0,(byte_FFFFA34C).w bne.s loc_205F6 btst #0,(byte_FFFFA34C).w bne.s loc_20604 btst #2,d3 bne.s loc_20604 btst #6,d3 bne.s loc_20604 loc_205F6: ; CODE XREF: sub_200DE+502j move.b #1,(byte_FFFFA301).w moveq #2,d0 jsr sub_5F110 loc_20604: ; CODE XREF: sub_200DE+4F2j ; sub_200DE+4FAj ... cmp.b (ThrottleControlMode2?).w,d1 bne.s loc_20638 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (ETC_DIAG_KE_MIN_MAF_VALID_RPM).l,d3 ; Lowest engine speed at which behavior of the MAF sensor is deemedaccurate. ; RPM bls.s loc_20638 move.b (byte_FFFFA340).w,d3 cmp.b (ETC_DIAG_KE_AIRFLOW_ACTUATION_COUNT_LIMIT).l,d3 ; Number of times the airflow diagnostic must run before the testcomplete flag is set. ; SHORTCARD bcs.s loc_2062A bset #5,(byte_FFFFA34C).w bra.s loc_2063C ; --------------------------------------------------------------------------- loc_2062A: ; CODE XREF: sub_200DE+542j addq.b #1,d3 bcc.s loc_20632 move.b #$FF,d3 loc_20632: ; CODE XREF: sub_200DE+54Ej move.b d3,(byte_FFFFA340).w bra.s loc_2063C ; --------------------------------------------------------------------------- loc_20638: ; CODE XREF: sub_200DE+52Aj ; sub_200DE+536j clr.b (byte_FFFFA340).w loc_2063C: ; CODE XREF: sub_200DE+54Aj ; sub_200DE+558j movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_200DE ; =============== S U B R O U T I N E ======================================= sub_20644: ; CODE XREF: DoLoopG+1ACp move.l d0,-(sp) jsr sub_23314 tst.b (byte_FFFFA34E).w beq.s loc_20666 tst.b (byte_FFFFA300).w bne.s loc_20666 move.w #$E6,d0 ; '?' jsr sub_5F0BE clr.b (byte_FFFFA34E).w loc_20666: ; CODE XREF: sub_20644+Cj ; sub_20644+12j btst #5,(byte_FFFFA34C).w beq.s loc_20682 tst.b (byte_FFFFA301).w bne.s loc_20682 moveq #2,d0 jsr sub_5F0BE bclr #5,(byte_FFFFA34C).w loc_20682: ; CODE XREF: sub_20644+28j ; sub_20644+2Ej tst.b (byte_FFFFA350).w beq.s loc_2069C tst.b (byte_FFFFA34F).w bne.s loc_2069C move.w #$B0,d0 ; '?' jsr sub_5F0BE clr.b (byte_FFFFA350).w loc_2069C: ; CODE XREF: sub_20644+42j ; sub_20644+48j tst.b (byte_FFFFA351).w beq.s loc_206AE jsr sub_206D4 clr.b (byte_FFFFA351).w bra.s loc_206D0 ; --------------------------------------------------------------------------- loc_206AE: ; CODE XREF: sub_20644+5Cj tst.b (byte_FFFFA352).w beq.s loc_206C0 jsr sub_206D4 clr.b (byte_FFFFA352).w bra.s loc_206D0 ; --------------------------------------------------------------------------- loc_206C0: ; CODE XREF: sub_20644+6Ej tst.b (byte_FFFFBEF0).w beq.s loc_206D0 jsr sub_206D4 clr.b (byte_FFFFBEF0).w loc_206D0: ; CODE XREF: sub_20644+68j ; sub_20644+7Aj ... move.l (sp)+,d0 rts ; End of function sub_20644 ; =============== S U B R O U T I N E ======================================= sub_206D4: ; CODE XREF: sub_20644+5Ep ; sub_20644+70p ... move.l d0,-(sp) btst #6,(byte_FFFF803D).w bne.s loc_2070A btst #5,(byte_FFFF803D).w bne.s loc_2070A btst #4,(byte_FFFF803D).w bne.s loc_2070A btst #2,(byte_FFFF803D).w bne.s loc_2070A btst #3,(byte_FFFF803D).w bne.s loc_2070A move.w #$80,d0 ; '?' jsr sub_5F0BE bra.s loc_20714 ; --------------------------------------------------------------------------- loc_2070A: ; CODE XREF: sub_206D4+8j ; sub_206D4+10j ... move.w #$80,d0 ; '?' jsr sub_5F110 loc_20714: ; CODE XREF: sub_206D4+34j move.l (sp)+,d0 rts ; End of function sub_206D4 ; =============== S U B R O U T I N E ======================================= sub_20718: ; CODE XREF: sub_223EA+55Cp movem.l d0-d2/d6-a0,-(sp) tst.b (byte_FFFFA34D).w bne.s loc_2073A movea.w (word_FFFF9050).w,a2 move.w a2,(word_FFFFA30A).w move.w a2,(word_FFFFA308).w movea.w (word_FFFFA598).w,a2 move.w a2,(word_FFFFA306).w move.w a2,(word_FFFFA304).w loc_2073A: ; CODE XREF: sub_20718+8j move.b (byte_FFFFA59C).w,d3 tst.b (byte_FFFFA59D).w beq.w loc_208C2 cmpi.b #2,(byte_FFFFA2FF).w beq.w loc_208C2 btst #2,d3 bne.w loc_208C2 tst.b (byte_FFFFA59E).w bne.w loc_208C2 tst.b (byte_FFFFA5A0).w bne.w loc_208C2 cmpi.b #3,(ThrottleControlMode2?).w beq.s loc_2077A cmpi.w #$880,(word_FFFFB4A2).w bls.w loc_208C2 loc_2077A: ; CODE XREF: sub_20718+56j move.w (word_FFFFB4A2).w,d1 tst.b (byte_FFFF900F).w beq.s loc_2078C movea.w (ETC_DIAG_KE_DEFAULT_THROTTLE_POSITION).l,a0 ; Throttle position to use when ETC link not awake or UART fault for estimating engine airflow. ; Percent_Rotation bra.s loc_20790 ; --------------------------------------------------------------------------- loc_2078C: ; CODE XREF: sub_20718+6Aj movea.w (word_FFFF9050).w,a0 loc_20790: ; CODE XREF: sub_20718+72j clr.w d3 move.w #$300,d2 cmp.w d1,d2 bhi.s loc_207AA cmpi.w #$1200,d1 bcc.s loc_207A6 move.l d1,d3 sub.w d2,d3 bra.s loc_207AA ; --------------------------------------------------------------------------- loc_207A6: ; CODE XREF: sub_20718+86j move.w #$F00,d3 loc_207AA: ; CODE XREF: sub_20718+80j ; sub_20718+8Cj movea.l #ETC_DIAG_KV_DESIRED_TERM_COEF_2,a2 ; Nth order model coefficient vs. ingition voltage for 2 samples old Desired Throttle Position. ; Nth_Model_Coef_Vs_Volts_Table tbls.w (a2),d3 muls.w (word_FFFFA30A).w,d3 clr.w d4 cmp.w d1,d2 bhi.s loc_207CE cmpi.w #$1200,d1 bcc.s loc_207CA move.l d1,d4 sub.w d2,d4 bra.s loc_207CE ; --------------------------------------------------------------------------- loc_207CA: ; CODE XREF: sub_20718+AAj move.w #$F00,d4 loc_207CE: ; CODE XREF: sub_20718+A4j ; sub_20718+B0j movea.l #ETC_DIAG_KV_DESIRED_TERM_COEF_1,a2 ; Nth order model coefficient vs. ingition voltage for 1 sample old Desired Throttle Position. ; Nth_Model_Coef_Vs_Volts_Table tbls.w (a2),d4 move.w (word_FFFFA308).w,d7 muls.w d4,d7 clr.w d4 cmp.w d1,d2 bls.s loc_207E8 move.l d4,d0 bra.s loc_207F8 ; --------------------------------------------------------------------------- loc_207E8: ; CODE XREF: sub_20718+CAj cmpi.w #$1200,d1 bcc.s loc_207F4 move.l d1,d0 sub.w d2,d0 bra.s loc_207F8 ; --------------------------------------------------------------------------- loc_207F4: ; CODE XREF: sub_20718+D4j move.w #$F00,d0 loc_207F8: ; CODE XREF: sub_20718+CEj ; sub_20718+DAj movea.l #ETC_DIAG_KV_DESIRED_TERM_COEF_0,a2 ; Nth order model coefficient vs. ignition voltage for current Desired Throttle Position. ; Nth_Model_Coef_Vs_Volts_Table tbls.w (a2),d0 move.l a0,d6 muls.w d0,d6 cmp.w d1,d2 bhi.s loc_2081A cmpi.w #$1200,d1 bcc.s loc_20816 move.l d1,d4 sub.w d2,d4 bra.s loc_2081A ; --------------------------------------------------------------------------- loc_20816: ; CODE XREF: sub_20718+F6j move.w #$F00,d4 loc_2081A: ; CODE XREF: sub_20718+F0j ; sub_20718+FCj movea.l #ETC_DIAG_KV_ESTIMATED_TERM_COEF_2,a2 ; Nth order model coefficient vs. ingition voltage for 2 samples old Nth order model output. ; Nth_Model_Coef_Vs_Volts_Table tbls.w (a2),d4 muls.w (word_FFFFA306).w,d4 clr.w d5 cmp.w d1,d2 bls.s loc_20832 move.l d5,d1 bra.s loc_20840 ; --------------------------------------------------------------------------- loc_20832: ; CODE XREF: sub_20718+114j cmpi.w #$1200,d1 bcc.s loc_2083C sub.w d2,d1 bra.s loc_20840 ; --------------------------------------------------------------------------- loc_2083C: ; CODE XREF: sub_20718+11Ej move.w #$F00,d1 loc_20840: ; CODE XREF: sub_20718+118j ; sub_20718+122j movea.l #ETC_DIAG_KV_ESTIMATED_TERM_COEF_1,a2 ; Nth order model coefficient vs. ingition voltage for 1 sample old Nth order model output. ; Nth_Model_Coef_Vs_Volts_Table tbls.w (a2),d1 move.w (word_FFFFA304).w,d2 move.l d2,d0 muls.w d1,d0 add.l d7,d3 add.l d6,d3 sub.l d4,d3 sub.l d0,d3 cmpi.l #$5000000,d3 bgt.s loc_2086C cmpi.l #$FB000000,d3 blt.s loc_20874 bra.s loc_2087A ; --------------------------------------------------------------------------- loc_2086C: ; CODE XREF: sub_20718+148j move.l #$5000000,d3 bra.s loc_2087A ; --------------------------------------------------------------------------- loc_20874: ; CODE XREF: sub_20718+150j move.l #$FB000000,d3 loc_2087A: ; CODE XREF: sub_20718+152j ; sub_20718+15Aj cmpi.l #$7FFFFFFF,d3 bhi.s loc_20888 lsr.l #8,d3 lsr.l #6,d3 bra.s loc_2088A ; --------------------------------------------------------------------------- loc_20888: ; CODE XREF: sub_20718+168j move.l d5,d3 loc_2088A: ; CODE XREF: sub_20718+16Ej move.l d3,d4 sub.w (word_FFFFA598).w,d4 move.w d4,(word_FFFFA30C).w tst.w d4 bge.s loc_2089A neg.w d4 loc_2089A: ; CODE XREF: sub_20718+17Ej cmp.w (word_FFFFA30E).w,d4 bcs.s loc_208A4 move.w d4,(word_FFFFA30E).w loc_208A4: ; CODE XREF: sub_20718+186j move.w (word_FFFFA308).w,(word_FFFFA30A).w move.w a0,(word_FFFFA308).w move.w d2,(word_FFFFA306).w move.w d3,(word_FFFFA304).w move.w d3,(word_FFFFA2FA).w move.b #1,(byte_FFFFA34D).w bra.s loc_208CC ; --------------------------------------------------------------------------- loc_208C2: ; CODE XREF: sub_20718+2Aj ; sub_20718+34j ... move.w (word_FFFFA598).w,(word_FFFFA2FA).w clr.b (byte_FFFFA34D).w loc_208CC: ; CODE XREF: sub_20718+1A8j jsr sub_208D8 movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_20718 ; =============== S U B R O U T I N E ======================================= sub_208D8: ; CODE XREF: sub_20718:loc_208CCp movem.l d0-d1,-(sp) move.b (byte_FFFFA59C).w,d4 move.w (word_FFFFA598).w,d3 tst.b (byte_FFFFA59D).w beq.w loc_20A2C tst.b (byte_FFFFA59E).w bne.w loc_20A2C btst #5,(byte_FFFFA593).w beq.s loc_20902 cmp.w (word_FFFF9050).w,d3 bcs.s loc_20922 loc_20902: ; CODE XREF: sub_208D8+22j cmpi.b #2,(byte_FFFFA2FF).w beq.s loc_20922 btst #2,d4 bne.s loc_20922 btst #6,d4 bne.s loc_20922 tst.b (byte_FFFFA5A0).w bne.s loc_20922 tst.b (byte_FFFF900F).w beq.s loc_20926 loc_20922: ; CODE XREF: sub_208D8+28j ; sub_208D8+30j ... clr.w d3 bra.s loc_2092A ; --------------------------------------------------------------------------- loc_20926: ; CODE XREF: sub_208D8+48j sub.w (word_FFFFA2FA).w,d3 loc_2092A: ; CODE XREF: sub_208D8+4Cj move.w (ETC_DIAG_KE_THROTTLE_ACTUATION_ERROR_THRE).l,d4 move.w d4,d0 cmp.w d0,d3 ble.s loc_20960 move.b (byte_FFFFA345).w,d3 add.b (ETC_DIAG_KE_THR_HI_CTR_INC).l,d3 bcc.s loc_20946 move.b #$FF,d3 loc_20946: ; CODE XREF: sub_208D8+68j move.b d3,(byte_FFFFA345).w move.b (byte_FFFFA346).w,d3 sub.b (ETC_DIAG_KE_THR_LO_CTR_POS_THRESH_DEC).l,d3 loc_20954: ; CODE XREF: sub_208D8+ACj ; sub_208D8+DAj bcc.s loc_20958 clr.b d3 loc_20958: ; CODE XREF: sub_208D8:loc_20954j ; sub_208D8+100j ... move.b d3,(byte_FFFFA346).w bra.w loc_209E4 ; --------------------------------------------------------------------------- loc_20960: ; CODE XREF: sub_208D8+5Cj cmp.w d0,d3 bgt.s loc_20986 tst.w d3 blt.s loc_20986 move.b (byte_FFFFA345).w,d3 sub.b (ETC_DIAG_KE_THR_HI_CTR_POS_ERR_DEC).l,d3 bcc.s loc_20976 clr.b d3 loc_20976: ; CODE XREF: sub_208D8+9Aj move.b d3,(byte_FFFFA345).w move.b (byte_FFFFA346).w,d3 sub.b (ETC_DIAG_KE_THR_LO_CTR_POS_ERR_DEC).l,d3 bra.s loc_20954 ; --------------------------------------------------------------------------- loc_20986: ; CODE XREF: sub_208D8+8Aj ; sub_208D8+8Ej move.l d3,d5 tst.w d5 bge.s loc_2098E neg.w d5 loc_2098E: ; CODE XREF: sub_208D8+B2j cmp.w d4,d5 bhi.s loc_209B4 tst.w d3 bge.s loc_209B4 move.b (byte_FFFFA345).w,d3 sub.b (ETC_DIAG_KE_THR_HI_CTR_NEG_ERR_DEC).l,d3 bcc.s loc_209A4 clr.b d3 loc_209A4: ; CODE XREF: sub_208D8+C8j move.b d3,(byte_FFFFA345).w move.b (byte_FFFFA346).w,d3 sub.b (ETC_DIAG_KE_THR_LO_CTR_NEG_ERR_DEC).l,d3 bra.s loc_20954 ; --------------------------------------------------------------------------- loc_209B4: ; CODE XREF: sub_208D8+B8j ; sub_208D8+BCj cmp.w d4,d5 bls.s loc_209E4 tst.w d3 bge.s loc_209E4 move.b (byte_FFFFA345).w,d3 sub.b (ETC_DIAG_KE_THR_HI_CTR_NEG_THRESH_DEC).l,d3 bcc.s loc_209CA clr.b d3 loc_209CA: ; CODE XREF: sub_208D8+EEj move.b d3,(byte_FFFFA345).w move.b (byte_FFFFA346).w,d3 add.b (ETC_DIAG_KE_THR_LO_CTR_INC).l,d3 bcc.w loc_20958 move.b #$FF,d3 bra.w loc_20958 ; --------------------------------------------------------------------------- loc_209E4: ; CODE XREF: sub_208D8+84j ; sub_208D8+DEj ... move.b (byte_FFFFA345).w,d4 cmp.b (byte_FFFFA347).w,d4 bls.s loc_209F2 move.b d4,(byte_FFFFA347).w loc_209F2: ; CODE XREF: sub_208D8+114j move.b (byte_FFFFA346).w,d3 cmp.b (byte_FFFFA348).w,d3 bls.s loc_20A00 move.b d3,(byte_FFFFA348).w loc_20A00: ; CODE XREF: sub_208D8+122j move.b (ETC_DIAG_KE_THROTTLE_ACTUATION_ERROR_COUN).l,d0 ; Max limit for accumulated local actuation errors ; SHORTCARD cmp.b d0,d4 bhi.s loc_20A0E cmp.b d0,d3 bls.s loc_20A24 loc_20A0E: ; CODE XREF: sub_208D8+130j tst.b (byte_FFFFA300).w bne.s loc_20A24 move.b #1,(byte_FFFFA300).w move.w #$E6,d0 ; '?' jsr sub_5F110 loc_20A24: ; CODE XREF: sub_208D8+134j ; sub_208D8+13Aj move.b #1,(byte_FFFFA34E).w bra.s loc_20A34 ; --------------------------------------------------------------------------- loc_20A2C: ; CODE XREF: sub_208D8+10j ; sub_208D8+18j clr.b (byte_FFFFA345).w clr.b (byte_FFFFA346).w loc_20A34: ; CODE XREF: sub_208D8+152j movem.l (sp)+,d0-d1 rts ; End of function sub_208D8 ; =============== S U B R O U T I N E ======================================= sub_20A3A: ; CODE XREF: sub_2340C+C58p move.l d0,-(sp) move.w (word_FFFFA042).w,d4 lsr.w #1,d4 move.w (word_FFFF9050).w,d3 sub.w d4,d3 bcc.s loc_20A4C neg.w d3 loc_20A4C: ; CODE XREF: sub_20A3A+Ej move.w d3,(word_FFFFA310).w cmp.w (word_FFFF82B2).w,d3 bls.s loc_20A5A move.w d3,(word_FFFF82B2).w loc_20A5A: ; CODE XREF: sub_20A3A+1Aj cmp.w (ETC_DIAG_KE_MAX_ALLOWABLE_INCONSISTENCY).l,d3 ; limit of difference between primary and redundant throt position ; Percent_Rotation bls.s loc_20AA4 move.b (byte_FFFFA34A).w,d3 addi.b #$A,d3 bcc.s loc_20A70 move.b #$FF,d3 loc_20A70: ; CODE XREF: sub_20A3A+30j move.b d3,(byte_FFFFA34A).w move.b (byte_FFFF82B4).w,d4 addq.b #1,d4 bcc.s loc_20A80 move.b #$FF,d4 loc_20A80: ; CODE XREF: sub_20A3A+40j move.b d4,(byte_FFFF82B4).w cmpi.b #$3C,d3 ; '<' bcs.s loc_20AB2 btst #5,(byte_FFFF803D).w bne.s loc_20AB2 bset #5,(byte_FFFF803D).w move.w #$80,d0 ; '?' jsr sub_5F110 bra.s loc_20AB2 ; --------------------------------------------------------------------------- loc_20AA4: ; CODE XREF: sub_20A3A+26j move.b (byte_FFFFA34A).w,d3 subq.b #1,d3 bcc.s loc_20AAE clr.b d3 loc_20AAE: ; CODE XREF: sub_20A3A+70j move.b d3,(byte_FFFFA34A).w loc_20AB2: ; CODE XREF: sub_20A3A+4Ej ; sub_20A3A+56j ... move.b (byte_FFFFA34A).w,d3 cmp.b (byte_FFFF82B5).w,d3 bls.s loc_20AC0 move.b d3,(byte_FFFF82B5).w loc_20AC0: ; CODE XREF: sub_20A3A+80j move.b #1,(byte_FFFFA352).w move.l (sp)+,d0 rts ; End of function sub_20A3A ; =============== S U B R O U T I N E ======================================= DBW_Breadcrumb: ; CODE XREF: sub_21930+C0p ; sub_21930+33Ep ... move.b (byte_FFFFA349).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFA349).w cmp.b d0,d3 bne.s loc_20AE4 tst.b (byte_FFFFA34B).w bne.s loc_20AE4 move.b d0,(byte_FFFFA34B).w bra.s locret_20B04 ; --------------------------------------------------------------------------- loc_20AE4: ; CODE XREF: DBW_Breadcrumb+Cj ; DBW_Breadcrumb+12j move.b d0,(byte_FFFFA349).w move.b d0,(byte_FFFFA34B).w btst #6,(byte_FFFF803D).w bne.s locret_20B04 bset #6,(byte_FFFF803D).w move.w #$80,d0 ; '?' jsr sub_5F110 locret_20B04: ; CODE XREF: DBW_Breadcrumb+18j ; DBW_Breadcrumb+28j rts ; End of function DBW_Breadcrumb ; =============== S U B R O U T I N E ======================================= sub_20B06: ; CODE XREF: sub_21930+336p ; sub_21930+34Cp ... move.l d1,-(sp) move.b d0,d1 cmp.b (byte_FFFFA349).w,d1 bne.s loc_20B2C cmp.b (byte_FFFFA34B).w,d1 bne.s loc_20B2C clr.b (byte_FFFFA34B).w cmpi.b #6,d1 bne.s loc_20B4C clr.b (byte_FFFFA349).w move.b #1,(byte_FFFFA351).w bra.s loc_20B4C ; --------------------------------------------------------------------------- loc_20B2C: ; CODE XREF: sub_20B06+8j sub_20B06+Ej btst #6,(byte_FFFF803D).w bne.s loc_20B44 bset #6,(byte_FFFF803D).w move.w #$80,d0 ; '?' jsr sub_5F110 loc_20B44: ; CODE XREF: sub_20B06+2Cj move.b d1,(byte_FFFFA349).w clr.b (byte_FFFFA34B).w loc_20B4C: ; CODE XREF: sub_20B06+18j ; sub_20B06+24j move.l (sp)+,d1 rts ; End of function sub_20B06 ; =============== S U B R O U T I N E ======================================= sub_20B50: ; CODE XREF: sub_2008A:loc_200D6p ; sub_20BC4+14p ... movem.l d0-d2/a0,-(sp) move.b (byte_FFFFA59C).w,d2 move.w #$140,d0 movea.l #unk_FFA312,a0 jsr sub_276D4 clr.b d3 btst #5,(byte_FFFF803D).w bne.s loc_20B7E btst #5,d2 bne.s loc_20B7E tst.b (byte_FFFFABDA).w beq.s loc_20B80 loc_20B7E: ; CODE XREF: sub_20B50+20j ; sub_20B50+26j addq.b #1,d3 loc_20B80: ; CODE XREF: sub_20B50+2Cj or.b (byte_FFFF9DA8).w,d3 move.b d3,(byte_FFFFA302).w btst #5,(byte_FFFF803D).w sne d3 neg.b d3 or.b (byte_FFFF82B6).w,d3 move.b d3,(byte_FFFF82B6).w clr.b d1 tst.b d3 bne.s loc_20BAA tst.b d0 beq.s loc_20BAA btst #5,d2 beq.s loc_20BAC loc_20BAA: ; CODE XREF: sub_20B50+4Ej ; sub_20B50+52j addq.b #1,d1 loc_20BAC: ; CODE XREF: sub_20B50+58j or.b (byte_FFFFABDA).w,d1 move.b d1,(byte_FFFFA303).w move.w #$132,d0 jsr (sub_1122).l movem.l (sp)+,d0-d2/a0 rts ; End of function sub_20B50 ; =============== S U B R O U T I N E ======================================= sub_20BC4: ; CODE XREF: OS1:00028BA0p clr.b (byte_FFFFA2FE).w clr.b (byte_FFFFA2FF).w tst.b (byte_FFFFB370).w beq.s loc_20BDE move.w (GlobalClock).w,(word_FFFFA312).w jsr sub_20B50 loc_20BDE: ; CODE XREF: sub_20BC4+Cj tst.b (byte_FFFFB54B).w bne.s locret_20BEA move.w (GlobalClock).w,(word_FFFFA338).w locret_20BEA: ; CODE XREF: sub_20BC4+1Ej rts ; End of function sub_20BC4 ; =============== S U B R O U T I N E ======================================= sub_20BEC: ; CODE XREF: OS1:00028BDAp tst.b (byte_FFFFB370).w beq.s loc_20BFE move.w (GlobalClock).w,(word_FFFFA312).w jsr sub_20B50 loc_20BFE: ; CODE XREF: sub_20BEC+4j tst.b (byte_FFFFB54B).w bne.s locret_20C0A move.w (GlobalClock).w,(word_FFFFA338).w locret_20C0A: ; CODE XREF: sub_20BEC+16j rts ; End of function sub_20BEC ; =============== S U B R O U T I N E ======================================= sub_20C0C: ; CODE XREF: sub_23282+6p clr.b (byte_FFFFA34F).w clr.b (byte_FFFFA2FE).w andi.b #$F8,(byte_FFFFA33C).w andi.b #$F8,(byte_FFFFA33D).w clr.b (byte_FFFFA2FF).w clr.b (byte_FFFFA33B).w clr.b (byte_FFFFA345).w clr.b (byte_FFFFA346).w clr.b (byte_FFFFA347).w clr.b (byte_FFFFA348).w clr.b (byte_FFFFA300).w clr.b (byte_FFFFA301).w bclr #5,(byte_FFFFA34C).w bclr #4,(byte_FFFFA34C).w bclr #3,(byte_FFFFA34C).w bclr #2,(byte_FFFFA34C).w bclr #1,(byte_FFFFA34C).w bclr #0,(byte_FFFFA34C).w clr.b (byte_FFFFA341).w clr.b (byte_FFFFA342).w clr.l (dword_FFFFA31C).w clr.l (dword_FFFFA318).w clr.b (byte_FFFFA343).w clr.b (byte_FFFFA344).w clr.l (dword_FFFFA328).w clr.l (dword_FFFFA324).w clr.b (byte_FFFFA340).w clr.b (byte_FFFFA34E).w clr.b (byte_FFFFA350).w clr.b (byte_FFFFA34A).w clr.b (byte_FFFF82B4).w clr.b (byte_FFFF82B5).w clr.b (byte_FFFFA302).w clr.b (byte_FFFFA303).w clr.b (byte_FFFF82B6).w clr.w (word_FFFFA30E).w clr.w (word_FFFF82B2).w rts ; End of function sub_20C0C ; =============== S U B R O U T I N E ======================================= sub_20CB2: ; CODE XREF: DoLoopE+72p var_57EA = -$57EA movem.l d0-d2,-(sp) move.w (word_FFFFA820).w,d2 move.w (word_FFFFAEBE).w,d1 move.w (ETC_ENGINE_AIR_KE_VEHICLE_SPEED_FILT_COEF).l,d0 ; Coefficient used to filter vehicle speed for core ETC algorithm ; Coefficient jsr sub_26608 move.w d0,(word_FFFFA820).w btst #7,(byte_FFFF8252).w bne.s loc_20D22 clr.w d5 move.b (byte_FFFFA851).w,d5 move.w (word_FFFFA820).w,d3 sub.w word_FFFFA822(d5.w*2),d3 muls.w #5,d3 cmpi.l #$FFFF8000,d3 blt.s loc_20D18 cmpi.l #$7FFF,d3 bgt.s loc_20D12 tst.w d3 bpl.s loc_20D02 addi.w #$3F,d3 ; '?' loc_20D02: ; CODE XREF: sub_20CB2+4Aj asr.w #6,d3 cmpi.w #$C8,d3 ; '?' bgt.s loc_20D12 cmpi.w #$FF38,d3 blt.s loc_20D18 bra.s loc_20D1C ; --------------------------------------------------------------------------- loc_20D12: ; CODE XREF: sub_20CB2+46j ; sub_20CB2+56j move.w #$C8,d3 ; '?' bra.s loc_20D1C ; --------------------------------------------------------------------------- loc_20D18: ; CODE XREF: sub_20CB2+3Ej ; sub_20CB2+5Cj move.w #$FF38,d3 loc_20D1C: ; CODE XREF: sub_20CB2+5Ej ; sub_20CB2+64j move.w d3,(word_FFFFA81E).w bra.s loc_20D26 ; --------------------------------------------------------------------------- loc_20D22: ; CODE XREF: sub_20CB2+22j clr.w (word_FFFFA81E).w loc_20D26: ; CODE XREF: sub_20CB2+6Ej move.b (byte_FFFFA851).w,d3 clr.l d1 move.b d3,d1 move.w d0,$C+var_57EA(d1.w*2) addq.b #1,d3 andi.l #$FF,d3 divul.l #6,d4:d3 move.b d4,(byte_FFFFA851).w jsr sub_2132C movem.l (sp)+,d0-d2 rts ; End of function sub_20CB2 ; =============== S U B R O U T I N E ======================================= sub_20D54: ; CODE XREF: DoLoopD+100p movem.l d0-d2/d6-d7,-(sp) tst.b (ETC_ENGINE_AIR_KE_ENGINE_SPEED_GOV_ENABLED).l ; Used to prevent engine speed governor from executing. ; BOOLEAN beq.w loc_21088 move.w (word_FFFFA560).w,d6 clr.l d2 move.w d6,d2 jsr sub_7DD88 andi.l #$FFFF,d0 sub.l d2,d0 cmpi.l #$A000,d0 bgt.s loc_20D8A cmpi.l #$FFFF6000,d0 blt.s loc_20D92 bra.s loc_20D98 ; --------------------------------------------------------------------------- loc_20D8A: ; CODE XREF: sub_20D54+2Aj move.l #$A000,d0 bra.s loc_20D98 ; --------------------------------------------------------------------------- loc_20D92: ; CODE XREF: sub_20D54+32j move.l #$FFFF6000,d0 loc_20D98: ; CODE XREF: sub_20D54+34j ; sub_20D54+3Cj move.l d0,(dword_FFFFA844).w clr.l d3 move.w (word_FFFFA83A).w,d3 clr.l d1 move.w d6,d1 sub.l d3,d1 cmpi.l #$FFFF8000,d1 blt.s loc_20DCC cmpi.l #$7FFF,d1 bgt.s loc_20DC6 cmpi.w #$2800,d1 bgt.s loc_20DC6 cmpi.w #$D800,d1 blt.s loc_20DCC bra.s loc_20DD0 ; --------------------------------------------------------------------------- loc_20DC6: ; CODE XREF: sub_20D54+62j ; sub_20D54+68j move.w #$2800,d1 bra.s loc_20DD0 ; --------------------------------------------------------------------------- loc_20DCC: ; CODE XREF: sub_20D54+5Aj ; sub_20D54+6Ej move.w #$D800,d1 loc_20DD0: ; CODE XREF: sub_20D54+70j ; sub_20D54+76j move.w d1,(word_FFFFA83E).w move.l d0,d3 movea.w #$1400,a2 clr.w d4 tst.l d3 bge.s loc_20DE4 move.l d4,d3 bra.s loc_20DF4 ; --------------------------------------------------------------------------- loc_20DE4: ; CODE XREF: sub_20D54+8Aj cmpi.l #$A00,d3 bge.s loc_20DF0 add.l d3,d3 bra.s loc_20DF4 ; --------------------------------------------------------------------------- loc_20DF0: ; CODE XREF: sub_20D54+96j move.w #$1400,d3 loc_20DF4: ; CODE XREF: sub_20D54+8Ej ; sub_20D54+9Aj tblu.w (ETC_ENGINE_AIR_KV_ENG_ACCELERATION_THRESHOLD).l,d3 ; Lookup for engine accel threshold above which lead governing isenabled as a function of engine speed. ; Engine_Accel_Type_Vs_RPM_Table sub.w (word_FFFFA83E).w,d3 cmpi.w #$2800,d3 ble.s loc_20E0A move.w #$2800,d3 loc_20E0A: ; CODE XREF: sub_20D54+B0j move.b (byte_FFFFA84E).w,d1 bne.s loc_20E14 tst.w d3 blt.s loc_20E2C loc_20E14: ; CODE XREF: sub_20D54+BAj tst.b d1 beq.s loc_20E86 clr.w d3 move.b (byte_FFFFA3B8).w,d3 move.b (byte_FFFFA83C).w,d4 cmp.b $A856.l(d3.w),d4 bcc.s loc_20E86 loc_20E2C: ; CODE XREF: sub_20D54+BEj move.b #1,(byte_FFFFA84E).w tst.b (byte_FFFFA564).w beq.s loc_20E48 clr.w d3 move.b (byte_FFFFA3B8).w,d3 move.w ETC_ENGINE_AIR_KV_TRANS_STAB_GOV_AREA_INITIAL.l(d3.w*2),d3 bra.s loc_20E56 ; --------------------------------------------------------------------------- loc_20E48: ; CODE XREF: sub_20D54+E2j clr.w d3 move.b (byte_FFFFA3B8).w,d3 move.w ETC_ENGINE_AIR_KV_ENG_SPEED_GOV_AREA_INITIAL.l(d3.w*2),d3 loc_20E56: ; CODE XREF: sub_20D54+F2j move.w (ThrottleArea3).w,d4 lsr.w #1,d4 cmp.w d3,d4 bcc.s loc_20E66 move.w d4,(word_FFFFA830).w bra.s loc_20E6A ; --------------------------------------------------------------------------- loc_20E66: ; CODE XREF: sub_20D54+10Aj move.w d3,(word_FFFFA830).w loc_20E6A: ; CODE XREF: sub_20D54+110j clr.w (word_FFFFA840).w clr.w (word_FFFFA842).w move.b (byte_FFFFA83C).w,d3 addq.b #1,d3 bcc.s loc_20E7E move.b #$FF,d3 loc_20E7E: ; CODE XREF: sub_20D54+124j move.b d3,(byte_FFFFA83C).w bra.w loc_21032 ; --------------------------------------------------------------------------- loc_20E86: ; CODE XREF: sub_20D54+C2j ; sub_20D54+D6j tst.b d1 beq.w loc_21022 move.l d0,d3 move.w #$F600,d5 cmp.w d3,d5 ble.s loc_20E9A clr.w d3 bra.s loc_20EAE ; --------------------------------------------------------------------------- loc_20E9A: ; CODE XREF: sub_20D54+140j move.l #$A00,d2 cmp.w d3,d2 ble.s loc_20EAA move.l d0,d3 add.l d2,d3 bra.s loc_20EAE ; --------------------------------------------------------------------------- loc_20EAA: ; CODE XREF: sub_20D54+14Ej move.w #$1400,d3 loc_20EAE: ; CODE XREF: sub_20D54+144j ; sub_20D54+154j tblu.w (ETC_ENGINE_AIR_KV_ENGINE_SPEED_GOV_INT_GAIN).l,d3 ; Integral gain value for the PID engine speed governor indexed withEngine Speed Error. ; RPM_S_Vs_EngSpd_Int_Gain andi.l #$FFFF,d3 muls.l d0,d3 bvc.s loc_20EC6 bmi.s loc_20EF2 bra.s loc_20EEC ; --------------------------------------------------------------------------- loc_20EC6: ; CODE XREF: sub_20D54+16Cj divs.l #$FFFF,d3 cmpi.l #$FFFF8000,d3 blt.s loc_20EF2 cmpi.l #$7FFF,d3 bgt.s loc_20EEC cmpi.w #$1400,d3 bgt.s loc_20EEC cmpi.w #$EC00,d3 blt.s loc_20EF2 bra.s loc_20EF6 ; --------------------------------------------------------------------------- loc_20EEC: ; CODE XREF: sub_20D54+170j ; sub_20D54+188j ... move.w #$1400,d3 bra.s loc_20EF6 ; --------------------------------------------------------------------------- loc_20EF2: ; CODE XREF: sub_20D54+16Ej ; sub_20D54+180j ... move.w #$EC00,d3 loc_20EF6: ; CODE XREF: sub_20D54+196j ; sub_20D54+19Cj add.w (word_FFFFA830).w,d3 cmpi.w #$7FFF,d3 bhi.s loc_20F0C cmpi.w #$1400,d3 bls.s loc_20F0E move.w #$1400,d3 bra.s loc_20F0E ; --------------------------------------------------------------------------- loc_20F0C: ; CODE XREF: sub_20D54+1AAj clr.w d3 loc_20F0E: ; CODE XREF: sub_20D54+1B0j ; sub_20D54+1B6j move.w d3,(word_FFFFA830).w clr.w d4 move.l d0,d2 move.l d5,d7 cmp.w d2,d7 bgt.s loc_20F32 move.l d0,d2 move.l #$A00,d1 cmp.w d2,d1 ble.s loc_20F2E move.l d0,d4 add.l d1,d4 bra.s loc_20F32 ; --------------------------------------------------------------------------- loc_20F2E: ; CODE XREF: sub_20D54+1D2j move.w #$1400,d4 loc_20F32: ; CODE XREF: sub_20D54+1C6j ; sub_20D54+1D8j tblu.w (ETC_ENGINE_AIR_KV_ENGINE_SPEED_GOV_PROP_GAIN).l,d4 ; Proportional gain value for the PID engine speed governor indexed with Engine_Speed_Error. ; RPM_S_Vs_EngSpd_Prop_Gain clr.l d2 move.w d4,d2 muls.l d0,d2 moveq #5,d4 muls.l d2,d4 move.w #$800,d1 divs.w d1,d4 bvc.s loc_20F58 swap d4 eor.w d1,d4 bmi.s loc_20F6C bra.s loc_20F66 ; --------------------------------------------------------------------------- loc_20F58: ; CODE XREF: sub_20D54+1FAj cmpi.w #$1400,d4 bgt.s loc_20F66 cmpi.w #$EC00,d4 blt.s loc_20F6C bra.s loc_20F70 ; --------------------------------------------------------------------------- loc_20F66: ; CODE XREF: sub_20D54+202j ; sub_20D54+208j move.w #$1400,d4 bra.s loc_20F70 ; --------------------------------------------------------------------------- loc_20F6C: ; CODE XREF: sub_20D54+200j ; sub_20D54+20Ej move.w #$EC00,d4 loc_20F70: ; CODE XREF: sub_20D54+210j ; sub_20D54+216j move.w d4,(word_FFFFA840).w move.l d0,d4 cmp.w d4,d5 ble.s loc_20F7E clr.w d4 bra.s loc_20F92 ; --------------------------------------------------------------------------- loc_20F7E: ; CODE XREF: sub_20D54+224j move.l #$A00,d2 cmp.w d4,d2 ble.s loc_20F8E move.l d0,d4 add.l d2,d4 bra.s loc_20F92 ; --------------------------------------------------------------------------- loc_20F8E: ; CODE XREF: sub_20D54+232j move.w #$1400,d4 loc_20F92: ; CODE XREF: sub_20D54+228j ; sub_20D54+238j tblu.w (ETC_ENGINE_AIR_KV_ENG_SPEED_GOV_DERIVATIVE_GAIN).l,d4 ; Derivative gain value for the PID engine speed governor indexed with Engine_Speed_Error. ; RPM_S_Vs_EngSpd_Deriv_Gain move.w d4,d1 moveq #$A,d4 move.w (word_8A830).l,d2 muls.w (word_FFFFA83E).w,d2 divs.w d4,d2 bvc.s loc_20FB4 swap d2 eor.w d4,d2 bmi.s loc_20FCA bra.s loc_20FC4 ; --------------------------------------------------------------------------- loc_20FB4: ; CODE XREF: sub_20D54+256j cmpi.w #$2800,d2 bgt.s loc_20FC4 cmpi.w #$D800,d2 blt.s loc_20FCA move.w d2,d4 bra.s loc_20FCE ; --------------------------------------------------------------------------- loc_20FC4: ; CODE XREF: sub_20D54+25Ej ; sub_20D54+264j move.w #$2800,d4 bra.s loc_20FCE ; --------------------------------------------------------------------------- loc_20FCA: ; CODE XREF: sub_20D54+25Cj ; sub_20D54+26Aj move.w #$D800,d4 loc_20FCE: ; CODE XREF: sub_20D54+26Ej ; sub_20D54+274j move.l d4,d2 muls.w d1,d2 moveq #5,d4 muls.l d2,d4 move.w #$800,d1 divs.w d1,d4 bvc.s loc_20FE8 swap d4 eor.w d1,d4 bmi.s loc_20FFC bra.s loc_20FF6 ; --------------------------------------------------------------------------- loc_20FE8: ; CODE XREF: sub_20D54+28Aj cmpi.w #$1400,d4 bgt.s loc_20FF6 cmpi.w #$EC00,d4 blt.s loc_20FFC bra.s loc_21000 ; --------------------------------------------------------------------------- loc_20FF6: ; CODE XREF: sub_20D54+292j ; sub_20D54+298j move.w #$1400,d4 bra.s loc_21000 ; --------------------------------------------------------------------------- loc_20FFC: ; CODE XREF: sub_20D54+290j ; sub_20D54+29Ej move.w #$EC00,d4 loc_21000: ; CODE XREF: sub_20D54+2A0j ; sub_20D54+2A6j move.w d4,(word_FFFFA842).w cmpi.w #$1400,d3 beq.s loc_2101E clr.l d3 move.w (ETC_ENGINE_AIR_KE_ENG_SPD_GOV_EXIT_HYSTERESIS).l,d3 ; Exit Engine speed gov when speed drops this amout below Engine_ Speed_Max_Limit and RPM_Gov is not the throt cmd source ; RPM cmp.l d0,d3 bge.s loc_21032 cmpi.b #9,(byte_FFFF9060).w beq.s loc_21032 loc_2101E: ; CODE XREF: sub_20D54+2B4j clr.b (byte_FFFFA84E).w loc_21022: ; CODE XREF: sub_20D54+134j move.w a2,(word_FFFFA830).w clr.w (word_FFFFA840).w clr.w (word_FFFFA842).w clr.b (byte_FFFFA83C).w loc_21032: ; CODE XREF: sub_20D54+12Ej ; sub_20D54+2C0j ... move.w (word_FFFFA830).w,d3 add.w (word_FFFFA840).w,d3 cmpi.w #$1400,d3 ble.s loc_21044 move.w #$1400,d3 loc_21044: ; CODE XREF: sub_20D54+2EAj add.w (word_FFFFA842).w,d3 cmpi.w #$7FFF,d3 bhi.s loc_2105A cmpi.w #$1400,d3 bls.s loc_2105C move.w #$1400,d3 bra.s loc_2105C ; --------------------------------------------------------------------------- loc_2105A: ; CODE XREF: sub_20D54+2F8j clr.w d3 loc_2105C: ; CODE XREF: sub_20D54+2FEj ; sub_20D54+304j move.w (ETC_ENGINE_AIR_KE_ENGINE_SPD_GOV_AREA_MIN).l,d4 ; Lower clamp for engine speed governor speed area ; Percent cmp.w d4,d3 bcc.s loc_2106C move.w d4,(word_FFFFA818).w bra.s loc_21070 ; --------------------------------------------------------------------------- loc_2106C: ; CODE XREF: sub_20D54+310j move.w d3,(word_FFFFA818).w loc_21070: ; CODE XREF: sub_20D54+316j move.w (word_FFFFA838).w,(word_FFFFA83A).w move.w (word_FFFFA836).w,(word_FFFFA838).w move.w (word_FFFFA834).w,(word_FFFFA836).w move.w d6,(word_FFFFA834).w bra.s loc_2108E ; --------------------------------------------------------------------------- loc_21088: ; CODE XREF: sub_20D54+Aj move.w #$1400,(word_FFFFA818).w loc_2108E: ; CODE XREF: sub_20D54+332j movem.l (sp)+,d0-d2/d6-d7 rts ; End of function sub_20D54 ; =============== S U B R O U T I N E ======================================= sub_21094: ; CODE XREF: DoLoopD+FAp move.l d0,-(sp) move.w (VEH_SPEED_KE_VEHICLE_SPEED_LIMIT).l,d3 ; limit below which the ETC governor attempts to keep the vehicle speed ; MPH clr.b d4 tst.b (byte_FFFFAEC2).w bne.s loc_210B0 move.w (word_FFFFAEBC).w,d5 cmp.w (VEH_SPEED_KE_RTD_FAULT_ETC_GOV_MAX_SPEED).l,d5 bhi.s loc_210B2 loc_210B0: ; CODE XREF: sub_21094+Ej addq.b #1,d4 loc_210B2: ; CODE XREF: sub_21094+1Aj and.b (byte_FFFF820A).w,d4 move.b d4,(byte_FFFFAEC2).w move.w (word_FFFFAB82).w,d5 cmp.w d3,d5 bcc.s loc_210C4 move.l d5,d3 loc_210C4: ; CODE XREF: sub_21094+2Cj move.w (word_FFFFB1D0).w,d5 cmp.w d3,d5 bcc.s loc_210CE move.l d5,d3 loc_210CE: ; CODE XREF: sub_21094+36j tst.b d4 beq.s loc_210E0 cmp.w (VEH_SPEED_KE_RTD_FAULT_ETC_GOV_MAX_SPEED).l,d3 bls.s loc_210E0 move.w (VEH_SPEED_KE_RTD_FAULT_ETC_GOV_MAX_SPEED).l,d3 loc_210E0: ; CODE XREF: sub_21094+3Cj ; sub_21094+44j sub.w (word_FFFFA820).w,d3 move.w d3,(word_FFFFA84C).w clr.w d4 tst.w d3 bge.s loc_210F2 move.l d4,d3 bra.s loc_21102 ; --------------------------------------------------------------------------- loc_210F2: ; CODE XREF: sub_21094+58j cmpi.w #$780,d3 bge.s loc_210FE ext.l d3 add.l d3,d3 bra.s loc_21102 ; --------------------------------------------------------------------------- loc_210FE: ; CODE XREF: sub_21094+62j move.w #$F00,d3 loc_21102: ; CODE XREF: sub_21094+5Cj ; sub_21094+68j movea.l #$A80E,a2 tbls.w (a2),d3 sub.w (word_FFFFA81E).w,d3 cmpi.w #$C8,d3 ; '?' bgt.s loc_2111E cmpi.w #$FF38,d3 blt.s loc_21124 bra.s loc_21128 ; --------------------------------------------------------------------------- loc_2111E: ; CODE XREF: sub_21094+80j move.w #$C8,d3 ; '?' bra.s loc_21128 ; --------------------------------------------------------------------------- loc_21124: ; CODE XREF: sub_21094+86j move.w #$FF38,d3 loc_21128: ; CODE XREF: sub_21094+88j ; sub_21094+8Ej move.b (byte_FFFFA84F).w,d4 bne.s loc_21158 tst.w d3 bge.s loc_21158 move.b #1,(byte_FFFFA84F).w move.w (ThrottleArea3).w,d3 lsr.w #1,d3 move.w (ETC_ENGINE_AIR_KE_VEH_SPEED_GOV_AREA_INITIAL).l,d4 ; Initial value used in lead mode if current throttle area is less than this calibration. ; Percent cmp.w d4,d3 bhi.s loc_21150 move.w d3,(word_FFFFA82E).w bra.w loc_212E2 ; --------------------------------------------------------------------------- loc_21150: ; CODE XREF: sub_21094+B2j move.w d4,(word_FFFFA82E).w bra.w loc_212E2 ; --------------------------------------------------------------------------- loc_21158: ; CODE XREF: sub_21094+98j ; sub_21094+9Cj tst.b d4 beq.w loc_212DC move.w (word_FFFF9050).w,d3 cmpi.w #$A00,d3 bcc.s loc_2116C lsr.w #1,d3 bra.s loc_21170 ; --------------------------------------------------------------------------- loc_2116C: ; CODE XREF: sub_21094+D2j move.w #$500,d3 loc_21170: ; CODE XREF: sub_21094+D6j tblu.b (ETC_ENGINE_AIR_KV_VEH_SPEED_GOV_INT_GAIN).l,d3 ; Integral gain value for the PID vehicle speed governor indexed withDesired_Throttle_Position. ; Percent_Vs_VehSpd_Int_Gain move.w #$FF,d4 andi.w #$FF,d3 muls.w (word_FFFFA84C).w,d3 add.l d3,d3 divs.w d4,d3 bvc.s loc_21192 swap d3 eor.w d4,d3 bmi.s loc_211A6 bra.s loc_211A0 ; --------------------------------------------------------------------------- loc_21192: ; CODE XREF: sub_21094+F4j cmpi.w #$1400,d3 bgt.s loc_211A0 cmpi.w #$EC00,d3 blt.s loc_211A6 bra.s loc_211AA ; --------------------------------------------------------------------------- loc_211A0: ; CODE XREF: sub_21094+FCj ; sub_21094+102j move.w #$1400,d3 bra.s loc_211AA ; --------------------------------------------------------------------------- loc_211A6: ; CODE XREF: sub_21094+FAj ; sub_21094+108j move.w #$EC00,d3 loc_211AA: ; CODE XREF: sub_21094+10Aj ; sub_21094+110j add.w (word_FFFFA82E).w,d3 cmpi.w #$7FFF,d3 bhi.s loc_211C0 cmpi.w #$1400,d3 bls.s loc_211C2 move.w #$1400,d3 bra.s loc_211C2 ; --------------------------------------------------------------------------- loc_211C0: ; CODE XREF: sub_21094+11Ej clr.w d3 loc_211C2: ; CODE XREF: sub_21094+124j ; sub_21094+12Aj move.w d3,(word_FFFFA82E).w move.w #$4FB,d4 clr.w d5 cmpi.w #$F900,(word_FFFFA84C).w blt.s loc_211EE move.l #$700,d0 cmp.w (word_FFFFA84C).w,d0 ble.s loc_211EA move.w (word_FFFFA84C).w,d5 ext.l d5 add.l d0,d5 bra.s loc_211EE ; --------------------------------------------------------------------------- loc_211EA: ; CODE XREF: sub_21094+14Aj move.w #$E00,d5 loc_211EE: ; CODE XREF: sub_21094+13Ej ; sub_21094+154j tblu.b (ETC_ENGINE_AIR_KV_VEH_SPEED_GOV_PROP_GAIN).l,d5 ; Proportional gain value for the PID vehicle speed governor indexedwith Vehicle speed error. ; MPH_S_Vs_VehSpd_Prop_Gain andi.w #$FF,d5 muls.w (word_FFFFA84C).w,d5 asl.l #4,d5 divs.w d4,d5 bvc.s loc_2120C swap d5 eor.w d4,d5 bmi.s loc_21220 bra.s loc_2121A ; --------------------------------------------------------------------------- loc_2120C: ; CODE XREF: sub_21094+16Ej cmpi.w #$1400,d5 bgt.s loc_2121A cmpi.w #$EC00,d5 blt.s loc_21220 bra.s loc_21224 ; --------------------------------------------------------------------------- loc_2121A: ; CODE XREF: sub_21094+176j ; sub_21094+17Cj move.w #$1400,d5 bra.s loc_21224 ; --------------------------------------------------------------------------- loc_21220: ; CODE XREF: sub_21094+174j ; sub_21094+182j move.w #$EC00,d5 loc_21224: ; CODE XREF: sub_21094+184j ; sub_21094+18Aj move.w d5,(word_FFFFA848).w clr.w d5 move.b (ETC_ENGINE_AIR_KE_VEH_SPEED_DERIVATIVE_GAIN).l,d5 ; The gain coefficient in the Vehicle speed gov derivative term ; Vehicle_Spd_Gain_Type move.w (word_8A830).l,d4 muls.w (word_FFFFA81E).w,d4 divs.w #$A,d4 cmpi.w #$C8,d4 ; '?' bgt.s loc_2124C cmpi.w #$FF38,d4 blt.s loc_21252 bra.s loc_21256 ; --------------------------------------------------------------------------- loc_2124C: ; CODE XREF: sub_21094+1AEj move.w #$C8,d4 ; '?' bra.s loc_21256 ; --------------------------------------------------------------------------- loc_21252: ; CODE XREF: sub_21094+1B4j move.w #$FF38,d4 loc_21256: ; CODE XREF: sub_21094+1B6j ; sub_21094+1BCj muls.w d4,d5 moveq #$19,d4 muls.l d5,d4 divs.w #$F9,d4 ; '?' move.w d4,(word_FFFFA84A).w move.w #$1400,d5 cmp.w d3,d5 beq.s loc_212D2 move.w (VEH_SPEED_KE_VEHICLE_SPEED_LIMIT).l,d3 ; limit below which the ETC governor attempts to keep the vehicle speed ; MPH clr.b d4 tst.b (byte_FFFFAEC2).w bne.s loc_21288 move.w (word_FFFFAEBC).w,d0 cmp.w (VEH_SPEED_KE_RTD_FAULT_ETC_GOV_MAX_SPEED).l,d0 bhi.s loc_2128A loc_21288: ; CODE XREF: sub_21094+1E6j addq.b #1,d4 loc_2128A: ; CODE XREF: sub_21094+1F2j and.b (byte_FFFF820A).w,d4 move.b d4,(byte_FFFFAEC2).w cmp.w (word_FFFFAB82).w,d3 bls.s loc_2129C move.w (word_FFFFAB82).w,d3 loc_2129C: ; CODE XREF: sub_21094+202j cmp.w (word_FFFFB1D0).w,d3 bls.s loc_212A6 move.w (word_FFFFB1D0).w,d3 loc_212A6: ; CODE XREF: sub_21094+20Cj tst.b (byte_FFFFAEC2).w beq.s loc_212BA cmp.w (VEH_SPEED_KE_RTD_FAULT_ETC_GOV_MAX_SPEED).l,d3 bls.s loc_212BA move.w (VEH_SPEED_KE_RTD_FAULT_ETC_GOV_MAX_SPEED).l,d3 loc_212BA: ; CODE XREF: sub_21094+216j ; sub_21094+21Ej sub.w (ETC_ENGINE_AIR_KE_VEH_SPD_GOV_EXIT_HYSTERESIS).l,d3 ; Exit vehicle speed gov when speed drops this amout below Vehicle_ Speed_Max_Limit and MPH_Gov is not the throt cmd source ; MPH bcc.s loc_212C4 clr.w d3 loc_212C4: ; CODE XREF: sub_21094+22Cj cmp.w (word_FFFFAEBE).w,d3 bls.s loc_212EA cmpi.b #8,(byte_FFFF9060).w beq.s loc_212EA loc_212D2: ; CODE XREF: sub_21094+1D8j clr.b (byte_FFFFA84F).w move.w d5,(word_FFFFA82E).w bra.s loc_212E2 ; --------------------------------------------------------------------------- loc_212DC: ; CODE XREF: sub_21094+C6j move.w #$1400,(word_FFFFA82E).w loc_212E2: ; CODE XREF: sub_21094+B8j ; sub_21094+C0j ... clr.w (word_FFFFA848).w clr.w (word_FFFFA84A).w loc_212EA: ; CODE XREF: sub_21094+234j ; sub_21094+23Cj move.w (word_FFFFA82E).w,d3 add.w (word_FFFFA848).w,d3 cmpi.w #$1400,d3 ble.s loc_212FC move.w #$1400,d3 loc_212FC: ; CODE XREF: sub_21094+262j add.w (word_FFFFA84A).w,d3 cmpi.w #$7FFF,d3 bhi.s loc_21312 cmpi.w #$1400,d3 bls.s loc_21314 move.w #$1400,d3 bra.s loc_21314 ; --------------------------------------------------------------------------- loc_21312: ; CODE XREF: sub_21094+270j clr.w d3 loc_21314: ; CODE XREF: sub_21094+276j ; sub_21094+27Cj move.w (ETC_ENGINE_AIR_KE_VEHICLE_SPD_GOV_AREA_MIN).l,d4 ; Lower clamp for governor speed area ; Percent cmp.w d4,d3 bcc.s loc_21324 move.w d4,(word_FFFFA81A).w bra.s loc_21328 ; --------------------------------------------------------------------------- loc_21324: ; CODE XREF: sub_21094+288j move.w d3,(word_FFFFA81A).w loc_21328: ; CODE XREF: sub_21094+28Ej move.l (sp)+,d0 rts ; End of function sub_21094 ; =============== S U B R O U T I N E ======================================= sub_2132C: ; CODE XREF: sub_20CB2+96p movem.l d0-d2,-(sp) move.w (word_FFFFAEBE).w,d1 move.b (byte_FFFFA59C).w,d2 cmp.w (ETC_ENGINE_AIR_KE_ACCEL_LOW_MPH_THRESHOLD).l,d1 ; Programmed acceleration low vehicle speed. ; MPH bcc.s loc_21348 move.w (ETC_ENGINE_AIR_KE_LOW_SPEED_ACCEL_RATE).l,d3 ; Programmed acceleration low vehicle speed acceleration rate. ; MPH_Per_Second_S bra.s loc_2135E ; --------------------------------------------------------------------------- loc_21348: ; CODE XREF: sub_2132C+12j cmp.w (ETC_ENGINE_AIR_KE_ACCEL_HIGH_MPH_THRESHOLD).l,d1 ; Programmed acceleration High vehicle speed. ; MPH bcc.s loc_21358 move.w (ETC_ENGINE_AIR_KE_MEDIUM_SPEED_ACCEL_RATE).l,d3 ; Programmed acceleration Medium vehicle speed acceleration rate. ; MPH_Per_Second_S bra.s loc_2135E ; --------------------------------------------------------------------------- loc_21358: ; CODE XREF: sub_2132C+22j move.w (ETC_ENGINE_AIR_KE_HIGH_SPEED_ACCEL_RATE).l,d3 ; Programmed acceleration High vehicle speed acceleration rate. ; MPH_Per_Second_S loc_2135E: ; CODE XREF: sub_2132C+1Aj ; sub_2132C+2Aj sub.w (word_FFFFA81E).w,d3 cmpi.w #$C8,d3 ; '?' bgt.s loc_21370 cmpi.w #$FF38,d3 blt.s loc_21376 bra.s loc_2137A ; --------------------------------------------------------------------------- loc_21370: ; CODE XREF: sub_2132C+3Aj move.w #$C8,d3 ; '?' bra.s loc_2137A ; --------------------------------------------------------------------------- loc_21376: ; CODE XREF: sub_2132C+40j move.w #$FF38,d3 loc_2137A: ; CODE XREF: sub_2132C+42j ; sub_2132C+48j move.b (byte_FFFFA850).w,d4 bne.s loc_213CE tst.w d3 bge.s loc_213CE tst.w d1 bls.s loc_213CE btst #5,d2 beq.s loc_213CE move.b #1,(byte_FFFFA850).w move.w (ThrottleArea1).w,d4 lsr.w #1,d4 move.w d4,(word_FFFFA832).w muls.w (ETC_ENGINE_AIR_KE_ACCEL_GOVERNOR_PROPORTIONAL_G).l,d3 ; Programmed acceleration proportional gain term. ; Percent_S moveq #$A,d4 divs.w d4,d3 bvc.s loc_213B2 swap d3 eor.w d4,d3 bmi.s loc_213C8 bra.s loc_213C2 ; --------------------------------------------------------------------------- loc_213B2: ; CODE XREF: sub_2132C+7Cj cmpi.w #$1400,d3 bgt.s loc_213C2 cmpi.w #$EC00,d3 blt.s loc_213C8 bra.w loc_21442 ; --------------------------------------------------------------------------- loc_213C2: ; CODE XREF: sub_2132C+84j ; sub_2132C+8Aj move.w #$1400,d3 bra.s loc_21442 ; --------------------------------------------------------------------------- loc_213C8: ; CODE XREF: sub_2132C+82j ; sub_2132C+90j move.w #$EC00,d3 bra.s loc_21442 ; --------------------------------------------------------------------------- loc_213CE: ; CODE XREF: sub_2132C+52j ; sub_2132C+56j ... tst.b d4 beq.s loc_2143A clr.w d5 move.b (ETC_ENGINE_AIR_KE_ACCEL_GOVERNOR_INTEGRAL_GAIN).l,d5 ; Programmed acceleration integral gain term. ; Vehicle_Accel_Int_Gain_Type muls.w d3,d5 moveq #$19,d0 muls.l d5,d0 divs.w #$F9,d0 ; '?' add.w (word_FFFFA832).w,d0 cmpi.w #$7FFF,d0 bhi.s loc_213FC cmpi.w #$1400,d0 bls.s loc_213FE move.w #$1400,d0 bra.s loc_213FE ; --------------------------------------------------------------------------- loc_213FC: ; CODE XREF: sub_2132C+C2j clr.w d0 loc_213FE: ; CODE XREF: sub_2132C+C8j ; sub_2132C+CEj move.w d0,(word_FFFFA832).w muls.w (ETC_ENGINE_AIR_KE_ACCEL_GOVERNOR_PROPORTIONAL_G).l,d3 ; Programmed acceleration proportional gain term. ; Percent_S moveq #$A,d4 divs.w d4,d3 bvc.s loc_21416 swap d3 eor.w d4,d3 bmi.s loc_2142A bra.s loc_21424 ; --------------------------------------------------------------------------- loc_21416: ; CODE XREF: sub_2132C+E0j cmpi.w #$1400,d3 bgt.s loc_21424 cmpi.w #$EC00,d3 blt.s loc_2142A bra.s loc_2142E ; --------------------------------------------------------------------------- loc_21424: ; CODE XREF: sub_2132C+E8j ; sub_2132C+EEj move.w #$1400,d3 bra.s loc_2142E ; --------------------------------------------------------------------------- loc_2142A: ; CODE XREF: sub_2132C+E6j ; sub_2132C+F4j move.w #$EC00,d3 loc_2142E: ; CODE XREF: sub_2132C+F6j ; sub_2132C+FCj cmpi.w #$1400,d0 bne.s loc_21442 clr.b (byte_FFFFA850).w bra.s loc_21442 ; --------------------------------------------------------------------------- loc_2143A: ; CODE XREF: sub_2132C+A4j move.w #$1400,(word_FFFFA832).w clr.w d3 loc_21442: ; CODE XREF: sub_2132C+92j ; sub_2132C+9Aj ... btst #5,d2 beq.s loc_21474 tst.w d1 bls.s loc_2146A add.w (word_FFFFA832).w,d3 cmpi.w #$7FFF,d3 bhi.s loc_21462 cmpi.w #$1400,d3 bls.s loc_21464 move.w #$1400,d3 bra.s loc_21464 ; --------------------------------------------------------------------------- loc_21462: ; CODE XREF: sub_2132C+128j clr.w d3 loc_21464: ; CODE XREF: sub_2132C+12Ej ; sub_2132C+134j move.w d3,(word_FFFFA81C).w bra.s loc_2147A ; --------------------------------------------------------------------------- loc_2146A: ; CODE XREF: sub_2132C+11Ej move.w (ETC_ENGINE_AIR_KE_LOW_SPEED_MAX_AREA).l,(word_FFFFA81C).w ; Clamp for max throttle commanded when vehicle speed is too low ; Percent bra.s loc_2147A ; --------------------------------------------------------------------------- loc_21474: ; CODE XREF: sub_2132C+11Aj move.w #$1400,(word_FFFFA81C).w loc_2147A: ; CODE XREF: sub_2132C+13Cj ; sub_2132C+146j movem.l (sp)+,d0-d2 rts ; End of function sub_2132C ; =============== S U B R O U T I N E ======================================= sub_21480: ; CODE XREF: OS1:loc_28B8Ep ; OS1:00028BC8p movea.w #$1400,a3 move.w a3,(word_FFFFA81C).w move.w a3,(word_FFFFA832).w move.w a3,(word_FFFFA818).w move.w a3,(word_FFFFA81A).w move.w a3,(word_FFFFA82E).w movea.w (word_FFFFA560).w,a2 move.w a2,(word_FFFFA834).w move.w a2,(word_FFFFA836).w move.w a2,(word_FFFFA838).w move.w a2,(word_FFFFA83A).w movea.w (word_FFFFAEBE).w,a2 move.w a2,(word_FFFFA820).w move.w a2,(word_FFFFA822).w move.w a2,(word_FFFFA824).w move.w (word_FFFFA822).w,(word_FFFFA826).w move.w (word_FFFFA822).w,(word_FFFFA828).w move.w (word_FFFFA822).w,(word_FFFFA82A).w move.w (word_FFFFA822).w,(word_FFFFA82C).w rts ; End of function sub_21480 ; =============== S U B R O U T I N E ======================================= sub_214D6: ; CODE XREF: OS1:loc_28C1Cp movea.w #$1400,a3 move.w a3,(word_FFFFA81C).w move.w a3,(word_FFFFA832).w move.w a3,(word_FFFFA818).w move.w a3,(word_FFFFA81A).w movea.w (word_FFFFA560).w,a2 move.w a2,(word_FFFFA834).w move.w a2,(word_FFFFA836).w move.w a2,(word_FFFFA838).w move.w a2,(word_FFFFA83A).w clr.b (byte_FFFFA850).w clr.b (byte_FFFFA84E).w rts ; End of function sub_214D6 ; =============== S U B R O U T I N E ======================================= sub_21508: ; CODE XREF: sub_229DE:loc_22B6Cp ; sub_22F92+8p ... clr.b d0 btst #2,(byte_FFFF803D).w bne.s loc_21542 btst #3,(byte_FFFF803D).w bne.s loc_21542 btst #4,(byte_FFFF803D).w bne.s loc_21542 btst #5,(byte_FFFF803D).w bne.s loc_21542 btst #6,(byte_FFFF803D).w bne.s loc_21542 btst #1,(byte_FFFF803D).w bne.s loc_21542 btst #0,(byte_FFFF803D).w beq.s locret_21544 loc_21542: ; CODE XREF: sub_21508+8j ; sub_21508+10j ... addq.b #1,d0 locret_21544: ; CODE XREF: sub_21508+38j rts ; End of function sub_21508 ; =============== S U B R O U T I N E ======================================= sub_21546: ; CODE XREF: sub_29320:loc_29408p move.l d0,-(sp) btst #6,(byte_FFFFD006).w sne d3 neg.b d3 seq d3 neg.b d3 tst.b (byte_FFFFB370).w beq.s loc_2157C tst.b (byte_FFFFB54B).w bne.s loc_2157C tst.b d3 bne.s loc_2157C bset #3,(byte_FFFF803D).w move.b #1,(byte_FFFF82C1).w move.w #$80,d0 ; '?' jsr sub_5F110 loc_2157C: ; CODE XREF: sub_21546+14j ; sub_21546+1Aj ... move.l (sp)+,d0 rts ; End of function sub_21546 ; =============== S U B R O U T I N E ======================================= sub_21580: ; CODE XREF: sub_286FA+1Cp movem.l d0-d1,-(sp) move.b (byte_FFFFB370).w,d0 and.b (byte_FFFF82BE).w,d0 beq.w loc_2165C tst.b (byte_FFFF82C0).w beq.w loc_2161C clr.b (byte_FFFF82C0).w moveq #5,d0 jsr sub_27590 btst #6,(byte_FFFFD006).w sne d3 neg.b d3 seq d3 neg.b d3 bne.s loc_2160A jsr (sub_1626).l jsr (sub_1634).l jsr sub_78E04 move.w d0,d1 loc_215C8: ; CODE XREF: sub_21580+88j jsr sub_78E04 sub.w d1,d0 cmpi.w #$4650,d0 bls.s loc_215DC cmpi.w #$4E20,d0 bcs.s loc_215E8 loc_215DC: ; CODE XREF: sub_21580+54j cmpi.w #$8CA0,d0 bls.s loc_215EE cmpi.w #$9470,d0 bcc.s loc_215EE loc_215E8: ; CODE XREF: sub_21580+5Aj jsr (sub_1626).l loc_215EE: ; CODE XREF: sub_21580+60j ; sub_21580+66j btst #6,(byte_FFFFD006).w sne d3 neg.b d3 seq d3 neg.b d3 beq.s loc_21604 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_21604: ; CODE XREF: sub_21580+7Cj cmpi.w #$BA40,d0 bls.s loc_215C8 loc_2160A: ; CODE XREF: sub_21580+32j move.w #$80,d0 ; '?' jsr sub_5F110 bset #3,(byte_FFFF803D).w bra.s loc_2165C ; --------------------------------------------------------------------------- loc_2161C: ; CODE XREF: sub_21580+14j move.b #1,(byte_FFFF82C0).w moveq #5,d0 jsr sub_27590 jsr (sub_1634).l jsr (sub_1626).l jsr sub_78E04 move.w d0,d1 loc_2163E: ; CODE XREF: sub_21580+CAj jsr sub_78E04 sub.w d1,d0 cmpi.w #$6590,d0 bls.s loc_2163E move.w #$80,d0 ; '?' jsr sub_5F110 bset #2,(byte_FFFF803D).w loc_2165C: ; CODE XREF: sub_21580+Cj ; sub_21580+9Aj movem.l (sp)+,d0-d1 rts ; End of function sub_21580 ; =============== S U B R O U T I N E ======================================= sub_21662: ; CODE XREF: OS1:00028B24p ; OS1:00028BB8p ... movem.l d1-d2/a0-a1,-(sp) tst.b (byte_FFFFB370).w beq.s loc_216E2 btst #2,(byte_FFFF803D).w bne.s loc_216A4 btst #3,(byte_FFFF803D).w bne.s loc_216A4 btst #4,(byte_FFFF803D).w bne.s loc_216A4 btst #5,(byte_FFFF803D).w bne.s loc_216A4 btst #6,(byte_FFFF803D).w bne.s loc_216A4 btst #1,(byte_FFFF803D).w bne.s loc_216A4 btst #0,(byte_FFFF803D).w beq.s loc_216E2 loc_216A4: ; CODE XREF: sub_21662+10j ; sub_21662+18j ... tst.b (byte_FFFF82BE).w beq.s loc_216E8 jsr sub_78D62 move.b #1,(byte_FFFFBEF1).w tst.b d0 beq.s loc_216DC move.l (dword_FF86A6).l,-(sp) move.w #$178,d2 moveq #$56,d1 ; 'V' movea.l #unk_FF8088,a1 move.w #$88,d0 ; '?' movea.l #unk_FF8000,a0 jsr sub_7792C loc_216DC: ; CODE XREF: sub_21662+56j clr.b (byte_FFFF82BE).w bra.s loc_216E8 ; --------------------------------------------------------------------------- loc_216E2: ; CODE XREF: sub_21662+8j ; sub_21662+40j move.b #1,(byte_FFFF82BE).w loc_216E8: ; CODE XREF: sub_21662+46j ; sub_21662+7Ej movem.l (sp)+,d1-d2/a0-a1 rts ; End of function sub_21662 ; =============== S U B R O U T I N E ======================================= sub_216EE: ; CODE XREF: DoLoopC+1BEp movem.l d0-d2,-(sp) tst.b (byte_FFFFB370).w beq.w loc_21808 move.b (byte_FFFFFA21).w,d3 cmp.b (byte_164C).w,d3 beq.s loc_2172E move.b (byte_FFFFBEF6).w,d3 addi.b #$A,d3 bcc.s loc_21712 move.b #$FF,d3 loc_21712: ; CODE XREF: sub_216EE+1Ej move.b d3,(byte_FFFFBEF6).w cmpi.b #$3C,d3 ; '<' bls.s loc_2173C bset #4,(byte_FFFF803D).w move.w #$80,d0 ; '?' jsr sub_5F110 bra.s loc_2173C ; --------------------------------------------------------------------------- loc_2172E: ; CODE XREF: sub_216EE+14j move.b (byte_FFFFBEF6).w,d3 subq.b #1,d3 bcc.s loc_21738 clr.b d3 loc_21738: ; CODE XREF: sub_216EE+46j move.b d3,(byte_FFFFBEF6).w loc_2173C: ; CODE XREF: sub_216EE+2Cj ; sub_216EE+3Ej move.w (word_FFFFFA04).w,d3 cmp.w (word_164E).w,d3 beq.s loc_21770 move.b (byte_FFFFBEF7).w,d3 addi.b #$A,d3 bcc.s loc_21754 move.b #$FF,d3 loc_21754: ; CODE XREF: sub_216EE+60j move.b d3,(byte_FFFFBEF7).w cmpi.b #$3C,d3 ; '<' bls.s loc_2177E bset #4,(byte_FFFF803D).w move.w #$80,d0 ; '?' jsr sub_5F110 bra.s loc_2177E ; --------------------------------------------------------------------------- loc_21770: ; CODE XREF: sub_216EE+56j move.b (byte_FFFFBEF7).w,d3 subq.b #1,d3 bcc.s loc_2177A clr.b d3 loc_2177A: ; CODE XREF: sub_216EE+88j move.b d3,(byte_FFFFBEF7).w loc_2177E: ; CODE XREF: sub_216EE+6Ej ; sub_216EE+80j move.w (word_FFFFFA24).w,d3 cmp.w (word_FFFFBF54).w,d3 beq.s loc_217B2 move.b (byte_FFFFBEF9).w,d3 addi.b #$A,d3 bcc.s loc_21796 move.b #$FF,d3 loc_21796: ; CODE XREF: sub_216EE+A2j move.b d3,(byte_FFFFBEF9).w cmpi.b #$3C,d3 ; '<' bls.s loc_217C0 bset #4,(byte_FFFF803D).w move.w #$80,d0 ; '?' jsr sub_5F110 bra.s loc_217C0 ; --------------------------------------------------------------------------- loc_217B2: ; CODE XREF: sub_216EE+98j move.b (byte_FFFFBEF9).w,d3 subq.b #1,d3 bcc.s loc_217BC clr.b d3 loc_217BC: ; CODE XREF: sub_216EE+CAj move.b d3,(byte_FFFFBEF9).w loc_217C0: ; CODE XREF: sub_216EE+B0j ; sub_216EE+C2j move.w (word_FFFFFA22).w,d3 cmp.w (word_1648).w,d3 beq.s loc_217F4 move.b (byte_FFFFBEF8).w,d3 addi.b #$A,d3 bcc.s loc_217D8 move.b #$FF,d3 loc_217D8: ; CODE XREF: sub_216EE+E4j move.b d3,(byte_FFFFBEF8).w cmpi.b #$3C,d3 ; '<' bls.s loc_21802 bset #4,(byte_FFFF803D).w move.w #$80,d0 ; '?' jsr sub_5F110 bra.s loc_21802 ; --------------------------------------------------------------------------- loc_217F4: ; CODE XREF: sub_216EE+DAj move.b (byte_FFFFBEF8).w,d3 subq.b #1,d3 bcc.s loc_217FE clr.b d3 loc_217FE: ; CODE XREF: sub_216EE+10Cj move.b d3,(byte_FFFFBEF8).w loc_21802: ; CODE XREF: sub_216EE+F2j ; sub_216EE+104j move.b #1,(byte_FFFFBEF0).w loc_21808: ; CODE XREF: sub_216EE+8j movem.l (sp)+,d0-d2 rts ; End of function sub_216EE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2180E: ; CODE XREF: OS1:loc_2B742p var_10 = -$10 var_C = -$C var_8 = -8 var_4 = -4 link a6,#-$10 movem.l d0-d2/a0,-(sp) clr.l var_10(a6) move.l var_10(a6),var_C(a6) move.l var_C(a6),var_8(a6) move.l (dword_FFFFFE14).w,var_4(a6) andi.b #$3F,var_8+3(a6) ; '?' ori.b #$40,var_8+3(a6) ; '@' move.l var_4(a6),(dword_FFFFFE14).w movea.l var_8(a6),a2 move.l a2,var_10(a6) move.l a2,var_C(a6) loc_2184A: ; CODE XREF: sub_2180E+40j tst.l (dword_FFFFFE18).w bne.s loc_2184A move.l var_C(a6),(dword_FFFFFE18).w loc_21856: ; CODE XREF: sub_2180E+4Cj tst.l (dword_FFFFFE18).w bne.s loc_21856 move.w (word_FFFFFF34).w,d2 movea.w (word_FFFFBEF2).w,a0 move.l d2,d3 sub.w a0,d3 move.l d2,d1 sub.w (word_FFFFBEF4).w,d1 cmp.w (word_8A812).l,d3 bcc.s loc_218AE tst.b (byte_FFFFBEFB).w beq.s loc_21896 cmp.w (word_8A816).l,d1 bcs.s loc_21896 cmp.w (word_8A818).l,d1 bhi.s loc_21896 loc_2188C: ; CODE XREF: sub_2180E+BCj clr.b (byte_FFFFBEFC).w clr.b (byte_FFFFBEFB).w bra.s loc_218EE ; --------------------------------------------------------------------------- loc_21896: ; CODE XREF: sub_2180E+6Cj ; sub_2180E+74j ... move.b #1,(byte_FFFFBEFC).w clr.b (byte_FFFFBEFB).w loc_218A0: ; CODE XREF: sub_2180E+C8j move.b (byte_FFFFBEFA).w,d3 addq.b #7,d3 bcc.s loc_218EA move.b #$FF,d3 bra.s loc_218EA ; --------------------------------------------------------------------------- loc_218AE: ; CODE XREF: sub_2180E+66j cmp.w (word_8A814).l,d3 bls.s loc_218D8 tst.b (byte_FFFFBEFC).w beq.s loc_218CC cmp.w (word_8A816).l,d1 bcs.s loc_218CC cmp.w (word_8A818).l,d1 bls.s loc_2188C loc_218CC: ; CODE XREF: sub_2180E+ACj ; sub_2180E+B4j clr.b (byte_FFFFBEFC).w move.b #1,(byte_FFFFBEFB).w bra.s loc_218A0 ; --------------------------------------------------------------------------- loc_218D8: ; CODE XREF: sub_2180E+A6j clr.b (byte_FFFFBEFC).w clr.b (byte_FFFFBEFB).w move.b (byte_FFFFBEFA).w,d3 subq.b #1,d3 bcc.s loc_218EA clr.b d3 loc_218EA: ; CODE XREF: sub_2180E+98j ; sub_2180E+9Ej ... move.b d3,(byte_FFFFBEFA).w loc_218EE: ; CODE XREF: sub_2180E+86j move.b (byte_FFFFBEFA).w,d1 cmpi.b #$70,d1 ; 'p' bls.s loc_21910 btst #4,(byte_FFFF803D).w bne.s loc_21910 bset #4,(byte_FFFF803D).w move.w #$80,d0 ; '?' jsr sub_5F110 loc_21910: ; CODE XREF: sub_2180E+E8j ; sub_2180E+F0j move.w a0,(word_FFFFBEF4).w move.w d2,(word_FFFFBEF2).w cmp.b (byte_FFFF82BF).w,d1 bls.s loc_21922 move.b d1,(byte_FFFF82BF).w loc_21922: ; CODE XREF: sub_2180E+10Ej movem.l (sp)+,d0-d2/a0 unlk a6 rts ; End of function sub_2180E ; =============== S U B R O U T I N E ======================================= sub_2192A: ; CODE XREF: sub_23282+Cp clr.b (byte_FFFF82BF).w rts ; End of function sub_2192A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_21930: ; CODE XREF: DoLoopB+86p var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a1,-(sp) jsr sub_20000 move.w (word_FFFFA590).w,d3 andi.w #$3FF,d3 move.w d3,(word_FFFF9000).w move.b (byte_FFFFA59C).w,(byte_FFFF9002).w jsr sub_242EE move.b d0,(byte_FFFF9003).w move.b (byte_FFFFAF3B).w,(byte_FFFF9004).w move.b (byte_FFFFA59D).w,(byte_FFFF9005).w move.w (word_FFFF82D2).w,(word_FFFF9006).w move.w (word_FFFF9000).w,d0 add.w d0,d0 move.w d0,(word_FFFFA00C).w move.b (byte_FFFF9003).w,d0 lsl.b #5,d0 andi.b #$E0,d0 andi.b #$1F,(byte_FFFFA006).w or.b d0,(byte_FFFFA006).w move.b (byte_FFFF9004).w,d0 eori.b #1,d0 move.b d0,(byte_FFFFA005).w move.b (byte_FFFF9005).w,d0 eori.b #1,d0 move.b d0,(byte_FFFFA004).w move.w (word_FFFF9006).w,d0 add.w d0,d0 move.w d0,(word_FFFFA00E).w btst #0,(byte_FFFF9002).w bne.s loc_219BC bset #7,(byte_FFFFA007).w bra.s loc_219C2 ; --------------------------------------------------------------------------- loc_219BC: ; CODE XREF: sub_21930+82j bclr #7,(byte_FFFFA007).w loc_219C2: ; CODE XREF: sub_21930+8Aj btst #4,(byte_FFFF9002).w bne.s loc_219D2 bset #3,(byte_FFFFA007).w bra.s loc_219D8 ; --------------------------------------------------------------------------- loc_219D2: ; CODE XREF: sub_21930+98j bclr #3,(byte_FFFFA007).w loc_219D8: ; CODE XREF: sub_21930+A0j btst #5,(byte_FFFF9002).w bne.s loc_219E8 bset #2,(byte_FFFFA007).w bra.s loc_219EE ; --------------------------------------------------------------------------- loc_219E8: ; CODE XREF: sub_21930+AEj bclr #2,(byte_FFFFA007).w loc_219EE: ; CODE XREF: sub_21930+B6j moveq #1,d0 jsr DBW_Breadcrumb btst #4,(byte_FFFF9002).w beq.s loc_21A06 move.w #$3E8,(word_FFFF82CA).w bra.s loc_21A22 ; --------------------------------------------------------------------------- loc_21A06: ; CODE XREF: sub_21930+CCj move.w (word_FFFF9000).w,d3 cmp.w (word_FFFF82CA).w,d3 bcc.s loc_21A22 btst #0,(byte_FFFF9002).w bne.s loc_21A22 tst.b (byte_FFFF9005).w beq.s loc_21A22 move.w d3,(word_FFFF82CA).w loc_21A22: ; CODE XREF: sub_21930+D4j ; sub_21930+DEj ... clr.w d3 sub.w (word_FFFF82CA).w,d3 move.w d3,(word_FFFF82CC).w move.w (word_FFFF9000).w,d3 sub.w (word_FFFF82CA).w,d3 bcc.s loc_21A38 clr.w d3 loc_21A38: ; CODE XREF: sub_21930+104j move.w d3,(word_FFFF9018).w move.w #$3FD,d7 mulu.w d7,d3 move.w #$CC,d4 ; '?' divu.w d4,d3 mulu.w (ETC_PEDAL_KE_PEDAL_ROTATION_SCALER).l,d3 ; Indicated pedal position to load scaler. ; Scaler_4 lsr.l #8,d3 lsr.l #3,d3 cmpi.w #$1800,d3 bls.s loc_21A5C move.w #$1800,d3 loc_21A5C: ; CODE XREF: sub_21930+126j move.w d3,(word_FFFF901A).w move.w (word_FFFF9000).w,d3 mulu.w d7,d3 divu.w d4,d3 mulu.w (ETC_PEDAL_KE_PEDAL_ROTATION_SCALER).l,d3 ; Indicated pedal position to load scaler. ; Scaler_4 lsr.l #8,d3 lsr.l #3,d3 cmpi.w #$1400,d3 bls.s loc_21A7C move.w #$1400,d3 loc_21A7C: ; CODE XREF: sub_21930+146j move.w d3,(word_FFFF900C).w move.w (word_FFFF901A).w,d3 sub.w (ETC_PEDAL_KE_RELAXED_PEDAL_DEADBAND).l,d3 ; Deadband subrtracted from pedal position for pedal load ; Percent bcc.s loc_21A8E clr.w d3 loc_21A8E: ; CODE XREF: sub_21930+15Aj move.w d3,(word_FFFF901C).w tst.w d3 bne.s loc_21A9C clr.w (word_FFFF900A).w bra.s loc_21AF8 ; --------------------------------------------------------------------------- loc_21A9C: ; CODE XREF: sub_21930+164j move.w (word_FFFF900A).w,d1 cmp.w d1,d3 bhi.s loc_21AB8 move.w (word_FFFF901C).w,d3 cmpi.w #$1400,d3 bls.s loc_21AB2 move.w #$1400,d3 loc_21AB2: ; CODE XREF: sub_21930+17Cj ; sub_21930+1C6j move.w d3,(word_FFFF900A).w bra.s loc_21AF8 ; --------------------------------------------------------------------------- loc_21AB8: ; CODE XREF: sub_21930+172j move.w (word_FFFF901C).w,d3 move.l d3,d5 cmpi.w #$1400,d5 bls.s loc_21AC8 move.w #$1400,d5 loc_21AC8: ; CODE XREF: sub_21930+192j movea.w #$20FF,a2 clr.w d0 asl.w #3,d5 andi.l #$FFFF,d5 moveq #5,d2 divu.w d2,d5 tblu.w (ETC_PEDAL_KV_PEDAL_HYSTERESIS).l,d5 ; Lookup for hysteresis in indicated pedal position vs. position. ; Percent_Vs_Percent_Table sub.w d5,d3 bcs.s loc_21AF2 cmpi.w #$1400,d3 bls.s loc_21AF4 move.w #$1400,d3 bra.s loc_21AF4 ; --------------------------------------------------------------------------- loc_21AF2: ; CODE XREF: sub_21930+1B4j move.l d0,d3 loc_21AF4: ; CODE XREF: sub_21930+1BAj ; sub_21930+1C0j cmp.w d1,d3 bhi.s loc_21AB2 loc_21AF8: ; CODE XREF: sub_21930+16Aj ; sub_21930+186j btst #5,(byte_FFFF9002).w bne.s loc_21B14 move.w (GlobalClock).w,(word_FFFF9016).w tst.w (word_FFFF900A).w bne.s loc_21B70 move.b (byte_FFFF9003).w,(byte_FFFF900E).w bra.s loc_21B70 ; --------------------------------------------------------------------------- loc_21B14: ; CODE XREF: sub_21930+1CEj moveq #4,d5 cmp.b (byte_FFFF900E).w,d5 beq.s loc_21B70 tst.b (byte_FFFF9004).w bne.s loc_21B28 tst.w (word_FFFF900A).w bne.s loc_21B2E loc_21B28: ; CODE XREF: sub_21930+1F0j ; sub_21930+23Ej move.b d5,(byte_FFFF900E).w bra.s loc_21B70 ; --------------------------------------------------------------------------- loc_21B2E: ; CODE XREF: sub_21930+1F6j move.w (word_FFFF9016).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 clr.l d2 move.w d3,d2 add.l d2,d2 move.l d2,(dword_FFFFA008).w move.w #$800,d2 andi.l #$FFFF,d3 asl.l #8,d3 asl.l #3,d3 divu.w (ETC_PEDAL_KE_PEDAL_TRANSITION_INTERVAL).l,d3 ; Time period for transitioning to reduced or failed performance ; Seconds bvs.s loc_21B62 cmpi.w #$800,d3 bls.s loc_21B64 loc_21B62: ; CODE XREF: sub_21930+22Aj move.l d2,d3 loc_21B64: ; CODE XREF: sub_21930+230j sub.w d3,d2 move.w d2,d3 move.w d3,(word_FFFF9012).w tst.w d3 beq.s loc_21B28 loc_21B70: ; CODE XREF: sub_21930+1DAj ; sub_21930+1E2j ... move.b (byte_FFFF900E).w,d1 cmpi.b #1,d1 bhi.w loc_21C30 beq.s loc_21BD8 move.w (word_FFFF9006).w,d3 clr.w d4 move.w #$C00,d6 cmp.w d3,d6 bls.s loc_21B90 move.l d4,d3 bra.s loc_21B92 ; --------------------------------------------------------------------------- loc_21B90: ; CODE XREF: sub_21930+25Aj sub.w d6,d3 loc_21B92: ; CODE XREF: sub_21930+25Ej movea.w #0,a2 moveq #$21,d2 ; '!' move.l d3,d1 move.l a2,d0 movea.l #$A90C,a1 movea.l a1,a0 jsr sub_2696E move.w d0,d6 move.w (word_FFFF900A).w,d4 move.w (word_FFFF9006).w,d3 clr.w d5 move.w #$C00,d0 cmp.w d3,d0 bls.s loc_21BC2 move.l d5,d3 bra.s loc_21BC4 ; --------------------------------------------------------------------------- loc_21BC2: ; CODE XREF: sub_21930+28Cj sub.w d0,d3 loc_21BC4: ; CODE XREF: sub_21930+290j asl.w #3,d4 andi.l #$FFFF,d4 divu.w #5,d4 moveq #$21,d2 ; '!' move.l d3,d1 move.l d4,d0 bra.s loc_21C26 ; --------------------------------------------------------------------------- loc_21BD8: ; CODE XREF: sub_21930+24Cj move.w (word_FFFF9006).w,d1 clr.w d3 move.w #$C00,d6 cmp.w d1,d6 bls.s loc_21BEA move.l d3,d1 bra.s loc_21BEC ; --------------------------------------------------------------------------- loc_21BEA: ; CODE XREF: sub_21930+2B4j sub.w d6,d1 loc_21BEC: ; CODE XREF: sub_21930+2B8j move.l d3,d0 moveq #$21,d2 ; '!' movea.l #$ABA0,a1 movea.l a1,a0 jsr sub_2696E move.w d0,d6 move.w (word_FFFF900A).w,d0 move.w (word_FFFF9006).w,d1 clr.w d3 move.w #$C00,d4 cmp.w d1,d4 bls.s loc_21C16 move.l d3,d1 bra.s loc_21C18 ; --------------------------------------------------------------------------- loc_21C16: ; CODE XREF: sub_21930+2E0j sub.w d4,d1 loc_21C18: ; CODE XREF: sub_21930+2E4j asl.w #3,d0 andi.l #$FFFF,d0 divu.w #5,d0 moveq #$21,d2 ; '!' loc_21C26: ; CODE XREF: sub_21930+2A6j movea.l a1,a0 jsr sub_2696E bra.s loc_21C52 ; --------------------------------------------------------------------------- loc_21C30: ; CODE XREF: sub_21930+248j move.w (ETC_PEDAL_KV_PEDAL_AREA_REDUCED).l,d6 ; Lookup reduced performance desired throttle area vs pedal load. ; Percent_Area_Vs_Percent_Table move.w (word_FFFF900A).w,d0 asl.w #3,d0 andi.l #$FFFF,d0 divu.w #5,d0 movea.l #$A886,a0 jsr sub_269BA loc_21C52: ; CODE XREF: sub_21930+2FEj move.w d0,(word_FFFF901E).w tst.w d6 bls.s loc_21C5E clr.w (word_FFFF901E).w loc_21C5E: ; CODE XREF: sub_21930+328j move.w (word_FFFF901E).w,(word_FFFF9008).w moveq #1,d0 jsr sub_20B06 moveq #2,d0 jsr DBW_Breadcrumb jsr sub_21CCA moveq #2,d0 jsr sub_20B06 movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_21930 ; =============== S U B R O U T I N E ======================================= sub_21C8A: ; CODE XREF: DoLoopF+314p movem.l d0/a0,-(sp) cmpi.b #2,(ThrottleControlMode2?).w bne.s loc_21CBA tst.w (word_FFFF9008).w bne.s loc_21CBA tst.b (byte_FFFF9010).w bne.s loc_21CBA move.w (ETC_PEDAL_KE_BATTERY_SAVER_TIME).l,d0 ; Engine / Pedal inactivity time limit for battery saver enable. ; Seconds movea.l #unk_FF9014,a0 jsr sub_276D4 move.b d0,(byte_FFFF900F).w bra.s loc_21CC4 ; --------------------------------------------------------------------------- loc_21CBA: ; CODE XREF: sub_21C8A+Aj ; sub_21C8A+10j ... clr.b (byte_FFFF900F).w move.w (GlobalClock).w,(word_FFFF9014).w loc_21CC4: ; CODE XREF: sub_21C8A+2Ej movem.l (sp)+,d0/a0 rts ; End of function sub_21C8A ; =============== S U B R O U T I N E ======================================= sub_21CCA: ; CODE XREF: sub_21930+344p movem.l d0-d2/d5/a4,-(sp) lea (unk_FFA004).l,a4 btst #3,byte_FFA007-unk_FFA004(a4) bne.s loc_21CE2 move.w #$7D0,d0 bra.s loc_21D02 ; --------------------------------------------------------------------------- loc_21CE2: ; CODE XREF: sub_21CCA+10j move.w 8(a4),d1 move.w (word_FF86B4).l,d0 btst #7,3(a4) beq.s loc_21D08 btst #0,0(a4) bne.s loc_21D08 cmp.w d1,d0 bls.s loc_21D08 move.w d1,d0 loc_21D02: ; CODE XREF: sub_21CCA+16j move.w d0,(word_FF86B4).l loc_21D08: ; CODE XREF: sub_21CCA+28j ; sub_21CCA+30j ... move.w d0,d1 neg.w d1 move.w d1,(word_FF86B6).l move.w 8(a4),d2 sub.w d0,d2 bcs.s loc_21D1C bra.s loc_21D1E ; --------------------------------------------------------------------------- loc_21D1C: ; CODE XREF: sub_21CCA+4Ej clr.w d2 loc_21D1E: ; CODE XREF: sub_21CCA+50j move.w d2,(word_FFFFA010).w move.w (ETC_R_PEDAL_KE_R_PEDAL_ROTATION_SCALER).l,d3 ; REDUNDANT Indicated pedal position to Rotation scaler. ; R_Scaler_4 mulu.w #$3FD,d2 divu.w #$CC,d2 ; '?' andi.w #$FFFE,d2 mulu.w d3,d2 divu.w #$1000,d2 andi.w #$FFFE,d2 move.w #$3000,d4 cmp.w d2,d4 bcc.s loc_21D48 move.w d4,d2 loc_21D48: ; CODE XREF: sub_21CCA+7Aj sub.w (ETC_R_PEDAL_KE_R_RELAXED_PEDAL_DEADBAND).l,d2 ; REDUNDANT Deadband subrtracted from pedal position for the pedal load ; R_Percent bhi.s loc_21D5A clr.w d2 clr.w d1 move.w d2,(word_FFFFA000).w bra.s loc_21DAE ; --------------------------------------------------------------------------- loc_21D5A: ; CODE XREF: sub_21CCA+84j move.w #$2800,d5 move.w d2,(word_FFFFA000).w move.w (word_FFFFA014).w,d1 cmp.w d2,d1 bcs.s loc_21D6C bra.s loc_21DA6 ; --------------------------------------------------------------------------- loc_21D6C: ; CODE XREF: sub_21CCA+9Ej cmp.w d2,d5 bcc.s loc_21D74 move.w d5,d4 bra.s loc_21D76 ; --------------------------------------------------------------------------- loc_21D74: ; CODE XREF: sub_21CCA+A4j move.w d2,d4 loc_21D76: ; CODE XREF: sub_21CCA+A8j lea (ETC_R_PEDAL_KV_R_PEDAL_HYSTERESIS).l,a3 ; REDUNDANT Lookup for hysteresis in indicated pedal position vs. position. ; R_Percent_Vs_R_Percent_Table move.l #$FFFF,d3 mulu.w #4,d4 and.l d3,d4 divu.w #5,d4 tblun.w (a3),d4 lsr.l #8,d4 addi.w #1,d4 andi.w #$FFFE,d4 sub.w d4,d2 bcs.s loc_21DA0 bra.s loc_21DA2 ; --------------------------------------------------------------------------- loc_21DA0: ; CODE XREF: sub_21CCA+D2j clr.w d2 loc_21DA2: ; CODE XREF: sub_21CCA+D4j cmp.w d1,d2 bls.s loc_21DB4 loc_21DA6: ; CODE XREF: sub_21CCA+A0j cmp.w d2,d5 bcc.s loc_21DAC move.w d5,d2 loc_21DAC: ; CODE XREF: sub_21CCA+DEj move.w d2,d1 loc_21DAE: ; CODE XREF: sub_21CCA+8Ej move.w d1,(word_FFA014).l loc_21DB4: ; CODE XREF: sub_21CCA+DAj move.b (byte_FFFFA018).w,d2 btst #2,3(a4) bne.w loc_21E20 cmpi.b #$80,d2 beq.w loc_21E2E tst.b 1(a4) beq.s loc_21DD4 tst.w d1 bne.s loc_21DDC loc_21DD4: ; CODE XREF: sub_21CCA+104j move.b #$80,d2 bra.w loc_21E2A ; --------------------------------------------------------------------------- loc_21DDC: ; CODE XREF: sub_21CCA+108j move.l 4(a4),d3 move.l #$1000,d4 mulu.l d4,d3 divu.l (ETC_R_PEDAL_KE_R_PEDAL_TRANSITION_INTERVAL).l,d3 ; REDUNDANT time period for transitioning to reduced or failed performance ; R_Seconds bvc.s loc_21DFC loc_21DF4: ; CODE XREF: sub_21CCA+138j move.l #$2000,d3 bra.s loc_21E04 ; --------------------------------------------------------------------------- loc_21DFC: ; CODE XREF: sub_21CCA+128j cmpi.l #$2000,d3 bhi.s loc_21DF4 loc_21E04: ; CODE XREF: sub_21CCA+130j andi.w #$FFFE,d3 move.w #$1000,d5 sub.w d3,d5 bvc.s loc_21E14 move.w #$E000,d5 loc_21E14: ; CODE XREF: sub_21CCA+144j move.w d5,(word_FFFFA016).w bgt.s loc_21E2E move.b #$80,d2 bra.s loc_21E2A ; --------------------------------------------------------------------------- loc_21E20: ; CODE XREF: sub_21CCA+F4j tst.w d1 beq.s loc_21E26 bra.s loc_21E2E ; --------------------------------------------------------------------------- loc_21E26: ; CODE XREF: sub_21CCA+158j move.b 2(a4),d2 loc_21E2A: ; CODE XREF: sub_21CCA+10Ej ; sub_21CCA+154j move.b d2,(byte_FFFFA018).w loc_21E2E: ; CODE XREF: sub_21CCA+FCj ; sub_21CCA+14Ej ... clr.l d3 clr.l d4 clr.l d5 clr.l d6 clr.l d7 move.w d1,d5 andi.w #$FFFE,d5 move.l #$FFFF,d3 mulu.w #4,d5 and.l d3,d5 divu.w #5,d5 move.w d5,d1 cmpi.b #$80,d2 bne.s loc_21E72 lea (ETC_R_PEDAL_KV_R_PEDAL_AREA_REDUCED).l,a3 ; REDUNDANT Lookup reduced performance desired throttle area vs pedal load. ; R_Percent_Area_Vs_R_Percnt_Table move.w (a3),d3 tst.w d3 bne.w loc_21F20 tblun.w (a3),d5 lsr.l #8,d5 andi.w #$FFFE,d5 bra.w loc_21F22 ; --------------------------------------------------------------------------- loc_21E72: ; CODE XREF: sub_21CCA+18Aj clr.l d6 move.w $A(a4),d6 andi.w #$FFFE,d6 move.w #$1800,d7 cmp.w d6,d7 bls.s loc_21E88 clr.l d6 bra.s loc_21E8A ; --------------------------------------------------------------------------- loc_21E88: ; CODE XREF: sub_21CCA+1B8j sub.w d7,d6 loc_21E8A: ; CODE XREF: sub_21CCA+1BCj lsr.w #1,d6 cmpi.b #$20,d2 ; ' ' beq.s loc_21E9A lea (ETC_R_PEDAL_KA_R_PEDAL_AREA_A).l,a3 ; REDUNDANT Pedal area as a function of altitude (baro). ; Percent Pedal Area bra.s loc_21EA0 ; --------------------------------------------------------------------------- loc_21E9A: ; CODE XREF: sub_21CCA+1C6j lea (ETC_R_PEDAL_KA_R_PEDAL_AREA_B).l,a3 ; REDUNDANT Pedal area as a function of altitude (baro) with trailer mode engaged. ; Percent Pedal Area loc_21EA0: ; CODE XREF: sub_21CCA+1CEj clr.l d3 clr.l d4 clr.l d7 move.w d6,d3 lsr.w #8,d3 move.w #$21,d4 ; '!' lsl.w #1,d4 move.w d4,d7 mulu.w d3,d4 move.w d7,d3 clr.l d7 adda.w d4,a3 move.w (a3),d7 tst.w d7 bne.s loc_21F20 move.w (a3,d3.w),d7 tst.w d7 bne.s loc_21F20 cmpi.b #$20,d2 ; ' ' beq.s loc_21ED6 lea (ETC_R_PEDAL_KA_R_PEDAL_AREA_A).l,a3 ; REDUNDANT Pedal area as a function of altitude (baro). ; Percent Pedal Area bra.s loc_21EDC ; --------------------------------------------------------------------------- loc_21ED6: ; CODE XREF: sub_21CCA+202j lea (ETC_R_PEDAL_KA_R_PEDAL_AREA_B).l,a3 ; REDUNDANT Pedal area as a function of altitude (baro) with trailer mode engaged. ; Percent Pedal Area loc_21EDC: ; CODE XREF: sub_21CCA+20Aj move.w d6,d3 lsr.w #8,d3 move.w #$21,d4 ; '!' lsl.w #1,d4 move.w d4,d7 mulu.w d3,d4 adda.w d4,a3 move.w d1,d3 move.w d1,d5 tblun.w (a3),d3 tblun.w (a3,d7.w),d5 tblu.l d3:d5,d6 lsr.l #8,d6 btst #0,d6 beq.s loc_21F0C addi.l #1,d6 loc_21F0C: ; CODE XREF: sub_21CCA+23Aj cmpi.l #$5000,d6 bls.s loc_21F1A move.l #$5000,d6 loc_21F1A: ; CODE XREF: sub_21CCA+248j clr.l d5 move.l d6,d5 bra.s loc_21F22 ; --------------------------------------------------------------------------- loc_21F20: ; CODE XREF: sub_21CCA+196j ; sub_21CCA+1F4j ... clr.w d5 loc_21F22: ; CODE XREF: sub_21CCA+1A4j ; sub_21CCA+254j move.w d5,(word_FFFFA012).w movem.l (sp)+,d0-d2/d5/a4 rts ; End of function sub_21CCA ; =============== S U B R O U T I N E ======================================= sub_21F2C: ; CODE XREF: sub_2340C+C34p movem.l d1-d2/d5-d7/a4-a5,-(sp) clr.l d7 lea (unk_FFA01A).l,a4 move.b #$10,d7 move.w $24(a4),d6 beq.s loc_21F44 clr.b d7 loc_21F44: ; CODE XREF: sub_21F2C+14j move.w $14(a4),d4 move.w (ETC_R_THROTTLE_KE_R_MAX_IDLE_AREA).l,d2 ; REDUNDANT Maximum idle area contribution allowed for ETC ; R_Percent Area_Area cmp.w d2,d4 bcc.s loc_21F54 move.w d4,d2 loc_21F54: ; CODE XREF: sub_21F2C+24j move.w d2,(word_FFFFA04E).w move.w #$5000,d3 add.w d2,d6 cmp.w d6,d3 bhi.s loc_21F64 move.w d3,d6 loc_21F64: ; CODE XREF: sub_21F2C+34j clr.l d3 move.b 8(a4),d3 btst #7,d3 bne.s loc_21FAA btst #6,d3 beq.s loc_21FAA btst #1,d3 beq.s loc_21FAA btst #2,6(a4) beq.s loc_21FAA btst #2,7(a4) bne.s loc_21F9C btst #5,9(a4) bne.s loc_21F9C btst #4,9(a4) beq.s loc_21FAA loc_21F9C: ; CODE XREF: sub_21F2C+5Ej ; sub_21F2C+66j move.w $22(a4),d4 cmp.w d6,d4 bls.s loc_21FAA move.w d4,d6 move.b #$20,d7 ; ' ' loc_21FAA: ; CODE XREF: sub_21F2C+42j ; sub_21F2C+48j ... btst #1,d3 beq.s loc_21FFE btst #2,6(a4) beq.s loc_21FFE btst #2,7(a4) bne.s loc_21FFE clr.l d3 move.b 9(a4),d3 btst #0,d3 beq.s loc_21FFE btst #1,d3 beq.s loc_21FFE btst #2,d3 beq.s loc_21FFE btst #3,d3 beq.s loc_21FFE btst #4,d3 bne.s loc_21FFE btst #6,d3 beq.s loc_21FFE btst #7,d3 bne.s loc_21FFE move.w $20(a4),d4 cmp.w d6,d4 bls.s loc_21FFE move.w d4,d6 move.b #$30,d7 ; '0' loc_21FFE: ; CODE XREF: sub_21F2C+82j ; sub_21F2C+8Aj ... clr.l d3 move.b 8(a4),d3 btst #5,d3 bne.s loc_22048 btst #4,d3 beq.s loc_22048 btst #3,7(a4) beq.s loc_22048 btst #2,6(a4) beq.s loc_22048 move.w $C(a4),d4 move.w #$300,d2 cmp.w d4,d2 bcc.s loc_22048 move.w $1E(a4),d4 cmp.w d4,d6 bcc.s loc_22048 cmp.w (ETC_R_THROTTLE_KE_R_MAX_MIN_TORQUE_AUTHORITY).l,d4 ; REDUNDANT limit the authority of drop throttle to command the throttle ; R_Percent_Area bcs.s loc_22042 move.w (ETC_R_THROTTLE_KE_R_MAX_MIN_TORQUE_AUTHORITY).l,d4 ; REDUNDANT limit the authority of drop throttle to command the throttle ; R_Percent_Area loc_22042: ; CODE XREF: sub_21F2C+10Ej move.w d4,d6 move.b #$50,d7 ; 'P' loc_22048: ; CODE XREF: sub_21F2C+DCj ; sub_21F2C+E2j ... move.b d7,(byte_FFFFA050).w move.w d6,(word_FFFFA04C).w move.w $16(a4),d4 cmp.w d4,d6 bls.s loc_22066 btst #2,6(a4) bne.s loc_22066 move.w d4,d6 move.b #$60,d7 ; '`' loc_22066: ; CODE XREF: sub_21F2C+12Aj ; sub_21F2C+132j move.w $1C(a4),d4 cmp.w d4,d6 bls.s loc_22074 move.w d4,d6 move.b #$70,d7 ; 'p' loc_22074: ; CODE XREF: sub_21F2C+140j move.w $18(a4),d4 cmp.w d4,d6 bls.s loc_22082 move.w d4,d6 move.b #$80,d7 loc_22082: ; CODE XREF: sub_21F2C+14Ej move.w $1A(a4),d4 cmp.w d4,d6 bls.s loc_22090 move.w d4,d6 move.b #$90,d7 loc_22090: ; CODE XREF: sub_21F2C+15Cj cmp.w (word_FFFFA04E).w,d6 bcc.s loc_2209E move.w (word_FFFFA04E).w,d6 move.b #$10,d7 loc_2209E: ; CODE XREF: sub_21F2C+168j move.w 0(a4),d5 move.w (ETC_R_THROTTLE_KE_R_MAX_IDLE_AREA).l,d2 ; REDUNDANT Maximum idle area contribution allowed for ETC ; R_Percent Area_Area sub.w (word_FFFFA04E).w,d2 move.w d2,d1 sub.w d5,d1 bge.s loc_220B4 move.w d2,d5 loc_220B4: ; CODE XREF: sub_21F2C+184j lea (unk_FFA058).l,a5 move.w d5,(a5) neg.w d5 sub.w d5,d6 bpl.s loc_220CA moveq #$FFFFFFFF,d6 addq.w #1,d6 bra.w loc_220DE ; --------------------------------------------------------------------------- loc_220CA: ; CODE XREF: sub_21F2C+194j neg.w d6 move.l d6,d5 addi.l #$5000,d5 bpl.s loc_220DC moveq #$FFFFFF80,d6 andi.w #$B000,d6 loc_220DC: ; CODE XREF: sub_21F2C+1A8j neg.w d6 loc_220DE: ; CODE XREF: sub_21F2C+19Aj move.w d6,(word_FFFFA048).w move.b d7,(byte_FFFFA052).w move.w d6,(word_FFFFA04A).w movem.l (sp)+,d1-d2/d5-d7/a4-a5 rts ; End of function sub_21F2C ; =============== S U B R O U T I N E ======================================= sub_220F0: ; CODE XREF: sub_2340C+C4Ap movem.l d0-d2/d5/d7/a4,-(sp) lea (unk_FFA01A).l,a4 move.b (byte_FFFFA052).w,d5 clr.l d1 move.w (word_FFFFA04A).w,d1 move.w (ETC_R_THROTTLE_KE_R_MIN_MECHANICAL_POSITION_AR).l,d3 ; Used to rescale des throttle area unfiltered to account for themechanical stop for area to rotation conversion lookups ; R_Percent_Area sub.w d3,d1 bcs.s loc_22110 bra.s loc_22112 ; --------------------------------------------------------------------------- loc_22110: ; CODE XREF: sub_220F0+1Cj clr.l d1 loc_22112: ; CODE XREF: sub_220F0+1Ej move.w #$5000,d4 mulu.w d4,d1 sub.w d3,d4 divu.w d4,d1 andi.l #$FFFE,d1 move.w #$280,d4 cmp.w d1,d4 bcs.s loc_22132 asl.w #4,d1 divu.w #5,d1 bra.s loc_2213E ; --------------------------------------------------------------------------- loc_22132: ; CODE XREF: sub_220F0+38j mulu.w #4,d1 divu.w #5,d1 addi.w #$600,d1 loc_2213E: ; CODE XREF: sub_220F0+40j lea (ETC_R_THROTTLE_KV_R_THROTTLE_ROTATION).l,a3 ; REDUNDANT throttle area to throttle angle conversion table. ; R_Rotation_Vs_Area_Table tblun.w (a3),d1 lsr.l #8,d1 addi.w #1,d1 andi.w #$FFFE,d1 move.w d1,(word_FFFFA044).w move.w (word_FFFFA044).w,d2 move.w (word_FFFFA046).w,d7 cmp.w d2,d7 bcc.s loc_2217C clr.b (byte_FFFFA056).w add.w 2(a4),d7 move.w #$2800,d3 cmp.w d7,d3 bcc.s loc_22174 move.w d3,d7 loc_22174: ; CODE XREF: sub_220F0+80j cmp.w d7,d2 bcc.s loc_2219E loc_22178: ; CODE XREF: sub_220F0+98j move.w d2,d7 bra.s loc_2219E ; --------------------------------------------------------------------------- loc_2217C: ; CODE XREF: sub_220F0+70j move.b #1,(byte_FFFFA056).w btst #2,6(a4) beq.s loc_22178 move.w (word_FFFFA046).w,d7 sub.w 4(a4),d7 bcs.s loc_22196 bra.s loc_22198 ; --------------------------------------------------------------------------- loc_22196: ; CODE XREF: sub_220F0+A2j clr.w d7 loc_22198: ; CODE XREF: sub_220F0+A4j cmp.w d7,d2 bls.s loc_2219E move.w d2,d7 loc_2219E: ; CODE XREF: sub_220F0+86j ; sub_220F0+8Aj ... move.w d7,(word_FFFFA046).w move.b (byte_FFA050).l,d2 btst #4,6(a4) bne.s loc_221B4 clr.l d4 bra.s loc_2221A ; --------------------------------------------------------------------------- loc_221B4: ; CODE XREF: sub_220F0+BEj btst #2,6(a4) bne.s loc_221C4 move.w (ETC_R_THROTTLE_KE_R_LIMITED_POWER_MAX_THROT_POS).l,d4 ; Maximum throttle position that limited power mode is allowed. ; R_Pedal_Rotation bra.s loc_2221A ; --------------------------------------------------------------------------- loc_221C4: ; CODE XREF: sub_220F0+CAj cmpi.b #$20,d2 ; ' ' bne.s loc_221CC bra.s loc_221E2 ; --------------------------------------------------------------------------- loc_221CC: ; CODE XREF: sub_220F0+D8j cmpi.b #$30,d2 ; '0' bne.s loc_221D4 bra.s loc_221E2 ; --------------------------------------------------------------------------- loc_221D4: ; CODE XREF: sub_220F0+E0j cmpi.b #$40,d2 ; '@' beq.s loc_221E2 cmpi.b #$50,d2 ; 'P' beq.s loc_221E8 bra.s loc_221F0 ; --------------------------------------------------------------------------- loc_221E2: ; CODE XREF: sub_220F0+DAj ; sub_220F0+E2j ... move.w #$2800,d4 bra.s loc_2221A ; --------------------------------------------------------------------------- loc_221E8: ; CODE XREF: sub_220F0+EEj move.w (ETC_R_THROTTLE_KE_R_MAX_DRAG_THROTTLE_POSITION).l,d4 ; REDUNDANTMaximum throttle position that Drag control can command ; R_Pedal_Rotation bra.s loc_2221A ; --------------------------------------------------------------------------- loc_221F0: ; CODE XREF: sub_220F0+F0j cmpi.b #$10,d2 bne.s loc_221F8 bra.s loc_22214 ; --------------------------------------------------------------------------- loc_221F8: ; CODE XREF: sub_220F0+104j move.w $12(a4),d4 asr.w #2,d4 lea (ETC_R_THROTTLE_KV_R_MAX_ALLOWED_NORMAL_THROTTLE).l,a3 ; REDUNDANT max permitted Throttle angle vs indicated pedal position in normal operating modes. ; R_Rotation_Vs_Percent_By10_Table tblun.w (a3),d4 lsr.l #8,d4 addi.w #1,d4 andi.w #$FFFE,d4 bra.s loc_2221A ; --------------------------------------------------------------------------- loc_22214: ; CODE XREF: sub_220F0+106j move.w (ETC_R_THROTTLE_KE_R_MAX_IDLE_THROTTLE_POSITION).l,d4 ; Maximum throttle position that idle control can command. ; R_Pedal_Rotation loc_2221A: ; CODE XREF: sub_220F0+C2j ; sub_220F0+D2j ... move.l $E(a4),d2 cmpi.l #unk_14000,d2 bcs.s loc_2222C move.w #$1000,d2 bra.s loc_22230 ; --------------------------------------------------------------------------- loc_2222C: ; CODE XREF: sub_220F0+134j divu.w #$14,d2 loc_22230: ; CODE XREF: sub_220F0+13Aj lea (ETC_R_THROTTLE_KV_R_MAX_THROTTLE_POSITION).l,a3 ; REDUNDANT Max permitted Throttle angle vs RPM for reduced induction noise and improves transient response without losing power. ; R_Rotation_Vs_RPM_Table tblun.w (a3),d2 lsr.l #8,d2 addi.w #1,d2 andi.w #$FFFE,d2 cmp.w d4,d2 bcc.s loc_2224A move.w d2,d4 loc_2224A: ; CODE XREF: sub_220F0+156j move.w (word_FFFFA040).w,d2 sub.w d4,d2 bcc.s loc_22254 clr.w d2 loc_22254: ; CODE XREF: sub_220F0+160j move.w (ETC_R_THROTTLE_KE_R_DELTA_MAX_ALLOW_THROT_LIMIT).l,d0 ; The maximum allowed desired throttle delta between current and previous loop. ; R_Percent_Rotation beq.s loc_22260 move.l d0,d3 bra.s loc_22264 ; --------------------------------------------------------------------------- loc_22260: ; CODE XREF: sub_220F0+16Aj move.w #2,d3 loc_22264: ; CODE XREF: sub_220F0+16Ej cmp.w d3,d2 bls.s loc_2227C move.w (word_FFFFA040).w,d0 sub.w d3,d0 move.l d0,d4 move.w (ETC_R_THROTTLE_KE_R_MAX_IDLE_THROTTLE_POSITION).l,d3 ; Maximum throttle position that idle control can command. ; R_Pedal_Rotation cmp.w d3,d4 bcc.s loc_2227C move.l d3,d4 loc_2227C: ; CODE XREF: sub_220F0+176j ; sub_220F0+188j move.w d4,(word_FFFFA040).w btst #2,6(a4) beq.s loc_222B2 move.w (word_FFFFA054).w,d2 cmp.w d7,d4 bcc.s loc_222A2 addq.w #2,d2 cmpi.w #$1FE,d2 bls.s loc_2229C move.w #$1FE,d2 loc_2229C: ; CODE XREF: sub_220F0+1A6j move.w d2,(word_FFFFA054).w bra.s loc_222A8 ; --------------------------------------------------------------------------- loc_222A2: ; CODE XREF: sub_220F0+19Ej clr.w (word_FFFFA054).w clr.w d2 loc_222A8: ; CODE XREF: sub_220F0+1B0j move.w (ETC_R_THROTTLE_KE_R_THROTTLE_HI_LIMIT_PERIOD).l,d3 ; Number of 18.75 ms loops that the throttle position can be abovethe max allowed throttle position. ; R_SHORTCARD cmp.w d2,d3 bhi.s loc_222BA loc_222B2: ; CODE XREF: sub_220F0+196j cmp.w d7,d4 bhi.s loc_222B8 move.w d4,d7 loc_222B8: ; CODE XREF: sub_220F0+1C4j moveq #$FFFFFFA0,d5 loc_222BA: ; CODE XREF: sub_220F0+1C0j move.w (ETC_R_THROTTLE_KE_R_THROTTLE_STOP_MIN_SW).l,d3 ; Min value to prevent throttle from reaching the mechanicalstop ; R_Percent_Rotation cmp.w d7,d3 bls.s loc_222C8 move.w d3,d7 bra.s loc_222D4 ; --------------------------------------------------------------------------- loc_222C8: ; CODE XREF: sub_220F0+1D2j move.w (ETC_R_THROTTLE_KE_R_THROTTLE_STOP_MAX_SW).l,d3 ; Max value to prevent throttle from reaching the mechanicalstop ; R_Percent_Rotation cmp.w d3,d7 bls.s loc_222D4 move.w d3,d7 loc_222D4: ; CODE XREF: sub_220F0+1D6j ; sub_220F0+1E0j btst #0,8(a4) bne.s loc_222DE moveq #$FFFFFFC0,d5 loc_222DE: ; CODE XREF: sub_220F0+1EAj btst #1,8(a4) bne.s loc_222E8 moveq #$FFFFFFB0,d5 loc_222E8: ; CODE XREF: sub_220F0+1F4j move.b d5,(byte_FFFFA051).w move.w d7,(word_FFFFA042).w movem.l (sp)+,d0-d2/d5/d7/a4 rts ; End of function sub_220F0 ; =============== S U B R O U T I N E ======================================= sub_222F6: ; CODE XREF: OS1:00028B9Ap ; OS1:00028BD4p move.w (ThrottleArea2).w,d3 lsr.w #1,d3 asl.w #2,d3 move.w d3,(word_FFFFA048).w move.w d3,(word_FFFFA04C).w move.w d3,(word_FFFFA04A).w move.w d3,(word_FFFFA04E).w move.w (word_FFFF9050).w,d3 add.w d3,d3 move.w d3,(word_FFFFA042).w move.w d3,(word_FFFFA044).w move.w d3,(word_FFFFA046).w rts ; End of function sub_222F6 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_22322: ; CODE XREF: sub_2321E+42p var_1C = -$1C var_1A = -$1A var_18 = -$18 var_14 = -$14 var_10 = -$10 var_C = -$C var_8 = -8 var_4 = -4 link a6,#-$1C movem.l d1/a1,-(sp) move.b d0,d1 loc_2232C: ; CODE XREF: sub_22322+16j move.w (word_FFFFFFE2).w,var_1A(a6) btst #0,var_1A+1(a6) beq.s loc_2232C move.l (dword_FFFFFFEC).w,var_14(a6) move.l (dword_FFFFFFE8).w,var_18(a6) andi.l #$FF,d0 lea var_18(a6),a1 jsr loc_265A8 move.l var_14(a6),(dword_FFFFFFEC).w move.l var_18(a6),(dword_FFFFFFE8).w move.w (word_FFFFFFE0).w,var_1C(a6) andi.b #$F,d1 andi.b #$F0,var_1C(a6) or.b d1,var_1C(a6) bset #0,var_1C+1(a6) bset #7,var_1C+1(a6) move.w var_1C(a6),(word_FFFFFFE0).w move.w (word_FFFFFF38).w,d4 move.l d4,d0 lsr.w #8,d0 move.l d0,d3 lsr.b #7,d3 andi.w #$FF,d3 add.w d0,d3 move.w d3,(word_FFFFBFFE).w move.w d3,(word_FFFFFFE4).w clr.l var_10(a6) move.l var_10(a6),var_C(a6) move.l var_C(a6),var_8(a6) move.l (dword_FFFFFE14).w,var_4(a6) andi.b #$CF,var_8(a6) ori.b #$20,var_8(a6) ; ' ' move.l var_4(a6),(dword_FFFFFE14).w movea.l var_8(a6),a2 move.l a2,var_10(a6) move.l a2,var_C(a6) loc_223D6: ; CODE XREF: sub_22322+B8j tst.l (dword_FFFFFE18).w bne.s loc_223D6 move.l var_C(a6),(dword_FFFFFE18).w movem.l (sp)+,d1/a1 unlk a6 rts ; End of function sub_22322 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_223EA: ; CODE XREF: OS1:0002B768p var_50E8 = -$50E8 var_1E = -$1E var_1C = -$1C var_1A = -$1A var_16 = -$16 var_12 = -$12 var_10 = -$10 var_C = -$C var_8 = -8 var_4 = -4 link a6,#-$1E movem.l d0-d2/d6-a1/a4,-(sp) movea.l #unk_FFA5A8,a4 movea.l a4,a1 move.l (unk_FFFFFFFC).w,var_16(a6) move.l (dword_FFFFFFF8).w,var_1A(a6) clr.b var_12(a6) move.w (word_FFFFFFF0).w,var_12(a6) move.b var_12(a6),d0 moveq #$F,d6 and.b d6,d0 move.b d0,var_1E(a6) andi.l #$FF,d0 lea var_1A(a6),a0 jsr loc_265A8 move.w (word_FFFFFFF2).w,var_1C(a6) btst #2,var_1C+1(a6) bne.s loc_22442 btst #1,var_1C+1(a6) beq.s loc_2247E loc_22442: ; CODE XREF: sub_223EA+4Ej clr.l var_10(a6) move.l var_10(a6),var_C(a6) move.l var_C(a6),var_8(a6) move.l (dword_FFFFFE14).w,var_4(a6) ori.b #$C0,var_8(a6) move.l var_4(a6),(dword_FFFFFE14).w movea.l var_8(a6),a2 move.l a2,var_10(a6) move.l a2,var_C(a6) loc_22470: ; CODE XREF: sub_223EA+8Aj tst.l (dword_FFFFFE18).w bne.s loc_22470 move.l var_C(a6),(dword_FFFFFE18).w bra.s loc_224BE ; --------------------------------------------------------------------------- loc_2247E: ; CODE XREF: sub_223EA+56j clr.l var_10(a6) move.l var_10(a6),var_C(a6) move.l var_C(a6),var_8(a6) move.l (dword_FFFFFE14).w,var_4(a6) andi.b #$3F,var_8(a6) ; '?' ori.b #$80,var_8(a6) move.l var_4(a6),(dword_FFFFFE14).w movea.l var_8(a6),a2 move.l a2,var_10(a6) move.l a2,var_C(a6) loc_224B2: ; CODE XREF: sub_223EA+CCj tst.l (dword_FFFFFE18).w bne.s loc_224B2 move.l var_C(a6),(dword_FFFFFE18).w loc_224BE: ; CODE XREF: sub_223EA+92j bclr #7,(byte_FFFFFE20).w btst #2,var_1C+1(a6) bne.w loc_229A6 btst #1,var_1C+1(a6) bne.w loc_229A6 move.b var_1E(a6),d1 cmpi.b #7,d1 bne.w loc_22994 clr.b d4 move.l d1,d0 subq.b #1,d0 moveq #1,d3 move.l d3,d7 cmp.b d0,d7 bhi.s loc_224FE loc_224F2: ; CODE XREF: sub_223EA+112j add.b (a4),d4 addq.l #1,a4 addq.b #1,d3 bcs.s loc_224FE cmp.b d3,d0 bcc.s loc_224F2 loc_224FE: ; CODE XREF: sub_223EA+106j ; sub_223EA+10Ej clr.l d7 move.b d4,d7 move.w #$100,d3 sub.w d7,d3 andi.w #$FF,d3 andi.w #$FF,d1 cmp.b -$5A59(d1.w),d3 bne.w loc_22982 btst #7,(word_FFFFA5A8).w beq.w loc_22970 move.b (word_FFFFA5A8).w,d3 lsr.b #3,d3 and.b d6,d3 cmp.b (byte_FFFFA5CE).w,d3 bne.w loc_22970 move.b (word_FFFFA5A8).w,d3 lsr.b #3,d3 and.b d6,d3 cmpi.b #4,d3 bhi.w loc_22970 move.w (word_FFFFA5A8).w,d3 move.w #$3FF,d7 and.w d7,d3 moveq #$A,d4 cmp.w d3,d4 bhi.w loc_2295E cmpi.w #$3F2,d3 bhi.w loc_2295E move.w (word_FFFFA5AC).w,d3 and.w d7,d3 cmp.w d3,d4 bhi.w loc_2295E move.w (word_FFFFA5AC).w,d3 and.w d7,d3 cmpi.w #$3F2,d3 bhi.w loc_2295E move.w (GlobalClock).w,(word_FFFFA5BA).w move.b (word_FFFFA5A8).w,d3 lsr.b #3,d3 and.b d6,d3 beq.s loc_22590 cmpi.b #1,d3 bne.w loc_22686 loc_22590: ; CODE XREF: sub_223EA+19Cj movea.l #unk_FFA593,a0 move.b (byte_8A82B).l,d2 move.b (byte_FFFFA5CA).w,d1 move.b (byte_FFFFA5AB).w,d0 jsr sub_229C4 tst.b (byte_FFFFA5CF).w bne.s loc_225D0 btst #0,(byte_FFFFA593).w beq.s loc_225D0 btst #1,(byte_FFFFA593).w beq.s loc_225D0 move.w #$EA,d0 ; '?' jsr sub_5F110 move.b #1,(byte_FFFFA5CF).w loc_225D0: ; CODE XREF: sub_223EA+1C4j ; sub_223EA+1CCj ... tst.b (byte_FFFFA5D0).w bne.s loc_225F6 btst #0,(byte_FFFFA593).w beq.s loc_225F6 btst #2,(byte_FFFFA593).w beq.s loc_225F6 move.w #$EC,d0 ; '?' jsr sub_5F110 move.b #1,(byte_FFFFA5D0).w loc_225F6: ; CODE XREF: sub_223EA+1EAj ; sub_223EA+1F2j ... tst.b (byte_FFFFA5D1).w bne.s loc_2261C btst #1,(byte_FFFFA593).w beq.s loc_2261C btst #2,(byte_FFFFA593).w beq.s loc_2261C move.w #$EE,d0 ; '?' jsr sub_5F110 move.b #1,(byte_FFFFA5D1).w loc_2261C: ; CODE XREF: sub_223EA+210j ; sub_223EA+218j ... btst #3,(byte_FFFFA593).w beq.s loc_2263C btst #6,(byte_FFFFA5CD).w bne.s loc_2263C move.w #$EF,d0 ; '?' jsr sub_5F110 bset #6,(byte_FFFFA5CD).w loc_2263C: ; CODE XREF: sub_223EA+238j ; sub_223EA+240j move.b (byte_FFFFA5AB).w,(byte_FFFFA5CA).w movea.l #unk_FFA594,a0 move.b (byte_8A82C).l,d2 move.b (byte_FFFFA5CB).w,d1 move.b (word_FFFFA5AC).w,d0 jsr sub_229C4 move.b (word_FFFFA5AC).w,(byte_FFFFA5CB).w btst #4,(byte_FFFFA5CC).w bne.w loc_22790 btst #7,(word_FFFFA594).w beq.w loc_22790 bset #0,(byte_FFFFA5CC).w jsr sub_22F02 bra.w loc_22790 ; --------------------------------------------------------------------------- loc_22686: ; CODE XREF: sub_223EA+1A2j clr.w var_1A(a6) move.b (byte_FFFFA5AB).w,var_1A+1(a6) move.b (word_FFFFA5AC).w,d4 move.b (word_FFFFA5A8).w,d3 lsr.b #3,d3 and.b d6,d3 cmpi.b #2,d3 beq.s loc_226AA cmpi.b #3,d3 bne.w loc_22748 loc_226AA: ; CODE XREF: sub_223EA+2B6j lsl.b #4,d3 andi.b #$F0,d3 andi.b #$F,var_1A(a6) or.b d3,var_1A(a6) bclr #1,var_1A(a6) btst #7,d4 beq.s loc_226CC bset #1,var_1A(a6) loc_226CC: ; CODE XREF: sub_223EA+2DAj bclr #0,var_1A(a6) btst #6,d4 beq.s loc_226DE bset #0,var_1A(a6) loc_226DE: ; CODE XREF: sub_223EA+2ECj bclr #5,(word_FFFFA594).w btst #5,d4 beq.s loc_226F0 bset #5,(word_FFFFA594).w loc_226F0: ; CODE XREF: sub_223EA+2FEj bclr #4,(word_FFFFA594).w btst #4,d4 beq.s loc_22702 bset #4,(word_FFFFA594).w loc_22702: ; CODE XREF: sub_223EA+310j bclr #3,(word_FFFFA594).w btst #3,d4 beq.s loc_22714 bset #3,(word_FFFFA594).w loc_22714: ; CODE XREF: sub_223EA+322j bclr #2,(word_FFFFA594).w btst #2,d4 beq.s loc_22726 bset #2,(word_FFFFA594).w loc_22726: ; CODE XREF: sub_223EA+334j bset #2,var_1A(a6) bclr #3,var_1A(a6) move.w var_1A(a6),var_1A+2(a6) clr.w d3 move.b (byte_FFFFAF76).w,d3 move.w var_1A+2(a6),$3E+var_50E8(d3.w*4) bra.s loc_22790 ; --------------------------------------------------------------------------- loc_22748: ; CODE XREF: sub_223EA+2BCj cmpi.b #4,d3 bne.s loc_22790 movea.l #unk_FFA594,a0 move.b (byte_8A82C).l,d2 move.b (byte_FFFFA5CB).w,d1 move.b (word_FFFFA5AC).w,d0 jsr sub_229C4 move.b (word_FFFFA5AC).w,(byte_FFFFA5CB).w tst.b (byte_FFFFA5AB).w bne.s loc_22790 tst.b (byte_FFFFA5D5).w beq.s loc_22790 clr.b (byte_FFFFA5D5).w tst.b (byte_FFFFA5A0).w bne.s loc_2278A jsr sub_23282 loc_2278A: ; CODE XREF: sub_223EA+398j move.b #1,(byte_FFFFA5A1).w loc_22790: ; CODE XREF: sub_223EA+27Ej ; sub_223EA+288j ... move.w (word_FFFFA5A8).w,(word_FFFFA590).w move.w (word_FFFFA590).w,d3 and.w d7,d3 movea.w #$A,a1 sub.w a1,d3 bcc.s loc_227A6 clr.w d3 loc_227A6: ; CODE XREF: sub_223EA+3B8j and.w d7,d3 andi.w #$FC00,(word_FFFFA590).w or.w d3,(word_FFFFA590).w btst #2,(word_FFFFA590).w sne d4 neg.b d4 tst.b (byte_FFFFA5D2).w bne.s loc_227D6 tst.b d4 beq.s loc_227D6 move.w (word_FFFF826C).w,d3 addq.w #1,d3 bcc.s loc_227D2 move.w #$FFFF,d3 loc_227D2: ; CODE XREF: sub_223EA+3E2j move.w d3,(word_FFFF826C).w loc_227D6: ; CODE XREF: sub_223EA+3D6j ; sub_223EA+3DAj move.b d4,(byte_FFFFA5D2).w movea.l #unk_FFA592,a0 move.b (byte_8A82A).l,d2 move.b (byte_FFFFA5C9).w,d1 move.b (byte_FFFFA5AA).w,d0 jsr sub_229C4 clr.b d3 btst #6,(byte_FFFFA5AA).w bne.s loc_22816 btst #3,(byte_FFFFA5AB).w bne.s loc_22816 btst #3,(byte_FFFFA5AA).w bne.s loc_22816 btst #4,(byte_FFFFA5AA).w beq.s loc_22818 loc_22816: ; CODE XREF: sub_223EA+412j ; sub_223EA+41Aj ... addq.b #1,d3 loc_22818: ; CODE XREF: sub_223EA+42Aj move.b d3,(byte_FFFFA5A6).w tst.b (byte_FFFFA5A0).w bne.s loc_22828 and.b (byte_FFFFA5D9).w,d3 beq.s loc_22846 loc_22828: ; CODE XREF: sub_223EA+436j bclr #7,(byte_FFFFA592).w bclr #6,(byte_FFFFA592).w bclr #3,(byte_FFFFA593).w bclr #3,(byte_FFFFA592).w bclr #4,(byte_FFFFA592).w loc_22846: ; CODE XREF: sub_223EA+43Cj btst #0,(byte_FFFFA592).w beq.s loc_22866 btst #0,(byte_FFFFA5CD).w bne.s loc_22866 move.w #$E9,d0 ; '?' jsr sub_5F110 bset #0,(byte_FFFFA5CD).w loc_22866: ; CODE XREF: sub_223EA+462j ; sub_223EA+46Aj btst #1,(byte_FFFFA592).w beq.s loc_22886 btst #1,(byte_FFFFA5CD).w bne.s loc_22886 move.w #$EB,d0 ; '?' jsr sub_5F110 bset #1,(byte_FFFFA5CD).w loc_22886: ; CODE XREF: sub_223EA+482j ; sub_223EA+48Aj btst #2,(byte_FFFFA592).w beq.s loc_228A6 btst #2,(byte_FFFFA5CD).w bne.s loc_228A6 move.w #$ED,d0 ; '?' jsr sub_5F110 bset #2,(byte_FFFFA5CD).w loc_228A6: ; CODE XREF: sub_223EA+4A2j ; sub_223EA+4AAj btst #3,(byte_FFFFA592).w beq.s loc_228C4 btst #3,(byte_FFFFA5CD).w bne.s loc_228C4 move.l d6,d0 jsr sub_5F110 bset #3,(byte_FFFFA5CD).w loc_228C4: ; CODE XREF: sub_223EA+4C2j ; sub_223EA+4CAj btst #4,(byte_FFFFA592).w beq.s loc_228E2 btst #4,(byte_FFFFA5CD).w bne.s loc_228E2 moveq #$3A,d0 ; ':' jsr sub_5F110 bset #4,(byte_FFFFA5CD).w loc_228E2: ; CODE XREF: sub_223EA+4E0j ; sub_223EA+4E8j btst #5,(byte_FFFFA592).w beq.s loc_22902 btst #5,(byte_FFFFA5CD).w bne.s loc_22902 move.w #$E7,d0 ; '?' jsr sub_5F110 bset #5,(byte_FFFFA5CD).w loc_22902: ; CODE XREF: sub_223EA+4FEj ; sub_223EA+506j move.b (byte_FFFFA5AA).w,(byte_FFFFA5C9).w move.w (word_FFFFA5AC).w,d3 and.w d7,d3 sub.w a1,d3 bcc.s loc_22914 clr.w d3 loc_22914: ; CODE XREF: sub_223EA+526j and.w d7,d3 andi.w #$FC00,(word_FFFFA594).w or.w d3,(word_FFFFA594).w move.w (word_FFFFA594).w,d3 and.w d7,d3 mulu.w #$3FD,d3 divu.w #$CC,d3 ; '?' mulu.w (ETC_SERIAL_DATA_KE_IND_THROTTLE_POSITION_SCALER).l,d3 ; Scaler to convert the ETM indicated throttle position in units of counts, to units of percent rotation ; Scaler 0 to 4 lsr.l #8,d3 lsr.l #3,d3 cmpi.w #$1400,d3 bls.s loc_22942 move.w #$1400,d3 loc_22942: ; CODE XREF: sub_223EA+552j move.w d3,(word_FFFFA598).w jsr sub_20718 moveq #1,d0 move.b d0,(byte_FFFFA5D6).w move.b d0,(byte_FFFFA59D).w bclr #1,(byte_FFFFA5CC).w bra.s loc_229B6 ; --------------------------------------------------------------------------- loc_2295E: ; CODE XREF: sub_223EA+168j ; sub_223EA+170j ... move.b (byte_FFFFA5C8).w,d3 addq.b #1,d3 bcc.s loc_2296A move.b #$FF,d3 loc_2296A: ; CODE XREF: sub_223EA+57Aj move.b d3,(byte_FFFFA5C8).w bra.s loc_229B6 ; --------------------------------------------------------------------------- loc_22970: ; CODE XREF: sub_223EA+136j ; sub_223EA+146j ... move.b (byte_FFFFA5C4).w,d3 addq.b #1,d3 bcc.s loc_2297C move.b #$FF,d3 loc_2297C: ; CODE XREF: sub_223EA+58Cj move.b d3,(byte_FFFFA5C4).w bra.s loc_229B6 ; --------------------------------------------------------------------------- loc_22982: ; CODE XREF: sub_223EA+12Cj move.b (byte_FFFFA5C5).w,d3 addq.b #1,d3 bcc.s loc_2298E move.b #$FF,d3 loc_2298E: ; CODE XREF: sub_223EA+59Ej move.b d3,(byte_FFFFA5C5).w bra.s loc_229B6 ; --------------------------------------------------------------------------- loc_22994: ; CODE XREF: sub_223EA+F6j move.b (byte_FFFFA5C7).w,d3 addq.b #1,d3 bcc.s loc_229A0 move.b #$FF,d3 loc_229A0: ; CODE XREF: sub_223EA+5B0j move.b d3,(byte_FFFFA5C7).w bra.s loc_229B6 ; --------------------------------------------------------------------------- loc_229A6: ; CODE XREF: sub_223EA+E0j ; sub_223EA+EAj move.b (byte_FFFFA5C6).w,d3 addq.b #1,d3 bcc.s loc_229B2 move.b #$FF,d3 loc_229B2: ; CODE XREF: sub_223EA+5C2j move.b d3,(byte_FFFFA5C6).w loc_229B6: ; CODE XREF: sub_223EA+572j ; sub_223EA+584j ... jsr sub_22F40 movem.l (sp)+,d0-d2/d6-a1/a4 unlk a6 rts ; End of function sub_223EA ; =============== S U B R O U T I N E ======================================= sub_229C4: ; CODE XREF: sub_223EA+1BAp ; sub_223EA+26Cp ... move.b d1,d3 move.l d2,d4 not.b d4 move.l d2,d5 not.b d5 and.b d4,d5 and.b (a0),d5 move.b d5,d4 or.b d2,d3 and.b d0,d3 or.b d3,d4 move.b d4,(a0) rts ; End of function sub_229C4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_229DE: ; CODE XREF: sub_2340C+C5Ep var_50C2 = -$50C2 var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d2/d6/a0,-(sp) moveq #3,d1 cmp.b (ThrottleControlMode2?).w,d1 bne.s loc_229F6 cmpi.w #$500,(word_FFFFB4A2).w bcc.s loc_229FE loc_229F6: ; CODE XREF: sub_229DE+Ej move.w (GlobalClock).w,(word_FFFFA5BA).w bra.s loc_22A3E ; --------------------------------------------------------------------------- loc_229FE: ; CODE XREF: sub_229DE+16j btst #4,(byte_FFFFA5CC).w bne.s loc_22A3E move.w (word_FFFFA5BA).w,var_4(a6) move.w (GlobalClock).w,d0 sub.w var_4(a6),d0 cmpi.w #$10,d0 bcs.s loc_22A20 bset #1,(byte_FFFFA5CC).w loc_22A20: ; CODE XREF: sub_229DE+3Aj moveq #$50,d0 ; 'P' movea.l #unk_FFA5BA,a0 jsr sub_276D4 tst.b d0 beq.s loc_22A3E bset #3,(byte_FFFFA5CC).w jsr sub_22F02 loc_22A3E: ; CODE XREF: sub_229DE+1Ej ; sub_229DE+26j ... jsr sub_22F92 jsr sub_22D9A moveq #1,d3 move.w #$FF,d2 move.b d2,(byte_FFFFAF76).w loc_22A54: ; CODE XREF: sub_229DE+92j clr.l d6 move.b d3,d6 btst #3,word_FFFFAF56(d6.w*4) beq.s loc_22A6A move.b d3,(byte_FFFFAF76).w moveq #8,d3 bra.s loc_22A6C ; --------------------------------------------------------------------------- loc_22A6A: ; CODE XREF: sub_229DE+82j addq.b #1,d3 loc_22A6C: ; CODE XREF: sub_229DE+8Aj cmpi.b #7,d3 bls.s loc_22A54 cmp.b (byte_FFFFAF76).w,d2 bne.s loc_22A80 tst.b (byte_FFFFA5D4).w beq.w loc_22B30 loc_22A80: ; CODE XREF: sub_229DE+98j move.b (byte_FFFFA5CE).w,d3 beq.s loc_22A8E moveq #1,d6 cmp.b d3,d6 bne.w loc_22B30 loc_22A8E: ; CODE XREF: sub_229DE+A6j tst.b (byte_FFFFA5D4).w beq.s loc_22ABE andi.b #$87,(word_FFFFA5B0).w ori.b #$20,(word_FFFFA5B0).w ; ' ' clr.b (byte_FFFFA5B2).w tst.b (byte_FFFFA5A0).w bne.s loc_22AB0 jsr sub_23282 loc_22AB0: ; CODE XREF: sub_229DE+CAj clr.b (byte_FFFFA5D4).w moveq #1,d6 move.b d6,(byte_FFFFA5D5).w bra.w loc_22BF4 ; --------------------------------------------------------------------------- loc_22ABE: ; CODE XREF: sub_229DE+B4j clr.w d3 move.b (byte_FFFFAF76).w,d3 move.b word_FFFFAF56(d3.w*4),d3 lsr.b #4,d3 move.l d3,d6 lsl.b #3,d6 andi.b #$78,d6 ; 'x' andi.b #$87,(word_FFFFA5B0).w or.b d6,(word_FFFFA5B0).w clr.w d4 move.b (byte_FFFFAF76).w,d4 move.b byte_FFFFAF58(d4.w*4),d4 move.b d4,(byte_FFFFA5B2).w cmpi.b #4,d3 bne.w loc_22BF4 tst.b d4 bne.w loc_22BF4 moveq #1,d6 move.b d6,(byte_FFFFA5D4).w bclr #3,var_4(a6) lsl.b #4,d3 andi.b #$F0,d3 andi.b #$F,var_4(a6) or.b d3,var_4(a6) move.w var_4(a6),var_2(a6) clr.w d3 move.b (byte_FFFFAF76).w,d3 move.w var_2(a6),$18+var_50C2(d3.w*4) bra.w loc_22BF4 ; --------------------------------------------------------------------------- loc_22B30: ; CODE XREF: sub_229DE+9Ej ; sub_229DE+ACj bclr #7,(byte_FFFFA5B2).w btst #5,(byte_FFFFA59C).w beq.s loc_22B44 bset #7,(byte_FFFFA5B2).w loc_22B44: ; CODE XREF: sub_229DE+15Ej bclr #6,(byte_FFFFA5B2).w btst #2,(byte_FFFFA59C).w beq.s loc_22B58 bset #6,(byte_FFFFA5B2).w loc_22B58: ; CODE XREF: sub_229DE+172j bclr #5,(byte_FFFFA5B2).w btst #6,(byte_FFFFA59C).w beq.s loc_22B6C bset #5,(byte_FFFFA5B2).w loc_22B6C: ; CODE XREF: sub_229DE+186j jsr sub_21508 tst.b d0 beq.s loc_22B7E bset #4,(byte_FFFFA5B2).w bra.s loc_22B84 ; --------------------------------------------------------------------------- loc_22B7E: ; CODE XREF: sub_229DE+196j bclr #4,(byte_FFFFA5B2).w loc_22B84: ; CODE XREF: sub_229DE+19Ej bclr #3,(byte_FFFFA5B2).w btst #5,(byte_FFFFA592).w beq.s loc_22B98 bset #3,(byte_FFFFA5B2).w loc_22B98: ; CODE XREF: sub_229DE+1B2j btst #3,(byte_FFFF9062).w bne.s loc_22BB0 cmpi.b #4,(byte_FFFF9061).w beq.s loc_22BB0 btst #1,(byte_FFFF9062).w beq.s loc_22BB8 loc_22BB0: ; CODE XREF: sub_229DE+1C0j ; sub_229DE+1C8j bset #2,(byte_FFFFA5B2).w bra.s loc_22BBE ; --------------------------------------------------------------------------- loc_22BB8: ; CODE XREF: sub_229DE+1D0j bclr #2,(byte_FFFFA5B2).w loc_22BBE: ; CODE XREF: sub_229DE+1D8j cmpi.b #5,(byte_FFFF9061).w bne.s loc_22BCE bset #1,(byte_FFFFA5B2).w bra.s loc_22BD4 ; --------------------------------------------------------------------------- loc_22BCE: ; CODE XREF: sub_229DE+1E6j bclr #1,(byte_FFFFA5B2).w loc_22BD4: ; CODE XREF: sub_229DE+1EEj bclr #0,(byte_FFFFA5B2).w tst.b (byte_FFFFA5CE).w bne.s loc_22BEE andi.b #$87,(word_FFFFA5B0).w ori.b #8,(word_FFFFA5B0).w bra.s loc_22BF4 ; --------------------------------------------------------------------------- loc_22BEE: ; CODE XREF: sub_229DE+200j andi.b #$87,(word_FFFFA5B0).w loc_22BF4: ; CODE XREF: sub_229DE+DCj ; sub_229DE+114j ... move.b (byte_FFFFA59C).w,d3 tst.b (byte_FFFF900F).w bne.s loc_22C04 btst #2,d3 beq.s loc_22C0C loc_22C04: ; CODE XREF: sub_229DE+21Ej andi.w #$3F,var_4(a6) ; '?' bra.s loc_22C50 ; --------------------------------------------------------------------------- loc_22C0C: ; CODE XREF: sub_229DE+224j move.w (word_FFFF9050).w,d3 mulu.w (ETC_SERIAL_DATA_KE_TPS_WOT_10BIT_EQUIVALENT).l,d3 ; Value representing max software stop and would also be defined as 100% throttle position ; Raw_10_Bit_AD_Type divu.w #$1400,d3 addi.w #$A,d3 cmpi.w #$3FF,d3 bls.s loc_22C28 move.w #$3FF,d3 loc_22C28: ; CODE XREF: sub_229DE+244j lsl.w #6,d3 andi.w #$FFC0,d3 andi.w #$3F,var_4(a6) ; '?' or.w d3,var_4(a6) move.w var_4(a6),d0 lsr.w #6,d0 cmpi.w #$3F2,d0 bls.s loc_22C50 andi.w #$3F,var_4(a6) ; '?' ori.w #$FC80,var_4(a6) loc_22C50: ; CODE XREF: sub_229DE+22Cj ; sub_229DE+264j bclr #7,(word_FFFFA5B0).w moveq #$50,d0 ; 'P' movea.l #unk_FFA5BE,a0 jsr sub_276D4 tst.b d0 bne.s loc_22C70 bset #2,(word_FFFFA5B0).w bra.s loc_22C76 ; --------------------------------------------------------------------------- loc_22C70: ; CODE XREF: sub_229DE+288j bclr #2,(word_FFFFA5B0).w loc_22C76: ; CODE XREF: sub_229DE+290j move.w var_4(a6),d4 lsr.w #6,d4 andi.w #$3FF,d4 andi.w #$FC00,(word_FFFFA5B0).w or.w d4,(word_FFFFA5B0).w clr.b d4 movea.l #unk_FFA5B0,a2 moveq #1,d3 loc_22C94: ; CODE XREF: sub_229DE+2BEj add.b (a2),d4 addq.l #1,a2 addq.b #1,d3 cmp.b d3,d1 bcc.s loc_22C94 clr.l d0 move.b d4,d0 move.w #$100,d3 sub.w d0,d3 and.w d2,d3 move.b d3,(byte_FFFFA5B3).w move.w (word_FFFF9050).w,d3 sub.w (word_FFFFA598).w,d3 bcc.s loc_22CBA clr.w d3 loc_22CBA: ; CODE XREF: sub_229DE+2D8j move.w d3,(word_FFFFA5B8).w jsr sub_2321E move.b (byte_FFFFA5D6).w,d3 move.l d3,d4 eori.b #1,d4 move.b d4,(byte_FFFFA59E).w cmpi.b #1,(ThrottleControlMode2?).w beq.s loc_22CE8 tst.b (byte_FFFFA59D).w beq.s loc_22CE8 cmpi.w #$500,(word_FFFFB4A2).w bcc.s loc_22CF2 loc_22CE8: ; CODE XREF: sub_229DE+2FAj ; sub_229DE+300j clr.w (word_FFFFA5B4).w clr.w (word_FFFFA5B6).w bra.s loc_22D3A ; --------------------------------------------------------------------------- loc_22CF2: ; CODE XREF: sub_229DE+308j tst.b d3 bne.s loc_22D3A move.w (GlobalClock).w,(word_FFFFA5BC).w move.w (word_FFFFA5B4).w,d4 addq.w #1,d4 move.w d4,(word_FFFFA5B4).w move.w (word_FFFFA5B6).w,d3 addq.w #1,d3 move.w d3,(word_FFFFA5B6).w cmp.w (word_FFFF8272).w,d3 bls.s loc_22D1A move.w d3,(word_FFFF8272).w loc_22D1A: ; CODE XREF: sub_229DE+336j cmpi.w #$35,d3 ; '5' bhi.s loc_22D26 cmpi.w #$85,d4 ; '?' bls.s loc_22D3A loc_22D26: ; CODE XREF: sub_229DE+340j btst #4,(byte_FFFFA5CC).w bne.s loc_22D3A bset #2,(byte_FFFFA5CC).w jsr sub_22F02 loc_22D3A: ; CODE XREF: sub_229DE+312j ; sub_229DE+316j ... move.w (word_FFFFA5C0).w,var_4(a6) move.w (GlobalClock).w,d3 sub.w var_4(a6),d3 cmpi.w #$640,d3 bcs.s loc_22D5E clr.w (word_FFFFA5B4).w clr.w (word_FFFFA5B6).w move.w (GlobalClock).w,(word_FFFFA5C0).w bra.s loc_22D80 ; --------------------------------------------------------------------------- loc_22D5E: ; CODE XREF: sub_229DE+36Ej move.w (word_FFFFA5C0).w,var_4(a6) move.w (GlobalClock).w,d3 sub.w var_4(a6),d3 cmpi.w #$320,d3 bcs.s loc_22D80 move.w (word_FFFFA5B4).w,d3 cmp.w (word_FFFFA5B6).w,d3 bne.s loc_22D80 clr.w (word_FFFFA5B4).w loc_22D80: ; CODE XREF: sub_229DE+37Ej ; sub_229DE+392j ... clr.b (byte_FFFFA5D6).w move.b (word_FFFFA5B0).w,d3 lsr.b #3,d3 andi.b #$F,d3 move.b d3,(byte_FFFFA5CE).w movem.l (sp)+,d0-d2/d6/a0 unlk a6 rts ; End of function sub_229DE ; =============== S U B R O U T I N E ======================================= sub_22D9A: ; CODE XREF: sub_229DE+66p var_50B7 = -$50B7 movem.l d0-d2/a0,-(sp) move.w (word_FFFFB4A2).w,d3 cmp.w (ETC_SERIAL_DATA_KE_TACM_FAULT_INHIBIT_MIN_VOLT).l,d3 ; Lower voltage above which TPS Faults are masked if the engine is not running. ; Volts bls.s loc_22DD0 cmp.w (ETC_SERIAL_DATA_KE_TACM_FAULT_INHIBIT_MAX_VOLT).l,d3 ; Upper voltage below which TPS Faults are masked if the engine is not running. ; Volts bcc.s loc_22DD0 tst.b (byte_FFFFA5D7).w bne.s loc_22DD4 move.b (byte_FFFFA5D8).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFA5D8).w cmpi.b #3,d3 bls.s loc_22DD8 moveq #1,d2 move.b d2,(byte_FFFFA5D7).w bra.s loc_22DD8 ; --------------------------------------------------------------------------- loc_22DD0: ; CODE XREF: sub_22D9A+Ej ; sub_22D9A+16j clr.b (byte_FFFFA5D7).w loc_22DD4: ; CODE XREF: sub_22D9A+1Cj clr.b (byte_FFFFA5D8).w loc_22DD8: ; CODE XREF: sub_22D9A+2Cj ; sub_22D9A+34j move.b (ThrottleControlMode2?).w,d3 moveq #3,d1 cmp.b d3,d1 beq.s loc_22DF8 tst.b (byte_FFFFA5D7).w beq.s loc_22DF8 btst #2,(byte_FFFFA59C).w bne.s loc_22DF8 moveq #1,d2 move.b d2,(byte_FFFFA5D9).w bra.s loc_22DFC ; --------------------------------------------------------------------------- loc_22DF8: ; CODE XREF: sub_22D9A+46j ; sub_22D9A+4Cj ... clr.b (byte_FFFFA5D9).w loc_22DFC: ; CODE XREF: sub_22D9A+5Cj move.b (byte_FFFFA5D9).w,d0 and.b (byte_FFFFA5A6).w,d0 beq.s loc_22E12 moveq #1,d2 move.b d2,(byte_FFFFA5A0).w clr.b (byte_FFFFA5A1).w bra.s loc_22E1C ; --------------------------------------------------------------------------- loc_22E12: ; CODE XREF: sub_22D9A+6Aj tst.b (byte_FFFFA5A0).w beq.s loc_22E22 cmp.b d3,d1 beq.s loc_22E22 loc_22E1C: ; CODE XREF: sub_22D9A+76j move.w (GlobalClock).w,(word_FFFFA5A4).w loc_22E22: ; CODE XREF: sub_22D9A+7Cj ; sub_22D9A+80j tst.b (byte_FFFFA5A0).w beq.w loc_22EB2 move.w (ETC_SERIAL_DATA_KE_TACM_CLEAR_CODES_TIMER_1).l,d0 ; Time limit that TPS codes will be masked at low voltage after engine starts. ; Seconds movea.l #unk_FFA5A4,a0 jsr sub_276D4 tst.b d0 beq.s loc_22EB2 tst.b (byte_FFFFA5A1).w beq.s loc_22E54 clr.b (byte_FFFFA5A0).w clr.w (word_FFFFA5A4).w clr.b (byte_FFFFA5A2).w bra.s loc_22EB2 ; --------------------------------------------------------------------------- loc_22E54: ; CODE XREF: sub_22D9A+AAj move.b #1,(byte_FFFFA5A2).w tst.b (byte_FFFFA5D4).w bne.s loc_22EB2 moveq #1,d4 clr.b d0 loc_22E64: ; CODE XREF: sub_22D9A+116j clr.l d3 move.b d4,d3 btst #3,word_FFFFAF56(d3.w*4) bne.s loc_22E7C btst #2,word_FFFFAF56(d3.w*4) beq.s loc_22E80 loc_22E7C: ; CODE XREF: sub_22D9A+D6j addq.b #1,d4 bra.s loc_22EA8 ; --------------------------------------------------------------------------- loc_22E80: ; CODE XREF: sub_22D9A+E0j moveq #1,d0 move.b #$FF,$10+var_50B7(d3.w*4) bset #3,word_FFFFAF56(d3.w*4) clr.b byte_FFFFAF58(d3.w*4) andi.b #$F,word_FFFFAF56(d3.w*4) ori.b #$40,word_FFFFAF56(d3.w*4) ; '@' loc_22EA8: ; CODE XREF: sub_22D9A+E4j tst.b d0 bne.s loc_22EB2 cmpi.b #7,d4 bls.s loc_22E64 loc_22EB2: ; CODE XREF: sub_22D9A+8Cj ; sub_22D9A+A4j ... movem.l (sp)+,d0-d2/a0 rts ; End of function sub_22D9A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_22EB8: ; CODE XREF: OS1:loc_2B790p var_2 = -2 link a6,#-2 move.w (word_FFFFFFE0).w,var_2(a6) bclr #1,var_2+1(a6) move.w var_2(a6),(word_FFFFFFE0).w bclr #6,(byte_FFFFFE20).w move.w (word_FFFFFE0A).w,var_2(a6) bset #7,var_2(a6) move.w var_2(a6),(word_FFFFFE0A).w move.w (word_FFFFFFF0).w,var_2(a6) andi.b #$F0,var_2(a6) ori.b #7,var_2(a6) move.w var_2(a6),(word_FFFFFFF0).w unlk a6 rts ; End of function sub_22EB8 ; =============== S U B R O U T I N E ======================================= sub_22F02: ; CODE XREF: sub_223EA+292p ; sub_229DE+5Ap ... move.l d0,-(sp) bset #4,(byte_FFFFA5CC).w move.w (word_FFFF826E).w,d3 addq.w #1,d3 bcc.s loc_22F16 move.w #$FFFF,d3 loc_22F16: ; CODE XREF: sub_22F02+Ej move.w d3,(word_FFFF826E).w move.b (byte_FFFFA5CC).w,(byte_FFFF8270).w move.w #$F5,d0 ; '?' jsr sub_5F110 move.w (word_FFFFB4A2).w,d3 cmp.w (ETC_SERIAL_DATA_KE_ETC_LOW_VOLTAGE_THRESHOLD).l,d3 ; Voltage at which the smart pedal/actuator will not function. ; Volts bcc.s loc_22F3C move.b #1,(byte_FFFF826A).w loc_22F3C: ; CODE XREF: sub_22F02+32j move.l (sp)+,d0 rts ; End of function sub_22F02 ; =============== S U B R O U T I N E ======================================= sub_22F40: ; CODE XREF: sub_223EA:loc_229B6p ; DoLoopB+80p btst #6,(byte_FFFFA59C).w beq.s loc_22F62 bclr #5,(word_FFFFA594).w bclr #4,(word_FFFFA594).w bclr #3,(word_FFFFA594).w bclr #2,(word_FFFFA594).w bra.s loc_22F82 ; --------------------------------------------------------------------------- loc_22F62: ; CODE XREF: sub_22F40+6j btst #1,(byte_FFFFA5CC).w beq.s loc_22F82 bclr #5,(word_FFFFA594).w bclr #4,(word_FFFFA594).w tst.b (byte_FFFFAF3B).w beq.s loc_22F82 bclr #3,(word_FFFFA594).w loc_22F82: ; CODE XREF: sub_22F40+20j ; sub_22F40+28j ... btst #4,(byte_FFFFA59C).w beq.s locret_22F90 andi.w #$FC00,(word_FFFFA590).w locret_22F90: ; CODE XREF: sub_22F40+48j rts ; End of function sub_22F40 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_22F92: ; CODE XREF: sub_229DE:loc_22A3Ep var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d2/a0,-(sp) jsr sub_21508 tst.b d0 bne.s loc_22FC4 btst #5,(byte_FFFFA592).w bne.s loc_22FC4 btst #7,(word_FFFFA594).w bne.s loc_22FC4 btst #3,(byte_FFFFA5CC).w bne.s loc_22FC4 btst #2,(byte_FFFFA5CC).w beq.s loc_22FCC loc_22FC4: ; CODE XREF: sub_22F92+10j ; sub_22F92+18j ... bset #6,(byte_FFFFA59C).w bra.s loc_22FD2 ; --------------------------------------------------------------------------- loc_22FCC: ; CODE XREF: sub_22F92+30j bclr #6,(byte_FFFFA59C).w loc_22FD2: ; CODE XREF: sub_22F92+38j btst #2,(byte_FFFFA59C).w bne.s loc_22FEC btst #6,(byte_FFFFA592).w beq.s loc_22FEC move.w #$C1,d0 ; '?' jsr sub_5F110 loc_22FEC: ; CODE XREF: sub_22F92+46j ; sub_22F92+4Ej jsr sub_21508 tst.b d0 bne.s loc_23066 tst.b (byte_FFFFA301).w bne.s loc_23066 tst.b (byte_FFFFA300).w bne.s loc_23066 cmpi.b #2,(byte_FFFFA2FF).w beq.s loc_23066 btst #5,(byte_FFFFA592).w bne.s loc_23066 btst #6,(byte_FFFFA592).w bne.s loc_23066 btst #6,(byte_FFFFA59C).w beq.s loc_2306E clr.b d0 move.b (byte_FFFFA592).w,var_4(a6) move.b var_4(a6),d3 moveq #7,d1 and.b d1,d3 eor.b d0,d3 andi.b #7,d3 bne.s loc_23066 move.b (byte_FFFFA593).w,var_2(a6) move.b var_2(a6),d3 and.b d1,d3 eor.b d0,d3 andi.b #7,d3 bne.s loc_23066 btst #3,(byte_FFFFA592).w bne.s loc_23066 btst #4,(byte_FFFFA592).w bne.s loc_23066 btst #3,(byte_FFFFA593).w beq.s loc_2306E loc_23066: ; CODE XREF: sub_22F92+62j ; sub_22F92+68j ... bset #2,(byte_FFFFA59C).w bra.s loc_23074 ; --------------------------------------------------------------------------- loc_2306E: ; CODE XREF: sub_22F92+8Ej ; sub_22F92+D2j bclr #2,(byte_FFFFA59C).w loc_23074: ; CODE XREF: sub_22F92+DAj btst #6,(byte_FFFFA59C).w bne.s loc_23098 btst #2,(byte_FFFFA59C).w bne.s loc_23098 tst.b (byte_FFFFA2FE).w bne.s loc_23098 tst.b (byte_FFFFA2FF).w bne.s loc_23098 btst #7,(byte_FFFFA592).w beq.s loc_230A0 loc_23098: ; CODE XREF: sub_22F92+E8j ; sub_22F92+F0j ... bset #5,(byte_FFFFA59C).w bra.s loc_230A6 ; --------------------------------------------------------------------------- loc_230A0: ; CODE XREF: sub_22F92+104j bclr #5,(byte_FFFFA59C).w loc_230A6: ; CODE XREF: sub_22F92+10Cj btst #6,(byte_FFFFA59C).w bne.s loc_230CC cmpi.b #2,(byte_FFFFA2FE).w beq.s loc_230CC btst #5,(byte_FFFFA59C).w bne.s loc_230C6 btst #1,(byte_FFFFA5CC).w beq.s loc_230D4 loc_230C6: ; CODE XREF: sub_22F92+12Aj tst.b (byte_FFFFAF3B).w beq.s loc_230D4 loc_230CC: ; CODE XREF: sub_22F92+11Aj ; sub_22F92+122j bset #4,(byte_FFFFA59C).w bra.s loc_230DA ; --------------------------------------------------------------------------- loc_230D4: ; CODE XREF: sub_22F92+132j ; sub_22F92+138j bclr #4,(byte_FFFFA59C).w loc_230DA: ; CODE XREF: sub_22F92+140j move.w (word_FFFFB298).w,d0 cmp.w (ETC_SERIAL_DATA_KE_SHUTDOWN_VACUUM_TOO_LOW).l,d0 ; Vacuum level at which braking ability may be inadequate to stop the vehicle ; kPa bcc.s loc_23104 move.w (ETC_SERIAL_DATA_KE_SHUTDOWN_VACUUM_TOO_LOW+2).l,d0 ; Vacuum level at which braking ability may be inadequate to stop the vehicle ; kPa movea.l #unk_FFA5C2,a0 jsr sub_276D4 tst.b d0 beq.s loc_2310A move.b #1,(byte_FFFFA5D3).w bra.s loc_2310A ; --------------------------------------------------------------------------- loc_23104: ; CODE XREF: sub_22F92+152j move.w (GlobalClock).w,(word_FFFFA5C2).w loc_2310A: ; CODE XREF: sub_22F92+168j ; sub_22F92+170j tst.b (byte_FFFFA59F).w beq.s loc_23120 btst #2,(byte_FFFF8255).w beq.s loc_23120 btst #4,(byte_FFFF8253).w bne.s loc_23140 loc_23120: ; CODE XREF: sub_22F92+17Cj ; sub_22F92+184j jsr sub_21508 tst.b d0 bne.s loc_23140 btst #5,(byte_FFFFA59C).w beq.s loc_2314E tst.b (byte_FFFFA5D3).w beq.s loc_2314E cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_2314E loc_23140: ; CODE XREF: sub_22F92+18Cj ; sub_22F92+196j move.b #1,(byte_FFFFA59F).w bset #3,(byte_FFFFA59C).w bra.s loc_231C2 ; --------------------------------------------------------------------------- loc_2314E: ; CODE XREF: sub_22F92+19Ej ; sub_22F92+1A4j ... btst #3,(byte_FFFFA59C).w bne.s loc_231BC btst #5,(byte_FFFFA59C).w bne.s loc_23166 btst #4,(byte_FFFFA59C).w beq.s loc_231B0 loc_23166: ; CODE XREF: sub_22F92+1CAj move.b #1,(byte_FFFFA59F).w move.w (word_FFFF9050).w,d0 move.w (EngineRPM_PID_000C___).w,d1 cmpi.w #$5000,d1 bcc.s loc_23186 andi.l #$FFFF,d1 divu.w #$A,d1 bra.s loc_2318A ; --------------------------------------------------------------------------- loc_23186: ; CODE XREF: sub_22F92+1E6j move.w #$800,d1 loc_2318A: ; CODE XREF: sub_22F92+1F2j cmpi.w #$400,d0 bcc.s loc_23198 mulu.w #5,d0 lsr.w #1,d0 bra.s loc_2319C ; --------------------------------------------------------------------------- loc_23198: ; CODE XREF: sub_22F92+1FCj move.w #$A00,d0 loc_2319C: ; CODE XREF: sub_22F92+204j moveq #$B,d2 movea.l #$B4C6,a0 jsr SurfaceTableLookup move.w d0,(word_FFFFA59A).w bra.s loc_231C8 ; --------------------------------------------------------------------------- loc_231B0: ; CODE XREF: sub_22F92+1D2j clr.b (byte_FFFFA59F).w move.w #$7FFF,(word_FFFFA59A).w bra.s loc_231C8 ; --------------------------------------------------------------------------- loc_231BC: ; CODE XREF: sub_22F92+1C2j move.b #1,(byte_FFFFA59F).w loc_231C2: ; CODE XREF: sub_22F92+1BAj move.w #$8000,(word_FFFFA59A).w loc_231C8: ; CODE XREF: sub_22F92+21Cj ; sub_22F92+228j btst #4,(byte_FFFFA59C).w bne.s loc_23208 btst #2,(word_FFFFA590).w bne.s loc_23208 btst #0,(byte_FFFFA592).w bne.s loc_231E8 btst #0,(byte_FFFFA5C9).w beq.s loc_23210 loc_231E8: ; CODE XREF: sub_22F92+24Cj btst #1,(byte_FFFFA592).w bne.s loc_231F8 btst #1,(byte_FFFFA5C9).w beq.s loc_23210 loc_231F8: ; CODE XREF: sub_22F92+25Cj btst #2,(byte_FFFFA592).w bne.s loc_23208 btst #2,(byte_FFFFA5C9).w beq.s loc_23210 loc_23208: ; CODE XREF: sub_22F92+23Cj ; sub_22F92+244j ... bset #0,(byte_FFFFA59C).w bra.s loc_23216 ; --------------------------------------------------------------------------- loc_23210: ; CODE XREF: sub_22F92+254j ; sub_22F92+264j ... bclr #0,(byte_FFFFA59C).w loc_23216: ; CODE XREF: sub_22F92+27Cj movem.l (sp)+,d0-d2/a0 unlk a6 rts ; End of function sub_22F92 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2321E: ; CODE XREF: sub_229DE+2E0p var_2 = -2 link a6,#-2 move sr,-(sp) ori #$700,sr movem.l d0/a0,-(sp) move.w (word_FFFFFFF0).w,var_2(a6) bclr #7,var_2+1(a6) move.w var_2(a6),(word_FFFFFFF0).w move.w (word_FFFFFF38).w,d4 move.l d4,d0 lsr.w #8,d0 move.l d0,d3 lsr.b #7,d3 andi.w #$FF,d3 add.w d0,d3 move.w d3,(word_FFFFBFFE).w move.w d3,(word_FFFFFFF4).w moveq #4,d0 movea.l #unk_FFA5B0,a0 jsr sub_22322 move.w (word_FFFFFFE0).w,var_2(a6) bset #1,var_2+1(a6) move.w var_2(a6),(word_FFFFFFE0).w movem.l (sp)+,d0/a0 move (sp)+,sr unlk a6 locret_23280: ; DATA XREF: Calibration:XDTS_BRAKE_KE_BRAKE_ON_FAIL_TIME_LIMITo ; Calibration:DI_EONV_KE_EONV_AMBAIRTIMEo ... rts ; End of function sub_2321E ; =============== S U B R O U T I N E ======================================= sub_23282: ; CODE XREF: sub_223EA+39Ap ; sub_229DE+CCp move sr,-(sp) ori #$700,sr jsr sub_20C0C jsr sub_2192A clr.b (byte_FFFFA59C).w clr.b (byte_FFFFA59F).w clr.b (byte_FFFFA5CF).w clr.b (byte_FFFFA5D0).w clr.b (byte_FFFFA5D1).w clr.b (byte_FFFFA5C9).w clr.b (byte_FFFFA5CA).w clr.b (byte_FFFFA5CD).w clr.w (word_FFFF826C).w clr.b (byte_FFFFA5D2).w move.w (GlobalClock).w,(word_FFFFA5BC).w clr.b (byte_FFFF826A).w clr.b (byte_FFFFA5CC).w clr.w (word_FFFF826E).w clr.w (word_FFFFA5B4).w clr.w (word_FFFFA5B6).w clr.b (byte_FFFFA5C4).w clr.b (byte_FFFFA5C5).w clr.b (byte_FFFFA5C6).w clr.b (byte_FFFFA5C7).w clr.b (byte_FFFFA5C8).w bclr #7,(byte_FFFFA5CB).w bclr #6,(byte_FFFFA5CB).w bclr #2,(word_FFFFA590).w clr.b (byte_FFFFA592).w clr.b (byte_FFFFA593).w bclr #7,(word_FFFFA594).w bclr #6,(word_FFFFA594).w move (sp)+,sr rts ; End of function sub_23282 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_23314: ; CODE XREF: sub_20644+2p var_2 = -2 link a6,#-2 move sr,-(sp) ori #$700,sr movem.l d0-d1,-(sp) move.b (byte_FFFFA593).w,d1 tst.b (byte_FFFFA5CF).w bne.s loc_23336 move.w #$EA,d0 ; '?' jsr sub_5F0BE loc_23336: ; CODE XREF: sub_23314+16j tst.b (byte_FFFFA5D0).w bne.s loc_23346 move.w #$EC,d0 ; '?' jsr sub_5F0BE loc_23346: ; CODE XREF: sub_23314+26j tst.b (byte_FFFFA5D1).w bne.s loc_23356 move.w #$EE,d0 ; '?' jsr sub_5F0BE loc_23356: ; CODE XREF: sub_23314+36j btst #3,d1 bne.s loc_23366 move.w #$EF,d0 ; '?' jsr sub_5F0BE loc_23366: ; CODE XREF: sub_23314+46j move.b (byte_FFFFA592).w,d1 btst #0,d1 bne.s loc_2337A move.w #$E9,d0 ; '?' jsr sub_5F0BE loc_2337A: ; CODE XREF: sub_23314+5Aj btst #1,d1 bne.s loc_2338A move.w #$EB,d0 ; '?' jsr sub_5F0BE loc_2338A: ; CODE XREF: sub_23314+6Aj btst #2,d1 bne.s loc_2339A move.w #$ED,d0 ; '?' jsr sub_5F0BE loc_2339A: ; CODE XREF: sub_23314+7Aj btst #3,d1 bne.s loc_233A8 moveq #$F,d0 jsr sub_5F0BE loc_233A8: ; CODE XREF: sub_23314+8Aj btst #4,d1 bne.s loc_233B6 moveq #$3A,d0 ; ':' jsr sub_5F0BE loc_233B6: ; CODE XREF: sub_23314+98j btst #5,d1 bne.s loc_233C6 move.w #$E7,d0 ; '?' jsr sub_5F0BE loc_233C6: ; CODE XREF: sub_23314+A6j btst #6,d1 bne.s loc_233D6 move.w #$C1,d0 ; '?' jsr sub_5F0BE loc_233D6: ; CODE XREF: sub_23314+B6j move.w (word_FFFFA5BC).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmpi.w #$50,d0 ; 'P' bcs.s loc_23402 btst #4,(byte_FFFFA5CC).w bne.s loc_23402 move.w #$F5,d0 ; '?' jsr sub_5F0BE move.w (GlobalClock).w,(word_FFFFA5BC).w loc_23402: ; CODE XREF: sub_23314+D4j ; sub_23314+DCj movem.l (sp)+,d0-d1 move (sp)+,sr unlk a6 rts ; End of function sub_23314 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2340C: ; CODE XREF: DoLoopB+92p var_6 = -6 var_4 = -4 var_2 = -2 d2_ThrottleSource = d2 d1_IdlePercentageNotClamped = d1 link a6,#-6 movem.l d0-d2_ThrottleSource/d6-a1,-(sp) jsr sub_35CFC cmpi.w #$780,(word_FFFFAEBE).w bcc.s loc_2343C moveq #$50,d0 ; 'P' movea.l #unk_FF9094,a0 jsr sub_276D4 tst.b d0 beq.s loc_23448 bset #0,(byte_FFFF9063).w bra.s loc_23448 ; --------------------------------------------------------------------------- loc_2343C: ; CODE XREF: sub_2340C+14j move.w (GlobalClock).w,(word_FFFF9094).w bclr #0,(byte_FFFF9063).w loc_23448: ; CODE XREF: sub_2340C+26j ; sub_2340C+2Ej move.w (word_FFFFAEBE).w,d0 cmp.w (ETC_THROT_KE_MAX_STAT_PTO_MPH).l,d0 ; ETC PTO safety gate. Stationary PTO is disabled if vehicle speed is >= this value. ; MPH bls.s loc_2346E moveq #$20,d0 ; ' ' movea.l #unk_FF909E,a0 jsr sub_276D4 tst.b d0 beq.s loc_2347A bset #0,(byte_FFFF90A2).w bra.s loc_2347A ; --------------------------------------------------------------------------- loc_2346E: ; CODE XREF: sub_2340C+46j move.w (GlobalClock).w,(word_FFFF909E).w bclr #0,(byte_FFFF90A2).w loc_2347A: ; CODE XREF: sub_2340C+58j ; sub_2340C+60j move.w (word_FFFFAEBE).w,d0 cmp.w (ETC_THROT_KE_MAX_MOBILE_PTO_MPH).l,d0 ; ETC PTO safety gate. Mobile PTO is disabled if vehicle speed is >= this value. ; MPH bls.s loc_234A0 moveq #$20,d0 ; ' ' movea.l #unk_FF90A0,a0 jsr sub_276D4 tst.b d0 beq.s loc_234AC bset #1,(byte_FFFF90A2).w bra.s loc_234AC ; --------------------------------------------------------------------------- loc_234A0: ; CODE XREF: sub_2340C+78j move.w (GlobalClock).w,(word_FFFF90A0).w bclr #1,(byte_FFFF90A2).w loc_234AC: ; CODE XREF: sub_2340C+8Aj ; sub_2340C+92j btst #2,(word_FFFFA594).w bne.s loc_234E8 move.w (word_FFFF9096).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmpi.w #$20,d0 ; ' ' bcs.s loc_234FA bset #2,(byte_FFFF90A2).w moveq #$50,d0 ; 'P' movea.l #unk_FF9096,a0 jsr sub_276D4 tst.b d0 beq.s loc_234FA bset #1,(byte_FFFF9063).w bra.s loc_234FA ; --------------------------------------------------------------------------- loc_234E8: ; CODE XREF: sub_2340C+A6j move.w (GlobalClock).w,(word_FFFF9096).w bclr #1,(byte_FFFF9063).w bclr #2,(byte_FFFF90A2).w loc_234FA: ; CODE XREF: sub_2340C+BAj ; sub_2340C+D2j ... tst.b (byte_FFFFAF3B).w beq.s loc_23534 move.w (word_FFFF9098).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmpi.w #$20,d0 ; ' ' bcs.s loc_23546 bset #3,(byte_FFFF90A2).w moveq #$50,d0 ; 'P' movea.l #unk_FF9098,a0 jsr sub_276D4 tst.b d0 beq.s loc_23546 bset #2,(byte_FFFF9063).w bra.s loc_23546 ; --------------------------------------------------------------------------- loc_23534: ; CODE XREF: sub_2340C+F2j move.w (GlobalClock).w,(word_FFFF9098).w bclr #2,(byte_FFFF9063).w bclr #3,(byte_FFFF90A2).w loc_23546: ; CODE XREF: sub_2340C+106j ; sub_2340C+11Ej ... clr.w d0 move.b (ETC_THROT_KE_DRAG_CNTL_ACCEL_TOO_HIGH).l,d0 ; limit on vehicle accel rate during which any drag controlfeature is allowed to be active. ; MPH_Per_300ms cmp.w (word_FFFFA81E).w,d0 bge.s loc_23572 move.w (ETC_THROT_KE_DRAG_CNTL_ACCEL_TOO_HI_TIME).l,d0 ; Time limit vehicle accel is allowed to be above an accel forprior to limiting the drag control function. ; Seconds movea.l #unk_FF9092,a0 jsr sub_276D4 tst.b d0 beq.s loc_2357E bset #3,(byte_FFFF9063).w bra.s loc_2357E ; --------------------------------------------------------------------------- loc_23572: ; CODE XREF: sub_2340C+146j move.w (GlobalClock).w,(word_FFFF9092).w bclr #3,(byte_FFFF9063).w loc_2357E: ; CODE XREF: sub_2340C+15Cj ; sub_2340C+164j btst #1,(byte_FFFF9027).w sne d1_IdlePercentageNotClamped neg.b d1_IdlePercentageNotClamped cmp.b (byte_FFFF90A5).w,d1_IdlePercentageNotClamped beq.s loc_23594 move.w (GlobalClock).w,(word_FFFF909A).w loc_23594: ; CODE XREF: sub_2340C+180j tst.b d1_IdlePercentageNotClamped beq.s loc_235B8 bclr #5,(byte_FFFF90A2).w moveq #$20,d0 ; ' ' movea.l #unk_FF909A,a0 jsr sub_276D4 tst.b d0 beq.s loc_235D6 bset #4,(byte_FFFF90A2).w bra.s loc_235D6 ; --------------------------------------------------------------------------- loc_235B8: ; CODE XREF: sub_2340C+18Aj bclr #4,(byte_FFFF90A2).w moveq #$20,d0 ; ' ' movea.l #unk_FF909A,a0 jsr sub_276D4 tst.b d0 beq.s loc_235D6 bset #5,(byte_FFFF90A2).w loc_235D6: ; CODE XREF: sub_2340C+1A2j ; sub_2340C+1AAj ... move.b d1_IdlePercentageNotClamped,(byte_FFFF90A5).w btst #5,(byte_FFFF9027).w beq.s loc_235FC moveq #$20,d0 ; ' ' movea.l #unk_FF909C,a0 jsr sub_276D4 tst.b d0 beq.s loc_23608 bset #6,(byte_FFFF90A2).w bra.s loc_23608 ; --------------------------------------------------------------------------- loc_235FC: ; CODE XREF: sub_2340C+1D4j move.w (GlobalClock).w,(word_FFFF909C).w bclr #6,(byte_FFFF90A2).w loc_23608: ; CODE XREF: sub_2340C+1E6j ; sub_2340C+1EEj movea.w (word_FFFF9008).w,a0 move.w a0,(word_FFFF906A).w move.w (word_FFFFB052).w,d7 add.w d7,d7 move.w d7,(word_FFFF906C).w move.w (word_FFFFB1C8).w,d5 add.w d5,d5 move.w d5,var_6(a6) move.w d5,(word_FFFF906E).w move.w (word_FFFF93FC).w,d3 add.w d3,d3 move.w d3,var_4(a6) move.w d3,(word_FFFF9070).w move.w (word_FFFF93FE).w,d6 add.w d6,d6 move.w d6,(word_FFFF9072).w move.w (word_FFFFA818).w,d2_ThrottleSource add.w d2_ThrottleSource,d2_ThrottleSource move.w d2_ThrottleSource,(word_FFFF9074).w move.w (word_FFFFA81A).w,d0 add.w d0,d0 move.w d0,(word_FFFF9076).w move.w (word_FFFFA81C).w,d4 add.w d4,d4 move.w d4,(word_FFFF9078).w move.w (DBW_Idle_Percentage_NotClamped).w,d1_IdlePercentageNotClamped move.w d1_IdlePercentageNotClamped,(word_FFFF907A).w move.w (word_FFFF900A).w,(word_FFFF907C).w move.w (EngineRPM_PID_000C___).w,d3 move.w d3,(word_FFFF907E).w movea.w (word_FFFFAEBE).w,a1 move.w a1,(word_FFFF9080).w move.b (byte_FFFFA59C).w,(byte_FFFF9085).w bclr #5,(byte_FFFF9084).w tst.b (byte_FFFFB379).w beq.s loc_23694 bset #5,(byte_FFFF9084).w loc_23694: ; CODE XREF: sub_2340C+280j bclr #4,(byte_FFFF9084).w tst.b (byte_FFFFAF3B).w beq.s loc_236A6 bset #4,(byte_FFFF9084).w loc_236A6: ; CODE XREF: sub_2340C+292j cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_236B8 bset #1,(byte_FFFF9084).w bra.s loc_236BE ; --------------------------------------------------------------------------- loc_236B8: ; CODE XREF: sub_2340C+2A2j bclr #1,(byte_FFFF9084).w loc_236BE: ; CODE XREF: sub_2340C+2AAj bclr #7,(byte_FFFF9083).w tst.b (byte_FFFF900F).w beq.s loc_236D0 bset #7,(byte_FFFF9083).w loc_236D0: ; CODE XREF: sub_2340C+2BCj bclr #6,(byte_FFFF9083).w btst #5,(byte_FFFFA593).w beq.s loc_236E4 bset #6,(byte_FFFF9083).w loc_236E4: ; CODE XREF: sub_2340C+2D0j bclr #3,(byte_FFFF9083).w btst #3,(byte_FFFF9063).w beq.s loc_236F8 bset #3,(byte_FFFF9083).w loc_236F8: ; CODE XREF: sub_2340C+2E4j move.b (byte_FFFF93EB).w,d5 or.b (byte_FFFF93F6).w,d5 beq.s loc_2370A bset #2,(byte_FFFF9083).w bra.s loc_23710 ; --------------------------------------------------------------------------- loc_2370A: ; CODE XREF: sub_2340C+2F4j bclr #2,(byte_FFFF9083).w loc_23710: ; CODE XREF: sub_2340C+2FCj btst #0,(byte_FFFF9063).w bne.s loc_23728 btst #1,(byte_FFFF9063).w bne.s loc_23728 btst #2,(byte_FFFF9063).w beq.s loc_23730 loc_23728: ; CODE XREF: sub_2340C+30Aj ; sub_2340C+312j bset #1,(byte_FFFF9083).w bra.s loc_23736 ; --------------------------------------------------------------------------- loc_23730: ; CODE XREF: sub_2340C+31Aj bclr #1,(byte_FFFF9083).w loc_23736: ; CODE XREF: sub_2340C+322j bclr #0,(byte_FFFF9083).w tst.b (byte_FFFFB048).w beq.s loc_23748 bset #0,(byte_FFFF9083).w loc_23748: ; CODE XREF: sub_2340C+334j btst #4,(byte_FFFF9026).w beq.s loc_23768 cmpi.b #4,(byte_FFFF9028).w bne.s loc_23768 btst #1,(byte_FFFF90A2).w beq.s loc_23768 bset #7,(byte_FFFF9082).w bra.s loc_2376E ; --------------------------------------------------------------------------- loc_23768: ; CODE XREF: sub_2340C+342j ; sub_2340C+34Aj ... bclr #7,(byte_FFFF9082).w loc_2376E: ; CODE XREF: sub_2340C+35Aj btst #6,(byte_FFFF9026).w bne.s loc_2377E cmpi.b #3,(byte_FFFF9028).w bne.s loc_2378E loc_2377E: ; CODE XREF: sub_2340C+368j btst #0,(byte_FFFF90A2).w beq.s loc_2378E bset #6,(byte_FFFF9082).w bra.s loc_23794 ; --------------------------------------------------------------------------- loc_2378E: ; CODE XREF: sub_2340C+370j ; sub_2340C+378j bclr #6,(byte_FFFF9082).w loc_23794: ; CODE XREF: sub_2340C+380j btst #3,(byte_FFFF9026).w beq.s loc_237AC btst #6,(byte_FFFF90A2).w beq.s loc_237AC bset #5,(byte_FFFF9082).w bra.s loc_237B2 ; --------------------------------------------------------------------------- loc_237AC: ; CODE XREF: sub_2340C+38Ej ; sub_2340C+396j bclr #5,(byte_FFFF9082).w loc_237B2: ; CODE XREF: sub_2340C+39Ej btst #3,(byte_FFFF90A2).w bne.s loc_237C2 btst #2,(byte_FFFF90A2).w beq.s loc_237CA loc_237C2: ; CODE XREF: sub_2340C+3ACj bset #4,(byte_FFFF9082).w bra.s loc_237D0 ; --------------------------------------------------------------------------- loc_237CA: ; CODE XREF: sub_2340C+3B4j bclr #4,(byte_FFFF9082).w loc_237D0: ; CODE XREF: sub_2340C+3BCj btst #6,(byte_FFFF9026).w bne.s loc_237E0 btst #4,(byte_FFFF9026).w beq.s loc_237E8 loc_237E0: ; CODE XREF: sub_2340C+3CAj bset #3,(byte_FFFF9082).w bra.s loc_237EE ; --------------------------------------------------------------------------- loc_237E8: ; CODE XREF: sub_2340C+3D2j bclr #3,(byte_FFFF9082).w loc_237EE: ; CODE XREF: sub_2340C+3DAj bclr #2,(byte_FFFF9082).w btst #4,(byte_FFFF90A2).w beq.s loc_23802 bset #2,(byte_FFFF9082).w loc_23802: ; CODE XREF: sub_2340C+3EEj bclr #1,(byte_FFFF9082).w btst #5,(byte_FFFF90A2).w beq.s loc_23816 bset #1,(byte_FFFF9082).w loc_23816: ; CODE XREF: sub_2340C+402j bclr #0,(byte_FFFF9082).w btst #2,(byte_FFFFB1C2).w beq.s loc_2382A bset #0,(byte_FFFF9082).w loc_2382A: ; CODE XREF: sub_2340C+416j move.w (word_FFFF9080).w,d5 add.w d5,d5 move.w d5,(word_FFFFA026).w andi.l #$FFFF,d3 add.l d3,d3 move.l d3,(dword_FFFFA028).w move.w (word_FFFFA014).w,(word_FFFFA02C).w move.l d1_IdlePercentageNotClamped,d3 add.w d3,d3 move.w d3,(word_FFFFA02E).w add.w d4,d4 move.w d4,(word_FFFFA030).w add.w d0,d0 move.w d0,(word_FFFFA032).w add.w d2_ThrottleSource,d2_ThrottleSource move.w d2_ThrottleSource,(word_FFFFA034).w add.w d6,d6 move.w d6,(word_FFFFA036).w move.w var_4(a6),d6 add.w d6,d6 move.w d6,(word_FFFFA038).w move.w var_6(a6),d6 add.w d6,d6 move.w d6,(word_FFFFA03A).w move.l d7,d6 add.w d6,d6 move.w d6,(word_FFFFA03C).w move.w (word_FFFFA012).w,(word_FFFFA03E).w btst #1,(byte_FFFF9084).w bne.s loc_23898 bset #6,(byte_FFFFA021).w bra.s loc_2389E ; --------------------------------------------------------------------------- loc_23898: ; CODE XREF: sub_2340C+482j bclr #6,(byte_FFFFA021).w loc_2389E: ; CODE XREF: sub_2340C+48Aj btst #4,(byte_FFFF9084).w bne.s loc_238AE bset #3,(byte_FFFFA021).w bra.s loc_238B4 ; --------------------------------------------------------------------------- loc_238AE: ; CODE XREF: sub_2340C+498j bclr #3,(byte_FFFFA021).w loc_238B4: ; CODE XREF: sub_2340C+4A0j btst #5,(byte_FFFF9084).w bne.s loc_238C4 bset #2,(byte_FFFFA021).w bra.s loc_238CA ; --------------------------------------------------------------------------- loc_238C4: ; CODE XREF: sub_2340C+4AEj bclr #2,(byte_FFFFA021).w loc_238CA: ; CODE XREF: sub_2340C+4B6j btst #0,(byte_FFFF9083).w bne.s loc_238DA bset #7,(byte_FFFFA022).w bra.s loc_238E0 ; --------------------------------------------------------------------------- loc_238DA: ; CODE XREF: sub_2340C+4C4j bclr #7,(byte_FFFFA022).w loc_238E0: ; CODE XREF: sub_2340C+4CCj btst #1,(byte_FFFF9083).w bne.s loc_238F0 bset #6,(byte_FFFFA022).w bra.s loc_238F6 ; --------------------------------------------------------------------------- loc_238F0: ; CODE XREF: sub_2340C+4DAj bclr #6,(byte_FFFFA022).w loc_238F6: ; CODE XREF: sub_2340C+4E2j btst #2,(byte_FFFF9083).w bne.s loc_23906 bset #5,(byte_FFFFA022).w bra.s loc_2390C ; --------------------------------------------------------------------------- loc_23906: ; CODE XREF: sub_2340C+4F0j bclr #5,(byte_FFFFA022).w loc_2390C: ; CODE XREF: sub_2340C+4F8j btst #3,(byte_FFFF9083).w bne.s loc_2391C bset #4,(byte_FFFFA022).w bra.s loc_23922 ; --------------------------------------------------------------------------- loc_2391C: ; CODE XREF: sub_2340C+506j bclr #4,(byte_FFFFA022).w loc_23922: ; CODE XREF: sub_2340C+50Ej btst #6,(byte_FFFF9083).w bne.s loc_23932 bset #1,(byte_FFFFA022).w bra.s loc_23938 ; --------------------------------------------------------------------------- loc_23932: ; CODE XREF: sub_2340C+51Cj bclr #1,(byte_FFFFA022).w loc_23938: ; CODE XREF: sub_2340C+524j btst #7,(byte_FFFF9083).w bne.s loc_23948 bset #0,(byte_FFFFA022).w bra.s loc_2394E ; --------------------------------------------------------------------------- loc_23948: ; CODE XREF: sub_2340C+532j bclr #0,(byte_FFFFA022).w loc_2394E: ; CODE XREF: sub_2340C+53Aj btst #0,(byte_FFFF9085).w bne.s loc_2395E bset #7,(byte_FFFFA020).w bra.s loc_23964 ; --------------------------------------------------------------------------- loc_2395E: ; CODE XREF: sub_2340C+548j bclr #7,(byte_FFFFA020).w loc_23964: ; CODE XREF: sub_2340C+550j btst #2,(byte_FFFF9085).w bne.s loc_23974 bset #5,(byte_FFFFA020).w bra.s loc_2397A ; --------------------------------------------------------------------------- loc_23974: ; CODE XREF: sub_2340C+55Ej bclr #5,(byte_FFFFA020).w loc_2397A: ; CODE XREF: sub_2340C+566j btst #3,(byte_FFFF9085).w bne.s loc_2398A bset #4,(byte_FFFFA020).w bra.s loc_23990 ; --------------------------------------------------------------------------- loc_2398A: ; CODE XREF: sub_2340C+574j bclr #4,(byte_FFFFA020).w loc_23990: ; CODE XREF: sub_2340C+57Cj btst #4,(byte_FFFF9085).w bne.s loc_239A0 bset #3,(byte_FFFFA020).w bra.s loc_239A6 ; --------------------------------------------------------------------------- loc_239A0: ; CODE XREF: sub_2340C+58Aj bclr #3,(byte_FFFFA020).w loc_239A6: ; CODE XREF: sub_2340C+592j btst #5,(byte_FFFF9085).w bne.s loc_239B6 bset #2,(byte_FFFFA020).w bra.s loc_239BC ; --------------------------------------------------------------------------- loc_239B6: ; CODE XREF: sub_2340C+5A0j bclr #2,(byte_FFFFA020).w loc_239BC: ; CODE XREF: sub_2340C+5A8j btst #7,(byte_FFFF9082).w bne.s loc_239CC bset #0,(byte_FFFFA023).w bra.s loc_239D2 ; --------------------------------------------------------------------------- loc_239CC: ; CODE XREF: sub_2340C+5B6j bclr #0,(byte_FFFFA023).w loc_239D2: ; CODE XREF: sub_2340C+5BEj btst #6,(byte_FFFF9082).w bne.s loc_239E2 bset #1,(byte_FFFFA023).w bra.s loc_239E8 ; --------------------------------------------------------------------------- loc_239E2: ; CODE XREF: sub_2340C+5CCj bclr #1,(byte_FFFFA023).w loc_239E8: ; CODE XREF: sub_2340C+5D4j btst #5,(byte_FFFF9082).w bne.s loc_239F8 bset #2,(byte_FFFFA023).w bra.s loc_239FE ; --------------------------------------------------------------------------- loc_239F8: ; CODE XREF: sub_2340C+5E2j bclr #2,(byte_FFFFA023).w loc_239FE: ; CODE XREF: sub_2340C+5EAj btst #4,(byte_FFFF9082).w bne.s loc_23A0E bset #3,(byte_FFFFA023).w bra.s loc_23A14 ; --------------------------------------------------------------------------- loc_23A0E: ; CODE XREF: sub_2340C+5F8j bclr #3,(byte_FFFFA023).w loc_23A14: ; CODE XREF: sub_2340C+600j btst #3,(byte_FFFF9082).w bne.s loc_23A24 bset #4,(byte_FFFFA023).w bra.s loc_23A2A ; --------------------------------------------------------------------------- loc_23A24: ; CODE XREF: sub_2340C+60Ej bclr #4,(byte_FFFFA023).w loc_23A2A: ; CODE XREF: sub_2340C+616j btst #2,(byte_FFFF9082).w bne.s loc_23A3A bset #5,(byte_FFFFA023).w bra.s loc_23A40 ; --------------------------------------------------------------------------- loc_23A3A: ; CODE XREF: sub_2340C+624j bclr #5,(byte_FFFFA023).w loc_23A40: ; CODE XREF: sub_2340C+62Cj btst #1,(byte_FFFF9082).w bne.s loc_23A50 bset #6,(byte_FFFFA023).w bra.s loc_23A56 ; --------------------------------------------------------------------------- loc_23A50: ; CODE XREF: sub_2340C+63Aj bclr #6,(byte_FFFFA023).w loc_23A56: ; CODE XREF: sub_2340C+642j btst #0,(byte_FFFF9082).w bne.s loc_23A66 bset #7,(byte_FFFFA023).w bra.s loc_23A6C ; --------------------------------------------------------------------------- loc_23A66: ; CODE XREF: sub_2340C+650j bclr #7,(byte_FFFFA023).w loc_23A6C: ; CODE XREF: sub_2340C+658j moveq #3,d0 jsr DBW_Breadcrumb Perform_Throttle_Arbitration: clr.b d2_ThrottleSource move.w a0,var_2(a6) bne.s DetermineIdleContribution moveq #1,d2_ThrottleSource DetermineIdleContribution: ; CODE XREF: sub_2340C+66Ej move.w (ETC_THROT_KE_MAX_IDLE_AREA).l,d3 ; Maximum idle area contribution allowed for ETC ; Percent_Area cmp.w d3,d1_IdlePercentageNotClamped bls.s loc_23A94 move.w d3,(DBW_Idle_OpeningPercent).w bset #0,(byte_FFFF9062).w bra.s loc_23A9E ; --------------------------------------------------------------------------- loc_23A94: ; CODE XREF: sub_2340C+67Aj move.w d1_IdlePercentageNotClamped,(DBW_Idle_OpeningPercent).w bclr #0,(byte_FFFF9062).w loc_23A9E: ; CODE XREF: sub_2340C+686j move.w var_2(a6),d3 add.w (DBW_Idle_OpeningPercent).w,d3 cmpi.w #$2800,d3 bls.s loc_23AB0 move.w #$2800,d3 loc_23AB0: ; CODE XREF: sub_2340C+69Ej move.w d3,var_2(a6) move.w d3,(ThrottleArea_MainVar?).w clr.b (Dbw_Model?_2).w btst #5,(byte_FFFF9085).w bne.s loc_23ACC btst #6,(byte_FFFF9083).w beq.s loc_23ADC loc_23ACC: ; CODE XREF: sub_2340C+6B6j bset #4,(byte_FFFF9062).w bclr #3,(byte_FFFF9062).w clr.b d3 bra.s loc_23B36 ; --------------------------------------------------------------------------- loc_23ADC: ; CODE XREF: sub_2340C+6BEj btst #5,(byte_FFFF9084).w beq.s loc_23AF4 btst #2,(byte_FFFF9082).w beq.s loc_23AF4 btst #3,(byte_FFFF9082).w bne.s loc_23B04 loc_23AF4: ; CODE XREF: sub_2340C+6D6j ; sub_2340C+6DEj btst #1,(byte_FFFF9083).w bne.s loc_23B04 btst #0,(byte_FFFF9083).w bne.s loc_23B22 loc_23B04: ; CODE XREF: sub_2340C+6E6j ; sub_2340C+6EEj clr.b d3 bclr #3,(byte_FFFF9062).w bclr #4,(byte_FFFF9062).w btst #0,(byte_FFFF9083).w beq.s loc_23B36 bset #4,(byte_FFFF9062).w bra.s loc_23B36 ; --------------------------------------------------------------------------- loc_23B22: ; CODE XREF: sub_2340C+6F6j bclr #4,(byte_FFFF9062).w bset #3,(byte_FFFF9062).w cmp.w var_2(a6),d7 shi d3 neg.b d3 loc_23B36: ; CODE XREF: sub_2340C+6CEj ; sub_2340C+70Cj ... tst.b d3 beq.s loc_23B54 move.w d7,var_2(a6) moveq #2,d2_ThrottleSource tst.b (ETC_THROT_KV_INCLUDE_THROT_SRC_IN_TPS_LOAD).l ; Determines which throttle sources will be included in the transmission throttle position load parameter. ; BOOLEAN beq.s loc_23B54 move.w var_2(a6),(ThrottleArea_MainVar?).w move.l d2_ThrottleSource,d6 move.b d6,(Dbw_Model?_2).w loc_23B54: ; CODE XREF: sub_2340C+72Cj ; sub_2340C+73Aj btst #5,(byte_FFFF9085).w bne.s loc_23B64 btst #6,(byte_FFFF9083).w beq.s loc_23B74 loc_23B64: ; CODE XREF: sub_2340C+74Ej bset #2,(byte_FFFF9062).w bclr #1,(byte_FFFF9062).w clr.b d3 bra.s loc_23BEA ; --------------------------------------------------------------------------- loc_23B74: ; CODE XREF: sub_2340C+756j btst #5,(byte_FFFF9084).w beq.s loc_23BB4 btst #3,(byte_FFFF9082).w beq.s loc_23BB4 btst #6,(byte_FFFF9082).w bne.s loc_23BB4 btst #7,(byte_FFFF9082).w bne.s loc_23BB4 btst #5,(byte_FFFF9082).w bne.s loc_23BB4 btst #1,(byte_FFFF9082).w bne.s loc_23BB4 btst #4,(byte_FFFF9082).w bne.s loc_23BB4 btst #0,(byte_FFFF9082).w bne.s loc_23BD2 loc_23BB4: ; CODE XREF: sub_2340C+76Ej ; sub_2340C+776j ... clr.b d3 bclr #1,(byte_FFFF9062).w bclr #2,(byte_FFFF9062).w btst #0,(byte_FFFF9082).w beq.s loc_23BEA bset #2,(byte_FFFF9062).w bra.s loc_23BEA ; --------------------------------------------------------------------------- loc_23BD2: ; CODE XREF: sub_2340C+7A6j bclr #2,(byte_FFFF9062).w bset #1,(byte_FFFF9062).w move.w var_6(a6),d6 cmp.w var_2(a6),d6 shi d3 neg.b d3 loc_23BEA: ; CODE XREF: sub_2340C+766j ; sub_2340C+7BCj ... tst.b d3 beq.s loc_23C0A move.w var_6(a6),var_2(a6) moveq #3,d2_ThrottleSource tst.b (byte_B799).l beq.s loc_23C0A move.w var_2(a6),(ThrottleArea_MainVar?).w move.l d2_ThrottleSource,d6 move.b d6,(Dbw_Model?_2).w loc_23C0A: ; CODE XREF: sub_2340C+7E0j ; sub_2340C+7F0j btst #2,(byte_FFFF9083).w beq.s loc_23C6A cmpi.w #$180,(word_FFFF9080).w bls.s loc_23C6A btst #3,(byte_FFFF9083).w bne.s loc_23C6A btst #4,(byte_FFFF9084).w bne.s loc_23C6A btst #5,(byte_FFFF9085).w bne.s loc_23C6A move.w var_4(a6),d6 cmp.w var_2(a6),d6 bls.s loc_23C6A move.w (ETC_THROT_KE_MAX_MIN_TORQUE_AUTHORITY).l,d3 ; Limit the authority of drop throttle to command the throttle ; Percent_Area move.w var_4(a6),d6 cmp.w d3,d6 bcc.s loc_23C50 move.w d6,var_2(a6) bra.s loc_23C54 ; --------------------------------------------------------------------------- loc_23C50: ; CODE XREF: sub_2340C+83Cj move.w d3,var_2(a6) loc_23C54: ; CODE XREF: sub_2340C+842j moveq #5,d2_ThrottleSource tst.b (byte_B79B).l beq.s loc_23C6A move.w var_2(a6),(ThrottleArea_MainVar?).w move.l d2_ThrottleSource,d7 move.b d7,(Dbw_Model?_2).w loc_23C6A: ; CODE XREF: sub_2340C+804j ; sub_2340C+80Cj ... move.b d2_ThrottleSource,(byte_FFFF9061).w move.w var_2(a6),(ThrottleArea1).w tst.b (ETC_THROT_KE_TRANS_DESIRED_THROTTLE_LOAD).l ; Determines where in the throttle arbitration process the transload is obtained. ; Throttle_Load_Selector_Type bne.s loc_23C92 move.w var_2(a6),d0 sub.w (DBW_Idle_OpeningPercent).w,d0 bcc.s loc_23C88 clr.w d0 loc_23C88: ; CODE XREF: sub_2340C+878j jsr Lookup_Throttle_Load move.w d0,(word_FFFF905C).w loc_23C92: ; CODE XREF: sub_2340C+86Ej btst #5,(byte_FFFF9085).w beq.s loc_23CC0 move.w var_2(a6),d3 cmp.w (word_FFFF9078).w,d3 bls.s loc_23CC0 move.w (word_FFFF9078).w,var_2(a6) moveq #6,d2_ThrottleSource tst.b (byte_B79C).l beq.s loc_23CC0 move.w var_2(a6),(ThrottleArea_MainVar?).w move.b #6,(Dbw_Model?_2).w loc_23CC0: ; CODE XREF: sub_2340C+88Cj ; sub_2340C+896j ... move.w (word_FFFF9072).w,d3 cmp.w var_2(a6),d3 bcc.s loc_23CE4 move.w d3,var_2(a6) moveq #7,d2_ThrottleSource tst.b (byte_B79D).l beq.s loc_23CE4 move.w var_2(a6),(ThrottleArea_MainVar?).w move.b #7,(Dbw_Model?_2).w loc_23CE4: ; CODE XREF: sub_2340C+8BCj ; sub_2340C+8CAj moveq #1,d6 cmp.b (ETC_THROT_KE_TRANS_DESIRED_THROTTLE_LOAD).l,d6 ; Determines where in the throttle arbitration process the transload is obtained. ; Throttle_Load_Selector_Type bne.s loc_23D04 move.w var_2(a6),d0 sub.w (DBW_Idle_OpeningPercent).w,d0 bcc.s loc_23CFA clr.w d0 loc_23CFA: ; CODE XREF: sub_2340C+8EAj jsr Lookup_Throttle_Load move.w d0,(word_FFFF905C).w loc_23D04: ; CODE XREF: sub_2340C+8E0j move.w (word_FFFF9076).w,d3 cmp.w var_2(a6),d3 bcc.s loc_23D28 move.w d3,var_2(a6) moveq #8,d2_ThrottleSource tst.b (byte_B79E).l beq.s loc_23D28 move.w var_2(a6),(ThrottleArea_MainVar?).w move.b #8,(Dbw_Model?_2).w loc_23D28: ; CODE XREF: sub_2340C+900j ; sub_2340C+90Ej move.w (word_FFFF9074).w,d3 cmp.w var_2(a6),d3 bcc.s loc_23D4C move.w d3,var_2(a6) moveq #9,d2_ThrottleSource tst.b (byte_B79F).l beq.s loc_23D4C move.w var_2(a6),(ThrottleArea_MainVar?).w move.b #9,(Dbw_Model?_2).w loc_23D4C: ; CODE XREF: sub_2340C+924j ; sub_2340C+932j move.w var_2(a6),d0 sub.w (DBW_Idle_OpeningPercent).w,d0 bcc.s loc_23D58 clr.w d0 loc_23D58: ; CODE XREF: sub_2340C+948j jsr Lookup_Throttle_Load move.w d0,(word_FFFF905A).w move.b (ETC_THROT_KE_TRANS_DESIRED_THROTTLE_LOAD).l,d3 ; Determines where in the throttle arbitration process the transload is obtained. ; Throttle_Load_Selector_Type moveq #2,d7 cmp.b d3,d7 bne.s loc_23D74 loc_23D6E: ; CODE XREF: sub_2340C+980j move.w d0,(word_FFFF905C).w bra.s loc_23D8E ; --------------------------------------------------------------------------- loc_23D74: ; CODE XREF: sub_2340C+960j cmpi.b #3,d3 bne.s loc_23D8E move.w (ThrottleArea_MainVar?).w,d0 sub.w (DBW_Idle_OpeningPercent).w,d0 bcc.s loc_23D86 clr.w d0 loc_23D86: ; CODE XREF: sub_2340C+976j jsr Lookup_Throttle_Load bra.s loc_23D6E ; --------------------------------------------------------------------------- loc_23D8E: ; CODE XREF: sub_2340C+966j ; sub_2340C+96Cj move.w (DBW_Idle_OpeningPercent).w,d1_IdlePercentageNotClamped cmp.w var_2(a6),d1_IdlePercentageNotClamped bls.s loc_23D9E move.w d1_IdlePercentageNotClamped,var_2(a6) move.l d6,d2_ThrottleSource ; d6 = 1, d2 = Dbw_Source loc_23D9E: ; CODE XREF: sub_2340C+98Aj move.w var_2(a6),d3 move.w d3,(DBW_Desired_Throttle_Area?__OrThrottleMode?).w cmpi.w #$2A0,d3 bcc.s loc_23DB6 andi.l #$FFFF,d3 asl.l #3,d3 bra.s IdleLearningAmount? ; --------------------------------------------------------------------------- loc_23DB6: ; CODE XREF: sub_2340C+99Ej move.w #$1500,d3 IdleLearningAmount?: ; CODE XREF: sub_2340C+9A8j tbls.w (word_FFFF814C).w,d3 move.w d3,d4 move.w d4,(word_FFFF94C2).w move.w d4,(IdleLearningAmount?).w move.l d4,d5 add.w d5,d5 move.w d5,(word_FFFFA01A).w move.w (ETC_THROT_KE_MAX_IDLE_AREA).l,d0 ; Maximum idle area contribution allowed for ETC ; Percent_Area move.l d1_IdlePercentageNotClamped,d3 add.w (IdleLearningAmount?).w,d3 cmpi.w #$2800,d3 ble.s loc_23DE8 move.w #$2800,d3 loc_23DE8: ; CODE XREF: sub_2340C+9D6j cmp.w d0,d3 blt.s loc_23DF4 sub.w d1_IdlePercentageNotClamped,d0 move.w d0,(word_FFFF9066).w bra.s loc_23DF8 ; --------------------------------------------------------------------------- loc_23DF4: ; CODE XREF: sub_2340C+9DEj move.w d4,(word_FFFF9066).w loc_23DF8: ; CODE XREF: sub_2340C+9E6j move.w var_2(a6),d3 add.w (word_FFFF9066).w,d3 cmpi.w #$7FFF,d3 bhi.s loc_23E12 cmpi.w #$2800,d3 bls.s loc_23E14 move.w #$2800,d3 bra.s loc_23E14 ; --------------------------------------------------------------------------- loc_23E12: ; CODE XREF: sub_2340C+9F8j clr.w d3 loc_23E14: ; CODE XREF: sub_2340C+9FEj ; sub_2340C+A04j move.w d3,(ThrottleArea2).w move.b d2_ThrottleSource,(DBW_Mode?_1).w move.w (ThrottleArea2).w,(ThrottleArea3).w moveq #3,d0 jsr sub_20B06 moveq #4,d0 jsr DBW_Breadcrumb move.b (DBW_Mode?_1).w,d1_IdlePercentageNotClamped move.w (ThrottleArea3).w,d3 sub.w (ETC_THROT_KE_MIN_MECHANICAL_POSITION_AREA).l,d3 ; Used to rescale des throttle area unfiltered to account for themechanical stop for area to rotation conversion lookups ; Percent_Area bcc.s loc_23E44 clr.w d3 loc_23E44: ; CODE XREF: sub_2340C+A34j mulu.w #$64,d3 ; 'd' asl.l #8,d3 add.l d3,d3 moveq #5,d2_ThrottleSource divu.l d2_ThrottleSource,d3 move.w #$2800,d4 sub.w (ETC_THROT_KE_MIN_MECHANICAL_POSITION_AREA).l,d4 ; Used to rescale des throttle area unfiltered to account for themechanical stop for area to rotation conversion lookups ; Percent_Area divu.w d4,d3 cmpi.w #$140,d3 bhi.s loc_23E70 andi.l #$FFFF,d3 asl.l #5,d3 divu.w d2_ThrottleSource,d3 bra.s loc_23E82 ; --------------------------------------------------------------------------- loc_23E70: ; CODE XREF: sub_2340C+A56j andi.l #$FFFF,d3 asl.l #3,d3 divu.w d2_ThrottleSource,d3 addi.w #$800,d3 subi.w #$200,d3 loc_23E82: ; CODE XREF: sub_2340C+A62j tblu.w (ETC_THROT_KV_THROTTLE_ROTATION).l,d3 ; Throttle area to throttle rotation conversion table. ; Rotation_Vs_Percent_Area_Table move.w d3,(word_FFFF908A).w jsr sub_24094 move.w (word_FFFF908E).w,d4 add.w d4,d4 move.w d4,(word_FFFFA01C).w move.w (word_FFFF9090).w,d4 add.w d4,d4 move.w d4,(word_FFFFA01E).w move.w (word_FFFF908A).w,d4 cmp.w (word_FFFF908C).w,d4 bls.s loc_23ED0 move.b d6,(byte_FFFF90A4).w move.w (word_FFFF908C).w,d3 add.w (word_FFFF908E).w,d3 cmpi.w #$1400,d3 bls.s loc_23EC8 move.w #$1400,d3 loc_23EC8: ; CODE XREF: sub_2340C+AB6j cmp.w d4,d3 bls.s loc_23EF2 loc_23ECC: ; CODE XREF: sub_2340C+AD0j ; sub_2340C+AE4j move.l d4,d3 bra.s loc_23EF2 ; --------------------------------------------------------------------------- loc_23ED0: ; CODE XREF: sub_2340C+AA4j btst #5,(byte_FFFF9085).w beq.s loc_23EDE clr.b (byte_FFFF90A4).w bra.s loc_23ECC ; --------------------------------------------------------------------------- loc_23EDE: ; CODE XREF: sub_2340C+ACAj clr.b (byte_FFFF90A4).w move.w (word_FFFF908C).w,d3 sub.w (word_FFFF9090).w,d3 bcc.s loc_23EEE clr.w d3 loc_23EEE: ; CODE XREF: sub_2340C+ADEj cmp.w d4,d3 bcs.s loc_23ECC loc_23EF2: ; CODE XREF: sub_2340C+ABEj ; sub_2340C+AC2j move.w d3,(word_FFFF908C).w btst #3,(byte_FFFF9085).w beq.s loc_23F02 clr.w d3 bra.s loc_23F52 ; --------------------------------------------------------------------------- loc_23F02: ; CODE XREF: sub_2340C+AF0j btst #5,(byte_FFFF9085).w beq.s loc_23F12 move.w (ETC_THROT_KE_LIMITED_POWER_MAX_THROT_POS).l,d3 ; Maximum throttle position that limited power mode is allowed. ; Pedal_Rotation bra.s loc_23F52 ; --------------------------------------------------------------------------- loc_23F12: ; CODE XREF: sub_2340C+AFCj move.b (byte_FFFF9061).w,d3 cmp.b d3,d7 beq.s loc_23F26 cmpi.b #3,d3 beq.s loc_23F26 cmpi.b #4,d3 bne.s loc_23F2C loc_23F26: ; CODE XREF: sub_2340C+B0Cj ; sub_2340C+B12j move.w #$1400,d3 bra.s loc_23F52 ; --------------------------------------------------------------------------- loc_23F2C: ; CODE XREF: sub_2340C+B18j cmp.b d3,d2_ThrottleSource bne.s loc_23F38 move.w (ETC_THROT_KE_MAX_DRAG_THROTTLE_POSITION).l,d3 ; Maximum throttle position that Drag control can command. ; Pedal_Rotation bra.s loc_23F52 ; --------------------------------------------------------------------------- loc_23F38: ; CODE XREF: sub_2340C+B22j cmp.b d3,d6 bne.s loc_23F44 move.w (ETC_THROT_KE_MAX_IDLE_THROTTLE_POSITION).l,d3 ; Maximum throttle position that idle control can command. ; Pedal_Rotation bra.s loc_23F52 ; --------------------------------------------------------------------------- loc_23F44: ; CODE XREF: sub_2340C+B2Ej move.w (word_FFFF907C).w,d3 lsr.w #1,d3 tblu.w (ETC_THROT_KV_MAX_ALLOWED_NORMAL_THROTTLE).l,d3 ; Max permitted Throttle angle vs indicated pedal position in normal operating modes. ; Rotation_Vs_Percent_By10_Table loc_23F52: ; CODE XREF: sub_2340C+AF4j ; sub_2340C+B04j ... movea.w #$1000,a2 move.w (word_FFFF907E).w,d4 cmpi.w #$A000,d4 bcc.s loc_23F6C andi.l #$FFFF,d4 divu.w #$A,d4 bra.s loc_23F70 ; --------------------------------------------------------------------------- loc_23F6C: ; CODE XREF: sub_2340C+B52j move.w #$1000,d4 loc_23F70: ; CODE XREF: sub_2340C+B5Ej tblu.w (ETC_THROT_KV_MAX_THROTTLE_POSITION).l,d4 ; Max permitted Throttle angle vs RPM. Provides reduced induction noise and improves transient response without losing power. ; Rotation_Vs_RPM_Table cmp.w d4,d3 bls.s loc_23F7E move.l d4,d3 loc_23F7E: ; CODE XREF: sub_2340C+B6Ej move.w (word_FFFF9068).w,d4 sub.w d3,d4 bcc.s loc_23F88 clr.w d4 loc_23F88: ; CODE XREF: sub_2340C+B78j move.w (ETC_THROT_KE_DELTA_MAX_ALLOWED_THROT_LIMIT).l,d0 ; Maximum allowed desired throttle delta between current and previous execution loop. ; Percent Rotation bne.s loc_23F92 move.l d6,d0 loc_23F92: ; CODE XREF: sub_2340C+B82j cmp.w d0,d4 bls.s loc_23FAC move.w (word_FFFF9068).w,d3 sub.w d0,d3 bcc.s loc_23FA0 clr.w d3 loc_23FA0: ; CODE XREF: sub_2340C+B90j move.w (ETC_THROT_KE_MAX_IDLE_THROTTLE_POSITION).l,d4 ; Maximum throttle position that idle control can command. ; Pedal_Rotation cmp.w d4,d3 bcc.s loc_23FAC move.l d4,d3 loc_23FAC: ; CODE XREF: sub_2340C+B88j ; sub_2340C+B9Cj move.w d3,(word_FFFF9068).w btst #5,(byte_FFFF9085).w bne.s loc_23FF0 move.w (word_FFFF908C).w,d0 cmp.w d3,d0 bls.s loc_23FD2 move.b (byte_FFFF90A3).w,d4 addq.b #1,d4 bcc.s loc_23FCC move.b #$FF,d4 loc_23FCC: ; CODE XREF: sub_2340C+BBAj move.b d4,(byte_FFFF90A3).w bra.s loc_23FD6 ; --------------------------------------------------------------------------- loc_23FD2: ; CODE XREF: sub_2340C+BB2j clr.b (byte_FFFF90A3).w loc_23FD6: ; CODE XREF: sub_2340C+BC4j move.b (byte_FFFF90A3).w,d4 cmp.b (ETC_THROT_KE_THROTTLE_HI_LIMIT_PERIOD).l,d4 ; Number of 18.75 ms loops that the throttle position can be abovethe max allowed throttle position. ; SHORTCARD bcs.s loc_23FEC cmp.w d3,d0 bcc.s loc_23FE8 move.l d0,d3 loc_23FE8: ; CODE XREF: sub_2340C+BD8j moveq #$A,d1_IdlePercentageNotClamped bra.s loc_23FFC ; --------------------------------------------------------------------------- loc_23FEC: ; CODE XREF: sub_2340C+BD4j move.l d0,d3 bra.s loc_23FFC ; --------------------------------------------------------------------------- loc_23FF0: ; CODE XREF: sub_2340C+BAAj moveq #$A,d1_IdlePercentageNotClamped move.w (word_FFFF908C).w,d4 cmp.w d3,d4 bcc.s loc_23FFC move.l d4,d3 loc_23FFC: ; CODE XREF: sub_2340C+BDEj ; sub_2340C+BE2j ... move.w (ETC_THROT_KE_THROTTLE_STOP_MIN_SW).l,d4 ; Min value to prevent throttle from reaching the mechanicalstop ; Percent_Rotation cmp.w d4,d3 bcc.s loc_2400A loc_24006: ; CODE XREF: sub_2340C+C06j move.l d4,d3 bra.s loc_24014 ; --------------------------------------------------------------------------- loc_2400A: ; CODE XREF: sub_2340C+BF8j move.w (ETC_THROT_KE_THROTTLE_STOP_MAX_SW).l,d4 ; Max value to prevent throttle from reaching the mechanicalstop ; Percent_Rotation cmp.w d4,d3 bhi.s loc_24006 loc_24014: ; CODE XREF: sub_2340C+BFCj btst #7,(byte_FFFF9083).w beq.s loc_2401E moveq #$C,d1_IdlePercentageNotClamped loc_2401E: ; CODE XREF: sub_2340C+C0Ej btst #6,(byte_FFFF9083).w beq.s loc_24028 moveq #$B,d1_IdlePercentageNotClamped loc_24028: ; CODE XREF: sub_2340C+C18j move.w d3,(word_FFFF9050).w move.b d1_IdlePercentageNotClamped,(byte_FFFF9060).w moveq #4,d0 jsr sub_20B06 move.l d2_ThrottleSource,d0 jsr DBW_Breadcrumb jsr sub_21F2C move.l d2_ThrottleSource,d0 jsr sub_20B06 moveq #6,d0 jsr DBW_Breadcrumb jsr sub_220F0 moveq #6,d0 jsr sub_20B06 jsr sub_20A3A jsr sub_229DE jsr sub_2008A movem.l (sp)+,d0-d2_ThrottleSource/d6-a1 unlk a6 rts ; End of function sub_2340C ; =============== S U B R O U T I N E ======================================= Lookup_Throttle_Load: ; CODE XREF: sub_2340C:loc_23C88p ; sub_2340C:loc_23CFAp ... asl.w #2,d0 andi.l #$FFFF,d0 divu.w #5,d0 tblu.w (ETC_THROT_KV_THROTTLE_LOAD).l,d0 ; Throttle area to pseudo throttle position conversion table. ; Percent_Vs_Percent_Area_Table rts ; End of function Lookup_Throttle_Load ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_24094: ; CODE XREF: sub_2340C+A82p var_22 = -$22 link a6,#-$22 movem.l d0-d2/a0,-(sp) move.w (EngineRPM_PID_000C___).w,d2 btst #1,(byte_FFFF9084).w bne.w loc_241C4 tst.b (DBW_Mode?_1).w bne.w loc_241C4 move.b (byte_FFFFA3B8).w,d3 bne.s loc_240CE lea (ETC_THROT_KV_THROT_SLEW_INCR_1ST_GEAR).l,a0 ; Lookup of Increasing Throttle Slew Rate in Degrees Per Engine Revolution for manual trans. in 1st gear. ; Degrees_Per_Revolution lea var_22(a6),a2 moveq #$10,d1 loc_240C4: ; CODE XREF: sub_24094+32j move.w (a0)+,(a2)+ dbf d1,loc_240C4 bra.w loc_24182 ; --------------------------------------------------------------------------- loc_240CE: ; CODE XREF: sub_24094+22j cmpi.b #1,d3 bne.s loc_240F0 lea (ETC_THROT_KV_THROT_SLEW_INCR_2ND_GEAR).l,a0 ; Lookup of Increasing Throttle Slew Rate in Degrees Per Engine Revolution for manual trans. in 2nd gear. ; Degrees_Per_Revolution lea var_22(a6),a2 moveq #$10,d1 loc_240E0: ; CODE XREF: sub_24094+4Ej move.w (a0)+,(a2)+ dbf d1,loc_240E0 move.w (ETC_THROT_KE_MIN_SLEW_RPM_2ND_GEAR).l,d1 bra.w loc_24188 ; --------------------------------------------------------------------------- loc_240F0: ; CODE XREF: sub_24094+3Ej cmpi.b #2,d3 bne.s loc_24110 lea (ETC_THROT_KV_THROT_SLEW_INCR_3RD_GEAR).l,a0 ; Lookup of Increasing Throttle Slew Rate in Degrees Per Engine Revolution for manual trans. in 3rd gear. ; Degrees_Per_Revolution lea var_22(a6),a2 moveq #$10,d1 loc_24102: ; CODE XREF: sub_24094+70j move.w (a0)+,(a2)+ dbf d1,loc_24102 move.w (ETC_THROT_KE_MIN_SLEW_RPM_3RD_GEAR).l,d1 bra.s loc_24188 ; --------------------------------------------------------------------------- loc_24110: ; CODE XREF: sub_24094+60j cmpi.b #3,d3 bne.s loc_24130 lea (ETC_THROT_KV_THROT_SLEW_INCR_4TH_GEAR).l,a0 ; Lookup of Increasing Throttle Slew Rate in Degrees Per Engine Revolution for manual trans. in 4th gear. ; Degrees_Per_Revolution lea var_22(a6),a2 moveq #$10,d1 loc_24122: ; CODE XREF: sub_24094+90j move.w (a0)+,(a2)+ dbf d1,loc_24122 move.w (ETC_THROT_KE_MIN_SLEW_RPM_4TH_GEAR).l,d1 bra.s loc_24188 ; --------------------------------------------------------------------------- loc_24130: ; CODE XREF: sub_24094+80j cmpi.b #4,d3 bne.s loc_24150 lea (ETC_THROT_KV_THROT_SLEW_INCR_5TH_GEAR).l,a0 ; Lookup of Increasing Throttle Slew Rate in Degrees Per Engine Revolution for manual trans. in 5th gear. ; Degrees_Per_Revolution lea var_22(a6),a2 moveq #$10,d1 loc_24142: ; CODE XREF: sub_24094+B0j move.w (a0)+,(a2)+ dbf d1,loc_24142 move.w (ETC_THROT_KE_MIN_SLEW_RPM_5TH_GEAR).l,d1 bra.s loc_24188 ; --------------------------------------------------------------------------- loc_24150: ; CODE XREF: sub_24094+A0j cmpi.b #5,d3 bne.s loc_24170 lea (ETC_THROT_KV_THROT_SLEW_INCR_6TH_GEAR).l,a0 ; Lookup of Increasing Throttle Slew Rate in Degrees Per Engine Revolution for manual trans. in 6th gear. ; Degrees_Per_Revolution lea var_22(a6),a2 moveq #$10,d1 loc_24162: ; CODE XREF: sub_24094+D0j move.w (a0)+,(a2)+ dbf d1,loc_24162 move.w (ETC_THROT_KE_MIN_SLEW_RPM_6TH_GEAR).l,d1 ; Min engine RPM for converting the max throttle angle per manuals. ; RPM bra.s loc_24188 ; --------------------------------------------------------------------------- loc_24170: ; CODE XREF: sub_24094+C0j lea (ETC_THROT_KV_THROT_SLEW_INCR_1ST_GEAR).l,a0 ; Lookup of Increasing Throttle Slew Rate in Degrees Per Engine Revolution for manual trans. in 1st gear. ; Degrees_Per_Revolution lea var_22(a6),a2 moveq #$10,d1 loc_2417C: ; CODE XREF: sub_24094+EAj move.w (a0)+,(a2)+ dbf d1,loc_2417C loc_24182: ; CODE XREF: sub_24094+36j move.w (ETC_THROT_KE_MIN_SLEW_RPM_1ST_GEAR).l,d1 loc_24188: ; CODE XREF: sub_24094+58j ; sub_24094+7Aj ... move.w (word_FFFF9008).w,d0 cmpi.w #$16C,d0 bhi.s loc_241A0 andi.l #$FFFF,d0 asl.l #6,d0 divu.w #$D,d0 bra.s loc_241B6 ; --------------------------------------------------------------------------- loc_241A0: ; CODE XREF: sub_24094+FCj cmpi.w #$256C,d0 bcc.s loc_241B2 lsr.w #2,d0 addi.w #$700,d0 subi.w #$5B,d0 ; '[' bra.s loc_241B6 ; --------------------------------------------------------------------------- loc_241B2: ; CODE XREF: sub_24094+110j move.w #$1000,d0 loc_241B6: ; CODE XREF: sub_24094+10Aj ; sub_24094+11Cj lea var_22(a6),a0 jsr sub_269BA move.w d0,d3 bra.s loc_241D0 ; --------------------------------------------------------------------------- loc_241C4: ; CODE XREF: sub_24094+12j ; sub_24094+1Aj move.w (ETC_THROT_KE_THROTTLE_SLEW_INCREASE).l,d3 ; Maximum permitted throttle angle change per engine rev when thethrottle is opening. ; Percent_Rotation_Per_Rev move.w (ETC_THROT_KE_MIN_SLEW_RPM).l,d1 ; Minimum engine speed for converting the max throttle angle per engine rev into an angle change per software loop. ; RPM loc_241D0: ; CODE XREF: sub_24094+12Ej cmp.w d2,d1 bls.s loc_241D6 move.w d1,d2 loc_241D6: ; CODE XREF: sub_24094+13Ej andi.l #$FFFF,d3 asl.l #5,d3 divu.w (word_8A83C).l,d3 bvc.s loc_241E8 clr.w d3 loc_241E8: ; CODE XREF: sub_24094+150j move.l d3,d5 mulu.w d2,d5 moveq #5,d3 mulu.l d5,d3 move.w #$800,d5 divu.w d5,d3 bvs.s loc_24200 cmpi.w #$1400,d3 bls.s loc_24204 loc_24200: ; CODE XREF: sub_24094+164j move.w #$1400,d3 loc_24204: ; CODE XREF: sub_24094+16Aj move.w d3,(word_FFFF908E).w clr.l d3 move.w (ETC_THROT_KE_THROTTLE_SLEW_DECREASE).l,d3 ; Maximum permitted throttle angle change per engine rev when thethrottle is closing. ; Percent_Rotation_Per_Rev asl.l #5,d3 divu.w (word_8A83C).l,d3 bvc.s loc_2421C clr.w d3 loc_2421C: ; CODE XREF: sub_24094+184j move.l d3,d0 mulu.w d2,d0 moveq #5,d3 mulu.l d0,d3 divu.w d5,d3 bvs.s loc_24230 cmpi.w #$1400,d3 bls.s loc_24234 loc_24230: ; CODE XREF: sub_24094+194j move.w #$1400,d3 loc_24234: ; CODE XREF: sub_24094+19Aj move.w d3,(word_FFFF9090).w movem.l (sp)+,d0-d2/a0 unlk a6 rts ; End of function sub_24094 ; =============== S U B R O U T I N E ======================================= InitializeThrottleAreaStuff: ; CODE XREF: OS1:00028B94p ; OS1:00028BCEp move.w (ETC_THROT_KE_MAX_IDLE_AREA).l,d3 ; Maximum idle area contribution allowed for ETC ; Percent_Area move.w (DBW_Idle_Percentage_NotClamped).w,d4 cmp.w d3,d4 bcc.s loc_24254 move.w d4,(DBW_Idle_OpeningPercent).w bra.s loc_24258 ; --------------------------------------------------------------------------- loc_24254: ; CODE XREF: InitializeThrottleAreaStuff+Cj move.w d3,(DBW_Idle_OpeningPercent).w loc_24258: ; CODE XREF: InitializeThrottleAreaStuff+12j move.w (DBW_Idle_OpeningPercent).w,d3 move.w d3,(ThrottleArea1).w move.w d3,(ThrottleArea2).w move.w d3,(ThrottleArea3).w movea.w #$46FF,a2 cmpi.w #$140,d3 bhi.s loc_24280 andi.l #$FFFF,d3 asl.l #5,d3 divu.w #5,d3 bra.s loc_24294 ; --------------------------------------------------------------------------- loc_24280: ; CODE XREF: InitializeThrottleAreaStuff+30j andi.l #$FFFF,d3 asl.l #3,d3 divu.w #5,d3 addi.w #$800,d3 subi.w #$200,d3 loc_24294: ; CODE XREF: InitializeThrottleAreaStuff+3Ej tblu.w (ETC_THROT_KV_THROTTLE_ROTATION).l,d3 ; Throttle area to throttle rotation conversion table. ; Rotation_Vs_Percent_Area_Table move.w (ETC_THROT_KE_THROTTLE_STOP_MIN_SW).l,d4 ; Min value to prevent throttle from reaching the mechanicalstop ; Percent_Rotation cmp.w d4,d3 bcc.s loc_242AA loc_242A6: ; CODE XREF: InitializeThrottleAreaStuff+72j move.l d4,d3 bra.s loc_242B4 ; --------------------------------------------------------------------------- loc_242AA: ; CODE XREF: InitializeThrottleAreaStuff+64j move.w (ETC_THROT_KE_THROTTLE_STOP_MAX_SW).l,d4 ; Max value to prevent throttle from reaching the mechanicalstop ; Percent_Rotation cmp.w d4,d3 bhi.s loc_242A6 loc_242B4: ; CODE XREF: InitializeThrottleAreaStuff+68j move.w d3,(word_FFFF908A).w movea.w d3,a2 move.w a2,(word_FFFF9050).w move.w a2,(word_FFFF908C).w clr.b (byte_FFFF90A3).w clr.b (byte_FFFF905E).w bset #4,(byte_FFFF9062).w bclr #3,(byte_FFFF9062).w bset #2,(byte_FFFF9062).w bclr #1,(byte_FFFF9062).w moveq #1,d3 move.b d3,(DBW_Mode?_1).w move.b d3,(byte_FFFF9061).w rts ; End of function InitializeThrottleAreaStuff ; =============== S U B R O U T I N E ======================================= sub_242EE: ; CODE XREF: sub_21930+20p move.b (byte_FFFF90F4).w,d0 and.b (byte_FFFF90F5).w,d0 beq.s loc_24300 tst.b (ETC_THROT_KE_4WD_LO_THROTTLE_PROG_ENABLE).l beq.s loc_24326 loc_24300: ; CODE XREF: sub_242EE+8j cmpi.b #1,(byte_FFFFA67E).w bne.s loc_24310 tst.b (ETC_THROT_KE_4WD_LO_THROTTLE_PROG_ENABLE).l bne.s loc_24326 loc_24310: ; CODE XREF: sub_242EE+18j tst.b (byte_FFFF90E7).w beq.s loc_2431C tst.b (byte_FFFF90E6).w beq.s loc_24326 loc_2431C: ; CODE XREF: sub_242EE+26j move.b (byte_FFFF9103).w,d0 and.b (byte_FFFF9104).w,d0 beq.s loc_2432E loc_24326: ; CODE XREF: sub_242EE+10j ; sub_242EE+20j ... move.b #1,(byte_FFFF905E).w bra.s loc_24332 ; --------------------------------------------------------------------------- loc_2432E: ; CODE XREF: sub_242EE+36j clr.b (byte_FFFF905E).w loc_24332: ; CODE XREF: sub_242EE+3Ej move.b (byte_FFFF905E).w,d0 rts ; End of function sub_242EE ; =============== S U B R O U T I N E ======================================= sub_24338: ; CODE XREF: sub_2452C+19Ap ; OS1:loc_28BE8p var_5046 = -$5046 lea (unk_FF852E).l,a2 move.w #$BB,d3 ; '?' loc_24342: ; CODE XREF: sub_24338+Cj clr.w (a2)+ dbf d3,loc_24342 move.b (byte_2175).w,(byte_FF86A2).l move.b (byte_2176).w,(byte_FF86A3).l clr.b (byte_FFFFAFB6).w clr.b (byte_FFFFAFCE).w movea.w (word_FFFFAEBE).w,a2 move.w a2,(word_FFFFAFB8).w clr.b d3 loc_2436A: ; CODE XREF: sub_24338+42j clr.l d4 move.b d3,d4 move.w a2,var_5046(d4.w*2) addq.b #1,d3 cmpi.b #7,d3 bls.s loc_2436A rts ; End of function sub_24338 ; =============== S U B R O U T I N E ======================================= sub_2437E: ; CODE XREF: sub_2452C+178p ; sub_2452C+186p move.l (dword_FFFF808E).w,d3 andi.l #$7FFFFFFF,d3 andi.l #$80000000,(dword_FF869E).l or.l d3,(dword_FF869E).l move.b #1,(byte_FFFFAFB6).w rts ; End of function sub_2437E ; =============== S U B R O U T I N E ======================================= sub_243A0: ; CODE XREF: sub_2452C:loc_246D4p ; OS1:loc_28BAEp ... move.b #2,(byte_FFFFAFB6).w rts ; End of function sub_243A0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_243A8: ; CODE XREF: DoLoopB+AAp var_5058 = -$5058 var_2 = -2 link a6,#-2 movem.l d0-d2/d6,-(sp) move.b (byte_FFFFAFB6).w,d3 beq.s loc_243BE cmpi.b #1,d3 bne.w loc_24524 loc_243BE: ; CODE XREF: sub_243A8+Cj move.w (word_FFFFAFB8).w,d2 move.w (word_FFFFAEBE).w,d1 move.w (ETC_DATA_LOGGER_KE_ETC_FLIGHT_RECORD_SPEED_COEF).l,d0 ; Coefficient used to filter vehicle speed for ETC Datalogger. ; Coefficient jsr sub_26608 move.w d0,(word_FFFFAFB8).w btst #7,(byte_FFFF8252).w bne.s loc_2442A clr.w d5 move.b (byte_FFFFAFCA).w,d5 move.w (word_FFFFAFB8).w,d3 sub.w unk_FFFFAFBA(d5.w*2),d3 muls.w #5,d3 cmpi.l #$FFFF8000,d3 blt.s loc_24420 cmpi.l #$7FFF,d3 bgt.s loc_2441A tst.w d3 bpl.s loc_2440A addi.w #$3F,d3 ; '?' loc_2440A: ; CODE XREF: sub_243A8+5Cj asr.w #6,d3 cmpi.w #$C8,d3 ; '?' bgt.s loc_2441A cmpi.w #$FF38,d3 blt.s loc_24420 bra.s loc_24424 ; --------------------------------------------------------------------------- loc_2441A: ; CODE XREF: sub_243A8+58j ; sub_243A8+68j move.w #$C8,d3 ; '?' bra.s loc_24424 ; --------------------------------------------------------------------------- loc_24420: ; CODE XREF: sub_243A8+50j ; sub_243A8+6Ej move.w #$FF38,d3 loc_24424: ; CODE XREF: sub_243A8+70j ; sub_243A8+76j move.w d3,(word_FFFFAFCC).w bra.s loc_2442E ; --------------------------------------------------------------------------- loc_2442A: ; CODE XREF: sub_243A8+34j clr.w (word_FFFFAFCC).w loc_2442E: ; CODE XREF: sub_243A8+80j move.b (byte_FFFFAFCA).w,d3 clr.l d4 move.b d3,d4 move.w d0,$12+var_5058(d4.w*2) addq.b #1,d3 andi.b #7,d3 move.b d3,(byte_FFFFAFCA).w move.b (byte_FFFFAFCE).w,d3 bne.s loc_2448E btst #5,(word_FFFFA7DC).w bne.s loc_2445A tst.b (byte_FFFF90D6).w beq.s loc_24470 loc_2445A: ; CODE XREF: sub_243A8+AAj ; sub_243A8+10Aj ... move.b #2,(byte_FFFFAFCE).w addq.w #1,(word_FF86AC).l bclr #5,(word_FFFFA7DC).w bra.w loc_24524 ; --------------------------------------------------------------------------- loc_24470: ; CODE XREF: sub_243A8+B0j move.w (word_FFFFAFCC).w,d3 cmp.w (ETC_DATA_LOGGER_KE_DECEL_TRIGGER_THRESHOLD).l,d3 ; Maximum deceleration threshold FOR triggering flight recorder ; MPH_Per_300ms_S bge.w loc_24524 move.w (GlobalClock).w,(word_FFFFAFD0).w move.b #1,(byte_FFFFAFCE).w bra.w loc_24524 ; --------------------------------------------------------------------------- loc_2448E: ; CODE XREF: sub_243A8+A2j cmpi.b #1,d3 bne.w loc_24524 move.w (word_FFFFAFCC).w,d3 cmp.w (ETC_DATA_LOGGER_KE_DECEL_TRIGGER_THRESHOLD).l,d3 ; Maximum deceleration threshold FOR triggering flight recorder ; MPH_Per_300ms_S bge.s loc_244A8 move.w (GlobalClock).w,(word_FFFFAFD0).w loc_244A8: ; CODE XREF: sub_243A8+F8j move.b (byte_FFFFA59C).w,d3 cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_2445A btst #6,d3 bne.s loc_2445A btst #5,d3 bne.s loc_2445A btst #4,d3 bne.s loc_2445A btst #3,d3 bne.s loc_2445A btst #2,d3 bne.s loc_2445A btst #1,d3 bne.s loc_2445A tst.b (byte_FFFFA59F).w bne.w loc_2445A btst #5,(word_FFFFA7DC).w bne.w loc_2445A tst.b (byte_FFFF90D6).w bne.w loc_2445A move.w (word_FFFFAFD0).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (ETC_DATA_LOGGER_KE_TRIGGER_VALIDITY_PERIOD).l,d3 ; Delay before Trigger validation period expires ; Seconds bcs.s loc_24524 clr.b (byte_FFFFAFCE).w move.b (byte_FFFFAFD2).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFAFD2).w cmp.b (byte_FF86AA).l,d3 bls.s loc_24524 move.b d3,(byte_FF86AA).l loc_24524: ; CODE XREF: sub_243A8+12j ; sub_243A8+C4j ... movem.l (sp)+,d0-d2/d6 unlk a6 rts ; End of function sub_243A8 ; =============== S U B R O U T I N E ======================================= sub_2452C: ; CODE XREF: DoLoopB+B6p movem.l d0-d2/d6,-(sp) move.b (byte_FFFFAFB6).w,d3 bne.w loc_246BA clr.w d3 move.b (byte_FF86A4).l,d3 lea unk_FF852E(d3.w*8),a2 bclr #7,(a2) btst #5,(word_FFFFA594).w beq.s loc_24558 bset #7,(a2) loc_24558: ; CODE XREF: sub_2452C+26j bclr #6,(a2) tst.b (byte_FFFFAF3A).w beq.s loc_24566 bset #6,(a2) loc_24566: ; CODE XREF: sub_2452C+34j bclr #5,(a2) tst.b (byte_FFFFB2CF).w beq.s loc_24574 bset #5,(a2) loc_24574: ; CODE XREF: sub_2452C+42j bclr #4,(a2) tst.b (byte_FFFFA3AC).w beq.s loc_24582 bset #4,(a2) loc_24582: ; CODE XREF: sub_2452C+50j bclr #3,(a2) btst #2,(word_FFFFA594).w beq.s loc_24592 bset #3,(a2) loc_24592: ; CODE XREF: sub_2452C+60j bclr #2,(a2) btst #4,(word_FFFFA594).w beq.s loc_245A2 bset #2,(a2) loc_245A2: ; CODE XREF: sub_2452C+70j bclr #1,(a2) btst #3,(word_FFFFA594).w beq.s loc_245B2 bset #1,(a2) loc_245B2: ; CODE XREF: sub_2452C+80j bclr #0,(a2) tst.b (byte_FFFFA59F).w beq.s loc_245C0 bset #0,(a2) loc_245C0: ; CODE XREF: sub_2452C+8Ej move.b (byte_FFFFA59C).w,1(a2) clr.w d3 move.b (byte_FF86A4).l,d3 lea unk_FF852E(d3.w*8),a2 move.w (word_FFFFA590).w,d3 andi.w #$3FF,d3 lsr.w #1,d3 cmpi.w #$FF,d3 bls.s loc_245EA move.b #$FF,d3 loc_245EA: ; CODE XREF: sub_2452C+B8j move.b d3,2(a2) clr.l d3 move.w (word_FFFF9008).w,d3 divu.w #$2AA,d3 lsl.b #4,d3 move.b #$F0,d0 and.b d0,d3 andi.b #$F,3(a2) or.b d3,3(a2) move.w (ThrottleArea2).w,d3 lsr.w #1,d3 andi.l #$FFFF,d3 divu.w #$155,d3 moveq #$F,d1 and.b d1,d3 andi.b #$F0,3(a2) or.b d3,3(a2) move.w (word_FFFF9050).w,d3 moveq #$D,d2 mulu.w d2,d3 move.w #$105,d6 divu.w d6,d3 move.b d3,4(a2) move.w (word_FFFFA598).w,d3 mulu.w d2,d3 divu.w d6,d3 move.b d3,5(a2) move.b (byte_FFFF9060).w,d3 lsl.b #4,d3 and.b d0,d3 andi.b #$F,6(a2) or.b d3,6(a2) move.w (EngineRPM_PID_000C___).w,d3 lsr.w #8,d3 lsr.w #3,d3 cmpi.b #$F,d3 bls.s loc_24668 move.l d1,d3 loc_24668: ; CODE XREF: sub_2452C+138j and.b d1,d3 andi.b #$F0,6(a2) or.b d3,6(a2) move.w (word_FFFFAFB8).w,d3 lsr.w #7,d3 move.b d3,7(a2) move.b (byte_FF86A4).l,d3 addq.b #1,d3 andi.l #$FF,d3 divul.l #$2E,d4:d3 ; '.' move.b d4,(byte_FF86A4).l move.b (byte_FFFFAFCE).w,d3 cmpi.b #1,d3 bne.s loc_246AC jsr sub_2437E bra.s loc_246DA ; --------------------------------------------------------------------------- loc_246AC: ; CODE XREF: sub_2452C+176j cmpi.b #2,d3 bne.s loc_246DA jsr sub_2437E bra.s loc_246D4 ; --------------------------------------------------------------------------- loc_246BA: ; CODE XREF: sub_2452C+8j cmpi.b #1,d3 bne.s loc_246DA move.b (byte_FFFFAFCE).w,d3 bne.s loc_246CE jsr sub_24338 bra.s loc_246DA ; --------------------------------------------------------------------------- loc_246CE: ; CODE XREF: sub_2452C+198j cmpi.b #2,d3 bne.s loc_246DA loc_246D4: ; CODE XREF: sub_2452C+18Cj jsr sub_243A0 loc_246DA: ; CODE XREF: sub_2452C+17Ej ; sub_2452C+184j ... movem.l (sp)+,d0-d2/d6 rts ; End of function sub_2452C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_246E0: ; CODE XREF: OS1:loc_28BFAp var_4 = -4 link a6,#-4 movem.l d0/a0-a1,-(sp) move.l #$177,d0 movea.l #unk_FF852E,a1 movea.l a1,a0 jsr sub_2654C move.l d0,var_4(a6) move.b var_4+3(a6),(byte_FF86A5).l move.l a1,(dword_FF86A6).l movem.l (sp)+,d0/a0-a1 unlk a6 rts ; End of function sub_246E0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_24716: ; CODE XREF: DoLoopC+A6p var_24 = -$24 var_20 = -$20 var_1C = -$1C var_18 = -$18 var_16 = -$16 var_14 = -$14 var_12 = -$12 var_E = -$E var_A = -$A var_6 = -6 var_2 = -2 link a6,#-$24 movem.l d0-d2/d6-a1/a4-a5,-(sp) moveq #3,d6 cmp.b (ThrottleControlMode2?).w,d6 bne.w loc_261C2 tst.b (byte_FFFFA193).w bne.s loc_2473E move.w #$8B,d0 ; '?' jsr sub_81B3C move.b d0,var_12(a6) bra.s loc_24742 ; --------------------------------------------------------------------------- loc_2473E: ; CODE XREF: sub_24716+16j clr.b var_12(a6) loc_24742: ; CODE XREF: sub_24716+26j tst.b (word_FFFFA48C).w beq.s loc_24754 bset #3,(byte_FFFF947D).w clr.b var_12(a6) bra.s loc_2475A ; --------------------------------------------------------------------------- loc_24754: ; CODE XREF: sub_24716+30j bclr #3,(byte_FFFF947D).w loc_2475A: ; CODE XREF: sub_24716+3Cj move.b var_12(a6),(byte_FFFF93F3).w move.b (byte_FFFF95DF).w,d3 clr.w d4 andi.w #$FF,d3 asl.w #4,d3 tblu.w (XMSN_IO_KV_CONVERTER_TORQUE_RATIO).l,d3 ; Ratio used to determine gearbox torque. ; Ratio move.w d3,(word_FFFF94AA).w tst.b (TRACTION_KE_AXLE_ABUSE_LIMITING_ENABLE).l ; Enabling cal for axle abuse torque limiting algorithm. ; TRUE/FALSE bne.s loc_247B2 clr.l d0 move.w (word_FFFF94AA).w,d0 move.l (TRACTION_KE_TRANS_INPUT_LIMIT).l,d7 ; Transmission input torque limit for protection from failure ; Foot Pounds mulu.l #$1000,d3:d7 divu.l d0,d3:d7 bvs.s loc_247A6 cmpi.l #$FFFF,d7 bhi.s loc_247A6 move.w d7,d3 bra.s loc_247AA ; --------------------------------------------------------------------------- loc_247A6: ; CODE XREF: sub_24716+82j ; sub_24716+8Aj move.w #$FFFF,d3 loc_247AA: ; CODE XREF: sub_24716+8Ej move.w d3,(word_FFFF9426).w bra.w loc_24CE6 ; --------------------------------------------------------------------------- loc_247B2: ; CODE XREF: sub_24716+68j move.b (byte_FFFFA67E).w,d7 cmpi.b #3,d7 bhi.s loc_2481A beq.s loc_24806 cmpi.b #1,d7 beq.s loc_247D6 bls.s loc_2481A move.w (TRACTION_KE_4WDHI_FRONT_SCALER).l,var_18(a6) ; Fraction of torque that is transferred to front when 4WD HI ; Scaler 0-1 movea.w (TRACTION_KE_4WDHI_REAR_SCALER).l,a2 ; Fraction of torque that is transferred to rear when 4WD HI ; Scaler 0-1 bra.s loc_24814 ; --------------------------------------------------------------------------- loc_247D6: ; CODE XREF: sub_24716+ACj move.w (BRAKE_TORQUE_CONTROL_KE_TRANSFER_CASE_RATIO).l,d4 ; Transfer case gear ratio in 4WDLO for calibration application. ; Scaler_8 mulu.w (TRACTION_KE_4WDLO_FRONT_SCALER).l,d4 ; Fraction of torque that is transferred to front when 4WD LO ; Scaler 0-1 lsr.l #8,d4 lsr.l #3,d4 move.w d4,var_24+2(a6) move.w d4,var_18(a6) move.w (BRAKE_TORQUE_CONTROL_KE_TRANSFER_CASE_RATIO).l,d5 ; Transfer case gear ratio in 4WDLO for calibration application. ; Scaler_8 mulu.w (TRACTION_KE_4WDLO_REAR_SCALER).l,d5 ; Fraction of torque that is transferred to rear when 4WD LO ; Scaler 0-1 lsr.l #8,d5 lsr.l #3,d5 move.w d5,var_24+2(a6) movea.w d5,a2 bra.s loc_24814 ; --------------------------------------------------------------------------- loc_24806: ; CODE XREF: sub_24716+A6j move.w (TRACTION_KE_AWD_FRONT_SCALER).l,var_18(a6) ; Fraction of torque that is transferred to front when AWD ; Scaler 0-1 movea.w (TRACTION_KE_AWD_REAR_SCALER).l,a2 ; Fraction of torque that is transferred to rear when AWD ; Scaler 0-1 loc_24814: ; CODE XREF: sub_24716+BEj ; sub_24716+EEj move.w a2,var_16(a6) bra.s loc_24824 ; --------------------------------------------------------------------------- loc_2481A: ; CODE XREF: sub_24716+A4j ; sub_24716+AEj move.w d4,var_18(a6) move.w #$1000,var_16(a6) loc_24824: ; CODE XREF: sub_24716+102j move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d7 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type moveq #2,d4 cmp.b d7,d4 bne.s loc_2487E move.w (word_FFFFAEBE).w,d3 cmp.w (TRACTION_KE_MANUAL_1ST_GEAR_MPH_HI).l,d3 ; Vehicle speed below which a manual trans. assumes 1st gear. ; MPH bls.s loc_2484A cmpi.b #1,(byte_FFFF9416).w bne.s loc_2484A move.b d4,(byte_FFFF9416).w bra.s loc_2485E ; --------------------------------------------------------------------------- loc_2484A: ; CODE XREF: sub_24716+124j ; sub_24716+12Cj cmp.w (TRACTION_KE_MANUAL_1ST_GEAR_MPH_LO).l,d3 ; Vehicle speed above which a manual trans. assumes 1st gear. ; MPH bcc.s loc_2485E cmp.b (byte_FFFF9416).w,d4 bne.s loc_2485E move.b #1,(byte_FFFF9416).w loc_2485E: ; CODE XREF: sub_24716+132j ; sub_24716+13Aj ... cmpi.b #1,(byte_FFFF9416).w bne.s loc_24872 move.w (XMSN_IO_KE_FIRST_GEAR_RATIO).l,var_2(a6) ; Gear ratio for 1st gear. ; Ratio bra.w loc_2495A ; --------------------------------------------------------------------------- loc_24872: ; CODE XREF: sub_24716+14Ej move.w (XMSN_IO_KE_SECOND_GEAR_RATIO).l,var_2(a6) ; Gear ratio for 2nd gear. ; Ratio bra.w loc_2495A ; --------------------------------------------------------------------------- loc_2487E: ; CODE XREF: sub_24716+118j cmpi.b #4,d7 bne.w loc_24946 tst.b (byte_FFFF90F8).w beq.s loc_24892 tst.b (byte_FFFF90F9).w beq.s loc_2489C loc_24892: ; CODE XREF: sub_24716+174j move.w (TRACTION_KE_ALLISON_FAULTED_GEAR_RATIO).l,var_2(a6) bra.s loc_248AC ; --------------------------------------------------------------------------- loc_2489C: ; CODE XREF: sub_24716+17Aj clr.w d4 move.b (byte_FFFFA3B8).w,d4 move.w TRACTION_KV_TRQ_MGMT_GEAR_RATIO(d4.w*2),var_2(a6) ; Gear ratio for automatic transmission applications as a function of transmission gear. ; Multiplier_0_to_8 loc_248AC: ; CODE XREF: sub_24716+184j move.w (EngineRPM_PID_000C___).w,d4 bne.s loc_248BA move.b #$FF,(byte_FFFF94AE).w bra.s loc_24934 ; --------------------------------------------------------------------------- loc_248BA: ; CODE XREF: sub_24716+19Aj btst #1,(byte_FFFF8998).w beq.s loc_248F2 move.l d4,d1 sub.w (TRACTION_KE_STALL_SPEED_DEFAULT).l,d1 bcc.s loc_248CE clr.w d1 loc_248CE: ; CODE XREF: sub_24716+1B4j andi.l #$FFFF,d1 asl.l #8,d1 asl.l #4,d1 divu.w d4,d1 bvs.s loc_248E2 cmpi.w #$1000,d1 bls.s loc_248E6 loc_248E2: ; CODE XREF: sub_24716+1C4j move.w #$1000,d1 loc_248E6: ; CODE XREF: sub_24716+1CAj move.w (word_FFFF94B0).w,d2 move.w (TRACTION_KE_FAULTD_LCT_SPD_RATIO_FLT_COEF).l,d0 bra.s loc_24924 ; --------------------------------------------------------------------------- loc_248F2: ; CODE XREF: sub_24716+1AAj move.w (word_FFFFA3C0).w,d3 mulu.w var_2(a6),d3 divu.w #$1000,d3 bvc.s loc_24904 move.w #$FFFF,d3 loc_24904: ; CODE XREF: sub_24716+1E8j clr.l d1 move.w d3,d1 asl.l #8,d1 asl.l #4,d1 divu.w d4,d1 bvs.s loc_24916 cmpi.w #$1000,d1 bls.s loc_2491A loc_24916: ; CODE XREF: sub_24716+1F8j move.w #$1000,d1 loc_2491A: ; CODE XREF: sub_24716+1FEj move.w (word_FFFF94B0).w,d2 move.w (TRACTION_KE_LCT_SPD_RATIO_FLT_COEF).l,d0 ; Lag filter coefficient used to filter Allison transmission torque converter speed ratio. ; 0 to 1 loc_24924: ; CODE XREF: sub_24716+1DAj jsr sub_26608 move.w d0,(word_FFFF94B0).w lsr.w #4,d0 move.b d0,(byte_FFFF94AE).w loc_24934: ; CODE XREF: sub_24716+1A2j clr.w d3 move.b (byte_FFFF94AE).w,d3 asl.w #4,d3 tblu.w (TRACTION_KV_CONVERTER_TORQUE_RATIO_LCT).l,d3 ; Ratio used to determine gearbox torque for LCT. ; Ratio bra.s loc_24956 ; --------------------------------------------------------------------------- loc_24946: ; CODE XREF: sub_24716+16Cj clr.w d6 move.b (byte_FFFFA3B8).w,d6 move.w TRACTION_KV_TRQ_MGMT_GEAR_RATIO(d6.w*2),var_2(a6) ; Gear ratio for automatic transmission applications as a function of transmission gear. ; Multiplier_0_to_8 loc_24956: ; CODE XREF: sub_24716+22Ej move.w d3,(word_FFFF94AC).w loc_2495A: ; CODE XREF: sub_24716+158j ; sub_24716+164j tst.b (VEH_SPEED_KE_USE_EEPROM_VSS_CALS).l ; Determines whether to use the EEPROM based VSS cals or the Cal ROM VSS cals. ; BOOLEAN beq.s loc_2497E cmpi.w #$FFFF,(word_FFFF8058).w beq.s loc_2497E move.w (word_FFFF8058).w,d4 mulu.w (TRACTION_KE_AXLE_EFFICIENCY).l,d4 ; Efficiency of axle for torque transfer ; Multiplier 0 to 1 lsr.l #8,d4 lsr.l #4,d4 move.w d4,var_24+2(a6) bra.s loc_24992 ; --------------------------------------------------------------------------- loc_2497E: ; CODE XREF: sub_24716+24Aj ; sub_24716+252j move.w (VEH_SPEED_KE_FINAL_DRIVE_RATIO).l,d4 ; Axle gear ratio for calibration application ; Multiplier_0_to_16 mulu.w (TRACTION_KE_AXLE_EFFICIENCY).l,d4 ; Efficiency of axle for torque transfer ; Multiplier 0 to 1 lsr.l #8,d4 lsr.l #4,d4 move.w d4,var_24+2(a6) loc_24992: ; CODE XREF: sub_24716+266j movea.w d4,a5 move.l (TRACTION_KE_TRANS_INPUT_LIMIT).l,var_24(a6) ; Transmission input torque limit for protection from failure ; Foot Pounds move.w var_2(a6),d6 mulu.w (TRACTION_KE_TRANSMISSION_EFFICIENCY).l,d6 ; Efficiency of the transmission including torque converter for torque transfer. ; Multiplier_0_to_1 lsr.l #8,d6 lsr.l #4,d6 tst.w d6 beq.s loc_249D2 clr.l d5 move.w d6,d5 move.l (TRACTION_KE_TRANS_OUTPUT_LIMIT).l,d4 ; Transmission output torque limit for protection from failure ; Foot Pounds mulu.l #$1000,d3:d4 divu.l d5,d3:d4 bvs.s loc_249D2 cmpi.l #$7FFFFFFF,d4 bhi.s loc_249D2 move.l d4,d3 bra.s loc_249D8 ; --------------------------------------------------------------------------- loc_249D2: ; CODE XREF: sub_24716+296j ; sub_24716+2AEj ... move.l #$7FFFFFFF,d3 loc_249D8: ; CODE XREF: sub_24716+2BAj move.l d6,d2 mulu.w (TRACTION_KE_TRANSFER_CASE_EFFICIENCY).l,d2 ; Efficiency of transfer case for torque transfer ; Multiplier_0_to_1 lsr.l #8,d2 lsr.l #4,d2 move.l (TRACTION_KE_FRONT_PROP_LIMIT).l,d1 ; Front prop torque limit for protection from failure ; Foot Pounds move.l (TRACTION_KE_FRONT_AXLE_LIMIT).l,d0 ; Front axle torque limit for protection from failure ; Foot Pounds movea.l (TRACTION_KE_REAR_PROP_LIMIT).l,a3 ; Rear prop torque limit for protection from failure ; Foot Pounds move.l a3,var_20(a6) move.l (TRACTION_KE_REAR_AXLE_LIMIT).l,d4 ; Rear axle torque limit for protection from failure ; Foot Pounds move.l d4,var_1C(a6) cmpi.b #2,d7 beq.w loc_24B7E clr.l d7 move.w (word_FFFF94AC).w,d7 clr.l d4 move.w (XMSN_IO_KE_DRIVE_SPROKET_RATIO).l,d4 ; Turbine shaft and Input shaft interconnect chain ratio. ; Ratio mulu.l var_24(a6),d3:d4 divu.l #$1000,d3:d4 bvs.s loc_24A36 cmpi.l #$7FFFFFFF,d4 bhi.s loc_24A36 move.l d4,d3 bra.s loc_24A3C ; --------------------------------------------------------------------------- loc_24A36: ; CODE XREF: sub_24716+312j ; sub_24716+31Aj move.l #$7FFFFFFF,d3 loc_24A3C: ; CODE XREF: sub_24716+31Ej move.l d3,d4 mulu.l #$1000,d3:d4 divu.l d7,d3:d4 bvs.s loc_24A54 cmpi.l #$7FFFFFFF,d4 bls.s loc_24A5A loc_24A54: ; CODE XREF: sub_24716+334j move.l #$7FFFFFFF,d4 loc_24A5A: ; CODE XREF: sub_24716+33Cj move.l d4,var_24(a6) move.l d4,var_24(a6) clr.l d3 move.w (XMSN_IO_KE_DRIVE_SPROKET_RATIO).l,d3 ; Turbine shaft and Input shaft interconnect chain ratio. ; Ratio mulu.l (TRACTION_KE_TRANS_OUTPUT_LIMIT).l,d7:d3 ; Transmission output torque limit for protection from failure ; Foot Pounds divu.l #$1000,d7:d3 bvs.s loc_24A84 cmpi.l #$7FFFFFFF,d3 bls.s loc_24A8A loc_24A84: ; CODE XREF: sub_24716+364j move.l #$7FFFFFFF,d3 loc_24A8A: ; CODE XREF: sub_24716+36Cj mulu.w (word_FFFF94AC).w,d6 move.l #$1000,d7 divu.w d7,d6 bvs.s loc_24A9E cmpi.w #$8000,d6 bls.s loc_24AA2 loc_24A9E: ; CODE XREF: sub_24716+380j move.w #$8000,d6 loc_24AA2: ; CODE XREF: sub_24716+386j tst.w d6 beq.s loc_24AC4 andi.l #$FFFF,d6 move.l d3,d4 mulu.l d7,d3:d4 divu.l d6,d3:d4 bvs.s loc_24AC4 cmpi.l #$7FFFFFFF,d4 bhi.s loc_24AC4 move.l d4,d3 bra.s loc_24ACA ; --------------------------------------------------------------------------- loc_24AC4: ; CODE XREF: sub_24716+38Ej ; sub_24716+3A0j ... move.l #$7FFFFFFF,d3 loc_24ACA: ; CODE XREF: sub_24716+3ACj mulu.w (word_FFFF94AC).w,d2 divu.w d7,d2 bvs.s loc_24AD8 cmpi.w #$8000,d2 bls.s loc_24ADC loc_24AD8: ; CODE XREF: sub_24716+3BAj move.w #$8000,d2 loc_24ADC: ; CODE XREF: sub_24716+3C0j clr.l d6 move.w (XMSN_IO_KE_DRIVE_SPROKET_RATIO).l,d6 ; Turbine shaft and Input shaft interconnect chain ratio. ; Ratio mulu.l d1,d1:d6 divu.l d7,d1:d6 bvs.s loc_24AFA cmpi.l #$7FFFFFFF,d6 bhi.s loc_24AFA move.l d6,d1 bra.s loc_24B00 ; --------------------------------------------------------------------------- loc_24AFA: ; CODE XREF: sub_24716+3D6j ; sub_24716+3DEj move.l #$7FFFFFFF,d1 loc_24B00: ; CODE XREF: sub_24716+3E2j clr.l d6 move.w (XMSN_IO_KE_DRIVE_SPROKET_RATIO).l,d6 ; Turbine shaft and Input shaft interconnect chain ratio. ; Ratio mulu.l d0,d0:d6 divu.l d7,d0:d6 bvs.s loc_24B1E cmpi.l #$7FFFFFFF,d6 bhi.s loc_24B1E move.l d6,d0 bra.s loc_24B24 ; --------------------------------------------------------------------------- loc_24B1E: ; CODE XREF: sub_24716+3FAj ; sub_24716+402j move.l #$7FFFFFFF,d0 loc_24B24: ; CODE XREF: sub_24716+406j clr.l d6 move.w (XMSN_IO_KE_DRIVE_SPROKET_RATIO).l,d6 ; Turbine shaft and Input shaft interconnect chain ratio. ; Ratio mulu.l var_20(a6),d4:d6 divu.l d7,d4:d6 bvs.s loc_24B46 cmpi.l #$7FFFFFFF,d6 bhi.s loc_24B46 move.l d6,var_20(a6) bra.s loc_24B4E ; --------------------------------------------------------------------------- loc_24B46: ; CODE XREF: sub_24716+420j ; sub_24716+428j move.l #$7FFFFFFF,var_20(a6) loc_24B4E: ; CODE XREF: sub_24716+42Ej move.l var_20(a6),var_20(a6) clr.l d7 move.w (XMSN_IO_KE_DRIVE_SPROKET_RATIO).l,d7 ; Turbine shaft and Input shaft interconnect chain ratio. ; Ratio mulu.l var_1C(a6),d4:d7 divu.l #$1000,d4:d7 bvs.s loc_24B74 cmpi.l #$7FFFFFFF,d7 bls.s loc_24B7A loc_24B74: ; CODE XREF: sub_24716+454j move.l #$7FFFFFFF,d7 loc_24B7A: ; CODE XREF: sub_24716+45Cj move.l d7,var_1C(a6) loc_24B7E: ; CODE XREF: sub_24716+2F2j move.l d2,d6 mulu.w var_18(a6),d6 lsr.l #8,d6 lsr.l #4,d6 cmpi.l #$3FFFF,d6 bls.s loc_24B96 move.l #$3FFFF,d6 loc_24B96: ; CODE XREF: sub_24716+478j tst.l d6 bhi.s loc_24BA6 move.l #$7FFFFFFF,d7 move.l d7,var_12(a6) bra.s loc_24BC8 ; --------------------------------------------------------------------------- loc_24BA6: ; CODE XREF: sub_24716+482j move.l #$1000,d7 mulu.l d7,d4:d1 divu.l d6,d4:d1 bvs.s loc_24BBE cmpi.l #$7FFFFFFF,d1 bls.s loc_24BC4 loc_24BBE: ; CODE XREF: sub_24716+49Ej move.l #$7FFFFFFF,d1 loc_24BC4: ; CODE XREF: sub_24716+4A6j move.l d1,var_12(a6) loc_24BC8: ; CODE XREF: sub_24716+48Ej clr.l d1 move.w a5,d1 mulu.l d6,d4:d1 move.l #$1000,d6 divu.l d6,d4:d1 bhi.s loc_24BE8 move.l #$7FFFFFFF,d7 move.l d7,var_A(a6) bra.s loc_24C04 ; --------------------------------------------------------------------------- loc_24BE8: ; CODE XREF: sub_24716+4C4j mulu.l d6,d4:d0 divu.l d1,d4:d0 bvs.s loc_24BFA cmpi.l #$7FFFFFFF,d0 bls.s loc_24C00 loc_24BFA: ; CODE XREF: sub_24716+4DAj move.l #$7FFFFFFF,d0 loc_24C00: ; CODE XREF: sub_24716+4E2j move.l d0,var_A(a6) loc_24C04: ; CODE XREF: sub_24716+4D0j mulu.w var_16(a6),d2 lsr.l #8,d2 lsr.l #4,d2 cmpi.l #$3FFFF,d2 bls.s loc_24C1A move.l #$3FFFF,d2 loc_24C1A: ; CODE XREF: sub_24716+4FCj tst.l d2 bhi.s loc_24C2A move.l #$7FFFFFFF,d7 move.l d7,var_E(a6) bra.s loc_24C4A ; --------------------------------------------------------------------------- loc_24C2A: ; CODE XREF: sub_24716+506j move.l var_20(a6),d0 mulu.l d6,d1:d0 divu.l d2,d1:d0 bvs.s loc_24C40 cmpi.l #$7FFFFFFF,d0 bls.s loc_24C46 loc_24C40: ; CODE XREF: sub_24716+520j move.l #$7FFFFFFF,d0 loc_24C46: ; CODE XREF: sub_24716+528j move.l d0,var_E(a6) loc_24C4A: ; CODE XREF: sub_24716+512j clr.l d1 move.w a5,d1 mulu.l d2,d0:d1 divu.l d6,d0:d1 bhi.s loc_24C62 move.l #$7FFFFFFF,var_6(a6) bra.s loc_24C82 ; --------------------------------------------------------------------------- loc_24C62: ; CODE XREF: sub_24716+540j move.l var_1C(a6),d0 mulu.l d6,d4:d0 divu.l d1,d4:d0 bvs.s loc_24C78 cmpi.l #$7FFFFFFF,d0 bls.s loc_24C7E loc_24C78: ; CODE XREF: sub_24716+558j move.l #$7FFFFFFF,d0 loc_24C7E: ; CODE XREF: sub_24716+560j move.l d0,var_6(a6) loc_24C82: ; CODE XREF: sub_24716+54Aj movea.l var_24(a6),a5 move.l a5,(dword_FFFF9434).w move.l d3,(dword_FFFF9438).w move.l var_12(a6),(dword_FFFF943C).w move.l var_E(a6),(dword_FFFF9440).w move.l var_A(a6),(dword_FFFF9444).w move.l var_6(a6),(dword_FFFF9448).w move.l a5,d0 cmp.l d3,d0 bls.s loc_24CAE move.l d3,d0 loc_24CAE: ; CODE XREF: sub_24716+594j cmp.l var_12(a6),d0 bls.s loc_24CB8 move.l var_12(a6),d0 loc_24CB8: ; CODE XREF: sub_24716+59Cj cmp.l var_E(a6),d0 bls.s loc_24CC2 move.l var_E(a6),d0 loc_24CC2: ; CODE XREF: sub_24716+5A6j cmp.l var_A(a6),d0 bls.s loc_24CCC move.l var_A(a6),d0 loc_24CCC: ; CODE XREF: sub_24716+5B0j cmp.l var_6(a6),d0 bls.s loc_24CD6 move.l var_6(a6),d0 loc_24CD6: ; CODE XREF: sub_24716+5BAj cmpi.l #$FFFF,d0 bls.s loc_24CE2 move.w #$FFFF,d0 loc_24CE2: ; CODE XREF: sub_24716+5C6j move.w d0,(word_FFFF9426).w loc_24CE6: ; CODE XREF: sub_24716+98j tst.b (byte_FFFFB370).w beq.w loc_25B64 movea.l #unk_FF9456,a1 movea.l a1,a0 moveq #$68,d0 ; 'h' jsr sub_82046 clr.b d1 lea var_12(a6),a0 moveq #$68,d0 ; 'h' jsr sub_820CE tst.b d0 bne.s loc_24D18 bset #6,(byte_FFFF947D).w bra.s loc_24D1E ; --------------------------------------------------------------------------- loc_24D18: ; CODE XREF: sub_24716+5F8j bclr #6,(byte_FFFF947D).w loc_24D1E: ; CODE XREF: sub_24716+600j tst.b (byte_FFFFA488).w beq.w loc_24DAC move.l (off_8A826).l,var_12(a6) bset #2,(byte_FFFF947D).w move.b (byte_FFFFA488).w,d2 cmpi.b #2,d2 bhi.s loc_24DA6 beq.s loc_24D5C tst.b d2 bne.s loc_24D4A movea.w var_E(a6),a4 bra.s loc_24DA6 ; --------------------------------------------------------------------------- loc_24D4A: ; CODE XREF: sub_24716+62Cj tst.b (byte_FFFFA489).w bne.s loc_24D56 movea.w (word_FFFFA48A).w,a4 bra.s loc_24DA6 ; --------------------------------------------------------------------------- loc_24D56: ; CODE XREF: sub_24716+638j movea.w #0,a4 bra.s loc_24DA6 ; --------------------------------------------------------------------------- loc_24D5C: ; CODE XREF: sub_24716+628j move.b (byte_FFFFA489).w,d2 cmpi.b #1,d2 bhi.s loc_24DA6 beq.s loc_24D8A move.w var_E(a6),d6 add.w (word_FFFFA48A).w,d6 cmpi.w #$1400,d6 bhi.s loc_24D7C move.w d6,var_24+2(a6) bra.s loc_24D84 ; --------------------------------------------------------------------------- loc_24D7C: ; CODE XREF: sub_24716+65Ej movea.w #$1400,a1 move.w a1,var_24+2(a6) loc_24D84: ; CODE XREF: sub_24716+664j movea.w var_24+2(a6),a4 bra.s loc_24DA6 ; --------------------------------------------------------------------------- loc_24D8A: ; CODE XREF: sub_24716+650j move.w var_E(a6),d6 sub.w (word_FFFFA48A).w,d6 bcs.s loc_24D9A move.w d6,var_24+2(a6) bra.s loc_24DA2 ; --------------------------------------------------------------------------- loc_24D9A: ; CODE XREF: sub_24716+67Cj movea.w #0,a1 move.w a1,var_24+2(a6) loc_24DA2: ; CODE XREF: sub_24716+682j movea.w var_24+2(a6),a4 loc_24DA6: ; CODE XREF: sub_24716+626j ; sub_24716+632j ... move.w a4,var_E(a6) bra.s loc_24DB2 ; --------------------------------------------------------------------------- loc_24DAC: ; CODE XREF: sub_24716+60Cj bclr #2,(byte_FFFF947D).w loc_24DB2: ; CODE XREF: sub_24716+694j move.l var_12+2(a6),(dword_FFFF9450+2).w move.w var_12(a6),(dword_FFFF9450).w lea (unk_FFFF9456).w,a3 lea (unk_FFFF9466).w,a2 moveq #7,d2 loc_24DC8: ; CODE XREF: sub_24716+6B4j move.w (a3)+,(a2)+ dbf d2,loc_24DC8 move.w (ENG_TORQUE_KE_ENGINE_MAX_TORQUE).l,d2 ; Maximum net torque output from the engine. ; ft-lb muls.w #$FF33,d2 bpl.s loc_24DE0 addi.l #$3FF,d2 loc_24DE0: ; CODE XREF: sub_24716+6C2j asr.l #8,d2 asr.l #2,d2 move.b (byte_FFFF9477).w,d1 addq.b #1,d1 bcc.s loc_24DF0 move.b #$FF,d1 loc_24DF0: ; CODE XREF: sub_24716+6D4j move.b d1,(byte_FFFF9477).w move.w (word_FFFF9454).w,d4 cmp.w (TRACTION_KE_REQ_TRQ_FAIL_DUTY_CYCLE_HI).l,d4 ; Upper bound on duty cycle for the requested torque PWM line. Above this is a failure region. ; Percent bhi.s loc_24E26 cmp.w (TRACTION_KE_REQ_TRQ_FAIL_DUTY_CYCLE_LO).l,d4 ; Lower bound on duty cycle for the requested torque PWM line. Below this is a failure region. ; Percent bcs.s loc_24E26 move.l (dword_FFFF9450).w,d0 sub.l (off_8A826).l,d0 bcc.s loc_24E16 neg.l d0 loc_24E16: ; CODE XREF: sub_24716+6FCj cmp.l (TRACTION_KE_TCS_INPUT_PERIOD_BAND).l,d0 ; Tolerence band for traction control input period. ; Microseconds bhi.s loc_24E26 btst #6,(byte_FFFF947D).w beq.s loc_24E66 loc_24E26: ; CODE XREF: sub_24716+6E8j ; sub_24716+6F0j ... move.b #3,(byte_FFFF948D).w movea.w (ENG_TORQUE_KE_ENGINE_MAX_TORQUE).l,a2 ; Maximum net torque output from the engine. ; ft-lb move.l a2,d0 move.w d2,(word_FFFF9422).w move.b (byte_FFFF9476).w,d3 addq.b #1,d3 bcc.s loc_24E44 move.b #$FF,d3 loc_24E44: ; CODE XREF: sub_24716+728j move.b d3,(byte_FFFF9476).w tst.b (TRACTION_KE_LCT_XMSN_PWM_ENABLE).l ; Option selection to use the TCS PWM input to control the LCTAllison transmission. ; Boolean beq.w loc_250CA loc_24E52: ; CODE XREF: sub_24716+7A0j clr.w (word_FFFF9478).w move.w a2,(word_FFFF947A).w clr.b (byte_FFFF947C).w clr.b (byte_FFFF93F1).w bra.w loc_250CA ; --------------------------------------------------------------------------- loc_24E66: ; CODE XREF: sub_24716+70Ej tst.b (TRACTION_KE_LCT_XMSN_PWM_ENABLE).l ; Option selection to use the TCS PWM input to control the LCTAllison transmission. ; Boolean beq.w loc_24F4E clr.b (byte_FFFF948D).w movea.w (ENG_TORQUE_KE_ENGINE_MAX_TORQUE).l,a2 ; Maximum net torque output from the engine. ; ft-lb move.l a2,d0 move.w d2,(word_FFFF9422).w move.l d4,d3 subi.w #$200,d3 bcc.s loc_24E8A clr.w d3 loc_24E8A: ; CODE XREF: sub_24716+770j lsr.w #1,d3 cmpi.w #$800,d3 bls.s loc_24E96 move.w #$800,d3 loc_24E96: ; CODE XREF: sub_24716+77Aj muls.w (ENG_TORQUE_KE_ENGINE_MAX_TORQUE).l,d3 ; Maximum net torque output from the engine. ; ft-lb cmpi.l #$7FFFFFFF,d3 bhi.s loc_24EAA lsr.l #8,d3 lsr.l #3,d3 bra.s loc_24EAC ; --------------------------------------------------------------------------- loc_24EAA: ; CODE XREF: sub_24716+78Cj clr.w d3 loc_24EAC: ; CODE XREF: sub_24716+792j move.w d3,(word_FFFF9478).w btst #1,(byte_FFFF8A0C).w bne.s loc_24E52 cmp.w (TRACTION_KE_LCT_DFCO_EXIT_DUTY_CYCLE_LO).l,d4 ; Lower bound on requested torque duty cycle for Allison TCM DFCO exit request. ; Percent bls.s loc_24EE6 cmp.w (TRACTION_KE_LCT_DFCO_EXIT_DUTY_CYCLE_HI).l,d4 ; Upper bound on requested torque duty cycle for Allison TCM DFCO exit request. ; Percent bcc.s loc_24EE6 tst.b (byte_FFFF947C).w beq.s loc_24ED4 move.b #1,(byte_FFFF93F1).w loc_24ED4: ; CODE XREF: sub_24716+7B6j move.b #1,(byte_FFFF947C).w move.w a2,(word_FFFF947A).w clr.w (word_FFFF9478).w bra.w loc_250CA ; --------------------------------------------------------------------------- loc_24EE6: ; CODE XREF: sub_24716+7A8j ; sub_24716+7B0j clr.b (byte_FFFF947C).w clr.b (byte_FFFF93F1).w clr.l d2 move.w (word_FFFF9478).w,d2 move.w (word_FFFF9E22).w,d3 ext.l d3 sub.l d2,d3 cmpi.l #$FFFF8000,d3 blt.s loc_24F12 cmpi.l #$7FFF,d3 ble.s loc_24F16 move.w #$7FFF,d3 bra.s loc_24F16 ; --------------------------------------------------------------------------- loc_24F12: ; CODE XREF: sub_24716+7ECj move.w #$8000,d3 loc_24F16: ; CODE XREF: sub_24716+7F4j ; sub_24716+7FAj move.w (word_FFFF9E30).w,d2 ext.l d2 clr.l d4 move.w (TRACTION_KE_FRICTION_TORQUE_BUFFER).l,d4 ; Amount of torque above engine friction torque used as the AllisonTrans_Low_Limit for engine torque LCT Desired. ; Foot_Pounds sub.l d2,d4 cmpi.l #$FFFF8000,d4 blt.s loc_24F3C cmpi.l #$7FFF,d4 ble.s loc_24F40 move.w #$7FFF,d4 bra.s loc_24F40 ; --------------------------------------------------------------------------- loc_24F3C: ; CODE XREF: sub_24716+816j move.w #$8000,d4 loc_24F40: ; CODE XREF: sub_24716+81Ej ; sub_24716+824j cmp.w d4,d3 bge.s loc_24F46 move.l d4,d3 loc_24F46: ; CODE XREF: sub_24716+82Cj move.w d3,(word_FFFF947A).w bra.w loc_250CA ; --------------------------------------------------------------------------- loc_24F4E: ; CODE XREF: sub_24716+756j move.w d4,d3 move.w #$1200,d0 sub.w (TRACTION_KE_TCS_NORMAL_REGION_DEADBAND).l,d0 ; The deadband on duty cycle for traction control normal range ; Percent cmp.w d3,d0 bgt.s loc_24F70 clr.b (byte_FFFF948D).w loc_24F62: ; CODE XREF: sub_24716+8EAj ; sub_24716+914j move.w (ENG_TORQUE_KE_ENGINE_MAX_TORQUE).l,d0 ; Maximum net torque output from the engine. ; ft-lb loc_24F68: ; CODE XREF: sub_24716+8CAj ; sub_24716+8D0j ... move.w d2,(word_FFFF9422).w bra.w loc_250CA ; --------------------------------------------------------------------------- loc_24F70: ; CODE XREF: sub_24716+846j move.w (TRACTION_KE_TRACTION_DUTY_CYCLE_BOUND).l,d6 ; lower bound on duty cycle for traction control range. ; Percent cmp.w d6,d4 bcs.s loc_24FE8 moveq #1,d7 move.b d7,(byte_FFFF948D).w move.w #$1200,d5 sub.w d3,d5 ext.l d5 move.w (ENG_TORQUE_KE_ENGINE_MAX_TORQUE).l,d0 ; Maximum net torque output from the engine. ; ft-lb ext.l d0 neg.l d0 muls.l d0,d5 moveq #5,d0 muls.l d5,d0 bpl.s loc_24FA4 addi.l #$FF,d0 loc_24FA4: ; CODE XREF: sub_24716+886j asr.l #8,d0 move.w #$1200,d3 sub.w d6,d3 move.w (ENG_TORQUE_KE_ENGINE_MAX_TORQUE).l,d6 ; Maximum net torque output from the engine. ; ft-lb ext.l d6 asl.l #8,d0 divs.l #5,d0 divs.w d3,d0 bvc.s loc_24FD2 swap d0 eor.w d3,d0 bmi.s loc_24FCE move.w #$7FFF,d0 bra.s loc_24FD2 ; --------------------------------------------------------------------------- loc_24FCE: ; CODE XREF: sub_24716+8B0j move.w #$8000,d0 loc_24FD2: ; CODE XREF: sub_24716+8AAj ; sub_24716+8B6j ext.l d0 add.l d6,d0 tst.l d0 blt.s loc_2500A cmpi.l #$FFFF,d0 bls.s loc_24F68 move.w #$FFFF,d0 bra.s loc_24F68 ; --------------------------------------------------------------------------- loc_24FE8: ; CODE XREF: sub_24716+862j sub.w (TRACTION_KE_TRACTION_DRAG_HYST_ZONE).l,d6 ; Hysteresis zone width between drag control and traction control. ; Percent cmp.w d3,d6 bge.s loc_2502E btst #3,(byte_FFFF947D).w beq.s loc_25010 moveq #2,d6 cmp.b (byte_FFFF948D).w,d6 beq.w loc_24F62 moveq #1,d7 move.b d7,(byte_FFFF948D).w loc_2500A: ; CODE XREF: sub_24716+8C2j ; sub_24716+90Cj clr.w d0 bra.w loc_24F68 ; --------------------------------------------------------------------------- loc_25010: ; CODE XREF: sub_24716+8E2j moveq #1,d6 cmp.b (byte_FFFF948D).w,d6 beq.s loc_2501E tst.b (byte_FFFF93F3).w bne.s loc_25024 loc_2501E: ; CODE XREF: sub_24716+900j move.b d6,(byte_FFFF948D).w bra.s loc_2500A ; --------------------------------------------------------------------------- loc_25024: ; CODE XREF: sub_24716+906j moveq #2,d7 move.b d7,(byte_FFFF948D).w bra.w loc_24F62 ; --------------------------------------------------------------------------- loc_2502E: ; CODE XREF: sub_24716+8DAj move.b #2,(byte_FFFF948D).w movea.w #$200,a1 sub.w a1,d3 bcc.s loc_2503E clr.w d3 loc_2503E: ; CODE XREF: sub_24716+924j move.w (ENG_TORQUE_KE_ENGINE_MAX_TORQUE).l,d5 ; Maximum net torque output from the engine. ; ft-lb ext.l d5 neg.l d5 bpl.s loc_2504C addq.l #1,d5 loc_2504C: ; CODE XREF: sub_24716+932j asr.l #1,d5 muls.w d5,d3 moveq #5,d0 muls.l d3,d0 bpl.s loc_2505E addi.l #$FF,d0 loc_2505E: ; CODE XREF: sub_24716+940j asr.l #8,d0 move.w (ENG_TORQUE_KE_ENGINE_MAX_TORQUE).l,d3 ; Maximum net torque output from the engine. ; ft-lb muls.w #$133,d3 bpl.s loc_25072 addi.l #$3FF,d3 loc_25072: ; CODE XREF: sub_24716+954j asr.l #8,d3 asr.l #2,d3 move.w (TRACTION_KE_TRACTION_DUTY_CYCLE_BOUND).l,d4 ; lower bound on duty cycle for traction control range. ; Percent sub.w (TRACTION_KE_TRACTION_DRAG_HYST_ZONE).l,d4 ; Hysteresis zone width between drag control and traction control. ; Percent bcs.s loc_25088 sub.w a1,d4 bcc.s loc_2508A loc_25088: ; CODE XREF: sub_24716+96Cj clr.w d4 loc_2508A: ; CODE XREF: sub_24716+970j asl.l #8,d0 moveq #5,d7 divs.l d7,d0 divs.w d4,d0 bvc.s loc_250A6 swap d0 eor.w d4,d0 bmi.s loc_250A2 move.w #$7FFF,d0 bra.s loc_250A6 ; --------------------------------------------------------------------------- loc_250A2: ; CODE XREF: sub_24716+984j move.w #$8000,d0 loc_250A6: ; CODE XREF: sub_24716+97Ej ; sub_24716+98Aj add.w d3,d0 bvc.s loc_250B6 bpl.s loc_250B2 move.w #$7FFF,d0 bra.s loc_250B6 ; --------------------------------------------------------------------------- loc_250B2: ; CODE XREF: sub_24716+994j move.w #$8000,d0 loc_250B6: ; CODE XREF: sub_24716+992j ; sub_24716+99Aj cmp.w d3,d0 ble.s loc_250C0 move.w d3,(word_FFFF9422).w bra.s loc_250C4 ; --------------------------------------------------------------------------- loc_250C0: ; CODE XREF: sub_24716+9A2j move.w d0,(word_FFFF9422).w loc_250C4: ; CODE XREF: sub_24716+9A8j move.w (ENG_TORQUE_KE_ENGINE_MAX_TORQUE).l,d0 ; Maximum net torque output from the engine. ; ft-lb loc_250CA: ; CODE XREF: sub_24716+738j ; sub_24716+74Cj ... move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$3000,d3 bcc.s loc_250D8 lsr.w #1,d3 bra.s loc_250DC ; --------------------------------------------------------------------------- loc_250D8: ; CODE XREF: sub_24716+9BCj move.w #$1800,d3 loc_250DC: ; CODE XREF: sub_24716+9C0j movea.l #TRACTION_KV_TCS_MIN_DESIRED_TORQUE,a2 ; Limit desired torque request from EBCM as a function of RPM ; Ft_Lb tblu.w (a2),d3 cmp.w d3,d0 bls.s loc_250F0 move.w d0,(word_FFFF9424).w bra.s loc_250F4 ; --------------------------------------------------------------------------- loc_250F0: ; CODE XREF: sub_24716+9D2j move.w d3,(word_FFFF9424).w loc_250F4: ; CODE XREF: sub_24716+9D8j move.b (byte_FFFF948D).w,d2 moveq #2,d6 cmp.b d2,d6 bne.s loc_25106 move.w (word_FFFF9422).w,(word_FFFF93FA).w bra.s loc_2510C ; --------------------------------------------------------------------------- loc_25106: ; CODE XREF: sub_24716+9E6j move.w (word_FFFF9424).w,(word_FFFF93FA).w loc_2510C: ; CODE XREF: sub_24716+9EEj clr.l d0 move.w (TRACTION_KE_TCS_PWM_DIAG_RUNTIME_DELAY).l,d0 ; Don't enable Desired Torque PWM AND MFD Delivered Torque PWM diagnostics until the engine has run this long. ; Seconds cmp.l (EngineRunTime).w,d0 bcc.s loc_25150 move.b (byte_FFFF9476).w,d0 cmp.b (TRACTION_KE_DESIRED_TORQUE_FAILURE_LIMIT).l,d0 ; Number of invalid desired torque reads out ofKE_Desired_Torque_Pass_Limit reads which will set a fault. ; Counts 0-255 bcs.s loc_25138 bset #7,(byte_FFFF947D).w move.w #$A6,d0 ; '?' jsr sub_5F110 bra.s loc_25150 ; --------------------------------------------------------------------------- loc_25138: ; CODE XREF: sub_24716+A0Ej cmp.b (TRACTION_KE_DESIRED_TORQUE_PASS_LIMIT).l,d1 ; Number of desired torque reads which will set a pass ifKE_Desired_Torque_Failure_Limit invalid reads have notbeen reached ; Counts 0-255 bcs.s loc_25158 bclr #7,(byte_FFFF947D).w move.w #$A6,d0 ; '?' jsr sub_5F0BE loc_25150: ; CODE XREF: sub_24716+A02j ; sub_24716+A20j clr.b (byte_FFFF9476).w clr.b (byte_FFFF9477).w loc_25158: ; CODE XREF: sub_24716+A28j move.w (word_FFFFADB6).w,d3 clr.b d4 movea.w #$400,a1 add.w a1,d3 movea.l #$15724,a2 tblu.w (a2),d3 andi.l #$FFFF,d3 cmp.l (EngineRunTime).w,d3 bhi.s loc_251A2 tst.b (byte_FFFFABDA).w bne.s loc_251A2 tst.b (byte_FFFFB379).w beq.s loc_251B8 move.b (byte_FFFF9028).w,d3 cmp.b d3,d6 beq.s loc_2519A moveq #3,d5 cmp.b d3,d5 beq.s loc_2519A cmpi.b #4,d3 bne.s loc_251B8 loc_2519A: ; CODE XREF: sub_24716+A76j ; sub_24716+A7Cj btst #1,(byte_FFFF9027).w beq.s loc_251B8 loc_251A2: ; CODE XREF: sub_24716+A62j ; sub_24716+A68j moveq #1,d3 clr.b (byte_FFFF93EA).w clr.b (byte_FFFF93EB).w bclr #5,(byte_FFFF947D).w clr.b (byte_FFFF93F2).w bra.s loc_251BA ; --------------------------------------------------------------------------- loc_251B8: ; CODE XREF: sub_24716+A6Ej ; sub_24716+A82j ... move.l d4,d3 loc_251BA: ; CODE XREF: sub_24716+AA0j move.b (byte_FFFFABDA).w,(byte_FFFF93F7).w tst.b d3 bne.w loc_252A2 clr.b (byte_FFFF93F2).w tst.b (byte_FFFFA59F).w beq.s loc_251DC move.b #1,(byte_FFFF93F8).w loc_251D6: ; CODE XREF: sub_24716+ACCj ; sub_24716+AD2j ... move.l d4,d3 bra.w loc_25270 ; --------------------------------------------------------------------------- loc_251DC: ; CODE XREF: sub_24716+AB8j btst #7,(byte_FFFF947D).w bne.s loc_251D6 tst.b (byte_FFFF90D7).w beq.s loc_251D6 btst #3,(byte_FFFF947D).w bne.s loc_251FA btst #2,(byte_FFFF947D).w beq.s loc_2520C loc_251FA: ; CODE XREF: sub_24716+ADAj cmp.b d2,d6 seq d3 neg.b d3 moveq #1,d5 cmp.b d2,d5 seq d4 neg.b d4 clr.b d2 bra.s loc_25246 ; --------------------------------------------------------------------------- loc_2520C: ; CODE XREF: sub_24716+AE2j tst.b d2 bne.s loc_2521C move.b d4,var_14(a6) bclr #1,(byte_FFFF947D).w bra.s loc_251D6 ; --------------------------------------------------------------------------- loc_2521C: ; CODE XREF: sub_24716+AF8j moveq #1,d5 cmp.b d2,d5 bne.s loc_25232 move.b d4,var_14(a6) bclr #1,(byte_FFFF947D).w move.l d5,d4 clr.b d3 bra.s loc_25270 ; --------------------------------------------------------------------------- loc_25232: ; CODE XREF: sub_24716+B0Aj cmp.b d2,d6 bne.s loc_2526A move.b (byte_FFFF93F3).w,d3 and.b (TRACTION_KE_DRAG_CONTROL_EQUIPPED).l,d3 ; Allow selection of Drag Control ; Boolean beq.s loc_25252 move.l d5,d3 move.l d4,d2 loc_25246: ; CODE XREF: sub_24716+AF4j move.b d2,var_14(a6) bclr #1,(byte_FFFF947D).w bra.s loc_25270 ; --------------------------------------------------------------------------- loc_25252: ; CODE XREF: sub_24716+B2Aj move.l d4,d3 btst #1,(byte_FFFF947D).w bne.s loc_2526C move.l d3,d2 move.b d2,var_14(a6) bset #1,(byte_FFFF947D).w bra.s loc_25270 ; --------------------------------------------------------------------------- loc_2526A: ; CODE XREF: sub_24716+B1Ej move.l d4,d3 loc_2526C: ; CODE XREF: sub_24716+B44j move.b d5,var_14(a6) loc_25270: ; CODE XREF: sub_24716+AC2j ; sub_24716+B1Aj ... tst.b (byte_FFFFAF3B).w bne.s loc_25284 cmpi.b #8,(byte_FFFFA3B8).w beq.s loc_25284 tst.b (byte_FFFFA3AC).w beq.s loc_25286 loc_25284: ; CODE XREF: sub_24716+B5Ej ; sub_24716+B66j clr.b d3 loc_25286: ; CODE XREF: sub_24716+B6Cj move.b d3,(byte_FFFF93EB).w move.b d4,(byte_FFFF93EA).w tst.b var_14(a6) beq.s loc_2529C bset #5,(byte_FFFF947D).w bra.s loc_252A2 ; --------------------------------------------------------------------------- loc_2529C: ; CODE XREF: sub_24716+B7Cj bclr #5,(byte_FFFF947D).w loc_252A2: ; CODE XREF: sub_24716+AACj ; sub_24716+B84j move.b (byte_FFFF93EA).w,d1 beq.s loc_252CE tst.b (byte_FFFF93EB).w bne.s loc_252E6 move.w (word_FFFF9E22).w,d0 ext.l d0 clr.l d3 move.w (word_FFFF9424).w,d3 sub.l d0,d3 cmpi.l #$FFFF8000,d3 blt.s loc_252DE cmpi.l #$7FFF,d3 ble.s loc_252E2 bra.s loc_252DE ; --------------------------------------------------------------------------- loc_252CE: ; CODE XREF: sub_24716+B90j tst.b (byte_FFFF93EB).w beq.s loc_252E6 move.w (word_FFFF9422).w,d3 sub.w (word_FFFF9E22).w,d3 bvc.s loc_252E2 loc_252DE: ; CODE XREF: sub_24716+BACj ; sub_24716+BB6j move.w #$8000,d3 loc_252E2: ; CODE XREF: sub_24716+BB4j ; sub_24716+BC6j move.w d3,(word_FFFF942C).w loc_252E6: ; CODE XREF: sub_24716+B96j ; sub_24716+BBCj move.b (byte_FFFF93EB).w,d0 move.l d1,d5 or.b d0,d5 beq.s loc_25334 move.w (word_FFFF942C).w,d3 move.w (TRACTION_KE_PROP_ERROR_MAX_NEGATIVE).l,d4 ; Limits the error to be used for the proportional term ; Foot_Pounds cmp.w d4,d3 bge.s loc_25302 loc_252FE: ; CODE XREF: sub_24716+BF4j move.l d4,d3 bra.s loc_2530C ; --------------------------------------------------------------------------- loc_25302: ; CODE XREF: sub_24716+BE6j move.w (TRACTION_KE_PROP_ERROR_MAX_POSITIVE).l,d4 ; Limits the error to be used for the proportional term ; Foot_Pounds cmp.w d4,d3 bgt.s loc_252FE loc_2530C: ; CODE XREF: sub_24716+BEAj move.l d3,d5 tst.w d5 bge.s loc_25314 neg.w d5 loc_25314: ; CODE XREF: sub_24716+BFAj cmp.w (TRACTION_KE_TORQUE_ERROR_DEADBAND).l,d5 ; Prevent proportional adjustments for small errors ; Foot_Pounds bcs.s loc_25334 muls.w (TRACTION_KE_PROPORTIONAL_GAIN).l,d3 ; Proportional gain for torque errors for traction control ; Multiplier_0_to_1 bpl.s loc_2532A addi.l #$FFF,d3 loc_2532A: ; CODE XREF: sub_24716+C0Cj asr.l #8,d3 asr.l #4,d3 move.w d3,(word_FFFF942E).w bra.s loc_25338 ; --------------------------------------------------------------------------- loc_25334: ; CODE XREF: sub_24716+BD8j ; sub_24716+C04j clr.w (word_FFFF942E).w loc_25338: ; CODE XREF: sub_24716+C1Cj tst.b d1 bne.s loc_25346 tst.b d0 bne.s loc_25346 clr.w d3 bra.w loc_2540E ; --------------------------------------------------------------------------- loc_25346: ; CODE XREF: sub_24716+C24j ; sub_24716+C28j move.w (word_FFFF9430).w,d3 move.b (byte_FFFF9060).w,d4 moveq #5,d5 cmp.b d4,d5 beq.s loc_2535C moveq #7,d2 cmp.b d4,d2 bne.w loc_2540E loc_2535C: ; CODE XREF: sub_24716+C3Cj move.w (word_FFFF940E).w,var_12(a6) move.w (GlobalClock).w,d0 move.l d0,d4 sub.w var_12(a6),d4 cmp.w (TRACTION_KE_TCS_INTEGRAL_DELAY).l,d4 ; Delay TCS integrator updates to account for system dynamics ; Seconds bcs.w loc_2540E move.w d0,(word_FFFF940E).w move.w (word_FFFF942C).w,d3 move.w (TRACTION_KE_INTEGRAL_ERROR_MAX_NEGATIVE).l,d4 ; Limits the error to be used for the Integral term ; Foot_Pounds cmp.w d4,d3 bge.s loc_2538C loc_25388: ; CODE XREF: sub_24716+C7Ej move.l d4,d3 bra.s loc_25396 ; --------------------------------------------------------------------------- loc_2538C: ; CODE XREF: sub_24716+C70j move.w (TRACTION_KE_INTEGRAL_ERROR_MAX_POSITIVE).l,d4 ; Limits the error to be used for the integral term ; Foot_Pounds cmp.w d4,d3 bgt.s loc_25388 loc_25396: ; CODE XREF: sub_24716+C74j move.l d3,d2 tst.w d2 bge.s loc_2539E neg.w d2 loc_2539E: ; CODE XREF: sub_24716+C84j cmp.w (TRACTION_KE_TORQUE_ERROR_DEADBAND).l,d2 ; Prevent proportional adjustments for small errors ; Foot_Pounds bcc.s loc_253AA clr.w d3 bra.s loc_253D4 ; --------------------------------------------------------------------------- loc_253AA: ; CODE XREF: sub_24716+C8Ej muls.w (TRACTION_KE_INTEGRAL_GAIN).l,d3 ; Integral gain for torque errors for traction/drag control ; Multiplier_0_to_1 bpl.s loc_253B8 addi.l #$FFF,d3 loc_253B8: ; CODE XREF: sub_24716+C9Aj asr.l #8,d3 asr.l #4,d3 cmpi.w #$2800,d3 bgt.s loc_253CA cmpi.w #$D800,d3 blt.s loc_253D0 bra.s loc_253D4 ; --------------------------------------------------------------------------- loc_253CA: ; CODE XREF: sub_24716+CAAj move.w #$2800,d3 bra.s loc_253D4 ; --------------------------------------------------------------------------- loc_253D0: ; CODE XREF: sub_24716+CB0j move.w #$D800,d3 loc_253D4: ; CODE XREF: sub_24716+C92j ; sub_24716+CB2j ... add.w (word_FFFF9430).w,d3 bvc.s loc_253DE bmi.s loc_253EC bra.s loc_253F2 ; --------------------------------------------------------------------------- loc_253DE: ; CODE XREF: sub_24716+CC2j cmpi.w #$2800,d3 bgt.s loc_253EC cmpi.w #$D800,d3 blt.s loc_253F2 bra.s loc_253F6 ; --------------------------------------------------------------------------- loc_253EC: ; CODE XREF: sub_24716+CC4j ; sub_24716+CCCj move.w #$2800,d3 bra.s loc_253F6 ; --------------------------------------------------------------------------- loc_253F2: ; CODE XREF: sub_24716+CC6j ; sub_24716+CD2j move.w #$D800,d3 loc_253F6: ; CODE XREF: sub_24716+CD4j ; sub_24716+CDAj move.w (TRACTION_KE_INTEGRAL_NEGATIVE_LIMIT).l,d4 ; Limits magnitude of the integral term for negative torque errors ; Foot_Pounds cmp.w d4,d3 bge.s loc_25404 loc_25400: ; CODE XREF: sub_24716+CF6j move.l d4,d3 bra.s loc_2540E ; --------------------------------------------------------------------------- loc_25404: ; CODE XREF: sub_24716+CE8j move.w (TRACTION_KE_INTEGRAL_POSITIVE_LIMIT).l,d4 ; Limits magnitued of the integral term for positive torque errors ; Foot_Pounds cmp.w d4,d3 bgt.s loc_25400 loc_2540E: ; CODE XREF: sub_24716+C2Cj ; sub_24716+C42j ... move.w d3,(word_FFFF9430).w move.b (byte_FFFF93EA).w,d3 or.b (byte_FFFF93EB).w,d3 beq.s loc_2545A move.w (word_FFFF942E).w,d3 add.w (word_FFFF9430).w,d3 bvc.s loc_25432 bpl.s loc_2542E move.w #$7FFF,d3 bra.s loc_25432 ; --------------------------------------------------------------------------- loc_2542E: ; CODE XREF: sub_24716+D10j move.w #$8000,d3 loc_25432: ; CODE XREF: sub_24716+D0Ej ; sub_24716+D16j move.w (TRACTION_KE_PI_FINAL_NEGATIVE_LIMIT).l,d4 ; Limits the final TCS torque PI feedback term for negative errors ; Foot_Pounds cmp.w d4,d3 bge.s loc_25440 move.l d4,d3 bra.s loc_25454 ; --------------------------------------------------------------------------- loc_25440: ; CODE XREF: sub_24716+D24j move.w (TRACTION_KE_PI_FINAL_POSITIVE_LIMIT).l,d0 ; Limits the final TCS torque PI feedback term for positive errors ; Foot_Pounds clr.l d5 move.w d0,d5 move.l d3,d2 ext.l d2 cmp.l d5,d2 ble.s loc_25454 move.l d0,d3 loc_25454: ; CODE XREF: sub_24716+D28j ; sub_24716+D3Aj move.w d3,(word_FFFF9432).w bra.s loc_2545E ; --------------------------------------------------------------------------- loc_2545A: ; CODE XREF: sub_24716+D04j clr.w (word_FFFF9432).w loc_2545E: ; CODE XREF: sub_24716+D42j btst #4,(byte_FFFFA8FE).w bne.s loc_2546E btst #3,(byte_FFFFA8FE).w beq.s loc_25476 loc_2546E: ; CODE XREF: sub_24716+D4Ej btst #7,(byte_FFFFA8FF).w beq.s loc_2547C loc_25476: ; CODE XREF: sub_24716+D56j move.b (byte_FFFFA3B8).w,(byte_FFFF9490).w loc_2547C: ; CODE XREF: sub_24716+D5Ej btst #7,(byte_FFFF947D).w beq.s loc_2548A move.b #7,(byte_FFFF9490).w loc_2548A: ; CODE XREF: sub_24716+D6Cj clr.w d4 move.b (byte_FFFF9490).w,d4 move.l d4,d5 moveq #$2A,d2 ; '*' mulu.w d2,d5 lea TRACTION_KA_ENG_TORQUE_ETC_DESIRED_XMSN(d5.l),a2 ; Desired engine torque for transmission protection. ; Ft_Lbs_S move.w (AnotherRpmValue).w,d0 move.w d0,d7 tbls.w (a2),d7 mulu.w #$26,d4 ; '&' lea TRACTION_KA_ENG_TRQ_ETC_DES_XMSN_MULT(d4.l),a2 ; Desired engine torque multiplier. ; Scaler 2 move.w (word_FFFFAEE8).w,d3 tblu.w (a2),d3 move.w #$800,d1 muls.w d3,d7 divs.w d1,d7 bvc.s loc_254D6 swap d7 eor.w d1,d7 bmi.s loc_254D2 move.w #$7FFF,d7 bra.s loc_254D6 ; --------------------------------------------------------------------------- loc_254D2: ; CODE XREF: sub_24716+DB4j move.w #$8000,d7 loc_254D6: ; CODE XREF: sub_24716+DAEj ; sub_24716+DBAj move.w d7,(word_FFFF948E).w move.w (TRACTION_KE_TIP_IN_TRQ_MAX).l,d1 ; Maximum torque value that will allow tip in torque rate limiting. ; Foot_Pounds_S cmp.w (word_FFFF9E22).w,d1 ble.s loc_25534 move.w (word_FFFFAEBE).w,d3 cmp.w (TRACTION_KE_TIP_IN_MPH_MIN).l,d3 ; Minimum vehicle speed that will allow tip in torque rate limiting. ; MPH bls.s loc_25534 move.w (ThrottleArea1).w,d3 lsr.w #1,d3 cmp.w (word_FFFF93FE).w,d3 bcc.s loc_25534 clr.w d5 move.b (byte_FFFF9490).w,d5 move.w (word_FFFF9E22).w,d3 add.w TRACTION_KV_TIP_IN_DELTA_TRQ_LIMIT(d5.w*2),d3 ; Maximum allowable rate of torque increase when below a calibratedtorque level and above a calibrated vehicle speed. ; Foot_Pounds_S bvc.s loc_2551E bpl.s loc_2551A move.w #$7FFF,d3 bra.s loc_2551E ; --------------------------------------------------------------------------- loc_2551A: ; CODE XREF: sub_24716+DFCj move.w #$8000,d3 loc_2551E: ; CODE XREF: sub_24716+DFAj ; sub_24716+E02j cmp.w d1,d3 bge.s loc_25528 move.w d1,(word_FFFF9498).w bra.s loc_2552C ; --------------------------------------------------------------------------- loc_25528: ; CODE XREF: sub_24716+E0Aj move.w d3,(word_FFFF9498).w loc_2552C: ; CODE XREF: sub_24716+E10j move.b #1,(byte_FFFF949A).w bra.s loc_25578 ; --------------------------------------------------------------------------- loc_25534: ; CODE XREF: sub_24716+DCEj ; sub_24716+DDAj ... tst.b (byte_FFFF949A).w beq.s loc_2556C move.w (word_FFFF9498).w,d3 cmp.w (ENG_TORQUE_KE_ENGINE_MAX_TORQUE).l,d3 ; Maximum net torque output from the engine. ; ft-lb bge.s loc_2556C clr.w d1 move.b (byte_FFFF9490).w,d1 move.w (word_FFFF9498).w,d3 add.w TRACTION_KV_TIP_IN_DELTA_TRQ_LIMIT(d1.w*2),d3 ; Maximum allowable rate of torque increase when below a calibratedtorque level and above a calibrated vehicle speed. ; Foot_Pounds_S bvc.s loc_25566 bpl.s loc_25562 move.w #$7FFF,d3 bra.s loc_25566 ; --------------------------------------------------------------------------- loc_25562: ; CODE XREF: sub_24716+E44j move.w #$8000,d3 loc_25566: ; CODE XREF: sub_24716+E42j ; sub_24716+E4Aj move.w d3,(word_FFFF9498).w bra.s loc_25578 ; --------------------------------------------------------------------------- loc_2556C: ; CODE XREF: sub_24716+E22j ; sub_24716+E2Ej movea.w #$7FFF,a4 move.w a4,(word_FFFF9498).w clr.b (byte_FFFF949A).w loc_25578: ; CODE XREF: sub_24716+E1Cj ; sub_24716+E54j tst.b (TRACTION_KE_TIP_OUT_TRQ_MANAGEMENT_ENABLE).l ; Enabling cal for Tip out torque management algorithm. ; BOOLEAN beq.w loc_25670 clr.w d3 move.b (byte_FFFFA3B8).w,d3 mulu.w d2,d3 lea TRACTION_KA_TIP_OUT_INITIAL_TORQUE(d3.l),a2 ; Starting torque level for tip out management algorithm. ; Ft_Lbs_S move.w d0,d6 tbls.w (a2),d6 move.l d6,d3 add.w (word_FFFF9E30).w,d3 bvc.s loc_255AC bpl.s loc_255A8 move.w #$7FFF,d3 bra.s loc_255AC ; --------------------------------------------------------------------------- loc_255A8: ; CODE XREF: sub_24716+E8Aj move.w #$8000,d3 loc_255AC: ; CODE XREF: sub_24716+E88j ; sub_24716+E90j ext.l d3 clr.w d4 cmpi.l #$FFFFD800,d3 bge.s loc_255BC move.l d4,d3 bra.s loc_255D6 ; --------------------------------------------------------------------------- loc_255BC: ; CODE XREF: sub_24716+EA0j cmpi.l #$7800,d3 bge.s loc_255D2 movea.w #$2800,a4 add.l a4,d3 bpl.s loc_255CE addq.l #7,d3 loc_255CE: ; CODE XREF: sub_24716+EB4j asr.l #3,d3 bra.s loc_255D6 ; --------------------------------------------------------------------------- loc_255D2: ; CODE XREF: sub_24716+EACj move.w #$1400,d3 loc_255D6: ; CODE XREF: sub_24716+EA4j ; sub_24716+EBAj moveq #$15,d2 move.l d3,d1 movea.l #TRACTION_KA_TIP_OUT_THROTTLE_AREA,a0 ; Delivers the throttle area for the tip out torque managment algorithm desired engine torque. ; Percent_Vs_Ft_Lbs_And_RPM_Table jsr sub_2696E move.w d0,(word_FFFF9428).w move.w (ThrottleArea2).w,d3 lsr.w #1,d3 cmp.w d0,d3 bcc.s loc_2561E cmp.w (word_FFFF9E22).w,d6 bge.s loc_2561E move.w (EngineRPM_PID_000C___).w,d0 cmp.w (TRACTION_KE_TIP_OUT_MIN_ENGINE_SPEED).l,d0 ; Minimum engine speed that will enable tip out torque rate limiting. ; RPM bls.s loc_2561E tst.b (byte_FFFF93F6).w bne.s loc_2561E move.b #1,(byte_FFFF93F6).w move.w (GlobalClock).w,(word_FFFF942A).w move.w d6,(word_FFFF940C).w bra.s loc_25670 ; --------------------------------------------------------------------------- loc_2561E: ; CODE XREF: sub_24716+EDCj ; sub_24716+EE2j ... tst.b (byte_FFFF93F6).w beq.s loc_25668 tst.w (word_FFFF940C).w ble.s loc_25668 moveq #$50,d0 ; 'P' movea.l #unk_FF942A,a0 jsr sub_276D4 tst.b d0 bne.s loc_25668 clr.w d3 move.b (byte_FFFFA3B8).w,d3 move.w TRACTION_KV_TIP_OUT_RAMP_RATE(d3.w*2),d0 ; Maximum allowable rate of torque decrease when tip-out torque algorithm is active. ; Foot_Pounds_S ext.l d0 move.w (word_FFFF940C).w,d3 ext.l d3 sub.l d0,d3 tst.l d3 blt.s loc_25660 cmpi.l #$FFFF,d3 bls.s loc_25662 loc_25660: ; CODE XREF: sub_24716+F40j clr.w d3 loc_25662: ; CODE XREF: sub_24716+F48j move.w d3,(word_FFFF940C).w bra.s loc_25670 ; --------------------------------------------------------------------------- loc_25668: ; CODE XREF: sub_24716+F0Cj ; sub_24716+F12j ... clr.w (word_FFFF940C).w clr.b (byte_FFFF93F6).w loc_25670: ; CODE XREF: sub_24716+E68j ; sub_24716+F06j ... move.w (word_FFFF9E2E).w,d0 tst.b (byte_FFFF93EA).w beq.w loc_25710 tst.b (byte_FFFF93EB).w bne.s loc_256EA tst.w d0 bne.s loc_2568C clr.w (word_FFFF944E).w bra.s loc_256EA ; --------------------------------------------------------------------------- loc_2568C: ; CODE XREF: sub_24716+F6Ej move.l d0,d3 clr.l d1 move.w (word_FFFF9424).w,d1 move.w (word_FFFF9E30).w,d4 add.w (word_FFFF9E32).w,d4 bvc.s loc_256AA bpl.s loc_256A6 move.w #$7FFF,d4 bra.s loc_256AA ; --------------------------------------------------------------------------- loc_256A6: ; CODE XREF: sub_24716+F88j move.w #$8000,d4 loc_256AA: ; CODE XREF: sub_24716+F86j ; sub_24716+F8Ej ext.l d4 add.l d1,d4 tst.l d4 blt.s loc_256C0 cmpi.l #$FFFF,d4 bls.s loc_256C2 move.w #$FFFF,d4 bra.s loc_256C2 ; --------------------------------------------------------------------------- loc_256C0: ; CODE XREF: sub_24716+F9Aj clr.w d4 loc_256C2: ; CODE XREF: sub_24716+FA2j ; sub_24716+FA8j sub.w d4,d3 bcc.s loc_256C8 clr.w d3 loc_256C8: ; CODE XREF: sub_24716+FAEj andi.l #$FFFF,d3 asl.l #8,d3 asl.l #3,d3 divu.w d0,d3 bvs.s loc_256DC cmpi.w #$800,d3 bls.s loc_256E0 loc_256DC: ; CODE XREF: sub_24716+FBEj move.w #$800,d3 loc_256E0: ; CODE XREF: sub_24716+FC4j moveq #5,d6 mulu.w d6,d3 lsr.w #1,d3 move.w d3,(word_FFFF944E).w loc_256EA: ; CODE XREF: sub_24716+F6Aj ; sub_24716+F74j move.w (word_FFFF944E).w,d0 asl.w #3,d0 andi.l #$FFFF,d0 divu.w #5,d0 move.w (word_FFFFAEF8).w,d1 moveq #$21,d2 ; '!' movea.l #TRACTION_KA_SPARK_RETARD_FOR_TORQUE_LOSS,a0 ; MBT spark retard as a function of a given torque loss value ; Degrees jsr sub_2696E move.w d0,d3 bra.s loc_2572A ; --------------------------------------------------------------------------- loc_25710: ; CODE XREF: sub_24716+F62j move.w (word_FFFF9402).w,d3 sub.w (TRACTION_KE_TRACTION_RETARD_RAMP).l,d3 ; Step reduction rate of ramp out of non-zero traction spark retard ; Degrees tst.w d3 bge.s loc_25720 clr.w d3 loc_25720: ; CODE XREF: sub_24716+1006j tst.b (byte_FFFF93EB).w beq.s loc_2572A clr.w (word_FFFF944E).w loc_2572A: ; CODE XREF: sub_24716+FF8j ; sub_24716+100Ej tst.b (byte_FFFF9E39).w beq.s loc_25732 clr.w d3 loc_25732: ; CODE XREF: sub_24716+1018j move.w d3,(word_FFFF9402).w move.b (byte_FFFF93EB).w,d3 beq.s loc_25760 tst.b (byte_FFFF93EA).w bne.s loc_25760 btst #5,(byte_FFFF947D).w bne.s loc_25760 moveq #1,d0 move.w (word_FFFF9422).w,d6 add.w (word_FFFF9432).w,d6 bvc.w loc_25806 bmi.w loc_257E6 bra.w loc_257EC ; --------------------------------------------------------------------------- loc_25760: ; CODE XREF: sub_24716+1024j ; sub_24716+102Aj ... tst.b (byte_FFFF93EA).w beq.w loc_257F2 tst.b d3 bne.w loc_257F2 btst #5,(byte_FFFF947D).w bne.s loc_257F2 tst.b (byte_FFFF90E7).w beq.s loc_25782 tst.b (byte_FFFF90E6).w beq.s loc_2578C loc_25782: ; CODE XREF: sub_24716+1064j move.b (byte_FFFF9103).w,d0 and.b (byte_FFFF9104).w,d0 beq.s loc_257C6 loc_2578C: ; CODE XREF: sub_24716+106Aj tst.b (TRACTION_KE_ENABLE_POWER_HOP_CONTROL).l ; Option selection to manage torque for Power Hop control using fuel and spark. ; Boolean beq.s loc_257C6 moveq #3,d0 move.w #$7FFF,d6 move.w (word_FFFF9432).w,d1 ext.l d1 clr.l d3 move.w (word_FFFF9424).w,d3 add.l d1,d3 cmpi.l #$FFFF8000,d3 blt.s loc_257BC cmpi.l #$7FFF,d3 ble.s loc_257C0 move.l d6,d3 bra.s loc_257C0 ; --------------------------------------------------------------------------- loc_257BC: ; CODE XREF: sub_24716+1098j move.w #$8000,d3 loc_257C0: ; CODE XREF: sub_24716+10A0j ; sub_24716+10A4j move.w d3,(word_FFFF9408).w bra.s loc_2580C ; --------------------------------------------------------------------------- loc_257C6: ; CODE XREF: sub_24716+1074j ; sub_24716+107Cj moveq #2,d0 move.w (word_FFFF9432).w,d3 ext.l d3 clr.l d6 move.w (word_FFFF9424).w,d6 add.l d3,d6 cmpi.l #$FFFF8000,d6 blt.s loc_257EC cmpi.l #$7FFF,d6 ble.s loc_25806 loc_257E6: ; CODE XREF: sub_24716+1042j move.w #$7FFF,d6 bra.s loc_25806 ; --------------------------------------------------------------------------- loc_257EC: ; CODE XREF: sub_24716+1046j ; sub_24716+10C6j move.w #$8000,d6 bra.s loc_25806 ; --------------------------------------------------------------------------- loc_257F2: ; CODE XREF: sub_24716+104Ej ; sub_24716+1054j ... tst.b (byte_FFFF93F6).w beq.s loc_25800 moveq #7,d0 move.w (word_FFFF940C).w,d6 bra.s loc_2580C ; --------------------------------------------------------------------------- loc_25800: ; CODE XREF: sub_24716+10E0j move.w #$7FFF,d6 clr.b d0 loc_25806: ; CODE XREF: sub_24716+103Ej ; sub_24716+10CEj ... move.w #$7FFF,(word_FFFF9408).w loc_2580C: ; CODE XREF: sub_24716+10AEj ; sub_24716+10E8j move.w (word_FFFF9498).w,d3 cmp.w d6,d3 bge.s loc_25818 moveq #4,d0 move.l d3,d6 loc_25818: ; CODE XREF: sub_24716+10FCj cmp.w d6,d7 bge.s loc_25820 moveq #5,d0 move.l d7,d6 loc_25820: ; CODE XREF: sub_24716+1104j tst.b (TRACTION_KE_ENABLE_ETC_AIRFLOW_AXLE_ABUSE).l ; Option selection to use ETC airflow in combination with spark for axle abuse. ; Boolean beq.s loc_2583C move.l d6,d2 ext.l d2 clr.l d3 move.w (word_FFFF9426).w,d3 cmp.l d2,d3 bge.s loc_2583C moveq #6,d0 move.w (word_FFFF9426).w,d6 loc_2583C: ; CODE XREF: sub_24716+1110j ; sub_24716+111Ej move.b (byte_FFFF9406).w,(byte_FFFF94B2).w move.b d0,(byte_FFFF9406).w move.w d6,(word_FFFF9404).w move.b (byte_FFFF9406).w,d3 beq.s loc_25856 cmpi.b #3,d3 bne.s loc_2586C loc_25856: ; CODE XREF: sub_24716+1138j movea.w #$1400,a2 move.w a2,(word_FFFF94B4).w move.w #$2800,(word_FFFF93EE).w move.w a2,(word_FFFF94BC).w bra.w loc_25A18 ; --------------------------------------------------------------------------- loc_2586C: ; CODE XREF: sub_24716+113Ej move.w (word_FFFFAEF0).w,d7 tblu.w (TRACTION_KV_TORQUE_BARO_ADJUST).l,d7 ; Adjusts the desired TCS torque to compensate for ambient pressure ; Scaler_2_Vs_kPa_Table move.w (word_FFFFB3E8).w,d3 add.w a1,d3 muls.w #5,d3 divs.w #6,d3 movea.l #TRACTION_KV_TORQUE_IAT_ADJUST,a2 ; Adjusts desired TCS torque to compensate for Induction Air Temp ; Scaler_2_Vs_Deg_C_Table tblu.w (a2),d3 move.w d3,var_24+2(a6) tst.w (word_FFFF9E36).w bne.s loc_258A0 move.w #$800,d6 bra.s loc_258BA ; --------------------------------------------------------------------------- loc_258A0: ; CODE XREF: sub_24716+1182j clr.l d6 move.w (word_FFFF9E34).w,d6 asl.l #8,d6 asl.l #3,d6 divu.w (word_FFFF9E36).w,d6 bvs.s loc_258B6 cmpi.w #$1000,d6 bls.s loc_258BA loc_258B6: ; CODE XREF: sub_24716+1198j move.w #$1000,d6 loc_258BA: ; CODE XREF: sub_24716+1188j ; sub_24716+119Ej move.w (AnotherRpmValue).w,d0 movea.w (word_FFFFAEF8).w,a2 moveq #$15,d2 move.l a2,d1 movea.l #TRACTION_KA_MAX_ENG_TRQ_IND_STOICH,a0 ; Max torque available as a function of Engine Speed assuming an equivalence ratio of 1.0 ; Foot_Pounds_S jsr sub_2696E move.w d0,(word_FFFF94BE).w move.w #$800,d0 move.l d0,d3 muls.w (word_FFFF94BE).w,d7 move.l d3,d4 divs.w d4,d7 bvc.s loc_258F6 swap d7 eor.w d4,d7 bmi.s loc_258F2 move.w #$7FFF,d7 bra.s loc_258F6 ; --------------------------------------------------------------------------- loc_258F2: ; CODE XREF: sub_24716+11D4j move.w #$8000,d7 loc_258F6: ; CODE XREF: sub_24716+11CEj ; sub_24716+11DAj muls.w var_24+2(a6),d7 divs.w d3,d7 bvc.s loc_25906 swap d7 eor.w d3,d7 bmi.s loc_25910 bra.s loc_2590A ; --------------------------------------------------------------------------- loc_25906: ; CODE XREF: sub_24716+11E6j move.w d7,d3 bra.s loc_25914 ; --------------------------------------------------------------------------- loc_2590A: ; CODE XREF: sub_24716+11EEj move.w #$7FFF,d3 bra.s loc_25914 ; --------------------------------------------------------------------------- loc_25910: ; CODE XREF: sub_24716+11ECj move.w #$8000,d3 loc_25914: ; CODE XREF: sub_24716+11F2j ; sub_24716+11F8j muls.w d6,d3 divs.w d0,d3 bvc.s loc_2592A swap d3 eor.w d0,d3 bmi.s loc_25926 move.w #$7FFF,d3 bra.s loc_2592A ; --------------------------------------------------------------------------- loc_25926: ; CODE XREF: sub_24716+1208j move.w #$8000,d3 loc_2592A: ; CODE XREF: sub_24716+1202j ; sub_24716+120Ej move.w d3,(word_FFFF94B8).w tst.b (TRACTION_KE_PERCENT_TRQ_IND_ENABLE).l ; Enabling bit to turn on or off the calibration development aid feature. ; Boolean beq.s loc_25976 move.w (TRACTION_KE_PERCENT_TRQ_IND_DESIRED).l,d5 ; Desired percentage of maximum available torque when utilizing the calibration development aid. ; Percent move.w d5,(word_FFFF94BC).w move.w d5,(word_FFFF93EE).w add.w d5,d5 andi.l #$FFFF,d5 moveq #5,d6 divu.w d6,d5 muls.w d5,d3 bpl.s loc_2595A addi.l #$7FF,d3 loc_2595A: ; CODE XREF: sub_24716+123Cj asr.l #8,d3 asr.l #3,d3 sub.w (word_FFFF9E30).w,d3 bvc.s loc_25970 bpl.s loc_2596C move.w #$7FFF,d3 bra.s loc_25970 ; --------------------------------------------------------------------------- loc_2596C: ; CODE XREF: sub_24716+124Ej move.w #$8000,d3 loc_25970: ; CODE XREF: sub_24716+124Cj ; sub_24716+1254j move.w d3,(word_FFFF94BA).w bra.s loc_259EA ; --------------------------------------------------------------------------- loc_25976: ; CODE XREF: sub_24716+121Ej tst.w d3 bne.s loc_2598A movea.w #$1400,a4 move.w a4,(word_FFFF94BC).w move.w #$2800,(word_FFFF93EE).w bra.s loc_259EA ; --------------------------------------------------------------------------- loc_2598A: ; CODE XREF: sub_24716+1262j move.w (word_FFFF9404).w,d3 add.w (word_FFFF9E30).w,d3 bvc.s loc_259A0 bpl.s loc_2599C move.w #$7FFF,d3 bra.s loc_259A0 ; --------------------------------------------------------------------------- loc_2599C: ; CODE XREF: sub_24716+127Ej move.w #$8000,d3 loc_259A0: ; CODE XREF: sub_24716+127Cj ; sub_24716+1284j move.w d3,(word_FFFF94B6).w move.w (word_FFFF94B8).w,d4 move.w (word_FFFF94B6).w,d3 ext.l d3 asl.l #8,d3 asl.l #3,d3 divs.w d4,d3 bvc.s loc_259BE swap d3 eor.w d4,d3 bmi.s loc_259D0 bra.s loc_259CA ; --------------------------------------------------------------------------- loc_259BE: ; CODE XREF: sub_24716+129Ej cmpi.w #$7FFF,d3 bhi.s loc_259D0 cmpi.w #$1000,d3 bls.s loc_259D2 loc_259CA: ; CODE XREF: sub_24716+12A6j move.w #$1000,d3 bra.s loc_259D2 ; --------------------------------------------------------------------------- loc_259D0: ; CODE XREF: sub_24716+12A4j ; sub_24716+12ACj clr.w d3 loc_259D2: ; CODE XREF: sub_24716+12B2j ; sub_24716+12B8j moveq #5,d6 mulu.w d6,d3 lsr.w #1,d3 move.w d3,(word_FFFF93EE).w cmpi.w #$1400,d3 bls.s loc_259E6 move.w #$1400,d3 loc_259E6: ; CODE XREF: sub_24716+12CAj move.w d3,(word_FFFF94BC).w loc_259EA: ; CODE XREF: sub_24716+125Ej ; sub_24716+1272j move.w (word_FFFF94BC).w,d3 cmpi.w #$1000,d3 bhi.s loc_259F8 lsr.w #1,d3 bra.s loc_25A00 ; --------------------------------------------------------------------------- loc_259F8: ; CODE XREF: sub_24716+12DCj add.w d3,d3 add.w d0,d3 subi.w #$2000,d3 loc_25A00: ; CODE XREF: sub_24716+12E0j move.w (AnotherRpmValue).w,d0 moveq #$15,d2 move.l d3,d1 movea.l #TRACTION_KA_PERCENT_THROTTLE_AREA,a0 ; Throttle area limit looked up based onPercent of max available torque and Engine Speed. ; Percent jsr sub_2696E move.w d0,(word_FFFF94B4).w loc_25A18: ; CODE XREF: sub_24716+1152j move.w (ThrottleArea2).w,d3 lsr.w #1,d3 move.w (word_FFFF93FE).w,d1 move.l d1,d0 sub.w d3,d0 move.w d0,(word_FFFF94A4).w clr.b d4 move.b (byte_FFFF9406).w,d3 moveq #2,d2 cmp.b d3,d2 beq.s loc_25A42 cmpi.b #5,d3 beq.s loc_25A42 cmpi.b #6,d3 bne.s loc_25A52 loc_25A42: ; CODE XREF: sub_24716+131Ej ; sub_24716+1324j cmpi.w #$1400,d1 bcc.s loc_25A52 cmp.w (TRACTION_KE_DELTA_THR_AREA_TRQ_MGT_ACTIVE).l,d0 ; Threshold used to compare difference between Transmission Area and Desired Throttle Area to set ETC_Trq_Mgt_Active. ; Percent_S bge.s loc_25A52 addq.b #1,d4 loc_25A52: ; CODE XREF: sub_24716+132Aj ; sub_24716+1330j ... move.b d4,(byte_FFFF93F0).w move.b (byte_FFFF9406).w,d3 moveq #1,d1 cmp.b d3,d1 beq.s loc_25A66 cmpi.b #7,d3 bne.s loc_25A72 loc_25A66: ; CODE XREF: sub_24716+1348j move.w (word_FFFF94B4).w,(word_FFFF93FC).w move.w #$1400,d3 bra.s loc_25A7A ; --------------------------------------------------------------------------- loc_25A72: ; CODE XREF: sub_24716+134Ej clr.w (word_FFFF93FC).w move.w (word_FFFF94B4).w,d3 loc_25A7A: ; CODE XREF: sub_24716+135Aj move.b (byte_FFFF9406).w,d0 moveq #5,d6 cmp.b d0,d6 bne.s loc_25AD6 cmp.b (byte_FFFF94B2).w,d6 bne.s loc_25AD6 move.w (word_FFFF94B4).w,d4 cmp.w (word_FFFF9492).w,d4 bls.s loc_25AB6 move.w (word_FFFF9492).w,d3 add.w (TRACTION_KE_TORQUE_AREA_XMSN_RAMP_UP).l,d3 ; Ramp up rate for torque throttle area when desired transmission torque is greater than the current engine torque. ; Percent cmpi.w #$1400,d3 bls.s loc_25AA8 move.w #$1400,d3 loc_25AA8: ; CODE XREF: sub_24716+138Cj move.w d3,(word_FFFF9494).w cmp.w d3,d4 bls.s loc_25ACC loc_25AB0: ; CODE XREF: sub_24716+13B4j move.w d3,(word_FFFF9492).w bra.s loc_25AD0 ; --------------------------------------------------------------------------- loc_25AB6: ; CODE XREF: sub_24716+137Cj move.w (word_FFFF9492).w,d3 sub.w (TRACTION_KE_TORQUE_AREA_XMSN_RAMP_DOWN).l,d3 ; Ramp down rate for torque throttle area when desired transmission torque is lower than the current engine torque. ; Percent bcc.s loc_25AC4 clr.w d3 loc_25AC4: ; CODE XREF: sub_24716+13AAj move.w d3,(word_FFFF9494).w cmp.w d3,d4 bcs.s loc_25AB0 loc_25ACC: ; CODE XREF: sub_24716+1398j move.w d4,(word_FFFF9492).w loc_25AD0: ; CODE XREF: sub_24716+139Ej move.w (word_FFFF9492).w,d3 bra.s loc_25B00 ; --------------------------------------------------------------------------- loc_25AD6: ; CODE XREF: sub_24716+136Cj ; sub_24716+1372j cmp.b d0,d6 bne.s loc_25AE2 move.w (word_FFFF94B4).w,(word_FFFF9492).w bra.s loc_25B00 ; --------------------------------------------------------------------------- loc_25AE2: ; CODE XREF: sub_24716+13C2j move.w (word_FFFF9492).w,d4 add.w (TRACTION_KE_TORQUE_AREA_XMSN_EXIT_RAMP).l,d4 cmpi.w #$1400,d4 bls.s loc_25AF6 move.w #$1400,d4 loc_25AF6: ; CODE XREF: sub_24716+13DAj move.w d4,(word_FFFF9492).w cmp.w d4,d3 bls.s loc_25B00 move.l d4,d3 loc_25B00: ; CODE XREF: sub_24716+13BEj ; sub_24716+13CAj ... cmp.b d0,d2 bne.s loc_25B2C move.w (word_FFFF94B4).w,d3 move.l d3,d7 sub.w (word_FFFF9496).w,d7 bcc.s loc_25B12 neg.w d7 loc_25B12: ; CODE XREF: sub_24716+13F8j cmp.w (TRACTION_KE_TRACTION_TORQUE_AREA_HYST).l,d7 ; Hysteresis to avoid throttle vibration during traction control. ; Percent bcs.s loc_25B1E move.w d3,(word_FFFF9496).w loc_25B1E: ; CODE XREF: sub_24716+1402j clr.w (word_FFFF93FC).w move.w (word_FFFF9496).w,d3 move.w (word_FFFF9492).w,d4 bra.s loc_25B56 ; --------------------------------------------------------------------------- loc_25B2C: ; CODE XREF: sub_24716+13ECj cmp.b d0,d1 beq.s loc_25B36 moveq #3,d7 cmp.b d0,d7 bne.s loc_25B3E loc_25B36: ; CODE XREF: sub_24716+1418j move.w #$1400,(word_FFFF9496).w bra.s loc_25B5C ; --------------------------------------------------------------------------- loc_25B3E: ; CODE XREF: sub_24716+141Ej move.w (word_FFFF9496).w,d4 add.w (TRACTION_KE_TRACTION_TORQUE_AREA_RAMP).l,d4 ; Ramp out rate for traction area when traction is no longer active or in the case of an input fault. ; Percent cmpi.w #$1400,d4 bls.s loc_25B52 move.w #$1400,d4 loc_25B52: ; CODE XREF: sub_24716+1436j move.w d4,(word_FFFF9496).w loc_25B56: ; CODE XREF: sub_24716+1414j cmp.w d4,d3 bls.s loc_25B5C move.l d4,d3 loc_25B5C: ; CODE XREF: sub_24716+1426j ; sub_24716+1442j move.w d3,(word_FFFF93FE).w bra.w loc_25D7A ; --------------------------------------------------------------------------- loc_25B64: ; CODE XREF: sub_24716+5D4j move.w (word_FFFFADB6).w,d3 clr.b d4 addi.w #$400,d3 movea.l #$15724,a2 tblu.w (a2),d3 andi.l #$FFFF,d3 cmp.l (EngineRunTime).w,d3 bhi.s loc_25BAE tst.b (byte_FFFFABDA).w bne.s loc_25BAE tst.b (byte_FFFFB379).w beq.s loc_25BC4 move.b (byte_FFFF9028).w,d3 moveq #2,d2 cmp.b d3,d2 beq.s loc_25BA6 moveq #3,d6 cmp.b d3,d6 beq.s loc_25BA6 cmpi.b #4,d3 bne.s loc_25BC4 loc_25BA6: ; CODE XREF: sub_24716+1482j ; sub_24716+1488j btst #1,(byte_FFFF9027).w beq.s loc_25BC4 loc_25BAE: ; CODE XREF: sub_24716+146Cj ; sub_24716+1472j moveq #1,d3 clr.b (byte_FFFF93EA).w clr.b (byte_FFFF93EB).w bclr #5,(byte_FFFF947D).w clr.b (byte_FFFF93F2).w bra.s loc_25BC6 ; --------------------------------------------------------------------------- loc_25BC4: ; CODE XREF: sub_24716+1478j ; sub_24716+148Ej ... move.l d4,d3 loc_25BC6: ; CODE XREF: sub_24716+14ACj move.b (byte_FFFFABDA).w,(byte_FFFF93F7).w tst.b d3 bne.s loc_25C14 clr.b (byte_FFFF93EB).w move.b (byte_FFFF93F3).w,d3 move.b d3,(byte_FFFF93F2).w tst.b (byte_FFFF93EA).w bne.s loc_25BF2 tst.b d3 beq.s loc_25BF2 move.w (GlobalClock).w,(word_FFFF9414).w moveq #1,d2 move.b d2,(byte_FFFF93EA).w loc_25BF2: ; CODE XREF: sub_24716+14CAj ; sub_24716+14CEj tst.b (byte_FFFF93EA).w beq.s loc_25C14 moveq #$50,d0 ; 'P' movea.l #unk_FF9414,a0 jsr sub_276D4 tst.b d0 beq.s loc_25C14 tst.b (byte_FFFF93F2).w bne.s loc_25C14 clr.b (byte_FFFF93EA).w loc_25C14: ; CODE XREF: sub_24716+14B8j ; sub_24716+14E0j ... tst.b (byte_FFFF93F2).w beq.w loc_25CD0 move.w (TRACTION_KE_TRACTION_RETARD_MAX_TIME).l,d0 ; Maximum traction spare retard event duration time. ; Seconds movea.l #unk_FF9420,a0 jsr sub_276D4 tst.b d0 beq.s loc_25C50 move.w (word_FFFF9402).w,d1 sub.w (TRACTION_KE_TRACTION_RETARD_RAMP).l,d1 ; Step reduction rate of ramp out of non-zero traction spark retard ; Degrees bvc.s loc_25C42 move.w #$8000,d1 loc_25C42: ; CODE XREF: sub_24716+1526j move.w #$C5,d0 ; '?' jsr sub_5F110 bra.w loc_25D5C ; --------------------------------------------------------------------------- loc_25C50: ; CODE XREF: sub_24716+151Aj tst.b (byte_FFFF947F).w bne.s loc_25C9E move.w (EngineRPM_PID_000C___).w,d1 clr.w d3 move.l #$800,d2 cmp.w d1,d2 bls.s loc_25C6A move.l d3,d1 bra.s loc_25C80 ; --------------------------------------------------------------------------- loc_25C6A: ; CODE XREF: sub_24716+154Ej cmpi.w #$A000,d1 bcc.s loc_25C7C andi.l #$FFFF,d1 sub.l d2,d1 lsr.w #3,d1 bra.s loc_25C80 ; --------------------------------------------------------------------------- loc_25C7C: ; CODE XREF: sub_24716+1558j move.w #$1300,d1 loc_25C80: ; CODE XREF: sub_24716+1552j ; sub_24716+1564j movea.l #TRACTION_KV_SPARK_RETARD_TCS_AGGRESSIVE,a2 ; Adjusts the desired TCS torque to compensate for ambientpressure, first retard cycle only. ; Degrees_Vs_RPM_Table loc_25C86: ; CODE XREF: sub_24716+15B8j tblu.w (a2),d1 add.w (word_FFFF9838).w,d1 bvc.w loc_25D5C bpl.w loc_25D58 loc_25C96: ; CODE XREF: sub_24716+163Ej move.w #$7FFF,d1 bra.w loc_25D5C ; --------------------------------------------------------------------------- loc_25C9E: ; CODE XREF: sub_24716+153Ej move.w (EngineRPM_PID_000C___).w,d1 clr.w d3 move.l #$800,d2 cmp.w d1,d2 bls.s loc_25CB2 move.l d3,d1 bra.s loc_25CC8 ; --------------------------------------------------------------------------- loc_25CB2: ; CODE XREF: sub_24716+1596j cmpi.w #$A000,d1 bcc.s loc_25CC4 andi.l #$FFFF,d1 sub.l d2,d1 lsr.w #3,d1 bra.s loc_25CC8 ; --------------------------------------------------------------------------- loc_25CC4: ; CODE XREF: sub_24716+15A0j move.w #$1300,d1 loc_25CC8: ; CODE XREF: sub_24716+159Aj ; sub_24716+15ACj movea.l #TRACTION_KV_SPARK_RETARD_TCS,a2 ; Adjusts the desired TCS torque to compensate for ambient pressure ; Degrees_Vs_RPM_Table bra.s loc_25C86 ; --------------------------------------------------------------------------- loc_25CD0: ; CODE XREF: sub_24716+1502j tst.b (byte_FFFF947E).w beq.s loc_25CE6 moveq #1,d2 move.b d2,(byte_FFFF947F).w move.w #$C5,d0 ; '?' jsr sub_5F0BE loc_25CE6: ; CODE XREF: sub_24716+15BEj tst.w (word_FFFF9402).w bgt.s loc_25CF6 move.w (GlobalClock).w,(word_FFFF9420).w clr.w d1 bra.s loc_25D5C ; --------------------------------------------------------------------------- loc_25CF6: ; CODE XREF: sub_24716+15D4j move.w (word_FFFF9420).w,var_12(a6) move.w (GlobalClock).w,d1 sub.w var_12(a6),d1 cmp.w (TRACTION_KE_TRACTION_RETARD_MIN_TIME).l,d1 ; Minimum traction spare retard event duration time. ; Seconds bcs.s loc_25D1A move.w (word_FFFF9402).w,d1 sub.w (TRACTION_KE_TRACTION_RETARD_RAMP).l,d1 ; Step reduction rate of ramp out of non-zero traction spark retard ; Degrees bvc.s loc_25D5C bra.s loc_25D58 ; --------------------------------------------------------------------------- loc_25D1A: ; CODE XREF: sub_24716+15F4j move.w (EngineRPM_PID_000C___).w,d1 clr.w d3 move.l #$800,d2 cmp.w d1,d2 bls.s loc_25D2E move.l d3,d1 bra.s loc_25D44 ; --------------------------------------------------------------------------- loc_25D2E: ; CODE XREF: sub_24716+1612j cmpi.w #$A000,d1 bcc.s loc_25D40 andi.l #$FFFF,d1 sub.l d2,d1 lsr.w #3,d1 bra.s loc_25D44 ; --------------------------------------------------------------------------- loc_25D40: ; CODE XREF: sub_24716+161Cj move.w #$1300,d1 loc_25D44: ; CODE XREF: sub_24716+1616j ; sub_24716+1628j movea.l #TRACTION_KV_SPARK_RETARD_TCS,a2 ; Adjusts the desired TCS torque to compensate for ambient pressure ; Degrees_Vs_RPM_Table tblu.w (a2),d1 add.w (word_FFFF9838).w,d1 bvc.s loc_25D5C bmi.w loc_25C96 loc_25D58: ; CODE XREF: sub_24716+157Cj ; sub_24716+1602j move.w #$8000,d1 loc_25D5C: ; CODE XREF: sub_24716+1536j ; sub_24716+1578j ... tst.w d1 bge.s loc_25D66 clr.w (word_FFFF9402).w bra.s loc_25D6A ; --------------------------------------------------------------------------- loc_25D66: ; CODE XREF: sub_24716+1648j move.w d1,(word_FFFF9402).w loc_25D6A: ; CODE XREF: sub_24716+164Ej move.b (byte_FFFF93F2).w,(byte_FFFF947E).w tst.b (byte_FFFF93EA).w bne.s loc_25D7A clr.b (byte_FFFF947F).w loc_25D7A: ; CODE XREF: sub_24716+144Aj ; sub_24716+165Ej move.b (byte_FFFF93EA).w,d3 and.b (TRACTION_KE_TCS_PREVENT_DOWNSHIFT_OPTION).l,d3 ; This is an option selection to prevent downshiftsduring traction control ; Boolean beq.s loc_25DE8 move.b (byte_FFFFA3B8).w,d3 moveq #1,d1 cmp.b d3,d1 bne.s loc_25DA4 btst #1,(byte_FFFFA8FE).w beq.s loc_25DA4 tst.b (byte_FFFF93E7).w bne.s loc_25DA4 move.b d1,(byte_FFFF93E7).w bra.s loc_25DEC ; --------------------------------------------------------------------------- loc_25DA4: ; CODE XREF: sub_24716+1678j ; sub_24716+1680j ... moveq #2,d2 cmp.b d3,d2 bne.s loc_25DC4 btst #1,(byte_FFFFA8FE).w beq.s loc_25DC4 move.b (byte_FFFF93E7).w,d4 cmp.b d4,d1 beq.s loc_25DBE tst.b d4 bne.s loc_25DC4 loc_25DBE: ; CODE XREF: sub_24716+16A2j move.b d2,(byte_FFFF93E7).w bra.s loc_25DEC ; --------------------------------------------------------------------------- loc_25DC4: ; CODE XREF: sub_24716+1692j ; sub_24716+169Aj ... moveq #3,d6 cmp.b d3,d6 bne.s loc_25DEC btst #1,(byte_FFFFA8FE).w beq.s loc_25DEC move.b (byte_FFFF93E7).w,d3 cmp.b d3,d2 beq.s loc_25DE2 cmp.b d3,d1 beq.s loc_25DE2 tst.b d3 bne.s loc_25DEC loc_25DE2: ; CODE XREF: sub_24716+16C2j ; sub_24716+16C6j move.b d6,(byte_FFFF93E7).w bra.s loc_25DEC ; --------------------------------------------------------------------------- loc_25DE8: ; CODE XREF: sub_24716+166Ej clr.b (byte_FFFF93E7).w loc_25DEC: ; CODE XREF: sub_24716+168Cj ; sub_24716+16ACj ... move.b (byte_FFFF93EA).w,d4 beq.s loc_25DFE tst.b (byte_FFFF9486).w bne.s loc_25DFE move.b (byte_FFFF93E7).w,(byte_FFFF948C).w loc_25DFE: ; CODE XREF: sub_24716+16DAj ; sub_24716+16E0j move.w (word_FFFF9410).w,d3 addq.w #2,d3 bcc.s loc_25E0A move.w #$FFFF,d3 loc_25E0A: ; CODE XREF: sub_24716+16EEj move.w d3,(word_FFFF9410).w tst.b d4 beq.w loc_25F3E move.b (byte_FFFFA3AF).w,d4 cmpi.b #2,d4 beq.s loc_25E26 moveq #3,d2 cmp.b d4,d2 bne.w loc_25F3E loc_25E26: ; CODE XREF: sub_24716+1706j cmp.w (TRACTION_KE_TCS_UPSHIFT_DELAY).l,d3 ; Minimum amount of time between traction forced upshifts. ; Seconds bls.w loc_25F42 move.b (byte_FFFFA3B8).w,d3 bne.s loc_25E8E move.w (EngineRPM_PID_000C___).w,d3 cmp.w (TRACTION_KE_1_2_RPM_LO_MU).l,d3 bls.s loc_25E5A move.w (word_FFFF90EA).w,d4 cmp.w (TRACTION_KE_1_2_WHEEL_SPD_LO_MU).l,d4 bls.s loc_25E5A move.w (word_FFFF9424).w,d4 cmp.w (TRACTION_KE_DES_TRQ_LO_MU_1ST).l,d4 ; Desired torque value below which the low friction surfacecalibrations will be used for traction control 1-2 shift. ; Ft_Lb bcs.s loc_25E80 loc_25E5A: ; CODE XREF: sub_24716+172Aj ; sub_24716+1736j cmp.w (TRACTION_KE_1_2_RPM_HI_MU).l,d3 bls.w loc_25F42 move.w (word_FFFF90EA).w,d3 cmp.w (TRACTION_KE_1_2_WHEEL_SPD_HI_MU).l,d3 bls.w loc_25F42 move.w (word_FFFF9424).w,d3 cmp.w (TRACTION_KE_1_2_DES_TRQ_MAX).l,d3 ; Desired torque value above which a 1-2 traction shift will beprevented. ; Ft_Lb bcc.w loc_25F42 loc_25E80: ; CODE XREF: sub_24716+1742j move.b #1,(byte_FFFF93E8).w loc_25E86: ; CODE XREF: sub_24716+17CAj ; sub_24716+1824j clr.w (word_FFFF9410).w bra.w loc_25F42 ; --------------------------------------------------------------------------- loc_25E8E: ; CODE XREF: sub_24716+171Ej cmpi.b #1,d3 bne.s loc_25EE2 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (TRACTION_KE_2_3_RPM_LO_MU).l,d3 bls.s loc_25EB8 move.w (word_FFFF90EA).w,d4 cmp.w (TRACTION_KE_2_3_WHEEL_SPD_LO_MU).l,d4 bls.s loc_25EB8 move.w (word_FFFF9424).w,d4 cmp.w (TRACTION_KE_DES_TRQ_LO_MU_2ND).l,d4 ; Desired torque value below which the low friction surfacecalibrations will be used for traction control 2-3 shift. ; Ft_Lb bcs.s loc_25EDA loc_25EB8: ; CODE XREF: sub_24716+1788j ; sub_24716+1794j cmp.w (TRACTION_KE_2_3_RPM_HI_MU).l,d3 bls.w loc_25F42 move.w (word_FFFF90EA).w,d3 cmp.w (TRACTION_KE_2_3_WHEEL_SPD_HI_MU).l,d3 bls.s loc_25F42 move.w (word_FFFF9424).w,d3 cmp.w (TRACTION_KE_2_3_DES_TRQ_MAX).l,d3 ; Desired torque value above which a 2-3 traction shift will beprevented. ; Ft_Lb bcc.s loc_25F42 loc_25EDA: ; CODE XREF: sub_24716+17A0j moveq #2,d2 move.b d2,(byte_FFFF93E8).w bra.s loc_25E86 ; --------------------------------------------------------------------------- loc_25EE2: ; CODE XREF: sub_24716+177Cj moveq #2,d2 cmp.b d3,d2 bne.s loc_25F42 moveq #3,d6 cmp.b (byte_FFFFA3AF).w,d6 bne.s loc_25F42 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (TRACTION_KE_3_4_RPM_LO_MU).l,d3 bls.s loc_25F14 move.w (word_FFFF90EA).w,d4 cmp.w (TRACTION_KE_3_4_WHEEL_SPD_LO_MU).l,d4 bls.s loc_25F14 move.w (word_FFFF9424).w,d4 cmp.w (TRACTION_KE_DES_TRQ_LO_MU_3RD).l,d4 ; Desired torque value below which the low friction surfacecalibrations will be used for traction control 3-4 shift. ; Ft_Lb bcs.s loc_25F34 loc_25F14: ; CODE XREF: sub_24716+17E4j ; sub_24716+17F0j cmp.w (TRACTION_KE_3_4_RPM_HI_MU).l,d3 bls.s loc_25F42 move.w (word_FFFF90EA).w,d3 cmp.w (TRACTION_KE_3_4_WHEEL_SPD_HI_MU).l,d3 bls.s loc_25F42 move.w (word_FFFF9424).w,d3 cmp.w (TRACTION_KE_3_4_DES_TRQ_MAX).l,d3 ; Desired torque value above which a 3-4 traction shift will beprevented. ; Ft_Lb bcc.s loc_25F42 loc_25F34: ; CODE XREF: sub_24716+17FCj moveq #3,d6 move.b d6,(byte_FFFF93E8).w bra.w loc_25E86 ; --------------------------------------------------------------------------- loc_25F3E: ; CODE XREF: sub_24716+16FAj ; sub_24716+170Cj clr.b (byte_FFFF93E8).w loc_25F42: ; CODE XREF: sub_24716+1716j ; sub_24716+174Aj ... move.w (word_FFFF9482).w,d3 addq.w #2,d3 bcc.s loc_25F4E move.w #$FFFF,d3 loc_25F4E: ; CODE XREF: sub_24716+1832j move.w d3,(word_FFFF9482).w move.w (word_FFFF9480).w,d4 addq.w #2,d4 bcc.s loc_25F5E move.w #$FFFF,d4 loc_25F5E: ; CODE XREF: sub_24716+1842j move.w d4,(word_FFFF9480).w tst.b (byte_FFFF93EA).w bne.s loc_25FE0 move.w (word_FFFF900A).w,d5 cmp.w (TRACTION_KE_TCS_DOWNSHIFT_PEDAL).l,d5 ; Downshift will not be delayed when exiting tractionif pedal is below this value. ; Percent bcs.s loc_25FE0 move.w (word_FFFF9488).w,d5 cmp.w (TRACTION_KE_TCS_DOWNSHIFT_PEDAL_DELTA).l,d5 ; Downshift will not be delayed when exiting tractionif pedal increases by this amount over 100mS. ; Percent bhi.s loc_25FE0 tst.w (TRACTION_KE_TCS_DOWNSHIFT_DELAY).l ; Amount of time to delay each downshift (except forthe first one) after exiting traction. ; Seconds beq.s loc_25FE0 tst.b (byte_FFFF9486).w beq.s loc_25FB6 move.b (byte_FFFF93E6).w,d3 cmpi.b #3,d3 bne.s loc_25FA0 move.b #2,(byte_FFFF940A).w bra.s loc_25FB0 ; --------------------------------------------------------------------------- loc_25FA0: ; CODE XREF: sub_24716+1880j cmpi.b #2,d3 beq.s loc_25FC8 cmpi.b #1,d3 bne.s loc_25FB0 loc_25FAC: ; CODE XREF: sub_24716+18C8j clr.b (byte_FFFF940A).w loc_25FB0: ; CODE XREF: sub_24716+1888j ; sub_24716+1894j ... clr.w (word_FFFF9482).w bra.s loc_25FE4 ; --------------------------------------------------------------------------- loc_25FB6: ; CODE XREF: sub_24716+1876j move.b (byte_FFFF93E6).w,d0 cmpi.b #2,d0 bne.s loc_25FD0 cmp.w (TRACTION_KE_TCS_DOWNSHIFT_DELAY).l,d3 ; Amount of time to delay each downshift (except forthe first one) after exiting traction. ; Seconds bls.s loc_25FD0 loc_25FC8: ; CODE XREF: sub_24716+188Ej moveq #1,d1 move.b d1,(byte_FFFF940A).w bra.s loc_25FB0 ; --------------------------------------------------------------------------- loc_25FD0: ; CODE XREF: sub_24716+18A8j ; sub_24716+18B0j moveq #1,d1 cmp.b d0,d1 bne.s loc_25FE4 cmp.w (TRACTION_KE_TCS_DOWNSHIFT_DELAY).l,d3 ; Amount of time to delay each downshift (except forthe first one) after exiting traction. ; Seconds bls.s loc_25FE4 bra.s loc_25FAC ; --------------------------------------------------------------------------- loc_25FE0: ; CODE XREF: sub_24716+1850j ; sub_24716+185Cj ... clr.b (byte_FFFF940A).w loc_25FE4: ; CODE XREF: sub_24716+189Ej ; sub_24716+18BEj ... move.b (byte_FFFFAB7E).w,d3 move.b (byte_FFFF940A).w,d5 cmp.b d3,d5 bls.s loc_25FF2 move.l d5,d3 loc_25FF2: ; CODE XREF: sub_24716+18D8j move.b (byte_FFFF93E8).w,d5 cmp.b d3,d5 bls.s loc_25FFC move.l d5,d3 loc_25FFC: ; CODE XREF: sub_24716+18E2j move.b (byte_FFFF93E7).w,d5 cmp.b d3,d5 bls.s loc_26006 move.l d5,d3 loc_26006: ; CODE XREF: sub_24716+18ECj move.b d3,(byte_FFFF93E6).w move.b (byte_FFFF93EA).w,d0 move.b d0,(byte_FFFF9486).w cmpi.w #$10,d4 bcs.s loc_26032 move.w (word_FFFF900A).w,d3 sub.w (word_FFFF9484).w,d3 bcc.s loc_26024 clr.w d3 loc_26024: ; CODE XREF: sub_24716+190Aj move.w d3,(word_FFFF9488).w move.w (word_FFFF900A).w,(word_FFFF9484).w clr.w (word_FFFF9480).w loc_26032: ; CODE XREF: sub_24716+1900j and.b (TRACTION_KE_TCS_FREEZE_GEAR_OPTION).l,d0 beq.s loc_26042 move.b #1,(byte_FFFF93E9).w bra.s loc_26046 ; --------------------------------------------------------------------------- loc_26042: ; CODE XREF: sub_24716+1922j clr.b (byte_FFFF93E9).w loc_26046: ; CODE XREF: sub_24716+192Aj move.b (byte_FFFF93E6).w,d3 cmp.b (byte_FFFF948C).w,d3 beq.s loc_2605A tst.b d3 beq.s loc_2605A tst.b (byte_FFFF93EA).w bne.s loc_26060 loc_2605A: ; CODE XREF: sub_24716+1938j ; sub_24716+193Cj tst.b (byte_FFFF93F9).w beq.s loc_26094 loc_26060: ; CODE XREF: sub_24716+1942j move.w (word_FFFF9412).w,d3 addq.w #2,d3 bcc.s loc_2606C move.w #$FFFF,d3 loc_2606C: ; CODE XREF: sub_24716+1950j move.w d3,(word_FFFF9412).w btst #0,(byte_FFFFA8FE).w beq.s loc_2607E tst.b (byte_FFFF948A).w beq.s loc_26086 loc_2607E: ; CODE XREF: sub_24716+1960j cmp.w (TRACTION_KE_TCS_MAX_SHIFT_TIME).l,d3 ; Maximum duration of a traction control shift. ; Seconds bcs.s loc_2608C loc_26086: ; CODE XREF: sub_24716+1966j clr.b (byte_FFFF93F9).w bra.s loc_26098 ; --------------------------------------------------------------------------- loc_2608C: ; CODE XREF: sub_24716+196Ej move.b #1,(byte_FFFF93F9).w bra.s loc_26098 ; --------------------------------------------------------------------------- loc_26094: ; CODE XREF: sub_24716+1948j clr.w (word_FFFF9412).w loc_26098: ; CODE XREF: sub_24716+1974j ; sub_24716+197Cj move.b (byte_FFFF93E6).w,(byte_FFFF948C).w btst #0,(byte_FFFFA8FE).w sne d0 neg.b d0 move.b d0,(byte_FFFF948A).w move.b (byte_FFFFA59F).w,d0 bne.s loc_260B8 tst.b (byte_FFFFB2D0).w beq.s loc_260BE loc_260B8: ; CODE XREF: sub_24716+199Aj move.w (word_FFFFABD8).w,d3 bra.s loc_260DC ; --------------------------------------------------------------------------- loc_260BE: ; CODE XREF: sub_24716+19A0j move.w (word_FFFF9402).w,d3 move.w (word_FFFF944C).w,d4 cmp.w d3,d4 blt.s loc_260CC move.l d4,d3 loc_260CC: ; CODE XREF: sub_24716+19B2j move.w (word_FFFF9E10).w,d4 cmp.w d3,d4 ble.s loc_260D6 move.l d4,d3 loc_260D6: ; CODE XREF: sub_24716+19BCj tst.w d3 bge.s loc_260DC clr.w d3 loc_260DC: ; CODE XREF: sub_24716+19A6j ; sub_24716+19C2j move.w (word_FFFF9838).w,d4 sub.w d3,d4 bvc.s loc_260E8 bmi.s loc_260EC bra.s loc_260F2 ; --------------------------------------------------------------------------- loc_260E8: ; CODE XREF: sub_24716+19CCj move.w d4,d3 bra.s loc_260F6 ; --------------------------------------------------------------------------- loc_260EC: ; CODE XREF: sub_24716+19CEj move.w #$7FFF,d3 bra.s loc_260F6 ; --------------------------------------------------------------------------- loc_260F2: ; CODE XREF: sub_24716+19D0j move.w #$8000,d3 loc_260F6: ; CODE XREF: sub_24716+19D4j ; sub_24716+19DAj tst.w d3 bgt.s loc_26128 tst.b d0 bne.s loc_2612E tst.w (word_FFFFB30C).w bne.s loc_2612E tst.w (word_FFFF9478).w bne.s loc_2612E tst.w (word_FFFF9E14).w bne.s loc_2612E tst.w (word_FFFF9402).w bne.s loc_2612E tst.b (byte_FFFFB2D0).w bne.s loc_2612E tst.b (byte_FFFF948B).w bne.s loc_2612E tst.b (byte_FFFF94A6).w bne.s loc_2612E loc_26128: ; CODE XREF: sub_24716+19E2j clr.w (word_FFFF9400).w bra.s loc_26132 ; --------------------------------------------------------------------------- loc_2612E: ; CODE XREF: sub_24716+19E6j ; sub_24716+19ECj ... move.w d3,(word_FFFF9400).w loc_26132: ; CODE XREF: sub_24716+1A16j move.b (byte_FFFF93EA).w,d3 or.b (byte_FFFF93EB).w,d3 beq.s loc_26164 move.w (word_FFFF941C).w,d3 addq.w #2,d3 bcc.s loc_26148 move.w #$FFFF,d3 loc_26148: ; CODE XREF: sub_24716+1A2Cj move.w d3,(word_FFFF941C).w clr.w (word_FFFF941E).w cmp.w (TRACTION_KE_TCC_CRUISE_DISENGAGE_TIME).l,d3 ; Minimum length of a TCS or Drag event that will disengage TCC ANDcruise control. ; Seconds bls.s loc_26188 moveq #1,d4 move.b d4,(byte_FFFF941A).w move.b d4,(byte_FFFF93F5).w bra.s loc_26188 ; --------------------------------------------------------------------------- loc_26164: ; CODE XREF: sub_24716+1A24j move.w (word_FFFF941E).w,d3 addq.w #2,d3 bcc.s loc_26170 move.w #$FFFF,d3 loc_26170: ; CODE XREF: sub_24716+1A54j move.w d3,(word_FFFF941E).w clr.w (word_FFFF941C).w clr.b (byte_FFFF941A).w cmp.w (TRACTION_KE_TCC_REENABLE_TIME).l,d3 ; Length of time after TCS or Drag event is completed that TCC willreturn to normal control. ; Seconds bls.s loc_26188 clr.b (byte_FFFF93F5).w loc_26188: ; CODE XREF: sub_24716+1A40j ; sub_24716+1A4Cj ... tst.b (byte_FFFF90D5).w beq.s loc_261A0 move.w (word_FFFF9418).w,d3 addq.w #2,d3 bcc.s loc_2619A move.w #$FFFF,d3 loc_2619A: ; CODE XREF: sub_24716+1A7Ej move.w d3,(word_FFFF9418).w bra.s loc_261A4 ; --------------------------------------------------------------------------- loc_261A0: ; CODE XREF: sub_24716+1A76j clr.w (word_FFFF9418).w loc_261A4: ; CODE XREF: sub_24716+1A88j tst.b (byte_FFFF941A).w bne.s loc_261B6 move.w (word_FFFF9418).w,d3 cmp.w (TRACTION_KE_BRAKE_TRAC_CC_DISENGAGE_TIME).l,d3 ; Minimum length of a Brake Traction (Active Handling) event thatwill disengage Cruise control. ; Seconds bls.s loc_261BE loc_261B6: ; CODE XREF: sub_24716+1A92j move.b #1,(byte_FFFF93F4).w bra.s loc_261C2 ; --------------------------------------------------------------------------- loc_261BE: ; CODE XREF: sub_24716+1A9Ej clr.b (byte_FFFF93F4).w loc_261C2: ; CODE XREF: sub_24716+Ej ; sub_24716+1AA6j movem.l (sp)+,d0-d2/d6-a1/a4-a5 unlk a6 rts ; End of function sub_24716 ; =============== S U B R O U T I N E ======================================= sub_261CA: ; CODE XREF: DoLoopD+10Cp movem.l d0-d2/d6/a0,-(sp) move.w (word_FFFF9E2E).w,d2 tst.b (TRACTION_KE_LCT_XMSN_PWM_ENABLE).l ; Option selection to use the TCS PWM input to control the LCTAllison transmission. ; Boolean beq.s loc_261E0 move.w (word_FFFF947A).w,d1 bra.s loc_2620A ; --------------------------------------------------------------------------- loc_261E0: ; CODE XREF: sub_261CA+Ej move.w #$800,d1 move.w (word_FFFFB30C).w,d3 moveq #5,d0 mulu.w d0,d3 lsr.l #5,d3 add.w d3,d3 andi.l #$FFFF,d3 divu.w d0,d3 sub.w d3,d1 muls.w (word_FFFF9E22).w,d1 bpl.s loc_26206 addi.l #$7FF,d1 loc_26206: ; CODE XREF: sub_261CA+34j asr.l #8,d1 asr.l #3,d1 loc_2620A: ; CODE XREF: sub_261CA+14j move.w (word_FFFF949C).w,d3 cmp.w (TRACTION_KE_DELTA_MANIFOLD_PRESSURE_100MS).l,d3 ; Delta Manifold Pressure threshold over a 100ms time interval to enable transient torque overshoot spark control. ; kPa blt.s loc_26226 move.w (GlobalClock).w,(word_FFFF94A0).w loc_2621C: ; CODE XREF: sub_261CA+70j move.w (TRACTION_KE_ETC_MGT_DELTA_TORQUE_INITIAL).l,(word_FFFF94A2).w bra.s loc_26258 ; --------------------------------------------------------------------------- loc_26226: ; CODE XREF: sub_261CA+4Aj move.w (TRACTION_KE_ETC_MGT_SPARK_RETARD_DURATION).l,d0 ; Time period before ramp out of transient torque overshoot spark control begins. ; Seconds movea.l #unk_FF94A0,a0 jsr sub_276D4 tst.b d0 beq.s loc_2621C move.w (word_FFFF94A2).w,d3 add.w (TRACTION_KE_ETC_MGT_DELTA_TRQ_INCREMENT).l,d3 ; Rate at which transient torque overshoot spark control is ramped out. ; Foot_Pounds_S bvc.s loc_26254 bpl.s loc_26250 move.w #$7FFF,d3 bra.s loc_26254 ; --------------------------------------------------------------------------- loc_26250: ; CODE XREF: sub_261CA+7Ej move.w #$8000,d3 loc_26254: ; CODE XREF: sub_261CA+7Cj ; sub_261CA+84j move.w d3,(word_FFFF94A2).w loc_26258: ; CODE XREF: sub_261CA+5Aj move.w (TRACTION_KE_ETC_MGT_DELTA_TORQUE_FINAL).l,d3 ; Maximum allowable delta torque value allowed, signifying the completion of the spark retard authority ramp out. ; Foot_Pounds_S cmp.w (word_FFFF94A2).w,d3 bge.s loc_26268 move.w d3,(word_FFFF94A2).w loc_26268: ; CODE XREF: sub_261CA+98j tst.w d2 bne.s loc_26274 clr.w (word_FFFF944C).w bra.w loc_26376 ; --------------------------------------------------------------------------- loc_26274: ; CODE XREF: sub_261CA+A0j move.w (word_FFFF9E30).w,d0 ext.l d0 ext.l d1 add.l d0,d1 tst.l d1 blt.s loc_26290 cmpi.l #$FFFF,d1 bls.s loc_26292 move.w #$FFFF,d1 bra.s loc_26292 ; --------------------------------------------------------------------------- loc_26290: ; CODE XREF: sub_261CA+B6j clr.w d1 loc_26292: ; CODE XREF: sub_261CA+BEj ; sub_261CA+C4j move.w (word_FFFF9E30).w,d3 ext.l d3 clr.l d0 move.w (word_FFFF9426).w,d0 add.l d3,d0 move.w (word_FFFF9E32).w,d3 ext.l d3 add.l d3,d0 tst.l d0 blt.s loc_262BA cmpi.l #$FFFF,d0 bls.s loc_262BC move.w #$FFFF,d0 bra.s loc_262BC ; --------------------------------------------------------------------------- loc_262BA: ; CODE XREF: sub_261CA+E0j clr.w d0 loc_262BC: ; CODE XREF: sub_261CA+E8j ; sub_261CA+EEj moveq #5,d6 cmp.b (byte_FFFF9406).w,d6 bne.s loc_262F0 move.w (word_FFFF9E30).w,d5 ext.l d5 move.w (word_FFFF948E).w,d3 ext.l d3 add.l d5,d3 move.w (word_FFFF94A2).w,d5 ext.l d5 add.l d5,d3 tst.l d3 blt.s loc_262EC cmpi.l #$FFFF,d3 bls.s loc_262F2 move.w #$FFFF,d3 bra.s loc_262F2 ; --------------------------------------------------------------------------- loc_262EC: ; CODE XREF: sub_261CA+112j clr.w d3 bra.s loc_262F2 ; --------------------------------------------------------------------------- loc_262F0: ; CODE XREF: sub_261CA+F8j move.l d2,d3 loc_262F2: ; CODE XREF: sub_261CA+11Aj ; sub_261CA+120j ... cmp.w d0,d1 bcc.s loc_26306 cmp.w d3,d1 bcc.s loc_26306 move.l d1,d3 clr.b (byte_FFFF948B).w loc_26300: ; CODE XREF: sub_261CA+14Cj clr.b (byte_FFFF94A6).w bra.s loc_26332 ; --------------------------------------------------------------------------- loc_26306: ; CODE XREF: sub_261CA+12Aj ; sub_261CA+12Ej cmp.w d1,d0 bcc.s loc_26318 cmp.w d3,d0 bcc.s loc_26318 move.l d0,d3 move.b #1,(byte_FFFF948B).w bra.s loc_26300 ; --------------------------------------------------------------------------- loc_26318: ; CODE XREF: sub_261CA+13Ej ; sub_261CA+142j cmp.w d2,d3 bcc.s loc_26328 clr.b (byte_FFFF948B).w move.b #1,(byte_FFFF94A6).w bra.s loc_26332 ; --------------------------------------------------------------------------- loc_26328: ; CODE XREF: sub_261CA+150j move.l d2,d3 clr.b (byte_FFFF94A6).w clr.b (byte_FFFF948B).w loc_26332: ; CODE XREF: sub_261CA+13Aj ; sub_261CA+15Cj move.w #$800,d0 andi.l #$FFFF,d3 asl.l #8,d3 asl.l #3,d3 divu.w d2,d3 bvs.s loc_2634A cmpi.w #$800,d3 bls.s loc_2634C loc_2634A: ; CODE XREF: sub_261CA+178j move.l d0,d3 loc_2634C: ; CODE XREF: sub_261CA+17Ej sub.w d3,d0 mulu.w d6,d0 lsr.w #1,d0 move.w d0,(word_FFFF94A8).w asl.w #3,d0 andi.l #$FFFF,d0 divu.w d6,d0 move.w (word_FFFFAEF8).w,d1 moveq #$21,d2 ; '!' movea.l #TRACTION_KA_SPARK_RETARD_FOR_TORQUE_LOSS,a0 ; MBT spark retard as a function of a given torque loss value ; Degrees jsr sub_2696E move.w d0,(word_FFFF944C).w loc_26376: ; CODE XREF: sub_261CA+A6j movem.l (sp)+,d0-d2/d6/a0 rts ; End of function sub_261CA ; =============== S U B R O U T I N E ======================================= sub_2637C: ; CODE XREF: DoLoopF+322p move.w (word_FFFFB292).w,d4 move.l d4,d3 sub.w (word_FFFF949E).w,d3 cmpi.w #$EB00,d3 bge.s loc_26390 move.w #$EB00,d3 loc_26390: ; CODE XREF: sub_2637C+Ej move.w d3,(word_FFFF949C).w move.w d4,(word_FFFF949E).w rts ; End of function sub_2637C ; =============== S U B R O U T I N E ======================================= sub_2639A: ; CODE XREF: OS1:00029298p andi.w #$FF,d0 movea.l off_89F2C(d0.w*4),a2 jmp (a2) ; End of function sub_2639A ; --------------------------------------------------------------------------- loc_263A8: ; DATA XREF: OS4:00089F30o clr.b (byte_FFFF940A).w clr.b (byte_FFFF93E6).w clr.b (byte_FFFF93E7).w clr.b (byte_FFFF93E8).w move.w (ENG_TORQUE_KE_ENGINE_MAX_TORQUE).l,(word_FFFF947A).w ; Maximum net torque output from the engine. ; ft-lb clr.w (word_FFFF9478).w clr.b (byte_FFFF93E9).w clr.b (byte_FFFF93F9).w clr.b (byte_FFFF93F4).w clr.b (byte_FFFF93F5).w bra.w locret_2653A ; --------------------------------------------------------------------------- loc_263D8: ; DATA XREF: OS4:off_89F2Co ; OS4:00089F34o ... clr.b (byte_FFFF940A).w move.w (ENG_TORQUE_KE_ENGINE_MAX_TORQUE).l,d3 ; Maximum net torque output from the engine. ; ft-lb move.w d3,(word_FFFF9424).w move.l d3,d4 muls.w #$FF33,d4 bpl.s loc_263F4 addi.l #$3FF,d4 loc_263F4: ; CODE XREF: OS1:000263ECj asr.l #8,d4 asr.l #2,d4 move.w d4,(word_FFFF9422).w move.w d3,(word_FFFF93FA).w clr.w (word_FFFF944E).w move.w d3,(word_FFFF947A).w clr.w (word_FFFF9478).w clr.b (byte_FFFF948D).w clr.b (byte_FFFF93F3).w clr.b (byte_FFFF93EA).w clr.b (byte_FFFF93EB).w bclr #5,(byte_FFFF947D).w bclr #1,(byte_FFFF947D).w clr.b (byte_FFFF948B).w move.w #$FFFF,(word_FFFF9426).w move.b #1,(byte_FFFF9416).w clr.w (word_FFFF942E).w clr.w (word_FFFF9430).w clr.w (word_FFFF9432).w clr.w (word_FFFF9400).w movea.w #$1400,a2 move.w a2,(word_FFFF9496).w move.w a2,(word_FFFF93FE).w move.w a2,(word_FFFF9492).w movea.w #$7FFF,a3 move.w a3,(word_FFFF948E).w clr.w (word_FFFF93FC).w clr.b (byte_FFFF93F2).w clr.b (byte_FFFF947E).w clr.b (byte_FFFF93F7).w clr.b (byte_FFFF93F8).w clr.w (word_FFFF9402).w clr.b (byte_FFFF93E6).w clr.b (byte_FFFF93E7).w clr.b (byte_FFFF93E8).w clr.b (byte_FFFF93E9).w clr.b (byte_FFFF93F9).w clr.b (byte_FFFF93F4).w clr.b (byte_FFFF93F5).w bclr #7,(byte_FFFF947D).w clr.w (word_FFFF949C).w clr.w (word_FFFF949E).w clr.w (word_FFFF944C).w clr.b (byte_FFFF94A6).w clr.w (word_FFFF94A0).w clr.b (byte_FFFF9406).w clr.b (byte_FFFF94B2).w move.w a3,(word_FFFF9404).w move.w a3,(word_FFFF9408).w move.w a2,(word_FFFF94B4).w move.w #$2800,(word_FFFF93EE).w clr.b (byte_FFFF947C).w clr.b (byte_FFFF93F1).w bra.s locret_2653A ; --------------------------------------------------------------------------- loc_264D2: ; DATA XREF: OS4:00089F48o ; OS4:00089F4Co clr.b (byte_FFFF940A).w move.w #$FFFF,(word_FFFF9426).w move.b #1,(byte_FFFF9416).w move.w (ENG_TORQUE_KE_ENGINE_MAX_TORQUE).l,(word_FFFF947A).w ; Maximum net torque output from the engine. ; ft-lb clr.w (word_FFFF9478).w clr.b (byte_FFFF93E6).w clr.b (byte_FFFF93E7).w clr.b (byte_FFFF93E8).w clr.b (byte_FFFF93E9).w clr.b (byte_FFFF93F4).w clr.b (byte_FFFF93F5).w clr.b (byte_FFFF93F9).w bra.s locret_2653A ; --------------------------------------------------------------------------- loc_2650C: ; DATA XREF: OS4:00089F3Co bra.s loc_26522 ; --------------------------------------------------------------------------- loc_2650E: ; DATA XREF: OS4:00089F50o clr.b (byte_FFFF940A).w clr.b (byte_FFFF93E6).w clr.b (byte_FFFF93E7).w clr.b (byte_FFFF93E8).w clr.b (byte_FFFF93E9).w loc_26522: ; CODE XREF: OS1:loc_2650Cj clr.b (byte_FFFF93F4).w clr.b (byte_FFFF93F5).w clr.b (byte_FFFF93F9).w move.w (ENG_TORQUE_KE_ENGINE_MAX_TORQUE).l,(word_FFFF947A).w ; Maximum net torque output from the engine. ; ft-lb clr.w (word_FFFF9478).w locret_2653A: ; CODE XREF: OS1:000263D4j ; OS1:000264D0j ... rts ; =============== S U B R O U T I N E ======================================= sub_2653C: ; CODE XREF: sub_27128+80p ; sub_27572+Ep ... move.l d0,d3 asr.l #1,d3 clr.l d0 bra.s loc_26546 ; --------------------------------------------------------------------------- loc_26544: ; CODE XREF: sub_2653C:loc_26546j add.w (a0)+,d0 loc_26546: ; CODE XREF: sub_2653C+6j dbf d3,loc_26544 rts ; End of function sub_2653C ; =============== S U B R O U T I N E ======================================= sub_2654C: ; CODE XREF: sub_246E0+16p ; sub_26DFA+94p ... move.l d0,d3 clr.l d0 clr.l d4 asr.l #1,d3 bcs.s loc_2655C asr.l #1,d3 bcc.s loc_26572 bra.s loc_2656A ; --------------------------------------------------------------------------- loc_2655C: ; CODE XREF: sub_2654C+8j asr.l #1,d3 bcc.s loc_2656E bra.s loc_26566 ; --------------------------------------------------------------------------- loc_26562: ; CODE XREF: sub_2654C:loc_26572j move.b (a0)+,d4 add.l d4,d0 loc_26566: ; CODE XREF: sub_2654C+14j move.b (a0)+,d4 add.l d4,d0 loc_2656A: ; CODE XREF: sub_2654C+Ej move.b (a0)+,d4 add.l d4,d0 loc_2656E: ; CODE XREF: sub_2654C+12j move.b (a0)+,d4 add.l d4,d0 loc_26572: ; CODE XREF: sub_2654C+Cj dbf d3,loc_26562 rts ; End of function sub_2654C ; =============== S U B R O U T I N E ======================================= sub_26578: ; CODE XREF: sub_77816+16p ; sub_77860+22p ... move.l a0,d4 move.l a1,d3 and.l d4,d3 lsr.l #1,d3 bcc.s loc_2658A subq.l #1,d0 bcs.s locret_265AC move.b (a0)+,(a1)+ bra.s loc_26592 ; --------------------------------------------------------------------------- loc_2658A: ; CODE XREF: sub_26578+8j move.l a1,d3 eor.l d4,d3 lsr.l #1,d3 bcs.s loc_265A8 loc_26592: ; CODE XREF: sub_26578+10j move.l d0,d3 lsr.l #2,d3 andi.l #3,d0 bra.s loc_265A0 ; --------------------------------------------------------------------------- loc_2659E: ; CODE XREF: sub_26578:loc_265A0j move.l (a0)+,(a1)+ loc_265A0: ; CODE XREF: sub_26578+24j dbf d3,loc_2659E bra.s loc_265A8 ; --------------------------------------------------------------------------- loc_265A6: ; CODE XREF: sub_26578:loc_265A8j move.b (a0)+,(a1)+ loc_265A8: ; CODE XREF: sub_22322+2Ep ; sub_223EA+3Cp ... dbf d0,loc_265A6 locret_265AC: ; CODE XREF: sub_26578+Cj rts ; End of function sub_26578 ; =============== S U B R O U T I N E ======================================= sub_265AE: ; CODE XREF: sub_2DACE+8Cp ; sub_2DACE+1A2p ... tblu.w d2:d1,d0 rts ; End of function sub_265AE ; =============== S U B R O U T I N E ======================================= sub_265B4: ; CODE XREF: sub_344B6+60p tbls.w d2:d1,d0 rts ; End of function sub_265B4 ; =============== S U B R O U T I N E ======================================= sub_265BA: ; CODE XREF: sub_7F36C+B2p ; sub_7F36C+D8p ... andi.l #$FFFF,d0 swap d1 clr.w d1 swap d2 move.w (a0),d2 sub.l d2,d1 bcs.s loc_265F2 mulu.l d1,d3:d0 move.w d3,d0 swap d0 bra.s loc_26600 ; --------------------------------------------------------------------------- loc_265D6: ; CODE XREF: sub_64216+1Cp ; sub_64216+4Ep ... andi.l #$FFFF,d0 swap d1 clr.w d1 swap d2 move.w (a0),d2 sub.l d2,d1 blt.s loc_265F2 mulu.l d1,d3:d0 move.w d3,d0 swap d0 bra.s loc_26600 ; --------------------------------------------------------------------------- loc_265F2: ; CODE XREF: sub_265BA+10j ; sub_265BA+2Cj move.l d0,d4 mulu.l d1,d3:d0 move.w d3,d0 swap d0 swap d4 sub.l d4,d0 loc_26600: ; CODE XREF: sub_265BA+1Aj ; sub_265BA+36j add.l d2,d0 move.w d0,(a0) swap d0 rts ; End of function sub_265BA ; =============== S U B R O U T I N E ======================================= sub_26608: ; CODE XREF: sub_20CB2+12p ; sub_243A8+24p ... sub.w d2,d1 bcs.s loc_26618 mulu.w d1,d0 bra.s loc_26622 ; --------------------------------------------------------------------------- loc_26610: ; CODE XREF: sub_36066+15Cp ; sub_37912+40p ... sub.w d2,d1 blt.s loc_26618 mulu.w d1,d0 bra.s loc_26622 ; --------------------------------------------------------------------------- loc_26618: ; CODE XREF: sub_26608+2j sub_26608+Aj move.w d0,d3 mulu.w d1,d0 swap d3 clr.w d3 sub.l d3,d0 loc_26622: ; CODE XREF: sub_26608+6j sub_26608+Ej addi.l #$8000,d0 swap d0 add.w d2,d0 rts ; End of function sub_26608 ; --------------------------------------------------------------------------- asl.w #8,d1 asl.w #8,d2 move.b (a0),d2 sub.w d2,d1 bcs.s loc_2664A mulu.w d1,d0 bra.s loc_26654 ; =============== S U B R O U T I N E ======================================= sub_2663C: ; CODE XREF: sub_80B94+28p asl.w #8,d1 asl.w #8,d2 move.b (a0),d2 sub.w d2,d1 blt.s loc_2664A mulu.w d1,d0 bra.s loc_26654 ; --------------------------------------------------------------------------- loc_2664A: ; CODE XREF: OS1:00026636j ; sub_2663C+8j move.w d0,d3 mulu.w d1,d0 swap d3 clr.w d3 sub.l d3,d0 loc_26654: ; CODE XREF: OS1:0002663Aj ; sub_2663C+Cj addi.l #$8000,d0 swap d0 add.w d2,d0 move.b d0,(a0) asr.w #8,d0 rts ; End of function sub_2663C ; =============== S U B R O U T I N E ======================================= sub_26664: ; CODE XREF: sub_78CDE+Ap movea.l sp,a0 addq.l #4,a0 rts ; End of function sub_26664 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_2666C loc_2666A: ; CODE XREF: sub_2666Cj move.l (a0)+,d3 ; END OF FUNCTION CHUNK FOR sub_2666C ; =============== S U B R O U T I N E ======================================= sub_2666C: ; CODE XREF: sub_871EC+38p ; sub_871EC+66p ; FUNCTION CHUNK AT 0002666A SIZE 00000002 BYTES dbf d0,loc_2666A rts ; End of function sub_2666C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_26672: ; CODE XREF: DoLoopG+254p var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a1,-(sp) tst.b (INSTRUMENTATION_KE_ENABLE_MALF_DISPLAY).l ; Enables the storing of data used to display malf codes. ; BOOLEAN beq.s loc_266CA moveq #1,d6 loc_26684: ; CODE XREF: sub_26672+56j move.l d6,d7 mulu.w #6,d7 lea unk_89AEE(d7.l),a1 movea.l 2(a1),a2 move.w (a2),d0 jsr sub_5F180 move.w d0,var_2(a6) lea var_2(a6),a0 moveq #2,d2 clr.b d1 move.b (a1),d0 jsr sub_5F1BE movea.w var_2(a6),a2 movea.l 2(a1),a3 move.w word_87F70(a2.w*4),(a3) addq.w #1,d6 cmpi.w #9,d6 bls.s loc_26684 loc_266CA: ; CODE XREF: sub_26672+Ej movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_26672 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_266D2: ; CODE XREF: DoLoopF+40Cp var_6 = -6 var_5 = -5 var_4 = -4 link a6,#-6 movem.l a0-a1/a4,-(sp) lea var_6(a6),a4 movea.l a4,a1 movea.l #$408338,a0 jsr sub_27A50 move.b var_6(a6),(byte_FFFFA456).w move.b var_5(a6),(byte_FFFFA457).w move.w var_4(a6),(word_FFFFA458).w movea.l a4,a1 movea.l #$40833E,a0 jsr sub_27A50 move.b var_6(a6),(byte_FFFFA45A).w move.b var_5(a6),(byte_FFFFA45B).w move.w var_4(a6),(word_FFFFA45C).w movea.l a4,a1 movea.l #$408344,a0 jsr sub_27A50 move.b var_6(a6),(byte_FFFFA45E).w move.b var_5(a6),(byte_FFFFA45F).w move.w var_4(a6),(word_FFFFA460).w movea.l a4,a1 movea.l #$40834A,a0 jsr sub_27A50 move.b var_6(a6),(byte_FFFFA462).w move.b var_5(a6),(byte_FFFFA463).w move.w var_4(a6),(word_FFFFA464).w movea.l a4,a1 movea.l #$408350,a0 jsr sub_27A50 move.b var_6(a6),(byte_FFFFA466).w move.b var_5(a6),(byte_FFFFA467).w move.w var_4(a6),(word_FFFFA468).w movea.l a4,a1 movea.l #$408356,a0 jsr sub_27A50 move.b var_6(a6),(byte_FFFFA46A).w move.b var_5(a6),(byte_FFFFA46B).w move.w var_4(a6),(word_FFFFA46C).w movea.l a4,a1 movea.l #$40835C,a0 jsr sub_27A50 move.b var_6(a6),(word_FFFFA46E).w move.b var_5(a6),(word_FFFFA46E+1).w movea.l a4,a1 movea.l #$408362,a0 jsr sub_27A50 move.b var_6(a6),(word_FFFFA480).w move.b var_5(a6),(word_FFFFA480+1).w move.b var_4(a6),(byte_FFFFA482).w movea.l a4,a1 movea.l #$40836E,a0 jsr sub_27A50 move.b var_6(a6),(word_FFFFA48C).w move.b var_5(a6),(word_FFFFA48C+1).w move.b var_4(a6),(byte_FFFFA48E).w movea.l a4,a1 movea.l #$408368,a0 jsr sub_27A50 move.b var_6(a6),(byte_FFFFA488).w move.b var_5(a6),(byte_FFFFA489).w move.w var_4(a6),(word_FFFFA48A).w movea.l a4,a1 movea.l #$408374,a0 jsr sub_27A50 move.b var_6(a6),(byte_FFFFA490).w move.b var_5(a6),(byte_FFFFA491).w move.w var_4(a6),(word_FFFFA492).w movea.l a4,a1 movea.l #$40837A,a0 jsr sub_27A50 move.b var_6(a6),(byte_FFFFA494).w move.b var_5(a6),(byte_FFFFA495).w move.w var_4(a6),(word_FFFFA496).w movea.l a4,a1 movea.l #$408380,a0 jsr sub_27A50 move.b var_6(a6),(byte_FFFFA470).w move.b var_5(a6),(byte_FFFFA471).w move.w var_4(a6),(word_FFFFA472).w movea.l a4,a1 movea.l #$408386,a0 jsr sub_27A50 move.b var_6(a6),(byte_FFFFA478).w move.b var_5(a6),(byte_FFFFA479).w move.w var_4(a6),(word_FFFFA47A).w movea.l a4,a1 movea.l #$40838C,a0 jsr sub_27A50 move.b var_6(a6),(byte_FFFFA474).w move.b var_5(a6),(byte_FFFFA475).w move.w var_4(a6),(word_FFFFA476).w movea.l a4,a1 movea.l #$408392,a0 jsr sub_27A50 move.b var_6(a6),(byte_FFFFA484).w move.b var_5(a6),(byte_FFFFA485).w move.b var_4(a6),(byte_FFFFA486).w movea.l a4,a1 movea.l #$408398,a0 jsr sub_27A50 move.b var_6(a6),(byte_FFFFA47C).w move.b var_5(a6),(byte_FFFFA47D).w move.b var_4(a6),(byte_FFFFA47E).w movem.l (sp)+,a0-a1/a4 unlk a6 rts ; End of function sub_266D2 ; =============== S U B R O U T I N E ======================================= sub_26900: ; CODE XREF: DoLoopF:loc_2AF5Ap clr.l (byte_FFFFA456).w clr.l (byte_FFFFA45A).w clr.l (byte_FFFFA45E).w clr.l (byte_FFFFA462).w clr.l (byte_FFFFA466).w clr.l (byte_FFFFA46A).w clr.w (word_FFFFA46E).w clr.b (byte_FFFFA482).w clr.w (word_FFFFA480).w clr.l (byte_FFFFA488).w clr.b (byte_FFFFA48E).w clr.w (word_FFFFA48C).w clr.l (byte_FFFFA490).w clr.l (byte_FFFFA494).w clr.l (byte_FFFFA470).w clr.l (byte_FFFFA478).w clr.l (byte_FFFFA474).w rts ; End of function sub_26900 ; =============== S U B R O U T I N E ======================================= sub_26946: ; CODE XREF: sub_30DA8+160p ; sub_30DA8+1A6p ... move.w d1,d3 lsr.w #8,d3 addq.w #1,d2 andi.w #$FFFE,d2 mulu.w d2,d3 adda.l d3,a0 move.w d0,d3 tblun.b (a0),d0 tblun.b (a0,d2.w),d3 tblu.w d0:d3,d1 addi.w #$80,d1 ; '?' lsr.w #8,d1 move.w d1,d0 rts ; End of function sub_26946 ; =============== S U B R O U T I N E ======================================= sub_2696E: ; CODE XREF: sub_200DE+8Cp ; sub_200DE+136p ... move.w d1,d3 lsr.w #8,d3 lsl.w #1,d2 mulu.w d2,d3 adda.l d3,a0 move.w d0,d3 tblun.w (a0),d0 tblun.w (a0,d2.w),d3 tblu.l d0:d3,d1 addi.l #$80,d1 ; '?' lsr.l #8,d1 move.l d1,d0 rts ; End of function sub_2696E ; =============== S U B R O U T I N E ======================================= SurfaceTableLookup: ; CODE XREF: sub_200DE+182p ; sub_200DE+2D4p ... move.w d1,d3 lsr.w #8,d3 lsl.w #1,d2 mulu.w d2,d3 adda.l d3,a0 move.w d0,d3 tblsn.w (a0),d0 tblsn.w (a0,d2.w),d3 tbls.l d0:d3,d1 addi.l #$80,d1 ; '?' asr.l #8,d1 move.l d1,d0 rts ; End of function SurfaceTableLookup ; =============== S U B R O U T I N E ======================================= sub_269BA: ; CODE XREF: sub_21930+31Cp ; sub_24094+126p tblun.w (a0),d0 lsr.l #8,d0 rts ; End of function sub_269BA ; =============== S U B R O U T I N E ======================================= sub_269C2: ; CODE XREF: sub_7AAA8:loc_7AB14p ; OS3:loc_7ABA8p tst.b (TRACTION_KE_USE_IAT_MIN).l ; Use to determine which Induction Air Temperature to select. ; Boolean beq.s loc_269D0 move.w (word_FFFFB2A0).w,d3 bra.s loc_269D4 ; --------------------------------------------------------------------------- loc_269D0: ; CODE XREF: sub_269C2+6j move.w (word_FFFFB3E8).w,d3 loc_269D4: ; CODE XREF: sub_269C2+Cj addi.w #$400,d3 move.w d3,(word_FFFFAEE8).w rts ; End of function sub_269C2 ; =============== S U B R O U T I N E ======================================= sub_269DE: ; CODE XREF: sub_26B32+14p move.b d0,d3 moveq #1,d0 cmpi.b #$14,d3 bhi.w loc_26A8C clr.l d4 move.b d3,d4 cmpi.w #1,d4 bcs.w loc_26B2E cmpi.w #$14,d4 bhi.w loc_26B2E movea.l dword_89186(d4.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_26A08: ; DATA XREF: OS4:0008918Ao ; OS4:0008918Eo ... subq.b #1,d3 andi.w #$FF,d3 moveq #6,d4 mulu.w d4,d3 lea -$7FE0(d3.l),a3 move.l a3,(a0) move.b d4,(a1) bra.w locret_26B30 ; --------------------------------------------------------------------------- loc_26A20: ; DATA XREF: OS4:00089196o ; OS4:0008919Ao ... subq.b #4,d3 asl.b #2,d3 andi.w #$FF,d3 lea -$7FFC(d3.w),a3 move.l a3,(a0) bra.s loc_26A80 ; --------------------------------------------------------------------------- loc_26A32: ; DATA XREF: OS4:000891A6o move.l #unk_FF8018,(a0) bra.s loc_26A80 ; --------------------------------------------------------------------------- loc_26A3A: ; DATA XREF: OS4:000891AEo move.l #unk_FF9280,(a0) bra.s loc_26A80 ; --------------------------------------------------------------------------- loc_26A42: ; DATA XREF: OS4:000891B2o move.l #$8004,(a0) bra.s loc_26A80 ; --------------------------------------------------------------------------- loc_26A4A: ; DATA XREF: OS4:000891B6o move.l #Constant32_Engine_Diagnostics_Calibration_ID,(a0) bra.s loc_26A80 ; --------------------------------------------------------------------------- loc_26A52: ; DATA XREF: OS4:000891BAo move.l #Constant32_Transmission_Calibration_ID,(a0) bra.s loc_26A80 ; --------------------------------------------------------------------------- loc_26A5A: ; DATA XREF: OS4:000891BEo move.l #unk_1D8B4,(a0) bra.s loc_26A80 ; --------------------------------------------------------------------------- loc_26A62: ; DATA XREF: OS4:000891C2o move.l #Constant32_Fuel_System_Calibration_ID,(a0) bra.s loc_26A80 ; --------------------------------------------------------------------------- loc_26A6A: ; DATA XREF: OS4:000891C6o move.l #Constant32_Vehicle_System_Calibration_ID,(a0) bra.s loc_26A80 ; --------------------------------------------------------------------------- loc_26A72: ; DATA XREF: OS4:000891CAo move.l #Constant32_Speedometer_Calibration_ID,(a0) bra.s loc_26A80 ; --------------------------------------------------------------------------- loc_26A7A: ; DATA XREF: OS4:000891D6o move.l #unk_FF801C,(a0) loc_26A80: ; CODE XREF: sub_269DE+52j ; sub_269DE+5Aj ... move.b #4,(a1) bra.w locret_26B30 ; --------------------------------------------------------------------------- loc_26A88: ; DATA XREF: OS4:000891AAo ; OS4:000891CEo ... bra.w loc_26B2E ; --------------------------------------------------------------------------- loc_26A8C: ; CODE XREF: sub_269DE+8j andi.w #$FF,d3 cmpi.w #$6F,d3 ; 'o' bcs.w loc_26B2E cmpi.w #$A0,d3 ; '?' bhi.w loc_26B2E movea.l off_8901E(d3.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_26AAA: ; DATA XREF: OS4:000891DAo move.l #unk_FF8034,(a0) bra.s loc_26AC8 ; --------------------------------------------------------------------------- loc_26AB2: ; DATA XREF: OS4:000891EAo move.l #unk_FF803A,(a0) bra.s loc_26B28 ; --------------------------------------------------------------------------- loc_26ABA: ; DATA XREF: OS4:000891EEo move.l #unk_FF8014,(a0) bra.s loc_26A80 ; --------------------------------------------------------------------------- loc_26AC2: ; DATA XREF: OS4:0008921Eo move.l #unk_FF8050,(a0) loc_26AC8: ; CODE XREF: sub_269DE+D2j move.b #6,(a1) bra.s locret_26B30 ; --------------------------------------------------------------------------- loc_26ACE: ; DATA XREF: OS4:00089222o move.l #unk_FF803D,(a0) bra.s loc_26B28 ; --------------------------------------------------------------------------- loc_26AD6: ; DATA XREF: OS4:00089226o move.l #unk_FF8056,(a0) bra.s loc_26A80 ; --------------------------------------------------------------------------- loc_26ADE: ; DATA XREF: OS4:0008926Ao move.l #unk_FF9284,(a0) bra.s loc_26B1C ; --------------------------------------------------------------------------- loc_26AE6: ; DATA XREF: OS4:0008926Eo move.l #$8008,(a0) bra.s loc_26B1C ; --------------------------------------------------------------------------- loc_26AEE: ; DATA XREF: OS4:00089272o move.l #CurveTable_2_Columns_Engine_Diagnostics_Calibration_Level,(a0) bra.s loc_26B1C ; --------------------------------------------------------------------------- loc_26AF6: ; DATA XREF: OS4:00089276o move.l #CurveTable_2_Columns_Transmission_Calibration_Level,(a0) bra.s loc_26B1C ; --------------------------------------------------------------------------- loc_26AFE: ; DATA XREF: OS4:0008927Ao move.l #unk_1D8B8,(a0) bra.s loc_26B1C ; --------------------------------------------------------------------------- loc_26B06: ; DATA XREF: OS4:0008927Eo move.l #CurveTable_2_Columns_Fuel_System_Calibration_Level,(a0) bra.s loc_26B1C ; --------------------------------------------------------------------------- loc_26B0E: ; DATA XREF: OS4:00089282o move.l #CurveTable_2_Columns_Vehicle_System_Calibration_Level,(a0) bra.s loc_26B1C ; --------------------------------------------------------------------------- loc_26B16: ; DATA XREF: OS4:00089286o move.l #CurveTable_2_Columns_Speedometer_Calibration_Level,(a0) loc_26B1C: ; CODE XREF: sub_269DE+106j ; sub_269DE+10Ej ... move.b #2,(a1) bra.s locret_26B30 ; --------------------------------------------------------------------------- loc_26B22: ; DATA XREF: OS4:off_8929Eo move.l #unk_FF804F,(a0) loc_26B28: ; CODE XREF: sub_269DE+DAj ; sub_269DE+F6j move.b #1,(a1) bra.s locret_26B30 ; --------------------------------------------------------------------------- loc_26B2E: ; CODE XREF: sub_269DE+14j ; sub_269DE+1Cj ... clr.b d0 locret_26B30: ; CODE XREF: sub_269DE+3Ej ; sub_269DE+A6j ... rts ; End of function sub_269DE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_26B32: ; CODE XREF: OS2:00041A9Cp var_8 = -8 var_6 = -6 var_4 = -4 link a6,#-8 movem.l d1-d2/d6-d7/a1/a4,-(sp) movea.l a0,a4 move.b d0,d1 lea var_8(a6),a1 lea var_4(a6),a0 jsr sub_269DE tst.b d0 beq.s loc_26B7C move.b var_8(a6),(a4) movea.l var_4(a6),a0 move.b var_8(a6),d4 moveq #1,d3 cmpi.b #1,d4 bra.s loc_26B76 ; --------------------------------------------------------------------------- loc_26B64: ; CODE XREF: sub_26B32:loc_26B76j clr.l d5 move.b d3,d5 move.b (a0),(a4,d5.w) addq.l #1,a0 addq.b #1,d3 bcs.w loc_26CD6 cmp.b d3,d4 loc_26B76: ; CODE XREF: sub_26B32+30j bcc.s loc_26B64 bra.w loc_26CD6 ; --------------------------------------------------------------------------- loc_26B7C: ; CODE XREF: sub_26B32+1Cj moveq #$41,d4 ; 'A' cmp.b d1,d4 bhi.s loc_26BE6 cmpi.b #$49,d1 ; 'I' bhi.s loc_26BE6 move.l d1,d3 sub.b d4,d3 andi.l #$FF,d3 move.l d3,d2 moveq #3,d6 divu.w d6,d2 divul.l d6,d1:d3 addq.b #1,d2 andi.w #$FF,d1 mulu.w #6,d1 cmpi.b #$C,d1 bcc.s loc_26BB0 moveq #6,d0 bra.s loc_26BB2 ; --------------------------------------------------------------------------- loc_26BB0: ; CODE XREF: sub_26B32+78j moveq #5,d0 loc_26BB2: ; CODE XREF: sub_26B32+7Cj move.b d0,(a4) moveq #1,d3 cmpi.b #1,d0 bra.s loc_26BE0 ; --------------------------------------------------------------------------- loc_26BBC: ; CODE XREF: sub_26B32:loc_26BE0j clr.l d5 move.b d2,d5 mulu.w #$12,d5 add.b d1,d5 andi.w #$FF,d5 clr.l d7 move.b d3,d7 move.b -$747C(d5.w),(a4,d7.w) addq.b #1,d1 addq.b #1,d3 bcs.w loc_26CD6 cmp.b d3,d0 loc_26BE0: ; CODE XREF: sub_26B32+88j bcc.s loc_26BBC bra.w loc_26CD6 ; --------------------------------------------------------------------------- loc_26BE6: ; CODE XREF: sub_26B32+4Ej ; sub_26B32+54j moveq #$4D,d5 ; 'M' cmp.b d1,d5 bhi.s loc_26C4A cmpi.b #$4F,d1 ; 'O' bhi.s loc_26C4A subi.b #$4D,d1 ; 'M' clr.l d2 move.b d1,d2 mulu.w #3,d2 cmpi.b #2,d1 bcc.s loc_26C08 moveq #3,d0 bra.s loc_26C0A ; --------------------------------------------------------------------------- loc_26C08: ; CODE XREF: sub_26B32+D0j moveq #2,d0 loc_26C0A: ; CODE XREF: sub_26B32+D4j move.l d0,d6 add.b d6,d6 move.b d6,(a4) subq.b #1,d0 clr.b d3 tst.b d0 bra.s loc_26C44 ; --------------------------------------------------------------------------- loc_26C18: ; CODE XREF: sub_26B32:loc_26C44j clr.l d6 move.b d2,d6 move.w unk_FFFF8C50(d6.w*2),var_6(a6) move.l d3,d4 add.b d4,d4 addq.b #1,d4 clr.l d1 move.b d4,d1 move.b var_6(a6),(a4,d1.w) move.b var_6+1(a6),1(a4,d1.w) addq.b #1,d2 addq.b #1,d3 bcs.w loc_26CD6 cmp.b d3,d0 loc_26C44: ; CODE XREF: sub_26B32+E4j bcc.s loc_26C18 bra.w loc_26CD6 ; --------------------------------------------------------------------------- loc_26C4A: ; CODE XREF: sub_26B32+B8j ; sub_26B32+BEj cmpi.b #$6D,d1 ; 'm' bne.s loc_26C7A move.b #1,(a4) move.w (word_FFFFA730).w,d3 beq.s loc_26C60 cmpi.w #$1400,d3 bne.s loc_26C6A loc_26C60: ; CODE XREF: sub_26B32+126j mulu.w #$D,d3 divu.w #$105,d3 bra.s loc_26C74 ; --------------------------------------------------------------------------- loc_26C6A: ; CODE XREF: sub_26B32+12Cj mulu.w #$D,d3 divu.w #$105,d3 addq.b #1,d3 loc_26C74: ; CODE XREF: sub_26B32+136j move.b d3,1(a4) bra.s loc_26CD6 ; --------------------------------------------------------------------------- loc_26C7A: ; CODE XREF: sub_26B32+11Cj cmpi.b #$70,d1 ; 'p' bne.s loc_26CB6 move.b #6,(a4) movea.l #unk_FF804A,a0 move.b (a0),1(a4) addq.l #1,a0 move.b (a0),2(a4) movea.l #unk_FF8048,a0 move.b (a0),3(a4) addq.l #1,a0 move.b (a0),4(a4) movea.l #unk_FF8046,a0 move.b (a0),5(a4) addq.l #1,a0 move.b (a0),6(a4) bra.s loc_26CD6 ; --------------------------------------------------------------------------- loc_26CB6: ; CODE XREF: sub_26B32+14Cj cmpi.b #$71,d1 ; 'q' bne.s loc_26CD4 move.b #3,(a4) move.b (byte_FFFF804E).w,1(a4) move.b (byte_FFFF804D).w,2(a4) move.b (byte_FFFF804C).w,3(a4) bra.s loc_26CD6 ; --------------------------------------------------------------------------- loc_26CD4: ; CODE XREF: sub_26B32+188j clr.b (a4) loc_26CD6: ; CODE XREF: sub_26B32+3Ej ; sub_26B32+46j ... movem.l (sp)+,d1-d2/d6-d7/a1/a4 unlk a6 rts ; End of function sub_26B32 ; =============== S U B R O U T I N E ======================================= sub_26CDE: ; CODE XREF: sub_26DB8+10p move.l d2,-(sp) move.b d0,d3 cmpi.b #$A0,d3 beq.w loc_26DA0 cmpi.b #$82,d3 bhi.w loc_26DB2 beq.w loc_26D8E cmpi.b #$80,d3 bhi.s loc_26D6C beq.s loc_26D5A cmpi.b #$14,d3 beq.s loc_26D48 cmpi.b #8,d3 beq.s loc_26D36 cmpi.b #3,d3 bhi.w loc_26DB2 tst.b d3 beq.w loc_26DB2 moveq #6,d4 cmp.b d1,d4 seq d0 neg.b d0 beq.w loc_26DB4 subq.b #1,d3 andi.w #$FF,d3 mulu.w d4,d3 lea -$7FE0(d3.l),a3 move.l a3,(a0) bra.s loc_26DB4 ; --------------------------------------------------------------------------- loc_26D36: ; CODE XREF: sub_26CDE+2Aj cmpi.b #4,d1 seq d0 neg.b d0 beq.s loc_26DB4 move.l #unk_FF8018,(a0) bra.s loc_26DB4 ; --------------------------------------------------------------------------- loc_26D48: ; CODE XREF: sub_26CDE+24j cmpi.b #4,d1 seq d0 neg.b d0 beq.s loc_26DB4 move.l #unk_FF801C,(a0) bra.s loc_26DB4 ; --------------------------------------------------------------------------- loc_26D5A: ; CODE XREF: sub_26CDE+1Ej cmpi.b #6,d1 seq d0 neg.b d0 beq.s loc_26DB4 move.l #unk_FF8050,(a0) bra.s loc_26DB4 ; --------------------------------------------------------------------------- loc_26D6C: ; CODE XREF: sub_26CDE+1Cj clr.b d2 cmpi.b #1,d1 bne.s loc_26D80 jsr sub_87832 tst.b d0 beq.s loc_26D80 addq.b #1,d2 loc_26D80: ; CODE XREF: sub_26CDE+94j ; sub_26CDE+9Ej move.l d2,d0 tst.b d0 beq.s loc_26DB4 move.l #unk_FF803D,(a0) bra.s loc_26DB4 ; --------------------------------------------------------------------------- loc_26D8E: ; CODE XREF: sub_26CDE+14j cmpi.b #4,d1 seq d0 neg.b d0 beq.s loc_26DB4 move.l #unk_FF8056,(a0) bra.s loc_26DB4 ; --------------------------------------------------------------------------- loc_26DA0: ; CODE XREF: sub_26CDE+8j cmpi.b #1,d1 seq d0 neg.b d0 beq.s loc_26DB4 move.l #unk_FF804F,(a0) bra.s loc_26DB4 ; --------------------------------------------------------------------------- loc_26DB2: ; CODE XREF: sub_26CDE+10j ; sub_26CDE+30j ... clr.b d0 loc_26DB4: ; CODE XREF: sub_26CDE+42j ; sub_26CDE+56j ... move.l (sp)+,d2 rts ; End of function sub_26CDE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_26DB8: ; CODE XREF: sub_26DFA+10p var_4 = -4 link a6,#-4 movem.l d2/a1,-(sp) move.b d1,d2 movea.l a0,a1 lea var_4(a6),a0 jsr sub_26CDE tst.b d0 beq.s loc_26DF0 movea.l var_4(a6),a2 moveq #1,d3 cmpi.b #1,d2 bra.s loc_26DEA ; --------------------------------------------------------------------------- loc_26DDE: ; CODE XREF: sub_26DB8:loc_26DEAj move.b (a1),(a2) addq.l #1,a1 addq.l #1,a2 addq.b #1,d3 bcs.s loc_26DEC cmp.b d3,d2 loc_26DEA: ; CODE XREF: sub_26DB8+24j bcc.s loc_26DDE loc_26DEC: ; CODE XREF: sub_26DB8+2Ej moveq #1,d0 bra.s loc_26DF2 ; --------------------------------------------------------------------------- loc_26DF0: ; CODE XREF: sub_26DB8+18j clr.b d0 loc_26DF2: ; CODE XREF: sub_26DB8+36j movem.l (sp)+,d2/a1 unlk a6 rts ; End of function sub_26DB8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_26DFA: ; CODE XREF: OS2:000418D2p var_74A8 = -$74A8 var_73DC = -$73DC var_18 = -$18 var_16 = -$16 var_14 = -$14 var_12 = -$12 var_10 = -$10 var_C = -$C var_8 = -8 var_4 = -4 link a6,#-$16 move.b d1,-(sp) movem.l d2/d6-d7/a1/a4,-(sp) move.b d0,d2 movea.l a0,a4 movea.l a0,a1 jsr sub_26DB8 move.b d0,var_14(a6) tst.b d0 bne.w loc_2711C moveq #1,d4 move.b d4,var_14(a6) cmpi.b #$41,d2 ; 'A' bcs.w loc_26EAA cmpi.b #$49,d2 ; 'I' bhi.s loc_26EAA move.l d2,d3 subi.b #$41,d3 ; 'A' andi.l #$FF,d3 move.l d3,d7 moveq #3,d4 divu.w d4,d7 divul.l d4,d2:d3 addq.b #1,d7 andi.w #$FF,d2 mulu.w #6,d2 cmpi.b #$C,d2 bcc.s loc_26E58 moveq #6,d6 bra.s loc_26E5A ; --------------------------------------------------------------------------- loc_26E58: ; CODE XREF: sub_26DFA+58j moveq #5,d6 loc_26E5A: ; CODE XREF: sub_26DFA+5Cj move.b var_18(a6),d5 cmp.b d6,d5 bne.w loc_27118 moveq #1,d1 cmpi.b #1,d6 bra.s loc_26EA4 ; --------------------------------------------------------------------------- loc_26E6C: ; CODE XREF: sub_26DFA:loc_26EA4j move.b (a1),d3 tst.b d7 beq.s loc_26E98 clr.l d4 move.b d7,d4 mulu.w #$12,d4 add.b d2,d4 andi.w #$FF,d4 move.b d3,$2C+var_74A8(d4.w) movea.l #unk_FF8B96,a0 moveq #$36,d0 ; '6' jsr sub_2654C move.w d0,(word_FFFF8BCC).w loc_26E98: ; CODE XREF: sub_26DFA+76j addq.b #1,d2 addq.l #1,a1 addq.b #1,d1 bcs.w loc_2711C cmp.b d1,d6 loc_26EA4: ; CODE XREF: sub_26DFA+70j bcc.s loc_26E6C bra.w loc_2711C ; --------------------------------------------------------------------------- loc_26EAA: ; CODE XREF: sub_26DFA+2Aj ; sub_26DFA+32j cmpi.b #$4D,d2 ; 'M' bcs.s loc_26F1E cmpi.b #$4F,d2 ; 'O' bhi.s loc_26F1E subi.b #$4D,d2 ; 'M' clr.l d7 move.b d2,d7 mulu.w #3,d7 cmpi.b #2,d2 bcc.s loc_26ECC moveq #3,d6 bra.s loc_26ECE ; --------------------------------------------------------------------------- loc_26ECC: ; CODE XREF: sub_26DFA+CCj moveq #2,d6 loc_26ECE: ; CODE XREF: sub_26DFA+D0j move.l d6,d2 add.b d2,d2 cmp.b var_18(a6),d2 bne.w loc_27118 subq.b #1,d6 clr.b d1 tst.b d6 bra.s loc_26F18 ; --------------------------------------------------------------------------- loc_26EE2: ; CODE XREF: sub_26DFA:loc_26F18j move.b (a1),var_12(a6) addq.l #1,a1 move.b (a1),var_12+1(a6) movea.w var_12(a6),a2 clr.l d2 move.b d7,d2 move.w a2,$2C+var_73DC(d2.w*2) movea.l #unk_FF8C50,a0 moveq #$10,d0 jsr sub_2654C move.w d0,(word_FFFF8C60).w addq.b #1,d7 addq.l #1,a1 addq.b #1,d1 bcs.w loc_2711C cmp.b d1,d6 loc_26F18: ; CODE XREF: sub_26DFA+E6j bcc.s loc_26EE2 bra.w loc_2711C ; --------------------------------------------------------------------------- loc_26F1E: ; CODE XREF: sub_26DFA+B4j ; sub_26DFA+BAj cmpi.b #$6D,d2 ; 'm' bne.s loc_26F38 cmp.b var_18(a6),d4 bne.w loc_27118 move.b (a1),(byte_FFFF9A3B).w move.b d4,(byte_FFFF9A3C).w bra.w loc_2711C ; --------------------------------------------------------------------------- loc_26F38: ; CODE XREF: sub_26DFA+128j cmpi.b #$6F,d2 ; 'o' bne.w loc_270B0 move.b var_18(a6),d2 cmpi.b #6,d2 bne.w loc_27118 move.l 4(a4),var_C(a6) move.l (a4),var_10(a6) move.l (dword_FFFF8038).w,var_4(a6) move.l (dword_FFFF8034).w,var_8(a6) move.b var_10(a6),var_8(a6) btst #7,var_10(a6) bne.s loc_26F80 btst #6,var_10(a6) bne.s loc_26F80 btst #4,var_10(a6) beq.s loc_26FF0 loc_26F80: ; CODE XREF: sub_26DFA+174j ; sub_26DFA+17Cj clr.w d0 move.b var_10+1(a6),d0 asl.w #7,d0 move.w d0,var_16(a6) movea.w d0,a0 move.w a0,var_16(a6) move.l a0,d5 cmp.w (PTO_KE_LOW_SPEED_INHIBIT).l,d5 ; Filtered engine speed below which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM bcc.s loc_26FA8 movea.w (PTO_KE_LOW_SPEED_INHIBIT).l,a4 ; Filtered engine speed below which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM loc_26FA2: ; CODE XREF: sub_26DFA+1BCj move.w a4,var_16(a6) bra.s loc_26FB8 ; --------------------------------------------------------------------------- loc_26FA8: ; CODE XREF: sub_26DFA+1A0j cmp.w (PTO_KE_HIGH_SPEED_INHIBIT).l,d5 ; Filtered engine speed above which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM bls.s loc_26FB8 movea.w (PTO_KE_HIGH_SPEED_INHIBIT).l,a4 ; Filtered engine speed above which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM bra.s loc_26FA2 ; --------------------------------------------------------------------------- loc_26FB8: ; CODE XREF: sub_26DFA+1ACj ; sub_26DFA+1B4j move.w var_16(a6),d3 lsr.w #7,d3 cmpi.w #$FF,d3 bls.s loc_26FC8 move.b #$FF,d3 loc_26FC8: ; CODE XREF: sub_26DFA+1C8j move.b d3,var_8+1(a6) clr.w d6 move.b var_10+2(a6),d6 asl.w #7,d6 cmpi.w #$1A00,d6 bls.s loc_26FDE move.w #$1A00,d6 loc_26FDE: ; CODE XREF: sub_26DFA+1DEj move.l d6,d3 lsr.w #7,d3 cmpi.w #$FF,d3 bls.s loc_26FEC move.b #$FF,d3 loc_26FEC: ; CODE XREF: sub_26DFA+1ECj move.b d3,var_8+2(a6) loc_26FF0: ; CODE XREF: sub_26DFA+184j btst #6,var_10(a6) beq.s loc_27052 move.w (PTO_KE_LOW_SPEED_INHIBIT).l,d3 ; Filtered engine speed below which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM cmp.w d3,d6 bls.s loc_27004 move.w d6,d3 loc_27004: ; CODE XREF: sub_26DFA+206j clr.w d6 move.b var_10+3(a6),d6 asl.w #7,d6 cmp.w d3,d6 bcc.s loc_27012 move.l d3,d6 loc_27012: ; CODE XREF: sub_26DFA+214j move.w var_16(a6),d0 cmp.w d0,d6 bls.s loc_2701C move.l d0,d6 loc_2701C: ; CODE XREF: sub_26DFA+21Ej move.l d6,d3 lsr.w #7,d3 cmpi.w #$FF,d3 bls.s loc_2702A move.b #$FF,d3 loc_2702A: ; CODE XREF: sub_26DFA+22Aj move.b d3,var_8+3(a6) clr.w d7 move.b var_C(a6),d7 asl.w #7,d7 cmp.w d6,d7 bcc.s loc_2703C move.w d6,d7 loc_2703C: ; CODE XREF: sub_26DFA+23Ej cmp.w d0,d7 bls.s loc_27042 move.l d0,d7 loc_27042: ; CODE XREF: sub_26DFA+244j lsr.w #7,d7 cmpi.w #$FF,d7 bls.s loc_2704E move.b #$FF,d7 loc_2704E: ; CODE XREF: sub_26DFA+24Ej move.b d7,var_4(a6) loc_27052: ; CODE XREF: sub_26DFA+1FCj btst #4,var_10(a6) beq.s loc_27080 clr.w d3 move.b var_C+1(a6),d3 asl.w #7,d3 move.w (PTO_KE_LOW_VEH_SPEED_DISENGAGE).l,d4 ; Minimum allowed vehicle speed before Mobile PTO disengages. Also differentiates between Stationary and Mobile Variable PTO. ; MPH cmp.w d4,d3 bcc.s loc_27070 loc_2706C: ; CODE XREF: sub_26DFA+27Ej move.l d4,d3 bra.s loc_2707A ; --------------------------------------------------------------------------- loc_27070: ; CODE XREF: sub_26DFA+270j move.w (PTO_KE_HIGH_VEH_SPEED_DISENGAGE).l,d4 ; Maximum allowed HARDCODED vehicle speed for Mobile PTO. ; MPH cmp.w d4,d3 bhi.s loc_2706C loc_2707A: ; CODE XREF: sub_26DFA+274j lsr.w #7,d3 move.b d3,var_4+1(a6) loc_27080: ; CODE XREF: sub_26DFA+25Ej move.l var_4(a6),var_C(a6) move.l var_8(a6),var_10(a6) movea.l #unk_FF8034,a2 moveq #1,d1 cmpi.b #1,d2 bra.s loc_270A6 ; --------------------------------------------------------------------------- loc_2709A: ; CODE XREF: sub_26DFA:loc_270A6j move.b (a1),(a2) addq.l #1,a1 addq.l #1,a2 addq.b #1,d1 bcs.s loc_270A8 cmp.b d1,d2 loc_270A6: ; CODE XREF: sub_26DFA+29Ej bcc.s loc_2709A loc_270A8: ; CODE XREF: sub_26DFA+2A8j ; sub_26DFA+316j ... jsr sub_8751A bra.s loc_2711C ; --------------------------------------------------------------------------- loc_270B0: ; CODE XREF: sub_26DFA+142j cmpi.b #$70,d2 ; 'p' bne.s loc_270C4 clr.w (word_FFFF8046).w clr.w (word_FFFF8048).w clr.w (word_FFFF804A).w bra.s loc_2711C ; --------------------------------------------------------------------------- loc_270C4: ; CODE XREF: sub_26DFA+2BAj cmpi.b #$71,d2 ; 'q' bne.s loc_270D8 clr.b (byte_FFFF804C).w clr.b (byte_FFFF804D).w clr.b (byte_FFFF804E).w bra.s loc_2711C ; --------------------------------------------------------------------------- loc_270D8: ; CODE XREF: sub_26DFA+2CEj cmpi.b #$73,d2 ; 's' bne.s loc_27118 cmp.b var_18(a6),d4 bne.s loc_27118 btst #2,(dword_FFFF8034).w beq.s loc_27118 clr.w d3 move.b (a1),d3 asl.w #7,d3 cmp.w (PTO_KE_HIGH_SPEED_INHIBIT).l,d3 ; Filtered engine speed above which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM bls.s loc_27112 move.w (PTO_KE_HIGH_SPEED_INHIBIT).l,d3 ; Filtered engine speed above which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM lsr.w #7,d3 cmpi.w #$FF,d3 bls.s loc_2710C move.b #$FF,d3 loc_2710C: ; CODE XREF: sub_26DFA+30Cj move.b d3,(dword_FFFF8038+2).w bra.s loc_270A8 ; --------------------------------------------------------------------------- loc_27112: ; CODE XREF: sub_26DFA+2FEj move.b (a1),(dword_FFFF8038+2).w bra.s loc_270A8 ; --------------------------------------------------------------------------- loc_27118: ; CODE XREF: sub_26DFA+66j ; sub_26DFA+DCj ... clr.b var_14(a6) loc_2711C: ; CODE XREF: sub_26DFA+1Cj ; sub_26DFA+A4j ... move.b var_14(a6),d0 movem.l (sp)+,d2/d6-d7/a1/a4 unlk a6 rts ; End of function sub_26DFA ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_27128: ; CODE XREF: DoLoopB+2AAp DoLoopF+400p ... var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a0,-(sp) move.w (word_FFFF92E0).w,d6 add.b d6,d6 andi.w #$FF,d6 move.l unk_FFFF9284(d6.w*4),d7 clr.b var_2(a6) moveq #1,d3 cmp.w (word_FFFF92E0).w,d3 bne.s loc_27180 tst.b (byte_FFFF92E3).w beq.s loc_2716E move.l #$3FFF,d7 move.l (dword_FFFF92DC).w,d1 cmp.l unk_FFFF9280(d6.w*4),d1 bne.s loc_27180 move.b d3,(byte_FFFF92E2).w clr.b (byte_FFFF92E4).w bra.s loc_27180 ; --------------------------------------------------------------------------- loc_2716E: ; CODE XREF: sub_27128+28j tst.b (byte_FFFF92E4).w bne.s loc_27180 move.l #sub_20000,(dword_FFFF92DC).w move.b d3,(byte_FFFF92E4).w loc_27180: ; CODE XREF: sub_27128+22j ; sub_27128+3Aj ... tst.b (byte_FFFF80DE).w beq.s loc_2718E move.l #$1B6,d1 bra.s loc_27194 ; --------------------------------------------------------------------------- loc_2718E: ; CODE XREF: sub_27128+5Cj move.l #$334,d1 loc_27194: ; CODE XREF: sub_27128+64j move.l (dword_FFFF92DC).w,d6 move.l d7,d2 sub.l d6,d2 addq.l #1,d2 cmp.l d1,d2 bcc.s loc_271A4 move.l d2,d1 loc_271A4: ; CODE XREF: sub_27128+78j move.l d1,d0 movea.l d6,a0 jsr sub_2653C add.w (word_FFFF92DA).w,d0 move.w d0,(word_FFFF92DA).w add.l d1,d6 move.l d6,(dword_FFFF92DC).w cmp.l d7,d6 bls.s loc_2720E tst.b (byte_FFFF92E3).w beq.s loc_271CC clr.b (byte_FFFF92E3).w bra.s loc_2720E ; --------------------------------------------------------------------------- loc_271CC: ; CODE XREF: sub_27128+9Cj tst.w d0 beq.s loc_271D4 clr.b (byte_FFFF92E2).w loc_271D4: ; CODE XREF: sub_27128+A6j move.w (word_FFFF92E0).w,d7 addq.w #1,d7 move.w d7,(word_FFFF92E0).w clr.w (word_FFFF92DA).w cmpi.w #8,d7 bls.s loc_27200 move.w #1,(word_FFFF92E0).w move.l (dword_FFFF9288).w,(dword_FFFF92DC).w moveq #1,d1 move.b d1,(byte_FFFF92E3).w move.b d1,var_2(a6) bra.s loc_2720E ; --------------------------------------------------------------------------- loc_27200: ; CODE XREF: sub_27128+BEj add.b d7,d7 andi.w #$FF,d7 move.l unk_FFFF9280(d7.w*4),(dword_FFFF92DC).w loc_2720E: ; CODE XREF: sub_27128+96j ; sub_27128+A2j ... tst.b var_2(a6) beq.s loc_27250 move.b #1,(byte_FFFF80DE).w tst.b (MEM_MANAGER_KE_IGNORE_FLASH_CHECKSUM).l ; When TRUE the rom test results are ignored. ; Boolean bne.s loc_2723E tst.b (byte_FFFF92E2).w bne.s loc_27236 addq.b #1,(byte_FFFF92F1).w moveq #$7C,d0 ; '|' jsr sub_5F110 bra.s loc_2723E ; --------------------------------------------------------------------------- loc_27236: ; CODE XREF: sub_27128+FEj moveq #$7C,d0 ; '|' jsr sub_5F0BE loc_2723E: ; CODE XREF: sub_27128+F8j ; sub_27128+10Cj move.b (byte_FFFF92F1).w,d3 cmp.b (MEM_MANAGER_KE_MAX_ROM_FAIL_CTR_THRESHOLD).l,d3 ; Threshold for maximum number of ROM test failures that canoccur before latching a permanent fault. ; Counts bls.s loc_27250 bset #0,(byte_FFFF803D).w loc_27250: ; CODE XREF: sub_27128+EAj ; sub_27128+120j movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_27128 ; =============== S U B R O U T I N E ======================================= sub_27258: ; CODE XREF: DoLoopB+28Cp DoLoopF+3E6p ... movem.l d1-d2/d6-a0,-(sp) move.l d0,d4 btst #1,(byte_FFFF803D).w bne.w loc_27332 move.l (dword_FFFF92F2).w,d3 sub.l (dword_FFFF92E6).w,d3 bne.s loc_272AE move.b (byte_FFFF92EA).w,d3 addq.b #1,d3 move.b d3,(byte_FFFF92EA).w cmpi.b #4,d3 bne.s loc_2728C clr.b (byte_FFFF92EA).w move.b #1,(byte_FFFF92CC).w loc_2728C: ; CODE XREF: sub_27258+28j clr.l (dword_FFFF92E6).w clr.w d3 move.b (byte_FFFF92EA).w,d3 movea.l off_88814(d3.w*8),a0 move.l (a0),(dword_FFFF92EC).w movea.l off_88818(d3.w*8),a0 move.l (a0),(dword_FFFF92F2).w loc_272AE: ; CODE XREF: sub_27258+18j move.l (dword_FFFF92E6).w,d6 move.l (dword_FFFF92F2).w,d1 sub.l d6,d1 cmp.l d4,d1 bcs.s loc_272BE move.l d4,d1 loc_272BE: ; CODE XREF: sub_27258+62j cmpi.l #4,d1 bcs.s loc_272E4 lsr.l #2,d1 move.l d1,d0 move.l (dword_FFFF92EC).w,d2 movea.l d2,a0 jsr sub_27642 move.l d1,d3 asl.l #2,d3 add.l d3,d2 move.l d2,(dword_FFFF92EC).w add.l d3,d6 bra.s loc_272FA ; --------------------------------------------------------------------------- loc_272E4: ; CODE XREF: sub_27258+6Cj move.l d1,d0 move.l (dword_FFFF92EC).w,d2 movea.l d2,a0 jsr sub_2767E add.l d1,d2 move.l d2,(dword_FFFF92EC).w add.l d1,d6 loc_272FA: ; CODE XREF: sub_27258+8Aj move.l d6,(dword_FFFF92E6).w tst.b d0 beq.s loc_27318 tst.b (MEM_MANAGER_KE_IGNORE_RAM_TEST).l ; When TRUE the ram test results are ignored. ; Boolean bne.s loc_27318 addq.b #1,(byte_FFFF92F0).w moveq #$7E,d0 ; '~' jsr sub_5F110 bra.s loc_27320 ; --------------------------------------------------------------------------- loc_27318: ; CODE XREF: sub_27258+A8j ; sub_27258+B0j moveq #$7E,d0 ; '~' jsr sub_5F0BE loc_27320: ; CODE XREF: sub_27258+BEj move.b (byte_FFFF92F0).w,d3 cmp.b (MEM_MANAGER_KE_MAX_RAM_FAIL_CTR_THRESHOLD).l,d3 ; Threshold for maximum number of RAM test failures that canoccur before latching a permanent fault. ; Counts bcs.s loc_27332 bset #1,(byte_FFFF803D).w loc_27332: ; CODE XREF: sub_27258+Cj ; sub_27258+D2j movem.l (sp)+,d1-d2/d6-a0 rts ; End of function sub_27258 ; =============== S U B R O U T I N E ======================================= sub_27338: ; CODE XREF: OS1:00028960p ; sub_86E58+30p movem.l d1/a0,-(sp) cmpi.b #2,d0 bne.w loc_27430 clr.w d3 move.b (byte_FFFF92EA).w,d3 movea.l off_88814(d3.w*8),a2 move.l (a2),(dword_FFFF92EC).w movea.l off_88818(d3.w*8),a2 move.l (a2),(dword_FFFF92F2).w clr.l d1 move.w (word_88812).l,d1 move.l d1,(dword_FFFF92C8).w movea.l d1,a0 lea (unk_FFFF927C).w,a2 moveq #$25,d0 ; '%' loc_27376: ; CODE XREF: sub_27338+40j move.w (a0)+,(a2)+ dbf d0,loc_27376 clr.w (word_FFFF92DA).w clr.b (byte_FFFF92F1).w clr.b (byte_FFFF80DE).w moveq #1,d1 move.b d1,(byte_FFFF92E3).w clr.b (byte_FFFF92E4).w move.w d1,(word_FFFF92E0).w move.l (dword_FFFF9288).w,(dword_FFFF92DC).w clr.w (word_FFFF92D0).w clr.b (byte_FFFF92CE).w move.b d1,(byte_FFFF92D8).w clr.b (byte_FFFF92D9).w move.w d1,(word_FFFF92D2).w move.l (dword_FFFF9288).w,(dword_FFFF92D4).w btst #0,(byte_FFFF803D).w beq.s loc_273C6 moveq #$7C,d0 ; '|' jsr sub_5F110 loc_273C6: ; CODE XREF: sub_27338+84j btst #1,(byte_FFFF803D).w beq.s loc_273D6 moveq #$7E,d0 ; '~' jsr sub_5F110 loc_273D6: ; CODE XREF: sub_27338+94j btst #4,(byte_FFFF803D).w beq.s loc_273E8 move.w #$80,d0 ; '?' jsr sub_5F110 loc_273E8: ; CODE XREF: sub_27338+A4j btst #3,(byte_FFFF803D).w beq.s loc_273FA move.w #$80,d0 ; '?' jsr sub_5F110 loc_273FA: ; CODE XREF: sub_27338+B6j btst #2,(byte_FFFF803D).w beq.s loc_2740C move.w #$80,d0 ; '?' jsr sub_5F110 loc_2740C: ; CODE XREF: sub_27338+C8j btst #5,(byte_FFFF803D).w beq.s loc_2741E move.w #$80,d0 ; '?' jsr sub_5F110 loc_2741E: ; CODE XREF: sub_27338+DAj btst #6,(byte_FFFF803D).w beq.s loc_27430 move.w #$80,d0 ; '?' jsr sub_5F110 loc_27430: ; CODE XREF: sub_27338+8j ; sub_27338+ECj movem.l (sp)+,d1/a0 rts ; End of function sub_27338 ; =============== S U B R O U T I N E ======================================= sub_27436: ; CODE XREF: OS2:00040834p move.w (word_FFFF8000).w,d0 rts ; End of function sub_27436 ; =============== S U B R O U T I N E ======================================= sub_2743C: ; CODE XREF: sub_27482+4p ; TenSecondDelayIsInHere:loc_3FC84p ... move.w (word_FFFF8002).w,d0 rts ; End of function sub_2743C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_27442: ; CODE XREF: sub_49382+Ep ; sub_49382+3Cp ... var_6 = -6 var_4 = -4 link a6,#-6 clr.l var_4(a6) clr.w var_6(a6) cmpi.b #1,d0 bhi.s loc_2745E beq.s loc_2745A clr.b d3 bra.s loc_27460 ; --------------------------------------------------------------------------- loc_2745A: ; CODE XREF: sub_27442+12j moveq #6,d3 bra.s loc_27460 ; --------------------------------------------------------------------------- loc_2745E: ; CODE XREF: sub_27442+10j moveq #$C,d3 loc_27460: ; CODE XREF: sub_27442+16j ; sub_27442+1Aj andi.w #$FF,d3 lea -$7FE0(d3.w),a2 move.l 2(a2),var_4(a6) move.w (a2),var_6(a6) move.l var_4(a6),2(a0) move.w var_6(a6),(a0) unlk a6 rts ; End of function sub_27442 ; =============== S U B R O U T I N E ======================================= sub_27482: ; CODE XREF: TenSecondDelayIsInHere+4Cp ; sub_40278+B0p ... move.l d1,-(sp) move.w d0,d1 jsr sub_2743C cmp.w d1,d0 bne.s loc_27494 moveq #1,d0 bra.s loc_27496 ; --------------------------------------------------------------------------- loc_27494: ; CODE XREF: sub_27482+Cj clr.b d0 loc_27496: ; CODE XREF: sub_27482+10j move.l (sp)+,d1 rts ; End of function sub_27482 ; =============== S U B R O U T I N E ======================================= sub_2749A: ; CODE XREF: TenSecondDelayIsInHere+3Cp ; sub_40278+A0p ... move.b (byte_FFFF804F).w,d0 rts ; End of function sub_2749A ; =============== S U B R O U T I N E ======================================= sub_274A0: ; CODE XREF: sub_84AB0:loc_84BA2p ; sub_84AB0+692p move.b (byte_FFFF804F).w,d3 beq.s locret_274AC subq.b #1,d3 move.b d3,(byte_FFFF804F).w locret_274AC: ; CODE XREF: sub_274A0+4j rts ; End of function sub_274A0 ; =============== S U B R O U T I N E ======================================= sub_274AE: ; CODE XREF: sub_84AB0+2A2p ; sub_84AB0+574p move.w (word_FFFF8032).w,d0 rts ; End of function sub_274AE ; =============== S U B R O U T I N E ======================================= sub_274B4: ; CODE XREF: sub_84AB0+518p move.w d0,(word_FFFF8032).w rts ; End of function sub_274B4 ; =============== S U B R O U T I N E ======================================= sub_274BA: ; CODE XREF: sub_8515E+26p move.b d0,(byte_FFFF803C).w rts ; End of function sub_274BA ; =============== S U B R O U T I N E ======================================= sub_274C0: ; CODE XREF: sub_84AB0+DCp move.b (byte_FFFF803C).w,d0 rts ; End of function sub_274C0 ; =============== S U B R O U T I N E ======================================= sub_274C6: ; CODE XREF: sub_274E4+72p movem.l d0-d1/a0,-(sp) clr.b d1 move.l (off_1E88).l,d0 movea.l (off_1E80).l,a0 jsr (sub_1EC8).l movem.l (sp)+,d0-d1/a0 rts ; End of function sub_274C6 ; =============== S U B R O U T I N E ======================================= sub_274E4: ; CODE XREF: sub_29320+16p movem.l d0-d1,-(sp) clr.b d3 cmpi.l #$BD38391D,(dword_FFFF828A).w bne.s loc_2750E btst #7,(byte_FFFFFA07).w bne.s loc_2750E btst #6,(byte_FFFFFA07).w bne.s loc_2750E btst #2,(byte_FFFFFA07).w bne.s loc_2750E addq.b #1,d3 loc_2750E: ; CODE XREF: sub_274E4+Ej ; sub_274E4+16j ... move.b d3,(byte_FFFFB54B).w clr.b d1 tst.b d3 bne.s loc_2752C cmpi.l #$78AC5B06,(dword_FFFF828A).w bne.s loc_2754A jsr sub_27572 tst.b d0 beq.s loc_2754A loc_2752C: ; CODE XREF: sub_274E4+32j cmpi.b #1,(byte_FFFF8288).w beq.s loc_2754A move.b (byte_2175).w,d0 cmp.b (byte_FFFF8DAC).w,d0 bne.s loc_2754A move.b (byte_2176).w,d0 cmp.b (byte_FFFF8DAD).w,d0 bne.s loc_2754A addq.b #1,d1 loc_2754A: ; CODE XREF: sub_274E4+3Cj ; sub_274E4+46j ... move.b d1,(byte_FFFFB54A).w tst.b d1 bne.s loc_2756C move.b (byte_FFFF8288).w,d0 jsr sub_274C6 move.b d0,(byte_FFFF8288).w move.b (byte_2175).w,(byte_FFFF8DAC).w move.b (byte_2176).w,(byte_FFFF8DAD).w loc_2756C: ; CODE XREF: sub_274E4+6Cj movem.l (sp)+,d0-d1 rts ; End of function sub_274E4 ; =============== S U B R O U T I N E ======================================= sub_27572: ; CODE XREF: sub_274E4+3Ep move.l a0,-(sp) move.l (off_1E88).l,d0 movea.l (off_1E80).l,a0 jsr sub_2653C tst.w d0 seq d0 neg.b d0 movea.l (sp)+,a0 rts ; End of function sub_27572 ; =============== S U B R O U T I N E ======================================= sub_27590: ; CODE XREF: sub_21580+1Ep ; sub_21580+A4p ... movem.l d1-d2/a0-a1,-(sp) cmpi.b #2,d0 bne.s loc_275A4 move.l #$BD38391D,(dword_FFFF828A).w bra.s loc_2761C ; --------------------------------------------------------------------------- loc_275A4: ; CODE XREF: sub_27590+8j cmpi.b #4,d0 bne.s loc_27608 tst.b (word_FFFFA480).w beq.s loc_275B8 move.b (byte_FFFFA482).w,(byte_FFFFB2DE).w bra.s loc_275BC ; --------------------------------------------------------------------------- loc_275B8: ; CODE XREF: sub_27590+1Ej clr.b (byte_FFFFB2DE).w loc_275BC: ; CODE XREF: sub_27590+26j move.b (byte_FFFFB2DE).w,(byte_FFFF8288).w jsr sub_777EA tst.b d0 beq.s loc_275DA jsr sub_77816 movea.l #unk_FF8000,a0 bra.s loc_275DE ; --------------------------------------------------------------------------- loc_275DA: ; CODE XREF: sub_27590+3Aj movea.w #0,a0 loc_275DE: ; CODE XREF: sub_27590+48j move.l (dword_FF86A6).l,-(sp) move.w #$178,d2 moveq #$56,d1 ; 'V' movea.l #unk_FF8088,a1 move.w #$88,d0 ; '?' jsr sub_7792C tst.b (byte_FFFFBE7C).w bne.s loc_2761C clr.l (dword_FF86A6).l bra.s loc_2761C ; --------------------------------------------------------------------------- loc_27608: ; CODE XREF: sub_27590+18j cmpi.b #5,d0 bne.s loc_2761C move.l #$78AC5B06,(dword_FFFF828A).w jsr sub_27622 loc_2761C: ; CODE XREF: sub_27590+12j ; sub_27590+6Ej ... movem.l (sp)+,d1-d2/a0-a1 rts ; End of function sub_27590 ; =============== S U B R O U T I N E ======================================= sub_27622: ; CODE XREF: sub_27590+86p movem.l d0/a0,-(sp) move.l (off_1E88).l,d0 movea.l (off_1E80).l,a0 jsr sub_2653C sub.w d0,(word_FFFF828E).w movem.l (sp)+,d0/a0 rts ; End of function sub_27622 ; =============== S U B R O U T I N E ======================================= sub_27642: ; CODE XREF: sub_27258+78p move sr,-(sp) ori #$700,sr move.l d0,d3 clr.l d0 subq.l #1,d3 loc_2764E: ; CODE XREF: sub_27642+2Cj move.l (a0),d4 move.l #$A5A5A5A5,(a0) cmpi.l #$A5A5A5A5,(a0) bne.s loc_27674 move.l #$5A5A5A5A,(a0) cmpi.l #$5A5A5A5A,(a0) bne.s loc_27674 move.l d4,(a0)+ dbf d3,loc_2764E bra.s loc_2767A ; --------------------------------------------------------------------------- loc_27674: ; CODE XREF: sub_27642+1Aj ; sub_27642+28j move.l d4,(a0) move.b #1,d0 loc_2767A: ; CODE XREF: sub_27642+30j move (sp)+,sr rts ; End of function sub_27642 ; =============== S U B R O U T I N E ======================================= sub_2767E: ; CODE XREF: sub_27258+94p move sr,-(sp) ori #$700,sr move.l d0,d3 clr.l d0 clr.l d4 subq.l #1,d3 loc_2768C: ; CODE XREF: sub_2767E+26j move.b (a0),d4 move.b #$A5,(a0) cmpi.b #$A5,(a0) bne.s loc_276AA move.b #$5A,(a0) ; 'Z' cmpi.b #$5A,(a0) ; 'Z' bne.s loc_276AA move.b d4,(a0)+ dbf d3,loc_2768C bra.s loc_276B0 ; --------------------------------------------------------------------------- loc_276AA: ; CODE XREF: sub_2767E+18j ; sub_2767E+22j move.b d4,(a0) move.b #1,d0 loc_276B0: ; CODE XREF: sub_2767E+2Aj move (sp)+,sr rts ; End of function sub_2767E ; =============== S U B R O U T I N E ======================================= sub_276B4: ; CODE XREF: sub_64276+6Ep move sr,-(sp) ori #$700,sr move.l (unk_FFFFB542).w,d4 move.l d4,d3 sub.l (a0),d3 cmp.l d0,d3 bcs.s loc_276CA sub.l d0,d4 move.l d4,(a0) loc_276CA: ; CODE XREF: sub_276B4+10j cmp.l d0,d3 scc d0 neg.b d0 move (sp)+,sr rts ; End of function sub_276B4 ; =============== S U B R O U T I N E ======================================= sub_276D4: ; CODE XREF: sub_200DE+14p ; sub_20B50+12p ... move sr,-(sp) ori #$700,sr move.w (GlobalClock).w,d4 move.l d4,d3 sub.w (a0),d3 cmp.w d0,d3 bcs.s loc_276EA sub.w d0,d4 move.w d4,(a0) loc_276EA: ; CODE XREF: sub_276D4+10j cmp.w d0,d3 scc d0 neg.b d0 move (sp)+,sr rts ; End of function sub_276D4 ; =============== S U B R O U T I N E ======================================= sub_276F4: ; CODE XREF: DoLoopF+242p DoLoopF+592p ... move sr,-(sp) ori #$700,sr move.w (GlobalClock).w,d3 move.l d3,d4 sub.w (a0),d4 cmpi.w #$FCDF,d4 bcs.s loc_2770E subi.w #$FCDF,d3 move.w d3,(a0) loc_2770E: ; CODE XREF: sub_276F4+12j move (sp)+,sr rts ; End of function sub_276F4 ; =============== S U B R O U T I N E ======================================= sub_27712: ; CODE XREF: sub_27806+A6p jsr sub_27AA6 movea.w ($40816C).l,a2 tst.b (byte_FFFFB0C7).w beq.s loc_2772E move.w #1,($410000).l bra.s locret_27736 ; --------------------------------------------------------------------------- loc_2772E: ; CODE XREF: sub_27712+10j move.b #1,($40C000).l locret_27736: ; CODE XREF: sub_27712+1Aj rts ; End of function sub_27712 ; --------------------------------------------------------------------------- jsr sub_27AA6 move.b ($408154).l,d0 tst.b (byte_FFFFB0C7).w beq.s loc_27754 move.w #1,($410000).l bra.s locret_2775C ; --------------------------------------------------------------------------- loc_27754: ; CODE XREF: OS1:00027748j move.b #1,($40C000).l locret_2775C: ; CODE XREF: OS1:00027752j rts ; --------------------------------------------------------------------------- jsr sub_27AA6 move.b ($408154).l,d0 andi.b #$F,d0 tst.b (byte_FFFFB0C7).w beq.s loc_2777E move.w #1,($410000).l bra.s locret_27786 ; --------------------------------------------------------------------------- loc_2777E: ; CODE XREF: OS1:00027772j move.b #1,($40C000).l locret_27786: ; CODE XREF: OS1:0002777Cj rts ; =============== S U B R O U T I N E ======================================= sub_27788: ; CODE XREF: sub_27806+A0p jsr sub_27AA6 tst.b ($40816A).l beq.s loc_277B4 movea.w ($408162).l,a2 movea.w ($408164).l,a2 movea.w ($408166).l,a2 movea.w ($408168).l,a2 clr.b ($40816A).l loc_277B4: ; CODE XREF: sub_27788+Cj tst.b (byte_FFFFB0C7).w beq.s loc_277C4 move.w #1,($410000).l bra.s locret_277CC ; --------------------------------------------------------------------------- loc_277C4: ; CODE XREF: sub_27788+30j move.b #1,($40C000).l locret_277CC: ; CODE XREF: sub_27788+3Aj rts ; End of function sub_27788 ; =============== S U B R O U T I N E ======================================= sub_277CE: ; CODE XREF: sub_27806+8p jsr sub_27AA6 clr.b d0 cmpi.w #$4663,($408138).l beq.s loc_277EA cmpi.w #$8268,($408138).l bne.s loc_277EC loc_277EA: ; CODE XREF: sub_277CE+10j addq.b #1,d0 loc_277EC: ; CODE XREF: sub_277CE+1Aj tst.b (byte_FFFFB0C7).w beq.s loc_277FC move.w #1,($410000).l bra.s locret_27804 ; --------------------------------------------------------------------------- loc_277FC: ; CODE XREF: sub_277CE+22j move.b #1,($40C000).l locret_27804: ; CODE XREF: sub_277CE+2Cj rts ; End of function sub_277CE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_27806: ; CODE XREF: sub_2178:loc_221Ep ; DoLoopF:loc_2AF60p var_8 = -8 var_4 = -4 link a6,#-8 movem.l d0/a0,-(sp) jsr sub_277CE move.b d0,(byte_FFFFB0C6).w tst.b d0 beq.w loc_27938 jsr sub_27AA6 move.l ($408146).l,var_8(a6) tst.b (byte_FFFFB0C7).w beq.s loc_2783E movea.w #1,a0 move.w a0,($410000).l bra.s loc_27846 ; --------------------------------------------------------------------------- loc_2783E: ; CODE XREF: sub_27806+2Aj moveq #1,d0 move.b d0,($40C000).l loc_27846: ; CODE XREF: sub_27806+36j move.l var_8(a6),d3 beq.s loc_278A0 cmp.l (dword_8A6B4).l,d3 beq.s loc_2786C cmp.l (dword_8A6B8).l,d3 beq.s loc_2786C cmp.l (dword_8A6BC).l,d3 beq.s loc_2786C cmp.l (dword_8A6C0).l,d3 bne.s loc_2789A loc_2786C: ; CODE XREF: sub_27806+4Cj ; sub_27806+54j ... movea.l var_8(a6),a2 jsr (a2) jsr sub_27AA6 clr.l ($408146).l tst.b (byte_FFFFB0C7).w beq.s loc_27890 movea.w #1,a0 move.w a0,($410000).l bra.s loc_278A0 ; --------------------------------------------------------------------------- loc_27890: ; CODE XREF: sub_27806+7Cj moveq #1,d0 move.b d0,($40C000).l bra.s loc_278A0 ; --------------------------------------------------------------------------- loc_2789A: ; CODE XREF: sub_27806+64j clr.l ($408146).l loc_278A0: ; CODE XREF: sub_27806+44j ; sub_27806+88j ... jsr sub_27966 jsr sub_27788 jsr sub_27712 cmpi.w #$A5A5,(word_FFFFCAE8).w beq.s loc_278C6 bset #3,(byte_FFFF82A4).w moveq #1,d3 move.b d3,(byte_FFFF82A0).w loc_278C6: ; CODE XREF: sub_27806+B2j tst.b (byte_FFFFB0C7).w beq.s loc_278DC loc_278CC: ; CODE XREF: sub_27806+D2j clr.w ($410000).l tst.w ($410000).l bne.s loc_278CC bra.s loc_278EA ; --------------------------------------------------------------------------- loc_278DC: ; CODE XREF: sub_27806+C4j ; sub_27806+E2j clr.b ($40C000).l tst.b ($40C000).l bne.s loc_278DC loc_278EA: ; CODE XREF: sub_27806+D4j btst #7,($408154).l sne d3 neg.b d3 sne d3 neg.b d3 move.b d3,(byte_FFFFB0C8).w tst.b (byte_FFFFB0C7).w beq.s loc_2790E move.w #1,($410000).l bra.s loc_27916 ; --------------------------------------------------------------------------- loc_2790E: ; CODE XREF: sub_27806+FCj move.b #1,($40C000).l loc_27916: ; CODE XREF: sub_27806+106j tst.b (byte_FFFF82A0).w beq.s loc_27924 move.b #$55,(byte_FFFFB0C9).w ; 'U' bra.s loc_2792A ; --------------------------------------------------------------------------- loc_27924: ; CODE XREF: sub_27806+114j move.b #$AA,(byte_FFFFB0C9).w loc_2792A: ; CODE XREF: sub_27806+11Cj move.l (unk_FFFF82A2).w,d3 andi.l #$FFFFFFFF,d3 move.l d3,var_4(a6) loc_27938: ; CODE XREF: sub_27806+14j movem.l (sp)+,d0/a0 unlk a6 rts ; End of function sub_27806 ; --------------------------------------------------------------------------- jsr sub_27AA6 move.b d0,($408154).l tst.b (byte_FFFFB0C7).w beq.s loc_2795C move.w #1,($410000).l bra.s locret_27964 ; --------------------------------------------------------------------------- loc_2795C: ; CODE XREF: OS1:00027950j move.b #1,($40C000).l locret_27964: ; CODE XREF: OS1:0002795Aj rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_27966: ; CODE XREF: sub_27806:loc_278A0p var_A = -$A var_6 = -6 var_4 = -4 link a6,#-$A movem.l a0-a1/a4,-(sp) lea var_6(a6),a4 movea.l a4,a1 movea.l #$408156,a0 jsr sub_27A50 move.w var_4(a6),d3 clr.l var_A(a6) tst.b var_6(a6) beq.s loc_27A0A cmpi.w #1,d3 bcs.s loc_27A06 cmpi.w #9,d3 bhi.s loc_27A06 movea.l off_8A420(d3.w*4),a1 jmp (a1) ; --------------------------------------------------------------------------- loc_279A4: ; DATA XREF: OS4:0008A424o move.l #unk_FF8000,var_A(a6) bra.s loc_27A0A ; --------------------------------------------------------------------------- loc_279AE: ; DATA XREF: OS4:0008A428o move.l #unk_FF9000,var_A(a6) bra.s loc_27A0A ; --------------------------------------------------------------------------- loc_279B8: ; DATA XREF: OS4:0008A42Co move.l #unk_FFA000,var_A(a6) bra.s loc_27A0A ; --------------------------------------------------------------------------- loc_279C2: ; DATA XREF: OS4:0008A430o move.l #unk_FFC010,var_A(a6) bra.s loc_27A0A ; --------------------------------------------------------------------------- loc_279CC: ; DATA XREF: OS4:0008A434o bra.s loc_27A06 ; --------------------------------------------------------------------------- loc_279CE: ; DATA XREF: OS4:0008A438o move.l #$500,var_A(a6) bra.s loc_27A0A ; --------------------------------------------------------------------------- loc_279D8: ; DATA XREF: OS4:0008A43Co move.l #$400000,var_A(a6) bra.s loc_27A0A ; --------------------------------------------------------------------------- loc_279E2: ; DATA XREF: OS4:0008A440o move.l #$408000,var_A(a6) bra.s loc_27A0A ; --------------------------------------------------------------------------- loc_279EC: ; DATA XREF: OS4:off_8A444o tst.b (byte_FFFFB0C7).w beq.s loc_279FC move.l #$410000,var_A(a6) bra.s loc_27A0A ; --------------------------------------------------------------------------- loc_279FC: ; CODE XREF: sub_27966+8Aj move.l #$40C000,var_A(a6) bra.s loc_27A0A ; --------------------------------------------------------------------------- loc_27A06: ; CODE XREF: sub_27966+2Cj ; sub_27966+32j ... clr.l var_A(a6) loc_27A0A: ; CODE XREF: sub_27966+26j ; sub_27966+46j ... movea.l a4,a1 movea.l #$40815C,a0 jsr sub_27A50 move.w var_4(a6),d3 tst.b var_6(a6) beq.s loc_27A34 add.w d3,d3 bcs.s loc_27A2C add.w var_A+2(a6),d3 bcc.s loc_27A30 loc_27A2C: ; CODE XREF: sub_27966+BEj move.w #$FFFF,d3 loc_27A30: ; CODE XREF: sub_27966+C4j move.w d3,var_A+2(a6) loc_27A34: ; CODE XREF: sub_27966+BAj move.w var_A(a6),(word_FFFFB0CC).w move.w var_A+2(a6),(word_FFFFB0CE).w movea.l var_A(a6),a2 move.w (a2),(word_FFFFB0CA).w movem.l (sp)+,a0-a1/a4 unlk a6 rts ; End of function sub_27966 ; =============== S U B R O U T I N E ======================================= sub_27A50: ; CODE XREF: sub_266D2+14p ; sub_266D2+34p ... tst.b (byte_FFFFB0C6).w bne.s loc_27A62 clr.b (a1) clr.b 1(a1) clr.l 2(a1) bra.s locret_27AA4 ; --------------------------------------------------------------------------- loc_27A62: ; CODE XREF: sub_27A50+4j jsr sub_27AA6 move.b (a0),d3 move.b d3,(a1) cmpi.b #2,d3 bls.s loc_27A74 clr.b (a1) loc_27A74: ; CODE XREF: sub_27A50+20j tst.b 1(a0) bne.s loc_27A80 clr.b 1(a1) bra.s loc_27A86 ; --------------------------------------------------------------------------- loc_27A80: ; CODE XREF: sub_27A50+28j move.b #1,1(a1) loc_27A86: ; CODE XREF: sub_27A50+2Ej move.l 2(a0),2(a1) tst.b (byte_FFFFB0C7).w beq.s loc_27A9C move.w #1,($410000).l bra.s locret_27AA4 ; --------------------------------------------------------------------------- loc_27A9C: ; CODE XREF: sub_27A50+40j move.b #1,($40C000).l locret_27AA4: ; CODE XREF: sub_27A50+10j ; sub_27A50+4Aj rts ; End of function sub_27A50 ; =============== S U B R O U T I N E ======================================= sub_27AA6: ; CODE XREF: sub_2178:loc_21EAp ; sub_2178+ACp ... moveq #$14,d3 loc_27AA8: ; CODE XREF: sub_27AA6+28j tst.b (byte_FFFFB0C7).w beq.s loc_27ABE clr.w ($410000).l tst.w ($410000).l bne.s loc_27ACC bra.s locret_27AD0 ; --------------------------------------------------------------------------- loc_27ABE: ; CODE XREF: sub_27AA6+6j clr.b ($40C000).l tst.b ($40C000).l beq.s locret_27AD0 loc_27ACC: ; CODE XREF: sub_27AA6+14j subq.b #1,d3 bne.s loc_27AA8 locret_27AD0: ; CODE XREF: sub_27AA6+16j ; sub_27AA6+24j rts ; End of function sub_27AA6 ; =============== S U B R O U T I N E ======================================= sub_27AD2: ; CODE XREF: DoManyThings1+222p ; DoManyThings1+22Ap ... tst.b (byte_FFFF819D).w beq.s locret_27B24 move.b (ETAS_KE_ETAS_DATA_ACQUIRE_RATE_GROUP).l,d3 cmpi.b #1,d3 bhi.s loc_27B0C beq.s loc_27AFA cmpi.b #2,d0 bhi.s locret_27B24 beq.s loc_27B1C tst.b d0 bne.s loc_27AF6 loc_27AF2: ; CODE XREF: sub_27AD2+38j ; sub_27AD2+48j clr.b d0 bra.s loc_27B1E ; --------------------------------------------------------------------------- loc_27AF6: ; CODE XREF: sub_27AD2+1Ej ; sub_27AD2+34j ... moveq #1,d0 bra.s loc_27B1E ; --------------------------------------------------------------------------- loc_27AFA: ; CODE XREF: sub_27AD2+12j cmpi.b #3,d0 bhi.s locret_27B24 beq.s loc_27B1C cmpi.b #1,d0 bhi.s loc_27AF6 beq.s locret_27B24 bra.s loc_27AF2 ; --------------------------------------------------------------------------- loc_27B0C: ; CODE XREF: sub_27AD2+10j cmpi.b #3,d0 bhi.s loc_27B1C beq.s loc_27AF6 cmpi.b #1,d0 bls.s locret_27B24 bra.s loc_27AF2 ; --------------------------------------------------------------------------- loc_27B1C: ; CODE XREF: sub_27AD2+1Aj ; sub_27AD2+2Ej ... moveq #2,d0 loc_27B1E: ; CODE XREF: sub_27AD2+22j ; sub_27AD2+26j jsr sub_27B26 locret_27B24: ; CODE XREF: sub_27AD2+4j ; sub_27AD2+18j ... rts ; End of function sub_27AD2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_27B26: ; CODE XREF: sub_27AD2:loc_27B1Ep var_4 = -4 link a6,#-4 movem.l d1-d2/d6-a1/a4,-(sp) andi.w #$FF,d0 mulu.w #$14,d0 lea $2110(d0.l),a0 movea.l (a0),a1 moveq #1,d5 cmp.b (a1),d5 bne.w loc_27C70 clr.w d4 move.l d4,d0 move.b 4(a1),d3 movea.l 4(a0),a2 movea.l (a0),a4 addq.l #8,a4 moveq #8,d1 cmp.w $12(a0),d1 bhi.s loc_27B84 loc_27B5E: ; CODE XREF: sub_27B26+5Cj tst.b d3 beq.s loc_27B84 movea.l (a4),a3 move.l 4(a3),4(a2) move.l (a3),(a2) addq.l #8,a2 addq.l #4,a4 move.l a4,var_4(a6) addq.b #1,d0 addq.w #8,d4 subq.b #1,d3 move.w $12(a0),d2 sub.w d4,d2 cmp.w d2,d1 bls.s loc_27B5E loc_27B84: ; CODE XREF: sub_27B26+36j ; sub_27B26+3Aj add.b d3,d0 move.b 5(a1),d3 move.l d0,d2 asl.b #2,d2 andi.l #$FF,d2 add.l (a0),d2 addq.l #8,d2 move.l d2,var_4(a6) move.w $12(a0),d6 sub.w d4,d6 moveq #4,d7 cmp.w d6,d7 bhi.s loc_27BCC loc_27BA8: ; CODE XREF: sub_27B26+A4j tst.b d3 beq.s loc_27BCC movea.l var_4(a6),a4 movea.l (a4),a3 move.l (a3),(a2) addq.l #4,a2 addq.l #4,a4 move.l a4,var_4(a6) addq.b #1,d0 addq.w #4,d4 subq.b #1,d3 move.w $12(a0),d2 sub.w d4,d2 cmp.w d2,d7 bls.s loc_27BA8 loc_27BCC: ; CODE XREF: sub_27B26+80j ; sub_27B26+84j add.b d3,d0 move.b 6(a1),d3 move.l d0,d2 asl.b #2,d2 andi.l #$FF,d2 add.l (a0),d2 addq.l #8,d2 move.l d2,var_4(a6) move.w $12(a0),d6 sub.w d4,d6 cmpi.w #2,d6 bcs.s loc_27C16 loc_27BF0: ; CODE XREF: sub_27B26+EEj tst.b d3 beq.s loc_27C16 movea.l var_4(a6),a4 movea.l (a4),a3 move.w (a3),(a2) addq.l #2,a2 addq.l #4,a4 move.l a4,var_4(a6) addq.b #1,d0 addq.w #2,d4 subq.b #1,d3 move.w $12(a0),d2 sub.w d4,d2 cmpi.w #2,d2 bcc.s loc_27BF0 loc_27C16: ; CODE XREF: sub_27B26+C8j ; sub_27B26+CCj add.b d3,d0 move.b 7(a1),d3 move.l d0,d2 asl.b #2,d2 andi.l #$FF,d2 add.l (a0),d2 addq.l #8,d2 move.l d2,var_4(a6) move.w $12(a0),d6 sub.w d4,d6 cmpi.w #1,d6 bcs.s loc_27C5E loc_27C3A: ; CODE XREF: sub_27B26+136j tst.b d3 beq.s loc_27C5E movea.l var_4(a6),a1 movea.l (a1),a3 move.b (a3),(a2) addq.l #1,a2 addq.l #4,a1 move.l a1,var_4(a6) addq.b #1,d0 addq.w #1,d4 subq.b #1,d3 move.w $12(a0),d2 sub.w d4,d2 tst.w d2 bhi.s loc_27C3A loc_27C5E: ; CODE XREF: sub_27B26+112j ; sub_27B26+116j movea.l a0,a3 movea.l $C(a0),a2 move.w $10(a3),(a2) movea.l 8(a0),a2 move.w $10(a3),(a2) loc_27C70: ; CODE XREF: sub_27B26+1Cj movem.l (sp)+,d1-d2/d6-a1/a4 unlk a6 rts ; End of function sub_27B26 ; =============== S U B R O U T I N E ======================================= sub_27C78: ; CODE XREF: DoLoopF+41Ap move.b (ETAS_KE_ETAS_SLEW_CCP_MODE).l,d3 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes cmpi.b #2,d3 bhi.s loc_27CC4 beq.s loc_27CA4 tst.b d3 bne.s loc_27C90 clr.b (byte_FFFFA456).w bra.s loc_27CC4 ; --------------------------------------------------------------------------- loc_27C90: ; CODE XREF: sub_27C78+10j move.b #1,(byte_FFFFA456).w clr.b (byte_FFFFA457).w move.w (ETAS_KE_ETAS_SLEW_CCP_ABS).l,(word_FFFFA458).w bra.s loc_27CC4 ; --------------------------------------------------------------------------- loc_27CA4: ; CODE XREF: sub_27C78+Cj move.b #2,(byte_FFFFA456).w move.w (ETAS_KE_ETAS_SLEW_CCP_MOD).l,d3 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Percent blt.s loc_27CB8 clr.b (byte_FFFFA457).w bra.s loc_27CC0 ; --------------------------------------------------------------------------- loc_27CB8: ; CODE XREF: sub_27C78+38j move.b #1,(byte_FFFFA457).w neg.w d3 loc_27CC0: ; CODE XREF: sub_27C78+3Ej move.w d3,(word_FFFFA458).w loc_27CC4: ; CODE XREF: sub_27C78+Aj ; sub_27C78+16j ... move.b (ETAS_KE_ETAS_SLEW_EQVR_MODE).l,d3 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes cmpi.b #2,d3 bhi.s loc_27D10 beq.s loc_27CF0 tst.b d3 bne.s loc_27CDC clr.b (byte_FFFFA45A).w bra.s loc_27D10 ; --------------------------------------------------------------------------- loc_27CDC: ; CODE XREF: sub_27C78+5Cj move.b #1,(byte_FFFFA45A).w clr.b (byte_FFFFA45B).w move.w (ETAS_KE_ETAS_SLEW_EQVR_MODE+2).l,(word_FFFFA45C).w ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes bra.s loc_27D10 ; --------------------------------------------------------------------------- loc_27CF0: ; CODE XREF: sub_27C78+58j move.b #2,(byte_FFFFA45A).w move.w (ETAS_KE_ETAS_SLEW_EQVR_MOD).l,d3 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Equiv_Ratio blt.s loc_27D04 clr.b (byte_FFFFA45B).w bra.s loc_27D0C ; --------------------------------------------------------------------------- loc_27D04: ; CODE XREF: sub_27C78+84j move.b #1,(byte_FFFFA45B).w neg.w d3 loc_27D0C: ; CODE XREF: sub_27C78+8Aj move.w d3,(word_FFFFA45C).w loc_27D10: ; CODE XREF: sub_27C78+56j ; sub_27C78+62j ... move.b (ETAS_KE_ETAS_SLEW_EQVR_MOD+2).l,d3 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Equiv_Ratio cmpi.b #2,d3 bhi.s loc_27D5C beq.s loc_27D3C tst.b d3 bne.s loc_27D28 clr.b (byte_FFFFA45E).w bra.s loc_27D5C ; --------------------------------------------------------------------------- loc_27D28: ; CODE XREF: sub_27C78+A8j move.b #1,(byte_FFFFA45E).w clr.b (byte_FFFFA45F).w move.w (ETAS_KE_ETAS_SLEW_EGR_ABS).l,(word_FFFFA460).w bra.s loc_27D5C ; --------------------------------------------------------------------------- loc_27D3C: ; CODE XREF: sub_27C78+A4j move.b #2,(byte_FFFFA45E).w move.w (ETAS_KE_ETAS_SLEW_EGR_MOD).l,d3 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Percent blt.s loc_27D50 clr.b (byte_FFFFA45F).w bra.s loc_27D58 ; --------------------------------------------------------------------------- loc_27D50: ; CODE XREF: sub_27C78+D0j move.b #1,(byte_FFFFA45F).w neg.w d3 loc_27D58: ; CODE XREF: sub_27C78+D6j move.w d3,(word_FFFFA460).w loc_27D5C: ; CODE XREF: sub_27C78+A2j ; sub_27C78+AEj ... move.b (ETAS_KE_ETAS_SLEW_FANHZ_MODE).l,d3 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes cmpi.b #2,d3 bhi.s loc_27DA8 beq.s loc_27D88 tst.b d3 bne.s loc_27D74 clr.b (byte_FFFFA462).w bra.s loc_27DA8 ; --------------------------------------------------------------------------- loc_27D74: ; CODE XREF: sub_27C78+F4j move.b #1,(byte_FFFFA462).w clr.b (byte_FFFFA463).w move.w (ETAS_KE_ETAS_SLEW_FANHZ_ABS).l,(word_FFFFA464).w bra.s loc_27DA8 ; --------------------------------------------------------------------------- loc_27D88: ; CODE XREF: sub_27C78+F0j move.b #2,(byte_FFFFA462).w move.w (ETAS_KE_ETAS_SLEW_FANHZ_MOD).l,d3 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Hertz blt.s loc_27D9C clr.b (byte_FFFFA463).w bra.s loc_27DA4 ; --------------------------------------------------------------------------- loc_27D9C: ; CODE XREF: sub_27C78+11Cj move.b #1,(byte_FFFFA463).w neg.w d3 loc_27DA4: ; CODE XREF: sub_27C78+122j move.w d3,(word_FFFFA464).w loc_27DA8: ; CODE XREF: sub_27C78+EEj ; sub_27C78+FAj ... move.b (ETAS_KE_ETAS_SLEW_FFS_HZ_MODE).l,d3 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes cmpi.b #2,d3 bhi.s loc_27DF4 beq.s loc_27DD4 tst.b d3 bne.s loc_27DC0 clr.b (byte_FFFFA466).w bra.s loc_27DF4 ; --------------------------------------------------------------------------- loc_27DC0: ; CODE XREF: sub_27C78+140j move.b #1,(byte_FFFFA466).w clr.b (byte_FFFFA467).w move.w (ETAS_KE_ETAS_SLEW_FFS_HZ_ABS).l,(word_FFFFA468).w bra.s loc_27DF4 ; --------------------------------------------------------------------------- loc_27DD4: ; CODE XREF: sub_27C78+13Cj move.b #2,(byte_FFFFA466).w move.w (ETAS_KE_ETAS_SLEW_FFS_HZ_MOD).l,d3 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Hertz blt.s loc_27DE8 clr.b (byte_FFFFA467).w bra.s loc_27DF0 ; --------------------------------------------------------------------------- loc_27DE8: ; CODE XREF: sub_27C78+168j move.b #1,(byte_FFFFA467).w neg.w d3 loc_27DF0: ; CODE XREF: sub_27C78+16Ej move.w d3,(word_FFFFA468).w loc_27DF4: ; CODE XREF: sub_27C78+13Aj ; sub_27C78+146j ... move.b (ETAS_KE_ETAS_SLEW_FFS_LOW_TIME_MODE).l,d3 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes cmpi.b #2,d3 bhi.s loc_27E40 beq.s loc_27E20 tst.b d3 bne.s loc_27E0C clr.b (byte_FFFFA46A).w bra.s loc_27E40 ; --------------------------------------------------------------------------- loc_27E0C: ; CODE XREF: sub_27C78+18Cj move.b #1,(byte_FFFFA46A).w clr.b (byte_FFFFA46B).w move.w (ETAS_KE_ETAS_SLEW_FFS_LOW_TIME_ABS).l,(word_FFFFA46C).w bra.s loc_27E40 ; --------------------------------------------------------------------------- loc_27E20: ; CODE XREF: sub_27C78+188j move.b #2,(byte_FFFFA46A).w move.w (ETAS_KE_ETAS_SLEW_FFS_LOW_TIME_MOD).l,d3 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Milliseconds blt.s loc_27E34 clr.b (byte_FFFFA46B).w bra.s loc_27E3C ; --------------------------------------------------------------------------- loc_27E34: ; CODE XREF: sub_27C78+1B4j move.b #1,(byte_FFFFA46B).w neg.w d3 loc_27E3C: ; CODE XREF: sub_27C78+1BAj move.w d3,(word_FFFFA46C).w loc_27E40: ; CODE XREF: sub_27C78+186j ; sub_27C78+192j ... move.b (ETAS_KE_ETAS_SLEW_FUEL_ECON_SIGN).l,(word_FFFFA46E+1).w move.b (ETAS_KE_ETAS_SLEW_FUEL_ECON_MODE).l,d3 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes cmpi.b #2,d3 bhi.s loc_27E6A beq.s loc_27E64 tst.b d3 bne.s loc_27E60 clr.b (word_FFFFA46E).w bra.s loc_27E6A ; --------------------------------------------------------------------------- loc_27E60: ; CODE XREF: sub_27C78+1E0j moveq #1,d4 bra.s loc_27E66 ; --------------------------------------------------------------------------- loc_27E64: ; CODE XREF: sub_27C78+1DCj moveq #2,d4 loc_27E66: ; CODE XREF: sub_27C78+1EAj move.b d4,(word_FFFFA46E).w loc_27E6A: ; CODE XREF: sub_27C78+1DAj ; sub_27C78+1E6j clr.b (word_FFFFA480+1).w move.b (ETAS_KE_ETAS_SLEW_NVMEM_MODE).l,d3 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes cmpi.b #2,d3 bhi.s loc_27EA4 beq.s loc_27E96 tst.b d3 bne.s loc_27E86 clr.b (word_FFFFA480).w bra.s loc_27EA4 ; --------------------------------------------------------------------------- loc_27E86: ; CODE XREF: sub_27C78+206j move.b #1,(word_FFFFA480).w move.b (ETAS_KE_ETAS_SLEW_NVMEM_ABS).l,(byte_FFFFA482).w bra.s loc_27EA4 ; --------------------------------------------------------------------------- loc_27E96: ; CODE XREF: sub_27C78+202j move.b #2,(word_FFFFA480).w move.b (ETAS_KE_ETAS_SLEW_NVMEM_MOD).l,(byte_FFFFA482).w loc_27EA4: ; CODE XREF: sub_27C78+200j ; sub_27C78+20Cj ... clr.b (word_FFFFA48C+1).w move.b (ETAS_KE_ETAS_SLEW_TCS_DISCRETE_MODE).l,d3 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes cmpi.b #2,d3 bhi.s loc_27EDE beq.s loc_27ED0 tst.b d3 bne.s loc_27EC0 clr.b (word_FFFFA48C).w bra.s loc_27EDE ; --------------------------------------------------------------------------- loc_27EC0: ; CODE XREF: sub_27C78+240j move.b #1,(word_FFFFA48C).w move.b (ETAS_KE_ETAS_SLEW_TCS_DISCRETE_ABS).l,(byte_FFFFA48E).w bra.s loc_27EDE ; --------------------------------------------------------------------------- loc_27ED0: ; CODE XREF: sub_27C78+23Cj move.b #2,(word_FFFFA48C).w move.b (ETAS_KE_ETAS_SLEW_TCS_DISCRETE_MOD).l,(byte_FFFFA48E).w ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; BOOLEAN loc_27EDE: ; CODE XREF: sub_27C78+23Aj ; sub_27C78+246j ... move.b (ETAS_KE_ETAS_SLEW_TCS_DC_MODE).l,d3 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes cmpi.b #2,d3 bhi.s loc_27F2A beq.s loc_27F0A tst.b d3 bne.s loc_27EF6 clr.b (byte_FFFFA488).w bra.s loc_27F2A ; --------------------------------------------------------------------------- loc_27EF6: ; CODE XREF: sub_27C78+276j move.b #1,(byte_FFFFA488).w clr.b (byte_FFFFA489).w move.w (ETAS_KE_ETAS_SLEW_TCS_DC_ABS).l,(word_FFFFA48A).w bra.s loc_27F2A ; --------------------------------------------------------------------------- loc_27F0A: ; CODE XREF: sub_27C78+272j move.b #2,(byte_FFFFA488).w move.w (ETAS_KE_ETAS_SLEW_TCS_DC_MOD).l,d3 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Percent blt.s loc_27F1E clr.b (byte_FFFFA489).w bra.s loc_27F26 ; --------------------------------------------------------------------------- loc_27F1E: ; CODE XREF: sub_27C78+29Ej move.b #1,(byte_FFFFA489).w neg.w d3 loc_27F26: ; CODE XREF: sub_27C78+2A4j move.w d3,(word_FFFFA48A).w loc_27F2A: ; CODE XREF: sub_27C78+270j ; sub_27C78+27Cj ... move.b (ETAS_KE_ETAS_SLEW_SPARK_CRANK_MODE).l,d3 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes cmpi.b #2,d3 bhi.s loc_27F80 beq.s loc_27F62 tst.b d3 bne.s loc_27F42 clr.b (byte_FFFFA490).w bra.s loc_27F80 ; --------------------------------------------------------------------------- loc_27F42: ; CODE XREF: sub_27C78+2C2j moveq #1,d4 move.b d4,(byte_FFFFA490).w move.w (ETAS_KE_ETAS_SLEW_SPARK_CRANK_ABS).l,d3 move.w d3,(word_FFFFA492).w tst.w d3 blt.s loc_27F5C loc_27F56: ; CODE XREF: sub_27C78+2FCj clr.b (byte_FFFFA491).w bra.s loc_27F80 ; --------------------------------------------------------------------------- loc_27F5C: ; CODE XREF: sub_27C78+2DCj move.b d4,(byte_FFFFA491).w bra.s loc_27F7C ; --------------------------------------------------------------------------- loc_27F62: ; CODE XREF: sub_27C78+2BEj move.b #2,(byte_FFFFA490).w move.w (ETAS_KE_ETAS_SLEW_SPARK_CRANK_MOD).l,d3 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Degrees move.w d3,(word_FFFFA492).w tst.w d3 bge.s loc_27F56 move.b #1,(byte_FFFFA491).w loc_27F7C: ; CODE XREF: sub_27C78+2E8j neg.w (word_FFFFA492).w loc_27F80: ; CODE XREF: sub_27C78+2BCj ; sub_27C78+2C8j ... move.b (ETAS_KE_ETAS_SLEW_SPARK_RUN_MODE).l,d3 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes cmpi.b #2,d3 bhi.s loc_27FD6 beq.s loc_27FB8 tst.b d3 bne.s loc_27F98 clr.b (byte_FFFFA494).w bra.s loc_27FD6 ; --------------------------------------------------------------------------- loc_27F98: ; CODE XREF: sub_27C78+318j moveq #1,d4 move.b d4,(byte_FFFFA494).w move.w (ETAS_KE_ETAS_SLEW_SPARK_RUN_ABS).l,d3 move.w d3,(word_FFFFA496).w tst.w d3 blt.s loc_27FB2 loc_27FAC: ; CODE XREF: sub_27C78+352j clr.b (byte_FFFFA495).w bra.s loc_27FD6 ; --------------------------------------------------------------------------- loc_27FB2: ; CODE XREF: sub_27C78+332j move.b d4,(byte_FFFFA495).w bra.s loc_27FD2 ; --------------------------------------------------------------------------- loc_27FB8: ; CODE XREF: sub_27C78+314j move.b #2,(byte_FFFFA494).w move.w (ETAS_KE_ETAS_SLEW_SPARK_RUN_MOD).l,d3 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Degrees move.w d3,(word_FFFFA496).w tst.w d3 bge.s loc_27FAC move.b #1,(byte_FFFFA495).w loc_27FD2: ; CODE XREF: sub_27C78+33Ej neg.w (word_FFFFA496).w loc_27FD6: ; CODE XREF: sub_27C78+312j ; sub_27C78+31Ej ... move.b (ETAS_KE_ETAS_SLEW_IAC_AIRFLOW_MODE).l,d3 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes cmpi.b #2,d3 bhi.s loc_2802C beq.s loc_2800E tst.b d3 bne.s loc_27FEE clr.b (byte_FFFFA470).w bra.s loc_2802C ; --------------------------------------------------------------------------- loc_27FEE: ; CODE XREF: sub_27C78+36Ej moveq #1,d4 move.b d4,(byte_FFFFA470).w move.w (ETAS_KE_ETAS_SLEW_IAC_AIRFLOW_ABS).l,d3 move.w d3,(word_FFFFA472).w tst.w d3 blt.s loc_28008 loc_28002: ; CODE XREF: sub_27C78+3A8j clr.b (byte_FFFFA471).w bra.s loc_2802C ; --------------------------------------------------------------------------- loc_28008: ; CODE XREF: sub_27C78+388j move.b d4,(byte_FFFFA471).w bra.s loc_28028 ; --------------------------------------------------------------------------- loc_2800E: ; CODE XREF: sub_27C78+36Aj move.b #2,(byte_FFFFA470).w move.w (ETAS_KE_ETAS_SLEW_IAC_AIRFLOW_MOD).l,d3 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Grams/Second move.w d3,(word_FFFFA472).w tst.w d3 bge.s loc_28002 move.b #1,(byte_FFFFA471).w loc_28028: ; CODE XREF: sub_27C78+394j neg.w (word_FFFFA472).w loc_2802C: ; CODE XREF: sub_27C78+368j ; sub_27C78+374j ... move.b (ETAS_KE_ETAS_SLEW_IAC_RPM_MODE).l,d3 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes cmpi.b #2,d3 bhi.s loc_28082 beq.s loc_28064 tst.b d3 bne.s loc_28044 clr.b (byte_FFFFA478).w bra.s loc_28082 ; --------------------------------------------------------------------------- loc_28044: ; CODE XREF: sub_27C78+3C4j moveq #1,d4 move.b d4,(byte_FFFFA478).w move.w (ETAS_KE_ETAS_SLEW_IAC_RPM_ABS).l,d3 move.w d3,(word_FFFFA47A).w tst.w d3 blt.s loc_2805E loc_28058: ; CODE XREF: sub_27C78+3FEj clr.b (byte_FFFFA479).w bra.s loc_28082 ; --------------------------------------------------------------------------- loc_2805E: ; CODE XREF: sub_27C78+3DEj move.b d4,(byte_FFFFA479).w bra.s loc_2807E ; --------------------------------------------------------------------------- loc_28064: ; CODE XREF: sub_27C78+3C0j move.b #2,(byte_FFFFA478).w move.w (ETAS_KE_ETAS_SLEW_IAC_RPM_MOD).l,d3 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; RPM move.w d3,(word_FFFFA47A).w tst.w d3 bge.s loc_28058 move.b #1,(byte_FFFFA479).w loc_2807E: ; CODE XREF: sub_27C78+3EAj neg.w (word_FFFFA47A).w loc_28082: ; CODE XREF: sub_27C78+3BEj ; sub_27C78+3CAj ... clr.b (byte_FFFFA475).w move.b (ETAS_KE_ETAS_SLEW_IAC_POSITION_MODE).l,d3 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes cmpi.b #2,d3 bhi.s loc_280BC beq.s loc_280AC tst.b d3 bne.s loc_2809E clr.b (byte_FFFFA474).w bra.s loc_280BC ; --------------------------------------------------------------------------- loc_2809E: ; CODE XREF: sub_27C78+41Ej move.b #1,(byte_FFFFA474).w movea.w (ETAS_KE_ETAS_SLEW_IAC_POSITION_ABS).l,a2 bra.s loc_280B8 ; --------------------------------------------------------------------------- loc_280AC: ; CODE XREF: sub_27C78+41Aj move.b #2,(byte_FFFFA474).w movea.w (ETAS_KE_ETAS_SLEW_IAC_POSITION_MOD).l,a2 ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; Steps loc_280B8: ; CODE XREF: sub_27C78+432j move.w a2,(word_FFFFA476).w loc_280BC: ; CODE XREF: sub_27C78+418j ; sub_27C78+424j clr.b (byte_FFFFA485).w move.b (ETAS_KE_ETAS_SLEW_OIL_LEVEL_MODE).l,d3 ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes cmpi.b #2,d3 bhi.s locret_280F6 beq.s loc_280E8 tst.b d3 bne.s loc_280D8 clr.b (byte_FFFFA484).w bra.s locret_280F6 ; --------------------------------------------------------------------------- loc_280D8: ; CODE XREF: sub_27C78+458j move.b #1,(byte_FFFFA484).w move.b (ETAS_KE_ETAS_SLEW_OIL_LEVEL_ABS).l,(byte_FFFFA486).w bra.s locret_280F6 ; --------------------------------------------------------------------------- loc_280E8: ; CODE XREF: sub_27C78+454j move.b #2,(byte_FFFFA484).w move.b (ETAS_KE_ETAS_SLEW_OIL_LEVEL_MOD).l,(byte_FFFFA486).w ; This cal is modifiable at runtime when using ETAS instrumentation and is added to a variables contents when in Modify mode. ; BOOLEAN locret_280F6: ; CODE XREF: sub_27C78+452j ; sub_27C78+45Ej ... rts ; End of function sub_27C78 ; =============== S U B R O U T I N E ======================================= sub_280F8: ; CODE XREF: DoLoopF+3AAp movem.l d0-d1/a0-a1,-(sp) clr.w d1 loc_280FE: ; CODE XREF: sub_280F8+122j move.l d1,d0 mulu.w #$16,d0 tst.l $3C4A.l(d0.l) bne.s loc_2816C movea.l $3C3C.l(d0.l),a2 cmpi.b #1,(a2) bne.s loc_2815A lea $3C3C.l(d0.l),a2 move.b 4(a2),d3 cmpi.b #1,d3 bhi.s loc_2814C beq.s loc_2813E movea.l 6(a2),a3 movea.l $A(a2),a2 loc_28138: ; CODE XREF: sub_280F8+E8j move.b (a3),(a2) bra.w loc_28214 ; --------------------------------------------------------------------------- loc_2813E: ; CODE XREF: sub_280F8+36j movea.l 6(a2),a3 movea.l $A(a2),a2 loc_28146: ; CODE XREF: sub_280F8+F4j move.w (a3),(a2) bra.w loc_28214 ; --------------------------------------------------------------------------- loc_2814C: ; CODE XREF: sub_280F8+34j movea.l 6(a2),a3 movea.l $A(a2),a2 loc_28154: ; CODE XREF: sub_280F8+100j move.l (a3),(a2) bra.w loc_28214 ; --------------------------------------------------------------------------- loc_2815A: ; CODE XREF: sub_280F8+22j lea $3C3C.l(d0.l),a0 jsr sub_2822C bra.w loc_28214 ; --------------------------------------------------------------------------- loc_2816C: ; CODE XREF: sub_280F8+14j movea.l $3C3C.l(d0.l),a0 move.b (a0),d3 cmpi.b #1,d3 bne.s loc_281B6 lea $3C3C.l(d0.l),a0 movea.l a0,a2 move.b 4(a2),d3 cmpi.b #1,d3 bhi.s loc_281AA beq.s loc_2819E movea.l 6(a2),a3 movea.l $A(a2),a2 move.b (a3),(a2) bra.s loc_2820E ; --------------------------------------------------------------------------- loc_2819E: ; CODE XREF: sub_280F8+98j movea.l 6(a2),a3 movea.l $A(a2),a2 move.w (a3),(a2) bra.s loc_2820E ; --------------------------------------------------------------------------- loc_281AA: ; CODE XREF: sub_280F8+96j movea.l 6(a2),a3 movea.l $A(a2),a2 move.l (a3),(a2) bra.s loc_2820E ; --------------------------------------------------------------------------- loc_281B6: ; CODE XREF: sub_280F8+82j cmpi.b #2,d3 bne.s loc_281FC lea $3C3C.l(d0.l),a1 movea.l a1,a0 jsr sub_2822C move.b 4(a1),d3 cmpi.b #1,d3 bhi.s loc_281F0 beq.s loc_281E4 movea.l $E(a1),a3 movea.l $12(a1),a2 bra.w loc_28138 ; --------------------------------------------------------------------------- loc_281E4: ; CODE XREF: sub_280F8+DEj movea.l $E(a1),a3 movea.l $12(a1),a2 bra.w loc_28146 ; --------------------------------------------------------------------------- loc_281F0: ; CODE XREF: sub_280F8+DCj movea.l $E(a1),a3 movea.l $12(a1),a2 bra.w loc_28154 ; --------------------------------------------------------------------------- loc_281FC: ; CODE XREF: sub_280F8+C2j lea $3C3C.l(d0.l),a1 movea.l a1,a0 jsr sub_2822C movea.l a1,a0 loc_2820E: ; CODE XREF: sub_280F8+A4j ; sub_280F8+B0j ... jsr sub_28250 loc_28214: ; CODE XREF: sub_280F8+42j ; sub_280F8+50j ... addq.w #1,d1 cmpi.w #$1D,d1 bls.w loc_280FE jsr nullsub_1 movem.l (sp)+,d0-d1/a0-a1 rts ; End of function sub_280F8 ; =============== S U B R O U T I N E ======================================= nullsub_1: ; CODE XREF: sub_280F8+126p rts ; End of function nullsub_1 ; =============== S U B R O U T I N E ======================================= sub_2822C: ; CODE XREF: sub_280F8+6Ap ; sub_280F8+CEp ... move.b 4(a0),d3 cmpi.b #1,d3 bhi.s loc_28248 beq.s loc_28240 movea.l $A(a0),a2 clr.b (a2) bra.s locret_2824E ; --------------------------------------------------------------------------- loc_28240: ; CODE XREF: sub_2822C+Aj movea.l $A(a0),a2 clr.w (a2) bra.s locret_2824E ; --------------------------------------------------------------------------- loc_28248: ; CODE XREF: sub_2822C+8j movea.l $A(a0),a2 clr.l (a2) locret_2824E: ; CODE XREF: sub_2822C+12j ; sub_2822C+1Aj rts ; End of function sub_2822C ; =============== S U B R O U T I N E ======================================= sub_28250: ; CODE XREF: sub_280F8:loc_2820Ep move.b 4(a0),d3 cmpi.b #1,d3 bhi.s loc_2826C beq.s loc_28264 movea.l $12(a0),a2 clr.b (a2) bra.s locret_28272 ; --------------------------------------------------------------------------- loc_28264: ; CODE XREF: sub_28250+Aj movea.l $12(a0),a2 clr.w (a2) bra.s locret_28272 ; --------------------------------------------------------------------------- loc_2826C: ; CODE XREF: sub_28250+8j movea.l $12(a0),a2 clr.l (a2) locret_28272: ; CODE XREF: sub_28250+12j ; sub_28250+1Aj rts ; End of function sub_28250 ; =============== S U B R O U T I N E ======================================= sub_28274: ; CODE XREF: sub_4CCBC+48p cmpi.b #1,(ETAS_KE_ETAS_SLEW_GEAR_OVERRIDE_MODE).l ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes bne.s loc_28288 move.b (ETAS_KE_ETAS_SLEW_GEAR_OVERRIDE_ABS).l,(byte_FFFFA2A0).w bra.s locret_2828C ; --------------------------------------------------------------------------- loc_28288: ; CODE XREF: sub_28274+8j clr.b (byte_FFFFA2A0).w locret_2828C: ; CODE XREF: sub_28274+12j rts ; End of function sub_28274 ; =============== S U B R O U T I N E ======================================= sub_2828E: ; CODE XREF: sub_4CB12+4Ap cmpi.b #1,(ETAS_KE_ETAS_SLEW_PRELD_ADP_CEL_MODE).l ; Use this cal when slewing with ETAS to select thedesired mode. ; Slew_Modes bne.s loc_282A8 move.b (ETAS_KE_ETAS_SLEW_PRELD_ADP_CEL_ABS).l,d3 move.b d3,(byte_FFFFA2DA).w move.b d3,(byte_FFFFB3F9).w bra.s locret_282B0 ; --------------------------------------------------------------------------- loc_282A8: ; CODE XREF: sub_2828E+8j clr.b (byte_FFFFA2DA).w clr.b (byte_FFFFB3F9).w locret_282B0: ; CODE XREF: sub_2828E+18j rts ; End of function sub_2828E ; =============== S U B R O U T I N E ======================================= sub_282B2: ; CODE XREF: sub_75370+280p clr.l (dword_FFFF81BE).w clr.l (dword_FFFF81C2).w clr.l (dword_FFFF81C6).w clr.l (dword_FFFF81CA).w rts ; End of function sub_282B2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_282C4: ; CODE XREF: DoManyThings1+196p ; DoLoopC+5Ep ... var_7E66 = -$7E66 var_7E62 = -$7E62 var_4 = -4 link a6,#-4 movem.l d0-d2/d6-a0,-(sp) move.w #$500,d1 cmp.w (word_FFFFB4A2).w,d1 bhi.s loc_282DC move.w (GlobalClock).w,(word_FFFFAD38).w loc_282DC: ; CODE XREF: sub_282C4+10j movea.w #7,a2 btst #7,(byte_FFFFBF32).w sne d4 neg.b d4 beq.s loc_282F2 move.w (GlobalClock).w,(word_FFFFAD3A).w loc_282F2: ; CODE XREF: sub_282C4+26j move.b (ThrottleControlMode2?).w,d3 cmpi.b #3,d3 bne.w loc_283BA movea.l (dword_FFFFB5DE).w,a2 clr.l d0 move.w $A(a2),d0 add.l d0,(EngineRunTime).w movea.l (dword_FFFFB5DE).w,a2 clr.l d0 move.w $A(a2),d0 add.l d0,(dword_FFFFAD2C).w tst.b (byte_FFFFB37A).w bne.s loc_28328 btst #5,(byte_FFFFAA92).w beq.s loc_2832E loc_28328: ; CODE XREF: sub_282C4+5Aj movea.l (dword_FFFFAA7C).w,a2 bra.s loc_28332 ; --------------------------------------------------------------------------- loc_2832E: ; CODE XREF: sub_282C4+62j movea.l (dword_FFFFAA80).w,a2 loc_28332: ; CODE XREF: sub_282C4+68j move.l a2,var_4(a6) clr.l d0 move.b (ENG_STATE_KE_NO_REF_TIME).l,d0 ; Engine is considered stopped if no ref pulses have occured in this amount of time. ; Seconds move.l (unk_FFFFB542).w,d3 sub.l var_4(a6),d3 cmp.l d0,d3 blt.w loc_286CA cmp.w (word_FFFFB4A2).w,d1 bhi.s loc_28384 move.b #2,(ThrottleControlMode2?).w move.w (word_FFFFAA8A).w,(word_FFFFAD40).w moveq #6,d0 jsr sub_27590 move.l (dword_FFFFAD2C).w,(dword_FFFF81BA).w move.l (EngineRunTime).w,(dword_FFFFAD30).w moveq #6,d0 jsr sub_28730 move.b #$30,(byte_FFFF904F).w ; '0' bra.w loc_286CA ; --------------------------------------------------------------------------- loc_28384: ; CODE XREF: sub_282C4+8Cj move.b #4,(ThrottleControlMode2?).w move.w (word_FFFFAA8A).w,(word_FFFFAD40).w moveq #9,d0 jsr sub_27590 move.l (dword_FFFFAD2C).w,(dword_FFFF81BA).w move.l (EngineRunTime).w,(dword_FFFFAD30).w moveq #9,d0 jsr sub_28730 clr.b (byte_FFFFAD22).w move.b #$30,(byte_FFFF904F).w ; '0' bra.w loc_286CA ; --------------------------------------------------------------------------- loc_283BA: ; CODE XREF: sub_282C4+36j tst.b d3 bne.s loc_28400 cmp.w (word_FFFFB4A2).w,d1 bcc.s loc_283D2 move.b #1,(byte_FFFFAD22).w move.b #2,(ThrottleControlMode2?).w bra.s loc_283DC ; --------------------------------------------------------------------------- loc_283D2: ; CODE XREF: sub_282C4+FEj clr.b (byte_FFFFAD22).w move.b #4,(ThrottleControlMode2?).w loc_283DC: ; CODE XREF: sub_282C4+10Cj moveq #2,d0 jsr sub_27590 tst.b (byte_FFFFB54A).w bne.s loc_283EE clr.l (dword_FFFF81BA).w loc_283EE: ; CODE XREF: sub_282C4+124j moveq #2,d0 jsr sub_28730 move.b #$30,(byte_FFFF904F).w ; '0' bra.w loc_286CA ; --------------------------------------------------------------------------- loc_28400: ; CODE XREF: sub_282C4+F8j moveq #1,d2 cmp.b d3,d2 bne.w loc_28530 clr.l (EngineRunTime).w move.w (word_FFFFADB4).w,d3 clr.b d4 movea.w #$400,a0 add.w a0,d3 moveq #5,d6 muls.w d6,d3 moveq #6,d7 divs.w d7,d3 movea.l #$9AC4,a2 tblu.w (a2),d3 cmp.w (EngineRPM_PID_000C___).w,d3 bcc.w loc_284C2 move.w (word_FFFFAA8A).w,d0 sub.w (word_FFFFAD40).w,d0 move.w (CoolantTemperatureOrDefault).w,d3 add.w a0,d3 muls.w d6,d3 divs.w d7,d3 tblu.w (CRITICAL_REGION_KV_STARTRUN_PULSES).l,d3 ; Number of consecutive low resolution reference pulses above KV_Startrun_RPM required for transition from Crank to Run. ; Pulses cmp.w d3,d0 bls.s loc_28470 move.b #3,(ThrottleControlMode2?).w moveq #8,d0 jsr sub_27590 moveq #8,d0 jsr sub_28730 move.b #$30,(byte_FFFF904F).w ; '0' bra.w loc_286CA ; --------------------------------------------------------------------------- loc_28470: ; CODE XREF: sub_282C4+18Aj tst.b (byte_FFFFB37A).w bne.s loc_2847E btst #5,(byte_FFFFAA92).w beq.s loc_28484 loc_2847E: ; CODE XREF: sub_282C4+1B0j movea.l (dword_FFFFAA7C).w,a2 bra.s loc_28488 ; --------------------------------------------------------------------------- loc_28484: ; CODE XREF: sub_282C4+1B8j movea.l (dword_FFFFAA80).w,a2 loc_28488: ; CODE XREF: sub_282C4+1BEj move.l a2,var_4(a6) clr.l d0 move.b (ENG_STATE_KE_NO_REF_TIME).l,d0 ; Engine is considered stopped if no ref pulses have occured in this amount of time. ; Seconds move.l (unk_FFFFB542).w,d3 sub.l var_4(a6),d3 cmp.l d0,d3 blt.w loc_286CA move.b #2,(ThrottleControlMode2?).w move.l d4,d0 jsr sub_27590 clr.b d0 jsr sub_28730 move.b #$30,(byte_FFFF904F).w ; '0' bra.w loc_286CA ; --------------------------------------------------------------------------- loc_284C2: ; CODE XREF: sub_282C4+16Aj move.w (word_FFFFAA8A).w,(word_FFFFAD40).w tst.b (byte_FFFFB37A).w bne.s loc_284D6 btst #5,(byte_FFFFAA92).w beq.s loc_284DC loc_284D6: ; CODE XREF: sub_282C4+208j movea.l (dword_FFFFAA7C).w,a2 bra.s loc_284E0 ; --------------------------------------------------------------------------- loc_284DC: ; CODE XREF: sub_282C4+210j movea.l (dword_FFFFAA80).w,a2 loc_284E0: ; CODE XREF: sub_282C4+216j move.l a2,var_4(a6) clr.l d0 move.b (ENG_STATE_KE_NO_REF_TIME).l,d0 ; Engine is considered stopped if no ref pulses have occured in this amount of time. ; Seconds move.l (unk_FFFFB542).w,d3 sub.l var_4(a6),d3 cmp.l d0,d3 bge.s loc_28510 move.w (word_FFFFAD38).w,var_4(a6) move.w (GlobalClock).w,d0 sub.w var_4(a6),d0 cmp.w (CRITICAL_REGION_KE_IGNITION_OFF_TIME).l,d0 ; Ignition must be off for this period of time before the state changes due to ignition being off. ; Seconds bcs.w loc_286CA loc_28510: ; CODE XREF: sub_282C4+232j move.b #2,(ThrottleControlMode2?).w move.l d4,d0 jsr sub_27590 clr.b d0 jsr sub_28730 move.b #$30,(byte_FFFF904F).w ; '0' bra.w loc_286CA ; --------------------------------------------------------------------------- loc_28530: ; CODE XREF: sub_282C4+140j cmpi.b #2,d3 bne.s loc_285A8 clr.l (EngineRunTime).w move.w (word_FFFFAD38).w,var_4(a6) move.w (GlobalClock).w,d0 sub.w var_4(a6),d0 cmp.w (CRITICAL_REGION_KE_IGNITION_OFF_TIME).l,d0 ; Ignition must be off for this period of time before the state changes due to ignition being off. ; Seconds bcs.s loc_2857A move.b #4,(ThrottleControlMode2?).w move.w (word_FFFFAA8A).w,(word_FFFFAD40).w move.l d2,d0 jsr sub_27590 move.l d2,d0 jsr sub_28730 clr.b (byte_FFFFAD22).w move.b #$30,(byte_FFFF904F).w ; '0' bra.w loc_286CA ; --------------------------------------------------------------------------- loc_2857A: ; CODE XREF: sub_282C4+28Aj tst.w (word_FFFFAA8A).w bhi.s loc_2858A btst #6,(byte_FFFFAA92).w beq.w loc_286CA loc_2858A: ; CODE XREF: sub_282C4+2BAj move.b d2,(ThrottleControlMode2?).w moveq #7,d0 jsr sub_27590 moveq #7,d0 jsr sub_28730 move.b #$30,(byte_FFFF904F).w ; '0' bra.w loc_286CA ; --------------------------------------------------------------------------- loc_285A8: ; CODE XREF: sub_282C4+270j cmpi.b #4,d3 bne.w loc_28630 clr.l (EngineRunTime).w cmp.w (word_FFFFB4A2).w,d1 bcc.s loc_285DE move.b #2,(ThrottleControlMode2?).w moveq #3,d0 jsr sub_27590 moveq #3,d0 jsr sub_28730 move.b d2,(byte_FFFFAD22).w move.b #$30,(byte_FFFF904F).w ; '0' bra.w loc_286CA ; --------------------------------------------------------------------------- loc_285DE: ; CODE XREF: sub_282C4+2F4j tst.b (byte_FFFF9DA4).w bne.w loc_286CA move.w (word_FFFFAD38).w,var_4(a6) move.w (GlobalClock).w,d3 sub.w var_4(a6),d3 cmpi.w #$3C0,d3 bcs.w loc_286CA move.w (word_FFFFAD3A).w,var_4(a6) move.w (GlobalClock).w,d3 sub.w var_4(a6),d3 cmpi.w #$3C0,d3 bcc.s loc_2861A tst.b (VEH_SYS_KE_VUNLOCK_USED).l ; Indicates if the Vunlock ignition switch wiring scheme is on the vehicle. ; BOOLEAN bne.w loc_286CA loc_2861A: ; CODE XREF: sub_282C4+34Aj move.b #5,(ThrottleControlMode2?).w jsr sub_286D2 move.b #$30,(byte_FFFF904F).w ; '0' bra.w loc_286CA ; --------------------------------------------------------------------------- loc_28630: ; CODE XREF: sub_282C4+2E8j moveq #5,d6 cmp.b d3,d6 bne.w loc_286CA clr.l (EngineRunTime).w move.l (dword_FFFFAD3C).w,var_4(a6) move.l (unk_FFFFB542).w,d1 sub.l var_4(a6),d1 move.l d1,(dword_FFFFAD34).w cmpi.w #$500,(word_FFFFB4A2).w bhi.s loc_28688 move.l (dword_FFFFAD3C).w,var_4(a6) move.l (unk_FFFFB542).w,d3 sub.l var_4(a6),d3 cmp.l (CRITICAL_REGION_KE_EXTENDED_POWEROFF_ON_TIME).l,d3 ; Amount of time the Engine will stay in the Extended Poweroff state to allow the EVAP diagnostic to run. ; Seconds_L bge.s loc_28688 cmpi.b #7,(byte_FFFFACD6).w beq.s loc_2867A tst.b (byte_FFFFA19F).w bne.s loc_28680 loc_2867A: ; CODE XREF: sub_282C4+3AEj tst.b (byte_FFFF92CE).w bne.s loc_28688 loc_28680: ; CODE XREF: sub_282C4+3B4j and.b (VEH_SYS_KE_VUNLOCK_USED).l,d4 ; Indicates if the Vunlock ignition switch wiring scheme is on the vehicle. ; BOOLEAN beq.s loc_286CA loc_28688: ; CODE XREF: sub_282C4+390j ; sub_282C4+3A6j ... clr.b d2 moveq #1,d3 loc_2868C: ; CODE XREF: sub_282C4+3F4j clr.l d4 move.b d3,d4 move.l dword_FFFF81BA(d4.w*4),d0 cmp.l d0,d1 bls.s loc_286B2 tst.b d2 bne.s loc_286B2 cmpi.b #1,d3 bls.s loc_286AA move.l d0,$1C+var_7E66(d4.w*4) loc_286AA: ; CODE XREF: sub_282C4+3DEj move.l d1,$1C+var_7E62(d4.w*4) bra.s loc_286B4 ; --------------------------------------------------------------------------- loc_286B2: ; CODE XREF: sub_282C4+3D4j ; sub_282C4+3D8j moveq #1,d2 loc_286B4: ; CODE XREF: sub_282C4+3ECj addq.b #1,d3 cmp.b d3,d6 bcc.s loc_2868C clr.b (ThrottleControlMode2?).w jsr sub_286FA ; --------------------------------------------------------------------------- move.b #$30,(byte_FFFF904F).w ; '0' loc_286CA: ; CODE XREF: sub_282C4+84j ; sub_282C4+BCj ... movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_282C4 ; =============== S U B R O U T I N E ======================================= sub_286D2: ; CODE XREF: sub_282C4+35Cp move.l d0,-(sp) move sr,-(sp) ori #$700,sr moveq #4,d0 jsr sub_28730 moveq #4,d0 jsr sub_27590 clr.b (byte_FFFFAD22).w move.l (unk_FFFFB542).w,(dword_FFFFAD3C).w move (sp)+,sr move.l (sp)+,d0 rts ; End of function sub_286D2 ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_286FA: ; CODE XREF: sub_282C4+3FAp move.l d0,-(sp) move sr,-(sp) ori #$700,sr moveq #5,d0 jsr sub_28730 jsr nullsub_2 move.b #$30,(byte_FFFF904F).w ; '0' jsr sub_21580 moveq #5,d0 jsr sub_27590 jsr (sub_54C).l ; End of function sub_286FA ; --------------------------------------------------------------------------- move (sp)+,sr move.l (sp)+,d0 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_28730: ; CODE XREF: sub_282C4+B0p ; sub_282C4+E2p ... link a6,#-6 movem.l d1-d2/d6-a1/a4,-(sp) move.b d0,d2 clr.w (word_FFFFAA8A).w clr.w (word_FFFFAA8C).w clr.l d1 move.b d0,d1 movea.l off_88D92(d1.w*4),a2 jmp (a2) ; End of function sub_28730 ; --------------------------------------------------------------------------- loc_28750: ; DATA XREF: OS4:off_88D92o bclr #6,(byte_FFFFAA92).w bclr #3,(byte_FFFFAA92).w move.b #1,(byte_FFFFAA93).w bclr #0,(byte_FFFFFE21).w tst.b (byte_FFFFB37A).w bne.w loc_28840 move.w (word_FFFFFE0A).w,-6(a6) bset #0,-5(a6) move.w -6(a6),(word_FFFFFE0A).w bra.w loc_28840 ; --------------------------------------------------------------------------- loc_28786: ; DATA XREF: OS4:00088D96o move.b #1,(byte_FFFFAA93).w bclr #0,(byte_FFFFFE21).w tst.b (byte_FFFFB37A).w bne.s loc_287AA move.w (word_FFFFFE0A).w,-6(a6) bset #0,-5(a6) move.w -6(a6),(word_FFFFFE0A).w loc_287AA: ; CODE XREF: OS1:00028796j bclr #4,(byte_FFFFAA92).w clr.w (word_FFFFAA84).w bra.w loc_2887E ; --------------------------------------------------------------------------- loc_287B8: ; DATA XREF: OS4:00088D9Ao bra.s loc_28804 ; --------------------------------------------------------------------------- loc_287BA: ; DATA XREF: OS4:00088D9Eo move.b #1,(byte_FFFFAA93).w bclr #4,(byte_FFFFAA92).w clr.w (word_FFFFAA84).w clr.w (word_FFFFAA8E).w loc_287CE: ; DATA XREF: OS4:00088DA2o bra.w loc_2887E ; --------------------------------------------------------------------------- loc_287D2: ; DATA XREF: OS4:00088DAAo bclr #6,(byte_FFFFAA92).w bclr #3,(byte_FFFFAA92).w move.b #1,(byte_FFFFAA93).w bclr #0,(byte_FFFFFE21).w tst.b (byte_FFFFB37A).w bne.s loc_28836 move.w (word_FFFFFE0A).w,-6(a6) bset #0,-5(a6) move.w -6(a6),(word_FFFFFE0A).w bra.s loc_28836 ; --------------------------------------------------------------------------- loc_28804: ; CODE XREF: OS1:loc_287B8j ; DATA XREF: OS4:00088DAEo ... move.b #1,(byte_FFFFAA93).w bra.s loc_2887E ; --------------------------------------------------------------------------- loc_2880C: ; DATA XREF: OS4:00088DB6o bclr #6,(byte_FFFFAA92).w bclr #3,(byte_FFFFAA92).w bclr #0,(byte_FFFFFE21).w tst.b (byte_FFFFB37A).w bne.s loc_28836 move.w (word_FFFFFE0A).w,-6(a6) bset #0,-5(a6) move.w -6(a6),(word_FFFFFE0A).w loc_28836: ; CODE XREF: OS1:000287EEj ; OS1:00028802j ... bclr #4,(byte_FFFFAA92).w clr.w (word_FFFFAA84).w loc_28840: ; CODE XREF: OS1:0002876Cj ; OS1:00028782j clr.w (word_FFFFAA8E).w btst #7,(byte_FFFFAA92).w beq.s loc_28872 bclr #7,(byte_FFFFAA92).w movea.w #$FFFF,a4 move.w a4,(word_FFFFBFF2).w move.w a4,(word_FFFFBFF4).w clr.b (byte_FFFFBFF7).w clr.b (byte_FFFFBFF1).w jsr sub_797D2 jsr sub_7979C loc_28872: ; CODE XREF: OS1:0002884Aj bclr #5,(byte_FFFFAA92).w move.l (unk_FFFFB542).w,(dword_FFFFAA7C).w loc_2887E: ; CODE XREF: OS1:000287B4j ; OS1:loc_287CEj ... jsr sub_7C832 clr.l d1 move.b d2,d1 movea.l off_88DBA(d1.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_28892: ; DATA XREF: OS4:off_88DBAo ; OS4:00088DD2o ... bra.s loc_288F0 ; --------------------------------------------------------------------------- loc_28894: ; DATA XREF: OS4:00088DC6o tst.b (byte_FFFFB37A).w beq.s loc_288AC move.l (dword_8A7E0).l,-4(a6) move.w (word_8A7DE).l,-6(a6) bra.s loc_288BC ; --------------------------------------------------------------------------- loc_288AC: ; CODE XREF: OS1:00028898j move.l (dword_8A7DA).l,-4(a6) move.w (word_8A7D8).l,-6(a6) loc_288BC: ; CODE XREF: OS1:000288AAj move.b (CIC_KE_CIC_MEDIUM_RES_REF_FILTER).l,d3 lsl.b #3,d3 andi.b #$F8,d3 andi.b #7,-2(a6) or.b d3,-2(a6) bclr #2,-6(a6) tst.b (VEH_SPEED_KE_VSS_APPLICATION_TYPE).l beq.s loc_288E6 bset #2,-6(a6) loc_288E6: ; CODE XREF: OS1:000288DEj lea -6(a6),a0 jsr sub_78394 loc_288F0: ; CODE XREF: OS1:loc_28892j jsr sub_78242 loc_288F6: ; DATA XREF: OS4:00088DBEo ; OS4:00088DC2o ... cmpi.b #3,d2 bhi.s loc_2890E cmpi.b #1,d2 bls.s loc_2890E clr.w (word_FFFFAC86).w clr.w (word_FFFFAC82).w clr.w (word_FFFFAC84).w loc_2890E: ; CODE XREF: OS1:000288FAj ; OS1:00028900j clr.l d1 move.b d2,d1 movea.l off_88DE2(d1.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_2891C: ; DATA XREF: OS4:off_88DE2o ; OS4:00088DEAo ... lea (OBD2_CONTROL_KV_DIAGNOSTIC_ENABLE).l,a3 ; Boolean flags for enabling the OBD II diagnostics ; BOOLEAN lea (byte_FFFFA18E).w,a2 moveq #$29,d0 ; ')' loc_28928: ; CODE XREF: OS1:0002892Aj move.w (a3)+,(a2)+ dbf d0,loc_28928 loc_2892E: ; DATA XREF: OS4:00088DE6o ; OS4:00088DF2o ... move.l d2,d0 jsr sub_7840E move.l d2,d0 jsr sub_7AB4C move.l d2,d0 jsr sub_7B7B8 move.l d2,d0 jsr sub_7BA28 move.l d2,d0 jsr sub_7AD24 move.l d2,d0 jsr sub_7A99E move.l d2,d0 jsr sub_27338 move.l d2,d0 jsr sub_85342 cmpi.b #2,d2 bne.s loc_2897A jsr sub_80770 loc_2897A: ; CODE XREF: OS1:00028972j cmpi.b #3,d2 bhi.s loc_289CE beq.s loc_2898A cmpi.b #1,d2 bls.s loc_289CE bra.s loc_289C2 ; --------------------------------------------------------------------------- loc_2898A: ; CODE XREF: OS1:00028980j clr.b (byte_FFFFAF43).w clr.b (byte_FFFFAF3B).w clr.b (byte_FFFFAF3D).w clr.b (byte_FFFFAF3C).w clr.b (byte_FFFFAF3E).w clr.b (byte_FFFFAF40).w clr.b (byte_FFFFAF3F).w clr.b (byte_FFFFAF41).w clr.b (byte_FFFFAF44).w clr.b (byte_FFFFAF45).w clr.b (byte_FFFFAF46).w clr.b (byte_FFFFAF47).w clr.b (byte_FFFFAF48).w clr.b (byte_FFFFAF49).w loc_289C2: ; CODE XREF: OS1:00028988j move.w (word_FFFF90EA).w,(word_FFFFAF4A).w move.w (word_FFFF90EA).w,(word_FFFFAF4C).w loc_289CE: ; CODE XREF: OS1:0002897Ej ; OS1:00028986j move.l d2,d0 jsr sub_83562 move.l d2,d0 jsr sub_809E4 move.l d2,d0 jsr sub_7C23C move.l d2,d0 jsr sub_81344 move.l d2,d0 jsr sub_84A9E move.l d2,d0 jsr sub_7AF40 move.l d2,d0 jsr sub_2D978 move.l d2,d0 jsr sub_34852 clr.l d1 move.b d2,d1 movea.l off_88E0A(d1.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_28A1C: ; DATA XREF: OS4:00088E12o bra.s loc_28A46 ; --------------------------------------------------------------------------- loc_28A1E: ; DATA XREF: OS4:00088E16o ; OS4:00088E22o jsr sub_7990A tst.b (byte_FFFFB37A).w beq.s loc_28A6E clr.b (byte_FFFFB556).w clr.b d1 move.w #$D8,d0 ; '?' jsr (sub_FC0).l jsr sub_797F4 clr.b (byte_FFFFB557).w bra.s loc_28A6E ; --------------------------------------------------------------------------- loc_28A46: ; CODE XREF: OS1:loc_28A1Cj ; DATA XREF: OS4:00088E0Eo ... jsr sub_7990A bra.s loc_28A6E ; --------------------------------------------------------------------------- loc_28A4E: ; DATA XREF: OS4:off_88E0Ao tst.b (byte_FFFFB37A).w beq.s loc_28A6E clr.b (byte_FFFFB556).w clr.b d1 move.w #$D8,d0 ; '?' jsr (sub_FC0).l jsr sub_797F4 clr.b (byte_FFFFB557).w loc_28A6E: ; CODE XREF: OS1:00028A28j ; OS1:00028A44j ... move.l d2,d0 jsr sub_3CB70 move.l d2,d0 jsr sub_3BA86 move.l d2,d0 jsr sub_3B498 move.l d2,d0 jsr sub_8349C cmpi.b #6,d2 beq.s loc_28AD2 cmpi.b #3,d2 bhi.s loc_28AD8 beq.s loc_28ABE cmpi.b #1,d2 bls.s loc_28AD8 clr.b (byte_FFFFB2E0).w clr.b (byte_FFFFB2E5).w clr.b (byte_FFFFB2E4).w move.b #1,(byte_FFFFB2E8).w clr.b (byte_FFFFB2E9).w clr.b (byte_FFFFB2EC).w bra.s loc_28ADC ; --------------------------------------------------------------------------- loc_28ABE: ; CODE XREF: OS1:00028A9Aj clr.b (byte_FFFFB2E0).w clr.w (word_FFFFB2E2).w clr.b (byte_FFFFB2E5).w clr.w (word_FFFFB2E6).w clr.b (byte_FFFFB2E4).w loc_28AD2: ; CODE XREF: OS1:00028A92j move.b #1,(byte_FFFFB2E8).w loc_28AD8: ; CODE XREF: OS1:00028A98j ; OS1:00028AA0j clr.b (byte_FFFFB2EA).w loc_28ADC: ; CODE XREF: OS1:00028ABCj clr.b (byte_FFFFB2EB).w move.l d2,d0 jsr sub_84692 move.l d2,d0 jsr sub_4A9E4 move.l d2,d0 jsr sub_2C3C0 move.l d2,d0 jsr sub_2F19C move.l d2,d0 jsr sub_2CB22 move.l d2,d0 jsr sub_35C4E clr.l d1 move.b d2,d1 movea.l off_88E32(d1.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_28B1E: ; DATA XREF: OS4:off_88E32o ; OS4:00088E36o bra.w loc_28C28 ; --------------------------------------------------------------------------- loc_28B22: ; DATA XREF: OS4:00088E3Ao clr.b d0 jsr sub_21662 moveq #1,d1 move.b d1,(byte_FFFFA59E).w clr.b (byte_FFFFA59D).w move.b d1,(byte_FFFFA5A1).w clr.b (byte_FFFFA5A2).w clr.b (byte_FFFFA5A0).w clr.w (word_FFFFA5A4).w clr.b (byte_FFFFA5A6).w clr.b (byte_FFFF900E).w tst.b (byte_FFFFB54B).w beq.s loc_28B5C move.w (word_FFFF82CA).w,d3 add.w (word_FFFF82CC).w,d3 beq.s loc_28B68 loc_28B5C: ; CODE XREF: OS1:00028B50j move.w #$3E8,(word_FFFF82CA).w move.w #$FC18,(word_FFFF82CC).w loc_28B68: ; CODE XREF: OS1:00028B5Aj clr.b (byte_FFFF9010).w andi.b #$1F,(byte_FFFFA018).w tst.b (byte_FFFFB54B).w beq.s loc_28B82 move.w (word_FFFF86B4).w,d3 add.w (word_FFFF86B6).w,d3 beq.s loc_28B8E loc_28B82: ; CODE XREF: OS1:00028B76j move.w #$7D0,(word_FFFF86B4).w move.w #$F830,(word_FFFF86B6).w loc_28B8E: ; CODE XREF: OS1:00028B80j jsr sub_21480 jsr InitializeThrottleAreaStuff jsr sub_222F6 jsr sub_20BC4 tst.l (dword_FF86A6).l beq.s loc_28BE8 loc_28BAE: ; CODE XREF: OS1:00028BE6j jsr sub_243A0 bra.s loc_28C28 ; --------------------------------------------------------------------------- loc_28BB6: ; DATA XREF: OS4:00088E3Eo clr.b d0 jsr sub_21662 move.b #1,(byte_FFFFA59E).w clr.b (byte_FFFFA59D).w jsr sub_21480 jsr InitializeThrottleAreaStuff jsr sub_222F6 jsr sub_20BEC tst.l (dword_FF86A6).l bne.s loc_28BAE loc_28BE8: ; CODE XREF: OS1:00028BACj jsr sub_24338 bra.s loc_28C28 ; --------------------------------------------------------------------------- loc_28BF0: ; DATA XREF: OS4:00088E42o move.b (byte_FFFFAFB6).w,d3 moveq #2,d1 cmp.b d3,d1 bne.s loc_28C02 loc_28BFA: ; CODE XREF: OS1:00028C0Ej jsr sub_246E0 bra.s loc_28C1A ; --------------------------------------------------------------------------- loc_28C02: ; CODE XREF: OS1:00028BF8j moveq #1,d6 cmp.b d3,d6 bne.s loc_28C10 jsr sub_243A0 bra.s loc_28BFA ; --------------------------------------------------------------------------- loc_28C10: ; CODE XREF: OS1:00028C06j tst.b d3 bne.s loc_28C1A move.b #3,(byte_FFFFAFB6).w loc_28C1A: ; CODE XREF: OS1:00028C00j ; OS1:00028C12j ; DATA XREF: ... bra.s loc_28C28 ; --------------------------------------------------------------------------- loc_28C1C: ; DATA XREF: OS4:00088E4Eo jsr sub_214D6 clr.b (byte_FFFF900F).w nop loc_28C28: ; CODE XREF: OS1:loc_28B1Ej ; OS1:00028BB4j ... move.l d2,d0 jsr sub_4B1C8 clr.l d1 move.b d2,d1 cmpi.w #1,d1 bcs.s loc_28CA6 movea.l off_88E56(d1.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_28C44: ; DATA XREF: OS4:00088E5Eo ; OS4:00088E62o jsr sub_55544 jsr sub_4F5C2 jsr sub_5B2B6 jsr sub_5824A jsr sub_8797C jsr sub_5A2F2 jsr sub_4EE50 jsr sub_592A4 jsr sub_56A08 jsr sub_5D87C jsr sub_5CDBC jsr sub_55730 jsr sub_53DA0 jsr sub_4C296 jsr sub_50618 jsr sub_53174 nop loc_28CA6: ; CODE XREF: OS1:00028C38j ; DATA XREF: OS4:00088E5Ao ... move.l d2,d0 jsr sub_7F15A move.l d2,d0 jsr sub_7B73E move.l d2,d0 jsr sub_2D722 move.l d2,d0 jsr sub_5F3EC move.l d2,d0 jsr sub_64CDE move.l d2,d0 jsr sub_75B80 move.l d2,d0 jsr sub_758D8 move.l d2,d0 jsr sub_741A4 move.l d2,d0 jsr sub_2E67E move.l d2,d0 jsr sub_2C70E move.l d2,d0 jsr sub_7CAF4 move.l d2,d0 jsr sub_75CAC move.l d2,d0 jsr sub_75D26 clr.l d1 move.b d2,d1 movea.l off_88E7E(d1.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_28D1C: ; DATA XREF: OS4:00088E86o move.w (EngineRPM_PID_000C___).w,(word_FFFFA560).w jsr sub_7E000 bra.s loc_28D36 ; --------------------------------------------------------------------------- loc_28D2A: ; DATA XREF: OS4:off_88E7Eo ; OS4:00088E96o ... jsr sub_7DDFA loc_28D30: ; DATA XREF: OS4:00088E8Ao ; OS4:00088E9Eo move.w (EngineRPM_PID_000C___).w,(word_FFFFA560).w loc_28D36: ; CODE XREF: OS1:00028D28j ; DATA XREF: OS4:00088E82o ... move.l d2,d0 jsr sub_803A4 move.l d2,d0 jsr sub_7D66C clr.l d1 move.b d2,d1 movea.l off_88EA6(d1.w*4),a1 jmp (a1) ; --------------------------------------------------------------------------- loc_28D54: ; DATA XREF: OS4:00088EAEo clr.b (byte_FFFFB157).w clr.b (byte_FFFFB156).w clr.b (byte_FFFFB158).w andi.b #$83,(byte_FFFFB15A).w ori.b #$40,(byte_FFFFB15A).w ; '@' bset #7,(byte_FFFFB15A).w andi.b #$FC,(byte_FFFFB15A).w andi.b #$83,(byte_FFFFB15B).w ori.b #4,(byte_FFFFB15B).w ; Def? movea.l #C2_TX_MSGS_KV_C2_MSGS_QUEUED_AT_MODE10_P1,a1 ; Class2 msgs queued during powerup phase 1 ; Tx_Msg_ID_Record_Type movea.l #C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE10_P1,a0 ; Class2 msgs allowed during powerup phase 1 ; Tx_Msg_ID_Record_Type move.b (byte_FFFFB15A).w,d0 jsr ModeInitHandler clr.b (byte_FFFFA8C6).w clr.b (byte_FFFFA8C7).w clr.b (byte_FFFFA8C8).w move.w #$F6,d0 ; '?' jsr sub_5F0BE move.w #$F8,d0 ; '?' jsr sub_5F0BE move.w #$F9,d0 ; '?' jsr sub_5F0BE move.w #$FA,d0 ; '?' jsr sub_5F0BE move.w #$FE,d0 ; '?' jsr sub_5F0BE move.w #$FB,d0 ; '?' jsr sub_5F0BE move.w #$FC,d0 ; '?' jsr sub_5F0BE move.w #$FD,d0 ; '?' jsr sub_5F0BE move.w #$FF,d0 jsr sub_5F0BE move.w #$F7,d0 ; '?' jsr sub_5F0BE move.w #$104,d0 jsr sub_5F0BE move.w #$103,d0 jsr sub_5F0BE move.w #$100,d0 jsr sub_5F0BE move.w #$101,d0 jsr sub_5F0BE jsr sub_4A3D6 move.w #$A0,(word_FFFFAAF8).w ; '?' move.w (GlobalClock).w,(word_FFFFAAF6).w clr.b (byte_FFFF9A2C).w clr.b (byte_FFFF9A28).w clr.b (byte_FFFF9A29).w moveq #1,d1 move.b d1,(byte_FFFF9A2A).w clr.b (byte_FFFF9A35).w clr.b (byte_FFFF9A36).w clr.b (byte_FFFF9A37).w moveq #8,d6 move.b d6,(byte_FFFF9A2B).w move.b d1,(byte_FFFF9A2D).w move.l d1,d3 loc_28E6E: ; CODE XREF: OS1:00028E7Cj clr.l d7 move.b d3,d7 clr.b unk_FFFF9A17(d7.w*2) addq.b #1,d3 cmp.b d3,d6 bcc.s loc_28E6E move.b d1,(byte_FFFFB159).w move.b d1,(byte_FFFFB15D).w move.b d1,(byte_FFFFB15C).w jsr TenSecondDelayIsInHere loc_28E90: ; DATA XREF: OS4:00088EC6o bra.s loc_28EC4 ; --------------------------------------------------------------------------- loc_28E92: ; DATA XREF: OS4:00088EBEo ; OS4:00088EC2o bra.s loc_28EC4 ; --------------------------------------------------------------------------- loc_28E94: ; DATA XREF: OS4:off_88EA6o ; OS4:00088EB2o bra.s loc_28EC4 ; --------------------------------------------------------------------------- loc_28E96: ; DATA XREF: OS4:00088EAAo ; OS4:off_88ECAo bra.s loc_28EC4 ; --------------------------------------------------------------------------- loc_28E98: ; DATA XREF: OS4:00088EB6o andi.b #$83,(byte_FFFFB15A).w ori.b #$70,(byte_FFFFB15A).w ; 'p' bset #7,(byte_FFFFB15A).w andi.b #$FC,(byte_FFFFB15A).w movea.w #0,a1 movea.l #C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE28,a0 ; Class2 msgs allowed during mode28 active ; Tx_Msg_ID_Record_Type move.b (byte_FFFFB15A).w,d0 jsr ModeInitHandler loc_28EC4: ; CODE XREF: OS1:loc_28E90j ; OS1:loc_28E92j ... move.l d2,d0 jsr sub_47DA2 loc_28ECC: ; DATA XREF: OS4:00088EBAo move.l d2,d0 jsr sub_3E454 move.l d2,d0 jsr sub_75362 move.l d2,d0 jsr sub_8120A move.l d2,d0 jsr sub_2F712 moveq #2,d1 cmp.b d2,d1 bne.s loc_28F26 move.w (OBD2_CONTROL_KE_MISFIRE_DIAG_RPM_LIMIT).l,d4 ; Engine speed below which the misfire diagnostic data collection is enabled. ; RPM move.w (DI_CASE_KE_CASE_FUEL_CUTOFF_THRESHOLD).l,d3 ; Threshold above which fuel will be cut off to all cylinders. ; RPM cmp.w d4,d3 bls.s loc_28F08 move.w d3,(word_FFFFA188).w bra.s loc_28F0C ; --------------------------------------------------------------------------- loc_28F08: ; CODE XREF: OS1:00028F00j move.w d4,(word_FFFFA188).w loc_28F0C: ; CODE XREF: OS1:00028F06j move.w (word_FFFFA188).w,d3 add.w (OBD2_CONTROL_KE_MISFIRE_DIAG_RPM_HYSTERESIS).l,d3 ; This plus KE_Misfire_Diag_RPM_Limit is the engine speed above which the misfire diagnostic data collection is disabled. ; RPM bcc.s loc_28F1C move.w #$FFFF,d3 loc_28F1C: ; CODE XREF: OS1:00028F16j move.w d3,(word_FFFFA18A).w move.b #1,(byte_FFFFA18C).w loc_28F26: ; CODE XREF: OS1:00028EF0j move.l d2,d0 jsr sub_61EC8 move.l d2,d0 jsr sub_619FE cmp.b d2,d1 bne.s loc_28F50 tst.b (byte_FFFFB54A).w bne.s loc_28F50 clr.w (word_FFFF8D2A).w clr.w (word_FFFF8D2C).w clr.w (word_FFFF8D2E).w clr.w (word_FFFF8D30).w loc_28F50: ; CODE XREF: OS1:00028F38j ; OS1:00028F3Ej cmpi.b #6,d2 beq.s loc_28F62 cmpi.b #3,d2 bhi.s loc_28F86 cmpi.b #1,d2 bls.s loc_28F86 loc_28F62: ; CODE XREF: OS1:00028F54j clr.b (byte_FFFFB200).w clr.w (word_FFFFB202).w clr.w (word_FFFFB204).w clr.w (word_FFFFB206).w clr.w (word_FFFFB208).w clr.w (word_FFFFB20A).w clr.w (word_FFFFB20C).w clr.w (word_FFFFB20E).w clr.w (word_FFFFB210).w loc_28F86: ; CODE XREF: OS1:00028F5Aj ; OS1:00028F60j cmpi.b #3,d2 bhi.s loc_28F98 beq.s loc_28F94 cmpi.b #1,d2 bra.s loc_28F98 ; --------------------------------------------------------------------------- loc_28F94: ; CODE XREF: OS1:00028F8Cj clr.b (byte_FFFFB463).w loc_28F98: ; CODE XREF: OS1:00028F8Aj ; OS1:00028F92j clr.l d6 move.b d2,d6 cmpi.w #1,d6 bcs.s loc_29012 movea.l off_88ECA(d6.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_28FAC: ; DATA XREF: OS4:00088ED2o clr.b (byte_FFFFAFF4).w bra.s loc_29012 ; --------------------------------------------------------------------------- loc_28FB2: ; DATA XREF: OS4:00088ED6o ; OS4:00088EE2o clr.w (word_FFFFAFF6).w clr.w (word_FFFFAFF8).w clr.w (word_FFFFAFFA).w clr.w (word_FFFFAFFC).w clr.b (byte_FFFFAFFE).w clr.b (byte_FFFFAFFF).w clr.b (byte_FFFFB000).w clr.b (byte_FFFFB001).w clr.w (word_FFFFAFF2).w clr.b (byte_FFFFB009).w clr.b (byte_FFFFB00A).w clr.b (byte_FFFFB00B).w cmpi.b #6,d2 bne.s loc_28FFC clr.b (byte_FFFFB002).w clr.b (byte_FFFFB003).w clr.b (byte_FFFFB008).w clr.w (word_FFFFB004).w clr.w (word_FFFFB006).w loc_28FFC: ; CODE XREF: OS1:00028FE6j ; DATA XREF: OS4:00088ECEo ... bra.s loc_29012 ; --------------------------------------------------------------------------- loc_28FFE: ; DATA XREF: OS4:00088EEEo clr.b (byte_FFFFB002).w clr.b (byte_FFFFB003).w clr.b (byte_FFFFB008).w clr.w (word_FFFFB004).w clr.w (word_FFFFB006).w loc_29012: ; CODE XREF: OS1:00028FA0j ; OS1:00028FB0j ... move.l d2,d0 jsr sub_6B084 move.l d2,d0 jsr sub_60FA6 move.l d2,d0 jsr sub_60FEC move.l d2,d0 jsr sub_61962 cmpi.b #6,d2 beq.s loc_2903E cmpi.b #3,d2 bne.s loc_2904C loc_2903E: ; CODE XREF: OS1:00029036j move.l d2,d0 jsr sub_6CD94 jsr sub_6C870 loc_2904C: ; CODE XREF: OS1:0002903Cj move.l d2,d0 jsr sub_6E556 cmpi.b #6,d2 beq.s loc_29074 cmpi.b #3,d2 bhi.s loc_2907A beq.s loc_29074 cmpi.b #1,d2 bls.s loc_2907A tst.b (byte_FFFFB54A).w bne.s loc_29074 jsr sub_6DD54 loc_29074: ; CODE XREF: OS1:00029058j ; OS1:00029060j ... jsr sub_6DD26 loc_2907A: ; CODE XREF: OS1:0002905Ej ; OS1:00029066j move.l d2,d0 jsr sub_6B05C cmp.b d2,d1 bne.s loc_2909C tst.b (byte_FFFFB54A).w bne.s loc_2909C clr.w (word_FFFF8D32).w clr.w (word_FFFF8D34).w clr.w (word_FFFF8D36).w clr.w (word_FFFF8D38).w loc_2909C: ; CODE XREF: OS1:00029084j ; OS1:0002908Aj cmpi.b #6,d2 beq.s loc_290AE cmpi.b #3,d2 bhi.s loc_290D2 cmpi.b #1,d2 bls.s loc_290D2 loc_290AE: ; CODE XREF: OS1:000290A0j clr.w (word_FFFFB226).w clr.w (word_FFFFB228).w clr.w (word_FFFFB22A).w clr.w (word_FFFFB22C).w clr.w (word_FFFFB22E).w clr.w (word_FFFFB230).w clr.w (word_FFFFB232).w clr.w (word_FFFFB234).w clr.b (byte_FFFFB224).w loc_290D2: ; CODE XREF: OS1:000290A6j ; OS1:000290ACj move.l d2,d0 jsr sub_62228 cmpi.b #6,d2 beq.s loc_29104 cmpi.b #3,d2 bhi.s loc_29138 beq.s loc_29104 cmpi.b #1,d2 bls.s loc_29138 clr.w (word_FFFFAEA0).w move.w #$FFFF,(word_FFFFAEA2).w clr.w (word_FFFFAEA4).w move.w #$190,(word_FFFFAEA6).w bra.s loc_29138 ; --------------------------------------------------------------------------- loc_29104: ; CODE XREF: OS1:000290DEj ; OS1:000290E6j clr.b (byte_FFFFAEA8).w clr.b (byte_FFFFAEA9).w clr.b (byte_FFFFAEAA).w clr.b (byte_FFFFAEAD).w clr.w (word_FFFFAEA0).w move.w #$FFFF,(word_FFFFAEA2).w clr.w (word_FFFFAEA4).w move.w #$190,(word_FFFFAEA6).w clr.w (word_FFFFAE9C).w clr.b (byte_FFFFAEAE).w clr.b (byte_FFFFAEAB).w clr.b (byte_FFFFAEAF).w loc_29138: ; CODE XREF: OS1:000290E4j ; OS1:000290ECj ... move.l d2,d0 jsr sub_6301E move.l d2,d0 jsr sub_647EE move.l d2,d0 jsr sub_6D244 move.l d2,d0 jsr sub_6EEC8 move.l d2,d0 jsr sub_6EE6A move.l d2,d0 jsr sub_73688 move.l d2,d0 jsr sub_70CF2 move.l d2,d0 jsr sub_74BE4 move.l d2,d0 jsr sub_7424A move.l d2,d0 jsr sub_75174 move.l d2,d0 jsr sub_74C5A move.l d2,d0 jsr sub_7519C move.l d2,d0 jsr sub_66C78 cmpi.b #6,d2 beq.s loc_291C0 cmpi.b #3,d2 bhi.s loc_291E2 beq.s loc_291C0 cmpi.b #1,d2 bls.s loc_291E2 clr.w (word_FFFF9E80).w jsr sub_64DBA bra.s loc_291E2 ; --------------------------------------------------------------------------- loc_291C0: ; CODE XREF: OS1:000291A4j ; OS1:000291ACj btst #5,(word_FFFF9E8A).w sne d0 neg.b d0 jsr sub_64DBA tst.b d0 beq.s loc_291DC bset #5,(word_FFFF9E8A).w bra.s loc_291E2 ; --------------------------------------------------------------------------- loc_291DC: ; CODE XREF: OS1:000291D2j bclr #5,(word_FFFF9E8A).w loc_291E2: ; CODE XREF: OS1:000291AAj ; OS1:000291B2j ... move.l d2,d0 jsr sub_607C2 move.l d2,d0 jsr sub_5F6BC move.l d2,d0 jsr sub_66E98 cmp.b d2,d1 bne.s loc_2920A move.w (word_FFFF9DB2).w,(word_FFFFB4F6).w move.w (GlobalClock).w,(word_FFFFB4F8).w loc_2920A: ; CODE XREF: OS1:000291FCj move.l d2,d0 jsr sub_69814 move.l d2,d0 jsr sub_69A24 move.l d2,d0 jsr sub_6ABD4 move.l d2,d0 jsr sub_6AC4C move.l d2,d0 jsr sub_6D216 move.l d2,d0 jsr sub_67360 move.l d2,d0 jsr sub_69490 move.l d2,d0 jsr sub_758A6 move.l d2,d0 jsr sub_6D9F2 move.l d2,d0 jsr sub_6DCEE cmpi.b #6,d2 beq.s loc_29280 cmpi.b #3,d2 bhi.s loc_29286 beq.s loc_29280 cmpi.b #1,d2 bls.s loc_29286 tst.b (byte_FFFFB54A).w bne.s loc_29280 lea (unk_FFFF8C1A).w,a2 moveq #$11,d3 loc_2927A: ; CODE XREF: OS1:0002927Cj clr.w (a2)+ dbf d3,loc_2927A loc_29280: ; CODE XREF: OS1:0002925Ej ; OS1:00029266j ... jsr sub_69A62 loc_29286: ; CODE XREF: OS1:00029264j ; OS1:0002926Cj move.l d2,d0 jsr sub_6A172 move.l d2,d0 jsr sub_5EFCC move.l d2,d0 jsr sub_2639A move.l d2,d0 jsr sub_768D0 move.l d2,d0 jsr sub_773EA move.l d2,d0 jsr sub_7CAD2 move.l d2,d0 jsr sub_8315E move.l d2,d0 jsr sub_86BC4 movem.l (sp)+,d1-d2/d6-a1/a4 unlk a6 rts ; =============== S U B R O U T I N E ======================================= sub_292CE: ; CODE XREF: DoLoopB+Ep DoLoopB+14Ep move sr,-(sp) ori #$700,sr cmpi.b #4,(ThrottleControlMode2?).w beq.s loc_292FC movea.l (dword_FFFFB5DE).w,a2 clr.l d3 move.w $A(a2),d3 add.l (dword_FFFFAD24).w,d3 cmpi.l #$7FFFFFFF,d3 bls.s loc_292F8 move.l #$7FFFFFFF,d3 loc_292F8: ; CODE XREF: sub_292CE+22j move.l d3,(dword_FFFFAD24).w loc_292FC: ; CODE XREF: sub_292CE+Cj movea.l (dword_FFFFB5DE).w,a2 clr.l d3 move.w $A(a2),d3 add.l (dword_FFFFAD28).w,d3 cmpi.l #$7FFFFFFF,d3 bls.s loc_29318 move.l #$7FFFFFFF,d3 loc_29318: ; CODE XREF: sub_292CE+42j move.l d3,(dword_FFFFAD28).w move (sp)+,sr rts ; End of function sub_292CE ; =============== S U B R O U T I N E ======================================= sub_29320: ; CODE XREF: Boot:000004DEp movem.l d0-d1/a0,-(sp) jsr (sub_1626).l jsr sub_78CDE jsr (sub_1626).l jsr sub_274E4 jsr (sub_1626).l cmpi.b #6,(ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l ; Number of cylinders for this engine application. ; SHORTCARD bne.s loc_29352 move.w #$1555,d3 bra.s loc_29356 ; --------------------------------------------------------------------------- loc_29352: ; CODE XREF: sub_29320+2Aj move.w #$1000,d3 loc_29356: ; CODE XREF: sub_29320+30j move.l d3,d1 ext.l d1 move.w (ENG_CONSTANTS_KE_LOW_RESOLUTION_REFERENCE_ANGL).l,d3 ; Identifies the number of degrees from a low resolution pulse to Top Dead Center of the cylinder. ; Degrees ext.l d3 asl.l #8,d3 asl.l #8,d3 divs.l d1,d3 bvs.s loc_29378 tst.l d3 blt.s loc_2937E cmpi.l #$FFFF,d3 bls.s loc_29380 loc_29378: ; CODE XREF: sub_29320+4Aj move.w #$FFFF,d3 bra.s loc_29380 ; --------------------------------------------------------------------------- loc_2937E: ; CODE XREF: sub_29320+4Ej clr.w d3 loc_29380: ; CODE XREF: sub_29320+56j ; sub_29320+5Cj move.w d3,(word_FFFFB36E).w clr.w d3 move.b (VEH_SYS_KE_PLATFORM).l,d3 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type mulu.w #$C,d3 move.b VEH_SYS_KA_OPTION_MATRIX(d3.l),(byte_FFFFB370).w ; Allows selection of options for a given platform. ; Platform_Option_Table_Type move.b byte_1F6DD(d3.l),(byte_FFFFB371).w move.b byte_1F6DE(d3.l),(byte_FFFFB372).w move.b byte_1F6DF(d3.l),(byte_FFFFB373).w move.b byte_1F6E0(d3.l),(byte_FFFFB374).w move.b byte_1F6E1(d3.l),(byte_FFFFB375).w move.b byte_1F6E2(d3.l),(byte_FFFFB376).w move.b byte_1F6E3(d3.l),(byte_FFFFB377).w move.b byte_1F6E4(d3.l),(byte_FFFFB378).w move.b byte_1F6E5(d3.l),(byte_FFFFB379).w move.b byte_1F6E6(d3.l),(byte_FFFFB37A).w tst.b (byte_FFFFB54B).w bne.s loc_29408 clr.b (byte_FFFF82A0).w loc_29408: ; CODE XREF: sub_29320+E2j jsr sub_21546 jsr sub_78B48 jsr (sub_1958).l movea.w #$FFFF,a0 move.w a0,(word_FFFFBFF2).w move.w a0,(word_FFFFBFF4).w clr.b (byte_FFFFBFF7).w clr.b (byte_FFFFBFF1).w moveq #2,d0 jsr sub_34852 jsr (sub_1626).l movem.l (sp)+,d0-d1/a0 rts ; End of function sub_29320 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame DoManyThings1: ; CODE XREF: OS1:0002BA1Ep var_22 = -$22 var_6 = -6 var_4 = -4 link a6,#-$22 movem.l d0-d2/a0,-(sp) jsr sub_8745E jsr sub_78DFE move.w d0,d2 jsr sub_81AFA jsr (sub_1626).l tst.b (byte_FFFFB54A).w bne.s loc_29478 jsr sub_77860 clr.b d0 jsr sub_21662 loc_29478: ; CODE XREF: DoManyThings1+26j jsr sub_78DDE jsr sub_37E94 tst.b (byte_FFFFB37A).w beq.s loc_2949C move.l (dword_8A7E0).l,var_4(a6) move.w (word_8A7DE).l,var_6(a6) bra.s loc_294AC ; --------------------------------------------------------------------------- loc_2949C: ; CODE XREF: DoManyThings1+46j move.l (dword_8A7DA).l,var_4(a6) move.w (word_8A7D8).l,var_6(a6) loc_294AC: ; CODE XREF: DoManyThings1+58j move.b (CIC_KE_CIC_MEDIUM_RES_REF_FILTER).l,d3 lsl.b #3,d3 andi.b #$F8,d3 andi.b #7,var_4+2(a6) or.b d3,var_4+2(a6) bclr #2,var_6(a6) tst.b (VEH_SPEED_KE_VSS_APPLICATION_TYPE).l beq.s loc_294D6 bset #2,var_6(a6) loc_294D6: ; CODE XREF: DoManyThings1+8Cj lea var_6(a6),a0 jsr sub_78394 loc_294E0: ; CODE XREF: DoManyThings1+B2j btst #7,(word_FFFFF210).w bne.s loc_294F6 jsr sub_78DFE sub.w d2,d0 cmpi.w #$17,d0 bcs.s loc_294E0 loc_294F6: ; CODE XREF: DoManyThings1+A4j jsr GetCoolantTemperature jsr sub_78DFE move.w d0,d2 jsr sub_78DDE moveq #1,d1 moveq #$3A,d0 ; ':' jsr (sub_1122).l moveq #1,d1 moveq #$3D,d0 ; '=' jsr (sub_1122).l tst.b (F_TANK_KE_FUEL_SYSTEM_USES_PULLUP_RESIS).l ; Determines whether to acitvate or de-activate the transistor to which allows the pullup resistor to be on or off. ; TRUE/FALSE beq.s loc_2952A moveq #1,d1 bra.s loc_2952C ; --------------------------------------------------------------------------- loc_2952A: ; CODE XREF: DoManyThings1+E2j clr.b d1 loc_2952C: ; CODE XREF: DoManyThings1+E6j move.w #$A3,d0 ; '?' jsr (sub_1122).l moveq #1,d1 moveq #$3E,d0 ; '>' jsr (sub_1122).l jsr sub_81BC2 jsr sub_81BC2 jsr sub_81BC2 jsr sub_78DDE jsr sub_86230 loc_2955E: ; CODE XREF: DoManyThings1+128j jsr sub_78DFE sub.w d2,d0 cmpi.w #$164,d0 bcs.s loc_2955E jsr sub_78DDE bset #5,(word_FFFFF20C).w jsr sub_78DFE move.w d0,d2 loc_29580: ; CODE XREF: DoManyThings1+152j btst #7,(word_FFFFF210).w bne.s loc_29596 jsr sub_78DFE sub.w d2,d0 cmpi.w #$17,d0 bcs.s loc_29580 loc_29596: ; CODE XREF: DoManyThings1+144j jsr sub_78DDE jsr GetCoolantTemperature jsr sub_80770 jsr sub_78E56 jsr sub_78DDE bclr #2,(byte_FFFFBE78).w bclr #0,(byte_FFFFBE7A).w bclr #3,(byte_FFFFBE7A).w jsr sub_78484 tst.b (byte_FFFFB47A).w bne.s loc_295DE jsr sub_78DDE jsr sub_282C4 loc_295DE: ; CODE XREF: DoManyThings1+18Ej jsr sub_78DDE jsr sub_2B636 jsr ExecuteMainLoops tst.b (byte_FFFFB37A).w beq.s loc_295FC jsr sub_797F4 loc_295FC: ; CODE XREF: DoManyThings1+1B2j move.w #$1000,(word_FFFFE2F4).w jsr sub_797D2 jsr sub_7979C jsr sub_78242 move.b (byte_FFFFB37A).w,d3 beq.s loc_29634 bclr #0,(byte_FFFFFE21).w move.w (word_FFFFFE0A).w,var_6(a6) bclr #0,var_6+1(a6) move.w var_6(a6),(word_FFFFFE0A).w bra.s loc_29650 ; --------------------------------------------------------------------------- loc_29634: ; CODE XREF: DoManyThings1+1D6j bclr #0,(byte_FFFFFE21).w tst.b d3 bne.s loc_29650 move.w (word_FFFFFE0A).w,var_6(a6) bset #0,var_6+1(a6) move.w var_6(a6),(word_FFFFFE0A).w loc_29650: ; CODE XREF: DoManyThings1+1F0j ; DoManyThings1+1FAj jsr (sub_DEA).l jsr sub_78D2E move.b #$30,(byte_FFFF904F).w ; '0' clr.b d0 jsr sub_27AD2 moveq #1,d0 jsr sub_27AD2 moveq #2,d0 jsr sub_27AD2 moveq #3,d0 jsr sub_27AD2 moveq #4,d0 jsr sub_27AD2 jsr sub_78DDE jsr sub_87940 lea (ENG_CALIBRATIONS_HEADER).l,a3 ; Use this cal to identify the engine calibration ; Cal_ID_Record lea var_22(a6),a2 moveq #$D,d3 loc_296A2: ; CODE XREF: DoManyThings1+262j move.w (a3)+,(a2)+ dbf d3,loc_296A2 lea (FUELCALIBRATIONS_HEADER).l,a3 ; Use this cal to identify the Fuel Systems calibration ; Cal_ID_Record lea var_22(a6),a2 moveq #$D,d3 loc_296B4: ; CODE XREF: DoManyThings1+274j move.w (a3)+,(a2)+ dbf d3,loc_296B4 lea (ENGDIAGNOSTICS_HEADER).l,a3 ; Use this cal to identify the engine diagnostic calibration ; Cal_ID_Record lea var_22(a6),a2 moveq #$D,d3 loc_296C6: ; CODE XREF: DoManyThings1+286j move.w (a3)+,(a2)+ dbf d3,loc_296C6 lea (TRANCALIBRATIONS_HEADER).l,a3 ; Use this cal to identify the transmission calibration set ; Cal_ID_Record lea var_22(a6),a2 moveq #$D,d3 loc_296D8: ; CODE XREF: DoManyThings1+298j move.w (a3)+,(a2)+ dbf d3,loc_296D8 lea (TRAN_DIAGNOSTICS_HEADER).l,a3 ; Use this cal to identify the Transmission Diag calibration ; Cal_ID_Record lea var_22(a6),a2 moveq #$D,d3 loc_296EA: ; CODE XREF: DoManyThings1+2AAj move.w (a3)+,(a2)+ dbf d3,loc_296EA lea (SPD_CALIBRATIONS_HEADER).l,a3 ; Use this cal to identify the Vehicle Speed calibration ; Cal_ID_Record lea var_22(a6),a2 moveq #$D,d3 loc_296FC: ; CODE XREF: DoManyThings1+2BCj move.w (a3)+,(a2)+ dbf d3,loc_296FC lea (SYS_CALIBRATIONS_HEADER).l,a3 ; Use this cal to identify the Vehicle System calibration ; Cal_ID_Record lea var_22(a6),a2 moveq #$D,d3 loc_2970E: ; CODE XREF: DoManyThings1+2CEj move.w (a3)+,(a2)+ dbf d3,loc_2970E movem.l (sp)+,d0-d2/a0 unlk a6 rts ; End of function DoManyThings1 ; =============== S U B R O U T I N E ======================================= BetweenMainLoops1: ; CODE XREF: ExecuteMainLoops+20p ; ExecuteMainLoops+52p ... arg_0 = 4 move.b d1,8(a0) clr.l 0(a0) clr.l $C(a0) move.l arg_0(sp),d1 add.l d0,d1 move.l a4,-(sp) movea.l d1,a4 move.l a1,-(a4) clr.l -(a4) move.w #1,-(a4) move.l a4,4(a0) movea.l (sp)+,a4 rtd #4 ; End of function BetweenMainLoops1 ; =============== S U B R O U T I N E ======================================= nullsub_2: ; CODE XREF: sub_286FA+10p rts ; End of function nullsub_2 ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_29746: ; CODE XREF: sub_29746+30j ; sub_29746+38j ... ori #$700,sr tst.b (byte_FFFFB5E6).w beq.s loc_2975A clr.b (byte_FFFFB5E6).w jsr sub_29916 loc_2975A: ; CODE XREF: sub_29746+8j tst.l (dword_FFFFB5DA).w beq.s loc_29778 movea.l (dword_FFFFB5DA).w,a0 move.l a0,(dword_FFFFB5DE).w lea 4(a0),a1 movea.w #$B5E2,a0 jsr (sub_57E).l bra.s sub_29746 ; --------------------------------------------------------------------------- loc_29778: ; CODE XREF: sub_29746+18j jsr sub_29980 bra.s sub_29746 ; End of function sub_29746 ; --------------------------------------------------------------------------- rts ; =============== S U B R O U T I N E ======================================= BetweenMainLoops2: ; CODE XREF: ExecuteMainLoops+30p ; ExecuteMainLoops+62p ... movem.l d1/a4,-(sp) exg a1,a0 clr.l (a0) clr.w 4(a0) move.w d0,$A(a1) moveq #1,d1 jsr sub_29880 move.l a0,$C(a1) move sr,-(sp) ori #$700,sr movea.l (dword_FFFFB5DE).w,a4 movea.w #$B5DA,a0 jsr sub_298F8 tst.l a4 beq.s loc_297C8 clr.l (dword_FFFFB5DE).w lea 4(a4),a0 movea.w #$B5E2,a1 jsr (sub_57E).l loc_297C8: ; CODE XREF: BetweenMainLoops2+32j move (sp)+,sr movem.l (sp)+,d1/a4 rts ; End of function BetweenMainLoops2 ; =============== S U B R O U T I N E ======================================= sub_297D0: ; CODE XREF: ExecuteMainLoops+15Cp move sr,-(sp) ori #$700,sr movem.l a1/a4,-(sp) movea.l a0,a1 movea.l (dword_FFFFB5DE).w,a4 movea.w #$B5DA,a0 jsr sub_298F8 tst.l a4 beq.s loc_29800 clr.l (dword_FFFFB5DE).w lea 4(a4),a0 movea.w #$B5E2,a1 jsr (sub_57E).l loc_29800: ; CODE XREF: sub_297D0+1Cj movem.l (sp)+,a1/a4 move (sp)+,sr rts ; End of function sub_297D0 ; =============== S U B R O U T I N E ======================================= SharedByMainLoops: ; CODE XREF: OS1:0002B7FAp ; OS1:0002B816p ... move sr,-(sp) ori #$700,sr movem.l d0-a6,-(sp) subq.w #1,4(a0) bvc.s loc_2981E move.w #$8000,4(a0) loc_2981E: ; CODE XREF: SharedByMainLoops+Ej bge.s loc_29846 movea.l (dword_FFFFB5DE).w,a1 tst.l a1 beq.s loc_29846 move.l 0(a1),(dword_FFFFB5DA).w clr.l (dword_FFFFB5DE).w jsr sub_298F8 lea 4(a1),a0 movea.w #$B5E2,a1 jsr (sub_57E).l loc_29846: ; CODE XREF: SharedByMainLoops:loc_2981Ej ; SharedByMainLoops+1Ej movem.l (sp)+,d0-a6 move (sp)+,sr rts ; End of function SharedByMainLoops ; =============== S U B R O U T I N E ======================================= sub_2984E: ; CODE XREF: OS1:0002B6E6p move sr,-(sp) ori #$700,sr movem.l a1,-(sp) addq.w #1,4(a0) bvc.s loc_29864 move.w #$7FFF,4(a0) loc_29864: ; CODE XREF: sub_2984E+Ej bgt.s loc_29878 tst.l (a0) beq.s loc_29878 movea.l (a0),a1 move.l (a1),(a0) movea.w #$B5DA,a0 jsr sub_298F8 loc_29878: ; CODE XREF: sub_2984E:loc_29864j ; sub_2984E+1Aj movem.l (sp)+,a1 move (sp)+,sr rts ; End of function sub_2984E ; =============== S U B R O U T I N E ======================================= sub_29880: ; CODE XREF: BetweenMainLoops2+12p move sr,-(sp) ori #$700,sr move.l a1,-(sp) tst.w d0 beq.s loc_298BE movea.l (dword_FFFFB5D6).w,a1 tst.l a1 beq.s loc_298B8 move.l (a1),(dword_FFFFB5D6).w move.w d0,4(a1) clr.w 6(a1) tst.b d1 beq.s loc_298A8 move.w d0,6(a1) loc_298A8: ; CODE XREF: sub_29880+22j move.l a0,8(a1) movea.l a1,a0 jsr sub_298CA movea.l a1,a0 bra.s loc_298C4 ; --------------------------------------------------------------------------- loc_298B8: ; CODE XREF: sub_29880+12j jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_298BE: ; CODE XREF: sub_29880+Aj movea.l #0,a0 loc_298C4: ; CODE XREF: sub_29880+36j movea.l (sp)+,a1 move (sp)+,sr rts ; End of function sub_29880 ; =============== S U B R O U T I N E ======================================= sub_298CA: ; CODE XREF: sub_29880+2Ep ; sub_29916+24p move.w 4(a0),d4 movea.l #unk_FFB5D2,a2 movea.l (a2),a3 loc_298D6: ; CODE XREF: sub_298CA+1Aj move.w d4,d3 sub.w 4(a3),d3 blt.s loc_298E6 move.w d3,d4 movea.l a3,a2 movea.l (a3),a3 bra.s loc_298D6 ; --------------------------------------------------------------------------- loc_298E6: ; CODE XREF: sub_298CA+12j tst.l (a3) beq.s loc_298EE sub.w d4,4(a3) loc_298EE: ; CODE XREF: sub_298CA+1Ej move.l a3,(a0) move.w d4,4(a0) move.l a0,(a2) rts ; End of function sub_298CA ; =============== S U B R O U T I N E ======================================= sub_298F8: ; CODE XREF: BetweenMainLoops2+2Ap ; sub_297D0+14p ... movea.l a0,a2 movea.l (a0),a3 loc_298FC: ; CODE XREF: sub_298F8+16j tst.l a3 beq.s loc_29910 move.b 8(a3),d4 cmp.b 8(a1),d4 bhi.s loc_29910 movea.l a3,a2 movea.l (a3),a3 bra.s loc_298FC ; --------------------------------------------------------------------------- loc_29910: ; CODE XREF: sub_298F8+6j ; sub_298F8+10j move.l a1,(a2) move.l a3,(a1) rts ; End of function sub_298F8 ; =============== S U B R O U T I N E ======================================= sub_29916: ; CODE XREF: sub_29746+Ep movem.l a0-a1,-(sp) movea.l (dword_FFFFB5D2).w,a0 tst.l (a0) beq.w loc_2997A subq.w #1,4(a0) bne.s loc_2997A loc_2992A: ; CODE XREF: sub_29916+62j move.l (a0),(dword_FFFFB5D2).w tst.w 6(a0) beq.s loc_29942 move.w 6(a0),4(a0) jsr sub_298CA bra.s loc_2994A ; --------------------------------------------------------------------------- loc_29942: ; CODE XREF: sub_29916+1Cj move.l (dword_FFFFB5D6).w,(a0) move.l a0,(dword_FFFFB5D6).w loc_2994A: ; CODE XREF: sub_29916+2Aj movea.l 8(a0),a0 addq.w #1,4(a0) bvc.s loc_2995A move.w #$7FFF,4(a0) loc_2995A: ; CODE XREF: sub_29916+3Cj bgt.s loc_29970 movea.l (a0),a1 tst.l a1 beq.s loc_29970 move.l (a1),(a0) movea.l #unk_FFB5DA,a0 jsr sub_298F8 loc_29970: ; CODE XREF: sub_29916:loc_2995Aj ; sub_29916+4Aj movea.l (dword_FFFFB5D2).w,a0 tst.w 4(a0) beq.s loc_2992A loc_2997A: ; CODE XREF: sub_29916+Aj ; sub_29916+12j movem.l (sp)+,a0-a1 rts ; End of function sub_29916 ; =============== S U B R O U T I N E ======================================= sub_29980: ; CODE XREF: sub_29746:loc_29778p tst.b (byte_FFFFBFF0).w bne.s loc_29992 move.b #1,(byte_FFFFBFF0).w move.w (word_FFFFE1E4).w,(word_FFFFBFEE).w loc_29992: ; CODE XREF: sub_29980+4j tst.b (EXECUTIVE_KE_STOP_ENABLED).l ; When set to TRUE a stop instruction will be used to fill up the dead time between tasks. ; BOOLEAN bne.s loc_299A2 jsr sub_871EC bra.s loc_299A6 ; --------------------------------------------------------------------------- loc_299A2: ; CODE XREF: sub_29980+18j stop #$2000 ; --------------------------------------------------------------------------- loc_299A6: ; CODE XREF: sub_29980+20j andi #$F8FF,sr rts ; End of function sub_29980 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_299AC: ; CODE XREF: OS1:0002B70Ap var_2 = -2 link a6,#-2 move.l a0,-(sp) tst.b (byte_FFFFB47A).w beq.s loc_299D4 bclr #0,(byte_FFFFFE21).w move.w (word_FFFFFE0A).w,var_2(a6) bclr #0,var_2+1(a6) move.w var_2(a6),(word_FFFFFE0A).w bra.w loc_29A6E ; --------------------------------------------------------------------------- loc_299D4: ; CODE XREF: sub_299AC+Aj movea.w (word_FFFFB550).w,a0 move.w #$C0C,(word_FFFFB550).w jsr sub_82706 tst.b (byte_FFFFB250).w bne.s loc_299FC addq.w #1,(word_FFFFB24A).w tst.b (byte_FFFFB24D).w bne.s loc_29A26 jsr sub_2FC92 bra.s loc_29A26 ; --------------------------------------------------------------------------- loc_299FC: ; CODE XREF: sub_299AC+3Cj move.w (word_FFFFADB6).w,d3 addi.w #$400,d3 muls.w #5,d3 divs.w #6,d3 tblu.w (FUEL_CRANK_KV_FUEL_PRESSURE_DELAY).l,d3 ; Amount of time to delay after powerup before allowing key on prime pulse to be delivered. ; Seconds andi.l #$FFFF,d3 cmp.l (dword_FFFFAD24).w,d3 sls d3 neg.b d3 move.b d3,(byte_FFFFB24F).w loc_29A26: ; CODE XREF: sub_299AC+46j ; sub_299AC+4Ej cmpi.b #1,(ThrottleControlMode2?).w bne.s loc_29A6A jsr sub_3B82A move.w (word_FFFFB31E).w,d3 cmpi.w #$7FFF,d3 bls.s loc_29A42 move.w #$7FFF,d3 loc_29A42: ; CODE XREF: sub_299AC+90j move.w d3,(word_FFFFE0A6).w move.w (word_FFFFB31C).w,d3 cmpi.w #$7FFF,d3 bls.s loc_29A54 move.w #$7FFF,d3 loc_29A54: ; CODE XREF: sub_299AC+A2j move.w d3,(word_FFFFE0A4).w move.w (word_FFFFB31A).w,d3 cmpi.w #$7FFF,d3 bls.s loc_29A66 move.w #$7FFF,d3 loc_29A66: ; CODE XREF: sub_299AC+B4j move.w d3,(word_FFFFE09E).w loc_29A6A: ; CODE XREF: sub_299AC+80j move.w a0,(word_FFFFB550).w loc_29A6E: ; CODE XREF: sub_299AC+24j movea.l (sp)+,a0 unlk a6 rts ; End of function sub_299AC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame DoLoopA: ; CODE XREF: OS1:0002B800p var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a1/a4,-(sp) tst.b (byte_FFFFB47A).w beq.s loc_29A8C jsr sub_873EA bra.w loc_29EAC ; --------------------------------------------------------------------------- loc_29A8C: ; CODE XREF: DoLoopA+Cj movea.w (word_FFFFB550).w,a0 move.w #$B0B,(word_FFFFB550).w move.b (byte_FFFFAC47).w,d3 moveq #8,d1 cmp.b d3,d1 beq.s loc_29AB6 move.l d3,d2 addq.b #1,d2 cmp.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d2 ; Number of cylinders for this engine application. ; SHORTCARD bcs.s loc_29AB0 clr.b d3 bra.s loc_29AB2 ; --------------------------------------------------------------------------- loc_29AB0: ; CODE XREF: DoLoopA+36j addq.b #1,d3 loc_29AB2: ; CODE XREF: DoLoopA+3Aj move.b d3,(byte_FFFFAC47).w loc_29AB6: ; CODE XREF: DoLoopA+2Aj tst.b (byte_FFFFB37A).w beq.s loc_29B00 jsr sub_79644 tst.b (byte_FFFFBFF8).w beq.s loc_29AF2 move.w (word_FFFFE238).w,var_2(a6) cmpi.b #$D9,var_2+1(a6) beq.s loc_29ADE cmpi.b #$DC,var_2+1(a6) bne.s loc_29AE2 loc_29ADE: ; CODE XREF: DoLoopA+60j clr.b d3 bra.s loc_29AE4 ; --------------------------------------------------------------------------- loc_29AE2: ; CODE XREF: DoLoopA+68j moveq #1,d3 loc_29AE4: ; CODE XREF: DoLoopA+6Cj tst.b d3 beq.s loc_29AF2 move.w (word_FFFFBFFA).w,(word_FFFFE19C).w clr.b (byte_FFFFBFF8).w loc_29AF2: ; CODE XREF: DoLoopA+52j DoLoopA+72j jsr sub_7C358 jsr sub_7C3FE bra.s loc_29B0C ; --------------------------------------------------------------------------- loc_29B00: ; CODE XREF: DoLoopA+46j tst.b (byte_FFFFAC45).w bne.s loc_29B0C jsr sub_7C482 loc_29B0C: ; CODE XREF: DoLoopA+8Aj DoLoopA+90j jsr sub_82766 jsr sub_7DE52 jsr sub_80770 jsr sub_8093C jsr sub_8386E jsr sub_79B10 jsr sub_3BDC4 tst.b (byte_FFFFB37A).w beq.w loc_29BCC move.w (CoolantTemperatureOrDefault).w,d3 addi.w #$400,d3 moveq #5,d2 muls.w d2,d3 moveq #6,d6 divs.w d6,d3 tblu.b (SPARK_ADVANCE_KV_HVS_SWITCH_MODES_REF_COUNT).l,d3 move.w (EngineRPM_PID_000C___).w,d4 cmp.w (SPARK_ADVANCE_KE_HVS_RUN_MODE_ENABLE_RPM).l,d4 ; Engine speed threshold above which the EST will switch to low resnormal mode for non 24X applications. ; RPM bls.s loc_29B74 move.b (byte_FFFFB556).w,d4 cmpi.b #$10,d4 bcc.s loc_29B8C addq.b #1,d4 move.b d4,(byte_FFFFB556).w bra.s loc_29B8C ; --------------------------------------------------------------------------- loc_29B74: ; CODE XREF: DoLoopA+ECj cmp.b (byte_FFFFB556).w,d3 bcc.s loc_29B88 cmp.w (SPARK_ADVANCE_KE_HVS_RUN_MODE_DISABLE_RPM).l,d4 ; Engine speed threshold below which the EST will switch to low rescrank mode for non 24X applications. ; RPM bcs.s loc_29B88 cmpi.w #$100,d4 bcc.s loc_29B8C loc_29B88: ; CODE XREF: DoLoopA+104j DoLoopA+10Cj clr.b (byte_FFFFB556).w loc_29B8C: ; CODE XREF: DoLoopA+F6j DoLoopA+FEj ... cmp.b (byte_FFFFB556).w,d3 bhi.s loc_29BA6 tst.b (byte_FFFFB557).w bne.s loc_29BC8 jsr sub_79826 moveq #1,d7 move.b d7,(byte_FFFFB557).w bra.s loc_29BC8 ; --------------------------------------------------------------------------- loc_29BA6: ; CODE XREF: DoLoopA+11Cj tst.b (byte_FFFFB557).w beq.s loc_29BC8 moveq #1,d1 move.w #$D8,d0 ; '?' jsr (sub_FC0).l jsr sub_797F4 clr.b (byte_FFFFB557).w moveq #1,d1 move.b d1,(byte_FFFF9850).w loc_29BC8: ; CODE XREF: DoLoopA+122j DoLoopA+130j ... clr.w (word_FFFFB320).w loc_29BCC: ; CODE XREF: DoLoopA+C6j tst.b (byte_FFFFAA93).w bne.s loc_29BD8 jsr sub_3B82A loc_29BD8: ; CODE XREF: DoLoopA+15Cj move.w (word_FFFFB31E).w,d3 cmpi.w #$7FFF,d3 bls.s loc_29BE6 move.w #$7FFF,d3 loc_29BE6: ; CODE XREF: DoLoopA+16Cj move.w d3,(word_FFFFE0A6).w move.w (word_FFFFB31C).w,d3 cmpi.w #$7FFF,d3 bls.s loc_29BF8 move.w #$7FFF,d3 loc_29BF8: ; CODE XREF: DoLoopA+17Ej move.w d3,(word_FFFFE0A4).w move.w (word_FFFFB31A).w,d3 cmpi.w #$7FFF,d3 bls.s loc_29C0A move.w #$7FFF,d3 loc_29C0A: ; CODE XREF: DoLoopA+190j move.w d3,(word_FFFFE09E).w jsr loc_3A8A8 move.w (word_FFFF9848).w,d0 jsr sub_3BAB2 move.b (byte_FFFFB37A).w,d4 bne.s loc_29C82 move.w (word_FFFFE09C).w,d3 btst #5,d3 bne.s loc_29C82 move.b (byte_FFFFAC47).w,d3 moveq #8,d1 cmp.b d3,d1 beq.s loc_29C82 cmp.b (byte_FFFFAC48).w,d3 bne.s loc_29C82 moveq #3,d2 cmp.b (ThrottleControlMode2?).w,d2 bne.s loc_29C4A clr.w (word_FFFFE0A6).w loc_29C4A: ; CODE XREF: DoLoopA+1D0j move.w (word_FFFFE1DE).w,d3 movea.w #$7FFF,a1 add.w a1,d3 move.w d3,(word_FFFFE1D8).w move.w (word_FFFFE1DE).w,d3 add.w a1,d3 move.w d3,(word_FFFFE1DA).w movea.w #1,a4 move.w a4,(word_FFFFE0CC).w clr.w (word_FFFFE1C2).w move.w d1,(word_FFFFE2F4).w move.w d1,(word_FFFFE2D4).w move.w (word_FFFFE09C).w,d3 ori.w #$20,d3 ; ' ' move.w d3,(word_FFFFE09C).w loc_29C82: ; CODE XREF: DoLoopA+1AEj DoLoopA+1B8j ... tst.b d4 beq.s loc_29CA8 moveq #8,d1 cmp.b (byte_FFFFAC47).w,d1 beq.s loc_29C94 addq.b #1,(byte_FFFFB24C).w bra.s loc_29C98 ; --------------------------------------------------------------------------- loc_29C94: ; CODE XREF: DoLoopA+218j clr.b (byte_FFFFB24C).w loc_29C98: ; CODE XREF: DoLoopA+21Ej addq.w #1,(word_FFFFB24A).w tst.b (byte_FFFFB24D).w bne.s loc_29CA8 jsr sub_2FC92 loc_29CA8: ; CODE XREF: DoLoopA+210j DoLoopA+22Cj tst.b (byte_FFFFAA93).w bne.s loc_29D0A move.b (byte_FFFFB250).w,d3 bne.s loc_29CBA tst.b (byte_FFFFB24D).w beq.s loc_29CC4 loc_29CBA: ; CODE XREF: DoLoopA+23Ej tst.b d3 beq.s loc_29CE2 tst.b (byte_FFFFB24F).w bne.s loc_29CE2 loc_29CC4: ; CODE XREF: DoLoopA+244j bclr #0,(byte_FFFFFE21).w tst.b (byte_FFFFB37A).w bne.s loc_29CE2 move.w (word_FFFFFE0A).w,var_2(a6) bset #0,var_2+1(a6) move.w var_2(a6),(word_FFFFFE0A).w loc_29CE2: ; CODE XREF: DoLoopA+248j DoLoopA+24Ej ... jsr sub_34694 jsr (sub_F1C).l jsr sub_31318 jsr sub_30CA4 loc_29CFA: ; CODE XREF: DoLoopA:loc_29D56j cmpi.b #1,(byte_FFFFB2EF).w beq.s loc_29D78 jsr sub_32164 bra.s loc_29D78 ; --------------------------------------------------------------------------- loc_29D0A: ; CODE XREF: DoLoopA+238j clr.w d3 move.b (byte_FFFFAC47).w,d3 cmpi.w #7,d3 bhi.s loc_29D78 movea.l off_8A53C(d3.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_29D20: ; DATA XREF: OS4:off_8A53Co move.b (byte_FFFFB250).w,d3 bne.s loc_29D2C tst.b (byte_FFFFB24D).w beq.s loc_29D36 loc_29D2C: ; CODE XREF: DoLoopA+2B0j tst.b d3 beq.s loc_29D78 tst.b (byte_FFFFB24F).w bne.s loc_29D78 loc_29D36: ; CODE XREF: DoLoopA+2B6j bclr #0,(byte_FFFFFE21).w tst.b (byte_FFFFB37A).w bne.s loc_29D78 move.w (word_FFFFFE0A).w,var_2(a6) bset #0,var_2+1(a6) move.w var_2(a6),(word_FFFFFE0A).w bra.s loc_29D78 ; --------------------------------------------------------------------------- loc_29D56: ; DATA XREF: OS4:0008A540o bra.s loc_29CFA ; --------------------------------------------------------------------------- loc_29D58: ; DATA XREF: OS4:0008A544o jsr sub_31318 bra.s loc_29D78 ; --------------------------------------------------------------------------- loc_29D60: ; DATA XREF: OS4:0008A548o jsr sub_30CA4 bra.s loc_29D78 ; --------------------------------------------------------------------------- loc_29D68: ; DATA XREF: OS4:0008A54Co ; OS4:0008A550o bra.s loc_29D78 ; --------------------------------------------------------------------------- loc_29D6A: ; DATA XREF: OS4:off_8A554o jsr sub_34694 bra.s loc_29D78 ; --------------------------------------------------------------------------- loc_29D72: ; DATA XREF: OS4:0008A558o jsr (sub_F1C).l loc_29D78: ; CODE XREF: DoLoopA+28Cj DoLoopA+294j ... move.b (byte_FFFFAC47).w,d3 beq.s loc_29D9E cmpi.b #4,d3 bne.s loc_29D8E cmpi.b #8,(ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l ; Number of cylinders for this engine application. ; SHORTCARD beq.s loc_29D9E loc_29D8E: ; CODE XREF: DoLoopA+30Ej cmpi.b #3,d3 bne.s loc_29DB2 cmpi.b #6,(ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l ; Number of cylinders for this engine application. ; SHORTCARD bne.s loc_29DB2 loc_29D9E: ; CODE XREF: DoLoopA+308j DoLoopA+318j cmpi.b #1,(byte_FFFFB2EF).w beq.s loc_29DAC jsr sub_31FCA loc_29DAC: ; CODE XREF: DoLoopA+330j jsr sub_321E2 loc_29DB2: ; CODE XREF: DoLoopA+31Ej DoLoopA+328j jsr sub_31AE2 jsr sub_307A6 jsr sub_3284E jsr sub_30DA8 jsr sub_347DC jsr sub_32A0C jsr sub_7D082 cmpi.b #5,(byte_FFFFAC47).w bne.s loc_29DEA jsr sub_7D7AA loc_29DEA: ; CODE XREF: DoLoopA+36Ej move.b (ThrottleControlMode2?).w,d3 moveq #3,d1 cmp.b d3,d1 bne.s loc_29E04 tst.b (byte_FFFFAC47).w bne.s loc_29E04 cmp.b d3,d1 bne.s loc_29E04 jsr sub_36AAA loc_29E04: ; CODE XREF: DoLoopA+37Ej DoLoopA+384j ... tst.b (byte_FFFFA1A1).w beq.s loc_29E1C move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DG_ESC_KE_ESC_NOISE_RPM_HIGH).l,d3 ; One condition to run the diagnostic is that engine speed be less than this cal. ; RPM bhi.s loc_29E1C jsr sub_64B9E loc_29E1C: ; CODE XREF: DoLoopA+394j DoLoopA+3A0j btst #3,(byte_FFFFA7DE).w beq.s loc_29E38 move.w (word_FFFFAC36).w,d3 cmp.w (word_FFFFB420).w,d3 sne d4 neg.b d4 move.b d4,(byte_FFFFB426).w move.w d3,(word_FFFFB420).w loc_29E38: ; CODE XREF: DoLoopA+3AEj jsr sub_612D8 tst.b (byte_FFFFAC47).w bne.s loc_29E50 jsr sub_60E42 jsr sub_61088 loc_29E50: ; CODE XREF: DoLoopA+3CEj tst.b (byte_FFFFA1BF).w beq.s loc_29EA0 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (word_FFFFA188).w,d3 bcc.s loc_29E68 move.b #1,(byte_FFFFA18C).w bra.s loc_29E94 ; --------------------------------------------------------------------------- loc_29E68: ; CODE XREF: DoLoopA+3EAj tst.b (byte_FFFFA18C).w beq.s loc_29E94 cmp.w (word_FFFFA18A).w,d3 bcs.s loc_29E94 clr.b (byte_FFFFA18C).w move.b #$FF,(byte_FFFFA9B9).w bclr #5,(byte_FFFFA9AA).w move.w (DI_MISFIRE_KE_MISF_GENERIC_DELAY).l,d3 ; Number of engine cycles to delay for the enable criteria not being met, decel fuel cutoff, fuel shut off, or torque reduction. ; Eng Cycles cmp.w (word_FFFF8D54).w,d3 bls.s loc_29E94 move.w d3,(word_FFFF8D54).w loc_29E94: ; CODE XREF: DoLoopA+3F2j DoLoopA+3F8j ... tst.b (byte_FFFFA18C).w beq.s loc_29EA0 jsr sub_6EF00 loc_29EA0: ; CODE XREF: DoLoopA+3E0j DoLoopA+424j tst.b (byte_FFFFA195).w beq.s loc_29EAC jsr sub_60880 loc_29EAC: ; CODE XREF: DoLoopA+14j DoLoopA+430j move.b #$30,(byte_FFFF904F).w ; '0' clr.b d0 jsr sub_27AD2 move.w a0,(word_FFFFB550).w movem.l (sp)+,d0-d2/d6-a1/a4 unlk a6 rts ; End of function DoLoopA ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame DoLoopB: ; CODE XREF: OS1:0002B81Cp var_5ADA = -$5ADA var_4D9E = -$4D9E link a6,#-4 movem.l d0-d2/d6-a1,-(sp) tst.b (byte_FFFFB47A).w beq.s loc_29F26 jsr sub_292CE jsr sub_81BC2 movea.l (off_132C).l,a0 move.l a0,d1 bne.s loc_29EF0 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_29EF0: ; CODE XREF: DoLoopB+22j clr.b d3 btst #6,2(a0) bne.s loc_29EFC addq.b #1,d3 loc_29EFC: ; CODE XREF: DoLoopB+32j move.b d3,(byte_FFFFAF3A).w tst.b (byte_FFFFB370).w beq.s loc_29F18 btst #5,(word_FFFFA594).w sne d4 neg.b d4 or.b d3,d4 move.b d4,(byte_FFFFAF3B).w bra.s loc_29F1C ; --------------------------------------------------------------------------- loc_29F18: ; CODE XREF: DoLoopB+3Ej move.b d3,(byte_FFFFAF3B).w loc_29F1C: ; CODE XREF: DoLoopB+50j jsr sub_86E58 bra.w loc_2A23A ; --------------------------------------------------------------------------- loc_29F26: ; CODE XREF: DoLoopB+Cj moveq #5,d2 cmp.b (ThrottleControlMode2?).w,d2 beq.w loc_2A204 move.b (byte_FFFFB27E).w,d0 bne.s loc_29FAA movea.w (word_FFFFB550).w,a0 move.w #$303,(word_FFFFB550).w tst.b (byte_FFFFB370).w beq.s loc_29F98 jsr sub_22F40 jsr sub_21930 jsr sub_80770 jsr sub_2340C moveq #1,d0 jsr sub_21662 move.b (byte_FFFF91F3).w,d3 andi.b #1,d3 bne.s loc_29F76 jsr sub_243A8 loc_29F76: ; CODE XREF: DoLoopB+A8j tst.b (byte_FFFF91F3).w bne.s loc_29F82 jsr sub_2452C loc_29F82: ; CODE XREF: DoLoopB+B4j move.b (byte_FFFF91F3).w,d3 addq.b #1,d3 andi.l #$FF,d3 moveq #6,d6 divul.l d6,d4:d3 move.b d4,(byte_FFFF91F3).w loc_29F98: ; CODE XREF: DoLoopB+7Ej jsr sub_7D8E0 moveq #2,d6 move.b d6,(byte_FFFFB27E).w loc_29FA4: ; CODE XREF: DoLoopB+112j move.w a0,(word_FFFFB550).w bra.s loc_29FE0 ; --------------------------------------------------------------------------- loc_29FAA: ; CODE XREF: DoLoopB+6Ej moveq #2,d6 cmp.b d0,d6 bne.s loc_29FDA movea.w (word_FFFFB550).w,a0 move.w #$303,(word_FFFFB550).w tst.b (byte_FFFFB379).w beq.s loc_29FC6 jsr sub_853A2 loc_29FC6: ; CODE XREF: DoLoopB+F8j tst.b (byte_FFFFB370).w beq.s loc_29FD2 jsr sub_76A4E loc_29FD2: ; CODE XREF: DoLoopB+104j subq.b #1,d0 move.b d0,(byte_FFFFB27E).w bra.s loc_29FA4 ; --------------------------------------------------------------------------- loc_29FDA: ; CODE XREF: DoLoopB+E8j subq.b #1,d0 move.b d0,(byte_FFFFB27E).w loc_29FE0: ; CODE XREF: DoLoopB+E2j movea.w (word_FFFFB550).w,a1 move.w #$101,(word_FFFFB550).w moveq #1,d3 loc_29FEC: ; CODE XREF: DoLoopB+146j clr.l d0 move.b d3,d0 move.w byte_FFFFB282(d0.w*2),d4 bne.s loc_29FFE jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_29FFE: ; CODE XREF: DoLoopB+130j movea.l d4,a0 subq.w #1,a0 move.w a0,$20+var_4D9E(d0.w*2) addq.w #1,d3 cmp.w d3,d2 bcc.s loc_29FEC jsr sub_78DDE jsr sub_292CE jsr sub_81BC2 movea.l (off_132C).l,a0 move.l a0,d7 bne.s loc_2A030 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_2A030: ; CODE XREF: DoLoopB+162j clr.b d3 btst #6,2(a0) bne.s loc_2A03C addq.b #1,d3 loc_2A03C: ; CODE XREF: DoLoopB+172j move.b d3,(byte_FFFFAF3A).w tst.b (byte_FFFFB370).w beq.s loc_2A058 btst #5,(word_FFFFA594).w sne d1 neg.b d1 or.b d3,d1 move.b d1,(byte_FFFFAF3B).w bra.s loc_2A05C ; --------------------------------------------------------------------------- loc_2A058: ; CODE XREF: DoLoopB+17Ej move.b d3,(byte_FFFFAF3B).w loc_2A05C: ; CODE XREF: DoLoopB+190j tst.b (TCM_OPTIONS_KE_TRANS_HAS_TCC_RELEASE_SWITCH).l ; Trans has TCC Release Switch. Used with 4T65E transmissions. ; BOOLEAN beq.s loc_2A0AE clr.b d3 movea.l (off_134C).l,a0 move.l a0,d7 bne.s loc_2A076 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_2A076: ; CODE XREF: DoLoopB+1A8j btst #3,2(a0) beq.s loc_2A082 move.l d3,d1 bra.s loc_2A084 ; --------------------------------------------------------------------------- loc_2A082: ; CODE XREF: DoLoopB+1B6j moveq #1,d1 loc_2A084: ; CODE XREF: DoLoopB+1BAj cmp.b (byte_FFFFA676).w,d1 bne.s loc_2A092 move.w (GlobalClock).w,(word_FFFFA678).w bra.s loc_2A0B2 ; --------------------------------------------------------------------------- loc_2A092: ; CODE XREF: DoLoopB+1C2j move.w (TCM_OPTIONS_KE_TCC_REL_DBNC_TIME).l,d0 ; Determines the amount of time the TCC release switch status waits before transitioning to a new state. (used with 4T65E). ; Seconds movea.l #unk_FFA678,a0 jsr sub_276D4 tst.b d0 beq.s loc_2A0B2 move.b d1,(byte_FFFFA676).w bra.s loc_2A0B2 ; --------------------------------------------------------------------------- loc_2A0AE: ; CODE XREF: DoLoopB+19Cj clr.b (byte_FFFFA676).w loc_2A0B2: ; CODE XREF: DoLoopB+1CAj DoLoopB+1E0j ... tst.b (EGR_KE_EGR_ENABLED).l ; controls execution of EGR logic ; BOOLEAN beq.s loc_2A0C0 jsr sub_2D9E4 loc_2A0C0: ; CODE XREF: DoLoopB+1F2j tst.b (byte_FFFFA1C7).w beq.s loc_2A0D2 jsr sub_729F4 jsr sub_71122 loc_2A0D2: ; CODE XREF: DoLoopB+1FEj jsr sub_30368 tst.b (byte_FFFFB24D).w bne.s loc_2A0F8 tst.b (byte_FFFFB250).w bne.s loc_2A0F8 jsr sub_34694 jsr (sub_F1C).l jsr sub_2FC92 bra.s loc_2A12C ; --------------------------------------------------------------------------- loc_2A0F8: ; CODE XREF: DoLoopB+216j DoLoopB+21Cj tst.b (byte_FFFFB250).w beq.s loc_2A12C tst.b (byte_FFFFB24F).w bne.s loc_2A12C move.w (word_FFFFADB6).w,d3 addi.w #$400,d3 muls.w d2,d3 divs.w #6,d3 tblu.w (FUEL_CRANK_KV_FUEL_PRESSURE_DELAY).l,d3 ; Amount of time to delay after powerup before allowing key on prime pulse to be delivered. ; Seconds andi.l #$FFFF,d3 cmp.l (dword_FFFFAD24).w,d3 sls d3 neg.b d3 move.b d3,(byte_FFFFB24F).w loc_2A12C: ; CODE XREF: DoLoopB+230j DoLoopB+236j ... jsr sub_7F36C jsr sub_4AA18 jsr sub_5434C jsr sub_2EA9A tst.b (byte_FFFFA1C9).w beq.s loc_2A158 tst.b (byte_FFFF92CC).w bne.s loc_2A158 moveq #$70,d0 ; 'p' jsr sub_27258 loc_2A158: ; CODE XREF: DoLoopB+282j DoLoopB+288j move.b (byte_FFFF92CC).w,d3 and.b (byte_FFFFA1CA).w,d3 beq.s loc_2A176 btst #0,(byte_FFFF803D).w bne.s loc_2A176 tst.b (byte_FFFF80DE).w bne.s loc_2A176 jsr sub_27128 loc_2A176: ; CODE XREF: DoLoopB+29Aj DoLoopB+2A2j ... cmp.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d6 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_2A188 tst.w (ENG_TORQUE_KE_ENGINE_INERTIA).l ; Desired axle torque for rear axle protection ; Mult0to2 bls.w loc_2A23A loc_2A188: ; CODE XREF: DoLoopB+2B6j move.w (EngineRPM_PID_000C___).w,d1 move.b (byte_FFFFA55C).w,d3 addq.b #1,d3 andi.b #7,d3 move.b d3,(byte_FFFFA55C).w andi.w #$FF,d3 move.w unk_FFFFA546(d3.w*2),d0 ext.l d0 sub.l d0,(dword_FFFFA558).w clr.w d5 move.b (byte_FFFFA55C).w,d5 clr.l d4 move.w (word_FFFFA556).w,d4 clr.l d0 move.w d1,d0 sub.l d4,d0 cmpi.l #$FFFF8000,d0 blt.s loc_2A1D2 cmpi.l #$7FFF,d0 ble.s loc_2A1D6 move.w #$7FFF,d0 bra.s loc_2A1D6 ; --------------------------------------------------------------------------- loc_2A1D2: ; CODE XREF: DoLoopB+2FCj move.w #$8000,d0 loc_2A1D6: ; CODE XREF: DoLoopB+304j DoLoopB+30Aj move.w d0,$20+var_5ADA(d5.w*2) move.w d1,(word_FFFFA556).w clr.w d3 move.b (byte_FFFFA55C).w,d3 move.w unk_FFFFA546(d3.w*2),d3 ext.l d3 add.l (dword_FFFFA558).w,d3 move.l d3,(dword_FFFFA558).w tst.l d3 bpl.s loc_2A1FC addq.l #7,d3 loc_2A1FC: ; CODE XREF: DoLoopB+332j asr.l #3,d3 move.w d3,(word_FFFFA55E).w bra.s loc_2A23A ; --------------------------------------------------------------------------- loc_2A204: ; CODE XREF: DoLoopB+66j moveq #1,d3 loc_2A206: ; CODE XREF: DoLoopB+360j clr.l d0 move.b d3,d0 move.w byte_FFFFB282(d0.w*2),d4 bne.s loc_2A218 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_2A218: ; CODE XREF: DoLoopB+34Aj movea.l d4,a0 subq.w #1,a0 move.w a0,$20+var_4D9E(d0.w*2) addq.w #1,d3 cmp.w d3,d2 bcc.s loc_2A206 jsr sub_78DDE jsr sub_81BC2 jsr sub_7F36C loc_2A23A: ; CODE XREF: DoLoopB+5Cj DoLoopB+2BEj ... clr.b (byte_FFFF904C).w moveq #1,d0 jsr sub_27AD2 move.w a1,(word_FFFFB550).w movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function DoLoopB ; =============== S U B R O U T I N E ======================================= DoLoopC: ; CODE XREF: OS1:0002B838p movem.l d0-d2/a0,-(sp) tst.b (byte_FFFFB47A).w bne.w loc_2A638 moveq #5,d1 cmp.b (ThrottleControlMode2?).w,d1 beq.w loc_2A5DE movea.w (word_FFFFB550).w,a0 move.w #$202,(word_FFFFB550).w jsr sub_848A8 jsr sub_7DF6E jsr sub_7E0BC jsr sub_80770 jsr sub_83754 jsr sub_807E0 tst.b (EGR_KE_EGR_ENABLED).l ; controls execution of EGR logic ; BOOLEAN beq.s loc_2A2A4 jsr sub_2DACE loc_2A2A4: ; CODE XREF: DoLoopC+4Aj jsr sub_819C2 jsr sub_81470 jsr sub_282C4 tst.b (byte_FFFF9AA4).w bne.s loc_2A2C6 clr.b (byte_FFFFB157).w clr.b (byte_FFFFB156).w bra.s loc_2A2D0 ; --------------------------------------------------------------------------- loc_2A2C6: ; CODE XREF: DoLoopC+68j addq.b #1,(byte_FFFFB157).w move.b (byte_FFFF9AA4).w,(byte_FFFFB156).w loc_2A2D0: ; CODE XREF: DoLoopC+72j cmp.b (ThrottleControlMode2?).w,d1 beq.s loc_2A2DC jsr sub_3E4F2 loc_2A2DC: ; CODE XREF: DoLoopC+82j moveq #2,d0 jsr sub_45F3A jsr sub_451EA jsr sub_45AE8 moveq #2,d0 jsr sub_3CD78 jsr sub_24716 jsr sub_30566 jsr sub_3580C jsr sub_357CA jsr nullsub_3 jsr sub_34B00 jsr sub_334F8 clr.b d0 jsr sub_33CBE moveq #1,d0 jsr sub_33CBE jsr sub_33D02 jsr sub_33E7E clr.b d0 jsr sub_33EC8 clr.b d0 jsr sub_33F14 clr.b d0 jsr sub_33FC6 moveq #1,d0 jsr sub_33EC8 moveq #1,d0 jsr sub_33F14 moveq #1,d0 jsr sub_33FC6 jsr sub_34180 jsr sub_75FCA tst.b (byte_FFFFB370).w beq.s loc_2A386 jsr sub_7695E loc_2A386: ; CODE XREF: DoLoopC+12Cj cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_2A3A4 cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_2A39E jsr sub_3B75C loc_2A39E: ; CODE XREF: DoLoopC+144j jsr sub_3C1CC loc_2A3A4: ; CODE XREF: DoLoopC+13Aj jsr sub_3B7F0 jsr sub_2BA40 jsr sub_83986 move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d3 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type cmpi.b #2,d3 beq.s loc_2A40A cmpi.b #4,d3 beq.s loc_2A40A jsr sub_53586 move.w (word_FFFFB4A2).w,d3 mulu.w d1,d3 lsr.w #7,d3 cmp.b (TCM_IO_INTERFACE_KE_TRANS_DIAG_SYSTEM_VOLT_LOW).l,d3 ; System voltage below which transmission diagnostics willbe disabled. ; Volts bls.s loc_2A404 cmp.b (TCM_IO_INTERFACE_KE_TRANS_DIAG_SYSTEM_VOLT_HIGH).l,d3 ; System voltage above which transmission diagnostics willbe disabled. ; Volts bcc.s loc_2A404 btst #2,(byte_FFFFB1C2).w beq.s loc_2A3F6 tst.b (XDT_COMMON_KE_DISABLE_DIAG_FOR_PTO).l ; To disable diagnostics when PTO is active, set this to TRUE. ; T/F bne.s loc_2A404 loc_2A3F6: ; CODE XREF: DoLoopC+19Aj tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_2A404 jsr sub_52BE8 loc_2A404: ; CODE XREF: DoLoopC+18Aj DoLoopC+192j ... jsr sub_5334E loc_2A40A: ; CODE XREF: DoLoopC+16Ej DoLoopC+174j tst.b (byte_FFFFB370).w beq.s loc_2A416 jsr sub_216EE loc_2A416: ; CODE XREF: DoLoopC+1BCj btst #3,(byte_FFFF9A16).w beq.w loc_2A56A clr.l (dword_FFFFA9C4).w clr.l (dword_FFFFA9C0).w clr.l (dword_FFFFA9C8).w clr.b (byte_FFFFA9BD).w clr.b (byte_FFFFA9B4).w clr.b (byte_FFFFA9B5).w clr.b (byte_FFFFA9B8).w clr.b (byte_FFFFA9BA).w clr.b (byte_FFFFA9BB).w clr.b (byte_FFFFA9BC).w bclr #5,(byte_FFFFA9AA).w move.b #$FF,(byte_FFFFA9B9).w move.w (DI_MISFIRE_KE_MISF_GENERIC_DELAY).l,d3 ; Number of engine cycles to delay for the enable criteria not being met, decel fuel cutoff, fuel shut off, or torque reduction. ; Eng Cycles cmp.w (word_FFFF8D54).w,d3 bls.s loc_2A464 move.w d3,(word_FFFF8D54).w loc_2A464: ; CODE XREF: DoLoopC+20Cj clr.b (byte_FFFFAE65).w clr.b (byte_FFFFAE68).w bclr #6,(byte_FFFFAE60).w andi.b #$CF,(byte_FFFFAE60).w andi.b #$FC,(byte_FFFFAE60).w jsr sub_69A62 jsr sub_6A162 jsr sub_74C92 clr.b (byte_FFFFB200).w clr.w (word_FFFFB202).w clr.w (word_FFFFB204).w clr.w (word_FFFFB206).w clr.w (word_FFFFB208).w clr.w (word_FFFF8D2A).w clr.w (word_FFFF8D2C).w clr.w (word_FFFF8D2E).w clr.w (word_FFFF8D30).w clr.w (word_FFFFB20A).w clr.w (word_FFFFB20C).w clr.w (word_FFFFB20E).w clr.w (word_FFFFB210).w jsr sub_7100A jsr sub_733E0 jsr sub_74BBC jsr sub_7422C jsr sub_6D232 jsr sub_622DE jsr sub_6010A jsr sub_5F6AC jsr sub_6D7D8 jsr sub_6DCD4 jsr sub_6B052 clr.w (word_FFFF8D32).w clr.w (word_FFFF8D34).w clr.w (word_FFFF8D36).w clr.w (word_FFFF8D38).w clr.w (word_FFFFB226).w clr.w (word_FFFFB228).w clr.w (word_FFFFB22A).w clr.w (word_FFFFB22C).w clr.w (word_FFFFB22E).w clr.w (word_FFFFB230).w clr.w (word_FFFFB232).w clr.w (word_FFFFB234).w clr.b (byte_FFFFB224).w jsr sub_6E588 jsr sub_6DD26 jsr sub_6DD54 jsr nullsub_4 jsr sub_6954C jsr sub_69A58 jsr sub_6ABC2 bclr #3,(byte_FFFF9A16).w loc_2A56A: ; CODE XREF: DoLoopC+1CAj tst.b (byte_FFFFA1A1).w beq.s loc_2A576 jsr nullsub_5 loc_2A576: ; CODE XREF: DoLoopC+31Cj tst.b (byte_FFFFA1C7).w beq.s loc_2A582 jsr sub_72B06 loc_2A582: ; CODE XREF: DoLoopC+328j tst.b (byte_FFFFA1B9).w beq.s loc_2A58E jsr sub_6E4FE loc_2A58E: ; CODE XREF: DoLoopC+334j tst.b (byte_FFFFA1BF).w beq.s loc_2A59A jsr sub_6E742 loc_2A59A: ; CODE XREF: DoLoopC+340j tst.b (byte_FFFFA19A).w beq.s loc_2A5A6 jsr sub_6183E loc_2A5A6: ; CODE XREF: DoLoopC+34Cj tst.b (byte_FFFFA1B3).w beq.s loc_2A5B8 jsr sub_6BF68 jsr sub_6B156 loc_2A5B8: ; CODE XREF: DoLoopC+358j tst.b (byte_FFFFA1A8).w beq.s loc_2A5C4 jsr sub_691DA loc_2A5C4: ; CODE XREF: DoLoopC+36Aj jsr sub_35B80 jsr sub_62EFE jsr sub_82954 jsr sub_7CCBC bra.s loc_2A638 ; --------------------------------------------------------------------------- loc_2A5DE: ; CODE XREF: DoLoopC+12j jsr sub_80770 jsr sub_282C4 tst.b (byte_FFFFA19F).w beq.s loc_2A5F6 jsr sub_63E7A loc_2A5F6: ; CODE XREF: DoLoopC+39Cj tst.b (byte_FFFF9AA4).w bne.s loc_2A606 clr.b (byte_FFFFB157).w clr.b (byte_FFFFB156).w bra.s loc_2A610 ; --------------------------------------------------------------------------- loc_2A606: ; CODE XREF: DoLoopC+3A8j addq.b #1,(byte_FFFFB157).w move.b (byte_FFFF9AA4).w,(byte_FFFFB156).w loc_2A610: ; CODE XREF: DoLoopC+3B2j cmp.b (ThrottleControlMode2?).w,d1 beq.s loc_2A61C jsr sub_3E4F2 loc_2A61C: ; CODE XREF: DoLoopC+3C2j moveq #2,d0 jsr sub_45F3A jsr sub_451EA jsr sub_45AE8 moveq #2,d0 jsr sub_3CD78 loc_2A638: ; CODE XREF: DoLoopC+8j DoLoopC+38Aj move.b #$10,(byte_FFFF904D).w moveq #2,d0 jsr sub_27AD2 move.w #4,(word_FFFFB284).w move.w a0,(word_FFFFB550).w movem.l (sp)+,d0-d2/a0 rts ; End of function DoLoopC ; =============== S U B R O U T I N E ======================================= DoLoopD: ; CODE XREF: OS1:0002B854p var_59A8 = -$59A8 movem.l d0-d2/d6/a0,-(sp) tst.b (byte_FFFFB47A).w bne.w loc_2A85C moveq #5,d1 cmp.b (ThrottleControlMode2?).w,d1 beq.w loc_2A832 movea.w (word_FFFFB550).w,a0 move.w #$404,(word_FFFFB550).w jsr sub_840B4 move.w (word_FFFFA674).w,d3 andi.w #$FF,d3 move.w unk_FFFFA66C(d3.w*2),(word_FFFFA668).w move.w (word_FFFFA674).w,d3 andi.w #$FF,d3 movea.w d3,a2 tst.b (byte_FFFFB370).w beq.s loc_2A6A4 clr.l d3 move.w (word_FFFF905C).w,d3 bra.s loc_2A6AA ; --------------------------------------------------------------------------- loc_2A6A4: ; CODE XREF: DoLoopD+44j clr.l d3 move.w (word_FFFFAB66).w,d3 loc_2A6AA: ; CODE XREF: DoLoopD+4Cj asl.l #5,d3 divu.w d1,d3 cmpi.w #$7FFF,d3 bls.s loc_2A6B8 move.w #$7FFF,d3 loc_2A6B8: ; CODE XREF: DoLoopD+5Cj move.w d3,$14+var_59A8(a2.w*2) move.w (word_FFFFA674).w,d3 addq.w #1,d3 move.w d3,(word_FFFFA674).w moveq #3,d2 cmp.w d3,d2 bcc.s loc_2A6D2 clr.w (word_FFFFA674).w loc_2A6D2: ; CODE XREF: DoLoopD+76j move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d3 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type moveq #2,d6 cmp.b d3,d6 beq.s loc_2A734 cmpi.b #4,d3 beq.s loc_2A734 jsr sub_4CCBC jsr sub_4EFB8 jsr sub_4EEB4 jsr sub_5436E jsr sub_4EFF2 tst.b (TCM_OPTIONS_K_D32_PRESS_BIAS_CONTROL_AVAIL).l ; If TRUE, electronic control of the 3-2 downshift timing is available. ; BOOLEAN beq.s loc_2A710 jsr sub_4B858 loc_2A710: ; CODE XREF: DoLoopD+B2j jsr sub_4CD5E jsr sub_4BD8C jsr sub_4EEA0 jsr sub_86CBE jsr sub_53BDC jsr sub_4DCF2 loc_2A734: ; CODE XREF: DoLoopD+86j DoLoopD+8Cj jsr sub_40982 move.l d2,d0 jsr sub_45F3A move.l d2,d0 jsr sub_3CD78 tst.b (byte_FFFFB370).w beq.s loc_2A75C jsr sub_21094 jsr sub_20D54 loc_2A75C: ; CODE XREF: DoLoopD+F8j cmp.b (ThrottleControlMode2?).w,d2 bne.s loc_2A768 jsr sub_261CA loc_2A768: ; CODE XREF: DoLoopD+10Aj cmp.b (ThrottleControlMode2?).w,d2 bne.s loc_2A774 jsr sub_3C1EE loc_2A774: ; CODE XREF: DoLoopD+116j jsr sub_32EAA jsr sub_835B2 jsr sub_2F5BC jsr sub_35BE4 tst.b (byte_FFFFA1B3).w beq.s loc_2A798 jsr sub_6C236 loc_2A798: ; CODE XREF: DoLoopD+13Aj jsr sub_5EDDA cmp.b (ThrottleControlMode2?).w,d6 bne.s loc_2A7AA jsr sub_757C0 loc_2A7AA: ; CODE XREF: DoLoopD+14Cj jsr sub_829FA jsr sub_7B248 jsr sub_7B33A jsr sub_831BA tst.b (byte_FFFFB379).w beq.s loc_2A7DC jsr sub_859CC jsr sub_86AC4 jsr sub_8671C bra.s loc_2A7E2 ; --------------------------------------------------------------------------- loc_2A7DC: ; CODE XREF: DoLoopD+170j bclr #5,(byte_FFFF9027).w loc_2A7E2: ; CODE XREF: DoLoopD+184j tst.b (EGR_KE_EGR_ENABLED).l ; controls execution of EGR logic ; BOOLEAN beq.s loc_2A7F0 jsr sub_7AA26 loc_2A7F0: ; CODE XREF: DoLoopD+192j DoLoopD+1F2j move.b (byte_FFFFBFF6).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFBFF6).w cmp.b (byte_8A824).l,d3 bne.s loc_2A85C clr.b (byte_FFFFBFF6).w move.b (byte_FFFFBFF1).w,(byte_FFFFBFF7).w clr.b (byte_FFFFBFF1).w move.w (word_FFFFBFEC).w,d3 bls.s loc_2A84A andi.l #$FFFF,d3 asl.l #8,d3 asl.l #8,d3 divu.l (dword_8A820).l,d3 move.w d3,(word_FFFFBFF2).w clr.w (word_FFFFBFEC).w bra.s loc_2A84E ; --------------------------------------------------------------------------- loc_2A832: ; CODE XREF: DoLoopD+12j jsr sub_40982 moveq #3,d0 jsr sub_45F3A moveq #3,d0 jsr sub_3CD78 bra.s loc_2A7F0 ; --------------------------------------------------------------------------- loc_2A84A: ; CODE XREF: DoLoopD+1BEj clr.w (word_FFFFBFF2).w loc_2A84E: ; CODE XREF: DoLoopD+1DAj move.w (word_FFFFBFF2).w,d3 cmp.w (word_FFFFBFF4).w,d3 bcc.s loc_2A85C move.w d3,(word_FFFFBFF4).w loc_2A85C: ; CODE XREF: DoLoopD+8j DoLoopD+1AAj ... move.w #8,(word_FFFFB286).w move.w a0,(word_FFFFB550).w movem.l (sp)+,d0-d2/d6/a0 rts ; End of function DoLoopD ; =============== S U B R O U T I N E ======================================= DoLoopE: ; CODE XREF: OS1:0002B870p movem.l d0-d1/a0-a1,-(sp) tst.b (byte_FFFFB47A).w bne.w loc_2AB28 moveq #5,d1 cmp.b (ThrottleControlMode2?).w,d1 beq.w loc_2AAFE movea.w (word_FFFFB550).w,a1 move.w #$505,(word_FFFFB550).w jsr sub_8291C jsr sub_80B1C jsr sub_842B2 jsr sub_2D8D6 jsr sub_3068C jsr sub_316EA jsr sub_32F54 jsr sub_2C6DE jsr sub_3B710 jsr sub_7F4CA moveq #4,d0 jsr sub_45F3A moveq #4,d0 jsr sub_3CD78 tst.b (byte_FFFFB370).w beq.s loc_2A8E4 jsr sub_20CB2 loc_2A8E4: ; CODE XREF: DoLoopE+70j jsr sub_869C0 tst.b (byte_FFFFB379).w beq.s loc_2A8F8 jsr sub_865A6 bra.s loc_2A8FE ; --------------------------------------------------------------------------- loc_2A8F8: ; CODE XREF: DoLoopE+82j bclr #0,(byte_FFFF9027).w loc_2A8FE: ; CODE XREF: DoLoopE+8Aj move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d3 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type cmpi.b #2,d3 beq.w loc_2A9E8 cmpi.b #4,d3 beq.w loc_2A9E8 jsr sub_54FAE jsr sub_4DD5C jsr sub_4EE7A move.w (word_FFFFB4A2).w,d3 mulu.w d1,d3 lsr.w #7,d3 cmp.b (TCM_IO_INTERFACE_KE_TRANS_DIAG_SYSTEM_VOLT_LOW).l,d3 ; System voltage below which transmission diagnostics willbe disabled. ; Volts bls.w loc_2A9E8 cmp.b (TCM_IO_INTERFACE_KE_TRANS_DIAG_SYSTEM_VOLT_HIGH).l,d3 ; System voltage above which transmission diagnostics willbe disabled. ; Volts bcc.w loc_2A9E8 jsr sub_53182 jsr sub_53B10 btst #2,(byte_FFFFB1C2).w beq.s loc_2A960 tst.b (XDT_COMMON_KE_DISABLE_DIAG_FOR_PTO).l ; To disable diagnostics when PTO is active, set this to TRUE. ; T/F bne.w loc_2A9E2 loc_2A960: ; CODE XREF: DoLoopE+E8j jsr sub_53F90 jsr sub_554C6 btst #0,(byte_FFFF95E2).w beq.s loc_2A99C jsr sub_4FCA2 jsr sub_4F8C8 tst.b (TCM_OPTIONS_K_TCC_ENABLE_SOLENOID_PRESENT).l ; Indicates whether the transmission has a TCC enable solenoid. ; BOOLEAN beq.s loc_2A98E jsr sub_4FB1A loc_2A98E: ; CODE XREF: DoLoopE+11Aj tst.b (TCM_OPTIONS_K_D32_PRESS_BIAS_CONTROL_AVAIL).l ; If TRUE, electronic control of the 3-2 downshift timing is available. ; BOOLEAN beq.s loc_2A99C jsr sub_4F9F4 loc_2A99C: ; CODE XREF: DoLoopE+106j DoLoopE+128j jsr sub_4FC18 jsr sub_4F896 jsr sub_4F8C0 jsr loc_4FE9C jsr sub_51498 jsr sub_513C0 tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_2A9CE jsr sub_5195C loc_2A9CE: ; CODE XREF: DoLoopE+15Aj jsr sub_5285A tst.b (TCM_OPTIONS_KE_TRANS_HAS_TCC_RELEASE_SWITCH).l ; Trans has TCC Release Switch. Used with 4T65E transmissions. ; BOOLEAN beq.s loc_2A9E2 jsr sub_53DDA loc_2A9E2: ; CODE XREF: DoLoopE+F0j DoLoopE+16Ej jsr sub_4F5D0 loc_2A9E8: ; CODE XREF: DoLoopE+9Cj DoLoopE+A4j ... jsr sub_816D0 jsr sub_7C8A2 tst.b (byte_FFFFA19A).w beq.s loc_2AA00 jsr sub_6163A loc_2AA00: ; CODE XREF: DoLoopE+18Cj jsr sub_84AB0 move.b (byte_FFFFB280).w,d3 bne.w loc_2AB22 movea.w (word_FFFFB550).w,a0 move.w #$808,(word_FFFFB550).w jsr sub_75DA0 jsr sub_7F61E jsr sub_7AFBE jsr sub_7BA62 jsr sub_2E726 cmpi.b #6,(ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l ; Number of cylinders for this engine application. ; SHORTCARD bne.s loc_2AA46 move.w #$1555,d3 bra.s loc_2AA4A ; --------------------------------------------------------------------------- loc_2AA46: ; CODE XREF: DoLoopE+1D2j move.w #$1000,d3 loc_2AA4A: ; CODE XREF: DoLoopE+1D8j move.l d3,d5 ext.l d5 move.w (ENG_CONSTANTS_KE_LOW_RESOLUTION_REFERENCE_ANGL).l,d3 ; Identifies the number of degrees from a low resolution pulse to Top Dead Center of the cylinder. ; Degrees ext.l d3 asl.l #8,d3 asl.l #8,d3 divs.l d5,d3 bvs.s loc_2AA6C tst.l d3 blt.s loc_2AA72 cmpi.l #$FFFF,d3 bls.s loc_2AA74 loc_2AA6C: ; CODE XREF: DoLoopE+1F2j move.w #$FFFF,d3 bra.s loc_2AA74 ; --------------------------------------------------------------------------- loc_2AA72: ; CODE XREF: DoLoopE+1F6j clr.w d3 loc_2AA74: ; CODE XREF: DoLoopE+1FEj DoLoopE+204j move.w d3,(word_FFFFB36E).w clr.w d3 move.b (VEH_SYS_KE_PLATFORM).l,d3 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type mulu.w #$C,d3 move.b VEH_SYS_KA_OPTION_MATRIX(d3.l),(byte_FFFFB370).w ; Allows selection of options for a given platform. ; Platform_Option_Table_Type move.b byte_1F6DD(d3.l),(byte_FFFFB371).w move.b byte_1F6DE(d3.l),(byte_FFFFB372).w move.b byte_1F6DF(d3.l),(byte_FFFFB373).w move.b byte_1F6E0(d3.l),(byte_FFFFB374).w move.b byte_1F6E1(d3.l),(byte_FFFFB375).w move.b byte_1F6E2(d3.l),(byte_FFFFB376).w move.b byte_1F6E3(d3.l),(byte_FFFFB377).w move.b byte_1F6E4(d3.l),(byte_FFFFB378).w move.b byte_1F6E5(d3.l),(byte_FFFFB379).w move.b byte_1F6E6(d3.l),(byte_FFFFB37A).w move.b #4,(byte_FFFFB280).w move.w a0,(word_FFFFB550).w bra.s loc_2AB28 ; --------------------------------------------------------------------------- loc_2AAFE: ; CODE XREF: DoLoopE+12j moveq #4,d0 jsr sub_45F3A moveq #4,d0 jsr sub_3CD78 move.b (byte_FFFFB280).w,d3 bne.s loc_2AB22 jsr sub_7F61E move.b #4,(byte_FFFFB280).w bra.s loc_2AB28 ; --------------------------------------------------------------------------- loc_2AB22: ; CODE XREF: DoLoopE+19Ej DoLoopE+2A6j subq.b #1,d3 move.b d3,(byte_FFFFB280).w loc_2AB28: ; CODE XREF: DoLoopE+8j DoLoopE+290j ... move.w #$10,(word_FFFFB288).w move.w a1,(word_FFFFB550).w movem.l (sp)+,d0-d1/a0-a1 rts ; End of function DoLoopE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame DoLoopF: ; CODE XREF: OS1:0002B88Cp var_6366 = -$6366 var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a1,-(sp) tst.b (byte_FFFFB47A).w bne.w loc_2B124 cmpi.b #5,(ThrottleControlMode2?).w beq.w loc_2AFDA movea.w (word_FFFFB550).w,a1 move.w #$606,(word_FFFFB550).w jsr sub_78BBE tst.b (byte_FFFFB370).w bne.s loc_2AB7A tst.b (byte_FFFFA1E1).w beq.s loc_2AB7A jsr sub_750E2 jsr sub_74CBE loc_2AB7A: ; CODE XREF: DoLoopF+2Ej DoLoopF+34j tst.b (byte_FFFFA1DF).w beq.s loc_2AB86 jsr sub_7523C loc_2AB86: ; CODE XREF: DoLoopF+46j tst.b (byte_FFFFA1B5).w beq.s loc_2AB92 jsr sub_6D202 loc_2AB92: ; CODE XREF: DoLoopF+52j tst.b (byte_FFFFA1BB).w beq.s loc_2ABAA jsr sub_6D88A jsr sub_6DA1A jsr sub_6D944 loc_2ABAA: ; CODE XREF: DoLoopF+5Ej tst.b (byte_FFFFA1A3).w beq.s loc_2ABB6 jsr sub_6653A loc_2ABB6: ; CODE XREF: DoLoopF+76j tst.b (byte_FFFFA1A3).w beq.s loc_2ABC4 jsr sub_64EFC bra.s loc_2ABD0 ; --------------------------------------------------------------------------- loc_2ABC4: ; CODE XREF: DoLoopF+82j move.b #7,(byte_FFFF9E95).w bset #4,(word_FFFF9E8A).w loc_2ABD0: ; CODE XREF: DoLoopF+8Aj jsr sub_61460 tst.b (byte_FFFFA1BF).w beq.s loc_2ABE8 jsr sub_6E81E jsr sub_702A6 loc_2ABE8: ; CODE XREF: DoLoopF+A2j tst.b (byte_FFFFA1AF).w beq.s loc_2ABFA jsr sub_6A252 jsr sub_69B0A loc_2ABFA: ; CODE XREF: DoLoopF+B4j tst.b (byte_FFFFA1A8).w beq.s loc_2AC0C jsr sub_692E0 jsr sub_67410 loc_2AC0C: ; CODE XREF: DoLoopF+C6j tst.b (byte_FFFFA1C7).w beq.s loc_2AC1E jsr sub_72B0E jsr sub_714E0 loc_2AC1E: ; CODE XREF: DoLoopF+D8j tst.b (byte_FFFFA1C8).w beq.s loc_2AC2A jsr sub_748D0 loc_2AC2A: ; CODE XREF: DoLoopF+EAj jsr sub_60178 jsr loc_5F79C tst.b (byte_FFFFA1B3).w beq.s loc_2AC48 jsr sub_6C362 jsr sub_6B602 loc_2AC48: ; CODE XREF: DoLoopF+102j tst.b (byte_FFFFA19E).w beq.s loc_2AC54 jsr sub_6D316 loc_2AC54: ; CODE XREF: DoLoopF+114j jsr sub_6720E jsr sub_66EB2 tst.b (byte_FFFFA19F).w beq.s loc_2AC6C jsr sub_63E6C loc_2AC6C: ; CODE XREF: DoLoopF+12Cj jsr sub_7AC3C jsr sub_7AD7E jsr sub_79AB0 jsr sub_62F92 jsr sub_2CC22 jsr sub_75322 tst.b (byte_FFFFB158).w beq.s loc_2ACBA move.w (word_FFFFAB22).w,d0 movea.l #unk_FFAB20,a0 jsr sub_276D4 tst.b d0 beq.s loc_2ACBA clr.b (byte_FFFFB158).w moveq #1,d7 move.b d7,(byte_FFFF9A3A).w jsr sub_40278 loc_2ACBA: ; CODE XREF: DoLoopF+15Cj DoLoopF+170j jsr sub_86D9C clr.b d1 loc_2ACC2: ; CODE XREF: DoLoopF+216j clr.l d5 move.b d1,d5 move.b $364E.l(d5.w),d3 beq.s loc_2AD48 clr.l d5 move.b d3,d5 move.b -$6348(d5.w),d0 beq.s loc_2AD48 cmpi.b #$FF,d0 beq.s loc_2AD48 addq.b #1,d0 clr.l d5 move.b d3,d5 move.b d0,$1E+var_6366(d5.w) move.b (C2_EXECUTIVE_KE_MS_C2_FIRST_RETRY_INTERVAL).l,d2 ; Re-queue Class2 serial data message if expected response is not received after this many 100 millisecond intervals. ; Counts cmp.b d2,d0 bcs.s loc_2AD48 tst.b (C2_EXECUTIVE_KE_MS_C2_SUBSQNT_RETRY_INTERVAL).l beq.s loc_2AD48 move.l d0,d6 sub.b d2,d6 andi.l #$FF,d6 move.l d6,d4 move.b (C2_EXECUTIVE_KE_MS_C2_SUBSQNT_RETRY_INTERVAL).l,d7 clr.l d5 move.b d7,d5 divul.l d5,d5:d4 tst.b d5 bne.s loc_2AD48 andi.w #$FF,d7 divu.w d7,d6 addq.b #1,d6 move.b (C2_EXECUTIVE_KE_MS_C2_MAX_RETRY_LIMIT).l,d0 ; Stop re-queuing Class2 serial data message afterthis many retries. The Class2 node is now failed. ; Counts addq.b #1,d0 cmp.b d6,d0 bhi.s loc_2AD40 andi.w #$FF,d3 move.b #$FF,$1E+var_6366(d3.w) bra.s loc_2AD48 ; --------------------------------------------------------------------------- loc_2AD40: ; CODE XREF: DoLoopF+1F8j move.l d1,d0 jsr sub_4519E loc_2AD48: ; CODE XREF: DoLoopF+196j DoLoopF+1A2j ... addq.b #1,d1 cmpi.b #$89,d1 bls.w loc_2ACC2 moveq #5,d0 jsr sub_45F3A tst.b (byte_FFFF9636).w beq.s loc_2AD74 cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_2AD74 clr.b (byte_FFFF9636).w clr.b (byte_FFFF9637).w clr.b (byte_FFFF9638).w loc_2AD74: ; CODE XREF: DoLoopF+226j DoLoopF+22Ej movea.l #unk_FFB154,a0 jsr sub_276F4 move.w (word_FFFFB4A2).w,d0 cmp.w (C2_EXECUTIVE_KE_C2_IGN_VOLT_THRESH).l,d0 ; Ignition voltage threshold below which U-codes aredisabled. ; Volts bcc.s loc_2AD9A move.b #1,(byte_FFFFB15E).w move.w (GlobalClock).w,(word_FFFFB154).w bra.s loc_2ADB4 ; --------------------------------------------------------------------------- loc_2AD9A: ; CODE XREF: DoLoopF+252j move.w (word_FFFFB154).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmp.w (C2_EXECUTIVE_KE_C2_PASS_IGN_VOLT_TIME).l,d0 ; Minimum time ignition voltage must be high tore-enable U-codes ; Seconds bcs.s loc_2ADB4 clr.b (byte_FFFFB15E).w loc_2ADB4: ; CODE XREF: DoLoopF+260j DoLoopF+276j moveq #5,d0 jsr sub_3CD78 jsr sub_7CDD2 jsr sub_7F616 jsr nullsub_6 jsr sub_75DDC jsr sub_35A7A jsr sub_32678 jsr sub_31F5C moveq #2,d1 cmp.b (VEH_SYS_KE_PLATFORM).l,d1 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type bne.s loc_2ADF6 jsr sub_32324 loc_2ADF6: ; CODE XREF: DoLoopF+2B6j jsr sub_32262 jsr sub_3424A jsr sub_342EE jsr sub_3C4AC tst.b (EGR_KE_EGR_ENABLED).l ; controls execution of EGR logic ; BOOLEAN beq.s loc_2AE28 jsr sub_2E010 jsr sub_2DED8 jsr sub_2E438 loc_2AE28: ; CODE XREF: DoLoopF+2DCj tst.b (byte_FFFFB379).w beq.s loc_2AE3A jsr sub_8600A jsr sub_8640C loc_2AE3A: ; CODE XREF: DoLoopF+2F4j tst.b (byte_FFFFB370).w beq.s loc_2AE60 jsr sub_76516 jsr sub_77246 jsr sub_21C8A cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_2AE60 jsr sub_2637C loc_2AE60: ; CODE XREF: DoLoopF+306j DoLoopF+320j tst.b (OISTER_KE_OIL_STARVE_ENABLE).l ; Bit selectable to allow oil starvation algorithm to run. ; BOOLEAN beq.s loc_2AE6E jsr sub_80B94 loc_2AE6E: ; CODE XREF: DoLoopF+32Ej jsr sub_8443E jsr sub_4B494 jsr sub_4B64E jsr sub_4B68C jsr sub_4A71A jsr sub_759C6 move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d3 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type cmp.b d3,d1 beq.s loc_2AEE8 cmpi.b #4,d3 beq.s loc_2AEE8 jsr sub_54FDC jsr sub_4BC2E jsr sub_4BC94 jsr sub_5A25C tst.b (X_TCM_EXECUTION_KE_USE_SHIFT_STABILIZATION_ACCEL).l ; Bypass shift stabilization accel routine if this is false. ; T/F beq.s loc_2AEC8 jsr sub_4ED50 loc_2AEC8: ; CODE XREF: DoLoopF+388j jsr sub_4C50E tst.b (byte_FFFFB0C6).w beq.s loc_2AEDC jsr $405532 bra.s loc_2AEE8 ; --------------------------------------------------------------------------- loc_2AEDC: ; CODE XREF: DoLoopF+39Aj tst.b (byte_FFFF819D).w beq.s loc_2AEE8 jsr sub_280F8 loc_2AEE8: ; CODE XREF: DoLoopF+362j DoLoopF+368j ... jsr sub_2C7AC jsr sub_35BEC jsr sub_348C6 jsr sub_75C8C jsr sub_5F566 jsr sub_6CA9E jsr sub_2D620 move.b (byte_FFFFA1C9).w,d0 and.b (byte_FFFF92CC).w,d0 beq.s loc_2AF24 moveq #$14,d0 jsr sub_27258 loc_2AF24: ; CODE XREF: DoLoopF+3E2j tst.b (byte_FFFFA1CA).w beq.s loc_2AF3E btst #0,(byte_FFFF803D).w bne.s loc_2AF3E tst.b (byte_FFFF80DE).w beq.s loc_2AF3E jsr sub_27128 loc_2AF3E: ; CODE XREF: DoLoopF+3F0j DoLoopF+3F8j ... tst.b (byte_FFFFB0C6).w beq.s loc_2AF4C jsr sub_266D2 bra.s loc_2AF60 ; --------------------------------------------------------------------------- loc_2AF4C: ; CODE XREF: DoLoopF+40Aj tst.b (byte_FFFF819D).w beq.s loc_2AF5A jsr sub_27C78 bra.s loc_2AF60 ; --------------------------------------------------------------------------- loc_2AF5A: ; CODE XREF: DoLoopF+418j jsr sub_26900 loc_2AF60: ; CODE XREF: DoLoopF+412j DoLoopF+420j jsr sub_27806 moveq #3,d0 jsr sub_27AD2 move.b (byte_FFFFB27F).w,d3 bne.s loc_2AFD0 movea.w (word_FFFFB550).w,a0 move.w #$707,(word_FFFFB550).w tst.b (byte_FFFFA1DF).w beq.s loc_2AF98 cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_2AF98 jsr sub_751B4 jsr sub_751F8 loc_2AF98: ; CODE XREF: DoLoopF+44Aj DoLoopF+452j tst.b (byte_FFFFA19A).w beq.s loc_2AFA4 jsr sub_616D8 loc_2AFA4: ; CODE XREF: DoLoopF+464j moveq #6,d0 jsr sub_45F3A moveq #6,d0 jsr sub_3CD78 cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_2AFC2 jsr sub_3C638 loc_2AFC2: ; CODE XREF: DoLoopF+482j move.b #1,(byte_FFFFB27F).w move.w a0,(word_FFFFB550).w bra.w loc_2B124 ; --------------------------------------------------------------------------- loc_2AFD0: ; CODE XREF: DoLoopF+43Aj subq.b #1,d3 move.b d3,(byte_FFFFB27F).w bra.w loc_2B124 ; --------------------------------------------------------------------------- loc_2AFDA: ; CODE XREF: DoLoopF+16j jsr sub_7F616 tst.b (byte_FFFFB158).w beq.s loc_2B00A move.w (word_FFFFAB22).w,d0 movea.l #unk_FFAB20,a0 jsr sub_276D4 tst.b d0 beq.s loc_2B00A clr.b (byte_FFFFB158).w moveq #1,d7 move.b d7,(byte_FFFF9A3A).w jsr sub_40278 loc_2B00A: ; CODE XREF: DoLoopF+4ACj DoLoopF+4C0j jsr sub_86D9C clr.b d1 loc_2B012: ; CODE XREF: DoLoopF+566j clr.l d5 move.b d1,d5 move.b $364E.l(d5.w),d3 beq.s loc_2B098 clr.l d5 move.b d3,d5 move.b -$6348(d5.w),d0 beq.s loc_2B098 cmpi.b #$FF,d0 beq.s loc_2B098 addq.b #1,d0 clr.l d5 move.b d3,d5 move.b d0,$1E+var_6366(d5.w) move.b (C2_EXECUTIVE_KE_MS_C2_FIRST_RETRY_INTERVAL).l,d2 ; Re-queue Class2 serial data message if expected response is not received after this many 100 millisecond intervals. ; Counts cmp.b d2,d0 bcs.s loc_2B098 tst.b (C2_EXECUTIVE_KE_MS_C2_SUBSQNT_RETRY_INTERVAL).l beq.s loc_2B098 move.l d0,d6 sub.b d2,d6 andi.l #$FF,d6 move.l d6,d4 move.b (C2_EXECUTIVE_KE_MS_C2_SUBSQNT_RETRY_INTERVAL).l,d7 clr.l d5 move.b d7,d5 divul.l d5,d5:d4 tst.b d5 bne.s loc_2B098 andi.w #$FF,d7 divu.w d7,d6 addq.b #1,d6 move.b (C2_EXECUTIVE_KE_MS_C2_MAX_RETRY_LIMIT).l,d0 ; Stop re-queuing Class2 serial data message afterthis many retries. The Class2 node is now failed. ; Counts addq.b #1,d0 cmp.b d6,d0 bhi.s loc_2B090 andi.w #$FF,d3 move.b #$FF,$1E+var_6366(d3.w) bra.s loc_2B098 ; --------------------------------------------------------------------------- loc_2B090: ; CODE XREF: DoLoopF+548j move.l d1,d0 jsr sub_4519E loc_2B098: ; CODE XREF: DoLoopF+4E6j DoLoopF+4F2j ... addq.b #1,d1 cmpi.b #$89,d1 bls.w loc_2B012 moveq #5,d0 jsr sub_45F3A tst.b (byte_FFFF9636).w beq.s loc_2B0C4 cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_2B0C4 clr.b (byte_FFFF9636).w clr.b (byte_FFFF9637).w clr.b (byte_FFFF9638).w loc_2B0C4: ; CODE XREF: DoLoopF+576j DoLoopF+57Ej movea.l #unk_FFB154,a0 jsr sub_276F4 move.w (word_FFFFB4A2).w,d0 cmp.w (C2_EXECUTIVE_KE_C2_IGN_VOLT_THRESH).l,d0 ; Ignition voltage threshold below which U-codes aredisabled. ; Volts bcc.s loc_2B0EA move.b #1,(byte_FFFFB15E).w move.w (GlobalClock).w,(word_FFFFB154).w bra.s loc_2B104 ; --------------------------------------------------------------------------- loc_2B0EA: ; CODE XREF: DoLoopF+5A2j move.w (word_FFFFB154).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmp.w (C2_EXECUTIVE_KE_C2_PASS_IGN_VOLT_TIME).l,d0 ; Minimum time ignition voltage must be high tore-enable U-codes ; Seconds bcs.s loc_2B104 clr.b (byte_FFFFB15E).w loc_2B104: ; CODE XREF: DoLoopF+5B0j DoLoopF+5C6j moveq #5,d0 jsr sub_3CD78 tst.b (byte_FFFFA19F).w beq.s loc_2B11E jsr sub_63E6C jsr sub_63172 loc_2B11E: ; CODE XREF: DoLoopF+5D8j jsr sub_2D620 loc_2B124: ; CODE XREF: DoLoopF+Cj DoLoopF+494j ... moveq #$20,d3 ; ' ' move.b d3,(byte_FFFF904E).w move.w d3,(word_FFFFB28A).w move.w a1,(word_FFFFB550).w movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function DoLoopF ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame DoLoopG: ; CODE XREF: OS1:0002B8A8p var_7F50 = -$7F50 var_A = -$A var_6 = -6 var_4 = -4 var_2 = -2 link a6,#-$A movem.l d0-d2/d6-a1/a4-a5,-(sp) tst.b (byte_FFFFB47A).w bne.w loc_2B624 cmpi.b #5,(ThrottleControlMode2?).w beq.w loc_2B4DC movea.w (word_FFFFB550).w,a4 move.w #$909,(word_FFFFB550).w jsr GetCoolantTemperature jsr sub_7AAA8 jsr GetFuelLevel jsr sub_2F780 jsr sub_316E2 jsr sub_32738 jsr sub_3B78C jsr sub_35C1A jsr sub_2EBD6 jsr sub_7886A tst.b (word_FFFFA480).w beq.s loc_2B1A8 move.b (byte_FFFFA482).w,(byte_FFFFB2DE).w bra.s loc_2B1AC ; --------------------------------------------------------------------------- loc_2B1A8: ; CODE XREF: DoLoopG+64j clr.b (byte_FFFFB2DE).w loc_2B1AC: ; CODE XREF: DoLoopG+6Cj move.b (byte_FFFFB2DE).w,d3 cmpi.b #2,d3 bne.s loc_2B1BC jsr sub_75370 loc_2B1BC: ; CODE XREF: DoLoopG+7Aj tst.b (byte_FFFFA1B4).w beq.s loc_2B1C8 jsr sub_6CF1E loc_2B1C8: ; CODE XREF: DoLoopG+86j tst.b (byte_FFFFA1A1).w beq.s loc_2B1D4 jsr sub_64C06 loc_2B1D4: ; CODE XREF: DoLoopG+92j tst.b (byte_FFFFA1BF).w beq.s loc_2B1E0 jsr sub_6EB10 loc_2B1E0: ; CODE XREF: DoLoopG+9Ej tst.b (byte_FFFFA1CB).w beq.s loc_2B1EC jsr sub_75A66 loc_2B1EC: ; CODE XREF: DoLoopG+AAj jsr sub_6983E jsr sub_5EE7E moveq #3,d7 cmp.b (ThrottleControlMode2?).w,d7 bne.s loc_2B206 jsr sub_757C0 loc_2B206: ; CODE XREF: DoLoopG+C4j jsr sub_73A3E jsr sub_7CDE0 tst.b (OISTER_KE_OIL_STARVE_ENABLE).l ; Bit selectable to allow oil starvation algorithm to run. ; BOOLEAN beq.s loc_2B220 jsr sub_81060 loc_2B220: ; CODE XREF: DoLoopG+DEj moveq #7,d0 jsr sub_45F3A moveq #7,d0 jsr sub_3CD78 move.b #$21,(byte_FFFF904E).w ; '!' move.b (byte_FFFFB281).w,d3 bne.w loc_2B4D2 movea.w (word_FFFFB550).w,a1 move.w #$A0A,(word_FFFFB550).w clr.l d3 move.w (word_FFFFFF36).w,d3 asl.l #6,d3 divu.w d7,d3 andi.l #$FFFF,d3 asl.l #8,d3 asl.l #7,d3 divu.w (word_FFFFFF38).w,d3 move.w d3,(word_FFFF82E6).w jsr sub_7BC70 jsr sub_817BC jsr aB8lB8lsb8lB8lB+$16 jsr sub_7CE90 tst.b (byte_FFFFB250).w bne.s loc_2B288 jsr sub_2FC54 loc_2B288: ; CODE XREF: DoLoopG+146j jsr sub_3158C jsr sub_313D8 move.l (dword_FFFFAD2C).w,d3 cmpi.l #$FFFF,d3 bls.s loc_2B2A4 move.w #$FFFF,d3 loc_2B2A4: ; CODE XREF: DoLoopG+164j cmp.w (word_FFFFA940).w,d3 bcc.s loc_2B2B2 move.b #1,(byte_FFFFA93E).w bra.s loc_2B2B6 ; --------------------------------------------------------------------------- loc_2B2B2: ; CODE XREF: DoLoopG+16Ej clr.b (byte_FFFFA93E).w loc_2B2B6: ; CODE XREF: DoLoopG+176j cmp.b (ThrottleControlMode2?).w,d7 bne.s loc_2B2C2 jsr sub_32F08 loc_2B2C2: ; CODE XREF: DoLoopG+180j jsr sub_35762 jsr sub_334DE jsr sub_35C22 jsr sub_7DB64 jsr sub_7DFBA tst.b (byte_FFFFB370).w beq.s loc_2B2EC jsr sub_20644 loc_2B2EC: ; CODE XREF: DoLoopG+1AAj tst.b (byte_FFFFB379).w beq.s loc_2B2FE jsr sub_87374 jsr sub_86F0A loc_2B2FE: ; CODE XREF: DoLoopG+1B6j tst.b (byte_FFFFA1A1).w beq.s loc_2B30A jsr sub_64C14 loc_2B30A: ; CODE XREF: DoLoopG+1C8j tst.b (byte_FFFFA19B).w beq.s loc_2B322 jsr sub_61ECE jsr sub_61E4C jsr sub_61A3E loc_2B322: ; CODE XREF: DoLoopG+1D4j tst.b (byte_FFFFA19A).w beq.s loc_2B32E jsr sub_617FE loc_2B32E: ; CODE XREF: DoLoopG+1ECj tst.b (byte_FFFFA195).w beq.s loc_2B33A jsr sub_6080C loc_2B33A: ; CODE XREF: DoLoopG+1F8j tst.b (byte_FFFFA1C7).w beq.s loc_2B34C jsr sub_73106 jsr sub_71DC2 loc_2B34C: ; CODE XREF: DoLoopG+204j tst.b (byte_FFFFA1B3).w beq.s loc_2B358 jsr sub_6C700 loc_2B358: ; CODE XREF: DoLoopG+216j tst.b (byte_FFFFA1B9).w beq.s loc_2B364 jsr sub_6DD7A loc_2B364: ; CODE XREF: DoLoopG+222j jsr sub_5EF12 tst.b (byte_FFFFA1B0).w beq.s loc_2B37C jsr sub_6ABEA jsr sub_6AB0C loc_2B37C: ; CODE XREF: DoLoopG+234j tst.b (byte_FFFFA19F).w beq.s loc_2B388 jsr sub_63E4A loc_2B388: ; CODE XREF: DoLoopG+246j jsr sub_3CB4E jsr sub_26672 move.b #$22,(byte_FFFF904E).w ; '"' jsr sub_8465C tst.b (VEH_SYS_KE_DRIVETRAIN_TYPE).l ; Describes the type of drivetrain used on the vehicle ; Drivetrain_Type bne.s loc_2B3C8 movea.l (off_134C).l,a5 move.l a5,var_A(a6) move.l a5,d2 bne.s loc_2B3BC jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_2B3BC: ; CODE XREF: DoLoopG+27Aj btst #1,2(a5) sne d3 neg.b d3 bra.s loc_2B3CA ; --------------------------------------------------------------------------- loc_2B3C8: ; CODE XREF: DoLoopG+26Cj clr.b d3 loc_2B3CA: ; CODE XREF: DoLoopG+28Cj move.b (byte_FFFFA667).w,d5 move.l d3,d4 eor.b d5,d4 beq.s loc_2B3D8 move.b d3,(byte_FFFFA667).w loc_2B3D8: ; CODE XREF: DoLoopG+298j tst.b d4 beq.s loc_2B3E2 jsr sub_79A3E loc_2B3E2: ; CODE XREF: DoLoopG+2A0j tst.b (byte_FFFF9AA0).w bne.s loc_2B410 move.w (word_FFFFAB00).w,d0 movea.l #unk_FFAAFE,a0 jsr sub_276D4 tst.b d0 beq.s loc_2B432 moveq #1,d3 move.b d3,(byte_FFFF9AA0).w move.w #$3C0,(word_FFFFAB04).w move.w (GlobalClock).w,(word_FFFFAB02).w bra.s loc_2B432 ; --------------------------------------------------------------------------- loc_2B410: ; CODE XREF: DoLoopG+2ACj move.w (word_FFFFAB04).w,d0 movea.l #unk_FFAB02,a0 jsr sub_276D4 tst.b d0 beq.s loc_2B432 moveq #$20,d0 ; ' ' jsr (sub_794).l moveq #1,d3 move.b d3,(byte_FFFFBE70).w loc_2B432: ; CODE XREF: DoLoopG+2C0j DoLoopG+2D4j ... moveq #1,d1 loc_2B434: ; CODE XREF: DoLoopG+32Ej clr.l d6 move.b d1,d6 move.b -$5737(d6.w),d2 beq.s loc_2B462 lea word_FFFFAB06(d6.w*2),a0 move.w #$320,d0 jsr sub_276D4 tst.b d0 beq.s loc_2B462 move.l d2,d0 jsr sub_45CCE clr.b -$5737(d6.w) loc_2B462: ; CODE XREF: DoLoopG+304j DoLoopG+318j addq.b #1,d1 cmpi.b #$A,d1 bls.s loc_2B434 move.w #$320,d0 movea.l #unk_FFAB06,a0 jsr sub_276D4 tst.b d0 beq.s loc_2B4AC clr.b d0 moveq #1,d3 loc_2B482: ; CODE XREF: DoLoopG+35Cj clr.w d4 move.b d3,d4 move.b -$571A(d4.w),d4 bne.s loc_2B490 moveq #1,d0 loc_2B490: ; CODE XREF: DoLoopG+352j addq.b #1,d3 cmpi.b #$17,d3 bls.s loc_2B482 tst.b d0 beq.s loc_2B4A6 move.b #$FF,d0 jsr sub_45CCE loc_2B4A6: ; CODE XREF: DoLoopG+360j move.w (GlobalClock).w,(word_FFFFAB06).w loc_2B4AC: ; CODE XREF: DoLoopG+342j moveq #8,d0 jsr sub_45F3A moveq #8,d0 jsr sub_3CD78 move.b #1,(byte_FFFFB281).w moveq #4,d0 jsr sub_27AD2 move.w a1,(word_FFFFB550).w bra.w loc_2B624 ; --------------------------------------------------------------------------- loc_2B4D2: ; CODE XREF: DoLoopG+100j subq.b #1,d3 move.b d3,(byte_FFFFB281).w bra.w loc_2B624 ; --------------------------------------------------------------------------- loc_2B4DC: ; CODE XREF: DoLoopG+16j jsr GetFuelLevel moveq #7,d0 jsr sub_45F3A moveq #7,d0 jsr sub_3CD78 move.b #$21,(byte_FFFF904E).w ; '!' tst.b (byte_FFFF92CE).w bne.w loc_2B5FE move.w (word_FFFF92D2).w,d4 move.l d4,d3 add.b d3,d3 andi.w #$FF,d3 move.l unk_FFFF9284(d3.w*4),d2 moveq #1,d6 cmp.w d4,d6 bne.s loc_2B548 tst.b (byte_FFFF92D8).w beq.s loc_2B536 move.l #$3FFF,d2 move.l (dword_FFFF92D4).w,d1 cmp.l unk_FFFF9280(d3.w*4),d1 bne.s loc_2B548 clr.b (byte_FFFF92D9).w bra.s loc_2B548 ; --------------------------------------------------------------------------- loc_2B536: ; CODE XREF: DoLoopG+3E2j tst.b (byte_FFFF92D9).w bne.s loc_2B548 move.l #sub_20000,(dword_FFFF92D4).w move.b d6,(byte_FFFF92D9).w loc_2B548: ; CODE XREF: DoLoopG+3DCj DoLoopG+3F4j ... move.l #$FA00,d1 movea.l (dword_FFFF92D4).w,a2 move.l d2,d0 sub.l a2,d0 addq.l #1,d0 cmpi.l #$FA00,d0 bcc.s loc_2B562 move.l d0,d1 loc_2B562: ; CODE XREF: DoLoopG+424j move.l d1,d3 move.w (word_FFFF92D0).w,var_6(a6) loc_2B56A: ; CODE XREF: DoLoopG+46Aj move.b var_6(a6),d5 move.b (a2),d4 eor.b d5,d4 move.b d4,var_2(a6) clr.w d4 move.b var_2(a6),d4 move.w word_88612(d4.w*2),var_4(a6) move.b var_6+1(a6),var_6(a6) clr.b var_6+1(a6) move.w var_6(a6),d5 move.w var_4(a6),d4 eor.w d5,d4 move.w d4,var_6(a6) subq.l #1,d3 addq.l #1,a2 tst.l d3 bne.s loc_2B56A move.w var_6(a6),(word_FFFF92D0).w add.l (dword_FFFF92D4).w,d1 move.l d1,(dword_FFFF92D4).w cmp.l d2,d1 bls.s loc_2B5FE tst.b (byte_FFFF92D8).w beq.s loc_2B5C4 clr.b (byte_FFFF92D8).w bra.s loc_2B5FE ; --------------------------------------------------------------------------- loc_2B5C4: ; CODE XREF: DoLoopG+482j move.w (word_FFFF92D2).w,d3 andi.w #$FF,d3 move.w (word_FFFF92D0).w,$2E+var_7F50(d3.w*2) addq.w #1,(word_FFFF92D2).w clr.w (word_FFFF92D0).w move.w (word_FFFF92D2).w,d3 cmpi.w #8,d3 bls.s loc_2B5F0 move.b d6,(byte_FFFF92CE).w move.b d6,(byte_FFFF80DF).w bra.s loc_2B5FE ; --------------------------------------------------------------------------- loc_2B5F0: ; CODE XREF: DoLoopG+4AAj add.b d3,d3 andi.w #$FF,d3 move.l unk_FFFF9280(d3.w*4),(dword_FFFF92D4).w loc_2B5FE: ; CODE XREF: DoLoopG+3C2j DoLoopG+47Cj ... move.b (byte_FFFFB282).w,d3 bne.s loc_2B61E jsr GetCoolantTemperature jsr sub_7AAA8 move.b #$22,(byte_FFFF904E).w ; '"' move.b #1,(byte_FFFFB282).w bra.s loc_2B624 ; --------------------------------------------------------------------------- loc_2B61E: ; CODE XREF: DoLoopG+4C8j subq.b #1,d3 move.b d3,(byte_FFFFB282).w loc_2B624: ; CODE XREF: DoLoopG+Cj DoLoopG+394j ... move.w #$A0,(word_FFFFB28C).w ; '?' move.w a4,(word_FFFFB550).w movem.l (sp)+,d0-d2/d6-a1/a4-a5 unlk a6 rts ; End of function DoLoopG ; =============== S U B R O U T I N E ======================================= sub_2B636: ; CODE XREF: DoManyThings1+1A2p move.w #4,(word_FFFFB284).w move.w #8,(word_FFFFB286).w move.w #$10,(word_FFFFB288).w move.w #$20,(word_FFFFB28A).w ; ' ' move.w #$A0,(word_FFFFB28C).w ; '?' rts ; End of function sub_2B636 ; --------------------------------------------------------------------------- link a6,#-2 movem.l d0-d1/a0-a1,-(sp) movea.w (word_FFFFB550).w,a1 move.w #$D0D,(word_FFFFB550).w tst.b (byte_FFFFB37A).w beq.s loc_2B6DA btst #1,(word_FFFFE2F4).w beq.s loc_2B6C0 move.w #$200,(word_FFFFE2F4).w tst.b (byte_FFFFBFF8).w beq.s loc_2B6AC move.w (word_FFFFE238).w,-2(a6) cmpi.b #$D9,-1(a6) beq.s loc_2B698 cmpi.b #$DC,-1(a6) bne.s loc_2B69C loc_2B698: ; CODE XREF: OS1:0002B68Ej clr.b d3 bra.s loc_2B69E ; --------------------------------------------------------------------------- loc_2B69C: ; CODE XREF: OS1:0002B696j moveq #1,d3 loc_2B69E: ; CODE XREF: OS1:0002B69Aj tst.b d3 beq.s loc_2B6AC move.w (word_FFFFBFFA).w,(word_FFFFE19C).w clr.b (byte_FFFFBFF8).w loc_2B6AC: ; CODE XREF: OS1:0002B680j ; OS1:0002B6A0j tst.b (byte_FFFFB557).w bne.s loc_2B6EC clr.b d1 move.w #$D8,d0 ; '?' jsr (sub_FC0).l bra.s loc_2B6EC ; --------------------------------------------------------------------------- loc_2B6C0: ; CODE XREF: OS1:0002B674j move.w #$1000,(word_FFFFE2F4).w tst.b (byte_FFFFB557).w bne.s loc_2B6E0 moveq #1,d1 move.w #$D8,d0 ; '?' jsr (sub_FC0).l bra.s loc_2B6E0 ; --------------------------------------------------------------------------- loc_2B6DA: ; CODE XREF: OS1:0002B66Cj move.w #$1000,(word_FFFFE2F4).w loc_2B6E0: ; CODE XREF: OS1:0002B6CAj ; OS1:0002B6D8j movea.l #unk_FF997C,a0 jsr sub_2984E loc_2B6EC: ; CODE XREF: OS1:0002B6B0j ; OS1:0002B6BEj move.w a1,(word_FFFFB550).w movem.l (sp)+,d0-d1/a0-a1 unlk a6 rts ; --------------------------------------------------------------------------- loc_2B6F8: ; DATA XREF: Boot:off_640o move.l a0,-(sp) movea.w (word_FFFFB550).w,a0 move.w #$E0E,(word_FFFFB550).w bclr #0,(byte_FFFFFE21).w jsr sub_299AC move.w a0,(word_FFFFB550).w movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) movea.w (word_FFFFB550).w,a0 move.w #$F0F,(word_FFFFB550).w move.b #1,(byte_FFFFB5E6).w move.l (unk_FFFFB542).w,d3 addq.l #1,d3 move.l d3,(unk_FFFFB542).w cmpi.l #$7FFFFFFF,d3 bne.s loc_2B742 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_2B742: ; CODE XREF: OS1:0002B73Aj jsr sub_2180E tst.b (byte_FFFFB37A).w bne.s loc_2B754 jsr sub_7C2F0 loc_2B754: ; CODE XREF: OS1:0002B74Cj move.w a0,(word_FFFFB550).w movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) movea.w (word_FFFFB550).w,a0 move.w #$1010,(word_FFFFB550).w jsr sub_223EA move.w a0,(word_FFFFB550).w movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) movea.w (word_FFFFB550).w,a0 move.w #$1111,(word_FFFFB550).w tst.b (byte_FFFFB47A).w beq.s loc_2B790 jsr sub_87270 bra.s loc_2B796 ; --------------------------------------------------------------------------- loc_2B790: ; CODE XREF: OS1:0002B786j jsr sub_22EB8 loc_2B796: ; CODE XREF: OS1:0002B78Ej move.w a0,(word_FFFFB550).w movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) movea.w (word_FFFFB550).w,a0 move.w #$1212,(word_FFFFB550).w jsr sub_37FAE move.w a0,(word_FFFFB550).w movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) movea.w (word_FFFFB550).w,a0 move.w #$1313,(word_FFFFB550).w jsr sub_7C7E8 move.w a0,(word_FFFFB550).w movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) movea.w (word_FFFFB550).w,a0 move.w #$1414,(word_FFFFB550).w jsr sub_85D6E move.w a0,(word_FFFFB550).w movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- StartLoopA: ; DATA XREF: ExecuteMainLoops+140o move sr,-(sp) andi #$F8FF,sr move.l a0,-(sp) LoopA: ; CODE XREF: OS1:0002B806j movea.l #unk_FF997C,a0 jsr SharedByMainLoops jsr DoLoopA bra.s LoopA ; --------------------------------------------------------------------------- StartLoopB: ; DATA XREF: ExecuteMainLoops+106o move sr,-(sp) andi #$F8FF,sr move.l a0,-(sp) LoopB: ; CODE XREF: OS1:0002B822j movea.l #unk_FF9982,a0 jsr SharedByMainLoops jsr DoLoopB bra.s LoopB ; --------------------------------------------------------------------------- StartLoopC: ; DATA XREF: ExecuteMainLoops+D4o move sr,-(sp) andi #$F8FF,sr move.l a0,-(sp) LoopC: ; CODE XREF: OS1:0002B83Ej movea.l #unk_FF9988,a0 jsr SharedByMainLoops jsr DoLoopC bra.s LoopC ; --------------------------------------------------------------------------- StartLoopD: ; DATA XREF: ExecuteMainLoops+A2o move sr,-(sp) andi #$F8FF,sr move.l a0,-(sp) LoopD: ; CODE XREF: OS1:0002B85Aj movea.l #unk_FF998E,a0 jsr SharedByMainLoops jsr DoLoopD bra.s LoopD ; --------------------------------------------------------------------------- StartLoopE: ; DATA XREF: ExecuteMainLoops+70o move sr,-(sp) andi #$F8FF,sr move.l a0,-(sp) LoopE: ; CODE XREF: OS1:0002B876j movea.l #unk_FF9994,a0 jsr SharedByMainLoops jsr DoLoopE bra.s LoopE ; --------------------------------------------------------------------------- StartLoopF: ; DATA XREF: ExecuteMainLoops+3Eo move sr,-(sp) andi #$F8FF,sr move.l a0,-(sp) LoopF: ; CODE XREF: OS1:0002B892j movea.l #unk_FF999A,a0 jsr SharedByMainLoops jsr DoLoopF bra.s LoopF ; --------------------------------------------------------------------------- StartLoopG: ; DATA XREF: ExecuteMainLoops+Co move sr,-(sp) andi #$F8FF,sr move.l a0,-(sp) LoopG: ; CODE XREF: OS1:0002B8AEj movea.l #unk_FF99A0,a0 jsr SharedByMainLoops jsr DoLoopG bra.s LoopG ; =============== S U B R O U T I N E ======================================= ExecuteMainLoops: ; CODE XREF: DoManyThings1+1A8p movem.l d0-d1/a0-a1/a4,-(sp) move.l #unk_FFC5C0,-(sp) moveq #$64,d1 ; 'd' movea.l #StartLoopG,a1 move.l #$166,d0 movea.l #unk_FF9A06,a4 movea.l a4,a0 jsr BetweenMainLoops1 moveq #$50,d0 ; 'P' movea.l #unk_FF99A0,a1 movea.l a4,a0 jsr BetweenMainLoops2 move.l #unk_FFC878,-(sp) moveq #$5A,d1 ; 'Z' movea.l #StartLoopF,a1 move.l #$148,d0 movea.l #unk_FF99F6,a4 movea.l a4,a0 jsr BetweenMainLoops1 moveq #$10,d0 movea.l #unk_FF999A,a1 movea.l a4,a0 jsr BetweenMainLoops2 move.l #unk_FFC2DE,-(sp) moveq #$50,d1 ; 'P' movea.l #StartLoopE,a1 move.l #$172,d0 movea.l #unk_FF99E6,a4 movea.l a4,a0 jsr BetweenMainLoops1 moveq #8,d0 movea.l #unk_FF9994,a1 movea.l a4,a0 jsr BetweenMainLoops2 move.l #unk_FFC726,-(sp) moveq #$46,d1 ; 'F' movea.l #StartLoopD,a1 move.l #$152,d0 movea.l #unk_FF99D6,a4 movea.l a4,a0 jsr BetweenMainLoops1 moveq #4,d0 movea.l #unk_FF998E,a1 movea.l a4,a0 jsr BetweenMainLoops2 move.l #unk_FFC11E,-(sp) moveq #$3C,d1 ; '<' movea.l #StartLoopC,a1 move.l #$1C0,d0 movea.l #unk_FF99C6,a4 movea.l a4,a0 jsr BetweenMainLoops1 moveq #2,d0 movea.l #unk_FF9988,a1 movea.l a4,a0 jsr BetweenMainLoops2 move.l #unk_FFC450,-(sp) moveq #$32,d1 ; '2' movea.l #StartLoopB,a1 move.l #$170,d0 movea.l #unk_FF99B6,a4 movea.l a4,a0 jsr BetweenMainLoops1 moveq #1,d0 movea.l #unk_FF9982,a1 movea.l a4,a0 jsr BetweenMainLoops2 clr.l (dword_FFFF997C).w clr.w (word_FFFF9980).w move.l #unk_FFC9C0,-(sp) moveq #$A,d1 movea.l #StartLoopA,a1 move.l #$128,d0 movea.l #unk_FF99A6,a4 movea.l a4,a0 jsr BetweenMainLoops1 movea.l a4,a0 jsr sub_297D0 movem.l (sp)+,d0-d1/a0-a1/a4 rts ; End of function ExecuteMainLoops ; --------------------------------------------------------------------------- loc_2BA18: ; DATA XREF: Boot:off_18B6o move sr,-(sp) andi #$F8FF,sr jsr DoManyThings1 jsr sub_78DDE move.b (byte_2175).w,(byte_FFFFB54C).w move.b (byte_2176).w,(byte_FFFFB54D).w jsr sub_29746 ; --------------------------------------------------------------------------- move (sp)+,sr rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2BA40: ; CODE XREF: DoLoopC+158p var_4 = -4 link a6,#-4 movem.l d0-d2/d6/a0,-(sp) moveq #5,d4 cmp.b (AIR_CONDITIONING_KE_TYPE_OF_AC_ON_VEHICLE).l,d4 ; Type of Air Conditioning System supported ; Unitless beq.w loc_2C352 tst.b (AIR_CONDITIONING_KE_AC_STATUS_INPUT_EQUIPPED).l ; Set to TRUE if AC clutch relay feedback is hard wired to a PCM on a vehicle. ; BOOLEAN bne.s loc_2BA72 bclr #5,(byte_FFFFAD8B).w btst #1,(byte_FFFFAD8B).w beq.s loc_2BA96 loc_2BA6A: ; CODE XREF: sub_2BA40+4Ej bset #5,(byte_FFFFAD8B).w bra.s loc_2BA96 ; --------------------------------------------------------------------------- loc_2BA72: ; CODE XREF: sub_2BA40+1Aj clr.b d3 movea.l (off_134C).l,a2 move.l a2,var_4(a6) move.l a2,d5 bne.s loc_2BA88 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_2BA88: ; CODE XREF: sub_2BA40+40j btst #5,2(a2) bne.s loc_2BA6A bclr #5,(byte_FFFFAD8B).w loc_2BA96: ; CODE XREF: sub_2BA40+28j ; sub_2BA40+30j cmpi.b #4,(AIR_CONDITIONING_KE_TYPE_OF_AC_ON_VEHICLE).l ; Type of Air Conditioning System supported ; Unitless bne.w loc_2BB92 btst #1,(byte_FFFFAD8A).w bne.s loc_2BAD6 btst #0,(byte_FFFFAD8A).w beq.s loc_2BAD6 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFADA2).w,d3 sub.w $A(a2),d3 bcc.s loc_2BAC2 clr.w d3 loc_2BAC2: ; CODE XREF: sub_2BA40+7Ej move.w d3,(word_FFFFADA2).w tst.w d3 bne.w loc_2C352 bclr #0,(byte_FFFFAD8A).w bra.w loc_2C352 ; --------------------------------------------------------------------------- loc_2BAD6: ; CODE XREF: sub_2BA40+68j ; sub_2BA40+70j btst #1,(byte_FFFFAD8A).w beq.s loc_2BB3A btst #0,(byte_FFFFAD8A).w bne.s loc_2BB3A tst.b (byte_FFFFADAC).w bne.s loc_2BB16 move.b #1,(byte_FFFFADAC).w move.w (word_FFFF9E20).w,d3 cmpi.w #$A67,d3 bcc.s loc_2BB04 mulu.w #5,d3 lsr.l #2,d3 bra.s loc_2BB08 ; --------------------------------------------------------------------------- loc_2BB04: ; CODE XREF: sub_2BA40+BAj move.w #$D00,d3 loc_2BB08: ; CODE XREF: sub_2BA40+C2j movea.l #$9AF2,a2 tblu.w (a2),d3 move.w d3,(word_FFFFADA0).w loc_2BB16: ; CODE XREF: sub_2BA40+AAj movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFADA0).w,d3 sub.w $A(a2),d3 bcc.s loc_2BB26 clr.w d3 loc_2BB26: ; CODE XREF: sub_2BA40+E2j move.w d3,(word_FFFFADA0).w tst.w d3 bne.w loc_2C352 bset #0,(byte_FFFFAD8A).w bra.w loc_2C352 ; --------------------------------------------------------------------------- loc_2BB3A: ; CODE XREF: sub_2BA40+9Cj ; sub_2BA40+A4j btst #5,(byte_FFFFAD8B).w beq.s loc_2BB5A bset #1,(byte_FFFFAD8A).w btst #0,(byte_FFFFAD8A).w bne.w loc_2C352 clr.b (byte_FFFFADAC).w bra.w loc_2C352 ; --------------------------------------------------------------------------- loc_2BB5A: ; CODE XREF: sub_2BA40+100j bclr #1,(byte_FFFFAD8A).w btst #0,(byte_FFFFAD8A).w beq.w loc_2C352 move.w (word_FFFF9E20).w,d3 cmpi.w #$A67,d3 bcc.s loc_2BB7C mulu.w #5,d3 lsr.l #2,d3 bra.s loc_2BB80 ; --------------------------------------------------------------------------- loc_2BB7C: ; CODE XREF: sub_2BA40+132j move.w #$D00,d3 loc_2BB80: ; CODE XREF: sub_2BA40+13Aj movea.l #$9B0E,a2 tblu.w (a2),d3 move.w d3,(word_FFFFADA2).w bra.w loc_2C352 ; --------------------------------------------------------------------------- loc_2BB92: ; CODE XREF: sub_2BA40+5Ej tst.b (byte_FFFFAD92).w bne.s loc_2BBCC tst.b (byte_FFFF90C8).w beq.s loc_2BBB8 bclr #6,(byte_FFFFAD8B).w tst.b (byte_FFFF90C6).w beq.s loc_2BBB0 loc_2BBAA: ; CODE XREF: sub_2BA40+182j bset #6,(byte_FFFFAD8B).w loc_2BBB0: ; CODE XREF: sub_2BA40+168j ; sub_2BA40+18Aj moveq #1,d2 move.b d2,(byte_FFFFAD92).w bra.s loc_2BC0E ; --------------------------------------------------------------------------- loc_2BBB8: ; CODE XREF: sub_2BA40+15Cj tst.b (byte_FFFF90C9).w beq.s loc_2BC08 tst.b (byte_FFFF90C7).w beq.s loc_2BBAA bclr #6,(byte_FFFFAD8B).w bra.s loc_2BBB0 ; --------------------------------------------------------------------------- loc_2BBCC: ; CODE XREF: sub_2BA40+156j tst.b (byte_FFFF90C8).w beq.s loc_2BBEE tst.b (byte_FFFF90CE).w bne.s loc_2BBE0 loc_2BBD8: ; CODE XREF: sub_2BA40+1B8j ; sub_2BA40+1BEj bclr #6,(byte_FFFFAD8B).w bra.s loc_2BC0E ; --------------------------------------------------------------------------- loc_2BBE0: ; CODE XREF: sub_2BA40+196j bclr #6,(byte_FFFFAD8B).w tst.b (byte_FFFF90C6).w beq.s loc_2BC0E bra.s loc_2BC00 ; --------------------------------------------------------------------------- loc_2BBEE: ; CODE XREF: sub_2BA40+190j tst.b (byte_FFFF90C9).w beq.s loc_2BC08 tst.b (byte_FFFF90D0).w beq.s loc_2BBD8 tst.b (byte_FFFF90C7).w bne.s loc_2BBD8 loc_2BC00: ; CODE XREF: sub_2BA40+1ACj bset #6,(byte_FFFFAD8B).w bra.s loc_2BC0E ; --------------------------------------------------------------------------- loc_2BC08: ; CODE XREF: sub_2BA40+17Cj ; sub_2BA40+1B2j jsr sub_2C35A loc_2BC0E: ; CODE XREF: sub_2BA40+176j ; sub_2BA40+19Ej ... move.b (AIR_CONDITIONING_KE_TYPE_OF_AC_ON_VEHICLE).l,d0 ; Type of Air Conditioning System supported ; Unitless moveq #3,d2 cmp.b d0,d2 bne.s loc_2BC86 movea.l (off_132C).l,a0 move.l a0,var_4(a6) move.l a0,d6 bne.s loc_2BC2E jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_2BC2E: ; CODE XREF: sub_2BA40+1E6j btst #4,2(a0) beq.s loc_2BC3E bset #7,(byte_FFFFAD8C).w bra.s loc_2BC44 ; --------------------------------------------------------------------------- loc_2BC3E: ; CODE XREF: sub_2BA40+1F4j bclr #7,(byte_FFFFAD8C).w loc_2BC44: ; CODE XREF: sub_2BA40+1FCj btst #0,(byte_FFFFBF32).w beq.s loc_2BC54 bset #4,(byte_FFFFAD8C).w bra.s loc_2BC5A ; --------------------------------------------------------------------------- loc_2BC54: ; CODE XREF: sub_2BA40+20Aj bclr #4,(byte_FFFFAD8C).w loc_2BC5A: ; CODE XREF: sub_2BA40+212j movea.l (off_1330).l,a0 move.l a0,var_4(a6) move.l a0,d6 bne.s loc_2BC6E jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_2BC6E: ; CODE XREF: sub_2BA40+226j btst #0,2(a0) beq.s loc_2BC7E bset #6,(byte_FFFFAD8C).w bra.s loc_2BCA8 ; --------------------------------------------------------------------------- loc_2BC7E: ; CODE XREF: sub_2BA40+234j bclr #6,(byte_FFFFAD8C).w bra.s loc_2BCA8 ; --------------------------------------------------------------------------- loc_2BC86: ; CODE XREF: sub_2BA40+1D8j move.w (word_FFFFF2DE).w,d3 lsr.w #2,d3 andi.w #$FF,d3 asl.w #8,d3 andi.l #$FFFF,d3 divu.w #$F,d3 tblu.w (AIR_CONDITIONING_KE_AUTO_RECIRCULATION_OPTION+2).l,d3 ; Auto recirculation mode is present on vehicle. ; boolean move.w d3,(word_FFFFAD8E).w loc_2BCA8: ; CODE XREF: sub_2BA40+23Cj ; sub_2BA40+244j btst #3,(byte_FFFFAD8B).w bne.w loc_2BD4E btst #7,(byte_FFFFAD8B).w bne.s loc_2BCDE move.w (EngineRPM_PID_000C___).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_SLUGGING_ENG_SPEED_ENABLE).l,d3 ; Activate AC slugging if engine RPM is greater than this value ; RPM bls.w loc_2BD4E bset #7,(byte_FFFFAD8B).w move.w (word_FFFFAA90).w,(word_FFFFAD90).w move.w (AIR_CONDITIONING_KE_AC_SLUGGING_MAX_ALLOWABLE_TIM).l,(word_FFFFAD98).w ; When AC activated, it is turned off after this much time. ; Seconds bra.s loc_2BD4E ; --------------------------------------------------------------------------- loc_2BCDE: ; CODE XREF: sub_2BA40+278j move.w (word_FFFFAA90).w,d3 sub.w (word_FFFFAD90).w,d3 cmp.w (AIR_CONDITIONING_KE_REFERENCE_PULSES_AC_SLUGGING).l,d3 ; Keep A/C enabled for at least this many reference pulses. ; Counts bhi.s loc_2BD14 btst #6,(byte_FFFFAD8C).w bne.s loc_2BD14 move.w (word_FFFFB4A2).w,d3 cmp.w (AIR_CONDITIONING_KE_IGN_VOLT_LOW_DISABLE_SLUGGING).l,d3 ; AC slugging will not be enabled during crank when ignition voltage is below this value . ; Volts bcs.s loc_2BD14 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_SLUGGING_ENG_SPEED_TURN_OF).l,d3 ; When AC slugging is activated it is turned off wheneng speed reaches this level ; RPM bhi.s loc_2BD14 tst.w (word_FFFFAD98).w bne.s loc_2BD28 loc_2BD14: ; CODE XREF: sub_2BA40+2ACj ; sub_2BA40+2B4j ... bclr #4,(byte_FFFFAD8B).w bclr #7,(byte_FFFFAD8B).w bset #3,(byte_FFFFAD8B).w bra.s loc_2BD4E ; --------------------------------------------------------------------------- loc_2BD28: ; CODE XREF: sub_2BA40+2D2j bset #4,(byte_FFFFAD8B).w bset #7,(byte_FFFFAD8B).w bclr #3,(byte_FFFFAD8B).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAD98).w,d3 sub.w $A(a2),d3 bcc.s loc_2BD4A clr.w d3 loc_2BD4A: ; CODE XREF: sub_2BA40+306j move.w d3,(word_FFFFAD98).w loc_2BD4E: ; CODE XREF: sub_2BA40+26Ej ; sub_2BA40+284j ... cmp.b (ThrottleControlMode2?).w,d2 bne.w loc_2C2BA tst.w (word_FFFFAD9A).w beq.s loc_2BD7A btst #3,(byte_FFFFAD8B).w beq.s loc_2BD9C movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAD9A).w,d3 sub.w $A(a2),d3 bcc.s loc_2BD74 clr.w d3 loc_2BD74: ; CODE XREF: sub_2BA40+330j move.w d3,(word_FFFFAD9A).w bra.s loc_2BD8E ; --------------------------------------------------------------------------- loc_2BD7A: ; CODE XREF: sub_2BA40+31Aj tst.b (StallSaverActiveFlag).w bne.s loc_2BD8E tst.b (byte_FFFFB372).w beq.s loc_2BD96 btst #3,(byte_FFFFBF31).w beq.s loc_2BD96 loc_2BD8E: ; CODE XREF: sub_2BA40+338j ; sub_2BA40+33Ej bset #5,(byte_FFFFAD8A).w bra.s loc_2BD9C ; --------------------------------------------------------------------------- loc_2BD96: ; CODE XREF: sub_2BA40+344j ; sub_2BA40+34Cj bclr #5,(byte_FFFFAD8A).w loc_2BD9C: ; CODE XREF: sub_2BA40+322j ; sub_2BA40+354j btst #6,(byte_FFFFAD8B).w beq.w loc_2C03A btst #4,(byte_FFFFAD8A).w beq.s loc_2BDC2 move.w (EngineRPM_PID_000C___).w,d4 cmp.w (AIR_CONDITIONING_KE_AC_ENGINE_SPEED_LOWER_LIMIT).l,d4 ; Enable A/C if engine speed is below this threshold. ; RPM bhi.s loc_2BE0C bclr #4,(byte_FFFFAD8A).w bra.s loc_2BE0C ; --------------------------------------------------------------------------- loc_2BDC2: ; CODE XREF: sub_2BA40+36Cj move.w (EngineRPM_PID_000C___).w,d4 cmp.w (AIR_CONDITIONING_KE_AC_ENGINE_SPEED_UPPER_LIMIT).l,d4 ; Disable A/C if engine speed is above this threshold. ; RPM bcs.s loc_2BDE6 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAD9E).w,d3 add.w $A(a2),d3 bcc.s loc_2BDE0 move.w #$FFFF,d3 loc_2BDE0: ; CODE XREF: sub_2BA40+39Aj move.w d3,(word_FFFFAD9E).w bra.s loc_2BDEA ; --------------------------------------------------------------------------- loc_2BDE6: ; CODE XREF: sub_2BA40+38Cj clr.w (word_FFFFAD9E).w loc_2BDEA: ; CODE XREF: sub_2BA40+3A4j move.w (word_FFFFAD9E).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_ENGINE_SPEED_TIME).l,d3 ; Amount of continuous time in which the engine speed has been maintained to disable air conditioner. ; Seconds bhi.s loc_2BE06 cmp.w (AIR_CONDITIONING_KE_AC_ENGINE_SPEED_LOWER_LIMIT).l,d4 ; Enable A/C if engine speed is below this threshold. ; RPM bls.s loc_2BE0C btst #5,(byte_FFFFAD8B).w bne.s loc_2BE0C loc_2BE06: ; CODE XREF: sub_2BA40+3B4j bset #4,(byte_FFFFAD8A).w loc_2BE0C: ; CODE XREF: sub_2BA40+378j ; sub_2BA40+380j ... btst #4,(byte_FFFFAD8A).w bne.w loc_2C03A btst #3,(byte_FFFFAD8A).w bne.w loc_2BEA2 move.w (AIR_CONDITIONING_KE_AC_HIGH_TPS_DISABLE_THRESHOLD).l,d4 ; Throttle position in which AC needs to be disabled ; Percent cmp.w (word_FFFFAB66).w,d4 bcc.s loc_2BE6A move.w (word_FFFFAEBC).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_VEH_SPEED_LAUNCH_DISABLE).l,d3 bcc.s loc_2BE6A move.b (byte_FFFFA3B8).w,d3 cmp.b (AIR_CONDITIONING_KE_AC_GEARS_FOR_LAUNCH_DISABLE).l,d3 ; Actual transmission gear that is less than or equal to this that allows AC to be disabled by TPS. ; Gear bhi.s loc_2BE6A tst.w (word_FFFFAD96).w bne.s loc_2BE6A btst #1,(byte_FFFFAD8B).w beq.w loc_2BEEE bset #3,(byte_FFFFAD8A).w clr.w (word_FFFFAD94).w loc_2BE5E: ; CODE XREF: sub_2BA40+44Aj move.w (AIR_CONDITIONING_KE_AC_HIGH_TPS_REPEAT_TIME).l,(word_FFFFAD96).w ; Time in which high TPS AC disables are not allowed after the first disable. ; Seconds bra.w loc_2BEEE ; --------------------------------------------------------------------------- loc_2BE6A: ; CODE XREF: sub_2BA40+3EAj ; sub_2BA40+3F6j ... bclr #3,(byte_FFFFAD8A).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAD94).w,d3 add.w $A(a2),d3 bcc.s loc_2BE82 move.w #$FFFF,d3 loc_2BE82: ; CODE XREF: sub_2BA40+43Cj move.w d3,(word_FFFFAD94).w cmp.w (word_FFFFAB66).w,d4 bcs.s loc_2BE5E movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAD96).w,d3 sub.w $A(a2),d3 bcc.s loc_2BE9C clr.w d3 loc_2BE9C: ; CODE XREF: sub_2BA40+458j move.w d3,(word_FFFFAD96).w bra.s loc_2BEEE ; --------------------------------------------------------------------------- loc_2BEA2: ; CODE XREF: sub_2BA40+3DCj tst.b (AIR_CONDITIONING_KE_AC_TPS_DISABLE_FOR_POLICE).l ; Set to TRUE on Police vehicles. This forces AC off for the entire ignition cycle to give them more power for chases. ; BOOLEAN bne.s loc_2BEEE movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAD94).w,d3 add.w $A(a2),d3 bcc.s loc_2BEBC move.w #$FFFF,d3 loc_2BEBC: ; CODE XREF: sub_2BA40+476j move.w d3,(word_FFFFAD94).w move.w (word_FFFFAEBC).w,d4 cmp.w (AIR_CONDITIONING_KE_AC_VEHICLE_SPEED_RE_ENABLE).l,d4 bhi.s loc_2BEE8 cmp.w (AIR_CONDITIONING_KE_AC_HIGH_TPS_RE_ENABLE_TIME).l,d3 ; Time in which wide open throttle launch disable is to last ; Seconds bhi.s loc_2BEE8 move.w (word_FFFFAB66).w,d4 cmp.w (AIR_CONDITIONING_KE_AC_HIGH_TPS_RE_ENABLE_THRESH).l,d4 ; Throttle Position in which launch disable can be seperated fromWOT disable ; Percent bcc.s loc_2BEEE cmp.w (AIR_CONDITIONING_KE_AC_LOW_TPS_RE_ENABLE_TIME).l,d3 ; Time in which power enrichment launch disable is to last ; Seconds bls.s loc_2BEEE loc_2BEE8: ; CODE XREF: sub_2BA40+48Aj ; sub_2BA40+492j bclr #3,(byte_FFFFAD8A).w loc_2BEEE: ; CODE XREF: sub_2BA40+410j ; sub_2BA40+426j ... cmp.b d0,d2 bne.s loc_2BF04 bclr #6,(byte_FFFFAD8A).w btst #6,(byte_FFFFAD8C).w beq.w loc_2BFDE bra.s loc_2BF2C ; --------------------------------------------------------------------------- loc_2BF04: ; CODE XREF: sub_2BA40+4B0j btst #6,(byte_FFFFAD8A).w bne.w loc_2BF96 btst #1,(byte_FFFFAD8A).w bne.s loc_2BF36 move.w (word_FFFFAD8E).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_HIGH_PRESSURE_LOWER_LIMIT).l,d3 ; Enable A/C if pressure is below this threshold. ; PSI bhi.s loc_2BF2C cmp.w (AIR_CONDITIONING_KE_AC_LOW_PRESSURE_LOWER_LIMIT).l,d3 ; Disable A/C if pressure is below this threshold. ; PSI bcc.w loc_2BFDE loc_2BF2C: ; CODE XREF: sub_2BA40+4C2j ; sub_2BA40+4E0j bset #6,(byte_FFFFAD8A).w bra.w loc_2BFDE ; --------------------------------------------------------------------------- loc_2BF36: ; CODE XREF: sub_2BA40+4D4j move.w (word_FFFFAD8E).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_HIGH_PRESSURE_UPPER_LIMIT).l,d3 ; Disable A/C if pressure is above this threshold. ; PSI bhi.s loc_2BF4A cmp.w (AIR_CONDITIONING_KE_AC_LOW_PRESSURE_LOWER_LIMIT).l,d3 ; Disable A/C if pressure is below this threshold. ; PSI bcc.s loc_2BF86 loc_2BF4A: ; CODE XREF: sub_2BA40+500j cmp.w (AIR_CONDITIONING_KE_AC_LOW_PRESSURE_LOWER_LIMIT).l,d3 ; Disable A/C if pressure is below this threshold. ; PSI bcc.s loc_2BF78 tst.b (byte_FFFFAD8D).w bne.s loc_2BF78 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFADAA).w,d3 sub.w $A(a2),d3 bcc.s loc_2BF68 clr.w d3 loc_2BF68: ; CODE XREF: sub_2BA40+524j move.w d3,(word_FFFFADAA).w tst.w d3 bne.s loc_2BFDE move.b #1,(byte_FFFFAD8D).w bra.s loc_2BFDE ; --------------------------------------------------------------------------- loc_2BF78: ; CODE XREF: sub_2BA40+510j ; sub_2BA40+516j bset #6,(byte_FFFFAD8A).w bset #2,(byte_FFFFAD8B).w bra.s loc_2BFDE ; --------------------------------------------------------------------------- loc_2BF86: ; CODE XREF: sub_2BA40+508j tst.b (byte_FFFFAD8D).w bne.s loc_2BFDE move.w (AIR_CONDITIONING_KE_AC_PRESSURE_INITIAL_DELAY_TIM).l,(word_FFFFADAA).w bra.s loc_2BFDE ; --------------------------------------------------------------------------- loc_2BF96: ; CODE XREF: sub_2BA40+4CAj btst #1,(byte_FFFFAD8A).w bne.s loc_2BFDE move.w (word_FFFFAD8E).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_HIGH_PRESSURE_LOWER_LIMIT).l,d3 ; Enable A/C if pressure is below this threshold. ; PSI bcc.s loc_2BFDE btst #2,(byte_FFFFAD8B).w beq.s loc_2BFCC move.w (word_FFFFAD8E).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_LOW_PRESSURE_UPPER_LIMIT).l,d3 ; Enable A/C if pressure is above this threshold. ; PSI bls.s loc_2BFDE bclr #6,(byte_FFFFAD8A).w bclr #2,(byte_FFFFAD8B).w bra.s loc_2BFDE ; --------------------------------------------------------------------------- loc_2BFCC: ; CODE XREF: sub_2BA40+570j move.w (word_FFFFAD8E).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_LOW_PRESSURE_LOWER_LIMIT).l,d3 ; Disable A/C if pressure is below this threshold. ; PSI bls.s loc_2BFDE bclr #6,(byte_FFFFAD8A).w loc_2BFDE: ; CODE XREF: sub_2BA40+4BEj ; sub_2BA40+4E8j ... btst #5,(byte_FFFFAD8B).w beq.s loc_2BFFA move.w (word_FFFFB4A2).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_LOW_VOLTAGE_LOWER_LIMIT).l,d3 ; AC compressor is disengaged when voltage drops below this value. ; volts bcc.s loc_2C00C loc_2BFF2: ; CODE XREF: sub_2BA40+5C4j bset #2,(byte_FFFFAD8A).w bra.s loc_2C00C ; --------------------------------------------------------------------------- loc_2BFFA: ; CODE XREF: sub_2BA40+5A4j move.w (word_FFFFB4A2).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_LOW_VOLTAGE_UPPER_LIMIT).l,d3 ; AC compressor not allowed to engaged at voltage belowthis value. If compressor already engaged it willstay on. ; volts bcs.s loc_2BFF2 bclr #2,(byte_FFFFAD8A).w loc_2C00C: ; CODE XREF: sub_2BA40+5B0j ; sub_2BA40+5B8j btst #7,(byte_FFFFAD8A).w beq.s loc_2C028 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_HOT_COOLANT_LOWER_LIMIT).l,d3 ; Enable A/C if coolant temperature is below this threshold. ; Degrees_C bge.s loc_2C03A bclr #7,(byte_FFFFAD8A).w bra.s loc_2C03A ; --------------------------------------------------------------------------- loc_2C028: ; CODE XREF: sub_2BA40+5D2j move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_HOT_COOLANT_UPPER_LIMIT).l,d3 ; Disable A/C if coolant temperature is above this threshold. ; Degrees_C ble.s loc_2C03A bset #7,(byte_FFFFAD8A).w loc_2C03A: ; CODE XREF: sub_2BA40+362j ; sub_2BA40+3D2j ... movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFADA8).w,d3 sub.w $A(a2),d3 bcc.s loc_2C04A clr.w d3 loc_2C04A: ; CODE XREF: sub_2BA40+606j move.w d3,(word_FFFFADA8).w btst #5,(byte_FFFFAD8A).w bne.s loc_2C074 tst.b (byte_FFFFB424).w bne.s loc_2C074 btst #3,(byte_FFFFAD8A).w bne.s loc_2C074 btst #4,(byte_FFFFAD8A).w bne.s loc_2C074 cmpi.b #2,(byte_FFFF90C7).w bne.s loc_2C0B2 loc_2C074: ; CODE XREF: sub_2BA40+614j ; sub_2BA40+61Aj ... btst #0,(byte_FFFFAD8A).w beq.s loc_2C0A2 move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$C800,d3 bcc.s loc_2C092 andi.l #$FFFF,d3 divu.w #$14,d3 bra.s loc_2C096 ; --------------------------------------------------------------------------- loc_2C092: ; CODE XREF: sub_2BA40+644j move.w #$A00,d3 loc_2C096: ; CODE XREF: sub_2BA40+650j tblu.w (AIR_CONDITIONING_KV_AC_MINIMUM_OFF_TIME).l,d3 ; Minimum duration of clutch disable. ; Seconds move.w d3,(word_FFFFADA8).w loc_2C0A2: ; CODE XREF: sub_2BA40+63Aj bclr #0,(byte_FFFFAD8A).w bclr #1,(byte_FFFFAD8A).w bra.w loc_2C218 ; --------------------------------------------------------------------------- loc_2C0B2: ; CODE XREF: sub_2BA40+632j btst #1,(byte_FFFFAD8A).w bne.s loc_2C10C btst #0,(byte_FFFFAD8A).w beq.s loc_2C10C movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFADA2).w,d3 sub.w $A(a2),d3 bcc.s loc_2C0D2 clr.w d3 loc_2C0D2: ; CODE XREF: sub_2BA40+68Ej move.w d3,(word_FFFFADA2).w tst.w d3 bne.w loc_2C218 bclr #0,(byte_FFFFAD8A).w move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$C800,d3 bcc.s loc_2C0F8 andi.l #$FFFF,d3 divu.w #$14,d3 bra.s loc_2C0FC ; --------------------------------------------------------------------------- loc_2C0F8: ; CODE XREF: sub_2BA40+6AAj move.w #$A00,d3 loc_2C0FC: ; CODE XREF: sub_2BA40+6B6j tblu.w (AIR_CONDITIONING_KV_AC_MINIMUM_OFF_TIME).l,d3 ; Minimum duration of clutch disable. ; Seconds move.w d3,(word_FFFFADA8).w bra.w loc_2C218 ; --------------------------------------------------------------------------- loc_2C10C: ; CODE XREF: sub_2BA40+678j ; sub_2BA40+680j btst #1,(byte_FFFFAD8A).w beq.s loc_2C168 btst #0,(byte_FFFFAD8A).w bne.s loc_2C168 tst.b (byte_FFFFADAC).w bne.s loc_2C14C move.w (word_FFFF9E20).w,d3 cmpi.w #$A67,d3 bcc.s loc_2C134 mulu.w #5,d3 lsr.l #2,d3 bra.s loc_2C138 ; --------------------------------------------------------------------------- loc_2C134: ; CODE XREF: sub_2BA40+6EAj move.w #$D00,d3 loc_2C138: ; CODE XREF: sub_2BA40+6F2j movea.l #$9AF2,a2 tblu.w (a2),d3 move.w d3,(word_FFFFADA0).w move.b #1,(byte_FFFFADAC).w loc_2C14C: ; CODE XREF: sub_2BA40+6E0j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFADA0).w,d3 sub.w $A(a2),d3 bcc.s loc_2C15C clr.w d3 loc_2C15C: ; CODE XREF: sub_2BA40+718j move.w d3,(word_FFFFADA0).w tst.w d3 bne.w loc_2C218 bra.s loc_2C1D8 ; --------------------------------------------------------------------------- loc_2C168: ; CODE XREF: sub_2BA40+6D2j ; sub_2BA40+6DAj btst #6,(byte_FFFFAD8B).w beq.s loc_2C1E6 btst #2,(byte_FFFFAD8A).w bne.s loc_2C1E6 btst #6,(byte_FFFFAD8A).w bne.s loc_2C1E6 btst #7,(byte_FFFFAD8A).w bne.s loc_2C1E6 btst #6,(byte_FFFF8A46).w bne.s loc_2C1E6 btst #6,(byte_FFFF8A48).w bne.s loc_2C1E6 btst #6,(byte_FFFF89A8).w bne.s loc_2C1E6 btst #6,(byte_FFFF89AA).w bne.s loc_2C1E6 tst.b (byte_FFFFA354).w bne.s loc_2C1E6 btst #3,(byte_FFFFB2AE).w bne.s loc_2C1E6 btst #6,(byte_FFFFAD8C).w bne.s loc_2C1E6 tst.w d3 bne.s loc_2C1E6 bset #1,(byte_FFFFAD8A).w btst #1,(byte_FFFFAD8B).w beq.s loc_2C1E0 btst #7,(byte_FFFFAD8B).w beq.s loc_2C218 loc_2C1D8: ; CODE XREF: sub_2BA40+726j bset #0,(byte_FFFFAD8A).w bra.s loc_2C218 ; --------------------------------------------------------------------------- loc_2C1E0: ; CODE XREF: sub_2BA40+78Ej clr.b (byte_FFFFADAC).w bra.s loc_2C218 ; --------------------------------------------------------------------------- loc_2C1E6: ; CODE XREF: sub_2BA40+72Ej ; sub_2BA40+736j ... bclr #1,(byte_FFFFAD8A).w btst #1,(byte_FFFFAD8B).w beq.s loc_2C218 move.w (word_FFFF9E20).w,d3 cmpi.w #$A67,d3 bcc.s loc_2C206 mulu.w #5,d3 lsr.l #2,d3 bra.s loc_2C20A ; --------------------------------------------------------------------------- loc_2C206: ; CODE XREF: sub_2BA40+7BCj move.w #$D00,d3 loc_2C20A: ; CODE XREF: sub_2BA40+7C4j movea.l #$9B0E,a2 tblu.w (a2),d3 move.w d3,(word_FFFFADA2).w loc_2C218: ; CODE XREF: sub_2BA40+66Ej ; sub_2BA40+698j ... tst.b (byte_FFFF90CF).w beq.s loc_2C228 move.b #1,(byte_FFFF90CA).w clr.b (byte_FFFF90CF).w loc_2C228: ; CODE XREF: sub_2BA40+7DCj tst.b (AIR_CONDITIONING_KE_AUTO_RECIRCULATION_OPTION).l ; Auto recirculation mode is present on vehicle. ; boolean beq.w loc_2C2CC btst #7,(byte_FFFFAD8C).w bne.s loc_2C284 move.w (word_FFFFAEBC).w,d3 cmp.w (AIR_CONDITIONING_KE_AUTO_RECIRC_ON_MPH).l,d3 ; Vehicle speed below which Auto Recirc mode is enabled for high pressure. ; MPH bhi.s loc_2C284 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFADA4).w,d3 sub.w $A(a2),d3 bcc.s loc_2C256 clr.w d3 loc_2C256: ; CODE XREF: sub_2BA40+812j move.w d3,(word_FFFFADA4).w tst.w d3 bne.s loc_2C27A bset #0,(byte_FFFFAD8B).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFADA6).w,d3 sub.w $A(a2),d3 bcc.s loc_2C274 clr.w d3 loc_2C274: ; CODE XREF: sub_2BA40+830j move.w d3,(word_FFFFADA6).w bra.s loc_2C2CC ; --------------------------------------------------------------------------- loc_2C27A: ; CODE XREF: sub_2BA40+81Cj move.w (AIR_CONDITIONING_KE_AUTO_RECIRC_MIN_ON_TIME).l,(word_FFFFADA6).w ; Minimum time that Auto Recirc mode must be enabled. ; seconds bra.s loc_2C2CC ; --------------------------------------------------------------------------- loc_2C284: ; CODE XREF: sub_2BA40+7F8j ; sub_2BA40+804j move.w (AIR_CONDITIONING_KE_AUTO_RECIRC_ENABLE_DELAY_TIME).l,(word_FFFFADA4).w ; Recirc mode enable delay after conditions are met. ; seconds movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFADA6).w,d3 sub.w $A(a2),d3 bcc.s loc_2C29C clr.w d3 loc_2C29C: ; CODE XREF: sub_2BA40+858j move.w d3,(word_FFFFADA6).w tst.w d3 bne.s loc_2C2CC btst #7,(byte_FFFFAD8C).w bne.s loc_2C2C6 move.w (word_FFFFAEBC).w,d1 cmp.w (AIR_CONDITIONING_KE_AUTO_RECIRC_OFF_MPH).l,d1 ; Vehicle speed above which Auto Recirc mode is disabled. ; MPH bls.s loc_2C2CC bra.s loc_2C2C6 ; --------------------------------------------------------------------------- loc_2C2BA: ; CODE XREF: sub_2BA40+312j bclr #0,(byte_FFFFAD8A).w bclr #1,(byte_FFFFAD8A).w loc_2C2C6: ; CODE XREF: sub_2BA40+86Aj ; sub_2BA40+878j bclr #0,(byte_FFFFAD8B).w loc_2C2CC: ; CODE XREF: sub_2BA40+7EEj ; sub_2BA40+838j ... tst.b (AIR_CONDITIONING_KE_AUTO_RECIRCULATION_OPTION).l ; Auto recirculation mode is present on vehicle. ; boolean beq.s loc_2C2FC bclr #5,(byte_FFFFAD8C).w btst #0,(byte_FFFFAD8B).w beq.s loc_2C2E8 bset #5,(byte_FFFFAD8C).w loc_2C2E8: ; CODE XREF: sub_2BA40+8A0j btst #5,(byte_FFFFAD8C).w sne d1 neg.b d1 move.w #$13A,d0 jsr (sub_1122).l loc_2C2FC: ; CODE XREF: sub_2BA40+892j btst #5,(word_FFFFA7DC+1).w beq.s loc_2C314 btst #1,(word_FFFFA7E2).w bne.s loc_2C338 bclr #1,(byte_FFFFAD8B).w bra.s loc_2C33E ; --------------------------------------------------------------------------- loc_2C314: ; CODE XREF: sub_2BA40+8C2j btst #3,(byte_FFFFAD8B).w bne.s loc_2C32A bclr #1,(byte_FFFFAD8B).w btst #7,(byte_FFFFAD8B).w bra.s loc_2C336 ; --------------------------------------------------------------------------- loc_2C32A: ; CODE XREF: sub_2BA40+8DAj bclr #1,(byte_FFFFAD8B).w btst #0,(byte_FFFFAD8A).w loc_2C336: ; CODE XREF: sub_2BA40+8E8j beq.s loc_2C33E loc_2C338: ; CODE XREF: sub_2BA40+8CAj bset #1,(byte_FFFFAD8B).w loc_2C33E: ; CODE XREF: sub_2BA40+8D2j ; sub_2BA40:loc_2C336j btst #1,(byte_FFFFAD8B).w sne d1 neg.b d1 move.w #$150,d0 jsr (sub_1122).l loc_2C352: ; CODE XREF: sub_2BA40+10j ; sub_2BA40+88j ... movem.l (sp)+,d0-d2/d6/a0 unlk a6 rts ; End of function sub_2BA40 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2C35A: ; CODE XREF: sub_2BA40:loc_2BC08p var_2 = -2 link a6,#-2 btst #1,(byte_FFFFBF32).w sne d3 neg.b d3 clr.l d4 move.w (AIR_CONDITIONING_KE_AC_INITIAL_STARTUP_WINDOW).l,d4 cmp.l (EngineRunTime).w,d4 bcc.s loc_2C37E move.w (AIR_CONDITIONING_KE_AC_REQUEST_DEBOUNCE_TIME).l,d4 ; Determines how long the AC Request must stay in a statebefore a state change is allowed. ; Seconds bra.s loc_2C384 ; --------------------------------------------------------------------------- loc_2C37E: ; CODE XREF: sub_2C35A+1Aj move.w (AIR_CONDITIONING_KE_AC_STARTUP_FAST_DEBOUNCE_TIME).l,d4 loc_2C384: ; CODE XREF: sub_2C35A+22j btst #6,(byte_FFFFAD8B).w sne d5 neg.b d5 cmp.b d3,d5 beq.s loc_2C3B6 move.w (word_FFFFAD9C).w,var_2(a6) move.w (GlobalClock).w,d5 sub.w var_2(a6),d5 cmp.w d4,d5 bcs.s loc_2C3BC tst.b d3 beq.s loc_2C3B0 bset #6,(byte_FFFFAD8B).w bra.s loc_2C3B6 ; --------------------------------------------------------------------------- loc_2C3B0: ; CODE XREF: sub_2C35A+4Cj bclr #6,(byte_FFFFAD8B).w loc_2C3B6: ; CODE XREF: sub_2C35A+36j ; sub_2C35A+54j move.w (GlobalClock).w,(word_FFFFAD9C).w loc_2C3BC: ; CODE XREF: sub_2C35A+48j unlk a6 rts ; End of function sub_2C35A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2C3C0: ; CODE XREF: OS1:00028AF2p link a6,#-4 andi.w #$FF,d0 cmpi.w #1,d0 bcs.w loc_2C4F0 movea.l off_8A444(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_2C3DA: ; DATA XREF: OS4:0008A44Co cmpi.b #3,(AIR_CONDITIONING_KE_TYPE_OF_AC_ON_VEHICLE).l ; Type of Air Conditioning System supported ; Unitless bne.s loc_2C422 btst #0,(byte_FFFFBF32).w beq.s loc_2C3F4 bset #4,(byte_FFFFAD8C).w bra.s loc_2C3FA ; --------------------------------------------------------------------------- loc_2C3F4: ; CODE XREF: sub_2C3C0+2Aj bclr #4,(byte_FFFFAD8C).w loc_2C3FA: ; CODE XREF: sub_2C3C0+32j movea.l (off_1330).l,a2 move.l a2,d3 bne.s loc_2C40A jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_2C40A: ; CODE XREF: sub_2C3C0+42j btst #0,2(a2) beq.s loc_2C41A bset #6,(byte_FFFFAD8C).w bra.s loc_2C444 ; --------------------------------------------------------------------------- loc_2C41A: ; CODE XREF: sub_2C3C0+50j bclr #6,(byte_FFFFAD8C).w bra.s loc_2C444 ; --------------------------------------------------------------------------- loc_2C422: ; CODE XREF: sub_2C3C0+22j move.w (word_FFFFF2DE).w,d3 lsr.w #2,d3 andi.w #$FF,d3 asl.w #8,d3 andi.l #$FFFF,d3 divu.w #$F,d3 tblu.w (AIR_CONDITIONING_KE_AUTO_RECIRCULATION_OPTION+2).l,d3 ; Auto recirculation mode is present on vehicle. ; boolean move.w d3,(word_FFFFAD8E).w loc_2C444: ; CODE XREF: sub_2C3C0+58j ; sub_2C3C0+60j move.w (word_FFFFAD8E).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_PRESSURE_SLUGGING).l,d3 ; Enable A/C if air conditioner pressure is above this threshold. ; PSI bcs.s loc_2C484 btst #4,(byte_FFFFAD8C).w bne.s loc_2C484 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_COOLANT_TEMP_SLUGGING_HIGH).l,d3 ; Activate AC Slugging if coolant temp. is below this value ; Degrees_C bge.s loc_2C484 move.w (word_FFFFB3E8).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_SLUGGING_IAT).l,d3 ; Activate AC slugging if Induction Air Temp is above this value ; Degrees_C blt.s loc_2C484 move.w (word_FFFF82D8).w,d3 cmp.w (AIR_CONDITIONING_KE_AC_SLUGGING_IAT_LAST_KEY_OFF).l,d3 ; Activate AC slugging if Induction Air Temp at last keyoff isabove this value ; Degrees_C blt.s loc_2C484 bset #4,(byte_FFFFAD8B).w bra.s loc_2C48A ; --------------------------------------------------------------------------- loc_2C484: ; CODE XREF: sub_2C3C0+8Ej ; sub_2C3C0+96j ... bset #3,(byte_FFFFAD8B).w loc_2C48A: ; CODE XREF: sub_2C3C0+C2j bset #7,(byte_FFFFAD8C).w bra.s loc_2C4F0 ; --------------------------------------------------------------------------- loc_2C492: ; DATA XREF: OS4:0008A460o move.w (AIR_CONDITIONING_KE_AUTO_RECIRC_ENABLE_DELAY_TIME).l,(word_FFFFADA4).w ; Recirc mode enable delay after conditions are met. ; seconds bra.s loc_2C4F0 ; --------------------------------------------------------------------------- loc_2C49C: ; DATA XREF: OS4:0008A448o ; OS4:off_8A468o move.w (word_FFFFB3E8).w,(word_FFFF82D8).w bra.s loc_2C4F0 ; --------------------------------------------------------------------------- loc_2C4A4: ; DATA XREF: OS4:0008A464o bclr #7,(byte_FFFFAD8A).w bclr #6,(byte_FFFFAD8A).w bclr #5,(byte_FFFFAD8A).w bclr #4,(byte_FFFFAD8A).w bclr #3,(byte_FFFFAD8A).w bclr #2,(byte_FFFFAD8A).w bclr #2,(byte_FFFFAD8B).w clr.b (byte_FFFFAD8D).w move.w (AIR_CONDITIONING_KE_AC_PRESSURE_INITIAL_DELAY_TIM).l,(word_FFFFADAA).w move.w (word_FFFFB3E8).w,d3 addi.w #$400,d3 movea.l #AIR_CONDITIONING_KV_AC_IAT_ON_DELAY_TIME,a2 ; A/C turn on delay to prevent engine stall. ; Seconds tblu.w (a2),d3 move.w d3,(word_FFFFAD9A).w loc_2C4F0: ; CODE XREF: sub_2C3C0+Cj ; sub_2C3C0+D0j ... unlk a6 rts ; End of function sub_2C3C0 ; =============== S U B R O U T I N E ======================================= sub_2C4F4: ; CODE XREF: sub_2C6DE+1Cp move.l d0,-(sp) tst.b (byte_FFFFAB24).w beq.s loc_2C506 move.b #1,(byte_FFFFB3CD).w bra.w loc_2C60A ; --------------------------------------------------------------------------- loc_2C506: ; CODE XREF: sub_2C4F4+6j tst.b (byte_FFFFB3CC).w bne.s loc_2C57A tst.b (byte_FFFFABDA).w bne.s loc_2C57A tst.b (byte_FFFFB2EF).w bne.s loc_2C52E tst.w (word_FFFFB3C4).w beq.s loc_2C52E btst #3,(byte_FFFFB487).w bne.s loc_2C52E btst #2,(byte_FFFFB487).w beq.s loc_2C536 loc_2C52E: ; CODE XREF: sub_2C4F4+22j ; sub_2C4F4+28j ... move.b #1,(byte_FFFFB3CC).w bra.s loc_2C57A ; --------------------------------------------------------------------------- loc_2C536: ; CODE XREF: sub_2C4F4+38j move.b (byte_FFFFACAA).w,d3 or.b (byte_FFFFA1F6).w,d3 bne.s loc_2C57A tst.b (byte_FFFFA45A).w bne.s loc_2C57A btst #7,(byte_FFFFA7E0).w bne.s loc_2C57A move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (AIR_PUMP_KE_AIR_ECT_DISABLE).l,d3 ; AIR system is not allowed on at this time if coolant temperature is below this. ; Deg C blt.s loc_2C57A move.w (AIR_PUMP_KE_AIR_OVERRUN_DISABLE_THRESHOLD).l,d3 ; AIR system is disabled when Manifold Pressure is < this AND remains diabled for KE_AIR_Extended_Overrun_Time thereafter. ; kPa move.w (word_FFFFB292).w,d4 cmp.w d3,d4 bcs.s loc_2C56E tst.w (word_FFFFB3C6).w bls.s loc_2C598 loc_2C56E: ; CODE XREF: sub_2C4F4+72j cmp.w d3,d4 bcc.s loc_2C582 move.w (AIR_PUMP_KE_AIR_EXTENDED_OVERRUN_TIME).l,(word_FFFFB3C6).w loc_2C57A: ; CODE XREF: sub_2C4F4+16j ; sub_2C4F4+1Cj ... clr.b (byte_FFFFB3CD).w bra.w loc_2C60A ; --------------------------------------------------------------------------- loc_2C582: ; CODE XREF: sub_2C4F4+7Cj movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB3C6).w,d3 sub.w $A(a2),d3 bcc.s loc_2C592 clr.w d3 loc_2C592: ; CODE XREF: sub_2C4F4+9Aj move.w d3,(word_FFFFB3C6).w bra.s loc_2C60A ; --------------------------------------------------------------------------- loc_2C598: ; CODE XREF: sub_2C4F4+78j move.w (AIR_PUMP_KE_AIR_HIGH_RPM_DISABLE_THRESHOL).l,d3 ; AIR system is disabled when Engine Speed is > this FOR KE_AIR_High_RPM_Time and remains diabled until Engine Speed is <= this. ; RPM move.w (EngineRPM_PID_000C___).w,d0 cmp.w d3,d0 bhi.s loc_2C5B2 move.w (word_FFFFB3C8).w,d5 cmp.w (AIR_PUMP_KE_AIR_HIGH_RPM_TIME).l,d5 beq.s loc_2C5DC loc_2C5B2: ; CODE XREF: sub_2C4F4+B0j cmp.w d3,d0 bls.s loc_2C5D2 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB3C8).w,d3 sub.w $A(a2),d3 bcc.s loc_2C5C6 clr.w d3 loc_2C5C6: ; CODE XREF: sub_2C4F4+CEj move.w d3,(word_FFFFB3C8).w tst.w d3 bne.s loc_2C60A clr.b (byte_FFFFB3CD).w loc_2C5D2: ; CODE XREF: sub_2C4F4+C0j move.w (AIR_PUMP_KE_AIR_HIGH_RPM_TIME).l,(word_FFFFB3C8).w bra.s loc_2C60A ; --------------------------------------------------------------------------- loc_2C5DC: ; CODE XREF: sub_2C4F4+BCj move.w (word_FFFFAEBC).w,d3 cmp.w (AIR_PUMP_KE_AIR_HIGH_VSS_DISABLE_THRESHOL).l,d3 bls.s loc_2C5F0 cmp.w (AIR_PUMP_KE_AIR_HIGH_MAP_DISABLE_THRESHOL).l,d4 ; ; kPa bhi.s loc_2C57A loc_2C5F0: ; CODE XREF: sub_2C4F4+F2j move.b #1,(byte_FFFFB3CD).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB3C4).w,d3 sub.w $A(a2),d3 bcc.s loc_2C606 clr.w d3 loc_2C606: ; CODE XREF: sub_2C4F4+10Ej move.w d3,(word_FFFFB3C4).w loc_2C60A: ; CODE XREF: sub_2C4F4+Ej ; sub_2C4F4+8Aj ... move.l (sp)+,d0 rts ; End of function sub_2C4F4 ; =============== S U B R O U T I N E ======================================= sub_2C60E: ; CODE XREF: sub_2C6DE:loc_2C700p move.b (byte_FFFFB3CD).w,d3 beq.s loc_2C64A tst.b (byte_FFFFB3C2).w bne.s loc_2C64A tst.w (word_FFFFB3CA).w bne.s loc_2C62A move.w (AIR_PUMP_KE_AIR_PUMP_TURN_ON_DELAY).l,(word_FFFFB3CA).w ; Delay turning on AIR pump for this long after turning on AIR solenoid. ; Seconds bra.s locret_2C686 ; --------------------------------------------------------------------------- loc_2C62A: ; CODE XREF: sub_2C60E+10j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB3CA).w,d3 sub.w $A(a2),d3 bcc.s loc_2C63A clr.w d3 loc_2C63A: ; CODE XREF: sub_2C60E+28j move.w d3,(word_FFFFB3CA).w tst.w d3 bne.s locret_2C686 move.b #1,(byte_FFFFB3C2).w bra.s locret_2C686 ; --------------------------------------------------------------------------- loc_2C64A: ; CODE XREF: sub_2C60E+4j sub_2C60E+Aj tst.b (byte_FFFFB3C2).w beq.s loc_2C682 tst.b d3 bne.s loc_2C682 tst.w (word_FFFFB3CA).w bne.s loc_2C664 move.w (AIR_PUMP_KE_AIR_PUMP_TURN_OFF_DELAY).l,(word_FFFFB3CA).w ; Delay turning off AIR pump for this long after turning off AIR solenoid. ; Seconds bra.s locret_2C686 ; --------------------------------------------------------------------------- loc_2C664: ; CODE XREF: sub_2C60E+4Aj movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB3CA).w,d3 sub.w $A(a2),d3 bcc.s loc_2C674 clr.w d3 loc_2C674: ; CODE XREF: sub_2C60E+62j move.w d3,(word_FFFFB3CA).w tst.w d3 bne.s locret_2C686 clr.b (byte_FFFFB3C2).w bra.s locret_2C686 ; --------------------------------------------------------------------------- loc_2C682: ; CODE XREF: sub_2C60E+40j ; sub_2C60E+44j clr.w (word_FFFFB3CA).w locret_2C686: ; CODE XREF: sub_2C60E+1Aj ; sub_2C60E+32j ... rts ; End of function sub_2C60E ; =============== S U B R O U T I N E ======================================= sub_2C688: ; CODE XREF: sub_2C6DE:loc_2C706p movem.l d0-d1,-(sp) btst #7,(byte_FFFFA7DE).w beq.s loc_2C6A0 btst #4,(word_FFFFA7E2+1).w beq.s loc_2C6A6 loc_2C69C: ; CODE XREF: sub_2C688+1Cj moveq #1,d1 bra.s loc_2C6A8 ; --------------------------------------------------------------------------- loc_2C6A0: ; CODE XREF: sub_2C688+Aj tst.b (byte_FFFFB3CD).w bne.s loc_2C69C loc_2C6A6: ; CODE XREF: sub_2C688+12j clr.b d1 loc_2C6A8: ; CODE XREF: sub_2C688+16j move.w #$144,d0 jsr (sub_1122).l btst #1,(word_FFFFA7DC+1).w beq.s loc_2C6C6 btst #5,(word_FFFFA7E2+1).w beq.s loc_2C6CC loc_2C6C2: ; CODE XREF: sub_2C688+42j moveq #1,d1 bra.s loc_2C6CE ; --------------------------------------------------------------------------- loc_2C6C6: ; CODE XREF: sub_2C688+30j tst.b (byte_FFFFB3C2).w bne.s loc_2C6C2 loc_2C6CC: ; CODE XREF: sub_2C688+38j clr.b d1 loc_2C6CE: ; CODE XREF: sub_2C688+3Cj move.w #$130,d0 jsr (sub_1122).l movem.l (sp)+,d0-d1 rts ; End of function sub_2C688 ; =============== S U B R O U T I N E ======================================= sub_2C6DE: ; CODE XREF: DoLoopE+4Ap tst.b (byte_FFFFB371).w beq.s locret_2C70C cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_2C706 clr.l d3 move.w (AIR_PUMP_KE_AIR_DELAY_AFTER_START).l,d3 ; AIR system is not allowed on until engine has run for this long. ; Seconds cmp.l (EngineRunTime).w,d3 bcc.s loc_2C700 jsr sub_2C4F4 loc_2C700: ; CODE XREF: sub_2C6DE+1Aj jsr sub_2C60E loc_2C706: ; CODE XREF: sub_2C6DE+Cj jsr sub_2C688 locret_2C70C: ; CODE XREF: sub_2C6DE+4j rts ; End of function sub_2C6DE ; =============== S U B R O U T I N E ======================================= sub_2C70E: ; CODE XREF: OS1:00028CF0p move.l d1,-(sp) andi.w #$FF,d0 movea.l off_89CD4(d0.w*4),a2 jmp (a2) ; End of function sub_2C70E ; --------------------------------------------------------------------------- loc_2C71E: ; DATA XREF: OS4:00089CDCo clr.b d1 move.w #$130,d0 jsr (sub_1122).l clr.b (byte_FFFFB3CD).w clr.b (byte_FFFFB3C2).w clr.w (word_FFFFB3CA).w move.w (DI_AIR_KE_AIRD_INTAKE_AIR_TEMP_MIN).l,d3 ; Minimum intake air temperature threshold to enable the diagnostic. ; Degrees_C cmpi.w #$DFF,d3 ble.s loc_2C746 move.w #$DFF,d3 loc_2C746: ; CODE XREF: OS1:0002C740j cmp.w (word_FFFFB3EE).w,d3 blt.s loc_2C754 move.b #1,(byte_FFFFB3CC).w bra.s loc_2C7A8 ; --------------------------------------------------------------------------- loc_2C754: ; CODE XREF: OS1:0002C74Aj clr.b (byte_FFFFB3CC).w move.w (DI_AIR_KE_AIRD_PU_COOLANT_TEMP_MAX).l,d3 ; Maximum powerup coolant temperature threshold to enable the diagnostic. ; Degrees_C cmpi.w #$DFF,d3 ble.s loc_2C768 move.w #$DFF,d3 loc_2C768: ; CODE XREF: OS1:0002C762j cmp.w (word_FFFFADB4).w,d3 bgt.s loc_2C778 move.w (AIR_PUMP_KE_AIR_HOT_RESTART_TIME_ON).l,(word_FFFFB3C4).w bra.s loc_2C7A8 ; --------------------------------------------------------------------------- loc_2C778: ; CODE XREF: OS1:0002C76Cj move.w (AIR_PUMP_KE_MAX_TOTAL_PUMP_TIME_ON).l,(word_FFFFB3C4).w ; AIR system is forced off for the rest of this ignition cycle after being on for a total of this long in this ignition cycle. ; Seconds bra.s loc_2C7A8 ; --------------------------------------------------------------------------- loc_2C782: ; DATA XREF: OS4:00089CF4o move.w (AIR_PUMP_KE_AIR_HIGH_RPM_TIME).l,(word_FFFFB3C8).w clr.w (word_FFFFB3C6).w bra.s loc_2C7A8 ; --------------------------------------------------------------------------- loc_2C790: ; DATA XREF: OS4:off_89CD4o ; OS4:00089CE0o ... clr.b d1 move.w #$130,d0 jsr (sub_1122).l clr.b (byte_FFFFB3CD).w clr.b (byte_FFFFB3C2).w clr.w (word_FFFFB3CA).w loc_2C7A8: ; CODE XREF: OS1:0002C752j ; OS1:0002C776j ... move.l (sp)+,d1 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2C7AC: ; CODE XREF: DoLoopF:loc_2AEE8p var_8 = -8 var_4 = -4 var_2 = -2 link a6,#-8 movem.l d0-d2/d6/a0-a1/a4,-(sp) tst.b (byte_FFFFB374).w beq.s loc_2C7E6 movea.w #2,a2 movea.l (off_1330).l,a4 move.l a4,var_8(a6) move.l a4,d2 bne.s loc_2C7D2 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_2C7D2: ; CODE XREF: sub_2C7AC+1Ej btst #2,2(a4) beq.s loc_2C7E2 move.b #1,(byte_FFFFA859).w bra.s loc_2C7E6 ; --------------------------------------------------------------------------- loc_2C7E2: ; CODE XREF: sub_2C7AC+2Cj clr.b (byte_FFFFA859).w loc_2C7E6: ; CODE XREF: sub_2C7AC+Cj ; sub_2C7AC+34j tst.b (byte_FFFFB375).w beq.s loc_2C860 movea.l #unk_FFA866,a1 movea.l a1,a0 moveq #$6E,d0 ; 'n' jsr sub_82046 clr.b d1 movea.l #unk_FFA860,a0 moveq #$6E,d0 ; 'n' jsr sub_820CE eori.b #1,d0 beq.s loc_2C82A move.w (word_FFFFE108).w,d3 btst #$F,d3 beq.s loc_2C824 move.w #$1400,(word_FFFFA854).w bra.s loc_2C840 ; --------------------------------------------------------------------------- loc_2C824: ; CODE XREF: sub_2C7AC+6Ej clr.w (word_FFFFA854).w bra.s loc_2C840 ; --------------------------------------------------------------------------- loc_2C82A: ; CODE XREF: sub_2C7AC+64j move.w (word_FFFFA864).w,(word_FFFFA854).w lea (unk_FFFFA866).w,a3 lea (unk_FFFFA876).w,a2 moveq #7,d3 loc_2C83A: ; CODE XREF: sub_2C7AC+90j move.w (a3)+,(a2)+ dbf d3,loc_2C83A loc_2C840: ; CODE XREF: sub_2C7AC+76j ; sub_2C7AC+7Cj move.w (word_FFFFA886).w,var_4(a6) move.w (word_FFFFA854).w,var_2(a6) move.w (IAC_RPM_KE_ALTERNATOR_FIELD_DC_FILTER).l,d3 tblu.w var_4(a6),d3 move.w d3,(word_FFFFA852).w move.w d3,(word_FFFFA886).w loc_2C860: ; CODE XREF: sub_2C7AC+3Ej move.b (VEH_SYS_KE_ALTERNATOR_DIAGNOSTIC_TO_RUN).l,d3 ; This enables/disables the different alternator diagnostics. ; Alternator_Diag_Type moveq #2,d1 cmp.b d3,d1 beq.w loc_2CB1A tst.b d3 bne.w loc_2CA4E tst.b (byte_FFFFA859).w beq.w loc_2C8FE move.b (ThrottleControlMode2?).w,d3 cmpi.b #3,d3 bne.s loc_2C8A8 move.w (word_FFFFA854).w,d0 cmp.w (ALTERNATOR_KE_VALT_MIN_NORMAL_RUNNING_DC).l,d0 ; With L Term HI and Engine running: when Field Duty Cycle is less than this, set P1638 code. ; Percent bcs.w loc_2C918 loc_2C894: ; CODE XREF: sub_2C7AC+146j ; sub_2C7AC+1C2j ... clr.b (byte_FFFFA88A).w loc_2C898: ; CODE XREF: sub_2C7AC+176j ; sub_2C7AC+1A6j clr.b (byte_FFFFA889).w loc_2C89C: ; CODE XREF: sub_2C7AC+13Ej ; sub_2C7AC+188j addq.b #1,(byte_FFFFA85B).w addq.b #1,(byte_FFFFA85D).w bra.w loc_2C97E ; --------------------------------------------------------------------------- loc_2C8A8: ; CODE XREF: sub_2C7AC+D8j cmp.b d3,d1 bne.w loc_2C97E move.w (word_FFFFA854).w,d3 cmp.w (ALTERNATOR_KE_VALT_L_SHORTED_HOT_F_OPEN_DC).l,d3 ; With L Term HI and Engine not running: when Field Duty Cycle is less than this set P1637 & P1637. ; Percent bcc.s loc_2C8C2 addq.b #1,(byte_FFFFA85A).w bra.w loc_2C948 ; --------------------------------------------------------------------------- loc_2C8C2: ; CODE XREF: sub_2C7AC+10Cj movea.w (ALTERNATOR_KE_VALT_DC_HYSTERESIS).l,a2 ; Used as hysteresis on the normal powerup mode and L Term shorted to 12v mode calibrations. ; Percent move.w (ALTERNATOR_KE_VALT_L_SHORTED_HOT_DC).l,d4 ; With L Term HI and Engine nor running: when Field Duty Cycle is is equal to this with hystersis set P1637. ; Percent move.l d4,d2 sub.w a2,d2 cmp.w d3,d2 bge.s loc_2C8EC add.w a2,d4 cmp.w d3,d4 bls.s loc_2C8EC addq.b #1,(byte_FFFFA85A).w loc_2C8E0: ; CODE XREF: sub_2C7AC+150j clr.b (byte_FFFFA88A).w moveq #1,d2 move.b d2,(byte_FFFFA889).w bra.s loc_2C89C ; --------------------------------------------------------------------------- loc_2C8EC: ; CODE XREF: sub_2C7AC+128j ; sub_2C7AC+12Ej cmp.w (ALTERNATOR_KE_VALT_F_AND_L_SHORTED_HOT_DC).l,d3 ; With L Term HI and Engine not running: when Field Duty Cycle is greater than this, set P1637 & P1638. ; Percent bls.s loc_2C894 addq.b #1,(byte_FFFFA85A).w addq.b #1,(byte_FFFFA85C).w bra.s loc_2C8E0 ; --------------------------------------------------------------------------- loc_2C8FE: ; CODE XREF: sub_2C7AC+CCj move.b (ThrottleControlMode2?).w,d3 cmpi.b #3,d3 bne.s loc_2C938 move.w (word_FFFFA854).w,d0 cmp.w (ALTERNATOR_KE_VALT_L_SHORT_TO_GND_DC).l,d0 ; With L Term LO and Engine running: when Field Duty Cycle is less than this set P1637 & P1638 else set P1637. ; Percent bcc.s loc_2C926 addq.b #1,(byte_FFFFA85A).w loc_2C918: ; CODE XREF: sub_2C7AC+E4j addq.b #1,(byte_FFFFA85C).w move.b #1,(byte_FFFFA88A).w bra.w loc_2C898 ; --------------------------------------------------------------------------- loc_2C926: ; CODE XREF: sub_2C7AC+166j addq.b #1,(byte_FFFFA85A).w clr.b (byte_FFFFA88A).w move.b #1,(byte_FFFFA889).w bra.w loc_2C89C ; --------------------------------------------------------------------------- loc_2C938: ; CODE XREF: sub_2C7AC+15Aj cmp.b d3,d1 bne.s loc_2C97E move.w (word_FFFFA854).w,d3 cmp.w (ALTERNATOR_KE_VALT_FIELD_OR_WIRING_FAULT_DC).l,d3 ; With L Term LO and Engine Not running: When Field Duty Cycle less than this set P1638. ; Percent bcc.s loc_2C956 loc_2C948: ; CODE XREF: sub_2C7AC+112j ; sub_2C7AC+1CCj addq.b #1,(byte_FFFFA85C).w moveq #1,d2 move.b d2,(byte_FFFFA88A).w bra.w loc_2C898 ; --------------------------------------------------------------------------- loc_2C956: ; CODE XREF: sub_2C7AC+19Aj movea.w (ALTERNATOR_KE_VALT_DC_HYSTERESIS).l,a2 ; Used as hysteresis on the normal powerup mode and L Term shorted to 12v mode calibrations. ; Percent move.w (ALTERNATOR_KE_VALT_POWERUP_DC).l,d4 ; With L Term LO and Engine nor running: when Field Duty Cycle is equal to this with hysteresis clear codes. ; Percent move.l d4,d2 sub.w a2,d2 cmp.w d3,d2 bge.s loc_2C972 add.w a2,d4 cmp.w d3,d4 bhi.w loc_2C894 loc_2C972: ; CODE XREF: sub_2C7AC+1BCj cmp.w (ALTERNATOR_KE_VALT_F_SHORTED_HOT_DC).l,d3 ; With L Term LO and engine not running: when Field Duty Cycle is Greater than this set P1638. ; Percent bhi.s loc_2C948 bra.w loc_2C894 ; --------------------------------------------------------------------------- loc_2C97E: ; CODE XREF: sub_2C7AC+F8j ; sub_2C7AC+FEj ... move.b (byte_FFFFA85A).w,d0 cmp.b (ALTERNATOR_KE_P1637_FAIL_LIMIT).l,d0 ; The number of sample of failed conditions to set P1637. ; NONE 0-255 bls.s loc_2C9AA move.w #$CC,d0 ; '?' jsr sub_5F110 clr.b (byte_FFFFA85A).w clr.b (byte_FFFFA85B).w move.b (byte_FFFFA889).w,(byte_FFFFA88B).w move.b (byte_FFFFA88A).w,(byte_FFFFA888).w bra.s loc_2C9D0 ; --------------------------------------------------------------------------- loc_2C9AA: ; CODE XREF: sub_2C7AC+1DCj move.b (byte_FFFFA85B).w,d0 cmp.b (ALTERNATOR_KE_P1637_SAMPLE_PERIOD).l,d0 ; The number of sample periods over which the Alternator L-Terminal Diagnostic is to run. ; NONE 0-255 bls.s loc_2C9D0 move.w #$CC,d0 ; '?' jsr sub_5F0BE clr.b (byte_FFFFA85A).w clr.b (byte_FFFFA85B).w clr.b (byte_FFFFA88B).w clr.b (byte_FFFFA888).w loc_2C9D0: ; CODE XREF: sub_2C7AC+1FCj ; sub_2C7AC+208j move.b (byte_FFFFA85C).w,d0 cmp.b (ALTERNATOR_KE_VALT_P1638_FAIL_LIMIT).l,d0 ; Number of sample periods that F-Terminal failure has been detected to report P1638 failure. ; NONE 0-255 bls.s loc_2C9FC move.w #$84,d0 ; '?' jsr sub_5F110 clr.b (byte_FFFFA85C).w clr.b (byte_FFFFA85D).w move.b (byte_FFFFA889).w,(byte_FFFFA88B).w move.b (byte_FFFFA88A).w,(byte_FFFFA888).w bra.s loc_2CA22 ; --------------------------------------------------------------------------- loc_2C9FC: ; CODE XREF: sub_2C7AC+22Ej move.b (byte_FFFFA85D).w,d0 cmp.b (ALTERNATOR_KE_VALT_P1638_SAMPLE_PERIOD).l,d0 ; The number of sample periods over which the Alternator F-Terminal Diagnostic is to run. ; NONE 0-255 bls.s loc_2CA22 move.w #$84,d0 ; '?' jsr sub_5F0BE clr.b (byte_FFFFA85C).w clr.b (byte_FFFFA85D).w clr.b (byte_FFFFA88B).w clr.b (byte_FFFFA888).w loc_2CA22: ; CODE XREF: sub_2C7AC+24Ej ; sub_2C7AC+25Aj move.b (ThrottleControlMode2?).w,d3 moveq #1,d4 cmp.b d3,d4 beq.s loc_2CA30 cmp.b d3,d1 bne.s loc_2CA38 loc_2CA30: ; CODE XREF: sub_2C7AC+27Ej move.b d4,(byte_FFFFA888).w bra.w loc_2CAD0 ; --------------------------------------------------------------------------- loc_2CA38: ; CODE XREF: sub_2C7AC+282j btst #1,(byte_FFFF8A58).w bne.w loc_2CAD0 btst #1,(byte_FFFF89C8).w bne.w loc_2CAD0 bra.s loc_2CACC ; --------------------------------------------------------------------------- loc_2CA4E: ; CODE XREF: sub_2C7AC+C4j move.b (ThrottleControlMode2?).w,d3 moveq #3,d2 cmp.b d3,d2 bne.s loc_2CA5E tst.b (byte_FFFFA859).w beq.s loc_2CA68 loc_2CA5E: ; CODE XREF: sub_2C7AC+2AAj cmp.b d3,d1 bne.s loc_2CA6C tst.b (byte_FFFFA859).w beq.s loc_2CA6C loc_2CA68: ; CODE XREF: sub_2C7AC+2B0j addq.b #1,(byte_FFFFA85A).w loc_2CA6C: ; CODE XREF: sub_2C7AC+2B4j ; sub_2C7AC+2BAj addq.b #1,(byte_FFFFA85B).w move.b (byte_FFFFA85A).w,d0 cmp.b (ALTERNATOR_KE_P1637_FAIL_LIMIT).l,d0 ; The number of sample of failed conditions to set P1637. ; NONE 0-255 bls.s loc_2CA94 move.w #$CC,d0 ; '?' jsr sub_5F110 move.b #1,(byte_FFFFA858).w clr.b (byte_FFFFA85A).w clr.b (byte_FFFFA85B).w loc_2CA94: ; CODE XREF: sub_2C7AC+2CEj move.b (byte_FFFFA85B).w,d0 cmp.b (ALTERNATOR_KE_P1637_SAMPLE_PERIOD).l,d0 ; The number of sample periods over which the Alternator L-Terminal Diagnostic is to run. ; NONE 0-255 bls.s loc_2CAB6 move.w #$CC,d0 ; '?' jsr sub_5F0BE move.b d1,(byte_FFFFA858).w clr.b (byte_FFFFA85A).w clr.b (byte_FFFFA85B).w loc_2CAB6: ; CODE XREF: sub_2C7AC+2F2j cmp.b (ThrottleControlMode2?).w,d2 bne.s loc_2CAC4 cmpi.b #1,(byte_FFFFA858).w bne.s loc_2CACC loc_2CAC4: ; CODE XREF: sub_2C7AC+30Ej move.b #1,(byte_FFFFA888).w bra.s loc_2CAD0 ; --------------------------------------------------------------------------- loc_2CACC: ; CODE XREF: sub_2C7AC+2A0j ; sub_2C7AC+316j clr.b (byte_FFFFA888).w loc_2CAD0: ; CODE XREF: sub_2C7AC+288j ; sub_2C7AC+292j ... move.b (VEH_SYS_KE_ALT_DG_RESULTS_DISPLAY_METHOD).l,d3 ; Method of displaying the alternator diagnostic results. ; Display_Type bne.s loc_2CAE6 move.b (byte_FFFFA88B).w,(byte_FFFFA857).w move.b (byte_FFFFA888).w,(byte_FFFFA856).w bra.s loc_2CB1A ; --------------------------------------------------------------------------- loc_2CAE6: ; CODE XREF: sub_2C7AC+32Aj cmpi.b #1,d3 bne.s loc_2CAFA move.b (byte_FFFFA888).w,d3 or.b (byte_FFFFA88B).w,d3 move.b d3,(byte_FFFFA856).w bra.s loc_2CB1A ; --------------------------------------------------------------------------- loc_2CAFA: ; CODE XREF: sub_2C7AC+33Ej move.b (byte_FFFFA888).w,d3 or.b (byte_FFFFA88B).w,d3 move.b d3,(byte_FFFFA85E).w tst.b d3 beq.s loc_2CB0E moveq #1,d1 bra.s loc_2CB10 ; --------------------------------------------------------------------------- loc_2CB0E: ; CODE XREF: sub_2C7AC+35Cj clr.b d1 loc_2CB10: ; CODE XREF: sub_2C7AC+360j move.w #$134,d0 jsr (sub_1122).l loc_2CB1A: ; CODE XREF: sub_2C7AC+BEj ; sub_2C7AC+338j ... movem.l (sp)+,d0-d2/d6/a0-a1/a4 unlk a6 rts ; End of function sub_2C7AC ; =============== S U B R O U T I N E ======================================= sub_2CB22: ; CODE XREF: OS1:00028B02p move.l d1,-(sp) andi.w #$FF,d0 movea.l off_89C34(d0.w*4),a2 jmp (a2) ; End of function sub_2CB22 ; --------------------------------------------------------------------------- loc_2CB32: ; DATA XREF: OS4:off_89C34o ; OS4:00089C50o bra.s loc_2CB74 ; --------------------------------------------------------------------------- loc_2CB34: ; DATA XREF: OS4:00089C3Co clr.b d1 move.w #$134,d0 jsr (sub_1122).l clr.b (byte_FFFFA858).w clr.b (byte_FFFFA859).w bra.s loc_2CB74 ; --------------------------------------------------------------------------- loc_2CB4A: ; DATA XREF: OS4:00089C38o ; OS4:00089C40o ... clr.b (byte_FFFFA858).w clr.b (byte_FFFFA856).w clr.b (byte_FFFFA85E).w clr.b (byte_FFFFA85A).w clr.b (byte_FFFFA85B).w clr.b (byte_FFFFA85C).w clr.b (byte_FFFFA85D).w clr.b (byte_FFFFA857).w clr.b (byte_FFFFA88B).w clr.b (byte_FFFFA888).w nop loc_2CB74: ; CODE XREF: OS1:loc_2CB32j ; OS1:0002CB48j ; DATA XREF: ... move.l (sp)+,d1 rts ; =============== S U B R O U T I N E ======================================= sub_2CB78: ; CODE XREF: sub_2CC22+52Cp cmpi.b #1,(byte_FFFFA9DA).w beq.w loc_2CC14 move.w (word_FFFFB3EE).w,d3 cmp.w (CCP_KE_IDLE_PURGE_PWRUP_IAT_THRESH).l,d3 ; Induction air temperature threshold above which is deemed warm enough to not delay idle purge at all. ; Degrees_C bge.s loc_2CBC0 move.w (word_FFFFADB4).w,d4 cmp.w (CCP_KE_IDLE_PURGE_PWRUP_COOL_THRESH).l,d4 ble.s loc_2CBA4 move.l (CCP_KE_IDLE_PURGE_WARM_DELAY_TIME).l,(dword_FFFFA64E).w ; Calibration time to delay purging if delay is desired and conditions are relatively warm. ; Seconds_L bra.s loc_2CBC4 ; --------------------------------------------------------------------------- loc_2CBA4: ; CODE XREF: sub_2CB78+20j addi.w #$400,d3 muls.w #5,d3 divs.w #6,d3 movea.l #$91F4,a2 tblu.l (a2),d3 move.l d3,(dword_FFFFA64E).w bra.s loc_2CBC4 ; --------------------------------------------------------------------------- loc_2CBC0: ; CODE XREF: sub_2CB78+14j clr.l (dword_FFFFA64E).w loc_2CBC4: ; CODE XREF: sub_2CB78+2Aj ; sub_2CB78+46j move.l (EngineRunTime).w,d3 cmp.l (dword_FFFFA64E).w,d3 bls.s loc_2CBD2 clr.b d3 bra.s loc_2CBD4 ; --------------------------------------------------------------------------- loc_2CBD2: ; CODE XREF: sub_2CB78+54j moveq #1,d3 loc_2CBD4: ; CODE XREF: sub_2CB78+58j tst.b (byte_FFFFA652).w beq.s loc_2CBEE move.w (CCP_KE_CCP_TPS_HIGH_FOR_IDLE).l,d4 ; Upper threshold of throttle position to re-enable purge. ; Percent andi.w #$FF,d3 move.w CCP_KV_PURGE_VEHICLE_SPEED_HYST_HIGH.l(d3.w*2),d3 bra.s loc_2CC00 ; --------------------------------------------------------------------------- loc_2CBEE: ; CODE XREF: sub_2CB78+60j move.w (CCP_KE_CCP_TPS_LOW_FOR_IDLE).l,d4 ; Lower threshold of throttle position to disable purge. ; Percent andi.w #$FF,d3 move.w CCP_KV_PURGE_VEHICLE_SPEED_HYST_LOW.l(d3.w*2),d3 loc_2CC00: ; CODE XREF: sub_2CB78+74j cmp.w (word_FFFFAB66).w,d4 bhi.s loc_2CC0C cmp.w (word_FFFFAEBC).w,d3 bls.s loc_2CC14 loc_2CC0C: ; CODE XREF: sub_2CB78+8Cj move.b #1,(byte_FFFFA652).w bra.s locret_2CC18 ; --------------------------------------------------------------------------- loc_2CC14: ; CODE XREF: sub_2CB78+6j ; sub_2CB78+92j clr.b (byte_FFFFA652).w locret_2CC18: ; CODE XREF: sub_2CB78+9Aj rts ; End of function sub_2CB78 ; =============== S U B R O U T I N E ======================================= sub_2CC1A: ; CODE XREF: sub_334F8:loc_33840p ; sub_334F8:loc_33850p ... move.w (CCP_KE_CCP_MAX_FLOW).l,d0 ; Largest value in the KV_CCP_Max_Allowed_Purge_Flow table i.e. the maximum allowed purge flow at any manifold vacuum ; GPS rts ; End of function sub_2CC1A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2CC22: ; CODE XREF: DoLoopF+14Cp var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d2/d6-d7,-(sp) moveq #3,d1 cmp.b (ThrottleControlMode2?).w,d1 bne.w loc_2D18C moveq #1,d2 cmp.b (byte_FFFFB2EF).w,d2 bne.s loc_2CC56 move.w (word_FFFFA648).w,var_2(a6) move.w (GlobalClock).w,d4 sub.w var_2(a6),d4 cmp.w (word_FFFFA62E).w,d4 bcs.s loc_2CC60 move.b d2,(byte_FFFFA622).w bra.s loc_2CC60 ; --------------------------------------------------------------------------- loc_2CC56: ; CODE XREF: sub_2CC22+18j clr.b (byte_FFFFA622).w move.w (GlobalClock).w,(word_FFFFA648).w loc_2CC60: ; CODE XREF: sub_2CC22+2Cj ; sub_2CC22+32j move.l (EngineRunTime).w,d4 clr.l d3 move.w (word_FFFFA630).w,d3 cmp.l d4,d3 scs d6 neg.b d6 and.b (CCP_KE_CCP_OPEN_LOOP_PURGE_ENABLE).l,d6 ; Bit selectable flag for purging when fuel control is in openloop. To be used primarily for exports without oxygensensors. ; BOOLEAN move.b d6,var_4(a6) move.b d6,(byte_FFFFA632).w move.w (word_FFFFB274).w,d3 lsr.w #8,d3 lsr.w #3,d3 cmp.b (CCP_KE_CYLINDERS_ENABLED_ALLOW_CCP).l,d3 ; Number of cylinders that must be enabled to allowCanister Purge. ; scs d3 neg.b d3 or.b (byte_FFFFA93B).w,d3 move.b d3,(byte_FFFFA633).w btst #1,(byte_FFFF88F0).w bne.s loc_2CCDE btst #1,(byte_FFFF8906).w bne.s loc_2CCDE btst #1,(byte_FFFF88EA).w bne.s loc_2CCDE btst #1,(byte_FFFF8900).w bne.s loc_2CCDE btst #1,(byte_FFFF88EC).w bne.s loc_2CCDE btst #1,(byte_FFFF8902).w bne.s loc_2CCDE btst #1,(byte_FFFF8930).w bne.s loc_2CCDE btst #5,(byte_FFFF9B2E).w bne.s loc_2CCDE tst.b (byte_FFFFABDA).w beq.s loc_2CCE4 loc_2CCDE: ; CODE XREF: sub_2CC22+7Cj ; sub_2CC22+84j ... clr.b (byte_FFFFA620).w bra.s loc_2CD5C ; --------------------------------------------------------------------------- loc_2CCE4: ; CODE XREF: sub_2CC22+BAj tst.b (byte_FFFF81B9).w beq.s loc_2CD02 move.l d3,d7 or.b (byte_FFFFA636).w,d7 bne.s loc_2CD02 tst.b (byte_FFFFA635).w bne.s loc_2CD02 move.b d2,(byte_FFFFA620).w clr.w (word_FFFFA62E).w bra.s loc_2CD5C ; --------------------------------------------------------------------------- loc_2CD02: ; CODE XREF: sub_2CC22+C6j ; sub_2CC22+CEj ... tst.b d3 bne.s loc_2CCDE tst.b (byte_FFFFA622).w bne.s loc_2CD10 tst.b d6 beq.s loc_2CCDE loc_2CD10: ; CODE XREF: sub_2CC22+E8j tst.b (byte_FFFFA652).w bne.s loc_2CCDE tst.b (byte_FFFFA635).w bne.s loc_2CCDE tst.b (byte_FFFFA636).w bne.s loc_2CCDE move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (CCP_KE_CCP_COOLANT_TEMPERATURE).l,d3 ; Coolant Temperature threshold above which purge may beenabled ; Degrees_C ble.s loc_2CD5C tst.b (byte_FFFFA634).w bne.s loc_2CD54 move.w (word_FFFFAEBC).w,d3 cmp.w (CCP_KE_CCP_VEHICLE_SPEED_FILTERED).l,d3 ; Vehicle Speed threshold above which purge may be enabled ; MPH bcs.s loc_2CD4C move.w (word_FFFFA0DC).w,d3 cmp.w (CCP_KE_CCP_MASS_AIRFLOW).l,d3 ; Mass Airflow threshold above which purge may be enabled ; Grams Per Second bcc.s loc_2CD54 loc_2CD4C: ; CODE XREF: sub_2CC22+11Cj cmp.l (CCP_KE_CCP_ENGINE_RUN_TIME).l,d4 ; Continuous Engine Run Time threshold above whichPurge may be enabled ; Seconds bls.s loc_2CD5C loc_2CD54: ; CODE XREF: sub_2CC22+110j ; sub_2CC22+128j move.b d2,(byte_FFFFA620).w move.b d2,(byte_FFFFA634).w loc_2CD5C: ; CODE XREF: sub_2CC22+C0j ; sub_2CC22+DEj ... clr.b d3 tst.b (byte_FFFFA620).w beq.s loc_2CD9C tst.w (word_FFFFA62A).w bls.s loc_2CD9C tst.b (byte_FFFFA1F6).w bne.s loc_2CD9C tst.b (byte_FFFFACAA).w bne.s loc_2CD9C btst #1,(byte_FFFFA068).w bne.s loc_2CD9C btst #6,(byte_FFFF9306).w bne.s loc_2CD9C btst #6,(byte_FFFF9E90).w beq.s loc_2CD94 cmp.b (byte_FFFF9E91).w,d2 bne.s loc_2CD9C loc_2CD94: ; CODE XREF: sub_2CC22+16Aj tst.b (byte_FFFF81B9).w bne.s loc_2CD9C addq.b #1,d3 loc_2CD9C: ; CODE XREF: sub_2CC22+140j ; sub_2CC22+146j ... move.b d3,(byte_FFFFA621).w tst.b d3 beq.w loc_2D01A tst.b d6 beq.s loc_2CDBC tst.b (byte_FFFFA622).w bne.s loc_2CDBC move.w (CCP_KE_CCP_OPEN_LOOP_OXYGEN_ADJUST).l,(word_FFFFA624).w ; Default value of the Canister_Purge_Oxygen_Adjust factor whenpurge is being performed in open loop fuel control. ; Unitless 0-2 bra.w loc_2D01A ; --------------------------------------------------------------------------- loc_2CDBC: ; CODE XREF: sub_2CC22+186j ; sub_2CC22+18Cj move.b (CCP_KE_CCP_CHOOSE_OXYGEN_DATA).l,d3 ; Choose what oxygen data to be used if no oxygen faultsare present. ; Unitless bne.s loc_2CDCC move.w (word_FFFFA8AE).w,(word_FFFFA640).w bra.s loc_2CDF6 ; --------------------------------------------------------------------------- loc_2CDCC: ; CODE XREF: sub_2CC22+1A0j cmp.b d3,d2 bne.s loc_2CDD8 move.w (word_FFFFA8B0).w,(word_FFFFA640).w bra.s loc_2CDF6 ; --------------------------------------------------------------------------- loc_2CDD8: ; CODE XREF: sub_2CC22+1ACj cmpi.b #2,d3 bne.s loc_2CDF6 move.w (word_FFFFA8AE).w,d3 add.w (word_FFFFA8B0).w,d3 cmpi.w #$7FFF,d3 bls.s loc_2CDF0 move.w #$7FFF,d3 loc_2CDF0: ; CODE XREF: sub_2CC22+1C8j lsr.w #1,d3 move.w d3,(word_FFFFA640).w loc_2CDF6: ; CODE XREF: sub_2CC22+1A8j ; sub_2CC22+1B4j ... clr.b d7 clr.w d3 move.b (byte_FFFFA623).w,d3 move.w (word_FFFFA640).w,d6 cmp.w CCP_KV_CANISTER_OXYGEN_VOLTAGE_HIGH.l(d3.w*2),d6 bcs.s loc_2CE44 movea.l (dword_FFFFB5DE).w,a3 move.w (word_FFFFA0DC).w,d3 cmpi.w #$4000,d3 bcc.s loc_2CE1E lsr.w #2,d3 bra.s loc_2CE22 ; --------------------------------------------------------------------------- loc_2CE1E: ; CODE XREF: sub_2CC22+1F6j move.w #$1000,d3 loc_2CE22: ; CODE XREF: sub_2CC22+1FAj tblu.w (CCP_KV_CCP_OXYGEN_VOLTAGE_HIGH_TIME).l,d3 ; Time of which the oxygen voltage must remain high to use a short delay rate for multiplier learning ; Seconds add.w $A(a3),d3 move.w (word_FFFFA642).w,var_2(a6) move.w (GlobalClock).w,d4 sub.w var_2(a6),d4 cmp.w d3,d4 bcs.s loc_2CE4A move.l d2,d7 bra.s loc_2CE4A ; --------------------------------------------------------------------------- loc_2CE44: ; CODE XREF: sub_2CC22+1E8j move.w (GlobalClock).w,(word_FFFFA642).w loc_2CE4A: ; CODE XREF: sub_2CC22+21Cj ; sub_2CC22+220j move.w (word_FFFFB3E8).w,d1 clr.w d3 move.b (byte_FFFFA623).w,d3 mulu.w #$26,d3 ; '&' lea $8F86.l(d3.l),a2 movea.w #$12FE,a3 addi.w #$400,d1 tblu.w (a2),d1 tst.b d7 beq.s loc_2CE7A move.w (CCP_KE_CCP_SHORT_DELAY_RATE).l,(word_FFFFA63A).w ; Short delay time between multiplier learns if oxygen voltage is high for a calibrated amount of time. ; Seconds bra.s loc_2CEB0 ; --------------------------------------------------------------------------- loc_2CE7A: ; CODE XREF: sub_2CC22+24Cj tst.b (byte_FFFFA637).w beq.s loc_2CEA8 cmp.w (word_FFFFA624).w,d1 beq.s loc_2CEA8 tst.b (byte_FFFFA634).w beq.s loc_2CEA8 move.w (CCP_KE_CCP_LEARN_RATE_NORMAL).l,d3 ; Time delay between oxygen multiplier learns if the multiplier is increasing. ; Seconds mulu.w (CCP_KE_CCP_LEARN_RATE_MULTIPLIER).l,d3 divu.w #$1000,d3 bvc.s loc_2CEA2 move.w #$FFFF,d3 loc_2CEA2: ; CODE XREF: sub_2CC22+27Aj move.w d3,(word_FFFFA63A).w bra.s loc_2CEB0 ; --------------------------------------------------------------------------- loc_2CEA8: ; CODE XREF: sub_2CC22+25Cj ; sub_2CC22+262j ... move.w (CCP_KE_CCP_LEARN_RATE_NORMAL).l,(word_FFFFA63A).w ; Time delay between oxygen multiplier learns if the multiplier is increasing. ; Seconds loc_2CEB0: ; CODE XREF: sub_2CC22+256j ; sub_2CC22+284j move.w (word_FFFFB298).w,d3 movea.w #$1000,a2 clr.w d4 cmpi.w #$1000,d3 bcs.s loc_2CEC4 move.w #$1000,d3 loc_2CEC4: ; CODE XREF: sub_2CC22+29Cj tblu.w (CCP_KV_CCP_MAX_ALLOWED_PURGE_FLOW).l,d3 ; Maximum allowed purge flow value as a function ofmanifold vacuum. ; GPS move.w d3,(word_FFFFA626).w clr.w d5 move.b (byte_FFFFA623).w,d5 cmp.w CCP_KV_CANISTER_OXYGEN_VOLTAGE_LOW.l(d5.w*2),d6 bcc.w loc_2CF6A move.w (word_FFFFA0DC).w,d5 movea.w #$2000,a2 move.l d4,d2 cmpi.w #$4000,d5 bcc.s loc_2CEF6 lsr.w #1,d5 bra.s loc_2CEFA ; --------------------------------------------------------------------------- loc_2CEF6: ; CODE XREF: sub_2CC22+2CEj move.w #$2000,d5 loc_2CEFA: ; CODE XREF: sub_2CC22+2D2j tblu.w (CCP_KV_CCP_BASE_DESIRED_PURGE_FLOW).l,d5 ; Determines the canister purge desired base flow ; GPS cmp.w d5,d3 bls.s loc_2CF6A moveq #1,d2 move.b d2,(byte_FFFFA637).w move.w (word_FFFFA644).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (word_FFFFA63A).w,d3 bcs.w loc_2D030 move.b (byte_FFFFA623).w,d5 add.b d5,d5 addq.b #1,d5 andi.w #$FF,d5 move.w (word_FFFFA624).w,d3 add.w CCP_KA_CCP_OXYGEN_ADJUST_SIZE.l(d5.w*2),d3 cmpi.w #$2000,d3 bls.s loc_2CF44 move.w #$2000,d3 loc_2CF44: ; CODE XREF: sub_2CC22+31Cj cmp.w d1,d3 bls.s loc_2CF50 loc_2CF48: ; CODE XREF: sub_2CC22+3C4j move.w d1,(word_FFFFA624).w bra.w loc_2D030 ; --------------------------------------------------------------------------- loc_2CF50: ; CODE XREF: sub_2CC22+324j move.w (CCP_KE_CCP_MIN_OXYGEN_ADJUST).l,d4 ; Minimum allowable value of the Canister_Purge_Oxygen_Adjustmultiplier. ; Unitless cmp.w d4,d3 bcc.s loc_2CF62 loc_2CF5A: ; CODE XREF: sub_2CC22+3D0j move.w d4,(word_FFFFA624).w bra.w loc_2D030 ; --------------------------------------------------------------------------- loc_2CF62: ; CODE XREF: sub_2CC22+336j ; sub_2CC22+3D4j move.w d3,(word_FFFFA624).w bra.w loc_2D030 ; --------------------------------------------------------------------------- loc_2CF6A: ; CODE XREF: sub_2CC22+2BCj ; sub_2CC22+2E2j move.w (GlobalClock).w,(word_FFFFA644).w clr.w d3 move.b (byte_FFFFA623).w,d3 cmp.w CCP_KV_CANISTER_OXYGEN_VOLTAGE_HIGH.l(d3.w*2),d6 bcs.w loc_2D012 move.w (word_FFFFB4A2).w,d3 movea.w #$E00,a2 move.w #$1500,d2 cmp.w d3,d2 bls.s loc_2CFA0 andi.l #$FFFF,d3 add.l d3,d3 moveq #3,d6 divu.w d6,d3 bra.s loc_2CFA4 ; --------------------------------------------------------------------------- loc_2CFA0: ; CODE XREF: sub_2CC22+36Ej move.w #$E00,d3 loc_2CFA4: ; CODE XREF: sub_2CC22+37Cj tblu.w (CCP_KV_CCP_DUTY_CYCLE_MINIMUM).l,d3 ; Minimum allowed canister purge duty cycle. ; Percent cmp.w (word_FFFFA62A).w,d3 bcc.s loc_2D012 clr.b (byte_FFFFA637).w move.w (word_FFFFA646).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (word_FFFFA63A).w,d3 bcs.s loc_2D030 tst.b d7 beq.s loc_2CFFA clr.w d5 move.b (byte_FFFFA623).w,d5 move.w (word_FFFFA624).w,d3 sub.w CCP_KV_CCP_OXYGEN_ADJUST_TIMED_SIZE.l(d5.w*2),d3 loc_2CFE0: ; CODE XREF: sub_2CC22+3EEj bcc.s loc_2CFE4 move.l d4,d3 loc_2CFE4: ; CODE XREF: sub_2CC22:loc_2CFE0j cmp.w d1,d3 bhi.w loc_2CF48 move.w (CCP_KE_CCP_MIN_OXYGEN_ADJUST).l,d4 ; Minimum allowable value of the Canister_Purge_Oxygen_Adjustmultiplier. ; Unitless cmp.w d4,d3 bcs.w loc_2CF5A bra.w loc_2CF62 ; --------------------------------------------------------------------------- loc_2CFFA: ; CODE XREF: sub_2CC22+3AAj move.b (byte_FFFFA623).w,d5 add.b d5,d5 andi.w #$FF,d5 move.w (word_FFFFA624).w,d3 sub.w CCP_KA_CCP_OXYGEN_ADJUST_SIZE.l(d5.w*2),d3 bra.s loc_2CFE0 ; --------------------------------------------------------------------------- loc_2D012: ; CODE XREF: sub_2CC22+35Cj ; sub_2CC22+38Ej move.w (GlobalClock).w,(word_FFFFA646).w bra.s loc_2D030 ; --------------------------------------------------------------------------- loc_2D01A: ; CODE XREF: sub_2CC22+180j ; sub_2CC22+196j move.w (GlobalClock).w,(word_FFFFA642).w move.w (GlobalClock).w,(word_FFFFA644).w move.w (GlobalClock).w,(word_FFFFA646).w clr.w (word_FFFFA626).w loc_2D030: ; CODE XREF: sub_2CC22+2FCj ; sub_2CC22+32Aj ... move.b (byte_FFFFA89A).w,d3 or.b (byte_FFFFA89B).w,d3 beq.s loc_2D042 move.w (CCP_KE_BLM_INITIAL_VALUE).l,d0 ; Value the BLM data will assume when Closed Loopreset for both banks occur ; Scaler_2 bra.s loc_2D06C ; --------------------------------------------------------------------------- loc_2D042: ; CODE XREF: sub_2CC22+416j move.b (CCP_KE_CANISTER_PURGE_CHOOSE_BLM).l,d3 ; Choose what BLM data is to be used if no closed loopresets are present. ; Unitless bne.s loc_2D050 move.w (word_FFFF98DC).w,d0 bra.s loc_2D06C ; --------------------------------------------------------------------------- loc_2D050: ; CODE XREF: sub_2CC22+426j moveq #1,d1 cmp.b d3,d1 bne.s loc_2D05C move.w (word_FFFF98DE).w,d0 bra.s loc_2D06C ; --------------------------------------------------------------------------- loc_2D05C: ; CODE XREF: sub_2CC22+432j cmpi.b #2,d3 bne.s loc_2D06C move.w (word_FFFF98DC).w,d0 add.w (word_FFFF98DE).w,d0 lsr.w #1,d0 loc_2D06C: ; CODE XREF: sub_2CC22+41Ej ; sub_2CC22+42Cj ... move.w d0,(word_FFFFA63E).w tst.b (byte_FFFFA621).w beq.w loc_2D13C tst.b var_4(a6) beq.s loc_2D090 tst.b (byte_FFFFA622).w bne.s loc_2D090 move.w (CCP_KE_CCP_OPEN_LOOP_BLM_ADJUST).l,(word_FFFFA63C).w ; Default value of the BLM adjust factor whenpurge is being performed in open loop fuel control. ; Unitless 0-2 bra.w loc_2D13C ; --------------------------------------------------------------------------- loc_2D090: ; CODE XREF: sub_2CC22+45Aj ; sub_2CC22+460j clr.w d3 move.b (byte_FFFFA623).w,d3 cmp.w CCP_KV_CANISTER_BLM_HIGH_THRESHOLD.l(d3.w*2),d0 bls.s loc_2D0D2 moveq #1,d0 move.b d0,(byte_FFFFA638).w clr.w d5 move.b (byte_FFFFA623).w,d5 move.w (word_FFFFA63C).w,d3 add.w CCP_KV_CCP_BLM_ADJUST_SIZE.l(d5.w*2),d3 cmpi.w #$2000,d3 bls.s loc_2D0C2 move.w #$2000,d3 loc_2D0C2: ; CODE XREF: sub_2CC22+49Aj move.w (CCP_KE_CCP_MIN_BLM_SENSOR_ADJUST).l,d4 ; ; Unitless cmp.w d4,d3 bcc.s loc_2D12E loc_2D0CC: ; CODE XREF: sub_2CC22+50Aj ; sub_2CC22+514j move.w d4,(word_FFFFA63C).w bra.s loc_2D13C ; --------------------------------------------------------------------------- loc_2D0D2: ; CODE XREF: sub_2CC22+47Cj cmp.w CCP_KV_CANISTER_BLM_LOW_THRESHOLD.l(d3.w*2),d0 bhi.s loc_2D13C move.w (word_FFFFB4A2).w,d3 movea.w #$E00,a2 cmpi.w #$1500,d3 bcc.s loc_2D0F8 andi.l #$FFFF,d3 add.l d3,d3 divu.w #3,d3 bra.s loc_2D0FC ; --------------------------------------------------------------------------- loc_2D0F8: ; CODE XREF: sub_2CC22+4C6j move.w #$E00,d3 loc_2D0FC: ; CODE XREF: sub_2CC22+4D4j tblu.w (CCP_KV_CCP_DUTY_CYCLE_MINIMUM).l,d3 ; Minimum allowed canister purge duty cycle. ; Percent cmp.w (word_FFFFA62A).w,d3 bcc.s loc_2D13C clr.b (byte_FFFFA638).w clr.w d5 move.b (byte_FFFFA623).w,d5 move.w (word_FFFFA63C).w,d3 sub.w CCP_KV_CCP_BLM_ADJUST_SIZE.l(d5.w*2),d3 bcc.s loc_2D124 clr.w d3 loc_2D124: ; CODE XREF: sub_2CC22+4FEj move.w (CCP_KE_CCP_MIN_BLM_SENSOR_ADJUST).l,d4 ; ; Unitless cmp.w d4,d3 bcs.s loc_2D0CC loc_2D12E: ; CODE XREF: sub_2CC22+4A8j move.w (CCP_KE_CCP_MAX_BLM_SENSOR_ADJUST).l,d4 ; Minimum allowed BLM multiplier for canister purge. ; Unitless cmp.w d4,d3 bhi.s loc_2D0CC move.w d3,(word_FFFFA63C).w loc_2D13C: ; CODE XREF: sub_2CC22+452j ; sub_2CC22+46Aj ... jsr sub_2D1C4 jsr sub_2D6D2 jsr sub_2D6FA jsr sub_2CB78 tst.b (byte_FFFFA623).w bne.s loc_2D168 move.w (CCP_KE_CCP_MODE_TPS_HIGH).l,d4 ; Upper threshold of throttle position hysteresis for CCP Mode. ; Percent move.w (CCP_KE_CCP_MODE_VSS_HIGH).l,d3 ; Upper threshold of vehicle speed hysteresis for CCP Mode. ; MPH bra.s loc_2D174 ; --------------------------------------------------------------------------- loc_2D168: ; CODE XREF: sub_2CC22+536j move.w (CCP_KE_CCP_MODE_TPS_LOW).l,d4 ; Lower threshold of throttle position hysteresis for CCP Mode. ; Percent move.w (CCP_KE_CCP_MODE_VSS_LOW).l,d3 ; Lower threshold of vehicle speed hysteresis for CCP Mode. ; MPH loc_2D174: ; CODE XREF: sub_2CC22+544j cmp.w (word_FFFFAB66).w,d4 bhi.s loc_2D180 cmp.w (word_FFFFAEBC).w,d3 bls.s loc_2D186 loc_2D180: ; CODE XREF: sub_2CC22+556j clr.b (byte_FFFFA623).w bra.s loc_2D18C ; --------------------------------------------------------------------------- loc_2D186: ; CODE XREF: sub_2CC22+55Cj move.b #1,(byte_FFFFA623).w loc_2D18C: ; CODE XREF: sub_2CC22+Ej ; sub_2CC22+562j tst.b (byte_FFFF81B9).w beq.s loc_2D1B6 move.l (dword_FFFFBF12).w,d3 cmp.l (CCP_KE_HRP_MIN_SOAK_TIMER_TO_ENABLE).l,d3 ; Disable hot restart purge mode if engine has not soaked for atleast this amount of time. ; Seconds_L bcs.s loc_2D1B2 cmp.l (CCP_KE_HRP_MAX_SOAK_TIMER_TO_DISABLE).l,d3 ; Disable hot restart purge mode if engine has soaked for more than this time. ; Seconds_L bhi.s loc_2D1B2 move.w (word_FFFF8242).w,d3 cmp.w (CCP_KE_HRP_MIN_PERCENTAGE_ETHANOL).l,d3 bcc.s loc_2D1B6 loc_2D1B2: ; CODE XREF: sub_2CC22+57Aj ; sub_2CC22+582j clr.b (byte_FFFF81B9).w loc_2D1B6: ; CODE XREF: sub_2CC22+56Ej ; sub_2CC22+58Ej jsr sub_2D4F2 movem.l (sp)+,d0-d2/d6-d7 unlk a6 rts ; End of function sub_2CC22 ; =============== S U B R O U T I N E ======================================= sub_2D1C4: ; CODE XREF: sub_2CC22:loc_2D13Cp movem.l d0-d2/d6/a0,-(sp) tst.b (byte_FFFFA620).w beq.w loc_2D4D4 tst.b (byte_FFFF81B9).w beq.w loc_2D2CE move.l (EngineRunTime).w,d6 cmpi.l #$FFFF,d6 bls.s loc_2D1E8 move.w #$FFFF,d6 loc_2D1E8: ; CODE XREF: sub_2D1C4+1Ej move.w (word_FFFFAEF4).w,d0 cmpi.w #$960,d6 bcc.s loc_2D208 clr.l d1 move.w d6,d1 asl.l #8,d1 asl.l #3,d1 divu.l #5,d1 divu.w #$500,d1 bra.s loc_2D20C ; --------------------------------------------------------------------------- loc_2D208: ; CODE XREF: sub_2D1C4+2Cj move.w #$300,d1 loc_2D20C: ; CODE XREF: sub_2D1C4+42j moveq #9,d2 movea.l #$924A,a0 jsr sub_2696E move.w d0,(word_FFFFA656).w move.w (CCP_KE_HRP_HOLD_ACTIVE_TIME).l,d3 ; Amount of time HRP is held active before decay to zero. ; Seconds cmp.w d3,d6 bls.s loc_2D276 clr.l d1 move.w (CCP_KE_HRP_EXIT_DECAY_TIME).l,d1 ; HRP is decayed to zero in this amount of time. ; Seconds clr.l d2 move.w d3,d2 add.l d1,d2 clr.l d5 move.w d6,d5 cmp.l d2,d5 bcc.s loc_2D276 sub.w (CCP_KE_HRP_HOLD_ACTIVE_TIME).l,d6 ; Amount of time HRP is held active before decay to zero. ; Seconds bcc.s loc_2D248 clr.w d6 loc_2D248: ; CODE XREF: sub_2D1C4+80j andi.l #$FFFF,d6 asl.l #8,d6 asl.l #4,d6 divu.w (CCP_KE_HRP_EXIT_DECAY_TIME).l,d6 ; HRP is decayed to zero in this amount of time. ; Seconds bvs.s loc_2D260 cmpi.w #$1000,d6 bls.s loc_2D264 loc_2D260: ; CODE XREF: sub_2D1C4+94j move.w #$1000,d6 loc_2D264: ; CODE XREF: sub_2D1C4+9Aj move.w #$1000,d3 sub.w d6,d3 mulu.w d3,d0 lsr.l #8,d0 lsr.l #4,d0 move.w d0,(word_FFFFA656).w bra.s loc_2D298 ; --------------------------------------------------------------------------- loc_2D276: ; CODE XREF: sub_2D1C4+62j ; sub_2D1C4+78j clr.l d1 move.w (CCP_KE_HRP_EXIT_DECAY_TIME).l,d1 ; HRP is decayed to zero in this amount of time. ; Seconds andi.l #$FFFF,d3 add.l d1,d3 andi.l #$FFFF,d6 cmp.l d3,d6 bcs.s loc_2D298 clr.b (byte_FFFF81B9).w clr.w (word_FFFFA656).w loc_2D298: ; CODE XREF: sub_2D1C4+B0j ; sub_2D1C4+CAj move.w (word_FFFFA656).w,d3 cmpi.w #$280,d3 bcc.s loc_2D2BA andi.l #$FFFF,d3 mulu.l #sub_20000,d4:d3 divu.l #$A3D,d4:d3 bra.s loc_2D2BE ; --------------------------------------------------------------------------- loc_2D2BA: ; CODE XREF: sub_2D1C4+DCj move.w #$7D00,d3 loc_2D2BE: ; CODE XREF: sub_2D1C4+F4j tblu.w (CCP_KV_CANISTER_PURGE_DUTY_CYCLE).l,d3 ; Establishes the nonignition voltage limited canister purge duty cycle. ; Percent move.w d3,(word_FFFFA62A).w bra.w loc_2D3A4 ; --------------------------------------------------------------------------- loc_2D2CE: ; CODE XREF: sub_2D1C4+10j move.w (word_FFFFA624).w,d4 mulu.w (word_FFFFA63C).w,d4 lsr.l #8,d4 lsr.l #4,d4 tst.b (byte_FFFFA1F6).w beq.s loc_2D2E8 mulu.w (CCP_KE_CCP_PE_MULTIPLIER).l,d4 ; Power enrichment multiplier for CCP total adjust. ; Unitless 0-1 bra.s loc_2D2F4 ; --------------------------------------------------------------------------- loc_2D2E8: ; CODE XREF: sub_2D1C4+11Aj tst.b (byte_FFFFACAA).w beq.s loc_2D2F8 mulu.w (CCP_KE_CCP_COT_MULTIPLIER).l,d4 ; Converter Too Hot multiplier for CCP total adjust. ; Unitless 0-1 loc_2D2F4: ; CODE XREF: sub_2D1C4+122j lsr.l #8,d4 lsr.l #4,d4 loc_2D2F8: ; CODE XREF: sub_2D1C4+128j tst.b (byte_FFFFA623).w bne.s loc_2D326 move.w (word_FFFFA0DC).w,d3 cmpi.w #$A00,d3 bcs.s loc_2D30C move.w #$A00,d3 loc_2D30C: ; CODE XREF: sub_2D1C4+142j tblu.w (CCP_KV_CCP_BASE_FLOW_IDLE_MAF).l,d3 ; Calibrated Base Flow Idle based on Mass Airflow ; GPS mulu.w d4,d3 divu.w #$1000,d3 bvc.s loc_2D320 move.w #$FFFF,d3 loc_2D320: ; CODE XREF: sub_2D1C4+156j move.w d3,(word_FFFFA628).w bra.s loc_2D36E ; --------------------------------------------------------------------------- loc_2D326: ; CODE XREF: sub_2D1C4+138j move.w (word_FFFFA0DC).w,d3 clr.w d5 cmpi.w #$4000,d3 bcc.s loc_2D336 lsr.w #1,d3 bra.s loc_2D33A ; --------------------------------------------------------------------------- loc_2D336: ; CODE XREF: sub_2D1C4+16Cj move.w #$2000,d3 loc_2D33A: ; CODE XREF: sub_2D1C4+170j tblu.w (CCP_KV_CCP_BASE_FLOW_OFF_IDLE_MAF).l,d3 ; This is the calibrated Base Flow Off Idle based on Mass Airflow ; GPS mulu.w d4,d3 move.w #$1000,d2 divu.w d2,d3 bvc.s loc_2D350 move.w #$FFFF,d3 loc_2D350: ; CODE XREF: sub_2D1C4+186j move.w d3,(word_FFFFA628).w move.w (word_FFFFB298).w,d3 move.l d5,d4 tblu.w (CCP_KV_CCP_VACUUM_MULTIPLIER).l,d3 ; Canister Purge compensation for Manifold Vacuum. ; Unitless mulu.w (word_FFFFA628).w,d3 divu.w d2,d3 bvc.s loc_2D36E move.w #$FFFF,d3 loc_2D36E: ; CODE XREF: sub_2D1C4+160j ; sub_2D1C4+1A4j move.w d3,(word_FFFFA64A).w cmpi.w #$280,d3 bcc.s loc_2D390 andi.l #$FFFF,d3 mulu.l #sub_20000,d4:d3 divu.l #$A3D,d4:d3 bra.s loc_2D394 ; --------------------------------------------------------------------------- loc_2D390: ; CODE XREF: sub_2D1C4+1B2j move.w #$7D00,d3 loc_2D394: ; CODE XREF: sub_2D1C4+1CAj tblu.w (CCP_KV_CANISTER_PURGE_DUTY_CYCLE).l,d3 ; Establishes the nonignition voltage limited canister purge duty cycle. ; Percent move.w d3,(word_FFFFA62A).w clr.w (word_FFFFA656).w loc_2D3A4: ; CODE XREF: sub_2D1C4+106j move.w (word_FFFFB4A2).w,d3 cmpi.w #$1500,d3 bcc.s loc_2D3BC andi.l #$FFFF,d3 add.l d3,d3 divu.w #3,d3 bra.s loc_2D3C0 ; --------------------------------------------------------------------------- loc_2D3BC: ; CODE XREF: sub_2D1C4+1E8j move.w #$E00,d3 loc_2D3C0: ; CODE XREF: sub_2D1C4+1F6j tblu.w (CCP_KV_CCP_DUTY_CYCLE_MINIMUM).l,d3 ; Minimum allowed canister purge duty cycle. ; Percent cmp.w (word_FFFFA62A).w,d3 bls.s loc_2D3D2 move.w d3,(word_FFFFA62A).w loc_2D3D2: ; CODE XREF: sub_2D1C4+208j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA64A).w,d3 mulu.w $A(a2),d3 divu.w #$A0,d3 ; '?' bvc.s loc_2D3E8 move.w #$FFFF,d3 loc_2D3E8: ; CODE XREF: sub_2D1C4+21Ej move.w d3,(word_FFFFA65A).w clr.l d3 move.w (word_FFFFA65A).w,d3 add.l (dword_FFFFA65C).w,d3 bvc.s loc_2D408 bpl.s loc_2D402 move.l #$7FFFFFFF,d3 bra.s loc_2D408 ; --------------------------------------------------------------------------- loc_2D402: ; CODE XREF: sub_2D1C4+234j move.l #$80000000,d3 loc_2D408: ; CODE XREF: sub_2D1C4+232j ; sub_2D1C4+23Cj move.l d3,(dword_FFFFA65C).w cmp.l (CCP_KE_CCP_REDUCTION_INTEGRAL).l,d3 ; Volume of purge flow which must accumulate before flow reduction can start ; Grams blt.w loc_2D4AE move.b (byte_FFFF98DA).w,d4 tst.b (CCP_KE_CANISTER_PURGE_CHOOSE_BLM).l ; Choose what BLM data is to be used if no closed loopresets are present. ; Unitless bne.s loc_2D426 clr.b d3 bra.s loc_2D428 ; --------------------------------------------------------------------------- loc_2D426: ; CODE XREF: sub_2D1C4+25Cj moveq #1,d3 loc_2D428: ; CODE XREF: sub_2D1C4+260j cmpi.b #$13,d4 bhi.s loc_2D4A0 clr.w d1 cmpi.b #$F,d4 bhi.s loc_2D43A moveq #$16,d0 bra.s loc_2D43C ; --------------------------------------------------------------------------- loc_2D43A: ; CODE XREF: sub_2D1C4+270j moveq #$14,d0 loc_2D43C: ; CODE XREF: sub_2D1C4+274j clr.l d5 move.b d3,d5 cmpi.w #$800,word_FFFF9944(d5.w*2) bne.s loc_2D476 move.l d4,d5 add.b d5,d5 add.b d3,d5 andi.w #$FF,d5 add.b d0,d0 add.b d3,d0 andi.w #$FF,d0 move.w unk_FFFF98F8(d0.w*2),d3 sub.w unk_FFFF98E6(d5.w*2),d3 bcc.s loc_2D46C move.l d1,d3 loc_2D46C: ; CODE XREF: sub_2D1C4+2A4j cmp.w (CCP_KE_CCP_BLM_REDUCTION_DELTA).l,d3 ; Delta limit allowed between purge and non-purge fuel control cells. ; Scaler_2 bcc.s loc_2D476 moveq #1,d1 loc_2D476: ; CODE XREF: sub_2D1C4+284j ; sub_2D1C4+2AEj cmp.b (byte_FFFFA660).w,d1 bne.s loc_2D484 loc_2D47C: ; CODE XREF: sub_2D1C4+2DAj move.w (GlobalClock).w,(word_FFFFA662).w bra.s loc_2D4B8 ; --------------------------------------------------------------------------- loc_2D484: ; CODE XREF: sub_2D1C4+2B6j move.w (CCP_KE_CCP_FLOW_REDUCTION_HYST_TIME).l,d0 ; Hysteresis time for flow reduction mode. ; Seconds movea.l #unk_FFA662,a0 jsr sub_276D4 tst.b d0 beq.s loc_2D4B8 move.b d1,(byte_FFFFA660).w bra.s loc_2D47C ; --------------------------------------------------------------------------- loc_2D4A0: ; CODE XREF: sub_2D1C4+268j movea.l (dword_FFFFB5DE).w,a2 move.w $A(a2),d3 add.w d3,(word_FFFFA662).w bra.s loc_2D4B8 ; --------------------------------------------------------------------------- loc_2D4AE: ; CODE XREF: sub_2D1C4+24Ej move.w (GlobalClock).w,(word_FFFFA662).w clr.b (byte_FFFFA660).w loc_2D4B8: ; CODE XREF: sub_2D1C4+2BEj ; sub_2D1C4+2D4j ... tst.b (byte_FFFFA660).w beq.s loc_2D4EC move.w (word_FFFFA62A).w,d3 cmp.w (CCP_KE_CCP_REDUCTION_LIMIT).l,d3 ; Maximum allowed canister purge duty cycle during purge reduction. ; Percent bcs.s loc_2D4EC move.w (CCP_KE_CCP_REDUCTION_LIMIT).l,(word_FFFFA62A).w ; Maximum allowed canister purge duty cycle during purge reduction. ; Percent bra.s loc_2D4EC ; --------------------------------------------------------------------------- loc_2D4D4: ; CODE XREF: sub_2D1C4+8j clr.w (word_FFFFA628).w clr.w (word_FFFFA62A).w clr.w (word_FFFFA656).w movea.l (dword_FFFFB5DE).w,a2 move.w $A(a2),d3 add.w d3,(word_FFFFA662).w loc_2D4EC: ; CODE XREF: sub_2D1C4+2F8j ; sub_2D1C4+304j ... movem.l (sp)+,d0-d2/d6/a0 rts ; End of function sub_2D1C4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2D4F2: ; CODE XREF: sub_2CC22:loc_2D1B6p var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d2/d6,-(sp) move.w (word_FFFFA62A).w,d0 jsr sub_2F386 move.w d0,(word_FFFFA62A).w tst.b (byte_FFFF81B9).w bne.w loc_2D600 cmp.w (DI_EVAP_KE_CCP_MAX_DUTY_CYCLE_CLOSED).l,d0 beq.s loc_2D52C move.l d0,d6 sub.w (word_FFFFA62C).w,d6 bcc.s loc_2D522 neg.w d6 loc_2D522: ; CODE XREF: sub_2D4F2+2Cj cmp.w (CCP_KE_CCP_DUTY_CYCLE_CHANGE_LIMIT).l,d6 ; Maximum delta the purge solenoid duty cycle can change eachloop by. If change exceeds this limit, the new value isfiltered in. ; Percent bls.w loc_2D600 loc_2D52C: ; CODE XREF: sub_2D4F2+24j move.w (CCP_KE_CCP_VEHICLE_SPEED_THRESHOLD).l,d3 ; Speed at which the CCP filter coefficient decides to use thehigh speed coefficient table or the low speed coefficienttable. ; MPH move.w (word_FFFFAEBC).w,d4 cmp.w d3,d4 bls.s loc_2D562 cmp.w (word_FFFFA62C).w,d0 bhi.s loc_2D562 move.w (word_FFFFA0DC).w,d3 cmpi.w #$1000,d3 bcc.s loc_2D54E lsr.w #1,d3 bra.s loc_2D552 ; --------------------------------------------------------------------------- loc_2D54E: ; CODE XREF: sub_2D4F2+56j move.w #$800,d3 loc_2D552: ; CODE XREF: sub_2D4F2+5Aj tblu.w (CCP_KV_CCP_HIGH_SPEED_CCP_CLOSING_CO).l,d3 ; Filter coefficient based on a high vehicle speed and massairflow Calibration. ; Coeff. loc_2D55A: ; CODE XREF: sub_2D4F2+9Aj ; sub_2D4F2+C6j ... move.w d3,(word_FFFFA64C).w bra.w loc_2D5E8 ; --------------------------------------------------------------------------- loc_2D562: ; CODE XREF: sub_2D4F2+46j ; sub_2D4F2+4Cj cmp.w d3,d4 bls.s loc_2D58E cmp.w (word_FFFFA62C).w,d0 bls.s loc_2D58E move.w (word_FFFFA0DC).w,d3 movea.w #$800,a2 clr.b d4 cmpi.w #$1000,d3 bcc.s loc_2D580 lsr.w #1,d3 bra.s loc_2D584 ; --------------------------------------------------------------------------- loc_2D580: ; CODE XREF: sub_2D4F2+88j move.w #$800,d3 loc_2D584: ; CODE XREF: sub_2D4F2+8Cj tblu.w (CCP_KV_CCP_HIGH_SPEED_CCP_OPENING_CO).l,d3 ; Filter coefficient based on a high vehicle speed and massairflow Calibration. ; Coeff. bra.s loc_2D55A ; --------------------------------------------------------------------------- loc_2D58E: ; CODE XREF: sub_2D4F2+72j ; sub_2D4F2+78j cmp.w d3,d4 bcc.s loc_2D5BA cmp.w (word_FFFFA62C).w,d0 bls.s loc_2D5BA move.w (word_FFFFA0DC).w,d3 movea.w #$800,a2 clr.b d4 cmpi.w #$1000,d3 bcc.s loc_2D5AC lsr.w #1,d3 bra.s loc_2D5B0 ; --------------------------------------------------------------------------- loc_2D5AC: ; CODE XREF: sub_2D4F2+B4j move.w #$800,d3 loc_2D5B0: ; CODE XREF: sub_2D4F2+B8j tblu.w (CCP_KV_CCP_LOW_SPEED_CCP_OPENING_COE).l,d3 ; Filter coefficient based on a low vehicle speed and massairflow Calibration. ; Coeff. bra.s loc_2D55A ; --------------------------------------------------------------------------- loc_2D5BA: ; CODE XREF: sub_2D4F2+9Ej ; sub_2D4F2+A4j cmp.w d3,d4 bcc.s loc_2D5E8 cmp.w (word_FFFFA62C).w,d0 bhi.s loc_2D5E8 move.w (word_FFFFA0DC).w,d3 movea.w #$800,a2 clr.b d4 cmpi.w #$1000,d3 bcc.s loc_2D5D8 lsr.w #1,d3 bra.s loc_2D5DC ; --------------------------------------------------------------------------- loc_2D5D8: ; CODE XREF: sub_2D4F2+E0j move.w #$800,d3 loc_2D5DC: ; CODE XREF: sub_2D4F2+E4j tblu.w (CCP_KV_CCP_LOW_SPEED_CCP_CLOSING_COE).l,d3 ; Filter coefficient based on a low vehicle speed and massairflow Calibration. ; Coeff. bra.w loc_2D55A ; --------------------------------------------------------------------------- loc_2D5E8: ; CODE XREF: sub_2D4F2+6Cj ; sub_2D4F2+CAj ... move.w (word_FFFFA62C).w,var_4(a6) move.w d0,var_2(a6) move.w (word_FFFFA64C).w,d3 tblu.w var_4(a6),d3 move.w d3,(word_FFFFA62A).w loc_2D600: ; CODE XREF: sub_2D4F2+1Aj ; sub_2D4F2+36j move.w (word_FFFFA62A).w,(word_FFFFA62C).w move.w (word_FFFFA62A).w,d2 move.l #$FC9,d1 moveq #$78,d0 ; 'x' jsr (sub_16FA).l movem.l (sp)+,d0-d2/d6 unlk a6 rts ; End of function sub_2D4F2 ; =============== S U B R O U T I N E ======================================= sub_2D620: ; CODE XREF: DoLoopF+3D4p ; DoLoopF:loc_2B11Ep movem.l d0-d2,-(sp) move.b (byte_FFFFA1A3).w,d3 or.b (byte_FFFFA19F).w,d3 beq.w loc_2D6CC jsr sub_2F512 move.b d0,(byte_FFFFA658).w tst.b d0 beq.s loc_2D64A move.b (CCP_KE_VENT_VALVE_STRIKE_CYCLE_LIMIT).l,(byte_FFFFA653).w ; Number of extra close-open cycles of vent valve on open-to-closed transitions. ; Unitless clr.w d2 bra.s loc_2D6BC ; --------------------------------------------------------------------------- loc_2D64A: ; CODE XREF: sub_2D620+1Cj move.b (byte_FFFFA653).w,d3 beq.s loc_2D6B8 cmpi.b #3,(byte_FFFF9E96).w beq.s loc_2D668 cmpi.b #2,(byte_FFFF9E95).w beq.s loc_2D668 btst #0,(byte_FFFF9E8F).w beq.s loc_2D6B8 loc_2D668: ; CODE XREF: sub_2D620+36j ; sub_2D620+3Ej tst.w (word_FFFFA654).w bne.s loc_2D67C subq.b #1,d3 move.b d3,(byte_FFFFA653).w move.w (CCP_KE_VENT_VALVE_STRIKE_CYCLE_PERIO).l,(word_FFFFA654).w ; Period for each extra close-open cycle of vent valve on open-to-closed transitions. ; Seconds loc_2D67C: ; CODE XREF: sub_2D620+4Cj move.w (CCP_KE_VENT_VALVE_STRIKE_CYCLE_PERIO).l,d2 ; Period for each extra close-open cycle of vent valve on open-to-closed transitions. ; Seconds lsr.w #1,d2 cmp.w (word_FFFFA654).w,d2 bcc.s loc_2D690 move.w #$1400,d2 bra.s loc_2D692 ; --------------------------------------------------------------------------- loc_2D690: ; CODE XREF: sub_2D620+68j clr.w d2 loc_2D692: ; CODE XREF: sub_2D620+6Ej move.l #$FC9,d1 move.b #$9A,d0 jsr (sub_16FA).l movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA654).w,d3 sub.w $A(a2),d3 bcc.s loc_2D6B2 clr.w d3 loc_2D6B2: ; CODE XREF: sub_2D620+8Ej move.w d3,(word_FFFFA654).w bra.s loc_2D6CC ; --------------------------------------------------------------------------- loc_2D6B8: ; CODE XREF: sub_2D620+2Ej ; sub_2D620+46j move.w #$1400,d2 loc_2D6BC: ; CODE XREF: sub_2D620+28j move.l #$FC9,d1 move.b #$9A,d0 jsr (sub_16FA).l loc_2D6CC: ; CODE XREF: sub_2D620+Cj ; sub_2D620+96j movem.l (sp)+,d0-d2 rts ; End of function sub_2D620 ; =============== S U B R O U T I N E ======================================= sub_2D6D2: ; CODE XREF: sub_2CC22+520p tst.b (byte_FFFFA635).w beq.s loc_2D6E0 move.w (CCP_KE_CCP_PRESSURE_HIGH).l,d3 ; Manifold pressure upper threshold for enabling purge onceit has been disabled. ; kPa bra.s loc_2D6E6 ; --------------------------------------------------------------------------- loc_2D6E0: ; CODE XREF: sub_2D6D2+4j move.w (CCP_KE_CCP_PRESSURE_LOW).l,d3 ; Manifold pressure lower threshold for disabling purge onceit has been enabled. ; kPa loc_2D6E6: ; CODE XREF: sub_2D6D2+Cj cmp.w (word_FFFFB292).w,d3 bls.s loc_2D6F4 move.b #1,(byte_FFFFA635).w bra.s locret_2D6F8 ; --------------------------------------------------------------------------- loc_2D6F4: ; CODE XREF: sub_2D6D2+18j clr.b (byte_FFFFA635).w locret_2D6F8: ; CODE XREF: sub_2D6D2+20j rts ; End of function sub_2D6D2 ; =============== S U B R O U T I N E ======================================= sub_2D6FA: ; CODE XREF: sub_2CC22+526p tst.b (byte_FFFFA636).w beq.s loc_2D708 move.w (CCP_KE_CCP_VACUUM_HIGH).l,d3 ; Manifold vacuum upper threshold for enabling purge onceit has been disabled. ; kPa bra.s loc_2D70E ; --------------------------------------------------------------------------- loc_2D708: ; CODE XREF: sub_2D6FA+4j move.w (CCP_KE_CCP_VACUUM_LOW).l,d3 ; Manifold vacuum lower threshold for disabling purge onceit has been enabled. ; kPa loc_2D70E: ; CODE XREF: sub_2D6FA+Cj cmp.w (word_FFFFB298).w,d3 bls.s loc_2D71C move.b #1,(byte_FFFFA636).w bra.s locret_2D720 ; --------------------------------------------------------------------------- loc_2D71C: ; CODE XREF: sub_2D6FA+18j clr.b (byte_FFFFA636).w locret_2D720: ; CODE XREF: sub_2D6FA+20j rts ; End of function sub_2D6FA ; =============== S U B R O U T I N E ======================================= sub_2D722: ; CODE XREF: OS1:00028CB8p movem.l d1-d2/d6,-(sp) move.b d0,d6 clr.w d2 move.l #$FC9,d1 move.b #$9A,d0 jsr (sub_16FA).l clr.w (word_FFFFA62A).w clr.w (word_FFFFA62C).w move.w (word_FFFFA62A).w,d2 move.l #$FC9,d1 moveq #$78,d0 ; 'x' jsr (sub_16FA).l clr.b (byte_FFFFA635).w clr.b (byte_FFFFA636).w clr.l (dword_FFFFA64E).w andi.w #$FF,d6 movea.l off_89CAC(d6.w*4),a2 jmp (a2) ; End of function sub_2D722 ; --------------------------------------------------------------------------- loc_2D76E: ; DATA XREF: OS4:00089CB4o move.w (word_FFFFADB6).w,d3 cmp.w (CCP_KE_COOLANT_TEMPERATURE_STARTRUN).l,d3 ; Coolant Threshold for determining purge enable delay startfrom closed loop entry. ; Degrees_C bge.s loc_2D784 move.w (CCP_KE_COLD_START_CLOSED_LOOP_TIME).l,(word_FFFFA62E).w ; Purge Enable Delay after going closed loop if a coldstart occurred. ; Seconds bra.s loc_2D78C ; --------------------------------------------------------------------------- loc_2D784: ; CODE XREF: OS1:0002D778j move.w (CCP_KE_WARM_START_CLOSED_LOOP_TIME).l,(word_FFFFA62E).w ; Purge Enable Delay after closed loop if a warm start occurred. ; Seconds loc_2D78C: ; CODE XREF: OS1:0002D782j cmp.w (CCP_KE_CCP_COOLANT_STARTRUN).l,d3 ; Coolant Threshold for determining purge enable delay from closed loop or open loop fuel control if selected. ; Degrees_C bge.s loc_2D7A0 move.w (CCP_KE_CCP_COLD_OPEN_LOOP_TIME).l,(word_FFFFA630).w ; Purge Enable Delay after engine run if a cold startoccurred. ; Seconds bra.w loc_2D8D0 ; --------------------------------------------------------------------------- loc_2D7A0: ; CODE XREF: OS1:0002D792j move.w (CCP_KE_CCP_WARM_OPEN_LOOP_TIME).l,(word_FFFFA630).w ; Purge Enable Delay after engine run if a warm startoccurred. ; Seconds bra.w loc_2D8D0 ; --------------------------------------------------------------------------- loc_2D7AC: ; DATA XREF: OS4:00089CC8o ; OS4:00089CCCo clr.w (word_FFFFA628).w clr.b (byte_FFFFA634).w clr.b (byte_FFFFA622).w clr.b (byte_FFFFA632).w clr.b (byte_FFFFA633).w clr.b (byte_FFFFA620).w clr.b (byte_FFFFA621).w move.b #1,(byte_FFFFA637).w move.w (CCP_KE_CANISTER_PURGE_OXYGEN_INITIAL).l,(word_FFFFA624).w ; Initial Value of Oxygen Multiplier ; Unitless clr.b (byte_FFFFA623).w move.w (word_FFFFADB6).w,d3 cmp.w (CCP_KE_COOLANT_TEMPERATURE_STARTRUN).l,d3 ; Coolant Threshold for determining purge enable delay startfrom closed loop entry. ; Degrees_C bge.s loc_2D7F0 move.w (CCP_KE_COLD_START_CLOSED_LOOP_TIME).l,(word_FFFFA62E).w ; Purge Enable Delay after going closed loop if a coldstart occurred. ; Seconds bra.s loc_2D7F8 ; --------------------------------------------------------------------------- loc_2D7F0: ; CODE XREF: OS1:0002D7E4j move.w (CCP_KE_WARM_START_CLOSED_LOOP_TIME).l,(word_FFFFA62E).w ; Purge Enable Delay after closed loop if a warm start occurred. ; Seconds loc_2D7F8: ; CODE XREF: OS1:0002D7EEj cmp.w (CCP_KE_CCP_COOLANT_STARTRUN).l,d3 ; Coolant Threshold for determining purge enable delay from closed loop or open loop fuel control if selected. ; Degrees_C bge.s loc_2D80A move.w (CCP_KE_CCP_COLD_OPEN_LOOP_TIME).l,(word_FFFFA630).w ; Purge Enable Delay after engine run if a cold startoccurred. ; Seconds bra.s loc_2D812 ; --------------------------------------------------------------------------- loc_2D80A: ; CODE XREF: OS1:0002D7FEj move.w (CCP_KE_CCP_WARM_OPEN_LOOP_TIME).l,(word_FFFFA630).w ; Purge Enable Delay after engine run if a warm startoccurred. ; Seconds loc_2D812: ; CODE XREF: OS1:0002D808j move.w (CCP_KE_CCP_INITIAL_BLM_ADJUST).l,(word_FFFFA63C).w ; BLM purge learn multiplier initial value at powerup andstartrun. ; Unitless clr.b (byte_FFFFA652).w bra.w loc_2D8D0 ; --------------------------------------------------------------------------- loc_2D822: ; DATA XREF: OS4:off_89CACo clr.b (byte_FFFFA634).w clr.b (byte_FFFFA620).w bra.w loc_2D8D0 ; --------------------------------------------------------------------------- loc_2D82E: ; DATA XREF: OS4:00089CB8o ; OS4:00089CC4o clr.b (byte_FFFFA634).w clr.b (byte_FFFFA620).w clr.b (byte_FFFFA621).w bra.w loc_2D8D0 ; --------------------------------------------------------------------------- loc_2D83E: ; DATA XREF: OS4:00089CB0o ; OS4:00089CD0o clr.b (byte_FFFFA634).w bra.w loc_2D8D0 ; --------------------------------------------------------------------------- loc_2D846: ; DATA XREF: OS4:00089CBCo clr.b (byte_FFFFA634).w move.w #$1000,d0 moveq #$10,d1 loc_2D850: ; CODE XREF: OS1:0002D876j move.l d1,d3 add.b d3,d3 andi.w #$FF,d3 move.w unk_FFFF98E6(d3.w*2),d4 cmp.w d4,d0 bls.s loc_2D864 move.w d4,d0 loc_2D864: ; CODE XREF: OS1:0002D860j move.w unk_FFFF98E8(d3.w*2),d3 cmp.w d3,d0 bls.s loc_2D870 move.w d3,d0 loc_2D870: ; CODE XREF: OS1:0002D86Cj addq.b #1,d1 cmpi.b #$13,d1 bls.s loc_2D850 clr.b d3 move.w (word_FFFFA72E).w,d4 cmp.w (CCP_KE_HRP_ENGINE_OIL_TEMPERATURE).l,d4 ; Enable hot restart purge mode if estimated oil temperature is greater than this value + other conditions must be satisfied. ; Degrees_C bgt.s loc_2D89E move.w (CoolantTemperatureOrDefault).w,d4 cmp.w (CCP_KE_HRP_COOLANT_TEMPERATURE).l,d4 ; Enable hot restart purge mode if coolant temperature is greater than this value + other conditions must be satisfied. ; Degrees_C ble.s loc_2D8CC move.w (word_FFFFB3E8).w,d4 cmp.w (CCP_KE_HRP_INDUCTION_AIR_TEMPERATURE).l,d4 ; Enable hot restart purge mode if induction air temperature is greater than this value + other conditions must be satisfied. ; Degrees_C ble.s loc_2D8CC loc_2D89E: ; CODE XREF: OS1:0002D884j move.w (word_FFFFA63C).w,d4 cmp.w (CCP_KE_HRP_BLM_ADJUST_LIMIT).l,d4 ; Enable hot restart purge mode if canister purge BLM adjust is <= this value + other conditions must be satisfied. ; Scaler 0-2 bls.s loc_2D8CA move.w (word_FFFF9944).w,d4 cmp.w (CCP_KE_HRP_PLM_LIMIT).l,d4 ; Enable hot restart purge mode if either Purge Learn Multiplier (Bank1/2) is <= this value + other conditions must be satisfied. ; Scaler 0-2 bls.s loc_2D8CA move.w (word_FFFF9946).w,d4 cmp.w (CCP_KE_HRP_PLM_LIMIT).l,d4 ; Enable hot restart purge mode if either Purge Learn Multiplier (Bank1/2) is <= this value + other conditions must be satisfied. ; Scaler 0-2 bls.s loc_2D8CA cmp.w (CCP_KE_HRP_IDLE_BLM_LIMIT).l,d0 bhi.s loc_2D8CC loc_2D8CA: ; CODE XREF: OS1:0002D8A8j ; OS1:0002D8B4j ... addq.b #1,d3 loc_2D8CC: ; CODE XREF: OS1:0002D890j ; OS1:0002D89Cj ... move.b d3,(byte_FFFF81B9).w loc_2D8D0: ; CODE XREF: OS1:0002D79Cj ; OS1:0002D7A8j ... movem.l (sp)+,d1-d2/d6 rts ; =============== S U B R O U T I N E ======================================= sub_2D8D6: ; CODE XREF: DoLoopE+32p tst.b (byte_FFFF82DD).w bne.w locret_2D976 tst.b (COLUMN_LOCK_KE_COLUMN_LOCK_PRESENT).l ; This calibration enables/disables the Column Lockfunctionality. Currently ONLY Y car should be TRUE. ; Boolean beq.w locret_2D976 tst.b (byte_FFFF82DC).w beq.s loc_2D90E tst.b (byte_FFFF820B).w bne.s loc_2D8FE clr.b (byte_FFFF82DC).w clr.b (byte_FFFF9FB9).w bra.s locret_2D976 ; --------------------------------------------------------------------------- loc_2D8FE: ; CODE XREF: sub_2D8D6+1Cj tst.b (byte_FFFF820C).w beq.s locret_2D976 clr.b (byte_FFFF82DC).w clr.b (byte_FFFF820C).w bra.s locret_2D976 ; --------------------------------------------------------------------------- loc_2D90E: ; CODE XREF: sub_2D8D6+16j tst.b (byte_FFFF820B).w bne.s loc_2D936 moveq #1,d3 move.b d3,(byte_FF82B1).l clr.b (byte_FFFF9FB9).w tst.b (byte_FFFF820D).w bne.s locret_2D976 move.b d3,(byte_FFFF82DC).w move.b #3,(byte_FFFF9FB9).w move.b d3,(byte_FFFF82DD).w bra.s locret_2D976 ; --------------------------------------------------------------------------- loc_2D936: ; CODE XREF: sub_2D8D6+3Cj move.w (COLUMN_LOCK_KE_COLUMN_LOCK_VSS_FUEL_DISABLE).l,d3 ; Vehicle speed at which the fuel must be discontinuedwhen the steering column can not be unlocked. ; MPH cmp.w (word_FFFFAEBC).w,d3 bls.s loc_2D948 cmp.w (word_FFFF90EA).w,d3 bhi.s loc_2D956 loc_2D948: ; CODE XREF: sub_2D8D6+6Aj clr.b (byte_FF82B1).l move.b #1,(byte_FFFF9FB9).w bra.s locret_2D976 ; --------------------------------------------------------------------------- loc_2D956: ; CODE XREF: sub_2D8D6+70j tst.b (byte_FFFF90D1).w beq.s loc_2D96A clr.b (byte_FF82B1).l move.b #2,(byte_FFFF9FB9).w bra.s locret_2D976 ; --------------------------------------------------------------------------- loc_2D96A: ; CODE XREF: sub_2D8D6+84j moveq #1,d3 move.b d3,(byte_FF82B1).l move.b d3,(byte_FFFF9FB9).w locret_2D976: ; CODE XREF: sub_2D8D6+4j sub_2D8D6+Ej ... rts ; End of function sub_2D8D6 ; =============== S U B R O U T I N E ======================================= sub_2D978: ; CODE XREF: OS1:00028A00p andi.w #$FF,d0 movea.l off_8A094(d0.w*4),a2 jmp (a2) ; End of function sub_2D978 ; --------------------------------------------------------------------------- loc_2D986: ; DATA XREF: OS4:0008A09Co tst.b (byte_FFFFB54A).w bne.s loc_2D990 clr.b (byte_FFFF82DC).w loc_2D990: ; CODE XREF: OS1:0002D98Aj tst.b (byte_FFFF8D19).w beq.s loc_2D9A2 move.b #1,(byte_FF82B1).l clr.b (byte_FFFF82DD).w loc_2D9A2: ; CODE XREF: OS1:0002D994j tst.b (byte_FFFF82DC).w beq.s loc_2D9B0 move.b #3,(byte_FFFF9FB9).w bra.s locret_2D9E2 ; --------------------------------------------------------------------------- loc_2D9B0: ; CODE XREF: OS1:0002D9A6j tst.b (byte_FFFF820B).w beq.s locret_2D9E2 move.b #1,(byte_FFFF9FB9).w bra.s locret_2D9E2 ; --------------------------------------------------------------------------- loc_2D9BE: ; DATA XREF: OS4:0008A0A0o tst.b (byte_FFFFB54A).w bne.s loc_2D9C8 clr.b (byte_FFFF82DC).w loc_2D9C8: ; CODE XREF: OS1:0002D9C2j tst.b (byte_FFFF82DC).w beq.s loc_2D9D6 move.b #3,(byte_FFFF9FB9).w bra.s locret_2D9E2 ; --------------------------------------------------------------------------- loc_2D9D6: ; CODE XREF: OS1:0002D9CCj tst.b (byte_FFFF820B).w beq.s locret_2D9E2 move.b #1,(byte_FFFF9FB9).w locret_2D9E2: ; CODE XREF: OS1:0002D9AEj ; OS1:0002D9B4j ... rts ; =============== S U B R O U T I N E ======================================= sub_2D9E4: ; CODE XREF: DoLoopB+1F4p movem.l d0-d1,-(sp) move.b (byte_FFFFAA09).w,d3 moveq #2,d0 cmp.b d3,d0 beq.s loc_2D9FE cmpi.b #3,d3 beq.s loc_2D9FE cmpi.b #4,d3 bne.s loc_2DA04 loc_2D9FE: ; CODE XREF: sub_2D9E4+Cj ; sub_2D9E4+12j jsr sub_2DA2A loc_2DA04: ; CODE XREF: sub_2D9E4+18j jsr sub_62B70 move.b (byte_FFFFAA09).w,d3 cmp.b d3,d0 beq.s loc_2DA1E cmpi.b #3,d3 beq.s loc_2DA1E cmpi.b #4,d3 bne.s loc_2DA24 loc_2DA1E: ; CODE XREF: sub_2D9E4+2Cj ; sub_2D9E4+32j jsr sub_2E27C loc_2DA24: ; CODE XREF: sub_2D9E4+38j movem.l (sp)+,d0-d1 rts ; End of function sub_2D9E4 ; =============== S U B R O U T I N E ======================================= sub_2DA2A: ; CODE XREF: sub_2D9E4:loc_2D9FEp ; sub_2DACE+1Ep movem.l d0-d2,-(sp) move.w (word_FFFFF2C0).w,d1 lsr.w #2,d1 asl.w #8,d1 move.w d1,(word_FFFFA252).w sub.w (word_FFFF8280).w,d1 bcc.s loc_2DA42 clr.w d1 loc_2DA42: ; CODE XREF: sub_2DA2A+14j mulu.w (EGR_KE_EGR_FULL_SCALE_GAIN).l,d1 ; EGR position sensor scaling factor. ; % / Count lsr.l #8,d1 lsr.l #5,d1 cmpi.l #$FFFF,d1 bhi.s loc_2DA5A cmpi.w #$1400,d1 bls.s loc_2DA5E loc_2DA5A: ; CODE XREF: sub_2DA2A+28j move.w #$1400,d1 loc_2DA5E: ; CODE XREF: sub_2DA2A+2Ej move.b (byte_FFFFAA09).w,d3 cmpi.b #2,d3 beq.s loc_2DA74 cmpi.b #3,d3 beq.s loc_2DA74 cmpi.b #4,d3 bne.s loc_2DA7C loc_2DA74: ; CODE XREF: sub_2DA2A+3Cj ; sub_2DA2A+42j move.w (DI_EGRQ_KE_EGR_HS_POSITION_FILTER).l,d0 ; First order filter coefficient for percent pintle opening during EGRF high speed mode. ; Seconds bra.s loc_2DA82 ; --------------------------------------------------------------------------- loc_2DA7C: ; CODE XREF: sub_2DA2A+48j move.w (EGR_KE_EGR_POSITION_FILTER_COEF).l,d0 ; First order lag filter coefficient for percent pintle opening. ; Seconds loc_2DA82: ; CODE XREF: sub_2DA2A+50j move.w (word_FFFFA258).w,d2 jsr sub_26608 move.w d0,d3 cmp.w (EGR_KE_EGR_MIN_NOISE_POSITION).l,d3 ; Below this percent pintle position opening, the EGR valve is considered closed. ; Percent bcc.s loc_2DA9C clr.w (word_FFFFA258).w bra.s loc_2DAA0 ; --------------------------------------------------------------------------- loc_2DA9C: ; CODE XREF: sub_2DA2A+6Aj move.w d3,(word_FFFFA258).w loc_2DAA0: ; CODE XREF: sub_2DA2A+70j movem.l (sp)+,d0-d2 rts ; End of function sub_2DA2A ; =============== S U B R O U T I N E ======================================= sub_2DAA6: ; CODE XREF: OS1:0002E6ECp ; sub_75370+26Ap move.b #1,(byte_FFFF8285).w clr.b (byte_FFFF8284).w movea.w (EGR_KE_EGR_POSITION_CLOSED_MAX).l,a2 ; Maximum allowable value of learned EGR closed position. ; A/D Counts move.w a2,(word_FFFFA248).w move.w a2,(word_FFFF8280).w move.w a2,(word_FFFF8282).w clr.b (byte_FFFF8286).w move.w (GlobalClock).w,(word_FFFFA24A).w rts ; End of function sub_2DAA6 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2DACE: ; CODE XREF: DoLoopC+4Cp var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a1,-(sp) move.b (byte_FFFFAA09).w,d3 moveq #2,d6 cmp.b d3,d6 beq.s loc_2DAF2 cmpi.b #3,d3 beq.s loc_2DAF2 cmpi.b #4,d3 beq.s loc_2DAF2 jsr sub_2DA2A loc_2DAF2: ; CODE XREF: sub_2DACE+10j ; sub_2DACE+16j ... tst.b (byte_FFFF8285).w beq.w loc_2DBBE cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_2DBBE tst.w (word_FFFFA25A).w bne.s loc_2DB66 move.w (word_FFFFA248).w,d2 move.w (word_FFFFA252).w,d3 cmp.w d2,d3 beq.s loc_2DB6C move.w (word_FFFFA24A).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmp.w (EGR_KE_EGR_LEARN_ENABLE_TIME).l,d0 ; Defines the time required to allow the start of offset learning. ; Seconds bcs.s loc_2DB6C move.w (word_FFFFA24A).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmp.w (EGR_KE_EGR_INIT_LEARN_CMPT_TIME).l,d0 bcc.s loc_2DB6C cmp.w (EGR_KE_EGR_POSITION_CLOSED_MAX).l,d3 ; Maximum allowable value of learned EGR closed position. ; A/D Counts bhi.s loc_2DB6C cmp.w (EGR_KE_EGR_POSITION_CLOSED_MIN).l,d3 ; Minimum allowable value of learned EGR closed position. ; A/D Counts bcs.s loc_2DB6C move.b (EGR_KE_EGR_OFFSET_FILTER_COEFF).l,d0 ; First order filter coefficient used to reduce zero linear EGR position offset. ; Seconds move.l d3,d1 jsr sub_265AE move.w d0,(word_FFFFA248).w bra.s loc_2DB6C ; --------------------------------------------------------------------------- loc_2DB66: ; CODE XREF: sub_2DACE+3Aj move.w (GlobalClock).w,(word_FFFFA24A).w loc_2DB6C: ; CODE XREF: sub_2DACE+46j ; sub_2DACE+5Cj ... move.w (word_FFFFA24A).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (EGR_KE_EGR_INIT_LEARN_CMPT_TIME).l,d3 bcs.s loc_2DBBE move.w (word_FFFFA248).w,(word_FFFF8282).w move.w (word_FFFFA248).w,(word_FFFF8280).w move.w (word_FFFFA248).w,(word_FFFFA250).w move.b #1,(byte_FFFF8284).w clr.b (byte_FFFF8285).w clr.w (word_FFFF827E).w clr.b d3 move.w (word_FFFF8282).w,d4 cmp.w (EGR_KE_EGR_INIT_LOW_POSITION).l,d4 ; Minimum allowable value of the initial learned low EGR closed offset. ; A/D Counts bls.s loc_2DBB8 cmp.w (EGR_KE_EGR_INIT_HIGH_POSITION).l,d4 ; Maximum allowable value of the initial learned low EGR closed offset. ; A/D Counts bcs.s loc_2DBBA loc_2DBB8: ; CODE XREF: sub_2DACE+E0j addq.b #1,d3 loc_2DBBA: ; CODE XREF: sub_2DACE+E8j move.b d3,(byte_FFFF8286).w loc_2DBBE: ; CODE XREF: sub_2DACE+28j ; sub_2DACE+32j ... move.w (word_FFFF827E).w,d3 cmp.w (EGR_KE_EGR_OFFSET_IGN_COUNT_MAX).l,d3 ; Initial EGR initial offset is relearned when this ignition cycle counter expires. ; Count bcs.s loc_2DBD0 move.b #1,(byte_FFFF8286).w loc_2DBD0: ; CODE XREF: sub_2DACE+FAj tst.b (byte_FFFFA24E).w beq.s loc_2DBDE addq.w #1,(word_FFFF827E).w clr.b (byte_FFFFA24E).w loc_2DBDE: ; CODE XREF: sub_2DACE+106j tst.b (byte_FFFF8284).w beq.w loc_2DC86 cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_2DC86 tst.w (word_FFFFA25A).w bne.w loc_2DC82 move.w (word_FFFFA24C).w,d3 addq.w #2,d3 bcc.s loc_2DC04 move.w #$FFFF,d3 loc_2DC04: ; CODE XREF: sub_2DACE+130j move.w d3,(word_FFFFA24C).w cmp.w (EGR_KE_EGR_LEARN_ENABLE_TIME).l,d3 ; Defines the time required to allow the start of offset learning. ; Seconds bls.s loc_2DC7A btst #7,(byte_FFFF8D4B).w bne.s loc_2DC7A move.w (word_FFFFA252).w,d0 cmp.w (word_FFFFA250).w,d0 beq.s loc_2DC7A move.w (word_FFFFA252).w,d0 cmp.w (EGR_KE_EGR_POSITION_CLOSED_MAX).l,d0 ; Maximum allowable value of learned EGR closed position. ; A/D Counts bhi.s loc_2DC7A move.w (word_FFFFA252).w,d0 cmp.w (EGR_KE_EGR_POSITION_CLOSED_MIN).l,d0 ; Minimum allowable value of learned EGR closed position. ; A/D Counts bcs.s loc_2DC7A move.w (EGR_KE_EGR_PINTLE_GROWTH_MAX).l,d0 ; Max allowable +/- change in the EGR offset relative to the initial learn position. ; A/D Counts lsr.w #5,d0 clr.l d2 move.w (word_FFFF8282).w,d2 clr.l d3 move.w (word_FFFFA252).w,d3 sub.l d2,d3 bpl.s loc_2DC58 addi.l #$1F,d3 loc_2DC58: ; CODE XREF: sub_2DACE+182j asr.l #5,d3 bge.s loc_2DC5E neg.w d3 loc_2DC5E: ; CODE XREF: sub_2DACE+18Cj cmp.w d0,d3 bhi.s loc_2DC7A move.w (word_FFFFA250).w,d2 move.w (word_FFFFA252).w,d1 move.b (EGR_KE_EGR_OFFSET_FILTER_COEFF).l,d0 ; First order filter coefficient used to reduce zero linear EGR position offset. ; Seconds jsr sub_265AE move.w d0,(word_FFFFA250).w loc_2DC7A: ; CODE XREF: sub_2DACE+140j ; sub_2DACE+148j ... move.w (word_FFFFA250).w,(word_FFFF8280).w bra.s loc_2DC86 ; --------------------------------------------------------------------------- loc_2DC82: ; CODE XREF: sub_2DACE+126j clr.w (word_FFFFA24C).w loc_2DC86: ; CODE XREF: sub_2DACE+114j ; sub_2DACE+11Ej ... moveq #3,d7 cmp.b (ThrottleControlMode2?).w,d7 bne.w loc_2DEB8 move.w (EGR_KE_EGR_OFF_VACUUM_THRESHOLD).l,d3 ; Disables EGR below this calibration and linearly interpolates from KE_EGR_Full_Vacuum_Threshold. ; kPa move.w d3,(word_FFFFA268).w move.w (EGR_KE_EGR_FULL_VACUUM_THRESHOLD).l,d4 ; Enables full EGR above this calibration. ; kPa move.l d4,d5 sub.w d3,d5 move.w d5,(word_FFFFA26A).w tst.w (word_FFFFA254).w bne.s loc_2DD04 tst.w d3 bne.s loc_2DCC8 tst.w d4 bne.s loc_2DCC8 tst.w (EGR_KE_EGR_OFF_VACUUM_HYST_THRES).l ; Hysteresis value which enables EGR from off state. ; kPa bne.s loc_2DCC8 loc_2DCBE: ; CODE XREF: sub_2DACE+244j move.w #$1000,(word_FFFFA266).w bra.w loc_2DD4A ; --------------------------------------------------------------------------- loc_2DCC8: ; CODE XREF: sub_2DACE+1E2j ; sub_2DACE+1E6j ... move.w (EGR_KE_EGR_OFF_VACUUM_HYST_THRES).l,d3 ; Hysteresis value which enables EGR from off state. ; kPa move.w d3,(word_FFFFA26C).w cmp.w (word_FFFFB298).w,d3 bcc.s loc_2DD46 move.w (word_FFFFA26A).w,d4 move.w (word_FFFFB298).w,d3 sub.w (word_FFFFA268).w,d3 ext.l d3 asl.l #8,d3 asl.l #4,d3 divs.w d4,d3 bvc.s loc_2DCF6 loc_2DCEE: ; CODE XREF: sub_2DACE+264j swap d3 eor.w d4,d3 bmi.s loc_2DCFC bra.s loc_2DD40 ; --------------------------------------------------------------------------- loc_2DCF6: ; CODE XREF: sub_2DACE+21Ej cmpi.w #$7FFF,d3 bls.s loc_2DD3A loc_2DCFC: ; CODE XREF: sub_2DACE+224j ; sub_2DACE+26Aj clr.w d3 loc_2DCFE: ; CODE XREF: sub_2DACE+270j ; sub_2DACE+276j move.w d3,(word_FFFFA266).w bra.s loc_2DD4A ; --------------------------------------------------------------------------- loc_2DD04: ; CODE XREF: sub_2DACE+1DEj tst.w d3 bne.s loc_2DD14 tst.w d4 bne.s loc_2DD14 tst.w (EGR_KE_EGR_OFF_VACUUM_HYST_THRES).l ; Hysteresis value which enables EGR from off state. ; kPa beq.s loc_2DCBE loc_2DD14: ; CODE XREF: sub_2DACE+238j ; sub_2DACE+23Cj move.w d3,(word_FFFFA26C).w cmp.w (word_FFFFB298).w,d3 bcc.s loc_2DD46 move.w (word_FFFFA26A).w,d4 move.w (word_FFFFB298).w,d3 sub.w (word_FFFFA268).w,d3 ext.l d3 asl.l #8,d3 asl.l #4,d3 divs.w d4,d3 bvs.s loc_2DCEE cmpi.w #$7FFF,d3 bhi.s loc_2DCFC loc_2DD3A: ; CODE XREF: sub_2DACE+22Cj cmpi.w #$1000,d3 bls.s loc_2DCFE loc_2DD40: ; CODE XREF: sub_2DACE+226j move.w #$1000,d3 bra.s loc_2DCFE ; --------------------------------------------------------------------------- loc_2DD46: ; CODE XREF: sub_2DACE+208j ; sub_2DACE+24Ej clr.w (word_FFFFA266).w loc_2DD4A: ; CODE XREF: sub_2DACE+1F6j ; sub_2DACE+234j tst.b (byte_FFFFA24F).w beq.s loc_2DDB0 move.w (word_FFFFAB66).w,d3 movea.w (word_FFFFAB54).w,a2 sub.w a2,d3 tst.w d3 bge.s loc_2DD88 clr.w d4 cmpi.w #$FA00,d3 bge.s loc_2DD6A move.l d4,d3 bra.s loc_2DD7A ; --------------------------------------------------------------------------- loc_2DD6A: ; CODE XREF: sub_2DACE+296j tst.w d3 bge.s loc_2DD76 addi.w #$600,d3 add.w d3,d3 bra.s loc_2DD7A ; --------------------------------------------------------------------------- loc_2DD76: ; CODE XREF: sub_2DACE+29Ej move.w #$C00,d3 loc_2DD7A: ; CODE XREF: sub_2DACE+29Aj ; sub_2DACE+2A6j tblu.w (EGR_KV_THROTTLE_POSITION_MULTIPLIER).l,d3 ; Decreasing delta throttle position multiplier modifying desired EGR position. ; Multiplier move.w d3,(word_FFFFA274).w bra.s loc_2DD8E ; --------------------------------------------------------------------------- loc_2DD88: ; CODE XREF: sub_2DACE+28Ej move.w #$1000,(word_FFFFA274).w loc_2DD8E: ; CODE XREF: sub_2DACE+2B8j move.w (word_FFFFA26E).w,d3 mulu.w (word_FFFFA274).w,d3 lsr.l #8,d3 lsr.l #4,d3 move.w d3,(word_FFFFA262).w move.w (word_FFFFA270).w,d3 mulu.w (word_FFFFA274).w,d3 lsr.l #8,d3 lsr.l #4,d3 move.w d3,(word_FFFFA260).w bra.s loc_2DDB8 ; --------------------------------------------------------------------------- loc_2DDB0: ; CODE XREF: sub_2DACE+280j clr.w (word_FFFFA262).w clr.w (word_FFFFA260).w loc_2DDB8: ; CODE XREF: sub_2DACE+2E0j tst.b (byte_FFFFA24F).w beq.s loc_2DE3A move.w (MaybeLoad).w,d1 lsr.w #1,d1 move.w (EngineRPM_PID_000C___).w,d0 cmpi.w #$6000,d0 bcc.s loc_2DDD2 lsr.w #3,d0 bra.s loc_2DDD6 ; --------------------------------------------------------------------------- loc_2DDD2: ; CODE XREF: sub_2DACE+2FEj move.w #$C00,d0 loc_2DDD6: ; CODE XREF: sub_2DACE+302j move.l #$148,d3 cmp.w d1,d3 bls.s loc_2DDE4 clr.w d1 bra.s loc_2DE0A ; --------------------------------------------------------------------------- loc_2DDE4: ; CODE XREF: sub_2DACE+310j cmpi.w #$1333,d1 bcc.s loc_2DE06 andi.l #$FFFF,d1 sub.l d3,d1 asl.l #8,d1 asl.l #4,d1 bmi.s loc_2DE02 divu.l #$A3D,d1 bra.s loc_2DE0A ; --------------------------------------------------------------------------- loc_2DE02: ; CODE XREF: sub_2DACE+328j clr.l d1 bra.s loc_2DE0A ; --------------------------------------------------------------------------- loc_2DE06: ; CODE XREF: sub_2DACE+31Aj move.w #$1C00,d1 loc_2DE0A: ; CODE XREF: sub_2DACE+314j ; sub_2DACE+332j ... moveq #$D,d2 movea.l #$9518,a0 jsr sub_2696E move.w d0,d3 mulu.w (word_FFFFA266).w,d3 lsr.l #8,d3 lsr.l #4,d3 mulu.w (word_FFFFA260).w,d3 lsr.l #8,d3 lsr.l #4,d3 cmpi.w #$1400,d3 bls.s loc_2DE34 move.w #$1400,d3 loc_2DE34: ; CODE XREF: sub_2DACE+360j move.w d3,(word_FFFFA276).w bra.s loc_2DE3E ; --------------------------------------------------------------------------- loc_2DE3A: ; CODE XREF: sub_2DACE+2EEj clr.w (word_FFFFA276).w loc_2DE3E: ; CODE XREF: sub_2DACE+36Aj move.w (word_FFFFA256).w,d2 move.w (word_FFFFA276).w,d1 cmp.w d2,d1 bls.s loc_2DE8E move.w (word_FFFFAEBE).w,d3 cmp.w (EGR_KE_EGR_VEHICLE_SPEED_THRESHOLD).l,d3 ; Increasing desired EGR position filter coefficient MPH threshold. ; MPH bls.s loc_2DE72 move.w (word_FFFFA0DC).w,d3 cmpi.w #$2000,d3 bcc.s loc_2DE64 lsr.w #3,d3 bra.s loc_2DE68 ; --------------------------------------------------------------------------- loc_2DE64: ; CODE XREF: sub_2DACE+390j move.w #$400,d3 loc_2DE68: ; CODE XREF: sub_2DACE+394j tblu.w (EGR_KV_HIGH_VEHICLE_SPEED_COEFFICIEN).l,d3 ; Lag filter coefficient used only on increasing desired EGR position above KE_Vehicle_Speed_Threshold. ; Coeff. bra.s loc_2DEA8 ; --------------------------------------------------------------------------- loc_2DE72: ; CODE XREF: sub_2DACE+386j move.w (word_FFFFA0DC).w,d3 cmpi.w #$2000,d3 bcc.s loc_2DE80 lsr.w #3,d3 bra.s loc_2DE84 ; --------------------------------------------------------------------------- loc_2DE80: ; CODE XREF: sub_2DACE+3ACj move.w #$400,d3 loc_2DE84: ; CODE XREF: sub_2DACE+3B0j tblu.w (EGR_KV_LOW_VEHICLE_SPEED_COEFFICIENT).l,d3 ; Lag filter coefficient used only on increasing desired EGR position below KE_Vehicle_Speed_Threshold. ; Coeff. bra.s loc_2DEA8 ; --------------------------------------------------------------------------- loc_2DE8E: ; CODE XREF: sub_2DACE+37Aj move.w (word_FFFFA0DC).w,d3 cmpi.w #$2000,d3 bcc.s loc_2DE9C lsr.w #3,d3 bra.s loc_2DEA0 ; --------------------------------------------------------------------------- loc_2DE9C: ; CODE XREF: sub_2DACE+3C8j move.w #$400,d3 loc_2DEA0: ; CODE XREF: sub_2DACE+3CCj tblu.w (EGR_KV_EGR_VEHICLE_SPEED_COEFFICIENT).l,d3 ; Lag filter coefficient used only on decreasing desired EGR position. ; Coeff. loc_2DEA8: ; CODE XREF: sub_2DACE+3A2j ; sub_2DACE+3BEj move.w d3,(word_FFFFA27A).w move.w d3,d0 jsr sub_26608 move.w d0,(word_FFFFA256).w loc_2DEB8: ; CODE XREF: sub_2DACE+1BEj move.b (byte_FFFFAA09).w,d3 cmp.b d3,d6 beq.s loc_2DED0 cmp.b d3,d7 beq.s loc_2DED0 cmpi.b #4,d3 beq.s loc_2DED0 jsr sub_2E27C loc_2DED0: ; CODE XREF: sub_2DACE+3F0j ; sub_2DACE+3F4j ... movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_2DACE ; =============== S U B R O U T I N E ======================================= sub_2DED8: ; CODE XREF: DoLoopF+2E4p movem.l d0-d1,-(sp) tst.b (byte_FFFFA3B5).w beq.s loc_2DF0A tst.b (byte_FFFFA29F).w beq.s loc_2DEF6 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (EGR_KE_EGR_TCC_RPM_HIGH_HYST).l,d3 ; If Engine Speed is above this threshold, disable the TCC multiplier (Torque Converter Multiplier <- 1.0 ). ; RPM bcs.s loc_2DF0E bra.s loc_2DF0A ; --------------------------------------------------------------------------- loc_2DEF6: ; CODE XREF: sub_2DED8+Ej move.w (EngineRPM_PID_000C___).w,d3 cmp.w (EGR_KE_EGR_TCC_RPM_LOW_HYST).l,d3 ; If Engine Speed is below this threshold, enable the TCC multiplier using KV_Torque_Converter_Multiplier. ; RPM bcc.s loc_2DF0E move.b #1,(byte_FFFFA29F).w bra.s loc_2DF0E ; --------------------------------------------------------------------------- loc_2DF0A: ; CODE XREF: sub_2DED8+8j ; sub_2DED8+1Cj clr.b (byte_FFFFA29F).w loc_2DF0E: ; CODE XREF: sub_2DED8+1Aj ; sub_2DED8+28j ... tst.b (byte_FFFFA29F).w beq.s loc_2DF46 move.w (word_FFFFB298).w,d3 cmpi.w #$1200,d3 bcc.s loc_2DF28 moveq #5,d1 mulu.w d1,d3 divu.w #6,d3 bra.s loc_2DF2C ; --------------------------------------------------------------------------- loc_2DF28: ; CODE XREF: sub_2DED8+44j move.w #$F00,d3 loc_2DF2C: ; CODE XREF: sub_2DED8+4Ej movea.l #$94E6,a2 tblu.w (a2),d3 cmpi.w #$1000,d3 bls.s loc_2DF40 move.w #$1000,d3 loc_2DF40: ; CODE XREF: sub_2DED8+62j move.w d3,(word_FFFFA272).w bra.s loc_2DF4C ; --------------------------------------------------------------------------- loc_2DF46: ; CODE XREF: sub_2DED8+3Aj move.w #$1000,(word_FFFFA272).w loc_2DF4C: ; CODE XREF: sub_2DED8+6Cj move.w (CoolantTemperatureOrDefault).w,d3 clr.w d4 cmpi.w #$FF00,d3 bge.s loc_2DF5C move.l d4,d3 bra.s loc_2DF74 ; --------------------------------------------------------------------------- loc_2DF5C: ; CODE XREF: sub_2DED8+7Ej cmpi.w #$B9A,d3 bge.s loc_2DF70 addi.w #$100,d3 muls.w #5,d3 divs.w #3,d3 bra.s loc_2DF74 ; --------------------------------------------------------------------------- loc_2DF70: ; CODE XREF: sub_2DED8+88j move.w #$1500,d3 loc_2DF74: ; CODE XREF: sub_2DED8+82j ; sub_2DED8+96j tblu.w (EGR_KV_COOLANT_TEMPERATURE_MULTIPLIE).l,d3 ; Coolant terperature multiplier modifying desired EGR position. ; Multiplier mulu.w (word_FFFFA272).w,d3 lsr.l #8,d3 lsr.l #4,d3 move.w (word_FFFFA1EE).w,d5 move.w #$3A4,d1 cmp.w d5,d1 bls.s loc_2DF94 move.l d4,d5 bra.s loc_2DFB4 ; --------------------------------------------------------------------------- loc_2DF94: ; CODE XREF: sub_2DED8+B6j cmpi.w #$594,d5 bcc.s loc_2DFB0 sub.w d1,d5 ext.l d5 asl.l #8,d5 bmi.s loc_2DFAC divu.l #$1F,d5 bra.s loc_2DFB4 ; --------------------------------------------------------------------------- loc_2DFAC: ; CODE XREF: sub_2DED8+C8j clr.l d5 bra.s loc_2DFB4 ; --------------------------------------------------------------------------- loc_2DFB0: ; CODE XREF: sub_2DED8+C0j move.w #$1000,d5 loc_2DFB4: ; CODE XREF: sub_2DED8+BAj ; sub_2DED8+D2j ... tblu.w (EGR_KV_EQUIVALENCE_RATIO_MULTIPLIER).l,d5 ; Equivalence ratio multiplier modifying desired EGR position. ; Multiplier mulu.w d5,d3 lsr.l #8,d3 lsr.l #4,d3 move.w (word_FFFF82D2).w,d0 cmpi.w #$D00,d0 bcc.s loc_2DFD0 move.l d4,d0 bra.s loc_2DFD4 ; --------------------------------------------------------------------------- loc_2DFD0: ; CODE XREF: sub_2DED8+F2j subi.w #$D00,d0 loc_2DFD4: ; CODE XREF: sub_2DED8+F6j movea.l #$9506,a2 tblu.w (a2),d0 move.l d3,d4 mulu.w d0,d4 divu.w #$1000,d4 bvs.s loc_2DFEE cmpi.w #$8000,d4 bls.s loc_2DFF2 loc_2DFEE: ; CODE XREF: sub_2DED8+10Ej move.w #$8000,d4 loc_2DFF2: ; CODE XREF: sub_2DED8+114j move.w d4,(word_FFFFA270).w cmpi.w #$1000,d0 bls.s loc_2E000 move.w #$1000,d0 loc_2E000: ; CODE XREF: sub_2DED8+122j mulu.w d0,d3 lsr.l #8,d3 lsr.l #4,d3 move.w d3,(word_FFFFA26E).w movem.l (sp)+,d0-d1 rts ; End of function sub_2DED8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2E010: ; CODE XREF: DoLoopF+2DEp var_2 = -2 link a6,#-2 move.l d0,-(sp) cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_2E212 tst.b (byte_FFFFA280).w beq.s loc_2E02E move.w (EGR_KE_THROTTLE_POSITION_DISABLE_THR).l,d3 ; TPS threshold below which EGR is disabled when enabled. ; Percent bra.s loc_2E034 ; --------------------------------------------------------------------------- loc_2E02E: ; CODE XREF: sub_2E010+14j move.w (EGR_KE_THROTTLE_POSITION_ENABLE_THRE).l,d3 ; TPS threshold above which EGR is enabled when disabled. ; Percent loc_2E034: ; CODE XREF: sub_2E010+1Cj cmp.w (word_FFFFAB66).w,d3 sls d4 neg.b d4 move.b d4,(byte_FFFFA280).w tst.b (byte_FFFFA281).w beq.s loc_2E04E move.w (EGR_KE_VEHICLE_SPEED_DISABLE_THRESHO).l,d3 ; MPH threshold below which EGR is disabled when enabled. ; MPH bra.s loc_2E054 ; --------------------------------------------------------------------------- loc_2E04E: ; CODE XREF: sub_2E010+34j move.w (EGR_KE_VEHICLE_SPEED_ENABLE_THRESHOL).l,d3 ; MPH threshold above which EGR is enabled when disabled. ; MPH loc_2E054: ; CODE XREF: sub_2E010+3Cj cmp.w (word_FFFFAEBE).w,d3 sls d3 neg.b d3 move.b d3,(byte_FFFFA281).w and.b d3,d4 move.b d4,(byte_FFFFA282).w move.w (word_FFFFADB4).w,d0 cmp.w (EGR_KE_EGR_PWRUP_COOLANT_DELAY_THRES).l,d0 ble.s loc_2E07A loc_2E072: ; CODE XREF: sub_2E010+8Cj moveq #1,d5 move.b d5,(byte_FFFFA283).w bra.s loc_2E0A8 ; --------------------------------------------------------------------------- loc_2E07A: ; CODE XREF: sub_2E010+60j move.w (CoolantTemperatureOrDefault).w,d0 cmp.w (EGR_KE_EGR_COOLANT_ENABLE_THRESHOLD).l,d0 blt.s loc_2E09E move.w (word_FFFFA28E).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmp.w (EGR_KE_EGR_ENABLE_COOLANT_TIME).l,d0 ; Time after coolant temperatures requirements have been met before enabling EGR. ; Seconds bcs.s loc_2E0A8 bra.s loc_2E072 ; --------------------------------------------------------------------------- loc_2E09E: ; CODE XREF: sub_2E010+74j clr.b (byte_FFFFA283).w move.w (GlobalClock).w,(word_FFFFA28E).w loc_2E0A8: ; CODE XREF: sub_2E010+68j ; sub_2E010+8Aj tst.b (byte_FFFFA284).w beq.s loc_2E0BC move.w (EGR_KE_LOWER_IAT_DISABLE_THRESHOLD).l,d0 ; Lower IAT threshold below which EGR is disabled when enabled. ; Degrees C move.w (EGR_KE_EGR_HIGH_AIRFLOW_THRESHOLD).l,d4 ; High Mass Airflow threshold which EGR is disabled. ; Grams/Sec. bra.s loc_2E0C8 ; --------------------------------------------------------------------------- loc_2E0BC: ; CODE XREF: sub_2E010+9Cj move.w (EGR_KE_LOWER_IAT_ENABLE_THRESHOLD).l,d0 ; Lower IAT threshold above which EGR is enabled when disabled. ; Degrees C move.w (EGR_KE_EGR_LOW_AIRFLOW_THRESHOLD).l,d4 ; Low Mass Airflow threshold which EGR is disabled. ; Grams/Sec. loc_2E0C8: ; CODE XREF: sub_2E010+AAj move.w (word_FFFFB3E8).w,d3 cmp.w d0,d3 blt.s loc_2E0D8 loc_2E0D0: ; CODE XREF: sub_2E010+D4j moveq #1,d4 move.b d4,(byte_FFFFA284).w bra.s loc_2E0EA ; --------------------------------------------------------------------------- loc_2E0D8: ; CODE XREF: sub_2E010+BEj cmp.w (EGR_KE_LOWER_IAT_ENABLE_THRESHOLD).l,d3 ; Lower IAT threshold above which EGR is enabled when disabled. ; Degrees C bgt.s loc_2E0E6 cmp.w (word_FFFFA0DC).w,d4 bcc.s loc_2E0D0 loc_2E0E6: ; CODE XREF: sub_2E010+CEj clr.b (byte_FFFFA284).w loc_2E0EA: ; CODE XREF: sub_2E010+C6j tst.b (byte_FFFFA285).w beq.s loc_2E0F8 move.w (EGR_KE_LOWER_MAP_DISABLE_THRESHOLD).l,d3 ; Lower MAP threshold below which EGR is disabled when enabled. ; kPa bra.s loc_2E0FE ; --------------------------------------------------------------------------- loc_2E0F8: ; CODE XREF: sub_2E010+DEj move.w (EGR_KE_EGR_LOW_AIRFLOW_THRESHOLD+2).l,d3 ; Low Mass Airflow threshold which EGR is disabled. ; Grams/Sec. loc_2E0FE: ; CODE XREF: sub_2E010+E6j cmp.w (word_FFFFB292).w,d3 bhi.s loc_2E10C move.b #1,(byte_FFFFA285).w bra.s loc_2E110 ; --------------------------------------------------------------------------- loc_2E10C: ; CODE XREF: sub_2E010+F2j clr.b (byte_FFFFA285).w loc_2E110: ; CODE XREF: sub_2E010+FAj tst.b (byte_FFFFA286).w beq.s loc_2E120 move.w (EGR_KE_UPPER_TPS_DISABLE_THRESHOLD).l,(word_FFFFA278).w ; Upper TPS threshold above which EGR is disabled when enabled. ; Percent bra.s loc_2E128 ; --------------------------------------------------------------------------- loc_2E120: ; CODE XREF: sub_2E010+104j move.w (EGR_KE_UPPER_TPS_ENABLE_THRESHOLD).l,(word_FFFFA278).w ; Upper TPS threshold below which EGR is enabled when disabled. ; Percent loc_2E128: ; CODE XREF: sub_2E010+10Ej move.w (word_FFFFAB66).w,d3 cmp.w (word_FFFFA278).w,d3 bhi.s loc_2E13A move.b #1,(byte_FFFFA286).w bra.s loc_2E13E ; --------------------------------------------------------------------------- loc_2E13A: ; CODE XREF: sub_2E010+120j clr.b (byte_FFFFA286).w loc_2E13E: ; CODE XREF: sub_2E010+128j btst #1,(byte_FFFF88C8).w bne.s loc_2E1AE btst #1,(byte_FFFF88CA).w bne.s loc_2E1AE btst #1,(byte_FFFF88CE).w bne.s loc_2E1AE btst #1,(byte_FFFF88D0).w bne.s loc_2E1AE btst #1,(byte_FFFF88E2).w bne.s loc_2E1AE btst #1,(byte_FFFF88E4).w bne.s loc_2E1AE btst #1,(byte_FFFF8934).w bne.s loc_2E1AE btst #1,(byte_FFFF8A9E).w bne.s loc_2E1AE btst #1,(byte_FFFF8998).w bne.s loc_2E1AE btst #1,(byte_FFFF899A).w bne.s loc_2E1AE btst #1,(byte_FFFF899C).w bne.s loc_2E1AE btst #6,(byte_FFFF8964).w bne.s loc_2E1AE btst #6,(byte_FFFF8966).w bne.s loc_2E1AE move.b #1,(byte_FFFFA287).w bra.s loc_2E1B2 ; --------------------------------------------------------------------------- loc_2E1AE: ; CODE XREF: sub_2E010+134j ; sub_2E010+13Cj ... clr.b (byte_FFFFA287).w loc_2E1B2: ; CODE XREF: sub_2E010+19Cj tst.b (byte_FFFFA289).w bne.s loc_2E1CC btst #5,(byte_FFFFAD8B).w beq.s loc_2E1CC move.w (GlobalClock).w,(word_FFFFA28C).w move.b #1,(byte_FFFFA28A).w loc_2E1CC: ; CODE XREF: sub_2E010+1A6j ; sub_2E010+1AEj btst #5,(byte_FFFFAD8B).w sne d3 neg.b d3 move.b d3,(byte_FFFFA289).w tst.b (byte_FFFFA28A).w beq.s loc_2E1FA move.w (word_FFFFA28C).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (EGR_KE_CLUTCH_TRANSITION_TIMER_THRES).l,d3 ; EGR disable time after air conditioner clutch engagement. ; Seconds bcs.s loc_2E1FA clr.b (byte_FFFFA28A).w loc_2E1FA: ; CODE XREF: sub_2E010+1CEj ; sub_2E010+1E4j tst.b (byte_FFFFA24F).w bne.s loc_2E20C tst.b (byte_FFFFA28A).w beq.s loc_2E20C clr.b (byte_FFFFA288).w bra.s loc_2E212 ; --------------------------------------------------------------------------- loc_2E20C: ; CODE XREF: sub_2E010+1EEj ; sub_2E010+1F4j move.b #1,(byte_FFFFA288).w loc_2E212: ; CODE XREF: sub_2E010+Cj ; sub_2E010+1FAj tst.b (byte_FFFFA3B7).w beq.s loc_2E272 cmpi.b #5,(byte_FFFFA3AF).w bcc.s loc_2E272 cmpi.b #4,(byte_FFFFA3AF).w beq.s loc_2E272 tst.b (byte_FFFFA282).w beq.s loc_2E272 tst.b (byte_FFFFA283).w beq.s loc_2E272 tst.b (byte_FFFFA284).w beq.s loc_2E272 tst.b (byte_FFFFA285).w beq.s loc_2E272 tst.b (byte_FFFFA286).w beq.s loc_2E272 tst.b (byte_FFFFA287).w beq.s loc_2E272 tst.b (byte_FFFFA288).w beq.s loc_2E272 tst.b (byte_FFFFA93B).w bne.s loc_2E272 tst.b (byte_FFFFABDA).w bne.s loc_2E272 tst.b (byte_FFFFB4A4).w bne.s loc_2E272 tst.b (byte_FFFF8284).w beq.s loc_2E272 move.b #1,(byte_FFFFA24F).w bra.s loc_2E276 ; --------------------------------------------------------------------------- loc_2E272: ; CODE XREF: sub_2E010+206j ; sub_2E010+20Ej ... clr.b (byte_FFFFA24F).w loc_2E276: ; CODE XREF: sub_2E010+260j move.l (sp)+,d0 unlk a6 rts ; End of function sub_2E010 ; =============== S U B R O U T I N E ======================================= sub_2E27C: ; CODE XREF: sub_2D9E4:loc_2DA1Ep ; sub_2DACE+3FCp movem.l d0-d2/d6-d7,-(sp) move.w (word_FFFFA256).w,d0 jsr sub_2F316 tst.b (byte_FFFFA246).w bne.s loc_2E29E cmp.w (EGR_KE_DESIRED_EGR_POSITION_MINIMUM).l,d0 ; If desired EGR position is less than this calibration, desired EGR position is set to 0.0. ; Percent bcc.s loc_2E29E clr.w (word_FFFFA254).w bra.s loc_2E2A2 ; --------------------------------------------------------------------------- loc_2E29E: ; CODE XREF: sub_2E27C+12j ; sub_2E27C+1Aj move.w d0,(word_FFFFA254).w loc_2E2A2: ; CODE XREF: sub_2E27C+20j cmpi.b #3,(byte_FFFFA246).w bne.s loc_2E2B4 move.w (word_FFFFAE9E).w,(word_FFFFA25A).w bra.w loc_2E420 ; --------------------------------------------------------------------------- loc_2E2B4: ; CODE XREF: sub_2E27C+2Cj move.b (byte_FFFFA29E).w,d3 beq.s loc_2E2C0 clr.w (word_FFFFA25E).w bra.s loc_2E2CC ; --------------------------------------------------------------------------- loc_2E2C0: ; CODE XREF: sub_2E27C+3Cj move.w (word_FFFFA254).w,d2 sub.w (word_FFFFA258).w,d2 move.w d2,(word_FFFFA25E).w loc_2E2CC: ; CODE XREF: sub_2E27C+42j tst.w (word_FFFFA254).w bne.s loc_2E2E2 clr.w (word_FFFFA25C).w clr.w (word_FFFFA25A).w clr.w (word_FFFFA290).w bra.w loc_2E420 ; --------------------------------------------------------------------------- loc_2E2E2: ; CODE XREF: sub_2E27C+54j tst.b d3 beq.s loc_2E2F0 move.w #$1400,(word_FFFFA25A).w bra.w loc_2E420 ; --------------------------------------------------------------------------- loc_2E2F0: ; CODE XREF: sub_2E27C+68j move.w (word_FFFFA25C).w,d3 bne.s loc_2E338 clr.l d3 move.w (word_FFFFA254).w,d3 moveq #5,d6 divu.w d6,d3 tblu.w (EGR_KV_INITIAL_DUTY_CYCLE).l,d3 ; The nominal duty cycle required to move the EGR valve from the closed position to the desired position. ; Percent move.w (word_FFFFB298).w,d5 cmpi.w #$1200,d5 bcc.s loc_2E31A mulu.w d6,d5 moveq #6,d1 divu.w d1,d5 bra.s loc_2E31E ; --------------------------------------------------------------------------- loc_2E31A: ; CODE XREF: sub_2E27C+94j move.w #$F00,d5 loc_2E31E: ; CODE XREF: sub_2E27C+9Cj movea.l #$9834,a2 tblu.w (a2),d5 mulu.w d5,d3 lsr.l #8,d3 lsr.l #4,d3 cmpi.w #$1400,d3 bls.s loc_2E338 move.w #$1400,d3 loc_2E338: ; CODE XREF: sub_2E27C+78j ; sub_2E27C+B6j move.w (word_FFFFA25E).w,d4 bge.s loc_2E340 neg.w d4 loc_2E340: ; CODE XREF: sub_2E27C+C0j lsr.w #1,d4 tblu.w (EGR_KV_POSITION_INTEGRAL_GAIN).l,d4 ; Gain applied to the position error term to calculate the integral correction. ; Multiplier move.w (word_FFFFB298).w,d5 clr.w d0 move.w #$1200,d6 cmp.w d5,d6 bls.s loc_2E362 moveq #5,d7 mulu.w d7,d5 moveq #6,d1 divu.w d1,d5 bra.s loc_2E366 ; --------------------------------------------------------------------------- loc_2E362: ; CODE XREF: sub_2E27C+DAj move.w #$F00,d5 loc_2E366: ; CODE XREF: sub_2E27C+E4j movea.l #$986A,a2 tblu.w (a2),d5 mulu.w d5,d4 lsr.l #8,d4 lsr.l #4,d4 muls.w (word_FFFFA25E).w,d4 bpl.s loc_2E382 addi.l #$FFF,d4 loc_2E382: ; CODE XREF: sub_2E27C+FEj asr.l #8,d4 asr.l #4,d4 move.w d4,(word_FFFFA27C).w add.w (word_FFFFA27C).w,d3 bvc.s loc_2E394 bmi.s loc_2E3A0 bra.s loc_2E3A6 ; --------------------------------------------------------------------------- loc_2E394: ; CODE XREF: sub_2E27C+112j cmpi.w #$7FFF,d3 bhi.s loc_2E3A6 cmpi.w #$1400,d3 bls.s loc_2E3A8 loc_2E3A0: ; CODE XREF: sub_2E27C+114j move.w #$1400,d3 bra.s loc_2E3A8 ; --------------------------------------------------------------------------- loc_2E3A6: ; CODE XREF: sub_2E27C+116j ; sub_2E27C+11Cj move.l d0,d3 loc_2E3A8: ; CODE XREF: sub_2E27C+122j ; sub_2E27C+128j move.w d3,(word_FFFFA25C).w move.w (word_FFFFA25E).w,d3 bge.s loc_2E3B4 neg.w d3 loc_2E3B4: ; CODE XREF: sub_2E27C+134j move.l d0,d4 lsr.w #1,d3 tblu.w (EGR_KV_POSITION_PROPORTIONAL_GAIN).l,d3 ; Gain applied to the position error term to calculate the proportional correction. ; Multiplier move.w (word_FFFFB298).w,d5 cmp.w d5,d6 bls.s loc_2E3D2 mulu.w #5,d5 divu.w #6,d5 bra.s loc_2E3D6 ; --------------------------------------------------------------------------- loc_2E3D2: ; CODE XREF: sub_2E27C+14Aj move.w #$F00,d5 loc_2E3D6: ; CODE XREF: sub_2E27C+154j movea.l #$98A0,a2 tblu.w (a2),d5 mulu.w d5,d3 lsr.l #8,d3 lsr.l #4,d3 muls.w (word_FFFFA25E).w,d3 bpl.s loc_2E3F2 addi.l #$FFF,d3 loc_2E3F2: ; CODE XREF: sub_2E27C+16Ej asr.l #8,d3 asr.l #4,d3 move.w d3,(word_FFFFA290).w move.w (word_FFFFA25C).w,d3 add.w (word_FFFFA290).w,d3 bvc.s loc_2E408 bmi.s loc_2E414 bra.s loc_2E41A ; --------------------------------------------------------------------------- loc_2E408: ; CODE XREF: sub_2E27C+186j cmpi.w #$7FFF,d3 bhi.s loc_2E41A cmpi.w #$1400,d3 bls.s loc_2E41C loc_2E414: ; CODE XREF: sub_2E27C+188j move.w #$1400,d3 bra.s loc_2E41C ; --------------------------------------------------------------------------- loc_2E41A: ; CODE XREF: sub_2E27C+18Aj ; sub_2E27C+190j move.l d4,d3 loc_2E41C: ; CODE XREF: sub_2E27C+196j ; sub_2E27C+19Cj move.w d3,(word_FFFFA25A).w loc_2E420: ; CODE XREF: sub_2E27C+34j ; sub_2E27C+62j ... move.w (word_FFFFA25A).w,d2 move.l #$1F9,d1 moveq #$16,d0 jsr (sub_16FA).l movem.l (sp)+,d0-d2/d6-d7 rts ; End of function sub_2E27C ; =============== S U B R O U T I N E ======================================= sub_2E438: ; CODE XREF: DoLoopF+2EAp movem.l d0-d2,-(sp) clr.b (byte_FFFFA264).w cmpi.b #3,(byte_FFFFA246).w beq.w loc_2E604 move.w (EGR_KE_EGR_STROKE_TIME_DELAY).l,d2 ; Minimum amount of time the EGR valve is commanded opento max position to be considered an EGR stroke event. ; Seconds cmp.w (word_FFFFA296).w,d2 bls.s loc_2E46C movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA296).w,d3 add.w $A(a2),d3 bcc.s loc_2E468 move.w #$FFFF,d3 loc_2E468: ; CODE XREF: sub_2E438+2Aj move.w d3,(word_FFFFA296).w loc_2E46C: ; CODE XREF: sub_2E438+1Cj move.w (DI_LEGR_KE_EGRP_STROKE_TIME_DELAY).l,d1 cmp.w (word_FFFFA27E).w,d1 bls.s loc_2E48E movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA27E).w,d3 add.w $A(a2),d3 bcc.s loc_2E48A move.w #$FFFF,d3 loc_2E48A: ; CODE XREF: sub_2E438+4Cj move.w d3,(word_FFFFA27E).w loc_2E48E: ; CODE XREF: sub_2E438+3Ej move.l (dword_FFFFA298).w,d3 cmp.l (EGR_KE_EGR_STROKE_RESET_TIME_PERIOD).l,d3 ; EGR Multi Stroke is re-enabled this often. ; Seconds bcc.s loc_2E4BC movea.l (dword_FFFFB5DE).w,a2 clr.l d3 move.w $A(a2),d3 add.l (dword_FFFFA298).w,d3 cmpi.l #$7FFFFFFF,d3 bls.s loc_2E4B6 move.l #$7FFFFFFF,d3 loc_2E4B6: ; CODE XREF: sub_2E438+76j move.l d3,(dword_FFFFA298).w bra.s loc_2E4C4 ; --------------------------------------------------------------------------- loc_2E4BC: ; CODE XREF: sub_2E438+60j clr.l (dword_FFFFA298).w clr.b (byte_FFFFA29D).w loc_2E4C4: ; CODE XREF: sub_2E438+82j tst.b (EGR_KE_EGR_MULTI_STROKE_ENABLED).l ; Set this calibration TRUE to enable EGR Multi Stroke. ; TRUE/FALSE beq.w loc_2E5EA jsr sub_2F2FE tst.b d0 bne.w loc_2E5EA move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (EGR_KE_EGR_STRK_LOW_COOLANT_TEMP).l,d3 ; Disable EGR Multi Stroke when coolant is colder than this. ; Degrees C blt.w loc_2E5EA move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (EGR_KE_EGR_STRK_HIGH_COOLANT_TEMP).l,d3 ; Disable EGR Multi Stroke when coolant is warmer than this. ; Degrees C bgt.w loc_2E5EA cmpi.b #2,(byte_FFFFA247).w beq.w loc_2E5EA move.w (word_FFFFA254).w,d3 cmp.w (EGR_KE_EGR_STRK_LOW_EGR_POSITION).l,d3 ; Disable EGR Multi Stroke when Desired EGR is less than this. ; Percent bcs.s loc_2E51E cmp.w (word_FFFFA296).w,d2 bhi.s loc_2E51E move.b (byte_FFFFA29D).w,d4 cmp.b (EGR_KE_EGR_STROKE_COUNTER_LMT).l,d4 ; Disable EGR Multi Stroke after this many strokes in normallentgh ignition cycle. ; Strokes bcs.s loc_2E548 loc_2E51E: ; CODE XREF: sub_2E438+D2j ; sub_2E438+D8j cmpi.b #1,(byte_FFFFA247).w bne.w loc_2E5EA cmp.w (DI_LEGR_KE_EGRP_STRK_LOW_EGR_POSITION).l,d3 ; EGR desired must be greater than or equal to this in order to enable EGR stroking for pintle diagnostics. ; Percent bcs.w loc_2E5EA move.b (byte_FFFFA29C).w,d3 cmp.b (DI_LEGR_KE_EGRP_STROKE_COUNTER_LMT).l,d3 ; Maximum amount of successful stroking events which will be allowed for one stroking set. ; Strokes bcc.w loc_2E5EA cmp.w (word_FFFFA27E).w,d1 bhi.w loc_2E5EA loc_2E548: ; CODE XREF: sub_2E438+E4j move.w (word_FFFFA294).w,d3 cmp.w (EGR_KE_EGR_STROKE_STABILIZATION).l,d3 ; Minimum time enabling conditions must hold before each stroke for EGR Multi Stroke. ; Seconds bcs.w loc_2E5D6 moveq #1,d4 cmp.b (byte_FFFFA247).w,d4 bne.s loc_2E5AE move.w (word_FFFFA292).w,d3 cmp.w (DI_LEGR_KE_EGRP_STRK_MAX_OPEN_TIME).l,d3 ; Maximum amount of time the EGR valve is commanded open to 100 percent. ; Seconds bcc.s loc_2E586 loc_2E56A: ; CODE XREF: sub_2E438+180j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_2E578 move.w #$FFFF,d3 loc_2E578: ; CODE XREF: sub_2E438+13Aj move.w d3,(word_FFFFA292).w move.b d4,(byte_FFFFA29E).w move.b d4,(byte_FFFFA264).w bra.s loc_2E604 ; --------------------------------------------------------------------------- loc_2E586: ; CODE XREF: sub_2E438+130j tst.b (byte_FFFFA29E).w beq.s loc_2E590 clr.w (word_FFFFA27E).w loc_2E590: ; CODE XREF: sub_2E438+152j move.b (byte_FFFFA29C).w,d3 addq.b #1,d3 bcc.s loc_2E59C move.b #$FF,d3 loc_2E59C: ; CODE XREF: sub_2E438+15Ej move.b d3,(byte_FFFFA29C).w loc_2E5A0: ; CODE XREF: sub_2E438+19Cj clr.b (byte_FFFFA29E).w clr.w (word_FFFFA294).w clr.w (word_FFFFA292).w bra.s loc_2E604 ; --------------------------------------------------------------------------- loc_2E5AE: ; CODE XREF: sub_2E438+124j move.w (word_FFFFA292).w,d3 cmp.w (EGR_KE_EGR_STRK_MAX_OPEN_TIME).l,d3 ; Time EGR valve is commanded on for each stroke for EGR Multi Stroke. ; Seconds bcs.s loc_2E56A tst.b (byte_FFFFA29E).w beq.s loc_2E5C4 clr.w (word_FFFFA296).w loc_2E5C4: ; CODE XREF: sub_2E438+186j move.b (byte_FFFFA29D).w,d3 addq.b #1,d3 bcc.s loc_2E5D0 move.b #$FF,d3 loc_2E5D0: ; CODE XREF: sub_2E438+192j move.b d3,(byte_FFFFA29D).w bra.s loc_2E5A0 ; --------------------------------------------------------------------------- loc_2E5D6: ; CODE XREF: sub_2E438+11Aj movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_2E5E4 move.w #$FFFF,d3 loc_2E5E4: ; CODE XREF: sub_2E438+1A6j move.w d3,(word_FFFFA294).w bra.s loc_2E604 ; --------------------------------------------------------------------------- loc_2E5EA: ; CODE XREF: sub_2E438+92j ; sub_2E438+9Ej ... tst.b (byte_FFFFA29E).w beq.s loc_2E5F8 clr.w (word_FFFFA296).w clr.w (word_FFFFA27E).w loc_2E5F8: ; CODE XREF: sub_2E438+1B6j clr.w (word_FFFFA294).w clr.w (word_FFFFA292).w clr.b (byte_FFFFA29E).w loc_2E604: ; CODE XREF: sub_2E438+Ej ; sub_2E438+14Cj ... move.b (byte_FFFFA29C).w,d3 cmp.b (DI_LEGR_KE_EGRP_STROKE_COUNTER_LMT).l,d3 ; Maximum amount of successful stroking events which will be allowed for one stroking set. ; Strokes bcs.s loc_2E61A clr.b (byte_FFFFA29C).w move.b #2,(byte_FFFFA247).w loc_2E61A: ; CODE XREF: sub_2E438+1D6j movem.l (sp)+,d0-d2 rts ; End of function sub_2E438 ; =============== S U B R O U T I N E ======================================= sub_2E620: ; CODE XREF: OS1:loc_2E6A2p ; OS1:loc_2E6AAp ... clr.w (word_FFFFA266).w clr.w (word_FFFFA254).w clr.w (word_FFFFA26E).w clr.w (word_FFFFA260).w clr.w (word_FFFFA262).w clr.w (word_FFFFA276).w clr.w (word_FFFFA256).w moveq #1,d3 move.b d3,(byte_FFFFA24F).w clr.b (byte_FFFFA280).w clr.b (byte_FFFFA281).w move.b d3,(byte_FFFFA282).w move.b d3,(byte_FFFFA283).w move.b d3,(byte_FFFFA284).w move.b d3,(byte_FFFFA285).w move.b d3,(byte_FFFFA286).w move.b d3,(byte_FFFFA287).w move.b d3,(byte_FFFFA288).w clr.b (byte_FFFFA28A).w btst #5,(byte_FFFFAD8B).w sne d4 neg.b d4 move.b d4,(byte_FFFFA289).w clr.b (byte_FFFFA29F).w rts ; End of function sub_2E620 ; =============== S U B R O U T I N E ======================================= sub_2E67E: ; CODE XREF: OS1:00028CE8p andi.w #$FF,d0 movea.l off_8A0BC(d0.w*4),a2 jmp (a2) ; End of function sub_2E67E ; --------------------------------------------------------------------------- loc_2E68C: ; DATA XREF: OS4:off_8A0BCo bra.w loc_2E710 ; --------------------------------------------------------------------------- loc_2E690: ; DATA XREF: OS4:0008A0C0o bra.s loc_2E70C ; --------------------------------------------------------------------------- loc_2E692: ; DATA XREF: OS4:0008A0C4o tst.b (byte_FFFFB54A).w bne.s loc_2E6A2 move.b #1,(byte_FFFF8286).w clr.w (word_FFFF827E).w loc_2E6A2: ; CODE XREF: OS1:0002E696j jsr sub_2E620 bra.s loc_2E6DA ; --------------------------------------------------------------------------- loc_2E6AA: ; DATA XREF: OS4:0008A0C8o jsr sub_2E620 clr.w (word_FFFFA258).w bra.s loc_2E6BE ; --------------------------------------------------------------------------- loc_2E6B6: ; DATA XREF: OS4:0008A0CCo bra.s loc_2E70C ; --------------------------------------------------------------------------- loc_2E6B8: ; DATA XREF: OS4:0008A0D4o jsr sub_2E620 loc_2E6BE: ; CODE XREF: OS1:0002E6B4j clr.w (word_FFFFA25A).w clr.w (word_FFFFA25E).w clr.w (word_FFFFA25C).w clr.w (word_FFFFA290).w clr.w (word_FFFFA292).w clr.w (word_FFFFA254).w clr.b (byte_FFFFA29D).w loc_2E6DA: ; CODE XREF: OS1:0002E6A8j clr.b (byte_FFFFA246).w bra.s locret_2E714 ; --------------------------------------------------------------------------- loc_2E6E0: ; DATA XREF: OS4:0008A0D8o bra.s loc_2E710 ; --------------------------------------------------------------------------- loc_2E6E2: ; DATA XREF: OS4:0008A0DCo clr.b (byte_FFFFA29D).w tst.b (byte_FFFF8286).w beq.s loc_2E6F4 jsr sub_2DAA6 bra.s loc_2E700 ; --------------------------------------------------------------------------- loc_2E6F4: ; CODE XREF: OS1:0002E6EAj move.b #1,(byte_FFFFA24E).w move.w (GlobalClock).w,(word_FFFFA24A).w loc_2E700: ; CODE XREF: OS1:0002E6F2j move.w (word_FFFF8280).w,(word_FFFFA250).w clr.w (word_FFFFA24C).w bra.s locret_2E714 ; --------------------------------------------------------------------------- loc_2E70C: ; CODE XREF: OS1:loc_2E690j ; OS1:loc_2E6B6j ; DATA XREF: ... clr.b (byte_FFFFA246).w loc_2E710: ; CODE XREF: OS1:loc_2E68Cj ; OS1:loc_2E6E0j clr.b (byte_FFFFA29D).w locret_2E714: ; CODE XREF: OS1:0002E6DEj ; OS1:0002E70Aj ; DATA XREF: ... rts ; =============== S U B R O U T I N E ======================================= sub_2E716: ; CODE XREF: sub_3DD8C+2Ap move.w (FAN_CONTROL_KE_ECT_FAN1_LOW_THRESHOLD).l,d0 ; The Fan 1 output can be disabled if Coolant Temperature is belowthis threshold. ; Degrees C rts ; End of function sub_2E716 ; =============== S U B R O U T I N E ======================================= sub_2E71E: ; CODE XREF: sub_3DD8C+3Ap move.w (FAN_CONTROL_KE_ECT_FAN2_LOW_THRESHOLD).l,d0 ; Fan2 output can be disabled if Coolant Temperature is belowthis threshold. ; Degrees_C rts ; End of function sub_2E71E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2E726: ; CODE XREF: DoLoopE+1C4p var_2 = -2 link a6,#-2 movem.l d0-d2/d6-d7,-(sp) move.b (VEH_SYS_KE_TYPE_OF_FANS_ON_VEHICLE).l,d2 ; Type of engine cooling system supported on vehicle ; Unitless cmpi.b #2,d2 beq.w loc_2EA92 cmpi.b #3,d2 beq.w loc_2EA92 moveq #4,d6 cmp.b (ThrottleControlMode2?).w,d6 beq.w loc_2E9AC clr.l d0 move.w (FAN_CONTROL_KE_ENGINE_RUNNING_FAN1_TIME).l,d0 ; The minimum engine run time required to expire before the Fan1output can be enabled. ; Seconds cmp.l (EngineRunTime).w,d0 bcc.w loc_2E870 tst.b (byte_FFFF9DA5).w beq.s loc_2E778 move.w (FAN_CONTROL_KE_AC_PRESSURE_FAN1_LOW_THRESHOL).l,d0 ; The Fan1 output can be disabled if AC Pressure is below this threshold. ; PSI move.w (FAN_CONTROL_KE_ECT_FAN1_LOW_THRESHOLD).l,d4 ; The Fan 1 output can be disabled if Coolant Temperature is belowthis threshold. ; Degrees C move.w (FAN_CONTROL_KE_VEHICLE_SPEED_HIGH_AC_FAN1_TH).l,d3 ; Vehicle Speed threshold with AC compressor engaged above whichFan1 output can be turned off. ; MPH bra.s loc_2E78A ; --------------------------------------------------------------------------- loc_2E778: ; CODE XREF: sub_2E726+3Cj move.w (FAN_CONTROL_KE_AC_PRESSURE_FAN1_HIGH_THRESHO).l,d0 ; Enable the Fan 1 output if AC Pressure is above this threshold ; PSI move.w (FAN_CONTROL_KE_ECT_FAN1_HIGH_THRESHOLD).l,d4 ; Enable the Fan 1 output if coolant temperature is above this threshold. ; Degrees C move.w (FAN_CONTROL_KE_VEHICLE_SPEED_LOW_AC_FAN1_THR).l,d3 ; Vehicle Speed threshold with AC compressor engaged below which Fan1 output is forced ON. ; MPH loc_2E78A: ; CODE XREF: sub_2E726+50j btst #1,(byte_FFFF88DC).w bne.s loc_2E7A2 btst #1,(byte_FFFF88DA).w bne.s loc_2E7A2 btst #1,(byte_FFFF8A46).w beq.s loc_2E7AC loc_2E7A2: ; CODE XREF: sub_2E726+6Aj ; sub_2E726+72j ... move.b #1,(byte_FFFF9DA2).w bra.w loc_2E852 ; --------------------------------------------------------------------------- loc_2E7AC: ; CODE XREF: sub_2E726+7Aj btst #5,(byte_FFFFAD8B).w beq.s loc_2E7E6 btst #7,(byte_FFFFAD8B).w bne.s loc_2E7E6 cmp.w (word_FFFFAEBC).w,d3 bls.s loc_2E7E6 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (FAN_CONTROL_KE_ECT_FAN1_AC_ON_THRESHOLD).l,d3 ble.s loc_2E7E6 move.w (word_FFFF9DBA).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 loc_2E7DC: ; CODE XREF: sub_2E726+EEj cmp.w (FAN_CONTROL_KE_MINIMUM_FAN1_OFF_TIME).l,d0 ; ; Seconds bcs.s loc_2E852 bra.s loc_2E7A2 ; --------------------------------------------------------------------------- loc_2E7E6: ; CODE XREF: sub_2E726+8Cj ; sub_2E726+94j ... cmp.w (word_FFFFAD8E).w,d0 bcs.s loc_2E7F4 btst #7,(byte_FFFFAD8C).w bne.s loc_2E800 loc_2E7F4: ; CODE XREF: sub_2E726+C4j move.w (word_FFFFAEBC).w,d0 cmp.w (FAN_CONTROL_KE_HI_VEH_SPD_FANS_OFF_AC_THRESH).l,d0 bcs.s loc_2E806 loc_2E800: ; CODE XREF: sub_2E726+CCj cmp.w (CoolantTemperatureOrDefault).w,d4 bge.s loc_2E816 loc_2E806: ; CODE XREF: sub_2E726+D8j move.w (word_FFFF9DBA).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 bra.s loc_2E7DC ; --------------------------------------------------------------------------- loc_2E816: ; CODE XREF: sub_2E726+DEj tst.b (byte_FFFF9DA6).w bne.s loc_2E852 move.w (word_FFFF9DB8).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmp.w (FAN_CONTROL_KE_FAN1_DELAY_OFF_AFTER_FAN2_TUR).l,d0 ; Time to delay turning off Fan1 after Fan2 has been turned off. ; Seconds bcs.s loc_2E852 move.w (word_FFFF9DB6).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmp.w (FAN_CONTROL_KE_MINIMUM_FAN1_ON_TIME).l,d0 ; Minimum amount of time that Fan1 is disabled after the output is turned off. ; Seconds bcs.s loc_2E852 tst.b (byte_FFFFA362).w bne.s loc_2E852 clr.b (byte_FFFF9DA2).w loc_2E852: ; CODE XREF: sub_2E726+82j ; sub_2E726+BCj ... move.w (CoolantTemperatureOrDefault).w,d0 cmp.w (FAN_CONTROL_KE_ECT_FAN1_KEYOFF).l,d0 ; Perform FAN RUNON on the fan1 output after keyoff, if coolanttemp is above this threshold at keyoff. ; Degrees_C ble.s loc_2E86C tst.b (byte_FFFF9DA5).w beq.s loc_2E86C move.b #1,(byte_FFFF9DA4).w bra.s loc_2E870 ; --------------------------------------------------------------------------- loc_2E86C: ; CODE XREF: sub_2E726+136j ; sub_2E726+13Cj clr.b (byte_FFFF9DA4).w loc_2E870: ; CODE XREF: sub_2E726+34j ; sub_2E726+144j tst.b d2 bne.w loc_2E904 move.w (word_FFFF9DC2).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmp.w (FAN_CONTROL_KE_FAN2_ON_DELAY_TIME).l,d0 ; Amount of time after fan1 output has been enabled, before fan2 output can be enabled. ; Seconds bcs.s loc_2E904 move.b (byte_FFFF9DA6).w,d0 beq.s loc_2E8A0 move.w (FAN_CONTROL_KE_AC_PRESSURE_FAN2_LOW_THRESHOL).l,d4 ; Fan2 output can be disabled if AC Pressure is below this threshold. ; PSI move.w (FAN_CONTROL_KE_ECT_FAN2_LOW_THRESHOLD).l,d3 ; Fan2 output can be disabled if Coolant Temperature is belowthis threshold. ; Degrees_C bra.s loc_2E8AC ; --------------------------------------------------------------------------- loc_2E8A0: ; CODE XREF: sub_2E726+16Aj move.w (FAN_CONTROL_KE_AC_PRESSURE_FAN2_HIGH_THRESHO).l,d4 ; Fan2 output can be disabled if AC Pressure is above this threshold. ; PSI move.w (FAN_CONTROL_KE_ECT_FAN2_HIGH_THRESHOLD).l,d3 ; Enable the fan2 output if Coolant Temperature is above thisthreshold. ; Degrees C loc_2E8AC: ; CODE XREF: sub_2E726+178j btst #1,(byte_FFFF88DC).w bne.s loc_2E8C4 btst #1,(byte_FFFF88DA).w bne.s loc_2E8C4 btst #1,(byte_FFFF8A46).w beq.s loc_2E8CC loc_2E8C4: ; CODE XREF: sub_2E726+18Cj ; sub_2E726+194j ... move.b #1,(byte_FFFF9DA3).w bra.s loc_2E904 ; --------------------------------------------------------------------------- loc_2E8CC: ; CODE XREF: sub_2E726+19Cj cmp.w (word_FFFFAD8E).w,d4 bcc.s loc_2E8E4 move.w (word_FFFFAEBC).w,d1 cmp.w (FAN_CONTROL_KE_HI_VEH_SPD_FANS_OFF_AC_THRESH).l,d1 bcc.s loc_2E8E4 loc_2E8DE: ; CODE XREF: sub_2E726+1C2j tst.b d0 bne.s loc_2E904 bra.s loc_2E8C4 ; --------------------------------------------------------------------------- loc_2E8E4: ; CODE XREF: sub_2E726+1AAj ; sub_2E726+1B6j cmp.w (CoolantTemperatureOrDefault).w,d3 blt.s loc_2E8DE move.w (word_FFFF9DBC).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (FAN_CONTROL_KE_MINIMUM_FAN2_ON_TIME).l,d3 ; Minimum amount of time that Fan2 is enabled once it is turned on. ; Seconds bcs.s loc_2E904 clr.b (byte_FFFF9DA3).w loc_2E904: ; CODE XREF: sub_2E726+14Cj ; sub_2E726+164j ... move.b (byte_FFFF9DA2).w,d3 beq.s loc_2E93C tst.b (byte_FFFF9DA0).w bne.s loc_2E93C tst.w (word_FFFF9DBE).w bne.s loc_2E928 move.b #1,(byte_FFFF9DA0).w move.w (FAN_CONTROL_KE_FAN1_TURN_OFF_DELAY).l,(word_FFFF9DBE).w ; Delay the on to off transition of the Fan1 output, for this amount of time. ; Seconds bra.w loc_2E9AC ; --------------------------------------------------------------------------- loc_2E928: ; CODE XREF: sub_2E726+1EEj ; sub_2E726+224j move.w (word_FFFF9DBE).w,d3 sub.w (word_8A834).l,d3 bcc.s loc_2E936 clr.w d3 loc_2E936: ; CODE XREF: sub_2E726+20Cj move.w d3,(word_FFFF9DBE).w bra.s loc_2E9AC ; --------------------------------------------------------------------------- loc_2E93C: ; CODE XREF: sub_2E726+1E2j ; sub_2E726+1E8j tst.b d3 bne.s loc_2E95A tst.b (byte_FFFF9DA0).w beq.s loc_2E95A tst.w (word_FFFF9DBE).w bne.s loc_2E928 clr.b (byte_FFFF9DA0).w move.w (FAN_CONTROL_KE_FAN1_TURN_ON_DELAY).l,(word_FFFF9DBE).w ; Delay the off to on transition of the Fan1 output, for this amount of time. ; Seconds bra.s loc_2E9AC ; --------------------------------------------------------------------------- loc_2E95A: ; CODE XREF: sub_2E726+218j ; sub_2E726+21Ej move.b (byte_FFFF9DA3).w,d3 beq.s loc_2E97C tst.b (byte_FFFF9DA1).w bne.s loc_2E97C tst.w (word_FFFF9DC0).w bne.s loc_2E99A move.b #1,(byte_FFFF9DA1).w move.w (FAN_CONTROL_KE_FAN2_TURN_OFF_DELAY).l,(word_FFFF9DC0).w ; Delay the on to off transition of the Fan2 output, for this amount of time. ; Seconds bra.s loc_2E9AC ; --------------------------------------------------------------------------- loc_2E97C: ; CODE XREF: sub_2E726+238j ; sub_2E726+23Ej tst.b d3 bne.s loc_2E9AC tst.b (byte_FFFF9DA1).w beq.s loc_2E9AC tst.w (word_FFFF9DC0).w bne.s loc_2E99A clr.b (byte_FFFF9DA1).w move.w (FAN_CONTROL_KE_FAN2_TURN_ON_DELAY).l,(word_FFFF9DC0).w ; Delay the off to on transition of the Fan2 output, for this amount of time. ; Seconds bra.s loc_2E9AC ; --------------------------------------------------------------------------- loc_2E99A: ; CODE XREF: sub_2E726+244j ; sub_2E726+264j move.w (word_FFFF9DC0).w,d3 sub.w (word_8A834).l,d3 bcc.s loc_2E9A8 clr.w d3 loc_2E9A8: ; CODE XREF: sub_2E726+27Ej move.w d3,(word_FFFF9DC0).w loc_2E9AC: ; CODE XREF: sub_2E726+24j ; sub_2E726+1FEj ... btst #7,(word_FFFFA7DC+1).w bne.s loc_2E9BC btst #6,(word_FFFFA7DC+1).w beq.s loc_2E9EE loc_2E9BC: ; CODE XREF: sub_2E726+28Cj btst #7,(word_FFFFA7DC+1).w beq.s loc_2E9D2 btst #3,(word_FFFFA7E2).w sne d3 neg.b d3 move.b d3,(byte_FFFF9DA5).w loc_2E9D2: ; CODE XREF: sub_2E726+29Cj btst #6,(word_FFFFA7DC+1).w beq.s loc_2EA44 tst.b d2 bne.s loc_2EA44 btst #2,(word_FFFFA7E2).w sne d3 neg.b d3 move.b d3,(byte_FFFF9DA6).w bra.s loc_2EA44 ; --------------------------------------------------------------------------- loc_2E9EE: ; CODE XREF: sub_2E726+294j tst.b (byte_FFFF9DA4).w beq.s loc_2EA20 tst.w (word_FFFF9DC8).w bls.s loc_2EA20 cmp.b (ThrottleControlMode2?).w,d6 bne.s loc_2EA20 move.w (word_FFFF9DC8).w,d3 sub.w (word_8A834).l,d3 bcc.s loc_2EA0E clr.w d3 loc_2EA0E: ; CODE XREF: sub_2E726+2E4j move.w d3,(word_FFFF9DC8).w tst.w d3 bne.s loc_2EA44 clr.b (byte_FFFF9DA5).w clr.b (byte_FFFF9DA4).w bra.s loc_2EA44 ; --------------------------------------------------------------------------- loc_2EA20: ; CODE XREF: sub_2E726+2CCj ; sub_2E726+2D2j ... tst.b (byte_FFFF9DA0).w beq.s loc_2EA38 move.b #1,(byte_FFFF9DA5).w tst.b d2 bne.s loc_2EA44 move.b (byte_FFFF9DA1).w,(byte_FFFF9DA6).w bra.s loc_2EA44 ; --------------------------------------------------------------------------- loc_2EA38: ; CODE XREF: sub_2E726+2FEj clr.b (byte_FFFF9DA5).w tst.b d2 bne.s loc_2EA44 clr.b (byte_FFFF9DA6).w loc_2EA44: ; CODE XREF: sub_2E726+2B2j ; sub_2E726+2B6j ... tst.b (byte_FFFF9DA5).w beq.s loc_2EA52 move.w (GlobalClock).w,(word_FFFF9DBA).w bra.s loc_2EA5E ; --------------------------------------------------------------------------- loc_2EA52: ; CODE XREF: sub_2E726+322j move.w (GlobalClock).w,(word_FFFF9DC2).w move.w (GlobalClock).w,(word_FFFF9DB6).w loc_2EA5E: ; CODE XREF: sub_2E726+32Aj tst.b (byte_FFFF9DA6).w beq.s loc_2EA6C move.w (GlobalClock).w,(word_FFFF9DB8).w bra.s loc_2EA72 ; --------------------------------------------------------------------------- loc_2EA6C: ; CODE XREF: sub_2E726+33Cj move.w (GlobalClock).w,(word_FFFF9DBC).w loc_2EA72: ; CODE XREF: sub_2E726+344j move.b (byte_FFFF9DA5).w,d1 move.w #$13C,d0 jsr (sub_1122).l tst.b d2 bne.s loc_2EA92 move.b (byte_FFFF9DA6).w,d1 move.w #$13A,d0 jsr (sub_1122).l loc_2EA92: ; CODE XREF: sub_2E726+12j ; sub_2E726+1Aj ... movem.l (sp)+,d0-d2/d6-d7 unlk a6 rts ; End of function sub_2E726 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2EA9A: ; CODE XREF: DoLoopB+278p var_6 = -6 link a6,#-6 movem.l d0-d2/d6/a0-a1/a4,-(sp) cmpi.b #3,(VEH_SYS_KE_TYPE_OF_FANS_ON_VEHICLE).l ; Type of engine cooling system supported on vehicle ; Unitless bne.w loc_2EBCE lea (unk_FFFF9DD2).w,a1 lea (unk_FFFF9DE2).w,a0 moveq #7,d2 loc_2EAB8: ; CODE XREF: sub_2EA9A+20j move.w (a1)+,(a0)+ dbf d2,loc_2EAB8 move.l (dword_FFFF9DEE).w,d2 cmp.l (dword_FFFF9DE6).w,d2 sne d2 neg.b d2 movea.l #unk_FF9DD2,a1 movea.l a1,a0 moveq #$6A,d0 ; 'j' jsr sub_82046 moveq #1,d1 lea var_6(a6),a0 moveq #$6A,d0 ; 'j' jsr sub_8212A tst.b d0 bne.s loc_2EB18 move.b (byte_FFFF9DC6).w,d3 addq.b #1,d3 bcc.s loc_2EAF8 move.b #$FF,d3 loc_2EAF8: ; CODE XREF: sub_2EA9A+58j move.b d3,(byte_FFFF9DC6).w cmpi.b #$28,d3 ; '(' bcc.s loc_2EB08 move.w (word_FFFF9DC4).w,d3 bra.s loc_2EB28 ; --------------------------------------------------------------------------- loc_2EB08: ; CODE XREF: sub_2EA9A+66j clr.w d3 lea (unk_FFFF9DD2).w,a2 moveq #$F,d4 loc_2EB10: ; CODE XREF: sub_2EA9A+78j clr.w (a2)+ dbf d4,loc_2EB10 bra.s loc_2EB28 ; --------------------------------------------------------------------------- loc_2EB18: ; CODE XREF: sub_2EA9A+50j clr.b (byte_FFFF9DC6).w tst.b d2 beq.s loc_2EB26 move.w var_6(a6),d3 bra.s loc_2EB28 ; --------------------------------------------------------------------------- loc_2EB26: ; CODE XREF: sub_2EA9A+84j clr.w d3 loc_2EB28: ; CODE XREF: sub_2EA9A+6Cj ; sub_2EA9A+7Cj ... tst.b (byte_FFFFA462).w beq.s loc_2EB72 move.b (byte_FFFFA462).w,d4 moveq #1,d6 cmp.b d4,d6 bne.s loc_2EB4A tst.b (byte_FFFFA463).w bne.s loc_2EB44 movea.w (word_FFFFA464).w,a4 bra.s loc_2EB6C ; --------------------------------------------------------------------------- loc_2EB44: ; CODE XREF: sub_2EA9A+A2j movea.w #0,a4 bra.s loc_2EB6C ; --------------------------------------------------------------------------- loc_2EB4A: ; CODE XREF: sub_2EA9A+9Cj cmpi.b #2,d4 bne.s loc_2EB6C cmp.b (byte_FFFFA463).w,d6 bne.s loc_2EB60 sub.w (word_FFFFA464).w,d3 bcc.s loc_2EB6A clr.w d3 bra.s loc_2EB6A ; --------------------------------------------------------------------------- loc_2EB60: ; CODE XREF: sub_2EA9A+BAj add.w (word_FFFFA464).w,d3 bcc.s loc_2EB6A move.w #$FFFF,d3 loc_2EB6A: ; CODE XREF: sub_2EA9A+C0j ; sub_2EA9A+C4j ... movea.w d3,a4 loc_2EB6C: ; CODE XREF: sub_2EA9A+A8j ; sub_2EA9A+AEj ... move.w a4,(word_FFFF9DC4).w bra.s loc_2EB76 ; --------------------------------------------------------------------------- loc_2EB72: ; CODE XREF: sub_2EA9A+92j move.w d3,(word_FFFF9DC4).w loc_2EB76: ; CODE XREF: sub_2EA9A+D6j move.w (word_FFFF9DC4).w,d3 mulu.w #$18E7,d3 divu.w #$100,d3 bvc.s loc_2EB88 move.w #$FFFF,d3 loc_2EB88: ; CODE XREF: sub_2EA9A+E8j move.w d3,(word_FFFF9DAC).w move.w (word_FFFF9DC4).w,(word_FFFF9DB4).w move.w (word_FFFF9DAA).w,d3 mulu.w #$CD,d3 ; '?' lsr.l #8,d3 andi.l #$FFFF,d3 divu.w #$33,d3 ; '3' move.b (byte_FFFF9E0A).w,d2 cmp.b d3,d2 scs d1 neg.b d1 move.b d1,(byte_FFFF9E0F).w move.w #$13C,d0 jsr (sub_1122).l addq.b #1,d2 move.b d2,(byte_FFFF9E0A).w cmpi.b #$50,d2 ; 'P' bcs.s loc_2EBCE clr.b (byte_FFFF9E0A).w loc_2EBCE: ; CODE XREF: sub_2EA9A+10j ; sub_2EA9A+12Ej movem.l (sp)+,d0-d2/d6/a0-a1/a4 unlk a6 rts ; End of function sub_2EA9A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2EBD6: ; CODE XREF: DoLoopG+54p var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a1,-(sp) cmpi.b #3,(VEH_SYS_KE_TYPE_OF_FANS_ON_VEHICLE).l ; Type of engine cooling system supported on vehicle ; Unitless bne.w loc_2F194 cmpi.b #4,(ThrottleControlMode2?).w beq.w loc_2F194 clr.l d3 move.w (FAN_CONTROL_KE_FANPWRUPDELAY).l,d3 ; Amount of time to delay operating the fans on engine power up for engine idle stabilization. ; Seconds cmp.l (EngineRunTime).w,d3 bls.s loc_2EC0A clr.w (word_FFFF9DFC).w bra.w loc_2F194 ; --------------------------------------------------------------------------- loc_2EC0A: ; CODE XREF: sub_2EBD6+2Aj move.w (EngineRPM_PID_000C___).w,d0 cmp.w (FAN_CONTROL_KE_MIN_RPM_TO_DETECT_FANLOCKUP).l,d0 ; Minimum engine speed required to detect fan lockup. ; RPM bls.s loc_2EC40 move.w (word_FFFF9DAC).w,d0 cmp.w (FAN_CONTROL_KE_FANFAILSPEEDRPM).l,d0 ; Defines the engine speed at which the rotational forces may lead to structural failure for engine driven cooling fans. ; RPM bls.s loc_2EC40 move.w (word_FFFF9DD0).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmp.w (FAN_CONTROL_KE_FANLOCKUPTIME).l,d0 ; If fan speed is above KE_FanFailSpeedRPM for this amount of time, fan is locked up. ; Seconds bcs.s loc_2EC46 move.b #1,(byte_FFFF9DA8).w bra.s loc_2EC46 ; --------------------------------------------------------------------------- loc_2EC40: ; CODE XREF: sub_2EBD6+3Ej ; sub_2EBD6+4Aj move.w (GlobalClock).w,(word_FFFF9DD0).w loc_2EC46: ; CODE XREF: sub_2EBD6+60j ; sub_2EBD6+68j tst.b (byte_FFFF9DA8).w bne.w loc_2F194 move.w (FAN_CONTROL_KE_WATER_PUMP_PULLEY_RATIO).l,d0 ; Pulley ratio of the accessory drive that is driving the fan. ; Multiplier_0_to_16 mulu.w (EngineRPM_PID_000C___).w,d0 move.w #$1000,d7 divu.w d7,d0 bvc.s loc_2EC64 move.w #$FFFF,d0 loc_2EC64: ; CODE XREF: sub_2EBD6+88j move.w d0,(word_FFFF9DF2).w move.w (CoolantTemperatureOrDefault).w,d2 move.l d2,d3 clr.w d4 move.w #$8E6,d6 cmp.w d3,d6 ble.s loc_2EC7C move.l d4,d3 bra.s loc_2EC8E ; --------------------------------------------------------------------------- loc_2EC7C: ; CODE XREF: sub_2EBD6+A0j cmpi.w #$C1A,d3 bge.s loc_2EC8A sub.w d6,d3 moveq #5,d1 muls.w d1,d3 bra.s loc_2EC8E ; --------------------------------------------------------------------------- loc_2EC8A: ; CODE XREF: sub_2EBD6+AAj move.w #$1004,d3 loc_2EC8E: ; CODE XREF: sub_2EBD6+A4j ; sub_2EBD6+B2j movea.l #FAN_CONTROL_KV_ECT_PCT_FANREQ,a2 ; The percentage of fan power required for corresponding engine coolant temperature. ; Percent tblu.w (a2),d3 move.w d3,(word_FFFF9DCE).w btst #1,(byte_FFFF89A8).w bne.s loc_2ECAC btst #1,(byte_FFFF89AA).w beq.s loc_2ECB2 loc_2ECAC: ; CODE XREF: sub_2EBD6+CCj clr.w (word_FFFF9DCA).w bra.s loc_2ECE0 ; --------------------------------------------------------------------------- loc_2ECB2: ; CODE XREF: sub_2EBD6+D4j move.w (word_FFFFAD8E).w,d4 clr.w d5 move.w #$300,d1 cmp.w d4,d1 bls.s loc_2ECC4 move.l d5,d4 bra.s loc_2ECD2 ; --------------------------------------------------------------------------- loc_2ECC4: ; CODE XREF: sub_2EBD6+E8j cmpi.w #$700,d4 bcc.s loc_2ECD0 sub.w d1,d4 asl.w #2,d4 bra.s loc_2ECD2 ; --------------------------------------------------------------------------- loc_2ECD0: ; CODE XREF: sub_2EBD6+F2j move.l d7,d4 loc_2ECD2: ; CODE XREF: sub_2EBD6+ECj ; sub_2EBD6+F8j movea.l #FAN_CONTROL_KV_AC_PCT_FANREQ,a2 ; Percentage of fan power required for corresponding AC High-side pressure. ; Percent tblu.w (a2),d4 move.w d4,(word_FFFF9DCA).w loc_2ECE0: ; CODE XREF: sub_2EBD6+DAj move.w (word_FFFFA3C2).w,d4 moveq #$60,d1 ; '`' muls.w d1,d4 moveq #5,d1 divs.w d1,d4 btst #1,(byte_FFFF89DA).w bne.s loc_2ED3A btst #1,(byte_FFFF89DC).w bne.s loc_2ED3A btst #1,(byte_FFFF89DE).w bne.s loc_2ED3A cmpi.w #$933,d4 bge.s loc_2ED0E clr.w d4 bra.s loc_2ED2A ; --------------------------------------------------------------------------- loc_2ED0E: ; CODE XREF: sub_2EBD6+132j cmpi.w #$F9A,d4 bge.s loc_2ED26 ext.l d4 movea.w #$933,a1 sub.l a1,d4 muls.w d1,d4 bpl.s loc_2ED22 addq.l #3,d4 loc_2ED22: ; CODE XREF: sub_2EBD6+148j asr.l #2,d4 bra.s loc_2ED2A ; --------------------------------------------------------------------------- loc_2ED26: ; CODE XREF: sub_2EBD6+13Cj move.w #$800,d4 loc_2ED2A: ; CODE XREF: sub_2EBD6+136j ; sub_2EBD6+14Ej movea.l #FAN_CONTROL_KV_TRANS_TEMP_PCT_FANREQ,a2 ; The percentage of fan power required for corresponding transmission oil temperature. ; Percent tblu.w (a2),d4 move.w d4,(word_FFFF9E02).w bra.s loc_2ED3E ; --------------------------------------------------------------------------- loc_2ED3A: ; CODE XREF: sub_2EBD6+11Cj ; sub_2EBD6+124j ... clr.w (word_FFFF9E02).w loc_2ED3E: ; CODE XREF: sub_2EBD6+162j move.w (word_FFFFA72E).w,d4 clr.w d5 move.l #$933,d7 cmp.w d4,d7 ble.s loc_2ED52 move.l d5,d4 bra.s loc_2ED6A ; --------------------------------------------------------------------------- loc_2ED52: ; CODE XREF: sub_2EBD6+176j cmpi.w #$F9A,d4 bge.s loc_2ED66 ext.l d4 sub.l d7,d4 muls.w d1,d4 bpl.s loc_2ED62 addq.l #3,d4 loc_2ED62: ; CODE XREF: sub_2EBD6+188j asr.l #2,d4 bra.s loc_2ED6A ; --------------------------------------------------------------------------- loc_2ED66: ; CODE XREF: sub_2EBD6+180j move.w #$800,d4 loc_2ED6A: ; CODE XREF: sub_2EBD6+17Aj ; sub_2EBD6+18Ej movea.l #FAN_CONTROL_KV_ENG_OIL_TEMP_PCT_FANREQ,a2 ; The percentage of fan power required for corresponding engine oil temperature. ; Percent tblu.w (a2),d4 move.w d4,(word_FFFF9E04).w move.w (word_FFFF9DCA).w,d1 cmp.w d1,d3 bhi.s loc_2ED82 move.l d1,d3 loc_2ED82: ; CODE XREF: sub_2EBD6+1A8j move.w (word_FFFF9E02).w,d1 cmp.w d1,d3 bhi.s loc_2ED8C move.l d1,d3 loc_2ED8C: ; CODE XREF: sub_2EBD6+1B2j cmp.w d4,d3 bls.s loc_2ED96 move.w d3,(word_FFFF9E06).w bra.s loc_2ED9A ; --------------------------------------------------------------------------- loc_2ED96: ; CODE XREF: sub_2EBD6+1B8j move.w d4,(word_FFFF9E06).w loc_2ED9A: ; CODE XREF: sub_2EBD6+1BEj move.w #$19C0,d3 mulu.w (word_FFFFAEBC).w,d3 lsr.l #8,d3 lsr.l #8,d3 lsr.l #3,d3 cmpi.w #$12C,d3 bls.s loc_2EDB2 move.w #$12C,d3 loc_2EDB2: ; CODE XREF: sub_2EBD6+1D6j cmp.w (FAN_CONTROL_KE_VEHICLESPDFANADJUSTLO).l,d3 ; Threshold for vehicle speed below which, no fan speed adjustment due to vehicle speed is allowed. ; kPH bcc.s loc_2EDC2 move.b #1,(byte_FFFF9E0D).w bra.s loc_2EDCE ; --------------------------------------------------------------------------- loc_2EDC2: ; CODE XREF: sub_2EBD6+1E2j cmp.w (FAN_CONTROL_KE_VEHICLESPDFANADJUSTHI).l,d3 ; Threshold for vehicle speed above which, no fan speed adjustment due to vehicle speed is allowed. ; kPH bls.s loc_2EDCE clr.b (byte_FFFF9E0D).w loc_2EDCE: ; CODE XREF: sub_2EBD6+1EAj ; sub_2EBD6+1F2j tst.b (byte_FFFF9E0D).w bne.s loc_2EE10 cmp.w (FAN_CONTROL_KE_COOLANTTEMPOVERRIDE).l,d2 bgt.s loc_2EE10 move.w (word_FFFFA3C2).w,d2 moveq #$60,d1 ; '`' muls.w d1,d2 divs.w #5,d2 cmp.w (FAN_CONTROL_KE_TEMPTRANSOILHI).l,d2 bgt.s loc_2EE10 move.w (word_FFFFA72E).w,d2 cmp.w (FAN_CONTROL_KE_TEMPENGINEOILHI).l,d2 ; High threshold above which 100% required fan speed based on Engine Oil Temperature. ; Degrees C bgt.s loc_2EE10 move.w (word_FFFFAD8E).w,d2 loc_2EE00: ; DATA XREF: Calibration:00009200o cmp.w (FAN_CONTROL_KE_AC_PRESSUREHIGH).l,d2 ; A thershold of the AC High-side pressure below which a reduction in PCT_Fan_Command is Allowed due to WOT conditions. ; PSI bhi.s loc_2EE10 tst.w (FAN_CONTROL_KE_MAXVEHICLESPEED).l ; Maximum speed the vehicle is capable of. ; kPH bne.s loc_2EE18 loc_2EE10: ; CODE XREF: sub_2EBD6+1FCj ; sub_2EBD6+204j ... move.w (word_FFFF9E06).w,(word_FFFF9DCC).w bra.s loc_2EE5C ; --------------------------------------------------------------------------- loc_2EE18: ; CODE XREF: sub_2EBD6+238j andi.l #$FFFF,d3 asl.l #8,d3 asl.l #4,d3 divu.w (FAN_CONTROL_KE_MAXVEHICLESPEED).l,d3 ; Maximum speed the vehicle is capable of. ; kPH bvs.s loc_2EE50 andi.l #$FFFF,d3 move.l #$1000,d2 sub.l d3,d2 clr.l d3 move.w (word_FFFF9E06).w,d3 muls.l d2,d3 cmpi.l #$7FFFFFFF,d3 bhi.s loc_2EE56 lsr.l #8,d3 lsr.l #4,d3 bra.s loc_2EE58 ; --------------------------------------------------------------------------- loc_2EE50: ; CODE XREF: sub_2EBD6+252j move.w #$1400,d3 bra.s loc_2EE58 ; --------------------------------------------------------------------------- loc_2EE56: ; CODE XREF: sub_2EBD6+272j clr.w d3 loc_2EE58: ; CODE XREF: sub_2EBD6+278j ; sub_2EBD6+27Ej move.w d3,(word_FFFF9DCC).w loc_2EE5C: ; CODE XREF: sub_2EBD6+240j btst #1,(byte_FFFF88DC).w bne.s loc_2EE6C btst #1,(byte_FFFF88DA).w beq.s loc_2EE7C loc_2EE6C: ; CODE XREF: sub_2EBD6+28Cj move.w (FAN_CONTROL_KE_FANCOMMAND_FOR_CTS_FAULT).l,(word_FFFF9DFC).w ; Percent Fan Command to be forced when coolant sensor is shorted high or low. ; Percent loc_2EE74: ; CODE XREF: sub_2EBD6+2B6j moveq #1,d5 move.b d5,(byte_FFFF9DA7).w bra.s loc_2EEAC ; --------------------------------------------------------------------------- loc_2EE7C: ; CODE XREF: sub_2EBD6+294j move.w (word_FFFF9DCC).w,d3 cmp.w (FAN_CONTROL_KE_SERVICEOVERRIDEALLOWED).l,d3 ; Threshold in percentage of fan power below which a Service tool is allowed control fans. ; Percent bls.s loc_2EE8E move.w d3,(word_FFFF9DFC).w bra.s loc_2EE74 ; --------------------------------------------------------------------------- loc_2EE8E: ; CODE XREF: sub_2EBD6+2B0j btst #7,(byte_FFFFA7E1).w beq.s loc_2EEA4 clr.w d3 move.b (byte_FFFFA7E9).w,d3 mulu.w #$2FB,d3 divu.w #$26,d3 ; '&' loc_2EEA4: ; CODE XREF: sub_2EBD6+2BEj move.w d3,(word_FFFF9DFC).w clr.b (byte_FFFF9DA7).w loc_2EEAC: ; CODE XREF: sub_2EBD6+2A4j move.w (CoolantTemperatureOrDefault).w,d2 cmp.w (FAN_CONTROL_KE_SLIP_ECT_MAXLO).l,d2 ; Threshold for engine coolant temperature below which slippower management is allowed. ; Degrees C bge.s loc_2EEC0 move.b #1,(byte_FFFF9E0C).w bra.s loc_2EECC ; --------------------------------------------------------------------------- loc_2EEC0: ; CODE XREF: sub_2EBD6+2E0j cmp.w (FAN_CONTROL_KE_SLIP_ECT_MAXHI).l,d2 ; Threshold for engine coolant temperature above which slippower management is not allowed. ; Degrees C ble.s loc_2EECC clr.b (byte_FFFF9E0C).w loc_2EECC: ; CODE XREF: sub_2EBD6+2E8j ; sub_2EBD6+2F0j move.w (EngineRPM_PID_000C___).w,d4 tst.b (byte_FFFF9E0C).w beq.s loc_2EF30 move.l d4,d3 move.w #$2100,d5 cmp.w d3,d5 bls.s loc_2EEE4 move.l d5,d3 bra.s loc_2EEEE ; --------------------------------------------------------------------------- loc_2EEE4: ; CODE XREF: sub_2EBD6+308j cmpi.w #$8100,d3 bls.s loc_2EEEE move.w #$8100,d3 loc_2EEEE: ; CODE XREF: sub_2EBD6+30Cj ; sub_2EBD6+312j subi.w #$2100,d3 andi.l #$FFFF,d3 divu.w #6,d3 tblu.w (FAN_CONTROL_KV_MAXFAN_PCT_CMD).l,d3 ; Percentage of fan power required for cooresponding engine speed. ; Percent cmp.w (FAN_CONTROL_KE_SLIPFANDRIVELO).l,d4 ; Defines Fan Drive Speed below which modifications to Pct_Fan_Command for slip power management is required. ; RPM bls.s loc_2EF30 cmp.w (word_FFFF9DFC).w,d3 bcc.s loc_2EF30 move.b #1,(byte_FFFF9E0B).w cmp.w (FAN_CONTROL_KE_SLIPFANDRIVEHI).l,d4 ; Defines Fan Drive Speed above which the Pct_Fan_Command is set to KE_SlipPct_FanLo and below which set to KE_SlipPct_FanHi. ; RPM bcc.s loc_2EF2A move.w (FAN_CONTROL_KE_SLIP_PCT_FANHI).l,(word_FFFF9DF8).w ; Percentage of fan power that PCt_Fan_Cmd_Modifier_Due_FanSlip is set to when fan drive speed is <= KE_SlipFanDriveHi. ; Percent bra.s loc_2EF34 ; --------------------------------------------------------------------------- loc_2EF2A: ; CODE XREF: sub_2EBD6+348j move.w d3,(word_FFFF9DF8).w bra.s loc_2EF34 ; --------------------------------------------------------------------------- loc_2EF30: ; CODE XREF: sub_2EBD6+2FEj ; sub_2EBD6+334j ... clr.b (byte_FFFF9E0B).w loc_2EF34: ; CODE XREF: sub_2EBD6+352j ; sub_2EBD6+358j tst.b (byte_FFFF9E0B).w beq.s loc_2EF4C move.w (word_FFFF9DF8).w,d4 move.w (FAN_CONTROL_KE_MAXFANSPWMGRADIENTNEG).l,d1 ; Maximum allowed rate of change in the decreasing direction when fan is operating in the slip power mode. ; Percent/Second move.w (FAN_CONTROL_KE_MAXFANSPWMGRADIENTPOS).l,d3 ; Maximum allowed rate of change in the increasing direction when fan is operating in the slip power mode. ; Percent/Second bra.s loc_2EF5C ; --------------------------------------------------------------------------- loc_2EF4C: ; CODE XREF: sub_2EBD6+362j move.w (word_FFFF9DFC).w,d4 move.w (FAN_CONTROL_KE_MAXFANPWMGRADIENTNEG).l,d1 ; Maximum allowed rate of change in the decreasing direction. ; Percent/Second move.w (FAN_CONTROL_KE_MAXFANPWMGRADIENTPOS).l,d3 ; Maximum allowed rate of change in the increasing direction. ; Percent/Second loc_2EF5C: ; CODE XREF: sub_2EBD6+374j move.w (word_FFFF9E00).w,d5 cmp.w d4,d5 bls.s loc_2EF7E sub.w d4,d5 bcc.s loc_2EF6A clr.w d5 loc_2EF6A: ; CODE XREF: sub_2EBD6+390j cmp.w d1,d5 bls.s loc_2EFA0 move.w (word_FFFF9E00).w,d3 sub.w d1,d3 bcc.s loc_2EF78 clr.w d3 loc_2EF78: ; CODE XREF: sub_2EBD6+39Ej ; sub_2EBD6+3C2j ... move.w d3,(word_FFFF9DFE).w bra.s loc_2EFA4 ; --------------------------------------------------------------------------- loc_2EF7E: ; CODE XREF: sub_2EBD6+38Cj cmp.w d4,d5 bcc.s loc_2EFA4 move.l d4,d5 sub.w (word_FFFF9E00).w,d5 bcc.s loc_2EF8C clr.w d5 loc_2EF8C: ; CODE XREF: sub_2EBD6+3B2j cmp.w d3,d5 bls.s loc_2EFA0 add.w (word_FFFF9E00).w,d3 cmpi.w #$1400,d3 bls.s loc_2EF78 move.w #$1400,d3 bra.s loc_2EF78 ; --------------------------------------------------------------------------- loc_2EFA0: ; CODE XREF: sub_2EBD6+396j ; sub_2EBD6+3B8j move.w d4,(word_FFFF9DFE).w loc_2EFA4: ; CODE XREF: sub_2EBD6+3A6j ; sub_2EBD6+3AAj movea.w (word_FFFF9DFE).w,a2 move.w a2,(word_FFFF9E00).w tst.b (byte_FFFF9E0E).w bne.s loc_2F000 move.w (word_FFFFAB66).w,d4 cmp.w (FAN_CONTROL_KE_WOT_FANSPEEDLIMIT).l,d4 ; Threshold of the throttle position sensor above which the reduction in Pct_Fan_Command is required due to Wide Open Throttle. ; Percent bls.s loc_2EFFC cmp.w (FAN_CONTROL_KE_WOT_COOLANTTEMP).l,d2 ; Threshold of the engine coolant temperature below which a reduction in Pct_Fan_Command is allowed due to Wide Open Throttle. ; Degrees C bge.s loc_2EFFC move.w (word_FFFFA3C2).w,d4 muls.w #$60,d4 ; '`' moveq #5,d2 divs.w d2,d4 cmp.w (FAN_CONTROL_KE_TEMPTRANSOILHI).l,d4 bge.s loc_2EFFC move.w (word_FFFFAD8E).w,d4 cmp.w (FAN_CONTROL_KE_AC_PRESSUREHIGH).l,d4 ; A thershold of the AC High-side pressure below which a reduction in PCT_Fan_Command is Allowed due to WOT conditions. ; PSI bcc.s loc_2EFFC move.w (GlobalClock).w,(word_FFFF9E08).w move.w (FAN_CONTROL_KE_WOT_PCT_FAN).l,(word_FFFF9DFA).w ; Percentage of fan power that is assigned to Pct_Fan_Command when Wide Open Throttle condition exists. ; Percent move.b #1,(byte_FFFF9E0E).w bra.s loc_2F000 ; --------------------------------------------------------------------------- loc_2EFFC: ; CODE XREF: sub_2EBD6+3E6j ; sub_2EBD6+3EEj ... move.w a2,(word_FFFF9DFA).w loc_2F000: ; CODE XREF: sub_2EBD6+3DAj ; sub_2EBD6+424j move.w (word_FFFF9E08).w,var_2(a6) move.w (GlobalClock).w,d4 sub.w var_2(a6),d4 cmp.w (FAN_CONTROL_KE_WOT_MAXDISABLE).l,d4 ; The maximum amount of time that Pct_Fan_Command is set to KE_WOT_Pct_Fan due to Wide Open Throttle condition. ; Seconds bcs.s loc_2F01A clr.b (byte_FFFF9E0E).w loc_2F01A: ; CODE XREF: sub_2EBD6+43Ej move.w (FAN_CONTROL_KE_FANRPM_MAX).l,d4 ; Max possible speed of the fan blades which corresponding to max available fan power. ; RPM sub.w (FAN_CONTROL_KE_FANRPM_OFFSET).l,d4 ; Min possible speed of the fan blades which corresponding to 0% fan power. ; RPM bcc.s loc_2F02A clr.w d4 loc_2F02A: ; CODE XREF: sub_2EBD6+450j move.w (word_FFFF9DFA).w,d3 asl.w #2,d3 andi.l #$FFFF,d3 divu.w #5,d3 mulu.w d4,d3 lsr.l #8,d3 lsr.l #4,d3 add.w (FAN_CONTROL_KE_FANRPM_OFFSET).l,d3 ; Min possible speed of the fan blades which corresponding to 0% fan power. ; RPM move.w d3,(word_FFFF9DAE).w cmp.w d0,d3 bls.s loc_2F054 move.w d0,(word_FFFF9DF6).w bra.s loc_2F058 ; --------------------------------------------------------------------------- loc_2F054: ; CODE XREF: sub_2EBD6+476j move.w d3,(word_FFFF9DF6).w loc_2F058: ; CODE XREF: sub_2EBD6+47Cj move.w (word_FFFF9DF4).w,d4 move.w (word_FFFF9DF6).w,d3 cmp.w d4,d3 bls.s loc_2F08C clr.l d5 move.w d4,d5 clr.l d4 move.w d3,d4 sub.l d5,d4 clr.l d1 move.w (FAN_CONTROL_KE_FANSPEED_INCR_RATE_LIMIT).l,d1 ; The maximum rate of increase of Fan Speed Desired. ; RPM cmp.l d1,d4 ble.s loc_2F0B2 move.w (word_FFFF9DF4).w,d3 add.w (FAN_CONTROL_KE_FANSPEED_INCR_RATE_LIMIT).l,d3 ; The maximum rate of increase of Fan Speed Desired. ; RPM bcc.s loc_2F0B2 move.w #$FFFF,d3 bra.s loc_2F0B2 ; --------------------------------------------------------------------------- loc_2F08C: ; CODE XREF: sub_2EBD6+48Cj clr.l d5 move.w d3,d5 andi.l #$FFFF,d4 sub.l d5,d4 clr.l d1 move.w (FAN_CONTROL_KE_FANSPEED_DECR_RATE_LIMIT).l,d1 ; The maximum rate of decrease of Fan Speed Desired. ; RPM cmp.l d1,d4 ble.s loc_2F0B2 move.w (word_FFFF9DF4).w,d3 sub.w (FAN_CONTROL_KE_FANSPEED_DECR_RATE_LIMIT).l,d3 ; The maximum rate of decrease of Fan Speed Desired. ; RPM bcc.s loc_2F0B2 clr.w d3 loc_2F0B2: ; CODE XREF: sub_2EBD6+4A2j ; sub_2EBD6+4AEj ... move.w d3,(word_FFFF9DF4).w move.w d3,d6 move.l d6,d1 move.w (EngineRPM_PID_000C___).w,d0 cmpi.w #$8000,d0 bcc.s loc_2F0C8 lsr.w #4,d0 bra.s loc_2F0CC ; --------------------------------------------------------------------------- loc_2F0C8: ; CODE XREF: sub_2EBD6+4ECj move.w #$800,d0 loc_2F0CC: ; CODE XREF: sub_2EBD6+4F0j cmpi.w #$51EC,d1 bcc.s loc_2F0DA mulu.w #$19,d1 lsr.l #7,d1 bra.s loc_2F0DE ; --------------------------------------------------------------------------- loc_2F0DA: ; CODE XREF: sub_2EBD6+4FAj move.w #$1000,d1 loc_2F0DE: ; CODE XREF: sub_2EBD6+502j moveq #9,d2 movea.l #FAN_CONTROL_KA_PCT_PWM,a0 ; PWM duty cycle required on the output driver, prior to adjustment due to fan speed feedback. ; Percent jsr sub_2696E move.w d0,(word_FFFF9DB0).w move.w (word_FFFF9DAC).w,d3 cmp.w d3,d6 bls.s loc_2F102 sub.w d3,d6 move.w d6,(word_FFFF9DB2).w moveq #1,d3 bra.s loc_2F10A ; --------------------------------------------------------------------------- loc_2F102: ; CODE XREF: sub_2EBD6+520j sub.w d6,d3 move.w d3,(word_FFFF9DB2).w clr.b d3 loc_2F10A: ; CODE XREF: sub_2EBD6+52Aj move.w (word_FFFF9DB2).w,d1 tst.b d3 beq.s loc_2F114 neg.w d1 loc_2F114: ; CODE XREF: sub_2EBD6+53Aj move.w (EngineRPM_PID_000C___).w,d0 clr.w d3 cmpi.w #$8000,d0 bcc.s loc_2F124 lsr.w #4,d0 bra.s loc_2F128 ; --------------------------------------------------------------------------- loc_2F124: ; CODE XREF: sub_2EBD6+548j move.w #$800,d0 loc_2F128: ; CODE XREF: sub_2EBD6+54Cj cmpi.w #$D70A,d1 bge.s loc_2F132 move.l d3,d1 bra.s loc_2F154 ; --------------------------------------------------------------------------- loc_2F132: ; CODE XREF: sub_2EBD6+556j move.l #$28F6,d6 cmp.w d1,d6 ble.s loc_2F150 ext.l d1 add.l d6,d1 muls.w #$19,d1 bpl.s loc_2F14C addi.l #$7F,d1 ; '' loc_2F14C: ; CODE XREF: sub_2EBD6+56Ej asr.l #7,d1 bra.s loc_2F154 ; --------------------------------------------------------------------------- loc_2F150: ; CODE XREF: sub_2EBD6+564j move.w #$1000,d1 loc_2F154: ; CODE XREF: sub_2EBD6+55Aj ; sub_2EBD6+578j moveq #9,d2 movea.l #FAN_CONTROL_KA_DELTA,a0 ; Amount of adjustment to the PWM duty cycle required on the output driver due to fan speed feedback. ; Percent_S jsr SurfaceTableLookup move.w d0,d3 add.w (word_FFFF9DB0).w,d3 cmpi.w #$7FFF,d3 bhi.s loc_2F17A cmpi.w #$1400,d3 bls.s loc_2F17C move.w #$1400,d3 bra.s loc_2F17C ; --------------------------------------------------------------------------- loc_2F17A: ; CODE XREF: sub_2EBD6+596j clr.w d3 loc_2F17C: ; CODE XREF: sub_2EBD6+59Cj ; sub_2EBD6+5A2j move.w d3,(word_FFFF9DAA).w move.w (word_FFFF9DAC).w,d3 cmp.w (FAN_CONTROL_KE_FANSPEEDLOW).l,d3 ; Defines the min fan speed threshold to prevent fan speed from dropping too low. ; RPM bcc.s loc_2F194 move.w (FAN_CONTROL_KE_LOWSPEEDPWM).l,(word_FFFF9DAA).w ; This value is commanded for fan speed when the fan speed drops too low. ; Percent loc_2F194: ; CODE XREF: sub_2EBD6+10j ; sub_2EBD6+1Aj ... movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_2EBD6 ; =============== S U B R O U T I N E ======================================= sub_2F19C: ; CODE XREF: OS1:00028AFAp move.l d1,-(sp) andi.w #$FF,d0 movea.l off_8A06C(d0.w*4),a2 jmp (a2) ; End of function sub_2F19C ; --------------------------------------------------------------------------- loc_2F1AC: ; DATA XREF: OS4:0008A074o move.w (FAN_CONTROL_KE_FAN1_ON_KEYOFF_TIME).l,(word_FFFF9DC8).w ; Amount of time to keep the fan on after the ignition key is turned off for fan runon. ; Seconds move.w (FAN_CONTROL_KE_FAN1_TURN_ON_DELAY).l,(word_FFFF9DBE).w ; Delay the off to on transition of the Fan1 output, for this amount of time. ; Seconds move.w (FAN_CONTROL_KE_FAN2_TURN_ON_DELAY).l,(word_FFFF9DC0).w ; Delay the off to on transition of the Fan2 output, for this amount of time. ; Seconds move.b #1,(byte_FFFF9E0D).w bra.w loc_2F266 ; --------------------------------------------------------------------------- loc_2F1CE: ; DATA XREF: OS4:0008A088o clr.b (byte_FFFF9DA2).w clr.b (byte_FFFF9DA4).w move.w (FAN_CONTROL_KE_FAN1_ON_KEYOFF_TIME).l,(word_FFFF9DC8).w ; Amount of time to keep the fan on after the ignition key is turned off for fan runon. ; Seconds move.w (FAN_CONTROL_KE_FAN1_TURN_ON_DELAY).l,(word_FFFF9DBE).w ; Delay the off to on transition of the Fan1 output, for this amount of time. ; Seconds clr.b (byte_FFFF9DA3).w bra.s loc_2F20E ; --------------------------------------------------------------------------- loc_2F1EC: ; DATA XREF: OS4:0008A090o clr.b (byte_FFFF9DA2).w move.w (FAN_CONTROL_KE_FAN1_TURN_ON_DELAY).l,(word_FFFF9DBE).w ; Delay the off to on transition of the Fan1 output, for this amount of time. ; Seconds tst.b (byte_FFFF9DA4).w bne.s loc_2F206 clr.b (byte_FFFF9DA5).w clr.w (word_FFFF9DC8).w loc_2F206: ; CODE XREF: OS1:0002F1FCj clr.b (byte_FFFF9DA3).w clr.b (byte_FFFF9DA6).w loc_2F20E: ; CODE XREF: OS1:0002F1EAj move.w (FAN_CONTROL_KE_FAN2_TURN_ON_DELAY).l,(word_FFFF9DC0).w ; Delay the off to on transition of the Fan2 output, for this amount of time. ; Seconds clr.b (byte_FFFF9DA0).w clr.b (byte_FFFF9DA1).w clr.b (byte_FFFF9DA8).w clr.w (word_FFFF9DAA).w clr.w (word_FFFF9DCE).w clr.w (word_FFFF9DCA).w clr.w (word_FFFF9E02).w clr.w (word_FFFF9E04).w clr.w (word_FFFF9E06).w clr.w (word_FFFF9DCC).w clr.w (word_FFFF9DFC).w clr.b (byte_FFFF9DA7).w clr.b (byte_FFFF9E0B).w clr.w (word_FFFF9DF8).w clr.w (word_FFFF9DFE).w clr.w (word_FFFF9DFA).w clr.w (word_FFFF9E08).w clr.w (word_FFFF9DB0).w clr.w (word_FFFF9DAE).w clr.w (word_FFFF9DB2).w loc_2F266: ; CODE XREF: OS1:0002F1CAj cmpi.b #3,(VEH_SYS_KE_TYPE_OF_FANS_ON_VEHICLE).l ; Type of engine cooling system supported on vehicle ; Unitless bne.w loc_2F2FA clr.b (byte_FFFF9E0F).w clr.b d1 move.w #$13C,d0 jsr (sub_1122).l bra.s loc_2F2FA ; --------------------------------------------------------------------------- loc_2F284: ; DATA XREF: OS4:off_8A06Co ; OS4:0008A070o ... clr.b (byte_FFFF9DA2).w move.w (FAN_CONTROL_KE_FAN1_ON_KEYOFF_TIME).l,(word_FFFF9DC8).w ; Amount of time to keep the fan on after the ignition key is turned off for fan runon. ; Seconds clr.b (byte_FFFF9DA3).w clr.b (byte_FFFF9DA1).w clr.b (byte_FFFF9DA8).w clr.w (word_FFFF9DAA).w clr.w (word_FFFF9DCE).w clr.w (word_FFFF9DCA).w clr.w (word_FFFF9E02).w clr.w (word_FFFF9E04).w clr.w (word_FFFF9E06).w clr.w (word_FFFF9DCC).w clr.w (word_FFFF9DFC).w clr.b (byte_FFFF9DA7).w clr.b (byte_FFFF9E0B).w clr.w (word_FFFF9DF8).w clr.w (word_FFFF9DFE).w clr.w (word_FFFF9DFA).w clr.w (word_FFFF9E08).w clr.w (word_FFFF9DB0).w clr.w (word_FFFF9DAE).w clr.w (word_FFFF9DB2).w cmpi.b #3,(VEH_SYS_KE_TYPE_OF_FANS_ON_VEHICLE).l ; Type of engine cooling system supported on vehicle ; Unitless bne.s loc_2F2FA clr.b (byte_FFFF9E0F).w clr.b d1 move.w #$13C,d0 jsr (sub_1122).l loc_2F2FA: ; CODE XREF: OS1:0002F26Ej ; OS1:0002F282j ... move.l (sp)+,d1 rts ; =============== S U B R O U T I N E ======================================= sub_2F2FE: ; CODE XREF: sub_2E438+96p clr.b d0 tst.b (byte_FFFFA45E).w bne.s loc_2F30E btst #0,(byte_FFFFA7DF).w beq.s loc_2F310 loc_2F30E: ; CODE XREF: sub_2F2FE+6j addq.b #1,d0 loc_2F310: ; CODE XREF: sub_2F2FE+Ej or.b (byte_FFFFAEAC).w,d0 rts ; End of function sub_2F2FE ; =============== S U B R O U T I N E ======================================= sub_2F316: ; CODE XREF: sub_2E27C+8p move.l d1,-(sp) move.w d0,d3 move.b (byte_FFFFA45E).w,d4 moveq #1,d5 cmp.b d4,d5 bne.s loc_2F32E move.w (word_FFFFA460).w,d0 loc_2F328: ; CODE XREF: sub_2F316+2Cj ; sub_2F316+32j ... move.b d5,(byte_FFFFA246).w bra.s loc_2F382 ; --------------------------------------------------------------------------- loc_2F32E: ; CODE XREF: sub_2F316+Cj moveq #2,d1 cmp.b d4,d1 bne.s loc_2F354 tst.b (byte_FFFFA45F).w bne.s loc_2F34A add.w (word_FFFFA460).w,d0 cmpi.w #$1400,d0 bls.s loc_2F328 move.w #$1400,d0 bra.s loc_2F328 ; --------------------------------------------------------------------------- loc_2F34A: ; CODE XREF: sub_2F316+22j sub.w (word_FFFFA460).w,d0 bcc.s loc_2F328 clr.w d0 bra.s loc_2F328 ; --------------------------------------------------------------------------- loc_2F354: ; CODE XREF: sub_2F316+1Cj btst #0,(byte_FFFFA7DF).w beq.s loc_2F370 clr.w d0 move.b (byte_FFFFA7EA).w,d0 mulu.w #$2FB,d0 divu.w #$26,d0 ; '&' move.b d1,(byte_FFFFA246).w bra.s loc_2F382 ; --------------------------------------------------------------------------- loc_2F370: ; CODE XREF: sub_2F316+44j tst.b (byte_FFFFAEAC).w beq.s loc_2F37E move.b #3,(byte_FFFFA246).w bra.s loc_2F382 ; --------------------------------------------------------------------------- loc_2F37E: ; CODE XREF: sub_2F316+5Ej clr.b (byte_FFFFA246).w loc_2F382: ; CODE XREF: sub_2F316+16j ; sub_2F316+58j ... move.l (sp)+,d1 rts ; End of function sub_2F316 ; =============== S U B R O U T I N E ======================================= sub_2F386: ; CODE XREF: sub_2D4F2+Cp movem.l d1-d2,-(sp) move.w d0,d4 tst.b (byte_FFFF9637).w beq.s loc_2F39C move.b #9,(byte_FFFFB2EB).w bra.w loc_2F472 ; --------------------------------------------------------------------------- loc_2F39C: ; CODE XREF: sub_2F386+Aj btst #5,(byte_FFFF9B2E).w beq.s loc_2F3AE move.b #1,(byte_FFFFB2EB).w bra.w loc_2F472 ; --------------------------------------------------------------------------- loc_2F3AE: ; CODE XREF: sub_2F386+1Cj move.b (byte_FFFFA456).w,d3 moveq #1,d5 cmp.b d3,d5 bne.s loc_2F3CE move.b #9,(byte_FFFFB2EB).w tst.b (byte_FFFFA457).w bne.w loc_2F472 move.w (word_FFFFA458).w,d0 bra.w loc_2F50C ; --------------------------------------------------------------------------- loc_2F3CE: ; CODE XREF: sub_2F386+30j moveq #2,d1 cmp.b d3,d1 bne.s loc_2F3FE move.b #9,(byte_FFFFB2EB).w tst.b (byte_FFFFA457).w bne.s loc_2F3F4 add.w (word_FFFFA458).w,d0 cmpi.w #$1400,d0 bls.w loc_2F50C move.w #$1400,d0 bra.w loc_2F50C ; --------------------------------------------------------------------------- loc_2F3F4: ; CODE XREF: sub_2F386+58j sub.w (word_FFFFA458).w,d0 bcc.w loc_2F50C bra.s loc_2F472 ; --------------------------------------------------------------------------- loc_2F3FE: ; CODE XREF: sub_2F386+4Cj btst #4,(word_FFFFA7DC+1).w bne.s loc_2F40E btst #0,(word_FFFFA7DC+1).w beq.s loc_2F426 loc_2F40E: ; CODE XREF: sub_2F386+7Ej move.b #9,(byte_FFFFB2EB).w clr.w d0 move.b (byte_FFFFA7E8).w,d0 mulu.w #$2FB,d0 divu.w #$26,d0 ; '&' bra.w loc_2F50C ; --------------------------------------------------------------------------- loc_2F426: ; CODE XREF: sub_2F386+86j tst.b (byte_FFFFAEAD).w beq.s loc_2F44A move.b (byte_FFFFB2EB).w,d3 beq.s loc_2F43C moveq #4,d2 cmp.b d3,d2 beq.s loc_2F43C cmp.b d3,d1 bne.s loc_2F44A loc_2F43C: ; CODE XREF: sub_2F386+AAj ; sub_2F386+B0j move.b #4,(byte_FFFFB2EB).w loc_2F442: ; CODE XREF: sub_2F386+124j ; sub_2F386+17Ej move.w (word_FFFFA62C).w,d0 bra.w loc_2F50C ; --------------------------------------------------------------------------- loc_2F44A: ; CODE XREF: sub_2F386+A4j ; sub_2F386+B4j btst #6,(byte_FFFF9E90).w beq.s loc_2F492 move.b (byte_FFFFB2EB).w,d3 beq.s loc_2F462 cmp.b d3,d1 beq.s loc_2F462 cmpi.b #4,d3 bne.s loc_2F492 loc_2F462: ; CODE XREF: sub_2F386+D0j ; sub_2F386+D4j move.b d1,(byte_FFFFB2EB).w move.b (byte_FFFF9E91).w,d3 cmp.b d3,d1 beq.s loc_2F472 tst.b d3 bne.s loc_2F478 loc_2F472: ; CODE XREF: sub_2F386+12j ; sub_2F386+24j ... clr.w d0 bra.w loc_2F50C ; --------------------------------------------------------------------------- loc_2F478: ; CODE XREF: sub_2F386+EAj cmp.b d3,d5 bne.w loc_2F50C move.w (word_FFFF9B52).w,d0 tblu.w (DI_EVAP_KV_EVAP_DIAG_PURGE_DUTY_CYCLE_LI).l,d0 ; ; cmp.w d4,d0 bcs.s loc_2F50C move.l d4,d0 bra.s loc_2F50C ; --------------------------------------------------------------------------- loc_2F492: ; CODE XREF: sub_2F386+CAj ; sub_2F386+DAj tst.b (byte_FFFFB06F).w beq.s loc_2F4AC move.b (byte_FFFFB2EB).w,d3 beq.s loc_2F4A4 cmpi.b #8,d3 bne.s loc_2F4AC loc_2F4A4: ; CODE XREF: sub_2F386+116j move.b #8,(byte_FFFFB2EB).w bra.s loc_2F442 ; --------------------------------------------------------------------------- loc_2F4AC: ; CODE XREF: sub_2F386+110j ; sub_2F386+11Cj btst #1,(byte_FFFFA068).w beq.s loc_2F4CC move.b (byte_FFFFB2EB).w,d3 beq.s loc_2F4C0 cmpi.b #3,d3 bne.s loc_2F4CC loc_2F4C0: ; CODE XREF: sub_2F386+132j move.b #3,(byte_FFFFB2EB).w move.w (word_FFFFA062).w,d0 bra.s loc_2F50C ; --------------------------------------------------------------------------- loc_2F4CC: ; CODE XREF: sub_2F386+12Cj ; sub_2F386+138j btst #6,(byte_FFFF9306).w beq.s loc_2F4EC move.b (byte_FFFFB2EB).w,d3 beq.s loc_2F4E0 cmpi.b #7,d3 bne.s loc_2F4EC loc_2F4E0: ; CODE XREF: sub_2F386+152j move.b #7,(byte_FFFFB2EB).w move.w (word_FFFF930A).w,d0 bra.s loc_2F50C ; --------------------------------------------------------------------------- loc_2F4EC: ; CODE XREF: sub_2F386+14Cj ; sub_2F386+158j tst.b (byte_FFFFA364).w beq.s loc_2F508 move.b (byte_FFFFB2EB).w,d3 beq.s loc_2F4FE moveq #6,d2 cmp.b d3,d2 bne.s loc_2F508 loc_2F4FE: ; CODE XREF: sub_2F386+170j move.b #6,(byte_FFFFB2EB).w bra.w loc_2F442 ; --------------------------------------------------------------------------- loc_2F508: ; CODE XREF: sub_2F386+16Aj ; sub_2F386+176j clr.b (byte_FFFFB2EB).w loc_2F50C: ; CODE XREF: sub_2F386+44j ; sub_2F386+62j ... movem.l (sp)+,d1-d2 rts ; End of function sub_2F386 ; =============== S U B R O U T I N E ======================================= sub_2F512: ; CODE XREF: sub_2D620+10p ; OS2:loc_4306Ep ... tst.b (byte_FFFFA47C).w beq.s loc_2F546 moveq #1,d4 move.b d4,(byte_FFFFB2EC).w move.b (byte_FFFFA47C).w,d3 cmp.b d3,d4 bne.s loc_2F538 tst.b (byte_FFFFA47D).w bne.s loc_2F532 loc_2F52C: ; CODE XREF: sub_2F512+32j move.l d4,d0 bra.w locret_2F5BA ; --------------------------------------------------------------------------- loc_2F532: ; CODE XREF: sub_2F512+18j ; sub_2F512+30j ... clr.b d0 bra.w locret_2F5BA ; --------------------------------------------------------------------------- loc_2F538: ; CODE XREF: sub_2F512+12j cmpi.b #2,d3 bne.s locret_2F5BA cmp.b (byte_FFFFA47D).w,d4 beq.s loc_2F532 bra.s loc_2F52C ; --------------------------------------------------------------------------- loc_2F546: ; CODE XREF: sub_2F512+4j tst.b (byte_FFFF9638).w beq.s loc_2F552 clr.b (byte_FFFFB2E8).w bra.s loc_2F532 ; --------------------------------------------------------------------------- loc_2F552: ; CODE XREF: sub_2F512+38j btst #5,(byte_FFFF9B2E).w beq.s loc_2F560 clr.b (byte_FFFFB2E8).w bra.s loc_2F5B8 ; --------------------------------------------------------------------------- loc_2F560: ; CODE XREF: sub_2F512+46j btst #3,(word_FFFFA7DC+1).w beq.s loc_2F580 clr.b (byte_FFFFB2E8).w clr.b d0 tst.b (byte_FFFFA47C).w bne.s loc_2F57C btst #7,(word_FFFFA7E2+1).w beq.s locret_2F5BA loc_2F57C: ; CODE XREF: sub_2F512+60j ; sub_2F512+86j addq.b #1,d0 bra.s locret_2F5BA ; --------------------------------------------------------------------------- loc_2F580: ; CODE XREF: sub_2F512+54j btst #4,(byte_FFFF9E90).w beq.s loc_2F59A move.b #1,(byte_FFFFB2E8).w clr.b d0 btst #5,(byte_FFFF9E90).w bne.s locret_2F5BA bra.s loc_2F57C ; --------------------------------------------------------------------------- loc_2F59A: ; CODE XREF: sub_2F512+74j btst #0,(word_FFFFACD4).w beq.s loc_2F5B2 move.b #1,(byte_FFFFB2E9).w tst.b (byte_FFFFA4AA).w seq d0 neg.b d0 bra.s locret_2F5BA ; --------------------------------------------------------------------------- loc_2F5B2: ; CODE XREF: sub_2F512+8Ej move.b #1,(byte_FFFFB2E8).w loc_2F5B8: ; CODE XREF: sub_2F512+4Cj moveq #1,d0 locret_2F5BA: ; CODE XREF: sub_2F512+1Cj ; sub_2F512+22j ... rts ; End of function sub_2F512 ; =============== S U B R O U T I N E ======================================= sub_2F5BC: ; CODE XREF: DoLoopD+12Ap movem.l d0-d1,-(sp) tst.b (byte_FFFFA478).w beq.s loc_2F62C moveq #1,d4 move.b d4,(byte_FFFFB2E4).w clr.b (byte_FFFFB2E0).w clr.w (word_FFFFB2E2).w move.b (byte_FFFFA478).w,d3 cmp.b d3,d4 bne.s loc_2F610 move.b #3,(byte_FFFFB2E5).w move.b (byte_FFFFA479).w,d3 bne.s loc_2F5F2 loc_2F5E8: ; CODE XREF: sub_2F5BC+64j move.w (word_FFFFA47A).w,(word_FFFFB2E6).w bra.w loc_2F700 ; --------------------------------------------------------------------------- loc_2F5F2: ; CODE XREF: sub_2F5BC+2Aj cmp.b d3,d4 bne.s loc_2F604 loc_2F5F6: ; CODE XREF: sub_2F5BC+6Ej move.w (word_FFFFA47A).w,d3 neg.w d3 move.w d3,(word_FFFFB2E6).w bra.w loc_2F700 ; --------------------------------------------------------------------------- loc_2F604: ; CODE XREF: sub_2F5BC+38j ; sub_2F5BC+58j ... clr.b (byte_FFFFB2E5).w clr.w (word_FFFFB2E6).w bra.w loc_2F700 ; --------------------------------------------------------------------------- loc_2F610: ; CODE XREF: sub_2F5BC+1Ej moveq #2,d5 cmp.b d3,d5 bne.s loc_2F604 move.b (byte_FFFFA479).w,d3 bne.s loc_2F622 move.b d5,(byte_FFFFB2E5).w bra.s loc_2F5E8 ; --------------------------------------------------------------------------- loc_2F622: ; CODE XREF: sub_2F5BC+5Ej cmp.b d3,d4 bne.s loc_2F604 move.b d4,(byte_FFFFB2E5).w bra.s loc_2F5F6 ; --------------------------------------------------------------------------- loc_2F62C: ; CODE XREF: sub_2F5BC+8j btst #1,(byte_FFFFA7DF).w beq.s loc_2F652 move.b #2,(byte_FFFFB2E4).w clr.w (word_FFFFB2E2).w clr.b (byte_FFFFB2E0).w move.w (word_FFFFA7EE).w,(word_FFFFB2E6).w move.b #3,(byte_FFFFB2E5).w bra.w loc_2F700 ; --------------------------------------------------------------------------- loc_2F652: ; CODE XREF: sub_2F5BC+76j move.b (byte_FFFFA474).w,d5 moveq #1,d0 cmp.b d5,d0 bne.s loc_2F660 moveq #3,d3 bra.s loc_2F684 ; --------------------------------------------------------------------------- loc_2F660: ; CODE XREF: sub_2F5BC+9Ej moveq #2,d1 cmp.b d5,d1 bne.s loc_2F670 tst.b (byte_FFFFA475).w bne.s loc_2F670 move.l d1,d3 bra.s loc_2F684 ; --------------------------------------------------------------------------- loc_2F670: ; CODE XREF: sub_2F5BC+A8j ; sub_2F5BC+AEj cmp.b d5,d1 bne.s loc_2F67E cmp.b (byte_FFFFA475).w,d0 bne.s loc_2F67E move.l d0,d3 bra.s loc_2F684 ; --------------------------------------------------------------------------- loc_2F67E: ; CODE XREF: sub_2F5BC+B6j ; sub_2F5BC+BCj tst.b d5 bne.s loc_2F684 clr.b d3 loc_2F684: ; CODE XREF: sub_2F5BC+A2j ; sub_2F5BC+B2j ... tst.b d3 beq.s loc_2F6C8 move.b d0,(byte_FFFFB2E4).w move.w (word_FFFFA476).w,(word_FFFFB2E2).w move.b (byte_FFFFA474).w,d3 cmp.b d3,d0 bne.s loc_2F69E moveq #3,d4 bra.s loc_2F6C2 ; --------------------------------------------------------------------------- loc_2F69E: ; CODE XREF: sub_2F5BC+DCj moveq #2,d5 cmp.b d3,d5 bne.s loc_2F6AE tst.b (byte_FFFFA475).w bne.s loc_2F6AE move.l d5,d4 bra.s loc_2F6C2 ; --------------------------------------------------------------------------- loc_2F6AE: ; CODE XREF: sub_2F5BC+E6j ; sub_2F5BC+ECj cmp.b d3,d5 bne.s loc_2F6BC cmp.b (byte_FFFFA475).w,d0 bne.s loc_2F6BC move.l d0,d4 bra.s loc_2F6C2 ; --------------------------------------------------------------------------- loc_2F6BC: ; CODE XREF: sub_2F5BC+F4j ; sub_2F5BC+FAj tst.b d3 bne.s loc_2F6C2 clr.b d4 loc_2F6C2: ; CODE XREF: sub_2F5BC+E0j ; sub_2F5BC+F0j ... move.b d4,(byte_FFFFB2E0).w bra.s loc_2F6F8 ; --------------------------------------------------------------------------- loc_2F6C8: ; CODE XREF: sub_2F5BC+CAj btst #2,(byte_FFFFA7DF).w beq.s loc_2F6EC move.b #2,(byte_FFFFB2E4).w clr.b (byte_FFFFB2E0).w clr.w (word_FFFFB2E6).w move.b #3,(byte_FFFFB2E0).w move.w (word_FFFFA7EC).w,(word_FFFFB2E2).w bra.s loc_2F700 ; --------------------------------------------------------------------------- loc_2F6EC: ; CODE XREF: sub_2F5BC+112j clr.b (byte_FFFFB2E4).w clr.w (word_FFFFB2E2).w clr.b (byte_FFFFB2E0).w loc_2F6F8: ; CODE XREF: sub_2F5BC+10Aj clr.w (word_FFFFB2E6).w clr.b (byte_FFFFB2E5).w loc_2F700: ; CODE XREF: sub_2F5BC+32j ; sub_2F5BC+44j ... tst.b (byte_FFFFB2E5).w seq d3 neg.b d3 move.b d3,(byte_FFFFB2EA).w movem.l (sp)+,d0-d1 rts ; End of function sub_2F5BC ; =============== S U B R O U T I N E ======================================= sub_2F712: ; CODE XREF: OS1:00028EE6p move.l d1,-(sp) move.b d0,d1 move sr,-(sp) ori #$700,sr jsr sub_32944 move.l d1,d0 jsr sub_34628 move.l d1,d0 jsr sub_2FC30 move.l d1,d0 jsr sub_2FF9E move.l d1,d0 jsr sub_308A8 move.l d1,d0 jsr sub_3140A move.l d1,d0 jsr sub_32510 move.l d1,d0 jsr sub_349E2 move.l d1,d0 jsr sub_33930 move.l d1,d0 jsr sub_3577C move.l d1,d0 jsr sub_33B84 move.l d1,d0 jsr sub_75DAE move (sp)+,sr move.l (sp)+,d1 rts ; End of function sub_2F712 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2F780: ; CODE XREF: DoLoopG+36p var_6 = -6 var_4 = -4 link a6,#-6 movem.l d0-d2/d6-a1/a4-a5,-(sp) tst.b (FUEL_COMPOSITION_KE_FLEX_FUEL_EQUIPPED).l ; Indicates that vehicle is flex fuel capable. ; TRUE/FALSE beq.w loc_2FADE lea (unk_FFFF9FDC).w,a1 lea (unk_FFFF9FEC).w,a0 moveq #7,d2 loc_2F79C: ; CODE XREF: sub_2F780+1Ej move.w (a1)+,(a0)+ dbf d2,loc_2F79C move.l (dword_FFFF9FF8).w,d2 cmp.l (dword_FFFF9FF0).w,d2 sne d2 neg.b d2 movea.l #unk_FF9FDC,a1 movea.l a1,a0 moveq #$40,d0 ; '@' jsr sub_82046 move.l (dword_FFFF9FE4).w,d7 cmp.l (dword_FFFF9FF4).w,d7 sne d7 neg.b d7 moveq #1,d1 lea var_6(a6),a0 moveq #$40,d0 ; '@' jsr sub_8212A and.b d2,d0 beq.s loc_2F7F2 move.w var_6(a6),d6 move.l var_4(a6),d2 cmpi.l #$FFFF,d2 bls.s loc_2F806 move.w #$FFFF,d2 bra.s loc_2F806 ; --------------------------------------------------------------------------- loc_2F7F2: ; CODE XREF: sub_2F780+5Aj clr.w d6 move.l d6,d2 tst.b d7 bne.s loc_2F806 lea (unk_FFFF9FDC).w,a2 moveq #$F,d3 loc_2F800: ; CODE XREF: sub_2F780+82j clr.w (a2)+ dbf d3,loc_2F800 loc_2F806: ; CODE XREF: sub_2F780+6Aj ; sub_2F780+70j ... tst.b (byte_FFFFA466).w beq.s loc_2F850 moveq #1,d0 move.b (byte_FFFFA466).w,d3 move.l d0,d7 cmp.b d3,d7 bne.s loc_2F82A tst.b (byte_FFFFA467).w bne.s loc_2F824 movea.w (word_FFFFA468).w,a4 bra.s loc_2F84E ; --------------------------------------------------------------------------- loc_2F824: ; CODE XREF: sub_2F780+9Cj movea.w #0,a4 bra.s loc_2F84E ; --------------------------------------------------------------------------- loc_2F82A: ; CODE XREF: sub_2F780+96j moveq #2,d7 cmp.b d3,d7 bne.s loc_2F84E move.l d0,d5 cmp.b (byte_FFFFA467).w,d5 bne.s loc_2F842 sub.w (word_FFFFA468).w,d6 bcc.s loc_2F84C clr.w d6 bra.s loc_2F84C ; --------------------------------------------------------------------------- loc_2F842: ; CODE XREF: sub_2F780+B6j add.w (word_FFFFA468).w,d6 bcc.s loc_2F84C move.w #$FFFF,d6 loc_2F84C: ; CODE XREF: sub_2F780+BCj ; sub_2F780+C0j ... movea.w d6,a4 loc_2F84E: ; CODE XREF: sub_2F780+A2j ; sub_2F780+A8j ... move.l a4,d6 loc_2F850: ; CODE XREF: sub_2F780+8Aj tst.b (byte_FFFFA46A).w beq.s loc_2F89A moveq #1,d0 move.b (byte_FFFFA46A).w,d3 move.l d0,d7 cmp.b d3,d7 bne.s loc_2F874 tst.b (byte_FFFFA46B).w bne.s loc_2F86E movea.w (word_FFFFA46C).w,a5 bra.s loc_2F898 ; --------------------------------------------------------------------------- loc_2F86E: ; CODE XREF: sub_2F780+E6j movea.w #0,a5 bra.s loc_2F898 ; --------------------------------------------------------------------------- loc_2F874: ; CODE XREF: sub_2F780+E0j moveq #2,d7 cmp.b d3,d7 bne.s loc_2F898 move.l d0,d5 cmp.b (byte_FFFFA46B).w,d5 bne.s loc_2F88C sub.w (word_FFFFA46C).w,d2 bcc.s loc_2F896 clr.w d2 bra.s loc_2F896 ; --------------------------------------------------------------------------- loc_2F88C: ; CODE XREF: sub_2F780+100j add.w (word_FFFFA46C).w,d2 bcc.s loc_2F896 move.w #$FFFF,d2 loc_2F896: ; CODE XREF: sub_2F780+106j ; sub_2F780+10Aj ... movea.w d2,a5 loc_2F898: ; CODE XREF: sub_2F780+ECj ; sub_2F780+F2j ... move.l a5,d2 loc_2F89A: ; CODE XREF: sub_2F780+D4j move.b d0,(byte_FFFF9FDA).w move.w d6,(word_FFFF9FC2).w move.w d2,(word_FFFF9FC0).w cmpi.b #4,(ThrottleControlMode2?).w beq.w loc_2F9EA move.b (byte_FFFF9FDA).w,d0 beq.s loc_2F900 move.w (FUEL_COMPOSITION_KE_FFS_COMPOSITION_SLOPE).l,d1 ; Proportional constant for determining fuel composition from the frequency of the FFS PWM input. ; Scaler_16_S ext.l d1 clr.l d4 move.w (FUEL_COMPOSITION_KE_FFS_0PCT_ALCOHOL_FREQUENCY).l,d4 ; Frequency of the FFS PWM input corresponding to 0% alcohol. ; Hertz clr.l d3 move.w (word_FFFF9FC2).w,d3 sub.l d4,d3 muls.l d3,d1 bvc.s loc_2F8D8 bmi.s loc_2F8FA bra.s loc_2F8F4 ; --------------------------------------------------------------------------- loc_2F8D8: ; CODE XREF: sub_2F780+152j cmpi.l #$7FFFFFFF,d1 bhi.s loc_2F8FA moveq #$C,d3 mulu.l d1,d3 bvs.s loc_2F8F4 divu.w #$3D7,d3 bvs.s loc_2F8F4 cmpi.w #$1400,d3 bls.s loc_2F8FC loc_2F8F4: ; CODE XREF: sub_2F780+156j ; sub_2F780+166j ... move.w #$1400,d3 bra.s loc_2F8FC ; --------------------------------------------------------------------------- loc_2F8FA: ; CODE XREF: sub_2F780+154j ; sub_2F780+15Ej clr.w d3 loc_2F8FC: ; CODE XREF: sub_2F780+172j ; sub_2F780+178j move.w d3,(word_FFFF9FFC).w loc_2F900: ; CODE XREF: sub_2F780+134j btst #1,(byte_FFFF8926).w bne.s loc_2F910 btst #1,(byte_FFFF8928).w beq.s loc_2F91A loc_2F910: ; CODE XREF: sub_2F780+186j move.w (FUEL_COMPOSITION_KE_FFS_COMPOSITION_DEFAULT).l,(word_FFFF8240).w ; Value to be used when fuel composition can not otherwise be determined. ; Percent bra.s loc_2F924 ; --------------------------------------------------------------------------- loc_2F91A: ; CODE XREF: sub_2F780+18Ej tst.b d0 beq.s loc_2F924 move.w (word_FFFF9FFC).w,(word_FFFF8240).w loc_2F924: ; CODE XREF: sub_2F780+198j ; sub_2F780+19Cj tst.b d0 beq.w loc_2F9C0 clr.l d1 move.w (FUEL_COMPOSITION_KE_FFS_MIN_TEMP_LOW_TIME).l,d1 ; Low time of FFS input PWM corresponding to the minimum temperature value measured by the Flex Fuel Sensor. ; Milliseconds clr.l d3 move.w (word_FFFF9FC0).w,d3 sub.l d1,d3 move.w (FUEL_COMPOSITION_KE_FFS_TEMPERATURE_SLOPE).l,d1 ; Proportional constant for determining fuel temperature from the low time of the Flex Fuel Sensor PWM input. ; Multiplier_-+_1000 ext.l d1 muls.l d3,d1 bvc.s loc_2F94C bmi.s loc_2F968 bra.s loc_2F962 ; --------------------------------------------------------------------------- loc_2F94C: ; CODE XREF: sub_2F780+1C6j cmpi.l #$7FFFFFFF,d1 bhi.s loc_2F968 moveq #$1D,d3 mulu.l d1,d3 bvs.s loc_2F962 divu.w #$753,d3 bvc.s loc_2F96A loc_2F962: ; CODE XREF: sub_2F780+1CAj ; sub_2F780+1DAj move.w #$FFFF,d3 bra.s loc_2F96A ; --------------------------------------------------------------------------- loc_2F968: ; CODE XREF: sub_2F780+1C8j ; sub_2F780+1D2j clr.w d3 loc_2F96A: ; CODE XREF: sub_2F780+1E0j ; sub_2F780+1E6j move.w (FUEL_COMPOSITION_KE_FFS_MIN_TEMPERATURE).l,d1 ; Minimum temperature value measured by the Flex Fuel Sensor. ; Degrees_C ext.l d1 andi.l #$FFFF,d3 add.l d1,d3 cmpi.l #$FFFF8000,d3 blt.s loc_2F996 cmpi.l #$7FFF,d3 bgt.s loc_2F990 cmpi.w #$DFF,d3 ble.s loc_2F99A loc_2F990: ; CODE XREF: sub_2F780+208j move.w #$DFF,d3 bra.s loc_2F99A ; --------------------------------------------------------------------------- loc_2F996: ; CODE XREF: sub_2F780+200j move.w #$FC00,d3 loc_2F99A: ; CODE XREF: sub_2F780+20Ej ; sub_2F780+214j move.w (FUEL_COMPOSITION_KE_FFS_MAX_TEMPERATURE).l,d4 ; Maximum temperature value measured by the Flex Fuel Sensor. ; Degrees_C cmp.w d4,d3 ble.s loc_2F9AA move.w d4,(word_FFFF9FFE).w bra.s loc_2F9AE ; --------------------------------------------------------------------------- loc_2F9AA: ; CODE XREF: sub_2F780+222j move.w d3,(word_FFFF9FFE).w loc_2F9AE: ; CODE XREF: sub_2F780+228j tst.b (byte_FFFF9FBA).w bne.s loc_2F9C0 move.w (word_FFFF9FFE).w,(word_FFFF9FBE).w moveq #1,d2 move.b d2,(byte_FFFF9FBA).w loc_2F9C0: ; CODE XREF: sub_2F780+1A6j ; sub_2F780+232j btst #1,(byte_FFFF892A).w bne.s loc_2F9DC btst #1,(byte_FFFF892C).w bne.s loc_2F9DC btst #1,(byte_FFFF892E).w bne.s loc_2F9DC tst.b d0 bne.s loc_2F9E4 loc_2F9DC: ; CODE XREF: sub_2F780+246j ; sub_2F780+24Ej ... move.w (word_FFFFB3E8).w,(word_FFFF9FBC).w bra.s loc_2F9EA ; --------------------------------------------------------------------------- loc_2F9E4: ; CODE XREF: sub_2F780+25Aj move.w (word_FFFF9FFE).w,(word_FFFF9FBC).w loc_2F9EA: ; CODE XREF: sub_2F780+12Cj ; sub_2F780+262j move.w (word_FFFF82E4).w,d3 movea.w (word_FFFF8242).w,a2 move.w (word_FFFF8240).w,d1 move.l d1,d0 sub.w a2,d0 move.l d3,d4 sub.w (word_FFFF824C).w,d4 andi.l #$FFFF,d4 divu.w #$B4,d4 ; '?' add.w (word_FFFF8248).w,d4 move.w d4,(word_FFFF8248).w move.w d3,(word_FFFF824C).w tst.b (byte_FFFF824A).w bne.s loc_2FA4C move.l d0,d2 tst.w d2 bge.s loc_2FA24 neg.w d2 loc_2FA24: ; CODE XREF: sub_2F780+2A0j cmp.w (FUEL_COMPOSITION_KE_FFS_COMP_CHANGE_THRESH).l,d2 ; Minimum fuel composition change to initiate an update of the filtered fuel composition. ; Percent bls.s loc_2FA4C tst.b (byte_FFFF8244).w bne.s loc_2FA3E move.w d1,(word_FFFF8242).w moveq #1,d1 move.b d1,(byte_FFFF8244).w bra.s loc_2FA4C ; --------------------------------------------------------------------------- loc_2FA3E: ; CODE XREF: sub_2F780+2B0j moveq #1,d1 move.b d1,(byte_FFFF824A).w move.w d4,(word_FFFF8250).w move.w a2,(word_FFFF824E).w loc_2FA4C: ; CODE XREF: sub_2F780+29Aj ; sub_2F780+2AAj ... cmpi.b #1,(byte_FFFF824A).w bne.s loc_2FA70 move.l d4,d3 sub.w (word_FFFF8250).w,d3 cmp.w (FUEL_COMPOSITION_KE_FFS_COMP_DELAY_VOLUME).l,d3 ; Volume of fuel to be consumed by the engine before a new fuel composition reaches the injector rail. ; Liters bcs.s loc_2FA70 moveq #2,d1 move.b d1,(byte_FFFF824A).w move.w d4,(word_FFFF8250).w move.w d0,(word_FFFF8246).w loc_2FA70: ; CODE XREF: sub_2F780+2D2j ; sub_2F780+2E0j cmpi.b #2,(byte_FFFF824A).w bne.s loc_2FAE8 move.l d4,d3 sub.w (word_FFFF8250).w,d3 tst.w (FUEL_COMPOSITION_KE_FFS_COMP_TRANSITION_VOLUME).l ; Volume of fuel consumed by the engine during which the transition occurs from the old fuel composition to a new one. ; Liters bne.s loc_2FA8C loc_2FA86: ; CODE XREF: sub_2F780+31Cj ; sub_2F780+322j move.w #$1000,d3 bra.s loc_2FAA4 ; --------------------------------------------------------------------------- loc_2FA8C: ; CODE XREF: sub_2F780+304j andi.l #$FFFF,d3 asl.l #8,d3 asl.l #4,d3 divu.w (FUEL_COMPOSITION_KE_FFS_COMP_TRANSITION_VOLUME).l,d3 ; Volume of fuel consumed by the engine during which the transition occurs from the old fuel composition to a new one. ; Liters bvs.s loc_2FA86 cmpi.w #$1000,d3 bhi.s loc_2FA86 loc_2FAA4: ; CODE XREF: sub_2F780+30Aj move.l d3,d4 muls.w (word_FFFF8246).w,d4 bpl.s loc_2FAB2 addi.l #$FFF,d4 loc_2FAB2: ; CODE XREF: sub_2F780+32Aj asr.l #8,d4 asr.l #4,d4 add.w (word_FFFF824E).w,d4 cmpi.w #$7FFF,d4 bhi.s loc_2FACC cmpi.w #$1400,d4 bls.s loc_2FACE move.w #$1400,d4 bra.s loc_2FACE ; --------------------------------------------------------------------------- loc_2FACC: ; CODE XREF: sub_2F780+33Ej clr.w d4 loc_2FACE: ; CODE XREF: sub_2F780+344j ; sub_2F780+34Aj move.w d4,(word_FFFF8242).w cmpi.w #$1000,d3 bne.s loc_2FAE8 clr.b (byte_FFFF824A).w bra.s loc_2FAE8 ; --------------------------------------------------------------------------- loc_2FADE: ; CODE XREF: sub_2F780+Ej clr.w (word_FFFF8240).w move.w (word_FFFFB3E8).w,(word_FFFF9FBC).w loc_2FAE8: ; CODE XREF: sub_2F780+2F6j ; sub_2F780+356j ... jsr sub_2FAFC jsr sub_2FC1E movem.l (sp)+,d0-d2/d6-a1/a4-a5 unlk a6 rts ; End of function sub_2F780 ; =============== S U B R O U T I N E ======================================= sub_2FAFC: ; CODE XREF: sub_2F780:loc_2FAE8p ; OS1:loc_2FC3Ep movem.l d0-d2/d6/a0,-(sp) move.w (word_FFFF8242).w,d3 asl.w #2,d3 andi.l #$FFFF,d3 divu.w #5,d3 tblu.w (FUEL_EQ_KV_STOICHIOMETRIC_FUEL_AIR).l,d3 ; Defines the ratio mass of fuel to mass of air for stoichiometric, based on alcohol content of fuel. ; Mult_0_to_1 move.w d3,(word_FFFF9FC4).w move.w (word_FFFF8242).w,d3 movea.w #$400,a2 move.w #$400,d6 cmp.w d3,d6 bcs.s loc_2FB30 lsr.w #1,d3 bra.s loc_2FB46 ; --------------------------------------------------------------------------- loc_2FB30: ; CODE XREF: sub_2FAFC+2Ej cmpi.w #$1000,d3 bcc.s loc_2FB44 sub.w a2,d3 ext.l d3 divs.w #6,d3 addi.w #$200,d3 bra.s loc_2FB46 ; --------------------------------------------------------------------------- loc_2FB44: ; CODE XREF: sub_2FAFC+38j move.l d6,d3 loc_2FB46: ; CODE XREF: sub_2FAFC+32j ; sub_2FAFC+46j move.w d3,(word_FFFFAEF8).w tblu.w (FUEL_EQ_KV_OPEN_LP_EQ_RATIO_BLEND_FACTOR).l,d3 move.w d3,(word_FFFF9FC6).w movea.w (word_FFFFAEE0).w,a2 movea.w (word_FFFFAEF8).w,a3 moveq #$13,d2 move.l a3,d1 move.l a2,d0 movea.l #$BC3E,a0 jsr sub_2696E move.w d0,(word_FFFF9FCE).w move.w (word_FFFFAEF8).w,d3 tblu.w (FUEL_DY_KV_K4_STOMP_COMP_DELTA_LIMIT).l,d3 ; Minimum delta fuel limit to add stomp compensation. ; Grams move.w d3,(word_FFFF9FCC).w move.w (word_FFFFAEF8).w,d3 tbls.w (FUEL_DY_KV_K5_STOMP_COMP_DELTA_LOW_LIMIT).l,d3 ; Delta mass threshold to disable throttle stomp compensation on tip outs. ; Grams move.w d3,(word_FFFF9FCA).w movea.w (word_FFFFAEE0).w,a2 movea.w (word_FFFFAEF8).w,a3 moveq #$13,d2 move.l a3,d1 move.l a2,d0 movea.l #$BD10,a0 jsr sub_2696E move.w d0,(word_FFFF9FD0).w movea.w (word_FFFFAEE0).w,a2 movea.w (word_FFFFAEF8).w,a3 moveq #$13,d2 move.l a3,d1 move.l a2,d0 movea.l #$BDCE,a0 jsr sub_2696E move.w d0,(word_FFFF9FD2).w movea.w (word_FFFFAEE0).w,a2 movea.w (word_FFFFAEF8).w,a3 moveq #$13,d2 move.l a3,d1 move.l a2,d0 movea.l #$BE8C,a0 jsr sub_2696E move.w d0,(word_FFFF9FD4).w move.w (word_FFFFAEE0).w,d0 move.w (word_FFFFAEF8).w,d1 moveq #$13,d2 movea.l #$BF4A,a0 jsr sub_2696E move.w d0,(word_FFFF9FD6).w move.w (word_FFFFAEF8).w,d3 tblu.w (ENG_TORQUE_KV_THERMAL_EFF_BLEND_FACTOR).l,d3 ; Interpolation fraction between E0 and E80 fuel for Indicated MBT Torque Efficiency tables. ; Mult_0_to_1 move.w d3,(word_FFFF9FD8).w movem.l (sp)+,d0-d2/d6/a0 rts ; End of function sub_2FAFC ; =============== S U B R O U T I N E ======================================= sub_2FC1E: ; CODE XREF: sub_2F780+36Ep ; OS1:0002FC44p move.w (word_FFFFAEF8).w,d3 tblu.w (SPARK_ADVANCE_KV_FFS_SPARK_BLEND_FACTOR).l,d3 ; Interpolation fraction used to determine the portion of the FFS_Spark to use. ; Mult_0_to_1 move.w d3,(word_FFFF9FC8).w rts ; End of function sub_2FC1E ; =============== S U B R O U T I N E ======================================= sub_2FC30: ; CODE XREF: sub_2F712+1Ap andi.w #$FF,d0 movea.l off_8A044(d0.w*4),a2 jmp (a2) ; End of function sub_2FC30 ; --------------------------------------------------------------------------- loc_2FC3E: ; DATA XREF: OS4:0008A04Co jsr sub_2FAFC jsr sub_2FC1E bra.s locret_2FC52 ; --------------------------------------------------------------------------- loc_2FC4C: ; DATA XREF: OS4:0008A050o ; OS4:0008A05Co bra.s locret_2FC52 ; --------------------------------------------------------------------------- loc_2FC4E: ; DATA XREF: OS4:off_8A044o ; OS4:0008A060o bra.s locret_2FC52 ; --------------------------------------------------------------------------- loc_2FC50: ; DATA XREF: OS4:0008A064o ; OS4:0008A068o nop locret_2FC52: ; CODE XREF: OS1:0002FC4Aj ; OS1:loc_2FC4Cj ... rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2FC54: ; CODE XREF: DoLoopG+148p var_2 = -2 link a6,#-2 move.b (byte_FFFFB252).w,var_2(a6) move.b (byte_FFFF82A6).w,var_2(a6) move.w (word_FFFFADB6).w,d3 addi.w #$400,d3 muls.w #5,d3 divs.w #6,d3 tblu.w (FUEL_CRANK_KV_PRIME_MIN_RUN_TIME).l,d3 ; This is the minimum engine run time required to allow a prime pulse to issued. ; Seconds andi.l #$FFFF,d3 cmp.l (EngineRunTime).w,d3 bcc.s loc_2FC8E move.b #1,(byte_FFFF82A6).w loc_2FC8E: ; CODE XREF: sub_2FC54+32j unlk a6 rts ; End of function sub_2FC54 ; =============== S U B R O U T I N E ======================================= sub_2FC92: ; CODE XREF: sub_299AC+48p ; DoLoopA+22Ep ... movem.l d0-d2/d6-a1/a4-a5,-(sp) cmpi.b #4,(ThrottleControlMode2?).w beq.w loc_2FF98 move.b (byte_FFFFB251).w,d0 move.l d0,d7 and.b (byte_FFFFB24F).w,d7 beq.s loc_2FCB6 move.w (word_FFFFE180).w,d3 cmp.w (word_FFFFE000).w,d3 bcc.s loc_2FCBE loc_2FCB6: ; CODE XREF: sub_2FC92+18j btst #6,(byte_FFFFA7E0).w beq.s loc_2FCCA loc_2FCBE: ; CODE XREF: sub_2FC92+22j jsr sub_7972E move.b #1,(byte_FFFFB24D).w loc_2FCCA: ; CODE XREF: sub_2FC92+2Aj move.w (word_FFFFE0C8).w,d3 cmp.w (FUEL_CRANK_KE_PRIME_FUEL_ENG_SPEED_DISABLE).l,d3 bcc.s loc_2FCF0 cmpi.w #3,(word_FFFFB24A).w bcs.s loc_2FCF0 tst.b (byte_FFFFB37A).w bne.s loc_2FCF0 jsr sub_7972E move.b #1,(byte_FFFFB24D).w loc_2FCF0: ; CODE XREF: sub_2FC92+42j ; sub_2FC92+4Aj ... move.w (word_FFFFADB6).w,d3 movea.w #$400,a1 add.w a1,d3 moveq #5,d7 muls.w d7,d3 moveq #6,d4 divs.w d4,d3 tblu.w (FUEL_CRANK_KV_FUEL_PRESSURE_DELAY).l,d3 ; Amount of time to delay after powerup before allowing key on prime pulse to be delivered. ; Seconds andi.l #$FFFF,d3 cmp.l (dword_FFFFAD24).w,d3 sls d3 neg.b d3 move.b d3,(byte_FFFFB24F).w tst.b (byte_FFFFB370).w beq.s loc_2FD28 move.w (word_FFFF900C).w,d3 bra.s loc_2FD2C ; --------------------------------------------------------------------------- loc_2FD28: ; CODE XREF: sub_2FC92+8Ej move.w (word_FFFFAB66).w,d3 loc_2FD2C: ; CODE XREF: sub_2FC92+94j tst.b (byte_FFFFA1EA).w beq.s loc_2FD3A cmp.w (FUEL_EQ_KE_CLEAR_FLOOD_THROTTLE_EXIT).l,d3 ; Threshold which throttle position must remain above for no crank or prime fuel to be delivered. ; Percent bra.s loc_2FD40 ; --------------------------------------------------------------------------- loc_2FD3A: ; CODE XREF: sub_2FC92+9Ej cmp.w (FUEL_EQ_KE_CLEAR_FLOOD_THROTTLE_ENTER).l,d3 ; Threshold which throttle position must initially cross for no crank or prime fuel to be delivered. ; Percent loc_2FD40: ; CODE XREF: sub_2FC92+A6j shi d3 neg.b d3 move.b d3,(byte_FFFFA1EA).w beq.s loc_2FD5A clr.w (word_FFFFB258).w clr.w (word_FFFFB254).w clr.w (word_FFFFB248).w bra.w loc_2FEA0 ; --------------------------------------------------------------------------- loc_2FD5A: ; CODE XREF: sub_2FC92+B6j tst.b d0 bne.w loc_2FEA0 move.w (word_FFFFAEE2).w,d4 tblu.b (FUEL_CRANK_KV_FIRST_OCTIFIRE_REF_COUNT).l,d4 move.w (word_FFFFB24A).w,d0 clr.l d2 move.b d4,d2 cmp.w d0,d2 bhi.w loc_2FDFE move.w (CoolantTemperatureOrDefault).w,d3 add.w a1,d3 muls.w d7,d3 moveq #6,d2 divs.w d2,d3 tblu.w (FUEL_CRANK_KV_FIRST_PULSE_MASS).l,d3 ; This is the mass of fuel to be injected on the first simultaneous, synchronous (octifire) injection. ; Grams move.w d3,(word_FFFFB258).w tst.b (byte_FFFFB24E).w beq.s loc_2FDFE move.l (dword_FFFFBF12).w,d3 move.l #locret_23280,d1 cmp.l d3,d1 bcs.s loc_2FDAE add.l d3,d3 moveq #$4B,d6 ; 'K' divu.w d6,d3 bra.s loc_2FDE2 ; --------------------------------------------------------------------------- loc_2FDAE: ; CODE XREF: sub_2FC92+112j cmpi.l #$119400,d3 bhi.s loc_2FDC6 sub.l d1,d3 add.l d3,d3 move.w #$465,d6 divu.w d6,d3 addi.w #$F00,d3 bra.s loc_2FDE2 ; --------------------------------------------------------------------------- loc_2FDC6: ; CODE XREF: sub_2FC92+122j cmpi.l #$465000,d3 bcc.s loc_2FDDE subi.l #$119400,d3 divu.w #$8CA,d3 addi.w #$1600,d3 bra.s loc_2FDE2 ; --------------------------------------------------------------------------- loc_2FDDE: ; CODE XREF: sub_2FC92+13Aj move.w #$1C00,d3 loc_2FDE2: ; CODE XREF: sub_2FC92+11Aj ; sub_2FC92+132j ... tblu.w (FUEL_CRANK_KV_OCTIFIRE1_SOAKTIMER_MODIFIER).l,d3 ; A modifier to First_Octifire_Prime based on soaktimerif enabled. ; NONE 0_2 mulu.w (word_FFFFB258).w,d3 move.w #$800,d6 divu.w d6,d3 bvc.s loc_2FDFA move.w #$FFFF,d3 loc_2FDFA: ; CODE XREF: sub_2FC92+162j move.w d3,(word_FFFFB258).w loc_2FDFE: ; CODE XREF: sub_2FC92+E4j ; sub_2FC92+104j move.w (word_FFFFAEE2).w,d3 tblu.b (FUEL_CRANK_KV_SECOND_OCTIFIRE_REF_OFFSET).l,d3 add.b d3,d4 bcc.s loc_2FE12 move.b #$FF,d4 loc_2FE12: ; CODE XREF: sub_2FC92+17Aj andi.w #$FF,d4 cmp.w d0,d4 bhi.w loc_2FEA0 move.w (CoolantTemperatureOrDefault).w,d3 add.w a1,d3 muls.w d7,d3 divs.w #6,d3 tblu.w (FUEL_CRANK_KV_SECOND_PULSE_MASS).l,d3 move.w d3,(word_FFFFB254).w tst.b (byte_FFFFB24E).w beq.s loc_2FE9A move.l (dword_FFFFBF12).w,d3 move.l #locret_23280,d4 cmp.l d3,d4 bcs.s loc_2FE50 add.l d3,d3 divu.w #$4B,d3 ; 'K' bra.s loc_2FE80 ; --------------------------------------------------------------------------- loc_2FE50: ; CODE XREF: sub_2FC92+1B4j move.l #$119400,d2 cmp.l d3,d2 bcs.s loc_2FE68 sub.l d4,d3 add.l d3,d3 divu.w #$465,d3 addi.w #$F00,d3 bra.s loc_2FE80 ; --------------------------------------------------------------------------- loc_2FE68: ; CODE XREF: sub_2FC92+1C6j cmpi.l #$465000,d3 bcc.s loc_2FE7C sub.l d2,d3 divu.w #$8CA,d3 addi.w #$1600,d3 bra.s loc_2FE80 ; --------------------------------------------------------------------------- loc_2FE7C: ; CODE XREF: sub_2FC92+1DCj move.w #$1C00,d3 loc_2FE80: ; CODE XREF: sub_2FC92+1BCj ; sub_2FC92+1D4j ... tblu.w (FUEL_CRANK_KV_OCTIFIRE2_SOAKTIMER_MODIFIER).l,d3 ; A modifier to Second_Octifire_Prime based on soaktimerif enabled. ; NONE 0_2 mulu.w (word_FFFFB254).w,d3 divu.w #$800,d3 bvc.s loc_2FE96 move.w #$FFFF,d3 loc_2FE96: ; CODE XREF: sub_2FC92+1FEj move.w d3,(word_FFFFB254).w loc_2FE9A: ; CODE XREF: sub_2FC92+1A6j move.b #1,(byte_FFFFB251).w loc_2FEA0: ; CODE XREF: sub_2FC92+C4j ; sub_2FC92+CAj ... tst.b (byte_FFFFBEF1).w bne.w loc_2FF52 move.b (byte_FFFFA59C).w,d3 btst #3,d3 bne.w loc_2FF52 btst #1,(byte_FFFF803D).w bne.w loc_2FF52 btst #0,(byte_FFFF803D).w bne.w loc_2FF52 tst.b (byte_FFFFB472).w bne.w loc_2FF52 tst.b (byte_FFFFB24F).w beq.s loc_2FF52 clr.l d3 move.w (word_FFFFB258).w,d3 clr.l d6 move.w (word_FFFFB256).w,d6 add.l d3,d6 clr.l d3 move.w (word_FFFFB254).w,d3 add.l d3,d6 cmpi.l #$FFFF,d6 bls.s loc_2FEF8 move.w #$FFFF,d6 loc_2FEF8: ; CODE XREF: sub_2FC92+260j move.w (word_FFFF82D2).w,d3 clr.w d5 cmpi.w #$C00,d3 bcc.s loc_2FF08 move.l d5,d3 bra.s loc_2FF1A ; --------------------------------------------------------------------------- loc_2FF08: ; CODE XREF: sub_2FC92+270j cmpi.w #$1400,d3 bcc.s loc_2FF16 lsr.w #1,d3 subi.w #$600,d3 bra.s loc_2FF1A ; --------------------------------------------------------------------------- loc_2FF16: ; CODE XREF: sub_2FC92+27Aj move.w #$400,d3 loc_2FF1A: ; CODE XREF: sub_2FC92+274j ; sub_2FC92+282j movea.l #$B7C2,a2 tblu.w (a2),d3 mulu.w d3,d6 lsr.l #8,d6 lsr.l #4,d6 move.w (word_FFFFAEE0).w,d0 move.w (word_FFFFAEF8).w,d1 moveq #$13,d2 movea.l #$B948,a0 jsr sub_2696E mulu.w d0,d6 divu.w #$1000,d6 bvc.s loc_2FF4C move.w #$FFFF,d6 loc_2FF4C: ; CODE XREF: sub_2FC92+2B4j move.w d6,(word_FFFFB248).w bra.s loc_2FF56 ; --------------------------------------------------------------------------- loc_2FF52: ; CODE XREF: sub_2FC92+212j ; sub_2FC92+21Ej ... clr.w (word_FFFFB248).w loc_2FF56: ; CODE XREF: sub_2FC92+2BEj move.w (word_FFFFB248).w,d0 jsr sub_345E6 move.b (byte_FFFFB24F).w,d3 and.b (byte_FFFF82A6).w,d3 beq.s loc_2FF8A tst.b (FUEL_CRANK_KE_USE_FUEL_PUMP_DEVELOPMENT_SW).l ; If TRUE look at Pin J1-52 to check if FP dev switch is open, if so don't deliver prime pulse. ; BOOLEAN beq.s loc_2FF7A btst #7,(byte_FFFFBF31).w beq.s loc_2FF8A loc_2FF7A: ; CODE XREF: sub_2FC92+2DEj tst.b (byte_FFFFB252).w bne.s loc_2FF8A move.b #1,(byte_FFFFB252).w clr.b (byte_FFFF82A6).w loc_2FF8A: ; CODE XREF: sub_2FC92+2D6j ; sub_2FC92+2E6j ... move.b #$FF,d1 move.w (word_FFFFB0F0).w,d0 jsr sub_32828 loc_2FF98: ; CODE XREF: sub_2FC92+Aj movem.l (sp)+,d0-d2/d6-a1/a4-a5 rts ; End of function sub_2FC92 ; =============== S U B R O U T I N E ======================================= sub_2FF9E: ; CODE XREF: sub_2F712+22p movem.l d1-d2/d6/a0,-(sp) andi.w #$FF,d0 movea.l off_8A2C4(d0.w*4),a2 jmp (a2) ; End of function sub_2FF9E ; --------------------------------------------------------------------------- aBxVbxHbxXbxTb8:dc.b 'Bx?VBx?HBx?XBx?TB8?MB8?QB8?rJ8?Pg',8,'N?',0 ; DATA XREF: OS4:off_8A2C4o dc.b 3 ; --------------------------------------------------------------------------- movea.l $6006(a2),sp jsr sub_32DC6 clr.w (word_FFFFB24A).w bra.w loc_30362 ; --------------------------------------------------------------------------- loc_2FFE8: ; DATA XREF: OS4:0008A2C8o clr.w (word_FFFFB256).w bra.w loc_30362 ; --------------------------------------------------------------------------- loc_2FFF0: ; DATA XREF: OS4:0008A2CCo clr.b d3 move.w (FUEL_CRANK_KE_CRANK_SEQUENTIAL_COOLANT_ENAB).l,d4 ; Enable sequential fueling during crank when coolant temperature is less than this calibration. ; Degrees_C cmp.w (CoolantTemperatureOrDefault).w,d4 bgt.s loc_30004 cmpi.w #$DFF,d4 loc_30002: ; DATA XREF: Calibration:0000A812o ; Calibration:0000F320o ... bne.s loc_30006 loc_30004: ; CODE XREF: OS1:0002FFFCj ; DATA XREF: Calibration:0000F32Eo ... addq.b #1,d3 loc_30006: ; CODE XREF: OS1:loc_30002j move.b d3,(byte_FFFFB250).w tst.b (byte_FFFFB54A).w bne.s loc_3001A clr.b (byte_FFFF82A6).w move.l (dword_FFFFBF12).w,(dword_FFFF82A8).w loc_3001A: ; CODE XREF: OS1:0003000Ej clr.w (word_FFFFB256).w clr.w (word_FFFFB248).w clr.w (word_FFFFB258).w clr.w (word_FFFFB254).w clr.b (byte_FFFFB24D).w clr.b (byte_FFFFB251).w clr.b (byte_FFFFB252).w clr.w (word_FFFFB24A).w clr.b (byte_FFFFB272).w tst.b (byte_FFFFB250).w beq.s loc_3004C jsr sub_32E6A bra.s loc_30052 ; --------------------------------------------------------------------------- loc_3004C: ; CODE XREF: OS1:00030042j jsr sub_32DC6 loc_30052: ; CODE XREF: OS1:0003004Aj move.l (dword_FFFFBF12).w,d3 sub.l (dword_FFFF82A8).w,d3 cmp.l (FUEL_CRANK_KE_KEY_ON_PRIME_REENABLE_TIME).l,d3 ; Key-on Prime is delivered if the previous key-on primedelivered was at least this time ago which is based onthe soak timer. ; Seconds ble.s loc_30068 move.b #1,(byte_FFFF82A6).w loc_30068: ; CODE XREF: OS1:00030060j move.l (dword_FFFF81BA).w,d3 cmp.l (FUEL_CRANK_KE_SOAKTIMER_ENG_RUNTIME_LIMIT).l,d3 bcc.s loc_30088 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (FUEL_CRANK_KE_SOAKTIMER_COOLANT_LIMIT).l,d3 bge.s loc_30088 move.b #1,(byte_FFFFB24E).w bra.s loc_3008C ; --------------------------------------------------------------------------- loc_30088: ; CODE XREF: OS1:00030072j ; OS1:0003007Ej clr.b (byte_FFFFB24E).w loc_3008C: ; CODE XREF: OS1:00030086j tst.b (byte_FFFFAD22).w beq.w loc_30148 tst.b (byte_FFFFB250).w bne.w loc_30148 tst.b (byte_FFFF82A6).w beq.w loc_30148 btst #7,(byte_FFFFBF31).w bne.s loc_300B6 tst.b (FUEL_CRANK_KE_USE_FUEL_PUMP_DEVELOPMENT_SW).l ; If TRUE look at Pin J1-52 to check if FP dev switch is open, if so don't deliver prime pulse. ; BOOLEAN bne.w loc_30148 loc_300B6: ; CODE XREF: OS1:000300AAj move.w (CoolantTemperatureOrDefault).w,d3 addi.w #$400,d3 moveq #5,d0 muls.w d0,d3 moveq #6,d1 divs.w d1,d3 tblu.w (FUEL_CRANK_KV_PRIME_PULSE_MASS).l,d3 ; This is the mass of fuel to be injected on the first simultaneous, nonsynchronous (Prime) injection. ; Grams move.w d3,(word_FFFFB256).w tst.b (byte_FFFFB24E).w beq.s loc_30138 move.l (dword_FFFFBF12).w,d3 move.l #locret_23280,d2 cmp.l d3,d2 bcs.s loc_300EE add.l d3,d3 divu.w #$4B,d3 ; 'K' bra.s loc_3011E ; --------------------------------------------------------------------------- loc_300EE: ; CODE XREF: OS1:000300E4j move.l #$119400,d6 cmp.l d3,d6 bcs.s loc_30106 sub.l d2,d3 add.l d3,d3 divu.w #$465,d3 loc_30100: ; DATA XREF: OS4:000884CAo addi.w #$F00,d3 bra.s loc_3011E ; --------------------------------------------------------------------------- loc_30106: ; CODE XREF: OS1:000300F6j cmpi.l #$465000,d3 bcc.s loc_3011A sub.l d6,d3 divu.w #$8CA,d3 addi.w #$1600,d3 bra.s loc_3011E ; --------------------------------------------------------------------------- loc_3011A: ; CODE XREF: OS1:0003010Cj move.w #$1C00,d3 loc_3011E: ; CODE XREF: OS1:000300ECj ; OS1:00030104j ... tblu.w (FUEL_CRANK_KV_KEY_ON_SOAKTIMER_MODIFIER).l,d3 ; A modifier to Key_On_Prime based on soaktimer if enabled. ; NONE 0_2 mulu.w (word_FFFFB256).w,d3 divu.w #$800,d3 bvc.s loc_30134 move.w #$FFFF,d3 loc_30134: ; CODE XREF: OS1:0003012Ej move.w d3,(word_FFFFB256).w loc_30138: ; CODE XREF: OS1:000300D6j move.b #1,(byte_FFFFB252).w clr.b (byte_FFFF82A6).w move.l (dword_FFFFBF12).w,(dword_FFFF82A8).w loc_30148: ; CODE XREF: OS1:00030090j ; OS1:00030098j ... tst.b (byte_FFFFB250).w bne.s loc_30158 jsr sub_2FC92 bra.w loc_30362 ; --------------------------------------------------------------------------- loc_30158: ; CODE XREF: OS1:0003014Cj move.w (word_FFFFADB6).w,d3 addi.w #$400,d3 muls.w #5,d3 divs.w #6,d3 tblu.w (FUEL_CRANK_KV_FUEL_PRESSURE_DELAY).l,d3 ; Amount of time to delay after powerup before allowing key on prime pulse to be delivered. ; Seconds andi.l #$FFFF,d3 cmp.l (dword_FFFFAD24).w,d3 sls d3 neg.b d3 move.b d3,(byte_FFFFB24F).w bra.w loc_30362 ; --------------------------------------------------------------------------- loc_30186: ; DATA XREF: OS4:0008A2D0o clr.b d3 move.w (FUEL_CRANK_KE_CRANK_SEQUENTIAL_COOLANT_ENAB).l,d4 ; Enable sequential fueling during crank when coolant temperature is less than this calibration. ; Degrees_C cmp.w (CoolantTemperatureOrDefault).w,d4 bgt.s loc_3019A cmpi.w #$DFF,d4 bne.s loc_3019C loc_3019A: ; CODE XREF: OS1:00030192j addq.b #1,d3 loc_3019C: ; CODE XREF: OS1:00030198j move.b d3,(byte_FFFFB250).w clr.w (word_FFFFB256).w clr.w (word_FFFFB248).w clr.w (word_FFFFB258).w clr.w (word_FFFFB254).w clr.b (byte_FFFFB24D).w clr.b (byte_FFFFB251).w clr.b (byte_FFFFB252).w clr.w (word_FFFFB24A).w clr.b (byte_FFFFB272).w tst.b (byte_FFFFB250).w beq.s loc_301D2 jsr sub_32E6A bra.s loc_301D8 ; --------------------------------------------------------------------------- loc_301D2: ; CODE XREF: OS1:000301C8j jsr sub_32DC6 loc_301D8: ; CODE XREF: OS1:000301D0j move.l (dword_FFFF81BA).w,d3 cmp.l (FUEL_CRANK_KE_SOAKTIMER_ENG_RUNTIME_LIMIT).l,d3 bcc.s loc_301F8 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (FUEL_CRANK_KE_SOAKTIMER_COOLANT_LIMIT).l,d3 bge.s loc_301F8 move.b #1,(byte_FFFFB24E).w bra.s loc_301FC ; --------------------------------------------------------------------------- loc_301F8: ; CODE XREF: OS1:000301E2j ; OS1:000301EEj clr.b (byte_FFFFB24E).w loc_301FC: ; CODE XREF: OS1:000301F6j tst.b (byte_FFFFB250).w bne.w loc_302B8 tst.b (byte_FFFF82A6).w beq.w loc_302B0 btst #7,(byte_FFFFBF31).w bne.s loc_3021E tst.b (FUEL_CRANK_KE_USE_FUEL_PUMP_DEVELOPMENT_SW).l ; If TRUE look at Pin J1-52 to check if FP dev switch is open, if so don't deliver prime pulse. ; BOOLEAN bne.w loc_302B0 loc_3021E: ; CODE XREF: OS1:00030212j move.w (CoolantTemperatureOrDefault).w,d3 addi.w #$400,d3 muls.w #5,d3 divs.w #6,d3 tblu.w (FUEL_CRANK_KV_PRIME_PULSE_MASS).l,d3 ; This is the mass of fuel to be injected on the first simultaneous, nonsynchronous (Prime) injection. ; Grams move.w d3,(word_FFFFB256).w tst.b (byte_FFFFB24E).w beq.s loc_302A0 move.l (dword_FFFFBF12).w,d3 move.l #locret_23280,d0 cmp.l d3,d0 bcs.s loc_30256 add.l d3,d3 divu.w #$4B,d3 ; 'K' bra.s loc_30286 ; --------------------------------------------------------------------------- loc_30256: ; CODE XREF: OS1:0003024Cj move.l #$119400,d1 cmp.l d3,d1 bcs.s loc_3026E sub.l d0,d3 add.l d3,d3 divu.w #$465,d3 addi.w #$F00,d3 bra.s loc_30286 ; --------------------------------------------------------------------------- loc_3026E: ; CODE XREF: OS1:0003025Ej cmpi.l #$465000,d3 bcc.s loc_30282 sub.l d1,d3 divu.w #$8CA,d3 addi.w #$1600,d3 bra.s loc_30286 ; --------------------------------------------------------------------------- loc_30282: ; CODE XREF: OS1:00030274j move.w #$1C00,d3 loc_30286: ; CODE XREF: OS1:00030254j ; OS1:0003026Cj ... tblu.w (FUEL_CRANK_KV_KEY_ON_SOAKTIMER_MODIFIER).l,d3 ; A modifier to Key_On_Prime based on soaktimer if enabled. ; NONE 0_2 mulu.w (word_FFFFB256).w,d3 divu.w #$800,d3 bvc.s loc_3029C move.w #$FFFF,d3 loc_3029C: ; CODE XREF: OS1:00030296j move.w d3,(word_FFFFB256).w loc_302A0: ; CODE XREF: OS1:0003023Ej move.b #1,(byte_FFFFB252).w clr.b (byte_FFFF82A6).w move.l (dword_FFFFBF12).w,(dword_FFFF82A8).w loc_302B0: ; CODE XREF: OS1:00030208j ; OS1:0003021Aj jsr sub_2FC92 bra.s loc_302E2 ; --------------------------------------------------------------------------- loc_302B8: ; CODE XREF: OS1:00030200j move.w (word_FFFFADB6).w,d3 addi.w #$400,d3 muls.w #5,d3 divs.w #6,d3 tblu.w (FUEL_CRANK_KV_FUEL_PRESSURE_DELAY).l,d3 ; Amount of time to delay after powerup before allowing key on prime pulse to be delivered. ; Seconds andi.l #$FFFF,d3 cmp.l (dword_FFFFAD24).w,d3 sls d3 neg.b d3 move.b d3,(byte_FFFFB24F).w loc_302E2: ; CODE XREF: OS1:000302B6j ; DATA XREF: OS4:0008A2D4o bra.s loc_30362 ; --------------------------------------------------------------------------- loc_302E4: ; DATA XREF: OS4:0008A2DCo clr.b d3 move.w (FUEL_CRANK_KE_CRANK_SEQUENTIAL_COOLANT_ENAB).l,d4 ; Enable sequential fueling during crank when coolant temperature is less than this calibration. ; Degrees_C cmp.w (CoolantTemperatureOrDefault).w,d4 bgt.s loc_302F8 cmpi.w #$DFF,d4 bne.s loc_302FA loc_302F8: ; CODE XREF: OS1:000302F0j addq.b #1,d3 loc_302FA: ; CODE XREF: OS1:000302F6j move.b d3,(byte_FFFFB250).w clr.w (word_FFFFB256).w clr.w (word_FFFFB248).w clr.w (word_FFFFB258).w clr.w (word_FFFFB254).w clr.b (byte_FFFFB24D).w clr.b (byte_FFFFB251).w clr.w (word_FFFFB24A).w clr.b (byte_FFFFB272).w tst.b (byte_FFFFB250).w beq.s loc_3032C jsr sub_32E6A bra.s loc_30332 ; --------------------------------------------------------------------------- loc_3032C: ; CODE XREF: OS1:00030322j jsr sub_32DC6 loc_30332: ; CODE XREF: OS1:0003032Aj move.l (dword_FFFF81BA).w,d3 cmp.l (FUEL_CRANK_KE_SOAKTIMER_ENG_RUNTIME_LIMIT).l,d3 bcc.s loc_30352 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (FUEL_CRANK_KE_SOAKTIMER_COOLANT_LIMIT).l,d3 bge.s loc_30352 move.b #1,(byte_FFFFB24E).w bra.s loc_3035E ; --------------------------------------------------------------------------- loc_30352: ; CODE XREF: OS1:0003033Cj ; OS1:00030348j clr.b (byte_FFFFB24E).w bra.s loc_3035E ; --------------------------------------------------------------------------- loc_30358: ; DATA XREF: OS4:0008A2E0o ; OS4:0008A2E4o bra.s loc_30362 ; --------------------------------------------------------------------------- loc_3035A: ; DATA XREF: OS4:0008A2E8o clr.w (word_FFFFB256).w loc_3035E: ; CODE XREF: OS1:00030350j ; OS1:00030356j clr.l (dword_FFFF82A8).w loc_30362: ; CODE XREF: OS1:0002FFE4j ; OS1:0002FFECj ... movem.l (sp)+,d1-d2/d6/a0 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_30368: ; CODE XREF: DoLoopB:loc_2A0D2p var_2 = -2 link a6,#-2 move.b (byte_FFFFA93C).w,d3 beq.w loc_3045E move.w (word_FFFFADB6).w,d4 cmpi.w #$DFF,d4 ble.s loc_30384 move.w #$DFF,d4 bra.s loc_3038E ; --------------------------------------------------------------------------- loc_30384: ; CODE XREF: sub_30368+14j cmpi.w #$FC00,d4 bge.s loc_3038E move.w #$FC00,d4 loc_3038E: ; CODE XREF: sub_30368+1Aj ; sub_30368+20j addi.w #$400,d4 tst.b d3 beq.s loc_303F0 cmpi.b #5,(byte_FFFFA3AF).w bcs.s loc_303A6 move.w (FUEL_CU_KE_PN_ENGINE_OVERSPEED_LOW).l,d3 ; Engine Speed must fall below this limit before allowing fuel to be turned back on if the transmission is in park or neutral. ; RPM bra.s loc_303B4 ; --------------------------------------------------------------------------- loc_303A6: ; CODE XREF: sub_30368+34j clr.w d3 move.b (byte_FFFFA3B8).w,d3 move.w FUEL_CU_KV_ENGINE_OVERSPEED_LOW.l(d3.w*2),d3 loc_303B4: ; CODE XREF: sub_30368+3Cj ext.l d4 asl.l #8,d4 divs.w #$133,d4 tblu.w (FUEL_CU_KV_COLD_ENG_PROT_OVERSPEED_LOW).l,d4 ; The engine speed must fall below this limit before allowing fuel to be turned back on, if cold engine protection is enabled. ; RPM tst.b (byte_FFFFA93E).w beq.s loc_303D0 cmp.w d4,d3 bls.s loc_303D0 move.l d4,d3 loc_303D0: ; CODE XREF: sub_30368+60j ; sub_30368+64j btst #1,(byte_FFFF8998).w bne.s loc_303E8 btst #1,(byte_FFFF899C).w bne.s loc_303E8 btst #1,(byte_FFFF899A).w beq.s loc_3044E loc_303E8: ; CODE XREF: sub_30368+6Ej ; sub_30368+76j move.w (FUEL_CU_KE_ENG_OVERSPEED_VSS_FAIL_LOW).l,d4 ; Eng speed must fall below before fuel is turned on if a VSS failureexists. Used for chassis protection on med duty trucks ; RPM bra.s loc_30448 ; --------------------------------------------------------------------------- loc_303F0: ; CODE XREF: sub_30368+2Cj cmpi.b #5,(byte_FFFFA3AF).w bcs.s loc_30400 move.w (FUEL_CU_KE_PN_ENGINE_OVERSPEED_HIGH).l,d3 ; This is the Engine Speed above which fuel is shutoff if the transmission is in park or neutral. ; RPM bra.s loc_3040E ; --------------------------------------------------------------------------- loc_30400: ; CODE XREF: sub_30368+8Ej clr.w d3 move.b (byte_FFFFA3B8).w,d3 move.w FUEL_CU_KV_ENGINE_OVERSPEED_HIGH.l(d3.w*2),d3 loc_3040E: ; CODE XREF: sub_30368+96j ext.l d4 asl.l #8,d4 divs.w #$133,d4 tblu.w (FUEL_CU_KV_COLD_ENG_PROT_OVERSPEED_HIGH).l,d4 ; This is the engine speed above which fuel is shutoff if cold engine protection mode is enabled. ; RPM tst.b (byte_FFFFA93E).w beq.s loc_3042A cmp.w d4,d3 bls.s loc_3042A move.l d4,d3 loc_3042A: ; CODE XREF: sub_30368+BAj ; sub_30368+BEj btst #1,(byte_FFFF8998).w bne.s loc_30442 btst #1,(byte_FFFF899C).w bne.s loc_30442 btst #1,(byte_FFFF899A).w beq.s loc_3044E loc_30442: ; CODE XREF: sub_30368+C8j ; sub_30368+D0j move.w (FUEL_CU_KE_ENG_OVERSPEED_VSS_FAIL_HIGH).l,d4 ; Eng speed above which fuel is shutoff if a VSS failure existsUsed for chassis protection on med duty trucks ; RPM loc_30448: ; CODE XREF: sub_30368+86j cmp.w d4,d3 bls.s loc_3044E move.l d4,d3 loc_3044E: ; CODE XREF: sub_30368+7Ej ; sub_30368+D8j ... cmp.w (EngineRPM_PID_000C___).w,d3 bls.w loc_30562 clr.b (byte_FFFFA93C).w bra.w loc_3055C ; --------------------------------------------------------------------------- loc_3045E: ; CODE XREF: sub_30368+8j move.w (word_FFFFADB6).w,d4 cmpi.w #$DFF,d4 ble.s loc_3046E move.w #$DFF,d4 bra.s loc_30478 ; --------------------------------------------------------------------------- loc_3046E: ; CODE XREF: sub_30368+FEj cmpi.w #$FC00,d4 bge.s loc_30478 move.w #$FC00,d4 loc_30478: ; CODE XREF: sub_30368+104j ; sub_30368+10Aj addi.w #$400,d4 tst.b d3 beq.s loc_304DA cmpi.b #5,(byte_FFFFA3AF).w bcs.s loc_30490 move.w (FUEL_CU_KE_PN_ENGINE_OVERSPEED_LOW).l,d3 ; Engine Speed must fall below this limit before allowing fuel to be turned back on if the transmission is in park or neutral. ; RPM bra.s loc_3049E ; --------------------------------------------------------------------------- loc_30490: ; CODE XREF: sub_30368+11Ej clr.w d3 move.b (byte_FFFFA3B8).w,d3 move.w FUEL_CU_KV_ENGINE_OVERSPEED_LOW.l(d3.w*2),d3 loc_3049E: ; CODE XREF: sub_30368+126j ext.l d4 asl.l #8,d4 divs.w #$133,d4 tblu.w (FUEL_CU_KV_COLD_ENG_PROT_OVERSPEED_LOW).l,d4 ; The engine speed must fall below this limit before allowing fuel to be turned back on, if cold engine protection is enabled. ; RPM tst.b (byte_FFFFA93E).w beq.s loc_304BA cmp.w d4,d3 bls.s loc_304BA move.l d4,d3 loc_304BA: ; CODE XREF: sub_30368+14Aj ; sub_30368+14Ej btst #1,(byte_FFFF8998).w bne.s loc_304D2 btst #1,(byte_FFFF899C).w bne.s loc_304D2 btst #1,(byte_FFFF899A).w beq.s loc_30538 loc_304D2: ; CODE XREF: sub_30368+158j ; sub_30368+160j move.w (FUEL_CU_KE_ENG_OVERSPEED_VSS_FAIL_LOW).l,d4 ; Eng speed must fall below before fuel is turned on if a VSS failureexists. Used for chassis protection on med duty trucks ; RPM bra.s loc_30532 ; --------------------------------------------------------------------------- loc_304DA: ; CODE XREF: sub_30368+116j cmpi.b #5,(byte_FFFFA3AF).w bcs.s loc_304EA move.w (FUEL_CU_KE_PN_ENGINE_OVERSPEED_HIGH).l,d3 ; This is the Engine Speed above which fuel is shutoff if the transmission is in park or neutral. ; RPM bra.s loc_304F8 ; --------------------------------------------------------------------------- loc_304EA: ; CODE XREF: sub_30368+178j clr.w d3 move.b (byte_FFFFA3B8).w,d3 move.w FUEL_CU_KV_ENGINE_OVERSPEED_HIGH.l(d3.w*2),d3 loc_304F8: ; CODE XREF: sub_30368+180j ext.l d4 asl.l #8,d4 divs.w #$133,d4 tblu.w (FUEL_CU_KV_COLD_ENG_PROT_OVERSPEED_HIGH).l,d4 ; This is the engine speed above which fuel is shutoff if cold engine protection mode is enabled. ; RPM tst.b (byte_FFFFA93E).w beq.s loc_30514 cmp.w d4,d3 bls.s loc_30514 move.l d4,d3 loc_30514: ; CODE XREF: sub_30368+1A4j ; sub_30368+1A8j btst #1,(byte_FFFF8998).w bne.s loc_3052C btst #1,(byte_FFFF899C).w bne.s loc_3052C btst #1,(byte_FFFF899A).w beq.s loc_30538 loc_3052C: ; CODE XREF: sub_30368+1B2j ; sub_30368+1BAj move.w (FUEL_CU_KE_ENG_OVERSPEED_VSS_FAIL_HIGH).l,d4 ; Eng speed above which fuel is shutoff if a VSS failure existsUsed for chassis protection on med duty trucks ; RPM loc_30532: ; CODE XREF: sub_30368+170j cmp.w d4,d3 bls.s loc_30538 move.l d4,d3 loc_30538: ; CODE XREF: sub_30368+168j ; sub_30368+1C2j ... cmp.w (EngineRPM_PID_000C___).w,d3 bcc.s loc_3055C move.w (word_FFFFA950).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (FUEL_CU_KE_ENGINE_OVERSPEED_TIME).l,d3 ; The time that engine speed must exceed the calibratible threshold before fuel is shut off. ; Seconds bcs.s loc_30562 move.b #1,(byte_FFFFA93C).w bra.s loc_30562 ; --------------------------------------------------------------------------- loc_3055C: ; CODE XREF: sub_30368+F2j ; sub_30368+1D4j move.w (GlobalClock).w,(word_FFFFA950).w loc_30562: ; CODE XREF: sub_30368+EAj ; sub_30368+1EAj ... unlk a6 rts ; End of function sub_30368 ; =============== S U B R O U T I N E ======================================= sub_30566: ; CODE XREF: DoLoopC+ACp movem.l d0-d1,-(sp) cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_30584 tst.b (byte_FFFFA936).w beq.w loc_30680 clr.b (byte_FFFFA936).w bra.w loc_30680 ; --------------------------------------------------------------------------- loc_30584: ; CODE XREF: sub_30566+Cj movea.w (word_FFFFAB66).w,a2 move.w (word_FFFFA94A).w,d3 sub.w a2,d3 bcc.s loc_30592 clr.w d3 loc_30592: ; CODE XREF: sub_30566+28j cmp.w (FUEL_CU_KE_CLUTCH_THROTTLE_DECREASE).l,d3 bls.s loc_305A0 clr.w (word_FFFFA94C).w bra.s loc_305B0 ; --------------------------------------------------------------------------- loc_305A0: ; CODE XREF: sub_30566+32j move.w (word_FFFFA94C).w,d3 addq.w #2,d3 bcc.s loc_305AC move.w #$FFFF,d3 loc_305AC: ; CODE XREF: sub_30566+40j move.w d3,(word_FFFFA94C).w loc_305B0: ; CODE XREF: sub_30566+38j move.w (word_FFFFA948).w,(word_FFFFA94A).w move.w a2,(word_FFFFA948).w move.w (word_FFFFA95A).w,d3 subq.w #2,d3 bcc.s loc_305C4 clr.w d3 loc_305C4: ; CODE XREF: sub_30566+5Aj move.w d3,(word_FFFFA95A).w move.w (word_FFFFA95E).w,d4 addq.w #2,d4 bcc.s loc_305D4 move.w #$FFFF,d4 loc_305D4: ; CODE XREF: sub_30566+68j move.w d4,(word_FFFFA95E).w tst.b (byte_FFFFA3AC).w beq.s loc_305E4 clr.b (byte_FFFFA96B).w bra.s loc_305EA ; --------------------------------------------------------------------------- loc_305E4: ; CODE XREF: sub_30566+76j move.b #1,(byte_FFFFA96B).w loc_305EA: ; CODE XREF: sub_30566+7Cj tst.b (byte_FFFFA96C).w beq.s loc_305FE tst.b (byte_FFFFA96B).w bne.s loc_305FE tst.w d3 bne.s loc_305FE clr.w (word_FFFFA95E).w loc_305FE: ; CODE XREF: sub_30566+88j ; sub_30566+8Ej ... move.w (word_FFFFA95E).w,d0 bne.s loc_30630 tst.w (word_FFFFA94C).w bls.s loc_30630 move.w (word_FFFFA94C).w,d4 cmp.w (FUEL_CU_KE_CLUTCH_THROTTLE_WINDOW).l,d4 ; Window of time either before or after the clutch pedal is depressed when a throttle decrease indicates a shift maneuver. ; Seconds bcc.s loc_30630 tst.b (byte_FFFFA938).w bne.s loc_30630 move.b #1,(byte_FFFFA936).w move.w (FUEL_CU_KE_CLUTCH_DFCO_REENABLE_DELAY).l,(word_FFFFA95A).w ; Minimum amount of time between clutch-based DFCO events. ; Seconds clr.w (word_FFFFA952).w bra.s loc_3067A ; --------------------------------------------------------------------------- loc_30630: ; CODE XREF: sub_30566+9Cj ; sub_30566+A2j ... move.b (byte_FFFFA96B).w,d4 bne.s loc_3066C tst.b (byte_FFFFA938).w bne.s loc_3066C tst.w (word_FFFFA94C).w bne.s loc_3066C cmp.w (FUEL_CU_KE_CLUTCH_THROTTLE_WINDOW).l,d0 ; Window of time either before or after the clutch pedal is depressed when a throttle decrease indicates a shift maneuver. ; Seconds bcc.s loc_3066C tst.w d3 bne.s loc_3066C move.b #1,(byte_FFFFA936).w move.w (FUEL_CU_KE_CLUTCH_DFCO_REENABLE_DELAY).l,d3 ; Minimum amount of time between clutch-based DFCO events. ; Seconds sub.w (word_FFFFA95E).w,d3 bcc.s loc_30662 clr.w d3 loc_30662: ; CODE XREF: sub_30566+F8j move.w d3,(word_FFFFA95A).w move.w d0,(word_FFFFA952).w bra.s loc_3067A ; --------------------------------------------------------------------------- loc_3066C: ; CODE XREF: sub_30566+CEj ; sub_30566+D4j ... tst.b d4 beq.s loc_3067A tst.b (byte_FFFFA938).w bne.s loc_3067A clr.b (byte_FFFFA936).w loc_3067A: ; CODE XREF: sub_30566+C8j ; sub_30566+104j ... move.b (byte_FFFFA96B).w,(byte_FFFFA96C).w loc_30680: ; CODE XREF: sub_30566+12j ; sub_30566+1Aj jsr sub_3090C movem.l (sp)+,d0-d1 rts ; End of function sub_30566 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3068C: ; CODE XREF: DoLoopE+38p var_2 = -2 link a6,#-2 movem.l d0-d2,-(sp) move.w (EngineRPM_PID_000C___).w,d0 clr.l d2 move.w (word_FFFFA944).w,d2 clr.l d3 move.w d0,d3 sub.l d2,d3 cmpi.l #$FFFF8000,d3 blt.s loc_306BA cmpi.l #$7FFF,d3 ble.s loc_306BE move.w #$7FFF,d3 bra.s loc_306BE ; --------------------------------------------------------------------------- loc_306BA: ; CODE XREF: sub_3068C+1Ej move.w #$8000,d3 loc_306BE: ; CODE XREF: sub_3068C+26j ; sub_3068C+2Cj move.w d3,(word_FFFFA946).w move.w d0,(word_FFFFA944).w move.w (word_FFFFAEBC).w,d0 move.b (byte_FFFF820A).w,d3 move.b d3,(byte_FFFFA93D).w tst.b (byte_FFFFA966).w beq.s loc_306FC tst.b d3 beq.s loc_306FC cmp.w (VEH_SPEED_KE_RTD_FAULT_MAX_SPEED).l,d0 ; Maximum vehicle speed when an RTD fault is sent to the PCM by the RTD system. ; MPH bls.s loc_306E8 moveq #1,d1 bra.s loc_306FE ; --------------------------------------------------------------------------- loc_306E8: ; CODE XREF: sub_3068C+56j move.w (VEH_SPEED_KE_RTD_FAULT_MAX_SPEED).l,d3 ; Maximum vehicle speed when an RTD fault is sent to the PCM by the RTD system. ; MPH sub.w (VEH_SPEED_KE_VEHICLE_OVERSPEED_HYSTERESIS).l,d3 ; Hysteresis applied to vehicle speed at which fuel cutoff occurs. ; MPH bcc.s loc_306F8 clr.w d3 loc_306F8: ; CODE XREF: sub_3068C+68j cmp.w d3,d0 bcc.s loc_306FE loc_306FC: ; CODE XREF: sub_3068C+4Aj ; sub_3068C+4Ej clr.b d1 loc_306FE: ; CODE XREF: sub_3068C+5Aj ; sub_3068C+6Ej tst.b d1 loc_30700: ; DATA XREF: Calibration:ENG_CONSTANTS_KE_TYPE_OF_KNOCK_SENSORSo bne.s loc_30710 cmp.w (VEH_SPEED_KE_RTD_FAULT_MAX_SPEED).l,d0 ; Maximum vehicle speed when an RTD fault is sent to the PCM by the RTD system. ; MPH bls.s loc_30710 clr.b (byte_FFFFA966).w bra.s loc_30716 ; --------------------------------------------------------------------------- loc_30710: ; CODE XREF: sub_3068C:loc_30700j ; sub_3068C+7Cj move.b #1,(byte_FFFFA966).w loc_30716: ; CODE XREF: sub_3068C+82j tst.b (byte_FFFFB370).w beq.s loc_3072A move.w (VEH_SPEED_KE_VEHICLE_OVERSPEED_ETC).l,d4 move.w (VEH_SPEED_KE_VEHICLE_OVERSPEED_TIME_ETC).l,d2 ; For an ETC vehicle, time that vehicle speed must be over the max. limit before cutting off fuel. ; Seconds bra.s loc_30736 ; --------------------------------------------------------------------------- loc_3072A: ; CODE XREF: sub_3068C+8Ej move.w (VEH_SPEED_KE_VEHICLE_OVERSPEED).l,d4 move.w (VEH_SPEED_KE_VEHICLE_OVERSPEED_TIME).l,d2 ; For a non ETC vehicle, time that vehicle speed must be over the max. limit before cutting off fuel. ; Seconds loc_30736: ; CODE XREF: sub_3068C+9Cj tst.b d1 beq.s loc_30744 move.w (VEH_SPEED_KE_RTD_FAULT_MAX_SPEED).l,d3 ; Maximum vehicle speed when an RTD fault is sent to the PCM by the RTD system. ; MPH cmp.w d4,d3 bls.s loc_30746 loc_30744: ; CODE XREF: sub_3068C+ACj move.l d4,d3 loc_30746: ; CODE XREF: sub_3068C+B6j tst.b (byte_FFFFA967).w beq.s loc_3076C sub.w (VEH_SPEED_KE_VEHICLE_OVERSPEED_HYSTERESIS).l,d3 ; Hysteresis applied to vehicle speed at which fuel cutoff occurs. ; MPH bcc.s loc_30756 clr.w d3 loc_30756: ; CODE XREF: sub_3068C+C6j cmp.w d3,d0 bls.s loc_30766 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (FUEL_CU_KE_STALL_ENGINE_SPEED).l,d3 ; Min engine speed in which fuel cutoff is still allowed. Lowerspeeds than this may result in a stall. ; RPM bcc.s loc_3079C loc_30766: ; CODE XREF: sub_3068C+CCj clr.b (byte_FFFFA967).w bra.s loc_30796 ; --------------------------------------------------------------------------- loc_3076C: ; CODE XREF: sub_3068C+BEj cmp.w d3,d0 bls.s loc_30796 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (FUEL_CU_KE_STALL_ENGINE_SPEED).l,d3 ; Min engine speed in which fuel cutoff is still allowed. Lowerspeeds than this may result in a stall. ; RPM bcs.s loc_30796 move.w (word_FFFFA94E).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w d2,d3 bcs.s loc_3079C move.b #1,(byte_FFFFA967).w bra.s loc_3079C ; --------------------------------------------------------------------------- loc_30796: ; CODE XREF: sub_3068C+DEj ; sub_3068C+E2j ... move.w (GlobalClock).w,(word_FFFFA94E).w loc_3079C: ; CODE XREF: sub_3068C+D8j ; sub_3068C+100j ... movem.l (sp)+,d0-d2 unlk a6 rts ; End of function sub_3068C ; =============== S U B R O U T I N E ======================================= nullsub_6: ; CODE XREF: DoLoopF+290p rts ; End of function nullsub_6 ; =============== S U B R O U T I N E ======================================= sub_307A6: ; CODE XREF: DoLoopA+344p movem.l d0-d1,-(sp) move.b (byte_FFFFA93A).w,d4 move.b d4,(byte_FFFFA968).w move.b (byte_FFFFA938).w,d3 and.b (byte_FFFF9851).w,d3 move.b d3,(byte_FFFFA93A).w tst.b d4 beq.s loc_307D8 tst.b d3 bne.s loc_307D8 move.b (FUEL_CU_KE_TOTAL_REFS_TO_MODIFY_AIR).l,(byte_FFFFA964).w ; Total number of reference pulses to factor in residual air for DFCO exits. ; Refs move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,(byte_FFFFA142).w ; Number of cylinders for this engine application. ; SHORTCARD bra.s loc_307E6 ; --------------------------------------------------------------------------- loc_307D8: ; CODE XREF: sub_307A6+1Aj ; sub_307A6+1Ej move.b (byte_FFFFA964).w,d3 subq.b #1,d3 bcc.s loc_307E2 clr.b d3 loc_307E2: ; CODE XREF: sub_307A6+38j move.b d3,(byte_FFFFA964).w loc_307E6: ; CODE XREF: sub_307A6+30j move.b (byte_FFFFA964).w,d4 bne.s loc_307F2 clr.w (word_FFFFA942).w bra.s loc_30826 ; --------------------------------------------------------------------------- loc_307F2: ; CODE XREF: sub_307A6+44j move.w (word_FFFFA0E6).w,d3 bne.s loc_30800 move.w #$FFFF,(word_FFFFA942).w bra.s loc_30826 ; --------------------------------------------------------------------------- loc_30800: ; CODE XREF: sub_307A6+50j cmp.b (FUEL_CU_KE_SECONDARY_REFS_TO_MODIFY_AIR).l,d4 ; Number of reference pulses to factor in residual air using KE_Final_DFCO_Residual_Factor for DFCO exits. ; Refs bhi.s loc_30810 move.l (FUEL_CU_KE_FINAL_DFCO_RESIDUAL_FACTOR).l,d3 bra.s loc_30816 ; --------------------------------------------------------------------------- loc_30810: ; CODE XREF: sub_307A6+60j move.l (FUEL_CU_KE_INITIAL_DFCO_RESIDUAL_FACTOR).l,d3 loc_30816: ; CODE XREF: sub_307A6+68j move.w (word_FFFFA0E6).w,d5 divu.w d5,d3 bvc.s loc_30822 move.w #$FFFF,d3 loc_30822: ; CODE XREF: sub_307A6+76j move.w d3,(word_FFFFA942).w loc_30826: ; CODE XREF: sub_307A6+4Aj ; sub_307A6+58j move.w (EngineRPM_PID_000C___).w,d3 cmp.w (FUEL_CU_KE_LOW_RPM_FUEL_CUTOFF_HIGH).l,d3 ; Turn fuel on above this RPM if fuel is currently turned off due to low RPM. ; RPM bls.s loc_3083E clr.b (byte_FFFFA969).w move.b #1,(byte_FFFFA96A).w bra.s loc_30856 ; --------------------------------------------------------------------------- loc_3083E: ; CODE XREF: sub_307A6+8Aj cmp.w (FUEL_CU_KE_LOW_RPM_FUEL_CUTOFF_LOW).l,d3 ; Turn fuel off below this RPM if fuel is the engine speed has been above KE_Low_RPM_Fuel_Cutoff_High. ; RPM bcc.s loc_30856 tst.b (byte_FFFFA96A).w beq.s loc_30856 move.b #1,(byte_FFFFA969).w clr.b (byte_FFFFA96A).w loc_30856: ; CODE XREF: sub_307A6+96j ; sub_307A6+9Ej ... move.b (byte_FFFFB423).w,(byte_FFFFA937).w clr.b d1 tst.b (byte_FFFFA93A).w bne.s loc_3089C tst.b (byte_FFFFA93C).w beq.s loc_30870 tst.b (byte_FFFFB423).w beq.s loc_3089C loc_30870: ; CODE XREF: sub_307A6+C2j tst.b (byte_FFFFA967).w bne.s loc_3089C tst.b (byte_FFFFA969).w bne.s loc_3089C tst.b (byte_FF82B1).l bne.s loc_3088C tst.b (COLUMN_LOCK_KE_COLUMN_LOCK_PRESENT).l ; This calibration enables/disables the Column Lockfunctionality. Currently ONLY Y car should be TRUE. ; Boolean bne.s loc_3089C loc_3088C: ; CODE XREF: sub_307A6+DCj tst.b (byte_FFFFB422).w bne.s loc_3089C jsr sub_85316 tst.b d0 beq.s loc_3089E loc_3089C: ; CODE XREF: sub_307A6+BCj ; sub_307A6+C8j ... addq.b #1,d1 loc_3089E: ; CODE XREF: sub_307A6+F4j move.b d1,(byte_FFFFA93B).w movem.l (sp)+,d0-d1 rts ; End of function sub_307A6 ; =============== S U B R O U T I N E ======================================= sub_308A8: ; CODE XREF: sub_2F712+2Ap clr.b (byte_FFFFA938).w clr.b (byte_FFFFA939).w clr.b (byte_FFFFA93A).w clr.b (byte_FFFFA967).w andi.w #$FF,d0 cmpi.w #1,d0 bcs.s locret_3090A movea.l off_8A4B0(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_308CC: ; DATA XREF: OS4:0008A4B8o move.w (word_FFFFADB6).w,d3 addi.w #$400,d3 muls.w #5,d3 divs.w #6,d3 tblu.w (FUEL_CU_KV_COLD_ENGINE_PROTECTION_TIME).l,d3 ; Amount of time that cold engine protection should be enabled ; Seconds move.w d3,(word_FFFFA940).w bra.s locret_3090A ; --------------------------------------------------------------------------- loc_308EA: ; DATA XREF: OS4:0008A4C8o clr.w (word_FFFFA942).w bra.s locret_3090A ; --------------------------------------------------------------------------- loc_308F0: ; DATA XREF: OS4:0008A4B4o ; OS4:off_8A4D4o clr.w (word_FFFFA942).w loc_308F4: ; DATA XREF: OS4:0008A4CCo clr.b (byte_FFFFA969).w clr.b (byte_FFFFA96A).w bra.s locret_3090A ; --------------------------------------------------------------------------- loc_308FE: ; DATA XREF: OS4:0008A4BCo clr.b (byte_FFFFA969).w clr.b (byte_FFFFA96A).w clr.b (byte_FFFFA963).w locret_3090A: ; CODE XREF: sub_308A8+18j ; sub_308A8+40j ... rts ; End of function sub_308A8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3090C: ; CODE XREF: sub_30566:loc_30680p var_2 = -2 link a6,#-2 movem.l d0-d1,-(sp) tst.b (byte_FFFFA3AB).w beq.s loc_30928 move.b #1,(byte_FFFFA963).w move.w (GlobalClock).w,(word_FFFFA960).w bra.s loc_3095E ; --------------------------------------------------------------------------- loc_30928: ; CODE XREF: sub_3090C+Cj tst.b (byte_FFFFA963).w beq.s loc_3095E move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$8000,d3 bcc.s loc_3093C lsr.w #3,d3 bra.s loc_30940 ; --------------------------------------------------------------------------- loc_3093C: ; CODE XREF: sub_3090C+2Aj move.w #$1000,d3 loc_30940: ; CODE XREF: sub_3090C+2Ej tblu.w (FUEL_CU_KV_DFCO_TRANS_AIR_DELAY).l,d3 ; Amount of time required to remove excess air added by the auto transmission forced downshift DFCO exit logic. ; Seconds move.w (word_FFFFA960).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmp.w d3,d0 bcs.s loc_3095E clr.b (byte_FFFFA963).w loc_3095E: ; CODE XREF: sub_3090C+1Aj ; sub_3090C+20j ... move.w (word_FFFFA95C).w,d0 addq.w #2,d0 bcc.s loc_3096A move.w #$FFFF,d0 loc_3096A: ; CODE XREF: sub_3090C+58j move.w d0,(word_FFFFA95C).w move.b (byte_FFFFA936).w,d4 beq.s loc_30994 tst.b (byte_FFFFA962).w bne.s loc_30986 move.w (FUEL_CU_KE_CLUTCH_DFCO_ENTRY_DELAY).l,d3 ; Clutch-based DFCO enabling conditions must exist continuously for this long to enable clutch-based DFCO. ; Seconds sub.w (word_FFFFA952).w,d3 bra.s loc_3098C ; --------------------------------------------------------------------------- loc_30986: ; CODE XREF: sub_3090C+6Cj move.w (word_FFFFA954).w,d3 subq.w #2,d3 loc_3098C: ; CODE XREF: sub_3090C+78j bcc.s loc_30990 clr.w d3 loc_30990: ; CODE XREF: sub_3090C:loc_3098Cj move.w d3,(word_FFFFA954).w loc_30994: ; CODE XREF: sub_3090C+66j move.b d4,(byte_FFFFA962).w clr.b d3 move.b (byte_FFFFA963).w,d1 bne.s loc_309DC move.w (EngineRPM_PID_000C___).w,d5 cmp.w (FUEL_CU_KE_STALL_ENGINE_SPEED).l,d5 ; Min engine speed in which fuel cutoff is still allowed. Lowerspeeds than this may result in a stall. ; RPM bcs.s loc_309DC clr.l d5 move.b d4,d5 move.w (word_FFFFA946).w,d4 cmp.w FUEL_CU_KV_DFCO_FAST_EXIT_DELTA_RPM.l(d5.w*2),d4 ble.s loc_309DC btst #5,(byte_FFFF8252).w bne.s loc_309DC btst #4,(byte_FFFF8253).w bne.s loc_309DC tst.b (byte_FFFFA3B7).w beq.s loc_309DC cmpi.b #4,(byte_FFFFA3AF).w bne.s loc_309DE loc_309DC: ; CODE XREF: sub_3090C+92j ; sub_3090C+9Ej ... addq.b #1,d3 loc_309DE: ; CODE XREF: sub_3090C+CEj move.b d3,(byte_FFFFA939).w tst.b d3 bne.w loc_30C4C tst.b (byte_FFFFA936).w beq.s loc_309F6 move.w (FUEL_CU_KE_CLUTCH_DFCO_COOLANT_TEMP).l,d3 ; Minimum coolant temperature to enable clutch-based DFCO. ; Degrees_C bra.s loc_309FC ; --------------------------------------------------------------------------- loc_309F6: ; CODE XREF: sub_3090C+E0j move.w (FUEL_CU_KE_DFCO_COOLANT_TEMPERATURE).l,d3 ; Minimum coolant to enable DFCO. ; Degrees_C loc_309FC: ; CODE XREF: sub_3090C+E8j cmp.w (CoolantTemperatureOrDefault).w,d3 bge.w loc_30C4C tst.b (byte_FFFFA936).w beq.s loc_30A12 move.w (FUEL_CU_KE_CLUTCH_DFCO_VEHICLE_SPEED).l,d3 ; Minimum vehicle speed to enable clutch-based DFCO. ; MPH bra.s loc_30A1E ; --------------------------------------------------------------------------- loc_30A12: ; CODE XREF: sub_3090C+FCj move.w (word_FFFFAEF0).w,d3 tblu.w (FUEL_CU_KV_DFCO_VEHICLE_SPEED).l,d3 ; Vehicle speed must be > this to enable DFCO. ; MPH loc_30A1E: ; CODE XREF: sub_3090C+104j tst.b (byte_FFFFA938).w beq.s loc_30A2E sub.w (FUEL_CU_KE_DFCO_VEH_SPEED_HYSTERESIS).l,d3 ; Hysteresis on vehicle speed during DFCO wait timer ; MPH bcc.s loc_30A2E clr.w d3 loc_30A2E: ; CODE XREF: sub_3090C+116j ; sub_3090C+11Ej cmp.w (word_FFFFAEBC).w,d3 bcc.w loc_30C4C tst.b (byte_FFFFA938).w beq.s loc_30A7A tst.b (byte_FFFFA936).w beq.s loc_30A54 move.w (FUEL_CU_KE_CLUTCH_DFCO_ENGINE_SPEED).l,d3 ; Minimum engine speed to enable clutch-based DFCO. ; RPM loc_30A48: ; CODE XREF: sub_3090C+16Cj sub.w (FUEL_CU_KE_DFCO_ENGINE_SPEED_HYSTERESIS).l,d3 bcc.s loc_30A96 clr.w d3 bra.s loc_30A96 ; --------------------------------------------------------------------------- loc_30A54: ; CODE XREF: sub_3090C+134j tst.b (byte_FFFFA93A).w beq.s loc_30A6A clr.w d3 move.b (byte_FFFFA3B8).w,d3 move.w FUEL_CU_KV_DFCO_EXIT_ENGINE_SPEED.l(d3.w*2),d3 bra.s loc_30A96 ; --------------------------------------------------------------------------- loc_30A6A: ; CODE XREF: sub_3090C+14Cj clr.w d3 move.b (byte_FFFFA3B8).w,d3 move.w FUEL_CU_KV_DFCO_ENGINE_SPEED.l(d3.w*2),d3 bra.s loc_30A48 ; --------------------------------------------------------------------------- loc_30A7A: ; CODE XREF: sub_3090C+12Ej tst.b (byte_FFFFA936).w beq.s loc_30A88 move.w (FUEL_CU_KE_CLUTCH_DFCO_ENGINE_SPEED).l,d3 ; Minimum engine speed to enable clutch-based DFCO. ; RPM bra.s loc_30A96 ; --------------------------------------------------------------------------- loc_30A88: ; CODE XREF: sub_3090C+172j clr.w d3 move.b (byte_FFFFA3B8).w,d3 move.w FUEL_CU_KV_DFCO_ENGINE_SPEED.l(d3.w*2),d3 loc_30A96: ; CODE XREF: sub_3090C+142j ; sub_3090C+146j ... cmp.w (EngineRPM_PID_000C___).w,d3 bcc.w loc_30C4C move.b (byte_FFFFA936).w,d4 beq.s loc_30AAC move.w (FUEL_CU_KE_CLUTCH_DFCO_THROTTLE_POSITION).l,d3 ; Maximum throttle position to enable clutch-based DFCO. ; Percent bra.s loc_30AC4 ; --------------------------------------------------------------------------- loc_30AAC: ; CODE XREF: sub_3090C+196j move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$A000,d3 bls.s loc_30ABA move.w #$A000,d3 loc_30ABA: ; CODE XREF: sub_3090C+1A8j lsr.w #3,d3 tblu.w (FUEL_CU_KV_DFCO_THROTTLE_POSITION).l,d3 ; Throttle must be < this to enable DFCO. ; Percent loc_30AC4: ; CODE XREF: sub_3090C+19Ej tst.b (byte_FFFFA938).w beq.s loc_30AEA tst.b d4 beq.s loc_30ADA move.w (word_FFFFA94A).w,d3 add.w (FUEL_CU_KE_CLUTCH_DFCO_EXIT_TPS_INCREASE).l,d3 ; Exit clutch-based DFCO if throttle position increases by more than this amount over a 25 mS interval. ; Percent bra.s loc_30AE0 ; --------------------------------------------------------------------------- loc_30ADA: ; CODE XREF: sub_3090C+1C0j add.w (FUEL_CU_KE_DFCO_THROTTLE_HYSTERESIS).l,d3 ; Throttle must be < (KV_DFCO_Throttle_Position + this) to keep DFCO enabled. ; Percent loc_30AE0: ; CODE XREF: sub_3090C+1CCj cmpi.w #$1400,d3 bls.s loc_30AEA move.w #$1400,d3 loc_30AEA: ; CODE XREF: sub_3090C+1BCj ; sub_3090C+1D8j cmp.w (word_FFFFAB66).w,d3 bls.w loc_30C4C tst.b (byte_FFFFA938).w beq.w loc_30B7A tst.b (byte_FFFFA936).w beq.s loc_30B1C move.w (FUEL_CU_KE_CLUTCH_DFCO_MAP).l,d3 ; Maximum manifold pressure to enable clutch-based DFCO. ; kPa loc_30B06: ; CODE XREF: sub_3090C+26Cj add.w (FUEL_CU_KE_DFCO_MANIFOLD_PRESSURE_HYSTER).l,d3 cmpi.w #$14FF,d3 bls.w loc_30BB4 move.w #$14FF,d3 bra.w loc_30BB4 ; --------------------------------------------------------------------------- loc_30B1C: ; CODE XREF: sub_3090C+1F2j tst.b (byte_FFFFA93A).w beq.s loc_30B4C move.w (word_FFFF82D2).w,d3 clr.w d4 cmpi.w #$C00,d3 bcc.s loc_30B32 move.l d4,d3 bra.s loc_30B44 ; --------------------------------------------------------------------------- loc_30B32: ; CODE XREF: sub_3090C+220j cmpi.w #$1400,d3 bcc.s loc_30B40 lsr.w #1,d3 subi.w #$600,d3 bra.s loc_30B44 ; --------------------------------------------------------------------------- loc_30B40: ; CODE XREF: sub_3090C+22Aj move.w #$400,d3 loc_30B44: ; CODE XREF: sub_3090C+224j ; sub_3090C+232j movea.l #$BB96,a2 bra.s loc_30BB0 ; --------------------------------------------------------------------------- loc_30B4C: ; CODE XREF: sub_3090C+214j move.w (word_FFFF82D2).w,d3 clr.w d4 cmpi.w #$C00,d3 bcc.s loc_30B5C move.l d4,d3 bra.s loc_30B6E ; --------------------------------------------------------------------------- loc_30B5C: ; CODE XREF: sub_3090C+24Aj cmpi.w #$1400,d3 bcc.s loc_30B6A lsr.w #1,d3 subi.w #$600,d3 bra.s loc_30B6E ; --------------------------------------------------------------------------- loc_30B6A: ; CODE XREF: sub_3090C+254j move.w #$400,d3 loc_30B6E: ; CODE XREF: sub_3090C+24Ej ; sub_3090C+25Cj movea.l #$BB8C,a2 tblu.w (a2),d3 bra.s loc_30B06 ; --------------------------------------------------------------------------- loc_30B7A: ; CODE XREF: sub_3090C+1EAj tst.b (byte_FFFFA936).w beq.s loc_30B88 move.w (FUEL_CU_KE_CLUTCH_DFCO_MAP).l,d3 ; Maximum manifold pressure to enable clutch-based DFCO. ; kPa bra.s loc_30BB4 ; --------------------------------------------------------------------------- loc_30B88: ; CODE XREF: sub_3090C+272j move.w (word_FFFF82D2).w,d3 clr.w d4 cmpi.w #$C00,d3 bcc.s loc_30B98 move.l d4,d3 bra.s loc_30BAA ; --------------------------------------------------------------------------- loc_30B98: ; CODE XREF: sub_3090C+286j cmpi.w #$1400,d3 bcc.s loc_30BA6 lsr.w #1,d3 subi.w #$600,d3 bra.s loc_30BAA ; --------------------------------------------------------------------------- loc_30BA6: ; CODE XREF: sub_3090C+290j move.w #$400,d3 loc_30BAA: ; CODE XREF: sub_3090C+28Aj ; sub_3090C+298j movea.l #$BB8C,a2 loc_30BB0: ; CODE XREF: sub_3090C+23Ej tblu.w (a2),d3 loc_30BB4: ; CODE XREF: sub_3090C+204j ; sub_3090C+20Cj ... cmp.w (word_FFFFB292).w,d3 bls.w loc_30C4C clr.b (byte_FFFFA96D).w tst.b (byte_FFFF984F).w beq.s loc_30BE2 move.w (word_FFFFA958).w,d3 subq.w #2,d3 bcc.s loc_30BD0 clr.w d3 loc_30BD0: ; CODE XREF: sub_3090C+2C0j move.w d3,(word_FFFFA958).w tst.w d3 bne.w loc_30C9C clr.b (byte_FFFFA938).w bra.w loc_30C9C ; --------------------------------------------------------------------------- loc_30BE2: ; CODE XREF: sub_3090C+2B8j tst.b (byte_FFFFA938).w bne.w loc_30C9C tst.b (byte_FFFFA936).w bne.s loc_30C1C cmp.w (FUEL_CU_KE_DFCO_REENTRY_DELAY).l,d0 ; Amount of time to disable DFCO from becoming active after exiting DFCO. ; Seconds bls.s loc_30C06 move.w (word_FFFFA956).w,d3 subq.w #2,d3 bcc.s loc_30C02 clr.w d3 loc_30C02: ; CODE XREF: sub_3090C+2F2j move.w d3,(word_FFFFA956).w loc_30C06: ; CODE XREF: sub_3090C+2EAj tst.w (word_FFFFA956).w bne.w loc_30C9C moveq #1,d3 move.b d3,(byte_FFFFA938).w move.b d3,(byte_FFFFA965).w bra.w loc_30C9C ; --------------------------------------------------------------------------- loc_30C1C: ; CODE XREF: sub_3090C+2E2j tst.w (word_FFFFA954).w bne.s loc_30C9C move.b #1,(byte_FFFFA938).w tst.b (byte_FFFFACAA).w beq.s loc_30C32 clr.b d3 bra.s loc_30C34 ; --------------------------------------------------------------------------- loc_30C32: ; CODE XREF: sub_3090C+320j moveq #1,d3 loc_30C34: ; CODE XREF: sub_3090C+324j andi.w #$FF,d3 move.w FUEL_CU_KV_DFCO_ENTRY_TIME.l(d3.w*2),(word_FFFFA956).w move.w (FUEL_CU_KE_CLUTCH_DFCO_HOLD_TIME).l,(word_FFFFA958).w ; The duration of a clutch-based DFCO event. ; Seconds bra.s loc_30C9C ; --------------------------------------------------------------------------- loc_30C4C: ; CODE XREF: sub_3090C+D8j ; sub_3090C+F4j ... move.b (byte_FFFFA938).w,d3 and.b (byte_FFFFA965).w,d3 beq.s loc_30C5E clr.w (word_FFFFA95C).w clr.b (byte_FFFFA965).w loc_30C5E: ; CODE XREF: sub_3090C+348j move.b #1,(byte_FFFFA96D).w clr.b (byte_FFFFA938).w tst.b d1 beq.s loc_30C7E move.w (word_BBCE).l,(word_FFFFA956).w move.w (FUEL_CU_KE_DFCO_REENTRY_DELAY).l,(word_FFFFA95C).w ; Amount of time to disable DFCO from becoming active after exiting DFCO. ; Seconds bra.s loc_30C98 ; --------------------------------------------------------------------------- loc_30C7E: ; CODE XREF: sub_3090C+35Ej tst.b (byte_FFFFACAA).w beq.s loc_30C88 clr.b d3 bra.s loc_30C8A ; --------------------------------------------------------------------------- loc_30C88: ; CODE XREF: sub_3090C+376j moveq #1,d3 loc_30C8A: ; CODE XREF: sub_3090C+37Aj andi.w #$FF,d3 move.w FUEL_CU_KV_DFCO_ENTRY_TIME.l(d3.w*2),(word_FFFFA956).w loc_30C98: ; CODE XREF: sub_3090C+370j clr.w (word_FFFFA958).w loc_30C9C: ; CODE XREF: sub_3090C+2CAj ; sub_3090C+2D2j ... movem.l (sp)+,d0-d1 unlk a6 rts ; End of function sub_3090C ; =============== S U B R O U T I N E ======================================= sub_30CA4: ; CODE XREF: DoLoopA+280p ; DoLoopA:loc_29D60p movem.l d0-d2/a0,-(sp) move.w (word_FFFFAEE0).w,d0 move.w (word_FFFFAEEC).w,d1 moveq #$13,d2 movea.l #$C360,a0 jsr SurfaceTableLookup move.w d0,d3 clr.l d5 move.w (word_FFFF9FD4).w,d5 clr.l d4 move.w (word_FFFF9FD6).w,d4 sub.l d5,d4 ext.l d3 muls.l d4,d4:d3 divs.l #$800,d4:d3 bvc.s loc_30CF6 move.l #$800,d4 eor.l d3,d4 bmi.s loc_30CF0 move.l #$7FFFFFFF,d3 bra.s loc_30CF6 ; --------------------------------------------------------------------------- loc_30CF0: ; CODE XREF: sub_30CA4+42j move.l #$80000000,d3 loc_30CF6: ; CODE XREF: sub_30CA4+38j ; sub_30CA4+4Aj move.l d3,d4 clr.l d0 move.w (word_FFFF9FD4).w,d0 add.l d4,d0 bvc.s loc_30D06 bmi.s loc_30D16 bra.s loc_30D1C ; --------------------------------------------------------------------------- loc_30D06: ; CODE XREF: sub_30CA4+5Cj tst.l d0 blt.s loc_30D1C cmpi.l #$FFFF,d0 bhi.s loc_30D16 move.w d0,d4 bra.s loc_30D1E ; --------------------------------------------------------------------------- loc_30D16: ; CODE XREF: sub_30CA4+5Ej ; sub_30CA4+6Cj move.w #$FFFF,d4 bra.s loc_30D1E ; --------------------------------------------------------------------------- loc_30D1C: ; CODE XREF: sub_30CA4+60j ; sub_30CA4+64j clr.w d4 loc_30D1E: ; CODE XREF: sub_30CA4+70j ; sub_30CA4+76j move.w (word_FFFFA0DC).w,d3 movea.w #$2000,a2 clr.w d5 cmpi.w #$8000,d3 bcc.s loc_30D32 lsr.w #2,d3 bra.s loc_30D36 ; --------------------------------------------------------------------------- loc_30D32: ; CODE XREF: sub_30CA4+88j move.w #$2000,d3 loc_30D36: ; CODE XREF: sub_30CA4+8Cj tblu.w (FUEL_DY_KV_BOILING_TIME_MODIFIER).l,d3 ; Factor, based on air flow, which reduces KA_Boiling_Time_Constant. ; NONE 0_1 mulu.w d3,d4 lsr.l #8,d4 lsr.l #3,d4 mulu.w (word_FFFFA184).w,d4 lsr.l #8,d4 lsr.l #3,d4 tst.w d4 bne.s loc_30D56 loc_30D50: ; CODE XREF: sub_30CA4+C8j ; sub_30CA4+CEj move.w #$3FFF,d3 bra.s loc_30D74 ; --------------------------------------------------------------------------- loc_30D56: ; CODE XREF: sub_30CA4+AAj clr.l d3 move.w (word_FFFFAA88).w,d3 divu.w #$194,d3 andi.l #$FFFF,d3 asl.l #8,d3 asl.l #3,d3 divu.w d4,d3 bvs.s loc_30D50 cmpi.w #$3FFF,d3 bhi.s loc_30D50 loc_30D74: ; CODE XREF: sub_30CA4+B0j asl.w #2,d3 tblu.w (word_1F0E).w,d3 move.w (word_FFFFA14C).w,d4 mulu.w (FUEL_DY_KE_WALL_MASS_FACTOR).l,d4 ; Multiplier used to guarantee stability of the Wall Wetting model. ; NONE 0_2 lsr.l #8,d4 lsr.l #3,d4 cmpi.w #$800,d4 bls.s loc_30D94 move.w #$800,d4 loc_30D94: ; CODE XREF: sub_30CA4+EAj cmp.w d4,d3 bls.s loc_30D9E move.w d4,(word_FFFFA148).w bra.s loc_30DA2 ; --------------------------------------------------------------------------- loc_30D9E: ; CODE XREF: sub_30CA4+F2j move.w d3,(word_FFFFA148).w loc_30DA2: ; CODE XREF: sub_30CA4+F8j movem.l (sp)+,d0-d2/a0 rts ; End of function sub_30CA4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_30DA8: ; CODE XREF: DoLoopA+350p var_5EF4 = -$5EF4 var_5ECA = -$5ECA var_5EB8 = -$5EB8 var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a1,-(sp) move.b (byte_FFFFAC47).w,d7 move.b d7,var_2(a6) tst.b (byte_FFFFA93B).w beq.s loc_30DC4 clr.w (word_FFFFA126).w bra.s loc_30DE6 ; --------------------------------------------------------------------------- loc_30DC4: ; CODE XREF: sub_30DA8+14j move.w (word_FFFFA0E6).w,d3 add.w (word_FFFFA942).w,d3 bcc.s loc_30DD2 move.w #$FFFF,d3 loc_30DD2: ; CODE XREF: sub_30DA8+24j mulu.w (word_FFFFA1F2).w,d3 move.w #$1000,d2 divu.w d2,d3 bvc.s loc_30DE2 move.w #$FFFF,d3 loc_30DE2: ; CODE XREF: sub_30DA8+34j move.w d3,(word_FFFFA126).w loc_30DE6: ; CODE XREF: sub_30DA8+1Aj tst.b (byte_FFFFA180).w bne.w loc_30E98 move.b (byte_FFFFAC47).w,d1 move.w (word_FFFFAA8C).w,d4 clr.w d0 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d0 ; Number of cylinders for this engine application. ; SHORTCARD move.w (word_FFFFAEE2).w,d3 tblu.b (FUEL_DY_KV_INITIAL_WW_DELAY_REFS).l,d3 ; Number of reference pulses to delay, after PCM state equal run, before enabling Wall Wetting. ; SHORTCARD andi.w #$FF,d3 cmp.w d3,d4 bls.s loc_30E16 cmp.w d0,d4 bhi.s loc_30E20 loc_30E16: ; CODE XREF: sub_30DA8+68j clr.b (byte_FFFFA17C).w clr.w (word_FFFFA14E).w bra.s loc_30E98 ; --------------------------------------------------------------------------- loc_30E20: ; CODE XREF: sub_30DA8+6Cj moveq #1,d4 move.b d4,(byte_FFFFA17C).w move.w (word_FFFFA14E).w,d3 cmp.w d0,d3 bcc.s loc_30E94 addq.w #1,d3 move.w d3,(word_FFFFA14E).w tst.w (word_FFFFA148).w beq.s loc_30E52 clr.l d6 move.w (word_FFFFA148).w,d6 clr.l d3 move.w (word_FFFFA14A).w,d3 asl.l #8,d3 asl.l #4,d3 divu.l d6,d3 bvs.s loc_30E64 bra.s loc_30E5C ; --------------------------------------------------------------------------- loc_30E52: ; CODE XREF: sub_30DA8+90j clr.l d3 move.w (word_FFFFA14A).w,d3 asl.l #8,d3 asl.l #5,d3 loc_30E5C: ; CODE XREF: sub_30DA8+A8j cmpi.l #$1FFFF,d3 bls.s loc_30E6A loc_30E64: ; CODE XREF: sub_30DA8+A6j move.l #$1FFFF,d3 loc_30E6A: ; CODE XREF: sub_30DA8+BAj andi.w #$FF,d1 clr.l d2 move.w (word_FFFFA126).w,d2 mulu.l d3,d2 bvs.s loc_30E84 divu.w #$1000,d2 bvs.s loc_30E84 move.w d2,d3 bra.s loc_30E88 ; --------------------------------------------------------------------------- loc_30E84: ; CODE XREF: sub_30DA8+D0j ; sub_30DA8+D6j move.w #$FFFF,d3 loc_30E88: ; CODE XREF: sub_30DA8+DAj move.w d3,$1E+var_5EF4(d1.w*2) clr.b (byte_FFFFA180).w bra.s loc_30E98 ; --------------------------------------------------------------------------- loc_30E94: ; CODE XREF: sub_30DA8+84j move.b d4,(byte_FFFFA180).w loc_30E98: ; CODE XREF: sub_30DA8+42j ; sub_30DA8+76j ... move.b (byte_FFFFA17C).w,d4 beq.w loc_311E0 tst.b (byte_FFFFAA93).w bne.w loc_30F68 clr.l d4 move.b d7,d4 clr.l d1 move.w unk_FFFFA154(d4.w*2),d1 clr.l d6 move.w (word_FFFFA126).w,d6 sub.l d1,d6 cmpi.l #$FFFF8000,d6 blt.s loc_30ED2 cmpi.l #$7FFF,d6 ble.s loc_30ED6 move.w #$7FFF,d6 bra.s loc_30ED6 ; --------------------------------------------------------------------------- loc_30ED2: ; CODE XREF: sub_30DA8+11Aj move.w #$8000,d6 loc_30ED6: ; CODE XREF: sub_30DA8+122j ; sub_30DA8+128j move.w d6,(word_FFFFA186).w move.l d6,d1 clr.w d3 move.w (word_FFFFAEE0).w,d0 moveq #$FFFFFF80,d7 cmp.w d1,d7 ble.s loc_30EEC move.l d3,d1 bra.s loc_30F00 ; --------------------------------------------------------------------------- loc_30EEC: ; CODE XREF: sub_30DA8+13Ej tst.w d1 bge.s loc_30EFC ext.l d1 addi.l #$80,d1 ; '?' asl.l #5,d1 bra.s loc_30F00 ; --------------------------------------------------------------------------- loc_30EFC: ; CODE XREF: sub_30DA8+146j move.w #$1000,d1 loc_30F00: ; CODE XREF: sub_30DA8+142j ; sub_30DA8+152j moveq #$13,d2 movea.l #$C4DC,a0 jsr sub_26946 andi.w #$FF,d0 move.w #$F9,d4 ; '?' mulu.w d4,d0 moveq #$1F,d5 divu.w d5,d0 move.w d0,(word_FFFFA182).w clr.w d3 movea.w (word_FFFFAEE0).w,a2 cmp.w d6,d7 ble.s loc_30F2E move.l d3,d6 bra.s loc_30F42 ; --------------------------------------------------------------------------- loc_30F2E: ; CODE XREF: sub_30DA8+180j tst.w d6 bge.s loc_30F3E ext.l d6 addi.l #$80,d6 ; '?' asl.l #5,d6 bra.s loc_30F42 ; --------------------------------------------------------------------------- loc_30F3E: ; CODE XREF: sub_30DA8+188j move.w #$1000,d6 loc_30F42: ; CODE XREF: sub_30DA8+184j ; sub_30DA8+194j moveq #$13,d2 move.l d6,d1 move.l a2,d0 loc_30F48: ; CODE XREF: sub_30DA8+29Ej movea.l #$C630,a0 jsr sub_26946 andi.w #$FF,d0 mulu.w #$F9,d0 ; '?' divu.w #$1F,d0 move.w d0,(word_FFFFA184).w bra.w loc_3104A ; --------------------------------------------------------------------------- loc_30F68: ; CODE XREF: sub_30DA8+FCj cmpi.b #1,d7 bne.s loc_30FE8 clr.l d6 move.b d7,d6 clr.l d2 move.w unk_FFFFA154(d6.w*2),d2 clr.l d3 move.w (word_FFFFA126).w,d3 sub.l d2,d3 cmpi.l #$FFFF8000,d3 blt.s loc_30F98 cmpi.l #$7FFF,d3 ble.s loc_30F9C move.w #$7FFF,d3 bra.s loc_30F9C ; --------------------------------------------------------------------------- loc_30F98: ; CODE XREF: sub_30DA8+1E0j move.w #$8000,d3 loc_30F9C: ; CODE XREF: sub_30DA8+1E8j ; sub_30DA8+1EEj move.w d3,(word_FFFFA186).w clr.w d4 movea.w (word_FFFFAEE0).w,a2 cmpi.w #$FF80,d3 bge.s loc_30FB0 move.l d4,d3 bra.s loc_30FC4 ; --------------------------------------------------------------------------- loc_30FB0: ; CODE XREF: sub_30DA8+202j tst.w d3 bge.s loc_30FC0 ext.l d3 addi.l #$80,d3 ; '?' asl.l #5,d3 bra.s loc_30FC4 ; --------------------------------------------------------------------------- loc_30FC0: ; CODE XREF: sub_30DA8+20Aj move.w #$1000,d3 loc_30FC4: ; CODE XREF: sub_30DA8+206j ; sub_30DA8+216j moveq #$13,d2 move.l d3,d1 move.l a2,d0 movea.l #$C4DC,a0 jsr sub_26946 andi.w #$FF,d0 mulu.w #$F9,d0 ; '?' divu.w #$1F,d0 move.w d0,(word_FFFFA182).w bra.s loc_3104A ; --------------------------------------------------------------------------- loc_30FE8: ; CODE XREF: sub_30DA8+1C4j cmpi.b #2,d7 bne.s loc_3104A clr.l d6 move.b d7,d6 clr.l d3 move.w unk_FFFFA154(d6.w*2),d3 clr.l d1 move.w (word_FFFFA126).w,d1 sub.l d3,d1 cmpi.l #$FFFF8000,d1 blt.s loc_31018 cmpi.l #$7FFF,d1 ble.s loc_3101C move.w #$7FFF,d1 bra.s loc_3101C ; --------------------------------------------------------------------------- loc_31018: ; CODE XREF: sub_30DA8+260j move.w #$8000,d1 loc_3101C: ; CODE XREF: sub_30DA8+268j ; sub_30DA8+26Ej move.w d1,(word_FFFFA186).w clr.w d3 move.w (word_FFFFAEE0).w,d0 cmpi.w #$FF80,d1 bge.s loc_31030 move.l d3,d1 bra.s loc_31044 ; --------------------------------------------------------------------------- loc_31030: ; CODE XREF: sub_30DA8+282j tst.w d1 bge.s loc_31040 ext.l d1 addi.l #$80,d1 ; '?' asl.l #5,d1 bra.s loc_31044 ; --------------------------------------------------------------------------- loc_31040: ; CODE XREF: sub_30DA8+28Aj move.w #$1000,d1 loc_31044: ; CODE XREF: sub_30DA8+286j ; sub_30DA8+296j moveq #$13,d2 bra.w loc_30F48 ; --------------------------------------------------------------------------- loc_3104A: ; CODE XREF: sub_30DA8+1BCj ; sub_30DA8+23Ej ... move.b (byte_FFFFA142).w,d0 beq.s loc_31060 move.w (word_FFFFAB66).w,d3 cmp.w (FUEL_DY_KE_DFCO_STOMP_COMP_TPS_MIN).l,d3 ; Throttle position below which stomp comp will not be applied when exiting DFCO. ; Percent bhi.s loc_31060 clr.w d3 bra.s loc_31090 ; --------------------------------------------------------------------------- loc_31060: ; CODE XREF: sub_30DA8+2A6j ; sub_30DA8+2B2j clr.w d5 move.b var_2(a6),d5 clr.l d7 move.w unk_FFFFA154(d5.w*2),d7 clr.l d3 move.w (word_FFFFA126).w,d3 sub.l d7,d3 cmpi.l #$FFFF8000,d3 blt.s loc_3108C cmpi.l #$7FFF,d3 ble.s loc_31090 move.w #$7FFF,d3 bra.s loc_31090 ; --------------------------------------------------------------------------- loc_3108C: ; CODE XREF: sub_30DA8+2D4j move.w #$8000,d3 loc_31090: ; CODE XREF: sub_30DA8+2B6j ; sub_30DA8+2DCj ... tst.b d0 bls.s loc_3109A subq.b #1,d0 move.b d0,(byte_FFFFA142).w loc_3109A: ; CODE XREF: sub_30DA8+2EAj cmp.w (word_FFFF9FCA).w,d3 bgt.s loc_310A6 clr.w (word_FFFFA17A).w bra.s loc_3111C ; --------------------------------------------------------------------------- loc_310A6: ; CODE XREF: sub_30DA8+2F6j clr.l d0 move.w (word_FFFF9FCC).w,d0 move.l d3,d1 ext.l d1 cmp.l d0,d1 bgt.s loc_310BA clr.w (word_FFFFA146).w bra.s loc_310BE ; --------------------------------------------------------------------------- loc_310BA: ; CODE XREF: sub_30DA8+30Aj move.w d3,(word_FFFFA146).w loc_310BE: ; CODE XREF: sub_30DA8+310j clr.w d5 move.b var_2(a6),d5 move.w unk_FFFFA166(d5.w*2),d3 mulu.w (word_FFFF9FCE).w,d3 lsr.l #8,d3 lsr.l #4,d3 andi.l #$FFFF,d3 move.l d3,d0 move.w #$800,d3 move.w (word_FFFFA146).w,d5 muls.w (word_FFFFA178).w,d5 divs.w d3,d5 bvc.s loc_310F2 swap d5 eor.w d3,d5 bmi.s loc_310FC bra.s loc_310F6 ; --------------------------------------------------------------------------- loc_310F2: ; CODE XREF: sub_30DA8+340j move.w d5,d3 bra.s loc_31100 ; --------------------------------------------------------------------------- loc_310F6: ; CODE XREF: sub_30DA8+348j move.w #$7FFF,d3 bra.s loc_31100 ; --------------------------------------------------------------------------- loc_310FC: ; CODE XREF: sub_30DA8+346j move.w #$8000,d3 loc_31100: ; CODE XREF: sub_30DA8+34Cj ; sub_30DA8+352j ext.l d3 add.l d0,d3 tst.l d3 blt.s loc_31116 cmpi.l #$FFFF,d3 bls.s loc_31118 move.w #$FFFF,d3 bra.s loc_31118 ; --------------------------------------------------------------------------- loc_31116: ; CODE XREF: sub_30DA8+35Ej clr.w d3 loc_31118: ; CODE XREF: sub_30DA8+366j ; sub_30DA8+36Cj move.w d3,(word_FFFFA17A).w loc_3111C: ; CODE XREF: sub_30DA8+2FCj clr.w d7 move.b var_2(a6),d7 move.w (word_FFFFA17A).w,$1E+var_5EB8(d7.w*2) move.w unk_FFFFA12A(d7.w*2),d3 mulu.w (word_FFFFA148).w,d3 lsr.l #8,d3 lsr.l #3,d3 move.w d3,(word_FFFFA150).w move.w (FUEL_DY_KE_MIN_PULSE_WIDTH).l,d5 mulu.w (word_FFFFB0EC).w,d5 moveq #$13,d3 mulu.l d5,d3 bvs.s loc_31154 divu.w #$95F5,d3 bvc.s loc_31158 loc_31154: ; CODE XREF: sub_30DA8+3A4j move.w #$FFFF,d3 loc_31158: ; CODE XREF: sub_30DA8+3AAj move.w d3,(word_FFFFA152).w move.w (word_FFFFA126).w,d4 sub.w (word_FFFFA150).w,d4 bcc.s loc_31168 clr.w d4 loc_31168: ; CODE XREF: sub_30DA8+3BCj andi.l #$FFFF,d4 asl.l #8,d4 asl.l #3,d4 divu.w (word_FFFFA14C).w,d4 bvc.s loc_3117C move.w #$FFFF,d4 loc_3117C: ; CODE XREF: sub_30DA8+3CEj tst.w d4 beq.s loc_3118A cmp.w d3,d4 bhi.s loc_3118A move.w d3,(word_FFFFA17E).w bra.s loc_3118E ; --------------------------------------------------------------------------- loc_3118A: ; CODE XREF: sub_30DA8+3D6j ; sub_30DA8+3DAj move.w d4,(word_FFFFA17E).w loc_3118E: ; CODE XREF: sub_30DA8+3E0j move.w (word_FFFFA17E).w,d3 add.w (word_FFFFA17A).w,d3 bcc.s loc_3119C move.w #$FFFF,d3 loc_3119C: ; CODE XREF: sub_30DA8+3EEj move.w d3,(word_FFFFA144).w move.w (word_FFFFA17E).w,d3 mulu.w (word_FFFFA14A).w,d3 lsr.l #8,d3 lsr.l #3,d3 clr.l d5 move.w d3,d5 clr.w d0 move.b var_2(a6),d0 clr.l d3 move.w unk_FFFFA12A(d0.w*2),d3 add.l d5,d3 clr.l d5 move.w (word_FFFFA150).w,d5 sub.l d5,d3 bcs.s loc_311D8 cmpi.l #$FFFF,d3 bls.s loc_311DA move.w #$FFFF,d3 bra.s loc_311DA ; --------------------------------------------------------------------------- loc_311D8: ; CODE XREF: sub_30DA8+420j clr.w d3 loc_311DA: ; CODE XREF: sub_30DA8+428j ; sub_30DA8+42Ej move.w d3,$1E+var_5EF4(d7.w*2) loc_311E0: ; CODE XREF: sub_30DA8+F4j tst.b (byte_FFFFA17C).w beq.s loc_31206 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (FUEL_DY_KE_FUEL_IGNORE_WALL_WETTING_RPM).l,d3 bcc.s loc_311FE move.w (word_FFFFAB66).w,d3 cmp.w (FUEL_DY_KE_FUEL_IGNORE_WALL_WETTING_TPS).l,d3 bcs.s loc_31206 loc_311FE: ; CODE XREF: sub_30DA8+448j move.w (word_FFFFA144).w,(word_FFFFA13C).w bra.s loc_3120C ; --------------------------------------------------------------------------- loc_31206: ; CODE XREF: sub_30DA8+43Cj ; sub_30DA8+454j move.w (word_FFFFA126).w,(word_FFFFA13C).w loc_3120C: ; CODE XREF: sub_30DA8+45Cj tst.b (byte_FFFFAB24).w beq.s loc_31220 clr.l d3 move.w (word_FFFFAB34).w,d3 asl.l #8,d3 moveq #$7D,d0 ; '}' divu.w d0,d3 bra.s loc_31236 ; --------------------------------------------------------------------------- loc_31220: ; CODE XREF: sub_30DA8+468j btst #2,(byte_FFFFA068).w beq.s loc_31232 clr.w d3 move.b (word_FFFFA072).w,d3 asl.w #4,d3 bra.s loc_31236 ; --------------------------------------------------------------------------- loc_31232: ; CODE XREF: sub_30DA8+47Ej move.w (word_FFFFA8A6).w,d3 loc_31236: ; CODE XREF: sub_30DA8+476j ; sub_30DA8+488j mulu.w (word_FFFF98DC).w,d3 lsr.l #8,d3 lsr.l #3,d3 mulu.w (word_FFFFA13C).w,d3 move.w #$800,d0 divu.w d0,d3 bvc.s loc_3124E move.w #$FFFF,d3 loc_3124E: ; CODE XREF: sub_30DA8+4A0j move.w d3,(word_FFFFA13E).w tst.b (byte_FFFFAB24).w beq.s loc_31266 clr.l d3 move.w (word_FFFFAB36).w,d3 asl.l #8,d3 divu.w #$7D,d3 ; '}' bra.s loc_3127C ; --------------------------------------------------------------------------- loc_31266: ; CODE XREF: sub_30DA8+4AEj btst #2,(byte_FFFFA068).w beq.s loc_31278 clr.w d3 move.b (word_FFFFA072+1).w,d3 asl.w #4,d3 bra.s loc_3127C ; --------------------------------------------------------------------------- loc_31278: ; CODE XREF: sub_30DA8+4C4j move.w (word_FFFFA8A8).w,d3 loc_3127C: ; CODE XREF: sub_30DA8+4BCj ; sub_30DA8+4CEj mulu.w (word_FFFF98DE).w,d3 lsr.l #8,d3 lsr.l #3,d3 mulu.w (word_FFFFA13C).w,d3 divu.w d0,d3 bvc.s loc_31290 move.w #$FFFF,d3 loc_31290: ; CODE XREF: sub_30DA8+4E2j move.w d3,(word_FFFFA140).w tst.b (FUEL_DY_KE_MAKEUP_FUEL_ENABLED).l ; Flag used to enable/disable the calculation and delivery of makeup fuel. ; TRUE | FALSE beq.s loc_31302 clr.w d5 move.b var_2(a6),d5 move.b $C4C8.l(d5.w),d3 move.b d3,(byte_FFFFA143).w andi.w #$FF,d3 move.b $C4D2.l(d3.w),d4 move.w (word_FFFFAA8C).w,d3 cmp.w (FUEL_DY_KE_STARTUP_MAKEUP_DELAY).l,d3 ; Number of reference pulses to delay after engine is running before calculating makeup fuel. ; CARDINAL bcs.s loc_312CC tst.b (byte_FFFFA93B).w beq.s loc_312D2 loc_312CC: ; CODE XREF: sub_30DA8+51Cj clr.w (word_FFFFA128).w bra.s loc_31302 ; --------------------------------------------------------------------------- loc_312D2: ; CODE XREF: sub_30DA8+522j move.w (word_FFFFA0E4).w,d3 lsr.w #1,d3 add.w (word_FFFFA942).w,d3 bcc.s loc_312E2 move.w #$FFFF,d3 loc_312E2: ; CODE XREF: sub_30DA8+534j mulu.w (word_FFFFA1F2).w,d3 divu.w #$1000,d3 bvc.s loc_312F0 move.w #$FFFF,d3 loc_312F0: ; CODE XREF: sub_30DA8+542j clr.l d5 move.b d4,d5 sub.w unk_FFFFA154(d5.w*2),d3 bcc.s loc_312FE clr.w d3 loc_312FE: ; CODE XREF: sub_30DA8+552j move.w d3,(word_FFFFA128).w loc_31302: ; CODE XREF: sub_30DA8+4F2j ; sub_30DA8+528j clr.w d3 move.b var_2(a6),d3 move.w (word_FFFFA126).w,$1E+var_5ECA(d3.w*2) movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_30DA8 ; =============== S U B R O U T I N E ======================================= sub_31318: ; CODE XREF: DoLoopA+27Ap ; DoLoopA:loc_29D58p movem.l d0-d2/a0,-(sp) move.w (word_FFFFAEE0).w,d0 move.w (word_FFFFAEEC).w,d1 moveq #$13,d2 movea.l #$C20A,a0 jsr SurfaceTableLookup move.w d0,d3 move.w (word_FFFF9FD2).w,d4 sub.w (word_FFFF9FD0).w,d4 ext.l d4 ext.l d3 muls.l d4,d4:d3 divs.l #$800,d4:d3 bvc.s loc_31366 move.l #$800,d4 eor.l d3,d4 bmi.s loc_31360 move.l #$7FFFFFFF,d3 bra.s loc_31366 ; --------------------------------------------------------------------------- loc_31360: ; CODE XREF: sub_31318+3Ej move.l #$80000000,d3 loc_31366: ; CODE XREF: sub_31318+34j ; sub_31318+46j move.l d3,d4 clr.l d3 move.w (word_FFFF9FD0).w,d3 add.l d4,d3 bvc.s loc_31376 bmi.s loc_3138A bra.s loc_31390 ; --------------------------------------------------------------------------- loc_31376: ; CODE XREF: sub_31318+58j tst.l d3 blt.s loc_31390 cmpi.l #$FFFF,d3 bhi.s loc_3138A lsr.w #1,d3 cmpi.w #$800,d3 bls.s loc_31392 loc_3138A: ; CODE XREF: sub_31318+5Aj ; sub_31318+68j move.w #$800,d3 bra.s loc_31392 ; --------------------------------------------------------------------------- loc_31390: ; CODE XREF: sub_31318+5Cj ; sub_31318+60j clr.w d3 loc_31392: ; CODE XREF: sub_31318+70j ; sub_31318+76j move.w (word_FFFFA0DC).w,d4 cmpi.w #$8000,d4 bcc.s loc_313A0 lsr.w #2,d4 bra.s loc_313A4 ; --------------------------------------------------------------------------- loc_313A0: ; CODE XREF: sub_31318+82j move.w #$2000,d4 loc_313A4: ; CODE XREF: sub_31318+86j tblu.w (FUEL_DY_KV_IMPACT_FACTOR_MODIFIER).l,d4 ; Factor, based on air flow, which reduces KA_Boiling_Time_Constant. ; NONE 0_1 mulu.w d4,d3 lsr.l #8,d3 lsr.l #3,d3 mulu.w (word_FFFFA182).w,d3 lsr.l #8,d3 lsr.l #3,d3 move.w d3,(word_FFFFA14A).w move.w #$800,d4 sub.w d3,d4 bne.s loc_313CE move.w #1,(word_FFFFA14C).w bra.s loc_313D2 ; --------------------------------------------------------------------------- loc_313CE: ; CODE XREF: sub_31318+ACj move.w d4,(word_FFFFA14C).w loc_313D2: ; CODE XREF: sub_31318+B4j movem.l (sp)+,d0-d2/a0 rts ; End of function sub_31318 ; =============== S U B R O U T I N E ======================================= sub_313D8: ; CODE XREF: DoLoopG+154p movem.l d0-d2/a0,-(sp) tst.b (byte_FFFFA17C).w beq.s loc_31404 move.w (word_FFFFAEE0).w,d0 move.w (word_FFFFAEF8).w,d1 moveq #$13,d2 movea.l #$C0CE,a0 jsr sub_2696E mulu.w (word_FFFFA178).w,d0 lsr.l #8,d0 lsr.l #4,d0 move.w d0,(word_FFFFA178).w loc_31404: ; CODE XREF: sub_313D8+8j movem.l (sp)+,d0-d2/a0 rts ; End of function sub_313D8 ; =============== S U B R O U T I N E ======================================= sub_3140A: ; CODE XREF: sub_2F712+32p movem.l d1-d2/a0,-(sp) andi.w #$FF,d0 movea.l off_8A29C(d0.w*4),a0 jmp (a0) ; End of function sub_3140A ; --------------------------------------------------------------------------- loc_3141C: ; DATA XREF: OS4:off_8A29Co bra.w loc_31586 ; --------------------------------------------------------------------------- loc_31420: ; DATA XREF: OS4:0008A2A0o clr.w (word_FFFFA126).w bra.w loc_31586 ; --------------------------------------------------------------------------- loc_31428: ; DATA XREF: OS4:0008A2A4o tst.b (byte_FFFFAB24).w beq.s loc_3143C clr.l d3 move.w (word_FFFFAB34).w,d3 asl.l #8,d3 moveq #$7D,d4 ; '}' divu.w d4,d3 bra.s loc_31452 ; --------------------------------------------------------------------------- loc_3143C: ; CODE XREF: OS1:0003142Cj btst #2,(byte_FFFFA068).w beq.s loc_3144E clr.w d3 move.b (word_FFFFA072).w,d3 asl.w #4,d3 bra.s loc_31452 ; --------------------------------------------------------------------------- loc_3144E: ; CODE XREF: OS1:00031442j move.w (word_FFFFA8A6).w,d3 loc_31452: ; CODE XREF: OS1:0003143Aj ; OS1:0003144Cj mulu.w (word_FFFF98DC).w,d3 lsr.l #8,d3 lsr.l #3,d3 mulu.w (word_FFFFA13C).w,d3 move.w #$800,d4 divu.w d4,d3 bvc.s loc_3146A move.w #$FFFF,d3 loc_3146A: ; CODE XREF: OS1:00031464j move.w d3,(word_FFFFA13E).w tst.b (byte_FFFFAB24).w beq.s loc_31482 clr.l d3 move.w (word_FFFFAB36).w,d3 asl.l #8,d3 divu.w #$7D,d3 ; '}' bra.s loc_31498 ; --------------------------------------------------------------------------- loc_31482: ; CODE XREF: OS1:00031472j btst #2,(byte_FFFFA068).w beq.s loc_31494 clr.w d3 move.b (word_FFFFA072+1).w,d3 asl.w #4,d3 bra.s loc_31498 ; --------------------------------------------------------------------------- loc_31494: ; CODE XREF: OS1:00031488j move.w (word_FFFFA8A8).w,d3 loc_31498: ; CODE XREF: OS1:00031480j ; OS1:00031492j mulu.w (word_FFFF98DE).w,d3 lsr.l #8,d3 lsr.l #3,d3 mulu.w (word_FFFFA13C).w,d3 divu.w d4,d3 bvc.s loc_314AC move.w #$FFFF,d3 loc_314AC: ; CODE XREF: OS1:000314A6j move.w d3,(word_FFFFA140).w loc_314B0: ; DATA XREF: OS4:0008A2A8o bra.w loc_31586 ; --------------------------------------------------------------------------- loc_314B4: ; DATA XREF: OS4:0008A2ACo bra.s loc_314D2 ; --------------------------------------------------------------------------- loc_314B6: ; DATA XREF: OS4:0008A2B4o ; OS4:0008A2C0o clr.b (byte_FFFFA17C).w clr.b (byte_FFFFA180).w clr.b d3 loc_314C0: ; CODE XREF: OS1:000314D0j clr.l d4 move.b d3,d4 clr.w unk_FFFFA12A(d4.w*2) addq.b #1,d3 cmpi.b #8,d3 bls.s loc_314C0 loc_314D2: ; CODE XREF: OS1:loc_314B4j clr.w (word_FFFFA126).w clr.w (word_FFFFA13E).w clr.w (word_FFFFA140).w loc_314DE: ; DATA XREF: OS4:0008A2B8o bra.w loc_31586 ; --------------------------------------------------------------------------- loc_314E2: ; DATA XREF: OS4:0008A2BCo move.w (word_FFFFAEE0).w,d0 move.w (word_FFFFAEF8).w,d1 lea (FUEL_DY_KA_K1_INITIAL_STOMP_COMP_TIME_FA).l,a0 moveq #$26,d2 ; '&' jsr (sub_16D6).l move.w d0,(word_FFFFA178).w tst.b (byte_FFFFB24E).w beq.s loc_3156E move.l (dword_FFFFBF12).w,d3 movea.w #$1C00,a2 move.l #locret_23280,d4 cmp.l d3,d4 bcs.s loc_3151C add.l d3,d3 divu.w #$4B,d3 ; 'K' bra.s loc_31550 ; --------------------------------------------------------------------------- loc_3151C: ; CODE XREF: OS1:00031512j move.l #$119400,d5 cmp.l d3,d5 bcs.s loc_31534 sub.l d4,d3 add.l d3,d3 divu.w #$465,d3 addi.w #$F00,d3 bra.s loc_31550 ; --------------------------------------------------------------------------- loc_31534: ; CODE XREF: OS1:00031524j cmpi.l #$465000,d3 bcc.s loc_3154C subi.l #$119400,d3 divu.w #$8CA,d3 addi.w #$1600,d3 bra.s loc_31550 ; --------------------------------------------------------------------------- loc_3154C: ; CODE XREF: OS1:0003153Aj move.w #$1C00,d3 loc_31550: ; CODE XREF: OS1:0003151Aj ; OS1:00031532j ... tblu.w (FUEL_DY_KV_K1_SOAKTIMER_MODIFIER).l,d3 ; A modifier to Stomp_Comp_Time_Decay_Factor based on.soaktimer if enabled. ; NONE 0_2 mulu.w (word_FFFFA178).w,d3 lsr.l #8,d3 lsr.l #3,d3 cmpi.w #$4000,d3 bls.s loc_3156A move.w #$4000,d3 loc_3156A: ; CODE XREF: OS1:00031564j move.w d3,(word_FFFFA178).w loc_3156E: ; CODE XREF: OS1:00031500j clr.b d3 loc_31570: ; CODE XREF: OS1:00031580j clr.l d4 move.b d3,d4 clr.w unk_FFFFA166(d4.w*2) addq.b #1,d3 cmpi.b #8,d3 bls.s loc_31570 clr.w (word_FFFFA17A).w loc_31586: ; CODE XREF: OS1:loc_3141Cj ; OS1:00031424j ... movem.l (sp)+,d1-d2/a0 rts ; =============== S U B R O U T I N E ======================================= sub_3158C: ; CODE XREF: DoLoopG:loc_2B288p movem.l d0-d2/d6/a0,-(sp) tst.b (byte_FFFFABDA).w beq.s loc_315B6 move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$A000,d3 bcc.s loc_315A4 lsr.w #3,d3 bra.s loc_315A8 ; --------------------------------------------------------------------------- loc_315A4: ; CODE XREF: sub_3158C+12j move.w #$1400,d3 loc_315A8: ; CODE XREF: sub_3158C+16j tblu.w (FUEL_EQ_KV_ENGINE_PROTECTION_EQUIVALENCE).l,d3 ; Equivalence ratio based on engine speed if engine protection is enabled. ; Equiv_Ratio_Type move.w d3,(word_FFFFA20A).w bra.s loc_315BA ; --------------------------------------------------------------------------- loc_315B6: ; CODE XREF: sub_3158C+8j clr.w (word_FFFFA20A).w loc_315BA: ; CODE XREF: sub_3158C+28j move.w (word_FFFFAEBE).w,d3 sub.w (word_FFFFA234).w,d3 move.w (word_FFFFAEBE).w,d0 move.w d0,(word_FFFFA234).w tst.b (byte_FFFFA227).w beq.s loc_3164A tst.b (byte_FFFFA226).w beq.w loc_31672 tst.w (word_FFFFA22E).w beq.w loc_31672 tst.b (byte_FFFFA1F6).w bne.w loc_31672 cmp.w (FUEL_EQ_KE_PE_DELAY_VEHICLE_SPEED_RISE).l,d3 ; Vehicle speed threshold used to decrement PE_Delay, when MPH increase >= threshold. ; MPH bge.s loc_31614 clr.l d6 move.w (FUEL_EQ_KE_PE_DELAY_VEHICLE_SPEED_DROP).l,d6 ; Vehicle speed delta threshold used to decrement PE_Delay, when MPH decrease >= threshold. ; MPH ext.l d3 neg.l d3 cmp.l d6,d3 bge.s loc_31614 cmp.w (FUEL_EQ_KE_PE_DELAY_VEHICLE_SPEED_MPH).l,d0 ; Vehicle speed threshold used to decrement PE_Delay, when MPH is below threshold. ; MPH bcs.s loc_31614 move.w (word_FFFFAB66).w,d6 cmp.w (FUEL_EQ_KE_PE_DELAY_VEHICLE_SPEED_TPS).l,d6 ; Throttle position threshold used to decrement PE_Delay, when throttle is above threshold. ; Percent bls.s loc_3164A loc_31614: ; CODE XREF: sub_3158C+62j ; sub_3158C+72j ... move.w (word_FFFFA22E).w,d6 move.w (word_FFFFAB66).w,d0 move.w (EngineRPM_PID_000C___).w,d1 cmpi.w #$7000,d1 bcc.s loc_3162A lsr.w #3,d1 bra.s loc_3162E ; --------------------------------------------------------------------------- loc_3162A: ; CODE XREF: sub_3158C+98j move.w #$E00,d1 loc_3162E: ; CODE XREF: sub_3158C+9Cj lsr.w #1,d0 moveq #$B,d2 movea.l #$DBC2,a0 jsr sub_2696E sub.w d0,d6 bcc.s loc_31644 clr.w d6 loc_31644: ; CODE XREF: sub_3158C+B4j move.w d6,(word_FFFFA22E).w loc_31648: ; CODE XREF: sub_3158C+E0j bra.s loc_31672 ; --------------------------------------------------------------------------- loc_3164A: ; CODE XREF: sub_3158C+42j ; sub_3158C+86j move.w (word_FFFFA22E).w,d0 clr.l d5 move.w d0,d5 movea.w #$A0,a2 ; '?' add.l a2,d5 move.w (FUEL_EQ_KE_PE_DELAY_COUNT).l,d3 ; PE conditions must exists for this amount before PE is enabled. ; Seconds clr.l d4 move.w d3,d4 cmp.l d4,d5 bcc.s loc_3166E add.w a2,d0 move.w d0,(word_FFFFA22E).w bra.s loc_31648 ; --------------------------------------------------------------------------- loc_3166E: ; CODE XREF: sub_3158C+D8j move.w d3,(word_FFFFA22E).w loc_31672: ; CODE XREF: sub_3158C+48j ; sub_3158C+50j ... move.w (EngineRPM_PID_000C___).w,d0 cmp.w (FUEL_EQ_KE_PP_RPM).l,d0 ; Engine speed higher than this value will enable piston protection if other conditions are satisfied ; RPM bls.s loc_316BE move.w (word_FFFFAB66).w,d0 cmp.w (FUEL_EQ_KE_PP_TPS).l,d0 ; Throttle position higher than this value will enable piston protection if other conditions are satisfied ; Percent bls.s loc_316BE move.w (CoolantTemperatureOrDefault).w,d0 cmp.w (FUEL_EQ_KE_PP_CLT).l,d0 ; Coolant temperature higher than this value will enable piston protection if other conditions are satisfied ; Degrees C ble.s loc_316BE move.w (word_FFFFA0DC).w,d0 cmp.w (FUEL_EQ_KE_PP_MAF).l,d0 ; Airflow rate higher than this value will enable piston protection if other conditions are satisfied ; Grams/Second bls.s loc_316BE tst.w (word_FFFFA23A).w bne.s loc_316B0 move.b #1,(byte_FFFFA1FC).w bra.s loc_316DC ; --------------------------------------------------------------------------- loc_316B0: ; CODE XREF: sub_3158C+11Aj move.w (word_FFFFA23A).w,d3 subi.w #$A0,d3 ; '?' bcc.s loc_316D8 clr.w d3 bra.s loc_316D8 ; --------------------------------------------------------------------------- loc_316BE: ; CODE XREF: sub_3158C+F0j ; sub_3158C+FCj ... clr.b (byte_FFFFA1FC).w move.w (word_FFFFA23A).w,d3 cmp.w (FUEL_EQ_KE_PP_DELAY_TIME).l,d3 ; Delay time in seconds before entering piston protection mode. ; Seconds bcc.s loc_316DC addi.w #$A0,d3 ; '?' bcc.s loc_316D8 move.w #$FFFF,d3 loc_316D8: ; CODE XREF: sub_3158C+12Cj ; sub_3158C+130j ... move.w d3,(word_FFFFA23A).w loc_316DC: ; CODE XREF: sub_3158C+122j ; sub_3158C+140j movem.l (sp)+,d0-d2/d6/a0 rts ; End of function sub_3158C ; =============== S U B R O U T I N E ======================================= sub_316E2: ; CODE XREF: DoLoopG+3Cp jsr sub_31E86 rts ; End of function sub_316E2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_316EA: ; CODE XREF: DoLoopE+3Ep var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a1,-(sp) move.w (CoolantTemperatureOrDefault).w,d3 movea.w (word_FFFFB292).w,a3 move.w (word_FFFFAB66).w,d6 move.w (word_FFFFAEBE).w,d7 tst.b (byte_FFFFA1F4).w beq.s loc_31722 move.w (FUEL_EQ_KE_HOT_ENRICHMENT_COOLANT_EXIT_T).l,d1 ; Coolant temperature below which the hot enrichment state will become inactive, used due to hysteresis. ; Degrees_C move.w (FUEL_EQ_KE_HOT_ENRICHMENT_MAP_EXIT_THRES).l,d2 ; Manifold pressure below which the hot enrichment state will become inactive, used due to hysteresis. ; kPa move.w (FUEL_EQ_KE_HOT_ENRICHMENT_THROTTLE_EXIT_).l,d4 ; Throttle position below which the hot enrichment state will become inactive, used due to hysteresis. ; Percent move.w (FUEL_EQ_KE_HOT_ENRICHMENT_VEH_SPEED_EXIT).l,d0 ; Vehicle speed below which the hot enrichment state will become inactive, used due to hysteresis. ; MPH bra.s loc_3173A ; --------------------------------------------------------------------------- loc_31722: ; CODE XREF: sub_316EA+1Cj move.w (FUEL_EQ_KE_HOT_ENRICHMENT_COOLANT_ENTRY_).l,d1 ; Coolant temperature above which the hot enrichment state can become active. ; Degrees_C move.w (FUEL_EQ_KE_HOT_ENRICHMENT_MAP_ENTRY_THRE).l,d2 ; Manifold pressure above which the hot enrichment state can become active. ; kPa move.w (FUEL_EQ_KE_HOT_ENRICHMENT_THROTTLE_ENTRY).l,d4 ; Throttle position above which the hot enrichment state can become active. ; Percent move.w (FUEL_EQ_KE_HOT_ENRICHMENT_VEH_SPEED_ENTR).l,d0 ; Vehicle speed above which the hot enrichment state can become active. ; MPH loc_3173A: ; CODE XREF: sub_316EA+36j cmp.w d1,d3 blt.w loc_317C8 cmp.w d4,d6 bcs.w loc_317C8 move.l a3,d6 cmp.w d2,d6 bcs.s loc_317C8 cmp.w d0,d7 bcs.s loc_317C8 move.b #1,(byte_FFFFA1F4).w sub.w (FUEL_EQ_KE_HOT_ENRICHMENT_EQUIVALENCE_OF).l,d3 ; Coolant temperature threshold in which enrichmentwill be applied. ; Degrees_C cmpi.w #$DFF,d3 bgt.s loc_3176A cmpi.w #$FC00,d3 blt.s loc_31770 bra.s loc_31774 ; --------------------------------------------------------------------------- loc_3176A: ; CODE XREF: sub_316EA+76j move.w #$DFF,d3 bra.s loc_31774 ; --------------------------------------------------------------------------- loc_31770: ; CODE XREF: sub_316EA+7Cj move.w #$FC00,d3 loc_31774: ; CODE XREF: sub_316EA+7Ej ; sub_316EA+84j tst.w d3 bge.s loc_3177A clr.w d3 loc_3177A: ; CODE XREF: sub_316EA+8Cj move.l d3,d6 muls.w (FUEL_EQ_KE_HOT_ENRICHMENT_EQUIVALENCE_MU).l,d6 ; Percentage of enrichment as a function of coolant temperature. ; Mult_0_to_2 cmpi.l #$7FFFFFFF,d6 bhi.s loc_317A2 moveq #5,d3 mulu.l d6,d3 divu.w #$200,d3 bvs.s loc_3179C cmpi.w #$7FFF,d3 bls.s loc_317A4 loc_3179C: ; CODE XREF: sub_316EA+AAj move.w #$7FFF,d3 bra.s loc_317A4 ; --------------------------------------------------------------------------- loc_317A2: ; CODE XREF: sub_316EA+9Ej clr.w d3 loc_317A4: ; CODE XREF: sub_316EA+B0j ; sub_316EA+B6j addi.w #$400,d3 cmpi.w #$7FFF,d3 bls.s loc_317B2 move.w #$7FFF,d3 loc_317B2: ; CODE XREF: sub_316EA+C2j move.w (FUEL_EQ_KE_MAXIMUM_ENRICHMENT_EQUIVALENC).l,d4 ; Maximum allowable enrichment equivalence ratio. ; Equiv_Ratio_Type cmp.w d4,d3 bls.s loc_317C2 move.w d4,(word_FFFFA1F0).w bra.s loc_317D0 ; --------------------------------------------------------------------------- loc_317C2: ; CODE XREF: sub_316EA+D0j move.w d3,(word_FFFFA1F0).w bra.s loc_317D0 ; --------------------------------------------------------------------------- loc_317C8: ; CODE XREF: sub_316EA+52j ; sub_316EA+58j ... clr.w (word_FFFFA1F0).w clr.b (byte_FFFFA1F4).w loc_317D0: ; CODE XREF: sub_316EA+D6j ; sub_316EA+DCj movea.w (CoolantTemperatureOrDefault).w,a0 move.w (EngineRPM_PID_000C___).w,d3 move.w (word_FFFFAB66).w,d7 movea.w (word_FFFFB292).w,a1 move.l a0,d6 cmp.w (FUEL_EQ_KE_POWER_ENRICHMENT_HOT_TEMP).l,d6 ; Coolant temperature threshold above which a different enable criteria for PE is used. ; Degrees_C blt.s loc_31804 cmpi.w #$9000,d3 bcc.s loc_317F6 move.l d3,d4 lsr.w #3,d4 bra.s loc_317FA ; --------------------------------------------------------------------------- loc_317F6: ; CODE XREF: sub_316EA+104j move.w #$1200,d4 loc_317FA: ; CODE XREF: sub_316EA+10Aj tblu.w (FUEL_EQ_KV_POWER_ENRICHMENT_HOT_THRESHOL).l,d4 ; Defines the base enable throttle position for power enrichment when coolant temperature is above a calibration threshold. ; Percent bra.s loc_3181C ; --------------------------------------------------------------------------- loc_31804: ; CODE XREF: sub_316EA+FEj cmpi.w #$9000,d3 bcc.s loc_31810 move.l d3,d4 lsr.w #3,d4 bra.s loc_31814 ; --------------------------------------------------------------------------- loc_31810: ; CODE XREF: sub_316EA+11Ej move.w #$1200,d4 loc_31814: ; CODE XREF: sub_316EA+124j tblu.w (FUEL_EQ_KV_POWER_ENRICHMENT_COLD_THRESHO).l,d4 ; Defines the base enable throttle position for power enrichment when coolant temperature is below a calibration threshold. ; Percent loc_3181C: ; CODE XREF: sub_316EA+118j move.b (byte_FFFFA1F6).w,d0 beq.s loc_3184C tst.b (byte_FFFF93F0).w beq.s loc_31830 sub.w (FUEL_EQ_KE_TRQ_MGT_PWR_ENRICH_THROT_HYS).l,d4 ; PE throttle threshold hysteresis value applied when PE is active and ETC torque management is active. ; Percent bra.s loc_31836 ; --------------------------------------------------------------------------- loc_31830: ; CODE XREF: sub_316EA+13Cj sub.w (FUEL_EQ_KE_POWER_ENRICHMENT_THROTTLE_HYS).l,d4 ; Hysteresis to the base throttle threshold to prevent noise from turning PE on and off. ; Percent loc_31836: ; CODE XREF: sub_316EA+144j bcc.s loc_3183A clr.w d4 loc_3183A: ; CODE XREF: sub_316EA:loc_31836j move.w (FUEL_EQ_KE_PCT_TRQ_DES_TO_ENABLE_PE).l,d1 ; When PE is not active, Pct_Trq_Des_To_Enable_PE is set to this cal as enabling threshold. ; Percent_0_To_200 sub.w (FUEL_EQ_KE_HYST_PCT_TRQ_FOR_PE).l,d1 ; Pct_Trq_Des_To_Enable_PE threshold hystersis value applied when PE is active. ; Percent_0_To_200 bcc.s loc_31852 clr.w d1 bra.s loc_31852 ; --------------------------------------------------------------------------- loc_3184C: ; CODE XREF: sub_316EA+136j move.w (FUEL_EQ_KE_PCT_TRQ_DES_TO_ENABLE_PE).l,d1 ; When PE is not active, Pct_Trq_Des_To_Enable_PE is set to this cal as enabling threshold. ; Percent_0_To_200 loc_31852: ; CODE XREF: sub_316EA+15Cj ; sub_316EA+160j tst.b (byte_FFFFACAA).w beq.s loc_31862 sub.w (FUEL_EQ_KE_POWER_ENRICHMENT_COT_HYSTERES).l,d4 ; Hysteresis to the base throttle threshold to prevent noise from turning PE on and off, while in COT. ; Percent bcc.s loc_31862 clr.w d4 loc_31862: ; CODE XREF: sub_316EA+16Cj ; sub_316EA+174j tst.b d0 beq.s loc_31878 move.w (FUEL_EQ_KE_POWER_ENRICHMENT_MAP_THRESHOL).l,d0 ; Base MAP threshold to enable PE. ; kPa sub.w (FUEL_EQ_KE_POWER_ENRICHMENT_MAP_HYSTERES).l,d0 ; Hysteresis to the base MAP threshold to prevent noise from turning PE on and off. ; kPa bcc.s loc_3187E clr.w d0 bra.s loc_3187E ; --------------------------------------------------------------------------- loc_31878: ; CODE XREF: sub_316EA+17Aj move.w (FUEL_EQ_KE_POWER_ENRICHMENT_MAP_THRESHOL).l,d0 ; Base MAP threshold to enable PE. ; kPa loc_3187E: ; CODE XREF: sub_316EA+188j ; sub_316EA+18Cj move.w (word_FFFF82D2).w,d5 clr.w d2 cmpi.w #$C00,d5 bcc.s loc_3188E move.l d2,d5 bra.s loc_318A0 ; --------------------------------------------------------------------------- loc_3188E: ; CODE XREF: sub_316EA+19Ej cmpi.w #$1400,d5 bcc.s loc_3189C lsr.w #1,d5 subi.w #$600,d5 bra.s loc_318A0 ; --------------------------------------------------------------------------- loc_3189C: ; CODE XREF: sub_316EA+1A8j move.w #$400,d5 loc_318A0: ; CODE XREF: sub_316EA+1A2j ; sub_316EA+1B0j movea.l #$DD62,a2 tblu.w (a2),d5 move.w d5,d6 cmp.w d4,d7 bcs.s loc_318C2 move.l a1,d5 cmp.w d0,d5 bcs.s loc_318C2 cmp.w d6,d3 bcs.s loc_318C2 cmp.w (word_FFFF93EE).w,d1 bhi.s loc_318C2 addq.b #1,d2 loc_318C2: ; CODE XREF: sub_316EA+1C4j ; sub_316EA+1CAj ... move.b d2,(byte_FFFFA227).w move.l d7,d0 sub.w (word_FFFFA232).w,d0 bcc.s loc_318D0 clr.w d0 loc_318D0: ; CODE XREF: sub_316EA+1E2j move.w d7,(word_FFFFA232).w move.l d3,d4 sub.w (word_FFFFA230).w,d4 bcc.s loc_318DE clr.w d4 loc_318DE: ; CODE XREF: sub_316EA+1F0j move.w d3,(word_FFFFA230).w clr.b d1 move.l a0,d7 cmp.w (FUEL_EQ_KE_PE_DELAY_TEMPERATURE_LOW).l,d7 ; Coolant temperature lower window to bypass PE_Delay, when coolant is below threshold. ; Degrees_C blt.s loc_31928 cmp.w (FUEL_EQ_KE_PE_DELAY_TEMPERATURE_HIGH).l,d7 ; Coolant temperature upper window to bypass PE_Delay, when coolant is above threshold. ; Degrees_C bgt.s loc_31928 cmp.w (FUEL_EQ_KE_PE_DELAY_ENGINE_SPEED).l,d3 ; Engine speed threshold to bypass PE_Delay, when RPM is above threshold. ; RPM bhi.s loc_31928 cmp.w (FUEL_EQ_KE_PE_DELAY_THROTTLE_RISE).l,d0 ; Throttle delta threshold used with vehicle speed to bypass PE_Delay, when throttle delta is >= threshold. ; Percent bcs.s loc_31912 move.w (word_FFFFAEBE).w,d0 cmp.w (FUEL_EQ_KE_PE_DELAY_THROTTLE_RISE_MPH).l,d0 ; Vehicle speed threshold used with throttle delta to bypass PE_Delay, when MPH is below threshold. ; MPH bcs.s loc_31928 loc_31912: ; CODE XREF: sub_316EA+21Aj cmp.w (FUEL_EQ_KE_PE_DELAY_ENGINE_SPEED_RISE).l,d4 ; Engine speed delta threshold used with vehicle speed to bypass PE_Delay, when RPM is above threshold. ; RPM bls.s loc_31926 move.w (word_FFFFAEBE).w,d4 cmp.w (FUEL_EQ_KE_PE_DELAY_ENGINE_SPEED_RISE_MP).l,d4 ; Vehicle speed threshold used with Engine speed delta criteria to bypass PE_Delay, when MPH is above or equal to threshold. ; MPH bcc.s loc_31928 loc_31926: ; CODE XREF: sub_316EA+22Ej addq.b #1,d1 loc_31928: ; CODE XREF: sub_316EA+202j ; sub_316EA+20Aj ... move.b d1,(byte_FFFFA226).w tst.b d2 beq.s loc_31942 tst.b d1 beq.s loc_3193A tst.w (word_FFFFA22E).w bne.s loc_31946 loc_3193A: ; CODE XREF: sub_316EA+248j move.b #1,(byte_FFFFA1F6).w bra.s loc_31946 ; --------------------------------------------------------------------------- loc_31942: ; CODE XREF: sub_316EA+244j clr.b (byte_FFFFA1F6).w loc_31946: ; CODE XREF: sub_316EA+24Ej ; sub_316EA+256j tst.b (byte_FFFFA1F6).w beq.w loc_319CE cmpi.w #$9000,d3 bcc.s loc_31958 lsr.w #3,d3 bra.s loc_3195C ; --------------------------------------------------------------------------- loc_31958: ; CODE XREF: sub_316EA+268j move.w #$1200,d3 loc_3195C: ; CODE XREF: sub_316EA+26Cj tblu.w (FUEL_EQ_KV_POWER_ENRICHMENT_RPM_EQUIVALE).l,d3 ; Defines the base equivalence ratio for power enrichment based on RPM. ; Equiv_Ratio_Type move.l a0,d4 movea.w #$400,a0 add.w a0,d4 tbls.w (FUEL_EQ_KV_POWER_ENRICHMENT_COOLANT_EQUI).l,d4 ; Used to modify the base equivalence ratio for power enrichment based on coolant. ; Equiv_Ratio_Type tst.w d4 bpl.s loc_3197C addi.w #$F,d4 loc_3197C: ; CODE XREF: sub_316EA+28Cj asr.w #4,d4 move.w (word_FFFFB3E8).w,d0 clr.w d5 add.w a0,d0 tbls.w (FUEL_EQ_KV_POWER_ENRICHMENT_IAT_EQUIV).l,d0 ; Used to modify the base equivalence ratio for power enrichment based on IAT. For Holden application. ; Equiv_Ratio_Type tst.w d0 bpl.s loc_31996 addi.w #$F,d0 loc_31996: ; CODE XREF: sub_316EA+2A6j asr.w #4,d0 add.w d4,d3 bvc.s loc_319A0 bmi.s loc_319A8 bra.s loc_319AE ; --------------------------------------------------------------------------- loc_319A0: ; CODE XREF: sub_316EA+2B0j cmpi.w #$7FFF,d3 bhi.s loc_319AE bra.s loc_319B0 ; --------------------------------------------------------------------------- loc_319A8: ; CODE XREF: sub_316EA+2B2j move.w #$7FFF,d3 bra.s loc_319B0 ; --------------------------------------------------------------------------- loc_319AE: ; CODE XREF: sub_316EA+2B4j ; sub_316EA+2BAj move.l d5,d3 loc_319B0: ; CODE XREF: sub_316EA+2BCj ; sub_316EA+2C2j add.w d0,d3 bvc.s loc_319B8 bmi.s loc_319C0 bra.s loc_319C6 ; --------------------------------------------------------------------------- loc_319B8: ; CODE XREF: sub_316EA+2C8j cmpi.w #$7FFF,d3 bhi.s loc_319C6 bra.s loc_319C8 ; --------------------------------------------------------------------------- loc_319C0: ; CODE XREF: sub_316EA+2CAj move.w #$7FFF,d3 bra.s loc_319C8 ; --------------------------------------------------------------------------- loc_319C6: ; CODE XREF: sub_316EA+2CCj ; sub_316EA+2D2j move.l d5,d3 loc_319C8: ; CODE XREF: sub_316EA+2D4j ; sub_316EA+2DAj move.w d3,(word_FFFFA1FA).w bra.s loc_319D2 ; --------------------------------------------------------------------------- loc_319CE: ; CODE XREF: sub_316EA+260j clr.w (word_FFFFA1FA).w loc_319D2: ; CODE XREF: sub_316EA+2E2j tst.b (byte_FFFFA1F6).w beq.w loc_31A82 move.w (word_FFFFA1FA).w,d3 cmp.w (word_FFFFA1EE).w,d3 bhi.s loc_31A3E cmp.w (word_FFFFA228).w,d3 bcc.s loc_31A2A move.w (word_FFFFA238).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (FUEL_EQ_KE_PE_EQ_RAMP_OUT_RATE).l,d3 ; Unit time taken before applying stepsize to ramp-in PE EQ offset ; Seconds bcs.s loc_31A34 move.w (word_FFFFA228).w,d3 movea.w (FUEL_EQ_KE_PE_EQ_STEPSIZE).l,a2 ; Step size taken for ramp-in or ramp-out of the PE EQ offset ; Equiv_Ratio_Type sub.w a2,d3 bcc.s loc_31A10 clr.w d3 loc_31A10: ; CODE XREF: sub_316EA+322j move.w d3,(word_FFFFA1F8).w move.w (GlobalClock).w,(word_FFFFA238).w move.w (word_FFFFA1FA).w,d3 cmp.w (word_FFFFA1F8).w,d3 bcs.s loc_31A34 move.w d3,(word_FFFFA1F8).w bra.s loc_31A34 ; --------------------------------------------------------------------------- loc_31A2A: ; CODE XREF: sub_316EA+2FEj move.w d3,(word_FFFFA1F8).w move.w (GlobalClock).w,(word_FFFFA238).w loc_31A34: ; CODE XREF: sub_316EA+314j ; sub_316EA+338j ... move.w (GlobalClock).w,(word_FFFFA236).w bra.w loc_31AD2 ; --------------------------------------------------------------------------- loc_31A3E: ; CODE XREF: sub_316EA+2F8j move.w (word_FFFFA236).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (FUEL_EQ_KE_PE_EQ_RAMP_IN_RATE).l,d3 ; Unit time taken before applying stepsize to ramp-out PE EQ offset ; Seconds bcs.s loc_31AD2 move.w (FUEL_EQ_KE_PE_EQ_STEPSIZE).l,d3 ; Step size taken for ramp-in or ramp-out of the PE EQ offset ; Equiv_Ratio_Type add.w (word_FFFFA1EE).w,d3 cmpi.w #$7FFF,d3 bls.s loc_31A68 move.w #$7FFF,d3 loc_31A68: ; CODE XREF: sub_316EA+378j move.w d3,(word_FFFFA1F8).w move.w (GlobalClock).w,(word_FFFFA236).w move.w (word_FFFFA1FA).w,d3 cmp.w (word_FFFFA1F8).w,d3 bhi.s loc_31AD2 move.w d3,(word_FFFFA1F8).w bra.s loc_31AD2 ; --------------------------------------------------------------------------- loc_31A82: ; CODE XREF: sub_316EA+2ECj move.w (GlobalClock).w,(word_FFFFA236).w move.w #$400,d4 cmp.w (word_FFFFA228).w,d4 bcc.s loc_31ACE move.w (word_FFFFA238).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (FUEL_EQ_KE_PE_EQ_RAMP_OUT_RATE).l,d3 ; Unit time taken before applying stepsize to ramp-in PE EQ offset ; Seconds bcs.s loc_31AD2 move.w (word_FFFFA1F8).w,d3 movea.w (FUEL_EQ_KE_PE_EQ_STEPSIZE).l,a2 ; Step size taken for ramp-in or ramp-out of the PE EQ offset ; Equiv_Ratio_Type sub.w a2,d3 bcc.s loc_31AB8 clr.w d3 loc_31AB8: ; CODE XREF: sub_316EA+3CAj move.w d3,(word_FFFFA1F8).w move.w (GlobalClock).w,(word_FFFFA238).w cmp.w (word_FFFFA1F8).w,d4 bcs.s loc_31AD2 move.w d4,(word_FFFFA1F8).w bra.s loc_31AD2 ; --------------------------------------------------------------------------- loc_31ACE: ; CODE XREF: sub_316EA+3A6j clr.w (word_FFFFA1F8).w loc_31AD2: ; CODE XREF: sub_316EA+350j ; sub_316EA+368j ... move.w (word_FFFFA1F8).w,(word_FFFFA228).w movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_316EA ; =============== S U B R O U T I N E ======================================= nullsub_3: ; CODE XREF: DoLoopC+BEp rts ; End of function nullsub_3 ; =============== S U B R O U T I N E ======================================= sub_31AE2: ; CODE XREF: DoLoopA:loc_29DB2p movem.l d0-d2/d6-a1/a4-a5,-(sp) moveq #1,d7 cmp.b (ThrottleControlMode2?).w,d7 bne.w loc_31C84 move.b (byte_FFFFB24D).w,d3 or.b (byte_FFFFB250).w,d3 beq.w loc_31C84 move.b (byte_FFFFA209).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFA209).w cmp.b (FUEL_EQ_KE_EXTENDED_CRANK_EVENT_LIMIT).l,d3 bls.s loc_31B1A move.b (FUEL_EQ_KE_NORMAL_CRANK_EVENT_LIMIT).l,d3 ; Absolute ref count defining the end of the normal crank portion of KA_Crank_Equivalence_Ratio. ; 1-32 addq.b #1,d3 move.b d3,(byte_FFFFA209).w loc_31B1A: ; CODE XREF: sub_31AE2+2Aj tst.b (byte_FFFFB370).w beq.s loc_31B26 move.w (word_FFFF900C).w,d3 bra.s loc_31B2A ; --------------------------------------------------------------------------- loc_31B26: ; CODE XREF: sub_31AE2+3Cj move.w (word_FFFFAB66).w,d3 loc_31B2A: ; CODE XREF: sub_31AE2+42j tst.b (byte_FFFFA1EA).w beq.s loc_31B38 cmp.w (FUEL_EQ_KE_CLEAR_FLOOD_THROTTLE_EXIT).l,d3 ; Threshold which throttle position must remain above for no crank or prime fuel to be delivered. ; Percent bra.s loc_31B3E ; --------------------------------------------------------------------------- loc_31B38: ; CODE XREF: sub_31AE2+4Cj cmp.w (FUEL_EQ_KE_CLEAR_FLOOD_THROTTLE_ENTER).l,d3 ; Threshold which throttle position must initially cross for no crank or prime fuel to be delivered. ; Percent loc_31B3E: ; CODE XREF: sub_31AE2+54j shi d3 neg.b d3 move.b d3,(byte_FFFFA1EA).w beq.s loc_31B4E clr.w d3 bra.w loc_31BDA ; --------------------------------------------------------------------------- loc_31B4E: ; CODE XREF: sub_31AE2+64j movea.w (CoolantTemperatureOrDefault).w,a0 move.l a0,d3 clr.w d4 move.b (byte_FFFFA209).w,d4 moveq #$26,d2 ; '&' mulu.w d2,d4 lea $DD46.l(d4.l),a2 movea.w #$400,a4 add.w a4,d3 clr.w d0 move.b (byte_FFFFA209).w,d0 mulu.w d2,d0 tblu.w $DD46.l(d0.l),d3 move.w (word_FFFF8242).w,d0 lsr.w #1,d0 tblu.w (FUEL_EQ_KV_CRANK_EQ_RATIO_BLEND_FACTOR).l,d0 move.l a0,d4 clr.w d5 add.w a4,d4 tbls.w (FUEL_EQ_KV_CRANK_EQ_RATIO_E80_FACTOR).l,d4 muls.w d0,d4 bpl.s loc_31BA4 addi.l #$FFF,d4 loc_31BA4: ; CODE XREF: sub_31AE2+BAj asr.l #8,d4 asr.l #4,d4 movea.w #$800,a5 add.w a5,d4 bvc.s loc_31BBC bpl.s loc_31BB8 move.w #$7FFF,d4 bra.s loc_31BBC ; --------------------------------------------------------------------------- loc_31BB8: ; CODE XREF: sub_31AE2+CEj move.w #$8000,d4 loc_31BBC: ; CODE XREF: sub_31AE2+CCj ; sub_31AE2+D4j muls.w d4,d3 cmpi.l #$7FFFFFFF,d3 bhi.s loc_31BD8 divu.w #$800,d3 bvs.s loc_31BD2 cmpi.w #$7FFF,d3 bls.s loc_31BDA loc_31BD2: ; CODE XREF: sub_31AE2+E8j move.w #$7FFF,d3 bra.s loc_31BDA ; --------------------------------------------------------------------------- loc_31BD8: ; CODE XREF: sub_31AE2+E2j move.l d5,d3 loc_31BDA: ; CODE XREF: sub_31AE2+68j ; sub_31AE2+EEj ... move.b (byte_FFFFB250).w,d5 and.b (byte_FFFFB24E).w,d5 beq.s loc_31C4A move.l d3,d4 move.l (dword_FFFFBF12).w,d3 cmpi.l #locret_23280,d3 bhi.s loc_31BFA add.l d3,d3 divu.w #$4B,d3 ; 'K' bra.s loc_31C2E ; --------------------------------------------------------------------------- loc_31BFA: ; CODE XREF: sub_31AE2+10Ej move.l #$119400,d2 cmp.l d3,d2 bcs.s loc_31C16 subi.l #locret_23280,d3 add.l d3,d3 divu.w #$465,d3 addi.w #$F00,d3 bra.s loc_31C2E ; --------------------------------------------------------------------------- loc_31C16: ; CODE XREF: sub_31AE2+120j cmpi.l #$465000,d3 bcc.s loc_31C2A sub.l d2,d3 divu.w #$8CA,d3 addi.w #$1600,d3 bra.s loc_31C2E ; --------------------------------------------------------------------------- loc_31C2A: ; CODE XREF: sub_31AE2+13Aj move.w #$1C00,d3 loc_31C2E: ; CODE XREF: sub_31AE2+116j ; sub_31AE2+132j ... tblu.w (FUEL_CRANK_KV_OCTIFIRE2_SOAKTIMER_MODIFIER).l,d3 ; A modifier to Second_Octifire_Prime based on soaktimerif enabled. ; NONE 0_2 mulu.w d3,d4 lsr.l #8,d4 lsr.l #3,d4 cmpi.w #$7FFF,d4 bhi.s loc_31C46 move.w d4,d3 bra.s loc_31C4A ; --------------------------------------------------------------------------- loc_31C46: ; CODE XREF: sub_31AE2+15Ej move.w #$7FFF,d3 loc_31C4A: ; CODE XREF: sub_31AE2+100j ; sub_31AE2+162j move.w d3,d6 move.w (EngineRPM_PID_000C___).w,d1 move.w (CoolantTemperatureOrDefault).w,d0 cmpi.w #$1800,d1 bcc.s loc_31C5E lsr.w #1,d1 bra.s loc_31C62 ; --------------------------------------------------------------------------- loc_31C5E: ; CODE XREF: sub_31AE2+176j move.w #$C00,d1 loc_31C62: ; CODE XREF: sub_31AE2+17Aj movea.w #$400,a4 add.w a4,d0 moveq #$13,d2 movea.l #$D9D4,a0 jsr sub_2696E mulu.w d0,d6 lsr.l #8,d6 lsr.l #4,d6 move.w d6,(word_FFFFA1EC).w bra.w loc_31D3C ; --------------------------------------------------------------------------- loc_31C84: ; CODE XREF: sub_31AE2+Aj ; sub_31AE2+16j tst.b (byte_FFFFA1F5).w beq.s loc_31C92 move.w (word_FFFFA21E).w,d6 bra.w loc_31D3C ; --------------------------------------------------------------------------- loc_31C92: ; CODE XREF: sub_31AE2+1A6j move.b (byte_FFFFB2EF).w,d3 beq.s loc_31C9E cmpi.b #2,d3 bne.s loc_31CEC loc_31C9E: ; CODE XREF: sub_31AE2+1B4j move.w (word_FFFFA1F8).w,d6 move.w (word_FFFFACAC).w,d3 cmp.w d3,d6 bcc.s loc_31CAC move.l d3,d6 loc_31CAC: ; CODE XREF: sub_31AE2+1C6j move.w (word_FFFFA202).w,d3 cmp.w d3,d6 bcc.s loc_31CB6 move.l d3,d6 loc_31CB6: ; CODE XREF: sub_31AE2+1D0j move.w (word_FFFFA1F0).w,d3 cmp.w d3,d6 bcc.s loc_31CC0 move.l d3,d6 loc_31CC0: ; CODE XREF: sub_31AE2+1DAj move.w (word_FFFFA20A).w,d3 cmp.w d3,d6 bcc.s loc_31CCA move.l d3,d6 loc_31CCA: ; CODE XREF: sub_31AE2+1E4j move.w (word_FFFFB354).w,d3 cmp.w d3,d6 bcc.s loc_31CD4 move.l d3,d6 loc_31CD4: ; CODE XREF: sub_31AE2+1EEj move.w (word_FFFFA1FE).w,d3 cmp.w d3,d6 bcc.s loc_31CDE move.l d3,d6 loc_31CDE: ; CODE XREF: sub_31AE2+1F8j tst.b (byte_FFFFA890).w beq.s loc_31D3C move.w (FUEL_EQ_KE_OPEN_LOOP_LEAN_LIMIT).l,d3 ; Lower (lean) limit for final equivalence ration when in anidle condition. ; Equiv_Ratio_Type bra.s loc_31D36 ; --------------------------------------------------------------------------- loc_31CEC: ; CODE XREF: sub_31AE2+1BAj move.w (word_FFFFA1F8).w,d6 tst.b (byte_FFFFB2EE).w beq.s loc_31CFC move.w (word_FFFFA358).w,d6 bra.s loc_31D3C ; --------------------------------------------------------------------------- loc_31CFC: ; CODE XREF: sub_31AE2+212j cmpi.b #5,(byte_FFFF9954).w bne.s loc_31D0A move.w (word_FFFFB062).w,d6 bra.s loc_31D3C ; --------------------------------------------------------------------------- loc_31D0A: ; CODE XREF: sub_31AE2+220j move.w (word_FFFFACAC).w,d3 cmp.w d3,d6 bcc.s loc_31D14 move.l d3,d6 loc_31D14: ; CODE XREF: sub_31AE2+22Ej move.w #$400,d4 cmp.w d6,d4 bls.s loc_31D1E move.l d4,d6 loc_31D1E: ; CODE XREF: sub_31AE2+238j move.w (word_FFFFA1F0).w,d3 cmp.w d3,d6 bcc.s loc_31D28 move.l d3,d6 loc_31D28: ; CODE XREF: sub_31AE2+242j move.w (word_FFFFA1FE).w,d3 cmp.w d3,d6 bcc.s loc_31D32 move.l d3,d6 loc_31D32: ; CODE XREF: sub_31AE2+24Cj move.w (word_FFFFA242).w,d3 loc_31D36: ; CODE XREF: sub_31AE2+208j cmp.w d3,d6 bcc.s loc_31D3C move.l d3,d6 loc_31D3C: ; CODE XREF: sub_31AE2+19Ej ; sub_31AE2+1ACj ... btst #7,(byte_FFFFA7E0).w beq.s loc_31D78 tst.b (byte_FFFFA7F2).w beq.s loc_31D94 clr.w d5 move.b (byte_FFFFA7F2).w,d5 move.l #$A000,d3 divu.w d5,d3 bvs.s loc_31D70 andi.l #$FFFF,d3 asl.l #8,d3 asl.l #2,d3 divu.w (word_FFFF9FC4).w,d3 bvs.s loc_31D70 cmpi.w #$7FFF,d3 bls.s loc_31D74 loc_31D70: ; CODE XREF: sub_31AE2+276j ; sub_31AE2+286j move.w #$7FFF,d3 loc_31D74: ; CODE XREF: sub_31AE2+28Cj movea.w d3,a1 bra.s loc_31DC0 ; --------------------------------------------------------------------------- loc_31D78: ; CODE XREF: sub_31AE2+260j move.b (byte_FFFFA45A).w,d3 cmpi.b #2,d3 bhi.s loc_31DC0 beq.s loc_31D9A tst.b d3 beq.s loc_31DBE tst.b (byte_FFFFA45B).w bne.s loc_31D94 movea.w (word_FFFFA45C).w,a1 bra.s loc_31DC0 ; --------------------------------------------------------------------------- loc_31D94: ; CODE XREF: sub_31AE2+266j ; sub_31AE2+2AAj movea.w #0,a1 bra.s loc_31DC0 ; --------------------------------------------------------------------------- loc_31D9A: ; CODE XREF: sub_31AE2+2A0j move.b (byte_FFFFA45B).w,d3 cmpi.b #1,d3 bhi.s loc_31DC0 beq.s loc_31DB6 add.w (word_FFFFA45C).w,d6 cmpi.w #$7FFF,d6 bls.s loc_31DBE move.w #$7FFF,d6 bra.s loc_31DBE ; --------------------------------------------------------------------------- loc_31DB6: ; CODE XREF: sub_31AE2+2C2j sub.w (word_FFFFA45C).w,d6 bcc.s loc_31DBE clr.w d6 loc_31DBE: ; CODE XREF: sub_31AE2+2A4j ; sub_31AE2+2CCj ... movea.w d6,a1 loc_31DC0: ; CODE XREF: sub_31AE2+294j ; sub_31AE2+29Ej ... move.w a1,(word_FFFFA1EE).w move.w (word_FFFF9FC4).w,d3 mulu.w (word_FFFFA1EE).w,d3 divu.w #$400,d3 bvs.s loc_31DD8 cmpi.w #$4000,d3 bls.s loc_31DDC loc_31DD8: ; CODE XREF: sub_31AE2+2EEj move.w #$4000,d3 loc_31DDC: ; CODE XREF: sub_31AE2+2F4j move.w d3,(word_FFFFA1F2).w tst.w d3 bne.s loc_31DEA clr.w (word_FFFFA1E8).w bra.s loc_31E04 ; --------------------------------------------------------------------------- loc_31DEA: ; CODE XREF: sub_31AE2+300j move.l #$400000,d3 divu.w (word_FFFFA1F2).w,d3 bvs.s loc_31DFC cmpi.w #$7FFF,d3 bls.s loc_31E00 loc_31DFC: ; CODE XREF: sub_31AE2+312j move.w #$7FFF,d3 loc_31E00: ; CODE XREF: sub_31AE2+318j move.w d3,(word_FFFFA1E8).w loc_31E04: ; CODE XREF: sub_31AE2+306j cmp.b (byte_FFFFB2EF).w,d7 beq.s loc_31E80 move.w (word_FFFFAA8C).w,d3 cmpi.w #$FF,d3 bls.s loc_31E18 move.b #$FF,d3 loc_31E18: ; CODE XREF: sub_31AE2+330j tst.b (FUEL_EQ_KE_FAST_AFTERSTART_ENRICH_ENBLD).l ; Option to enable/disable the Fast Afterstart Enrichment algorithm. ; BOOLEAN bne.s loc_31E26 clr.w (word_FFFFA210).w bra.s loc_31E80 ; --------------------------------------------------------------------------- loc_31E26: ; CODE XREF: sub_31AE2+33Cj cmp.b (byte_FFFFA214).w,d3 bcc.s loc_31E36 clr.w (word_FFFFA210).w loc_31E30: ; CODE XREF: sub_31AE2+374j ; sub_31AE2+39Cj clr.b (byte_FFFFA20E).w bra.s loc_31E80 ; --------------------------------------------------------------------------- loc_31E36: ; CODE XREF: sub_31AE2+348j cmp.b (byte_FFFFA215).w,d3 bcc.s loc_31E58 move.w (word_FFFFAEE0).w,d0 move.w (word_FFFFAEF8).w,d1 lea (FUEL_EQ_KA_FAST_AFTERSTART_ENRICHMENT).l,a0 ; Additional coolant and fuel composition based afterstart enrichment. ; NONE 0_4 moveq #$26,d2 ; '&' jsr sub_878FA move.w d0,(word_FFFFA210).w bra.s loc_31E30 ; --------------------------------------------------------------------------- loc_31E58: ; CODE XREF: sub_31AE2+358j move.b (byte_FFFFA20E).w,d3 addq.b #1,d3 bcc.s loc_31E64 move.b #$FF,d3 loc_31E64: ; CODE XREF: sub_31AE2+37Cj move.b d3,(byte_FFFFA20E).w cmp.b (byte_FFFFA216).w,d3 bcs.s loc_31E80 move.w (word_FFFFA210).w,d3 sub.w (word_FFFFA212).w,d3 bcc.s loc_31E7A clr.w d3 loc_31E7A: ; CODE XREF: sub_31AE2+394j move.w d3,(word_FFFFA210).w bra.s loc_31E30 ; --------------------------------------------------------------------------- loc_31E80: ; CODE XREF: sub_31AE2+326j ; sub_31AE2+342j ... movem.l (sp)+,d0-d2/d6-a1/a4-a5 rts ; End of function sub_31AE2 ; =============== S U B R O U T I N E ======================================= sub_31E86: ; CODE XREF: sub_316E2p OS1:loc_3256Cp ... movem.l d0-d2/a0-a1/a4-a5,-(sp) movea.w (word_FFFFAEE0).w,a1 movea.w a1,a2 movea.w (word_FFFFAEF8).w,a5 movea.l a5,a4 lea (FUEL_EQ_KA_AFTERSTART_DECAY_DELAY).l,a0 move.l a2,d0 move.l a4,d1 moveq #$14,d2 jsr sub_8791E move.b d0,(byte_FFFFA204).w move.l a5,d1 moveq #$13,d2 move.l a1,d0 movea.l #$CFC6,a0 jsr sub_2696E move.w d0,(word_FFFFA22A).w movea.w (word_FFFFAEE0).w,a5 move.l a5,d0 movea.w (word_FFFFAEF8).w,a4 movea.l a4,a1 lea (FUEL_EQ_KA_AFTERSTART_DECAY_STEP).l,a0 ; This calibration along with the rate of change of KA_Afterstart_Decay_Delay determines the afterstart enrichment decay rate. ; Engine_Revolutions move.l a1,d1 moveq #$14,d2 jsr sub_8791E move.b d0,(byte_FFFFA205).w move.w (word_FFFFAEE2).w,d3 move.w d3,d4 tblu.b (FUEL_EQ_KV_PARK_DRIVE_DECAY_DELAY).l,d4 move.b d4,(byte_FFFFA222).w move.w d3,d4 tblu.w (FUEL_EQ_KV_PARK_DRIVE_DECAY_MULTIPLIER).l,d4 ; Decay multiplier applied to the current Park to Drive Enrichment. ; NONE 0_1 move.w d4,(word_FFFFA22C).w tblu.b (FUEL_EQ_KV_PARK_DRIVE_DECAY_STEP).l,d3 ; This calibration along with the rate of change of KV_Park_Drive_Decay_Delay determines the park to drive enrichment decay rate. ; Engine_Revolutions move.b d3,(byte_FFFFA223).w move.l a5,d0 move.l a4,d1 lea (FUEL_EQ_KA_FAST_AFTERSTART_APPLY_DELAY).l,a0 ; Number of reference pulses after engine run to wait prior to applying Fast Afterstart Enrichment. ; Engine_Revolutions moveq #$14,d2 jsr sub_8791E move.b d0,(byte_FFFFA214).w move.l a5,d0 move.l a4,d1 lea (FUEL_EQ_KA_FAST_AFTERSTART_HOLD_REFS).l,a0 ; Number of reference pulses initiated at engine run to start the Fast Afterstart Enrichment decay. ; Engine_Revolutions moveq #$14,d2 jsr sub_8791E move.b d0,(byte_FFFFA215).w move.l a4,d3 tblu.b (FUEL_EQ_KV_FAST_AFTERSTART_DECAY_INTRVL).l,d3 ; Number of ref pulses between decay steps for Fast Afterstart Enrichment ; Ref Pulses move.b d3,(byte_FFFFA216).w move.l a4,d3 tblu.w (FUEL_EQ_KV_FAST_AFTERSTART_DECAY_STEPS).l,d3 ; Equivalence ratio decay step for Fast Afterstart Enrichment. Amount decayed every KV_Fast_Afterstart_Decay_Intrvl. ; Equiv_Ratio_S_Type move.w d3,(word_FFFFA212).w movem.l (sp)+,d0-d2/a0-a1/a4-a5 rts ; End of function sub_31E86 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_31F5C: ; CODE XREF: DoLoopF+2A8p var_2 = -2 link a6,#-2 tst.b (byte_FFFFA1FC).w beq.s loc_31FBC move.w (word_FFFFA23C).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (FUEL_EQ_KE_PP_EQ_RAMP_RATE).l,d3 ; This determines the blending rate ; Seconds bcs.s loc_31FC6 move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$A000,d3 bcc.s loc_31F8A lsr.w #3,d3 bra.s loc_31F8E ; --------------------------------------------------------------------------- loc_31F8A: ; CODE XREF: sub_31F5C+28j move.w #$1400,d3 loc_31F8E: ; CODE XREF: sub_31F5C+2Cj tblu.w (FUEL_EQ_KV_PISTON_PROTECTION_EQUIVALENCE).l,d3 ; Equivalence ratio if piston protection is enabled. ; Equiv_Ratio_Type move.w d3,d4 move.w (word_FFFFA1EE).w,d3 add.w (FUEL_EQ_KE_PP_EQ_STEPSIZE).l,d3 ; This determines the amount of change to the current equivalence ratio at each ramp rate. ; Equiv Ratio cmpi.w #$7FFF,d3 bls.s loc_31FAC move.w #$7FFF,d3 loc_31FAC: ; CODE XREF: sub_31F5C+4Aj cmp.w d3,d4 bcc.s loc_31FB6 move.w d4,(word_FFFFA1FE).w bra.s loc_31FC0 ; --------------------------------------------------------------------------- loc_31FB6: ; CODE XREF: sub_31F5C+52j move.w d3,(word_FFFFA1FE).w bra.s loc_31FC0 ; --------------------------------------------------------------------------- loc_31FBC: ; CODE XREF: sub_31F5C+8j clr.w (word_FFFFA1FE).w loc_31FC0: ; CODE XREF: sub_31F5C+58j ; sub_31F5C+5Ej move.w (GlobalClock).w,(word_FFFFA23C).w loc_31FC6: ; CODE XREF: sub_31F5C+1Ej unlk a6 rts ; End of function sub_31F5C ; =============== S U B R O U T I N E ======================================= sub_31FCA: ; CODE XREF: DoLoopA+332p movem.l d0-d2/d6-a1,-(sp) tst.b (byte_FFFFA208).w bne.w loc_32114 move.w (word_FFFFAEE0).w,d0 move.w (word_FFFFAEF8).w,d1 lea ((aSSSSSSSSS+$1E)).l,a0 moveq #$26,d2 ; '&' jsr sub_878FA move.w d0,(word_FFFFA23E).w tst.b (byte_FFFFB24E).w beq.w loc_32078 move.l (dword_FFFFBF12).w,d3 move.l #locret_23280,d7 cmp.l d3,d7 bcs.s loc_3200E add.l d3,d3 moveq #$4B,d4 ; 'K' divu.w d4,d3 bra.s loc_32046 ; --------------------------------------------------------------------------- loc_3200E: ; CODE XREF: sub_31FCA+3Aj move.l #$119400,d4 cmp.l d3,d4 bcs.s loc_32028 sub.l d7,d3 add.l d3,d3 move.w #$465,d2 divu.w d2,d3 movea.w #$F00,a1 bra.s loc_3203E ; --------------------------------------------------------------------------- loc_32028: ; CODE XREF: sub_31FCA+4Cj move.l #$465000,d5 cmp.l d3,d5 bls.s loc_32042 sub.l d4,d3 move.w #$8CA,d2 divu.w d2,d3 movea.w #$1600,a1 loc_3203E: ; CODE XREF: sub_31FCA+5Cj add.w a1,d3 bra.s loc_32046 ; --------------------------------------------------------------------------- loc_32042: ; CODE XREF: sub_31FCA+66j move.w #$1C00,d3 loc_32046: ; CODE XREF: sub_31FCA+42j ; sub_31FCA+76j tblu.w (FUEL_EQ_KV_INITIAL_CLT_SOAKTIME_MODIFIER).l,d3 ; A modifier to Initial_Coolant_Enrichment based onsoaktimer if enabled. ; NONE 0_2 muls.w (word_FFFFA23E).w,d3 move.w #$800,d6 divs.w d6,d3 bvc.s loc_32062 swap d3 eor.w d6,d3 bmi.s loc_32070 bra.s loc_3206A ; --------------------------------------------------------------------------- loc_32062: ; CODE XREF: sub_31FCA+8Ej cmpi.w #$8001,d3 blt.s loc_32070 bra.s loc_32074 ; --------------------------------------------------------------------------- loc_3206A: ; CODE XREF: sub_31FCA+96j move.w #$7FFF,d3 bra.s loc_32074 ; --------------------------------------------------------------------------- loc_32070: ; CODE XREF: sub_31FCA+94j ; sub_31FCA+9Cj move.w #$8001,d3 loc_32074: ; CODE XREF: sub_31FCA+9Ej ; sub_31FCA+A4j move.w d3,(word_FFFFA23E).w loc_32078: ; CODE XREF: sub_31FCA+2Aj move.w (word_FFFFB3E8).w,d6 movea.w #$FFE,a2 movea.w #$400,a1 add.w a1,d6 muls.w #5,d6 divs.w #6,d6 tbls.w (FUEL_EQ_KV_INITIAL_IAT_ENRICHMENT).l,d6 ; Initial enrichment, based on Induction Air Temperature, to be added to open loop equivalence ratio. ; NONE -1_4 add.w (word_FFFFA23E).w,d6 bvs.s loc_320FA move.l (dword_FFFFBF12).w,d0 move.w (CoolantTemperatureOrDefault).w,d1 add.w a1,d1 move.l #locret_23280,d7 cmp.l d0,d7 bcs.s loc_320B8 add.l d0,d0 divu.w #$4B,d0 ; 'K' bra.s loc_320E8 ; --------------------------------------------------------------------------- loc_320B8: ; CODE XREF: sub_31FCA+E4j move.l #$119400,d3 cmp.l d0,d3 bcs.s loc_320D0 sub.l d7,d0 add.l d0,d0 divu.w #$465,d0 addi.w #$F00,d0 bra.s loc_320E8 ; --------------------------------------------------------------------------- loc_320D0: ; CODE XREF: sub_31FCA+F6j cmpi.l #$465000,d0 bcc.s loc_320E4 sub.l d3,d0 divu.w #$8CA,d0 addi.w #$1600,d0 bra.s loc_320E8 ; --------------------------------------------------------------------------- loc_320E4: ; CODE XREF: sub_31FCA+10Cj move.w #$1C00,d0 loc_320E8: ; CODE XREF: sub_31FCA+ECj ; sub_31FCA+104j ... moveq #$1D,d2 movea.l #$D1FC,a0 jsr sub_2696E add.w d0,d6 bvc.s loc_320FE loc_320FA: ; CODE XREF: sub_31FCA+D0j bmi.s loc_32106 bra.s loc_3210C ; --------------------------------------------------------------------------- loc_320FE: ; CODE XREF: sub_31FCA+12Ej cmpi.w #$8001,d6 blt.s loc_3210C bra.s loc_32110 ; --------------------------------------------------------------------------- loc_32106: ; CODE XREF: sub_31FCA:loc_320FAj move.w #$7FFF,d6 bra.s loc_32110 ; --------------------------------------------------------------------------- loc_3210C: ; CODE XREF: sub_31FCA+132j ; sub_31FCA+138j move.w #$8001,d6 loc_32110: ; CODE XREF: sub_31FCA+13Aj ; sub_31FCA+140j move.w d6,(word_FFFFA206).w loc_32114: ; CODE XREF: sub_31FCA+8j move.b (byte_FFFFA208).w,d3 addq.b #1,d3 bcc.s loc_32120 move.b #$FF,d3 loc_32120: ; CODE XREF: sub_31FCA+150j move.b d3,(byte_FFFFA208).w move.b (byte_FFFFA204).w,d4 add.b (byte_FFFFA205).w,d4 bcc.s loc_32132 move.b #$FF,d4 loc_32132: ; CODE XREF: sub_31FCA+162j move.b (byte_FFFFA204).w,d0 cmp.b d0,d3 bne.s loc_32154 loc_3213A: ; CODE XREF: sub_31FCA+192j move.w (word_FFFFA206).w,d3 muls.w (word_FFFFA22A).w,d3 bpl.s loc_3214A addi.l #$FFF,d3 loc_3214A: ; CODE XREF: sub_31FCA+178j asr.l #8,d3 asr.l #4,d3 move.w d3,(word_FFFFA206).w bra.s loc_3215E ; --------------------------------------------------------------------------- loc_32154: ; CODE XREF: sub_31FCA+16Ej cmp.b d4,d3 bcs.s loc_3215E move.b d0,(byte_FFFFA208).w bra.s loc_3213A ; --------------------------------------------------------------------------- loc_3215E: ; CODE XREF: sub_31FCA+188j ; sub_31FCA+18Cj movem.l (sp)+,d0-d2/d6-a1 rts ; End of function sub_31FCA ; =============== S U B R O U T I N E ======================================= sub_32164: ; CODE XREF: DoLoopA+28Ep ; OS1:00032578p ... movem.l d0-d2/a0-a1,-(sp) move.w (word_FFFFAEE0).w,d0 move.w (ManifoldPressure).w,d1 moveq #$13,d2 movea.l #$C92A,a0 jsr sub_2696E movea.w d0,a1 move.w (word_FFFFAEE0).w,d0 move.w (ManifoldPressure).w,d1 moveq #$13,d2 movea.l #$CBB0,a0 jsr sub_2696E move.w d0,d3 sub.w a1,d3 bcc.s loc_3219E clr.w d3 loc_3219E: ; CODE XREF: sub_32164+36j mulu.w (word_FFFF9FC6).w,d3 lsr.l #8,d3 lsr.l #4,d3 add.w a1,d3 cmpi.w #$7FFF,d3 bls.s loc_321B2 move.w #$7FFF,d3 loc_321B2: ; CODE XREF: sub_32164+48j add.w (word_FFFFA206).w,d3 bvs.s loc_321C4 add.w (word_FFFFA224).w,d3 bvs.s loc_321C4 add.w (word_FFFFA210).w,d3 bvc.s loc_321C8 loc_321C4: ; CODE XREF: sub_32164+52j ; sub_32164+58j bmi.s loc_321D0 bra.s loc_321D6 ; --------------------------------------------------------------------------- loc_321C8: ; CODE XREF: sub_32164+5Ej cmpi.w #$7FFF,d3 bhi.s loc_321D6 bra.s loc_321D8 ; --------------------------------------------------------------------------- loc_321D0: ; CODE XREF: sub_32164:loc_321C4j move.w #$7FFF,d3 bra.s loc_321D8 ; --------------------------------------------------------------------------- loc_321D6: ; CODE XREF: sub_32164+62j ; sub_32164+68j clr.w d3 loc_321D8: ; CODE XREF: sub_32164+6Aj ; sub_32164+70j move.w d3,(word_FFFFA202).w movem.l (sp)+,d0-d2/a0-a1 rts ; End of function sub_32164 ; =============== S U B R O U T I N E ======================================= sub_321E2: ; CODE XREF: DoLoopA:loc_29DACp tst.b (byte_FFFFA3AD).w beq.s loc_3225C tst.b (byte_FFFFA221).w bne.s loc_32212 move.w (word_FFFFA210).w,d3 cmp.w (FUEL_EQ_KE_FAST_AFTERSTART_PD_MAX).l,d3 ; Maximum amount of KV_Fast_Afterstart Enrichment to allow Park to Drive. ; Equiv_Ratio_S_Type bhi.s loc_3220A move.w (word_FFFFAEE2).w,d3 tbls.w (FUEL_EQ_KV_INITIAL_PARK_DRIVE_ENRICHMENT).l,d3 ; Initial enrichment, applied when a park to drive transition occurs, to be added to open loop equivalence ratio. ; NONE -1_4 move.w d3,(word_FFFFA224).w loc_3220A: ; CODE XREF: sub_321E2+16j move.b #1,(byte_FFFFA221).w bra.s locret_32260 ; --------------------------------------------------------------------------- loc_32212: ; CODE XREF: sub_321E2+Aj move.b (byte_FFFFA220).w,d3 addq.b #1,d3 bcc.s loc_3221E move.b #$FF,d3 loc_3221E: ; CODE XREF: sub_321E2+36j move.b d3,(byte_FFFFA220).w move.b (byte_FFFFA222).w,d4 add.b (byte_FFFFA223).w,d4 bcc.s loc_32230 move.b #$FF,d4 loc_32230: ; CODE XREF: sub_321E2+48j move.b (byte_FFFFA222).w,d5 cmp.b d5,d3 bne.s loc_32252 loc_32238: ; CODE XREF: sub_321E2+78j move.w (word_FFFFA224).w,d3 muls.w (word_FFFFA22C).w,d3 bpl.s loc_32248 addi.l #$7FF,d3 loc_32248: ; CODE XREF: sub_321E2+5Ej asr.l #8,d3 asr.l #3,d3 move.w d3,(word_FFFFA224).w bra.s locret_32260 ; --------------------------------------------------------------------------- loc_32252: ; CODE XREF: sub_321E2+54j cmp.b d4,d3 bcs.s locret_32260 move.b d5,(byte_FFFFA220).w bra.s loc_32238 ; --------------------------------------------------------------------------- loc_3225C: ; CODE XREF: sub_321E2+4j clr.w (word_FFFFA224).w locret_32260: ; CODE XREF: sub_321E2+2Ej ; sub_321E2+6Ej ... rts ; End of function sub_321E2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_32262: ; CODE XREF: DoLoopF:loc_2ADF6p var_2 = -2 link a6,#-2 move.l d0,-(sp) clr.b d4 move.b (byte_FFFFB2EE).w,d0 move.l d0,d3 and.b (FUEL_EQ_KE_ICAT_CAN_ACTIVATE_RTN).l,d3 ; Determines if Return to Normal will function after an ICAT intrusive event. ; Boolean bne.s loc_32288 cmpi.b #5,(byte_FFFF9954).w bne.s loc_3228A tst.b (FUEL_EQ_KE_POSD_CAN_ACTIVATE_RTN).l ; Determines if Return to Normal will function after an POSD intrusive event. ; Boolean beq.s loc_3228A loc_32288: ; CODE XREF: sub_32262+14j addq.b #1,d4 loc_3228A: ; CODE XREF: sub_32262+1Cj ; sub_32262+24j move.b d4,(byte_FFFFA218).w tst.b d4 bne.s loc_322BA tst.b (byte_FFFFA219).w beq.s loc_322BA tst.b (byte_FFFF9F54).w beq.s loc_322A4 tst.b (byte_FFFF9F55).w bne.s loc_322BA loc_322A4: ; CODE XREF: sub_32262+3Aj move.b #1,(byte_FFFFA200).w move.w (GlobalClock).w,(word_FFFFA240).w move.w (FUEL_EQ_KE_RETURN_TO_NORMAL_EQ_RATIO).l,(word_FFFFA242).w ; Equivalence ratio if Return to Normal is active. ; Equiv_Ratio_Type bra.s loc_3231A ; --------------------------------------------------------------------------- loc_322BA: ; CODE XREF: sub_32262+2Ej ; sub_32262+34j ... tst.b (byte_FFFFA200).w bne.s loc_322CC move.w (GlobalClock).w,(word_FFFFA240).w loc_322C6: ; CODE XREF: sub_32262+B6j clr.w (word_FFFFA242).w bra.s loc_3231A ; --------------------------------------------------------------------------- loc_322CC: ; CODE XREF: sub_32262+5Cj move.w (word_FFFFA0DC).w,d3 movea.w #$800,a2 cmpi.w #$1000,d3 bcc.s loc_322DE lsr.w #1,d3 bra.s loc_322E2 ; --------------------------------------------------------------------------- loc_322DE: ; CODE XREF: sub_32262+76j move.w #$800,d3 loc_322E2: ; CODE XREF: sub_32262+7Aj tblu.w (FUEL_EQ_KV_PO2_RETURN_TO_NORMAL_MAX_TIME).l,d3 ; Max amount time that the Retun to Normal feature will be allowed to be continuously active. ; Seconds move.w (word_FFFFA240).w,var_2(a6) move.w (GlobalClock).w,d5 sub.w var_2(a6),d5 cmp.w d3,d5 bcc.s loc_32314 cmpi.b #5,(byte_FFFF9954).w beq.s loc_32314 tst.b d0 bne.s loc_32314 tst.b (byte_FFFF9F54).w beq.s loc_3231A tst.b (byte_FFFF9F55).w beq.s loc_3231A loc_32314: ; CODE XREF: sub_32262+98j ; sub_32262+A0j ... clr.b (byte_FFFFA200).w bra.s loc_322C6 ; --------------------------------------------------------------------------- loc_3231A: ; CODE XREF: sub_32262+56j ; sub_32262+68j ... move.b d4,(byte_FFFFA219).w move.l (sp)+,d0 unlk a6 rts ; End of function sub_32262 ; =============== S U B R O U T I N E ======================================= sub_32324: ; CODE XREF: DoLoopF+2B8p movem.l d0-d2/d6-a1,-(sp) move.w (word_FFFFA1EE).w,(word_FFFFA21E).w tst.b (byte_FFFFA1F5).w beq.s loc_3233C move.w (FUEL_EQ_KE_LC_VEHICLE_SPEED_HYST_LOW).l,d3 ; When vehicle speed is above this value with other conditions satisfied, it will enable Lean Cruise mode. ; MPH bra.s loc_32342 ; --------------------------------------------------------------------------- loc_3233C: ; CODE XREF: sub_32324+Ej move.w (FUEL_EQ_KE_LC_VEHICLE_SPEED_HYST_HIGH).l,d3 ; When vehicle speed is above this value with other conditions satisfied, it will enable Lean Cruise mode. ; MPH loc_32342: ; CODE XREF: sub_32324+16j tst.w (word_FFFFAEBE).w bne.s loc_3234E move.w (GlobalClock).w,(word_FFFFA244).w loc_3234E: ; CODE XREF: sub_32324+22j clr.b d1 cmp.w (word_FFFFAEBE).w,d3 bcc.s loc_323AA move.l (EngineRunTime).w,d0 cmp.l (FUEL_EQ_KE_LC_ENGINE_RUN_TIME).l,d0 ; When engine run time is above this, with other conditions satisfied, it will enable Lean Cruise mode. ; Seconds bls.s loc_323AA move.w (FUEL_EQ_KE_LC_TIME_SINCE_IDLE).l,d0 ; When Time_Since_Last_Idle is above this with other conditions satisfied, it will enable Lean Cruise mode. ; Seconds movea.l #unk_FFA244,a0 jsr sub_276D4 tst.b d0 beq.s loc_323AA tst.b (byte_FFFFA1F4).w bne.s loc_323AA tst.b (byte_FFFFACAA).w bne.s loc_323AA tst.w (word_FFFFA1F8).w bne.s loc_323AA tst.b (byte_FFFFA1FC).w bne.s loc_323AA tst.b (byte_FFFFB2EE).w bne.s loc_323AA tst.b (byte_FFFFB352).w bne.s loc_323AA tst.b (byte_FFFFABDA).w bne.s loc_323AA tst.b (byte_FFFFB06E).w bne.s loc_323AA addq.b #1,d1 loc_323AA: ; CODE XREF: sub_32324+30j ; sub_32324+3Cj ... move.b d1,(byte_FFFFA1F5).w tst.b d1 beq.w loc_324FE tst.b (byte_FFFFA21C).w bne.w loc_32440 move.w (CoolantTemperatureOrDefault).w,d6 addi.w #$400,d6 tblu.w (FUEL_EQ_KV_LC_COOLANT_MULTIPLIER).l,d6 ; Multiplier used to vary the amount of lean cruise effect during warmup. ; 0_to_1 move.w (word_FFFFA0E6).w,d3 move.w (EngineRPM_PID_000C___).w,d4 clr.w d5 move.l #$148,d7 cmp.w d3,d7 bls.s loc_323E4 move.l d5,d3 bra.s loc_3240A ; --------------------------------------------------------------------------- loc_323E4: ; CODE XREF: sub_32324+BAj cmpi.w #$1334,d3 bcc.s loc_32406 andi.l #$FFFF,d3 sub.l d7,d3 asl.l #8,d3 asl.l #4,d3 bmi.s loc_32402 divu.l #$147B,d3 bra.s loc_3240A ; --------------------------------------------------------------------------- loc_32402: ; CODE XREF: sub_32324+D2j clr.l d3 bra.s loc_3240A ; --------------------------------------------------------------------------- loc_32406: ; CODE XREF: sub_32324+C4j move.w #$E00,d3 loc_3240A: ; CODE XREF: sub_32324+BEj ; sub_32324+DCj ... cmpi.w #$A000,d4 bcc.s loc_32414 lsr.w #3,d4 bra.s loc_32418 ; --------------------------------------------------------------------------- loc_32414: ; CODE XREF: sub_32324+EAj move.w #$1400,d4 loc_32418: ; CODE XREF: sub_32324+EEj moveq #$15,d2 move.l d3,d1 move.l d4,d0 movea.l #$D75E,a0 jsr sub_2696E mulu.w d0,d6 lsr.l #8,d6 lsr.l #3,d6 move.w d6,(word_FFFFA21A).w move.w (word_FFFFA1EE).w,(word_FFFFA20C).w move.b #1,(byte_FFFFA21C).w loc_32440: ; CODE XREF: sub_32324+94j tst.b (byte_FFFFA217).w bne.s loc_32478 move.w (word_FFFFA1EE).w,d3 sub.w (FUEL_EQ_KE_LC_EQ_STEP_SIZE).l,d3 ; This is the step size in which ramping is done. ; Equiv_Ratio_Type bcc.s loc_32454 clr.w d3 loc_32454: ; CODE XREF: sub_32324+12Cj move.w d3,(word_FFFFA21E).w move.w (word_FFFFA20C).w,d4 sub.w (word_FFFFA21A).w,d4 bcc.s loc_32464 clr.w d4 loc_32464: ; CODE XREF: sub_32324+13Cj cmp.w d4,d3 bhi.w loc_3250A move.w d4,(word_FFFFA21E).w move.b #1,(byte_FFFFA217).w bra.w loc_3250A ; --------------------------------------------------------------------------- loc_32478: ; CODE XREF: sub_32324+120j move.w (CoolantTemperatureOrDefault).w,d6 clr.w d3 addi.w #$400,d6 tblu.w (FUEL_EQ_KV_LC_COOLANT_MULTIPLIER).l,d6 ; Multiplier used to vary the amount of lean cruise effect during warmup. ; 0_to_1 move.w (word_FFFFA0E6).w,d1 move.w (EngineRPM_PID_000C___).w,d0 move.l #$148,d7 cmp.w d1,d7 bls.s loc_324A0 move.l d3,d1 bra.s loc_324C6 ; --------------------------------------------------------------------------- loc_324A0: ; CODE XREF: sub_32324+176j cmpi.w #$1334,d1 bcc.s loc_324C2 andi.l #$FFFF,d1 sub.l d7,d1 asl.l #8,d1 asl.l #4,d1 bmi.s loc_324BE divu.l #$147B,d1 bra.s loc_324C6 ; --------------------------------------------------------------------------- loc_324BE: ; CODE XREF: sub_32324+18Ej clr.l d1 bra.s loc_324C6 ; --------------------------------------------------------------------------- loc_324C2: ; CODE XREF: sub_32324+180j move.w #$E00,d1 loc_324C6: ; CODE XREF: sub_32324+17Aj ; sub_32324+198j ... cmpi.w #$A000,d0 bcc.s loc_324D0 lsr.w #3,d0 bra.s loc_324D4 ; --------------------------------------------------------------------------- loc_324D0: ; CODE XREF: sub_32324+1A6j move.w #$1400,d0 loc_324D4: ; CODE XREF: sub_32324+1AAj moveq #$15,d2 movea.l #$D75E,a0 jsr sub_2696E mulu.w d0,d6 lsr.l #8,d6 lsr.l #3,d6 move.w d6,(word_FFFFA21A).w move.w (word_FFFFA20C).w,d3 sub.w (word_FFFFA21A).w,d3 bcc.s loc_324F8 clr.w d3 loc_324F8: ; CODE XREF: sub_32324+1D0j move.w d3,(word_FFFFA21E).w bra.s loc_3250A ; --------------------------------------------------------------------------- loc_324FE: ; CODE XREF: sub_32324+8Cj clr.b (byte_FFFFA21C).w clr.b (byte_FFFFA217).w clr.w (word_FFFFA20C).w loc_3250A: ; CODE XREF: sub_32324+142j ; sub_32324+150j ... movem.l (sp)+,d0-d2/d6-a1 rts ; End of function sub_32324 ; =============== S U B R O U T I N E ======================================= sub_32510: ; CODE XREF: sub_2F712+3Ap move.w (word_FFFFAB66).w,(word_FFFFA232).w move.w (EngineRPM_PID_000C___).w,(word_FFFFA230).w clr.b (byte_FFFFA227).w clr.b (byte_FFFFA226).w move.w (FUEL_EQ_KE_PE_DELAY_COUNT).l,(word_FFFFA22E).w ; PE conditions must exists for this amount before PE is enabled. ; Seconds move.w (word_FFFFAEBE).w,(word_FFFFA234).w clr.b (byte_FFFFA200).w clr.w (word_FFFFA242).w clr.b (byte_FFFFA219).w clr.b (byte_FFFFA218).w andi.w #$FF,d0 movea.l off_89F54(d0.w*4),a2 jmp (a2) ; End of function sub_32510 ; --------------------------------------------------------------------------- loc_32550: ; DATA XREF: OS4:off_89F54o clr.w (word_FFFFA1EC).w clr.w (word_FFFFA1F0).w clr.w (word_FFFFA1FA).w clr.b (byte_FFFFA1F4).w clr.b (byte_FFFFA208).w bra.w loc_32670 ; --------------------------------------------------------------------------- loc_32568: ; DATA XREF: OS4:00089F58o bra.w locret_32676 ; --------------------------------------------------------------------------- loc_3256C: ; DATA XREF: OS4:00089F5Co jsr sub_31E86 move.w #$400,(word_FFFFA1EE).w jsr sub_32164 move.w (FUEL_EQ_KE_PP_DELAY_TIME).l,(word_FFFFA23A).w ; Delay time in seconds before entering piston protection mode. ; Seconds bra.w locret_32676 ; --------------------------------------------------------------------------- loc_3258A: ; DATA XREF: OS4:00089F60o jsr sub_31E86 clr.w (word_FFFFA1EC).w clr.w (word_FFFFA206).w clr.b (byte_FFFFA208).w clr.w (word_FFFFA224).w clr.b (byte_FFFFA220).w clr.b (byte_FFFFA221).w clr.b (byte_FFFFA209).w clr.w (word_FFFFA20A).w clr.w (word_FFFFA1F0).w clr.w (word_FFFFA1FA).w clr.b (byte_FFFFA1F4).w move.w (word_FFFFA1EC).w,(word_FFFFA1EE).w jsr sub_32164 clr.w (word_FFFFA228).w clr.w (word_FFFFA1F8).w clr.b (byte_FFFFA1FC).w move.w (FUEL_EQ_KE_PP_DELAY_TIME).l,(word_FFFFA23A).w ; Delay time in seconds before entering piston protection mode. ; Seconds clr.w (word_FFFFA1FE).w clr.w (word_FFFFA23E).w clr.b (byte_FFFFA1F5).w clr.w (word_FFFFA21E).w clr.b (byte_FFFFA21C).w clr.b (byte_FFFFA217).w clr.w (word_FFFFA20C).w clr.w (word_FFFFA210).w clr.b (byte_FFFFA20E).w bra.s locret_32676 ; --------------------------------------------------------------------------- loc_32602: ; DATA XREF: OS4:00089F64o bra.s loc_32668 ; --------------------------------------------------------------------------- loc_32604: ; DATA XREF: OS4:00089F6Co clr.b (byte_FFFFA209).w clr.w (word_FFFFA1EC).w clr.w (word_FFFFA1F0).w clr.w (word_FFFFA1FA).w clr.b (byte_FFFFA1F4).w move.w (word_FFFFA1EC).w,(word_FFFFA1EE).w jsr sub_32164 clr.b (byte_FFFFA1F5).w clr.w (word_FFFFA21E).w clr.b (byte_FFFFA21C).w clr.b (byte_FFFFA217).w clr.w (word_FFFFA20C).w bra.s locret_32676 ; --------------------------------------------------------------------------- loc_3263A: ; DATA XREF: OS4:00089F70o clr.b (byte_FFFFA209).w clr.w (word_FFFFA1F0).w clr.w (word_FFFFA1FA).w clr.b (byte_FFFFA1F4).w bra.s loc_32670 ; --------------------------------------------------------------------------- loc_3264C: ; DATA XREF: OS4:00089F74o clr.b (byte_FFFFA209).w clr.w (word_FFFFA1EC).w clr.w (word_FFFFA1F0).w clr.w (word_FFFFA1FA).w clr.b (byte_FFFFA1F4).w move.w (word_FFFFA202).w,(word_FFFFA1EE).w bra.s locret_32676 ; --------------------------------------------------------------------------- loc_32668: ; CODE XREF: OS1:loc_32602j ; DATA XREF: OS4:00089F78o clr.b (byte_FFFFA209).w clr.w (word_FFFFA1FA).w loc_32670: ; CODE XREF: OS1:00032564j ; OS1:0003264Aj move.w (word_FFFFA1EC).w,(word_FFFFA1EE).w locret_32676: ; CODE XREF: OS1:loc_32568j ; OS1:00032586j ... rts ; =============== S U B R O U T I N E ======================================= sub_32678: ; CODE XREF: DoLoopF+2A2p cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_326AE move.w (word_FFFFB292).w,d3 cmp.w (FUEL_IO_KE_DESOOT_MAP_THRESH).l,d3 ; MAP must be at least this calibration to enable Desoot mode. ; kPa bls.s loc_326AE move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (FUEL_IO_KE_DESOOT_COOLANT_THRESH).l,d3 ; Coolant must be at least this temperature to enable Desoot mode. ; Degrees_C ble.s loc_326AE move.b (byte_FFFFB27A).w,d3 addq.b #1,d3 bcc.s loc_326A4 move.b #$FF,d3 loc_326A4: ; CODE XREF: sub_32678+26j move.b d3,(byte_FFFFB27A).w clr.b (byte_FFFFB27B).w bra.s loc_32708 ; --------------------------------------------------------------------------- loc_326AE: ; CODE XREF: sub_32678+6j ; sub_32678+12j ... move.w (FUEL_IO_KE_DESOOT_MAP_THRESH).l,d3 ; MAP must be at least this calibration to enable Desoot mode. ; kPa sub.w (FUEL_IO_KE_DESOOT_MAP_THRESH_HYSTERESIS).l,d3 ; Hysteresis required of MAP to disable Desoot mode. ; kPa bcc.s loc_326BE clr.w d3 loc_326BE: ; CODE XREF: sub_32678+42j move.w (FUEL_IO_KE_DESOOT_COOLANT_THRESH).l,d4 ; Coolant must be at least this temperature to enable Desoot mode. ; Degrees_C sub.w (FUEL_IO_KE_DESOOT_COOLANT_THRESH_HYSTERE).l,d4 ; Hysteresis required of coolant temperature to disable Desoot mode. ; Degrees_C cmpi.w #$DFF,d4 bgt.s loc_326D8 cmpi.w #$FC00,d4 blt.s loc_326DE bra.s loc_326E2 ; --------------------------------------------------------------------------- loc_326D8: ; CODE XREF: sub_32678+56j move.w #$DFF,d4 bra.s loc_326E2 ; --------------------------------------------------------------------------- loc_326DE: ; CODE XREF: sub_32678+5Cj move.w #$FC00,d4 loc_326E2: ; CODE XREF: sub_32678+5Ej ; sub_32678+64j cmp.w (word_FFFFB292).w,d3 bcc.s loc_326EE cmp.w (CoolantTemperatureOrDefault).w,d4 blt.s loc_32708 loc_326EE: ; CODE XREF: sub_32678+6Ej clr.b (byte_FFFFB27A).w tst.b (byte_FFFFB27C).w beq.s loc_32708 move.b (byte_FFFFB27B).w,d3 addq.b #1,d3 bcc.s loc_32704 move.b #$FF,d3 loc_32704: ; CODE XREF: sub_32678+86j move.b d3,(byte_FFFFB27B).w loc_32708: ; CODE XREF: sub_32678+34j ; sub_32678+74j ... move.b (FUEL_IO_KE_DESOOT_DELAY_TIME).l,d3 ; Conditions must exist for this amount of time for the Desoot mode to activate. ; Seconds cmp.b (byte_FFFFB27A).w,d3 bcc.s loc_32720 move.b #1,(byte_FFFFB27C).w clr.b (byte_FFFFB27A).w bra.s locret_32736 ; --------------------------------------------------------------------------- loc_32720: ; CODE XREF: sub_32678+9Aj cmp.b (byte_FFFFB27B).w,d3 bcs.s loc_32732 move.w (word_FFFFB292).w,d3 cmp.w (FUEL_IO_KE_DESOOT_LO_MAP_EXIT_THRESH).l,d3 ; If MAP falls below this calibration, disable Desoot mode immediately. ; kPa bhi.s locret_32736 loc_32732: ; CODE XREF: sub_32678+ACj clr.b (byte_FFFFB27C).w locret_32736: ; CODE XREF: sub_32678+A6j ; sub_32678+B8j rts ; End of function sub_32678 ; =============== S U B R O U T I N E ======================================= sub_32738: ; CODE XREF: DoLoopG+42p OS1:00032960p movem.l d0-d2/d6/a0,-(sp) move.b (byte_FFFFABDB).w,d4 beq.s loc_3274A move.w (FUEL_IO_KE_ENG_PROTECTION_NORMAL_END_OF_).l,d0 ; Normal pulse end of injection location if engine protection is enabled, in number of lores periods after the boundary. ; Lores_Periods bra.s loc_3279A ; --------------------------------------------------------------------------- loc_3274A: ; CODE XREF: sub_32738+8j cmpi.b #3,(ThrottleControlMode2?).w beq.s loc_3275A tst.b (FUEL_IO_KE_USE_CRANK_EOIT).l ; Prevent Desoot mode from affecting the end of injection targets ; BOOLEAN bne.s loc_32782 loc_3275A: ; CODE XREF: sub_32738+18j tst.b (byte_FFFFB27C).w beq.s loc_32768 move.w (FUEL_IO_KE_DESOOT_EOIT).l,d0 ; EOIT to use when Desoot mode has been activated ; Lores_Periods bra.s loc_3279A ; --------------------------------------------------------------------------- loc_32768: ; CODE XREF: sub_32738+26j move.w (CoolantTemperatureOrDefault).w,d0 addi.w #$400,d0 moveq #5,d2 muls.w d2,d0 moveq #6,d6 divs.w d6,d0 tblu.w (FUEL_IO_KV_NORMAL_END_OF_INJECTION_COOLA).l,d0 bra.s loc_3279A ; --------------------------------------------------------------------------- loc_32782: ; CODE XREF: sub_32738+20j move.w (CoolantTemperatureOrDefault).w,d0 addi.w #$400,d0 moveq #5,d2 muls.w d2,d0 moveq #6,d6 divs.w d6,d0 tblu.w (FUEL_IO_KV_END_OF_INJECTION_CRANK_TARGET).l,d0 loc_3279A: ; CODE XREF: sub_32738+10j ; sub_32738+2Ej ... tst.b d4 beq.s loc_327A6 move.w (FUEL_IO_KE_ENG_PROTECTION_TRIM_END_OF_IN).l,d1 ; Trim pulse end of injection location if engine protection is enabled, in number of lores periods after the boundary. ; Lores_Periods bra.s loc_327BE ; --------------------------------------------------------------------------- loc_327A6: ; CODE XREF: sub_32738+64j move.w (CoolantTemperatureOrDefault).w,d1 addi.w #$400,d1 muls.w #5,d1 divs.w #6,d1 tblu.w (FUEL_IO_KV_TRIM_END_OF_INJECTION_COOLANT).l,d1 ; Defines the trim pulse end of injection location, based on coolant temperature, in number of lores periods after the boundary. ; loc_327BE: ; CODE XREF: sub_32738+6Cj jsr sub_7989E movem.l (sp)+,d0-d2/d6/a0 rts ; End of function sub_32738 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_327CA: ; CODE XREF: sub_32A0C+1BAp ; sub_7C3FE+6Ap ... var_2 = -2 link a6,#-2 movem.l d0-d1,-(sp) move.w (FUEL_IO_KE_BOUNDARY_OFFSET).l,d0 move.l d0,d3 lsr.w #8,d3 move.l d3,d5 asl.w #8,d5 move.l d0,d1 sub.b d5,d1 move.l d3,d5 clr.w d3 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d3 ; Number of cylinders for this engine application. ; SHORTCARD move.l d3,d4 sub.b d5,d4 andi.w #$FF,d4 clr.w d5 move.b (byte_FFFFAC47).w,d5 add.w d5,d4 andi.l #$FFFF,d4 andi.l #$FFFF,d3 divul.l d3,d3:d4 move.w d3,(word_FFFFE1E6).w clr.b var_2(a6) move.b d1,var_2+1(a6) move.w var_2(a6),(word_FFFFE0C2).w movem.l (sp)+,d0-d1 unlk a6 rts ; End of function sub_327CA ; =============== S U B R O U T I N E ======================================= sub_32828: ; CODE XREF: sub_2FC92+300p ; sub_32EAA+38p var_2000 = -$2000 move.w d0,d5 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d0 ; Number of cylinders for this engine application. ; SHORTCARD subq.b #1,d0 clr.b d3 tst.b d0 bra.s loc_3284A ; --------------------------------------------------------------------------- loc_32838: ; CODE XREF: sub_32828:loc_3284Aj btst d3,d1 beq.s loc_32846 clr.l d4 move.b d3,d4 move.w d5,var_2000(d4.w*2) loc_32846: ; CODE XREF: sub_32828+12j addq.b #1,d3 cmp.b d3,d0 loc_3284A: ; CODE XREF: sub_32828+Ej bcc.s loc_32838 rts ; End of function sub_32828 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3284E: ; CODE XREF: DoLoopA+34Ap ; OS1:loc_3296Ep var_2 = -2 link a6,#-2 movem.l d0-d2,-(sp) tst.b (byte_FFFFAD22).w beq.s loc_3289C tst.b (byte_FFFFB26C).w bne.s loc_3289C tst.b (byte_FFFFABDC).w bne.s loc_3289C tst.b (byte_FFFFA93B).w bne.s loc_3289C btst #1,(byte_FFFF803D).w bne.s loc_3289C btst #0,(byte_FFFF803D).w bne.s loc_3289C tst.b (byte_FFFFB472).w bne.s loc_3289C btst #5,(byte_FFFF9027).w bne.s loc_3289C tst.b (byte_FFFFBEF1).w bne.s loc_3289C move.b (byte_FFFFA59C).w,d3 btst #3,d3 beq.s loc_328A0 loc_3289C: ; CODE XREF: sub_3284E+Cj ; sub_3284E+12j ... clr.b d0 bra.s loc_328FC ; --------------------------------------------------------------------------- loc_328A0: ; CODE XREF: sub_3284E+4Cj tst.b (byte_FFFFA59F).w bne.s loc_328AC tst.b (byte_FFFFB2D0).w beq.s loc_328B8 loc_328AC: ; CODE XREF: sub_3284E+56j ; sub_3284E+A8j move.b (byte_FFFFABD7).w,var_2(a6) loc_328B2: ; CODE XREF: sub_3284E+92j ; sub_3284E+A0j move.b var_2(a6),d0 bra.s loc_328FC ; --------------------------------------------------------------------------- loc_328B8: ; CODE XREF: sub_3284E+5Cj btst #6,(byte_FFFFA7E0).w beq.s loc_328D4 btst #6,(byte_FFFFA7E4).w bne.s loc_328D4 move.b #$FF,d1 move.b (byte_FFFFA7F8).w,d0 eor.b d1,d0 bra.s loc_328FC ; --------------------------------------------------------------------------- loc_328D4: ; CODE XREF: sub_3284E+70j ; sub_3284E+78j tst.b (byte_FFFFB352).w beq.s loc_328E2 move.b (byte_FFFFB356).w,var_2(a6) bra.s loc_328B2 ; --------------------------------------------------------------------------- loc_328E2: ; CODE XREF: sub_3284E+8Aj tst.b (byte_FFFFABDB).w beq.s loc_328F0 move.b (byte_FFFFABD6).w,var_2(a6) bra.s loc_328B2 ; --------------------------------------------------------------------------- loc_328F0: ; CODE XREF: sub_3284E+98j cmpi.b #3,(byte_FFFF9406).w beq.s loc_328AC move.b #$FF,d0 loc_328FC: ; CODE XREF: sub_3284E+50j ; sub_3284E+68j ... clr.w d1 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d2 ; Number of cylinders for this engine application. ; SHORTCARD subq.b #1,d2 move.l d1,d3 tst.b d2 bra.s loc_32918 ; --------------------------------------------------------------------------- loc_3290C: ; CODE XREF: sub_3284E:loc_32918j btst d3,d0 beq.s loc_32914 addi.w #$800,d1 loc_32914: ; CODE XREF: sub_3284E+C0j addq.b #1,d3 cmp.b d3,d2 loc_32918: ; CODE XREF: sub_3284E+BCj bcc.s loc_3290C move.w d1,(word_FFFFB274).w jsr sub_3292C movem.l (sp)+,d0-d2 unlk a6 rts ; End of function sub_3284E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3292C: ; CODE XREF: sub_3284E+D0p ; sub_32E6A+2Ep var_2 = -2 link a6,#-2 clr.w d3 move.b d0,d3 move.w d3,var_2(a6) move.w d3,d0 jsr sub_7985C unlk a6 rts ; End of function sub_3292C ; =============== S U B R O U T I N E ======================================= sub_32944: ; CODE XREF: sub_2F712+Ap andi.w #$FF,d0 movea.l off_F90.l(d0.w*4),a2 jmp (a2) ; End of function sub_32944 ; --------------------------------------------------------------------------- loc_32952: ; DATA XREF: Boot:off_F90o jsr (sub_EF4).l bra.s locret_3298A ; --------------------------------------------------------------------------- loc_3295A: ; DATA XREF: Boot:00000F98o jsr (sub_EF4).l jsr sub_32738 bra.s loc_3296E ; --------------------------------------------------------------------------- loc_32968: ; DATA XREF: Boot:00000F9Co ; Boot:00000FA8o jsr (sub_EF4).l loc_3296E: ; CODE XREF: OS1:00032966j jsr sub_3284E bra.s locret_3298A ; --------------------------------------------------------------------------- loc_32976: ; DATA XREF: Boot:00000FACo ; Boot:00000FB0o clr.b (byte_FFFFB27A).w clr.b (byte_FFFFB27B).w clr.b (byte_FFFFB27C).w bra.s locret_3298A ; --------------------------------------------------------------------------- loc_32984: ; DATA XREF: Boot:00000F94o ; Boot:00000FA0o ... move.b (byte_FFFF90D6).w,(byte_FFFF827D).w locret_3298A: ; CODE XREF: OS1:00032958j ; OS1:00032974j ... rts ; =============== S U B R O U T I N E ======================================= sub_3298C: ; CODE XREF: sub_873EA+68p var_2004 = -$2004 move.l d1,-(sp) tst.b (byte_FFFFB272).w beq.s loc_329B4 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d4 ; Number of cylinders for this engine application. ; SHORTCARD subq.b #1,d4 clr.b d3 tst.b d4 bra.s loc_329B0 ; --------------------------------------------------------------------------- loc_329A2: ; CODE XREF: sub_3298C:loc_329B0j clr.l d5 move.b d3,d5 move.w d0,4+var_2004(d5.w*2) addq.b #1,d3 cmp.b d3,d4 loc_329B0: ; CODE XREF: sub_3298C+14j bcc.s loc_329A2 bra.s loc_32A08 ; --------------------------------------------------------------------------- loc_329B4: ; CODE XREF: sub_3298C+6j clr.w (word_FFFFE0B6).w clr.w (word_FFFFE0B2).w move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d1 ; Number of cylinders for this engine application. ; SHORTCARD move.l d1,d4 subq.b #1,d4 clr.b d3 tst.b d4 bra.s loc_329DA ; --------------------------------------------------------------------------- loc_329CC: ; CODE XREF: sub_3298C:loc_329DAj clr.l d5 move.b d3,d5 move.w d0,4+var_2004(d5.w*2) addq.b #1,d3 cmp.b d3,d4 loc_329DA: ; CODE XREF: sub_3298C+3Ej bcc.s loc_329CC cmpi.b #6,d1 bne.s loc_329F0 move.w #$803F,(word_FFFFE0D6).w move.w #$3F,(word_FFFFE2D0).w ; '?' bra.s loc_32A02 ; --------------------------------------------------------------------------- loc_329F0: ; CODE XREF: sub_3298C+54j cmpi.b #8,d1 bne.s loc_32A02 move.w #$80FF,(word_FFFFE0D6).w move.w #$FF,(word_FFFFE2D0).w loc_32A02: ; CODE XREF: sub_3298C+62j ; sub_3298C+68j move.b #1,(byte_FFFFB272).w loc_32A08: ; CODE XREF: sub_3298C+26j move.l (sp)+,d1 rts ; End of function sub_3298C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_32A0C: ; CODE XREF: DoLoopA+35Cp var_2018 = -$2018 var_2016 = -$2016 var_1E18 = -$1E18 var_2 = -2 link a6,#-2 movem.l d0-d2/d6-d7,-(sp) tst.b (byte_FFFFB272).w beq.w loc_32B9C move.b (byte_FFFFAC47).w,d1 moveq #8,d5 cmp.b d1,d5 beq.s loc_32A84 tst.b (byte_FFFFBEF1).w bne.s loc_32A84 move.b (byte_FFFFA59C).w,d3 btst #3,d3 bne.s loc_32A84 btst #1,(byte_FFFF803D).w bne.s loc_32A84 btst #0,(byte_FFFF803D).w bne.s loc_32A84 tst.b (byte_FFFFB472).w bne.s loc_32A84 move.w (word_FFFFAC38).w,d3 cmpi.w #$FF,d3 bhi.s loc_32A64 cmpi.b #4,d3 bhi.s loc_32A64 cmpi.b #1,d3 bcs.s loc_32A68 bra.s loc_32A6A ; --------------------------------------------------------------------------- loc_32A64: ; CODE XREF: sub_32A0C+48j ; sub_32A0C+4Ej moveq #4,d3 bra.s loc_32A6A ; --------------------------------------------------------------------------- loc_32A68: ; CODE XREF: sub_32A0C+54j moveq #1,d3 loc_32A6A: ; CODE XREF: sub_32A0C+56j ; sub_32A0C+5Aj andi.w #$FF,d3 move.b (byte_FFFFB24C).w,d4 cmp.b $E781.l(d3.w),d4 bcc.s loc_32AA6 cmpi.b #3,(ThrottleControlMode2?).w beq.s loc_32AA6 loc_32A84: ; CODE XREF: sub_32A0C+18j ; sub_32A0C+1Ej ... move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d4 ; Number of cylinders for this engine application. ; SHORTCARD subq.b #1,d4 clr.b d3 tst.b d4 bra.s loc_32AA0 ; --------------------------------------------------------------------------- loc_32A92: ; CODE XREF: sub_32A0C:loc_32AA0j clr.l d0 move.b d3,d0 clr.w word_FFFFE000(d0.w*2) addq.b #1,d3 cmp.b d3,d4 loc_32AA0: ; CODE XREF: sub_32A0C+84j bcc.s loc_32A92 bra.w loc_32B3E ; --------------------------------------------------------------------------- loc_32AA6: ; CODE XREF: sub_32A0C+6Ej ; sub_32A0C+76j move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d2 ; Number of cylinders for this engine application. ; SHORTCARD subq.b #1,d2 clr.w d3 tst.b d2 bra.w loc_32B3A ; --------------------------------------------------------------------------- loc_32AB6: ; CODE XREF: sub_32A0C:loc_32B3Aj tst.b (byte_FFFFB27C).w beq.s loc_32AD0 move.l d3,d6 asl.b #3,d6 add.b d1,d6 andi.w #$FF,d6 move.b $E742.l(d6.w),d4 bra.s loc_32AE2 ; --------------------------------------------------------------------------- loc_32AD0: ; CODE XREF: sub_32A0C+AEj move.l d3,d6 asl.b #3,d6 add.b d1,d6 andi.w #$FF,d6 move.b $E6C0.l(d6.w),d4 loc_32AE2: ; CODE XREF: sub_32A0C+C2j tst.b d4 beq.s loc_32B36 clr.l d0 move.b d3,d0 tst.b $E6B8.l(d0.w) bne.s loc_32B16 clr.l d6 move.b d3,d6 move.w (word_FFFFB0E8).w,d4 mulu.w FUEL_IO_KV_INJECTOR_TRIM_FACTOR.l(d6.w*2),d4 divu.w #$800,d4 bvc.s loc_32B0E move.w #$FFFF,d4 loc_32B0E: ; CODE XREF: sub_32A0C+FCj move.w d4,$16+var_2016(d0.w*2) bra.s loc_32B36 ; --------------------------------------------------------------------------- loc_32B16: ; CODE XREF: sub_32A0C+E6j clr.l d6 move.b d3,d6 move.w (word_FFFFB0EA).w,d4 mulu.w FUEL_IO_KV_INJECTOR_TRIM_FACTOR.l(d6.w*2),d4 divu.w #$800,d4 bvc.s loc_32B30 move.w #$FFFF,d4 loc_32B30: ; CODE XREF: sub_32A0C+11Ej move.w d4,$16+var_2016(d0.w*2) loc_32B36: ; CODE XREF: sub_32A0C+D8j ; sub_32A0C+108j addq.b #1,d3 cmp.b d3,d2 loc_32B3A: ; CODE XREF: sub_32A0C+A6j bcc.w loc_32AB6 loc_32B3E: ; CODE XREF: sub_32A0C+96j tst.b (FUEL_DY_KE_MAKEUP_FUEL_ENABLED).l ; Flag used to enable/disable the calculation and delivery of makeup fuel. ; TRUE | FALSE beq.w loc_32DBE move.b (byte_FFFFA143).w,d3 cmp.b d3,d5 beq.w loc_32DBE andi.w #$FF,d3 move.w d3,var_2(a6) clr.w d3 move.b var_2+1(a6),d3 movea.w d3,a2 move.w (word_FFFFA128).w,d3 mulu.w #$FC9,d3 lsr.l #1,d3 divu.w (word_FFFFB0EC).w,d3 bvc.s loc_32B76 move.w #$FFFF,d3 loc_32B76: ; CODE XREF: sub_32A0C+164j add.w word_FFFFE000(a2.w*2),d3 bcc.s loc_32B82 move.w #$FFFF,d3 loc_32B82: ; CODE XREF: sub_32A0C+170j move.w (word_FFFFB270).w,d4 cmp.w d4,d3 bls.s loc_32B8C move.l d4,d3 loc_32B8C: ; CODE XREF: sub_32A0C+17Cj clr.w d4 move.b var_2+1(a6),d4 move.w d3,$16+var_2016(d4.w*2) bra.w loc_32DBE ; --------------------------------------------------------------------------- loc_32B9C: ; CODE XREF: sub_32A0C+Cj tst.b (byte_FFFFB24D).w bne.s loc_32BAE move.b (byte_FFFFB250).w,d3 and.b (byte_FFFFB24F).w,d3 beq.w loc_32DBE loc_32BAE: ; CODE XREF: sub_32A0C+194j moveq #8,d7 cmp.b (byte_FFFFAC47).w,d7 beq.w loc_32DBE move sr,-(sp) ori #$700,sr move.w (FUEL_IO_KE_MINIMUM_TRIM_PULSE_WIDTH).l,(word_FFFFE0B6).w ; ; jsr sub_327CA move.b (byte_FFFFAC47).w,d1 clr.l d2 move.b d1,d2 clr.l d5 move.w d2,d5 move.w (word_FFFFE1E6).w,d3 add.w (word_FFFFE1FA).w,d3 andi.l #$FFFF,d3 sub.l d5,d3 addq.l #1,d3 clr.l d0 move.w (word_FFFFE1FA).w,d0 divul.l d0,d0:d3 add.w (word_FFFFE1FA).w,d0 tst.b (byte_FFFFB250).w beq.s loc_32C02 moveq #8,d2 bra.s loc_32C4A ; --------------------------------------------------------------------------- loc_32C02: ; CODE XREF: sub_32A0C+1F0j move.w (word_FFFFAC38).w,d3 cmpi.w #$FF,d3 bhi.s loc_32C1A cmpi.b #4,d3 bhi.s loc_32C1A cmpi.b #1,d3 bcs.s loc_32C1E bra.s loc_32C20 ; --------------------------------------------------------------------------- loc_32C1A: ; CODE XREF: sub_32A0C+1FEj ; sub_32A0C+204j moveq #4,d3 bra.s loc_32C20 ; --------------------------------------------------------------------------- loc_32C1E: ; CODE XREF: sub_32A0C+20Aj moveq #1,d3 loc_32C20: ; CODE XREF: sub_32A0C+20Cj ; sub_32A0C+210j asl.b #3,d3 add.b d1,d3 andi.w #$FF,d3 move.b $E690.l(d3.w),d3 andi.w #$FF,d3 move.l d2,d7 add.w d0,d7 sub.w d3,d7 andi.l #$FFFF,d7 clr.l d2 move.w (word_FFFFE1FA).w,d2 divul.l d2,d2:d7 loc_32C4A: ; CODE XREF: sub_32A0C+1F4j move.w (word_FFFFE1E6).w,d3 clr.w d1 moveq #1,d0 move.l d0,d5 cmp.w d2,d5 bhi.s loc_32C8A loc_32C58: ; CODE XREF: sub_32A0C+27Cj move.l d3,d4 asl.w #8,d4 addi.w #$25,d4 ; '%' movea.w d4,a2 move.l d3,d6 clr.l d7 move.b d6,d7 move.w a2,$18+var_1E18(d7.w*2) move.w a2,$18+var_1E18(d7.w*2) bset d6,d1 tst.w d3 bne.s loc_32C80 move.w (word_FFFFE0D2).w,d3 bra.s loc_32C82 ; --------------------------------------------------------------------------- loc_32C80: ; CODE XREF: sub_32A0C+26Cj subq.w #1,d3 loc_32C82: ; CODE XREF: sub_32A0C+272j addq.w #1,d0 bcs.s loc_32C8A cmp.w d0,d2 bcc.s loc_32C58 loc_32C8A: ; CODE XREF: sub_32A0C+24Aj ; sub_32A0C+278j jsr sub_79750 move.w d1,(word_FFFFE2D0).w move.b (byte_FFFFAC47).w,d1 cmpi.b #8,d1 beq.s loc_32CFC tst.b (byte_FFFFBEF1).w bne.s loc_32CFC move.b (byte_FFFFA59C).w,d3 btst #3,d3 bne.s loc_32CFC btst #1,(byte_FFFF803D).w bne.s loc_32CFC btst #0,(byte_FFFF803D).w bne.s loc_32CFC tst.b (byte_FFFFB472).w bne.s loc_32CFC move.w (word_FFFFAC38).w,d3 cmpi.w #$FF,d3 bhi.s loc_32CDC cmpi.b #4,d3 bhi.s loc_32CDC cmpi.b #1,d3 bcs.s loc_32CE0 bra.s loc_32CE2 ; --------------------------------------------------------------------------- loc_32CDC: ; CODE XREF: sub_32A0C+2C0j ; sub_32A0C+2C6j moveq #4,d3 bra.s loc_32CE2 ; --------------------------------------------------------------------------- loc_32CE0: ; CODE XREF: sub_32A0C+2CCj moveq #1,d3 loc_32CE2: ; CODE XREF: sub_32A0C+2CEj ; sub_32A0C+2D2j andi.w #$FF,d3 move.b (byte_FFFFB24C).w,d4 cmp.b $E781.l(d3.w),d4 bcc.s loc_32D1E cmpi.b #3,(ThrottleControlMode2?).w beq.s loc_32D1E loc_32CFC: ; CODE XREF: sub_32A0C+290j ; sub_32A0C+296j ... move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d4 ; Number of cylinders for this engine application. ; SHORTCARD subq.b #1,d4 clr.b d3 tst.b d4 bra.s loc_32D18 ; --------------------------------------------------------------------------- loc_32D0A: ; CODE XREF: sub_32A0C:loc_32D18j clr.l d5 move.b d3,d5 clr.w word_FFFFE000(d5.w*2) addq.b #1,d3 cmp.b d3,d4 loc_32D18: ; CODE XREF: sub_32A0C+2FCj bcc.s loc_32D0A bra.w loc_32DB6 ; --------------------------------------------------------------------------- loc_32D1E: ; CODE XREF: sub_32A0C+2E6j ; sub_32A0C+2EEj move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d2 ; Number of cylinders for this engine application. ; SHORTCARD subq.b #1,d2 clr.w d3 tst.b d2 bra.w loc_32DB2 ; --------------------------------------------------------------------------- loc_32D2E: ; CODE XREF: sub_32A0C:loc_32DB2j tst.b (byte_FFFFB27C).w beq.s loc_32D48 move.l d3,d5 asl.b #3,d5 add.b d1,d5 andi.w #$FF,d5 move.b $E742.l(d5.w),d4 bra.s loc_32D5A ; --------------------------------------------------------------------------- loc_32D48: ; CODE XREF: sub_32A0C+326j move.l d3,d5 asl.b #3,d5 add.b d1,d5 andi.w #$FF,d5 move.b $E6C0.l(d5.w),d4 loc_32D5A: ; CODE XREF: sub_32A0C+33Aj tst.b d4 beq.s loc_32DAE clr.l d0 move.b d3,d0 tst.b $E6B8.l(d0.w) bne.s loc_32D8E clr.l d5 move.b d3,d5 move.w (word_FFFFB0E8).w,d4 mulu.w FUEL_IO_KV_INJECTOR_TRIM_FACTOR.l(d5.w*2),d4 divu.w #$800,d4 bvc.s loc_32D86 move.w #$FFFF,d4 loc_32D86: ; CODE XREF: sub_32A0C+374j move.w d4,$18+var_2018(d0.w*2) bra.s loc_32DAE ; --------------------------------------------------------------------------- loc_32D8E: ; CODE XREF: sub_32A0C+35Ej clr.l d5 move.b d3,d5 move.w (word_FFFFB0EA).w,d4 mulu.w FUEL_IO_KV_INJECTOR_TRIM_FACTOR.l(d5.w*2),d4 divu.w #$800,d4 bvc.s loc_32DA8 move.w #$FFFF,d4 loc_32DA8: ; CODE XREF: sub_32A0C+396j move.w d4,$18+var_2018(d0.w*2) loc_32DAE: ; CODE XREF: sub_32A0C+350j ; sub_32A0C+380j addq.b #1,d3 cmp.b d3,d2 loc_32DB2: ; CODE XREF: sub_32A0C+31Ej bcc.w loc_32D2E loc_32DB6: ; CODE XREF: sub_32A0C+30Ej move (sp)+,sr move.b #1,(byte_FFFFB272).w loc_32DBE: ; CODE XREF: sub_32A0C+138j ; sub_32A0C+142j ... movem.l (sp)+,d0-d2/d6-d7 unlk a6 rts ; End of function sub_32A0C ; =============== S U B R O U T I N E ======================================= sub_32DC6: ; CODE XREF: OS1:0002FFDAp ; OS1:loc_3004Cp ... var_1E12 = -$1E12 move sr,-(sp) ori #$700,sr movem.l d0-d2/d6,-(sp) move.w #1,(word_FFFFE0B6).w jsr sub_79772 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d6 ; Number of cylinders for this engine application. ; SHORTCARD move.l d6,d0 subq.b #1,d0 move.b d0,d4 clr.b d3 tst.b d4 bra.s loc_32E02 ; --------------------------------------------------------------------------- loc_32DEE: ; CODE XREF: sub_32DC6:loc_32E02j clr.l d1 move.b d3,d1 clr.w word_FFFFE000(d1.w*2) clr.w word_FFFFE180(d1.w*2) addq.b #1,d3 cmp.b d3,d4 loc_32E02: ; CODE XREF: sub_32DC6+26j bcc.s loc_32DEE move.w (word_FFFFE1FA).w,d1 subq.w #1,d1 clr.w d3 tst.w d1 bra.s loc_32E30 ; --------------------------------------------------------------------------- loc_32E10: ; CODE XREF: sub_32DC6:loc_32E30j move.l d3,d4 asl.w #8,d4 addi.w #$1C,d4 movea.w d4,a2 clr.l d2 move.b d3,d2 move.w a2,$12+var_1E12(d2.w*2) move.w a2,$12+var_1E12(d2.w*2) addq.w #1,d3 bcs.s loc_32E32 cmp.w d3,d1 loc_32E30: ; CODE XREF: sub_32DC6+48j bcc.s loc_32E10 loc_32E32: ; CODE XREF: sub_32DC6+66j cmpi.b #6,d6 bne.s loc_32E40 move.w #$3F,(word_FFFFE2D0).w ; '?' bra.s loc_32E4C ; --------------------------------------------------------------------------- loc_32E40: ; CODE XREF: sub_32DC6+70j cmpi.b #8,d6 bne.s loc_32E4C move.w #$FF,(word_FFFFE2D0).w loc_32E4C: ; CODE XREF: sub_32DC6+78j ; sub_32DC6+7Ej clr.b d3 tst.b d0 bra.s loc_32E60 ; --------------------------------------------------------------------------- loc_32E52: ; CODE XREF: sub_32DC6:loc_32E60j clr.l d4 move.b d3,d4 clr.w unk_FFFFE020(d4.w*2) addq.b #1,d3 cmp.b d3,d0 loc_32E60: ; CODE XREF: sub_32DC6+8Aj bcc.s loc_32E52 movem.l (sp)+,d0-d2/d6 move (sp)+,sr rts ; End of function sub_32DC6 ; =============== S U B R O U T I N E ======================================= sub_32E6A: ; CODE XREF: OS1:00030044p ; OS1:000301CAp ... move sr,-(sp) ori #$700,sr move.l d0,-(sp) move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d4 ; Number of cylinders for this engine application. ; SHORTCARD subq.b #1,d4 clr.b d3 tst.b d4 bra.s loc_32E94 ; --------------------------------------------------------------------------- loc_32E80: ; CODE XREF: sub_32E6A:loc_32E94j clr.l d0 move.b d3,d0 clr.w word_FFFFE000(d0.w*2) clr.w word_FFFFE180(d0.w*2) addq.b #1,d3 cmp.b d3,d4 loc_32E94: ; CODE XREF: sub_32E6A+14j bcc.s loc_32E80 clr.b d0 jsr sub_3292C jsr sub_79750 move.l (sp)+,d0 move (sp)+,sr rts ; End of function sub_32E6A ; =============== S U B R O U T I N E ======================================= sub_32EAA: ; CODE XREF: DoLoopD:loc_2A774p var_7D7A = -$7D7A move sr,-(sp) ori #$700,sr movem.l d0-d1,-(sp) btst #6,(byte_FFFFA7E0).w beq.s loc_32EFC btst #6,(byte_FFFFA7E4).w beq.s loc_32EFC cmpi.b #$64,(byte_FFFFB276).w ; 'd' bcc.s loc_32EEE clr.w (word_FFFFE0B2).w jsr sub_32DC6 move.w #$143,d0 move.b (byte_FFFFA7F7).w,d3 clr.b d1 bset d3,d1 jsr sub_32828 addq.b #1,(byte_FFFFB276).w bra.s loc_32F00 ; --------------------------------------------------------------------------- loc_32EEE: ; CODE XREF: sub_32EAA+20j clr.w d3 move.b (byte_FFFFA7F7).w,d3 move.b #1,$A+var_7D7A(d3.w) loc_32EFC: ; CODE XREF: sub_32EAA+10j ; sub_32EAA+18j clr.b (byte_FFFFB276).w loc_32F00: ; CODE XREF: sub_32EAA+42j movem.l (sp)+,d0-d1 move (sp)+,sr rts ; End of function sub_32EAA ; =============== S U B R O U T I N E ======================================= sub_32F08: ; CODE XREF: DoLoopG+182p cmpi.b #2,(VEH_SYS_KE_PLATFORM).l ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type bne.s locret_32F52 tst.b (byte_FFFF90D6).w beq.s locret_32F52 tst.b (byte_FFFF827D).w bne.s locret_32F52 btst #7,(byte_FFFF8252).w bne.s locret_32F52 move.w (word_FFFFAEBE).w,d3 cmp.w (FUEL_IO_KE_AIRBAG_ENG_SHUTDOWN_VEH_SPEED).l,d3 ; Threshold below which the vehicle is considered to stationary ; MPH bcc.s locret_32F52 move.w (word_FFFFB278).w,d3 cmp.w (FUEL_IO_KE_AIRBAG_ENG_SHUTDOWN_TIMER).l,d3 ; Timer above which the vehicle is considered to have been longenough to allow the state of the airbag to shutdown the engine ; Seconds bls.s loc_32F46 move.b #1,(byte_FFFFB26C).w bra.s locret_32F52 ; --------------------------------------------------------------------------- loc_32F46: ; CODE XREF: sub_32F08+34j clr.b (byte_FFFFB26C).w addi.w #$A0,d3 ; '?' move.w d3,(word_FFFFB278).w locret_32F52: ; CODE XREF: sub_32F08+8j sub_32F08+Ej ... rts ; End of function sub_32F08 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_32F54: ; CODE XREF: DoLoopE+44p var_7F2A = -$7F2A var_7F28 = -$7F28 var_6734 = -$6734 var_6732 = -$6732 var_6722 = -$6722 var_6720 = -$6720 var_66D6 = -$66D6 var_66B6 = -$66B6 var_66A8 = -$66A8 var_66A4 = -$66A4 var_66A2 = -$66A2 var_2 = -2 var_1 = -1 link a6,#-2 movem.l d0-d2/d6-a0,-(sp) btst #0,(word_FFFFA7DC).w beq.s loc_32F84 btst #4,(word_FFFFA7E2).w beq.s loc_32F7A clr.b (byte_FFFF9954).w moveq #1,d5 move.b d5,(byte_FFFF98E0).w bra.w loc_33048 ; --------------------------------------------------------------------------- loc_32F7A: ; CODE XREF: sub_32F54+16j move.b #4,(byte_FFFF9954).w bra.w loc_33044 ; --------------------------------------------------------------------------- loc_32F84: ; CODE XREF: sub_32F54+Ej moveq #1,d5 cmp.b (byte_FFFFB2EF).w,d5 bne.s loc_32FF0 cmpi.w #$400,(word_FFFFA1EE).w bne.s loc_32FF0 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (FUEL_LO_KE_ADAPTIVE_HIGH_COOLANT_LIMIT).l,d3 ; Maximum coolant temperature to allow long term cell update. ; Degrees_C bge.s loc_32FF0 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (FUEL_LO_KE_ADAPTIVE_LOW_COOLANT_LIMIT).l,d3 ; Minimum coolant temperature to allow long term cell update. ; Degrees_C ble.s loc_32FF0 move.w (word_FFFFB292).w,d3 cmp.w (word_FFFF9968).w,d3 bcs.s loc_32FF0 tst.b (byte_FFFFAB24).w bne.s loc_32FF0 btst #2,(byte_FFFFA068).w bne.s loc_32FF0 tst.b (byte_FFFFB2EE).w bne.s loc_32FF0 tst.b (byte_FFFFB06E).w bne.s loc_32FF0 tst.b (byte_FFFFA200).w bne.s loc_32FF0 btst #0,(byte_FFFF92FA).w bne.s loc_32FF0 btst #0,(byte_FFFF92FC).w bne.s loc_32FF0 move.b d5,(byte_FFFF98E0).w clr.b (byte_FFFF9954).w bra.s loc_33048 ; --------------------------------------------------------------------------- loc_32FF0: ; CODE XREF: sub_32F54+36j ; sub_32F54+3Ej ... tst.b (byte_FFFFAB24).w beq.s loc_32FFC move.b d5,(byte_FFFF9954).w bra.s loc_33044 ; --------------------------------------------------------------------------- loc_32FFC: ; CODE XREF: sub_32F54+A0j tst.b (byte_FFFFB2EE).w beq.s loc_3300A move.b #2,(byte_FFFF9954).w bra.s loc_33044 ; --------------------------------------------------------------------------- loc_3300A: ; CODE XREF: sub_32F54+ACj tst.b (byte_FFFFB06E).w beq.s loc_33018 move.b #5,(byte_FFFF9954).w bra.s loc_33044 ; --------------------------------------------------------------------------- loc_33018: ; CODE XREF: sub_32F54+BAj tst.b (byte_FFFFA200).w beq.s loc_33026 move.b #6,(byte_FFFF9954).w bra.s loc_33044 ; --------------------------------------------------------------------------- loc_33026: ; CODE XREF: sub_32F54+C8j btst #0,(byte_FFFF92FA).w bne.s loc_33036 btst #0,(byte_FFFF92FC).w beq.s loc_3303E loc_33036: ; CODE XREF: sub_32F54+D8j moveq #3,d0 move.b d0,(byte_FFFF9954).w bra.s loc_33044 ; --------------------------------------------------------------------------- loc_3303E: ; CODE XREF: sub_32F54+E0j move.b #7,(byte_FFFF9954).w loc_33044: ; CODE XREF: sub_32F54+2Cj ; sub_32F54+A6j ... clr.b (byte_FFFF98E0).w loc_33048: ; CODE XREF: sub_32F54+22j ; sub_32F54+9Aj btst #4,(byte_FFFFA7DE).w beq.s loc_330AC tst.b (byte_FFFF98DB).w bne.s loc_330AC clr.b d3 loc_33058: ; CODE XREF: sub_32F54+12Ej move.l d3,d4 add.b d4,d4 andi.w #$FF,d4 movea.w #$800,a2 move.w a2,$1A+var_6734(d4.w*2) move.w a2,$1A+var_6732(d4.w*2) move.w a2,$1A+var_7F2A(d4.w*2) move.w a2,$1A+var_7F28(d4.w*2) addq.b #1,d3 cmpi.b #$16,d3 bls.s loc_33058 moveq #$14,d3 loc_33086: ; CODE XREF: sub_32F54+14Cj move.l d3,d4 add.b d4,d4 andi.w #$FF,d4 move.w a2,$1A+var_6722(d4.w*2) move.w a2,$1A+var_6720(d4.w*2) addq.b #1,d3 cmpi.b #$16,d3 bls.s loc_33086 move.b #1,(byte_FFFF98DB).w bra.w loc_334D6 ; --------------------------------------------------------------------------- loc_330AC: ; CODE XREF: sub_32F54+FAj ; sub_32F54+100j tst.b (byte_FFFF98E0).w bne.s loc_330BC moveq #3,d5 cmp.b (byte_FFFF9954).w,d5 bne.w loc_333E6 loc_330BC: ; CODE XREF: sub_32F54+15Cj clr.w d0 loc_330BE: ; CODE XREF: sub_32F54+48Aj move.b (byte_FFFF98DA).w,d5 move.b d5,var_2(a6) clr.l d3 move.b d0,d3 move.b -$5764(d3.w),d7 move.b d7,var_1(a6) move.w word_FFFFA89E(d3.w*2),d2 move.l d0,d6 addq.b #1,d6 movea.l (dword_FFFFB5DE).w,a2 move.w $A(a2),d1 tst.b -$66BE(d3.w) beq.s loc_330F4 clr.w word_FFFF9972(d3.w*2) loc_330F4: ; CODE XREF: sub_32F54+198j move.l d5,d4 add.b d4,d4 add.b d0,d4 andi.w #$FF,d4 move.w unk_FFFF98E6(d4.w*2),d4 cmp.w word_FFFF98E2(d3.w*2),d4 bne.s loc_33114 tst.b (FUEL_LO_KE_LONG_TERM_CORRECTION_ENABLED).l ; Indicates long term cell update is enabled. ; TRUE|FALSE bne.s loc_3311C loc_33114: ; CODE XREF: sub_32F54+1B6j cmpi.b #3,(byte_FFFF9954).w bne.s loc_3315A loc_3311C: ; CODE XREF: sub_32F54+1BEj clr.l d5 move.b d0,d5 add.w word_FFFF9972(d5.w*2),d1 bcc.s loc_3312C move.w #$FFFF,d1 loc_3312C: ; CODE XREF: sub_32F54+1D2j move.w d1,$1A+var_66A8(d3.w*2) moveq #3,d5 cmp.b (byte_FFFF9954).w,d5 bne.s loc_33148 move.w (word_FFFF9322).w,d4 mulu.w #3,d4 divu.w #$133,d4 bra.s loc_3314E ; --------------------------------------------------------------------------- loc_33148: ; CODE XREF: sub_32F54+1E4j move.w (FUEL_LO_KE_LONG_TERM_UPDATE_RATE).l,d4 ; Time required for update condition to exist to allow Long Term Adaptive update. ; Seconds loc_3314E: ; CODE XREF: sub_32F54+1F2j cmp.w d4,d1 bcs.s loc_33156 moveq #1,d4 bra.s loc_3315C ; --------------------------------------------------------------------------- loc_33156: ; CODE XREF: sub_32F54+1FCj clr.b d4 bra.s loc_33162 ; --------------------------------------------------------------------------- loc_3315A: ; CODE XREF: sub_32F54+1C6j clr.b d4 loc_3315C: ; CODE XREF: sub_32F54+200j clr.w word_FFFF9972(d3.w*2) loc_33162: ; CODE XREF: sub_32F54+204j tst.b d4 beq.w loc_333D8 moveq #3,d5 cmp.b (byte_FFFF9954).w,d5 bne.s loc_331B4 tst.b -$668A(d3.w) bne.s loc_331A8 clr.l d4 move.b d6,d4 btst #1,unk_FFFF92F8(d4.w*2) beq.s loc_33196 move.w unk_FFFF9316(d4.w*2),d1 lsr.w #3,d1 move.w d1,$1A+var_66A2(d3.w*2) bra.s loc_331A0 ; --------------------------------------------------------------------------- loc_33196: ; CODE XREF: sub_32F54+230j move.w word_FFFF98DC(d3.w*2),$1A+var_66A2(d3.w*2) loc_331A0: ; CODE XREF: sub_32F54+240j move.b #1,$1A+var_66A4(d3.w) loc_331A8: ; CODE XREF: sub_32F54+222j move.w word_FFFF9978(d3.w*2),$1A+var_66B6(d3.w*2) bra.s loc_331DE ; --------------------------------------------------------------------------- loc_331B4: ; CODE XREF: sub_32F54+21Aj move.b var_2(a6),d1 add.b d1,d1 add.b d0,d1 andi.w #$FF,d1 move.w unk_FFFF98E6(d1.w*2),$1A+var_66B6(d3.w*2) andi.w #$FF,d6 btst #1,unk_FFFF92F8(d6.w*2) beq.s loc_331DE clr.b -$668A(d3.w) loc_331DE: ; CODE XREF: sub_32F54+25Ej ; sub_32F54+282j move.w #$800,d6 cmp.w d2,d6 bls.w loc_332B4 sub.w d2,d6 cmp.w (FUEL_LO_KE_UPDATE_THRESHOLD).l,d6 ; Amount the integrator must be above or below 1.0 for an update to occur. ; NONE 0-2 ble.w loc_332B4 tst.b var_1(a6) beq.w loc_332B4 clr.l d6 move.b d0,d6 move.w unk_FFFF9964(d6.w*2),d2 sub.w (FUEL_LO_KE_UPDATE_DELTA).l,d2 ; Value of the long term update amount. ; NONE 0-2 bcc.s loc_33210 clr.w d2 loc_33210: ; CODE XREF: sub_32F54+2B8j tst.b (byte_FFFF995A).w beq.s loc_3327A clr.w d6 move.b var_2(a6),d6 move.b var_2(a6),d1 add.b d1,d1 add.b d0,d1 andi.w #$FF,d1 move.w unk_FFFF80F0(d1.w*2),d4 sub.w FUEL_LO_KV_PLM_UPDATE_OFFSET.l(d6.w*2),d4 bcc.s loc_3323A clr.w d4 loc_3323A: ; CODE XREF: sub_32F54+2E2j cmp.w d4,d2 bcc.s loc_3327A tst.b (byte_FFFF996A).w beq.s loc_3327A move.l d4,d2 clr.l d6 move.b d0,d6 move.w word_FFFF9944(d6.w*2),d4 sub.w (FUEL_LO_KE_PLM_REDUCTION_DELTA).l,d4 ; Value to reduce PLM by when learning down. ; NONE 0-2 bcc.s loc_3325A clr.w d4 loc_3325A: ; CODE XREF: sub_32F54+302j clr.w d1 move.b (byte_FFFFA623).w,d1 move.w FUEL_LO_KV_PLM_MINIMUM.l(d1.w*2),d1 cmp.w d1,d4 bcc.s loc_33274 move.w d1,$1A+var_66D6(d3.w*2) bra.s loc_3327A ; --------------------------------------------------------------------------- loc_33274: ; CODE XREF: sub_32F54+316j move.w d4,$1A+var_66D6(d3.w*2) loc_3327A: ; CODE XREF: sub_32F54+2C0j ; sub_32F54+2E8j ... move.b var_2(a6),d1 cmpi.b #$10,d1 bcs.s loc_332A8 cmpi.b #$13,d1 bhi.s loc_332A8 move.w (FUEL_LO_KE_LONG_TERM_IDLE_MINIMUM).l,d4 ; Minimum long term correction for idle purge cells. ; NONE 0-2 cmp.w d4,d2 bcc.s loc_3329E loc_33294: ; CODE XREF: sub_32F54+35Cj move.w d4,$1A+var_66B6(d3.w*2) bra.w loc_33376 ; --------------------------------------------------------------------------- loc_3329E: ; CODE XREF: sub_32F54+33Ej ; sub_32F54+35Ej move.w d2,$1A+var_66B6(d3.w*2) bra.w loc_33376 ; --------------------------------------------------------------------------- loc_332A8: ; CODE XREF: sub_32F54+32Ej ; sub_32F54+334j move.w (FUEL_LO_KE_LONG_TERM_MINIMUM).l,d4 ; Minimum long term correction. ; NONE 0-2 cmp.w d4,d2 bcs.s loc_33294 bra.s loc_3329E ; --------------------------------------------------------------------------- loc_332B4: ; CODE XREF: sub_32F54+290j ; sub_32F54+29Cj ... move.w #$800,d6 cmp.w d2,d6 bhi.w loc_33376 move.w (FUEL_LO_KE_UPDATE_THRESHOLD).l,d4 ; Amount the integrator must be above or below 1.0 for an update to occur. ; NONE 0-2 add.w d6,d4 cmp.w d2,d4 bcc.w loc_33376 tst.b d7 bne.w loc_33376 cmp.w word_FFFF9944(d3.w*2),d6 bls.s loc_33312 tst.b (byte_FFFF995A).w beq.s loc_33312 tst.b (byte_FFFF996A).w beq.s loc_33312 clr.l d2 move.b d0,d2 move.w word_FFFF9944(d2.w*2),d4 add.w (FUEL_LO_KE_PLM_INCREASE_DELTA).l,d4 ; Value to increase PLM by when learning up. ; NONE 0-2 cmpi.w #$1000,d4 bls.s loc_33300 move.w #$1000,d4 loc_33300: ; CODE XREF: sub_32F54+3A6j cmp.w d4,d6 bcc.s loc_3330C move.w d6,$1A+var_66D6(d3.w*2) bra.s loc_33312 ; --------------------------------------------------------------------------- loc_3330C: ; CODE XREF: sub_32F54+3AEj move.w d4,$1A+var_66D6(d3.w*2) loc_33312: ; CODE XREF: sub_32F54+384j ; sub_32F54+38Aj ... cmp.w word_FFFF9944(d3.w*2),d6 beq.s loc_33326 tst.b (byte_FFFF995A).w beq.s loc_33326 tst.b (byte_FFFF996A).w bne.s loc_33376 loc_33326: ; CODE XREF: sub_32F54+3C4j ; sub_32F54+3CAj clr.l d2 move.b d0,d2 move.w unk_FFFF9964(d2.w*2),d4 add.w (FUEL_LO_KE_UPDATE_DELTA).l,d4 ; Value of the long term update amount. ; NONE 0-2 cmpi.w #$1000,d4 bls.s loc_33340 move.w #$1000,d4 loc_33340: ; CODE XREF: sub_32F54+3E6j move.w d4,$1A+var_66B6(d3.w*2) move.w (word_FFFFAB66).w,d1 cmp.w (FUEL_LO_KE_LONG_TERM_IDLE_THROTTLE_THRES).l,d1 ; Throttle threshold used to determine idle condition. ; Percent bhi.s loc_33366 move.w (word_FFFFAEBE).w,d1 cmp.w (FUEL_LO_KE_LONG_TERM_IDLE_VEH_SPEED_THRE).l,d1 ; Vehicle speed threshold used to determine idle condition. ; MPH bhi.s loc_33366 move.w (FUEL_LO_KE_LONG_TERM_IDLE_MAXIMUM).l,d1 ; Maximum long term correction for idle purge cells. ; NONE 0-2 bra.s loc_3336C ; --------------------------------------------------------------------------- loc_33366: ; CODE XREF: sub_32F54+3FCj ; sub_32F54+408j move.w (FUEL_LO_KE_LONG_TERM_MAXIMUM).l,d1 ; Maximum long term correction. ; NONE 0-2 loc_3336C: ; CODE XREF: sub_32F54+410j cmp.w d1,d4 bls.s loc_33376 move.w d1,$1A+var_66B6(d3.w*2) loc_33376: ; CODE XREF: sub_32F54+346j ; sub_32F54+350j ... cmp.b (byte_FFFF9954).w,d5 bne.s loc_3338E tst.b (byte_FFFF995A).w bne.s loc_3338E move.w unk_FFFF9964(d3.w*2),$1A+var_66A2(d3.w*2) bra.s loc_333A4 ; --------------------------------------------------------------------------- loc_3338E: ; CODE XREF: sub_32F54+426j ; sub_32F54+42Cj move.b var_2(a6),d4 add.b d4,d4 add.b d0,d4 andi.w #$FF,d4 move.w unk_FFFF9964(d3.w*2),$1A+var_6734(d4.w*2) loc_333A4: ; CODE XREF: sub_32F54+438j tst.b (byte_FFFF995A).w bne.s loc_333D8 move.w (CoolantTemperatureOrDefault).w,d4 cmp.w (FUEL_LO_KE_NON_CCP_KAM_HIGH_COOLANT_LIMI).l,d4 ; Upper limit of coolant window to tranfer non-CCP BLM values to KAM. ; Degrees_C bge.s loc_333D8 move.w (CoolantTemperatureOrDefault).w,d4 cmp.w (FUEL_LO_KE_NON_CCP_KAM_LOW_COOLANT_LIMIT).l,d4 ; Lower limit of coolant window to tranfer non-CCP BLM values to KAM. ; Degrees_C ble.s loc_333D8 move.b var_2(a6),d4 add.b d4,d4 add.b d0,d4 andi.w #$FF,d4 move.w unk_FFFF9964(d3.w*2),$1A+var_6722(d4.w*2) loc_333D8: ; CODE XREF: sub_32F54+210j ; sub_32F54+454j ... addq.b #1,d0 cmpi.b #1,d0 bls.w loc_330BE bra.w loc_334D6 ; --------------------------------------------------------------------------- loc_333E6: ; CODE XREF: sub_32F54+164j move.b (byte_FFFF8ACC).w,d3 lsr.b #4,d3 moveq #3,d1 and.b d1,d3 beq.s loc_33412 btst #1,(byte_FFFF88EA).w bne.s loc_33424 btst #1,(byte_FFFF88EC).w bne.s loc_33424 btst #1,(byte_FFFF88F0).w bne.s loc_33424 btst #1,(byte_FFFF8A22).w bne.s loc_33424 loc_33412: ; CODE XREF: sub_32F54+49Cj jsr sub_3591C tst.b d0 bne.s loc_33424 btst #1,(byte_FFFF8930).w beq.s loc_33460 loc_33424: ; CODE XREF: sub_32F54+4A4j ; sub_32F54+4ACj ... clr.b d3 loc_33426: ; CODE XREF: sub_32F54+4E8j move.l d3,d2 add.b d2,d2 andi.w #$FF,d2 move.w #$800,$1A+var_6734(d2.w*2) addq.b #1,d3 cmpi.b #$16,d3 bls.s loc_33426 moveq #$14,d3 loc_33440: ; CODE XREF: sub_32F54+502j move.l d3,d2 add.b d2,d2 andi.w #$FF,d2 move.w #$800,$1A+var_6722(d2.w*2) addq.b #1,d3 cmpi.b #$16,d3 bls.s loc_33440 movea.w #$800,a0 move.w a0,(word_FFFF9944).w loc_33460: ; CODE XREF: sub_32F54+4CEj move.b (byte_FFFF8ACC).w,d3 lsr.b #4,d3 and.b d1,d3 beq.s loc_3348A btst #1,(byte_FFFF8900).w bne.s loc_3349C btst #1,(byte_FFFF8902).w bne.s loc_3349C btst #1,(byte_FFFF8906).w bne.s loc_3349C btst #1,(byte_FFFF8A2A).w bne.s loc_3349C loc_3348A: ; CODE XREF: sub_32F54+514j jsr sub_3591C tst.b d0 bne.s loc_3349C btst #1,(byte_FFFF8930).w beq.s loc_334D6 loc_3349C: ; CODE XREF: sub_32F54+51Cj ; sub_32F54+524j ... clr.b d3 loc_3349E: ; CODE XREF: sub_32F54+560j move.l d3,d4 add.b d4,d4 andi.w #$FF,d4 move.w #$800,$1A+var_6732(d4.w*2) addq.b #1,d3 cmpi.b #$16,d3 bls.s loc_3349E moveq #$14,d3 loc_334B8: ; CODE XREF: sub_32F54+57Aj move.l d3,d4 add.b d4,d4 andi.w #$FF,d4 move.w #$800,$1A+var_6720(d4.w*2) addq.b #1,d3 cmpi.b #$16,d3 bls.s loc_334B8 move.w #$800,(word_FFFF9946).w loc_334D6: ; CODE XREF: sub_32F54+154j ; sub_32F54+48Ej ... movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_32F54 ; =============== S U B R O U T I N E ======================================= sub_334DE: ; CODE XREF: DoLoopG+18Ep jsr sub_334E6 rts ; End of function sub_334DE ; =============== S U B R O U T I N E ======================================= sub_334E6: ; CODE XREF: sub_334DEp OS1:loc_33946p move.w (word_FFFFAEF0).w,d3 tblu.w (FUEL_LO_KV_ADAPTIVE_LOW_MAP_LIMIT).l,d3 ; Mimimum manifold pressure to allow long term cell update. ; kPa move.w d3,(word_FFFF9968).w rts ; End of function sub_334E6 ; =============== S U B R O U T I N E ======================================= sub_334F8: ; CODE XREF: DoLoopC+CAp movem.l d0-d2/d6-a0,-(sp) move.w (word_FFFFB292).w,d2 move.l d2,d4 cmp.w (word_FFFF9960).w,d4 bcc.s loc_33540 move.w (FUEL_LO_KE_MAP_HYSTERESIS).l,d3 ; Provides more stability when transitioning from one cell to another. ; kPa move.l d3,d7 add.w (word_E79A).l,d7 move.w d7,(word_FFFF9960).w cmp.w (word_FFFF995E).w,d4 bcc.s loc_33530 add.w (FUEL_LO_KV_MAP_BOUNDARY).l,d3 ; Boundary for cells based on manifold pressure. ; kPa move.w d3,(word_FFFF995E).w clr.b (byte_FFFF995C).w bra.s loc_33578 ; --------------------------------------------------------------------------- loc_33530: ; CODE XREF: sub_334F8+26j move.w (FUEL_LO_KV_MAP_BOUNDARY).l,d4 ; Boundary for cells based on manifold pressure. ; kPa sub.w d3,d4 move.w d4,(word_FFFF995E).w moveq #1,d7 bra.s loc_33574 ; --------------------------------------------------------------------------- loc_33540: ; CODE XREF: sub_334F8+Ej move.w (FUEL_LO_KE_MAP_HYSTERESIS).l,d3 ; Provides more stability when transitioning from one cell to another. ; kPa move.w (word_E79A).l,d0 sub.w d3,d0 move.w d0,(word_FFFF9960).w cmp.w (word_FFFF9962).w,d4 bcc.s loc_33566 add.w (word_E79C).l,d3 move.w d3,(word_FFFF9962).w moveq #2,d7 bra.s loc_33574 ; --------------------------------------------------------------------------- loc_33566: ; CODE XREF: sub_334F8+5Ej move.w (word_E79C).l,d4 sub.w d3,d4 move.w d4,(word_FFFF9962).w moveq #3,d7 loc_33574: ; CODE XREF: sub_334F8+46j ; sub_334F8+6Cj move.b d7,(byte_FFFF995C).w loc_33578: ; CODE XREF: sub_334F8+36j move.w (EngineRPM_PID_000C___).w,d3 cmp.w (word_FFFF996E).w,d3 bcc.s loc_335BA move.w (FUEL_LO_KE_RPM_HYSTERESIS).l,d4 ; Provides more stability when transitioning from one cell to another. ; RPM move.l d4,d7 add.w (word_E794).l,d7 move.w d7,(word_FFFF996E).w cmp.w (word_FFFF996C).w,d3 bcc.s loc_335AA add.w (FUEL_LO_KV_RPM_BOUNDARY).l,d4 ; Boundary for cells based on engine speed. ; RPM move.w d4,(word_FFFF996C).w clr.b (byte_FFFF995B).w bra.s loc_335F6 ; --------------------------------------------------------------------------- loc_335AA: ; CODE XREF: sub_334F8+A0j move.w (FUEL_LO_KV_RPM_BOUNDARY).l,d0 ; Boundary for cells based on engine speed. ; RPM sub.w d4,d0 move.w d0,(word_FFFF996C).w moveq #1,d7 bra.s loc_335F2 ; --------------------------------------------------------------------------- loc_335BA: ; CODE XREF: sub_334F8+88j move.w (FUEL_LO_KE_RPM_HYSTERESIS).l,d4 ; Provides more stability when transitioning from one cell to another. ; RPM move.w (word_E794).l,d0 sub.w d4,d0 move.w d0,(word_FFFF996E).w cmp.w (word_FFFF9970).w,d3 bcc.s loc_335E4 add.w (word_E796).l,d4 move.w d4,(word_FFFF9970).w move.b #2,(byte_FFFF995B).w bra.s loc_335F6 ; --------------------------------------------------------------------------- loc_335E4: ; CODE XREF: sub_334F8+D8j move.w (word_E796).l,d0 sub.w d4,d0 move.w d0,(word_FFFF9970).w moveq #3,d7 loc_335F2: ; CODE XREF: sub_334F8+C0j move.b d7,(byte_FFFF995B).w loc_335F6: ; CODE XREF: sub_334F8+B0j ; sub_334F8+EAj move.w (word_FFFFA62A).w,d0 move.w (word_FFFFAB66).w,d3 move.w (word_FFFFAEBE).w,d4 btst #5,(byte_FFFFAD8B).w sne d1 neg.b d1 cmp.w (FUEL_LO_KE_CANISTER_LIMIT).l,d0 ; Used to determine if canister purge is active or inactive. ; Percent bcs.s loc_3362A moveq #1,d7 move.b d7,(byte_FFFF995A).w move.w (word_FFFFA628).w,d6 cmp.w (word_FFFFA626).w,d6 bcc.s loc_33632 move.b d7,(byte_FFFF996A).w bra.s loc_33632 ; --------------------------------------------------------------------------- loc_3362A: ; CODE XREF: sub_334F8+11Aj clr.b (byte_FFFF995A).w clr.b (byte_FFFF996A).w loc_33632: ; CODE XREF: sub_334F8+12Aj ; sub_334F8+130j move.b (byte_FFFF995A).w,d6 beq.s loc_3367E cmp.w (FUEL_LO_KE_LONG_TERM_IDLE_THROTTLE_THRES).l,d3 ; Throttle threshold used to determine idle condition. ; Percent bhi.s loc_3364C cmp.w (FUEL_LO_KE_LONG_TERM_IDLE_VEH_SPEED_THRE).l,d4 ; Vehicle speed threshold used to determine idle condition. ; MPH bhi.s loc_3364C moveq #1,d3 bra.s loc_3364E ; --------------------------------------------------------------------------- loc_3364C: ; CODE XREF: sub_334F8+146j ; sub_334F8+14Ej clr.b d3 loc_3364E: ; CODE XREF: sub_334F8+152j tst.b d3 beq.s loc_33672 cmpi.b #5,(byte_FFFFA3AF).w bcs.s loc_33666 tst.b d1 beq.s loc_33662 moveq #$10,d3 bra.s loc_3369E ; --------------------------------------------------------------------------- loc_33662: ; CODE XREF: sub_334F8+164j moveq #$11,d3 bra.s loc_3369E ; --------------------------------------------------------------------------- loc_33666: ; CODE XREF: sub_334F8+160j tst.b d1 beq.s loc_3366E moveq #$12,d3 bra.s loc_3369E ; --------------------------------------------------------------------------- loc_3366E: ; CODE XREF: sub_334F8+170j moveq #$13,d3 bra.s loc_3369E ; --------------------------------------------------------------------------- loc_33672: ; CODE XREF: sub_334F8+158j move.b (byte_FFFF995C).w,d3 asl.b #2,d3 add.b (byte_FFFF995B).w,d3 bra.s loc_3369E ; --------------------------------------------------------------------------- loc_3367E: ; CODE XREF: sub_334F8+13Ej cmp.w (FUEL_LO_KE_LONG_TERM_IDLE_THROTTLE_THRES).l,d3 ; Throttle threshold used to determine idle condition. ; Percent bhi.s loc_33692 cmp.w (FUEL_LO_KE_LONG_TERM_IDLE_VEH_SPEED_THRE).l,d4 ; Vehicle speed threshold used to determine idle condition. ; MPH bhi.s loc_33692 moveq #$14,d3 bra.s loc_3369E ; --------------------------------------------------------------------------- loc_33692: ; CODE XREF: sub_334F8+18Cj ; sub_334F8+194j cmp.w (word_FFFF995E).w,d2 bcc.s loc_3369C moveq #$15,d3 bra.s loc_3369E ; --------------------------------------------------------------------------- loc_3369C: ; CODE XREF: sub_334F8+19Ej moveq #$16,d3 loc_3369E: ; CODE XREF: sub_334F8+168j ; sub_334F8+16Cj ... move.b d3,(byte_FFFF98DA).w add.b d3,d3 andi.w #$FF,d3 move.w unk_FFFF98E6(d3.w*2),d3 sub.w (word_FFFF98E2).w,d3 bcc.s loc_336B6 neg.w d3 loc_336B6: ; CODE XREF: sub_334F8+1BAj move.w (FUEL_LO_KE_LONG_TERM_DELTA).l,d4 ; If cell value changes more than this, reset integrator to 1.0. ; NONE 0-2 cmp.w d4,d3 bls.s loc_336D0 clr.b d3 cmpi.b #3,(byte_FFFF9954).w beq.s loc_336CC addq.b #1,d3 loc_336CC: ; CODE XREF: sub_334F8+1D0j move.b d3,(byte_FFFF9942).w loc_336D0: ; CODE XREF: sub_334F8+1C6j move.b (byte_FFFF98DA).w,d3 add.b d3,d3 andi.w #$FF,d3 move.w unk_FFFF98E8(d3.w*2),d3 sub.w (word_FFFF98E4).w,d3 bcc.s loc_336E8 neg.w d3 loc_336E8: ; CODE XREF: sub_334F8+1ECj cmp.w d4,d3 bls.s loc_336FC clr.b d3 cmpi.b #3,(byte_FFFF9954).w beq.s loc_336F8 addq.b #1,d3 loc_336F8: ; CODE XREF: sub_334F8+1FCj move.b d3,(byte_FFFF9943).w loc_336FC: ; CODE XREF: sub_334F8+1F2j moveq #3,d2 cmp.b (byte_FFFF9954).w,d2 bne.s loc_3370E tst.b d6 bne.s loc_3370E move.w (word_FFFF9978).w,d4 bra.s loc_3371E ; --------------------------------------------------------------------------- loc_3370E: ; CODE XREF: sub_334F8+20Aj ; sub_334F8+20Ej move.b (byte_FFFF98DA).w,d4 add.b d4,d4 andi.w #$FF,d4 move.w unk_FFFF98E6(d4.w*2),d4 loc_3371E: ; CODE XREF: sub_334F8+214j move.w (word_FFFF98E2).w,d3 cmp.w d3,d4 bne.s loc_3372C clr.w (word_FFFF9956).w bra.s loc_3376A ; --------------------------------------------------------------------------- loc_3372C: ; CODE XREF: sub_334F8+22Cj cmp.w d3,d4 bhi.s loc_33738 tst.b (FUEL_LO_KE_BLENDING_SELECTED).l ; Allow blending if target is below the current long term correction. ; TRUE|FALSE bne.s loc_3373C loc_33738: ; CODE XREF: sub_334F8+236j move.l d4,d3 bra.s loc_3376A ; --------------------------------------------------------------------------- loc_3373C: ; CODE XREF: sub_334F8+23Ej tst.w (word_FFFF9956).w bne.s loc_33756 move.w (FUEL_LO_KE_BLENDING_TIMER).l,(word_FFFF9956).w ; Time between long term memory blends. ; Seconds movea.w #$10,a0 sub.w a0,d3 bcc.s loc_3376A clr.w d3 bra.s loc_3376A ; --------------------------------------------------------------------------- loc_33756: ; CODE XREF: sub_334F8+248j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9956).w,d4 sub.w $A(a2),d4 bcc.s loc_33766 clr.w d4 loc_33766: ; CODE XREF: sub_334F8+26Aj move.w d4,(word_FFFF9956).w loc_3376A: ; CODE XREF: sub_334F8+232j ; sub_334F8+242j ... tst.w (word_FFFFA1F8).w bne.s loc_33782 tst.w (word_FFFFACAC).w bne.s loc_33782 tst.w (word_FFFFA1FE).w bne.s loc_33782 tst.w (word_FFFFA1F0).w beq.s loc_33794 loc_33782: ; CODE XREF: sub_334F8+276j ; sub_334F8+27Cj ... move.w #$800,d7 cmp.w d3,d7 bls.s loc_33794 movea.w #$800,a0 move.w a0,(word_FFFF98E2).w bra.s loc_33798 ; --------------------------------------------------------------------------- loc_33794: ; CODE XREF: sub_334F8+288j ; sub_334F8+290j move.w d3,(word_FFFF98E2).w loc_33798: ; CODE XREF: sub_334F8+29Aj cmp.b (byte_FFFF9954).w,d2 bne.s loc_337A8 tst.b d6 bne.s loc_337A8 move.w (word_FFFF997A).w,d4 bra.s loc_337B8 ; --------------------------------------------------------------------------- loc_337A8: ; CODE XREF: sub_334F8+2A4j ; sub_334F8+2A8j move.b (byte_FFFF98DA).w,d4 add.b d4,d4 andi.w #$FF,d4 move.w unk_FFFF98E8(d4.w*2),d4 loc_337B8: ; CODE XREF: sub_334F8+2AEj move.w (word_FFFF98E4).w,d3 cmp.w d3,d4 bne.s loc_337C6 clr.w (word_FFFF9958).w bra.s loc_33802 ; --------------------------------------------------------------------------- loc_337C6: ; CODE XREF: sub_334F8+2C6j cmp.w d3,d4 bhi.s loc_337D2 tst.b (FUEL_LO_KE_BLENDING_SELECTED).l ; Allow blending if target is below the current long term correction. ; TRUE|FALSE bne.s loc_337D6 loc_337D2: ; CODE XREF: sub_334F8+2D0j move.l d4,d3 bra.s loc_33802 ; --------------------------------------------------------------------------- loc_337D6: ; CODE XREF: sub_334F8+2D8j tst.w (word_FFFF9958).w bne.s loc_337EE move.w (Constant16_LTFT_Enleanment_Rate_Limit_Update_Rate__O2__2).l,(word_FFFF9958).w subi.w #$10,d3 bcc.s loc_33802 clr.w d3 bra.s loc_33802 ; --------------------------------------------------------------------------- loc_337EE: ; CODE XREF: sub_334F8+2E2j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9958).w,d4 sub.w $A(a2),d4 bcc.s loc_337FE clr.w d4 loc_337FE: ; CODE XREF: sub_334F8+302j move.w d4,(word_FFFF9958).w loc_33802: ; CODE XREF: sub_334F8+2CCj ; sub_334F8+2DCj ... tst.w (word_FFFFA1F8).w bne.s loc_3381A tst.w (word_FFFFACAC).w bne.s loc_3381A tst.w (word_FFFFA1FE).w bne.s loc_3381A tst.w (word_FFFFA1F0).w beq.s loc_3382C loc_3381A: ; CODE XREF: sub_334F8+30Ej ; sub_334F8+314j ... move.w #$800,d7 cmp.w d3,d7 bls.s loc_3382C movea.w #$800,a0 move.w a0,(word_FFFF98E4).w bra.s loc_33830 ; --------------------------------------------------------------------------- loc_3382C: ; CODE XREF: sub_334F8+320j ; sub_334F8+328j move.w d3,(word_FFFF98E4).w loc_33830: ; CODE XREF: sub_334F8+332j tst.b d6 beq.s loc_338A8 move.w #$800,d1 sub.w (word_FFFF9944).w,d1 bcc.s loc_33840 clr.w d1 loc_33840: ; CODE XREF: sub_334F8+344j jsr sub_2CC1A tst.w d0 bne.s loc_33850 loc_3384A: ; CODE XREF: sub_334F8+36Aj ; sub_334F8+370j move.w #$800,d3 bra.s loc_3386A ; --------------------------------------------------------------------------- loc_33850: ; CODE XREF: sub_334F8+350j jsr sub_2CC1A clr.l d3 move.w (word_FFFFA626).w,d3 asl.l #8,d3 asl.l #3,d3 divu.w d0,d3 bvs.s loc_3384A cmpi.w #$800,d3 bhi.s loc_3384A loc_3386A: ; CODE XREF: sub_334F8+356j mulu.w d3,d1 lsr.l #8,d1 lsr.l #3,d1 move.w (word_FFFFA0DC).w,d3 move.w #$4000,d7 cmp.w d3,d7 bls.s loc_33880 lsr.w #1,d3 bra.s loc_33884 ; --------------------------------------------------------------------------- loc_33880: ; CODE XREF: sub_334F8+382j move.w #$2000,d3 loc_33884: ; CODE XREF: sub_334F8+386j tblu.w (FUEL_LO_KV_PLM_REDUCTION_FACTOR).l,d3 ; Factor to reduce PLM by before applying to pulse width. ; NONE 0-1 mulu.w d3,d1 lsr.l #8,d1 lsr.l #3,d1 move.w #$800,d3 sub.w d1,d3 move.w d3,d1 mulu.w (word_FFFF98E2).w,d1 lsr.l #8,d1 lsr.l #3,d1 move.w d1,(word_FFFF98DC).w bra.s loc_338AE ; --------------------------------------------------------------------------- loc_338A8: ; CODE XREF: sub_334F8+33Aj move.w (word_FFFF98E2).w,(word_FFFF98DC).w loc_338AE: ; CODE XREF: sub_334F8+3AEj tst.b d6 beq.s loc_33924 move.w #$800,d1 sub.w (word_FFFF9946).w,d1 bcc.s loc_338BE clr.w d1 loc_338BE: ; CODE XREF: sub_334F8+3C2j jsr sub_2CC1A tst.w d0 bne.s loc_338CE loc_338C8: ; CODE XREF: sub_334F8+3E8j ; sub_334F8+3EEj move.w #$800,d3 bra.s loc_338E8 ; --------------------------------------------------------------------------- loc_338CE: ; CODE XREF: sub_334F8+3CEj jsr sub_2CC1A clr.l d3 move.w (word_FFFFA626).w,d3 asl.l #8,d3 asl.l #3,d3 divu.w d0,d3 bvs.s loc_338C8 cmpi.w #$800,d3 bhi.s loc_338C8 loc_338E8: ; CODE XREF: sub_334F8+3D4j mulu.w d3,d1 lsr.l #8,d1 lsr.l #3,d1 move.w (word_FFFFA0DC).w,d3 cmpi.w #$4000,d3 bcc.s loc_338FC lsr.w #1,d3 bra.s loc_33900 ; --------------------------------------------------------------------------- loc_338FC: ; CODE XREF: sub_334F8+3FEj move.w #$2000,d3 loc_33900: ; CODE XREF: sub_334F8+402j tblu.w (FUEL_LO_KV_PLM_REDUCTION_FACTOR).l,d3 ; Factor to reduce PLM by before applying to pulse width. ; NONE 0-1 mulu.w d3,d1 lsr.l #8,d1 lsr.l #3,d1 move.w #$800,d3 sub.w d1,d3 move.w d3,d1 mulu.w (word_FFFF98E4).w,d1 lsr.l #8,d1 lsr.l #3,d1 move.w d1,(word_FFFF98DE).w bra.s loc_3392A ; --------------------------------------------------------------------------- loc_33924: ; CODE XREF: sub_334F8+3B8j move.w (word_FFFF98E4).w,(word_FFFF98DE).w loc_3392A: ; CODE XREF: sub_334F8+42Aj movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_334F8 ; =============== S U B R O U T I N E ======================================= sub_33930: ; CODE XREF: sub_2F712+4Ap movem.l d1-d2,-(sp) andi.w #$FF,d0 movea.l off_8A274(d0.w*4),a2 jmp (a2) ; End of function sub_33930 ; --------------------------------------------------------------------------- loc_33942: ; DATA XREF: OS4:off_8A274o ; OS4:0008A278o bra.w loc_33B7E ; --------------------------------------------------------------------------- loc_33946: ; DATA XREF: OS4:0008A27Co jsr sub_334E6 move.w (FUEL_LO_KV_RPM_BOUNDARY).l,(word_FFFF996C).w ; Boundary for cells based on engine speed. ; RPM move.w (word_E794).l,(word_FFFF996E).w move.w (word_E796).l,(word_FFFF9970).w move.w (FUEL_LO_KV_MAP_BOUNDARY).l,(word_FFFF995E).w ; Boundary for cells based on manifold pressure. ; kPa move.w (word_E79A).l,(word_FFFF9960).w move.w (word_E79C).l,(word_FFFF9962).w movea.w #$800,a2 move.w a2,(word_FFFF98E2).w move.w a2,(word_FFFF98E4).w move.w a2,(word_FFFF98DC).w move.w a2,(word_FFFF98DE).w move.w a2,(word_FFFF9944).w move.w a2,(word_FFFF9946).w tst.b (byte_FFFFB54A).w bne.s loc_339EA clr.b d3 loc_339A0: ; CODE XREF: OS1:000339C6j move.l d3,d4 add.b d4,d4 andi.w #$FF,d4 move.w a2,unk_FFFF98E6(d4.w*2) move.w a2,unk_FFFF98E8(d4.w*2) move.w a2,unk_FFFF80F0(d4.w*2) move.w a2,unk_FFFF80F2(d4.w*2) addq.b #1,d3 cmpi.b #$16,d3 bls.s loc_339A0 moveq #$14,d3 loc_339CA: ; CODE XREF: OS1:000339E4j move.l d3,d4 add.b d4,d4 andi.w #$FF,d4 move.w a2,unk_FFFF98F8(d4.w*2) move.w a2,unk_FFFF98FA(d4.w*2) addq.b #1,d3 cmpi.b #$16,d3 bls.s loc_339CA bra.w loc_33B7E ; --------------------------------------------------------------------------- loc_339EA: ; CODE XREF: OS1:0003399Cj clr.b d3 loc_339EC: ; CODE XREF: OS1:00033A0Ej move.l d3,d4 add.b d4,d4 andi.w #$FF,d4 move.w unk_FFFF80F0(d4.w*2),unk_FFFF98E6(d4.w*2) move.w unk_FFFF80F2(d4.w*2),unk_FFFF98E8(d4.w*2) addq.b #1,d3 cmpi.b #$16,d3 bls.s loc_339EC moveq #$14,d3 loc_33A12: ; CODE XREF: OS1:00033A34j move.l d3,d4 add.b d4,d4 andi.w #$FF,d4 move.w unk_FFFF80F0(d4.w*2),unk_FFFF98F8(d4.w*2) move.w unk_FFFF80F2(d4.w*2),unk_FFFF98FA(d4.w*2) addq.b #1,d3 cmpi.b #$16,d3 bls.s loc_33A12 bra.w loc_33B7E ; --------------------------------------------------------------------------- loc_33A3A: ; DATA XREF: OS4:0008A280o bra.w loc_33AE2 ; --------------------------------------------------------------------------- loc_33A3E: ; DATA XREF: OS4:0008A284o clr.b d2 loc_33A40: ; CODE XREF: OS1:00033ADAj moveq #$14,d3 loc_33A42: ; CODE XREF: OS1:00033A80j clr.l d5 move.b d3,d5 move.w unk_E7DC.l(d5.w*2),d1 move.l d3,d4 add.b d4,d4 add.b d2,d4 andi.w #$FF,d4 move.w unk_FFFF98F8(d4.w*2),d0 cmp.w d1,d0 bls.s loc_33A74 move.w (FUEL_LO_KE_ADAPTIVE_NON_PURGE_MAX_KAM_LI).l,d1 ; Max BLM which can be learned in KAM for non-CCP cells ; NONE 0-2 cmp.w d1,d0 bhi.s loc_33A74 move.w d0,unk_FFFF80F0(d4.w*2) bra.s loc_33A7A ; --------------------------------------------------------------------------- loc_33A74: ; CODE XREF: OS1:00033A60j ; OS1:00033A6Aj move.w d1,unk_FFFF80F0(d4.w*2) loc_33A7A: ; CODE XREF: OS1:00033A72j addq.b #1,d3 cmpi.b #$16,d3 bls.s loc_33A42 clr.b d3 loc_33A84: ; CODE XREF: OS1:00033AD2j cmpi.b #$F,d3 bhi.s loc_33A96 clr.l d5 move.b d2,d5 move.w unk_FFFF8148(d5.w*2),d1 bra.s loc_33AA0 ; --------------------------------------------------------------------------- loc_33A96: ; CODE XREF: OS1:00033A88j clr.l d5 move.b d2,d5 move.w unk_FFFF8140(d5.w*2),d1 loc_33AA0: ; CODE XREF: OS1:00033A94j move.l d3,d4 add.b d4,d4 add.b d2,d4 andi.w #$FF,d4 move.w unk_FFFF98E6(d4.w*2),d0 cmp.w d1,d0 bls.s loc_33AC6 move.w (FUEL_LO_KE_ADAPTIVE_PURGE_MAX_KAM_LIMIT).l,d1 ; Max BLM which can be learned in KAM for CCP cells ; NONE 0-2 cmp.w d1,d0 bhi.s loc_33AC6 move.w d0,unk_FFFF80F0(d4.w*2) bra.s loc_33ACC ; --------------------------------------------------------------------------- loc_33AC6: ; CODE XREF: OS1:00033AB2j ; OS1:00033ABCj move.w d1,unk_FFFF80F0(d4.w*2) loc_33ACC: ; CODE XREF: OS1:00033AC4j addq.b #1,d3 cmpi.b #$13,d3 bls.s loc_33A84 addq.b #1,d2 cmpi.b #1,d2 bls.w loc_33A40 bra.w loc_33B7E ; --------------------------------------------------------------------------- loc_33AE2: ; CODE XREF: OS1:loc_33A3Aj ; DATA XREF: OS4:0008A28Co move.w (FUEL_LO_KV_RPM_BOUNDARY).l,(word_FFFF996C).w ; Boundary for cells based on engine speed. ; RPM move.w (word_E794).l,(word_FFFF996E).w move.w (word_E796).l,(word_FFFF9970).w move.w (FUEL_LO_KV_MAP_BOUNDARY).l,(word_FFFF995E).w ; Boundary for cells based on manifold pressure. ; kPa move.w (word_E79A).l,(word_FFFF9960).w move.w (word_E79C).l,(word_FFFF9962).w clr.b (byte_FFFF9942).w clr.b (byte_FFFF9943).w movea.w #$800,a2 move.w a2,(word_FFFF98E2).w move.w a2,(word_FFFF98E4).w move.w a2,(word_FFFF98DC).w move.w a2,(word_FFFF98DE).w move.w a2,(word_FFFF9944).w move.w a2,(word_FFFF9946).w clr.w (word_FFFF9972).w clr.w (word_FFFF9974).w clr.w (word_FFFF9956).w clr.w (word_FFFF9958).w bra.s loc_33B7A ; --------------------------------------------------------------------------- loc_33B48: ; DATA XREF: OS4:0008A290o bra.s loc_33B7E ; --------------------------------------------------------------------------- loc_33B4A: ; DATA XREF: OS4:0008A294o move.w (FUEL_LO_KV_RPM_BOUNDARY).l,(word_FFFF996C).w ; Boundary for cells based on engine speed. ; RPM move.w (word_E794).l,(word_FFFF996E).w move.w (word_E796).l,(word_FFFF9970).w move.w (FUEL_LO_KV_MAP_BOUNDARY).l,(word_FFFF995E).w ; Boundary for cells based on manifold pressure. ; kPa move.w (word_E79A).l,(word_FFFF9960).w move.w (word_E79C).l,(word_FFFF9962).w loc_33B7A: ; CODE XREF: OS1:00033B46j clr.b (byte_FFFF995A).w loc_33B7E: ; CODE XREF: OS1:loc_33942j ; OS1:000339E6j ... movem.l (sp)+,d1-d2 rts ; =============== S U B R O U T I N E ======================================= sub_33B84: ; CODE XREF: sub_2F712+5Ap andi.w #$FF,d0 movea.l off_89EB4(d0.w*4),a2 jmp (a2) ; End of function sub_33B84 ; --------------------------------------------------------------------------- loc_33B92: ; DATA XREF: OS4:off_89EB4o ; OS4:00089EB8o bra.w locret_33CBC ; --------------------------------------------------------------------------- loc_33B96: ; DATA XREF: OS4:00089EBCo move.b #1,(byte_FFFF9F5E).w clr.b (byte_FFFF9F64).w movea.w #$10,a2 move.w a2,(word_FFFF9F60).w move.w a2,(word_FFFF9F62).w moveq #2,d5 move.b d5,(byte_FFFF9F54).w move.b d5,(byte_FFFF9F55).w tst.b (byte_FFFFB54A).w bne.w locret_33CBC clr.b d3 loc_33BC0: ; CODE XREF: OS1:00033BD6j clr.l d4 move.b d3,d4 clr.w unk_FFFF8218(d4.w*2) clr.w unk_FFFF8222(d4.w*2) addq.b #1,d3 cmpi.b #4,d3 bls.s loc_33BC0 bra.w locret_33CBC ; --------------------------------------------------------------------------- loc_33BDC: ; DATA XREF: OS4:00089EC0o bra.s loc_33BE2 ; --------------------------------------------------------------------------- loc_33BDE: ; DATA XREF: OS4:00089EC4o bra.w locret_33CBC ; --------------------------------------------------------------------------- loc_33BE2: ; CODE XREF: OS1:loc_33BDCj ; DATA XREF: OS4:00089ECCo clr.b (byte_FFFF9F52).w clr.b (byte_FFFF9F5C).w clr.b (byte_FFFF9F53).w clr.b (byte_FFFF9F5D).w move.b #1,(byte_FFFF9F5E).w clr.b (byte_FFFF9F64).w movea.w #$10,a2 move.w a2,(word_FFFF9F60).w move.w a2,(word_FFFF9F62).w moveq #2,d3 move.b d3,(byte_FFFF9F54).w move.b d3,(byte_FFFF9F55).w clr.b (byte_FFFF9F6A).w clr.b (byte_FFFF9F6B).w clr.b (byte_FFFF9F68).w clr.b (byte_FFFF9F69).w clr.w (word_FFFF9F56).w clr.w (word_FFFF9F58).w clr.w (word_FFFF9F70).w clr.w (word_FFFF9F72).w clr.w (word_FFFF9F7A).w clr.w (word_FFFF9F7C).w clr.w (word_FFFF9F74).w clr.w (word_FFFF9F76).w clr.w (word_FFFF9F80).w clr.w (word_FFFF9F84).w loc_33C4A: ; DATA XREF: OS4:00089ED0o bra.s locret_33CBC ; --------------------------------------------------------------------------- loc_33C4C: ; DATA XREF: OS4:00089ED4o moveq #2,d5 move.b d5,(byte_FFFF9F54).w move.b d5,(byte_FFFF9F55).w move.w (word_FFFFADB6).w,d3 move.l d3,d4 movea.w #$400,a3 add.w a3,d4 bpl.s loc_33C66 addq.w #1,d4 loc_33C66: ; CODE XREF: OS1:00033C62j asr.w #1,d4 movea.l #$E944,a2 tblu.w (a2),d4 move.w d4,(word_FFFF9F7A).w move.l d3,d4 add.w a3,d4 bpl.s loc_33C7E addq.w #1,d4 loc_33C7E: ; CODE XREF: OS1:00033C7Aj asr.w #1,d4 movea.l #$E958,a2 tblu.w (a2),d4 move.w d4,(word_FFFF9F7C).w move.l d3,d4 add.w a3,d4 bpl.s loc_33C96 addq.w #1,d4 loc_33C96: ; CODE XREF: OS1:00033C92j asr.w #1,d4 movea.l #$E8B8,a2 tblu.w (a2),d4 move.w d4,(word_FFFF9F80).w add.w a3,d3 bpl.s loc_33CAC addq.w #1,d3 loc_33CAC: ; CODE XREF: OS1:00033CA8j asr.w #1,d3 movea.l #$E8CC,a2 tblu.w (a2),d3 move.w d3,(word_FFFF9F84).w locret_33CBC: ; CODE XREF: OS1:loc_33B92j ; OS1:00033BBAj ... rts ; =============== S U B R O U T I N E ======================================= sub_33CBE: ; CODE XREF: DoLoopC+D2p DoLoopC+DAp var_60AE = -$60AE clr.w d3 move.b d0,d3 tst.b -$60AE(d3.w) bne.s locret_33D00 move.w word_FFFF9F60(d3.w*2),d4 cmp.w (FUEL_O2_KE_POST_OXYGEN_RICH_READY).l,d4 ; Upper voltage threshold to determine when the oxygen sensor is ready. ; Millivolts bcc.s loc_33CE0 cmp.w (FUEL_O2_KE_POST_OXYGEN_LEAN_READY).l,d4 ; Lower voltage threshold to determine when the oxygen sensor is ready. ; Millivolts bhi.s locret_33D00 loc_33CE0: ; CODE XREF: sub_33CBE+18j lea -$60AE(d3.w),a2 addq.b #1,$A(a2) move.b -$60A4(d3.w),d4 cmp.b (FUEL_O2_KE_POST_OXYGEN_READY_COUNTER).l,d4 ; Count number of samples outside the control limits to determine when the sensor hsa become ready. ; Counts bcs.s locret_33D00 move.b #1,var_60AE(d3.w) locret_33D00: ; CODE XREF: sub_33CBE+Aj ; sub_33CBE+20j ... rts ; End of function sub_33CBE ; =============== S U B R O U T I N E ======================================= sub_33D02: ; CODE XREF: DoLoopC+E0p btst #1,(byte_FFFF88FA).w bne.s loc_33D22 btst #1,(byte_FFFF88F6).w bne.s loc_33D22 btst #1,(byte_FFFF88F8).w bne.s loc_33D22 btst #1,(byte_FFFF88FC).w beq.s loc_33D2A loc_33D22: ; CODE XREF: sub_33D02+6j sub_33D02+Ej ... move.b #1,(byte_FFFF9F5A).w bra.s loc_33D2E ; --------------------------------------------------------------------------- loc_33D2A: ; CODE XREF: sub_33D02+1Ej clr.b (byte_FFFF9F5A).w loc_33D2E: ; CODE XREF: sub_33D02+26j btst #1,(byte_FFFF8910).w bne.s loc_33D4E btst #1,(byte_FFFF890C).w bne.s loc_33D4E btst #1,(byte_FFFF890E).w bne.s loc_33D4E btst #1,(byte_FFFF8912).w beq.s loc_33D56 loc_33D4E: ; CODE XREF: sub_33D02+32j ; sub_33D02+3Aj ... move.b #1,(byte_FFFF9F5B).w bra.s loc_33D5A ; --------------------------------------------------------------------------- loc_33D56: ; CODE XREF: sub_33D02+4Aj clr.b (byte_FFFF9F5B).w loc_33D5A: ; CODE XREF: sub_33D02+52j tst.b (FUEL_O2_KE_BANK_EXHAUST).l ; Configuration of the exhaust system for the specific application. ; Value bne.w loc_33DF4 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (FUEL_O2_KE_POST_OXYGEN_INTEGRAL_COOLANT).l,d3 ; Threshold for coolant temperature to enable Integral Part of Post Oxygen Fuel Trim. ; Degrees_C blt.w loc_33E76 tst.b (byte_FFFF9F5A).w bne.w loc_33E76 tst.b (byte_FFFFA89A).w bne.w loc_33E76 tst.b (byte_FFFFA89B).w bne.w loc_33E76 tst.b (byte_FFFF9F52).w beq.w loc_33E76 cmpi.b #1,(byte_FFFFB2EF).w bne.w loc_33E76 clr.w d3 move.b (byte_FFFF9F64).w,d3 move.w FUEL_O2_KV_POST_OXYGEN_BANK1_INTEGRATOR.l(d3.w*2),d3 move.w #$800,d5 sub.w d3,d5 move.w (word_FFFFA89E).w,d4 cmp.w d4,d5 bgt.w loc_33E76 addi.w #$800,d3 cmp.w d4,d3 bcs.w loc_33E76 clr.w d3 move.b (byte_FFFF9F64).w,d3 move.w FUEL_O2_KV_POST_OXYGEN_BANK2_INTEGRATOR.l(d3.w*2),d3 move.w #$800,d5 sub.w d3,d5 move.w (word_FFFFA8A0).w,d4 cmp.w d4,d5 bgt.w loc_33E76 addi.w #$800,d3 cmp.w d4,d3 bcs.w loc_33E76 loc_33DEC: ; CODE XREF: sub_33D02+170j clr.b (byte_FFFF9F5E).w bra.w locret_33E7C ; --------------------------------------------------------------------------- loc_33DF4: ; CODE XREF: sub_33D02+5Ej move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (FUEL_O2_KE_POST_OXYGEN_INTEGRAL_COOLANT).l,d3 ; Threshold for coolant temperature to enable Integral Part of Post Oxygen Fuel Trim. ; Degrees_C blt.s loc_33E76 tst.b (byte_FFFF9F5A).w bne.s loc_33E76 tst.b (byte_FFFF9F5B).w bne.s loc_33E76 tst.b (byte_FFFFA89A).w bne.s loc_33E76 tst.b (byte_FFFFA89B).w bne.s loc_33E76 tst.b (byte_FFFF9F52).w beq.s loc_33E76 tst.b (byte_FFFF9F53).w beq.s loc_33E76 cmpi.b #1,(byte_FFFFB2EF).w bne.s loc_33E76 clr.w d3 move.b (byte_FFFF9F64).w,d3 move.w FUEL_O2_KV_POST_OXYGEN_BANK1_INTEGRATOR.l(d3.w*2),d3 move.w #$800,d5 sub.w d3,d5 move.w (word_FFFFA89E).w,d4 cmp.w d4,d5 bgt.s loc_33E76 addi.w #$800,d3 cmp.w d4,d3 bcs.s loc_33E76 clr.w d3 move.b (byte_FFFF9F64).w,d3 move.w FUEL_O2_KV_POST_OXYGEN_BANK2_INTEGRATOR.l(d3.w*2),d3 move.w #$800,d5 sub.w d3,d5 move.w (word_FFFFA8A0).w,d4 cmp.w d4,d5 bgt.s loc_33E76 addi.w #$800,d3 cmp.w d4,d3 bcc.w loc_33DEC loc_33E76: ; CODE XREF: sub_33D02+6Cj ; sub_33D02+74j ... move.b #1,(byte_FFFF9F5E).w locret_33E7C: ; CODE XREF: sub_33D02+EEj rts ; End of function sub_33D02 ; =============== S U B R O U T I N E ======================================= sub_33E7E: ; CODE XREF: DoLoopC+E6p move.b (byte_FFFF9F64).w,(byte_FFFF9F65).w move.w (word_FFFFA892).w,d3 bne.s loc_33E90 clr.b (byte_FFFF9F64).w bra.s locret_33EC6 ; --------------------------------------------------------------------------- loc_33E90: ; CODE XREF: sub_33E7E+Aj cmp.w (FUEL_O2_KE_POST_O2_DECEL_UPPER_LIMIT).l,d3 ; Post O2 mode is DECEL if closed loop mode is greater than 0 and less than or equal to this calibration. ; NONE 0-64 bhi.s loc_33EA0 move.b #1,(byte_FFFF9F64).w bra.s locret_33EC6 ; --------------------------------------------------------------------------- loc_33EA0: ; CODE XREF: sub_33E7E+18j cmp.w (FUEL_O2_KE_POST_O2_CRUISE_UPPER_LIMIT).l,d3 bhi.s loc_33EB0 move.b #2,(byte_FFFF9F64).w bra.s locret_33EC6 ; --------------------------------------------------------------------------- loc_33EB0: ; CODE XREF: sub_33E7E+28j cmp.w (FUEL_O2_KE_POST_O2_LIGHT_ACCEL_UPPER_LIM).l,d3 bhi.s loc_33EC0 move.b #3,(byte_FFFF9F64).w bra.s locret_33EC6 ; --------------------------------------------------------------------------- loc_33EC0: ; CODE XREF: sub_33E7E+38j move.b #4,(byte_FFFF9F64).w locret_33EC6: ; CODE XREF: sub_33E7E+10j ; sub_33E7E+20j ... rts ; End of function sub_33E7E ; =============== S U B R O U T I N E ======================================= sub_33EC8: ; CODE XREF: DoLoopC+EEp DoLoopC+106p var_60AC = -$60AC movem.l d1-d2/a0,-(sp) tst.b d0 bne.s loc_33EF4 clr.l d3 move.b d0,d3 movea.w d3,a0 move.w word_FFFF9F60(d3.w*2),d2 move.w (word_FFFF9F02).w,d1 loc_33EE0: ; CODE XREF: sub_33EC8+44j move.b (FUEL_O2_KE_POST_TIME_CONSTANT).l,d0 ; Time coefficient for first order lag filter. ; NONE 0-1 jsr sub_265AE move.w d0,$C+var_60AC(a0.w*2) bra.s loc_33F0E ; --------------------------------------------------------------------------- loc_33EF4: ; CODE XREF: sub_33EC8+6j tst.b (FUEL_O2_KE_BANK_EXHAUST).l ; Configuration of the exhaust system for the specific application. ; Value beq.s loc_33F0E clr.l d3 move.b d0,d3 movea.w d3,a0 move.w word_FFFF9F60(d3.w*2),d2 move.w (word_FFFF9F08).w,d1 bra.s loc_33EE0 ; --------------------------------------------------------------------------- loc_33F0E: ; CODE XREF: sub_33EC8+2Aj ; sub_33EC8+32j movem.l (sp)+,d1-d2/a0 rts ; End of function sub_33EC8 ; =============== S U B R O U T I N E ======================================= sub_33F14: ; CODE XREF: DoLoopC+F6p DoLoopC+10Ep var_60B0 = -$60B0 var_609E = -$609E move.l d1,-(sp) move.b d0,d1 tst.b (byte_FFFF9F5E).w bne.w loc_33FC2 andi.w #$FF,d0 move.b -$60AC(d0.w),4+var_609E(d0.w) move.w word_FFFF9F60(d0.w*2),d3 tst.b d1 bne.s loc_33F48 clr.w d5 move.b (byte_FFFF9F64).w,d5 move.w FUEL_O2_KV_BANK1_POST_RICH_THRESHOLD.l(d5.w*2),d5 bra.s loc_33F56 ; --------------------------------------------------------------------------- loc_33F48: ; CODE XREF: sub_33F14+22j clr.w d5 move.b (byte_FFFF9F64).w,d5 move.w FUEL_O2_KV_BANK2_POST_RICH_THRESHOLD.l(d5.w*2),d5 loc_33F56: ; CODE XREF: sub_33F14+32j cmp.w d5,d3 bcc.s loc_33F8A tst.b d1 bne.s loc_33F6E clr.w d5 move.b (byte_FFFF9F64).w,d5 move.w FUEL_O2_KV_BANK1_POST_LEAN_THRESHOLD.l(d5.w*2),d5 bra.s loc_33F7C ; --------------------------------------------------------------------------- loc_33F6E: ; CODE XREF: sub_33F14+48j clr.w d5 move.b (byte_FFFF9F64).w,d5 move.w FUEL_O2_KV_BANK2_POST_LEAN_THRESHOLD.l(d5.w*2),d5 loc_33F7C: ; CODE XREF: sub_33F14+58j cmp.w d5,d3 bls.s loc_33F8A move.b #1,4+var_60B0(d0.w) bra.s loc_33FC2 ; --------------------------------------------------------------------------- loc_33F8A: ; CODE XREF: sub_33F14+44j ; sub_33F14+6Aj move.l d3,d4 tst.b d1 bne.s loc_33FA0 clr.w d3 move.b (byte_FFFF9F64).w,d3 move.w FUEL_O2_KV_BANK1_POST_RICH_THRESHOLD.l(d3.w*2),d3 bra.s loc_33FAE ; --------------------------------------------------------------------------- loc_33FA0: ; CODE XREF: sub_33F14+7Aj clr.w d3 move.b (byte_FFFF9F64).w,d3 move.w FUEL_O2_KV_BANK2_POST_RICH_THRESHOLD.l(d3.w*2),d3 loc_33FAE: ; CODE XREF: sub_33F14+8Aj cmp.w d3,d4 bcs.s loc_33FBC move.b #2,4+var_60B0(d0.w) bra.s loc_33FC2 ; --------------------------------------------------------------------------- loc_33FBC: ; CODE XREF: sub_33F14+9Cj clr.b -$60AC(d0.w) loc_33FC2: ; CODE XREF: sub_33F14+8j ; sub_33F14+74j ... move.l (sp)+,d1 rts ; End of function sub_33F14 ; =============== S U B R O U T I N E ======================================= sub_33FC6: ; CODE XREF: DoLoopC+FEp DoLoopC+116p var_7DF8 = -$7DF8 var_60A8 = -$60A8 var_60A6 = -$60A6 var_60A4 = -$60A4 movem.l d1-d2/d6-d7,-(sp) move.b d0,d1 tst.b (byte_FFFFA93B).w beq.s loc_33FDE clr.l d5 move.b d0,d5 moveq #1,d7 move.b d7,$10+var_60A8(d5.w) loc_33FDE: ; CODE XREF: sub_33FC6+Aj andi.w #$FF,d0 tst.b -$6098(d0.w) beq.s loc_34002 tst.b -$609A(d0.w) bne.s loc_34002 moveq #1,d7 cmp.b -$60AC(d0.w),d7 bne.s loc_34002 clr.b -$6098(d0.w) loc_34002: ; CODE XREF: sub_33FC6+22j ; sub_33FC6+2Aj ... tst.b (byte_FFFF9F5E).w bne.w loc_34146 tst.b -$6098(d0.w) bne.w loc_34146 movea.l (dword_FFFFB5DE).w,a2 move.w unk_FFFF9F6C(d0.w*2),d3 add.w $A(a2),d3 move.w d3,$10+var_60A4(d0.w*2) move.b (byte_FFFF9F64).w,d6 clr.l d2 move.b d6,d2 cmp.w FUEL_O2_KV_POST_OXYGEN_INTEGRAL_DELAY.l(d2.w*2),d3 bls.w loc_3413C move.b -$609A(d0.w),d4 cmp.b -$60AC(d0.w),d4 bne.w loc_3413C tst.b -$6096(d0.w) beq.w loc_3413C move.w word_FFFF9F60(d0.w*2),d4 tst.b d1 bne.s loc_3406A move.w FUEL_O2_KV_BANK1_POST_RICH_THRESHOLD.l(d2.w*2),d3 bra.s loc_34072 ; --------------------------------------------------------------------------- loc_3406A: ; CODE XREF: sub_33FC6+98j move.w FUEL_O2_KV_BANK2_POST_RICH_THRESHOLD.l(d2.w*2),d3 loc_34072: ; CODE XREF: sub_33FC6+A2j cmp.w d3,d4 bcs.s loc_340D0 move.l d0,d3 moveq #5,d7 mulu.w d7,d3 add.b d6,d3 andi.w #$FF,d3 movea.w d3,a2 andi.w #$FF,d1 mulu.w d7,d1 add.b (byte_FFFF9F64).w,d1 andi.w #$FF,d1 move.w unk_FFFF8218(d1.w*2),d4 sub.w (FUEL_O2_KE_POST_OXYGEN_INTEGRATE).l,d4 ; Integration value for post Oxygen transitions. ; Millivolts bvc.s loc_340AC bpl.s loc_340A8 move.w #$7FFF,d4 bra.s loc_340AC ; --------------------------------------------------------------------------- loc_340A8: ; CODE XREF: sub_33FC6+DAj move.w #$8000,d4 loc_340AC: ; CODE XREF: sub_33FC6+D8j ; sub_33FC6+E0j move.w d4,$10+var_7DF8(a2.w*2) clr.w unk_FFFF9F6C(d0.w*2) move.w FUEL_O2_KV_POST_OXYGEN_INT_OFFSET_MIN.l(d2.w*2),d0 cmp.w d0,d4 bge.w loc_3417A loc_340C6: ; CODE XREF: sub_33FC6+174j move.w d0,$10+var_7DF8(d3.w*2) bra.w loc_3417A ; --------------------------------------------------------------------------- loc_340D0: ; CODE XREF: sub_33FC6+AEj tst.b d1 bne.s loc_340DE move.w FUEL_O2_KV_BANK1_POST_LEAN_THRESHOLD.l(d2.w*2),d3 bra.s loc_340E6 ; --------------------------------------------------------------------------- loc_340DE: ; CODE XREF: sub_33FC6+10Cj move.w FUEL_O2_KV_BANK2_POST_LEAN_THRESHOLD.l(d2.w*2),d3 loc_340E6: ; CODE XREF: sub_33FC6+116j cmp.w d3,d4 bhi.w loc_3417A move.l d0,d3 moveq #5,d7 mulu.w d7,d3 add.b d6,d3 andi.w #$FF,d3 movea.w d3,a2 andi.w #$FF,d1 mulu.w d7,d1 add.b (byte_FFFF9F64).w,d1 andi.w #$FF,d1 move.w unk_FFFF8218(d1.w*2),d4 add.w (FUEL_O2_KE_POST_OXYGEN_INTEGRATE).l,d4 ; Integration value for post Oxygen transitions. ; Millivolts bvc.s loc_34122 bpl.s loc_3411E move.w #$7FFF,d4 bra.s loc_34122 ; --------------------------------------------------------------------------- loc_3411E: ; CODE XREF: sub_33FC6+150j move.w #$8000,d4 loc_34122: ; CODE XREF: sub_33FC6+14Ej ; sub_33FC6+156j move.w d4,$10+var_7DF8(a2.w*2) clr.w unk_FFFF9F6C(d0.w*2) move.w FUEL_O2_KV_POST_OXYGEN_INT_OFFSET_MAX.l(d2.w*2),d0 cmp.w d0,d4 ble.s loc_3417A bra.s loc_340C6 ; --------------------------------------------------------------------------- loc_3413C: ; CODE XREF: sub_33FC6+72j ; sub_33FC6+82j ... move.b #1,$10+var_60A6(d0.w) bra.s loc_3417A ; --------------------------------------------------------------------------- loc_34146: ; CODE XREF: sub_33FC6+40j ; sub_33FC6+4Aj tst.b d1 bne.s loc_34150 move.b (byte_FFFF9F5A).w,d3 bra.s loc_34154 ; --------------------------------------------------------------------------- loc_34150: ; CODE XREF: sub_33FC6+182j move.b (byte_FFFF9F5B).w,d3 loc_34154: ; CODE XREF: sub_33FC6+188j tst.b d3 beq.s loc_34174 clr.b d3 loc_3415A: ; CODE XREF: sub_33FC6+1ACj move.l d0,d4 mulu.w #5,d4 add.b d3,d4 andi.w #$FF,d4 clr.w unk_FFFF8218(d4.w*2) addq.b #1,d3 cmpi.b #4,d3 bls.s loc_3415A loc_34174: ; CODE XREF: sub_33FC6+190j clr.w unk_FFFF9F6C(d0.w*2) loc_3417A: ; CODE XREF: sub_33FC6+FCj ; sub_33FC6+106j ... movem.l (sp)+,d1-d2/d6-d7 rts ; End of function sub_33FC6 ; =============== S U B R O U T I N E ======================================= sub_34180: ; CODE XREF: DoLoopC+11Cp move.w (word_FFFF9F70).w,d5 ext.l d5 clr.w d3 move.b (byte_FFFF9F64).w,d3 move.w unk_FFFF8218(d3.w*2),d3 ext.l d3 add.l d5,d3 move.w (word_FFFF9F74).w,d5 ext.l d5 add.l d5,d3 cmpi.l #$FFFF8000,d3 blt.s loc_341B4 cmpi.l #$7FFF,d3 ble.s loc_341B8 move.w #$7FFF,d3 bra.s loc_341B8 ; --------------------------------------------------------------------------- loc_341B4: ; CODE XREF: sub_34180+24j move.w #$8000,d3 loc_341B8: ; CODE XREF: sub_34180+2Cj ; sub_34180+32j move.w d3,(word_FFFF9F56).w tst.b (byte_FFFF9C58).w beq.s loc_341DC move.w (DI_EOS_KE_EOSD_POST_OXYGEN_OFFSET_MIN).l,d4 ; Limit minimum value of Post Oxygen Threshold Offset. ; Millivolts cmp.w d4,d3 bge.s loc_341D2 loc_341CC: ; CODE XREF: sub_34180+5Aj move.w d4,(word_FFFF9F56).w bra.s loc_341DC ; --------------------------------------------------------------------------- loc_341D2: ; CODE XREF: sub_34180+4Aj move.w (DI_EOS_KE_EOSD_POST_OXYGEN_OFFSET_MAX).l,d4 ; Limit maximum value of Post Oxygen Threshold Offset. ; Millivolts cmp.w d4,d3 bgt.s loc_341CC loc_341DC: ; CODE XREF: sub_34180+40j ; sub_34180+50j tst.b (FUEL_O2_KE_BANK_EXHAUST).l ; Configuration of the exhaust system for the specific application. ; Value bne.s loc_341EC move.w (word_FFFF9F56).w,(word_FFFF9F58).w bra.s locret_34248 ; --------------------------------------------------------------------------- loc_341EC: ; CODE XREF: sub_34180+62j move.w (word_FFFF9F72).w,d5 ext.l d5 clr.w d3 move.b (byte_FFFF9F64).w,d3 move.w unk_FFFF8222(d3.w*2),d3 ext.l d3 add.l d5,d3 move.w (word_FFFF9F76).w,d5 ext.l d5 add.l d5,d3 cmpi.l #$FFFF8000,d3 blt.s loc_34220 cmpi.l #$7FFF,d3 ble.s loc_34224 move.w #$7FFF,d3 bra.s loc_34224 ; --------------------------------------------------------------------------- loc_34220: ; CODE XREF: sub_34180+90j move.w #$8000,d3 loc_34224: ; CODE XREF: sub_34180+98j ; sub_34180+9Ej move.w d3,(word_FFFF9F58).w tst.b (byte_FFFF9C58).w beq.s locret_34248 move.w (DI_EOS_KE_EOSD_POST_OXYGEN_OFFSET_MIN).l,d4 ; Limit minimum value of Post Oxygen Threshold Offset. ; Millivolts cmp.w d4,d3 bge.s loc_3423E loc_34238: ; CODE XREF: sub_34180+C6j move.w d4,(word_FFFF9F58).w bra.s locret_34248 ; --------------------------------------------------------------------------- loc_3423E: ; CODE XREF: sub_34180+B6j move.w (DI_EOS_KE_EOSD_POST_OXYGEN_OFFSET_MAX).l,d4 ; Limit maximum value of Post Oxygen Threshold Offset. ; Millivolts cmp.w d4,d3 bgt.s loc_34238 locret_34248: ; CODE XREF: sub_34180+6Aj ; sub_34180+ACj ... rts ; End of function sub_34180 ; =============== S U B R O U T I N E ======================================= sub_3424A: ; CODE XREF: DoLoopF+2C4p movem.l d0-d1,-(sp) move.w #$800,d1 cmp.w (word_FFFF9F78).w,d1 bls.s loc_342A8 clr.l d3 move.w (word_FFFF9F7A).w,d3 cmp.l (EngineRunTime).w,d3 bcc.s loc_342A4 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9F7E).w,d3 add.w $A(a2),d3 bcc.s loc_34276 move.w #$FFFF,d3 loc_34276: ; CODE XREF: sub_3424A+26j move.w d3,(word_FFFF9F7E).w tst.w (word_FFFF9F7C).w beq.s loc_3429E clr.l d3 move.w (word_FFFF9F7E).w,d3 asl.l #8,d3 asl.l #3,d3 divu.w (word_FFFF9F7C).w,d3 bvs.s loc_34296 cmpi.w #$800,d3 bls.s loc_34298 loc_34296: ; CODE XREF: sub_3424A+44j move.l d1,d3 loc_34298: ; CODE XREF: sub_3424A+4Aj move.w d3,(word_FFFF9F78).w bra.s loc_342A8 ; --------------------------------------------------------------------------- loc_3429E: ; CODE XREF: sub_3424A+34j move.w d1,(word_FFFF9F78).w bra.s loc_342A8 ; --------------------------------------------------------------------------- loc_342A4: ; CODE XREF: sub_3424A+18j clr.w (word_FFFF9F78).w loc_342A8: ; CODE XREF: sub_3424A+Cj ; sub_3424A+52j ... tst.b (byte_FFFF9F52).w beq.s loc_342BC clr.b d0 jsr sub_3442A move.w d0,(word_FFFF9F70).w bra.s loc_342C0 ; --------------------------------------------------------------------------- loc_342BC: ; CODE XREF: sub_3424A+62j clr.w (word_FFFF9F70).w loc_342C0: ; CODE XREF: sub_3424A+70j tst.b (FUEL_O2_KE_BANK_EXHAUST).l ; Configuration of the exhaust system for the specific application. ; Value bne.s loc_342D0 move.w (word_FFFF9F70).w,(word_FFFF9F72).w bra.s loc_342E8 ; --------------------------------------------------------------------------- loc_342D0: ; CODE XREF: sub_3424A+7Cj tst.b (byte_FFFF9F53).w beq.s loc_342E4 moveq #1,d0 jsr sub_3442A move.w d0,(word_FFFF9F72).w bra.s loc_342E8 ; --------------------------------------------------------------------------- loc_342E4: ; CODE XREF: sub_3424A+8Aj clr.w (word_FFFF9F72).w loc_342E8: ; CODE XREF: sub_3424A+84j ; sub_3424A+98j movem.l (sp)+,d0-d1 rts ; End of function sub_3424A ; =============== S U B R O U T I N E ======================================= sub_342EE: ; CODE XREF: DoLoopF+2CAp movem.l d0-d1,-(sp) clr.b d0 jsr sub_344B6 move.w #$800,d4 cmp.w (word_FFFF9F82).w,d4 bls.s loc_34354 clr.l d3 move.w (word_FFFF9F80).w,d3 cmp.l (EngineRunTime).w,d3 bcc.s loc_34350 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9F86).w,d3 add.w $A(a2),d3 bcc.s loc_34322 move.w #$FFFF,d3 loc_34322: ; CODE XREF: sub_342EE+2Ej move.w d3,(word_FFFF9F86).w tst.w (word_FFFF9F84).w beq.s loc_3434A clr.l d3 move.w (word_FFFF9F86).w,d3 asl.l #8,d3 asl.l #3,d3 divu.w (word_FFFF9F84).w,d3 bvs.s loc_34342 cmpi.w #$800,d3 bls.s loc_34344 loc_34342: ; CODE XREF: sub_342EE+4Cj move.l d4,d3 loc_34344: ; CODE XREF: sub_342EE+52j move.w d3,(word_FFFF9F82).w bra.s loc_34354 ; --------------------------------------------------------------------------- loc_3434A: ; CODE XREF: sub_342EE+3Cj move.w d4,(word_FFFF9F82).w bra.s loc_34354 ; --------------------------------------------------------------------------- loc_34350: ; CODE XREF: sub_342EE+20j clr.w (word_FFFF9F82).w loc_34354: ; CODE XREF: sub_342EE+14j ; sub_342EE+5Aj ... tst.b (byte_FFFF9F52).w beq.s loc_343AC move.w (word_FFFF9FB4).w,d3 cmpi.w #$FDB2,d3 bge.s loc_34368 clr.w d3 bra.s loc_3438C ; --------------------------------------------------------------------------- loc_34368: ; CODE XREF: sub_342EE+74j move.l #$24E,d0 cmp.w d3,d0 ble.s loc_34388 ext.l d3 add.l d0,d3 asl.l #8,d3 moveq #$3B,d1 ; ';' tst.l d3 bmi.s loc_34384 divu.l d1,d3 bra.s loc_3438C ; --------------------------------------------------------------------------- loc_34384: ; CODE XREF: sub_342EE+8Ej clr.l d3 bra.s loc_3438C ; --------------------------------------------------------------------------- loc_34388: ; CODE XREF: sub_342EE+82j move.w #$1400,d3 loc_3438C: ; CODE XREF: sub_342EE+78j ; sub_342EE+94j ... movea.l #$E8E0,a2 tbls.w (a2),d3 muls.w (word_FFFF9F82).w,d3 bpl.s loc_343A2 addi.l #$7FF,d3 loc_343A2: ; CODE XREF: sub_342EE+ACj asr.l #8,d3 asr.l #3,d3 move.w d3,(word_FFFF9F74).w bra.s loc_343B0 ; --------------------------------------------------------------------------- loc_343AC: ; CODE XREF: sub_342EE+6Aj clr.w (word_FFFF9F74).w loc_343B0: ; CODE XREF: sub_342EE+BCj tst.b (FUEL_O2_KE_BANK_EXHAUST).l ; Configuration of the exhaust system for the specific application. ; Value bne.s loc_343C0 move.w (word_FFFF9F74).w,(word_FFFF9F76).w bra.s loc_34424 ; --------------------------------------------------------------------------- loc_343C0: ; CODE XREF: sub_342EE+C8j moveq #1,d0 jsr sub_344B6 tst.b (byte_FFFF9F53).w beq.s loc_34420 move.w (word_FFFF9FB6).w,d3 cmpi.w #$FDB2,d3 bge.s loc_343DC clr.w d3 bra.s loc_34400 ; --------------------------------------------------------------------------- loc_343DC: ; CODE XREF: sub_342EE+E8j move.l #$24E,d4 cmp.w d3,d4 ble.s loc_343FC ext.l d3 add.l d4,d3 asl.l #8,d3 bmi.s loc_343F8 divu.l #$3B,d3 ; ';' bra.s loc_34400 ; --------------------------------------------------------------------------- loc_343F8: ; CODE XREF: sub_342EE+FEj clr.l d3 bra.s loc_34400 ; --------------------------------------------------------------------------- loc_343FC: ; CODE XREF: sub_342EE+F6j move.w #$1400,d3 loc_34400: ; CODE XREF: sub_342EE+ECj ; sub_342EE+108j ... movea.l #$E8E0,a2 tbls.w (a2),d3 muls.w (word_FFFF9F82).w,d3 bpl.s loc_34416 addi.l #$7FF,d3 loc_34416: ; CODE XREF: sub_342EE+120j asr.l #8,d3 asr.l #3,d3 move.w d3,(word_FFFF9F76).w bra.s loc_34424 ; --------------------------------------------------------------------------- loc_34420: ; CODE XREF: sub_342EE+DEj clr.w (word_FFFF9F76).w loc_34424: ; CODE XREF: sub_342EE+D0j ; sub_342EE+130j movem.l (sp)+,d0-d1 rts ; End of function sub_342EE ; =============== S U B R O U T I N E ======================================= sub_3442A: ; CODE XREF: sub_3424A+66p ; sub_3424A+8Ep andi.w #$FF,d0 move.w word_FFFF9F60(d0.w*2),d0 move.w #$1CCD,d3 cmp.w d0,d3 bls.s loc_34440 clr.w d0 bra.s loc_34464 ; --------------------------------------------------------------------------- loc_34440: ; CODE XREF: sub_3442A+10j cmpi.w #$6D70,d0 bcc.s loc_34460 sub.w d3,d0 andi.l #$FFFF,d0 mulu.l #(loc_45724+1),d4:d0 divu.l #unk_C8000,d4:d0 bra.s loc_34464 ; --------------------------------------------------------------------------- loc_34460: ; CODE XREF: sub_3442A+1Aj move.w #$1BFF,d0 loc_34464: ; CODE XREF: sub_3442A+14j ; sub_3442A+34j movea.l #$E90A,a2 tbls.w (a2),d0 muls.w (word_FFFF9F78).w,d0 bpl.s loc_3447A addi.l #$7FF,d0 loc_3447A: ; CODE XREF: sub_3442A+48j asr.l #8,d0 asr.l #3,d0 move.w (word_FFFFAB66).w,d4 cmp.w (FUEL_O2_KE_LONG_TERM_IDLETHROTTLE_THRESH).l,d4 ; Throttle threshold used to determine idle condition. ; Percent bcc.s locret_344B4 move.w (word_FFFFAEBE).w,d4 cmp.w (FUEL_O2_KE_LONG_TERM_IDLE_VEH_SPD_THRESH).l,d4 ; Vehicle speed threshold used to determine idle condition. ; SHORTCARD bcc.s locret_344B4 move.w #$800,d4 muls.w (FUEL_O2_KE_POST_PROPORTIONAL_IDLE_FACTOR).l,d0 ; Modifier to proportional offset in idle condition to reduce the aggressiveness of proportional term. ; Scaler 2 divs.w d4,d0 bvc.s locret_344B4 swap d0 eor.w d4,d0 bmi.s loc_344B0 move.w #$7FFF,d0 bra.s locret_344B4 ; --------------------------------------------------------------------------- loc_344B0: ; CODE XREF: sub_3442A+7Ej move.w #$8000,d0 locret_344B4: ; CODE XREF: sub_3442A+5Ej ; sub_3442A+6Aj ... rts ; End of function sub_3442A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_344B6: ; CODE XREF: sub_342EE+6p ; sub_342EE+D4p var_6092 = -$6092 var_608E = -$608E var_6066 = -$6066 var_6 = -6 var_4 = -4 link a6,#-6 movem.l d1-d2/d6-a0,-(sp) move.b d0,d7 bne.s loc_344C8 move.w (word_FFFF9F02).w,d1 bra.s loc_344CC ; --------------------------------------------------------------------------- loc_344C8: ; CODE XREF: sub_344B6+Aj move.w (word_FFFF9F08).w,d1 loc_344CC: ; CODE XREF: sub_344B6+10j andi.w #$FF,d7 move.w unk_FFFF9F88(d7.w*2),d2 move.b (FUEL_O2_KE_POST_DERIVATIVE_TERM_FILTER).l,d0 ; Time coefficient for first order lag filter. ; NONE 0-1 jsr sub_265AE move.w d0,var_6(a6) move.w d0,$1A+var_6092(d7.w*2) move.l d7,d3 mulu.w #$A,d3 add.b (byte_FFFF9FB8).w,d3 andi.w #$FF,d3 move.l d0,d6 sub.w unk_FFFF9F8C(d3.w*2),d6 move.w d6,var_4(a6,d7.w*2) movea.w d7,a0 move.w word_FFFF9FB4(d7.w*2),d2 move.b (FUEL_O2_KE_POST_DERIVATIVE_TERM_FILTER).l,d0 ; Time coefficient for first order lag filter. ; NONE 0-1 move.l d6,d1 jsr sub_265B4 move.w d0,$1A+var_6066(a0.w*2) moveq #$A,d4 mulu.w d4,d7 move.b (byte_FFFF9FB8).w,d3 add.b d3,d7 andi.w #$FF,d7 move.w var_6(a6),$1A+var_608E(d7.w*2) addq.b #1,d3 andi.l #$FF,d3 divul.l d4,d0:d3 move.b d0,(byte_FFFF9FB8).w movem.l (sp)+,d1-d2/d6-a0 unlk a6 rts ; End of function sub_344B6 ; =============== S U B R O U T I N E ======================================= sub_34550: ; CODE XREF: sub_345E6+24p ; sub_345E6+32p ... var_4F26 = -$4F26 var_4F24 = -$4F24 move.l d7,-(sp) move.b d1,d7 clr.w d5 movea.w (AnotherRpmValue).w,a3 move.l a3,d1 tblu.w (FUEL_PL_KV_MINIMUM_PULSE_WIDTH).l,d1 ; This is the minimum pulse width allowed. ; Milliseconds cmp.w (FUEL_PL_KE_SHORT_PULSE_LIMIT).l,d0 ; Pulses shorter than this will be increased by an amount KV_Short_pulse_Adjustment. ; Milliseconds bcc.s loc_345A8 tst.w d0 beq.s loc_345A8 cmpi.w #$108,d0 bcc.s loc_3457E clr.l d3 move.w d0,d3 asl.l #6,d3 bra.s loc_34582 ; --------------------------------------------------------------------------- loc_3457E: ; CODE XREF: sub_34550+24j move.w #$4200,d3 loc_34582: ; CODE XREF: sub_34550+2Cj tbls.w (FUEL_PL_KV_SHORT_PULSE_ADJUSTMENT).l,d3 ext.l d3 andi.l #$FFFF,d0 add.l d3,d0 tst.l d0 blt.s loc_345A6 cmpi.l #$FFFF,d0 bls.s loc_345A8 move.w #$FFFF,d0 bra.s loc_345A8 ; --------------------------------------------------------------------------- loc_345A6: ; CODE XREF: sub_34550+46j move.l d5,d0 loc_345A8: ; CODE XREF: sub_34550+1Aj ; sub_34550+1Ej ... cmp.w d1,d0 bhi.s loc_345BC tst.w d0 beq.s loc_345BC move.l a3,d0 tblu.w (FUEL_PL_KV_DEFAULT_PULSE_WIDTH).l,d0 ; This is the default pulse width used when the pulse is less than the minimum. ; Milliseconds moveq #1,d5 loc_345BC: ; CODE XREF: sub_34550+5Aj ; sub_34550+5Ej move.w (word_FFFFB270).w,d3 cmp.w d3,d0 bls.s loc_345C6 move.l d3,d0 loc_345C6: ; CODE XREF: sub_34550+72j clr.l d4 move.b d7,d4 move.b d5,4+var_4F26(d4.w) move.l d0,d3 add.w (word_FFFFB26E).w,d3 bcc.s loc_345DC move.w #$FFFF,d3 loc_345DC: ; CODE XREF: sub_34550+86j move.w d3,4+var_4F24(d4.w*2) move.l (sp)+,d7 rts ; End of function sub_34550 ; =============== S U B R O U T I N E ======================================= sub_345E6: ; CODE XREF: sub_2FC92+2C8p movem.l d1-d2,-(sp) move.w d0,d2 beq.s loc_34622 tst.w (word_FFFFB0EC).w bne.s loc_345FA loc_345F4: ; CODE XREF: sub_345E6+1Ej move.w #$FFFF,d2 bra.s loc_34606 ; --------------------------------------------------------------------------- loc_345FA: ; CODE XREF: sub_345E6+Cj mulu.w #$FC9,d2 lsr.l #1,d2 divu.w (word_FFFFB0EC).w,d2 bvs.s loc_345F4 loc_34606: ; CODE XREF: sub_345E6+12j clr.b d1 move.l d2,d0 jsr sub_34550 move.w d0,(word_FFFFB0F0).w moveq #1,d1 move.l d2,d0 jsr sub_34550 move.w d0,(word_FFFFB0F0).w loc_34622: ; CODE XREF: sub_345E6+6j movem.l (sp)+,d1-d2 rts ; End of function sub_345E6 ; =============== S U B R O U T I N E ======================================= sub_34628: ; CODE XREF: sub_2F712+12p andi.w #$FF,d0 movea.l off_89DC4(d0.w*4),a2 jmp (a2) ; End of function sub_34628 ; --------------------------------------------------------------------------- loc_34636: ; DATA XREF: OS4:off_89DC4o bra.s loc_34650 ; --------------------------------------------------------------------------- loc_34638: ; DATA XREF: OS4:00089DC8o bra.s loc_3467E ; --------------------------------------------------------------------------- loc_3463A: ; DATA XREF: OS4:00089DCCo clr.b (byte_FFFFB0DE).w clr.b (byte_FFFFB0DF).w move.w #$800,(word_FFFFB0F2).w jsr sub_34694 bra.s locret_34692 ; --------------------------------------------------------------------------- loc_34650: ; CODE XREF: OS1:loc_34636j ; DATA XREF: OS4:00089DD0o clr.w (word_FFFFB0F0).w bra.s loc_3466C ; --------------------------------------------------------------------------- loc_34656: ; DATA XREF: OS4:00089DD4o bra.s locret_34692 ; --------------------------------------------------------------------------- loc_34658: ; DATA XREF: OS4:00089DDCo clr.b (byte_FFFFB0DE).w clr.b (byte_FFFFB0DF).w clr.w (word_FFFFB0F0).w clr.w (word_FFFFB0E4).w clr.w (word_FFFFB0E6).w loc_3466C: ; CODE XREF: OS1:00034654j clr.w (word_FFFFB0F4).w move.w #$800,(word_FFFFB0F2).w bra.s locret_34692 ; --------------------------------------------------------------------------- loc_34678: ; DATA XREF: OS4:00089DE0o ; OS4:00089DE4o clr.w (word_FFFFB0F0).w bra.s locret_34692 ; --------------------------------------------------------------------------- loc_3467E: ; CODE XREF: OS1:loc_34638j ; DATA XREF: OS4:00089DE8o clr.b (byte_FFFFB0DE).w clr.b (byte_FFFFB0DF).w clr.w (word_FFFFB0F0).w clr.w (word_FFFFB0E4).w clr.w (word_FFFFB0E6).w locret_34692: ; CODE XREF: OS1:0003464Ej ; OS1:loc_34656j ... rts ; =============== S U B R O U T I N E ======================================= sub_34694: ; CODE XREF: DoLoopA:loc_29CE2p ; DoLoopA:loc_29D6Ap ... movem.l d0-d2/d6,-(sp) move.w (word_FFFFAEF2).w,d0 tblu.w (FUEL_PL_KV_INJECTOR_SLOPE).l,d0 ; Defines the slope of the injector versus on time. ; Grams/Sec move.w (word_FFFFB4A2).w,d3 clr.w d4 cmpi.w #$480,d3 bcc.s loc_346B4 move.l d4,d3 bra.s loc_346CE ; --------------------------------------------------------------------------- loc_346B4: ; CODE XREF: sub_34694+1Aj cmpi.w #$1200,d3 bcc.s loc_346CA andi.l #$FFFF,d3 add.l d3,d3 subi.l #$900,d3 bra.s loc_346CE ; --------------------------------------------------------------------------- loc_346CA: ; CODE XREF: sub_34694+24j move.w #$1B00,d3 loc_346CE: ; CODE XREF: sub_34694+1Ej ; sub_34694+34j tblu.w (FUEL_PL_KV_FLOW_RATE_PUMP_CORRECTION).l,d3 ; Correction to injector flow rate based on fuel pump voltage, Ignition voltage. ; Mult0to8 move.w d3,d1 tst.b (FUEL_PL_KE_USE_INJ_SLOPE_MODIFIER).l ; Determines if the Injector Slope will be modified for fuel flow. ; BOOLEAN beq.w loc_347C6 cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_3478E clr.l d5 move.w (word_FFFFB274).w,d5 move.w (word_FFFFA126).w,d4 mulu.w (EngineRPM_PID_000C___).w,d4 moveq #$19,d3 mulu.l d4,d4:d3 move.l #$1000,d2 divu.l d2,d4:d3 muls.l d3,d3:d5 move.l #$800,d6 divs.l d6,d3:d5 bvc.s loc_34722 move.l d6,d3 eor.l d5,d3 bmi.s loc_3472E bra.s loc_34726 ; --------------------------------------------------------------------------- loc_34722: ; CODE XREF: sub_34694+84j move.l d5,d3 bra.s loc_34734 ; --------------------------------------------------------------------------- loc_34726: ; CODE XREF: sub_34694+8Cj move.l #$7FFFFFFF,d3 bra.s loc_34734 ; --------------------------------------------------------------------------- loc_3472E: ; CODE XREF: sub_34694+8Aj move.l #$80000000,d3 loc_34734: ; CODE XREF: sub_34694+90j ; sub_34694+98j divs.l #$78,d3 ; 'x' tst.l d3 blt.s loc_3474E cmpi.l #$FFFF,d3 bls.s loc_34750 move.w #$FFFF,d3 bra.s loc_34750 ; --------------------------------------------------------------------------- loc_3474E: ; CODE XREF: sub_34694+AAj clr.w d3 loc_34750: ; CODE XREF: sub_34694+B2j ; sub_34694+B8j move.w d3,(word_FFFFB0F4).w move.l #$200,d4 cmp.w d3,d4 bcs.s loc_34768 andi.l #$FFFF,d3 add.l d3,d3 bra.s loc_34780 ; --------------------------------------------------------------------------- loc_34768: ; CODE XREF: sub_34694+C8j cmp.w d3,d2 bls.s loc_3477C andi.l #$FFFF,d3 sub.l d4,d3 lsr.w #1,d3 addi.w #$400,d3 bra.s loc_34780 ; --------------------------------------------------------------------------- loc_3477C: ; CODE XREF: sub_34694+D6j move.w #$B00,d3 loc_34780: ; CODE XREF: sub_34694+D2j ; sub_34694+E6j tblu.w (FUEL_PL_KV_INJ_SLOPE_FUEL_FLOW_MOD).l,d3 ; The correction to injector flow based on fuel flow rate. ; Unitless move.w d3,(word_FFFFB0F2).w bra.s loc_34794 ; --------------------------------------------------------------------------- loc_3478E: ; CODE XREF: sub_34694+54j move.w #$800,(word_FFFFB0F2).w loc_34794: ; CODE XREF: sub_34694+F8j clr.l d3 move.w (word_FFFFB0F2).w,d3 mulu.w d1,d0 lsr.l #8,d0 lsr.l #4,d0 muls.l d0,d3 bvc.s loc_347AA bmi.s loc_347BE bra.s loc_347B8 ; --------------------------------------------------------------------------- loc_347AA: ; CODE XREF: sub_34694+110j cmpi.l #$7FFFFFFF,d3 bhi.s loc_347BE divu.w #$800,d3 bvc.s loc_347C0 loc_347B8: ; CODE XREF: sub_34694+114j move.w #$FFFF,d3 bra.s loc_347C0 ; --------------------------------------------------------------------------- loc_347BE: ; CODE XREF: sub_34694+112j ; sub_34694+11Cj clr.w d3 loc_347C0: ; CODE XREF: sub_34694+122j ; sub_34694+128j move.w d3,(word_FFFFB0EC).w bra.s loc_347D6 ; --------------------------------------------------------------------------- loc_347C6: ; CODE XREF: sub_34694+4Aj mulu.w d1,d0 divu.w #$1000,d0 bvc.s loc_347D2 move.w #$FFFF,d0 loc_347D2: ; CODE XREF: sub_34694+138j move.w d0,(word_FFFFB0EC).w loc_347D6: ; CODE XREF: sub_34694+130j movem.l (sp)+,d0-d2/d6 rts ; End of function sub_34694 ; =============== S U B R O U T I N E ======================================= sub_347DC: ; CODE XREF: DoLoopA+356p var_4F30 = -$4F30 var_4F2C = -$4F2C movem.l d0-d2/d6-d7,-(sp) clr.w d2 loc_347E2: ; CODE XREF: sub_347DC+6Ej move.b (ThrottleControlMode2?).w,d3 cmpi.b #4,d3 bne.s loc_347FE clr.l d3 move.b d2,d3 clr.w word_FFFFB0E4(d3.w*2) clr.w word_FFFFB0E8(d3.w*2) bra.s loc_34844 ; --------------------------------------------------------------------------- loc_347FE: ; CODE XREF: sub_347DC+Ej moveq #1,d7 cmp.b d3,d7 bne.s loc_3480A move.w (word_FFFFA126).w,d3 bra.s loc_34814 ; --------------------------------------------------------------------------- loc_3480A: ; CODE XREF: sub_347DC+26j clr.l d4 move.b d2,d4 move.w word_FFFFA13E(d4.w*2),d3 loc_34814: ; CODE XREF: sub_347DC+2Cj mulu.w #$FC9,d3 lsr.l #1,d3 divu.w (word_FFFFB0EC).w,d3 bvc.s loc_34824 move.w #$FFFF,d3 loc_34824: ; CODE XREF: sub_347DC+42j movea.l d3,a2 clr.l d6 move.b d2,d6 move.w a2,$14+var_4F30(d6.w*2) move.l d2,d1 move.w word_FFFFB0E4(d6.w*2),d0 jsr sub_34550 move.w d0,$14+var_4F2C(d6.w*2) loc_34844: ; CODE XREF: sub_347DC+20j addq.b #1,d2 cmpi.b #1,d2 bls.s loc_347E2 movem.l (sp)+,d0-d2/d6-d7 rts ; End of function sub_347DC ; =============== S U B R O U T I N E ======================================= sub_34852: ; CODE XREF: OS1:00028A08p ; sub_29320+110p movem.l d1-d2,-(sp) andi.w #$FF,d0 movea.l off_8A1FC(d0.w*4),a2 jmp (a2) ; End of function sub_34852 ; --------------------------------------------------------------------------- loc_34864: ; DATA XREF: OS4:0008A204o move.w #$1400,d2 moveq #$41,d1 ; 'A' moveq #$1A,d0 jsr (sub_16FA).l move.w (GlobalClock).w,(word_FFFFB51C).w clr.b (byte_FFFFB518).w move.w (GlobalClock).w,(FuelPrimingTimestamp).w tst.b (byte_FFFFB54A).w bne.s loc_348C0 move.b #1,(byte_FFFF8287).w bra.s loc_348C0 ; --------------------------------------------------------------------------- loc_34890: ; DATA XREF: OS4:0008A208o move.w #$1400,d2 moveq #$41,d1 ; 'A' moveq #$1A,d0 jsr (sub_16FA).l move.w (GlobalClock).w,(word_FFFFB51C).w clr.b (byte_FFFFB518).w move.w (GlobalClock).w,(FuelPrimingTimestamp).w bra.s loc_348C0 ; --------------------------------------------------------------------------- loc_348B0: ; DATA XREF: OS4:0008A200o ; OS4:0008A20Co ... clr.w d2 moveq #$41,d1 ; 'A' moveq #$1A,d0 jsr (sub_16FA).l bra.s loc_348C0 ; --------------------------------------------------------------------------- loc_348BE: ; DATA XREF: OS4:off_8A1FCo ; OS4:0008A218o nop loc_348C0: ; CODE XREF: OS1:00034886j ; OS1:0003488Ej ... movem.l (sp)+,d1-d2 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_348C6: ; CODE XREF: DoLoopF+3BCp var_4 = -4 link a6,#-4 movem.l d0-d2/a0,-(sp) movea.l #unk_FFB51C,a0 jsr sub_276F4 btst #2,(word_FFFFA7DC+1).w beq.s loc_348F4 btst #6,(word_FFFFA7E2+1).w beq.w loc_34972 loc_348EC: ; CODE XREF: sub_348C6+A8j move.w #$1400,d2 bra.w loc_34974 ; --------------------------------------------------------------------------- loc_348F4: ; CODE XREF: sub_348C6+1Aj clr.w d2 move.b (ENG_STATE_KE_NO_REF_TIME).l,d2 ; Engine is considered stopped if no ref pulses have occured in this amount of time. ; Seconds move.w #$140,d3 sub.w d2,d3 andi.l #$FFFF,d3 tst.b (byte_FFFFB37A).w bne.s loc_34916 btst #5,(byte_FFFFAA92).w beq.s loc_3491C loc_34916: ; CODE XREF: sub_348C6+46j movea.l (dword_FFFFAA7C).w,a2 bra.s loc_34920 ; --------------------------------------------------------------------------- loc_3491C: ; CODE XREF: sub_348C6+4Ej movea.l (dword_FFFFAA80).w,a2 loc_34920: ; CODE XREF: sub_348C6+54j move.l a2,var_4(a6) move.l (unk_FFFFB542).w,d2 sub.l var_4(a6),d2 cmp.l d3,d2 blt.s loc_3494A tst.b (byte_FFFFB518).w bne.s loc_3494A move.w (word_FFFFB51C).w,var_4(a6) move.w (GlobalClock).w,d3 sub.w var_4(a6),d3 cmpi.w #$140,d3 bcc.s loc_34972 loc_3494A: ; CODE XREF: sub_348C6+68j ; sub_348C6+6Ej btst #1,(byte_FFFF803D).w bne.s loc_34972 btst #0,(byte_FFFF803D).w bne.s loc_34972 tst.b (byte_FFFFB472).w bne.s loc_34972 tst.b (byte_FFFFBEF1).w bne.s loc_34972 move.b (byte_FFFFA59C).w,d3 btst #3,d3 beq.w loc_348EC loc_34972: ; CODE XREF: sub_348C6+22j ; sub_348C6+82j ... clr.w d2 loc_34974: ; CODE XREF: sub_348C6+2Aj moveq #$41,d1 ; 'A' moveq #$1A,d0 jsr (sub_16FA).l tst.b (byte_FFFF8287).w beq.s loc_34996 tst.b (byte_FFFFB518).w bne.s loc_34996 tst.b (byte_FFFFAB6A).w beq.s loc_34996 move.b #1,(byte_FFFFB518).w loc_34996: ; CODE XREF: sub_348C6+BCj ; sub_348C6+C2j ... tst.b (byte_FFFFB518).w beq.s loc_349CE move.b (ThrottleControlMode2?).w,d3 cmpi.b #4,d3 bne.s CheckFuelPrimingTimer clr.b (byte_FFFFB518).w bra.s loc_349DA ; --------------------------------------------------------------------------- CheckFuelPrimingTimer: ; CODE XREF: sub_348C6+DEj cmpi.b #3,d3 beq.s loc_349C8 move.w (FuelPrimingTimestamp).w,var_4(a6) ; fuel priming start time move.w (GlobalClock).w,d3 ; "clock" time sub.w var_4(a6),d3 cmp.w (FUEL_PUMP_KE_FUEL_PUMP_PRIME_TIMER).l,d3 bcs.s loc_349DA loc_349C8: ; CODE XREF: sub_348C6+EAj clr.b (byte_FFFFB518).w bra.s loc_349D6 ; --------------------------------------------------------------------------- loc_349CE: ; CODE XREF: sub_348C6+D4j cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_349DA loc_349D6: ; CODE XREF: sub_348C6+106j clr.b (byte_FFFF8287).w loc_349DA: ; CODE XREF: sub_348C6+E4j ; sub_348C6+100j ... movem.l (sp)+,d0-d2/a0 unlk a6 rts ; End of function sub_348C6 ; =============== S U B R O U T I N E ======================================= sub_349E2: ; CODE XREF: sub_2F712+42p andi.w #$FF,d0 movea.l off_8A24C(d0.w*4),a2 jmp (a2) ; End of function sub_349E2 ; --------------------------------------------------------------------------- loc_349F0: ; DATA XREF: OS4:off_8A24Co bra.w locret_34AFE ; --------------------------------------------------------------------------- loc_349F4: ; DATA XREF: OS4:0008A250o clr.b (byte_FFFFA890).w clr.w (word_FFFFA892).w bra.w locret_34AFE ; --------------------------------------------------------------------------- loc_34A00: ; DATA XREF: OS4:0008A254o jsr sub_3576A bra.s loc_34A86 ; --------------------------------------------------------------------------- loc_34A08: ; DATA XREF: OS4:0008A258o clr.b (byte_FFFFA890).w clr.w (word_FFFFA892).w movea.w #$D,a2 move.w a2,(word_FFFFA88C).w move.w a2,(word_FFFFA88E).w clr.b (byte_FFFFA89C).w clr.b (byte_FFFFA89D).w clr.b (byte_FFFFA898).w clr.b (byte_FFFFA899).w clr.b (byte_FFFFA896).w clr.b (byte_FFFFA897).w clr.w (word_FFFFA8BC).w clr.w (word_FFFFA8BE).w clr.b (byte_FFFFA8C0).w clr.b (byte_FFFFA8C1).w clr.w (word_FFFFA8AA).w clr.w (word_FFFFA8AC).w clr.w (word_FFFFA8AE).w clr.w (word_FFFFA8B0).w clr.b (byte_FFFFA89A).w clr.b (byte_FFFFA89B).w movea.w #$800,a3 move.w a3,(word_FFFFA89E).w move.w a3,(word_FFFFA8A0).w clr.w (word_FFFFA8A2).w clr.w (word_FFFFA8A4).w move.w a3,(word_FFFFA8A6).w move.w a3,(word_FFFFA8A8).w clr.w (word_FFFFA8B8).w clr.w (word_FFFFA8BA).w loc_34A80: ; DATA XREF: OS4:0008A25Co bra.s locret_34AFE ; --------------------------------------------------------------------------- loc_34A82: ; DATA XREF: OS4:0008A264o bra.s loc_34A86 ; --------------------------------------------------------------------------- loc_34A84: ; DATA XREF: OS4:0008A268o ; OS4:0008A26Co bra.s locret_34AFE ; --------------------------------------------------------------------------- loc_34A86: ; CODE XREF: OS1:00034A06j ; OS1:loc_34A82j ; DATA XREF: ... clr.b (byte_FFFFA890).w clr.w (word_FFFFA892).w movea.w #$D,a2 move.w a2,(word_FFFFA88C).w move.w a2,(word_FFFFA88E).w clr.b (byte_FFFFA89C).w clr.b (byte_FFFFA89D).w clr.b (byte_FFFFA898).w clr.b (byte_FFFFA899).w clr.b (byte_FFFFA896).w clr.b (byte_FFFFA897).w clr.w (word_FFFFA8BC).w clr.w (word_FFFFA8BE).w clr.b (byte_FFFFA8C0).w clr.b (byte_FFFFA8C1).w clr.w (word_FFFFA8AA).w clr.w (word_FFFFA8AC).w clr.w (word_FFFFA8AE).w clr.w (word_FFFFA8B0).w clr.b (byte_FFFFA89A).w clr.b (byte_FFFFA89B).w movea.w #$800,a3 move.w a3,(word_FFFFA89E).w move.w a3,(word_FFFFA8A0).w clr.w (word_FFFFA8A2).w clr.w (word_FFFFA8A4).w move.w a3,(word_FFFFA8A6).w move.w a3,(word_FFFFA8A8).w clr.w (word_FFFFA8B8).w clr.w (word_FFFFA8BA).w locret_34AFE: ; CODE XREF: OS1:loc_349F0j ; OS1:000349FCj ... rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_34B00: ; CODE XREF: DoLoopC+C4p var_1C = -$1C var_18 = -$18 var_14 = -$14 var_12 = -$12 var_11 = -$11 var_10 = -$10 var_E = -$E var_D = -$D var_C = -$C var_A = -$A var_8 = -8 var_6 = -6 var_4 = -4 var_2 = -2 link a6,#-$1C movem.l d0-d2/d6-a1,-(sp) clr.w d4 tst.b (byte_FFFFA890).w beq.s loc_34B28 move.w (FUEL_SH_KE_CL_IDLE_THROTTLE_POSITION).l,d3 ; Throttle position must be less than this calibration for Cl_Idle to be TRUE. ; Percent add.w (FUEL_SH_KE_CL_IDLE_THROTTLE_HYSTERESIS).l,d3 ; Throttle position hysteresis for CL_Idle determination. ; Percent cmpi.w #$1400,d3 bls.s loc_34B2E move.w #$1400,d3 bra.s loc_34B2E ; --------------------------------------------------------------------------- loc_34B28: ; CODE XREF: sub_34B00+Ej move.w (FUEL_SH_KE_CL_IDLE_THROTTLE_POSITION).l,d3 ; Throttle position must be less than this calibration for Cl_Idle to be TRUE. ; Percent loc_34B2E: ; CODE XREF: sub_34B00+20j ; sub_34B00+26j cmp.w (word_FFFFAB66).w,d3 bls.s loc_34B60 tst.b (byte_FFFFA890).w beq.s loc_34B52 move.w (FUEL_SH_KE_CL_IDLE_VEHICLE_SPEED).l,d3 ; Vehicle Speed must be less than this for CL_Idle to be TRUE. ; MPH add.w (FUEL_SH_KE_CL_IDLE_VEHICLE_SPEED_HYSTERE).l,d3 ; Vehicle Speed hysteresis for CL_Idle determination. ; MPH cmpi.w #$7FFF,d3 bls.s loc_34B58 move.w #$7FFF,d3 bra.s loc_34B58 ; --------------------------------------------------------------------------- loc_34B52: ; CODE XREF: sub_34B00+38j move.w (FUEL_SH_KE_CL_IDLE_VEHICLE_SPEED).l,d3 ; Vehicle Speed must be less than this for CL_Idle to be TRUE. ; MPH loc_34B58: ; CODE XREF: sub_34B00+4Aj ; sub_34B00+50j cmp.w (word_FFFFAEBE).w,d3 bls.s loc_34B60 addq.b #1,d4 loc_34B60: ; CODE XREF: sub_34B00+32j ; sub_34B00+5Cj move.b d4,(byte_FFFFA890).w move.w (word_FFFFA0DC).w,d3 tst.b d4 beq.s loc_34B72 clr.w (word_FFFFA892).w bra.s loc_34B8C ; --------------------------------------------------------------------------- loc_34B72: ; CODE XREF: sub_34B00+6Aj cmpi.w #$A000,d3 bcc.s loc_34B7C lsr.w #1,d3 bra.s loc_34B80 ; --------------------------------------------------------------------------- loc_34B7C: ; CODE XREF: sub_34B00+76j move.w #$5000,d3 loc_34B80: ; CODE XREF: sub_34B00+7Aj tblu.w (FUEL_SH_KV_CL_MODE).l,d3 move.w d3,(word_FFFFA892).w loc_34B8C: ; CODE XREF: sub_34B00+70j move.w (word_FFFFA892).w,d3 lsr.w #3,d3 tblu.w (FUEL_SH_KV_O2_RICH_LEAN_THRESHOLD).l,d3 ; Oxygen sensor voltage level for rich/lean decision ; MilliVolts move.w d3,var_4(a6) add.w (word_FFFF9F56).w,d3 bvc.s loc_34BA8 bmi.s loc_34BB0 bra.s loc_34BB6 ; --------------------------------------------------------------------------- loc_34BA8: ; CODE XREF: sub_34B00+A2j cmpi.w #$7FFF,d3 bhi.s loc_34BB6 bra.s loc_34BB8 ; --------------------------------------------------------------------------- loc_34BB0: ; CODE XREF: sub_34B00+A4j move.w #$7FFF,d3 bra.s loc_34BB8 ; --------------------------------------------------------------------------- loc_34BB6: ; CODE XREF: sub_34B00+A6j ; sub_34B00+ACj clr.w d3 loc_34BB8: ; CODE XREF: sub_34B00+AEj ; sub_34B00+B4j move.w d3,var_4(a6) move.w (CoolantTemperatureOrDefault).w,d4 clr.l d7 move.w (FUEL_SH_KE_O2_R_L_COLD_OFFSET_TIME).l,d7 ; Offset added to O2 Rich Lean threshold when engine run time is less than this and coolant is below a Cal. ; Seconds move.l (EngineRunTime).w,d0 cmp.l d7,d0 bcc.s loc_34BFC cmp.w (FUEL_SH_KE_O2_R_L_COLD_OFFSET_COOLANT).l,d4 ; Offset added to O2 Rich Lean threshold when Coolant Temperature is less than this and engine run time is below a Cal. ; Degrees C bge.s loc_34BFC move.w var_4(a6),d3 add.w (FUEL_SH_KE_O2_RICH_LEAN_COLD_OFFSET).l,d3 bvc.s loc_34BE8 bmi.s loc_34BF0 bra.s loc_34BF6 ; --------------------------------------------------------------------------- loc_34BE8: ; CODE XREF: sub_34B00+E2j cmpi.w #$7FFF,d3 bhi.s loc_34BF6 bra.s loc_34BF8 ; --------------------------------------------------------------------------- loc_34BF0: ; CODE XREF: sub_34B00+E4j move.w #$7FFF,d3 bra.s loc_34BF8 ; --------------------------------------------------------------------------- loc_34BF6: ; CODE XREF: sub_34B00+E6j ; sub_34B00+ECj clr.w d3 loc_34BF8: ; CODE XREF: sub_34B00+EEj ; sub_34B00+F4j move.w d3,var_4(a6) loc_34BFC: ; CODE XREF: sub_34B00+CEj ; sub_34B00+D6j move.w (FUEL_SH_KE_O2_MAX_RICH_LEAN_THRESHOLD).l,d1 ; O2 Rich Lean Threshold is max limited to this value after all the offset are added. ; Miilivots cmp.w var_4(a6),d1 bcc.s loc_34C0E move.w d1,var_4(a6) bra.s loc_34C1E ; --------------------------------------------------------------------------- loc_34C0E: ; CODE XREF: sub_34B00+106j move.w (FUEL_SH_KE_O2_MIN_RICH_LEAN_THRESHOLD).l,d3 ; O2 Rich Lean Threshold is min limited to this value after all the offset are added. ; Miilivots cmp.w var_4(a6),d3 bls.s loc_34C1E move.w d3,var_4(a6) loc_34C1E: ; CODE XREF: sub_34B00+10Cj ; sub_34B00+118j move.b (VEH_SYS_KE_PLATFORM).l,d2 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type moveq #2,d5 cmp.b d2,d5 bne.s loc_34C56 clr.l d3 move.w (FUEL_SH_KE_O2_COLD_TIME).l,d3 ; The offset is added to the Rich Lean threshold as long as Engine run time is less this. Used for Holden vehicles only. ; Seconds cmp.l d0,d3 bhi.s loc_34C3E cmp.w (FUEL_SH_KE_O2_COLD_TEMPERATURE).l,d4 bge.s loc_34C56 loc_34C3E: ; CODE XREF: sub_34B00+134j move.w (word_FFFFA88C).w,d3 add.w (FUEL_SH_KE_O2_AFTER_START_THRESHOLD_OFF).l,d3 ; Offset added to O2 Rich Lean threshold. For Holden Vehicle only. ; Millivolts cmpi.w #$7FFF,d3 bls.s loc_34C52 move.w #$7FFF,d3 loc_34C52: ; CODE XREF: sub_34B00+14Cj move.w d3,var_4(a6) loc_34C56: ; CODE XREF: sub_34B00+128j ; sub_34B00+13Cj move.w var_4(a6),(word_FFFFA88C).w move.w (word_FFFFA892).w,d3 lsr.w #3,d3 tblu.w (word_EC0A).l,d3 move.w d3,var_2(a6) add.w (word_FFFF9F58).w,d3 bvc.s loc_34C78 bmi.s loc_34C80 bra.s loc_34C86 ; --------------------------------------------------------------------------- loc_34C78: ; CODE XREF: sub_34B00+172j cmpi.w #$7FFF,d3 bhi.s loc_34C86 bra.s loc_34C88 ; --------------------------------------------------------------------------- loc_34C80: ; CODE XREF: sub_34B00+174j move.w #$7FFF,d3 bra.s loc_34C88 ; --------------------------------------------------------------------------- loc_34C86: ; CODE XREF: sub_34B00+176j ; sub_34B00+17Cj clr.w d3 loc_34C88: ; CODE XREF: sub_34B00+17Ej ; sub_34B00+184j move.w d3,var_2(a6) move.w (CoolantTemperatureOrDefault).w,d4 move.l (EngineRunTime).w,d0 cmp.l d7,d0 bcc.s loc_34CC4 cmp.w (FUEL_SH_KE_O2_R_L_COLD_OFFSET_COOLANT).l,d4 ; Offset added to O2 Rich Lean threshold when Coolant Temperature is less than this and engine run time is below a Cal. ; Degrees C bge.s loc_34CC4 move.w var_2(a6),d3 add.w (FUEL_SH_KE_O2_RICH_LEAN_COLD_OFFSET).l,d3 bvc.s loc_34CB0 bmi.s loc_34CB8 bra.s loc_34CBE ; --------------------------------------------------------------------------- loc_34CB0: ; CODE XREF: sub_34B00+1AAj cmpi.w #$7FFF,d3 bhi.s loc_34CBE bra.s loc_34CC0 ; --------------------------------------------------------------------------- loc_34CB8: ; CODE XREF: sub_34B00+1ACj move.w #$7FFF,d3 bra.s loc_34CC0 ; --------------------------------------------------------------------------- loc_34CBE: ; CODE XREF: sub_34B00+1AEj ; sub_34B00+1B4j clr.w d3 loc_34CC0: ; CODE XREF: sub_34B00+1B6j ; sub_34B00+1BCj move.w d3,var_2(a6) loc_34CC4: ; CODE XREF: sub_34B00+196j ; sub_34B00+19Ej cmp.w var_2(a6),d1 bcc.s loc_34CD0 move.w d1,var_2(a6) bra.s loc_34CE0 ; --------------------------------------------------------------------------- loc_34CD0: ; CODE XREF: sub_34B00+1C8j move.w (FUEL_SH_KE_O2_MIN_RICH_LEAN_THRESHOLD).l,d3 ; O2 Rich Lean Threshold is min limited to this value after all the offset are added. ; Miilivots cmp.w var_2(a6),d3 bls.s loc_34CE0 move.w d3,var_2(a6) loc_34CE0: ; CODE XREF: sub_34B00+1CEj ; sub_34B00+1DAj cmp.b d2,d5 bne.s loc_34D10 clr.l d3 move.w (FUEL_SH_KE_O2_COLD_TIME).l,d3 ; The offset is added to the Rich Lean threshold as long as Engine run time is less this. Used for Holden vehicles only. ; Seconds cmp.l d0,d3 bhi.s loc_34CF8 cmp.w (FUEL_SH_KE_O2_COLD_TEMPERATURE).l,d4 bge.s loc_34D10 loc_34CF8: ; CODE XREF: sub_34B00+1EEj move.w (word_FFFFA88E).w,d3 add.w (FUEL_SH_KE_O2_AFTER_START_THRESHOLD_OFF).l,d3 ; Offset added to O2 Rich Lean threshold. For Holden Vehicle only. ; Millivolts cmpi.w #$7FFF,d3 bls.s loc_34D0C move.w #$7FFF,d3 loc_34D0C: ; CODE XREF: sub_34B00+206j move.w d3,var_2(a6) loc_34D10: ; CODE XREF: sub_34B00+1E2j ; sub_34B00+1F6j move.w var_2(a6),(word_FFFFA88E).w move.b (byte_FFFFA89C).w,d4 move.w (word_FFFF9F00).w,d3 cmp.w (word_FFFFA88C).w,d3 bls.s loc_34D2C moveq #1,d7 move.b d7,(byte_FFFFA89C).w bra.s loc_34D30 ; --------------------------------------------------------------------------- loc_34D2C: ; CODE XREF: sub_34B00+222j clr.b (byte_FFFFA89C).w loc_34D30: ; CODE XREF: sub_34B00+22Aj move.b (byte_FFFFA898).w,d3 move.b d3,var_4(a6) cmp.b (byte_FFFFA89C).w,d4 beq.s loc_34D4C addq.b #1,d3 move.b d3,(byte_FFFFA898).w moveq #1,d7 move.b d7,(byte_FFFFA896).w bra.s loc_34D50 ; --------------------------------------------------------------------------- loc_34D4C: ; CODE XREF: sub_34B00+23Cj clr.b (byte_FFFFA896).w loc_34D50: ; CODE XREF: sub_34B00+24Aj move.b (byte_FFFFA89D).w,d4 move.w (word_FFFF9F06).w,d3 cmp.w (word_FFFFA88E).w,d3 bls.s loc_34D66 moveq #1,d7 move.b d7,(byte_FFFFA89D).w bra.s loc_34D6A ; --------------------------------------------------------------------------- loc_34D66: ; CODE XREF: sub_34B00+25Cj clr.b (byte_FFFFA89D).w loc_34D6A: ; CODE XREF: sub_34B00+264j move.b (byte_FFFFA899).w,d3 move.b d3,var_4(a6) cmp.b (byte_FFFFA89D).w,d4 beq.s loc_34D86 addq.b #1,d3 move.b d3,(byte_FFFFA899).w moveq #1,d7 move.b d7,(byte_FFFFA897).w bra.s loc_34D8A ; --------------------------------------------------------------------------- loc_34D86: ; CODE XREF: sub_34B00+276j clr.b (byte_FFFFA897).w loc_34D8A: ; CODE XREF: sub_34B00+284j tst.b (byte_FFFFA89A).w beq.s loc_34D98 movea.w (word_FFFFA88C).w,a0 move.w a0,d4 bra.s loc_34DA0 ; --------------------------------------------------------------------------- loc_34D98: ; CODE XREF: sub_34B00+28Ej move.w (word_FFFFA8AA).w,d4 movea.w (word_FFFFA8AE).w,a0 loc_34DA0: ; CODE XREF: sub_34B00+296j movea.w (word_FFFF9F00).w,a2 move.w (word_FFFFA892).w,d3 lsr.w #3,d3 tblu.b (FUEL_SH_KV_SLOW_O2_FILTER).l,d3 ; Filter constant for slow O2 voltage (long term mixture estimate for each bank (1 = Left; 2 = Right) ; Seconds move.l d4,d2 move.l a2,d1 move.l d3,d0 jsr sub_265AE move.w d0,(word_FFFFA8AA).w movea.w (word_FFFF9F00).w,a2 move.w (word_FFFFA892).w,d3 lsr.w #3,d3 tblu.b (FUEL_SH_KV_SLOW_O2_FILTER_FOR_CCP).l,d3 ; Filter constant for slow O2 voltage (long term mixture estimatefor each bank (1 = Left; 2 = Right). Only used for CCP. ; Seconds move.l a0,d2 move.l a2,d1 move.l d3,d0 jsr sub_265AE move.w d0,(word_FFFFA8AE).w move.w (word_FFFFA88C).w,d4 move.w (word_FFFFA8AA).w,d3 cmp.w d4,d3 bls.s loc_34E06 moveq #1,d7 move.b d7,(byte_FFFFA8C0).w sub.w (word_FFFFA88C).w,d3 loc_34DFA: ; CODE XREF: sub_34B00+314j bcc.s loc_34E00 move.w #$7FFF,d3 loc_34E00: ; CODE XREF: sub_34B00:loc_34DFAj move.w d3,(word_FFFFA8BC).w bra.s loc_34E1A ; --------------------------------------------------------------------------- loc_34E06: ; CODE XREF: sub_34B00+2EEj cmp.w d4,d3 bcc.s loc_34E16 clr.b (byte_FFFFA8C0).w move.l d4,d3 sub.w (word_FFFFA8AA).w,d3 bra.s loc_34DFA ; --------------------------------------------------------------------------- loc_34E16: ; CODE XREF: sub_34B00+308j clr.w (word_FFFFA8BC).w loc_34E1A: ; CODE XREF: sub_34B00+304j tst.b (byte_FFFFA89B).w beq.s loc_34E28 movea.w (word_FFFFA88E).w,a0 move.l a0,d2 bra.s loc_34E30 ; --------------------------------------------------------------------------- loc_34E28: ; CODE XREF: sub_34B00+31Ej move.w (word_FFFFA8AC).w,d2 movea.w (word_FFFFA8B0).w,a0 loc_34E30: ; CODE XREF: sub_34B00+326j move.w (word_FFFF9F06).w,d1 move.w (word_FFFFA892).w,d0 lsr.w #3,d0 tblu.b (byte_ECD2).l,d0 jsr sub_265AE move.w d0,(word_FFFFA8AC).w move.w (word_FFFF9F06).w,d1 move.w (word_FFFFA892).w,d0 lsr.w #3,d0 tblu.b (byte_ECE6).l,d0 move.l a0,d2 jsr sub_265AE move.w d0,(word_FFFFA8B0).w move.w (word_FFFFA88E).w,d4 move.w (word_FFFFA8AC).w,d3 cmp.w d4,d3 bls.s loc_34E8C move.b #1,(byte_FFFFA8C1).w sub.w (word_FFFFA88E).w,d3 loc_34E80: ; CODE XREF: sub_34B00+39Aj bcc.s loc_34E86 move.w #$7FFF,d3 loc_34E86: ; CODE XREF: sub_34B00:loc_34E80j move.w d3,(word_FFFFA8BE).w bra.s loc_34EA0 ; --------------------------------------------------------------------------- loc_34E8C: ; CODE XREF: sub_34B00+374j cmp.w d4,d3 bcc.s loc_34E9C clr.b (byte_FFFFA8C1).w move.l d4,d3 sub.w (word_FFFFA8AC).w,d3 bra.s loc_34E80 ; --------------------------------------------------------------------------- loc_34E9C: ; CODE XREF: sub_34B00+38Ej clr.w (word_FFFFA8BE).w loc_34EA0: ; CODE XREF: sub_34B00+38Aj tst.b (DI_EOS_KE_EOSD_INTRUSIVE_CNTRL_ENABLE).l ; This allow EOSD to intrusive control the fuel proportional terms and post O2 min/max limiting. ; Boolean beq.s loc_34EC0 btst #7,(byte_FFFF9794).w bne.s loc_34EC0 btst #7,(byte_FFFF9C3A).w sne d2 neg.b d2 move.b d2,(byte_FFFF9C58).w bra.s loc_34EC4 ; --------------------------------------------------------------------------- loc_34EC0: ; CODE XREF: sub_34B00+3A6j ; sub_34B00+3AEj clr.b (byte_FFFF9C58).w loc_34EC4: ; CODE XREF: sub_34B00+3BEj move.b (byte_FFFFA890).w,d2 move.l d2,d0 and.b (FUEL_SH_KE_PROPORTIONAL_TERM_IDLE_ENABLE).l,d0 ; Use specially formed idle proportional term at idle. ; TRUE_FALSE beq.s loc_34F30 move.w (word_FFFFA0DC).w,d3 move.w #$1000,d5 cmp.w d3,d5 bls.s loc_34EE2 lsr.w #1,d3 bra.s loc_34EE6 ; --------------------------------------------------------------------------- loc_34EE2: ; CODE XREF: sub_34B00+3DCj move.w #$800,d3 loc_34EE6: ; CODE XREF: sub_34B00+3E0j tblu.w (FUEL_SH_KV_PROPORTIONAL_TERM_IDLE_BASE).l,d3 ; Proportional term base for each bank under idle conditions ; NONE 0-2 move.w (word_FFFFA8BC).w,d4 cmpi.w #$2FF4,d4 bcc.s loc_34F10 clr.l d1 move.w d4,d1 mulu.l #unk_8AE4A,d4:d1 divu.l #$22B07B,d4:d1 move.w d1,d4 bra.s loc_34F14 ; --------------------------------------------------------------------------- loc_34F10: ; CODE XREF: sub_34B00+3F6j move.w #$BFF,d4 loc_34F14: ; CODE XREF: sub_34B00+40Ej tblu.w (FUEL_SH_KV_PROPORTIONAL_TERM_IDLE_GAIN).l,d4 ; Gain factor applied to proportional term base for each bank under idle conditions ; NONE 0-2 mulu.w d4,d3 lsr.l #8,d3 lsr.l #3,d3 cmpi.w #$1000,d3 bls.w loc_34FB2 move.l d5,d3 bra.w loc_34FB2 ; --------------------------------------------------------------------------- loc_34F30: ; CODE XREF: sub_34B00+3D0j tst.b (byte_FFFFA89C).w beq.s loc_34F52 tst.b (byte_FFFF9C58).w beq.s loc_34F44 movea.l #DI_EOS_KV_EOSD_PROP_TERM_NORM_BAS_RICH,a2 bra.s loc_34F4A ; --------------------------------------------------------------------------- loc_34F44: ; CODE XREF: sub_34B00+43Aj movea.l #$EC80,a2 loc_34F4A: ; CODE XREF: sub_34B00+442j movea.l #$ECAC,a0 bra.s loc_34F6C ; --------------------------------------------------------------------------- loc_34F52: ; CODE XREF: sub_34B00+434j tst.b (byte_FFFF9C58).w beq.s loc_34F60 movea.l #DI_EOS_KV_EOSD_PROP_TERM_NORM_BAS_LEAN,a2 bra.s loc_34F66 ; --------------------------------------------------------------------------- loc_34F60: ; CODE XREF: sub_34B00+456j movea.l #$EC6E,a2 loc_34F66: ; CODE XREF: sub_34B00+45Ej movea.l #$EC92,a0 loc_34F6C: ; CODE XREF: sub_34B00+450j move.w (word_FFFFA892).w,d3 lsr.w #3,d3 tblu.w (a2),d3 clr.b d4 cmpi.w #$2FF4,(word_FFFFA8BC).w bcc.s loc_34F9A clr.l d7 move.w (word_FFFFA8BC).w,d7 mulu.l #unk_8AE4A,d4:d7 divu.l #$22B07B,d4:d7 move.w d7,d4 bra.s loc_34F9E ; --------------------------------------------------------------------------- loc_34F9A: ; CODE XREF: sub_34B00+47Ej move.w #$BFF,d4 loc_34F9E: ; CODE XREF: sub_34B00+498j tblu.w (a0),d4 mulu.w d4,d3 lsr.l #8,d3 lsr.l #3,d3 cmpi.w #$1000,d3 bls.s loc_34FB2 move.w #$1000,d3 loc_34FB2: ; CODE XREF: sub_34B00+426j ; sub_34B00+42Cj ... move.b (byte_FFFFB2EF).w,d5 move.b d5,var_12(a6) moveq #2,d7 cmp.b d5,d7 bne.s loc_34FEA muls.w (FUEL_SH_KE_PROPORTIONAL_TERM_AIRFUEL_GAI).l,d3 ; Gain applied to proportional term when in Airfuel_Closedloop. ; NONE 0-2 bpl.s loc_34FCE addi.l #$7FF,d3 loc_34FCE: ; CODE XREF: sub_34B00+4C6j asr.l #8,d3 asr.l #3,d3 cmpi.w #$1000,d3 bgt.s loc_34FE0 cmpi.w #$F000,d3 blt.s loc_34FE6 bra.s loc_34FEA ; --------------------------------------------------------------------------- loc_34FE0: ; CODE XREF: sub_34B00+4D6j move.w #$1000,d3 bra.s loc_34FEA ; --------------------------------------------------------------------------- loc_34FE6: ; CODE XREF: sub_34B00+4DCj move.w #$F000,d3 loc_34FEA: ; CODE XREF: sub_34B00+4BEj ; sub_34B00+4DEj ... move.b (byte_FFFFA89C).w,d1 beq.s loc_34FF2 neg.w d3 loc_34FF2: ; CODE XREF: sub_34B00+4EEj move.w d3,var_C(a6) tst.b d0 beq.s loc_35048 move.w (word_FFFFA0DC).w,d3 cmpi.w #$1000,d3 bcc.s loc_35008 lsr.w #1,d3 bra.s loc_3500C ; --------------------------------------------------------------------------- loc_35008: ; CODE XREF: sub_34B00+502j move.w #$800,d3 loc_3500C: ; CODE XREF: sub_34B00+506j tblu.w (FUEL_SH_KV_PROPORTIONAL_TERM_IDLE_BASE).l,d3 ; Proportional term base for each bank under idle conditions ; NONE 0-2 movea.w #$BFF,a2 move.w (word_FFFFA8BE).w,d4 cmpi.w #$2FF4,d4 bcc.s loc_3503A clr.l d0 move.w d4,d0 mulu.l #unk_8AE4A,d4:d0 divu.l #$22B07B,d4:d0 move.w d0,d4 bra.s loc_3503E ; --------------------------------------------------------------------------- loc_3503A: ; CODE XREF: sub_34B00+520j move.w #$BFF,d4 loc_3503E: ; CODE XREF: sub_34B00+538j tblu.w (FUEL_SH_KV_PROPORTIONAL_TERM_IDLE_GAIN).l,d4 ; Gain factor applied to proportional term base for each bank under idle conditions ; NONE 0-2 bra.s loc_350BE ; --------------------------------------------------------------------------- loc_35048: ; CODE XREF: sub_34B00+4F8j tst.b (byte_FFFFA89D).w beq.s loc_3506A tst.b (byte_FFFF9C58).w beq.s loc_3505C movea.l #DI_EOS_KV_EOSD_PROP_TERM_NORM_BAS_RICH,a2 bra.s loc_35062 ; --------------------------------------------------------------------------- loc_3505C: ; CODE XREF: sub_34B00+552j movea.l #$EC80,a2 loc_35062: ; CODE XREF: sub_34B00+55Aj movea.l #$ECAC,a0 bra.s loc_35084 ; --------------------------------------------------------------------------- loc_3506A: ; CODE XREF: sub_34B00+54Cj tst.b (byte_FFFF9C58).w beq.s loc_35078 movea.l #DI_EOS_KV_EOSD_PROP_TERM_NORM_BAS_LEAN,a2 bra.s loc_3507E ; --------------------------------------------------------------------------- loc_35078: ; CODE XREF: sub_34B00+56Ej movea.l #$EC6E,a2 loc_3507E: ; CODE XREF: sub_34B00+576j movea.l #$EC92,a0 loc_35084: ; CODE XREF: sub_34B00+568j move.w (word_FFFFA892).w,d3 lsr.w #3,d3 tblu.w (a2),d3 movea.w #$BFF,a2 clr.b d4 cmpi.w #$2FF4,(word_FFFFA8BE).w bcc.s loc_350B6 clr.l d0 move.w (word_FFFFA8BE).w,d0 mulu.l #unk_8AE4A,d4:d0 divu.l #$22B07B,d4:d0 move.w d0,d4 bra.s loc_350BA ; --------------------------------------------------------------------------- loc_350B6: ; CODE XREF: sub_34B00+59Aj move.w #$BFF,d4 loc_350BA: ; CODE XREF: sub_34B00+5B4j tblu.w (a0),d4 loc_350BE: ; CODE XREF: sub_34B00+546j mulu.w d4,d3 lsr.l #8,d3 lsr.l #3,d3 cmpi.w #$1000,d3 bls.s loc_350CE move.w #$1000,d3 loc_350CE: ; CODE XREF: sub_34B00+5C8j cmp.b d5,d7 bne.s loc_350FC muls.w (FUEL_SH_KE_PROPORTIONAL_TERM_AIRFUEL_GAI).l,d3 ; Gain applied to proportional term when in Airfuel_Closedloop. ; NONE 0-2 bpl.s loc_350E0 addi.l #$7FF,d3 loc_350E0: ; CODE XREF: sub_34B00+5D8j asr.l #8,d3 asr.l #3,d3 cmpi.w #$1000,d3 bgt.s loc_350F2 cmpi.w #$F000,d3 blt.s loc_350F8 bra.s loc_350FC ; --------------------------------------------------------------------------- loc_350F2: ; CODE XREF: sub_34B00+5E8j move.w #$1000,d3 bra.s loc_350FC ; --------------------------------------------------------------------------- loc_350F8: ; CODE XREF: sub_34B00+5EEj move.w #$F000,d3 loc_350FC: ; CODE XREF: sub_34B00+5D0j ; sub_34B00+5F0j ... move.b (byte_FFFFA89D).w,d0 beq.s loc_35104 neg.w d3 loc_35104: ; CODE XREF: sub_34B00+600j move.w d3,var_A(a6) movea.w #0,a3 move.l a3,var_1C(a6) move.l a3,var_18(a6) move.b (byte_FFFFAB24).w,d4 beq.s loc_35126 movea.w (word_FFFFAB38).w,a2 move.w a2,(word_FFFFA8B8).w bra.w loc_351D4 ; --------------------------------------------------------------------------- loc_35126: ; CODE XREF: sub_34B00+618j btst #2,(byte_FFFFA068).w beq.s loc_35138 move.w (word_FFFFA070).w,(word_FFFFA8B8).w bra.w loc_351D4 ; --------------------------------------------------------------------------- loc_35138: ; CODE XREF: sub_34B00+62Cj tst.b d1 beq.s loc_35158 tst.b (byte_FFFFA8C0).w beq.s loc_35158 movea.l #$EB80,a0 move.l a0,var_1C(a6) movea.l #$EBAC,a1 loc_35152: ; CODE XREF: sub_34B00+672j move.l a1,var_18(a6) bra.s loc_35174 ; --------------------------------------------------------------------------- loc_35158: ; CODE XREF: sub_34B00+63Aj ; sub_34B00+640j tst.b d1 bne.s loc_35174 tst.b (byte_FFFFA8C0).w bne.s loc_35174 movea.l #$EB6E,a0 move.l a0,var_1C(a6) movea.l #$EB92,a1 bra.s loc_35152 ; --------------------------------------------------------------------------- loc_35174: ; CODE XREF: sub_34B00+656j ; sub_34B00+65Aj ... move.l var_1C(a6),d4 beq.s loc_351D4 move.l var_18(a6),d5 beq.s loc_351D4 movea.l d4,a0 move.w (word_FFFFA892).w,d3 lsr.w #3,d3 tblu.w (a0),d3 movea.l var_18(a6),a0 movea.w #$BFF,a2 clr.b d4 move.w #$2FF4,d5 cmp.w (word_FFFFA8BC).w,d5 bls.s loc_351BA clr.l d5 move.w (word_FFFFA8BC).w,d5 mulu.l #unk_8AE4A,d4:d5 divu.l #$22B07B,d4:d5 move.w d5,d4 bra.s loc_351BE ; --------------------------------------------------------------------------- loc_351BA: ; CODE XREF: sub_34B00+69Ej move.w #$BFF,d4 loc_351BE: ; CODE XREF: sub_34B00+6B8j tblu.w (a0),d4 mulu.w d4,d3 move.w #$800,d4 divu.w d4,d3 bvc.s loc_351D0 move.w #$FFFF,d3 loc_351D0: ; CODE XREF: sub_34B00+6CAj move.w d3,(word_FFFFA8B8).w loc_351D4: ; CODE XREF: sub_34B00+622j ; sub_34B00+634j ... move.l a3,var_1C(a6) tst.b (byte_FFFFA89A).w beq.s loc_351E4 clr.w (word_FFFFA8B4).w bra.s loc_351F4 ; --------------------------------------------------------------------------- loc_351E4: ; CODE XREF: sub_34B00+6DCj move.w (word_FFFFA8B4).w,d3 addq.w #2,d3 bcc.s loc_351F0 move.w #$FFFF,d3 loc_351F0: ; CODE XREF: sub_34B00+6EAj move.w d3,(word_FFFFA8B4).w loc_351F4: ; CODE XREF: sub_34B00+6E2j move.w (word_FFFFA8B4).w,d3 cmp.w (word_FFFFA8B8).w,d3 bcs.s loc_3520C cmp.b (byte_FFFFA8C0).w,d1 bne.s loc_3520C moveq #1,d3 clr.w (word_FFFFA8B4).w bra.s loc_3520E ; --------------------------------------------------------------------------- loc_3520C: ; CODE XREF: sub_34B00+6FCj ; sub_34B00+702j clr.b d3 loc_3520E: ; CODE XREF: sub_34B00+70Aj tst.b d3 beq.w loc_352D0 tst.b d2 beq.s loc_35220 move.w (FUEL_SH_KE_INTEGRAL_TERM_ADJUSTMENT_IDLE).l,d6 ; Magnitude of adjustments to integral term under idle conditions. ; NONE 0-2 bra.s loc_35260 ; --------------------------------------------------------------------------- loc_35220: ; CODE XREF: sub_34B00+716j tst.b d1 beq.s loc_35236 tst.b (byte_FFFFA8C0).w beq.s loc_35236 movea.l #$EBE0,a0 loc_35230: ; CODE XREF: sub_34B00+746j move.l a0,var_1C(a6) bra.s loc_35248 ; --------------------------------------------------------------------------- loc_35236: ; CODE XREF: sub_34B00+722j ; sub_34B00+728j tst.b d1 bne.s loc_35248 tst.b (byte_FFFFA8C0).w bne.s loc_35248 movea.l #$EBCE,a0 bra.s loc_35230 ; --------------------------------------------------------------------------- loc_35248: ; CODE XREF: sub_34B00+734j ; sub_34B00+738j ... move.l var_1C(a6),d4 beq.s loc_35260 movea.l d4,a0 movea.w #$8FF,a2 clr.b d3 move.w (word_FFFFA892).w,d6 lsr.w #3,d6 tblu.w (a0),d6 loc_35260: ; CODE XREF: sub_34B00+71Ej ; sub_34B00+74Cj tst.b d1 beq.s loc_352A4 tst.b (byte_FFFFA8C0).w beq.s loc_352A4 tst.b (byte_FFFFB0DE).w bne.s loc_352D0 move.w (word_FFFFA89E).w,d3 sub.w d6,d3 bcc.s loc_3527A clr.w d3 loc_3527A: ; CODE XREF: sub_34B00+776j move.w d3,var_8(a6) move.b var_12(a6),d5 moveq #1,d6 cmp.b d5,d6 bne.s loc_35290 move.w (FUEL_SH_KE_INTEGRAL_TERM_MINIMUM).l,d4 ; The minimum integrator factor value allowed in closed loopmode. ; NONE 0-2 bra.s loc_35296 ; --------------------------------------------------------------------------- loc_35290: ; CODE XREF: sub_34B00+786j move.w (FUEL_SH_KE_INTEGRAL_TERM_MINIMUM_AF_CL).l,d4 ; The minimum integrator factor value allowed in Air FuelClosed Loop mode. ; NONE 0-2 loc_35296: ; CODE XREF: sub_34B00+78Ej cmp.w d4,d3 bcc.s loc_3529E move.w d4,var_8(a6) loc_3529E: ; CODE XREF: sub_34B00+798j clr.w (word_FFFFA8B4).w bra.s loc_352D6 ; --------------------------------------------------------------------------- loc_352A4: ; CODE XREF: sub_34B00+762j ; sub_34B00+768j tst.b d1 bne.s loc_352D0 tst.b (byte_FFFFA8C0).w bne.s loc_352D0 add.w (word_FFFFA89E).w,d6 cmpi.w #$1000,d6 bls.s loc_352BC move.w #$1000,d6 loc_352BC: ; CODE XREF: sub_34B00+7B6j move.w d6,var_8(a6) move.w (FUEL_SH_KE_INTEGRAL_TERM_MAXIMUM).l,d3 ; The maximum allowed integrator value. ; NONE 0-2 cmp.w d3,d6 bls.s loc_352D6 move.w d3,var_8(a6) bra.s loc_352D6 ; --------------------------------------------------------------------------- loc_352D0: ; CODE XREF: sub_34B00+710j ; sub_34B00+76Ej ... move.w (word_FFFFA89E).w,var_8(a6) loc_352D6: ; CODE XREF: sub_34B00+7A2j ; sub_34B00+7C8j ... move.l a3,var_1C(a6) move.l a3,var_18(a6) move.b (byte_FFFFAB24).w,d4 beq.s loc_352F0 movea.w (word_FFFFAB38).w,a2 move.w a2,(word_FFFFA8BA).w bra.w loc_3539C ; --------------------------------------------------------------------------- loc_352F0: ; CODE XREF: sub_34B00+7E2j btst #2,(byte_FFFFA068).w beq.s loc_35302 move.w (word_FFFFA070).w,(word_FFFFA8BA).w bra.w loc_3539C ; --------------------------------------------------------------------------- loc_35302: ; CODE XREF: sub_34B00+7F6j tst.b d0 beq.s loc_35322 tst.b (byte_FFFFA8C1).w beq.s loc_35322 movea.l #$EB80,a0 move.l a0,var_1C(a6) movea.l #$EBAC,a1 loc_3531C: ; CODE XREF: sub_34B00+83Cj move.l a1,var_18(a6) bra.s loc_3533E ; --------------------------------------------------------------------------- loc_35322: ; CODE XREF: sub_34B00+804j ; sub_34B00+80Aj tst.b d0 bne.s loc_3533E tst.b (byte_FFFFA8C1).w bne.s loc_3533E movea.l #$EB6E,a0 move.l a0,var_1C(a6) movea.l #$EB92,a1 bra.s loc_3531C ; --------------------------------------------------------------------------- loc_3533E: ; CODE XREF: sub_34B00+820j ; sub_34B00+824j ... move.l var_1C(a6),d5 beq.s loc_3539C move.l var_18(a6),d6 beq.s loc_3539C movea.l d5,a0 move.w (word_FFFFA892).w,d3 lsr.w #3,d3 tblu.w (a0),d3 movea.l var_18(a6),a0 movea.w #$BFF,a2 clr.b d4 cmpi.w #$2FF4,(word_FFFFA8BE).w bcc.s loc_35382 clr.l d5 move.w (word_FFFFA8BE).w,d5 mulu.l #unk_8AE4A,d4:d5 divu.l #$22B07B,d4:d5 move.w d5,d4 bra.s loc_35386 ; --------------------------------------------------------------------------- loc_35382: ; CODE XREF: sub_34B00+866j move.w #$BFF,d4 loc_35386: ; CODE XREF: sub_34B00+880j tblu.w (a0),d4 mulu.w d4,d3 move.w #$800,d4 divu.w d4,d3 bvc.s loc_35398 move.w #$FFFF,d3 loc_35398: ; CODE XREF: sub_34B00+892j move.w d3,(word_FFFFA8BA).w loc_3539C: ; CODE XREF: sub_34B00+7ECj ; sub_34B00+7FEj ... move.l a3,var_1C(a6) tst.b (byte_FFFFA89B).w beq.s loc_353AC clr.w (word_FFFFA8B6).w bra.s loc_353BC ; --------------------------------------------------------------------------- loc_353AC: ; CODE XREF: sub_34B00+8A4j move.w (word_FFFFA8B6).w,d3 addq.w #2,d3 bcc.s loc_353B8 move.w #$FFFF,d3 loc_353B8: ; CODE XREF: sub_34B00+8B2j move.w d3,(word_FFFFA8B6).w loc_353BC: ; CODE XREF: sub_34B00+8AAj move.w (word_FFFFA8B6).w,d3 cmp.w (word_FFFFA8BA).w,d3 bcs.s loc_353D4 cmp.b (byte_FFFFA8C1).w,d0 bne.s loc_353D4 moveq #1,d3 clr.w (word_FFFFA8B6).w bra.s loc_353D6 ; --------------------------------------------------------------------------- loc_353D4: ; CODE XREF: sub_34B00+8C4j ; sub_34B00+8CAj clr.b d3 loc_353D6: ; CODE XREF: sub_34B00+8D2j tst.b d3 beq.w loc_354A2 tst.b d2 beq.s loc_353EC movea.w (FUEL_SH_KE_INTEGRAL_TERM_ADJUSTMENT_IDLE).l,a2 ; Magnitude of adjustments to integral term under idle conditions. ; NONE 0-2 move.w a2,var_14(a6) bra.s loc_3542E ; --------------------------------------------------------------------------- loc_353EC: ; CODE XREF: sub_34B00+8DEj tst.b d0 beq.s loc_35402 tst.b (byte_FFFFA8C1).w beq.s loc_35402 movea.l #$EBE0,a0 loc_353FC: ; CODE XREF: sub_34B00+912j move.l a0,var_1C(a6) bra.s loc_35414 ; --------------------------------------------------------------------------- loc_35402: ; CODE XREF: sub_34B00+8EEj ; sub_34B00+8F4j tst.b d0 bne.s loc_35414 tst.b (byte_FFFFA8C1).w bne.s loc_35414 movea.l #$EBCE,a0 bra.s loc_353FC ; --------------------------------------------------------------------------- loc_35414: ; CODE XREF: sub_34B00+900j ; sub_34B00+904j ... move.l var_1C(a6),d4 beq.s loc_3542E movea.l d4,a0 movea.w #$8FF,a2 move.w (word_FFFFA892).w,d7 lsr.w #3,d7 tblu.w (a0),d7 move.w d7,var_14(a6) loc_3542E: ; CODE XREF: sub_34B00+8EAj ; sub_34B00+918j tst.b d0 beq.s loc_35472 tst.b (byte_FFFFA8C1).w beq.s loc_35472 tst.b (byte_FFFFB0DF).w bne.s loc_354A2 move.w (word_FFFFA8A0).w,d3 sub.w var_14(a6),d3 bcc.s loc_3544A clr.w d3 loc_3544A: ; CODE XREF: sub_34B00+946j move.w d3,var_6(a6) moveq #1,d5 cmp.b var_12(a6),d5 bne.s loc_3545E move.w (FUEL_SH_KE_INTEGRAL_TERM_MINIMUM).l,d4 ; The minimum integrator factor value allowed in closed loopmode. ; NONE 0-2 bra.s loc_35464 ; --------------------------------------------------------------------------- loc_3545E: ; CODE XREF: sub_34B00+954j move.w (FUEL_SH_KE_INTEGRAL_TERM_MINIMUM_AF_CL).l,d4 ; The minimum integrator factor value allowed in Air FuelClosed Loop mode. ; NONE 0-2 loc_35464: ; CODE XREF: sub_34B00+95Cj cmp.w d4,d3 bcc.s loc_3546C move.w d4,var_6(a6) loc_3546C: ; CODE XREF: sub_34B00+966j clr.w (word_FFFFA8B6).w bra.s loc_354A8 ; --------------------------------------------------------------------------- loc_35472: ; CODE XREF: sub_34B00+930j ; sub_34B00+936j tst.b d0 bne.s loc_354A2 tst.b (byte_FFFFA8C1).w bne.s loc_354A2 move.w var_14(a6),d6 add.w (word_FFFFA8A0).w,d6 cmpi.w #$1000,d6 bls.s loc_3548E move.w #$1000,d6 loc_3548E: ; CODE XREF: sub_34B00+988j move.w d6,var_6(a6) move.w (FUEL_SH_KE_INTEGRAL_TERM_MAXIMUM).l,d3 ; The maximum allowed integrator value. ; NONE 0-2 cmp.w d3,d6 bls.s loc_354A8 move.w d3,var_6(a6) bra.s loc_354A8 ; --------------------------------------------------------------------------- loc_354A2: ; CODE XREF: sub_34B00+8D8j ; sub_34B00+93Cj ... move.w (word_FFFFA8A0).w,var_6(a6) loc_354A8: ; CODE XREF: sub_34B00+970j ; sub_34B00+99Aj ... move.w (word_FFFFB292).w,d7 cmp.w (word_FFFFA8B2).w,d7 scs d7 neg.b d7 move.b d7,var_10(a6) move.w (CoolantTemperatureOrDefault).w,d0 cmp.w (FUEL_SH_KE_CL_LOW_RPM_RESET_COOLANT_TEMP).l,d0 ; Coolant must be warmer than this to enable or trigger 'Low RPM Closed Loop Reset'. ; Degrees_C bge.s loc_354CE clr.b var_11(a6) loc_354C8: ; CODE XREF: sub_34B00+9FEj clr.b (byte_FFFFA8C2).w bra.s loc_35504 ; --------------------------------------------------------------------------- loc_354CE: ; CODE XREF: sub_34B00+9C2j move.w (EngineRpmError).w,d3 ext.l d3 clr.l d0 move.w (FUEL_SH_KE_CL_LOW_RPM_RESET_ENABLE_OFFSE).l,d0 ; Engine speed must exceed 'desired idle speed' BY more than this to enable 'Low RPM Closed Loop Reset'. ; RPM cmp.l d3,d0 bge.s loc_354EC clr.b var_11(a6) move.b #1,(byte_FFFFA8C2).w bra.s loc_35504 ; --------------------------------------------------------------------------- loc_354EC: ; CODE XREF: sub_34B00+9DEj clr.l d0 move.w (FUEL_SH_KE_CL_LOW_RPM_RESET_TRIGGER_OFFS).l,d0 cmp.l d3,d0 ble.s loc_35500 move.b (byte_FFFFA8C2).w,var_11(a6) bra.s loc_354C8 ; --------------------------------------------------------------------------- loc_35500: ; CODE XREF: sub_34B00+9F6j clr.b var_11(a6) loc_35504: ; CODE XREF: sub_34B00+9CCj ; sub_34B00+9EAj move.w (FUEL_SH_KE_CL_LOW_RPM_RESET_INTEGRAL_TER).l,d0 move.w var_8(a6),d1 cmp.w d0,d1 scs d6 neg.b d6 move.b var_11(a6),d3 and.b d3,d6 move.b d6,var_E(a6) move.w var_6(a6),d6 cmp.w d0,d6 scs d2 neg.b d2 and.b d3,d2 move.b d2,var_D(a6) move.b (byte_FFFFA8C3).w,d3 move.w (word_FFFFAB66).w,d5 cmp.w (FUEL_SH_KE_TPS_LAUNCH_TPS_THRESH).l,d5 ; Threshold for determining closed TPS for launch integrator reset. ; Percent scs d5 neg.b d5 move.b d5,(byte_FFFFA8C3).w clr.b d4 tst.b d3 beq.s loc_3555C tst.b d5 bne.s loc_3555C move.w (word_FFFFAEBE).w,d0 cmp.w (FUEL_SH_KE_TPS_LAUNCH_MPH_THRESH).l,d0 ; Vehicle speed below which a launch condition will be allowed. ; MPH bcc.s loc_3555C addq.b #1,d4 loc_3555C: ; CODE XREF: sub_34B00+A48j ; sub_34B00+A4Cj ... move.b d4,(byte_FFFFA8C4).w tst.b var_12(a6) beq.s loc_355B8 tst.b (byte_FFFFA93B).w bne.s loc_355B8 tst.b var_E(a6) bne.s loc_355B8 tst.b (byte_FFFF9942).w bne.s loc_355B8 tst.b d7 bne.s loc_355B8 tst.b (byte_FFFFA1F6).w bne.s loc_355B8 tst.b (byte_FFFFACAA).w bne.s loc_355B8 tst.b (byte_FFFFA1F4).w bne.s loc_355B8 tst.b (byte_FFFFA45A).w bne.s loc_355B8 btst #7,(byte_FFFFA7E0).w bne.s loc_355B8 btst #4,(byte_FFFFA7DE).w bne.s loc_355B8 tst.b (byte_FFFFAB24).w beq.s loc_355B2 btst #1,(byte_FFFFAA3E).w beq.s loc_355B8 loc_355B2: ; CODE XREF: sub_34B00+AA8j tst.b (byte_FFFFA1F5).w beq.s loc_355CA loc_355B8: ; CODE XREF: sub_34B00+A64j ; sub_34B00+A6Aj ... move.b #1,(byte_FFFFA89A).w clr.w (word_FFFFA8A2).w move.w #$800,(word_FFFFA89E).w bra.s loc_35626 ; --------------------------------------------------------------------------- loc_355CA: ; CODE XREF: sub_34B00+AB6j tst.b (byte_FFFFB2EE).w bne.s loc_355DE cmpi.b #5,(byte_FFFF9954).w beq.s loc_355DE tst.b (byte_FFFFA200).w beq.s loc_355E4 loc_355DE: ; CODE XREF: sub_34B00+ACEj ; sub_34B00+AD6j clr.w (word_FFFFA8A2).w bra.s loc_35622 ; --------------------------------------------------------------------------- loc_355E4: ; CODE XREF: sub_34B00+ADCj tst.b (byte_FFFFA8C5).w beq.s loc_35604 btst #2,(byte_FFFFA068).w bne.s loc_35604 clr.w (word_FFFFA8A2).w clr.w d3 move.b (word_FFFFA072).w,d3 asl.w #4,d3 move.w d3,(word_FFFFA89E).w bra.s loc_35622 ; --------------------------------------------------------------------------- loc_35604: ; CODE XREF: sub_34B00+AE8j ; sub_34B00+AF0j move.w var_C(a6),(word_FFFFA8A2).w tst.b d4 beq.s loc_3561E cmp.w (FUEL_SH_KE_TPS_LAUNCH_INT_THRESH).l,d1 ; Fuel integrator value below which integrators can reset on a launch condition. ; Unitless bcc.s loc_3561E move.w #$800,(word_FFFFA89E).w bra.s loc_35622 ; --------------------------------------------------------------------------- loc_3561E: ; CODE XREF: sub_34B00+B0Cj ; sub_34B00+B14j move.w d1,(word_FFFFA89E).w loc_35622: ; CODE XREF: sub_34B00+AE2j ; sub_34B00+B02j ... clr.b (byte_FFFFA89A).w loc_35626: ; CODE XREF: sub_34B00+AC8j btst #2,(byte_FFFFA068).w sne d0 neg.b d0 move.b d0,(byte_FFFFA8C5).w clr.b (byte_FFFF9942).w move.w (word_FFFFA89E).w,d3 add.w (word_FFFFA8A2).w,d3 cmpi.w #$7FFF,d3 bhi.s loc_35652 cmpi.w #$1000,d3 bls.s loc_35654 move.w #$1000,d3 bra.s loc_35654 ; --------------------------------------------------------------------------- loc_35652: ; CODE XREF: sub_34B00+B44j clr.w d3 loc_35654: ; CODE XREF: sub_34B00+B4Aj ; sub_34B00+B50j move.w d3,(word_FFFFA8A6).w tst.b (byte_FFFFB2EF).w beq.s loc_356AE tst.b (byte_FFFFA93B).w bne.s loc_356AE tst.b d2 bne.s loc_356AE tst.b (byte_FFFF9943).w bne.s loc_356AE tst.b d7 bne.s loc_356AE tst.b (byte_FFFFA1F6).w bne.s loc_356AE tst.b (byte_FFFFACAA).w bne.s loc_356AE tst.b (byte_FFFFA1F4).w bne.s loc_356AE tst.b (byte_FFFFA45A).w bne.s loc_356AE btst #7,(byte_FFFFA7E0).w bne.s loc_356AE btst #4,(byte_FFFFA7DE).w bne.s loc_356AE tst.b (byte_FFFFAB24).w beq.s loc_356A8 btst #1,(byte_FFFFAA3E).w beq.s loc_356AE loc_356A8: ; CODE XREF: sub_34B00+B9Ej tst.b (byte_FFFFA1F5).w beq.s loc_356C0 loc_356AE: ; CODE XREF: sub_34B00+B5Cj ; sub_34B00+B62j ... move.b #1,(byte_FFFFA89B).w clr.w (word_FFFFA8A4).w move.w #$800,(word_FFFFA8A0).w bra.s loc_3571A ; --------------------------------------------------------------------------- loc_356C0: ; CODE XREF: sub_34B00+BACj tst.b (byte_FFFFB2EE).w bne.s loc_356D4 cmpi.b #5,(byte_FFFF9954).w beq.s loc_356D4 tst.b (byte_FFFFA200).w beq.s loc_356DA loc_356D4: ; CODE XREF: sub_34B00+BC4j ; sub_34B00+BCCj clr.w (word_FFFFA8A4).w bra.s loc_35716 ; --------------------------------------------------------------------------- loc_356DA: ; CODE XREF: sub_34B00+BD2j tst.b d0 beq.s loc_356F8 btst #2,(byte_FFFFA068).w bne.s loc_356F8 clr.w (word_FFFFA8A4).w clr.w d3 move.b (word_FFFFA072+1).w,d3 asl.w #4,d3 move.w d3,(word_FFFFA8A0).w bra.s loc_35716 ; --------------------------------------------------------------------------- loc_356F8: ; CODE XREF: sub_34B00+BDCj ; sub_34B00+BE4j move.w var_A(a6),(word_FFFFA8A4).w tst.b d4 beq.s loc_35712 cmp.w (FUEL_SH_KE_TPS_LAUNCH_INT_THRESH).l,d6 ; Fuel integrator value below which integrators can reset on a launch condition. ; Unitless bcc.s loc_35712 move.w #$800,(word_FFFFA8A0).w bra.s loc_35716 ; --------------------------------------------------------------------------- loc_35712: ; CODE XREF: sub_34B00+C00j ; sub_34B00+C08j move.w d6,(word_FFFFA8A0).w loc_35716: ; CODE XREF: sub_34B00+BD8j ; sub_34B00+BF6j ... clr.b (byte_FFFFA89B).w loc_3571A: ; CODE XREF: sub_34B00+BBEj btst #2,(byte_FFFFA068).w sne d3 neg.b d3 move.b d3,(byte_FFFFA8C5).w clr.b (byte_FFFF9943).w move.w (word_FFFFA8A0).w,d3 add.w (word_FFFFA8A4).w,d3 cmpi.w #$7FFF,d3 bhi.s loc_35746 cmpi.w #$1000,d3 bls.s loc_35748 move.w #$1000,d3 bra.s loc_35748 ; --------------------------------------------------------------------------- loc_35746: ; CODE XREF: sub_34B00+C38j clr.w d3 loc_35748: ; CODE XREF: sub_34B00+C3Ej ; sub_34B00+C44j move.w d3,(word_FFFFA8A8).w btst #4,(byte_FFFFA7DE).w beq.s loc_3575A move.b #1,(byte_FFFFA894).w loc_3575A: ; CODE XREF: sub_34B00+C52j movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_34B00 ; =============== S U B R O U T I N E ======================================= sub_35762: ; CODE XREF: DoLoopG:loc_2B2C2p jsr sub_3576A rts ; End of function sub_35762 ; =============== S U B R O U T I N E ======================================= sub_3576A: ; CODE XREF: OS1:loc_34A00p sub_35762p move.w (word_FFFFAEF0).w,d3 tblu.w (FUEL_SH_KV_CL_MINIMUM_MANIFOLD_PRESSURE).l,d3 move.w d3,(word_FFFFA8B2).w rts ; End of function sub_3576A ; =============== S U B R O U T I N E ======================================= sub_3577C: ; CODE XREF: sub_2F712+52p clr.b (byte_FFFFB2EF).w andi.w #$FF,d0 movea.l off_8A2EC(d0.w*4),a2 jmp (a2) ; End of function sub_3577C ; --------------------------------------------------------------------------- loc_3578E: ; DATA XREF: OS4:off_8A2ECo ; OS4:0008A2F0o bra.s loc_357C0 ; --------------------------------------------------------------------------- loc_35790: ; DATA XREF: OS4:0008A2F4o clr.b (byte_FFFFB2F8).w clr.b (byte_FFFFB2F0).w clr.b (byte_FFFFB2F1).w bra.s loc_357B6 ; --------------------------------------------------------------------------- loc_3579E: ; DATA XREF: OS4:0008A2F8o bra.s loc_357A2 ; --------------------------------------------------------------------------- loc_357A0: ; DATA XREF: OS4:0008A2FCo bra.s locret_357C8 ; --------------------------------------------------------------------------- loc_357A2: ; CODE XREF: OS1:loc_3579Ej ; DATA XREF: OS4:0008A304o clr.b (byte_FFFFB2F8).w clr.b (byte_FFFFB2F0).w clr.b (byte_FFFFB2F1).w clr.b (byte_FFFFB2FA).w clr.b (byte_FFFFB2FB).w loc_357B6: ; CODE XREF: OS1:0003579Cj clr.w (word_FFFFB2F4).w clr.w (word_FFFFB2F6).w loc_357BE: ; DATA XREF: OS4:0008A308o nop loc_357C0: ; CODE XREF: OS1:loc_3578Ej ; DATA XREF: OS4:0008A30Co ... clr.b (byte_FFFFB2F2).w clr.b (byte_FFFFB2F3).w locret_357C8: ; CODE XREF: OS1:loc_357A0j ; DATA XREF: OS4:0008A300o rts ; =============== S U B R O U T I N E ======================================= sub_357CA: ; CODE XREF: DoLoopC+B8p btst #1,(byte_FFFFA35A).w beq.s loc_35806 tst.b (byte_FFFFA1F4).w bne.s loc_35806 cmpi.b #1,(byte_FFFFB2EF).w bne.s loc_35806 tst.b (byte_FFFFA1F6).w bne.s loc_35806 tst.b (byte_FFFFA93B).w bne.s loc_35806 tst.b (byte_FFFFACAA).w bne.s loc_35806 tst.b (byte_FFFF9F52).w beq.s loc_35806 tst.b (byte_FFFF9F53).w beq.s loc_35806 move.b #1,(byte_FFFFB2EE).w bra.s locret_3580A ; --------------------------------------------------------------------------- loc_35806: ; CODE XREF: sub_357CA+6j sub_357CA+Cj ... clr.b (byte_FFFFB2EE).w locret_3580A: ; CODE XREF: sub_357CA+3Aj rts ; End of function sub_357CA ; =============== S U B R O U T I N E ======================================= sub_3580C: ; CODE XREF: DoLoopC+B2p move.l d0,-(sp) jsr sub_3593C clr.b d4 btst #6,(byte_FFFF88EA).w bne.s loc_35892 btst #6,(byte_FFFF88EC).w bne.s loc_35892 btst #6,(byte_FFFF88F0).w bne.s loc_35892 btst #6,(byte_FFFF8900).w bne.s loc_35892 btst #6,(byte_FFFF8902).w bne.s loc_35892 btst #6,(byte_FFFF8906).w bne.s loc_35892 btst #6,(byte_FFFF8A22).w beq.s loc_3585A move.b (byte_FFFF8ACC).w,d3 lsr.b #4,d3 moveq #3,d0 and.b d0,d3 bne.s loc_35892 loc_3585A: ; CODE XREF: sub_3580C+40j btst #6,(byte_FFFF8A2A).w beq.s loc_3586E move.b (byte_FFFF8ACC).w,d3 lsr.b #4,d3 moveq #3,d0 and.b d0,d3 bne.s loc_35892 loc_3586E: ; CODE XREF: sub_3580C+54j btst #1,(byte_FFFF8930).w bne.s loc_35892 tst.b (FUEL_ST_KE_OPEN_LOOP_FOR_MISFIRE).l ; If this calibration is set TRUE, any Misfire faults will force Afterstart mode and reset LTM Fuel Cells. ; TRUE | FALSE beq.s loc_3589A move.b (byte_FFFF8ACC).w,d3 lsr.b #4,d3 andi.b #3,d3 beq.s loc_3589A btst #1,(byte_FFFF893A).w beq.s loc_3589A loc_35892: ; CODE XREF: sub_3580C+10j ; sub_3580C+18j ... move.b #1,(byte_FFFFB2FC).w bra.s loc_3589E ; --------------------------------------------------------------------------- loc_3589A: ; CODE XREF: sub_3580C+70j ; sub_3580C+7Cj ... clr.b (byte_FFFFB2FC).w loc_3589E: ; CODE XREF: sub_3580C+8Cj btst #1,(word_FFFFA7DC).w beq.s loc_358B2 btst #5,(word_FFFFA7E2).w beq.s loc_358B2 loc_358AE: ; CODE XREF: sub_3580C+FEj moveq #1,d4 bra.s loc_35914 ; --------------------------------------------------------------------------- loc_358B2: ; CODE XREF: sub_3580C+98j ; sub_3580C+A0j tst.b (byte_FFFFABDA).w bne.s loc_35914 tst.b (byte_FFFFA59F).w bne.s loc_35914 tst.b (byte_FFFFB2D0).w bne.s loc_35914 tst.b (byte_FFFFB352).w bne.s loc_35914 tst.b (byte_FFFFB2FC).w bne.s loc_35914 btst #1,(word_FFFFA7DC).w beq.s loc_358E0 btst #5,(word_FFFFA7E2).w beq.s loc_35914 loc_358E0: ; CODE XREF: sub_3580C+CAj tst.b (byte_FFFFB2F8).w beq.s loc_35914 tst.b (byte_FFFF81B9).w beq.s loc_358F0 loc_358EC: ; CODE XREF: sub_3580C+106j moveq #2,d4 bra.s loc_35914 ; --------------------------------------------------------------------------- loc_358F0: ; CODE XREF: sub_3580C+DEj move.w (word_FFFFB3E8).w,d3 movea.w #$12FE,a2 move.l d4,d5 addi.w #$400,d3 tbls.w (FUEL_ST_KV_CLOSED_LOOP_COOLANT_TEMPERATU).l,d3 ; Defines the coolant temperature above which closed loop fuel is allowed. ; Degrees_C cmp.w (CoolantTemperatureOrDefault).w,d3 ble.s loc_358AE tst.b (FUEL_ST_KE_USE_AIRFUEL_CLOSED_LOOP_STATE).l bne.s loc_358EC loc_35914: ; CODE XREF: sub_3580C+A4j ; sub_3580C+AAj ... move.b d4,(byte_FFFFB2EF).w move.l (sp)+,d0 rts ; End of function sub_3580C ; =============== S U B R O U T I N E ======================================= sub_3591C: ; CODE XREF: sub_32F54:loc_33412p ; sub_32F54:loc_3348Ap clr.b d0 move.b (byte_FFFF8ACC).w,d3 lsr.b #4,d3 andi.b #3,d3 beq.s loc_35934 btst #6,(byte_FFFF8253).w beq.s loc_35934 addq.b #1,d0 loc_35934: ; CODE XREF: sub_3591C+Cj ; sub_3591C+14j and.b (FUEL_ST_KE_OPEN_LOOP_FOR_MISFIRE).l,d0 ; If this calibration is set TRUE, any Misfire faults will force Afterstart mode and reset LTM Fuel Cells. ; TRUE | FALSE rts ; End of function sub_3591C ; =============== S U B R O U T I N E ======================================= sub_3593C: ; CODE XREF: sub_3580C+2p move.w (FUEL_ST_KE_COLD_CLOSED_LOOP_TEMPERATURE).l,d4 ; Startup coolant temperature below which the cold wait timer, KE_Cold_Wait_Time, is used. ; Degrees_C move.w (word_FFFFADB6).w,d3 cmp.w d4,d3 bgt.s loc_35952 move.w (FUEL_ST_KE_COLD_WAIT_TIME).l,d3 ; Engine run time before closed loop is allowed when startup coolant is below KE_Cold_Closed_Loop_Temperature. ; Seconds bra.s loc_3596C ; --------------------------------------------------------------------------- loc_35952: ; CODE XREF: sub_3593C+Cj cmp.w d4,d3 ble.s loc_35966 cmp.w (FUEL_ST_KE_HOT_CLOSED_LOOP_TEMPERATURE).l,d3 ; Startup coolant temperature above which the hot wait timer, KE_Hot_Wait_Time, is used. ; Degrees_C bgt.s loc_35966 move.w (FUEL_ST_KE_WARM_WAIT_TIME).l,d3 bra.s loc_3596C ; --------------------------------------------------------------------------- loc_35966: ; CODE XREF: sub_3593C+18j ; sub_3593C+20j move.w (FUEL_ST_KE_HOT_WAIT_TIME).l,d3 ; Engine run time before closed loop is allowed when startup coolant is above KE_Hot_Closed_Loop_Temperature. ; Seconds loc_3596C: ; CODE XREF: sub_3593C+14j ; sub_3593C+28j andi.l #$FFFF,d3 cmp.l (EngineRunTime).w,d3 bhi.w loc_35A74 move.w (word_FFFF9F00).w,d3 tst.b (byte_FFFFB2F0).w beq.s loc_359BC cmp.w (FUEL_ST_KE_OXYGEN_LOWER_READY_VOLTAGE).l,d3 ; Lower voltage threshold in which the oxygen sensor voltage must fall below before indicating oxygen sensor ready. ; Millivolts bcs.s loc_359EA cmp.w (FUEL_ST_KE_OXYGEN_UPPER_READY_VOLTAGE).l,d3 ; Upper voltage threshold in which the oxygen sensor voltage must go above before indicating oxygen sensor ready. ; Millivolts bhi.s loc_359EA movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB2F4).w,d3 add.w $A(a2),d3 bcc.s loc_359A6 move.w #$FFFF,d3 loc_359A6: ; CODE XREF: sub_3593C+64j move.w d3,(word_FFFFB2F4).w cmp.w (FUEL_ST_KE_OXYGEN_NOT_READY_TIME).l,d3 bls.s loc_359EE clr.b (byte_FFFFB2F0).w clr.b (byte_FFFFB2FA).w bra.s loc_359EE ; --------------------------------------------------------------------------- loc_359BC: ; CODE XREF: sub_3593C+46j cmp.w (FUEL_ST_KE_OXYGEN_LOWER_READY_VOLTAGE).l,d3 ; Lower voltage threshold in which the oxygen sensor voltage must fall below before indicating oxygen sensor ready. ; Millivolts bcs.s loc_359CC cmp.w (FUEL_ST_KE_OXYGEN_UPPER_READY_VOLTAGE).l,d3 ; Upper voltage threshold in which the oxygen sensor voltage must go above before indicating oxygen sensor ready. ; Millivolts bls.s loc_359EE loc_359CC: ; CODE XREF: sub_3593C+86j move.b (byte_FFFFB2FA).w,d3 addq.b #1,d3 bcc.s loc_359D8 move.b #$FF,d3 loc_359D8: ; CODE XREF: sub_3593C+96j move.b d3,(byte_FFFFB2FA).w cmp.b (FUEL_ST_KE_O2_READY_COUNTER_THRESHOLD).l,d3 ; Number of O2 reads that must fall outside not ready window for the O2 sensor to be ready. ; Counter bcs.s loc_359EE move.b #1,(byte_FFFFB2F0).w loc_359EA: ; CODE XREF: sub_3593C+4Ej ; sub_3593C+56j clr.w (word_FFFFB2F4).w loc_359EE: ; CODE XREF: sub_3593C+74j ; sub_3593C+7Ej ... move.w (word_FFFF9F06).w,d3 tst.b (byte_FFFFB2F1).w beq.s loc_35A30 cmp.w (FUEL_ST_KE_OXYGEN_LOWER_READY_VOLTAGE).l,d3 ; Lower voltage threshold in which the oxygen sensor voltage must fall below before indicating oxygen sensor ready. ; Millivolts bcs.s loc_35A5E cmp.w (FUEL_ST_KE_OXYGEN_UPPER_READY_VOLTAGE).l,d3 ; Upper voltage threshold in which the oxygen sensor voltage must go above before indicating oxygen sensor ready. ; Millivolts bhi.s loc_35A5E movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB2F6).w,d3 add.w $A(a2),d3 bcc.s loc_35A1A move.w #$FFFF,d3 loc_35A1A: ; CODE XREF: sub_3593C+D8j move.w d3,(word_FFFFB2F6).w cmp.w (FUEL_ST_KE_OXYGEN_NOT_READY_TIME).l,d3 bls.s loc_35A62 clr.b (byte_FFFFB2F1).w clr.b (byte_FFFFB2FB).w bra.s loc_35A62 ; --------------------------------------------------------------------------- loc_35A30: ; CODE XREF: sub_3593C+BAj cmp.w (FUEL_ST_KE_OXYGEN_LOWER_READY_VOLTAGE).l,d3 ; Lower voltage threshold in which the oxygen sensor voltage must fall below before indicating oxygen sensor ready. ; Millivolts bcs.s loc_35A40 cmp.w (FUEL_ST_KE_OXYGEN_UPPER_READY_VOLTAGE).l,d3 ; Upper voltage threshold in which the oxygen sensor voltage must go above before indicating oxygen sensor ready. ; Millivolts bls.s loc_35A62 loc_35A40: ; CODE XREF: sub_3593C+FAj move.b (byte_FFFFB2FB).w,d3 addq.b #1,d3 bcc.s loc_35A4C move.b #$FF,d3 loc_35A4C: ; CODE XREF: sub_3593C+10Aj move.b d3,(byte_FFFFB2FB).w cmp.b (FUEL_ST_KE_O2_READY_COUNTER_THRESHOLD).l,d3 ; Number of O2 reads that must fall outside not ready window for the O2 sensor to be ready. ; Counter bcs.s loc_35A62 move.b #1,(byte_FFFFB2F1).w loc_35A5E: ; CODE XREF: sub_3593C+C2j ; sub_3593C+CAj clr.w (word_FFFFB2F6).w loc_35A62: ; CODE XREF: sub_3593C+E8j ; sub_3593C+F2j ... move.b (byte_FFFFB2F0).w,d3 and.b (byte_FFFFB2F1).w,d3 beq.s loc_35A74 move.b #1,(byte_FFFFB2F8).w bra.s locret_35A78 ; --------------------------------------------------------------------------- loc_35A74: ; CODE XREF: sub_3593C+3Aj ; sub_3593C+12Ej clr.b (byte_FFFFB2F8).w locret_35A78: ; CODE XREF: sub_3593C+136j rts ; End of function sub_3593C ; =============== S U B R O U T I N E ======================================= sub_35A7A: ; CODE XREF: DoLoopF+29Cp tst.b (byte_FFFFB2FC).w beq.s loc_35A8E moveq #4,d3 loc_35A82: ; CODE XREF: sub_35A7A+CCj move.b d3,(byte_FFFFB2F2).w move.b d3,(byte_FFFFB2F3).w bra.w locret_35B7E ; --------------------------------------------------------------------------- loc_35A8E: ; CODE XREF: sub_35A7A+4j tst.b (byte_FFFFAD22).w beq.w loc_35B76 tst.b (byte_FFFFB2F8).w beq.w loc_35B76 move.w (word_FFFFB3E8).w,d3 movea.w #$12FE,a2 clr.b d4 addi.w #$400,d3 tbls.w (FUEL_ST_KV_CLOSED_LOOP_COOLANT_TEMPERATU).l,d3 ; Defines the coolant temperature above which closed loop fuel is allowed. ; Degrees_C cmp.w (CoolantTemperatureOrDefault).w,d3 bgt.w loc_35B76 btst #6,(byte_FFFFA7E4).w bne.w loc_35B76 btst #1,(word_FFFFA7DC).w beq.s loc_35AD8 btst #5,(word_FFFFA7E2).w beq.w loc_35B76 loc_35AD8: ; CODE XREF: sub_35A7A+52j move.b (byte_FFFFABDA).w,d3 or.b (byte_FFFFB352).w,d3 bne.s loc_35B44 tst.b (byte_FFFFB2EE).w bne.s loc_35B44 tst.b (byte_FFFFAB24).w bne.s loc_35B44 tst.b (byte_FFFFB2D0).w bne.s loc_35B44 tst.b (byte_FFFFA1F6).w bne.s loc_35B44 tst.b (byte_FFFFA1F4).w bne.s loc_35B44 tst.b (byte_FFFFACAA).w bne.s loc_35B44 tst.b (byte_FFFFA93B).w bne.s loc_35B44 tst.b (byte_FFFFABDC).w bne.s loc_35B44 btst #1,(byte_FFFF803D).w bne.s loc_35B44 btst #0,(byte_FFFF803D).w bne.s loc_35B44 tst.b (byte_FFFFB472).w bne.s loc_35B44 tst.b (byte_FFFFA59F).w bne.s loc_35B44 tst.b (byte_FFFFBEF1).w bne.s loc_35B44 tst.b (byte_FFFFB26C).w bne.s loc_35B44 move.b (byte_FFFFA59C).w,d3 btst #3,d3 beq.s loc_35B4A loc_35B44: ; CODE XREF: sub_35A7A+66j ; sub_35A7A+6Cj ... moveq #1,d3 bra.w loc_35A82 ; --------------------------------------------------------------------------- loc_35B4A: ; CODE XREF: sub_35A7A+C8j cmpi.b #1,(byte_FFFFB2EF).w bne.s loc_35B76 moveq #2,d3 move.b d3,(byte_FFFFB2F2).w move.b d3,(byte_FFFFB2F3).w tst.b (byte_FFFF9F5A).w beq.s loc_35B68 move.b #3,(byte_FFFFB2F2).w loc_35B68: ; CODE XREF: sub_35A7A+E6j tst.b (byte_FFFF9F5B).w beq.s locret_35B7E move.b #3,(byte_FFFFB2F3).w bra.s locret_35B7E ; --------------------------------------------------------------------------- loc_35B76: ; CODE XREF: sub_35A7A+18j ; sub_35A7A+20j ... clr.b (byte_FFFFB2F2).w clr.b (byte_FFFFB2F3).w locret_35B7E: ; CODE XREF: sub_35A7A+10j ; sub_35A7A+F2j ... rts ; End of function sub_35A7A ; =============== S U B R O U T I N E ======================================= sub_35B80: ; CODE XREF: DoLoopC:loc_2A5C4p jsr sub_366BE jsr sub_36066 jsr sub_39792 cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_35BB2 jsr sub_35FC0 jsr sub_3600A jsr sub_36BBA jsr sub_3622E loc_35BB2: ; CODE XREF: sub_35B80+18j jsr sub_36EAE jsr sub_36F1C jsr sub_37D56 jsr sub_36E5A jsr sub_3984E jsr DecideIdleMode jsr sub_35CC0 jsr sub_37CAE rts ; End of function sub_35B80 ; =============== S U B R O U T I N E ======================================= sub_35BE4: ; CODE XREF: DoLoopD+130p jsr sub_3832E rts ; End of function sub_35BE4 ; =============== S U B R O U T I N E ======================================= sub_35BEC: ; CODE XREF: DoLoopF+3B6p cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_35C00 jsr sub_39546 jsr sub_36764 loc_35C00: ; CODE XREF: sub_35BEC+6j jsr sub_39686 jsr sub_3975A jsr sub_37C70 jsr IsIdleAirLearningActive rts ; End of function sub_35BEC ; =============== S U B R O U T I N E ======================================= sub_35C1A: ; CODE XREF: DoLoopG+4Ep jsr sub_395D6 rts ; End of function sub_35C1A ; =============== S U B R O U T I N E ======================================= sub_35C22: ; CODE XREF: DoLoopG+194p jsr sub_397B0 jsr sub_36A8C jsr sub_3647C jsr sub_379B4 jsr sub_37A02 jsr sub_37912 jsr sub_395EC rts ; End of function sub_35C22 ; =============== S U B R O U T I N E ======================================= sub_35C4E: ; CODE XREF: OS1:00028B0Ap move.l d1,-(sp) jsr sub_37724 clr.l d1 move.b d0,d1 movea.l off_89E3C(d1.w*4),a2 jmp (a2) ; End of function sub_35C4E ; --------------------------------------------------------------------------- loc_35C64: ; DATA XREF: OS4:00089E44o jsr sub_378D2 loc_35C6A: ; DATA XREF: OS4:00089E48o ; OS4:00089E54o jsr sub_3774E jsr sub_3946C jsr sub_378C6 jsr sub_39A52 bra.s loc_35CB6 ; --------------------------------------------------------------------------- loc_35C84: ; DATA XREF: OS4:00089E4Co ; OS4:00089E58o jsr sub_3942C bra.s loc_35CB6 ; --------------------------------------------------------------------------- loc_35C8C: ; DATA XREF: OS4:off_89E3Co jsr sub_393DC bra.s loc_35CB6 ; --------------------------------------------------------------------------- loc_35C94: ; DATA XREF: OS4:00089E5Co jsr sub_39530 bra.s loc_35CB6 ; --------------------------------------------------------------------------- loc_35C9C: ; DATA XREF: OS4:00089E60o jsr sub_37906 jsr sub_3944C bra.s loc_35CB6 ; --------------------------------------------------------------------------- loc_35CAA: ; DATA XREF: OS4:00089E40o jsr sub_3942C jsr sub_37746 loc_35CB6: ; CODE XREF: OS1:00035C82j ; OS1:00035C8Aj ... jsr sub_38226 move.l (sp)+,d1 rts ; =============== S U B R O U T I N E ======================================= sub_35CC0: ; CODE XREF: sub_35B80+56p move.l d0,-(sp) move.w (DesiredIdleAirflow_IncludingFeedback_Clamped).w,d0 jsr sub_35D1C move.b (IdleControlMode_DriveNeutral_AcOrNot).w,d3 cmpi.b #$1A,d3 beq.s loc_35CE2 cmpi.b #9,d3 beq.s loc_35CE2 cmpi.b #$19,d3 bne.s loc_35CF4 loc_35CE2: ; CODE XREF: sub_35CC0+14j ; sub_35CC0+1Aj cmp.w (IAC_AIRFLOW_KE_MAX_DESIRED_IDLE_EFF_AREA).l,d0 bcs.s loc_35CF4 move.w (IAC_AIRFLOW_KE_MAX_DESIRED_IDLE_EFF_AREA).l,(DesiredIdleThrottleArea).w bra.s loc_35CF8 ; --------------------------------------------------------------------------- loc_35CF4: ; CODE XREF: sub_35CC0+20j ; sub_35CC0+28j move.w d0,(DesiredIdleThrottleArea).w loc_35CF8: ; CODE XREF: sub_35CC0+32j move.l (sp)+,d0 rts ; End of function sub_35CC0 ; =============== S U B R O U T I N E ======================================= sub_35CFC: ; CODE XREF: sub_2340C+8p move.w (IAC_AIRFLOW_KE_IDLE_AREA_SCALAR).l,d3 ; Conversion factor to convert to percent WOT from an effective throttle area in millimeters squared. ; Percent_Per_mm_Squared mulu.w (DesiredIdleThrottleArea).w,d3 divu.w #$5000,d3 bvs.s loc_35D12 cmpi.w #$2800,d3 bls.s loc_35D16 loc_35D12: ; CODE XREF: sub_35CFC+Ej move.w #$2800,d3 loc_35D16: ; CODE XREF: sub_35CFC+14j move.w d3,(DBW_Idle_Percentage_NotClamped).w rts ; End of function sub_35CFC ; =============== S U B R O U T I N E ======================================= sub_35D1C: ; CODE XREF: sub_35CC0+6p ; OS3:loc_7EF8Ap movem.l d1-d2/d6-d7,-(sp) move.w (word_FFFFB3EC).w,d1 move.l d1,d3 clr.w d4 cmpi.w #$1D20,d3 bcc.s loc_35D32 move.l d4,d3 bra.s loc_35D4E ; --------------------------------------------------------------------------- loc_35D32: ; CODE XREF: sub_35D1C+10j cmpi.w #$33A0,d3 bcc.s loc_35D4A subi.w #$1D20,d3 add.w d3,d3 andi.l #$FFFF,d3 divu.w #3,d3 bra.s loc_35D4E ; --------------------------------------------------------------------------- loc_35D4A: ; CODE XREF: sub_35D1C+1Aj move.w #$F00,d3 loc_35D4E: ; CODE XREF: sub_35D1C+14j ; sub_35D1C+2Cj movea.l #$EF9E,a2 tblu.w (a2),d3 mulu.w #$1F5,d3 divu.w #$640,d3 move.w d3,d2 move.w d2,(word_FFFF9534).w tst.w d1 bne.s loc_35D72 move.w #$FFFF,(word_FFFF9506).w bra.s loc_35DBA ; --------------------------------------------------------------------------- loc_35D72: ; CODE XREF: sub_35D1C+4Cj andi.l #$FFFF,d1 move.w (word_FFFF82D2).w,d3 mulu.w #$57,d3 ; 'W' divu.w #$19,d3 andi.l #$FFFF,d3 move.l d3,d6 mulu.l #$4E2,d3:d6 divu.l d1,d3:d6 bvs.s loc_35DAC cmpi.l #$FFFF,d6 bhi.s loc_35DAC cmpi.w #$42E,d6 bcs.s loc_35DB2 move.w d6,d3 bra.s loc_35DB6 ; --------------------------------------------------------------------------- loc_35DAC: ; CODE XREF: sub_35D1C+7Cj ; sub_35D1C+84j move.w #$FFFF,d3 bra.s loc_35DB6 ; --------------------------------------------------------------------------- loc_35DB2: ; CODE XREF: sub_35D1C+8Aj move.w #$42E,d3 loc_35DB6: ; CODE XREF: sub_35D1C+8Ej ; sub_35D1C+94j move.w d3,(word_FFFF9506).w loc_35DBA: ; CODE XREF: sub_35D1C+54j move.b (ThrottleControlMode2?).w,d1 moveq #4,d6 cmp.b d1,d6 bne.s loc_35DDA cmpi.b #$F,(IdleControlMode_DriveNeutral_AcOrNot).w bne.s loc_35DDA move.w (IAC_AIRFLOW_KE_MAP_FOR_IAC_RESET).l,d4 ; Calibration used to control IAC motor park position since MAP goes to baro on engine shut down. ; kPa clr.b (byte_FFFF94FB).w bra.w loc_35E60 ; --------------------------------------------------------------------------- loc_35DDA: ; CODE XREF: sub_35D1C+A6j ; sub_35D1C+AEj move.w (word_FFFFB292).w,d4 moveq #1,d7 cmp.b (IdleControlMode).w,d7 bne.s loc_35DF4 move.w (word_FFFFB290).w,d3 lsr.w #8,d3 cmp.b (IAC_AIRFLOW_KE_MAP_AD_FAIL_THRESHOLD).l,d3 ; Calibration used to determine the closed throttle maximum AD MAP. ; A/D Counts bcc.s loc_35E5C loc_35DF4: ; CODE XREF: sub_35D1C+C8j btst #3,(byte_FFFFB486).w bne.s loc_35E5C btst #5,(byte_FFFFB486).w bne.s loc_35E5C clr.l d3 move.w (IAC_AIRFLOW_KE_CHOKE_FLOW_TIME).l,d3 ; Calibration used before engine is running to generate desired effective area based on choke flow pressure ratio. ; Seconds cmp.l (EngineRunTime).w,d3 bcc.s loc_35E5C btst #2,(byte_FFFF8255).w bne.s loc_35E5C tst.w (word_FFFFAC86).w beq.s loc_35E5C cmpi.b #9,(IdleControlMode_DriveNeutral_AcOrNot).w bne.s loc_35E60 move.w (word_FFFFA0DC).w,d3 sub.w (word_FFFFAC86).w,d3 bcc.s loc_35E34 neg.w d3 loc_35E34: ; CODE XREF: sub_35D1C+114j mulu.w #$1400,d3 divu.w (word_FFFFAC86).w,d3 bvs.s loc_35E44 cmpi.w #$1400,d3 bls.s loc_35E48 loc_35E44: ; CODE XREF: sub_35D1C+120j move.w #$1400,d3 loc_35E48: ; CODE XREF: sub_35D1C+126j move.w d3,(word_FFFF9526).w cmp.w (IAC_AIRFLOW_KE_PERCENT_MAF_DEVIATION_FAIL_TH).l,d3 scc d3 neg.b d3 move.b d3,(byte_FFFF94FB).w bra.s loc_35E60 ; --------------------------------------------------------------------------- loc_35E5C: ; CODE XREF: sub_35D1C+D6j ; sub_35D1C+DEj ... move.b d7,(byte_FFFF94FB).w loc_35E60: ; CODE XREF: sub_35D1C+BAj ; sub_35D1C+10Aj ... tst.b (byte_FFFF94FB).w beq.s loc_35E70 move.w #$420,(word_FFFF952A).w bra.w loc_35EFC ; --------------------------------------------------------------------------- loc_35E70: ; CODE XREF: sub_35D1C+148j cmp.b d1,d6 bne.s loc_35E82 cmpi.b #$F,(IdleControlMode_DriveNeutral_AcOrNot).w bne.s loc_35E82 move.w d4,(word_FFFF952C).w bra.s loc_35EC8 ; --------------------------------------------------------------------------- loc_35E82: ; CODE XREF: sub_35D1C+156j ; sub_35D1C+15Ej move.l d4,d3 sub.w (word_FFFF952C).w,d3 tst.w d3 bge.s loc_35E8E neg.w d3 loc_35E8E: ; CODE XREF: sub_35D1C+16Ej cmp.w (IAC_AIRFLOW_KE_PRESSURE_RATIO_MAP_HYSTERESIS).l,d3 ; Used to control change in manifold pressure, used to calculate the pressure ratio. ; kPa bcs.s loc_35EC4 cmp.w (word_FFFF952C).w,d4 bcs.s loc_35EB2 move.w (word_FFFF952C).w,d3 add.w (IAC_AIRFLOW_KE_PRESSURE_RATIO_MAP_HYSTERESIS).l,d3 ; Used to control change in manifold pressure, used to calculate the pressure ratio. ; kPa cmpi.w #$14FF,d3 bls.s loc_35EC0 move.w #$14FF,d3 bra.s loc_35EC0 ; --------------------------------------------------------------------------- loc_35EB2: ; CODE XREF: sub_35D1C+17Ej move.w (word_FFFF952C).w,d3 sub.w (IAC_AIRFLOW_KE_PRESSURE_RATIO_MAP_HYSTERESIS).l,d3 ; Used to control change in manifold pressure, used to calculate the pressure ratio. ; kPa bcc.s loc_35EC0 clr.w d3 loc_35EC0: ; CODE XREF: sub_35D1C+18Ej ; sub_35D1C+194j ... move.w d3,(word_FFFF952C).w loc_35EC4: ; CODE XREF: sub_35D1C+178j move.w (word_FFFF952C).w,d4 loc_35EC8: ; CODE XREF: sub_35D1C+164j tst.w (word_FFFF82D2).w bne.s loc_35ED6 move.w #$7D0,(word_FFFF952A).w bra.s loc_35EFC ; --------------------------------------------------------------------------- loc_35ED6: ; CODE XREF: sub_35D1C+1B0j mulu.w #$7D0,d4 divu.w (word_FFFF82D2).w,d4 bvs.s loc_35EE6 cmpi.w #$7D0,d4 bls.s loc_35EEA loc_35EE6: ; CODE XREF: sub_35D1C+1C2j move.w #$7D0,d4 loc_35EEA: ; CODE XREF: sub_35D1C+1C8j move.w #$420,d1 cmp.w d4,d1 bhi.s loc_35EF8 move.w d4,(word_FFFF952A).w bra.s loc_35EFC ; --------------------------------------------------------------------------- loc_35EF8: ; CODE XREF: sub_35D1C+1D4j move.w d1,(word_FFFF952A).w loc_35EFC: ; CODE XREF: sub_35D1C+150j ; sub_35D1C+1B8j ... move.w (word_FFFF952A).w,d3 cmpi.w #$420,d3 bcc.s loc_35F0A clr.w d3 bra.s loc_35F18 ; --------------------------------------------------------------------------- loc_35F0A: ; CODE XREF: sub_35D1C+1E8j andi.l #$FFFF,d3 asl.l #6,d3 subi.l #unk_10800,d3 loc_35F18: ; CODE XREF: sub_35D1C+1ECj movea.l #unk_88A14,a2 tblu.w (a2),d3 mulu.w #$479,d3 lsr.l #8,d3 lsr.l #1,d3 move.w d3,(word_FFFF9528).w tst.w d3 beq.s loc_35F36 tst.w d2 bne.s loc_35F42 loc_35F36: ; CODE XREF: sub_35D1C+214j move.w (IAC_AIRFLOW_KE_MAX_DESIRED_IDLE_EFF_AREA).l,d0 clr.l (dword_FFFF9556).w bra.s loc_35FBA ; --------------------------------------------------------------------------- loc_35F42: ; CODE XREF: sub_35D1C+218j move.w (word_FFFF9506).w,d3 mulu.w (word_FFFF9534).w,d3 moveq #$20,d4 ; ' ' mulu.l d3,d3:d4 divu.l #$7D,d3:d4 ; '}' clr.l d3 move.w (word_FFFF9528).w,d3 mulu.l d3,d3:d4 divu.l #$400,d3:d4 bvc.s loc_35F6E moveq #$FFFFFFFF,d4 loc_35F6E: ; CODE XREF: sub_35D1C+24Ej mulu.w #$7D00,d0 divu.l d4,d0 bvs.s loc_35F80 cmpi.l #$FFFF,d0 bls.s loc_35F84 loc_35F80: ; CODE XREF: sub_35D1C+25Aj move.w #$FFFF,d0 loc_35F84: ; CODE XREF: sub_35D1C+262j move.w (DBW_Desired_Throttle_Area?__OrThrottleMode?).w,d3 mulu.w #$5000,d3 divu.w (IAC_AIRFLOW_KE_IDLE_AREA_SCALAR).l,d3 ; Conversion factor to convert to percent WOT from an effective throttle area in millimeters squared. ; Percent_Per_mm_Squared bvc.s loc_35F98 move.w #$FFFF,d3 loc_35F98: ; CODE XREF: sub_35D1C+276j andi.l #$FFFF,d3 mulu.l d4,d4:d3 divu.l #$20,d4:d3 ; ' ' bvc.s loc_35FAE moveq #$FFFFFFFF,d3 loc_35FAE: ; CODE XREF: sub_35D1C+28Ej divu.l #$3E8,d3 move.l d3,(dword_FFFF9556).w loc_35FBA: ; CODE XREF: sub_35D1C+224j movem.l (sp)+,d1-d2/d6-d7 rts ; End of function sub_35D1C ; =============== S U B R O U T I N E ======================================= sub_35FC0: ; CODE XREF: sub_35B80+1Ap tst.b (byte_FFFFA3AB).w beq.s loc_36004 tst.b (StartupToPidModeFlag?).w bne.s loc_36004 move.w (EngineRPM_PID_000C___).w,d3 move.l #$C00,d4 cmp.w d3,d4 bls.s loc_35FDE clr.w d3 bra.s loc_35FF4 ; --------------------------------------------------------------------------- loc_35FDE: ; CODE XREF: sub_35FC0+18j cmpi.w #$9400,d3 bcc.s loc_35FF0 andi.l #$FFFF,d3 sub.l d4,d3 lsr.w #3,d3 bra.s loc_35FF4 ; --------------------------------------------------------------------------- loc_35FF0: ; CODE XREF: sub_35FC0+22j move.w #$1100,d3 loc_35FF4: ; CODE XREF: sub_35FC0+1Cj ; sub_35FC0+2Ej movea.l #$EDC2,a2 tbls.w (a2),d3 move.w d3,(word_FFFF950A).w bra.s locret_36008 ; --------------------------------------------------------------------------- loc_36004: ; CODE XREF: sub_35FC0+4j sub_35FC0+Aj clr.w (word_FFFF950A).w locret_36008: ; CODE XREF: sub_35FC0+42j rts ; End of function sub_35FC0 ; =============== S U B R O U T I N E ======================================= sub_3600A: ; CODE XREF: sub_35B80+20p move.w (word_FFFF983C).w,d3 ble.s loc_36060 clr.w d4 tst.w d3 bge.s loc_3601A move.l d4,d3 bra.s loc_36038 ; --------------------------------------------------------------------------- loc_3601A: ; CODE XREF: sub_3600A+Aj cmpi.w #$38E,d3 bge.s loc_36034 ext.l d3 asl.l #8,d3 bmi.s loc_36030 divu.l #$5B,d3 ; '[' bra.s loc_36038 ; --------------------------------------------------------------------------- loc_36030: ; CODE XREF: sub_3600A+1Aj clr.l d3 bra.s loc_36038 ; --------------------------------------------------------------------------- loc_36034: ; CODE XREF: sub_3600A+14j move.w #$A00,d3 loc_36038: ; CODE XREF: sub_3600A+Ej ; sub_3600A+24j ... movea.l #$EDE6,a2 tblu.w (a2),d3 move.w (word_FFFFAEE2).w,d4 tblu.w (IAC_AIRFLOW_KV_CLO_SPARK_AIRFLOW_COOL_MULT).l,d4 ; This cal provides value to adjust amount of airflow necessaryto compensate for catalyst spark retard as the enginewarms up. ; Scaler_2_Vs_Deg_C_Table mulu.w d4,d3 divu.w #$800,d3 bvc.s loc_3605A move.w #$FFFF,d3 loc_3605A: ; CODE XREF: sub_3600A+4Aj move.w d3,(word_FFFF950E).w bra.s locret_36064 ; --------------------------------------------------------------------------- loc_36060: ; CODE XREF: sub_3600A+4j clr.w (word_FFFF950E).w locret_36064: ; CODE XREF: sub_3600A+54j rts ; End of function sub_3600A ; =============== S U B R O U T I N E ======================================= sub_36066: ; CODE XREF: sub_35B80+6p movem.l d0-d2/d6-d7,-(sp) tst.b (byte_FFFFA939).w bne.w loc_36224 move.b (byte_FFFF954C).w,d3 bne.s loc_360BE tst.b (byte_FFFF9851).w beq.s loc_360BE move.w (EngineRPM_PID_000C___).w,d3 move.l #$C00,d4 cmp.w d3,d4 bls.s loc_36090 clr.w d3 bra.s loc_360A6 ; --------------------------------------------------------------------------- loc_36090: ; CODE XREF: sub_36066+24j cmpi.w #$9400,d3 bcc.s loc_360A2 andi.l #$FFFF,d3 sub.l d4,d3 lsr.w #3,d3 bra.s loc_360A6 ; --------------------------------------------------------------------------- loc_360A2: ; CODE XREF: sub_36066+2Ej move.w #$1100,d3 loc_360A6: ; CODE XREF: sub_36066+28j ; sub_36066+3Aj movea.l #$EE92,a2 tbls.w (a2),d3 move.w d3,(word_FFFF951C).w move.b #1,(byte_FFFF954C).w bra.w loc_36228 ; --------------------------------------------------------------------------- loc_360BE: ; CODE XREF: sub_36066+10j ; sub_36066+16j cmpi.b #1,d3 bne.s loc_36118 move.w (word_FFFF951C).w,d3 bge.s loc_360FC cmp.w (word_FFFF9514).w,d3 blt.s loc_360DE loc_360D0: ; CODE XREF: sub_36066+9Aj move.b #2,(byte_FFFF954C).w clr.w (word_FFFF951A).w bra.w loc_36228 ; --------------------------------------------------------------------------- loc_360DE: ; CODE XREF: sub_36066+68j move.w (IAC_AIRFLOW_KE_DFCO_ENTRY_RAMP_RATE).l,d5 ; This calibration increases or decreases the decel fuel cutoff air value when decel fuel cutoff is entered. ; GPS blt.s loc_36112 move.w (word_FFFF9514).w,d3 sub.w d5,d3 bvc.s loc_360F4 bmi.s loc_36112 loc_360F0: ; CODE XREF: sub_36066+AAj move.w #$8000,d3 loc_360F4: ; CODE XREF: sub_36066+86j ; sub_36066+A8j ... move.w d3,(word_FFFF9514).w bra.w loc_36228 ; --------------------------------------------------------------------------- loc_360FC: ; CODE XREF: sub_36066+62j cmp.w (word_FFFF9514).w,d3 ble.s loc_360D0 move.w (IAC_AIRFLOW_KE_DFCO_ENTRY_RAMP_RATE).l,d3 ; This calibration increases or decreases the decel fuel cutoff air value when decel fuel cutoff is entered. ; GPS blt.s loc_36112 add.w (word_FFFF9514).w,d3 bvc.s loc_360F4 bpl.s loc_360F0 loc_36112: ; CODE XREF: sub_36066+7Ej ; sub_36066+88j ... move.w #$7FFF,d3 bra.s loc_360F4 ; --------------------------------------------------------------------------- loc_36118: ; CODE XREF: sub_36066+5Cj cmpi.b #2,d3 bne.s loc_3614E move.w (word_FFFF951A).w,d3 cmp.w (IAC_AIRFLOW_KE_DFCO_ENTRANCE_HOLD_TIME).l,d3 ; The amount of time to hold decel fuel cutoff airflow before decaying it away. ; Seconds bcs.s loc_36134 move.b #3,(byte_FFFF954C).w bra.w loc_36228 ; --------------------------------------------------------------------------- loc_36134: ; CODE XREF: sub_36066+C2j movea.l (dword_FFFFB5DE).w,a2 move.w $A(a2),d3 add.w (word_FFFF951A).w,d3 bcc.s loc_36146 move.w #$FFFF,d3 loc_36146: ; CODE XREF: sub_36066+DAj move.w d3,(word_FFFF951A).w bra.w loc_36228 ; --------------------------------------------------------------------------- loc_3614E: ; CODE XREF: sub_36066+B6j cmpi.b #3,d3 bne.s loc_361CE tst.b (byte_FFFF9851).w bne.s loc_36164 move.b #4,(byte_FFFF954C).w bra.w loc_36228 ; --------------------------------------------------------------------------- loc_36164: ; CODE XREF: sub_36066+F2j move.w (EngineRPM_PID_000C___).w,d0 clr.w d3 move.l #$C00,d6 cmp.w d0,d6 bls.s loc_36178 move.l d3,d1 bra.s loc_3618C ; --------------------------------------------------------------------------- loc_36178: ; CODE XREF: sub_36066+10Cj cmpi.w #$9400,d0 bcc.s loc_36188 clr.l d1 move.w d0,d1 sub.l d6,d1 lsr.w #3,d1 bra.s loc_3618C ; --------------------------------------------------------------------------- loc_36188: ; CODE XREF: sub_36066+116j move.w #$1100,d1 loc_3618C: ; CODE XREF: sub_36066+110j ; sub_36066+120j movea.l #$EEB6,a2 tbls.w (a2),d1 cmp.w d0,d6 bls.s loc_3619E move.l d3,d0 bra.s loc_361B4 ; --------------------------------------------------------------------------- loc_3619E: ; CODE XREF: sub_36066+132j cmpi.w #$9400,d0 bcc.s loc_361B0 andi.l #$FFFF,d0 sub.l d6,d0 lsr.w #3,d0 bra.s loc_361B4 ; --------------------------------------------------------------------------- loc_361B0: ; CODE XREF: sub_36066+13Cj move.w #$1100,d0 loc_361B4: ; CODE XREF: sub_36066+136j ; sub_36066+148j movea.l #$EE6E,a2 tblu.w (a2),d0 move.w (word_FFFF9514).w,d2 jsr loc_26610 move.w d0,(word_FFFF9514).w bra.s loc_36228 ; --------------------------------------------------------------------------- loc_361CE: ; CODE XREF: sub_36066+ECj cmpi.b #4,d3 bne.s loc_36228 move.w (word_FFFF9514).w,d3 bge.s loc_361FC move.w (IAC_AIRFLOW_KE_DFCO_EXIT_RAMP_RATE).l,d3 ; This calibration increases or decreases the decel fuel cutoff air value when decel fuel cutoff is exited. ; GPS blt.s loc_361EA add.w (word_FFFF9514).w,d3 bvc.s loc_361F4 bpl.s loc_361F0 loc_361EA: ; CODE XREF: sub_36066+17Aj move.w #$7FFF,d3 bra.s loc_361F4 ; --------------------------------------------------------------------------- loc_361F0: ; CODE XREF: sub_36066+182j move.w #$8000,d3 loc_361F4: ; CODE XREF: sub_36066+180j ; sub_36066+188j tst.w d3 blt.w loc_360F4 bra.s loc_36224 ; --------------------------------------------------------------------------- loc_361FC: ; CODE XREF: sub_36066+172j tst.w d3 bgt.s loc_36206 clr.b (byte_FFFF954C).w bra.s loc_36228 ; --------------------------------------------------------------------------- loc_36206: ; CODE XREF: sub_36066+198j move.w (IAC_AIRFLOW_KE_DFCO_EXIT_RAMP_RATE).l,d5 ; This calibration increases or decreases the decel fuel cutoff air value when decel fuel cutoff is exited. ; GPS blt.s loc_36214 sub.w d5,d3 bvc.s loc_3621E bpl.s loc_3621A loc_36214: ; CODE XREF: sub_36066+1A6j move.w #$7FFF,d3 bra.s loc_3621E ; --------------------------------------------------------------------------- loc_3621A: ; CODE XREF: sub_36066+1ACj move.w #$8000,d3 loc_3621E: ; CODE XREF: sub_36066+1AAj ; sub_36066+1B2j tst.w d3 bgt.w loc_360F4 loc_36224: ; CODE XREF: sub_36066+8j ; sub_36066+194j clr.w (word_FFFF9514).w loc_36228: ; CODE XREF: sub_36066+54j ; sub_36066+74j ... movem.l (sp)+,d0-d2/d6-d7 rts ; End of function sub_36066 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3622E: ; CODE XREF: sub_35B80+2Cp var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d2/d6-a1,-(sp) clr.w d1 move.b d1,var_4(a6) move.l d1,d7 btst #1,(byte_FFFFAD8A).w sne d3 neg.b d3 cmp.b (byte_FFFF94E6).w,d3 beq.s loc_3628A move.b #1,var_4(a6) btst #1,(byte_FFFFAD8A).w beq.s loc_36264 movea.l #$F2D0,a2 bra.s loc_3626A ; --------------------------------------------------------------------------- loc_36264: ; CODE XREF: sub_3622E+2Cj movea.l #$F2B4,a2 loc_3626A: ; CODE XREF: sub_3622E+34j move.b d3,(byte_FFFF94E6).w move.w (word_FFFF9E20).w,d3 cmpi.w #$A67,d3 bcc.s loc_36280 moveq #5,d1 mulu.w d1,d3 lsr.l #2,d3 bra.s loc_36284 ; --------------------------------------------------------------------------- loc_36280: ; CODE XREF: sub_3622E+48j move.w #$D00,d3 loc_36284: ; CODE XREF: sub_3622E+50j tblu.w (a2),d3 move.w d3,d7 loc_3628A: ; CODE XREF: sub_3622E+1Ej move.b (byte_FFFF9DA2).w,d6 cmp.b (byte_FFFF9DA0).w,d6 bne.s loc_3629E move.b (byte_FFFF9DA3).w,d6 cmp.b (byte_FFFF9DA1).w,d6 beq.s loc_362B0 loc_3629E: ; CODE XREF: sub_3622E+64j move.b #1,var_4(a6) move.w (IAC_AIRFLOW_KE_FAN_INHIBIT_REGULATOR_TIME).l,d6 ; The constant speed regulator will be inhibited for this period of time when the Fan1 or Fan2 load has been applied or released. ; Seconds cmp.w d7,d6 bls.s loc_362B0 move.w d6,d7 loc_362B0: ; CODE XREF: sub_3622E+6Ej ; sub_3622E+7Ej cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.w loc_36368 move.b (byte_FFFF9550).w,d3 cmp.b (byte_FFFFA3AF).w,d3 beq.w loc_36362 moveq #1,d1 move.b d1,(byte_FFFF94E4).w move.b d1,(byte_FFFF94EE).w move.w (GlobalClock).w,(word_FFFF9532).w move.w (word_FFFFA3C2).w,d3 cmpi.b #5,(byte_FFFFA3AF).w bcs.s loc_36320 move.w #$CA,d6 ; '?' cmp.w d3,d6 ble.s loc_362F6 move.l d3,d4 addi.w #$36,d4 ; '6' asl.w #4,d4 bra.s loc_362FA ; --------------------------------------------------------------------------- loc_362F6: ; CODE XREF: sub_3622E+BCj move.w #$1000,d4 loc_362FA: ; CODE XREF: sub_3622E+C6j movea.l #$EEDA,a2 tblu.w (a2),d4 move.w d4,(word_FFFF952E).w cmp.w d3,d6 ble.s loc_36314 addi.w #$36,d3 ; '6' asl.w #4,d3 bra.s loc_36318 ; --------------------------------------------------------------------------- loc_36314: ; CODE XREF: sub_3622E+DCj move.w #$1000,d3 loc_36318: ; CODE XREF: sub_3622E+E4j movea.l #$F464,a2 bra.s loc_3635A ; --------------------------------------------------------------------------- loc_36320: ; CODE XREF: sub_3622E+B4j move.w #$CA,d6 ; '?' cmp.w d3,d6 ble.s loc_36332 move.l d3,d4 addi.w #$36,d4 ; '6' asl.w #4,d4 bra.s loc_36336 ; --------------------------------------------------------------------------- loc_36332: ; CODE XREF: sub_3622E+F8j move.w #$1000,d4 loc_36336: ; CODE XREF: sub_3622E+102j movea.l #$EF7C,a2 tblu.w (a2),d4 move.w d4,(word_FFFF952E).w cmp.w d3,d6 ble.s loc_36350 addi.w #$36,d3 ; '6' asl.w #4,d3 bra.s loc_36354 ; --------------------------------------------------------------------------- loc_36350: ; CODE XREF: sub_3622E+118j move.w #$1000,d3 loc_36354: ; CODE XREF: sub_3622E+120j movea.l #$F486,a2 loc_3635A: ; CODE XREF: sub_3622E+F0j tblu.w (a2),d3 move.w d3,(word_FFFF9530).w loc_36362: ; CODE XREF: sub_3622E+96j move.b (byte_FFFFA3AF).w,(byte_FFFF9550).w loc_36368: ; CODE XREF: sub_3622E+8Aj moveq #$76,d0 ; 'v' jsr sub_81B3C cmp.b (byte_FFFF94F8).w,d0 beq.s loc_363A2 move.b #1,var_4(a6) moveq #$76,d0 ; 'v' jsr sub_81B3C tst.b d0 beq.s loc_36396 move.w (IAC_AIRFLOW_KE_LOW_TO_HIGH_PRESSURE_TIME).l,d2 cmp.w d7,d2 bls.s loc_363A2 move.w d2,d7 bra.s loc_363A2 ; --------------------------------------------------------------------------- loc_36396: ; CODE XREF: sub_3622E+158j move.w (IAC_AIRFLOW_KE_HIGH_TO_LOW_PRESSURE_TIME).l,d1 cmp.w d7,d1 bls.s loc_363A2 move.w d1,d7 loc_363A2: ; CODE XREF: sub_3622E+146j ; sub_3622E+162j ... moveq #$76,d0 ; 'v' jsr sub_81B3C move.b d0,(byte_FFFF94F8).w clr.b (byte_FFFF94E7).w tst.b (byte_FFFF94E4).w beq.s loc_3640C movea.l #unk_FF9532,a0 jsr sub_276F4 clr.b d3 move.w (word_FFFF9532).w,var_2(a6) move.w (GlobalClock).w,d5 sub.w var_2(a6),d5 cmp.w (word_FFFF952E).w,d5 bcc.s loc_363DC addq.b #1,d3 loc_363DC: ; CODE XREF: sub_3622E+1AAj move.b d3,(byte_FFFF94E4).w move.w (word_FFFF9532).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (word_FFFF9530).w,d3 bcs.s loc_36406 tst.b (byte_FFFF94EE).w beq.s loc_3640C move.b #1,(byte_FFFF94E7).w clr.b (byte_FFFF94EE).w bra.s loc_3640C ; --------------------------------------------------------------------------- loc_36406: ; CODE XREF: sub_3622E+1C4j move.b #1,(byte_FFFF94EE).w loc_3640C: ; CODE XREF: sub_3622E+188j ; sub_3622E+1CAj ... tst.b (byte_FFFF94E5).w beq.s loc_36458 move.b var_4(a6),d4 beq.s loc_36436 move.w (word_FFFF9522).w,d3 move.w (word_FFFF9524).w,var_2(a6) move.w (GlobalClock).w,d5 sub.w var_2(a6),d5 sub.w d5,d3 bcc.s loc_36430 clr.w d3 loc_36430: ; CODE XREF: sub_3622E+1FEj cmp.w d7,d3 bcc.s loc_36468 bra.s loc_3645E ; --------------------------------------------------------------------------- loc_36436: ; CODE XREF: sub_3622E+1E8j move.w (word_FFFF9524).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (word_FFFF9522).w,d3 bcs.s loc_36450 clr.w (word_FFFF9522).w bra.s loc_36468 ; --------------------------------------------------------------------------- loc_36450: ; CODE XREF: sub_3622E+21Aj move.b #1,var_4(a6) bra.s loc_36468 ; --------------------------------------------------------------------------- loc_36458: ; CODE XREF: sub_3622E+1E2j move.b var_4(a6),d3 beq.s loc_36468 loc_3645E: ; CODE XREF: sub_3622E+206j move.w (GlobalClock).w,(word_FFFF9524).w move.w d7,(word_FFFF9522).w loc_36468: ; CODE XREF: sub_3622E+204j ; sub_3622E+220j ... move.b var_4(a6),d3 or.b (byte_FFFF94E4).w,d3 move.b d3,(byte_FFFF94E5).w movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_3622E ; =============== S U B R O U T I N E ======================================= sub_3647C: ; CODE XREF: sub_35C22+Cp movem.l d0-d2/a0,-(sp) move.w (DesiredAirflow).w,(word_FFFF9546).w move.w (word_FFFF9540).w,(word_FFFF9542).w move.w (CoolantTemperatureOrDefault).w,d3 movea.w #$400,a0 add.w a0,d3 moveq #5,d1 muls.w d1,d3 moveq #6,d2 divs.w d2,d3 movea.l #$F06C,a2 tblu.w (a2),d3 tst.w d3 bge.s loc_364B0 move.w #$7FFF,d3 loc_364B0: ; CODE XREF: sub_3647C+2Ej move.w d3,(DesiredAirflow).w move.w (CoolantTemperatureOrDefault).w,d3 add.w a0,d3 muls.w d1,d3 divs.w d2,d3 movea.l #$F04C,a2 tblu.w (a2),d3 tst.w d3 bge.s loc_364D0 move.w #$7FFF,d3 loc_364D0: ; CODE XREF: sub_3647C+4Ej move.w d3,(word_FFFF9540).w moveq #1,d0 jsr sub_37A50 movem.l (sp)+,d0-d2/a0 rts ; End of function sub_3647C ; =============== S U B R O U T I N E ======================================= sub_364E2: ; CODE XREF: OS3:loc_7EF78p move.l d0,-(sp) move.w (word_FFFF94C0).w,d3 tst.w (word_FFFF9E16).w bne.w loc_365BA clr.b (byte_FFFF94FC).w tst.b (byte_FFFF94EA).w beq.w loc_3657E clr.b (byte_FFFF94EA).w move.l d3,d4 add.w (word_FFFF9E1A).w,d4 bvc.s loc_36514 bpl.s loc_36510 move.w #$7FFF,d4 bra.s loc_36514 ; --------------------------------------------------------------------------- loc_36510: ; CODE XREF: sub_364E2+26j move.w #$8000,d4 loc_36514: ; CODE XREF: sub_364E2+24j ; sub_364E2+2Cj move.w d4,(word_FFFF94C0).w move.w (word_FFFF9E20).w,d5 clr.w d0 cmpi.w #$A67,d5 bcc.s loc_3652C mulu.w #5,d5 lsr.l #2,d5 bra.s loc_36530 ; --------------------------------------------------------------------------- loc_3652C: ; CODE XREF: sub_364E2+40j move.w #$D00,d5 loc_36530: ; CODE XREF: sub_364E2+48j movea.l #$EDA2,a2 tblu.w (a2),d5 move.w d5,(word_FFFF9554).w tst.w d4 bgt.s loc_36548 clr.w (word_FFFF94C4).w bra.s loc_3657E ; --------------------------------------------------------------------------- loc_36548: ; CODE XREF: sub_364E2+5Ej move.w (word_FFFF94C0).w,d4 clr.l d5 move.w (word_FFFF9554).w,d5 asl.l #8,d5 asl.l #4,d5 divs.w d4,d5 bvc.s loc_36562 swap d5 eor.w d4,d5 bmi.s loc_36578 bra.s loc_36572 ; --------------------------------------------------------------------------- loc_36562: ; CODE XREF: sub_364E2+76j cmpi.w #$7FFF,d5 bhi.s loc_36578 cmpi.w #$1000,d5 bhi.s loc_36572 move.w d5,d4 bra.s loc_3657A ; --------------------------------------------------------------------------- loc_36572: ; CODE XREF: sub_364E2+7Ej ; sub_364E2+8Aj move.w #$1000,d4 bra.s loc_3657A ; --------------------------------------------------------------------------- loc_36578: ; CODE XREF: sub_364E2+7Cj ; sub_364E2+84j move.l d0,d4 loc_3657A: ; CODE XREF: sub_364E2+8Ej ; sub_364E2+94j move.w d4,(word_FFFF94C4).w loc_3657E: ; CODE XREF: sub_364E2+16j ; sub_364E2+64j tst.w (word_FFFF94C0).w beq.w loc_366B6 clr.l d5 move.w (word_FFFF9554).w,d5 move.w (word_FFFF94C0).w,d3 ext.l d3 sub.l d5,d3 cmpi.l #$FFFF8000,d3 blt.s loc_365AA cmpi.l #$7FFF,d3 ble.s loc_365AE move.w #$7FFF,d3 bra.s loc_365AE ; --------------------------------------------------------------------------- loc_365AA: ; CODE XREF: sub_364E2+B8j move.w #$8000,d3 loc_365AE: ; CODE XREF: sub_364E2+C0j ; sub_364E2+C6j tst.w d3 bge.w loc_366B6 loc_365B4: ; CODE XREF: sub_364E2+16Ej clr.w d3 bra.w loc_366B6 ; --------------------------------------------------------------------------- loc_365BA: ; CODE XREF: sub_364E2+Aj tst.b (byte_FFFF94EA).w bne.s loc_36624 move.b #1,(byte_FFFF94EA).w move.w (word_FFFF9E1A).w,d4 neg.w d4 move.w d4,(word_FFFF94C0).w move.w (word_FFFF9E1A).w,(word_FFFF9552).w move.w (word_FFFF9E20).w,d4 cmpi.w #$A67,d4 bcc.s loc_365E8 mulu.w #5,d4 lsr.l #2,d4 bra.s loc_365EC ; --------------------------------------------------------------------------- loc_365E8: ; CODE XREF: sub_364E2+FCj move.w #$D00,d4 loc_365EC: ; CODE XREF: sub_364E2+104j movea.l #$ED86,a2 tblu.w (a2),d4 move.w d4,(word_FFFF9554).w tst.w (word_FFFF9E18).w bne.s loc_36606 clr.w (word_FFFF94C4).w bra.s loc_36624 ; --------------------------------------------------------------------------- loc_36606: ; CODE XREF: sub_364E2+11Cj clr.l d4 move.w (word_FFFF9554).w,d4 asl.l #8,d4 asl.l #4,d4 divu.w (word_FFFF9E18).w,d4 bvs.s loc_3661C cmpi.w #$1000,d4 bls.s loc_36620 loc_3661C: ; CODE XREF: sub_364E2+132j move.w #$1000,d4 loc_36620: ; CODE XREF: sub_364E2+138j move.w d4,(word_FFFF94C4).w loc_36624: ; CODE XREF: sub_364E2+DCj ; sub_364E2+122j tst.b (byte_FFFF94E7).w beq.s loc_36646 sub.w (word_FFFF9552).w,d3 bvc.s loc_3663C bpl.s loc_36638 move.w #$7FFF,d3 bra.s loc_3663C ; --------------------------------------------------------------------------- loc_36638: ; CODE XREF: sub_364E2+14Ej move.w #$8000,d3 loc_3663C: ; CODE XREF: sub_364E2+14Cj ; sub_364E2+154j add.w (word_FFFF9E1A).w,d3 move.w (word_FFFF9E1A).w,(word_FFFF9552).w loc_36646: ; CODE XREF: sub_364E2+146j tst.b (byte_FFFF94FC).w beq.s loc_36660 tst.w (word_FFFF9E18).w bls.w loc_365B4 move.w (word_FFFF9E18).w,d3 bge.s loc_366B6 move.w #$7FFF,d3 bra.s loc_366B6 ; --------------------------------------------------------------------------- loc_36660: ; CODE XREF: sub_364E2+168j tst.w (word_FFFF9E18).w bls.s loc_366AE clr.l d5 move.w (word_FFFF9554).w,d5 move.w (word_FFFF94C0).w,d3 ext.l d3 add.l d5,d3 cmpi.l #$FFFF8000,d3 blt.s loc_3668A cmpi.l #$7FFF,d3 ble.s loc_3668E move.w #$7FFF,d3 bra.s loc_3668E ; --------------------------------------------------------------------------- loc_3668A: ; CODE XREF: sub_364E2+198j move.w #$8000,d3 loc_3668E: ; CODE XREF: sub_364E2+1A0j ; sub_364E2+1A6j move.w (word_FFFF9E18).w,d5 bge.s loc_36698 move.w #$7FFF,d5 loc_36698: ; CODE XREF: sub_364E2+1B0j cmp.w d5,d3 blt.s loc_366A8 move.w (word_FFFF9E18).w,d3 bge.s loc_366B0 move.w #$7FFF,d3 bra.s loc_366B0 ; --------------------------------------------------------------------------- loc_366A8: ; CODE XREF: sub_364E2+1B8j clr.b (byte_FFFF94FC).w bra.s loc_366B6 ; --------------------------------------------------------------------------- loc_366AE: ; CODE XREF: sub_364E2+182j clr.w d3 loc_366B0: ; CODE XREF: sub_364E2+1BEj ; sub_364E2+1C4j move.b #1,(byte_FFFF94FC).w loc_366B6: ; CODE XREF: sub_364E2+A0j ; sub_364E2+CEj ... move.w d3,(word_FFFF94C0).w move.l (sp)+,d0 rts ; End of function sub_364E2 ; =============== S U B R O U T I N E ======================================= sub_366BE: ; CODE XREF: sub_35B80p tst.b (byte_FFFF9DA2).w beq.s loc_366DE tst.b (byte_FFFF9DA3).w beq.s loc_366D4 move.w (IAC_AIRFLOW_KE_COOLING_FANS_CORRECTION).l,(word_FFFF9510).w ; Default value of airflow required to compensate for the parasitic load from multiple cooling fans. ; GPS bra.s locret_366E2 ; --------------------------------------------------------------------------- loc_366D4: ; CODE XREF: sub_366BE+Aj move.w (IAC_AIRFLOW_KE_COOLING_FAN_CORRECTION).l,(word_FFFF9510).w ; Default value of airflow required to compensate for the parasitic load from a single cooling fan. ; GPS bra.s locret_366E2 ; --------------------------------------------------------------------------- loc_366DE: ; CODE XREF: sub_366BE+4j clr.w (word_FFFF9510).w locret_366E2: ; CODE XREF: sub_366BE+14j ; sub_366BE+1Ej rts ; End of function sub_366BE ; =============== S U B R O U T I N E ======================================= sub_366E4: ; CODE XREF: sub_36F1C:loc_3704Ep movem.l d0/a0,-(sp) tst.w (word_FFFFAE38).w bls.s loc_3675A tst.b (byte_FFFF94FA).w beq.s loc_36702 movea.l #$F366,a2 movea.l #$F396,a0 bra.s loc_3670E ; --------------------------------------------------------------------------- loc_36702: ; CODE XREF: sub_366E4+Ej movea.l #$F37E,a2 movea.l #$F3B6,a0 loc_3670E: ; CODE XREF: sub_366E4+1Cj move.w (word_FFFFAE38).w,d3 move.l #$200,d4 cmp.w d3,d4 bcs.s loc_36724 mulu.w #5,d3 lsr.l #1,d3 bra.s loc_3673C ; --------------------------------------------------------------------------- loc_36724: ; CODE XREF: sub_366E4+36j cmpi.w #$800,d3 bcc.s loc_36738 andi.l #$FFFF,d3 sub.l d4,d3 addi.w #$500,d3 bra.s loc_3673C ; --------------------------------------------------------------------------- loc_36738: ; CODE XREF: sub_366E4+44j move.w #$B00,d3 loc_3673C: ; CODE XREF: sub_366E4+3Ej ; sub_366E4+52j tblu.w (a2),d3 move.w (word_FFFFAEE2).w,d5 tblu.w (a0),d5 mulu.w d5,d3 divu.w #$800,d3 bvc.s loc_36754 move.w #$FFFF,d3 loc_36754: ; CODE XREF: sub_366E4+6Aj move.w d3,(word_FFFF954A).w bra.s loc_3675E ; --------------------------------------------------------------------------- loc_3675A: ; CODE XREF: sub_366E4+8j clr.w (word_FFFF954A).w loc_3675E: ; CODE XREF: sub_366E4+74j movem.l (sp)+,d0/a0 rts ; End of function sub_366E4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_36764: ; CODE XREF: sub_35BEC+Ep var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a0,-(sp) movea.l #unk_FF9500,a0 jsr sub_276F4 tst.b (byte_FFFF94F1).w beq.s loc_3678C move.w (word_FFFFAEBC).w,d0 cmp.w (IAC_AIRFLOW_KE_THROTTLE_CRACKER_DISABLE_THRE).l,d0 ; Vehicle speed must be <= to this calibration to disable the extended throttle cracker function. ; MPH shi d0 bra.s loc_36798 ; --------------------------------------------------------------------------- loc_3678C: ; CODE XREF: sub_36764+18j move.w (word_FFFFAEBC).w,d0 cmp.w (IAC_AIRFLOW_KE_THROTTLE_CRACKER_ENABLE_THRES).l,d0 ; Vehicle speed must be >= to this calibration to enable the extended throttle cracker function. ; MPH scc d0 loc_36798: ; CODE XREF: sub_36764+26j neg.b d0 move.b d0,(byte_FFFF94F1).w beq.w loc_36A74 tst.b (StartupToPidModeFlag?).w bne.w loc_36A74 move.w (EngineRPM_PID_000C___).w,d0 move.w (word_FFFFAEBC).w,d1 clr.w d3 move.w #$2000,d6 cmp.w d1,d6 bls.s loc_367C0 lsr.w #1,d1 bra.s loc_367C4 ; --------------------------------------------------------------------------- loc_367C0: ; CODE XREF: sub_36764+56j move.w #$1000,d1 loc_367C4: ; CODE XREF: sub_36764+5Aj move.l #$800,d7 cmp.w d0,d7 bls.s loc_367D2 move.l d3,d0 bra.s loc_367EA ; --------------------------------------------------------------------------- loc_367D2: ; CODE XREF: sub_36764+68j cmpi.w #$8C00,d0 bcc.s loc_367E6 andi.l #$FFFF,d0 sub.l d7,d0 divu.w #$C,d0 bra.s loc_367EA ; --------------------------------------------------------------------------- loc_367E6: ; CODE XREF: sub_36764+72j move.w #$B00,d0 loc_367EA: ; CODE XREF: sub_36764+6Cj ; sub_36764+80j moveq #$C,d2 movea.l #$F11C,a0 jsr sub_2696E cmpi.b #8,(byte_FFFFA3B8).w bne.w loc_36A68 move.b (byte_FFFF94FD).w,d2 bne.s loc_36816 move.w (word_FFFFAEBC).w,d1 cmp.w (IAC_AIRFLOW_KE_VSDI_ENABLE_VEHICLE_SPEED).l,d1 ; Vehicle speed must be > this cal to enable the VSDI mode of the throttle cracker function. ; MPH bcs.w loc_36A00 loc_36816: ; CODE XREF: sub_36764+A2j move.w (word_FFFFAEBC).w,d1 move.l d1,d3 move.w #$500,d4 cmp.w d3,d4 bcc.s loc_3684A cmpi.w #$1100,d3 bhi.s loc_36834 lsr.w #1,d3 add.w d4,d3 subi.w #$280,d3 bra.s loc_3684A ; --------------------------------------------------------------------------- loc_36834: ; CODE XREF: sub_36764+C4j cmpi.w #$2900,d3 bcc.s loc_36846 lsr.w #2,d3 addi.w #$B00,d3 subi.w #$440,d3 bra.s loc_3684A ; --------------------------------------------------------------------------- loc_36846: ; CODE XREF: sub_36764+D4j move.w #$1100,d3 loc_3684A: ; CODE XREF: sub_36764+BEj ; sub_36764+CEj ... movea.l #$F3D6,a2 tblu.w (a2),d3 move.w d3,(word_FFFF9502).w cmp.w (IAC_AIRFLOW_KE_VSDI_DISABLE_VEHICLE_SPEED).l,d1 ; Vehicle speed must be <= this cal to disable the VSDI mode of the throttle cracker function. ; MPH bhi.s loc_36868 loc_36860: ; CODE XREF: sub_36764+30Cj clr.b (byte_FFFF94FD).w bra.w loc_36A84 ; --------------------------------------------------------------------------- loc_36868: ; CODE XREF: sub_36764+FAj tst.b d2 bne.s loc_36884 moveq #1,d2 move.b d2,(byte_FFFF94FD).w clr.b (byte_FFFF94FE).w move.w (GlobalClock).w,(word_FFFF9500).w clr.w (word_FFFF9504).w move.b d2,(byte_FFFF94FF).w loc_36884: ; CODE XREF: sub_36764+106j move.w (word_FFFFAEBC).w,d4 cmpi.w #$3200,d4 bcc.s loc_3689A andi.l #$FFFF,d4 moveq #5,d2 divu.w d2,d4 bra.s loc_3689E ; --------------------------------------------------------------------------- loc_3689A: ; CODE XREF: sub_36764+128j move.w #$A00,d4 loc_3689E: ; CODE XREF: sub_36764+134j movea.l #$F3FA,a2 tblu.w (a2),d4 move.w (DesiredIdleSpeed).w,d1 cmp.w d1,d4 bcc.s loc_368B2 move.l d1,d4 loc_368B2: ; CODE XREF: sub_36764+14Aj clr.l d5 move.w d4,d5 clr.l d4 move.w (EngineRPM_PID_000C___).w,d4 sub.l d5,d4 cmpi.l #$FFFF8000,d4 blt.s loc_368D4 cmpi.l #$7FFF,d4 ble.s loc_368D8 move.w #$7FFF,d4 bra.s loc_368D8 ; --------------------------------------------------------------------------- loc_368D4: ; CODE XREF: sub_36764+160j move.w #$8000,d4 loc_368D8: ; CODE XREF: sub_36764+168j ; sub_36764+16Ej move.w d4,(word_FFFF9548).w move.w (word_FFFFAB66).w,d5 cmp.w (IAC_AIRFLOW_KE_VSDI_THROTTLE_POSITION).l,d5 ; If in VSDI mode, use KA_Throttle_Cracker_Airflow to calculate extended throttle cracker, while throttle position is > this cal. ; Percent bls.s loc_368F8 clr.b (byte_FFFF94FE).w move.w (GlobalClock).w,(word_FFFF9500).w move.l d0,d3 bra.w loc_369F8 ; --------------------------------------------------------------------------- loc_368F8: ; CODE XREF: sub_36764+182j tst.b (byte_FFFF94FE).w beq.w loc_369DC tst.w d4 bge.s loc_3695E btst #0,(byte_FFFF9062).w bne.w loc_369A2 move.b (byte_FFFF9060).w,d3 cmpi.b #$A,d3 beq.w loc_369A2 cmpi.b #$B,d3 beq.w loc_369A2 move.l d4,d3 tst.w d3 bge.s loc_3692A neg.w d3 loc_3692A: ; CODE XREF: sub_36764+1C2j move.l #$200,d4 cmp.w d3,d4 bcs.s loc_3693C mulu.w #5,d3 lsr.l #1,d3 bra.s loc_36952 ; --------------------------------------------------------------------------- loc_3693C: ; CODE XREF: sub_36764+1CEj cmp.w d3,d7 bls.s loc_3694E andi.l #$FFFF,d3 sub.l d4,d3 addi.w #$500,d3 bra.s loc_36952 ; --------------------------------------------------------------------------- loc_3694E: ; CODE XREF: sub_36764+1DAj move.w #$B00,d3 loc_36952: ; CODE XREF: sub_36764+1D6j ; sub_36764+1E8j movea.l #$F430,a2 tbls.w (a2),d3 bra.s loc_369A4 ; --------------------------------------------------------------------------- loc_3695E: ; CODE XREF: sub_36764+19Ej tst.w (ThrottleCrackerAirflow).w beq.s loc_369A2 move.l d4,d3 tst.w d3 bge.s loc_3696C neg.w d3 loc_3696C: ; CODE XREF: sub_36764+204j move.l #$200,d4 cmp.w d3,d4 bcs.s loc_3697E mulu.w #5,d3 lsr.l #1,d3 bra.s loc_36994 ; --------------------------------------------------------------------------- loc_3697E: ; CODE XREF: sub_36764+210j cmp.w d3,d7 bls.s loc_36990 andi.l #$FFFF,d3 sub.l d4,d3 addi.w #$500,d3 bra.s loc_36994 ; --------------------------------------------------------------------------- loc_36990: ; CODE XREF: sub_36764+21Cj move.w #$B00,d3 loc_36994: ; CODE XREF: sub_36764+218j ; sub_36764+22Aj movea.l #$F448,a2 tbls.w (a2),d3 neg.w d3 bra.s loc_369A4 ; --------------------------------------------------------------------------- loc_369A2: ; CODE XREF: sub_36764+1A6j ; sub_36764+1B2j ... clr.w d3 loc_369A4: ; CODE XREF: sub_36764+1F8j ; sub_36764+23Cj add.w (word_FFFF9504).w,d3 bvc.s loc_369B6 bpl.s loc_369B2 move.w #$7FFF,d3 bra.s loc_369B6 ; --------------------------------------------------------------------------- loc_369B2: ; CODE XREF: sub_36764+246j move.w #$8000,d3 loc_369B6: ; CODE XREF: sub_36764+244j ; sub_36764+24Cj move.w d3,(word_FFFF9504).w move.w d3,d5 ext.l d5 clr.l d3 move.w (word_FFFF9502).w,d3 add.l d5,d3 tst.l d3 blt.s loc_369D8 cmpi.l #$FFFF,d3 bls.s loc_369F8 move.w #$FFFF,d3 bra.s loc_369F8 ; --------------------------------------------------------------------------- loc_369D8: ; CODE XREF: sub_36764+264j clr.w d3 bra.s loc_369F8 ; --------------------------------------------------------------------------- loc_369DC: ; CODE XREF: sub_36764+198j move.w (word_FFFF9500).w,var_2(a6) move.w (GlobalClock).w,d4 sub.w var_2(a6),d4 cmp.w (IAC_AIRFLOW_KE_VSDI_INTEGRAL_DELAY).l,d4 bcs.s loc_369F8 move.b #1,(byte_FFFF94FE).w loc_369F8: ; CODE XREF: sub_36764+190j ; sub_36764+26Cj ... move.w d3,(ThrottleCrackerAirflow).w bra.w loc_36A84 ; --------------------------------------------------------------------------- loc_36A00: ; CODE XREF: sub_36764+AEj move.w (word_FFFFAEBC).w,d3 move.w d3,d4 clr.w d5 cmp.w d4,d6 bls.s loc_36A10 lsr.w #1,d4 bra.s loc_36A14 ; --------------------------------------------------------------------------- loc_36A10: ; CODE XREF: sub_36764+2A6j move.w #$1000,d4 loc_36A14: ; CODE XREF: sub_36764+2AAj movea.l #$F008,a2 tblu.w (a2),d4 cmp.w (word_FFFF954E).w,d4 bls.s loc_36A2A tst.b (byte_FFFF94FF).w beq.s loc_36A50 loc_36A2A: ; CODE XREF: sub_36764+2BEj cmp.w d3,d6 bls.s loc_36A32 lsr.w #1,d3 bra.s loc_36A36 ; --------------------------------------------------------------------------- loc_36A32: ; CODE XREF: sub_36764+2C8j move.w #$1000,d3 loc_36A36: ; CODE XREF: sub_36764+2CCj movea.l #$EFE6,a2 tblu.w (a2),d3 move.w (ThrottleCrackerAirflow).w,d4 sub.w d3,d4 bcs.s loc_36A4C move.w d4,d3 bra.s loc_369F8 ; --------------------------------------------------------------------------- loc_36A4C: ; CODE XREF: sub_36764+2E2j move.l d5,d3 bra.s loc_369F8 ; --------------------------------------------------------------------------- loc_36A50: ; CODE XREF: sub_36764+2C4j move.w (word_FFFF954E).w,d3 addi.w #$10,d3 bcc.s loc_36A5E move.w #$FFFF,d3 loc_36A5E: ; CODE XREF: sub_36764+2F4j move.w d3,(word_FFFF954E).w move.w d0,(ThrottleCrackerAirflow).w bra.s loc_36A84 ; --------------------------------------------------------------------------- loc_36A68: ; CODE XREF: sub_36764+9Aj move.w d0,(ThrottleCrackerAirflow).w clr.b (byte_FFFF94FF).w bra.w loc_36860 ; --------------------------------------------------------------------------- loc_36A74: ; CODE XREF: sub_36764+3Aj ; sub_36764+42j clr.w (ThrottleCrackerAirflow).w clr.w (word_FFFF954E).w clr.b (byte_FFFF94FD).w clr.b (byte_FFFF94FF).w loc_36A84: ; CODE XREF: sub_36764+100j ; sub_36764+298j ... movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_36764 ; =============== S U B R O U T I N E ======================================= sub_36A8C: ; CODE XREF: sub_35C22+6p sub_37746p ... move.w (word_FFFFB3E8).w,d3 addi.w #$400,d3 bpl.s loc_36A98 addq.w #1,d3 loc_36A98: ; CODE XREF: sub_36A8C+8j asr.w #1,d3 movea.l #$EF20,a2 tblu.w (a2),d3 move.w d3,(IacParkedAirflow).w rts ; End of function sub_36A8C ; =============== S U B R O U T I N E ======================================= sub_36AAA: ; CODE XREF: DoLoopA+38Ap movem.l d0-d1,-(sp) tst.w (StartupAirflowNonZero).w ble.w loc_36BB4 move.w (word_FFFFAEE4).w,d0 tblu.w (IAC_AIRFLOW_KV_BREAKAWAY_FRICTION_DELAY).l,d0 ; Calibration defining delay before Breakaway_Friction_Airflow starts to decay. ; CAM Revs cmp.w (word_FFFF950C).w,d0 bhi.s loc_36AE4 move.w (word_FFFF94D2).w,d3 move.w (word_FFFFAEE4).w,d5 tblu.w (IAC_AIRFLOW_KV_BREAKAWAY_AIRFLOW_VALUE).l,d5 ; Incremental value used to decay Breakaway_Friction_Airflow. ; GPS sub.w d5,d3 bcc.s loc_36ADE clr.w d3 loc_36ADE: ; CODE XREF: sub_36AAA+30j move.w d3,(word_FFFF94D2).w bra.s loc_36AF4 ; --------------------------------------------------------------------------- loc_36AE4: ; CODE XREF: sub_36AAA+1Cj move.w (word_FFFF950C).w,d3 addq.w #1,d3 bcc.s loc_36AF0 move.w #$FFFF,d3 loc_36AF0: ; CODE XREF: sub_36AAA+40j move.w d3,(word_FFFF950C).w loc_36AF4: ; CODE XREF: sub_36AAA+38j tst.b (byte_FFFF94EB).w beq.s loc_36B0E move.w (word_FFFF94D8).w,d3 sub.w (IAC_AIRFLOW_KE_START_UP_DECAY_INITIAL).l,d3 ; Calibration defining the delta airflow increment used to decay the start up airflow value ; GPS bcc.s loc_36B08 clr.w d3 loc_36B08: ; CODE XREF: sub_36AAA+5Aj move.w d3,(word_FFFF94D8).w bra.s loc_36B46 ; --------------------------------------------------------------------------- loc_36B0E: ; CODE XREF: sub_36AAA+4Ej move.w (word_FFFFAEE4).w,d3 tblu.w (IAC_AIRFLOW_KV_START_UP_DELAY_INITIAL).l,d3 ; Calibration defining number of cam revolutions before Start_Up_Airflow_Initial is reduced. ; CAM Revs move.w d3,(word_FFFF9518).w move.w (word_FFFF9516).w,d4 cmp.w d3,d4 bcs.s loc_36B40 move.w (word_FFFF94D8).w,d3 sub.w (IAC_AIRFLOW_KE_START_UP_DECAY_INITIAL).l,d3 ; Calibration defining the delta airflow increment used to decay the start up airflow value ; GPS bcc.s loc_36B34 clr.w d3 loc_36B34: ; CODE XREF: sub_36AAA+86j move.w d3,(word_FFFF94D8).w move.b #1,(byte_FFFF94EB).w bra.s loc_36B46 ; --------------------------------------------------------------------------- loc_36B40: ; CODE XREF: sub_36AAA+7Aj addq.w #1,d4 move.w d4,(word_FFFF9516).w loc_36B46: ; CODE XREF: sub_36AAA+62j ; sub_36AAA+94j tst.b (byte_FFFF94F2).w bne.s loc_36B92 clr.l d3 move.w (IAC_AIRFLOW_KE_IDLE_TO_OFFIDLE_TIME).l,d3 ; Calibration to enable reset of Breakaway_Friction_Airflow if the engine running time equals this value. ; Seconds cmp.l (EngineRunTime).w,d3 bhi.s loc_36B92 move.w (word_FFFFAEBC).w,d3 cmp.w (IAC_RPM_KE_IDLE_TO_OFFIDLE_VEHICLE_SPEED).l,d3 bcc.s loc_36B72 move.w (word_FFFFAB66).w,d3 cmp.w (IAC_RPM_KE_IDLE_TO_OFFIDLE_THROTTLE_POSI).l,d3 bcs.s loc_36B92 loc_36B72: ; CODE XREF: sub_36AAA+BAj move.b #1,(byte_FFFF94F2).w move.w (word_FFFF94D8).w,d3 mulu.w (IAC_AIRFLOW_KE_OFFIDLE_SCALAR).l,d3 divu.w #$7D0,d3 move.w d3,(word_FFFF94D8).w clr.w (word_FFFF94D2).w move.w d0,(word_FFFF950C).w loc_36B92: ; CODE XREF: sub_36AAA+A0j ; sub_36AAA+AEj ... move.w (word_FFFF94D2).w,d3 add.w (word_FFFF94D8).w,d3 tst.w d3 bge.s loc_36BA2 move.w #$7FFF,d3 loc_36BA2: ; CODE XREF: sub_36AAA+F2j move.w d3,(StartupAirflowNonZero).w tst.b (byte_FFFFA6F9).w beq.s loc_36BB4 moveq #1,d0 jsr sub_37A50 loc_36BB4: ; CODE XREF: sub_36AAA+8j ; sub_36AAA+100j movem.l (sp)+,d0-d1 rts ; End of function sub_36AAA ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_36BBA: ; CODE XREF: sub_35B80+26p var_4 = -4 link a6,#-4 movem.l d0-d2/a0,-(sp) tst.b (StartupToPidModeFlag?).w beq.s loc_36BDA clr.b (ThrottleFollowerDelayTimerActive).w move.b #1,(byte_FFFF9551).w clr.w (word_FFFF953E).w bra.w Return ; --------------------------------------------------------------------------- loc_36BDA: ; CODE XREF: sub_36BBA+Cj move.b (ThrottleFollowerDelayTimerActive).w,d0 beq.s loc_36BEC movea.l #unk_FF953C,a0 jsr sub_276F4 loc_36BEC: ; CODE XREF: sub_36BBA+24j move.w (IAC_AIRFLOW_KE_THROTTLE_FOLLOWER_TPS_HYSTERE).l,d4 move.w (word_FFFFAB66).w,d3 sub.w (word_FFFF953E).w,d3 tst.w d3 bge.s loc_36C00 neg.w d3 loc_36C00: ; CODE XREF: sub_36BBA+42j cmp.w d4,d3 bcs.s loc_36C58 move.w (word_FFFFAB66).w,d3 cmp.w (word_FFFF953E).w,d3 bcs.s loc_36C2E move.b #2,(byte_FFFF9551).w move.w (word_FFFF953E).w,d3 add.w (IAC_AIRFLOW_KE_THROTTLE_FOLLOWER_TPS_HYSTERE).l,d3 cmpi.w #$1400,d3 bls.s loc_36C28 move.w #$1400,d3 loc_36C28: ; CODE XREF: sub_36BBA+68j move.w d3,(word_FFFF953E).w bra.s loc_36C8C ; --------------------------------------------------------------------------- loc_36C2E: ; CODE XREF: sub_36BBA+52j move.b #3,(byte_FFFF9551).w move.w (word_FFFF953E).w,d3 sub.w (IAC_AIRFLOW_KE_THROTTLE_FOLLOWER_TPS_HYSTERE).l,d3 bcc.s loc_36C42 clr.w d3 loc_36C42: ; CODE XREF: sub_36BBA+84j move.w d3,(word_FFFF953E).w tst.b d0 bne.s loc_36C8C move.w (GlobalClock).w,(word_FFFF953C).w move.b #1,(ThrottleFollowerDelayTimerActive).w bra.s loc_36C8C ; --------------------------------------------------------------------------- loc_36C58: ; CODE XREF: sub_36BBA+48j cmp.w (word_FFFFAB66).w,d4 bls.s loc_36C66 tst.w (ThrottleFollowerAirflow).w bne.s loc_36C8C bra.s loc_36C7A ; --------------------------------------------------------------------------- loc_36C66: ; CODE XREF: sub_36BBA+A2j cmpi.b #3,(byte_FFFF9551).w bne.s loc_36C88 tst.w (ThrottleFollowerAirflow).w bne.s loc_36C82 tst.w (word_FFFF953E).w bne.s loc_36C82 loc_36C7A: ; CODE XREF: sub_36BBA+AAj move.b #1,(byte_FFFF9551).w bra.s loc_36C8C ; --------------------------------------------------------------------------- loc_36C82: ; CODE XREF: sub_36BBA+B8j ; sub_36BBA+BEj tst.w (word_FFFF953E).w bls.s loc_36C8C loc_36C88: ; CODE XREF: sub_36BBA+B2j clr.b (byte_FFFF9551).w loc_36C8C: ; CODE XREF: sub_36BBA+72j ; sub_36BBA+8Ej ... move.b (byte_FFFF9551).w,d3 cmpi.b #2,d3 beq.s loc_36C9A tst.b d3 bne.s loc_36CF6 ; get follower decay rate and delay time loc_36C9A: ; CODE XREF: sub_36BBA+DAj clr.b (ThrottleFollowerDelayTimerActive).w move.w (word_FFFFAB66).w,d3 cmpi.w #$B6,d3 ; '?' bhi.s loc_36CB6 andi.l #$FFFF,d3 asl.l #7,d3 divu.w #$D,d3 bra.s GetThrottleFollowerAirflow ; IAC_AIRFLOW_KV_THROTTLE_FOLLOWER_AIRFLOW ; --------------------------------------------------------------------------- loc_36CB6: ; CODE XREF: sub_36BBA+ECj cmpi.w #$12B6,d3 bcc.s loc_36CC8 lsr.w #1,d3 addi.w #$700,d3 subi.w #$5B,d3 ; '[' bra.s GetThrottleFollowerAirflow ; IAC_AIRFLOW_KV_THROTTLE_FOLLOWER_AIRFLOW ; --------------------------------------------------------------------------- loc_36CC8: ; CODE XREF: sub_36BBA+100j move.w #$1000,d3 GetThrottleFollowerAirflow: ; CODE XREF: sub_36BBA+FAj ; sub_36BBA+10Cj movea.l #$F02A,a2 ; IAC_AIRFLOW_KV_THROTTLE_FOLLOWER_AIRFLOW tblu.w (a2),d3 move.w (AnotherRpmValue).w,d5 tblu.w (IAC_AIRFLOW_KV_RPM_FOLLOWER_AIRFLOW).l,d5 ; Used to increasethe RPM follower airflow value based on engine speed ; GPS mulu.w d5,d3 divu.w #$400,d3 bvc.s loc_36CEE move.w #$FFFF,d3 loc_36CEE: ; CODE XREF: sub_36BBA+12Ej ; sub_36BBA+284j ... move.w d3,(ThrottleFollowerAirflow).w bra.w Return ; --------------------------------------------------------------------------- loc_36CF6: ; CODE XREF: sub_36BBA+DEj moveq #3,d0 ; get follower decay rate and delay time cmp.b d3,d0 bne.w loc_36E48 ; cancel delay timer? move.b (byte_FFFFA3B8).w,d4 cmpi.b #8,d4 bne.s loc_36D84 move.w (word_FFFFAEBC).w,d3 move.w d3,d4 move.w #$500,d5 cmp.w d4,d5 bcc.s loc_36D40 ; look up IAC_AIRFLOW_KV_NO_GEAR_TF_DECAY_AIRFLOW move.w #$1100,d1 cmp.w d4,d1 bcs.s loc_36D2A lsr.w #1,d4 addi.w #$500,d4 movea.w #$280,a0 bra.s loc_36D3A ; --------------------------------------------------------------------------- loc_36D2A: ; CODE XREF: sub_36BBA+162j cmpi.w #$2900,d4 bcc.s loc_36D3E lsr.w #2,d4 addi.w #$B00,d4 movea.w #$440,a0 loc_36D3A: ; CODE XREF: sub_36BBA+16Ej sub.w a0,d4 bra.s loc_36D40 ; look up IAC_AIRFLOW_KV_NO_GEAR_TF_DECAY_AIRFLOW ; --------------------------------------------------------------------------- loc_36D3E: ; CODE XREF: sub_36BBA+174j move.l d1,d4 loc_36D40: ; CODE XREF: sub_36BBA+15Aj ; sub_36BBA+182j movea.l #$EF34,a2 ; look up IAC_AIRFLOW_KV_NO_GEAR_TF_DECAY_AIRFLOW tblu.w (a2),d4 move.w d4,(ThrottleFollowerDecayRate).w cmp.w d3,d5 bcc.s loc_36D7A ; IAC_AIRFLOW_KV_NO_GEAR_TF_DELAY_TIME cmpi.w #$1100,d3 bhi.s loc_36D64 lsr.w #1,d3 addi.w #$500,d3 subi.w #$280,d3 bra.s loc_36D7A ; IAC_AIRFLOW_KV_NO_GEAR_TF_DELAY_TIME ; --------------------------------------------------------------------------- loc_36D64: ; CODE XREF: sub_36BBA+19Cj cmpi.w #$2900,d3 bcc.s loc_36D76 lsr.w #2,d3 addi.w #$B00,d3 subi.w #$440,d3 bra.s loc_36D7A ; IAC_AIRFLOW_KV_NO_GEAR_TF_DELAY_TIME ; --------------------------------------------------------------------------- loc_36D76: ; CODE XREF: sub_36BBA+1AEj move.w #$1100,d3 loc_36D7A: ; CODE XREF: sub_36BBA+196j ; sub_36BBA+1A8j ... movea.l #$EF58,a2 ; IAC_AIRFLOW_KV_NO_GEAR_TF_DELAY_TIME bra.w loc_36E1A ; --------------------------------------------------------------------------- loc_36D84: ; CODE XREF: sub_36BBA+14Cj move.w (word_FFFFAEBC).w,d3 tst.b d4 bhi.s loc_36D90 clr.b d4 bra.s loc_36D96 ; --------------------------------------------------------------------------- loc_36D90: ; CODE XREF: sub_36BBA+1D0j cmp.b d4,d0 bhi.s loc_36D96 move.l d0,d4 loc_36D96: ; CODE XREF: sub_36BBA+1D4j ; sub_36BBA+1D8j move.w #$500,d5 cmp.w d3,d5 bcc.s ThrottleFollowerDecay move.w #$1100,d1 cmp.w d3,d1 bcs.s loc_36DB2 lsr.w #1,d3 addi.w #$500,d3 movea.w #$280,a0 bra.s loc_36DC2 ; --------------------------------------------------------------------------- loc_36DB2: ; CODE XREF: sub_36BBA+1EAj cmpi.w #$2900,d3 bcc.s loc_36DC6 lsr.w #2,d3 addi.w #$B00,d3 movea.w #$440,a0 loc_36DC2: ; CODE XREF: sub_36BBA+1F6j sub.w a0,d3 bra.s ThrottleFollowerDecay ; --------------------------------------------------------------------------- loc_36DC6: ; CODE XREF: sub_36BBA+1FCj move.l d1,d3 ThrottleFollowerDecay: ; CODE XREF: sub_36BBA+1E2j ; sub_36BBA+20Aj andi.w #$FF,d4 mulu.w #$24,d4 ; '$' lea $F08C.l(d4.l),a2 ; IAC_AIRFLOW_KA_GEAR_TF_DECAY_AIRFLOW move.l a2,var_4(a6) tblu.w (a2),d3 move.w d3,(ThrottleFollowerDecayRate).w move.w (word_FFFFAEBC).w,d3 cmp.w d3,d5 bcc.s loc_36E14 cmpi.w #$1100,d3 bhi.s loc_36DFE lsr.w #1,d3 addi.w #$500,d3 subi.w #$280,d3 bra.s loc_36E14 ; --------------------------------------------------------------------------- loc_36DFE: ; CODE XREF: sub_36BBA+236j cmpi.w #$2900,d3 bcc.s loc_36E10 lsr.w #2,d3 addi.w #$B00,d3 subi.w #$440,d3 bra.s loc_36E14 ; --------------------------------------------------------------------------- loc_36E10: ; CODE XREF: sub_36BBA+248j move.w #$1100,d3 loc_36E14: ; CODE XREF: sub_36BBA+230j ; sub_36BBA+242j ... movea.l #$EEFC,a2 loc_36E1A: ; CODE XREF: sub_36BBA+1C6j tblu.w (a2),d3 move.w d3,(word_FFFF953A).w move.w (word_FFFF953C).w,var_4(a6) move.w (GlobalClock).w,d3 sub.w var_4(a6),d3 cmp.w (word_FFFF953A).w,d3 bcs.s Return move.w (ThrottleFollowerAirflow).w,d3 sub.w (ThrottleFollowerDecayRate).w,d3 bcc.w loc_36CEE clr.w d3 bra.w loc_36CEE ; --------------------------------------------------------------------------- loc_36E48: ; CODE XREF: sub_36BBA+140j cmpi.b #1,d3 ; cancel delay timer? bne.s Return clr.b (ThrottleFollowerDelayTimerActive).w ; cancel delay timer Return: ; CODE XREF: sub_36BBA+1Cj ; sub_36BBA+138j ... movem.l (sp)+,d0-d2/a0 unlk a6 rts ; End of function sub_36BBA ; =============== S U B R O U T I N E ======================================= sub_36E5A: ; CODE XREF: sub_35B80+44p move.b (byte_FF86B0).l,d3 cmpi.b #2,d3 bne.s loc_36E72 move.b #$10,(IdleControlMode_DriveNeutral_AcOrNot).w loc_36E6C: ; CODE XREF: sub_36E5A+2Cj move.w (IacParkedAirflow).w,d3 bra.s loc_36EA2 ; --------------------------------------------------------------------------- loc_36E72: ; CODE XREF: sub_36E5A+Aj cmpi.b #1,d3 beq.s loc_36E80 moveq #$F,d3 cmp.b (IdleControlMode_DriveNeutral_AcOrNot).w,d3 bne.s loc_36E88 loc_36E80: ; CODE XREF: sub_36E5A+1Cj move.b #$F,(IdleControlMode_DriveNeutral_AcOrNot).w bra.s loc_36E6C ; --------------------------------------------------------------------------- loc_36E88: ; CODE XREF: sub_36E5A+24j move.b (byte_FFFF94CB).w,d3 cmpi.b #$1E,d3 bne.s loc_36E9A move.b (byte_FFFF94CA).w,(IdleControlMode_DriveNeutral_AcOrNot).w bra.s loc_36E9E ; --------------------------------------------------------------------------- loc_36E9A: ; CODE XREF: sub_36E5A+36j move.b d3,(IdleControlMode_DriveNeutral_AcOrNot).w loc_36E9E: ; CODE XREF: sub_36E5A+3Ej move.w (IdleBaseAirflow_Candidate?).w,d3 loc_36EA2: ; CODE XREF: sub_36E5A+16j andi.l #$FFFF,d3 move.l d3,(IdleBaseAirflow?).w rts ; End of function sub_36E5A ; =============== S U B R O U T I N E ======================================= sub_36EAE: ; CODE XREF: sub_35B80:loc_35BB2p clr.l d5 move.w (ThrottleCrackerAirflow).w,d5 clr.l d3 move.w (ThrottleFollowerAirflow).w,d3 add.l d5,d3 move.w (word_FFFF950A).w,d4 ext.l d4 add.l d3,d4 bvc.s loc_36ECA bmi.s loc_36EDA bra.s loc_36EE0 ; --------------------------------------------------------------------------- loc_36ECA: ; CODE XREF: sub_36EAE+16j tst.l d4 blt.s loc_36EE0 cmpi.l #$FFFF,d4 bhi.s loc_36EDA move.w d4,d3 bra.s loc_36EE2 ; --------------------------------------------------------------------------- loc_36EDA: ; CODE XREF: sub_36EAE+18j ; sub_36EAE+26j move.w #$FFFF,d3 bra.s loc_36EE2 ; --------------------------------------------------------------------------- loc_36EE0: ; CODE XREF: sub_36EAE+1Aj ; sub_36EAE+1Ej clr.w d3 loc_36EE2: ; CODE XREF: sub_36EAE+2Aj ; sub_36EAE+30j move.w d3,(ThrottleCrackerPlusFollower).w tst.w (word_FFFF950A).w bne.s loc_36EF8 tst.w (ThrottleFollowerAirflow).w beq.s loc_36F08 tst.w (ThrottleCrackerAirflow).w beq.s loc_36F00 loc_36EF8: ; CODE XREF: sub_36EAE+3Cj move.b #$19,(byte_FFFF94D0).w bra.s locret_36F1A ; --------------------------------------------------------------------------- loc_36F00: ; CODE XREF: sub_36EAE+48j move.b #$1A,(byte_FFFF94D0).w bra.s locret_36F1A ; --------------------------------------------------------------------------- loc_36F08: ; CODE XREF: sub_36EAE+42j tst.w (ThrottleCrackerAirflow).w beq.s loc_36F16 move.b #9,(byte_FFFF94D0).w bra.s locret_36F1A ; --------------------------------------------------------------------------- loc_36F16: ; CODE XREF: sub_36EAE+5Ej clr.b (byte_FFFF94D0).w locret_36F1A: ; CODE XREF: sub_36EAE+50j ; sub_36EAE+58j ... rts ; End of function sub_36EAE ; =============== S U B R O U T I N E ======================================= sub_36F1C: ; CODE XREF: sub_35B80+38p ; sub_3774E+138p movem.l d0-d2,-(sp) tst.b (byte_FFFFA6F9).w bne.s loc_36F36 move.w (word_FFFF9514).w,d3 ext.l d3 move.w (StartupAirflowNonZero).w,d0 ext.l d0 add.l d3,d0 bra.s loc_36F3C ; --------------------------------------------------------------------------- loc_36F36: ; CODE XREF: sub_36F1C+8j move.w (word_FFFF9514).w,d0 ext.l d0 loc_36F3C: ; CODE XREF: sub_36F1C+18j clr.l d2 move.w (ThrottleCrackerPlusFollower).w,d2 add.l d0,d2 bvc.s loc_36F4A bmi.s loc_36F4E bra.s loc_36F56 ; --------------------------------------------------------------------------- loc_36F4A: ; CODE XREF: sub_36F1C+28j move.l d2,d0 bra.s loc_36F5C ; --------------------------------------------------------------------------- loc_36F4E: ; CODE XREF: sub_36F1C+2Aj move.l #$7FFFFFFF,d0 bra.s loc_36F5C ; --------------------------------------------------------------------------- loc_36F56: ; CODE XREF: sub_36F1C+2Cj move.l #$80000000,d0 loc_36F5C: ; CODE XREF: sub_36F1C+30j ; sub_36F1C+38j clr.l d2 move.w (word_FFFF9510).w,d2 add.l d0,d2 bvc.s loc_36F6A bmi.s loc_36F6E bra.s loc_36F76 ; --------------------------------------------------------------------------- loc_36F6A: ; CODE XREF: sub_36F1C+48j move.l d2,d0 bra.s loc_36F7C ; --------------------------------------------------------------------------- loc_36F6E: ; CODE XREF: sub_36F1C+4Aj move.l #$7FFFFFFF,d0 bra.s loc_36F7C ; --------------------------------------------------------------------------- loc_36F76: ; CODE XREF: sub_36F1C+4Cj move.l #$80000000,d0 loc_36F7C: ; CODE XREF: sub_36F1C+50j ; sub_36F1C+58j clr.l d2 move.w (word_FFFF950E).w,d2 add.l d0,d2 bvc.s loc_36F8A bmi.s loc_36F8E bra.s loc_36F96 ; --------------------------------------------------------------------------- loc_36F8A: ; CODE XREF: sub_36F1C+68j move.l d2,d0 bra.s loc_36F9C ; --------------------------------------------------------------------------- loc_36F8E: ; CODE XREF: sub_36F1C+6Aj move.l #$7FFFFFFF,d0 bra.s loc_36F9C ; --------------------------------------------------------------------------- loc_36F96: ; CODE XREF: sub_36F1C+6Cj move.l #$80000000,d0 loc_36F9C: ; CODE XREF: sub_36F1C+70j ; sub_36F1C+78j tst.b (byte_FFFF94EE).w bne.s loc_36FBC clr.b d3 cmpi.b #8,(byte_FFFFA3B8).w bne.s loc_36FB6 cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_36FB8 loc_36FB6: ; CODE XREF: sub_36F1C+8Ej addq.b #1,d3 loc_36FB8: ; CODE XREF: sub_36F1C+98j move.b d3,(byte_FFFF94FA).w loc_36FBC: ; CODE XREF: sub_36F1C+84j jsr sub_3799E tst.b (byte_FFFF94FA).w beq.s loc_3700C move.w (word_FFFF9540).w,d2 ext.l d2 add.l d0,d2 bvc.s loc_36FD6 bmi.s loc_36FDA bra.s loc_36FE2 ; --------------------------------------------------------------------------- loc_36FD6: ; CODE XREF: sub_36F1C+B4j move.l d2,d0 bra.s loc_36FE8 ; --------------------------------------------------------------------------- loc_36FDA: ; CODE XREF: sub_36F1C+B6j move.l #$7FFFFFFF,d0 bra.s loc_36FE8 ; --------------------------------------------------------------------------- loc_36FE2: ; CODE XREF: sub_36F1C+B8j move.l #$80000000,d0 loc_36FE8: ; CODE XREF: sub_36F1C+BCj ; sub_36F1C+C4j move.w (IdleTrimDrive).w,d2 ext.l d2 add.l d0,d2 bvc.s loc_36FF6 bmi.s loc_36FFA bra.s loc_37002 ; --------------------------------------------------------------------------- loc_36FF6: ; CODE XREF: sub_36F1C+D4j move.l d2,d0 bra.s loc_37008 ; --------------------------------------------------------------------------- loc_36FFA: ; CODE XREF: sub_36F1C+D6j move.l #$7FFFFFFF,d0 bra.s loc_37008 ; --------------------------------------------------------------------------- loc_37002: ; CODE XREF: sub_36F1C+D8j move.l #$80000000,d0 loc_37008: ; CODE XREF: sub_36F1C+DCj ; sub_36F1C+E4j moveq #3,d1 bra.s loc_3704E ; --------------------------------------------------------------------------- loc_3700C: ; CODE XREF: sub_36F1C+AAj move.w (DesiredAirflow).w,d2 ext.l d2 add.l d0,d2 bvc.s loc_3701A bmi.s loc_3701E bra.s loc_37026 ; --------------------------------------------------------------------------- loc_3701A: ; CODE XREF: sub_36F1C+F8j move.l d2,d0 bra.s loc_3702C ; --------------------------------------------------------------------------- loc_3701E: ; CODE XREF: sub_36F1C+FAj move.l #$7FFFFFFF,d0 bra.s loc_3702C ; --------------------------------------------------------------------------- loc_37026: ; CODE XREF: sub_36F1C+FCj move.l #$80000000,d0 loc_3702C: ; CODE XREF: sub_36F1C+100j ; sub_36F1C+108j move.w (IdleTrimParkNeutral).w,d2 ext.l d2 add.l d0,d2 bvc.s loc_3703A bmi.s loc_3703E bra.s loc_37046 ; --------------------------------------------------------------------------- loc_3703A: ; CODE XREF: sub_36F1C+118j move.l d2,d0 bra.s loc_3704C ; --------------------------------------------------------------------------- loc_3703E: ; CODE XREF: sub_36F1C+11Aj move.l #$7FFFFFFF,d0 bra.s loc_3704C ; --------------------------------------------------------------------------- loc_37046: ; CODE XREF: sub_36F1C+11Cj move.l #$80000000,d0 loc_3704C: ; CODE XREF: sub_36F1C+120j ; sub_36F1C+128j moveq #$12,d1 loc_3704E: ; CODE XREF: sub_36F1C+EEj jsr sub_366E4 clr.l d3 move.w (word_FFFF954A).w,d3 add.l d0,d3 bvc.s loc_37062 bmi.s loc_37066 bra.s loc_3706E ; --------------------------------------------------------------------------- loc_37062: ; CODE XREF: sub_36F1C+140j move.l d3,d0 bra.s loc_37074 ; --------------------------------------------------------------------------- loc_37066: ; CODE XREF: sub_36F1C+142j move.l #$7FFFFFFF,d0 bra.s loc_37074 ; --------------------------------------------------------------------------- loc_3706E: ; CODE XREF: sub_36F1C+144j move.l #$80000000,d0 loc_37074: ; CODE XREF: sub_36F1C+148j ; sub_36F1C+150j tst.w (word_FFFF94C0).w bgt.s loc_37082 btst #1,(byte_FFFFAD8A).w beq.s loc_370C8 loc_37082: ; CODE XREF: sub_36F1C+15Cj move.w (word_FFFF94C0).w,d3 ext.l d3 add.l d0,d3 bvc.s loc_37090 bmi.s loc_37094 bra.s loc_3709C ; --------------------------------------------------------------------------- loc_37090: ; CODE XREF: sub_36F1C+16Ej move.l d3,d0 bra.s loc_370A2 ; --------------------------------------------------------------------------- loc_37094: ; CODE XREF: sub_36F1C+170j move.l #$7FFFFFFF,d0 bra.s loc_370A2 ; --------------------------------------------------------------------------- loc_3709C: ; CODE XREF: sub_36F1C+172j move.l #$80000000,d0 loc_370A2: ; CODE XREF: sub_36F1C+176j ; sub_36F1C+17Ej tst.l d0 blt.s loc_370B4 cmpi.l #$FFFF,d0 bls.s loc_370B6 move.w #$FFFF,d0 bra.s loc_370B6 ; --------------------------------------------------------------------------- loc_370B4: ; CODE XREF: sub_36F1C+188j clr.w d0 loc_370B6: ; CODE XREF: sub_36F1C+190j ; sub_36F1C+196j move.w d0,(IdleBaseAirflow_Candidate?).w cmpi.b #3,d1 bne.s loc_370C4 moveq #5,d1 bra.s loc_370E0 ; --------------------------------------------------------------------------- loc_370C4: ; CODE XREF: sub_36F1C+1A2j moveq #$13,d1 bra.s loc_370E0 ; --------------------------------------------------------------------------- loc_370C8: ; CODE XREF: sub_36F1C+164j tst.l d0 blt.s loc_370DA cmpi.l #$FFFF,d0 bls.s loc_370DC move.w #$FFFF,d0 bra.s loc_370DC ; --------------------------------------------------------------------------- loc_370DA: ; CODE XREF: sub_36F1C+1AEj clr.w d0 loc_370DC: ; CODE XREF: sub_36F1C+1B6j ; sub_36F1C+1BCj move.w d0,(IdleBaseAirflow_Candidate?).w loc_370E0: ; CODE XREF: sub_36F1C+1A6j ; sub_36F1C+1AAj move.b d1,(byte_FFFF94CA).w tst.b (byte_FFFFA6F9).w beq.s loc_37134 tst.w (ThrottleCrackerPlusFollower).w bne.s loc_37134 tst.w (word_FFFF9514).w bne.s loc_37134 tst.w (word_FFFF950E).w bne.s loc_3712E cmpi.b #3,d1 bne.s loc_3710A move.b #4,(byte_FFFF94CB).w bra.s loc_37148 ; --------------------------------------------------------------------------- loc_3710A: ; CODE XREF: sub_36F1C+1E4j cmpi.b #5,d1 bne.s loc_37118 move.b #6,(byte_FFFF94CB).w bra.s loc_37148 ; --------------------------------------------------------------------------- loc_37118: ; CODE XREF: sub_36F1C+1F2j cmpi.b #$12,d1 bne.s loc_37126 move.b #$15,(byte_FFFF94CB).w bra.s loc_37148 ; --------------------------------------------------------------------------- loc_37126: ; CODE XREF: sub_36F1C+200j move.b #$14,(byte_FFFF94CB).w bra.s loc_37148 ; --------------------------------------------------------------------------- loc_3712E: ; CODE XREF: sub_36F1C+1DEj move.b d1,(byte_FFFF94CB).w bra.s loc_37148 ; --------------------------------------------------------------------------- loc_37134: ; CODE XREF: sub_36F1C+1CCj ; sub_36F1C+1D2j ... tst.w (ThrottleCrackerPlusFollower).w beq.s loc_37142 move.b (byte_FFFF94D0).w,(byte_FFFF94CB).w bra.s loc_37148 ; --------------------------------------------------------------------------- loc_37142: ; CODE XREF: sub_36F1C+21Cj move.b #$1E,(byte_FFFF94CB).w loc_37148: ; CODE XREF: sub_36F1C+1ECj ; sub_36F1C+1FAj ... movem.l (sp)+,d0-d2 rts ; End of function sub_36F1C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame IsIdleAirLearningActive: ; CODE XREF: sub_35BEC+26p var_7ED0 = -$7ED0 var_4 = -4 link a6,#-4 movem.l d0-d2/d6-a0,-(sp) clr.b d6 btst #1,(byte_FFFF88D0).w bne.s loc_371A8 btst #1,(byte_FFFF8A10).w bne.s loc_371A8 btst #1,(byte_FFFF88CE).w bne.s loc_371A8 btst #1,(byte_FFFF8A12).w bne.s loc_371A8 btst #1,(byte_FFFF88CC).w bne.s loc_371A8 btst #5,(byte_FFFFB486).w bne.s loc_371A8 btst #4,(byte_FFFFB486).w bne.s loc_371A8 btst #3,(byte_FFFFB486).w bne.s loc_371A8 btst #2,(byte_FFFFB486).w bne.s loc_371A8 btst #1,(byte_FFFFB486).w beq.s loc_371AA loc_371A8: ; CODE XREF: IsIdleAirLearningActive+10j ; IsIdleAirLearningActive+18j ... addq.b #1,d6 loc_371AA: ; CODE XREF: IsIdleAirLearningActive+58j move.b d6,(byte_FFFF94F5).w clr.b d2 btst #1,(byte_FFFF88C6).w bne.s loc_371E0 btst #1,(byte_FFFF88C8).w bne.s loc_371E0 btst #1,(byte_FFFF88CA).w bne.s loc_371E0 btst #7,(byte_FFFFB484).w bne.s loc_371E0 btst #6,(byte_FFFFB484).w bne.s loc_371E0 btst #5,(byte_FFFFB484).w beq.s loc_371E2 loc_371E0: ; CODE XREF: IsIdleAirLearningActive+68j ; IsIdleAirLearningActive+70j ... addq.b #1,d2 loc_371E2: ; CODE XREF: IsIdleAirLearningActive+90j move.b d2,(byte_FFFF94F6).w clr.b d4 btst #1,(byte_FFFF88D6).w bne.s loc_37218 btst #1,(byte_FFFF8A14).w bne.s loc_37218 btst #1,(byte_FFFF88D4).w bne.s loc_37218 btst #1,(byte_FFFF8A16).w bne.s loc_37218 btst #2,(byte_FFFFB487).w bne.s loc_37218 btst #3,(byte_FFFFB487).w beq.s loc_3721A loc_37218: ; CODE XREF: IsIdleAirLearningActive+A0j ; IsIdleAirLearningActive+A8j ... addq.b #1,d4 loc_3721A: ; CODE XREF: IsIdleAirLearningActive+C8j move.b d4,(byte_FFFF94F7).w clr.b d0 btst #1,(byte_FFFF899E).w bne.s loc_37240 btst #1,(byte_FFFF89A0).w bne.s loc_37240 btst #5,(byte_FFFFB487).w bne.s loc_37240 btst #6,(byte_FFFFB487).w beq.s loc_37242 loc_37240: ; CODE XREF: IsIdleAirLearningActive+D8j ; IsIdleAirLearningActive+E0j ... addq.b #1,d0 loc_37242: ; CODE XREF: IsIdleAirLearningActive+F0j move.b d0,(byte_FFFF94F3).w clr.b d1 or.b d2,d6 bne.s loc_37268 tst.b d4 bne.s loc_37268 tst.b d0 bne.s loc_37268 tst.b (byte_FFFFB370).w beq.s loc_37260 move.b (byte_FFFFA302).w,d3 bra.s loc_37264 ; --------------------------------------------------------------------------- loc_37260: ; CODE XREF: IsIdleAirLearningActive+10Aj move.b (byte_FFFFABDA).w,d3 loc_37264: ; CODE XREF: IsIdleAirLearningActive+110j tst.b d3 beq.s loc_3726A loc_37268: ; CODE XREF: IsIdleAirLearningActive+FCj ; IsIdleAirLearningActive+100j ... addq.b #1,d1 loc_3726A: ; CODE XREF: IsIdleAirLearningActive+118j move.b d1,(byte_FFFF94EF).w tst.b (byte_FFFFB336).w beq.s loc_3727E move.l (unk_FFFFB542).w,(dword_FFFF957C).w clr.b (byte_FFFFB336).w loc_3727E: ; CODE XREF: IsIdleAirLearningActive+124j move.w (EngineRPM_PID_000C___).w,d2 move.w (CoolantTemperatureOrDefault).w,d3 clr.b d0 move.w (IAC_AIRFLOW_KE_AIR_LEARN_COOLANT_TMP_MIDDLE).l,d4 ; Minimum coolant temperature at which Air Flow Learning can be enabled without interfering with any idle mode ; Degrees_C cmp.w d4,d3 blt.s loc_3729A cmp.w (IAC_AIRFLOW_KE_AIR_LEARN_COOLANT_TMP_HIGH).l,d3 ; Maximum coolant temperature at which Air Flow Learning can be enabled without interfering with any idle mode ; Degrees_C ble.s loc_372B0 loc_3729A: ; CODE XREF: IsIdleAirLearningActive+142j cmp.w (IAC_AIRFLOW_KE_AIR_LEARN_COOLANT_TMP_LOW).l,d3 ; Minimum coolant temperature at which Air Flow Learning can be enabled without interfering with Closed Loop Idle mode ; Degrees_C blt.s loc_372AE cmp.w d4,d3 bge.s loc_372AE moveq #1,d6 cmp.b (IdleControlMode).w,d6 beq.s loc_372B0 loc_372AE: ; CODE XREF: IsIdleAirLearningActive+152j ; IsIdleAirLearningActive+156j addq.b #1,d0 loc_372B0: ; CODE XREF: IsIdleAirLearningActive+14Aj ; IsIdleAirLearningActive+15Ej move.b d0,(byte_FFFF94ED).w movea.l #unk_FF9568,a0 jsr sub_276F4 clr.w d4 or.b d1,d0 bne.w loc_3735E tst.b (byte_FFFFA0F8).w beq.w loc_3735E cmp.w (IAC_AIRFLOW_KE_AIR_LEARN_ENGINE_SPEED_MIN).l,d2 ; MIN engine speed to allow air learning. ; RPM bls.w loc_3735E cmp.w (IAC_AIRFLOW_KE_AIR_LEARN_ENGINE_SPEED_MAX).l,d2 ; MAX engine speed to allow air learning. ; RPM bcc.s loc_3735E move.w (word_FFFFA0CC).w,d3 mulu.w #$7D,d3 ; '}' divu.w #$40,d3 ; '@' bvc.s loc_372F4 move.w #$FFFF,d3 loc_372F4: ; CODE XREF: IsIdleAirLearningActive+1A0j sub.w (word_FFFFA2FC).w,d3 bcc.s loc_372FC neg.w d3 loc_372FC: ; CODE XREF: IsIdleAirLearningActive+1AAj cmp.w (IAC_AIRFLOW_KE_AIR_LEARN_AIRFLOW_CORR_THRESH).l,d3 ; Allowable variation between MAF and MAP based airflows to allow learning. ; Milligrams_Per_Cylinder bcc.s loc_3735E move.w (word_FFFF9568).w,var_4(a6) move.w (GlobalClock).w,d3 sub.w var_4(a6),d3 cmp.w (IAC_AIRFLOW_KE_AIR_LEARN_STAB_TIMER).l,d3 ; Limits learning from occuring every loop to reduce problems with transients. ; Seconds bcs.s loc_3735E move.w (word_FFFF956E).w,d3 sub.w (word_FFFFA598).w,d3 bcc.s loc_37326 neg.w d3 loc_37326: ; CODE XREF: IsIdleAirLearningActive+1D4j cmp.w (IAC_AIRFLOW_KE_AIR_LEARN_IND_THRT_PSTN_STAB).l,d3 ; Maximum allowable variation in indicated Throttle Position to allow learning. ; Percent bcc.s loc_3735E cmpi.w #$2C0,(DBW_Desired_Throttle_Area?__OrThrottleMode?).w bcc.s loc_3735E move.w (word_FFFFB298).w,d3 cmp.w (IAC_AIRFLOW_KE_AIR_LEARN_LOW_VACUUM_DISABLE).l,d3 ; Minimum allowable vacuum to allow learning. ; kPa bls.s loc_3735E tst.b (byte_FFFF94FB).w bne.s loc_37360 move.l (dword_FFFF957C).w,var_4(a6) move.l (unk_FFFFB542).w,d3 sub.l var_4(a6),d3 cmp.l (IAC_AIRFLOW_KE_TIME_SINCE_BARO_UPDATED).l,d3 ; Maxmimum time allowed without Baro update before disabling Airflow Learning. ; Seconds_L blt.s loc_37360 loc_3735E: ; CODE XREF: IsIdleAirLearningActive+176j ; IsIdleAirLearningActive+17Ej ... addq.b #1,d4 loc_37360: ; CODE XREF: IsIdleAirLearningActive+1F8j ; IsIdleAirLearningActive+20Ej move.b d4,(byte_FFFF94EC).w tst.b d4 bne.w loc_37716 move.l (dword_FFFF9556).w,d3 divu.w #8,d3 bvc.s loc_37378 move.w #$FFFF,d3 loc_37378: ; CODE XREF: IsIdleAirLearningActive+224j move.w d3,(word_FFFF955A).w move.w (word_FFFFA0DC).w,d0 bls.s loc_373AE clr.l d5 move.w d0,d5 andi.l #$FFFF,d3 sub.l d5,d3 move.l d3,(dword_FFFF9574).w andi.l #$FFFF,d0 move.l d3,d6 move.l #$1000,d7 muls.l d7,d3:d6 divs.l d0,d3:d6 move.l d6,(dword_FFFF9564).w bra.s loc_373B4 ; --------------------------------------------------------------------------- loc_373AE: ; CODE XREF: IsIdleAirLearningActive+232j move.b #1,(byte_FFFF94F0).w loc_373B4: ; CODE XREF: IsIdleAirLearningActive+25Ej move.w (DBW_Desired_Throttle_Area?__OrThrottleMode?).w,d3 tst.l (dword_FFFF9564).w ble.s loc_373EA movea.w #$1500,a2 cmpi.w #$2A0,d3 bcc.s loc_373D0 clr.l d4 move.w d3,d4 asl.l #3,d4 bra.s loc_373D4 ; --------------------------------------------------------------------------- loc_373D0: ; CODE XREF: IsIdleAirLearningActive+278j move.w #$1500,d4 loc_373D4: ; CODE XREF: IsIdleAirLearningActive+280j move.l d4,d5 lsr.w #8,d5 move.b d5,(byte_FFFF956C).w tblu.w (IAC_AIRFLOW_KV_AIR_LEARN_RATE_LIMIT_UP).l,d4 ; Rate limit constant for increasing airflow. ; Percent_Area move.w d4,(word_FFFF9580).w bra.s loc_37418 ; --------------------------------------------------------------------------- loc_373EA: ; CODE XREF: IsIdleAirLearningActive+26Ej clr.w d4 movea.w #$1500,a2 cmpi.w #$2A0,d3 bcc.s loc_373FE clr.l d0 move.w d3,d0 asl.l #3,d0 bra.s loc_37402 ; --------------------------------------------------------------------------- loc_373FE: ; CODE XREF: IsIdleAirLearningActive+2A6j move.w #$1500,d0 loc_37402: ; CODE XREF: IsIdleAirLearningActive+2AEj move.l d0,d5 lsr.w #8,d5 move.b d5,(byte_FFFF956C).w tblu.w (IAC_AIRFLOW_KV_AIR_LEARN_RATE_LIMIT_DOWN).l,d0 ; Rate limit constant for increasing airflow. ; Percent_Area sub.w d0,d4 move.w d4,(word_FFFF956A).w loc_37418: ; CODE XREF: IsIdleAirLearningActive+29Aj move.w d4,(word_FFFF9578).w andi.l #$FFFF,d3 muls.l (dword_FFFF9564).w,d3 bvs.s loc_37436 move.w #$1000,d2 divs.w d2,d3 bvc.s loc_3743A swap d3 eor.w d2,d3 loc_37436: ; CODE XREF: IsIdleAirLearningActive+2DAj bmi.s loc_3744E bra.s loc_37448 ; --------------------------------------------------------------------------- loc_3743A: ; CODE XREF: IsIdleAirLearningActive+2E2j cmpi.w #$2800,d3 bgt.s loc_37448 cmpi.w #$D800,d3 blt.s loc_3744E bra.s loc_37452 ; --------------------------------------------------------------------------- loc_37448: ; CODE XREF: IsIdleAirLearningActive+2EAj ; IsIdleAirLearningActive+2F0j move.w #$2800,d3 bra.s loc_37452 ; --------------------------------------------------------------------------- loc_3744E: ; CODE XREF: IsIdleAirLearningActive:loc_37436j ; IsIdleAirLearningActive+2F6j move.w #$D800,d3 loc_37452: ; CODE XREF: IsIdleAirLearningActive+2F8j ; IsIdleAirLearningActive+2FEj move.w d3,(word_FFFF957A).w move.w (word_FFFF9578).w,d2 bge.s loc_3745E neg.w d2 loc_3745E: ; CODE XREF: IsIdleAirLearningActive+30Cj tst.w d3 bge.s loc_37464 neg.w d3 loc_37464: ; CODE XREF: IsIdleAirLearningActive+312j cmp.w d2,d3 bls.s loc_3748C clr.w d2 move.b (byte_FFFF956C).w,d2 move.w (word_FFFF9578).w,d3 add.w word_FFFF814C(d2.w*2),d3 cmpi.w #$2800,d3 bgt.s loc_37486 cmpi.w #$D800,d3 blt.s loc_374A8 bra.s loc_374AC ; --------------------------------------------------------------------------- loc_37486: ; CODE XREF: IsIdleAirLearningActive+32Ej ; IsIdleAirLearningActive+352j move.w #$2800,d3 bra.s loc_374AC ; --------------------------------------------------------------------------- loc_3748C: ; CODE XREF: IsIdleAirLearningActive+318j clr.w d2 move.b (byte_FFFF956C).w,d2 move.w (word_FFFF957A).w,d3 add.w word_FFFF814C(d2.w*2),d3 cmpi.w #$2800,d3 bgt.s loc_37486 cmpi.w #$D800,d3 bge.s loc_374AC loc_374A8: ; CODE XREF: IsIdleAirLearningActive+334j move.w #$D800,d3 loc_374AC: ; CODE XREF: IsIdleAirLearningActive+336j ; IsIdleAirLearningActive+33Cj ... move.w d3,(word_FFFF9560).w move.b (byte_FFFF956C).w,d2 move.l d2,d0 cmpi.b #$15,d0 bcc.s loc_374BE addq.b #1,d0 loc_374BE: ; CODE XREF: IsIdleAirLearningActive+36Cj andi.w #$FF,d0 move.w word_FFFF814C(d0.w*2),d4 move.w d4,(word_FFFF955E).w move.l d2,d1 tst.b d1 bls.s loc_374D4 subq.b #1,d1 loc_374D4: ; CODE XREF: IsIdleAirLearningActive+382j andi.w #$FF,d1 move.w word_FFFF814C(d1.w*2),d3 move.w d3,(word_FFFF955C).w clr.w (word_FFFF9570).w clr.w (word_FFFF9572).w cmp.w d4,d3 bne.s loc_3751E sub.w (IAC_AIRFLOW_KE_AIR_LEARN_MAX_DELTA).l,d3 ; Maximum allowable difference between two adjacent cell in Air_Learn Correction array. ; Percent_Area_S cmpi.w #$2800,d3 bgt.s loc_37502 cmpi.w #$D800,d3 blt.s loc_37508 bra.s loc_3750C ; --------------------------------------------------------------------------- loc_37502: ; CODE XREF: IsIdleAirLearningActive+3AAj move.w #$2800,d3 bra.s loc_3750C ; --------------------------------------------------------------------------- loc_37508: ; CODE XREF: IsIdleAirLearningActive+3B0j move.w #$D800,d3 loc_3750C: ; CODE XREF: IsIdleAirLearningActive+3B2j ; IsIdleAirLearningActive+3B8j move.w d3,(word_FFFF9570).w move.l d4,d3 bra.w loc_37672 ; --------------------------------------------------------------------------- loc_37516: ; CODE XREF: IsIdleAirLearningActive+52Ej ; IsIdleAirLearningActive+548j move.w #$2800,d3 bra.w loc_376A4 ; --------------------------------------------------------------------------- loc_3751E: ; CODE XREF: IsIdleAirLearningActive+39Ej sub.w (IAC_AIRFLOW_KE_AIR_LEARN_MAX_DELTA).l,d3 ; Maximum allowable difference between two adjacent cell in Air_Learn Correction array. ; Percent_Area_S cmpi.w #$2800,d3 bgt.s loc_37532 cmpi.w #$D800,d3 blt.s loc_37538 bra.s loc_3753C ; --------------------------------------------------------------------------- loc_37532: ; CODE XREF: IsIdleAirLearningActive+3DAj move.w #$2800,d3 bra.s loc_3753C ; --------------------------------------------------------------------------- loc_37538: ; CODE XREF: IsIdleAirLearningActive+3E0j move.w #$D800,d3 loc_3753C: ; CODE XREF: IsIdleAirLearningActive+3E2j ; IsIdleAirLearningActive+3E8j sub.w (word_FFFF955E).w,d3 cmpi.w #$2800,d3 bgt.s loc_3754E cmpi.w #$D800,d3 blt.s loc_37554 bra.s loc_37558 ; --------------------------------------------------------------------------- loc_3754E: ; CODE XREF: IsIdleAirLearningActive+3F6j move.w #$2800,d3 bra.s loc_37558 ; --------------------------------------------------------------------------- loc_37554: ; CODE XREF: IsIdleAirLearningActive+3FCj move.w #$D800,d3 loc_37558: ; CODE XREF: IsIdleAirLearningActive+3FEj ; IsIdleAirLearningActive+404j tst.w d3 bge.s loc_3755E neg.w d3 loc_3755E: ; CODE XREF: IsIdleAirLearningActive+40Cj move.w (word_FFFF955C).w,d4 add.w (IAC_AIRFLOW_KE_AIR_LEARN_MAX_DELTA).l,d4 ; Maximum allowable difference between two adjacent cell in Air_Learn Correction array. ; Percent_Area_S cmpi.w #$2800,d4 bgt.s loc_37576 cmpi.w #$D800,d4 blt.s loc_3757C bra.s loc_37580 ; --------------------------------------------------------------------------- loc_37576: ; CODE XREF: IsIdleAirLearningActive+41Ej move.w #$2800,d4 bra.s loc_37580 ; --------------------------------------------------------------------------- loc_3757C: ; CODE XREF: IsIdleAirLearningActive+424j move.w #$D800,d4 loc_37580: ; CODE XREF: IsIdleAirLearningActive+426j ; IsIdleAirLearningActive+42Cj sub.w (word_FFFF955E).w,d4 cmpi.w #$2800,d4 bgt.s loc_37592 cmpi.w #$D800,d4 blt.s loc_37598 bra.s loc_3759C ; --------------------------------------------------------------------------- loc_37592: ; CODE XREF: IsIdleAirLearningActive+43Aj move.w #$2800,d4 bra.s loc_3759C ; --------------------------------------------------------------------------- loc_37598: ; CODE XREF: IsIdleAirLearningActive+440j move.w #$D800,d4 loc_3759C: ; CODE XREF: IsIdleAirLearningActive+442j ; IsIdleAirLearningActive+448j tst.w d4 bge.s loc_375A2 neg.w d4 loc_375A2: ; CODE XREF: IsIdleAirLearningActive+450j cmp.w d3,d4 bcc.s loc_375C4 move.w (word_FFFF955C).w,d3 add.w (IAC_AIRFLOW_KE_AIR_LEARN_MAX_DELTA).l,d3 ; Maximum allowable difference between two adjacent cell in Air_Learn Correction array. ; Percent_Area_S cmpi.w #$2800,d3 bgt.s loc_375BE cmpi.w #$D800,d3 blt.s loc_375DA bra.s loc_375DE ; --------------------------------------------------------------------------- loc_375BE: ; CODE XREF: IsIdleAirLearningActive+466j ; IsIdleAirLearningActive+484j move.w #$2800,d3 bra.s loc_375DE ; --------------------------------------------------------------------------- loc_375C4: ; CODE XREF: IsIdleAirLearningActive+456j move.w (word_FFFF955C).w,d3 sub.w (IAC_AIRFLOW_KE_AIR_LEARN_MAX_DELTA).l,d3 ; Maximum allowable difference between two adjacent cell in Air_Learn Correction array. ; Percent_Area_S cmpi.w #$2800,d3 bgt.s loc_375BE cmpi.w #$D800,d3 bge.s loc_375DE loc_375DA: ; CODE XREF: IsIdleAirLearningActive+46Cj move.w #$D800,d3 loc_375DE: ; CODE XREF: IsIdleAirLearningActive+46Ej ; IsIdleAirLearningActive+474j ... move.w d3,(word_FFFF9570).w move.w (word_FFFF955E).w,d3 sub.w (IAC_AIRFLOW_KE_AIR_LEARN_MAX_DELTA).l,d3 ; Maximum allowable difference between two adjacent cell in Air_Learn Correction array. ; Percent_Area_S cmpi.w #$2800,d3 bgt.s loc_375FA cmpi.w #$D800,d3 blt.s loc_37600 bra.s loc_37604 ; --------------------------------------------------------------------------- loc_375FA: ; CODE XREF: IsIdleAirLearningActive+4A2j move.w #$2800,d3 bra.s loc_37604 ; --------------------------------------------------------------------------- loc_37600: ; CODE XREF: IsIdleAirLearningActive+4A8j move.w #$D800,d3 loc_37604: ; CODE XREF: IsIdleAirLearningActive+4AAj ; IsIdleAirLearningActive+4B0j sub.w (word_FFFF955C).w,d3 cmpi.w #$2800,d3 bgt.s loc_37616 cmpi.w #$D800,d3 blt.s loc_3761C bra.s loc_37620 ; --------------------------------------------------------------------------- loc_37616: ; CODE XREF: IsIdleAirLearningActive+4BEj move.w #$2800,d3 bra.s loc_37620 ; --------------------------------------------------------------------------- loc_3761C: ; CODE XREF: IsIdleAirLearningActive+4C4j move.w #$D800,d3 loc_37620: ; CODE XREF: IsIdleAirLearningActive+4C6j ; IsIdleAirLearningActive+4CCj tst.w d3 bge.s loc_37626 neg.w d3 loc_37626: ; CODE XREF: IsIdleAirLearningActive+4D4j move.w (word_FFFF955E).w,d4 add.w (IAC_AIRFLOW_KE_AIR_LEARN_MAX_DELTA).l,d4 ; Maximum allowable difference between two adjacent cell in Air_Learn Correction array. ; Percent_Area_S cmpi.w #$2800,d4 bgt.s loc_3763E cmpi.w #$D800,d4 blt.s loc_37644 bra.s loc_37648 ; --------------------------------------------------------------------------- loc_3763E: ; CODE XREF: IsIdleAirLearningActive+4E6j move.w #$2800,d4 bra.s loc_37648 ; --------------------------------------------------------------------------- loc_37644: ; CODE XREF: IsIdleAirLearningActive+4ECj move.w #$D800,d4 loc_37648: ; CODE XREF: IsIdleAirLearningActive+4EEj ; IsIdleAirLearningActive+4F4j sub.w (word_FFFF955C).w,d4 cmpi.w #$2800,d4 bgt.s loc_3765A cmpi.w #$D800,d4 blt.s loc_37660 bra.s loc_37664 ; --------------------------------------------------------------------------- loc_3765A: ; CODE XREF: IsIdleAirLearningActive+502j move.w #$2800,d4 bra.s loc_37664 ; --------------------------------------------------------------------------- loc_37660: ; CODE XREF: IsIdleAirLearningActive+508j move.w #$D800,d4 loc_37664: ; CODE XREF: IsIdleAirLearningActive+50Aj ; IsIdleAirLearningActive+510j tst.w d4 bge.s loc_3766A neg.w d4 loc_3766A: ; CODE XREF: IsIdleAirLearningActive+518j cmp.w d3,d4 bcc.s loc_37688 move.w (word_FFFF955E).w,d3 loc_37672: ; CODE XREF: IsIdleAirLearningActive+3C4j add.w (IAC_AIRFLOW_KE_AIR_LEARN_MAX_DELTA).l,d3 ; Maximum allowable difference between two adjacent cell in Air_Learn Correction array. ; Percent_Area_S cmpi.w #$2800,d3 bgt.w loc_37516 cmpi.w #$D800,d3 blt.s loc_376A0 bra.s loc_376A4 ; --------------------------------------------------------------------------- loc_37688: ; CODE XREF: IsIdleAirLearningActive+51Ej move.w (word_FFFF955E).w,d3 sub.w (IAC_AIRFLOW_KE_AIR_LEARN_MAX_DELTA).l,d3 ; Maximum allowable difference between two adjacent cell in Air_Learn Correction array. ; Percent_Area_S cmpi.w #$2800,d3 bgt.w loc_37516 cmpi.w #$D800,d3 bge.s loc_376A4 loc_376A0: ; CODE XREF: IsIdleAirLearningActive+536j move.w #$D800,d3 loc_376A4: ; CODE XREF: IsIdleAirLearningActive+3CCj ; IsIdleAirLearningActive+538j ... move.w d3,(word_FFFF9572).w move.w (word_FFFF9560).w,d0 move.w d0,(word_FFFF9562).w move.w (word_FFFF9570).w,d4 move.w (word_FFFF9572).w,d3 cmp.w d4,d3 ble.s loc_376CA cmp.w d3,d0 bgt.s loc_376D2 cmp.w d4,d0 bge.s loc_376D6 loc_376C4: ; CODE XREF: IsIdleAirLearningActive+57Ej move.w d4,(word_FFFF9562).w bra.s loc_376D6 ; --------------------------------------------------------------------------- loc_376CA: ; CODE XREF: IsIdleAirLearningActive+56Cj cmp.w d4,d0 bgt.s loc_376C4 cmp.w d3,d0 bge.s loc_376D6 loc_376D2: ; CODE XREF: IsIdleAirLearningActive+570j move.w d3,(word_FFFF9562).w loc_376D6: ; CODE XREF: IsIdleAirLearningActive+574j ; IsIdleAirLearningActive+57Aj ... move.w (word_FFFF9562).w,d3 ble.s loc_376EC move.w (IAC_AIRFLOW_KE_AIR_LEARN_LIMIT).l,d4 ; Maximum allowable compensation per cell in the Air Learn Correction array. ; Percent_Area_S cmp.w d4,d3 ble.s loc_37704 move.w d4,(word_FFFF9562).w bra.s loc_37704 ; --------------------------------------------------------------------------- loc_376EC: ; CODE XREF: IsIdleAirLearningActive+58Cj move.w (IAC_AIRFLOW_KE_AIR_LEARN_LIMIT).l,d4 ; Maximum allowable compensation per cell in the Air Learn Correction array. ; Percent_Area_S tst.w d3 bge.s loc_376F8 neg.w d3 loc_376F8: ; CODE XREF: IsIdleAirLearningActive+5A6j cmp.w d4,d3 bls.s loc_37704 clr.w d3 sub.w d4,d3 move.w d3,(word_FFFF9562).w loc_37704: ; CODE XREF: IsIdleAirLearningActive+596j ; IsIdleAirLearningActive+59Cj ... andi.w #$FF,d2 move.w (word_FFFF9562).w,$1C+var_7ED0(d2.w*2) move.w (GlobalClock).w,(word_FFFF9568).w loc_37716: ; CODE XREF: IsIdleAirLearningActive+218j move.w (word_FFFFA598).w,(word_FFFF956E).w movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function IsIdleAirLearningActive ; =============== S U B R O U T I N E ======================================= sub_37724: ; CODE XREF: sub_35C4E+2p cmpi.b #8,(byte_FFFFA3B8).w bne.s loc_37736 cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_3773E loc_37736: ; CODE XREF: sub_37724+6j move.w (IdleTrimDriveWithAC).w,(IdleTrimWithAC).w bra.s locret_37744 ; --------------------------------------------------------------------------- loc_3773E: ; CODE XREF: sub_37724+10j move.w (IdleTrimParkNeutralWithAC).w,(IdleTrimWithAC).w locret_37744: ; CODE XREF: sub_37724+18j rts ; End of function sub_37724 ; =============== S U B R O U T I N E ======================================= sub_37746: ; CODE XREF: OS1:00035CB0p jsr sub_36A8C rts ; End of function sub_37746 ; =============== S U B R O U T I N E ======================================= sub_3774E: ; CODE XREF: OS1:loc_35C6Ap movem.l d0-d1/a0,-(sp) clr.w (word_FFFF9514).w clr.w (word_FFFF951A).w clr.w (word_FFFF951C).w clr.b (byte_FFFF954C).w clr.b (byte_FFFF94E7).w clr.b (byte_FFFF94EE).w clr.b (byte_FFFF94E4).w clr.b (byte_FFFF94E5).w moveq #$76,d0 ; 'v' jsr sub_81B3C move.b d0,(byte_FFFF94F8).w move.b (byte_FFFFA3AF).w,(byte_FFFF9550).w btst #1,(byte_FFFFAD8A).w sne d3 neg.b d3 move.b d3,(byte_FFFF94E6).w move.w (CoolantTemperatureOrDefault).w,d3 movea.w #$400,a0 add.w a0,d3 moveq #5,d0 muls.w d0,d3 moveq #6,d1 divs.w d1,d3 movea.l #$F06C,a2 tblu.w (a2),d3 tst.w d3 bge.s loc_377B6 move.w #$7FFF,d3 loc_377B6: ; CODE XREF: sub_3774E+62j move.w d3,(DesiredAirflow).w move.w d3,(word_FFFF9546).w move.w (CoolantTemperatureOrDefault).w,d3 add.w a0,d3 muls.w d0,d3 divs.w d1,d3 movea.l #$F04C,a2 tblu.w (a2),d3 tst.w d3 bge.s loc_377DA move.w #$7FFF,d3 loc_377DA: ; CODE XREF: sub_3774E+86j move.w d3,(word_FFFF9540).w move.w d3,(word_FFFF9542).w clr.w (word_FFFF9510).w clr.w (word_FFFF954A).w clr.w (ThrottleCrackerAirflow).w clr.b (byte_FFFF94F1).w clr.w (word_FFFF954E).w clr.b (byte_FFFF94FD).w clr.b (byte_FFFF94FF).w jsr sub_36A8C move.w (CoolantTemperatureOrDefault).w,d3 add.w a0,d3 muls.w d0,d3 divs.w d1,d3 movea.l #$EE3A,a2 tblu.w (a2),d3 move.w d3,(word_FFFF94D2).w move.w (word_FFFFAEE4).w,d3 tblu.w (IAC_AIRFLOW_KV_START_UP_AIRFLOW).l,d3 ; Calibration defining start up airflow required. ; GPS move.w d3,(word_FFFF94D8).w move.w (word_FFFF94D2).w,d3 add.w (word_FFFF94D8).w,d3 tst.w d3 bge.s loc_3783C move.w #$7FFF,d3 loc_3783C: ; CODE XREF: sub_3774E+E8j move.w d3,(StartupAirflowNonZero).w move.w (word_FFFFAEE4).w,d3 tblu.w (IAC_AIRFLOW_KV_START_UP_DELAY_INITIAL).l,d3 ; Calibration defining number of cam revolutions before Start_Up_Airflow_Initial is reduced. ; CAM Revs move.w d3,(word_FFFF9518).w clr.w (word_FFFF950C).w clr.w (word_FFFF9516).w clr.b (byte_FFFF94EB).w clr.b (byte_FFFF94F2).w clr.w (word_FFFF94DA).w clr.w (word_FFFF950A).w clr.w (word_FFFF950E).w clr.w (ThrottleFollowerAirflow).w clr.w (word_FFFF953E).w move.b #1,(byte_FFFF9551).w clr.b (ThrottleFollowerDelayTimerActive).w clr.w (ThrottleCrackerPlusFollower).w clr.b (byte_FFFF94D0).w jsr sub_36F1C clr.w (IdleIntegralTerm_Clamped?).w clr.w (IdleIntegralAccumulator_TBD2).w clr.w (word_FFFF94E0).w clr.w (word_FFFF94E2).w clr.b (byte_FFFF94F4).w move.b (byte_FFFF94CB).w,d3 cmpi.b #$1E,d3 bne.s loc_378B2 move.b (byte_FFFF94CA).w,(IdleControlMode_DriveNeutral_AcOrNot).w bra.s loc_378B6 ; --------------------------------------------------------------------------- loc_378B2: ; CODE XREF: sub_3774E+15Aj move.b d3,(IdleControlMode_DriveNeutral_AcOrNot).w loc_378B6: ; CODE XREF: sub_3774E+162j clr.l d3 move.w (IdleBaseAirflow_Candidate?).w,d3 move.l d3,(IdleBaseAirflow?).w movem.l (sp)+,d0-d1/a0 rts ; End of function sub_3774E ; =============== S U B R O U T I N E ======================================= sub_378C6: ; CODE XREF: OS1:00035C76p move.b #1,(byte_FFFF94FB).w clr.l (dword_FFFF9556).w rts ; End of function sub_378C6 ; =============== S U B R O U T I N E ======================================= sub_378D2: ; CODE XREF: OS1:loc_35C64p tst.b (byte_FFFFB54A).w bne.s locret_37904 move.w (IAC_AIRFLOW_KE_LEARNED_AC_AIRFLOW_OFFSET_DR).l,(IdleTrimDriveWithAC).w ; Default value of AC_Airflow_Learned_Offset_DR. ; GPS move.w (IAC_AIRFLOW_KE_LEARNED_AC_AIRFLOW_OFFSET_PN).l,(IdleTrimParkNeutralWithAC).w ; Default value of AC_Airflow_Learned_Offset_PN. ; GPS move.w (IAC_AIRFLOW_KE_AC_OFFSET_HIGH_PN+2).l,(IdleTrimDrive).w ; Upper limit allowed for adaptively learned correctionto the AC airflow offset while in park or neutralin an automatic. ; GPS move.w (IAC_AIRFLOW_KE_LEARNED_AIRFLOW_PARK_NEUTRAL).l,(IdleTrimParkNeutral).w ; Default value of Learned_Airflow_Park_Neutral. ; GPS lea (word_FFFF814C).w,a2 moveq #$15,d3 loc_378FE: ; CODE XREF: sub_378D2+2Ej clr.w (a2)+ dbf d3,loc_378FE locret_37904: ; CODE XREF: sub_378D2+4j rts ; End of function sub_378D2 ; =============== S U B R O U T I N E ======================================= sub_37906: ; CODE XREF: OS1:loc_35C9Cp jsr sub_36A8C clr.b (IdleControlMode_DriveNeutral_AcOrNot).w rts ; End of function sub_37906 ; =============== S U B R O U T I N E ======================================= sub_37912: ; CODE XREF: sub_35C22+1Ep movem.l d0-d2/d6,-(sp) btst #1,(byte_FFFF89A8).w bne.s loc_37998 btst #1,(byte_FFFF89AA).w bne.s loc_37998 move.b (byte_FFFF94FA).w,d6 beq.s loc_37932 move.w (IdleTrimDriveWithAC).w,d3 bra.s loc_37936 ; --------------------------------------------------------------------------- loc_37932: ; CODE XREF: sub_37912+18j move.w (IdleTrimParkNeutralWithAC).w,d3 loc_37936: ; CODE XREF: sub_37912+1Ej move.l d3,d1 add.w (word_FFFFA6E6).w,d1 bvc.s loc_3794A bpl.s loc_37946 move.w #$7FFF,d1 bra.s loc_3794A ; --------------------------------------------------------------------------- loc_37946: ; CODE XREF: sub_37912+2Cj move.w #$8000,d1 loc_3794A: ; CODE XREF: sub_37912+2Aj ; sub_37912+32j move.l d3,d2 move.w (IAC_AIRFLOW_KE_AC_OFFSET_FILTER_CONSTANT).l,d0 ; Filter coefficient for first order lag filter. ; Filt_Coeff jsr loc_26610 move.w d0,d1 tst.b d6 beq.s loc_3797C move.w (IAC_AIRFLOW_KE_AC_OFFSET_LOW_DR).l,d3 ; Lower limit allowed for adaptively learned correctionto the AC airflow offset while in a drive gear or a manual. ; GPS cmp.w d3,d1 bge.s loc_3796C loc_37968: ; CODE XREF: sub_37912+62j move.l d3,d1 bra.s loc_37976 ; --------------------------------------------------------------------------- loc_3796C: ; CODE XREF: sub_37912+54j move.w (IAC_AIRFLOW_KE_AC_OFFSET_HIGH_DR).l,d3 ; Upper limit allowed for adaptively learned correctionto the AC airflow offset while in a drive gear or a manual. ; GPS cmp.w d3,d1 bgt.s loc_37968 loc_37976: ; CODE XREF: sub_37912+58j move.w d1,(IdleTrimDriveWithAC).w bra.s loc_37998 ; --------------------------------------------------------------------------- loc_3797C: ; CODE XREF: sub_37912+4Aj move.w (IAC_AIRFLOW_KE_AC_OFFSET_LOW_PN).l,d3 ; Lower limit allowed for adaptively learned correctionto the AC airflow offset while in park or neutralin an automatic. ; GPS cmp.w d3,d1 bge.s loc_3798A loc_37986: ; CODE XREF: sub_37912+80j move.l d3,d1 bra.s loc_37994 ; --------------------------------------------------------------------------- loc_3798A: ; CODE XREF: sub_37912+72j move.w (IAC_AIRFLOW_KE_AC_OFFSET_HIGH_PN).l,d3 ; Upper limit allowed for adaptively learned correctionto the AC airflow offset while in park or neutralin an automatic. ; GPS cmp.w d3,d1 bgt.s loc_37986 loc_37994: ; CODE XREF: sub_37912+76j move.w d1,(IdleTrimParkNeutralWithAC).w loc_37998: ; CODE XREF: sub_37912+Aj ; sub_37912+12j ... movem.l (sp)+,d0-d2/d6 rts ; End of function sub_37912 ; =============== S U B R O U T I N E ======================================= sub_3799E: ; CODE XREF: sub_36F1C:loc_36FBCp tst.b (byte_FFFF94FA).w beq.s loc_379AC move.w (IdleTrimDriveWithAC).w,(IdleTrimWithAC).w bra.s locret_379B2 ; --------------------------------------------------------------------------- loc_379AC: ; CODE XREF: sub_3799E+4j move.w (IdleTrimParkNeutralWithAC).w,(IdleTrimWithAC).w locret_379B2: ; CODE XREF: sub_3799E+Cj rts ; End of function sub_3799E ; =============== S U B R O U T I N E ======================================= sub_379B4: ; CODE XREF: sub_35C22+12p movem.l d0-d2,-(sp) move.w (word_FFFFA6E8).w,d1 add.w (IdleTrimDrive).w,d1 bvc.s loc_379CE bpl.s loc_379CA move.w #$7FFF,d1 bra.s loc_379CE ; --------------------------------------------------------------------------- loc_379CA: ; CODE XREF: sub_379B4+Ej move.w #$8000,d1 loc_379CE: ; CODE XREF: sub_379B4+Cj ; sub_379B4+14j move.w (IdleTrimDrive).w,d2 move.w (IAC_AIRFLOW_KE_DRIVE_FILTER_CONSTANT).l,d0 ; Filter coefficient for first order lag filter for filtering Learned_Airflow_Drive. Activation rate: 25 ms. ; Filt_Coeff jsr loc_26610 move.w d0,d1 move.w (IAC_AIRFLOW_KE_DRIVE_CORRECTION_LOW).l,d3 ; Lower limit allowed for adaptively learned correction to the airflow for the engine when the transmission is in gear. ; GPS cmp.w d3,d1 bge.s loc_379EE loc_379EA: ; CODE XREF: sub_379B4+42j move.l d3,d1 bra.s loc_379F8 ; --------------------------------------------------------------------------- loc_379EE: ; CODE XREF: sub_379B4+34j move.w (IAC_AIRFLOW_KE_DRIVE_CORRECTION_HIGH).l,d3 ; Upper limit allowed for adaptively learned correction to the airflow for the engine when the transmission is in gear. ; GPS cmp.w d3,d1 bgt.s loc_379EA loc_379F8: ; CODE XREF: sub_379B4+38j move.w d1,(IdleTrimDrive).w movem.l (sp)+,d0-d2 rts ; End of function sub_379B4 ; =============== S U B R O U T I N E ======================================= sub_37A02: ; CODE XREF: sub_35C22+18p movem.l d0-d2,-(sp) move.w (word_FFFFA6EA).w,d1 add.w (IdleTrimParkNeutral).w,d1 bvc.s loc_37A1C bpl.s loc_37A18 move.w #$7FFF,d1 bra.s loc_37A1C ; --------------------------------------------------------------------------- loc_37A18: ; CODE XREF: sub_37A02+Ej move.w #$8000,d1 loc_37A1C: ; CODE XREF: sub_37A02+Cj ; sub_37A02+14j move.w (IdleTrimParkNeutral).w,d2 move.w (IAC_AIRFLOW_KE_PARK_NEUTRAL_FILTER_CONSTANT).l,d0 ; Filter coefficient for first order lag filter. Activation rate: 25 ms. ; Filt_Coeff jsr loc_26610 move.w d0,d1 move.w (IAC_AIRFLOW_KE_PARK_NEUTRAL_CORRECTION_LOW).l,d3 ; Lower limit allowed for adaptively learned correction to the airflow for the engine when the transmission is not in gear. ; GPS cmp.w d3,d1 bge.s loc_37A3C loc_37A38: ; CODE XREF: sub_37A02+42j move.l d3,d1 bra.s loc_37A46 ; --------------------------------------------------------------------------- loc_37A3C: ; CODE XREF: sub_37A02+34j move.w (IAC_AIRFLOW_KE_PARK_NEUTRAL_CORRECTION_HIGH).l,d3 ; Upper limit allowed for adaptively learned correction to the airflow for the engine when the transmission is not in gear. ; GPS cmp.w d3,d1 bgt.s loc_37A38 loc_37A46: ; CODE XREF: sub_37A02+38j move.w d1,(IdleTrimParkNeutral).w movem.l (sp)+,d0-d2 rts ; End of function sub_37A02 ; =============== S U B R O U T I N E ======================================= sub_37A50: ; CODE XREF: sub_3647C+5Ap ; sub_36AAA+104p ... moveq #1,d5 cmp.b d0,d5 bne.w loc_37B60 move.w (word_FFFF94DA).w,d3 ble.s loc_37A70 movea.w (StartupAirflowNonZero).w,a2 sub.w a2,d3 move.w d3,(word_FFFF9512).w move.w a2,(word_FFFF94DA).w move.l d5,d4 bra.s loc_37A92 ; --------------------------------------------------------------------------- loc_37A70: ; CODE XREF: sub_37A50+Cj move.w (DesiredAirflow).w,d3 sub.w (word_FFFF9546).w,d3 bvc.s loc_37A86 bpl.s loc_37A82 move.w #$7FFF,d3 bra.s loc_37A86 ; --------------------------------------------------------------------------- loc_37A82: ; CODE XREF: sub_37A50+2Aj move.w #$8000,d3 loc_37A86: ; CODE XREF: sub_37A50+28j ; sub_37A50+30j tst.w d3 bge.s loc_37A8C neg.w d3 loc_37A8C: ; CODE XREF: sub_37A50+38j move.w d3,(word_FFFF9512).w clr.b d4 loc_37A92: ; CODE XREF: sub_37A50+1Ej move.w (IdleIntegralTerm_Clamped?).w,d3 bge.s loc_37AAA tst.b d4 bne.s loc_37AAA add.w (word_FFFF9512).w,d3 tst.w d3 bgt.s loc_37AB6 loc_37AA4: ; CODE XREF: sub_37A50+64j move.w d3,(IdleIntegralTerm_Clamped?).w bra.s loc_37ABA ; --------------------------------------------------------------------------- loc_37AAA: ; CODE XREF: sub_37A50+46j ; sub_37A50+4Aj tst.w d3 ble.s loc_37ABA sub.w (word_FFFF9512).w,d3 tst.w d3 bge.s loc_37AA4 loc_37AB6: ; CODE XREF: sub_37A50+52j clr.w (IdleIntegralTerm_Clamped?).w loc_37ABA: ; CODE XREF: sub_37A50+58j ; sub_37A50+5Cj move.w (IdleIntegralAccumulator_TBD2).w,d3 bge.s loc_37AD2 tst.b d4 bne.s loc_37AD2 add.w (word_FFFF9512).w,d3 tst.w d3 bgt.s loc_37ADE loc_37ACC: ; CODE XREF: sub_37A50+8Cj move.w d3,(IdleIntegralAccumulator_TBD2).w bra.s loc_37AE2 ; --------------------------------------------------------------------------- loc_37AD2: ; CODE XREF: sub_37A50+6Ej ; sub_37A50+72j tst.w d3 ble.s loc_37AE2 sub.w (word_FFFF9512).w,d3 tst.w d3 bge.s loc_37ACC loc_37ADE: ; CODE XREF: sub_37A50+7Aj clr.w (IdleIntegralAccumulator_TBD2).w loc_37AE2: ; CODE XREF: sub_37A50+80j ; sub_37A50+84j tst.b d4 bne.s loc_37B06 move.w (word_FFFF9540).w,d3 sub.w (word_FFFF9542).w,d3 bvc.s loc_37AFC bpl.s loc_37AF8 move.w #$7FFF,d3 bra.s loc_37AFC ; --------------------------------------------------------------------------- loc_37AF8: ; CODE XREF: sub_37A50+A0j move.w #$8000,d3 loc_37AFC: ; CODE XREF: sub_37A50+9Ej ; sub_37A50+A6j tst.w d3 bge.s loc_37B02 neg.w d3 loc_37B02: ; CODE XREF: sub_37A50+AEj move.w d3,(word_FFFF9512).w loc_37B06: ; CODE XREF: sub_37A50+94j move.w (word_FFFF94E0).w,d3 bge.s loc_37B1E tst.b d4 bne.s loc_37B1E add.w (word_FFFF9512).w,d3 tst.w d3 bgt.s loc_37B2E loc_37B18: ; CODE XREF: sub_37A50+DCj move.w d3,(word_FFFF94E0).w bra.s loc_37B32 ; --------------------------------------------------------------------------- loc_37B1E: ; CODE XREF: sub_37A50+BAj ; sub_37A50+BEj tst.w d3 ble.s loc_37B32 sub.w (word_FFFF9512).w,d3 move.w d3,(word_FFFF94E0).w tst.w d3 bge.s loc_37B18 loc_37B2E: ; CODE XREF: sub_37A50+C6j clr.w (word_FFFF94E0).w loc_37B32: ; CODE XREF: sub_37A50+CCj ; sub_37A50+D0j move.w (word_FFFF94E2).w,d3 bge.s loc_37B4E tst.b d4 bne.s loc_37B4E add.w (word_FFFF9512).w,d3 tst.w d3 ble.w loc_37C4E loc_37B46: ; CODE XREF: sub_37A50+10Ej clr.w (word_FFFF94E2).w bra.w locret_37C52 ; --------------------------------------------------------------------------- loc_37B4E: ; CODE XREF: sub_37A50+E6j ; sub_37A50+EAj tst.w d3 ble.w locret_37C52 sub.w (word_FFFF9512).w,d3 tst.w d3 bge.w loc_37C4E bra.s loc_37B46 ; --------------------------------------------------------------------------- loc_37B60: ; CODE XREF: sub_37A50+4j cmpi.b #2,d0 bne.s loc_37BB2 move.w (word_FFFFAEE4).w,d3 tblu.w (IAC_AIRFLOW_KV_VARIATION_CORRECTION_MAXIMUM).l,d3 ; The maximum value that any one of the variation correction cells can achieve. ; IAC_GPS_W tst.w d3 bge.s loc_37B7A move.w #$7FFF,d3 loc_37B7A: ; CODE XREF: sub_37A50+124j move.w (word_FFFF94DA).w,d4 cmp.w d3,d4 bgt.s loc_37B9A move.w d4,(IdleIntegralTerm_Clamped?).w move.w (word_FFFF94DA).w,(IdleIntegralAccumulator_TBD2).w move.w (word_FFFF94DA).w,(word_FFFF94E0).w move.w (word_FFFF94DA).w,(word_FFFF94E2).w bra.s loc_37BAA ; --------------------------------------------------------------------------- loc_37B9A: ; CODE XREF: sub_37A50+130j move.w d3,(IdleIntegralTerm_Clamped?).w move.w d3,(IdleIntegralAccumulator_TBD2).w move.w d3,(word_FFFF94E0).w move.w d3,(word_FFFF94E2).w loc_37BAA: ; CODE XREF: sub_37A50+148j ; sub_37A50+1A4j ... move.b d5,(byte_FFFF94F4).w bra.w locret_37C52 ; --------------------------------------------------------------------------- loc_37BB2: ; CODE XREF: sub_37A50+114j move.w (IdleIntegralAccumulator_FINAL).w,d4 move.w (word_FFFFAEE4).w,d3 tblu.w (IAC_AIRFLOW_KV_VARIATION_CORRECTION_MAXIMUM).l,d3 ; The maximum value that any one of the variation correction cells can achieve. ; IAC_GPS_W tst.w d3 bge.s loc_37BCA move.w #$7FFF,d3 loc_37BCA: ; CODE XREF: sub_37A50+174j cmp.w d3,d4 bge.s loc_37BD0 move.l d4,d3 loc_37BD0: ; CODE XREF: sub_37A50+17Cj tst.b (IdleSpeedErrorSmall?).w beq.s locret_37C52 tst.w d4 beq.s locret_37C52 cmp.b (IdleControlMode).w,d5 bne.s locret_37C52 tst.b (byte_FFFF94E5).w bne.s locret_37C52 tst.b (byte_FFFF94F4).w bne.s loc_37C20 move.b (byte_FFFFA6F6).w,d3 cmpi.b #6,d3 bhi.s loc_37BAA beq.s loc_37C0E cmpi.b #4,d3 bhi.s loc_37C08 beq.s loc_37C1A cmpi.b #2,d3 bhi.s loc_37C14 bra.s loc_37BAA ; --------------------------------------------------------------------------- loc_37C08: ; CODE XREF: sub_37A50+1ACj move.w d4,(IdleIntegralTerm_Clamped?).w bra.s loc_37BAA ; --------------------------------------------------------------------------- loc_37C0E: ; CODE XREF: sub_37A50+1A6j move.w d4,(IdleIntegralAccumulator_TBD2).w bra.s loc_37BAA ; --------------------------------------------------------------------------- loc_37C14: ; CODE XREF: sub_37A50+1B4j move.w d4,(word_FFFF94E0).w bra.s loc_37BAA ; --------------------------------------------------------------------------- loc_37C1A: ; CODE XREF: sub_37A50+1AEj move.w d4,(word_FFFF94E2).w bra.s loc_37BAA ; --------------------------------------------------------------------------- loc_37C20: ; CODE XREF: sub_37A50+19Aj move.b (byte_FFFFA6F6).w,d4 cmpi.b #6,d4 bhi.s locret_37C52 beq.s loc_37C42 cmpi.b #4,d4 bhi.s loc_37C3C beq.s loc_37C4E cmpi.b #2,d4 bhi.s loc_37C48 bra.s locret_37C52 ; --------------------------------------------------------------------------- loc_37C3C: ; CODE XREF: sub_37A50+1E0j move.w d3,(IdleIntegralTerm_Clamped?).w bra.s locret_37C52 ; --------------------------------------------------------------------------- loc_37C42: ; CODE XREF: sub_37A50+1DAj move.w d3,(IdleIntegralAccumulator_TBD2).w bra.s locret_37C52 ; --------------------------------------------------------------------------- loc_37C48: ; CODE XREF: sub_37A50+1E8j move.w d3,(word_FFFF94E0).w bra.s locret_37C52 ; --------------------------------------------------------------------------- loc_37C4E: ; CODE XREF: sub_37A50+F2j ; sub_37A50+10Aj ... move.w d3,(word_FFFF94E2).w locret_37C52: ; CODE XREF: sub_37A50+FAj ; sub_37A50+100j ... rts ; End of function sub_37A50 ; =============== S U B R O U T I N E ======================================= sub_37C54: ; CODE XREF: DecideIdleMode+20Ep clr.w (ThrottleCrackerAirflow).w clr.w (ThrottleCrackerPlusFollower).w clr.w (ThrottleFollowerAirflow).w clr.w (word_FFFF950A).w clr.b (byte_FFFF94D0).w move.b (byte_FFFF94CA).w,(IdleControlMode_DriveNeutral_AcOrNot).w rts ; End of function sub_37C54 ; =============== S U B R O U T I N E ======================================= sub_37C70: ; CODE XREF: sub_35BEC+20p movem.l d0-d1,-(sp) move.w (word_FFFFB4A2).w,d1 cmp.w (IAC_MOTOR_KE_MAXIMUM_COIL_VOLTAGE).l,d1 ; Disabling threshold for the IACV coils if ignition voltage goes above this parameter. ; Volts bls.s loc_37C94 clr.b d1 move.w #$E2,d0 ; '?' jsr (sub_FC0).l clr.b (byte_FF86B1).l bra.s loc_37CA8 ; --------------------------------------------------------------------------- loc_37C94: ; CODE XREF: sub_37C70+Ej moveq #1,d1 move.w #$E2,d0 ; '?' jsr (sub_FC0).l move.b #1,(byte_FF86B1).l loc_37CA8: ; CODE XREF: sub_37C70+22j movem.l (sp)+,d0-d1 rts ; End of function sub_37C70 ; =============== S U B R O U T I N E ======================================= sub_37CAE: ; CODE XREF: sub_35B80+5Cp move.b (byte_FFFFB2E0).w,d3 cmpi.b #3,d3 bne.s loc_37CC2 move.w (word_FFFFB2E2).w,(word_FFFFB13E).w bra.w locret_37D54 ; --------------------------------------------------------------------------- loc_37CC2: ; CODE XREF: sub_37CAE+8j cmpi.b #2,d3 bne.s loc_37CFA move.w (DesiredIdleThrottleArea).w,d3 cmpi.w #$F00,d3 bcc.s loc_37CDC andi.l #$FFFF,d3 asl.l #2,d3 bra.s loc_37CE0 ; --------------------------------------------------------------------------- loc_37CDC: ; CODE XREF: sub_37CAE+22j move.w #$3C00,d3 loc_37CE0: ; CODE XREF: sub_37CAE+2Cj movea.l #$F4CC,a2 tblu.w (a2),d3 add.w (word_FFFFB2E2).w,d3 cmpi.w #$190,d3 bls.s loc_37D50 move.w #$190,d3 bra.s loc_37D50 ; --------------------------------------------------------------------------- loc_37CFA: ; CODE XREF: sub_37CAE+18j cmpi.b #1,d3 bne.s loc_37D2E move.w (DesiredIdleThrottleArea).w,d3 clr.w d4 cmpi.w #$F00,d3 bcc.s loc_37D16 andi.l #$FFFF,d3 asl.l #2,d3 bra.s loc_37D1A ; --------------------------------------------------------------------------- loc_37D16: ; CODE XREF: sub_37CAE+5Cj move.w #$3C00,d3 loc_37D1A: ; CODE XREF: sub_37CAE+66j movea.l #$F4CC,a2 tblu.w (a2),d3 sub.w (word_FFFFB2E2).w,d3 bcc.s loc_37D50 move.l d4,d3 bra.s loc_37D50 ; --------------------------------------------------------------------------- loc_37D2E: ; CODE XREF: sub_37CAE+50j move.w (DesiredIdleThrottleArea).w,d3 cmpi.w #$F00,d3 bcc.s loc_37D42 andi.l #$FFFF,d3 asl.l #2,d3 bra.s loc_37D46 ; --------------------------------------------------------------------------- loc_37D42: ; CODE XREF: sub_37CAE+88j move.w #$3C00,d3 loc_37D46: ; CODE XREF: sub_37CAE+92j movea.l #$F4CC,a2 tblu.w (a2),d3 loc_37D50: ; CODE XREF: sub_37CAE+44j ; sub_37CAE+4Aj ... move.w d3,(word_FFFFB13E).w locret_37D54: ; CODE XREF: sub_37CAE+10j rts ; End of function sub_37CAE ; =============== S U B R O U T I N E ======================================= sub_37D56: ; CODE XREF: sub_35B80+3Ep move.b (byte_FF86B0).l,d3 beq.s loc_37D64 cmpi.b #3,d3 bne.s locret_37DB2 loc_37D64: ; CODE XREF: sub_37D56+6j cmpi.b #4,(ThrottleControlMode2?).w bne.s loc_37D8C tst.w (EngineRPM_PID_000C___).w bne.s loc_37D8C btst #7,(byte_FFFFBF32).w bne.s loc_37D8C cmpi.w #$300,(word_FFFFB4A2).w bcc.s loc_37D8C move.b #2,(byte_FF86B0).l bra.s locret_37DB2 ; --------------------------------------------------------------------------- loc_37D8C: ; CODE XREF: sub_37D56+14j ; sub_37D56+1Aj ... tst.b (byte_FFFFB140).w beq.s locret_37DB2 move.w (word_FFFFAEBC).w,d3 cmp.w (IAC_MOTOR_KE_IMRR_VEHICLE_SPEED).l,d3 ; Minimum vehicle speed to begin a running reset of the IAC motor position. ; Miles/Hour bcs.s locret_37DB2 move.w (word_FFFFAB66).w,d3 cmp.w (IAC_MOTOR_KE_IMRR_THROTTLE_POSITION).l,d3 ; Minimum throttle position to begin a running reset of the IAC motor position. ; Percent bcs.s locret_37DB2 move.b #3,(byte_FF86B0).l locret_37DB2: ; CODE XREF: sub_37D56+Cj ; sub_37D56+34j ... rts ; End of function sub_37D56 ; =============== S U B R O U T I N E ======================================= sub_37DB4: ; CODE XREF: sub_37FC2+66p ; sub_37FC2:loc_3817Ep jsr sub_37EE6 move.w (word_FF86AE).l,d3 subq.w #1,d3 bcc.s loc_37DC6 clr.w d3 loc_37DC6: ; CODE XREF: sub_37DB4+Ej move.w d3,(word_FF86AE).l rts ; End of function sub_37DB4 ; =============== S U B R O U T I N E ======================================= sub_37DCE: ; CODE XREF: sub_37FC2+B6p ; sub_37FC2:loc_3819Ep jsr sub_37F4A movea.w (word_FF86AE).l,a2 addq.w #1,a2 cmpa.w #$190,a2 bls.s loc_37DE6 movea.w #$190,a2 loc_37DE6: ; CODE XREF: sub_37DCE+12j move.w a2,(word_FF86AE).l rts ; End of function sub_37DCE ; =============== S U B R O U T I N E ======================================= sub_37DEE: ; CODE XREF: sub_37FAE+6p move.w (word_FFFFB146).w,d4 tst.b (byte_FF86B1).l beq.s loc_37E14 move.w (word_FFFFB4A2).w,d3 cmp.w (IAC_MOTOR_KE_MINIMUM_STEP_VOLTAGE).l,d3 ; Below this threshold the IACV is not allowed to step. ; Volts bcc.s loc_37E1A move.b (byte_FF86B0).l,d3 beq.s loc_37E14 cmpi.b #4,d3 bne.s loc_37E1A loc_37E14: ; CODE XREF: sub_37DEE+Aj ; sub_37DEE+1Ej clr.w (word_FFFFB144).w bra.s loc_37E58 ; --------------------------------------------------------------------------- loc_37E1A: ; CODE XREF: sub_37DEE+16j ; sub_37DEE+24j move.b (byte_FF86B0).l,d3 cmpi.b #2,d3 beq.s loc_37E32 cmpi.b #1,d3 beq.s loc_37E32 cmpi.b #3,d3 bne.s loc_37E50 loc_37E32: ; CODE XREF: sub_37DEE+36j ; sub_37DEE+3Cj move.w (word_FFFFB298).w,d3 cmp.w (IAC_MOTOR_KE_MANIFOLD_VACUUM_FOR_HIGH_FREQ).l,d3 ; This calibration and the previous are a hysteresis pairto provide a switch point for IACV motor step frequency. ; kPa bcs.s loc_37E46 cmp.w (IAC_MOTOR_KE_MANIFOLD_VACUUM_FOR_LOW_FREQU).l,d3 ; This calibration and the following are a hysteresis pairto provide a switch point for IACV motor step frequency. ; kPa bhi.s loc_37E50 loc_37E46: ; CODE XREF: sub_37DEE+4Ej move.w (IAC_MOTOR_KE_IACV_HIGH_FREQUENCY_STEP).l,(word_FFFFB144).w ; IACV motor step frequency when engine manifold vacuumis low. ; IACV_Hz_Type bra.s loc_37E58 ; --------------------------------------------------------------------------- loc_37E50: ; CODE XREF: sub_37DEE+42j ; sub_37DEE+56j move.w (IAC_MOTOR_KE_IACV_LOW_FREQUENCY_STEP).l,(word_FFFFB144).w ; IACV motor step frequency when engine manifold vacuumis high. ; IACV_Hz_Type loc_37E58: ; CODE XREF: sub_37DEE+2Aj ; sub_37DEE+60j move.w (word_FFFFB144).w,d3 cmp.w d3,d4 bne.s loc_37E66 clr.b (byte_FFFFB142).w bra.s loc_37E6C ; --------------------------------------------------------------------------- loc_37E66: ; CODE XREF: sub_37DEE+70j move.b #1,(byte_FFFFB142).w loc_37E6C: ; CODE XREF: sub_37DEE+76j tst.b (byte_FFFFB142).w bne.s loc_37E8C cmpi.w #$500,d3 bcc.s loc_37E7E clr.w (word_FFFFB144).w bra.s loc_37E8C ; --------------------------------------------------------------------------- loc_37E7E: ; CODE XREF: sub_37DEE+88j move.l #$16E360,d4 divu.w d3,d4 move.w d4,(word_FFFFB148).w bra.s locret_37E92 ; --------------------------------------------------------------------------- loc_37E8C: ; CODE XREF: sub_37DEE+82j ; sub_37DEE+8Ej move.w #$494,(word_FFFFB148).w locret_37E92: ; CODE XREF: sub_37DEE+9Cj rts ; End of function sub_37DEE ; =============== S U B R O U T I N E ======================================= sub_37E94: ; CODE XREF: DoManyThings1+3Cp movem.l d0-d1,-(sp) move.b (byte_FF86B3).l,d1 cmpi.b #2,d1 bhi.s loc_37EC0 beq.s loc_37EAE tst.b d1 bne.s loc_37EBC clr.b d1 bra.s loc_37EB0 ; --------------------------------------------------------------------------- loc_37EAE: ; CODE XREF: sub_37E94+10j moveq #1,d1 loc_37EB0: ; CODE XREF: sub_37E94+18j moveq #$10,d0 jsr (sub_FC0).l clr.b d1 bra.s loc_37ECC ; --------------------------------------------------------------------------- loc_37EBC: ; CODE XREF: sub_37E94+14j clr.b d1 bra.s loc_37EC2 ; --------------------------------------------------------------------------- loc_37EC0: ; CODE XREF: sub_37E94+Ej moveq #1,d1 loc_37EC2: ; CODE XREF: sub_37E94+2Aj moveq #$10,d0 jsr (sub_FC0).l moveq #1,d1 loc_37ECC: ; CODE XREF: sub_37E94+26j moveq #$12,d0 jsr (sub_FC0).l moveq #1,d1 move.w #$E2,d0 ; '?' jsr (sub_FC0).l movem.l (sp)+,d0-d1 rts ; End of function sub_37E94 ; =============== S U B R O U T I N E ======================================= sub_37EE6: ; CODE XREF: sub_37DB4p movem.l d0-d1,-(sp) move.b (byte_FF86B3).l,d1 cmpi.b #2,d1 bhi.s loc_37F28 beq.s loc_37F08 tst.b d1 bne.s loc_37F12 move.b #1,(byte_FF86B3).l clr.b d1 bra.s loc_37F1C ; --------------------------------------------------------------------------- loc_37F08: ; CODE XREF: sub_37EE6+10j clr.b (byte_FF86B3).l clr.b d1 bra.s loc_37F32 ; --------------------------------------------------------------------------- loc_37F12: ; CODE XREF: sub_37EE6+14j move.b #3,(byte_FF86B3).l moveq #1,d1 loc_37F1C: ; CODE XREF: sub_37EE6+20j moveq #$10,d0 jsr (sub_FC0).l moveq #1,d1 bra.s loc_37F3C ; --------------------------------------------------------------------------- loc_37F28: ; CODE XREF: sub_37EE6+Ej move.b #2,(byte_FF86B3).l moveq #1,d1 loc_37F32: ; CODE XREF: sub_37EE6+2Aj moveq #$10,d0 jsr (sub_FC0).l clr.b d1 loc_37F3C: ; CODE XREF: sub_37EE6+40j moveq #$12,d0 jsr (sub_FC0).l movem.l (sp)+,d0-d1 rts ; End of function sub_37EE6 ; =============== S U B R O U T I N E ======================================= sub_37F4A: ; CODE XREF: sub_37DCEp movem.l d0-d1,-(sp) move.b (byte_FF86B3).l,d1 cmpi.b #2,d1 bhi.s loc_37F8C beq.s loc_37F6C tst.b d1 bne.s loc_37F78 move.b #2,(byte_FF86B3).l moveq #1,d1 bra.s loc_37F80 ; --------------------------------------------------------------------------- loc_37F6C: ; CODE XREF: sub_37F4A+10j move.b #3,(byte_FF86B3).l moveq #1,d1 bra.s loc_37F96 ; --------------------------------------------------------------------------- loc_37F78: ; CODE XREF: sub_37F4A+14j clr.b (byte_FF86B3).l clr.b d1 loc_37F80: ; CODE XREF: sub_37F4A+20j moveq #$10,d0 jsr (sub_FC0).l clr.b d1 bra.s loc_37FA0 ; --------------------------------------------------------------------------- loc_37F8C: ; CODE XREF: sub_37F4A+Ej move.b #1,(byte_FF86B3).l clr.b d1 loc_37F96: ; CODE XREF: sub_37F4A+2Cj moveq #$10,d0 jsr (sub_FC0).l moveq #1,d1 loc_37FA0: ; CODE XREF: sub_37F4A+40j moveq #$12,d0 jsr (sub_FC0).l movem.l (sp)+,d0-d1 rts ; End of function sub_37F4A ; =============== S U B R O U T I N E ======================================= sub_37FAE: ; CODE XREF: OS1:0002B7AAp bclr #4,(byte_FFFFFE20).w jsr sub_37DEE jsr sub_37FC2 rts ; End of function sub_37FAE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_37FC2: ; CODE XREF: sub_37FAE+Cp var_10 = -$10 var_C = -$C var_8 = -8 var_4 = -4 link a6,#-$10 movem.l d0-d1/a0,-(sp) tst.w (word_FFFFB144).w beq.w loc_381AC move.b (byte_FF86B0).l,d3 moveq #2,d0 cmp.b d3,d0 beq.s loc_37FE6 moveq #3,d1 cmp.b d3,d1 bne.w loc_38072 loc_37FE6: ; CODE XREF: sub_37FC2+1Aj tst.b (byte_FFFFB141).w bne.s loc_38010 move.w (IAC_MOTOR_KE_IACV_STEP_RANGE).l,d3 ; Maximum stepping range of IACV motor. ; Steps sub.w (word_FF86AE).l,d3 bcc.s loc_37FFC clr.w d3 loc_37FFC: ; CODE XREF: sub_37FC2+36j move.w d3,(word_FFFFB152).w move.w (IAC_MOTOR_KE_IACV_STEP_RANGE).l,(word_FF86AE).l ; Maximum stepping range of IACV motor. ; Steps moveq #1,d1 move.b d1,(byte_FFFFB141).w loc_38010: ; CODE XREF: sub_37FC2+28j tst.w (word_FF86AE).l bls.s loc_38042 move.b (byte_FFFFB14F).w,d3 cmpi.b #3,d3 beq.s loc_3803A addq.b #1,d3 move.b d3,(byte_FFFFB14F).w jsr sub_37DB4 move.b #1,(byte_FF86B2).l bra.w loc_381B2 ; --------------------------------------------------------------------------- loc_3803A: ; CODE XREF: sub_37FC2+5Ej clr.b (byte_FFFFB14F).w bra.w loc_381B2 ; --------------------------------------------------------------------------- loc_38042: ; CODE XREF: sub_37FC2+54j cmpi.b #3,(byte_FF86B0).l bne.s loc_38058 clr.b (byte_FF86B0).l clr.b (byte_FFFFB140).w bra.s loc_38060 ; --------------------------------------------------------------------------- loc_38058: ; CODE XREF: sub_37FC2+88j move.b #1,(byte_FF86B0).l loc_38060: ; CODE XREF: sub_37FC2+94j clr.b (byte_FFFFB141).w clr.b (byte_FFFFB14F).w loc_38068: ; CODE XREF: sub_37FC2+E0j move.w #$494,(word_FFFFB148).w bra.w loc_381AC ; --------------------------------------------------------------------------- loc_38072: ; CODE XREF: sub_37FC2+20j moveq #1,d1 cmp.b d3,d1 bne.s loc_3809E jsr sub_37DCE move.b d0,(byte_FF86B2).l move.w (word_FF86AE).l,d3 cmp.w (word_FFFFB13E).w,d3 bcs.w loc_381B2 move.b #4,(byte_FF86B0).l bra.w loc_381B2 ; --------------------------------------------------------------------------- loc_3809E: ; CODE XREF: sub_37FC2+B4j tst.b (byte_FFFFB142).w bne.s loc_38068 cmp.b (IdleControlMode).w,d1 bne.w loc_38162 move.w (EngineRpmError).w,d3 bge.s loc_380B4 neg.w d3 loc_380B4: ; CODE XREF: sub_37FC2+EEj cmp.w (IAC_MOTOR_KE_IMLR_DEADBAND_SPEED_ERROR).l,d3 ; Lost motor reset logic can only engage when the absolute engine speed error is greater than this calibration. ; RPM bcs.w loc_38162 move.w (word_FF86AE).l,d3 beq.s loc_380D0 cmp.w (IAC_MOTOR_KE_IACV_STEP_RANGE).l,d3 ; Maximum stepping range of IACV motor. ; Steps bne.w loc_38162 loc_380D0: ; CODE XREF: sub_37FC2+102j tst.b (byte_FFFFB14E).w bne.s loc_380FE move.w (GlobalClock).w,(word_FFFFB14C).w move.b d1,(byte_FFFFB14E).w tst.b (byte_FFFFB140).w bne.s loc_380F2 move.w (IAC_MOTOR_KE_IMLR_MOTOR_LOST_TIME).l,(word_FFFFB14A).w ; IAC motor must appear lost for at least this amount of time before allowing the lost motor logic to initiate. ; Seconds bra.w loc_381B2 ; --------------------------------------------------------------------------- loc_380F2: ; CODE XREF: sub_37FC2+122j move.w (IAC_MOTOR_KE_IMLR_MOTOR_WAIT_FOR_NEXT).l,(word_FFFFB14A).w ; After the IAC motor is determined lost wait for at least this amount of time before allowing the next move to occur. ; Seconds bra.w loc_381B2 ; --------------------------------------------------------------------------- loc_380FE: ; CODE XREF: sub_37FC2+112j move.w (word_FFFFB14A).w,d0 movea.l #unk_FFB14C,a0 jsr sub_276D4 tst.b d0 beq.w loc_381B2 move.b d1,(byte_FFFFB140).w clr.b (byte_FFFFB14E).w move.w (EngineRpmError).w,d3 bge.s loc_38124 neg.w d3 loc_38124: ; CODE XREF: sub_37FC2+15Ej clr.w d4 cmpi.w #$1400,d3 bcc.s loc_38130 lsr.w #1,d3 bra.s loc_38134 ; --------------------------------------------------------------------------- loc_38130: ; CODE XREF: sub_37FC2+168j move.w #$A00,d3 loc_38134: ; CODE XREF: sub_37FC2+16Cj tblu.w (IAC_MOTOR_KV_IMLR_STEP_INCREMENT).l,d3 ; Number of steps required to move to attempt to open/closed if the engine speed low/high and current in the lost motor mode. ; Steps movea.w d3,a2 tst.w (word_FF86AE).l bne.s loc_3814E move.w a2,(word_FF86AE).l bra.s loc_381B2 ; --------------------------------------------------------------------------- loc_3814E: ; CODE XREF: sub_37FC2+182j move.w (word_FF86AE).l,d3 sub.w a2,d3 bcc.s loc_3815A move.l d4,d3 loc_3815A: ; CODE XREF: sub_37FC2+194j move.w d3,(word_FF86AE).l bra.s loc_381B2 ; --------------------------------------------------------------------------- loc_38162: ; CODE XREF: sub_37FC2+E6j ; sub_37FC2+F8j ... move.w (word_FF86AE).l,d3 move.w (word_FFFFB13E).w,d4 cmp.w d3,d4 bcc.s loc_3818C cmp.b (byte_FFFFB150).w,d1 beq.s loc_3817E move.w #$494,(word_FFFFB148).w bra.s loc_38184 ; --------------------------------------------------------------------------- loc_3817E: ; CODE XREF: sub_37FC2+1B2j jsr sub_37DB4 loc_38184: ; CODE XREF: sub_37FC2+1BAj move.b d1,(byte_FF86B2).l bra.s loc_381B2 ; --------------------------------------------------------------------------- loc_3818C: ; CODE XREF: sub_37FC2+1ACj cmp.w d3,d4 bls.s loc_381AC cmp.b (byte_FFFFB150).w,d0 beq.s loc_3819E move.w #$494,(word_FFFFB148).w bra.s loc_381A4 ; --------------------------------------------------------------------------- loc_3819E: ; CODE XREF: sub_37FC2+1D2j jsr sub_37DCE loc_381A4: ; CODE XREF: sub_37FC2+1DAj move.b d0,(byte_FF86B2).l bra.s loc_381B2 ; --------------------------------------------------------------------------- loc_381AC: ; CODE XREF: sub_37FC2+Cj ; sub_37FC2+ACj ... clr.b (byte_FF86B2).l loc_381B2: ; CODE XREF: sub_37FC2+74j ; sub_37FC2+7Cj ... movea.w (word_FFFFB148).w,a2 move.l (dword_FFFFFE1C).w,var_10(a6) move.w a2,(word_FFFFFFC0).w move.l (dword_FFFFFE14).w,var_8(a6) andi.b #$FC,var_8(a6) move.l var_8(a6),(dword_FFFFFE14).w clr.l var_C(a6) moveq #1,d4 andi.b #$FC,var_C(a6) or.b d4,var_C(a6) move.l var_C(a6),var_4(a6) loc_381E8: ; CODE XREF: sub_37FC2+22Aj tst.l (dword_FFFFFE18).w bne.s loc_381E8 move.l var_4(a6),(dword_FFFFFE18).w moveq #2,d5 andi.b #$FC,var_10(a6) or.b d5,var_10(a6) move.l var_10(a6),(dword_FFFFFE1C).w move.w (word_FFFFB144).w,(word_FFFFB146).w move.b (byte_FF86B2).l,d3 cmp.b d3,d4 beq.s loc_3821A cmp.b d3,d5 bne.s loc_3821E loc_3821A: ; CODE XREF: sub_37FC2+252j move.b d3,(byte_FFFFB150).w loc_3821E: ; CODE XREF: sub_37FC2+256j movem.l (sp)+,d0-d1/a0 unlk a6 rts ; End of function sub_37FC2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_38226: ; CODE XREF: OS1:loc_35CB6p link a6,#-$10 andi.w #$FF,d0 movea.l off_89E64(d0.w*4),a2 jmp (a2) ; End of function sub_38226 ; --------------------------------------------------------------------------- loc_38238: ; DATA XREF: OS4:00089E6Co move.w (DesiredIdleThrottleArea).w,d3 clr.b d4 cmpi.w #$F00,d3 bcc.s loc_3824E andi.l #$FFFF,d3 asl.l #2,d3 bra.s loc_38252 ; --------------------------------------------------------------------------- loc_3824E: ; CODE XREF: OS1:00038242j move.w #$3C00,d3 loc_38252: ; CODE XREF: OS1:0003824Cj movea.l #$F4CC,a2 tblu.w (a2),d3 move.w d3,(word_FFFFB13E).w clr.b (byte_FFFFB142).w movea.w (IAC_MOTOR_KE_IACV_LOW_FREQUENCY_STEP).l,a2 ; IACV motor step frequency when engine manifold vacuumis high. ; IACV_Hz_Type move.w a2,(word_FFFFB144).w move.w a2,(word_FFFFB146).w tst.b (byte_FFFFB54A).w bne.s loc_38282 move.w (IAC_MOTOR_KE_DEFAULT_PARK_POSITION).l,(word_FF86AE).l ; At powerup, if nonvolatile memory is lost, Actual_IAC_ Position is set to this parameter. ; Steps loc_38282: ; CODE XREF: OS1:00038276j clr.b (byte_FF86B2).l bclr #4,(byte_FFFFFE20).w move.l (dword_FFFFFE1C).w,-$10(a6) move.w #$928,(word_FFFFFFC0).w move.l (dword_FFFFFE14).w,-8(a6) andi.b #$FC,-8(a6) move.l -8(a6),(dword_FFFFFE14).w clr.l -$C(a6) andi.b #$FC,-$C(a6) ori.b #1,-$C(a6) move.l -$C(a6),-4(a6) loc_382C2: ; CODE XREF: OS1:000382C6j tst.l (dword_FFFFFE18).w bne.s loc_382C2 move.l -4(a6),(dword_FFFFFE18).w andi.b #$FC,-$10(a6) ori.b #2,-$10(a6) move.l -$10(a6),(dword_FFFFFE1C).w clr.b (byte_FF86B0).l bra.s loc_38326 ; --------------------------------------------------------------------------- loc_382E8: ; DATA XREF: OS4:00089E70o cmpi.b #2,(byte_FF86B0).l bne.s loc_38306 move.w (word_FF86AE).l,d3 sub.w (word_FFFFB152).w,d3 bcc.s loc_38300 clr.w d3 loc_38300: ; CODE XREF: OS1:000382FCj move.w d3,(word_FF86AE).l loc_38306: ; CODE XREF: OS1:000382F0j clr.b (byte_FF86B2).l clr.b (byte_FF86B0).l clr.b (byte_FFFFB150).w clr.b (byte_FFFFB141).w clr.b (byte_FFFFB14E).w bra.s loc_3832A ; --------------------------------------------------------------------------- loc_38320: ; DATA XREF: OS4:off_89E64o ; OS4:00089E68o ... clr.b (byte_FF86B2).l loc_38326: ; CODE XREF: OS1:000382E6j clr.b (byte_FFFFB150).w loc_3832A: ; CODE XREF: OS1:0003831Ej ; DATA XREF: OS4:00089E78o unlk a6 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3832E: ; CODE XREF: sub_35BE4p var_2 = -2 link a6,#-2 movem.l d0/a0,-(sp) move.w (EngineRpmError).w,d3 bge.s loc_3833E neg.w d3 loc_3833E: ; CODE XREF: sub_3832E+Cj cmp.w (IAC_REGULATORS_KE_SPEED_ERROR_LIMIT_ADAPTIVE).l,d3 ; Absolute value of engine speed error must be less than whis calibration for adaptive updates to occur. ; RPM bhi.s loc_3839C tst.b (byte_FFFF94E5).w bne.s loc_3839C cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_3839C tst.b (IdleSpeedErrorSmall?).w bne.s loc_383A4 tst.b (IdleSpeedErrorTimer?).w beq.s loc_3838E movea.l #unk_FFA71A,a0 jsr sub_276F4 move.w (word_FFFFA71A).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (IAC_REGULATORS_KE_SPEED_ERROR_LIMIT_TIMER).l,d3 ; Continuous time engine speed must be below limit before adaptive updates are allowed. ; Seconds bcs.s loc_383A4 move.b #1,(IdleSpeedErrorSmall?).w clr.b (IdleSpeedErrorTimer?).w bra.s loc_383A4 ; --------------------------------------------------------------------------- loc_3838E: ; CODE XREF: sub_3832E+30j move.w (GlobalClock).w,(word_FFFFA71A).w move.b #1,(IdleSpeedErrorTimer?).w bra.s loc_383A4 ; --------------------------------------------------------------------------- loc_3839C: ; CODE XREF: sub_3832E+16j ; sub_3832E+1Cj ... clr.b (IdleSpeedErrorTimer?).w clr.b (IdleSpeedErrorSmall?).w loc_383A4: ; CODE XREF: sub_3832E+2Aj ; sub_3832E+52j ... move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (IAC_REGULATORS_KE_ADAPTIVE_TEMPERATURE_LOW).l,d3 ; Coolant temperature must be above this calibration to enable adaptive updates. ; Degrees_C blt.w loc_38456 cmp.w (IAC_REGULATORS_KE_ADAPTIVE_TEMPERATURE_HIGH).l,d3 ; Coolant temperature must be below this calibration to enable adaptive updates. ; Degrees_C bgt.w loc_38456 tst.b (IdleSpeedErrorSmall?).w beq.w loc_38456 tst.w (DesiredIdleAirflow_IncludingFeedback_Clamped).w beq.w loc_38456 tst.w (word_FFFFB13E).w bne.s loc_383D8 tst.b (byte_FFFFB370).w beq.s loc_38456 loc_383D8: ; CODE XREF: sub_3832E+A2j tst.b (byte_FFFFB370).w beq.s loc_383EA move.w (word_FFFF9050).w,d3 cmp.w (ETC_THROT_KE_THROTTLE_STOP_MIN_SW).l,d3 ; Min value to prevent throttle from reaching the mechanicalstop ; Percent_Rotation beq.s loc_38456 loc_383EA: ; CODE XREF: sub_3832E+AEj tst.b (byte_FFFFA71C).w bne.s loc_38456 tst.b (byte_FFFFB140).w bne.s loc_38456 move.b (IdleControlMode_DriveNeutral_AcOrNot).w,d3 cmpi.b #$14,d3 beq.s loc_3844E cmpi.b #6,d3 beq.s loc_38436 cmpi.b #4,d3 beq.s loc_38422 cmpi.b #$15,d3 bne.s loc_38456 cmpi.b #5,(byte_FFFFA6F6).w bne.s loc_38462 move.w (IdleIntegralAccumulator_FINAL).w,(word_FFFFA6EA).w bra.s loc_3845A ; --------------------------------------------------------------------------- loc_38422: ; CODE XREF: sub_3832E+DCj cmpi.b #3,(byte_FFFFA6F6).w bne.s loc_38462 clr.w (word_FFFFA6EA).w move.w (IdleIntegralAccumulator_FINAL).w,(word_FFFFA6E8).w bra.s loc_3845E ; --------------------------------------------------------------------------- loc_38436: ; CODE XREF: sub_3832E+D6j cmpi.b #4,(byte_FFFFA6F6).w loc_3843C: ; CODE XREF: sub_3832E+126j bne.s loc_38462 clr.w (word_FFFFA6EA).w clr.w (word_FFFFA6E8).w move.w (word_FFFF9E1A).w,(word_FFFFA6E6).w bra.s loc_38462 ; --------------------------------------------------------------------------- loc_3844E: ; CODE XREF: sub_3832E+D0j cmpi.b #6,(byte_FFFFA6F6).w bra.s loc_3843C ; --------------------------------------------------------------------------- loc_38456: ; CODE XREF: sub_3832E+80j ; sub_3832E+8Aj ... clr.w (word_FFFFA6EA).w loc_3845A: ; CODE XREF: sub_3832E+F2j clr.w (word_FFFFA6E8).w loc_3845E: ; CODE XREF: sub_3832E+106j clr.w (word_FFFFA6E6).w loc_38462: ; CODE XREF: sub_3832E+EAj ; sub_3832E+FAj ... movem.l (sp)+,d0/a0 unlk a6 rts ; End of function sub_3832E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame DecideIdleMode: ; CODE XREF: sub_35B80+50p var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d2/d6-a1,-(sp) clr.b (IdleModeChangeFlag).w bclr #3,(PidFlags).w bclr #1,(PidFlags).w bclr #2,(PidFlags).w clr.l d0 move.w (DesiredIdleSpeed).w,d0 clr.l d3 move.w (EngineRPM_PID_000C___).w,d3 sub.l d0,d3 cmpi.l #$FFFF8000,d3 blt.s loc_384AC cmpi.l #$7FFF,d3 ble.s loc_384B0 move.w #$7FFF,d3 bra.s loc_384B0 ; --------------------------------------------------------------------------- loc_384AC: ; CODE XREF: DecideIdleMode+32j move.w #$8000,d3 loc_384B0: ; CODE XREF: DecideIdleMode+3Aj ; DecideIdleMode+40j move.w d3,(EngineRpmError).w tst.b (byte_FFFF94E4).w bne.s loc_384D8 move.b (IdleControlMode).w,d4 cmpi.b #1,d4 beq.s loc_384D2 moveq #3,d6 cmp.b d4,d6 beq.s loc_384D2 btst #4,(PidFlags).w beq.s loc_384D8 loc_384D2: ; CODE XREF: DecideIdleMode+58j ; DecideIdleMode+5Ej move.w d3,(word_FFFFA6F0).w bra.s loc_384DC ; --------------------------------------------------------------------------- loc_384D8: ; CODE XREF: DecideIdleMode+4Ej ; DecideIdleMode+66j clr.w (word_FFFFA6F0).w loc_384DC: ; CODE XREF: DecideIdleMode+6Cj tst.b (byte_FFFFA6F9).w beq.w loc_3856A cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_38528 cmpi.b #8,(byte_FFFFA3B8).w bne.s loc_38528 move.w (DesiredIdleSpeed).w,d3 clr.w d4 move.l #$800,d6 cmp.w d3,d6 bls.s loc_3850A move.l d4,d3 bra.s loc_38520 ; IAC_REGULATORS_KV_STALL_SAVER_SPEED_NEUTRAL ; --------------------------------------------------------------------------- loc_3850A: ; CODE XREF: DecideIdleMode+9Aj cmpi.w #$1E00,d3 bcc.s loc_3851C andi.l #$FFFF,d3 sub.l d6,d3 lsr.w #1,d3 bra.s loc_38520 ; IAC_REGULATORS_KV_STALL_SAVER_SPEED_NEUTRAL ; --------------------------------------------------------------------------- loc_3851C: ; CODE XREF: DecideIdleMode+A4j move.w #$B00,d3 loc_38520: ; CODE XREF: DecideIdleMode+9Ej ; DecideIdleMode+B0j movea.l #$F58E,a2 ; IAC_REGULATORS_KV_STALL_SAVER_SPEED_NEUTRAL bra.s SallSaverTableLookup ; --------------------------------------------------------------------------- loc_38528: ; CODE XREF: DecideIdleMode+82j ; DecideIdleMode+8Aj move.w (DesiredIdleSpeed).w,d3 clr.w d4 move.l #$800,d6 cmp.w d3,d6 bls.s loc_3853C move.l d4,d3 bra.s loc_38552 ; IAC_REGULATORS_KV_STALL_SAVER_SPEED_DRIVE ; --------------------------------------------------------------------------- loc_3853C: ; CODE XREF: DecideIdleMode+CCj cmpi.w #$1E00,d3 bcc.s loc_3854E andi.l #$FFFF,d3 sub.l d6,d3 lsr.w #1,d3 bra.s loc_38552 ; IAC_REGULATORS_KV_STALL_SAVER_SPEED_DRIVE ; --------------------------------------------------------------------------- loc_3854E: ; CODE XREF: DecideIdleMode+D6j move.w #$B00,d3 loc_38552: ; CODE XREF: DecideIdleMode+D0j ; DecideIdleMode+E2j movea.l #$F576,a2 ; IAC_REGULATORS_KV_STALL_SAVER_SPEED_DRIVE SallSaverTableLookup: ; CODE XREF: DecideIdleMode+BCj tblu.w (a2),d3 cmp.w (EngineRPM_PID_000C___).w,d3 shi d0 neg.b d0 move.b d0,(StallSaverActiveFlag).w bra.s CanWeDoSpeedMode ; --------------------------------------------------------------------------- loc_3856A: ; CODE XREF: DecideIdleMode+76j clr.b (StallSaverActiveFlag).w CanWeDoSpeedMode: ; CODE XREF: DecideIdleMode+FEj move.b (StartupToPidModeFlag?).w,d0 beq.s loc_38586 move.w (DesiredIdleSpeed).w,d3 add.w (IAC_REGULATORS_KE_EARLY_PID_RPM_HYSTERESIS).l,d3 ; Once in early PID mode, extend the minimum set point speed criteria by this much. ; RPM bcc.s loc_3858A move.w #$FFFF,d3 bra.s loc_3858A ; --------------------------------------------------------------------------- loc_38586: ; CODE XREF: DecideIdleMode+108j move.w (DesiredIdleSpeed).w,d3 loc_3858A: ; CODE XREF: DecideIdleMode+114j ; DecideIdleMode+11Aj clr.b d4 tst.b (byte_FFFF94D0).w bne.s loc_385A2 tst.b d0 beq.s loc_385CE move.w (word_FFFFAEBC).w,d1 cmp.w (IAC_AIRFLOW_KE_THROTTLE_CRACKER_ENABLE_THRES).l,d1 ; Vehicle speed must be >= to this calibration to enable the extended throttle cracker function. ; MPH bcs.s loc_385CE loc_385A2: ; CODE XREF: DecideIdleMode+126j cmp.w (EngineRPM_PID_000C___).w,d3 bls.s loc_385CE cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_385BA moveq #8,d6 cmp.b (byte_FFFFA3B8).w,d6 bne.s loc_385CE loc_385BA: ; CODE XREF: DecideIdleMode+146j move.w (word_FFFFAB66).w,d1 cmp.w (IAC_REGULATORS_KE_EARLY_PID_ENTRANCE_MAX_TPS).l,d1 ; TPS must be less than this value to enter Early PID mode. A zero value will completely disable this function. ; Percent bcc.s loc_385CE tst.b (IdleSpeedErrorSmall?).w bne.s loc_385CE addq.b #1,d4 loc_385CE: ; CODE XREF: DecideIdleMode+12Aj ; DecideIdleMode+136j ... move.b d4,(StartupToPidModeFlag?).w clr.b d1 tst.b (byte_FFFF94D0).w bne.s loc_38614 tst.b (byte_FFFFA724).w beq.s loc_385EC move.w (word_FFFFAEBC).w,d3 cmp.w (IAC_AIRFLOW_KE_THROTTLE_CRACKER_ENABLE_THRES).l,d3 ; Vehicle speed must be >= to this calibration to enable the extended throttle cracker function. ; MPH bcc.s loc_38614 loc_385EC: ; CODE XREF: DecideIdleMode+174j tst.b (byte_FFFFA724).w bne.s loc_385FE move.w (word_FFFFAEBC).w,d3 cmp.w (IAC_AIRFLOW_KE_THROTTLE_CRACKER_DISABLE_THRE).l,d3 ; Vehicle speed must be <= to this calibration to disable the extended throttle cracker function. ; MPH bhi.s loc_38614 loc_385FE: ; CODE XREF: DecideIdleMode+186j tst.b (byte_FFFFA59F).w bne.s loc_38614 btst #2,(byte_FFFFB1C2).w bne.s loc_38614 tst.b (byte_FFFFB2E0).w bne.s loc_38614 addq.b #1,d1 loc_38614: ; CODE XREF: DecideIdleMode+16Ej ; DecideIdleMode+180j ... or.b d4,d1 move.b d1,(byte_FFFFA724).w moveq #3,d2 cmp.b (ThrottleControlMode2?).w,d2 bne.w loc_3890A move.b (IdleControlMode).w,d3 cmpi.b #2,d3 bhi.w HasStartupDelayExpiredForIdle beq.s loc_38692 tst.b d3 beq.s loc_3864E tst.b d1 bne.w loc_3890E clr.b (IdleControlMode).w move.b #1,(IdleModeChangeFlag).w clr.w (IdleIntegral_Something_Maybe_Accumulator?).w bra.w loc_3890E ; --------------------------------------------------------------------------- loc_3864E: ; CODE XREF: DecideIdleMode+1CAj tst.b (byte_FFFFA6F9).w bne.s loc_3865C move.b d2,(IdleControlMode).w bra.w loc_3890E ; --------------------------------------------------------------------------- loc_3865C: ; CODE XREF: DecideIdleMode+1E8j tst.b d4 beq.s loc_38682 move.w (ThrottleCrackerPlusFollower).w,d3 bge.s loc_3866A move.w #$7FFF,d3 loc_3866A: ; CODE XREF: DecideIdleMode+1FAj moveq #1,d1 move.b d1,(IdleControlMode).w move.b d1,(IdleModeChangeFlag).w move.w d3,(IdleIntegral_Something_Maybe_Accumulator?).w jsr sub_37C54 bra.w loc_3890E ; --------------------------------------------------------------------------- loc_38682: ; CODE XREF: DecideIdleMode+1F4j tst.b d1 beq.w loc_3890E move.b #2,(IdleControlMode).w bra.w loc_3890E ; --------------------------------------------------------------------------- loc_38692: ; CODE XREF: DecideIdleMode+1C6j tst.b (byte_FFFFA71E).w bne.s loc_386A6 move.w (GlobalClock).w,(word_FFFFA714).w moveq #1,d6 move.b d6,(byte_FFFFA71E).w bra.s loc_386B2 ; --------------------------------------------------------------------------- loc_386A6: ; CODE XREF: DecideIdleMode+22Cj movea.l #unk_FFA714,a0 jsr sub_276F4 loc_386B2: ; CODE XREF: DecideIdleMode+23Aj clr.b var_4(a6) bclr #7,var_4(a6) btst #7,(PidFlags).w beq.s loc_386CA bset #7,var_4(a6) loc_386CA: ; CODE XREF: DecideIdleMode+258j bclr #6,var_4(a6) btst #6,(PidFlags).w beq.s loc_386DE bset #6,var_4(a6) loc_386DE: ; CODE XREF: DecideIdleMode+26Cj bclr #5,var_4(a6) btst #5,(PidFlags).w beq.s loc_386F2 bset #5,var_4(a6) loc_386F2: ; CODE XREF: DecideIdleMode+280j move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DesiredIdleSpeed).w,d3 bhi.s loc_3871C clr.b (byte_FFFFA71E).w bset #7,(PidFlags).w bset #6,(PidFlags).w bset #5,(PidFlags).w bset #4,(PidFlags).w bra.w loc_387B0 ; --------------------------------------------------------------------------- loc_3871C: ; CODE XREF: DecideIdleMode+290j move.w (word_FFFFA714).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (IAC_REGULATORS_KE_DELAY_P_CONTROL).l,d3 ; Cal to transition into proportional speed control duringcoast down and when exiting a neutral throttle tip in ; Seconds bcs.s loc_38738 bset #7,(PidFlags).w loc_38738: ; CODE XREF: DecideIdleMode+2C6j move.w (word_FFFFA714).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (IAC_REGULATORS_KE_DELAY_D_CONTROL).l,d3 ; Cal to transition into derivative speed control duringcoast down and when exiting a neutral throttle tip in ; Seconds bcs.s loc_38754 bset #6,(PidFlags).w loc_38754: ; CODE XREF: DecideIdleMode+2E2j move.w (word_FFFFA714).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (IAC_REGULATORS_KE_DELAY_I_CONTROL).l,d3 ; Cal to transition into integral speed control duringcoast down and when exiting a neutral throttle tip in ; Seconds bcs.s loc_38770 bset #5,(PidFlags).w loc_38770: ; CODE XREF: DecideIdleMode+2FEj move.w (word_FFFFA714).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (IAC_REGULATORS_KE_DELAY_IDLE_SPARK).l,d3 ; Cal to transition into idle saprk control during coastdown and when exiting a neutral throttle tip in ; Seconds bcs.s loc_3878C bset #4,(PidFlags).w loc_3878C: ; CODE XREF: DecideIdleMode+31Aj btst #7,(PidFlags).w beq.s loc_387B0 btst #6,(PidFlags).w beq.s loc_387B0 btst #5,(PidFlags).w beq.s loc_387B0 btst #4,(PidFlags).w beq.s loc_387B0 clr.b (byte_FFFFA71E).w loc_387B0: ; CODE XREF: DecideIdleMode+2AEj ; DecideIdleMode+328j ... btst #7,var_4(a6) bne.s loc_387C8 btst #7,(PidFlags).w beq.s loc_387C8 bset #3,(PidFlags).w bra.s loc_387CE ; --------------------------------------------------------------------------- loc_387C8: ; CODE XREF: DecideIdleMode+34Cj ; DecideIdleMode+354j bclr #3,(PidFlags).w loc_387CE: ; CODE XREF: DecideIdleMode+35Cj btst #6,var_4(a6) bne.s loc_387E6 btst #6,(PidFlags).w beq.s loc_387E6 bset #2,(PidFlags).w bra.s loc_387EC ; --------------------------------------------------------------------------- loc_387E6: ; CODE XREF: DecideIdleMode+36Aj ; DecideIdleMode+372j bclr #2,(PidFlags).w loc_387EC: ; CODE XREF: DecideIdleMode+37Aj btst #5,var_4(a6) bne.s loc_38804 btst #5,(PidFlags).w beq.s loc_38804 bset #1,(PidFlags).w bra.s loc_3880A ; --------------------------------------------------------------------------- loc_38804: ; CODE XREF: DecideIdleMode+388j ; DecideIdleMode+390j bclr #1,(PidFlags).w loc_3880A: ; CODE XREF: DecideIdleMode+398j tst.b d1 bne.s loc_38834 clr.b (IdleControlMode).w move.b #1,(IdleModeChangeFlag).w loc_38818: ; CODE XREF: DecideIdleMode+3F8j bclr #7,(PidFlags).w bclr #6,(PidFlags).w bclr #5,(PidFlags).w bclr #4,(PidFlags).w bra.w loc_3890E ; --------------------------------------------------------------------------- loc_38834: ; CODE XREF: DecideIdleMode+3A2j btst #7,(PidFlags).w beq.w loc_3890E btst #6,(PidFlags).w beq.w loc_3890E btst #5,(PidFlags).w beq.w loc_3890E btst #4,(PidFlags).w beq.w loc_3890E moveq #1,d1 move.b d1,(IdleControlMode).w bra.s loc_38818 ; --------------------------------------------------------------------------- HasStartupDelayExpiredForIdle: ; CODE XREF: DecideIdleMode+1C2j move.l (EngineRunTime).w,d3 clr.l d5 move.w (IAC_REGULATORS_KE_START_UP_ENGINE_UNDER_SPEED_T).l,d5 cmp.l d3,d5 bcc.s loc_388E2 move.w (EngineRPM_PID_000C___).w,d5 cmp.w (DesiredIdleSpeed).w,d5 bhi.s loc_388E2 move.w (word_FFFF94D2).w,d3 add.w (word_FFFF94D8).w,d3 tst.w d3 bge.s loc_3888E move.w #$7FFF,d3 loc_3888E: ; CODE XREF: DecideIdleMode+41Ej move.w d3,(word_FFFF94DA).w tst.w d3 blt.s loc_388AE move.l (IdleBaseAirflow?).w,d3 move.w (word_FFFF94DA).w,d5 blt.s loc_388A4 ext.l d5 bra.s loc_388A6 ; --------------------------------------------------------------------------- loc_388A4: ; CODE XREF: DecideIdleMode+434j clr.l d5 loc_388A6: ; CODE XREF: DecideIdleMode+438j sub.l d5,d3 bcc.s loc_388CE clr.l d3 bra.s loc_388CE ; --------------------------------------------------------------------------- loc_388AE: ; CODE XREF: DecideIdleMode+42Aj move.w (word_FFFF94DA).w,d3 bge.s loc_388B8 neg.w d3 bvs.s loc_388C0 loc_388B8: ; CODE XREF: DecideIdleMode+448j tst.w d3 blt.s loc_388C4 ext.l d3 bra.s loc_388C6 ; --------------------------------------------------------------------------- loc_388C0: ; CODE XREF: DecideIdleMode+44Cj moveq #$FFFFFFFF,d3 bra.s loc_388C6 ; --------------------------------------------------------------------------- loc_388C4: ; CODE XREF: DecideIdleMode+450j clr.l d3 loc_388C6: ; CODE XREF: DecideIdleMode+454j ; DecideIdleMode+458j add.l (IdleBaseAirflow?).w,d3 bcc.s loc_388CE moveq #$FFFFFFFF,d3 loc_388CE: ; CODE XREF: DecideIdleMode+43Ej ; DecideIdleMode+442j ... move.l d3,(IdleBaseAirflow?).w moveq #2,d0 jsr sub_37A50 loc_388DA: ; CODE XREF: DecideIdleMode+488j moveq #1,d6 move.b d6,(byte_FFFFA6F9).w bra.s loc_388F4 ; --------------------------------------------------------------------------- loc_388E2: ; CODE XREF: DecideIdleMode+408j ; DecideIdleMode+412j clr.l d0 move.w (IAC_REGULATORS_KE_START_UP_PID_DELAY).l,d0 ; Calibration to delay PID control until after engine isrunning. ; Seconds cmp.l d3,d0 bcc.s loc_388F4 tst.w (StartupAirflowNonZero).w beq.s loc_388DA loc_388F4: ; CODE XREF: DecideIdleMode+476j ; DecideIdleMode+482j tst.b (byte_FFFFA6F9).w beq.s loc_3890E moveq #1,d6 move.b d6,(IdleModeChangeFlag).w tst.b d1 beq.s loc_3890A move.b d6,(IdleControlMode).w bra.s loc_3890E ; --------------------------------------------------------------------------- loc_3890A: ; CODE XREF: DecideIdleMode+1B6j ; DecideIdleMode+498j clr.b (IdleControlMode).w loc_3890E: ; CODE XREF: DecideIdleMode+1CEj ; DecideIdleMode+1E0j ... clr.b d3 btst #5,(PidFlags).w bne.s loc_38920 cmpi.b #1,(IdleControlMode).w bne.s loc_38922 loc_38920: ; CODE XREF: DecideIdleMode+4ACj addq.b #1,d3 loc_38922: ; CODE XREF: DecideIdleMode+4B4j move.b d3,(byte_FFFFA6FB).w move.b (IdleModeChangeFlag).w,d0 bne.w loc_38AFC btst #3,(PidFlags).w bne.w loc_38AFC tst.b (byte_FFFF94E5).w bne.w loc_38AFC cmpi.b #1,(IdleControlMode).w beq.s loc_38952 btst #7,(PidFlags).w beq.w loc_38B00 loc_38952: ; CODE XREF: DecideIdleMode+4DCj move.w (EngineRpmError).w,d3 move.l d3,d4 tst.w d4 bge.s loc_3895E neg.w d4 loc_3895E: ; CODE XREF: DecideIdleMode+4F0j cmp.w (IAC_REGULATORS_KE_PROPORTIONAL_DEAD_BAND_ENGINE).l,d4 bcs.w loc_38AFC cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.w loc_38A08 moveq #8,d7 cmp.b (byte_FFFFA3B8).w,d7 bne.w loc_38A08 tst.w d3 ble.s loc_389C2 move.w d3,d4 move.w #$200,d7 cmp.w d4,d7 bcs.s loc_38998 moveq #5,d4 muls.w d4,d3 bpl.s loc_38994 addq.l #1,d3 loc_38994: ; CODE XREF: DecideIdleMode+526j asr.l #1,d3 bra.s loc_389AE ; IAC_REGULATORS_KV_P_SPEED_HIGH_IN_PARK_NEUTRAL ; --------------------------------------------------------------------------- loc_38998: ; CODE XREF: DecideIdleMode+520j move.w #$800,d5 cmp.w d4,d5 bls.s loc_389AA sub.w d7,d3 movea.w #$500,a0 add.w a0,d3 bra.s loc_389AE ; IAC_REGULATORS_KV_P_SPEED_HIGH_IN_PARK_NEUTRAL ; --------------------------------------------------------------------------- loc_389AA: ; CODE XREF: DecideIdleMode+534j move.w #$B00,d3 loc_389AE: ; CODE XREF: DecideIdleMode+52Cj ; DecideIdleMode+53Ej movea.l #$F660,a2 ; IAC_REGULATORS_KV_P_SPEED_HIGH_IN_PARK_NEUTRAL loc_389B4: ; CODE XREF: DecideIdleMode+5DCj ; DecideIdleMode+612j tbls.w (a2),d3 ; Idle proportional lookup neg.w d3 move.w d3,(IdleProportionalTerm).w bra.w loc_38B00 ; --------------------------------------------------------------------------- loc_389C2: ; CODE XREF: DecideIdleMode+516j tst.w d3 bge.w loc_38AFC move.l #$200,d7 cmp.w d4,d7 bcs.s loc_389DA moveq #5,d3 mulu.w d3,d4 lsr.l #1,d4 bra.s loc_389F6 ; --------------------------------------------------------------------------- loc_389DA: ; CODE XREF: DecideIdleMode+566j move.w #$800,d5 cmp.w d4,d5 bls.s loc_389F2 andi.l #$FFFF,d4 sub.l d7,d4 movea.w #$500,a0 add.w a0,d4 bra.s loc_389F6 ; --------------------------------------------------------------------------- loc_389F2: ; CODE XREF: DecideIdleMode+576j move.w #$B00,d4 loc_389F6: ; CODE XREF: DecideIdleMode+56Ej ; DecideIdleMode+586j movea.l #$F6A8,a2 loc_389FC: ; CODE XREF: DecideIdleMode+656j ; DecideIdleMode+68Ej tbls.w (a2),d4 move.w d4,(IdleProportionalTerm).w bra.w loc_38B00 ; --------------------------------------------------------------------------- loc_38A08: ; CODE XREF: DecideIdleMode+506j ; DecideIdleMode+510j tst.w d3 ble.s loc_38A80 btst #5,(byte_FFFFAD8B).w beq.s loc_38A4A move.w d3,d4 move.w #$200,d7 cmp.w d4,d7 bcs.s loc_38A2A moveq #5,d4 muls.w d4,d3 bpl.s loc_38A26 addq.l #1,d3 loc_38A26: ; CODE XREF: DecideIdleMode+5B8j asr.l #1,d3 bra.s loc_38A40 ; IAC_REGULATORS_KV_P_SPEED_HIGH_IN_DRIVE_AC ; --------------------------------------------------------------------------- loc_38A2A: ; CODE XREF: DecideIdleMode+5B2j move.w #$800,d5 cmp.w d4,d5 bls.s loc_38A3C sub.w d7,d3 movea.w #$500,a0 add.w a0,d3 bra.s loc_38A40 ; IAC_REGULATORS_KV_P_SPEED_HIGH_IN_DRIVE_AC ; --------------------------------------------------------------------------- loc_38A3C: ; CODE XREF: DecideIdleMode+5C6j move.w #$B00,d3 loc_38A40: ; CODE XREF: DecideIdleMode+5BEj ; DecideIdleMode+5D0j movea.l #$F648,a2 ; IAC_REGULATORS_KV_P_SPEED_HIGH_IN_DRIVE_AC bra.w loc_389B4 ; Idle proportional lookup ; --------------------------------------------------------------------------- loc_38A4A: ; CODE XREF: DecideIdleMode+5A8j move.w d3,d4 move.w #$200,d7 cmp.w d4,d7 bcs.s loc_38A60 moveq #5,d4 muls.w d4,d3 bpl.s loc_38A5C addq.l #1,d3 loc_38A5C: ; CODE XREF: DecideIdleMode+5EEj asr.l #1,d3 bra.s loc_38A76 ; IAC_REGULATORS_KV_P_SPEED_HIGH_IN_DRIVE ; --------------------------------------------------------------------------- loc_38A60: ; CODE XREF: DecideIdleMode+5E8j move.w #$800,d5 cmp.w d4,d5 bls.s loc_38A72 sub.w d7,d3 movea.w #$500,a0 add.w a0,d3 bra.s loc_38A76 ; IAC_REGULATORS_KV_P_SPEED_HIGH_IN_DRIVE ; --------------------------------------------------------------------------- loc_38A72: ; CODE XREF: DecideIdleMode+5FCj move.w #$B00,d3 loc_38A76: ; CODE XREF: DecideIdleMode+5F4j ; DecideIdleMode+606j movea.l #$F630,a2 ; IAC_REGULATORS_KV_P_SPEED_HIGH_IN_DRIVE bra.w loc_389B4 ; Idle proportional lookup ; --------------------------------------------------------------------------- loc_38A80: ; CODE XREF: DecideIdleMode+5A0j tst.w d3 bge.s loc_38AFC btst #5,(byte_FFFFAD8B).w beq.s loc_38AC4 move.l #$200,d7 cmp.w d4,d7 bcs.s loc_38A9E moveq #5,d3 mulu.w d3,d4 lsr.l #1,d4 bra.s loc_38ABA ; --------------------------------------------------------------------------- loc_38A9E: ; CODE XREF: DecideIdleMode+62Aj move.w #$800,d5 cmp.w d4,d5 bls.s loc_38AB6 andi.l #$FFFF,d4 sub.l d7,d4 movea.w #$500,a0 add.w a0,d4 bra.s loc_38ABA ; --------------------------------------------------------------------------- loc_38AB6: ; CODE XREF: DecideIdleMode+63Aj move.w #$B00,d4 loc_38ABA: ; CODE XREF: DecideIdleMode+632j ; DecideIdleMode+64Aj movea.l #$F690,a2 bra.w loc_389FC ; --------------------------------------------------------------------------- loc_38AC4: ; CODE XREF: DecideIdleMode+620j move.l #$200,d7 cmp.w d4,d7 bcs.s loc_38AD6 moveq #5,d3 mulu.w d3,d4 lsr.l #1,d4 bra.s loc_38AF2 ; IAC_REGULATORS_KV_P_SPEED_HIGH_IN_PARK_NEUTRAL ; --------------------------------------------------------------------------- loc_38AD6: ; CODE XREF: DecideIdleMode+662j move.w #$800,d5 cmp.w d4,d5 bls.s loc_38AEE andi.l #$FFFF,d4 sub.l d7,d4 movea.w #$500,a0 add.w a0,d4 bra.s loc_38AF2 ; IAC_REGULATORS_KV_P_SPEED_HIGH_IN_PARK_NEUTRAL ; --------------------------------------------------------------------------- loc_38AEE: ; CODE XREF: DecideIdleMode+672j move.w #$B00,d4 loc_38AF2: ; CODE XREF: DecideIdleMode+66Aj ; DecideIdleMode+682j movea.l #$F678,a2 ; IAC_REGULATORS_KV_P_SPEED_HIGH_IN_PARK_NEUTRAL bra.w loc_389FC ; --------------------------------------------------------------------------- loc_38AFC: ; CODE XREF: DecideIdleMode+4C0j ; DecideIdleMode+4CAj ... clr.w (IdleProportionalTerm).w loc_38B00: ; CODE XREF: DecideIdleMode+4E4j ; DecideIdleMode+554j ... tst.b d0 bne.s loc_38B0C btst #2,(PidFlags).w beq.s loc_38B24 loc_38B0C: ; CODE XREF: DecideIdleMode+698j clr.w (StallSaverAmount_ForSure).w clr.w (IdleDerivativeTerm).w movea.w (EngineRPM_PID_000C___).w,a2 move.w a2,(EngineSpeedLightlyFiltered).w move.w a2,(EngineSpeedHeavilyFiltered).w bra.w loc_38CD4 ; --------------------------------------------------------------------------- loc_38B24: ; CODE XREF: DecideIdleMode+6A0j move.b (StallSaverActiveFlag).w,d3 beq.s loc_38B44 tst.b (SomethingAboutDerivativeAndStallSaver).w bne.s loc_38B44 move.b #1,(SomethingAboutDerivativeAndStallSaver).w movea.w (EngineRPM_PID_000C___).w,a2 move.w a2,(EngineSpeedLightlyFiltered).w move.w a2,(EngineSpeedHeavilyFiltered).w bra.s loc_38B4C ; --------------------------------------------------------------------------- loc_38B44: ; CODE XREF: DecideIdleMode+6BEj ; DecideIdleMode+6C4j tst.b d3 bne.s loc_38B4C clr.b (SomethingAboutDerivativeAndStallSaver).w loc_38B4C: ; CODE XREF: DecideIdleMode+6D8j ; DecideIdleMode+6DCj tst.b d3 bne.s loc_38B62 cmpi.b #1,(IdleControlMode).w beq.s loc_38B62 btst #6,(PidFlags).w beq.w loc_38C8A loc_38B62: ; CODE XREF: DecideIdleMode+6E4j ; DecideIdleMode+6ECj move.w (EngineSpeedLightlyFiltered).w,d2 move.w (EngineRPM_PID_000C___).w,d1 move.w (IAC_REGULATORS_KE_ENGINE_SPEED_LIGHTLY_FILTERED).l,d0 jsr sub_26608 move.w d0,(EngineSpeedLightlyFiltered).w move.w (EngineSpeedHeavilyFiltered).w,d2 move.w (EngineRPM_PID_000C___).w,d1 move.w (IAC_REGULATORS_KE_ENGINE_SPEED_HEAVILY_FILTERED).l,d0 jsr sub_26608 move.w d0,(EngineSpeedHeavilyFiltered).w tst.w d0 beq.s loc_38BC4 move.w (EngineSpeedLightlyFiltered).w,d3 move.w #$7D0,d1 mulu.w d1,d3 divu.w (EngineSpeedHeavilyFiltered).w,d3 bvs.s loc_38BB4 cmpi.w #$BB8,d3 bhi.s loc_38BB4 cmpi.w #$3E8,d3 bcs.s loc_38BBA bra.s loc_38BBE ; --------------------------------------------------------------------------- loc_38BB4: ; CODE XREF: DecideIdleMode+73Aj ; DecideIdleMode+740j move.w #$BB8,d3 bra.s loc_38BBE ; --------------------------------------------------------------------------- loc_38BBA: ; CODE XREF: DecideIdleMode+746j move.w #$3E8,d3 loc_38BBE: ; CODE XREF: DecideIdleMode+748j ; DecideIdleMode+74Ej move.w d3,(word_FFFFA700).w bra.s loc_38BCA ; --------------------------------------------------------------------------- loc_38BC4: ; CODE XREF: DecideIdleMode+72Aj move.w #$BB8,(word_FFFFA700).w loc_38BCA: ; CODE XREF: DecideIdleMode+758j move.w (word_FFFFA700).w,d4 move.l d4,d3 movea.w #$7D0,a0 sub.w a0,d3 cmpi.w #$7D0,d4 bcs.s loc_38C30 clr.w d4 tst.w d3 bge.s loc_38BE6 move.l d4,d3 bra.s loc_38C22 ; --------------------------------------------------------------------------- loc_38BE6: ; CODE XREF: DecideIdleMode+776j cmpi.w #$C8,d3 ; '?' bgt.s loc_38BFC muls.w #$624E,d3 moveq #3,d1 divs.l d1,d3 divs.w #$333,d3 bra.s loc_38C22 ; --------------------------------------------------------------------------- loc_38BFC: ; CODE XREF: DecideIdleMode+780j cmpi.w #$12C,d3 bge.s loc_38C1E muls.w #$624E,d3 subi.l #$4CCCF0,d3 moveq #3,d1 divs.l d1,d3 divs.w #$CCD,d3 movea.w #$800,a1 add.w a1,d3 bra.s loc_38C22 ; --------------------------------------------------------------------------- loc_38C1E: ; CODE XREF: DecideIdleMode+796j move.w #$8FE,d3 loc_38C22: ; CODE XREF: DecideIdleMode+77Aj ; DecideIdleMode+790j ... movea.l #$F5BC,a2 tbls.w (a2),d3 neg.w d3 bra.s loc_38C86 ; --------------------------------------------------------------------------- loc_38C30: ; CODE XREF: DecideIdleMode+770j tst.w d3 bge.s loc_38C36 neg.w d3 loc_38C36: ; CODE XREF: DecideIdleMode+7C8j clr.w d4 tst.w d3 bge.s loc_38C40 move.l d4,d3 bra.s loc_38C7C ; IAC_REGULATORS_KV_D_SPEED_DECREASING ; --------------------------------------------------------------------------- loc_38C40: ; CODE XREF: DecideIdleMode+7D0j cmpi.w #$C8,d3 ; '?' bgt.s loc_38C56 muls.w #$624E,d3 moveq #3,d1 divs.l d1,d3 divs.w #$333,d3 bra.s loc_38C7C ; IAC_REGULATORS_KV_D_SPEED_DECREASING ; --------------------------------------------------------------------------- loc_38C56: ; CODE XREF: DecideIdleMode+7DAj cmpi.w #$12C,d3 bge.s loc_38C78 muls.w #$624E,d3 subi.l #$4CCCF0,d3 moveq #3,d1 divs.l d1,d3 divs.w #$CCD,d3 movea.w #$800,a1 add.w a1,d3 bra.s loc_38C7C ; IAC_REGULATORS_KV_D_SPEED_DECREASING ; --------------------------------------------------------------------------- loc_38C78: ; CODE XREF: DecideIdleMode+7F0j move.w #$8FE,d3 loc_38C7C: ; CODE XREF: DecideIdleMode+7D4j ; DecideIdleMode+7EAj ... movea.l #$F5A8,a2 ; IAC_REGULATORS_KV_D_SPEED_DECREASING tbls.w (a2),d3 loc_38C86: ; CODE XREF: DecideIdleMode+7C4j move.w d3,(IdleDerivativeTerm).w loc_38C8A: ; CODE XREF: DecideIdleMode+6F4j tst.b (StallSaverActiveFlag).w beq.s loc_38CD0 move.b (IdleControlMode).w,d3 beq.s loc_38CA4 cmpi.b #2,d3 bne.s loc_38CD0 btst #6,(PidFlags).w bne.s loc_38CD0 loc_38CA4: ; CODE XREF: DecideIdleMode+82Aj move.w (IdleDerivativeTerm).w,d3 cmpi.w #$7FFF,d3 bhi.s loc_38CC4 andi.l #$FFFF,d3 asl.l #3,d3 cmpi.l #$FFFF,d3 bls.s loc_38CC6 move.w #$FFFF,d3 bra.s loc_38CC6 ; --------------------------------------------------------------------------- loc_38CC4: ; CODE XREF: DecideIdleMode+842j clr.w d3 loc_38CC6: ; CODE XREF: DecideIdleMode+852j ; DecideIdleMode+858j move.w d3,(StallSaverAmount_ForSure).w clr.w (IdleDerivativeTerm).w bra.s loc_38CD4 ; --------------------------------------------------------------------------- loc_38CD0: ; CODE XREF: DecideIdleMode+824j ; DecideIdleMode+830j ... clr.w (StallSaverAmount_ForSure).w loc_38CD4: ; CODE XREF: DecideIdleMode+6B6j ; DecideIdleMode+864j move.b (byte_FFFFA6F6).w,d0 move.b d0,(byte_FFFFA71D).w move.b (IdleControlMode).w,d3 bne.s loc_38CEA clr.w (IdleIntegralAccumulator_FINAL).w bra.w loc_3927C ; --------------------------------------------------------------------------- loc_38CEA: ; CODE XREF: DecideIdleMode+876j moveq #1,d1 cmp.b d3,d1 beq.s loc_38CFA btst #5,(PidFlags).w beq.w loc_3927C loc_38CFA: ; CODE XREF: DecideIdleMode+884j tst.b (byte_FFFF94E5).w beq.s loc_38D10 tst.b (StartupToPidModeFlag?).w bne.s loc_38D10 btst #0,(byte_FFFF9027).w beq.w loc_39160 loc_38D10: ; CODE XREF: DecideIdleMode+894j ; DecideIdleMode+89Aj move.w (EngineRpmError).w,d4 move.l d4,d3 tst.w d3 bge.s loc_38D1C neg.w d3 loc_38D1C: ; CODE XREF: DecideIdleMode+8AEj cmp.w (IAC_REGULATORS_KE_INTEGRAL_DEAD_BAND_ENGINE_SPE).l,d3 bcs.w loc_38E5C tst.w d4 ble.w loc_38DAE cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_38D3E cmpi.b #8,(byte_FFFFA3B8).w beq.s loc_38D70 loc_38D3E: ; CODE XREF: DecideIdleMode+8CAj move.l #$200,d6 cmp.w d3,d6 bcs.s loc_38D50 moveq #5,d7 mulu.w d7,d3 lsr.l #1,d3 bra.s loc_38D68 ; IAC_REGULATORS_KV_I_SPEED_HIGH_IN_DRIVE ; --------------------------------------------------------------------------- loc_38D50: ; CODE XREF: DecideIdleMode+8DCj cmpi.w #$800,d3 bcc.s loc_38D64 andi.l #$FFFF,d3 sub.l d6,d3 addi.w #$500,d3 bra.s loc_38D68 ; IAC_REGULATORS_KV_I_SPEED_HIGH_IN_DRIVE ; --------------------------------------------------------------------------- loc_38D64: ; CODE XREF: DecideIdleMode+8EAj move.w #$B00,d3 loc_38D68: ; CODE XREF: DecideIdleMode+8E4j ; DecideIdleMode+8F8j movea.l #$F5D0,a2 ; IAC_REGULATORS_KV_I_SPEED_HIGH_IN_DRIVE bra.s loc_38DA0 ; Idle integral table lookup ; --------------------------------------------------------------------------- loc_38D70: ; CODE XREF: DecideIdleMode+8D2j move.l #$200,d6 cmp.w d3,d6 bcs.s loc_38D82 moveq #5,d7 mulu.w d7,d3 lsr.l #1,d3 bra.s loc_38D9A ; IAC_REGULATORS_KV_I_SPEED_HIGH_IN_PARK_NEUTRAL ; --------------------------------------------------------------------------- loc_38D82: ; CODE XREF: DecideIdleMode+90Ej cmpi.w #$800,d3 bcc.s loc_38D96 andi.l #$FFFF,d3 sub.l d6,d3 addi.w #$500,d3 bra.s loc_38D9A ; IAC_REGULATORS_KV_I_SPEED_HIGH_IN_PARK_NEUTRAL ; --------------------------------------------------------------------------- loc_38D96: ; CODE XREF: DecideIdleMode+91Cj move.w #$B00,d3 loc_38D9A: ; CODE XREF: DecideIdleMode+916j ; DecideIdleMode+92Aj movea.l #$F5E8,a2 ; IAC_REGULATORS_KV_I_SPEED_HIGH_IN_PARK_NEUTRAL loc_38DA0: ; CODE XREF: DecideIdleMode+904j tbls.w (a2),d3 ; Idle integral table lookup neg.w d3 loc_38DA6: ; CODE XREF: DecideIdleMode+9C0j move.w d3,(IdleIntegralDelta).w bra.w loc_38E32 ; --------------------------------------------------------------------------- loc_38DAE: ; CODE XREF: DecideIdleMode+8BEj tst.w d4 bge.s loc_38E2E cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_38DC4 cmpi.b #8,(byte_FFFFA3B8).w beq.s loc_38DF6 loc_38DC4: ; CODE XREF: DecideIdleMode+950j move.l #$200,d6 cmp.w d3,d6 bcs.s loc_38DD6 moveq #5,d7 mulu.w d7,d3 lsr.l #1,d3 bra.s loc_38DEE ; IAC_REGULATORS_KV_I_SPEED_LOW_IN_DRIVE ; --------------------------------------------------------------------------- loc_38DD6: ; CODE XREF: DecideIdleMode+962j cmpi.w #$800,d3 bcc.s loc_38DEA andi.l #$FFFF,d3 sub.l d6,d3 addi.w #$500,d3 bra.s loc_38DEE ; IAC_REGULATORS_KV_I_SPEED_LOW_IN_DRIVE ; --------------------------------------------------------------------------- loc_38DEA: ; CODE XREF: DecideIdleMode+970j move.w #$B00,d3 loc_38DEE: ; CODE XREF: DecideIdleMode+96Aj ; DecideIdleMode+97Ej movea.l #$F600,a2 ; IAC_REGULATORS_KV_I_SPEED_LOW_IN_DRIVE bra.s loc_38E26 ; --------------------------------------------------------------------------- loc_38DF6: ; CODE XREF: DecideIdleMode+958j move.l #$200,d6 cmp.w d3,d6 bcs.s loc_38E08 moveq #5,d7 mulu.w d7,d3 lsr.l #1,d3 bra.s loc_38E20 ; IAC_REGULATORS_KV_I_SPEED_LOW_IN_PARK_NEUTRAL ; --------------------------------------------------------------------------- loc_38E08: ; CODE XREF: DecideIdleMode+994j cmpi.w #$800,d3 bcc.s loc_38E1C andi.l #$FFFF,d3 sub.l d6,d3 addi.w #$500,d3 bra.s loc_38E20 ; IAC_REGULATORS_KV_I_SPEED_LOW_IN_PARK_NEUTRAL ; --------------------------------------------------------------------------- loc_38E1C: ; CODE XREF: DecideIdleMode+9A2j move.w #$B00,d3 loc_38E20: ; CODE XREF: DecideIdleMode+99Cj ; DecideIdleMode+9B0j movea.l #$F618,a2 ; IAC_REGULATORS_KV_I_SPEED_LOW_IN_PARK_NEUTRAL loc_38E26: ; CODE XREF: DecideIdleMode+98Aj tbls.w (a2),d3 bra.w loc_38DA6 ; --------------------------------------------------------------------------- loc_38E2E: ; CODE XREF: DecideIdleMode+946j clr.w (IdleIntegralDelta).w loc_38E32: ; CODE XREF: DecideIdleMode+940j tst.w (DesiredIdleAirflow_IncludingFeedback_Clamped).w beq.s loc_38E56 tst.w (word_FFFFB13E).w bne.s loc_38E44 tst.b (byte_FFFFB370).w beq.s loc_38E56 loc_38E44: ; CODE XREF: DecideIdleMode+9D2j tst.b (byte_FFFFB370).w beq.s loc_38E60 move.w (word_FFFF9050).w,d3 cmp.w (ETC_THROT_KE_THROTTLE_STOP_MIN_SW).l,d3 ; Min value to prevent throttle from reaching the mechanicalstop ; Percent_Rotation bne.s loc_38E60 loc_38E56: ; CODE XREF: DecideIdleMode+9CCj ; DecideIdleMode+9D8j tst.w (IdleIntegralDelta).w bge.s loc_38E60 loc_38E5C: ; CODE XREF: DecideIdleMode+8B8j clr.w (IdleIntegralDelta).w loc_38E60: ; CODE XREF: DecideIdleMode+9DEj ; DecideIdleMode+9EAj ... tst.b (StartupToPidModeFlag?).w bne.s loc_38E6C tst.w (IdleIntegralDelta).w bge.s loc_38E8E loc_38E6C: ; CODE XREF: DecideIdleMode+9FAj move.w (IdleIntegral_Something_Maybe_Accumulator?).w,d3 add.w (IdleIntegralDelta).w,d3 bvc.s loc_38E82 bpl.s loc_38E7E move.w #$7FFF,d3 bra.s loc_38E82 ; --------------------------------------------------------------------------- loc_38E7E: ; CODE XREF: DecideIdleMode+A0Cj move.w #$8000,d3 loc_38E82: ; CODE XREF: DecideIdleMode+A0Aj ; DecideIdleMode+A12j move.w d3,(IdleIntegral_Something_Maybe_Accumulator?).w tst.w d3 bge.s loc_38E8E clr.w (IdleIntegral_Something_Maybe_Accumulator?).w loc_38E8E: ; CODE XREF: DecideIdleMode+A00j ; DecideIdleMode+A1Ej move.b (IdleControlMode_DriveNeutral_AcOrNot).w,d3 cmpi.b #$18,d3 beq.s loc_38EC8 cmpi.b #$1D,d3 beq.s loc_38EC8 cmpi.b #$C,d3 beq.s loc_38EC8 cmpi.b #$E,d3 beq.s loc_38EC8 cmpi.b #$1C,d3 beq.s loc_38EC8 cmpi.b #$B,d3 beq.s loc_38EC8 cmpi.b #2,d3 beq.s loc_38EC8 cmpi.b #$1B,d3 beq.s loc_38EC8 cmpi.b #$A,d3 bne.s loc_38ECE loc_38EC8: ; CODE XREF: DecideIdleMode+A2Cj ; DecideIdleMode+A32j ... move.b d1,(byte_FFFFA71C).w bra.s loc_38EE6 ; --------------------------------------------------------------------------- loc_38ECE: ; CODE XREF: DecideIdleMode+A5Cj tst.w (word_FFFFAE36).w bne.s loc_38EDA tst.b (byte_FFFFAE3C).w beq.s loc_38EE2 loc_38EDA: ; CODE XREF: DecideIdleMode+A68j move.b #2,(byte_FFFFA71C).w bra.s loc_38EE6 ; --------------------------------------------------------------------------- loc_38EE2: ; CODE XREF: DecideIdleMode+A6Ej clr.b (byte_FFFFA71C).w loc_38EE6: ; CODE XREF: DecideIdleMode+A62j ; DecideIdleMode+A76j btst #0,(byte_FFFF9027).w beq.w loc_38F7C cmpi.b #$12,d3 beq.s loc_38F08 cmpi.b #$15,d3 beq.s loc_38F08 cmpi.b #3,d3 beq.s loc_38F08 cmpi.b #4,d3 bne.s loc_38F42 loc_38F08: ; CODE XREF: DecideIdleMode+A8Aj ; DecideIdleMode+A90j ... tst.w (IdleIntegralAccumulator_1).w bne.s loc_38F1A ; PTO? cmpi.b #7,d0 beq.s loc_38F1A ; PTO? move.w (IdleIntegralAccumulator_FINAL).w,(IdleIntegralAccumulator_1).w loc_38F1A: ; CODE XREF: DecideIdleMode+AA2j ; DecideIdleMode+AA8j move.w (IdleIntegralAccumulator_1).w,d3 ; PTO? add.w (IdleIntegralDelta).w,d3 bvc.s loc_38F30 bpl.s loc_38F2C move.w #$7FFF,d3 bra.s loc_38F30 ; --------------------------------------------------------------------------- loc_38F2C: ; CODE XREF: DecideIdleMode+ABAj move.w #$8000,d3 loc_38F30: ; CODE XREF: DecideIdleMode+AB8j ; DecideIdleMode+AC0j move.w d3,(IdleIntegralAccumulator_1).w move.w d3,(IdleIntegralAccumulator_FINAL).w move.b #7,(byte_FFFFA6F6).w bra.w loc_3927C ; --------------------------------------------------------------------------- loc_38F42: ; CODE XREF: DecideIdleMode+A9Cj tst.w (IdleIntegralAccumulator_2).w bne.s loc_38F54 ; PTO AC? cmpi.b #8,d0 beq.s loc_38F54 ; PTO AC? move.w (IdleIntegralAccumulator_FINAL).w,(IdleIntegralAccumulator_2).w loc_38F54: ; CODE XREF: DecideIdleMode+ADCj ; DecideIdleMode+AE2j move.w (IdleIntegralAccumulator_2).w,d3 ; PTO AC? add.w (IdleIntegralDelta).w,d3 bvc.s loc_38F6A bpl.s loc_38F66 move.w #$7FFF,d3 bra.s loc_38F6A ; --------------------------------------------------------------------------- loc_38F66: ; CODE XREF: DecideIdleMode+AF4j move.w #$8000,d3 loc_38F6A: ; CODE XREF: DecideIdleMode+AF2j ; DecideIdleMode+AFAj move.w d3,(IdleIntegralAccumulator_2).w move.w d3,(IdleIntegralAccumulator_FINAL).w move.b #8,(byte_FFFFA6F6).w bra.w loc_3927C ; --------------------------------------------------------------------------- loc_38F7C: ; CODE XREF: DecideIdleMode+A82j cmpi.b #$15,d3 beq.s loc_38F88 cmpi.b #$12,d3 bne.s loc_39000 loc_38F88: ; CODE XREF: DecideIdleMode+B16j moveq #5,d2 move.b d2,(byte_FFFFA6F6).w btst #1,(PidFlags).w bne.s loc_38FA6 tst.b (IdleModeChangeFlag).w bne.s loc_38FA6 cmp.b d0,d2 bne.s loc_38FA6 tst.b (byte_FFFF94E8).w beq.s loc_38FDC loc_38FA6: ; CODE XREF: DecideIdleMode+B2Aj ; DecideIdleMode+B30j ... cmpi.b #7,d0 bne.s loc_38FBC move.w (IdleIntegralAccumulator_1).w,(IdleIntegralAccumulator_PN).w clr.w (IdleIntegralAccumulator_1).w clr.w (IdleIntegralAccumulator_2).w bra.s loc_38FD6 ; --------------------------------------------------------------------------- loc_38FBC: ; CODE XREF: DecideIdleMode+B40j move.w (IdleIntegralTerm_Clamped?).w,d3 add.w (IdleIntegral_Something_Maybe_Accumulator?).w,d3 bvc.s loc_38FD2 bpl.s loc_38FCE move.w #$7FFF,d3 bra.s loc_38FD2 ; --------------------------------------------------------------------------- loc_38FCE: ; CODE XREF: DecideIdleMode+B5Cj move.w #$8000,d3 loc_38FD2: ; CODE XREF: DecideIdleMode+B5Aj ; DecideIdleMode+B62j move.w d3,(IdleIntegralAccumulator_PN).w loc_38FD6: ; CODE XREF: DecideIdleMode+B50j clr.b (byte_FFFF94E8).w bra.s loc_38FF6 ; --------------------------------------------------------------------------- loc_38FDC: ; CODE XREF: DecideIdleMode+B3Aj move.w (IdleIntegralAccumulator_PN).w,d3 add.w (IdleIntegralDelta).w,d3 bvc.s loc_38FF2 bpl.s loc_38FEE move.w #$7FFF,d3 bra.s loc_38FF2 ; --------------------------------------------------------------------------- loc_38FEE: ; CODE XREF: DecideIdleMode+B7Cj move.w #$8000,d3 loc_38FF2: ; CODE XREF: DecideIdleMode+B7Aj ; DecideIdleMode+B82j move.w d3,(IdleIntegralAccumulator_PN).w loc_38FF6: ; CODE XREF: DecideIdleMode+B70j move.w (IdleIntegralAccumulator_PN).w,(IdleIntegralAccumulator_FINAL).w bra.w loc_3927C ; --------------------------------------------------------------------------- loc_39000: ; CODE XREF: DecideIdleMode+B1Cj cmpi.b #$14,d3 beq.s loc_3900C cmpi.b #$13,d3 bne.s loc_39084 loc_3900C: ; CODE XREF: DecideIdleMode+B9Aj moveq #6,d2 move.b d2,(byte_FFFFA6F6).w btst #1,(PidFlags).w bne.s loc_3902A tst.b (IdleModeChangeFlag).w bne.s loc_3902A tst.b (byte_FFFF94E8).w bne.s loc_3902A cmp.b d0,d2 beq.s loc_39060 loc_3902A: ; CODE XREF: DecideIdleMode+BAEj ; DecideIdleMode+BB4j ... cmpi.b #8,d0 bne.s loc_39040 move.w (IdleIntegralAccumulator_2).w,(IdleIntegralAccumulator_TBD1).w clr.w (IdleIntegralAccumulator_1).w clr.w (IdleIntegralAccumulator_2).w bra.s loc_3905A ; --------------------------------------------------------------------------- loc_39040: ; CODE XREF: DecideIdleMode+BC4j move.w (IdleIntegralAccumulator_TBD2).w,d3 add.w (IdleIntegral_Something_Maybe_Accumulator?).w,d3 bvc.s loc_39056 bpl.s loc_39052 move.w #$7FFF,d3 bra.s loc_39056 ; --------------------------------------------------------------------------- loc_39052: ; CODE XREF: DecideIdleMode+BE0j move.w #$8000,d3 loc_39056: ; CODE XREF: DecideIdleMode+BDEj ; DecideIdleMode+BE6j move.w d3,(IdleIntegralAccumulator_TBD1).w loc_3905A: ; CODE XREF: DecideIdleMode+BD4j clr.b (byte_FFFF94E8).w bra.s loc_3907A ; --------------------------------------------------------------------------- loc_39060: ; CODE XREF: DecideIdleMode+BBEj move.w (IdleIntegralAccumulator_TBD1).w,d3 add.w (IdleIntegralDelta).w,d3 bvc.s loc_39076 bpl.s loc_39072 move.w #$7FFF,d3 bra.s loc_39076 ; --------------------------------------------------------------------------- loc_39072: ; CODE XREF: DecideIdleMode+C00j move.w #$8000,d3 loc_39076: ; CODE XREF: DecideIdleMode+BFEj ; DecideIdleMode+C06j move.w d3,(IdleIntegralAccumulator_TBD1).w loc_3907A: ; CODE XREF: DecideIdleMode+BF4j move.w (IdleIntegralAccumulator_TBD1).w,(IdleIntegralAccumulator_FINAL).w bra.w loc_3927C ; --------------------------------------------------------------------------- loc_39084: ; CODE XREF: DecideIdleMode+BA0j moveq #4,d2 cmp.b d3,d2 beq.s loc_39090 cmpi.b #3,d3 bne.s loc_390F2 loc_39090: ; CODE XREF: DecideIdleMode+C1Ej moveq #3,d6 move.b d6,(byte_FFFFA6F6).w btst #1,(PidFlags).w bne.s loc_390AE tst.b (IdleModeChangeFlag).w bne.s loc_390AE cmp.b d0,d6 bne.s loc_390AE tst.b (byte_FFFF94E9).w beq.s loc_390CE loc_390AE: ; CODE XREF: DecideIdleMode+C32j ; DecideIdleMode+C38j ... move.w (word_FFFF94E0).w,d3 add.w (IdleIntegral_Something_Maybe_Accumulator?).w,d3 bvc.s loc_390C4 bpl.s loc_390C0 move.w #$7FFF,d3 bra.s loc_390C4 ; --------------------------------------------------------------------------- loc_390C0: ; CODE XREF: DecideIdleMode+C4Ej move.w #$8000,d3 loc_390C4: ; CODE XREF: DecideIdleMode+C4Cj ; DecideIdleMode+C54j move.w d3,(IdleIntegralAccumulator_DriveAC?).w clr.b (byte_FFFF94E9).w bra.s loc_390E8 ; --------------------------------------------------------------------------- loc_390CE: ; CODE XREF: DecideIdleMode+C42j move.w (IdleIntegralAccumulator_DriveAC?).w,d3 add.w (IdleIntegralDelta).w,d3 bvc.s loc_390E4 bpl.s loc_390E0 move.w #$7FFF,d3 bra.s loc_390E4 ; --------------------------------------------------------------------------- loc_390E0: ; CODE XREF: DecideIdleMode+C6Ej move.w #$8000,d3 loc_390E4: ; CODE XREF: DecideIdleMode+C6Cj ; DecideIdleMode+C74j move.w d3,(IdleIntegralAccumulator_DriveAC?).w loc_390E8: ; CODE XREF: DecideIdleMode+C62j move.w (IdleIntegralAccumulator_DriveAC?).w,(IdleIntegralAccumulator_FINAL).w bra.w loc_3927C ; --------------------------------------------------------------------------- loc_390F2: ; CODE XREF: DecideIdleMode+C24j cmpi.b #6,d3 beq.s loc_39100 cmpi.b #5,d3 bne.w loc_3927C loc_39100: ; CODE XREF: DecideIdleMode+C8Cj move.b d2,(byte_FFFFA6F6).w btst #1,(PidFlags).w bne.s loc_3911C tst.b (IdleModeChangeFlag).w bne.s loc_3911C cmp.b d0,d2 bne.s loc_3911C tst.b (byte_FFFF94E9).w beq.s loc_3913C loc_3911C: ; CODE XREF: DecideIdleMode+CA0j ; DecideIdleMode+CA6j ... move.w (word_FFFF94E2).w,d3 add.w (IdleIntegral_Something_Maybe_Accumulator?).w,d3 bvc.s loc_39132 bpl.s loc_3912E move.w #$7FFF,d3 bra.s loc_39132 ; --------------------------------------------------------------------------- loc_3912E: ; CODE XREF: DecideIdleMode+CBCj move.w #$8000,d3 loc_39132: ; CODE XREF: DecideIdleMode+CBAj ; DecideIdleMode+CC2j move.w d3,(IdleIntegralAccumulator_????).w clr.b (byte_FFFF94E9).w bra.s loc_39156 ; --------------------------------------------------------------------------- loc_3913C: ; CODE XREF: DecideIdleMode+CB0j move.w (IdleIntegralAccumulator_????).w,d3 add.w (IdleIntegralDelta).w,d3 bvc.s loc_39152 bpl.s loc_3914E move.w #$7FFF,d3 bra.s loc_39152 ; --------------------------------------------------------------------------- loc_3914E: ; CODE XREF: DecideIdleMode+CDCj move.w #$8000,d3 loc_39152: ; CODE XREF: DecideIdleMode+CDAj ; DecideIdleMode+CE2j move.w d3,(IdleIntegralAccumulator_????).w loc_39156: ; CODE XREF: DecideIdleMode+CD0j move.w (IdleIntegralAccumulator_????).w,(IdleIntegralAccumulator_FINAL).w bra.w loc_3927C ; --------------------------------------------------------------------------- loc_39160: ; CODE XREF: DecideIdleMode+8A2j btst #1,(PidFlags).w bne.s loc_3916E tst.b (IdleModeChangeFlag).w beq.s loc_3918A loc_3916E: ; CODE XREF: DecideIdleMode+CFCj move.w (IdleIntegralTerm_Clamped?).w,(IdleIntegralAccumulator_PN).w move.w (word_FFFF94E0).w,(IdleIntegralAccumulator_DriveAC?).w move.w (IdleIntegralAccumulator_TBD2).w,(IdleIntegralAccumulator_TBD1).w move.w (word_FFFF94E2).w,(IdleIntegralAccumulator_????).w bra.w loc_3927C ; --------------------------------------------------------------------------- loc_3918A: ; CODE XREF: DecideIdleMode+D02j move.b (IdleControlMode_DriveNeutral_AcOrNot).w,d3 cmpi.b #$15,d3 beq.s loc_391A0 cmpi.b #$12,d3 beq.s loc_391A0 tst.b (byte_FFFF94E8).w beq.s loc_391BA loc_391A0: ; CODE XREF: DecideIdleMode+D28j ; DecideIdleMode+D2Ej move.b #5,(byte_FFFFA6F6).w movea.w (IdleIntegralTerm_Clamped?).w,a2 move.w a2,(IdleIntegralAccumulator_PN).w clr.b (byte_FFFF94E8).w loc_391B2: ; CODE XREF: DecideIdleMode+DB8j move.w a2,(IdleIntegralAccumulator_FINAL).w bra.w loc_39262 ; --------------------------------------------------------------------------- loc_391BA: ; CODE XREF: DecideIdleMode+D34j cmpi.b #$14,d3 beq.s loc_391CC cmpi.b #$13,d3 beq.s loc_391CC tst.b (byte_FFFF94E8).w beq.s loc_391FE loc_391CC: ; CODE XREF: DecideIdleMode+D54j ; DecideIdleMode+D5Aj move.b #6,(byte_FFFFA6F6).w cmp.b (byte_FFFF9E1C).w,d1 beq.s loc_391DE cmpi.b #4,d0 bne.s loc_391E6 loc_391DE: ; CODE XREF: DecideIdleMode+D6Cj move.w (IdleIntegralAccumulator_TBD2).w,(IdleIntegralAccumulator_TBD1).w bra.s loc_391F2 ; --------------------------------------------------------------------------- loc_391E6: ; CODE XREF: DecideIdleMode+D72j tst.w (word_FFFF9E16).w bne.s loc_391F2 move.w (IdleIntegralTerm_Clamped?).w,(IdleIntegralAccumulator_TBD1).w loc_391F2: ; CODE XREF: DecideIdleMode+D7Aj ; DecideIdleMode+D80j move.w (IdleIntegralAccumulator_TBD1).w,(IdleIntegralAccumulator_FINAL).w clr.b (byte_FFFF94E8).w bra.s loc_39262 ; --------------------------------------------------------------------------- loc_391FE: ; CODE XREF: DecideIdleMode+D60j moveq #4,d2 cmp.b d3,d2 beq.s loc_39210 cmpi.b #3,d3 beq.s loc_39210 tst.b (byte_FFFF94E9).w beq.s loc_39224 loc_39210: ; CODE XREF: DecideIdleMode+D98j ; DecideIdleMode+D9Ej moveq #3,d6 move.b d6,(byte_FFFFA6F6).w movea.w (word_FFFF94E0).w,a2 move.w a2,(IdleIntegralAccumulator_DriveAC?).w clr.b (byte_FFFF94E9).w bra.s loc_391B2 ; --------------------------------------------------------------------------- loc_39224: ; CODE XREF: DecideIdleMode+DA4j moveq #6,d6 cmp.b d3,d6 beq.s loc_39236 cmpi.b #5,d3 beq.s loc_39236 tst.b (byte_FFFF94E9).w beq.s loc_39262 loc_39236: ; CODE XREF: DecideIdleMode+DBEj ; DecideIdleMode+DC4j move.b d2,(byte_FFFFA6F6).w cmp.b (byte_FFFF9E1C).w,d1 beq.s loc_39244 cmp.b d0,d6 bne.s loc_3924C loc_39244: ; CODE XREF: DecideIdleMode+DD4j move.w (word_FFFF94E2).w,(IdleIntegralAccumulator_????).w bra.s loc_39258 ; --------------------------------------------------------------------------- loc_3924C: ; CODE XREF: DecideIdleMode+DD8j tst.w (word_FFFF9E16).w bne.s loc_39258 move.w (word_FFFF94E0).w,(IdleIntegralAccumulator_????).w loc_39258: ; CODE XREF: DecideIdleMode+DE0j ; DecideIdleMode+DE6j move.w (IdleIntegralAccumulator_????).w,(IdleIntegralAccumulator_FINAL).w clr.b (byte_FFFF94E9).w loc_39262: ; CODE XREF: DecideIdleMode+D4Cj ; DecideIdleMode+D92j ... move.w (IdleIntegralAccumulator_FINAL).w,d3 add.w (IdleIntegral_Something_Maybe_Accumulator?).w,d3 bvc.s loc_39278 bpl.s loc_39274 move.w #$7FFF,d3 bra.s loc_39278 ; --------------------------------------------------------------------------- loc_39274: ; CODE XREF: DecideIdleMode+E02j move.w #$8000,d3 loc_39278: ; CODE XREF: DecideIdleMode+E00j ; DecideIdleMode+E08j move.w d3,(IdleIntegralAccumulator_FINAL).w loc_3927C: ; CODE XREF: DecideIdleMode+87Cj ; DecideIdleMode+88Cj ... clr.b d0 jsr sub_37A50 move.b (IdleControlMode).w,d0 moveq #1,d5 cmp.b d0,d5 bne.s loc_392D0 move.w (IdleProportionalTerm).w,d1 ext.l d1 asl.l #3,d1 move.l (IdleBaseAirflow?).w,d3 bge.s loc_392A2 move.l #$7FFFFFFF,d3 loc_392A2: ; CODE XREF: DecideIdleMode+E30j add.l d3,d1 move.w (IdleIntegralAccumulator_FINAL).w,d3 ext.l d3 add.l d3,d1 move.w (IdleDerivativeTerm).w,d3 ext.l d3 asl.l #3,d3 add.l d3,d1 move.l d1,d3 blt.s loc_392C8 cmpi.l #$FFFF,d3 bls.s loc_392CA move.w #$FFFF,d3 bra.s loc_392CA ; --------------------------------------------------------------------------- loc_392C8: ; CODE XREF: DecideIdleMode+E4Ej clr.w d3 loc_392CA: ; CODE XREF: DecideIdleMode+E56j ; DecideIdleMode+E5Cj move.w d3,(IdleTotal_Including_Feedback).w bra.s loc_392D6 ; --------------------------------------------------------------------------- loc_392D0: ; CODE XREF: DecideIdleMode+E22j move.w (DesiredIdleAirflow_IncludingFeedback_Clamped).w,(IdleTotal_Including_Feedback).w loc_392D6: ; CODE XREF: DecideIdleMode+E64j move.l (IdleBaseAirflow?).w,d3 cmp.b d0,d5 bne.s loc_392E6 move.w (IdleTotal_Including_Feedback).w,d3 bra.w loc_393C0 ; --------------------------------------------------------------------------- loc_392E6: ; CODE XREF: DecideIdleMode+E72j btst #5,(PidFlags).w beq.s loc_3930E move.w (IdleIntegralAccumulator_FINAL).w,d0 ext.l d0 andi.l #$FFFF,d3 add.l d0,d3 tst.l d3 loc_392FE: ; CODE XREF: DecideIdleMode+EF2j blt.s loc_3935E cmpi.l #$FFFF,d3 bls.s loc_39360 move.w #$FFFF,d3 bra.s loc_39360 ; --------------------------------------------------------------------------- loc_3930E: ; CODE XREF: DecideIdleMode+E82j move.b (byte_FFFF94CA).w,d4 cmpi.b #$12,d4 beq.s loc_39324 cmpi.b #$13,d4 bne.s loc_39330 tst.w (word_FFFF9E16).w bne.s loc_3932A loc_39324: ; CODE XREF: DecideIdleMode+EACj move.w (IdleIntegralTerm_Clamped?).w,d4 bra.s loc_39350 ; --------------------------------------------------------------------------- loc_3932A: ; CODE XREF: DecideIdleMode+EB8j move.w (IdleIntegralAccumulator_TBD2).w,d4 bra.s loc_39350 ; --------------------------------------------------------------------------- loc_39330: ; CODE XREF: DecideIdleMode+EB2j cmpi.b #3,d4 beq.s loc_39342 cmpi.b #5,d4 bne.s loc_3934E tst.w (word_FFFF9E16).w bne.s loc_39348 loc_39342: ; CODE XREF: DecideIdleMode+ECAj move.w (word_FFFF94E0).w,d4 bra.s loc_39350 ; --------------------------------------------------------------------------- loc_39348: ; CODE XREF: DecideIdleMode+ED6j move.w (word_FFFF94E2).w,d4 bra.s loc_39350 ; --------------------------------------------------------------------------- loc_3934E: ; CODE XREF: DecideIdleMode+ED0j clr.w d4 loc_39350: ; CODE XREF: DecideIdleMode+EBEj ; DecideIdleMode+EC4j ... move.l d4,d0 ext.l d0 andi.l #$FFFF,d3 add.l d0,d3 bra.s loc_392FE ; --------------------------------------------------------------------------- loc_3935E: ; CODE XREF: DecideIdleMode:loc_392FEj clr.w d3 loc_39360: ; CODE XREF: DecideIdleMode+E9Cj ; DecideIdleMode+EA2j btst #6,(PidFlags).w beq.s loc_3938A move.w (IdleDerivativeTerm).w,d0 ext.l d0 asl.l #3,d0 andi.l #$FFFF,d3 add.l d0,d3 tst.l d3 blt.s loc_39386 cmpi.l #$FFFF,d3 bls.s loc_39394 bra.s loc_39390 ; --------------------------------------------------------------------------- loc_39386: ; CODE XREF: DecideIdleMode+F10j clr.w d3 bra.s loc_39394 ; --------------------------------------------------------------------------- loc_3938A: ; CODE XREF: DecideIdleMode+EFCj add.w (StallSaverAmount_ForSure).w,d3 bcc.s loc_39394 loc_39390: ; CODE XREF: DecideIdleMode+F1Aj move.w #$FFFF,d3 loc_39394: ; CODE XREF: DecideIdleMode+F18j ; DecideIdleMode+F1Ej ... btst #7,(PidFlags).w beq.s loc_393C0 move.w (IdleProportionalTerm).w,d0 ext.l d0 asl.l #3,d0 andi.l #$FFFF,d3 add.l d0,d3 tst.l d3 blt.s loc_393BE cmpi.l #$FFFF,d3 bls.s loc_393C0 move.w #$FFFF,d3 bra.s loc_393C0 ; --------------------------------------------------------------------------- loc_393BE: ; CODE XREF: DecideIdleMode+F44j clr.w d3 loc_393C0: ; CODE XREF: DecideIdleMode+E78j ; DecideIdleMode+F30j ... move.w (IAC_REGULATORS_KE_MAXIMUM_IDLE_AIRFLOW).l,d4 ; Calibration used to limit the idle airflow to a maximum. ; GPS cmp.w d4,d3 bcs.s loc_393D0 move.w d4,(DesiredIdleAirflow_IncludingFeedback_Clamped).w bra.s loc_393D4 ; --------------------------------------------------------------------------- loc_393D0: ; CODE XREF: DecideIdleMode+F5Ej move.w d3,(DesiredIdleAirflow_IncludingFeedback_Clamped).w loc_393D4: ; CODE XREF: DecideIdleMode+F64j movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function DecideIdleMode ; =============== S U B R O U T I N E ======================================= sub_393DC: ; CODE XREF: OS1:loc_35C8Cp clr.w (IdleDerivativeTerm).w move.w #$7D0,(word_FFFFA700).w movea.w (EngineRPM_PID_000C___).w,a2 move.w a2,(EngineSpeedLightlyFiltered).w move.w a2,(EngineSpeedHeavilyFiltered).w move.l (IdleBaseAirflow?).w,d3 cmpi.l #$FFFF,d3 bls.s loc_39402 move.w #$FFFF,d3 loc_39402: ; CODE XREF: sub_393DC+20j move.w d3,(DesiredIdleAirflow_IncludingFeedback_Clamped).w clr.b (IdleControlMode).w clr.b (byte_FFFFA6F9).w clr.b (byte_FFFFA71E).w clr.w (IdleIntegralAccumulator_1).w clr.w (IdleIntegralAccumulator_2).w clr.b (byte_FFFFA724).w clr.b (StartupToPidModeFlag?).w clr.b (PidFlags).w clr.b (byte_FFFFA6FB).w rts ; End of function sub_393DC ; =============== S U B R O U T I N E ======================================= sub_3942C: ; CODE XREF: OS1:loc_35C84p ; OS1:loc_35CAAp clr.w (IdleDerivativeTerm).w move.w #$7D0,(word_FFFFA700).w movea.w (EngineRPM_PID_000C___).w,a2 move.w a2,(EngineSpeedLightlyFiltered).w move.w a2,(EngineSpeedHeavilyFiltered).w clr.w (IdleIntegralAccumulator_1).w clr.w (IdleIntegralAccumulator_2).w rts ; End of function sub_3942C ; =============== S U B R O U T I N E ======================================= sub_3944C: ; CODE XREF: OS1:00035CA2p clr.w (IdleDerivativeTerm).w move.w #$7D0,(word_FFFFA700).w movea.w (EngineRPM_PID_000C___).w,a2 move.w a2,(EngineSpeedLightlyFiltered).w move.w a2,(EngineSpeedHeavilyFiltered).w clr.w (IdleIntegralAccumulator_1).w clr.w (IdleIntegralAccumulator_2).w rts ; End of function sub_3944C ; =============== S U B R O U T I N E ======================================= sub_3946C: ; CODE XREF: OS1:00035C70p clr.w (word_FFFFA6E6).w clr.w (word_FFFFA6EA).w clr.w (word_FFFFA6E8).w clr.b (IdleSpeedErrorSmall?).w clr.b (IdleSpeedErrorTimer?).w move.w #$7D0,(word_FFFFA700).w clr.w (IdleDerivativeTerm).w clr.w (StallSaverAmount_ForSure).w clr.b (SomethingAboutDerivativeAndStallSaver).w clr.w (EngineRpmError).w clr.w (word_FFFFA6F0).w clr.w (IdleIntegralAccumulator_PN).w clr.w (IdleIntegralAccumulator_TBD1).w clr.w (IdleIntegralAccumulator_DriveAC?).w clr.w (IdleIntegralAccumulator_????).w clr.w (IdleIntegralAccumulator_1).w clr.w (IdleIntegralAccumulator_2).w clr.w (IdleIntegralAccumulator_FINAL).w clr.w (IdleIntegralDelta).w clr.w (IdleIntegral_Something_Maybe_Accumulator?).w clr.b (byte_FFFFA71C).w cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_394DC cmpi.b #8,(byte_FFFFA3B8).w bne.s loc_394DC move.b #5,(byte_FFFFA6F6).w bra.s loc_394E2 ; --------------------------------------------------------------------------- loc_394DC: ; CODE XREF: sub_3946C+5Ej ; sub_3946C+66j move.b #3,(byte_FFFFA6F6).w loc_394E2: ; CODE XREF: sub_3946C+6Ej clr.w (IdleProportionalTerm).w clr.b (StallSaverActiveFlag).w move.l (IdleBaseAirflow?).w,d3 cmpi.l #$FFFF,d3 bls.s loc_394FA move.w #$FFFF,d3 loc_394FA: ; CODE XREF: sub_3946C+88j move.w d3,(DesiredIdleAirflow_IncludingFeedback_Clamped).w clr.b (IdleControlMode).w clr.b (byte_FFFFA6F9).w clr.b (byte_FFFFA71E).w clr.b (byte_FFFFA724).w clr.b (StartupToPidModeFlag?).w clr.b (PidFlags).w clr.b (byte_FFFFA6FB).w move.l (IdleBaseAirflow?).w,d3 cmpi.l #$FFFF,d3 bls.s loc_3952A move.w #$FFFF,d3 loc_3952A: ; CODE XREF: sub_3946C+B8j move.w d3,(IdleTotal_Including_Feedback).w rts ; End of function sub_3946C ; =============== S U B R O U T I N E ======================================= sub_39530: ; CODE XREF: OS1:loc_35C94p movea.w (EngineRPM_PID_000C___).w,a2 move.w a2,(EngineSpeedLightlyFiltered).w move.w a2,(EngineSpeedHeavilyFiltered).w clr.w (IdleIntegralAccumulator_1).w clr.w (IdleIntegralAccumulator_2).w rts ; End of function sub_39530 ; =============== S U B R O U T I N E ======================================= sub_39546: ; CODE XREF: sub_35BEC+8p move.l d0,-(sp) jsr sub_39A0E tst.b (byte_FFFFAE3D).w bne.s loc_395D2 btst #1,(byte_FFFF89C8).w bne.s loc_395AA move.w (word_FFFFA852).w,d3 cmp.w (IAC_RPM_KE_BATTERY_DISCHARGE_DUTY_CYCLE).l,d3 ; An alternator field duty cycle above this calibration will increase the idle speed to increase the alternator power output. ; Percent bls.s loc_395A2 move.w (IAC_RPM_KE_INCREASE_BATTERY_VOLTAGE_SPEE).l,d3 ; Integral gain when alternator voltage is below control setpoint. Activation rate: 100 ms. ; RPM move.w #$C35,d0 mulu.w d0,d3 lsr.l #4,d3 move.w (word_FFFFAE42).w,d4 mulu.w d0,d4 lsr.l #4,d4 add.l d3,d4 move.w (IAC_RPM_KE_MAXIMUM_BATTERY_SPEED_OFFSET).l,d3 ; Maximum allowable engine speed offset due to battery voltage. ; RPM move.l d3,d5 mulu.w d0,d5 lsr.l #4,d5 cmp.l d4,d5 bls.s loc_395CE moveq #$10,d3 mulu.l d4,d3 bvs.s loc_3959C divu.w d0,d3 bvc.s loc_395CE loc_3959C: ; CODE XREF: sub_39546+50j move.w #$FFFF,d3 bra.s loc_395CE ; --------------------------------------------------------------------------- loc_395A2: ; CODE XREF: sub_39546+20j cmp.w (IAC_RPM_KE_BATTERY_CHARGE_DUTY_CYCLE).l,d3 ; An alternator field duty cycle below this calibration will decrease the idle speed to decrease the alternator power output. ; Percent bcc.s loc_395D2 loc_395AA: ; CODE XREF: sub_39546+14j move.w (IAC_RPM_KE_DECREASE_BATTERY_VOLTAGE_SPEE).l,d5 ; Integral gain when alternator voltage is below control setpoint. Activation rate: 100 ms. ; RPM move.w #$C35,d4 mulu.w d4,d5 lsr.l #4,d5 move.w (word_FFFFAE42).w,d3 move.l d4,d0 mulu.w d0,d3 lsr.l #4,d3 sub.l d5,d3 bcs.s loc_395CC asl.l #4,d3 divu.w d0,d3 bra.s loc_395CE ; --------------------------------------------------------------------------- loc_395CC: ; CODE XREF: sub_39546+7Ej clr.w d3 loc_395CE: ; CODE XREF: sub_39546+48j ; sub_39546+54j ... move.w d3,(word_FFFFAE42).w loc_395D2: ; CODE XREF: sub_39546+Cj ; sub_39546+62j move.l (sp)+,d0 rts ; End of function sub_39546 ; =============== S U B R O U T I N E ======================================= sub_395D6: ; CODE XREF: sub_35C1Ap tst.b (byte_FFFFABDA).w beq.s loc_395E6 move.w (IAC_RPM_KE_ENGINE_PROTECTION_SPEED).l,(word_FFFFAE48).w ; Minimum engine speed when engine over tempuratureprotection is enabled. ; RPM bra.s locret_395EA ; --------------------------------------------------------------------------- loc_395E6: ; CODE XREF: sub_395D6+4j clr.w (word_FFFFAE48).w locret_395EA: ; CODE XREF: sub_395D6+Ej rts ; End of function sub_395D6 ; =============== S U B R O U T I N E ======================================= sub_395EC: ; CODE XREF: sub_35C22+24p tst.b (byte_FFFFAE46).w beq.s loc_39602 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (IAC_RPM_KE_COOLANT_TEMPERATURE_HIGH_LIMI).l,d3 ; Upper coolant temperature limit for enabling heater performance idle speed offset. ; Degrees Celsius sle d3 neg.b d3 bra.s loc_3961E ; --------------------------------------------------------------------------- loc_39602: ; CODE XREF: sub_395EC+4j clr.b d3 move.w (CoolantTemperatureOrDefault).w,d4 cmp.w (IAC_RPM_KE_COOLANT_TEMPERATURE_LOW_LIMIT).l,d4 ; Lower coolant temperature limit for enabling heater performance idle speed offset. ; Degrees Celsius bgt.s loc_3961E move.w (word_FFFFB3E8).w,d4 cmp.w (IAC_RPM_KE_INDUCTION_AIR_TEMPERATURE_THR).l,d4 ; Induction air temperature limit for enabling heater performance idle speed offset. ; Degrees Celsius bgt.s loc_3961E addq.b #1,d3 loc_3961E: ; CODE XREF: sub_395EC+14j ; sub_395EC+22j ... move.b d3,(byte_FFFFAE46).w beq.s loc_39672 move.w (word_FFFFAE4A).w,d3 add.w (IAC_RPM_KE_RAMP_HEATER_PERFORMANCE_SPEED).l,d3 ; Heater performance speed offset will be ramped to zero by this value per activation. ; RPM bcc.s loc_39634 move.w #$FFFF,d3 loc_39634: ; CODE XREF: sub_395EC+42j cmpi.b #8,(byte_FFFFA3B8).w bne.s loc_3964E cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_3964E movea.l #$F782,a2 bra.s loc_39654 ; --------------------------------------------------------------------------- loc_3964E: ; CODE XREF: sub_395EC+4Ej ; sub_395EC+58j movea.l #$F7A2,a2 loc_39654: ; CODE XREF: sub_395EC+60j move.w (CoolantTemperatureOrDefault).w,d4 addi.w #$400,d4 muls.w #5,d4 divs.w #6,d4 tblu.w (a2),d4 cmp.w d3,d4 bcc.s loc_39680 move.w d4,(word_FFFFAE4A).w bra.s locret_39684 ; --------------------------------------------------------------------------- loc_39672: ; CODE XREF: sub_395EC+36j move.w (word_FFFFAE4A).w,d3 sub.w (IAC_RPM_KE_RAMP_HEATER_PERFORMANCE_SPEED).l,d3 ; Heater performance speed offset will be ramped to zero by this value per activation. ; RPM bcc.s loc_39680 clr.w d3 loc_39680: ; CODE XREF: sub_395EC+7Ej ; sub_395EC+90j move.w d3,(word_FFFFAE4A).w locret_39684: ; CODE XREF: sub_395EC+84j rts ; End of function sub_395EC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_39686: ; CODE XREF: sub_35BEC:loc_35C00p var_4 = -4 link a6,#-4 btst #0,(byte_FFFFAD8A).w bne.s loc_396C0 tst.b (byte_FFFFAE56).w beq.s loc_396D2 move.l (IAC_RPM_KE_MINIMUM_TIME_AC_SPEED).l,d4 cmpi.l #$7FFFFFFF,d4 beq.s loc_396D2 move.l (dword_FFFFAE3E).w,var_4(a6) move.l (unk_FFFFB542).w,d3 sub.l var_4(a6),d3 cmp.l d4,d3 scs d3 neg.b d3 move.b d3,(byte_FFFFAE56).w bra.s loc_396D2 ; --------------------------------------------------------------------------- loc_396C0: ; CODE XREF: sub_39686+Aj tst.b (byte_FFFFAE56).w bne.s loc_396D2 move.b #1,(byte_FFFFAE56).w move.l (unk_FFFFB542).w,(dword_FFFFAE3E).w loc_396D2: ; CODE XREF: sub_39686+10j ; sub_39686+1Ej ... cmpi.b #8,(byte_FFFFA3B8).w bne.s loc_3971A cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_3971A tst.b (byte_FFFFAE56).w beq.s loc_39702 move.w (CoolantTemperatureOrDefault).w,d3 addi.w #$400,d3 muls.w #5,d3 divs.w #6,d3 movea.l #$F762,a2 bra.s loc_3974E ; --------------------------------------------------------------------------- loc_39702: ; CODE XREF: sub_39686+62j move.w (CoolantTemperatureOrDefault).w,d3 addi.w #$400,d3 muls.w #5,d3 divs.w #6,d3 movea.l #$F742,a2 bra.s loc_3974E ; --------------------------------------------------------------------------- loc_3971A: ; CODE XREF: sub_39686+52j ; sub_39686+5Cj tst.b (byte_FFFFAE56).w beq.s loc_39738 move.w (CoolantTemperatureOrDefault).w,d3 addi.w #$400,d3 muls.w #5,d3 divs.w #6,d3 movea.l #$F722,a2 bra.s loc_3974E ; --------------------------------------------------------------------------- loc_39738: ; CODE XREF: sub_39686+98j move.w (CoolantTemperatureOrDefault).w,d3 addi.w #$400,d3 muls.w #5,d3 divs.w #6,d3 movea.l #$F702,a2 loc_3974E: ; CODE XREF: sub_39686+7Aj ; sub_39686+92j ... tblu.w (a2),d3 move.w d3,(word_FFFFAE54).w unlk a6 rts ; End of function sub_39686 ; =============== S U B R O U T I N E ======================================= sub_3975A: ; CODE XREF: sub_35BEC+1Ap btst #0,(byte_FFFF9027).w beq.s loc_39768 move.w (word_FFFF902A).w,d3 bra.s loc_3976A ; --------------------------------------------------------------------------- loc_39768: ; CODE XREF: sub_3975A+6j clr.w d3 loc_3976A: ; CODE XREF: sub_3975A+Cj move.w (word_FFFFAE48).w,d4 cmp.w d4,d3 bcc.s loc_39774 move.l d4,d3 loc_39774: ; CODE XREF: sub_3975A+16j move.w (word_FFFFAE54).w,d4 cmp.w d4,d3 bcc.s loc_39786 clr.b (byte_FFFFAE3C).w move.w d4,(word_FFFFAE44).w bra.s locret_39790 ; --------------------------------------------------------------------------- loc_39786: ; CODE XREF: sub_3975A+20j move.b #1,(byte_FFFFAE3C).w move.w d3,(word_FFFFAE44).w locret_39790: ; CODE XREF: sub_3975A+2Aj rts ; End of function sub_3975A ; =============== S U B R O U T I N E ======================================= sub_39792: ; CODE XREF: sub_35B80+Cp ; sub_39A52+156p move.w (word_FFFFAE4A).w,d3 move.w (word_FFFFAE42).w,d4 cmp.w d3,d4 bcs.s loc_397A0 move.l d4,d3 loc_397A0: ; CODE XREF: sub_39792+Aj move.w (word_FFFFAE4E).w,d4 cmp.w d4,d3 bcc.s loc_397AA move.l d4,d3 loc_397AA: ; CODE XREF: sub_39792+14j move.w d3,(word_FFFFAE36).w rts ; End of function sub_39792 ; =============== S U B R O U T I N E ======================================= sub_397B0: ; CODE XREF: sub_35C22p tst.w (word_FFFFAE52).w bhi.s loc_397BC tst.w (word_FFFFAE50).w bls.s loc_3982C loc_397BC: ; CODE XREF: sub_397B0+4j clr.l d3 move.w (IAC_RPM_KE_START_UP_WAIT_TIME).l,d3 ; Period of time after engine starts before looking to see if throttle was opened or vehicle speed was non-zero. ; Seconds cmp.l (EngineRunTime).w,d3 bhi.s loc_3982C move.w (word_FFFFAEBC).w,d3 cmp.w (IAC_RPM_KE_IDLE_TO_OFFIDLE_VEHICLE_SPEED).l,d3 bcc.s loc_397E2 move.w (word_FFFFAB66).w,d3 cmp.w (IAC_RPM_KE_IDLE_TO_OFFIDLE_THROTTLE_POSI).l,d3 bcs.s loc_397EC loc_397E2: ; CODE XREF: sub_397B0+24j clr.w (word_FFFFAE52).w clr.w (word_FFFFAE50).w bra.s loc_3982C ; --------------------------------------------------------------------------- loc_397EC: ; CODE XREF: sub_397B0+30j move.l (EngineRunTime).w,d4 clr.l d3 move.w (IAC_RPM_KE_START_UP_DELAY_TIME_NO_GEAR).l,d3 ; Period of time to delay after the wait time before the value of Start_Up_Speed_Offset_No_Gear starts to decay toward zero. ; Seconds cmp.l d4,d3 bhi.s loc_3980E move.w (word_FFFFAE52).w,d3 sub.w (IAC_RPM_KE_START_UP_SPEED_DELTA_NO_GEAR).l,d3 ; Delta RPM used to decay Start_Up_Speed_Offset_No_Gear toward zero. ; RPM bcc.s loc_3980A clr.w d3 loc_3980A: ; CODE XREF: sub_397B0+56j move.w d3,(word_FFFFAE52).w loc_3980E: ; CODE XREF: sub_397B0+4Aj clr.l d3 move.w (IAC_RPM_KE_START_UP_DELAY_TIME_IN_GEAR).l,d3 ; Period of time to delay after the wait time before the value of Start_Up_Speed_Offset_In_Gear starts to decay toward zero. ; Seconds cmp.l d4,d3 bhi.s loc_3982C move.w (word_FFFFAE50).w,d3 sub.w (IAC_RPM_KE_START_UP_SPEED_DELTA_IN_GEAR).l,d3 ; Delta RPM used to decay Start_Up_Speed_Offset_In_Gear toward zero. ; RPM bcc.s loc_39828 clr.w d3 loc_39828: ; CODE XREF: sub_397B0+74j move.w d3,(word_FFFFAE50).w loc_3982C: ; CODE XREF: sub_397B0+Aj ; sub_397B0+18j ... cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_39846 cmpi.b #8,(byte_FFFFA3B8).w bne.s loc_39846 move.w (word_FFFFAE52).w,(word_FFFFAE4E).w bra.s locret_3984C ; --------------------------------------------------------------------------- loc_39846: ; CODE XREF: sub_397B0+84j ; sub_397B0+8Cj move.w (word_FFFFAE50).w,(word_FFFFAE4E).w locret_3984C: ; CODE XREF: sub_397B0+94j rts ; End of function sub_397B0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3984E: ; CODE XREF: sub_35B80+4Ap var_2 = -2 link a6,#-2 movem.l d0-d2/a0,-(sp) clr.w d2 move.b (byte_FFFFB2E5).w,d3 beq.s loc_398A0 cmpi.b #2,d3 beq.s loc_39874 bls.s loc_39874 move.w (word_FFFFB2E6).w,d3 cmpi.w #$7FFF,d3 bls.w loc_398F2 bra.s loc_3989C ; --------------------------------------------------------------------------- loc_39874: ; CODE XREF: sub_3984E+14j ; sub_3984E+16j clr.l d5 move.w (word_FFFFAE36).w,d5 clr.l d3 move.w (word_FFFFAE44).w,d3 add.l d5,d3 move.w (word_FFFFB2E6).w,d5 ext.l d5 add.l d5,d3 tst.l d3 blt.s loc_3989C cmpi.l #$FFFF,d3 bls.s loc_398F2 move.w #$FFFF,d3 bra.s loc_398F2 ; --------------------------------------------------------------------------- loc_3989C: ; CODE XREF: sub_3984E+24j ; sub_3984E+3Ej move.l d2,d3 bra.s loc_398F2 ; --------------------------------------------------------------------------- loc_398A0: ; CODE XREF: sub_3984E+Ej cmpi.b #8,(byte_FFFFA3B8).w bne.w loc_39952 cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.w loc_39952 move.w (word_FFFFAE44).w,d0 add.w (word_FFFFAE36).w,d0 bcc.s loc_398C4 move.w #$FFFF,d0 loc_398C4: ; CODE XREF: sub_3984E+70j move.w (IAC_RPM_KE_SET_POINT_SPEED_RATE_NEUTRAL).l,d1 ; RPM rate that the set point speed can be raised or lowered when in park or neutral. ; RPM move.w (IAC_RPM_KE_PARK_NEUTRAL_ENGINE_SPEED_LIM).l,d3 ; Maximum allowable set point speed with transmission in park or neutral. ; RPM cmp.w d3,d0 bls.s loc_398D6 move.l d3,d0 loc_398D6: ; CODE XREF: sub_3984E+84j move.w (DesiredIdleSpeed).w,d3 cmp.w d3,d0 bls.s loc_39902 clr.b (byte_FFFFAE57).w move.l d1,d3 add.w (DesiredIdleSpeed).w,d3 bcc.s loc_398EE move.w #$FFFF,d3 loc_398EE: ; CODE XREF: sub_3984E+9Aj cmp.w d0,d3 bhi.s loc_398FA loc_398F2: ; CODE XREF: sub_3984E+20j ; sub_3984E+46j ... move.w d3,(DesiredIdleSpeed).w bra.w loc_399C0 ; --------------------------------------------------------------------------- loc_398FA: ; CODE XREF: sub_3984E+A2j ; sub_3984E+F0j ... move.w d0,(DesiredIdleSpeed).w bra.w loc_399C0 ; --------------------------------------------------------------------------- loc_39902: ; CODE XREF: sub_3984E+8Ej cmp.w d3,d0 bcc.w loc_399BC tst.b (byte_FFFFAE57).w beq.s loc_39944 movea.l #unk_FFAE4C,a0 jsr sub_276F4 move.w (word_FFFFAE4C).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 loc_39928: ; CODE XREF: sub_3984E+16Aj cmp.w (IAC_RPM_KE_SET_POINT_CHANGE_DELAY_TIME).l,d3 ; The amount of time that must elapse before the set point speed can be lowered after having been raised. ; Seconds bcs.s loc_39940 move.w (DesiredIdleSpeed).w,d3 sub.w d1,d3 bcc.s loc_3993A move.l d2,d3 loc_3993A: ; CODE XREF: sub_3984E+E8j cmp.w d0,d3 bcc.s loc_398F2 bra.s loc_398FA ; --------------------------------------------------------------------------- loc_39940: ; CODE XREF: sub_3984E+E0j ; sub_3984E+102j moveq #1,d2 bra.s loc_399C0 ; --------------------------------------------------------------------------- loc_39944: ; CODE XREF: sub_3984E+BEj ; sub_3984E+14Ej move.w (GlobalClock).w,(word_FFFFAE4C).w move.b #1,(byte_FFFFAE57).w bra.s loc_39940 ; --------------------------------------------------------------------------- loc_39952: ; CODE XREF: sub_3984E+58j ; sub_3984E+64j move.w (word_FFFFAE44).w,d0 add.w (word_FFFFAE36).w,d0 bcc.s loc_39960 move.w #$FFFF,d0 loc_39960: ; CODE XREF: sub_3984E+10Cj move.w (IAC_RPM_KE_SET_POINT_SPEED_RATE_DRIVE).l,d1 ; RPM rate that the set point speed can be raised or lowered when not in park or neutral. ; RPM move.w (IAC_RPM_KE_DRIVE_ENGINE_SPEED_LIMIT).l,d3 ; Maximum allowable set point speed with transmission in drive. ; RPM cmp.w d3,d0 bls.s loc_39972 move.l d3,d0 loc_39972: ; CODE XREF: sub_3984E+120j move.w (DesiredIdleSpeed).w,d3 cmp.w d3,d0 bls.s loc_39994 clr.b (byte_FFFFAE57).w move.l d1,d3 add.w (DesiredIdleSpeed).w,d3 bcc.s loc_3998A move.w #$FFFF,d3 loc_3998A: ; CODE XREF: sub_3984E+136j cmp.w d0,d3 bls.w loc_398F2 bra.w loc_398FA ; --------------------------------------------------------------------------- loc_39994: ; CODE XREF: sub_3984E+12Aj cmp.w d3,d0 bcc.s loc_399BC tst.b (byte_FFFFAE57).w beq.s loc_39944 movea.l #unk_FFAE4C,a0 jsr sub_276F4 move.w (word_FFFFAE4C).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 bra.w loc_39928 ; --------------------------------------------------------------------------- loc_399BC: ; CODE XREF: sub_3984E+B6j ; sub_3984E+148j clr.b (byte_FFFFAE57).w loc_399C0: ; CODE XREF: sub_3984E+A8j ; sub_3984E+B0j ... tst.b d2 bne.s loc_39A06 move.w (word_FFFFAE36).w,d4 move.w (word_FFFFAE38).w,d3 cmp.w d4,d3 bcc.s loc_399EC add.w (word_FFFFAE38).w,d1 bcc.s loc_399DA move.w #$FFFF,d1 loc_399DA: ; CODE XREF: sub_3984E+186j move.w d1,(word_FFFFAE38).w move.w (word_FFFFAE36).w,d3 cmp.w d3,d1 bls.s loc_39A06 move.w d3,(word_FFFFAE38).w bra.s loc_39A06 ; --------------------------------------------------------------------------- loc_399EC: ; CODE XREF: sub_3984E+180j cmp.w d4,d3 bls.s loc_39A06 sub.w d1,d3 bcc.s loc_399F6 clr.w d3 loc_399F6: ; CODE XREF: sub_3984E+1A4j move.w d3,(word_FFFFAE38).w move.w (word_FFFFAE36).w,d4 cmp.w d4,d3 bcc.s loc_39A06 move.w d4,(word_FFFFAE38).w loc_39A06: ; CODE XREF: sub_3984E+174j ; sub_3984E+196j ... movem.l (sp)+,d0-d2/a0 unlk a6 rts ; End of function sub_3984E ; =============== S U B R O U T I N E ======================================= sub_39A0E: ; CODE XREF: sub_39546+2p tst.b (byte_FFFFAE3D).w beq.s loc_39A30 clr.b d3 move.w (word_FFFFAEBC).w,d4 cmp.w (IAC_RPM_KE_OFFIDLE_TO_IDLE_VEHICLE_SPEED).l,d4 bhi.s loc_39A4A move.w (word_FFFFAB66).w,d4 cmp.w (IAC_RPM_KE_OFFIDLE_TO_IDLE_THROTTLE_POSI).l,d4 bls.s loc_39A4C bra.s loc_39A4A ; --------------------------------------------------------------------------- loc_39A30: ; CODE XREF: sub_39A0E+4j clr.b d3 move.w (word_FFFFAEBC).w,d4 cmp.w (IAC_RPM_KE_IDLE_TO_OFFIDLE_VEHICLE_SPEED).l,d4 bcc.s loc_39A4A move.w (word_FFFFAB66).w,d4 cmp.w (IAC_RPM_KE_IDLE_TO_OFFIDLE_THROTTLE_POSI).l,d4 bcs.s loc_39A4C loc_39A4A: ; CODE XREF: sub_39A0E+12j ; sub_39A0E+20j ... addq.b #1,d3 loc_39A4C: ; CODE XREF: sub_39A0E+1Ej ; sub_39A0E+3Aj move.b d3,(byte_FFFFAE3D).w rts ; End of function sub_39A0E ; =============== S U B R O U T I N E ======================================= sub_39A52: ; CODE XREF: OS1:00035C7Cp movem.l d0-d2/d6/a0,-(sp) clr.w (word_FFFFAE42).w clr.b (byte_FFFFAE3D).w clr.w (word_FFFFAE48).w move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (IAC_RPM_KE_COOLANT_TEMPERATURE_LOW_LIMIT).l,d3 ; Lower coolant temperature limit for enabling heater performance idle speed offset. ; Degrees Celsius bgt.s loc_39AC6 move.w (word_FFFFB3E8).w,d4 cmp.w (IAC_RPM_KE_INDUCTION_AIR_TEMPERATURE_THR).l,d4 ; Induction air temperature limit for enabling heater performance idle speed offset. ; Degrees Celsius bgt.s loc_39AC6 move.b #1,(byte_FFFFAE46).w cmpi.b #8,(byte_FFFFA3B8).w bne.s loc_39AA8 cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_39AA8 move.w d3,d4 addi.w #$400,d4 moveq #5,d2 muls.w d2,d4 moveq #6,d6 divs.w d6,d4 movea.l #$F782,a2 bra.s loc_39ABC ; --------------------------------------------------------------------------- loc_39AA8: ; CODE XREF: sub_39A52+34j ; sub_39A52+3Ej move.w d3,d4 addi.w #$400,d4 moveq #5,d2 muls.w d2,d4 moveq #6,d6 divs.w d6,d4 movea.l #$F7A2,a2 loc_39ABC: ; CODE XREF: sub_39A52+54j tblu.w (a2),d4 move.w d4,(word_FFFFAE4A).w bra.s loc_39ACE ; --------------------------------------------------------------------------- loc_39AC6: ; CODE XREF: sub_39A52+1Aj ; sub_39A52+26j clr.b (byte_FFFFAE46).w clr.w (word_FFFFAE4A).w loc_39ACE: ; CODE XREF: sub_39A52+72j moveq #8,d1 cmp.b (byte_FFFFA3B8).w,d1 bne.s loc_39B14 cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_39B14 btst #4,(byte_FFFFAD8B).w beq.s loc_39AFE movea.w #$400,a0 add.w a0,d3 muls.w #5,d3 divs.w #6,d3 movea.l #$F762,a2 bra.s loc_39B46 ; --------------------------------------------------------------------------- loc_39AFE: ; CODE XREF: sub_39A52+94j movea.w #$400,a0 add.w a0,d3 muls.w #5,d3 divs.w #6,d3 movea.l #$F742,a2 bra.s loc_39B46 ; --------------------------------------------------------------------------- loc_39B14: ; CODE XREF: sub_39A52+82j ; sub_39A52+8Cj btst #4,(byte_FFFFAD8B).w beq.s loc_39B32 movea.w #$400,a0 add.w a0,d3 muls.w #5,d3 divs.w #6,d3 movea.l #$F722,a2 bra.s loc_39B46 ; --------------------------------------------------------------------------- loc_39B32: ; CODE XREF: sub_39A52+C8j movea.w #$400,a0 add.w a0,d3 muls.w #5,d3 divs.w #6,d3 movea.l #$F702,a2 loc_39B46: ; CODE XREF: sub_39A52+AAj ; sub_39A52+C0j ... tblu.w (a2),d3 move.w d3,(word_FFFFAE54).w move.w d3,(word_FFFFAE44).w clr.b (byte_FFFFAE3C).w move.w (CoolantTemperatureOrDefault).w,d3 move.w d3,d4 add.w a0,d4 bpl.s loc_39B62 addq.w #1,d4 loc_39B62: ; CODE XREF: sub_39A52+10Cj asr.w #1,d4 movea.l #$F7D6,a2 tblu.w (a2),d4 move.w d4,(word_FFFFAE52).w add.w a0,d3 bpl.s loc_39B78 addq.w #1,d3 loc_39B78: ; CODE XREF: sub_39A52+122j asr.w #1,d3 movea.l #$F7C2,a2 tblu.w (a2),d3 move.w d3,(word_FFFFAE50).w move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d0 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type moveq #2,d2 cmp.b d0,d2 beq.s loc_39BA0 cmp.b (byte_FFFFA3B8).w,d1 bne.s loc_39BA0 move.w d4,(word_FFFFAE4E).w bra.s loc_39BA4 ; --------------------------------------------------------------------------- loc_39BA0: ; CODE XREF: sub_39A52+140j ; sub_39A52+146j move.w d3,(word_FFFFAE4E).w loc_39BA4: ; CODE XREF: sub_39A52+14Cj clr.w (word_FFFFAE36).w jsr sub_39792 move.w (word_FFFFAE44).w,d3 add.w (word_FFFFAE36).w,d3 bcc.s loc_39BBC move.w #$FFFF,d3 loc_39BBC: ; CODE XREF: sub_39A52+164j cmp.b (byte_FFFFA3B8).w,d1 bne.s loc_39BD6 cmp.b d0,d2 beq.s loc_39BD6 move.w (IAC_RPM_KE_PARK_NEUTRAL_ENGINE_SPEED_LIM).l,d4 ; Maximum allowable set point speed with transmission in park or neutral. ; RPM cmp.w d4,d3 bhi.s loc_39BE0 loc_39BD0: ; CODE XREF: sub_39A52+18Cj move.w d3,(DesiredIdleSpeed).w bra.s loc_39BE4 ; --------------------------------------------------------------------------- loc_39BD6: ; CODE XREF: sub_39A52+16Ej ; sub_39A52+172j move.w (IAC_RPM_KE_DRIVE_ENGINE_SPEED_LIMIT).l,d4 ; Maximum allowable set point speed with transmission in drive. ; RPM cmp.w d4,d3 bls.s loc_39BD0 loc_39BE0: ; CODE XREF: sub_39A52+17Cj move.w d4,(DesiredIdleSpeed).w loc_39BE4: ; CODE XREF: sub_39A52+182j clr.b (byte_FFFFAE57).w move.w (DesiredIdleSpeed).w,d3 sub.w (word_FFFFAE44).w,d3 bcc.s loc_39BF4 clr.w d3 loc_39BF4: ; CODE XREF: sub_39A52+19Ej move.w d3,(word_FFFFAE38).w movem.l (sp)+,d0-d2/d6/a0 rts ; End of function sub_39A52 ; =============== S U B R O U T I N E ======================================= sub_39BFE: ; CODE XREF: sub_3B75C+22p movem.l d0-d2/d6-d7,-(sp) move.b (byte_FFFFA3B8).w,d2 move.b (byte_FFFF9852).w,d3 cmpi.b #1,d3 beq.s loc_39C1C cmpi.b #3,d3 beq.s loc_39C1C cmpi.b #5,d3 bne.s loc_39C2A loc_39C1C: ; CODE XREF: sub_39BFE+10j ; sub_39BFE+16j clr.l d7 move.b d2,d7 move.w SPARK_ADVANCE_KV_RDSC_DELTA_RPM_TIME(d7.w*2),d1 ; This determines the sampling rate of RPM for delta RPM calc in RDSC. ; mSec bra.s loc_39C4C ; --------------------------------------------------------------------------- loc_39C2A: ; CODE XREF: sub_39BFE+1Cj cmpi.b #2,d3 beq.s loc_39C3C cmpi.b #4,d3 beq.s loc_39C3C cmpi.b #6,d3 bne.s loc_39C4A loc_39C3C: ; CODE XREF: sub_39BFE+30j ; sub_39BFE+36j clr.l d7 move.b d2,d7 move.w SPARK_ADVANCE_KV_RDSC_DELTA_RPM_SS_TIME(d7.w*2),d1 ; This determines the sampling rate of RPM for delta RPM calc in steady state RDSC mode. ; mSec bra.s loc_39C4C ; --------------------------------------------------------------------------- loc_39C4A: ; CODE XREF: sub_39BFE+3Cj clr.w d1 loc_39C4C: ; CODE XREF: sub_39BFE+2Aj ; sub_39BFE+4Aj move.l d1,d0 jsr sub_7DF90 move.w d0,d6 move.w d6,(word_FFFF98B8).w move.b (byte_FFFF9852).w,d3 beq.w loc_39D34 move.w (word_FFFFAB66).w,d0 cmp.w (SPARK_ADVANCE_KE_RDSC_TPS_THRESHOLD).l,d0 bls.w loc_39D34 tst.w d6 bge.s loc_39C92 clr.l d0 move.b d2,d0 move.w word_120A6(d0.w*2),d4 move.w word_12146(d0.w*2),d3 move.w off_120F6(d0.w*2),d1 bra.s loc_39CAE ; --------------------------------------------------------------------------- loc_39C92: ; CODE XREF: sub_39BFE+74j clr.l d0 move.b d2,d0 move.w SPARK_ADVANCE_KA_RDSC_DAMPING_GAIN_OT(d0.w*2),d4 ; OPEN Throttle gain to use in the calculation of RDSC active damping. ; Deg/RPM move.w SPARK_ADVANCE_KA_RDSC_SPARK_LIMIT_OT(d0.w*2),d3 ; Limits the maximum absolute amount of RDSC active damping, when OPEN Throttle. ; Degrees move.w SPARK_ADVANCE_KA_RDSC_PHASE_DELAY_TIME_OT(d0.w*2),d1 ; OPEN Throttle delay of the actual deliveryof active damping spark. ; mSec loc_39CAE: ; CODE XREF: sub_39BFE+92j tst.w d6 bge.s loc_39CB4 neg.w d6 loc_39CB4: ; CODE XREF: sub_39BFE+B2j cmp.w (SPARK_ADVANCE_KE_RDSC_MIN_DELTA_RPM_OT).l,d6 ; If RDSC delta RPM calculation is < this, then active damping is 0 degrees, when OPEN Throttle. ; RPM bcc.s loc_39CC0 clr.w d0 bra.s loc_39CF0 ; --------------------------------------------------------------------------- loc_39CC0: ; CODE XREF: sub_39BFE+BCj clr.l d2 move.w d4,d2 move.w (word_FFFF98B8).w,d4 ext.l d4 neg.l d4 muls.l d2,d4 moveq #5,d0 muls.l d4,d0 bvs.s loc_39CE4 move.w #$2400,d4 divs.w d4,d0 bvc.s loc_39CF0 swap d0 eor.w d4,d0 loc_39CE4: ; CODE XREF: sub_39BFE+D8j bmi.s loc_39CEC move.w #$7FFF,d0 bra.s loc_39CF0 ; --------------------------------------------------------------------------- loc_39CEC: ; CODE XREF: sub_39BFE:loc_39CE4j move.w #$8000,d0 loc_39CF0: ; CODE XREF: sub_39BFE+C0j ; sub_39BFE+E0j ... tst.b (byte_FFFFA1F6).w beq.s loc_39D08 muls.w (SPARK_ADVANCE_KE_RDSC_PE_FACTOR).l,d0 ; IF PE is active, then RDSC damping and bias is reduced by this factor. ; Multiplier bpl.s loc_39D04 addi.l #$FFF,d0 loc_39D04: ; CODE XREF: sub_39BFE+FEj asr.l #8,d0 asr.l #4,d0 loc_39D08: ; CODE XREF: sub_39BFE+F6j move.l d0,d2 tst.w d2 bge.s loc_39D10 neg.w d2 loc_39D10: ; CODE XREF: sub_39BFE+10Ej cmp.w d3,d2 ble.s loc_39D1C tst.w d0 blt.w loc_39DF4 loc_39D1A: ; CODE XREF: sub_39BFE+1F2j move.l d3,d0 loc_39D1C: ; CODE XREF: sub_39BFE+114j ; sub_39BFE+1ECj ... jsr sub_3B474 clr.w d3 move.b (byte_FFFF9878).w,d3 move.w unk_FFFF98A2(d3.w*2),(word_FFFF9856).w bra.w loc_39E0C ; --------------------------------------------------------------------------- loc_39D34: ; CODE XREF: sub_39BFE+60j ; sub_39BFE+6Ej tst.b d3 beq.w loc_39DFC move.w (word_FFFFAB66).w,d0 cmp.w (SPARK_ADVANCE_KE_RDSC_TPS_THRESHOLD).l,d0 bhi.w loc_39DFC tst.w d6 bge.s loc_39D6A clr.l d0 move.b d2,d0 move.w word_1207E(d0.w*2),d4 move.w word_1211E(d0.w*2),d3 move.w off_120CE(d0.w*2),d1 bra.s loc_39D86 ; --------------------------------------------------------------------------- loc_39D6A: ; CODE XREF: sub_39BFE+14Cj clr.l d0 move.b d2,d0 move.w SPARK_ADVANCE_KA_RDSC_DAMPING_GAIN_CT(d0.w*2),d4 ; CLOSED Throttle gain to use in the calculation of RDSC active damping. ; Deg/RPM move.w SPARK_ADVANCE_KA_RDSC_SPARK_LIMIT_CT(d0.w*2),d3 ; Limits the maximum absolute amount of RDSC active damping, when Closed Throttle. ; Degrees move.w SPARK_ADVANCE_KA_RDSC_PHASE_DELAY_TIME_CT(d0.w*2),d1 ; CLOSED Throttle delay of the actual deliveryof active damping spark. ; mSec loc_39D86: ; CODE XREF: sub_39BFE+16Aj tst.w d6 bge.s loc_39D8C neg.w d6 loc_39D8C: ; CODE XREF: sub_39BFE+18Aj cmp.w (SPARK_ADVANCE_KE_RDSC_MIN_DELTA_RPM_CT).l,d6 ; If RDSC delta RPM calculation is < this, then active damping is 0 degrees, when CLOSED Throttle. ; RPM bcc.s loc_39D98 clr.w d0 bra.s loc_39DC8 ; --------------------------------------------------------------------------- loc_39D98: ; CODE XREF: sub_39BFE+194j clr.l d2 move.w d4,d2 move.w (word_FFFF98B8).w,d4 ext.l d4 neg.l d4 muls.l d2,d4 moveq #5,d0 muls.l d4,d0 bvs.s loc_39DBC move.w #$2400,d4 divs.w d4,d0 bvc.s loc_39DC8 swap d0 eor.w d4,d0 loc_39DBC: ; CODE XREF: sub_39BFE+1B0j bmi.s loc_39DC4 move.w #$7FFF,d0 bra.s loc_39DC8 ; --------------------------------------------------------------------------- loc_39DC4: ; CODE XREF: sub_39BFE:loc_39DBCj move.w #$8000,d0 loc_39DC8: ; CODE XREF: sub_39BFE+198j ; sub_39BFE+1B8j ... tst.b (byte_FFFFA1F6).w beq.s loc_39DE0 muls.w (SPARK_ADVANCE_KE_RDSC_PE_FACTOR).l,d0 ; IF PE is active, then RDSC damping and bias is reduced by this factor. ; Multiplier bpl.s loc_39DDC addi.l #$FFF,d0 loc_39DDC: ; CODE XREF: sub_39BFE+1D6j asr.l #8,d0 asr.l #4,d0 loc_39DE0: ; CODE XREF: sub_39BFE+1CEj move.l d0,d2 tst.w d2 bge.s loc_39DE8 neg.w d2 loc_39DE8: ; CODE XREF: sub_39BFE+1E6j cmp.w d3,d2 ble.w loc_39D1C tst.w d0 bge.w loc_39D1A loc_39DF4: ; CODE XREF: sub_39BFE+118j move.l d3,d0 neg.w d0 bra.w loc_39D1C ; --------------------------------------------------------------------------- loc_39DFC: ; CODE XREF: sub_39BFE+138j ; sub_39BFE+146j lea (unk_FFFF98A2).w,a2 moveq #$A,d3 loc_39E02: ; CODE XREF: sub_39BFE+206j clr.w (a2)+ dbf d3,loc_39E02 clr.w (word_FFFF9856).w loc_39E0C: ; CODE XREF: sub_39BFE+132j movem.l (sp)+,d0-d2/d6-d7 rts ; End of function sub_39BFE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_39E12: ; CODE XREF: sub_3B75C+28p var_2 = -2 link a6,#-2 move.l d0,-(sp) move.b (byte_FFFFA3B8).w,d4 move.w (word_FFFFAB66).w,d0 cmp.w (SPARK_ADVANCE_KE_RDSC_TPS_THRESHOLD).l,d0 bhi.s loc_39E36 clr.l d5 move.b d4,d5 move.w SPARK_ADVANCE_KV_RDSC_SPARK_BIAS_RETARD_CT(d5.w*2),d0 ; Amount of RDSC spark bias retard when active, and CLOSED Throttle. ; Degrees bra.s loc_39E42 ; --------------------------------------------------------------------------- loc_39E36: ; CODE XREF: sub_39E12+14j clr.l d5 move.b d4,d5 move.w SPARK_ADVANCE_KV_RDSC_SPARK_BIAS_RETARD_OT(d5.w*2),d0 ; Amount of RDSC spark bias retard when active, and OPEN Throttle. ; Degrees loc_39E42: ; CODE XREF: sub_39E12+22j move.b (byte_FFFF9852).w,d3 beq.s loc_39EBE move.w (word_FFFF98C8).w,var_2(a6) clr.l d5 move.b d4,d5 move.w (GlobalClock).w,d4 sub.w var_2(a6),d4 cmp.w SPARK_ADVANCE_KV_RDSC_SPARK_BIAS_DELAY(d5.w*2),d4 ; Delay time after tip-in RDSC triggered, before allowing RDSC bias retard. ; Seconds bcc.s loc_39E6A move.w (word_FFFF9856).w,d3 bra.s loc_39EC0 ; --------------------------------------------------------------------------- loc_39E6A: ; CODE XREF: sub_39E12+50j cmpi.b #3,d3 beq.s loc_39E8E cmpi.b #5,d3 beq.s loc_39E8E cmpi.b #1,d3 beq.s loc_39E8E cmpi.b #2,d3 beq.s loc_39E8E cmpi.b #4,d3 beq.s loc_39E8E cmpi.b #6,d3 bne.s loc_39EBE loc_39E8E: ; CODE XREF: sub_39E12+5Cj ; sub_39E12+62j ... tst.b (byte_FFFFA1F6).w beq.s loc_39EA6 muls.w (SPARK_ADVANCE_KE_RDSC_PE_FACTOR).l,d0 ; IF PE is active, then RDSC damping and bias is reduced by this factor. ; Multiplier bpl.s loc_39EA2 addi.l #$FFF,d0 loc_39EA2: ; CODE XREF: sub_39E12+88j asr.l #8,d0 asr.l #4,d0 loc_39EA6: ; CODE XREF: sub_39E12+80j move.w (word_FFFF9856).w,d3 sub.w d0,d3 muls.w (word_FFFF985A).w,d3 bpl.s loc_39EB8 addi.l #$FFF,d3 loc_39EB8: ; CODE XREF: sub_39E12+9Ej asr.l #8,d3 asr.l #4,d3 bra.s loc_39EC0 ; --------------------------------------------------------------------------- loc_39EBE: ; CODE XREF: sub_39E12+34j ; sub_39E12+7Aj clr.w d3 loc_39EC0: ; CODE XREF: sub_39E12+56j ; sub_39E12+AAj tst.b (byte_FFFFA938).w beq.s loc_39EF2 clr.w (word_FFFF98BC).w clr.b (byte_FFFF9852).w move.w (GlobalClock).w,d3 movea.w #$320,a2 add.w a2,d3 move.w d3,(word_FFFF985C).w move.w (GlobalClock).w,d3 add.w a2,d3 move.w d3,(word_FFFF98C6).w move.w (GlobalClock).w,d3 add.w a2,d3 move.w d3,(word_FFFF98C8).w bra.s loc_39F0C ; --------------------------------------------------------------------------- loc_39EF2: ; CODE XREF: sub_39E12+B2j move.w (word_FFFF984C).w,d4 cmp.w (SPARK_ADVANCE_KE_RDSC_KNOCK_LIMIT).l,d4 ; If ESC spark retard is greater than this then disable advance portion of RDSC. ; Degrees ble.s loc_39F08 tst.w d3 ble.s loc_39F08 clr.w (word_FFFF98BC).w bra.s loc_39F0C ; --------------------------------------------------------------------------- loc_39F08: ; CODE XREF: sub_39E12+EAj ; sub_39E12+EEj move.w d3,(word_FFFF98BC).w loc_39F0C: ; CODE XREF: sub_39E12+DEj ; sub_39E12+F4j move.l (sp)+,d0 unlk a6 rts ; End of function sub_39E12 ; =============== S U B R O U T I N E ======================================= sub_39F12: ; CODE XREF: OS1:0003A8D4p ; OS1:0003A930p movem.l d0-d2/d6/a0-a1,-(sp) cmpi.b #5,(byte_FFFFA3AF).w scc d6 neg.b d6 move.b (byte_FFFF984E).w,d3 bne.s loc_39F7A tst.b d6 beq.s loc_39F7A tst.b (byte_FFFF98D0).w beq.s loc_39F7A tst.b (byte_FFFF98D3).w beq.s loc_39F7A tst.b (byte_FFFF98D7).w beq.s loc_39F7A move.w (MaybeLoad).w,d1 lsr.w #1,d1 move.w (EngineRPM_PID_000C___).w,d0 movea.l #SPARK_ADVANCE_KA_MAIN_CT_PARK,a0 ; This calibration determines base spark closed throttle and park or neutral contribution to spark advance. ; Degrees loc_39F4C: ; CODE XREF: sub_39F12+92j jsr sub_3CD16 move.w d0,(word_FFFF984A).w clr.b (byte_FFFF98D5).w clr.b (byte_FFFF98D2).w clr.b (byte_FFFF98D4).w clr.b (byte_FFFF98D8).w clr.b (byte_FFFF98D9).w clr.b (byte_FFFF98D6).w move.b d6,(byte_FFFF98D0).w move.w d0,(word_FFFF983A).w bra.w loc_3A2A2 ; --------------------------------------------------------------------------- loc_39F7A: ; CODE XREF: sub_39F12+12j ; sub_39F12+16j ... tst.b d3 bne.s loc_39FA6 tst.b d6 bne.s loc_39FA6 tst.b (byte_FFFF98D0).w bne.s loc_39FA6 tst.b (byte_FFFF98D3).w beq.s loc_39FA6 tst.b (byte_FFFF98D7).w beq.s loc_39FA6 move.w (MaybeLoad).w,d1 lsr.w #1,d1 move.w (EngineRPM_PID_000C___).w,d0 movea.l #SPARK_ADVANCE_KA_MAIN_CT_DRIVE,a0 ; This calibration determines base spark closed throttle and drive contribution to spark advance. ; Degrees bra.s loc_39F4C ; --------------------------------------------------------------------------- loc_39FA6: ; CODE XREF: sub_39F12+6Aj ; sub_39F12+6Ej ... tst.b d3 beq.w loc_3A02E move.w (DefinitelyEngineLoad).w,d0 move.w (DefinitelyRpm).w,d1 moveq #$19,d2 movea.l #SPARK_ADVANCE_KA_MAIN_OT_LOW_OCTANE,a0 ; This calibration determines base spark 'bad fuel' contribution to spark advance. ; Degrees jsr SurfaceTableLookup movea.w d0,a1 move.w (DefinitelyEngineLoad).w,d0 move.w (DefinitelyRpm).w,d1 moveq #$19,d2 movea.l #SPARK_ADVANCE_KA_MAIN_OT_HIGH_OCTANE,a0 ; This calibration determines base spark 'good fuel' contribution to spark advance. ; Degrees jsr SurfaceTableLookup move.w d0,d3 move.w #$1000,d4 sub.w (IgnitionAdvanceMultiplier).w,d4 mulu.w (OctaneScalerCoolantMultiplier).w,d4 lsr.l #8,d4 lsr.l #4,d4 move.w d4,(word_FFFF9858).w move.w d3,(word_FFFF984A).w move.l d3,d0 sub.w a1,d0 muls.w d4,d0 bpl.s loc_3A002 addi.l #$FFF,d0 loc_3A002: ; CODE XREF: sub_39F12+E8j asr.l #8,d0 asr.l #4,d0 sub.w d0,d3 move.w d3,(word_FFFF983A).w move.w (GlobalClock).w,d3 movea.w #$320,a2 add.w a2,d3 move.w d3,(word_FFFF98A0).w move.w (GlobalClock).w,d3 add.w a2,d3 move.w d3,(word_FFFF9882).w moveq #1,d3 move.b d3,(byte_FFFF98D3).w bra.w loc_3A210 ; --------------------------------------------------------------------------- loc_3A02E: ; CODE XREF: sub_39F12+96j tst.b d3 bne.s loc_3A080 tst.b d6 bne.s loc_3A080 tst.b (byte_FFFF98D0).w beq.s loc_3A080 tst.b (byte_FFFF98D3).w beq.s loc_3A080 tst.b (byte_FFFF98D5).w bne.s loc_3A080 tst.b (byte_FFFF98D2).w bne.s loc_3A080 move.w (MaybeLoad).w,d1 lsr.w #1,d1 move.w (EngineRPM_PID_000C___).w,d0 movea.l #SPARK_ADVANCE_KA_MAIN_CT_PARK,a0 ; This calibration determines base spark closed throttle and park or neutral contribution to spark advance. ; Degrees jsr sub_3CD16 move.w d0,(word_FFFF983A).w move.w d0,(word_FFFF984A).w move.b #1,(byte_FFFF98D5).w clr.b (byte_FFFF98D3).w move.w (GlobalClock).w,(word_FFFF98A0).w bra.w loc_3A2A2 ; --------------------------------------------------------------------------- loc_3A080: ; CODE XREF: sub_39F12+11Ej ; sub_39F12+122j ... tst.b d3 bne.s loc_3A0BE tst.b d6 bne.s loc_3A0BE tst.b (byte_FFFF98D0).w beq.s loc_3A0BE tst.b (byte_FFFF98D5).w beq.s loc_3A0BE tst.b (byte_FFFF98D2).w bne.s loc_3A0BE move.w (word_FFFF98C2).w,d0 movea.l #unk_FF98A0,a0 jsr sub_276D4 tst.b d0 beq.w loc_3A2A2 clr.b (byte_FFFF98D5).w move.b #1,(byte_FFFF98D4).w bra.w loc_3A2A2 ; --------------------------------------------------------------------------- loc_3A0BE: ; CODE XREF: sub_39F12+170j ; sub_39F12+174j ... tst.b d3 bne.s loc_3A12A tst.b d6 bne.s loc_3A12A tst.b (byte_FFFF98D0).w beq.s loc_3A12A tst.b (byte_FFFF98D4).w beq.s loc_3A12A tst.b (byte_FFFF98D2).w bne.s loc_3A12A tst.b (byte_FFFF98D3).w bne.s loc_3A12A move.w (MaybeLoad).w,d1 lsr.w #1,d1 move.w (EngineRPM_PID_000C___).w,d0 movea.l #SPARK_ADVANCE_KA_MAIN_CT_DRIVE,a0 ; This calibration determines base spark closed throttle and drive contribution to spark advance. ; Degrees jsr sub_3CD16 move.w d0,d3 move.w (word_FFFF983A).w,d0 add.w (SPARK_ADVANCE_KE_SHIFT_PN_TO_DR_RAMP).l,d0 ; Rate at which to ramp spark when transitioning from park to drive. ; Degrees cmp.w d3,d0 blt.s loc_3A11E move.w d3,(word_FFFF983A).w move.w d3,(word_FFFF984A).w moveq #1,d3 move.b d3,(byte_FFFF98D2).w move.b d3,(byte_FFFF98D3).w loc_3A116: ; CODE XREF: sub_39F12+302j move.b d6,(byte_FFFF98D0).w bra.w loc_3A2A2 ; --------------------------------------------------------------------------- loc_3A11E: ; CODE XREF: sub_39F12+1F0j ; sub_39F12+2ECj move.w d0,(word_FFFF983A).w move.w d0,(word_FFFF984A).w bra.w loc_3A2A2 ; --------------------------------------------------------------------------- loc_3A12A: ; CODE XREF: sub_39F12+1AEj ; sub_39F12+1B2j ... tst.b d3 bne.s loc_3A17C tst.b d6 beq.s loc_3A17C tst.b (byte_FFFF98D0).w bne.s loc_3A17C tst.b (byte_FFFF98D7).w beq.s loc_3A17C tst.b (byte_FFFF98D9).w bne.s loc_3A17C tst.b (byte_FFFF98D6).w bne.s loc_3A17C move.w (MaybeLoad).w,d1 lsr.w #1,d1 move.w (EngineRPM_PID_000C___).w,d0 movea.l #SPARK_ADVANCE_KA_MAIN_CT_DRIVE,a0 ; This calibration determines base spark closed throttle and drive contribution to spark advance. ; Degrees jsr sub_3CD16 move.w d0,(word_FFFF983A).w move.w d0,(word_FFFF984A).w move.b #1,(byte_FFFF98D9).w clr.b (byte_FFFF98D7).w move.w (GlobalClock).w,(word_FFFF9882).w bra.w loc_3A2A2 ; --------------------------------------------------------------------------- loc_3A17C: ; CODE XREF: sub_39F12+21Aj ; sub_39F12+21Ej ... tst.b d3 bne.s loc_3A1BA tst.b d6 beq.s loc_3A1BA tst.b (byte_FFFF98D0).w bne.s loc_3A1BA tst.b (byte_FFFF98D9).w beq.s loc_3A1BA tst.b (byte_FFFF98D6).w bne.s loc_3A1BA move.w (word_FFFF98C0).w,d0 movea.l #unk_FF9882,a0 jsr sub_276D4 tst.b d0 beq.w loc_3A2A2 clr.b (byte_FFFF98D9).w move.b #1,(byte_FFFF98D8).w bra.w loc_3A2A2 ; --------------------------------------------------------------------------- loc_3A1BA: ; CODE XREF: sub_39F12+26Cj ; sub_39F12+270j ... tst.b d3 bne.s loc_3A218 tst.b d6 beq.s loc_3A218 tst.b (byte_FFFF98D0).w bne.s loc_3A218 tst.b (byte_FFFF98D8).w beq.s loc_3A218 tst.b (byte_FFFF98D6).w bne.s loc_3A218 tst.b (byte_FFFF98D7).w bne.s loc_3A218 move.w (MaybeLoad).w,d1 lsr.w #1,d1 move.w (EngineRPM_PID_000C___).w,d0 movea.l #SPARK_ADVANCE_KA_MAIN_CT_PARK,a0 ; This calibration determines base spark closed throttle and park or neutral contribution to spark advance. ; Degrees jsr sub_3CD16 move.w d0,d3 move.w (word_FFFF983A).w,d0 sub.w (SPARK_ADVANCE_KE_SHIFT_DR_TO_PN_RAMP).l,d0 ; Rate at which to ramp spark when transitioning from drive to park. ; Degrees cmp.w d3,d0 bgt.w loc_3A11E move.w d3,(word_FFFF983A).w move.w d3,(word_FFFF984A).w moveq #1,d3 move.b d3,(byte_FFFF98D6).w loc_3A210: ; CODE XREF: sub_39F12+118j move.b d3,(byte_FFFF98D7).w bra.w loc_3A116 ; --------------------------------------------------------------------------- loc_3A218: ; CODE XREF: sub_39F12+2AAj ; sub_39F12+2AEj ... tst.b d3 bne.s loc_3A25E tst.b d6 beq.s loc_3A25E tst.b (byte_FFFF98D0).w beq.s loc_3A25E tst.b (byte_FFFF98D5).w bne.s loc_3A238 tst.b (byte_FFFF98D4).w beq.s loc_3A238 tst.b (byte_FFFF98D2).w bne.s loc_3A25E loc_3A238: ; CODE XREF: sub_39F12+318j ; sub_39F12+31Ej move.w (MaybeLoad).w,d1 lsr.w #1,d1 move.w (EngineRPM_PID_000C___).w,d0 movea.l #SPARK_ADVANCE_KA_MAIN_CT_PARK,a0 ; This calibration determines base spark closed throttle and park or neutral contribution to spark advance. ; Degrees jsr sub_3CD16 move.w d0,(word_FFFF983A).w move.w d0,(word_FFFF984A).w move.b #1,(byte_FFFF98D3).w bra.s loc_3A2A2 ; --------------------------------------------------------------------------- loc_3A25E: ; CODE XREF: sub_39F12+308j ; sub_39F12+30Cj ... tst.b d3 bne.s loc_3A2A2 tst.b d6 bne.s loc_3A2A2 tst.b (byte_FFFF98D0).w bne.s loc_3A2A2 tst.b (byte_FFFF98D9).w bne.s loc_3A27E tst.b (byte_FFFF98D8).w beq.s loc_3A27E tst.b (byte_FFFF98D6).w bne.s loc_3A2A2 loc_3A27E: ; CODE XREF: sub_39F12+35Ej ; sub_39F12+364j move.w (MaybeLoad).w,d1 lsr.w #1,d1 move.w (EngineRPM_PID_000C___).w,d0 movea.l #SPARK_ADVANCE_KA_MAIN_CT_DRIVE,a0 ; This calibration determines base spark closed throttle and drive contribution to spark advance. ; Degrees jsr sub_3CD16 move.w d0,(word_FFFF983A).w move.w d0,(word_FFFF984A).w move.b #1,(byte_FFFF98D7).w loc_3A2A2: ; CODE XREF: sub_39F12+64j ; sub_39F12+16Aj ... movem.l (sp)+,d0-d2/d6/a0-a1 rts ; End of function sub_39F12 ; =============== S U B R O U T I N E ======================================= sub_3A2A8: ; CODE XREF: OS1:0003A8DAp ; OS1:loc_3A95Ep movem.l d0-d2/d6-a0,-(sp) move.w #$1000,d7 move.w (CoolantTemp).w,d0 move.w (DefinitelyRpm).w,d1 moveq #$25,d2 ; '%' movea.l #SPARK_ADVANCE_KA_CLT_SPARK,a0 ; Coolant temperature spark contribution. ; Degrees jsr SurfaceTableLookup move.w d0,d6 move.w (EngineRPM_PID_000C___).w,d1 cmpi.w #$5000,d1 bcc.s loc_3A2D6 lsr.w #2,d1 bra.s loc_3A2DA ; --------------------------------------------------------------------------- loc_3A2D6: ; CODE XREF: sub_3A2A8+28j move.w #$1400,d1 loc_3A2DA: ; CODE XREF: sub_3A2A8+2Cj move.w (CoolantTemp).w,d0 moveq #$25,d2 ; '%' movea.l #SPARK_ADVANCE_KA_CLT_RPM_MODIFIER,a0 ; Coolant temperature spark modifier based on engine speed and coolant temperature. ; 0 to 2 jsr sub_2696E muls.w d0,d6 divs.w d7,d6 bvc.s loc_3A302 swap d6 eor.w d7,d6 bmi.s loc_3A2FE move.w #$7FFF,d6 bra.s loc_3A302 ; --------------------------------------------------------------------------- loc_3A2FE: ; CODE XREF: sub_3A2A8+4Ej move.w #$8000,d6 loc_3A302: ; CODE XREF: sub_3A2A8+48j ; sub_3A2A8+54j move.w d6,(word_FFFF983E).w movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_3A2A8 ; =============== S U B R O U T I N E ======================================= sub_3A30C: ; CODE XREF: OS1:loc_3AE1Ep ; OS1:0003B4F8p ... tst.b (byte_FFFFB37A).w beq.s loc_3A318 clr.w (word_FFFF9876).w bra.s locret_3A32E ; --------------------------------------------------------------------------- loc_3A318: ; CODE XREF: sub_3A30C+4j move.w (CoolantTemperatureOrDefault).w,d3 addi.w #$400,d3 movea.l #SPARK_ADVANCE_KV_CRANK_SPARK_MED_RES,a2 ; Spark advance when engine is cranking. ; Degrees tbls.w (a2),d3 move.w d3,(word_FFFF9876).w locret_3A32E: ; CODE XREF: sub_3A30C+Aj rts ; End of function sub_3A30C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3A330: ; CODE XREF: OS1:0003A8E0p ; OS1:loc_3A922p var_2 = -2 link a6,#-2 movem.l d0-d2/a0,-(sp) tst.b (EGR_KE_EGR_ENABLED).l ; controls execution of EGR logic ; BOOLEAN beq.w loc_3A42E move.w (SPARK_ADVANCE_KE_EGR_DUTY_CYCLE_SPARK).l,d4 ; The EGR duty cycle threshold that allows enabling or disabling of EGR spark. ; Percent move.w (word_FFFFA25A).w,d0 cmp.w d4,d0 bls.w loc_3A420 move.w (word_FFFF9886).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (SPARK_ADVANCE_KE_EGR_SPARK_DELAY).l,d3 ; The amount of time delay before enabling or disabling EGR spark. ; Seconds bls.w loc_3A420 movea.l #unk_FF9886,a0 jsr sub_276F4 clr.l d2 move.w (word_FFFFA258).w,d2 asl.l #8,d2 asl.l #4,d2 divu.w (word_FFFFA254).w,d2 move.w (SPARK_ADVANCE_KE_EGR_SPARK_MULT_LIMIT).l,d3 cmp.w d2,d3 bcc.s loc_3A390 move.l d3,d2 loc_3A390: ; CODE XREF: sub_3A330+5Cj move.w (MaybeLoad).w,d1 lsr.w #1,d1 move.w (EngineRPM_PID_000C___).w,d0 movea.l #SPARK_ADVANCE_KA_EGR_SPARK,a0 ; EGR contribution to spark. ; Degrees jsr sub_3CD16 move.w d0,d3 clr.l d5 move.w (word_FFFFA262).w,d5 muls.w d2,d3 bpl.s loc_3A3B8 addi.l #$FFF,d3 loc_3A3B8: ; CODE XREF: sub_3A330+80j asr.l #8,d3 asr.l #4,d3 ext.l d3 muls.l d5,d3 move.w #$1000,d5 divs.w d5,d3 bvc.s loc_3A3DA swap d3 eor.w d5,d3 bmi.s loc_3A3D6 move.w #$7FFF,d3 bra.s loc_3A3DA ; --------------------------------------------------------------------------- loc_3A3D6: ; CODE XREF: sub_3A330+9Ej move.w #$8000,d3 loc_3A3DA: ; CODE XREF: sub_3A330+98j ; sub_3A330+A4j move.w d3,(word_FFFF9898).w move.w (word_FFFF9842).w,d4 cmp.w d4,d3 ble.s loc_3A41A move.w (word_FFFF9898).w,d3 sub.w (word_FFFF9842).w,d3 bvc.s loc_3A3F4 bmi.s loc_3A408 bra.s loc_3A40E ; --------------------------------------------------------------------------- loc_3A3F4: ; CODE XREF: sub_3A330+BEj muls.w (SPARK_ADVANCE_KE_EGR_INCR_SPARK_FILT).l,d3 ; ; bpl.s loc_3A402 addi.l #$FFF,d3 loc_3A402: ; CODE XREF: sub_3A330+CAj asr.l #8,d3 asr.l #4,d3 bra.s loc_3A412 ; --------------------------------------------------------------------------- loc_3A408: ; CODE XREF: sub_3A330+C0j move.w #$7FFF,d3 bra.s loc_3A412 ; --------------------------------------------------------------------------- loc_3A40E: ; CODE XREF: sub_3A330+C2j move.w #$8000,d3 loc_3A412: ; CODE XREF: sub_3A330+D6j ; sub_3A330+DCj add.w d3,d4 move.w d4,(word_FFFF9842).w bra.s loc_3A42E ; --------------------------------------------------------------------------- loc_3A41A: ; CODE XREF: sub_3A330+B4j move.w d3,(word_FFFF9842).w bra.s loc_3A42E ; --------------------------------------------------------------------------- loc_3A420: ; CODE XREF: sub_3A330+1Ej ; sub_3A330+36j cmp.w d4,d0 bcc.s loc_3A42E move.w (GlobalClock).w,(word_FFFF9886).w clr.w (word_FFFF9842).w loc_3A42E: ; CODE XREF: sub_3A330+Ej ; sub_3A330+E8j ... movem.l (sp)+,d0-d2/a0 unlk a6 rts ; End of function sub_3A330 ; =============== S U B R O U T I N E ======================================= sub_3A436: ; CODE XREF: OS1:0003A8E6p ; OS1:loc_3A946p movem.l d0-d2/d6/a0,-(sp) move.b (byte_FFFFACAA).w,d0 or.b (byte_FFFFA1F6).w,d0 bne.s loc_3A450 tst.b (byte_FFFFA1FC).w bne.s loc_3A450 tst.b (byte_FFFFA1F5).w beq.s loc_3A4C4 loc_3A450: ; CODE XREF: sub_3A436+Cj ; sub_3A436+12j move.w (word_FFFFA1EE).w,d0 clr.w d3 move.w #$333,d6 cmp.w d0,d6 bls.s loc_3A462 move.l d3,d0 bra.s loc_3A482 ; --------------------------------------------------------------------------- loc_3A462: ; CODE XREF: sub_3A436+26j cmpi.w #$630,d0 bcc.s loc_3A47E sub.w d6,d0 ext.l d0 asl.l #8,d0 bmi.s loc_3A47A divu.l #$33,d0 ; '3' bra.s loc_3A482 ; --------------------------------------------------------------------------- loc_3A47A: ; CODE XREF: sub_3A436+38j clr.l d0 bra.s loc_3A482 ; --------------------------------------------------------------------------- loc_3A47E: ; CODE XREF: sub_3A436+30j move.w #$F00,d0 loc_3A482: ; CODE XREF: sub_3A436+2Aj ; sub_3A436+42j ... move.w (AnotherRpmValue).w,d1 moveq #$10,d2 movea.l #SPARK_ADVANCE_KA_EQ_RATIO_SPARK,a0 ; Equivalence ratio contribution to spark. ; Degrees jsr SurfaceTableLookup move.w d0,d3 move.w (ManifoldPressure).w,d0 movea.l #SPARK_ADVANCE_KV_EQ_RATIO_MAP_MODIFIER,a2 ; A MAP modifier applied to the equivalence ratio angle. ; Multiplier_0_to_2 tblu.w (a2),d0 move.w #$1000,d4 muls.w d0,d3 divs.w d4,d3 bvc.s loc_3A4BE swap d3 eor.w d4,d3 bmi.s loc_3A4BA move.w #$7FFF,d3 bra.s loc_3A4BE ; --------------------------------------------------------------------------- loc_3A4BA: ; CODE XREF: sub_3A436+7Cj move.w #$8000,d3 loc_3A4BE: ; CODE XREF: sub_3A436+76j ; sub_3A436+82j move.w d3,(word_FFFF9888).w bra.s loc_3A4C8 ; --------------------------------------------------------------------------- loc_3A4C4: ; CODE XREF: sub_3A436+18j clr.w (word_FFFF9888).w loc_3A4C8: ; CODE XREF: sub_3A436+8Cj movem.l (sp)+,d0-d2/d6/a0 rts ; End of function sub_3A436 ; =============== S U B R O U T I N E ======================================= sub_3A4CE: ; CODE XREF: OS1:0003A8ECp ; OS1:loc_3A938p movem.l d0-d2,-(sp) clr.w d1 btst #3,(byte_FFFFA7DF).w bne.w loc_3A5C4 tst.b (byte_FFFF984E).w bne.w loc_3A5C4 cmpi.b #3,(IdleControlMode).w bne.s loc_3A522 move.w (word_FFFFA6F0).w,d3 ble.w loc_3A5BE cmpi.w #$1400,d3 bcc.s loc_3A500 lsr.w #1,d3 bra.s loc_3A504 ; --------------------------------------------------------------------------- loc_3A500: ; CODE XREF: sub_3A4CE+2Cj move.w #$A00,d3 loc_3A504: ; CODE XREF: sub_3A4CE+30j tbls.w (SPARK_ADVANCE_KV_IDLE_FLARE_CONTROL).l,d3 ; Spark modifier based on input from IAC to control engine startup idle flare. ; Degrees move.l d3,d1 muls.w (word_FFFF988E).w,d1 bpl.s loc_3A51A addi.l #$FFF,d1 loc_3A51A: ; CODE XREF: sub_3A4CE+44j asr.l #8,d1 asr.l #4,d1 bra.w loc_3A5BE ; --------------------------------------------------------------------------- loc_3A522: ; CODE XREF: sub_3A4CE+1Ej move.w (word_FFFFA6F0).w,d3 ble.s loc_3A562 move.l #$100,d2 cmp.w d3,d2 bcs.s loc_3A53C andi.l #$FFFF,d3 asl.l #2,d3 bra.s loc_3A554 ; --------------------------------------------------------------------------- loc_3A53C: ; CODE XREF: sub_3A4CE+62j cmpi.w #$600,d3 bcc.s loc_3A550 andi.l #$FFFF,d3 sub.l d2,d3 addi.w #$400,d3 bra.s loc_3A554 ; --------------------------------------------------------------------------- loc_3A550: ; CODE XREF: sub_3A4CE+72j move.w #$900,d3 loc_3A554: ; CODE XREF: sub_3A4CE+6Cj ; sub_3A4CE+80j move.w d3,d1 movea.l #SPARK_ADVANCE_KV_IDLE_OVERSPEED_ERROR,a2 ; This is the spark idle overspeed modifier. ; Degrees tbls.w (a2),d1 bra.s loc_3A5A4 ; --------------------------------------------------------------------------- loc_3A562: ; CODE XREF: sub_3A4CE+58j move.l d1,d4 cmpi.w #$FA00,d3 bge.s loc_3A56E move.l d4,d3 bra.s loc_3A598 ; --------------------------------------------------------------------------- loc_3A56E: ; CODE XREF: sub_3A4CE+9Aj cmpi.w #$FF00,d3 bgt.s loc_3A57E ext.l d3 addi.l #$600,d3 bra.s loc_3A598 ; --------------------------------------------------------------------------- loc_3A57E: ; CODE XREF: sub_3A4CE+A4j tst.w d3 bge.s loc_3A594 ext.l d3 addi.l #$100,d3 ext.l d3 asl.l #2,d3 addi.w #$500,d3 bra.s loc_3A598 ; --------------------------------------------------------------------------- loc_3A594: ; CODE XREF: sub_3A4CE+B2j move.w #$900,d3 loc_3A598: ; CODE XREF: sub_3A4CE+9Ej ; sub_3A4CE+AEj ... movea.l #SPARK_ADVANCE_KV_IDLE_UNDERSPEED_ERROR,a2 ; This is the spark idle underspeed modifier. ; Degrees tbls.w (a2),d3 move.w d3,d1 loc_3A5A4: ; CODE XREF: sub_3A4CE+92j moveq #$76,d0 ; 'v' jsr sub_81B3C tst.b d0 beq.s loc_3A5B8 movea.w (SPARK_ADVANCE_KE_POWER_STEERING_PRESS_MOD).l,a2 ; This calibration is a high engine load power steering pressure input spark modifier. ; Degrees bra.s loc_3A5BC ; --------------------------------------------------------------------------- loc_3A5B8: ; CODE XREF: sub_3A4CE+E0j movea.w #0,a2 loc_3A5BC: ; CODE XREF: sub_3A4CE+E8j add.w a2,d1 loc_3A5BE: ; CODE XREF: sub_3A4CE+24j ; sub_3A4CE+50j move.w d1,(word_FFFF9846).w bra.s loc_3A5C8 ; --------------------------------------------------------------------------- loc_3A5C4: ; CODE XREF: sub_3A4CE+Cj ; sub_3A4CE+14j clr.w (word_FFFF9846).w loc_3A5C8: ; CODE XREF: sub_3A4CE+F4j movem.l (sp)+,d0-d2 rts ; End of function sub_3A4CE ; =============== S U B R O U T I N E ======================================= sub_3A5CE: ; CODE XREF: OS1:0003A8F2p ; OS1:loc_3A966p movem.l d0-d2/a0,-(sp) move.w (word_FFFFB3E8).w,d0 clr.w d3 cmpi.w #$FF00,d0 bge.s loc_3A5E2 move.l d3,d0 bra.s loc_3A5F4 ; --------------------------------------------------------------------------- loc_3A5E2: ; CODE XREF: sub_3A5CE+Ej cmpi.w #$900,d0 bge.s loc_3A5F0 addi.w #$100,d0 add.w d0,d0 bra.s loc_3A5F4 ; --------------------------------------------------------------------------- loc_3A5F0: ; CODE XREF: sub_3A5CE+18j move.w #$1400,d0 loc_3A5F4: ; CODE XREF: sub_3A5CE+12j ; sub_3A5CE+20j move.w (DefinitelyRpm).w,d1 moveq #$15,d2 movea.l #SPARK_ADVANCE_KA_IAT_SPARK,a0 ; This calibration determines the main induction air temperature spark. ; Degrees jsr SurfaceTableLookup move.w (word_FFFF988C).w,d4 move.w (AnotherRpmValue).w,d3 movea.l #SPARK_ADVANCE_KV_IAT_RPM_MODIFIER,a2 ; Induction air temperature spark modifier based on engine speed. ; Multiplier tblu.w (a2),d3 muls.w d0,d4 bpl.s loc_3A622 addi.l #$FFF,d4 loc_3A622: ; CODE XREF: sub_3A5CE+4Cj asr.l #8,d4 asr.l #4,d4 muls.w d3,d4 bpl.s loc_3A630 addi.l #$FFF,d4 loc_3A630: ; CODE XREF: sub_3A5CE+5Aj asr.l #8,d4 asr.l #4,d4 move.w d4,(word_FFFF9890).w movem.l (sp)+,d0-d2/a0 rts ; End of function sub_3A5CE ; =============== S U B R O U T I N E ======================================= sub_3A63E: ; CODE XREF: OS1:0003A8FEp ; OS1:0003A93Ep movem.l d0-d2/d6-a0,-(sp) move.w (EngineRPM_PID_000C___).w,d0 move.w (MaybeLoad).w,d1 lsr.w #1,d1 clr.w d3 move.l #$148,d6 cmp.w d1,d6 bls.s loc_3A65C move.l d3,d1 bra.s loc_3A682 ; --------------------------------------------------------------------------- loc_3A65C: ; CODE XREF: sub_3A63E+18j cmpi.w #$E19,d1 bcc.s loc_3A67E andi.l #$FFFF,d1 sub.l d6,d1 asl.l #8,d1 asl.l #4,d1 bmi.s loc_3A67A divu.l #$A3D,d1 bra.s loc_3A682 ; --------------------------------------------------------------------------- loc_3A67A: ; CODE XREF: sub_3A63E+30j clr.l d1 bra.s loc_3A682 ; --------------------------------------------------------------------------- loc_3A67E: ; CODE XREF: sub_3A63E+22j move.w #$1407,d1 loc_3A682: ; CODE XREF: sub_3A63E+1Cj ; sub_3A63E+3Aj ... move.l #$800,d7 cmp.w d0,d7 bls.s loc_3A690 move.l d3,d0 bra.s loc_3A6A6 ; --------------------------------------------------------------------------- loc_3A690: ; CODE XREF: sub_3A63E+4Cj cmpi.w #$9000,d0 bcc.s loc_3A6A2 andi.l #$FFFF,d0 sub.l d7,d0 lsr.w #3,d0 bra.s loc_3A6A6 ; --------------------------------------------------------------------------- loc_3A6A2: ; CODE XREF: sub_3A63E+56j move.w #$1100,d0 loc_3A6A6: ; CODE XREF: sub_3A63E+50j ; sub_3A63E+62j moveq #$12,d2 movea.l #SPARK_ADVANCE_KA_FFS_E80_SPARK_SHIFT,a0 ; This cal determines the flex fuel contribution to spark advance assuming E80 fuel (80% ethanol). ; Degrees jsr SurfaceTableLookup move.w d0,d3 muls.w (word_FFFF9FC8).w,d3 bpl.s loc_3A6C2 addi.l #$FFF,d3 loc_3A6C2: ; CODE XREF: sub_3A63E+7Cj asr.l #8,d3 asr.l #4,d3 move.w d3,(word_FFFF988A).w movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_3A63E ; =============== S U B R O U T I N E ======================================= sub_3A6D0: ; CODE XREF: OS1:loc_3A904p movem.l d0-d2/d6/a0,-(sp) move.w (word_FFFFA0E6).w,d1 move.w (EngineRPM_PID_000C___).w,d0 clr.w d3 move.l #$148,d6 cmp.w d1,d6 bls.s loc_3A6EC move.l d3,d1 bra.s loc_3A712 ; --------------------------------------------------------------------------- loc_3A6EC: ; CODE XREF: sub_3A6D0+16j cmpi.w #$1334,d1 bcc.s loc_3A70E andi.l #$FFFF,d1 sub.l d6,d1 asl.l #8,d1 asl.l #4,d1 bmi.s loc_3A70A divu.l #$147B,d1 bra.s loc_3A712 ; --------------------------------------------------------------------------- loc_3A70A: ; CODE XREF: sub_3A6D0+2Ej clr.l d1 bra.s loc_3A712 ; --------------------------------------------------------------------------- loc_3A70E: ; CODE XREF: sub_3A6D0+20j move.w #$E00,d1 loc_3A712: ; CODE XREF: sub_3A6D0+1Aj ; sub_3A6D0+38j ... cmpi.w #$5000,d0 bcc.s loc_3A71C lsr.w #3,d0 bra.s loc_3A720 ; --------------------------------------------------------------------------- loc_3A71C: ; CODE XREF: sub_3A6D0+46j move.w #$A00,d0 loc_3A720: ; CODE XREF: sub_3A6D0+4Aj moveq #$B,d2 movea.l #SPARK_ADVANCE_KA_PISTON_SLAP_SPARK_RETARD,a0 ; This calibration determines the Piston Slap contribution to spark advance. ; Degrees jsr SurfaceTableLookup move.w d0,d3 move.w (word_FFFFAEE0).w,d5 tblu.w (SPARK_ADVANCE_KV_PISTON_SLAP_COOLANT_MULT).l,d5 ; This calibration is a Piston Slap Spark modifier based on Coolant Temperature. ; Unitless muls.w d5,d3 bpl.s loc_3A746 addi.l #$FFF,d3 loc_3A746: ; CODE XREF: sub_3A6D0+6Ej asr.l #8,d3 asr.l #4,d3 move.w d3,(word_FFFF989E).w movem.l (sp)+,d0-d2/d6/a0 rts ; End of function sub_3A6D0 ; =============== S U B R O U T I N E ======================================= sub_3A754: ; CODE XREF: sub_7E0BC+100p movem.l d0-d2/d6-a0,-(sp) move.w (EngineRPM_PID_000C___).w,d0 move.w (MaybeLoad).w,d1 lsr.w #1,d1 clr.w d3 move.l #$148,d7 cmp.w d1,d7 bls.s loc_3A772 move.l d3,d1 bra.s loc_3A798 ; --------------------------------------------------------------------------- loc_3A772: ; CODE XREF: sub_3A754+18j cmpi.w #$E19,d1 bcc.s loc_3A794 andi.l #$FFFF,d1 sub.l d7,d1 asl.l #8,d1 asl.l #4,d1 bmi.s loc_3A790 divu.l #$147B,d1 bra.s loc_3A798 ; --------------------------------------------------------------------------- loc_3A790: ; CODE XREF: sub_3A754+30j clr.l d1 bra.s loc_3A798 ; --------------------------------------------------------------------------- loc_3A794: ; CODE XREF: sub_3A754+22j move.w #$A03,d1 loc_3A798: ; CODE XREF: sub_3A754+1Cj ; sub_3A754+3Aj ... move.l #$800,d6 cmp.w d0,d6 bls.s loc_3A7A6 move.l d3,d0 bra.s loc_3A7BC ; --------------------------------------------------------------------------- loc_3A7A6: ; CODE XREF: sub_3A754+4Cj cmpi.w #$9000,d0 bcc.s loc_3A7B8 andi.l #$FFFF,d0 sub.l d6,d0 lsr.w #3,d0 bra.s loc_3A7BC ; --------------------------------------------------------------------------- loc_3A7B8: ; CODE XREF: sub_3A754+56j move.w #$1100,d0 loc_3A7BC: ; CODE XREF: sub_3A754+50j ; sub_3A754+62j moveq #$12,d2 movea.l #SPARK_ADVANCE_KA_FFS_E80_MBT_SPARK_SHIFT,a0 ; This cal determines the flex fuel contribution to MBT assuming E80 fuel (80% ethanol). ; Degrees jsr SurfaceTableLookup move.w d0,d6 muls.w (word_FFFF9FC8).w,d6 bpl.s loc_3A7D8 addi.l #$FFF,d6 loc_3A7D8: ; CODE XREF: sub_3A754+7Cj asr.l #8,d6 asr.l #4,d6 move.w (MaybeLoad).w,d1 lsr.w #1,d1 move.w (EngineRPM_PID_000C___).w,d0 clr.w d3 cmp.w d1,d7 bls.s loc_3A7F0 move.l d3,d1 bra.s loc_3A816 ; --------------------------------------------------------------------------- loc_3A7F0: ; CODE XREF: sub_3A754+96j cmpi.w #$1334,d1 bcc.s loc_3A812 andi.l #$FFFF,d1 sub.l d7,d1 asl.l #8,d1 asl.l #4,d1 bmi.s loc_3A80E divu.l #$147B,d1 bra.s loc_3A816 ; --------------------------------------------------------------------------- loc_3A80E: ; CODE XREF: sub_3A754+AEj clr.l d1 bra.s loc_3A816 ; --------------------------------------------------------------------------- loc_3A812: ; CODE XREF: sub_3A754+A0j move.w #$E00,d1 loc_3A816: ; CODE XREF: sub_3A754+9Aj ; sub_3A754+B8j ... move.l #$800,d3 cmp.w d0,d3 bls.s loc_3A824 clr.w d0 bra.s loc_3A83A ; --------------------------------------------------------------------------- loc_3A824: ; CODE XREF: sub_3A754+CAj cmpi.w #$A000,d0 bcc.s loc_3A836 andi.l #$FFFF,d0 sub.l d3,d0 lsr.w #3,d0 bra.s loc_3A83A ; --------------------------------------------------------------------------- loc_3A836: ; CODE XREF: sub_3A754+D4j move.w #$1300,d0 loc_3A83A: ; CODE XREF: sub_3A754+CEj ; sub_3A754+E0j moveq #$14,d2 movea.l #SPARK_ADVANCE_KA_MBT_SPARK,a0 ; Spark Advance for mean best timing. ; Degrees jsr sub_2696E move.w d0,d3 add.w d6,d3 bvc.s loc_3A85A bpl.s loc_3A856 move.w #$7FFF,d3 bra.s loc_3A85A ; --------------------------------------------------------------------------- loc_3A856: ; CODE XREF: sub_3A754+FAj move.w #$8000,d3 loc_3A85A: ; CODE XREF: sub_3A754+F8j ; sub_3A754+100j move.l d3,d4 sub.w (word_FFFF9848).w,d4 bvc.s loc_3A86E bpl.s loc_3A86A move.w #$7FFF,d4 bra.s loc_3A86E ; --------------------------------------------------------------------------- loc_3A86A: ; CODE XREF: sub_3A754+10Ej move.w #$8000,d4 loc_3A86E: ; CODE XREF: sub_3A754+10Cj ; sub_3A754+114j move.w d4,(word_FFFF9834).w sub.w (word_FFFF98C4).w,d3 bvc.s loc_3A884 bpl.s loc_3A880 move.w #$7FFF,d3 bra.s loc_3A884 ; --------------------------------------------------------------------------- loc_3A880: ; CODE XREF: sub_3A754+124j move.w #$8000,d3 loc_3A884: ; CODE XREF: sub_3A754+122j ; sub_3A754+12Aj move.w d3,(word_FFFF9836).w move.w (word_FFFF9834).w,d3 add.w (word_FFFF9884).w,d3 bvc.s loc_3A89E bpl.s loc_3A89A move.w #$7FFF,d3 bra.s loc_3A89E ; --------------------------------------------------------------------------- loc_3A89A: ; CODE XREF: sub_3A754+13Ej move.w #$8000,d3 loc_3A89E: ; CODE XREF: sub_3A754+13Cj ; sub_3A754+144j move.w d3,(word_FFFF9838).w movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_3A754 ; --------------------------------------------------------------------------- loc_3A8A8: ; CODE XREF: DoLoopA+19Ap movem.l d0-d2/d6-d7,-(sp) move.b (byte_FFFFB37A).w,d3 beq.s loc_3A8B8 tst.b (byte_FFFFB557).w bne.s loc_3A8C8 loc_3A8B8: ; CODE XREF: OS1:0003A8B0j tst.b d3 bne.w loc_3AE1E cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_3AE1E loc_3A8C8: ; CODE XREF: OS1:0003A8B6j tst.b (byte_FFFFAA93).w bne.s loc_3A90C jsr sub_3B38C jsr sub_39F12 jsr sub_3A2A8 jsr sub_3A330 jsr sub_3A436 jsr sub_3A4CE jsr sub_3A5CE jsr sub_3AF0C jsr sub_3A63E loc_3A904: ; CODE XREF: OS1:0003A964j jsr sub_3A6D0 bra.s loc_3A96C ; --------------------------------------------------------------------------- loc_3A90C: ; CODE XREF: OS1:0003A8CCj clr.w d3 move.b (byte_FFFFAC47).w,d3 cmpi.w #7,d3 bhi.s loc_3A96C movea.l off_8A57C(d3.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_3A922: ; DATA XREF: OS4:off_8A57Co jsr sub_3A330 bra.s loc_3A96C ; --------------------------------------------------------------------------- loc_3A92A: ; DATA XREF: OS4:0008A580o jsr sub_3B38C jsr sub_39F12 bra.s loc_3A96C ; --------------------------------------------------------------------------- loc_3A938: ; DATA XREF: OS4:0008A584o jsr sub_3A4CE jsr sub_3A63E bra.s loc_3A96C ; --------------------------------------------------------------------------- loc_3A946: ; DATA XREF: OS4:0008A588o jsr sub_3A436 bra.s loc_3A96C ; --------------------------------------------------------------------------- loc_3A94E: ; DATA XREF: OS4:0008A58Co jsr sub_3AF0C bra.s loc_3A96C ; --------------------------------------------------------------------------- loc_3A956: ; DATA XREF: OS4:0008A590o jsr sub_3B82A bra.s loc_3A96C ; --------------------------------------------------------------------------- loc_3A95E: ; DATA XREF: OS4:0008A594o jsr sub_3A2A8 bra.s loc_3A904 ; --------------------------------------------------------------------------- loc_3A966: ; DATA XREF: OS4:0008A598o jsr sub_3A5CE loc_3A96C: ; CODE XREF: OS1:0003A90Aj ; OS1:0003A916j ... move.w (word_FFFF989E).w,d4 move.w (word_FFFF983C).w,d3 cmp.w d4,d3 bgt.s loc_3A97A move.l d4,d3 loc_3A97A: ; CODE XREF: OS1:0003A976j move.w (word_FFFF983A).w,d1 ; --------------------------------------------------------------------------- dc.b $D2 ; ? aXsXsbXsrXsktc1:dc.b 'x?>?x?B?x???x???C1???4x?0?x???x???x?F?x?',0 ; DATA XREF: GetCoolantTemperature+74o ; --------------------------------------------------------------------------- sub.w a2,d1 add.w (word_FFFF9D34).w,d1 move.w d1,(word_FFFF98BE).w move.w a2,(word_FFFF984C).w move.w (AnotherRpmValue).w,d4 move.w d4,d0 movea.l #$BA88,a2 tbls.w (a2),d0 move.b (byte_FFFFA938).w,d3 beq.s loc_3AA22 tst.b (byte_FFFF9854).w bne.s loc_3AA22 move.w d1,(word_FFFF9880).w moveq #1,d7 move.b d7,(byte_FFFF9854).w move.l d1,d3 sub.w d0,d3 bvc.s loc_3A9EE bpl.s loc_3A9EA move.w #$7FFF,d3 bra.s loc_3A9EE ; --------------------------------------------------------------------------- loc_3A9EA: ; CODE XREF: OS1:0003A9E2j move.w #$8000,d3 loc_3A9EE: ; CODE XREF: OS1:0003A9E0j ; OS1:0003A9E8j move.w d3,(word_FFFF987A).w clr.b (byte_FFFF9851).w clr.b (byte_FFFF98CF).w clr.b (byte_FFFF987E).w clr.b (byte_FFFF98CD).w clr.b (byte_FFFF98CC).w clr.b (byte_FFFF98CE).w tst.b (byte_FFFFA936).w beq.w loc_3AC0A move.b d7,(byte_FFFF9851).w move.b d7,(byte_FFFF98CF).w move.b d7,(byte_FFFF984F).w bra.w loc_3AC0A ; --------------------------------------------------------------------------- loc_3AA22: ; CODE XREF: OS1:0003A9CAj ; OS1:0003A9D0j tst.b d3 beq.s loc_3AA86 tst.b (byte_FFFF9851).w bne.s loc_3AA86 tst.b (byte_FFFF9854).w beq.s loc_3AA86 movea.l #$BAB2,a2 tblu.w (a2),d4 muls.w (word_FFFF987A).w,d4 bpl.s loc_3AA48 addi.l #$FFF,d4 loc_3AA48: ; CODE XREF: OS1:0003AA40j asr.l #8,d4 asr.l #4,d4 bne.s loc_3AA50 moveq #1,d4 loc_3AA50: ; CODE XREF: OS1:0003AA4Cj move.w (word_FFFF9880).w,d3 sub.w d4,d3 bvc.s loc_3AA64 bpl.s loc_3AA60 move.w #$7FFF,d3 bra.s loc_3AA64 ; --------------------------------------------------------------------------- loc_3AA60: ; CODE XREF: OS1:0003AA58j move.w #$8000,d3 loc_3AA64: ; CODE XREF: OS1:0003AA56j ; OS1:0003AA5Ej cmp.w d0,d3 bgt.s loc_3AA74 move.b #1,(byte_FFFF9851).w move.w d0,(word_FFFF9880).w bra.s loc_3AA7C ; --------------------------------------------------------------------------- loc_3AA74: ; CODE XREF: OS1:0003AA66j clr.b (byte_FFFF9851).w move.w d3,(word_FFFF9880).w loc_3AA7C: ; CODE XREF: OS1:0003AA72j ; OS1:0003AAB0j ... move.w (word_FFFF9880).w,(word_FFFF987C).w bra.w loc_3AC0A ; --------------------------------------------------------------------------- loc_3AA86: ; CODE XREF: OS1:0003AA24j ; OS1:0003AA2Aj ... move.b (byte_FFFF9854).w,d7 beq.s loc_3AABC tst.b d3 bne.s loc_3AABC tst.b (byte_FFFFA93A).w bne.s loc_3AABC tst.b (byte_FFFF9851).w bne.s loc_3AABC tst.b (byte_FFFF98CE).w bne.s loc_3AABC tst.b (FUEL_CU_KE_DFCO_SPK_INTERRUPTED_RAMP).l beq.s loc_3AAB2 moveq #1,d7 move.b d7,(byte_FFFF98CE).w bra.s loc_3AA7C ; --------------------------------------------------------------------------- loc_3AAB2: ; CODE XREF: OS1:0003AAA8j move.w d1,(word_FFFF9880).w clr.b (byte_FFFF9854).w bra.s loc_3AA7C ; --------------------------------------------------------------------------- loc_3AABC: ; CODE XREF: OS1:0003AA8Aj ; OS1:0003AA8Ej ... move.b (byte_FFFF9851).w,d2 move.l d3,d5 and.b d2,d5 beq.s loc_3AAFC tst.b (byte_FFFF98CF).w bne.s loc_3AAFC move.w d0,(word_FFFF9880).w move.w d0,(word_FFFF987C).w move.b (byte_FFFF987E).w,d3 cmp.b (FUEL_CU_KE_DFCO_SPK_DISABLED_HOLD_REF).l,d3 bne.s loc_3AAEE move.b #1,(byte_FFFF98CF).w clr.b (byte_FFFF987E).w bra.w loc_3AC0A ; --------------------------------------------------------------------------- loc_3AAEE: ; CODE XREF: OS1:0003AADEj clr.b (byte_FFFF98CF).w addq.b #1,d3 move.b d3,(byte_FFFF987E).w bra.w loc_3AC0A ; --------------------------------------------------------------------------- loc_3AAFC: ; CODE XREF: OS1:0003AAC4j ; OS1:0003AACAj move.l d3,d5 and.b (byte_FFFF98CF).w,d5 beq.s loc_3AB50 tst.b (byte_FFFF98CE).w bne.s loc_3AB50 move.w (word_FFFFAB66).w,d0 cmp.w (FUEL_CU_KE_DFCO_SPK_CONTINUE_TPS_HIGH).l,d0 ; Throttle position high limit for usage of DFCO continue spark. ; Percent bls.s loc_3AB26 move.w d4,d3 movea.l #$BA12,a2 tbls.w (a2),d3 move.w d3,(word_FFFF9880).w loc_3AB26: ; CODE XREF: OS1:0003AB14j cmp.w (FUEL_CU_KE_DFCO_SPK_CONTINUE_TPS_LOW).l,d0 ; Throttle position Low limit for usage of DFCO continue spark. ; Percent bcc.s loc_3AB3E clr.b d3 movea.l #$BA3C,a2 tbls.w (a2),d4 move.w d4,(word_FFFF9880).w loc_3AB3E: ; CODE XREF: OS1:0003AB2Cj tst.b (byte_FFFF984F).w bne.w loc_3AA7C moveq #1,d7 move.b d7,(byte_FFFF98CD).w bra.w loc_3AA7C ; --------------------------------------------------------------------------- loc_3AB50: ; CODE XREF: OS1:0003AB02j ; OS1:0003AB08j tst.b d3 bne.s loc_3AB80 tst.b (byte_FFFF98CD).w beq.s loc_3AB80 tst.b (byte_FFFF98CE).w bne.s loc_3AB80 move.b (byte_FFFF98CC).w,d3 cmp.b (FUEL_CU_KE_DFCO_SPK_CONTINUE_REF_COUNT).l,d3 ; Number of low res. reference pulse counts to hold continue spark after DFCO exit. ; Counts bls.s loc_3AB76 loc_3AB6C: ; CODE XREF: OS1:0003AB8Cj move.b #1,(byte_FFFF98CE).w bra.w loc_3AC0A ; --------------------------------------------------------------------------- loc_3AB76: ; CODE XREF: OS1:0003AB6Aj addq.b #1,d3 move.b d3,(byte_FFFF98CC).w bra.w loc_3AC0A ; --------------------------------------------------------------------------- loc_3AB80: ; CODE XREF: OS1:0003AB52j ; OS1:0003AB58j ... tst.b d3 bne.s loc_3AB8E tst.b d2 beq.s loc_3AB8E tst.b (byte_FFFF98CE).w beq.s loc_3AB6C loc_3AB8E: ; CODE XREF: OS1:0003AB82j ; OS1:0003AB86j and.b (byte_FFFF98CE).w,d7 beq.s loc_3ABFA tst.b (byte_FFFF984F).w beq.s loc_3ABA2 move.w (FUEL_CU_KE_CLUTCH_DFCO_SPK_EXIT_RATE).l,d3 ; Determines ramp rate of spark advance during exit of aclutch-based DFCO event. ; Degrees bra.s loc_3ABBC ; --------------------------------------------------------------------------- loc_3ABA2: ; CODE XREF: OS1:0003AB98j move.w (word_FFFFAB66).w,d3 asl.w #2,d3 andi.l #$FFFF,d3 divu.w #5,d3 movea.l #$BA66,a2 tbls.w (a2),d3 loc_3ABBC: ; CODE XREF: OS1:0003ABA0j add.w (word_FFFF9880).w,d3 bvc.s loc_3ABCE bpl.s loc_3ABCA move.w #$7FFF,d3 bra.s loc_3ABCE ; --------------------------------------------------------------------------- loc_3ABCA: ; CODE XREF: OS1:0003ABC2j move.w #$8000,d3 loc_3ABCE: ; CODE XREF: OS1:0003ABC0j ; OS1:0003ABC8j cmp.w d1,d3 bge.s loc_3ABD8 move.w d3,(word_FFFF9880).w bra.s loc_3ABDC ; --------------------------------------------------------------------------- loc_3ABD8: ; CODE XREF: OS1:0003ABD0j move.w d1,(word_FFFF9880).w loc_3ABDC: ; CODE XREF: OS1:0003ABD6j move.w (word_FFFF9880).w,d3 cmp.w d1,d3 blt.s loc_3ABF4 clr.b (byte_FFFF9854).w clr.b (byte_FFFF9851).w clr.b (byte_FFFF984F).w clr.b (byte_FFFFA936).w loc_3ABF4: ; CODE XREF: OS1:0003ABE2j move.w d3,(word_FFFF987C).w bra.s loc_3AC0A ; --------------------------------------------------------------------------- loc_3ABFA: ; CODE XREF: OS1:0003AB92j move.w d1,(word_FFFF987C).w clr.b (byte_FFFF9854).w clr.b (byte_FFFF9851).w clr.b (byte_FFFF984F).w loc_3AC0A: ; CODE XREF: OS1:0003AA0Ej ; OS1:0003AA1Ej ... tst.b (byte_FFFFA939).w beq.s loc_3AC24 move.w d1,(word_FFFF987C).w clr.b (byte_FFFF9854).w clr.b (byte_FFFF9851).w clr.b (byte_FFFF984F).w clr.b (byte_FFFFA936).w loc_3AC24: ; CODE XREF: OS1:0003AC0Ej tst.b (byte_FFFFABDA).w beq.s loc_3AC4C move.w (AnotherRpmValue).w,d3 movea.l #SPARK_ADVANCE_KV_ENG_PROTECTION_SPARK_ADVANCE,a2 ; Spark advance value based on engine speed if engine protection is enabled. ; Degrees tbls.w (a2),d3 move.w d3,(word_FFFF987C).w clr.b (byte_FFFF9854).w clr.b (byte_FFFF9851).w clr.b (byte_FFFF984F).w clr.b (byte_FFFFA936).w loc_3AC4C: ; CODE XREF: OS1:0003AC28j tst.b (byte_FFFFB37A).w beq.w loc_3AD24 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (SPARK_ADVANCE_KE_HVS_TEST_RPM_HI).l,d3 ; HVS position monitoring and limit adjusting logic is performed below this RPM. ; RPM bcc.w loc_3AD24 cmp.w (SPARK_ADVANCE_KE_HVS_TEST_RPM_LO).l,d3 ; HVS position monitoring and limit adjusting logic is performed above this RPM. ; RPM bls.w loc_3AD24 tst.b (byte_FFFFAC43).w beq.w loc_3AD16 tst.b (byte_FFFFAC42).w beq.w loc_3AD16 btst #5,(byte_FFFFAA92).w beq.w loc_3AD16 clr.l d1 move.w (word_FFFFE1E2).w,d1 clr.l d2 move.w (word_FFFFAC32).w,d2 moveq #$64,d0 ; 'd' jsr sub_81FBC move.l d0,d3 cmpi.l #$FFFF,d3 bls.s loc_3ACA8 move.w #$FFFF,d3 loc_3ACA8: ; CODE XREF: OS1:0003ACA2j move.w (word_FFFFE1CC).w,d4 beq.s loc_3AD24 andi.l #$FFFF,d3 asl.l #8,d3 asl.l #3,d3 divu.w d4,d3 bvs.s loc_3ACC2 cmpi.w #$800,d3 bls.s loc_3ACC6 loc_3ACC2: ; CODE XREF: OS1:0003ACBAj move.w #$800,d3 loc_3ACC6: ; CODE XREF: OS1:0003ACC0j moveq #6,d2 cmp.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d2 ; Number of cylinders for this engine application. ; SHORTCARD bne.s loc_3ACD6 move.w #$1555,d5 bra.s loc_3ACDA ; --------------------------------------------------------------------------- loc_3ACD6: ; CODE XREF: OS1:0003ACCEj move.w #$1000,d5 loc_3ACDA: ; CODE XREF: OS1:0003ACD4j muls.w d5,d3 bpl.s loc_3ACE4 addi.l #$7FF,d3 loc_3ACE4: ; CODE XREF: OS1:0003ACDCj asr.l #8,d3 asr.l #3,d3 cmp.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d2 ; Number of cylinders for this engine application. ; SHORTCARD bne.s loc_3ACF6 movea.w #$AAB,a2 bra.s loc_3ACFA ; --------------------------------------------------------------------------- loc_3ACF6: ; CODE XREF: OS1:0003ACEEj movea.w #$800,a2 loc_3ACFA: ; CODE XREF: OS1:0003ACF4j sub.w a2,d3 bvc.s loc_3AD0A bpl.s loc_3AD06 move.w #$7FFF,d3 bra.s loc_3AD0A ; --------------------------------------------------------------------------- loc_3AD06: ; CODE XREF: OS1:0003ACFEj move.w #$8000,d3 loc_3AD0A: ; CODE XREF: OS1:0003ACFCj ; OS1:0003AD04j move.w d3,(word_FFFF9844).w move.b #1,(byte_FFFF98CA).w bra.s loc_3AD24 ; --------------------------------------------------------------------------- loc_3AD16: ; CODE XREF: OS1:0003AC70j ; OS1:0003AC78j ... tst.b (byte_FFFF98CA).w bne.s loc_3AD24 move.w (SPARK_ADVANCE_KE_HVS_DEGREE_OFFSET_DEFAULT).l,(word_FFFF9844).w ; Default HVS offset when no CAM falling edge is detected. ; Degrees loc_3AD24: ; CODE XREF: OS1:0003AC50j ; OS1:0003AC5Ej ... move.w (word_FFFF987C).w,d0 jsr sub_3B3DA tst.b (byte_FFFF9850).w beq.s loc_3AD92 tst.w (EngineRpmError).w blt.s loc_3AD40 move.b #1,(byte_FFFF98CB).w loc_3AD40: ; CODE XREF: OS1:0003AD38j clr.l d3 move.w (word_FFFF9872).w,d3 cmp.l (EngineRunTime).w,d3 bls.s loc_3AD5E tst.b (byte_FFFF98CB).w beq.s loc_3AD58 tst.w (EngineRpmError).w blt.s loc_3AD72 loc_3AD58: ; CODE XREF: OS1:0003AD50j move.w (word_FFFF9874).w,d3 bra.s loc_3AD78 ; --------------------------------------------------------------------------- loc_3AD5E: ; CODE XREF: OS1:0003AD4Aj move.w (word_FFFFAB66).w,d3 cmp.w (SPARK_ADVANCE_KE_CRANK_BLEND_TPS).l,d3 ; If throttle position is less than this value use Kx_TPS_Blend_Step otherwise use Kx_Spark_Blend_Step. ; Percent bcc.s loc_3AD72 move.w (SPARK_ADVANCE_KE_CRANK_BLEND_STEP_CT).l,d3 ; Closed throttle crank to run spark blending step size. ; Degrees bra.s loc_3AD78 ; --------------------------------------------------------------------------- loc_3AD72: ; CODE XREF: OS1:0003AD56j ; OS1:0003AD68j move.w (SPARK_ADVANCE_KE_CRANK_BLEND_STEP_OT).l,d3 ; Open throttle crank to run spark blending step size. ; Degrees loc_3AD78: ; CODE XREF: OS1:0003AD5Cj ; OS1:0003AD70j add.w (word_FFFF9896).w,d3 bvc.s loc_3AD8A bpl.s loc_3AD86 move.w #$7FFF,d3 bra.s loc_3AD8A ; --------------------------------------------------------------------------- loc_3AD86: ; CODE XREF: OS1:0003AD7Ej move.w #$8000,d3 loc_3AD8A: ; CODE XREF: OS1:0003AD7Cj ; OS1:0003AD84j cmp.w d0,d3 ble.s loc_3AD94 clr.b (byte_FFFF9850).w loc_3AD92: ; CODE XREF: OS1:0003AD32j move.w d0,d3 loc_3AD94: ; CODE XREF: OS1:0003AD8Cj move.l d3,d0 tst.b (byte_FFFFA494).w bne.s loc_3ADA4 btst #5,(byte_FFFFA7E0).w beq.s loc_3AE12 loc_3ADA4: ; CODE XREF: OS1:0003AD9Aj btst #5,(byte_FFFFA7E0).w beq.s loc_3ADC8 btst #5,(byte_FFFFA7E4).w beq.s loc_3ADBA move.w (word_FFFFA7F0).w,d6 bra.s loc_3AE0C ; --------------------------------------------------------------------------- loc_3ADBA: ; CODE XREF: OS1:0003ADB2j btst #4,(byte_FFFFA7E4).w beq.s loc_3AE0C add.w (word_FFFFA7F0).w,d0 bra.s loc_3AE0A ; --------------------------------------------------------------------------- loc_3ADC8: ; CODE XREF: OS1:0003ADAAj move.b (byte_FFFFA494).w,d3 moveq #1,d2 cmp.b d3,d2 bne.s loc_3ADE4 move.w (word_FFFFA496).w,d3 move.l d3,d6 cmp.b (byte_FFFFA495).w,d2 bne.s loc_3AE0C move.l d3,d6 neg.w d6 bra.s loc_3AE0C ; --------------------------------------------------------------------------- loc_3ADE4: ; CODE XREF: OS1:0003ADD0j cmpi.b #2,d3 bne.s loc_3AE0C cmp.b (byte_FFFFA495).w,d2 bne.s loc_3ADFE sub.w (word_FFFFA496).w,d0 bvc.s loc_3AE0A bpl.s loc_3AE06 loc_3ADF8: ; CODE XREF: OS1:0003AE04j move.w #$7FFF,d0 bra.s loc_3AE0A ; --------------------------------------------------------------------------- loc_3ADFE: ; CODE XREF: OS1:0003ADEEj add.w (word_FFFFA496).w,d0 bvc.s loc_3AE0A bmi.s loc_3ADF8 loc_3AE06: ; CODE XREF: OS1:0003ADF6j move.w #$8000,d0 loc_3AE0A: ; CODE XREF: OS1:0003ADC6j ; OS1:0003ADF4j ... move.w d0,d6 loc_3AE0C: ; CODE XREF: OS1:0003ADB8j ; OS1:0003ADC0j ... move.w d6,(word_FFFF9894).w bra.s loc_3AE16 ; --------------------------------------------------------------------------- loc_3AE12: ; CODE XREF: OS1:0003ADA2j move.w d0,(word_FFFF9894).w loc_3AE16: ; CODE XREF: OS1:0003AE10j move.w (word_FFFF9894).w,d4 bra.w loc_3AEA2 ; --------------------------------------------------------------------------- loc_3AE1E: ; CODE XREF: OS1:0003A8BAj ; OS1:0003A8C4j jsr sub_3A30C tst.b (byte_FFFFB37A).w beq.s loc_3AE38 move.w (word_FFFF9876).w,d1 clr.b (byte_FFFF9853).w clr.w (word_FFFF9884).w bra.s loc_3AE44 ; --------------------------------------------------------------------------- loc_3AE38: ; CODE XREF: OS1:0003AE28j move.w (word_FFFF9876).w,d0 jsr sub_3B3DA move.w d0,d1 loc_3AE44: ; CODE XREF: OS1:0003AE36j tst.b (byte_FFFFB37A).w bne.s loc_3AE9A tst.b (byte_FFFFA490).w beq.s loc_3AE9A move.b (byte_FFFFA490).w,d3 moveq #1,d6 cmp.b d3,d6 bne.s loc_3AE6C move.w (word_FFFFA492).w,d3 move.l d3,d2 cmp.b (byte_FFFFA491).w,d6 bne.s loc_3AE94 move.l d3,d2 neg.w d2 bra.s loc_3AE94 ; --------------------------------------------------------------------------- loc_3AE6C: ; CODE XREF: OS1:0003AE58j cmpi.b #2,d3 bne.s loc_3AE94 cmp.b (byte_FFFFA491).w,d6 bne.s loc_3AE86 sub.w (word_FFFFA492).w,d1 bvc.s loc_3AE92 bpl.s loc_3AE8E loc_3AE80: ; CODE XREF: OS1:0003AE8Cj move.w #$7FFF,d1 bra.s loc_3AE92 ; --------------------------------------------------------------------------- loc_3AE86: ; CODE XREF: OS1:0003AE76j add.w (word_FFFFA492).w,d1 bvc.s loc_3AE92 bmi.s loc_3AE80 loc_3AE8E: ; CODE XREF: OS1:0003AE7Ej move.w #$8000,d1 loc_3AE92: ; CODE XREF: OS1:0003AE7Cj ; OS1:0003AE84j ... move.w d1,d2 loc_3AE94: ; CODE XREF: OS1:0003AE64j ; OS1:0003AE6Aj ... move.w d2,(word_FFFF9892).w bra.s loc_3AE9E ; --------------------------------------------------------------------------- loc_3AE9A: ; CODE XREF: OS1:0003AE48j ; OS1:0003AE4Ej move.w d1,(word_FFFF9892).w loc_3AE9E: ; CODE XREF: OS1:0003AE98j move.w (word_FFFF9892).w,d4 loc_3AEA2: ; CODE XREF: OS1:0003AE1Aj move.w (word_FFFF9896).w,d1 move.l d4,d0 sub.w d1,d0 move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$80,d3 ; '?' bcc.s loc_3AEB8 clr.w d3 bra.s loc_3AED4 ; --------------------------------------------------------------------------- loc_3AEB8: ; CODE XREF: OS1:0003AEB2j cmpi.w #$1CD,d3 bcc.s loc_3AED0 andi.l #$FFFF,d3 subi.l #$80,d3 ; '?' mulu.w #$A,d3 bra.s loc_3AED4 ; --------------------------------------------------------------------------- loc_3AED0: ; CODE XREF: OS1:0003AEBCj move.w #$D02,d3 loc_3AED4: ; CODE XREF: OS1:0003AEB6j ; OS1:0003AECEj movea.l #SPARK_ADVANCE_KV_LIMIT_LOW_RPM_DELTA,a2 ; Maximum allowable spark advance delta between two consecutive events at low engine speeds. ; Degrees tbls.w (a2),d3 move.l d0,d2 tst.w d2 bge.s loc_3AEE6 neg.w d2 loc_3AEE6: ; CODE XREF: OS1:0003AEE2j cmp.w d3,d2 ble.s loc_3AEF8 tst.w d0 ble.s loc_3AEF4 move.l d1,d4 add.w d3,d4 bra.s loc_3AEF8 ; --------------------------------------------------------------------------- loc_3AEF4: ; CODE XREF: OS1:0003AEECj move.l d1,d4 sub.w d3,d4 loc_3AEF8: ; CODE XREF: OS1:0003AEE8j ; OS1:0003AEF2j move.w d4,(word_FFFF9848).w movea.w d4,a2 move.w a2,(word_FFFF9896).w move.w a2,(word_FFFF9840).w movem.l (sp)+,d0-d2/d6-d7 rts ; =============== S U B R O U T I N E ======================================= sub_3AF0C: ; CODE XREF: OS1:0003A8F8p ; OS1:loc_3A94Ep movem.l d0-d2/d6-a1,-(sp) tst.b (byte_FFFF986D).w bne.w loc_3B124 clr.l d3 move.w (SPARK_ADVANCE_KE_LIGHTOFF_AND_LAUNCHRAMPINTIME).l,d3 ; Used to calculate a ramp in multiplier based upon engine run time. ; Seconds cmp.l (EngineRunTime).w,d3 bls.s loc_3AF5C clr.l d6 move.w (SPARK_ADVANCE_KE_LIGHTOFF_AND_LAUNCHRAMPINTIME).l,d6 ; Used to calculate a ramp in multiplier based upon engine run time. ; Seconds move.l (EngineRunTime).w,d7 mulu.l #$1000,d3:d7 divu.l d6,d3:d7 bvs.s loc_3AF52 cmpi.l #$FFFF,d7 bhi.s loc_3AF52 cmpi.w #$1000,d7 bhi.s loc_3AF52 move.w d7,d3 bra.s loc_3AF56 ; --------------------------------------------------------------------------- loc_3AF52: ; CODE XREF: sub_3AF0C+32j ; sub_3AF0C+3Aj ... move.w #$1000,d3 loc_3AF56: ; CODE XREF: sub_3AF0C+44j move.w d3,(word_FFFF9870).w bra.s loc_3AF62 ; --------------------------------------------------------------------------- loc_3AF5C: ; CODE XREF: sub_3AF0C+18j move.w #$1000,(word_FFFF9870).w loc_3AF62: ; CODE XREF: sub_3AF0C+4Ej move.w (word_FFFFAEE0).w,d3 movea.l #SPARK_ADVANCE_KV_CAT_LIGHTOFF_COOLANT_MULT,a2 ; Powerup coolant multiplier applied to the catalyst lightoffspark retard. ; Multiplier_0_to_2 tbls.w (a2),d3 move.w d3,(word_FFFF985E).w move.w (word_FFFFAB66).w,d6 lsr.w #1,d6 tblu.w (SPARK_ADVANCE_KV_CAT_LIGHTOFF_THROTTLE_MULT).l,d6 ; Throttle position multiplier applied to the catalyst lightoffspark retard. ; Multiplier_0_to_1 move.w d6,(word_FFFF9860).w move.w (EngineRPM_PID_000C___).w,d0 cmpi.w #$5000,d0 bcc.s loc_3AF94 lsr.w #2,d0 bra.s loc_3AF98 ; --------------------------------------------------------------------------- loc_3AF94: ; CODE XREF: sub_3AF0C+82j move.w #$1400,d0 loc_3AF98: ; CODE XREF: sub_3AF0C+86j move.w (DefinitelyRpm).w,d1 moveq #$15,d2 movea.l #SPARK_ADVANCE_KA_CAT_LIGHTOFF_SPARK_RETARD,a0 ; The amount of spark retard to apply to lightoff the catalytic converter. ; Degrees_POSITIVE jsr SurfaceTableLookup move.w #$1000,d1 muls.w (word_FFFF9870).w,d0 bpl.s loc_3AFBA addi.l #$FFF,d0 loc_3AFBA: ; CODE XREF: sub_3AF0C+A6j asr.l #8,d0 asr.l #4,d0 muls.w (word_FFFF985E).w,d0 divs.w d1,d0 bvc.s loc_3AFD6 swap d0 eor.w d1,d0 bmi.s loc_3AFD2 move.w #$7FFF,d0 bra.s loc_3AFD6 ; --------------------------------------------------------------------------- loc_3AFD2: ; CODE XREF: sub_3AF0C+BEj move.w #$8000,d0 loc_3AFD6: ; CODE XREF: sub_3AF0C+B8j ; sub_3AF0C+C4j muls.w d6,d0 bpl.s loc_3AFE0 addi.l #$FFF,d0 loc_3AFE0: ; CODE XREF: sub_3AF0C+CCj asr.l #8,d0 asr.l #4,d0 move.b (byte_FFFF986C).w,d1 or.b (byte_FFFF986E).w,d1 beq.s loc_3B00A tst.w (word_FFFF9D34).w bne.s loc_3AFF8 clr.b (byte_FFFF986C).w loc_3AFF8: ; CODE XREF: sub_3AF0C+E6j move.w (word_FFFFB298).w,d1 cmp.w (SPARK_ADVANCE_KE_CAT_LIGHTOFF_SPARK_VACUUM_ENA).l,d1 bhi.s loc_3B028 clr.b (byte_FFFF986E).w bra.s loc_3B028 ; --------------------------------------------------------------------------- loc_3B00A: ; CODE XREF: sub_3AF0C+E0j tst.w (word_FFFF9D34).w beq.s loc_3B016 move.b #1,(byte_FFFF986C).w loc_3B016: ; CODE XREF: sub_3AF0C+102j move.w (word_FFFFB298).w,d1 cmp.w (SPARK_ADVANCE_KE_CAT_LIGHTOFF_SPARK_VACUUM_DIS).l,d1 ; Set Catalyst Lightoff Spark Retard to zero when engine manifold vacuum is greater than this value. ; kPa bls.s loc_3B028 move.b #1,(byte_FFFF986E).w loc_3B028: ; CODE XREF: sub_3AF0C+F6j ; sub_3AF0C+FCj ... move.b (byte_FFFF986C).w,d1 or.b (byte_FFFF986E).w,d1 clr.l d3 move.w (word_FFFF9868).w,d3 cmp.l (EngineRunTime).w,d3 bcc.s loc_3B098 move.w #$1000,d3 clr.l d5 move.w (word_FFFF9868).w,d5 move.l (EngineRunTime).w,d4 sub.l d5,d4 bcs.s loc_3B05C cmpi.l #$FFFF,d4 bls.s loc_3B05E move.w #$FFFF,d4 bra.s loc_3B05E ; --------------------------------------------------------------------------- loc_3B05C: ; CODE XREF: sub_3AF0C+140j clr.w d4 loc_3B05E: ; CODE XREF: sub_3AF0C+148j ; sub_3AF0C+14Ej andi.l #$FFFF,d4 asl.l #8,d4 asl.l #4,d4 divu.w (word_FFFF986A).w,d4 bvs.s loc_3B074 cmpi.w #$1000,d4 bls.s loc_3B076 loc_3B074: ; CODE XREF: sub_3AF0C+160j move.l d3,d4 loc_3B076: ; CODE XREF: sub_3AF0C+166j sub.w d4,d3 move.w d3,(word_FFFF9862).w tst.w d3 bne.s loc_3B08A move.b #1,(byte_FFFF986D).w clr.w d0 bra.s loc_3B098 ; --------------------------------------------------------------------------- loc_3B08A: ; CODE XREF: sub_3AF0C+172j muls.w d3,d0 bpl.s loc_3B094 addi.l #$FFF,d0 loc_3B094: ; CODE XREF: sub_3AF0C+180j asr.l #8,d0 asr.l #4,d0 loc_3B098: ; CODE XREF: sub_3AF0C+12Ej ; sub_3AF0C+17Cj tst.b d1 beq.s loc_3B0AE tst.b (byte_FFFF989C).w bne.s loc_3B0BC clr.w (word_FFFF983C).w move.b #1,(byte_FFFF986F).w bra.s loc_3B0BC ; --------------------------------------------------------------------------- loc_3B0AE: ; CODE XREF: sub_3AF0C+18Ej tst.b (byte_FFFF989C).w beq.s loc_3B0BC clr.b (byte_FFFF986F).w clr.w (word_FFFF9866).w loc_3B0BC: ; CODE XREF: sub_3AF0C+194j ; sub_3AF0C+1A0j ... tst.b (byte_FFFF986F).w bne.s loc_3B112 move.w (word_FFFF9866).w,d4 cmp.w (SPARK_ADVANCE_KE_CAT_LIGHTOFF_REENABLE_REFS).l,d4 ; Number of ref pulses over which lightoff retard is ramped back in after disable from vacuum or lauch spark. ; CARDINAL bne.s loc_3B0DA move.w d0,(word_FFFF983C).w move.b #1,(byte_FFFF986F).w bra.s loc_3B120 ; --------------------------------------------------------------------------- loc_3B0DA: ; CODE XREF: sub_3AF0C+1C0j clr.l d3 move.w d4,d3 asl.l #8,d3 asl.l #4,d3 divu.w (SPARK_ADVANCE_KE_CAT_LIGHTOFF_REENABLE_REFS).l,d3 ; Number of ref pulses over which lightoff retard is ramped back in after disable from vacuum or lauch spark. ; CARDINAL bvs.s loc_3B0F0 cmpi.w #$1000,d3 bls.s loc_3B0F4 loc_3B0F0: ; CODE XREF: sub_3AF0C+1DCj move.w #$1000,d3 loc_3B0F4: ; CODE XREF: sub_3AF0C+1E2j move.w d3,(word_FFFF9864).w muls.w d3,d0 bpl.s loc_3B102 addi.l #$FFF,d0 loc_3B102: ; CODE XREF: sub_3AF0C+1EEj asr.l #8,d0 asr.l #4,d0 move.w d0,(word_FFFF983C).w addq.w #1,d4 move.w d4,(word_FFFF9866).w bra.s loc_3B120 ; --------------------------------------------------------------------------- loc_3B112: ; CODE XREF: sub_3AF0C+1B4j tst.b d1 bne.s loc_3B11C move.w d0,(word_FFFF983C).w bra.s loc_3B120 ; --------------------------------------------------------------------------- loc_3B11C: ; CODE XREF: sub_3AF0C+208j clr.w (word_FFFF983C).w loc_3B120: ; CODE XREF: sub_3AF0C+1CCj ; sub_3AF0C+204j ... move.b d1,(byte_FFFF989C).w loc_3B124: ; CODE XREF: sub_3AF0C+8j movem.l (sp)+,d0-d2/d6-a1 rts ; End of function sub_3AF0C ; =============== S U B R O U T I N E ======================================= sub_3B12A: ; CODE XREF: sub_3B75Cp move.w (EngineRPM_PID_000C___).w,d3 move.w (word_FFFFAEBC).w,d4 tst.b (SPARK_ADVANCE_KE_RDSC_IS_ENABLED).l ; This defines if RPM derivative spark control is enabled. ; BOOLEAN beq.s loc_3B1A0 move.w (CoolantTemperatureOrDefault).w,d5 cmp.w (SPARK_ADVANCE_KE_RDSC_COOLANT).l,d5 ; Coolant must be greater than this to enable RDSC. ; Deg C blt.s loc_3B1A0 clr.l d5 move.w (SPARK_ADVANCE_KE_RDSC_RUN_TIME).l,d5 ; RDSC is not allowed if engine has been running less than this time. ; Seconds cmp.l (EngineRunTime).w,d5 bhi.s loc_3B1A0 move.l (SPARK_ADVANCE_KE_RDSC_FAULTS_THAT_DISABLE).l,d5 ; This identifies the diagnostic fault groups which will disable RDSC control. ; BOOLEAN and.l (byte_FFFF8252).w,d5 bne.s loc_3B1A0 cmp.w (Constant16_B5931___Min_RPM_threshold_for_engine_speed_spark_damping).l,d3 bcs.s loc_3B1A0 cmp.w (SPARK_ADVANCE_KV_RDSC_RPM_RANGE).l,d3 ; If the engine speed is outside this range, disable RDSC. ; RPM bhi.s loc_3B1A0 cmp.w (Constant16_B5930___Min_vehicle_speed_threshold_for_engine_speed_spark_damping).l,d4 bcs.s loc_3B1A0 cmp.w (SPARK_ADVANCE_KV_RDSC_MPH_RANGE).l,d4 ; If the vehicle speed is outside this range, disable RDSC. ; MPH bhi.s loc_3B1A0 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (SPARK_ADVANCE_KE_RDSC_COOLANT_HIGH_TEMP).l,d3 ; Coolant must be less than this to enable RDSC. ; Deg C bgt.s loc_3B1A0 move.w (word_FFFF9400).w,d3 cmp.w (SPARK_ADVANCE_KE_RDSC_TORQUE_CONTROL_SPARK).l,d3 ; If torque control spark is greater than this value, then disable RDSC. ; Degrees bgt.s loc_3B1A0 bset #6,(byte_FFFF98D1).w bra.s locret_3B1A6 ; --------------------------------------------------------------------------- loc_3B1A0: ; CODE XREF: sub_3B12A+Ej ; sub_3B12A+1Aj ... bclr #6,(byte_FFFF98D1).w locret_3B1A6: ; CODE XREF: sub_3B12A+74j rts ; End of function sub_3B12A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3B1A8: ; CODE XREF: sub_3B75C:loc_3B778p var_2 = -2 link a6,#-2 movem.l d0-d2/a0,-(sp) movea.l #unk_FF98C6,a0 jsr sub_276F4 movea.l #unk_FF98C8,a0 jsr sub_276F4 movea.l #unk_FF985C,a0 jsr sub_276F4 btst #6,(byte_FFFF98D1).w bne.s loc_3B1E4 loc_3B1DC: ; CODE XREF: sub_3B1A8+174j clr.b (byte_FFFF9852).w bra.w loc_3B320 ; --------------------------------------------------------------------------- loc_3B1E4: ; CODE XREF: sub_3B1A8+32j move.w (word_FFFFAB66).w,d2 move.l d2,d1 move.w (word_FFFFAB5A).w,d0 movea.w d0,a2 sub.w a2,d1 move.w d1,(word_FFFF98BA).w movea.w #4,a2 move.b (byte_FFFF9852).w,d3 bne.s loc_3B208 move.w (SPARK_ADVANCE_KV_RDSC_STEADY_STATE_TPS).l,d4 ; If TPS is less than this steady state RDSC is triggered. ; Percent bra.s loc_3B20E ; --------------------------------------------------------------------------- loc_3B208: ; CODE XREF: sub_3B1A8+56j move.w (Constant16_TPS_threshold_for_steady_state__spark_damping_active).l,d4 loc_3B20E: ; CODE XREF: sub_3B1A8+5Ej cmp.w (SPARK_ADVANCE_KE_RDSC_TIPIN_TPS).l,d0 ; 50 mS old throttle position must have been less than this to trigger RDSC on tip-in. ; Percent bcc.s loc_3B21E cmp.w (SPARK_ADVANCE_KE_RDSC_TIPIN_DELTA_TPS).l,d1 ; Delta throttle position must be greater than this to trigger RDSC on a tip-in. ; Percent bgt.s loc_3B230 loc_3B21E: ; CODE XREF: sub_3B1A8+6Cj cmp.w (SPARK_ADVANCE_KE_RDSC_TIPOUT_TPS).l,d0 ; 50 mS old throttle position must have been greater than this to trigger RDSC on tip-out. ; Percent bls.s loc_3B260 neg.w d1 cmp.w (SPARK_ADVANCE_KE_RDSC_TIPOUT_DELTA_TPS).l,d1 ; Delta throttle position must be greater than this to trigger RDSC on a tip-out. ; Percent ble.s loc_3B260 loc_3B230: ; CODE XREF: sub_3B1A8+74j move.w (word_FFFF98C8).w,var_2(a6) move.w (GlobalClock).w,d5 sub.w var_2(a6),d5 cmpi.w #$A,d5 bcs.s loc_3B260 move.b #1,(byte_FFFF9852).w move.w (GlobalClock).w,(word_FFFF98C8).w move.w (GlobalClock).w,d3 addi.w #$320,d3 move.w d3,(word_FFFF98C6).w bra.w loc_3B320 ; --------------------------------------------------------------------------- loc_3B260: ; CODE XREF: sub_3B1A8+7Cj ; sub_3B1A8+86j ... tst.b d3 bne.s loc_3B284 cmp.w d4,d2 bcc.s loc_3B284 move.b #2,(byte_FFFF9852).w move.w (GlobalClock).w,(word_FFFF98C6).w move.w (GlobalClock).w,d3 addi.w #$320,d3 move.w d3,(word_FFFF98C8).w bra.w loc_3B320 ; --------------------------------------------------------------------------- loc_3B284: ; CODE XREF: sub_3B1A8+BAj ; sub_3B1A8+BEj move.w (word_FFFF98C8).w,var_2(a6) move.w (GlobalClock).w,d5 sub.w var_2(a6),d5 cmp.w (SPARK_ADVANCE_KE_RDSC_TIP_TIME).l,d5 ; This is the time RDSC is active once tirggered via a tip-in or tip-out. ; Seconds bcc.s loc_3B2A2 move.b #3,(byte_FFFF9852).w bra.s loc_3B320 ; --------------------------------------------------------------------------- loc_3B2A2: ; CODE XREF: sub_3B1A8+F0j moveq #4,d5 cmp.b d3,d5 bne.s loc_3B2C6 cmp.w d4,d2 bcs.s loc_3B2C6 move.b #6,(byte_FFFF9852).w move.w (GlobalClock).w,d3 addi.w #$320,d3 move.w d3,(word_FFFF98C6).w loc_3B2BE: ; CODE XREF: sub_3B1A8+144j ; sub_3B1A8+152j move.w (GlobalClock).w,(word_FFFF985C).w bra.s loc_3B320 ; --------------------------------------------------------------------------- loc_3B2C6: ; CODE XREF: sub_3B1A8+FEj ; sub_3B1A8+102j move.w (word_FFFF98C6).w,var_2(a6) move.w (GlobalClock).w,d4 sub.w var_2(a6),d4 cmp.w (SPARK_ADVANCE_KE_RDSC_STEADY_STATE_TIME).l,d4 ; This is the time RDSC is active once steady state triggered. ; Seconds bcc.s loc_3B2E2 move.b d5,(byte_FFFF9852).w bra.s loc_3B320 ; --------------------------------------------------------------------------- loc_3B2E2: ; CODE XREF: sub_3B1A8+132j cmp.b d3,d5 bne.s loc_3B2EE move.b #6,(byte_FFFF9852).w bra.s loc_3B2BE ; --------------------------------------------------------------------------- loc_3B2EE: ; CODE XREF: sub_3B1A8+13Cj cmpi.b #3,d3 bne.s loc_3B2FC move.b #5,(byte_FFFF9852).w bra.s loc_3B2BE ; --------------------------------------------------------------------------- loc_3B2FC: ; CODE XREF: sub_3B1A8+14Aj moveq #5,d4 cmp.b d3,d4 beq.s loc_3B308 moveq #6,d0 cmp.b d3,d0 bne.s loc_3B320 loc_3B308: ; CODE XREF: sub_3B1A8+158j move.w (word_FFFF985C).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (SPARK_ADVANCE_KE_RDSC_BLENDOUT_TIME).l,d3 ; This is the time after RDSC is active to blend to 0 degrees. ; Seconds bcc.w loc_3B1DC loc_3B320: ; CODE XREF: sub_3B1A8+38j ; sub_3B1A8+B4j ... move.b (byte_FFFF9852).w,d3 cmpi.b #5,d3 beq.s loc_3B330 cmpi.b #6,d3 bne.s loc_3B37E loc_3B330: ; CODE XREF: sub_3B1A8+180j move.w (word_FFFF985C).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 clr.l d5 move.w d3,d5 clr.l d3 move.w (SPARK_ADVANCE_KE_RDSC_BLENDOUT_TIME).l,d3 ; This is the time after RDSC is active to blend to 0 degrees. ; Seconds sub.l d5,d3 asl.l #8,d3 asl.l #4,d3 clr.l d5 move.w (SPARK_ADVANCE_KE_RDSC_BLENDOUT_TIME).l,d5 ; This is the time after RDSC is active to blend to 0 degrees. ; Seconds divs.l d5,d3 bvs.s loc_3B370 tst.l d3 blt.s loc_3B376 cmpi.l #$FFFF,d3 bhi.s loc_3B370 cmpi.w #$1000,d3 bls.s loc_3B378 loc_3B370: ; CODE XREF: sub_3B1A8+1B4j ; sub_3B1A8+1C0j move.w #$1000,d3 bra.s loc_3B378 ; --------------------------------------------------------------------------- loc_3B376: ; CODE XREF: sub_3B1A8+1B8j clr.w d3 loc_3B378: ; CODE XREF: sub_3B1A8+1C6j ; sub_3B1A8+1CCj move.w d3,(word_FFFF985A).w bra.s loc_3B384 ; --------------------------------------------------------------------------- loc_3B37E: ; CODE XREF: sub_3B1A8+186j move.w #$1000,(word_FFFF985A).w loc_3B384: ; CODE XREF: sub_3B1A8+1D4j movem.l (sp)+,d0-d2/a0 unlk a6 rts ; End of function sub_3B1A8 ; =============== S U B R O U T I N E ======================================= sub_3B38C: ; CODE XREF: OS1:0003A8CEp ; OS1:loc_3A92Ap move.w (word_FFFFAB66).w,d3 tst.b (byte_FFFF984E).w bne.s loc_3B3BE move.w (SPARK_ADVANCE_KE_CT_TPS_THRESHOLD).l,d4 ; This calibration establishes the threshold for closed throttle base spark table lookups. ; Percent add.w (SPARK_ADVANCE_KE_CT_TPS_HYSTERESIS).l,d4 ; This calibration establishes closed throttle hysteresis for the base spark table lookups. ; Percent cmp.w d3,d4 bcs.s loc_3B3D2 move.w (SPARK_ADVANCE_KE_CT_VEH_SPD_THRESHOLD).l,d3 ; This calibration establishes closed throttle vehicle speed threshold for the base spark table lookups. ; MPH add.w (SPARK_ADVANCE_KE_CT_VEH_SPD_HYSTERESIS).l,d3 ; This calibration establishes closed throttle vehicle speed hysteresis for the base spark table lookups. ; MPH cmp.w (word_FFFFAEBC).w,d3 bcs.s loc_3B3D2 loc_3B3B8: ; CODE XREF: sub_3B38C+44j clr.b (byte_FFFF984E).w bra.s locret_3B3D8 ; --------------------------------------------------------------------------- loc_3B3BE: ; CODE XREF: sub_3B38C+8j cmp.w (SPARK_ADVANCE_KE_CT_TPS_THRESHOLD).l,d3 ; This calibration establishes the threshold for closed throttle base spark table lookups. ; Percent bcc.s loc_3B3D2 move.w (word_FFFFAEBC).w,d3 cmp.w (SPARK_ADVANCE_KE_CT_VEH_SPD_THRESHOLD).l,d3 ; This calibration establishes closed throttle vehicle speed threshold for the base spark table lookups. ; MPH bcs.s loc_3B3B8 loc_3B3D2: ; CODE XREF: sub_3B38C+18j ; sub_3B38C+2Aj ... move.b #1,(byte_FFFF984E).w locret_3B3D8: ; CODE XREF: sub_3B38C+30j rts ; End of function sub_3B38C ; =============== S U B R O U T I N E ======================================= sub_3B3DA: ; CODE XREF: OS1:0003AD28p ; OS1:0003AE3Cp move.l d2,-(sp) move.w (word_FFFF9400).w,d3 move.w (AnotherRpmValue).w,d2 movea.l #SPARK_ADVANCE_KV_LIMIT_MAX_RETARD,a2 ; Maximum spark retard limit allowed. ; Degrees tbls.w (a2),d2 tst.b (byte_FFFFB37A).w beq.s loc_3B436 move.w (SPARK_ADVANCE_KE_LIMIT_MAX_ADVANCE).l,d4 ; The maximum allowable spark advance. ; Degrees add.w (word_FFFF9844).w,d4 bvc.s loc_3B40C bpl.s loc_3B408 move.w #$7FFF,d4 bra.s loc_3B40C ; --------------------------------------------------------------------------- loc_3B408: ; CODE XREF: sub_3B3DA+26j move.w #$8000,d4 loc_3B40C: ; CODE XREF: sub_3B3DA+24j ; sub_3B3DA+2Cj cmpi.w #$AAB,d4 ble.s loc_3B416 move.w #$AAB,d4 loc_3B416: ; CODE XREF: sub_3B3DA+36j move.w (SPARK_ADVANCE_KE_HVS_MAX_RETARD).l,d5 ; Maximum spark retard permitted by the HVS. ; Degrees add.w (word_FFFF9844).w,d5 bvc.s loc_3B42E bpl.s loc_3B42A move.w #$7FFF,d5 bra.s loc_3B42E ; --------------------------------------------------------------------------- loc_3B42A: ; CODE XREF: sub_3B3DA+48j move.w #$8000,d5 loc_3B42E: ; CODE XREF: sub_3B3DA+46j ; sub_3B3DA+4Ej cmp.w d5,d2 bge.s loc_3B43C move.w d5,d2 bra.s loc_3B43C ; --------------------------------------------------------------------------- loc_3B436: ; CODE XREF: sub_3B3DA+18j move.w (SPARK_ADVANCE_KE_LIMIT_MAX_ADVANCE).l,d4 ; The maximum allowable spark advance. ; Degrees loc_3B43C: ; CODE XREF: sub_3B3DA+56j ; sub_3B3DA+5Aj cmp.w d4,d0 ble.s loc_3B442 move.l d4,d0 loc_3B442: ; CODE XREF: sub_3B3DA+64j cmp.w d2,d0 bge.s loc_3B468 add.w d2,d3 bvs.s loc_3B44E sub.w d0,d3 bvc.s loc_3B45A loc_3B44E: ; CODE XREF: sub_3B3DA+6Ej bpl.s loc_3B456 move.w #$7FFF,d3 bra.s loc_3B45A ; --------------------------------------------------------------------------- loc_3B456: ; CODE XREF: sub_3B3DA:loc_3B44Ej move.w #$8000,d3 loc_3B45A: ; CODE XREF: sub_3B3DA+72j ; sub_3B3DA+7Aj move.w d3,(word_FFFF9884).w move.l d2,d0 move.b #1,(byte_FFFF9853).w bra.s loc_3B470 ; --------------------------------------------------------------------------- loc_3B468: ; CODE XREF: sub_3B3DA+6Aj move.w d3,(word_FFFF9884).w clr.b (byte_FFFF9853).w loc_3B470: ; CODE XREF: sub_3B3DA+8Cj move.l (sp)+,d2 rts ; End of function sub_3B3DA ; =============== S U B R O U T I N E ======================================= sub_3B474: ; CODE XREF: sub_39BFE:loc_39D1Cp var_675E = -$675E move.w d1,d3 lsr.w #1,d3 moveq #$B,d4 cmp.b d3,d4 bhi.s loc_3B480 moveq #$A,d3 loc_3B480: ; CODE XREF: sub_3B474+8j add.b (byte_FFFF9878).w,d3 cmpi.b #$A,d3 bls.s loc_3B48C sub.b d4,d3 loc_3B48C: ; CODE XREF: sub_3B474+14j andi.w #$FF,d3 move.w d0,var_675E(d3.w*2) rts ; End of function sub_3B474 ; =============== S U B R O U T I N E ======================================= sub_3B498: ; CODE XREF: OS1:00028A80p move.l a0,-(sp) andi.w #$FF,d0 movea.l off_89C0C(d0.w*4),a2 jmp (a2) ; End of function sub_3B498 ; --------------------------------------------------------------------------- loc_3B4A8: ; DATA XREF: OS4:off_89C0Co clr.w (word_FFFF9834).w clr.w (word_FFFF9838).w clr.w (word_FFFF9836).w clr.b (byte_FFFF984F).w clr.w (word_FFFF9840).w clr.w (word_FFFF9888).w clr.b (byte_FFFF98CC).w clr.b (byte_FFFF98CD).w clr.b (byte_FFFF9851).w clr.b (byte_FFFF98CE).w clr.b (byte_FFFF98CF).w clr.b (byte_FFFF987E).w clr.b (byte_FFFF9854).w clr.w (word_FFFF9880).w clr.w (word_FFFF9884).w clr.w (word_FFFF9842).w clr.w (word_FFFF9898).w clr.w (word_FFFF988A).w clr.w (word_FFFF9890).w clr.b (byte_FFFF9853).w jsr sub_3A30C movea.w (word_FFFF9876).w,a0 move.l a0,d0 jsr sub_3BAB2 move.w a0,(word_FFFF9848).w move.w a0,(word_FFFF9896).w bra.w loc_3B62C ; --------------------------------------------------------------------------- loc_3B516: ; DATA XREF: OS4:00089C10o bra.w loc_3B6CC ; --------------------------------------------------------------------------- loc_3B51A: ; DATA XREF: OS4:00089C14o move.w #$1000,(word_FFFF985A).w jsr sub_3B78C jsr sub_3A30C movea.w (word_FFFF9876).w,a0 move.l a0,d0 jsr sub_3BAB2 move.w a0,(word_FFFF9848).w move.w a0,(word_FFFF9896).w move.w (GlobalClock).w,d3 movea.w #$320,a2 add.w a2,d3 move.w d3,(word_FFFF985C).w move.w (GlobalClock).w,d3 add.w a2,d3 move.w d3,(word_FFFF98C6).w move.w (GlobalClock).w,d3 add.w a2,d3 move.w d3,(word_FFFF98C8).w moveq #1,d3 move.b d3,(byte_FFFF986F).w move.b d3,(byte_FFFF9850).w bra.w loc_3B652 ; --------------------------------------------------------------------------- loc_3B570: ; DATA XREF: OS4:00089C18o ; OS4:00089C24o clr.w (word_FFFF9856).w clr.w (word_FFFF9834).w clr.w (word_FFFF9836).w clr.w (word_FFFF9838).w move.w #$1000,(word_FFFF985A).w clr.b (byte_FFFF984F).w clr.w (word_FFFF9840).w clr.w (word_FFFF9888).w clr.b (byte_FFFF98CC).w clr.b (byte_FFFF98CD).w clr.b (byte_FFFF9851).w clr.b (byte_FFFF98CE).w clr.b (byte_FFFF98CF).w clr.b (byte_FFFF987E).w clr.b (byte_FFFF9854).w clr.w (word_FFFF9880).w clr.w (word_FFFF9884).w clr.w (word_FFFF9842).w clr.w (word_FFFF9898).w clr.w (word_FFFF988A).w clr.w (word_FFFF9890).w bclr #6,(byte_FFFF98D1).w clr.b (byte_FFFF9852).w clr.w (word_FFFF98BC).w clr.w (word_FFFF98BE).w clr.b (byte_FFFF9853).w clr.w (word_FFFF98C4).w jsr sub_3A30C movea.w (word_FFFF9876).w,a0 move.l a0,d0 jsr sub_3BAB2 move.w a0,(word_FFFF9848).w move.w a0,(word_FFFF9896).w lea (unk_FFFF98A2).w,a2 moveq #$A,d3 loc_3B600: ; CODE XREF: OS1:0003B602j clr.w (a2)+ dbf d3,loc_3B600 clr.b (byte_FFFF9878).w move.w (GlobalClock).w,d3 movea.w #$320,a2 add.w a2,d3 move.w d3,(word_FFFF985C).w move.w (GlobalClock).w,d3 add.w a2,d3 move.w d3,(word_FFFF98C6).w move.w (GlobalClock).w,d3 add.w a2,d3 move.w d3,(word_FFFF98C8).w loc_3B62C: ; CODE XREF: OS1:0003B512j clr.w (word_FFFF983C).w clr.b (byte_FFFF989C).w moveq #1,d3 move.b d3,(byte_FFFF986F).w clr.b (byte_FFFF986E).w clr.b (byte_FFFF986C).w clr.b (byte_FFFF98CB).w move.b d3,(byte_FFFF9850).w clr.w (word_FFFF9844).w clr.b (byte_FFFF98CA).w loc_3B652: ; CODE XREF: OS1:0003B56Cj clr.w (word_FFFF989E).w bra.w loc_3B6E6 ; --------------------------------------------------------------------------- loc_3B65A: ; DATA XREF: OS4:00089C1Co clr.b (byte_FFFF9853).w bra.w loc_3B6E6 ; --------------------------------------------------------------------------- loc_3B662: ; DATA XREF: OS4:00089C28o ; OS4:00089C2Co clr.w (word_FFFF9834).w clr.w (word_FFFF9838).w clr.w (word_FFFF9836).w clr.w (word_FFFF9888).w clr.w (word_FFFF9842).w clr.w (word_FFFF9898).w clr.w (word_FFFF98BE).w clr.b (byte_FFFF9853).w clr.w (word_FFFF98C4).w clr.w (word_FFFF983C).w clr.b (byte_FFFF989C).w clr.b (byte_FFFF986D).w move.b #1,(byte_FFFF986F).w clr.b (byte_FFFF986E).w clr.b (byte_FFFF986C).w move.w (word_FFFFADB6).w,d3 move.w d3,d4 movea.w #$400,a3 add.w a3,d4 movea.l #SPARK_ADVANCE_KV_CAT_LIGHTOFF_HOLD_TIME,a2 ; The amount of time catalyst lightoff retard is active. ; Seconds tblu.w (a2),d4 move.w d4,(word_FFFF9868).w add.w a3,d3 movea.l #SPARK_ADVANCE_KV_CAT_LIGHTOFF_DECAY_TIME,a2 ; The time over which catalyst lightoff retard is decayed to 0 after the hold time is satisfied. ; Seconds tblu.w (a2),d3 move.w d3,(word_FFFF986A).w bra.s loc_3B6E6 ; --------------------------------------------------------------------------- loc_3B6CC: ; CODE XREF: OS1:loc_3B516j ; DATA XREF: OS4:00089C30o clr.b (byte_FFFF9853).w clr.w (word_FFFF983C).w clr.b (byte_FFFF989C).w move.b #1,(byte_FFFF986F).w clr.b (byte_FFFF986E).w clr.b (byte_FFFF986C).w loc_3B6E6: ; CODE XREF: OS1:0003B656j ; OS1:0003B65Ej ... clr.w (word_FFFF983A).w clr.w (word_FFFF9846).w moveq #1,d3 move.b d3,(byte_FFFF98D0).w clr.w (word_FFFF984A).w move.b d3,(byte_FFFF98D3).w clr.b (byte_FFFF98D4).w move.b d3,(byte_FFFF98D7).w clr.b (byte_FFFF98D8).w move.b d3,(byte_FFFF984E).w movea.l (sp)+,a0 rts ; =============== S U B R O U T I N E ======================================= sub_3B710: ; CODE XREF: DoLoopE+50p move.w (word_FFFFA3C2).w,d3 muls.w #$60,d3 ; '`' divs.w #5,d3 cmpi.w #$DFF,d3 bgt.s loc_3B72A cmpi.w #$FC00,d3 blt.s loc_3B730 bra.s loc_3B734 ; --------------------------------------------------------------------------- loc_3B72A: ; CODE XREF: sub_3B710+10j move.w #$DFF,d3 bra.s loc_3B734 ; --------------------------------------------------------------------------- loc_3B730: ; CODE XREF: sub_3B710+16j move.w #$FC00,d3 loc_3B734: ; CODE XREF: sub_3B710+18j ; sub_3B710+1Ej move.l d3,d4 movea.w #$400,a3 add.w a3,d4 movea.l #SPARK_ADVANCE_KV_SHIFT_PN_TO_DR_INHIBIT,a2 ; Inhibits the park to drive spark transition until this time is expired. ; Seconds tblu.w (a2),d4 move.w d4,(word_FFFF98C2).w add.w a3,d3 movea.l #SPARK_ADVANCE_KV_SHIFT_DR_TO_PN_INHIBIT,a2 ; Inhibits the drive to park spark transition until this time is expired. ; Seconds tblu.w (a2),d3 move.w d3,(word_FFFF98C0).w rts ; End of function sub_3B710 ; =============== S U B R O U T I N E ======================================= sub_3B75C: ; CODE XREF: DoLoopC+146p jsr sub_3B12A move.b (byte_FFFF9878).w,d3 cmpi.b #$A,d3 bne.s loc_3B772 clr.b (byte_FFFF9878).w bra.s loc_3B778 ; --------------------------------------------------------------------------- loc_3B772: ; CODE XREF: sub_3B75C+Ej addq.b #1,d3 move.b d3,(byte_FFFF9878).w loc_3B778: ; CODE XREF: sub_3B75C+14j jsr sub_3B1A8 jsr sub_39BFE jsr sub_39E12 rts ; End of function sub_3B75C ; =============== S U B R O U T I N E ======================================= sub_3B78C: ; CODE XREF: DoLoopG+48p OS1:0003B520p move.w (CoolantTemperatureOrDefault).w,d3 move.l d3,d4 movea.w #$400,a3 add.w a3,d4 add.w d4,d4 tblu.w (SPARK_ADVANCE_KV_IAT_SPARK_COOLANT_MODIFIER).l,d4 ; Induction air temperature spark modifier based on coolant temperature. ; Multiplier_0_to_1 move.w d4,(word_FFFF988C).w move.l d3,d4 add.w a3,d4 bpl.s loc_3B7AE addq.w #1,d4 loc_3B7AE: ; CODE XREF: sub_3B78C+1Ej asr.w #1,d4 tblu.w (SPARK_ADVANCE_KV_IDLE_FLARE_COOLANT_MULT).l,d4 ; Modifies the flare control idle spark as a function of coolant temperature. ; Multiplier_0_to_1 move.w d4,(word_FFFF988E).w move.l d3,d4 add.w a3,d4 tblu.w (SPARK_ADVANCE_KV_APPLIED_OCTANE_SCALER_MULT).l,d4 ; Modifies the calculated octane scaler to establish authority based on temperature. ; Multiplier_0_to_1 move.w d4,(OctaneScalerCoolantMultiplier).w move.l d3,d4 add.w a3,d4 movea.l #SPARK_ADVANCE_KV_CRANK_AFTERSTART_TIME,a2 ; Engine run time below which crank to run blend is controlled by either Kx_Afterstart_Blend_Step or Kx_Spark_Blend_Step. ; Seconds tblu.w (a2),d4 move.w d4,(word_FFFF9872).w add.w a3,d3 movea.l #SPARK_ADVANCE_KV_CRANK_AFTERSTART_STEP,a2 tbls.w (a2),d3 move.w d3,(word_FFFF9874).w rts ; End of function sub_3B78C ; =============== S U B R O U T I N E ======================================= sub_3B7F0: ; CODE XREF: DoLoopC:loc_2A3A4p movem.l d0-d1,-(sp) tst.b (byte_FFFFB37A).w beq.s loc_3B824 tst.b (byte_FFFFB557).w bne.s loc_3B824 move.w (word_FFFFB320).w,d3 addq.w #2,d3 bcc.s loc_3B80C move.w #$FFFF,d3 loc_3B80C: ; CODE XREF: sub_3B7F0+16j move.w d3,(word_FFFFB320).w cmp.w (SPARK_DWELL_KE_HVS_MAX_CRANK_DWELL).l,d3 ; EST will be forced off after this amount of time to prevent coil damage. ; Seconds bls.s loc_3B824 clr.b d1 move.w #$D8,d0 ; '?' jsr (sub_FC0).l loc_3B824: ; CODE XREF: sub_3B7F0+8j sub_3B7F0+Ej ... movem.l (sp)+,d0-d1 rts ; End of function sub_3B7F0 ; =============== S U B R O U T I N E ======================================= sub_3B82A: ; CODE XREF: sub_299AC+82p ; DoLoopA+15Ep ... movem.l d0-d2/d6-a0,-(sp) tst.b (byte_FFFFBEF1).w bne.s loc_3B83E move.b (byte_FFFFA59C).w,d3 btst #3,d3 beq.s loc_3B84E loc_3B83E: ; CODE XREF: sub_3B82A+8j clr.w (word_FFFFB31A).w clr.w (word_FFFFB31C).w clr.w (word_FFFFB31E).w bra.w loc_3BA18 ; --------------------------------------------------------------------------- loc_3B84E: ; CODE XREF: sub_3B82A+12j move.w (word_FFFFB4A2).w,d1 move.w (AnotherRpmValue).w,d0 move.w #$1A00,d7 cmp.w d1,d7 bhi.s loc_3B860 move.l d7,d1 loc_3B860: ; CODE XREF: sub_3B82A+32j moveq #$15,d2 movea.l #SPARK_DWELL_KA_MAIN_DWELL_TIME,a0 ; This determines the base dwell time. ; Milliseconds jsr sub_2696E move.w d0,d6 tst.b (byte_FFFFB37A).w beq.w loc_3B8FC move.w (word_FFFFB322).w,d3 beq.s loc_3B888 mulu.w #7,d3 lsr.l #3,d3 move.w d3,(word_FFFFB322).w loc_3B888: ; CODE XREF: sub_3B82A+52j btst #5,(byte_FFFFAA92).w beq.s loc_3B8E8 move.w (word_FFFFE1CC).w,d1 move.w (word_FFFFB292).w,d2 tst.w (word_FFFFB326).w beq.s loc_3B8DE move.l d1,d3 sub.w (word_FFFFB326).w,d3 bcc.s loc_3B8A8 clr.w d3 loc_3B8A8: ; CODE XREF: sub_3B82A+7Aj add.w d3,d3 bcc.s loc_3B8B0 move.w #$FFFF,d3 loc_3B8B0: ; CODE XREF: sub_3B82A+80j tst.b (byte_FFFFB557).w beq.s loc_3B8DE move.l d1,d0 lsr.w #3,d0 move.l d2,d4 sub.w (word_FFFFB324).w,d4 bcc.s loc_3B8C4 clr.w d4 loc_3B8C4: ; CODE XREF: sub_3B82A+96j cmpi.w #$CD,d4 ; '?' bhi.s loc_3B8DA cmp.w (word_FFFFB322).w,d3 bls.s loc_3B8DE cmp.w d0,d3 bcc.s loc_3B8DA move.w d3,(word_FFFFB322).w bra.s loc_3B8DE ; --------------------------------------------------------------------------- loc_3B8DA: ; CODE XREF: sub_3B82A+9Ej ; sub_3B82A+A8j move.w d0,(word_FFFFB322).w loc_3B8DE: ; CODE XREF: sub_3B82A+72j ; sub_3B82A+8Aj ... move.w d1,(word_FFFFB326).w move.w d2,(word_FFFFB324).w bra.s loc_3B8F2 ; --------------------------------------------------------------------------- loc_3B8E8: ; CODE XREF: sub_3B82A+64j clr.w (word_FFFFB326).w move.w (word_FFFFB292).w,(word_FFFFB324).w loc_3B8F2: ; CODE XREF: sub_3B82A+BCj add.w (word_FFFFB322).w,d6 bcc.s loc_3B8FC move.w #$FFFF,d6 loc_3B8FC: ; CODE XREF: sub_3B82A+4Aj ; sub_3B82A+CCj move.w (word_FFFFB4A2).w,d0 move.w (word_FFFFAEE4).w,d1 cmp.w d0,d7 bhi.s loc_3B90A move.l d7,d0 loc_3B90A: ; CODE XREF: sub_3B82A+DCj moveq #$1B,d2 movea.l #SPARK_DWELL_KA_MODIFIER_DWELL_TIME,a0 jsr sub_2696E move.w d0,d3 move.l d6,d1 mulu.w d3,d1 move.w #$1000,d2 divu.w d2,d1 bvc.s loc_3B92A move.w #$FFFF,d1 loc_3B92A: ; CODE XREF: sub_3B82A+FAj tst.b (byte_FFFFB37A).w bne.s loc_3B946 cmpi.b #1,(ThrottleControlMode2?).w bne.s loc_3B946 mulu.w (SPARK_DWELL_KE_CRANK_BOOST_DWELL).l,d1 ; Cold start crank mode modifier to the core dwell. ; Multiplier_0_to_4 divu.w d2,d1 bvc.s loc_3B946 move.w #$FFFF,d1 loc_3B946: ; CODE XREF: sub_3B82A+104j ; sub_3B82A+10Cj ... moveq #$10,d0 jsr sub_7DF90 tst.w d0 bge.s loc_3B954 neg.w d0 loc_3B954: ; CODE XREF: sub_3B82A+126j cmp.w (SPARK_DWELL_KE_100MS_STEADY_STATE_RPM).l,d0 bcc.s loc_3B974 move.w (ManifoldPressure).w,d3 movea.l #SPARK_DWELL_KV_DWELL_MAP_MODIFIER,a2 ; Modifier applied to the calculated dwell to adjust the value as a function of manifold pressure. ; Mult_0to2_vs_kPa_20to100_Table tblu.w (a2),d3 mulu.w d3,d1 divu.w d2,d1 bvc.s loc_3B974 move.w #$FFFF,d1 loc_3B974: ; CODE XREF: sub_3B82A+130j ; sub_3B82A+144j move.w d1,(word_FFFFB31A).w move.w (AnotherRpmValue).w,d3 movea.l #SPARK_DWELL_KV_MAX_DWELL,a2 ; This determines the max dwell time . ; Mult1p1to1p3_vs_RPM_0to8000_Tbl tblu.b (a2),d3 andi.w #$FF,d3 mulu.w (word_FFFFB31A).w,d3 moveq #$64,d4 ; 'd' divu.w d4,d3 bvc.s loc_3B998 move.w #$FFFF,d3 loc_3B998: ; CODE XREF: sub_3B82A+168j move.w d3,(word_FFFFB31C).w tst.b (byte_FFFFB37A).w bne.s loc_3B9FA move.w (AnotherRpmValue).w,d1 movea.l #SPARK_DWELL_KV_MIN_DWELL,a2 ; This determines the min dwell time . ; Mult0to1p0_vs_RPM_0to8000_Table tblu.b (a2),d1 andi.w #$FF,d1 mulu.w (word_FFFFB31A).w,d1 divu.w d4,d1 cmpi.w #3,(word_FFFFAA8E).w bhi.s loc_3B9D0 move.w (word_FFFFE0C8).w,d3 add.w d3,d3 bcc.s loc_3B9EE move.w #$FFFF,d3 bra.s loc_3B9EE ; --------------------------------------------------------------------------- loc_3B9D0: ; CODE XREF: sub_3B82A+196j btst #5,(byte_FFFFAA92).w beq.s loc_3B9DE move.w (word_FFFFE1CC).w,d3 bra.s loc_3B9E2 ; --------------------------------------------------------------------------- loc_3B9DE: ; CODE XREF: sub_3B82A+1ACj move.w #$7FFF,d3 loc_3B9E2: ; CODE XREF: sub_3B82A+1B2j mulu.w #7,d3 lsr.l #2,d3 sub.w (SPARK_IO_KE_MIN_BURN_TIME).l,d3 ; EST must remain low for at least this amount of time to complete a burn. ; Milliseconds loc_3B9EE: ; CODE XREF: sub_3B82A+19Ej ; sub_3B82A+1A4j cmp.w d3,d1 bls.s loc_3B9F4 move.l d3,d1 loc_3B9F4: ; CODE XREF: sub_3B82A+1C6j move.w d1,(word_FFFFB31E).w bra.s loc_3BA18 ; --------------------------------------------------------------------------- loc_3B9FA: ; CODE XREF: sub_3B82A+176j move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$A000,d3 bcc.s loc_3BA08 lsr.w #3,d3 bra.s loc_3BA0C ; --------------------------------------------------------------------------- loc_3BA08: ; CODE XREF: sub_3B82A+1D8j move.w #$1400,d3 loc_3BA0C: ; CODE XREF: sub_3B82A+1DCj tblu.w (SPARK_DWELL_KV_HVS_MIN_RUN_DWELL).l,d3 ; The minimum dwell required at a given RPM in low-res only ignition systems. ; Millisec_vs_RPM_0to8000_Table move.w d3,(word_FFFFB31E).w loc_3BA18: ; CODE XREF: sub_3B82A+20j ; sub_3B82A+1CEj movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_3B82A ; =============== S U B R O U T I N E ======================================= sub_3BA1E: ; CODE XREF: OS1:loc_3BA98p ; OS1:loc_3BAA8p move.w (SPARK_DWELL_KE_INITIAL_DWELL).l,(word_FFFFB31A).w ; Dwell is initialized to this value at powerup. ; Milliseconds clr.w d3 move.b (SPARK_DWELL_KE_INITIAL_MAX_DWELL).l,d3 ; Initial dwell multiplier to determine max dwell atpowerup. ; Multiplier_1p1_to_1p3 mulu.w (word_FFFFB31A).w,d3 moveq #$64,d4 ; 'd' divu.w d4,d3 bvc.s loc_3BA3C move.w #$FFFF,d3 loc_3BA3C: ; CODE XREF: sub_3BA1E+18j move.w d3,(word_FFFFB31C).w clr.w d3 move.b (SPARK_DWELL_KE_INITIAL_MIN_DWELL).l,d3 ; Initial dwell multiplier to determine min dwell atpowerup. ; Multiplier_0_to_1p0 mulu.w (word_FFFFB31A).w,d3 divu.w d4,d3 move.w d3,(word_FFFFB31E).w cmpi.w #$7FFF,d3 bls.s loc_3BA5C move.w #$7FFF,d3 loc_3BA5C: ; CODE XREF: sub_3BA1E+38j move.w d3,(word_FFFFE0A6).w move.w (word_FFFFB31C).w,d3 cmpi.w #$7FFF,d3 bls.s loc_3BA6E move.w #$7FFF,d3 loc_3BA6E: ; CODE XREF: sub_3BA1E+4Aj move.w d3,(word_FFFFE0A4).w move.w (word_FFFFB31A).w,d3 cmpi.w #$7FFF,d3 bls.s loc_3BA80 move.w #$7FFF,d3 loc_3BA80: ; CODE XREF: sub_3BA1E+5Cj move.w d3,(word_FFFFE09E).w rts ; End of function sub_3BA1E ; =============== S U B R O U T I N E ======================================= sub_3BA86: ; CODE XREF: OS1:00028A78p andi.w #$FF,d0 movea.l off_8A1AC(d0.w*4),a2 jmp (a2) ; End of function sub_3BA86 ; --------------------------------------------------------------------------- loc_3BA94: ; DATA XREF: OS4:off_8A1ACo bra.s loc_3BAA8 ; --------------------------------------------------------------------------- loc_3BA96: ; DATA XREF: OS4:0008A1B0o bra.s locret_3BAB0 ; --------------------------------------------------------------------------- loc_3BA98: ; DATA XREF: OS4:0008A1B4o jsr sub_3BA1E clr.w (word_FFFFB320).w bra.s locret_3BAB0 ; --------------------------------------------------------------------------- loc_3BAA4: ; DATA XREF: OS4:0008A1B8o bra.s loc_3BAA8 ; --------------------------------------------------------------------------- loc_3BAA6: ; DATA XREF: OS4:0008A1BCo bra.s locret_3BAB0 ; --------------------------------------------------------------------------- loc_3BAA8: ; CODE XREF: OS1:loc_3BA94j ; OS1:loc_3BAA4j ; DATA XREF: ... jsr sub_3BA1E loc_3BAAE: ; DATA XREF: OS4:0008A1C8o nop locret_3BAB0: ; CODE XREF: OS1:loc_3BA96j ; OS1:0003BAA2j ... rts ; =============== S U B R O U T I N E ======================================= sub_3BAB2: ; CODE XREF: DoLoopA+1A4p ; OS1:0003B504p ... add.w (SPARK_IO_KE_SENSOR_LAG).l,d0 ; This is the angular lag of the ignition crank sensor data. ; Degrees bvs.s loc_3BACC move.w (AnotherRpmValue).w,d3 movea.l #SPARK_IO_KV_SENSOR_PROPAGATION_LAG,a2 ; This is the angular lag due to the medium resolution signal processing. ; Degrees_vs_RPM_0to8000_Table tbls.w (a2),d3 add.w d3,d0 bvc.s loc_3BAD8 loc_3BACC: ; CODE XREF: sub_3BAB2+6j bpl.s loc_3BAD4 move.w #$7FFF,d0 bra.s loc_3BAD8 ; --------------------------------------------------------------------------- loc_3BAD4: ; CODE XREF: sub_3BAB2:loc_3BACCj move.w #$8000,d0 loc_3BAD8: ; CODE XREF: sub_3BAB2+18j ; sub_3BAB2+20j cmp.w (ENG_CONSTANTS_KE_LOW_RESOLUTION_REFERENCE_ANGL).l,d0 ; Identifies the number of degrees from a low resolution pulse to Top Dead Center of the cylinder. ; Degrees blt.s loc_3BAE4 clr.w d3 bra.s loc_3BAFA ; --------------------------------------------------------------------------- loc_3BAE4: ; CODE XREF: sub_3BAB2+2Cj move.w (ENG_CONSTANTS_KE_LOW_RESOLUTION_REFERENCE_ANGL).l,d3 ; Identifies the number of degrees from a low resolution pulse to Top Dead Center of the cylinder. ; Degrees sub.w d0,d3 bvc.s loc_3BAFA bpl.s loc_3BAF6 move.w #$7FFF,d3 bra.s loc_3BAFA ; --------------------------------------------------------------------------- loc_3BAF6: ; CODE XREF: sub_3BAB2+3Cj move.w #$8000,d3 loc_3BAFA: ; CODE XREF: sub_3BAB2+30j ; sub_3BAB2+3Aj ... tst.b (byte_FFFFB37A).w beq.s loc_3BB44 cmpi.b #6,(ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l ; Number of cylinders for this engine application. ; SHORTCARD bne.s loc_3BB10 move.w #$1555,d4 bra.s loc_3BB14 ; --------------------------------------------------------------------------- loc_3BB10: ; CODE XREF: sub_3BAB2+56j move.w #$1000,d4 loc_3BB14: ; CODE XREF: sub_3BAB2+5Cj move.l d4,d5 ext.l d5 ext.l d3 asl.l #8,d3 asl.l #8,d3 divs.l d5,d3 bvs.s loc_3BB30 tst.l d3 blt.s loc_3BB36 cmpi.l #$FFFF,d3 bls.s loc_3BB38 loc_3BB30: ; CODE XREF: sub_3BAB2+70j move.w #$FFFF,d3 bra.s loc_3BB38 ; --------------------------------------------------------------------------- loc_3BB36: ; CODE XREF: sub_3BAB2+74j clr.w d3 loc_3BB38: ; CODE XREF: sub_3BAB2+7Cj ; sub_3BAB2+82j move.w d3,(word_FFFFE0B8).w move.w #$10,(word_FFFFE2F4).w bra.s locret_3BB64 ; --------------------------------------------------------------------------- loc_3BB44: ; CODE XREF: sub_3BAB2+4Cj ext.l d3 asl.l #8,d3 divs.w #$2AB,d3 cmpi.w #$7FFF,d3 bls.s loc_3BB54 clr.w d3 loc_3BB54: ; CODE XREF: sub_3BAB2+9Ej subi.w #$20,d3 ; ' ' bcc.s loc_3BB5C clr.w d3 loc_3BB5C: ; CODE XREF: sub_3BAB2+A6j move.w d3,(word_FFFFE0B8).w move.w d3,(word_FFFFE0BA).w locret_3BB64: ; CODE XREF: sub_3BAB2+90j rts ; End of function sub_3BAB2 ; =============== S U B R O U T I N E ======================================= sub_3BB66: ; CODE XREF: sub_3C68C+FAp var_629A = -$629A move.l d6,-(sp) move.b d0,d6 move.w d1,d0 clr.l d1 move.b d6,d1 tst.w (KnockRetardFast).w bne.w loc_3BC60 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (SPARK_KNOCK_KE_KNOCK_MAD_RPM_THRESH).l,d3 ; Above this engine speed, threshold Knock_Detector_MAD can be updated. ; RPM bls.w loc_3BC60 move.w (word_FFFFB292).w,d3 cmp.w (SPARK_KNOCK_KE_KNOCK_MAD_MAP_THRESH).l,d3 ; Above this manifold pressure, threshold Knock_Detector_MAD can be updated. ; kPa bls.w loc_3BC60 cmp.w d2,d0 bcc.w loc_3BC60 move.w (word_FFFFB294).w,d3 sub.w (word_FFFF9D82).w,d3 bcc.s loc_3BBA6 neg.w d3 loc_3BBA6: ; CODE XREF: sub_3BB66+3Cj cmp.w (SPARK_KNOCK_KE_DELTA_MAP_ABSOLUTE_MAD_DIS).l,d3 ; If 12p5_ms_Filtered_MAP has changed more than this MAD learning will be disabled ; RPM bcc.w loc_3BC60 move.w (word_FFFF9D4A).w,d3 cmp.w (SPARK_KNOCK_KE_DELTA_TPS_ABSOLUTE_MAD_DIS).l,d3 ; If TPS changes more than this in 200 ms MAD learning will be disabled ; Percent bcc.w loc_3BC60 move.w (word_FFFF9D48).w,d3 cmp.w (SPARK_KNOCK_KE_DELTA_RPM_ABSOLUTE_MAD_DIS).l,d3 ; If RPM changes more than this in 200 ms MAD learning will be disabled ; RPM bcc.w loc_3BC60 move.b #1,(byte_FFFF9D9A).w sub.w d2,d0 bcc.s loc_3BBD8 neg.w d0 loc_3BBD8: ; CODE XREF: sub_3BB66+6Ej andi.l #$FFFF,d0 mulu.l #unk_A6BF8,d3:d0 divu.l #$1729,d3:d0 clr.l d5 move.b d6,d5 move.w (SPARK_KNOCK_KE_MAD_COEFFICIENT_SAMPLES).l,d3 ; Determines the number of samples used in computing Knock_Detector_MAD. ; Counts subq.w #1,d3 andi.l #$FFFF,d3 muls.l dword_FFFF9D6A(d5.w*4),d3 bvc.s loc_3BC1A bmi.s loc_3BC14 move.l #$7FFFFFFF,d3 bra.s loc_3BC1A ; --------------------------------------------------------------------------- loc_3BC14: ; CODE XREF: sub_3BB66+A4j move.l #$80000000,d3 loc_3BC1A: ; CODE XREF: sub_3BB66+A2j ; sub_3BB66+ACj clr.l d5 move.w (SPARK_KNOCK_KE_MAD_COEFFICIENT_SAMPLES).l,d5 ; Determines the number of samples used in computing Knock_Detector_MAD. ; Counts add.l d3,d0 bvc.s loc_3BC2A bmi.s loc_3BC32 bra.s loc_3BC3A ; --------------------------------------------------------------------------- loc_3BC2A: ; CODE XREF: sub_3BB66+BEj divs.l d5,d0 move.l d0,d3 bra.s loc_3BC40 ; --------------------------------------------------------------------------- loc_3BC32: ; CODE XREF: sub_3BB66+C0j move.l #$7FFFFFFF,d3 bra.s loc_3BC40 ; --------------------------------------------------------------------------- loc_3BC3A: ; CODE XREF: sub_3BB66+C2j move.l #$80000000,d3 loc_3BC40: ; CODE XREF: sub_3BB66+CAj ; sub_3BB66+D2j move.l (SPARK_KNOCK_KE_KNOCK_DETECTOR_MAD_MAX).l,d4 ; Maximum allowable knock detector mean absolute deviation (MAD) for any sensor. ; Millivolts cmp.l d4,d3 ble.s loc_3BC4E loc_3BC4A: ; CODE XREF: sub_3BB66+F0j move.l d4,d3 bra.s loc_3BC58 ; --------------------------------------------------------------------------- loc_3BC4E: ; CODE XREF: sub_3BB66+E2j move.l (SPARK_KNOCK_KE_KNOCK_DETECTOR_MAD_MIN).l,d4 ; Minimum allowable knock detector mean absolute deviation (MAD) for any sensor. ; Millivolts cmp.l d4,d3 blt.s loc_3BC4A loc_3BC58: ; CODE XREF: sub_3BB66+E6j move.l d3,4+var_629A(d1.w*4) bra.s loc_3BC64 ; --------------------------------------------------------------------------- loc_3BC60: ; CODE XREF: sub_3BB66+Ej ; sub_3BB66+1Cj ... clr.b (byte_FFFF9D9A).w loc_3BC64: ; CODE XREF: sub_3BB66+F8j move.l (sp)+,d6 rts ; End of function sub_3BB66 ; =============== S U B R O U T I N E ======================================= sub_3BC68: ; CODE XREF: sub_3C68C+2Ap move.b d0,d3 clr.b d0 cmpi.b #8,d3 beq.s locret_3BC7E move.b (SPARK_KNOCK_KE_MUX_PATTERN_CONTROL).l,d4 btst d3,d4 beq.s locret_3BC7E moveq #1,d0 locret_3BC7E: ; CODE XREF: sub_3BC68+8j ; sub_3BC68+12j rts ; End of function sub_3BC68 ; =============== S U B R O U T I N E ======================================= sub_3BC80: ; CODE XREF: sub_3C638+34p var_62D6 = -$62D6 movem.l d0-d2,-(sp) tst.b (byte_FFFF9D99).w beq.w loc_3BDBE tst.b (byte_FFFF9D8E).w bne.w loc_3BDBE move.w (KnockSmoothedNoise).w,d3 move.l d3,d4 tst.b (SPARK_KNOCK_KE_CYLINDER_DETECTION_MODE).l ; Determines for Integrate and Read Modes only if the cylinder detection strategy will be Global or Individual ; Mode bne.s loc_3BCF4 cmp.w (SPARK_KNOCK_KE_ADAPT_BPF_HIGH_AVG_NOISE_THRE).l,d4 ; If the average noise is greater than this value the adaptive gain will be decreased. ; Volts bcs.s loc_3BCCE move.b (byte_FFFF9D8C).w,d3 subq.b #1,d3 bcc.s loc_3BCB4 clr.b d3 loc_3BCB4: ; CODE XREF: sub_3BC80+30j move.b d3,(byte_FFFF9D8C).w andi.l #$FFFF,d4 asl.l #8,d4 asl.l #2,d4 divu.w #$509,d4 loc_3BCC6: ; CODE XREF: sub_3BC80+72j move.w d4,(KnockSmoothedNoise).w bra.w loc_3BDBE ; --------------------------------------------------------------------------- loc_3BCCE: ; CODE XREF: sub_3BC80+28j cmp.w (SPARK_KNOCK_KE_ADAPT_BPF_LOW_AVG_NOISE_THRES).l,d3 ; If the average noise is less than this value the adaptive gain will be increased. ; Volts bhi.w loc_3BDBE move.b (byte_FFFF9D8C).w,d3 addq.b #1,d3 cmpi.b #$D,d3 bls.s loc_3BCE6 moveq #$D,d3 loc_3BCE6: ; CODE XREF: sub_3BC80+62j move.b d3,(byte_FFFF9D8C).w mulu.w #$509,d4 lsr.l #8,d4 lsr.l #2,d4 bra.s loc_3BCC6 ; --------------------------------------------------------------------------- loc_3BCF4: ; CODE XREF: sub_3BC80+20j clr.w d4 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d2 ; Number of cylinders for this engine application. ; SHORTCARD move.l d2,d1 subq.b #1,d1 move.l d1,d0 move.l d4,d3 tst.b d0 bra.s loc_3BD16 ; --------------------------------------------------------------------------- loc_3BD08: ; CODE XREF: sub_3BC80:loc_3BD16j clr.l d5 move.b d3,d5 add.w unk_FFFF9D36(d5.w*2),d4 addq.b #1,d3 cmp.b d3,d0 loc_3BD16: ; CODE XREF: sub_3BC80+86j bcc.s loc_3BD08 clr.l d5 move.b d2,d5 andi.l #$FFFF,d4 divu.w d5,d4 move.w d4,(word_FFFF9D54).w move.w d4,d3 cmp.w (SPARK_KNOCK_KE_ADAPT_BPF_HIGH_AVG_NOISE_THRE).l,d3 ; If the average noise is greater than this value the adaptive gain will be decreased. ; Volts bcs.s loc_3BD74 move.b (byte_FFFF9D8C).w,d0 cmp.b (SPARK_KNOCK_KE_MIN_ADAPTIVE_BPF_GAIN).l,d0 ; This is the minimum value for the BPF Gain. ; Gain_dB bls.s loc_3BD74 move.b (byte_FFFF9D8C).w,d3 subq.b #1,d3 bcc.s loc_3BD48 clr.b d3 loc_3BD48: ; CODE XREF: sub_3BC80+C4j move.b d3,(byte_FFFF9D8C).w clr.b d3 tst.b d1 bra.s loc_3BD70 ; --------------------------------------------------------------------------- loc_3BD52: ; CODE XREF: sub_3BC80:loc_3BD70j clr.l d0 move.b d3,d0 clr.l d5 move.w unk_FFFF9D36(d0.w*2),d5 asl.l #8,d5 asl.l #2,d5 divu.w #$509,d5 move.w d5,$C+var_62D6(d0.w*2) addq.b #1,d3 cmp.b d3,d1 loc_3BD70: ; CODE XREF: sub_3BC80+D0j bcc.s loc_3BD52 bra.s loc_3BDBE ; --------------------------------------------------------------------------- loc_3BD74: ; CODE XREF: sub_3BC80+B0j ; sub_3BC80+BCj cmp.w (SPARK_KNOCK_KE_ADAPT_BPF_LOW_AVG_NOISE_THRES).l,d3 ; If the average noise is less than this value the adaptive gain will be increased. ; Volts bhi.s loc_3BDBE move.b (byte_FFFF9D8C).w,d3 cmp.b (SPARK_KNOCK_KE_MAX_ADAPTIVE_BPF_GAIN).l,d3 ; This is the maximum value for the BPF Gain. ; Gain_dB bcc.s loc_3BDBE move.b (byte_FFFF9D8C).w,d3 addq.b #1,d3 cmpi.b #$D,d3 bls.s loc_3BD96 moveq #$D,d3 loc_3BD96: ; CODE XREF: sub_3BC80+112j move.b d3,(byte_FFFF9D8C).w clr.b d3 tst.b d1 bra.s loc_3BDBC ; --------------------------------------------------------------------------- loc_3BDA0: ; CODE XREF: sub_3BC80:loc_3BDBCj clr.l d0 move.b d3,d0 move.w unk_FFFF9D36(d0.w*2),d5 mulu.w #$509,d5 lsr.l #8,d5 lsr.l #2,d5 move.w d5,$C+var_62D6(d0.w*2) addq.b #1,d3 cmp.b d3,d1 loc_3BDBC: ; CODE XREF: sub_3BC80+11Ej bcc.s loc_3BDA0 loc_3BDBE: ; CODE XREF: sub_3BC80+8j ; sub_3BC80+10j ... movem.l (sp)+,d0-d2 rts ; End of function sub_3BC80 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3BDC4: ; CODE XREF: DoLoopA+BCp var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d2/d6-a1,-(sp) cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_3C1C4 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d3 ; Number of cylinders for this engine application. ; SHORTCARD subq.b #1,d3 move.b (byte_FFFFAC47).w,d6 cmpi.b #8,d6 beq.w loc_3BE9E tst.b d6 bne.s loc_3BDF2 move.l d3,d6 bra.s loc_3BDF4 ; --------------------------------------------------------------------------- loc_3BDF2: ; CODE XREF: sub_3BDC4+28j subq.b #1,d6 loc_3BDF4: ; CODE XREF: sub_3BDC4+2Cj tst.b d6 bne.s loc_3BDFC move.l d3,d6 bra.s loc_3BDFE ; --------------------------------------------------------------------------- loc_3BDFC: ; CODE XREF: sub_3BDC4+32j subq.b #1,d6 loc_3BDFE: ; CODE XREF: sub_3BDC4+36j tst.b (SPARK_KNOCK_KE_CYLINDER_DETECTION_MODE).l ; Determines for Integrate and Read Modes only if the cylinder detection strategy will be Global or Individual ; Mode bne.s loc_3BE30 move.w (ManifoldPressure).w,d0 movea.l #SPARK_KNOCK_KV_KNOCK_ENERGY_MAD_GAIN,a2 ; This calibration is used with the Integrated energy read to establish a knock threshold. ; Multiplier tblu.w (a2),d0 ; d0 = multiplier move.l #unk_FF9D56,-(sp) ; Noise level? move.l #SPARK_KNOCK_KV_TIP_IN_KNOCK_ENERGY_MAD,-(sp) ; This calibration is used to establish the knock limit if Tip_In_Knock_Detection is TRUE. ; Multiplier move.l d6,d1 ; d1 = cylinder? movea.l #SPARK_KNOCK_KV_KNOCK_ENERGY_MAD,a1 ; This calibration is used with the Integrated energy read to determine if knock occurred. ; Multiplier movea.l #unk_FF9D46,a0 ; Knock sensor signal? bra.s loc_3BE98 ; --------------------------------------------------------------------------- loc_3BE30: ; CODE XREF: sub_3BDC4+40j move.w (word_FFFFB292).w,d1 move.w (EngineRPM_PID_000C___).w,d0 clr.w d3 move.w #$400,d7 cmp.w d1,d7 bls.s loc_3BE46 move.l d3,d1 bra.s loc_3BE54 ; --------------------------------------------------------------------------- loc_3BE46: ; CODE XREF: sub_3BDC4+7Cj cmpi.w #$1400,d1 bcc.s loc_3BE50 sub.w d7,d1 bra.s loc_3BE54 ; --------------------------------------------------------------------------- loc_3BE50: ; CODE XREF: sub_3BDC4+86j move.w #$1000,d1 loc_3BE54: ; CODE XREF: sub_3BDC4+80j ; sub_3BDC4+8Aj cmpi.w #$A000,d0 bcc.s loc_3BE5E lsr.w #3,d0 bra.s loc_3BE62 ; --------------------------------------------------------------------------- loc_3BE5E: ; CODE XREF: sub_3BDC4+94j move.w #$1400,d0 loc_3BE62: ; CODE XREF: sub_3BDC4+98j moveq #$15,d2 movea.l #SPARK_KNOCK_KA_KNOCK_ENERGY_MAD_GAIN,a0 ; This calibration is used with the Integrated energy read to establish a knock threshold. ; Multiplier jsr sub_2696E clr.l d3 move.b d6,d3 lea unk_FFFF9D58(d3.w*2),a1 move.l a1,-(sp) move.l #SPARK_KNOCK_KV_TIP_IN_KNOCK_ENERGY_MAD,-(sp) ; This calibration is used to establish the knock limit if Tip_In_Knock_Detection is TRUE. ; Multiplier move.l d3,d2 mulu.w #$2A,d2 ; '*' lea SPARK_KNOCK_KA_KNOCK_ENERGY_MAD(d2.l),a1 ; This calibration is used with the Integrated energy read to determine if knock occurred. ; Multiplier move.l d6,d1 lea unk_FFFF9D36(d3.w*2),a0 loc_3BE98: ; CODE XREF: sub_3BDC4+6Aj jsr sub_3C68C loc_3BE9E: ; CODE XREF: sub_3BDC4+22j move.w (word_FFFF9D68).w,d1 bne.s loc_3BEAA clr.b (byte_FFFF9D32).w bra.s loc_3BF26 ; --------------------------------------------------------------------------- loc_3BEAA: ; CODE XREF: sub_3BDC4+DEj move.b #1,(byte_FFFF9D32).w tst.b (byte_FFFF9D90).w bls.s loc_3BEBC tst.w (word_FFFF9D34).w blt.s loc_3BEC2 loc_3BEBC: ; CODE XREF: sub_3BDC4+F0j tst.b (byte_FFFF9D99).w bne.s loc_3BEC8 loc_3BEC2: ; CODE XREF: sub_3BDC4+F6j clr.w (word_FFFF9D68).w bra.s loc_3BF26 ; --------------------------------------------------------------------------- loc_3BEC8: ; CODE XREF: sub_3BDC4+FCj move.w (AnotherRpmValue).w,d3 movea.l #SPARK_KNOCK_KV_KNOCK_FAST_IR_ATTACK_RATE,a2 ; This calibration is a knock retard fast multiplier based on engine speed for Integrate and Read Modes. ; Degrees/V tblu.w (a2),d3 move.w (word_FFFFAEE0).w,d5 tblu.w (SPARK_KNOCK_KV_KNOCK_FAST_ATTACK_COOL_GAIN).l,d5 ; An attack rate coolant gain table that allows the detector to be disabled below an engine temperature. ; Scaler mulu.w d5,d3 lsr.l #8,d3 lsr.l #4,d3 move.w (word_FFFF82D2).w,d5 movea.w #$500,a2 clr.w d0 cmpi.w #$A00,d5 bcc.s loc_3BEFC move.l d0,d5 bra.s loc_3BF0C ; --------------------------------------------------------------------------- loc_3BEFC: ; CODE XREF: sub_3BDC4+132j cmpi.w #$1400,d5 bcc.s loc_3BF08 lsr.w #1,d5 sub.w a2,d5 bra.s loc_3BF0C ; --------------------------------------------------------------------------- loc_3BF08: ; CODE XREF: sub_3BDC4+13Cj move.w #$500,d5 loc_3BF0C: ; CODE XREF: sub_3BDC4+136j ; sub_3BDC4+142j movea.l #SPARK_KNOCK_KV_KNOCK_FAST_ATTACK_BARO_GAIN,a2 ; An attack rate baro gain table that adjusts the detector's sensitivity for changes in altitude. ; Scaler tblu.w (a2),d5 mulu.w d5,d3 lsr.l #8,d3 lsr.l #4,d3 mulu.w d1,d3 lsr.l #8,d3 lsr.l #3,d3 add.w d3,(KnockRetardFast).w loc_3BF26: ; CODE XREF: sub_3BDC4+E4j ; sub_3BDC4+102j btst #1,(byte_FFFF8254).w bne.s loc_3BF56 tst.b (byte_FFFFA1F6).w bne.s loc_3BF40 move.w (ManifoldPressure).w,d3 movea.l #SPARK_KNOCK_KV_KNOCK_RETARD_LIMIT_LOAD,a2 ; This calibration is the total maximum knock retard authority allowed when Power Enrichment is not active. ; Degrees bra.s loc_3BF4A ; --------------------------------------------------------------------------- loc_3BF40: ; CODE XREF: sub_3BDC4+16Ej move.w (AnotherRpmValue).w,d3 movea.l #SPARK_KNOCK_KV_KNOCK_RETARD_LIMIT_SPEED,a2 ; This calibration is the total maximum knock retard authority allowed when Power Enrichment is active. ; Degrees loc_3BF4A: ; CODE XREF: sub_3BDC4+17Aj tbls.w (a2),d3 cmp.w (KnockRetardFast).w,d3 bge.s loc_3BF7A bra.s loc_3BF76 ; --------------------------------------------------------------------------- loc_3BF56: ; CODE XREF: sub_3BDC4+168j tst.b (byte_FFFFA1F6).w bne.s loc_3BF68 move.w (word_FFFFAEEC).w,d3 movea.l #SPARK_KNOCK_KV_KNOCK_RETARD_DEFAULT_LOAD,a2 ; This calibration is the default value for knock retard fast when Knock System faults exist. ; Degrees bra.s loc_3BF72 ; --------------------------------------------------------------------------- loc_3BF68: ; CODE XREF: sub_3BDC4+196j move.w (AnotherRpmValue).w,d3 movea.l #SPARK_KNOCK_KV_KNOCK_RETARD_LIMIT_SPEED,a2 ; This calibration is the total maximum knock retard authority allowed when Power Enrichment is active. ; Degrees loc_3BF72: ; CODE XREF: sub_3BDC4+1A2j tbls.w (a2),d3 loc_3BF76: ; CODE XREF: sub_3BDC4+190j move.w d3,(KnockRetardFast).w loc_3BF7A: ; CODE XREF: sub_3BDC4+18Ej move.w (word_FFFFA0E8).w,d0 cmpi.w #$7FFF,d0 bls.s loc_3BF86 clr.w d0 loc_3BF86: ; CODE XREF: sub_3BDC4+1BEj move.w d0,(word_FFFF9D92).w clr.l d5 move.w (SPARK_ADVANCE_KE_LIGHTOFF_AND_LAUNCHRAMPINTIME).l,d5 ; Used to calculate a ramp in multiplier based upon engine run time. ; Seconds move.l (EngineRunTime).w,d6 mulu.l #$1000,d3:d6 divu.l d5,d3:d6 bvs.s loc_3BFB2 cmpi.l #$FFFF,d6 bhi.s loc_3BFB2 cmpi.w #$1000,d6 bls.s loc_3BFB6 loc_3BFB2: ; CODE XREF: sub_3BDC4+1DEj ; sub_3BDC4+1E6j move.w #$1000,d6 loc_3BFB6: ; CODE XREF: sub_3BDC4+1ECj move.w d6,(word_FFFF9D76).w move.w (AnotherRpmValue).w,d3 movea.l #SPARK_ADVANCE_KV_LAUNCH_SPARK_DELTA_CYLAIRMASS,a2 ; This calibration is an enabler to Launch Spark when an increasing change in cylinder air mass is above this threshold. ; Grams tblu.w (a2),d3 move.w (word_FFFFAEE0).w,d5 tblu.w (SPARK_ADVANCE_KV_LAUNCH_SPARK_DELTA_CYLAIRMULT).l,d5 ; This calibration is a multiplier for the cylinder air mass threshold. ; 0 to 1 mulu.w d5,d3 lsr.l #8,d3 lsr.l #4,d3 move.w d3,(word_FFFF9D7C).w move.w (SPARK_ADVANCE_KE_LAUNCH_SPARKRPMMULTCOOLENABLE).l,d7 ; Minimum Coolant Temperature for enable of the Engine Speed Multiplier to Launch Spark. ; Degrees C cmp.w (CoolantTemperatureOrDefault).w,d7 ble.s loc_3C004 move.w (word_FFFFAB66).w,d5 clr.w d1 lsr.w #1,d5 tblu.w (SPARK_ADVANCE_KV_LAUNCH_SPARK_DELT_CA_TPS_MULT).l,d5 ; This calibration is a multiplier to be applied to the cyli- nder air threshold. ; 0 to 2 mulu.w d5,d3 lsr.l #8,d3 lsr.l #4,d3 move.w d3,(word_FFFF9D7C).w loc_3C004: ; CODE XREF: sub_3BDC4+224j move.b (byte_FFFF9D90).w,d3 bne.w loc_3C128 tst.b (byte_FFFF984E).w beq.w loc_3C128 cmp.w (word_FFFF9D7C).w,d0 bcs.w loc_3C128 move.w (word_FFFFAEE0).w,d0 move.w d0,d3 tblu.b (SPARK_ADVANCE_KV_LAUNCH_SPARK_DURATION).l,d3 ; This calibration is the number of low resolution reference pulses. ; Pulses move.b d3,(byte_FFFF9D90).w move.l (EngineRunTime).w,d1 cmpi.l #$4B02,d1 bcc.s loc_3C04C mulu.l #unk_19999,d2:d1 divu.l #$140000,d2:d1 bra.s loc_3C050 ; --------------------------------------------------------------------------- loc_3C04C: ; CODE XREF: sub_3BDC4+274j move.w #$600,d1 loc_3C050: ; CODE XREF: sub_3BDC4+286j moveq #$13,d2 movea.l #SPARK_ADVANCE_KA_LAUNCH_SPARK,a0 ; This calibration is a spark advance or retard based on Coolant Temperature and Engine Run Time. ; Degrees jsr SurfaceTableLookup move.w d0,d3 move.w d3,(word_FFFF9D34).w clr.b (byte_FFFF9D91).w move.w (CoolantTemperatureOrDefault).w,d4 cmp.w (SPARK_ADVANCE_KE_LAUNCH_SPARK_MAXCLTSOAKENABLE).l,d4 ; Maximum Coolant Temperature for Soak Time multiplier to be applied to Launch Spark. ; Degrees C bgt.s loc_3C0C8 move.l (dword_FFFF81BA).w,d4 cmp.l (SPARK_ADVANCE_KE_LAUNCH_SPARK_MINRUNSOAKENABLE).l,d4 ; Minimum Previous Engine Run Time for Soak Time multiplier to be applied to Launch Spark. ; Seconds bcs.s loc_3C0C8 move.l (dword_FFFFBF12).w,d4 clr.b d5 cmpi.l #$D2F10,d4 bcc.s loc_3C0A4 move.l d4,d5 mulu.l #unk_19999,d4:d5 divu.l #$7080000,d4:d5 move.w d5,d4 bra.s loc_3C0A8 ; --------------------------------------------------------------------------- loc_3C0A4: ; CODE XREF: sub_3BDC4+2C8j move.w #$300,d4 loc_3C0A8: ; CODE XREF: sub_3BDC4+2DEj movea.l #SPARK_ADVANCE_KV_LAUNCH_SPARK_SOAK_MULT,a2 ; This calibration is a multiplier applied to Launch Spark in short soak time conditions. ; 0 to 2 tblu.w (a2),d4 move.w d4,(word_FFFF9D78).w muls.w d4,d3 bpl.s loc_3C0C0 addi.l #$FFF,d3 loc_3C0C0: ; CODE XREF: sub_3BDC4+2F4j asr.l #8,d3 asr.l #4,d3 move.w d3,(word_FFFF9D34).w loc_3C0C8: ; CODE XREF: sub_3BDC4+2AEj ; sub_3BDC4+2BAj cmp.w (CoolantTemperatureOrDefault).w,d7 bgt.s loc_3C112 clr.l d3 move.w (SPARK_ADVANCE_KE_LAUNCH_SPARKRPMRUNTIME).l,d3 ; Minimum Engine Run Time for application of the RPMmultiplier. ; Seconds cmp.l (EngineRunTime).w,d3 bcc.s loc_3C112 move.w (AnotherRpmValue).w,d3 movea.l #SPARK_ADVANCE_KV_LAUNCH_SPARK_RPM_MULTIPLIER,a2 tblu.w (a2),d3 move.w d3,(word_FFFF9D7A).w move.w #$1000,d4 move.w (word_FFFF9D34).w,d3 muls.w (word_FFFF9D7A).w,d3 divs.w d4,d3 bvc.s loc_3C10E swap d3 eor.w d4,d3 bmi.s loc_3C10A move.w #$7FFF,d3 bra.s loc_3C10E ; --------------------------------------------------------------------------- loc_3C10A: ; CODE XREF: sub_3BDC4+33Ej move.w #$8000,d3 loc_3C10E: ; CODE XREF: sub_3BDC4+338j ; sub_3BDC4+344j move.w d3,(word_FFFF9D34).w loc_3C112: ; CODE XREF: sub_3BDC4+308j ; sub_3BDC4+316j muls.w (word_FFFF9D34).w,d6 bpl.s loc_3C11E addi.l #$FFF,d6 loc_3C11E: ; CODE XREF: sub_3BDC4+352j asr.l #8,d6 asr.l #4,d6 move.w d6,(word_FFFF9D34).w bra.s loc_3C174 ; --------------------------------------------------------------------------- loc_3C128: ; CODE XREF: sub_3BDC4+244j ; sub_3BDC4+24Cj ... tst.b d3 bls.s loc_3C134 subq.b #1,d3 move.b d3,(byte_FFFF9D90).w bra.s loc_3C174 ; --------------------------------------------------------------------------- loc_3C134: ; CODE XREF: sub_3BDC4+366j tst.b d3 bne.s loc_3C170 tst.b (byte_FFFF9D91).w bne.s loc_3C170 move.w (word_FFFFAEE0).w,d3 tblu.w (SPARK_ADVANCE_KV_LAUNCH_SPARK_RAMP_OUT_MULT).l,d3 ; Multiplier applied to the Launch Spark value every ref pulse ince the hold duration has expired. ; 0 to 1 muls.w (word_FFFF9D34).w,d3 bpl.s loc_3C156 addi.l #$FFF,d3 loc_3C156: ; CODE XREF: sub_3BDC4+38Aj asr.l #8,d3 asr.l #4,d3 move.w d3,(word_FFFF9D34).w tst.w d3 bge.s loc_3C164 neg.w d3 loc_3C164: ; CODE XREF: sub_3BDC4+39Cj cmpi.w #5,d3 bhi.s loc_3C174 moveq #1,d5 move.b d5,(byte_FFFF9D91).w loc_3C170: ; CODE XREF: sub_3BDC4+372j ; sub_3BDC4+378j clr.w (word_FFFF9D34).w loc_3C174: ; CODE XREF: sub_3BDC4+362j ; sub_3BDC4+36Ej ... tst.b (byte_FFFF9D99).w beq.s loc_3C1C4 tst.b (byte_FFFFAC47).w bne.s loc_3C1C4 clr.w d4 move.b (SPARK_KNOCK_KE_MUX_PATTERN_CONTROL).l,d4 move.w (word_FFFFE1C8).w,var_4(a6) move.w (word_FFFFE1F0).w,var_2(a6) move.b var_4(a6),d3 sub.b var_2(a6),d3 tst.b d3 bge.s loc_3C1AC move.w (word_FFFFE060).w,d3 clr.w d3 add.w d4,d4 add.w d3,d4 bra.s loc_3C1C0 ; --------------------------------------------------------------------------- loc_3C1AC: ; CODE XREF: sub_3BDC4+3DAj tst.b d3 bne.s loc_3C1C0 movea.w (word_FFFFE1E4).w,a2 loc_3C1B4: ; CODE XREF: sub_3BDC4+3FAj move.w (word_FFFFE1E4).w,d3 sub.w a2,d3 cmpi.w #1,d3 bls.s loc_3C1B4 loc_3C1C0: ; CODE XREF: sub_3BDC4+3E6j ; sub_3BDC4+3EAj move.w d4,(word_FFFFE060).w loc_3C1C4: ; CODE XREF: sub_3BDC4+Ej ; sub_3BDC4+3B4j ... movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_3BDC4 ; =============== S U B R O U T I N E ======================================= sub_3C1CC: ; CODE XREF: DoLoopC:loc_2A39Ep movem.l d0-d2,-(sp) move.w (word_FFFF9D82).w,d2 move.w (word_FFFFB294).w,d1 move.b (SPARK_KNOCK_KE_MAP_12P5_MS_FILT_COEFFICIENT).l,d0 ; Filter coefficient for 12.5 ms MAP readings ; Coef. jsr sub_265AE move.w d0,(word_FFFF9D82).w movem.l (sp)+,d0-d2 rts ; End of function sub_3C1CC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3C1EE: ; CODE XREF: DoLoopD+118p var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d2/d6-a1/a4-a5,-(sp) tst.b (byte_FFFFA1F6).w bne.s loc_3C208 move.w (ManifoldPressure).w,d3 movea.l #SPARK_KNOCK_KV_KNOCK_RETARD_LIMIT_LOAD,a2 ; This calibration is the total maximum knock retard authority allowed when Power Enrichment is not active. ; Degrees bra.s loc_3C212 ; --------------------------------------------------------------------------- loc_3C208: ; CODE XREF: sub_3C1EE+Cj move.w (AnotherRpmValue).w,d3 movea.l #SPARK_KNOCK_KV_KNOCK_RETARD_LIMIT_SPEED,a2 ; This calibration is the total maximum knock retard authority allowed when Power Enrichment is active. ; Degrees loc_3C212: ; CODE XREF: sub_3C1EE+18j tbls.w (a2),d3 tst.w d3 bne.s loc_3C228 clr.b (byte_FFFF9D99).w clr.b (byte_FFFF9D9C).w clr.b (byte_FFFF9D97).w bra.s loc_3C22E ; --------------------------------------------------------------------------- loc_3C228: ; CODE XREF: sub_3C1EE+2Aj moveq #1,d2 move.b d2,(byte_FFFF9D9C).w loc_3C22E: ; CODE XREF: sub_3C1EE+38j tst.b (byte_FFFF9D96).w beq.s loc_3C24A move.b (byte_FFFF9D97).w,d3 addq.b #1,d3 move.b d3,(byte_FFFF9D97).w moveq #2,d2 cmp.b d3,d2 bhi.s loc_3C24A moveq #1,d7 move.b d7,(byte_FFFF9D99).w loc_3C24A: ; CODE XREF: sub_3C1EE+44j ; sub_3C1EE+54j move.b (byte_FFFF9D99).w,d3 bne.s loc_3C268 tst.b (byte_FFFF9D2C).w bne.s loc_3C268 tst.b (byte_FFFF9D95).w bne.s loc_3C268 move.b #1,(byte_FFFF9D95).w clr.b (byte_FFFF9D2C).w bra.s loc_3C28E ; --------------------------------------------------------------------------- loc_3C268: ; CODE XREF: sub_3C1EE+60j ; sub_3C1EE+66j ... tst.b d3 bne.s loc_3C284 tst.b (byte_FFFF9D2C).w bne.s loc_3C284 tst.b (byte_FFFF9D95).w beq.s loc_3C284 move.b #1,(byte_FFFF9D2C).w loc_3C27E: ; CODE XREF: sub_3C1EE+9Ej clr.b (byte_FFFF9D95).w bra.s loc_3C28E ; --------------------------------------------------------------------------- loc_3C284: ; CODE XREF: sub_3C1EE+7Cj ; sub_3C1EE+82j ... tst.b d3 beq.s loc_3C28E clr.b (byte_FFFF9D2C).w bra.s loc_3C27E ; --------------------------------------------------------------------------- loc_3C28E: ; CODE XREF: sub_3C1EE+78j ; sub_3C1EE+94j ... move.b (byte_FFFF9D2C).w,d3 beq.s loc_3C30A cmp.b (byte_FFFF9D9B).w,d3 beq.s loc_3C2BA move.w (SPARK_KNOCK_KE_BANK_HOLD_TIME).l,(word_FFFF9D4E).w ; This is the amount of time between toggling the ESC Select line when in diagnostics mode. ; Millisecs. clr.b (byte_FFFF9D2D).w jsr sub_79960 loc_3C2AC: ; CODE XREF: sub_3C1EE+11Aj clr.b d1 loc_3C2AE: ; CODE XREF: sub_3C1EE+114j move.w #$AC,d0 ; '?' jsr (sub_1122).l bra.s loc_3C316 ; --------------------------------------------------------------------------- loc_3C2BA: ; CODE XREF: sub_3C1EE+AAj tst.w (word_FFFF9D4E).w bls.s loc_3C2D0 move.w (word_FFFF9D4E).w,d3 subi.w #$650,d3 bcc.s loc_3C2CC clr.w d3 loc_3C2CC: ; CODE XREF: sub_3C1EE+DAj move.w d3,(word_FFFF9D4E).w loc_3C2D0: ; CODE XREF: sub_3C1EE+D0j tst.w (word_FFFF9D4E).w bne.s loc_3C316 move.w (SPARK_KNOCK_KE_BANK_HOLD_TIME).l,(word_FFFF9D4E).w ; This is the amount of time between toggling the ESC Select line when in diagnostics mode. ; Millisecs. tst.b (byte_FFFFA1A1).w beq.s loc_3C2EA jsr sub_64BF8 loc_3C2EA: ; CODE XREF: sub_3C1EE+F4j cmpi.b #2,(SPARK_KNOCK_KE_NUMBER_OF_SENSORS).l ; This is the number of ESC sensors used to determine if ESC sensors should be multiplexed in diagnostics. ; Number bne.s loc_3C316 tst.b (byte_FFFF9D2D).w bne.s loc_3C304 move.b #1,(byte_FFFF9D2D).w moveq #1,d1 bra.s loc_3C2AE ; --------------------------------------------------------------------------- loc_3C304: ; CODE XREF: sub_3C1EE+10Aj clr.b (byte_FFFF9D2D).w bra.s loc_3C2AC ; --------------------------------------------------------------------------- loc_3C30A: ; CODE XREF: sub_3C1EE+A4j cmp.b (byte_FFFF9D9B).w,d3 beq.s loc_3C316 jsr sub_7998E loc_3C316: ; CODE XREF: sub_3C1EE+CAj ; sub_3C1EE+E6j ... move.b (byte_FFFF9D2C).w,(byte_FFFF9D9B).w movea.w (EngineRPM_PID_000C___).w,a4 move.w a4,var_4(a6) move.b (SPARK_KNOCK_KE_TDC_OFFSET).l,d3 move.w (word_FFFFE07E).w,var_2(a6) move.b d3,var_2(a6) move.w var_2(a6),(word_FFFFE07E).w clr.w d3 move.w #$A000,d4 move.w var_4(a6),d5 cmp.w d5,d4 bls.s loc_3C34E move.l d5,d6 lsr.w #3,d6 bra.s loc_3C352 ; --------------------------------------------------------------------------- loc_3C34E: ; CODE XREF: sub_3C1EE+158j move.w #$1400,d6 loc_3C352: ; CODE XREF: sub_3C1EE+15Ej tblu.w (SPARK_KNOCK_KV_ESC_SELECTION_TIME).l,d6 ; Time delay from the TDC_Reference -MEDRES- to wherethe ESC Bank Select line will change. ; Millisecs. move.w d6,(word_FFFFE1E0).w move.w (word_FFFFB294).w,d1 move.w #$800,d6 cmp.w d1,d6 bls.s loc_3C36E move.l d3,d1 bra.s loc_3C380 ; --------------------------------------------------------------------------- loc_3C36E: ; CODE XREF: sub_3C1EE+17Aj cmpi.w #$1400,d1 bcc.s loc_3C37C lsr.w #1,d1 subi.w #$400,d1 bra.s loc_3C380 ; --------------------------------------------------------------------------- loc_3C37C: ; CODE XREF: sub_3C1EE+184j move.w #$600,d1 loc_3C380: ; CODE XREF: sub_3C1EE+17Ej ; sub_3C1EE+18Cj cmp.w d5,d4 bls.s loc_3C38A move.l d5,d7 lsr.w #3,d7 bra.s loc_3C38E ; --------------------------------------------------------------------------- loc_3C38A: ; CODE XREF: sub_3C1EE+194j move.w #$1400,d7 loc_3C38E: ; CODE XREF: sub_3C1EE+19Aj moveq #$15,d2 move.l d7,d0 movea.l #SPARK_KNOCK_KA_GATE_ACTIVE,a0 ; Integration time - duration of WINGATE. ; Microsecs. jsr sub_2696E movea.w d0,a1 move.w (word_FFFFB294).w,d1 clr.w d3 cmp.w d1,d6 bls.s loc_3C3AE move.l d3,d1 bra.s loc_3C3C0 ; --------------------------------------------------------------------------- loc_3C3AE: ; CODE XREF: sub_3C1EE+1BAj cmpi.w #$1400,d1 bcc.s loc_3C3BC lsr.w #1,d1 subi.w #$400,d1 bra.s loc_3C3C0 ; --------------------------------------------------------------------------- loc_3C3BC: ; CODE XREF: sub_3C1EE+1C4j move.w #$600,d1 loc_3C3C0: ; CODE XREF: sub_3C1EE+1BEj ; sub_3C1EE+1CCj move.w var_4(a6),d7 cmpi.w #$A000,d7 bcc.s loc_3C3D0 move.l a4,d0 lsr.w #3,d0 bra.s loc_3C3D4 ; --------------------------------------------------------------------------- loc_3C3D0: ; CODE XREF: sub_3C1EE+1DAj move.w #$1400,d0 loc_3C3D4: ; CODE XREF: sub_3C1EE+1E0j moveq #$15,d2 movea.l #SPARK_KNOCK_KA_GATE_DELAY,a0 ; Time delay from the TDC_Reference -MEDRES- to wherethe WINGATE goes high - start of integration. ; Microsecs. jsr sub_2696E move.w d0,d3 move.w d3,(word_FFFFE0A0).w add.w a1,d3 move.w d3,(word_FFFFE0C0).w move.w (word_FFFFAB66).w,d3 move.l d3,d4 sub.w (word_FFFF9D86).w,d4 bcc.s loc_3C3FC clr.w d4 loc_3C3FC: ; CODE XREF: sub_3C1EE+20Aj move.w d3,(word_FFFF9D86).w cmp.w (SPARK_KNOCK_KE_TPS_KNOCK_LOW).l,d3 ; Minimum TPS to activate transient condition check. ; Percent bcs.s loc_3C428 cmp.w (SPARK_KNOCK_KE_TPS_KNOCK_HIGH).l,d3 ; Maximum TPS to activate transient condition check. ; Percent bhi.s loc_3C428 cmp.w (SPARK_KNOCK_KE_DELTA_TIP_IN_TPS).l,d4 ; Delta TPS to activate transient condition check. ; Percent bls.s loc_3C428 move.b #1,(byte_FFFF9D9E).w move.w (SPARK_KNOCK_KE_TIP_IN_KNOCK_TIME).l,(word_FFFF9D88).w ; Time that the transient calibrations to modify the knock detection criteria are enabled. ; Seconds bra.s loc_3C44C ; --------------------------------------------------------------------------- loc_3C428: ; CODE XREF: sub_3C1EE+218j ; sub_3C1EE+220j ... tst.w (word_FFFF9D88).w bls.s loc_3C442 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9D88).w,d3 sub.w $A(a2),d3 bcc.s loc_3C43E clr.w d3 loc_3C43E: ; CODE XREF: sub_3C1EE+24Cj move.w d3,(word_FFFF9D88).w loc_3C442: ; CODE XREF: sub_3C1EE+23Ej tst.w (word_FFFF9D88).w bhi.s loc_3C44C clr.b (byte_FFFF9D9E).w loc_3C44C: ; CODE XREF: sub_3C1EE+238j ; sub_3C1EE+258j move.w (word_FFFFA560).w,d3 move.l d3,d4 sub.w (word_FFFF9D52).w,d4 bcc.s loc_3C45A clr.w d4 loc_3C45A: ; CODE XREF: sub_3C1EE+268j move.w d3,(word_FFFF9D52).w cmp.w (SPARK_KNOCK_KE_RPM_KNOCK_LOW).l,d3 ; RPM value below this level will not enable Delta RPM detection logic. ; RPM bcs.s loc_3C486 cmp.w (SPARK_KNOCK_KE_RPM_KNOCK_HIGH).l,d3 ; RPM value above this level will not enable Delta RPM detection logic. ; RPM bhi.s loc_3C486 cmp.w (SPARK_KNOCK_KE_RPM_KNOCK_DELTA).l,d4 ; An RPM increase greater than this over a 25 msec time period will enable the Delta RPM detection logic. ; RPM bls.s loc_3C486 move.b #1,(byte_FFFF9D94).w move.w (SPARK_KNOCK_KE_RPM_KNOCK_TIME).l,(word_FFFF9D4C).w ; Duration of time to modify knock thresholds due to an engine speed increase. ; Second bra.s loc_3C4A4 ; --------------------------------------------------------------------------- loc_3C486: ; CODE XREF: sub_3C1EE+276j ; sub_3C1EE+27Ej ... tst.w (word_FFFF9D4C).w bls.s loc_3C49A move.w (word_FFFF9D4C).w,d3 subq.w #4,d3 bcc.s loc_3C496 clr.w d3 loc_3C496: ; CODE XREF: sub_3C1EE+2A4j move.w d3,(word_FFFF9D4C).w loc_3C49A: ; CODE XREF: sub_3C1EE+29Cj tst.w (word_FFFF9D4C).w bhi.s loc_3C4A4 clr.b (byte_FFFF9D94).w loc_3C4A4: ; CODE XREF: sub_3C1EE+296j ; sub_3C1EE+2B0j movem.l (sp)+,d0-d2/d6-a1/a4-a5 unlk a6 rts ; End of function sub_3C1EE ; =============== S U B R O U T I N E ======================================= sub_3C4AC: ; CODE XREF: DoLoopF+2D0p movem.l d0-d2/d6/a0,-(sp) move.w (word_FFFFB292).w,d3 cmp.w (SPARK_KNOCK_KE_LRN_GAIN_MIN_MAP).l,d3 ; Manifold Pressure value below which Learn Gain is set to zero. ; kPa bcs.s loc_3C500 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (SPARK_KNOCK_KE_LRN_GAIN_MIN_RPM).l,d3 ; Engine Speed value below which Learn Gain is set to zero. ; RPM bcs.s loc_3C500 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (SPARK_KNOCK_KE_LRN_GAIN_MAX_RPM).l,d3 ; Engine Speed value above which Learn Gain is set to zero. ; RPM bhi.s loc_3C500 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (SPARK_KNOCK_KE_LRN_GAIN_MIN_COOL).l,d3 ; Coolant Temperature value below which Learn Gain is set to zero. ; Degrees_C blt.s loc_3C500 move.w (word_FFFFB3E8).w,d3 cmp.w (SPARK_KNOCK_KE_LRN_GAIN_MIN_IAT).l,d3 ; Induction Air Temperature value below which Learn Gain is set to zero. ; Degrees_C blt.s loc_3C500 move.w (word_FFFF984C).w,d3 cmp.w (SPARK_KNOCK_KE_LRN_GAIN_TOTAL_RTD).l,d3 ; Total retard value above which Learn Gain is set to zero. ; Degrees bgt.s loc_3C500 btst #1,(byte_FFFF8254).w beq.s loc_3C508 loc_3C500: ; CODE XREF: sub_3C4AC+Ej ; sub_3C4AC+1Aj ... clr.w (word_FFFF9D80).w bra.w loc_3C626 ; --------------------------------------------------------------------------- loc_3C508: ; CODE XREF: sub_3C4AC+52j move.w (word_FFFF984C).w,d3 clr.w d4 tst.w d3 bge.s loc_3C516 move.l d4,d3 bra.s loc_3C534 ; --------------------------------------------------------------------------- loc_3C516: ; CODE XREF: sub_3C4AC+64j cmpi.w #$38E,d3 bge.s loc_3C530 ext.l d3 asl.l #8,d3 bmi.s loc_3C52C divu.l #$5B,d3 ; '[' bra.s loc_3C534 ; --------------------------------------------------------------------------- loc_3C52C: ; CODE XREF: sub_3C4AC+74j clr.l d3 bra.s loc_3C534 ; --------------------------------------------------------------------------- loc_3C530: ; CODE XREF: sub_3C4AC+6Ej move.w #$A00,d3 loc_3C534: ; CODE XREF: sub_3C4AC+68j ; sub_3C4AC+7Ej ... tblu.w (SPARK_KNOCK_KV_KNOCK_TOTAL_RTD_LEARN_GAIN).l,d3 ; Total Spark Retard contribution to engine's propensity to knock. ; Multiplier mulu.w (SPARK_KNOCK_KE_TOTAL_RTD_WEIGHT_FACTOR).l,d3 ; Weighted Multiplier for Total Retard contribution to Learn Gain. ; Multiplier lsr.l #8,d3 lsr.l #4,d3 move.w d3,d2 move.w (word_FFFFB3E8).w,d3 movea.w #$400,a0 add.w a0,d3 bpl.s loc_3C556 addq.w #1,d3 loc_3C556: ; CODE XREF: sub_3C4AC+A6j asr.w #1,d3 tblu.w (SPARK_KNOCK_KV_KNOCK_IAT_LEARN_GAIN).l,d3 ; Induction Air Temperature contribution to engine's propensity to knock. ; Multiplier move.l d3,d6 mulu.w (SPARK_KNOCK_KE_IAT_WEIGHT_FACTOR).l,d6 ; Weighted Multiplier for Induction Air Temperature contribution to Learn Gain. ; Multiplier lsr.l #8,d6 lsr.l #4,d6 move.w (CoolantTemperatureOrDefault).w,d3 add.w a0,d3 bpl.s loc_3C576 addq.w #1,d3 loc_3C576: ; CODE XREF: sub_3C4AC+C6j asr.w #1,d3 tblu.w (SPARK_KNOCK_KV_KNOCK_COOL_LEARN_GAIN).l,d3 ; Coolant Temperature contribution to engine's propensity to knock. ; Multiplier mulu.w (SPARK_KNOCK_KE_COOL_WEIGHT_FACTOR).l,d3 ; Weighted Multiplier for coolant temperature contribution to Learn Gain. ; Multiplier lsr.l #8,d3 lsr.l #4,d3 move.w (EngineRPM_PID_000C___).w,d5 cmpi.w #$A000,d5 bcc.s loc_3C598 lsr.w #4,d5 bra.s loc_3C59C ; --------------------------------------------------------------------------- loc_3C598: ; CODE XREF: sub_3C4AC+E6j move.w #$A00,d5 loc_3C59C: ; CODE XREF: sub_3C4AC+EAj tblu.w (SPARK_KNOCK_KV_KNOCK_RPM_LEARN_GAIN).l,d5 ; Engine Speed contribution to engine's propensity to knock. ; Multiplier mulu.w (SPARK_KNOCK_KE_RPM_WEIGHT_FACTOR).l,d5 ; Weighted Multiplier for RPM contribution to Learn Gain. ; Multiplier lsr.l #8,d5 lsr.l #4,d5 move.w d5,d1 move.w (word_FFFFB292).w,d5 cmpi.w #$400,d5 bcc.s loc_3C5BE move.l d4,d5 bra.s loc_3C5D0 ; --------------------------------------------------------------------------- loc_3C5BE: ; CODE XREF: sub_3C4AC+10Cj cmpi.w #$1400,d5 bcc.s loc_3C5CC lsr.w #1,d5 subi.w #$200,d5 bra.s loc_3C5D0 ; --------------------------------------------------------------------------- loc_3C5CC: ; CODE XREF: sub_3C4AC+116j move.w #$800,d5 loc_3C5D0: ; CODE XREF: sub_3C4AC+110j ; sub_3C4AC+11Ej movea.l #SPARK_KNOCK_KV_KNOCK_MAP_LEARN_GAIN,a2 ; Manifold Pressure contribution to engine's propensity to knock. ; Multiplier tblu.w (a2),d5 mulu.w (SPARK_KNOCK_KE_MAP_WEIGHT_FACTOR).l,d5 ; Weighted Multiplier for MAP contribution to Learn Gain. ; Multiplier lsr.l #8,d5 lsr.l #4,d5 add.w d1,d5 add.w d3,d5 add.w d6,d5 add.w d2,d5 andi.l #$FFFF,d5 asl.l #8,d5 asl.l #4,d5 move.w (SPARK_KNOCK_KE_MAP_WEIGHT_FACTOR).l,d3 ; Weighted Multiplier for MAP contribution to Learn Gain. ; Multiplier add.w (SPARK_KNOCK_KE_RPM_WEIGHT_FACTOR).l,d3 ; Weighted Multiplier for RPM contribution to Learn Gain. ; Multiplier add.w (SPARK_KNOCK_KE_COOL_WEIGHT_FACTOR).l,d3 ; Weighted Multiplier for coolant temperature contribution to Learn Gain. ; Multiplier add.w (SPARK_KNOCK_KE_IAT_WEIGHT_FACTOR).l,d3 ; Weighted Multiplier for Induction Air Temperature contribution to Learn Gain. ; Multiplier add.w (SPARK_KNOCK_KE_TOTAL_RTD_WEIGHT_FACTOR).l,d3 ; Weighted Multiplier for Total Retard contribution to Learn Gain. ; Multiplier divu.w d3,d5 bvs.s loc_3C61E cmpi.w #$1000,d5 bls.s loc_3C622 loc_3C61E: ; CODE XREF: sub_3C4AC+16Aj move.w #$1000,d5 loc_3C622: ; CODE XREF: sub_3C4AC+170j move.w d5,(word_FFFF9D80).w loc_3C626: ; CODE XREF: sub_3C4AC+58j jsr sub_3C8BC jsr sub_3C938 movem.l (sp)+,d0-d2/d6/a0 rts ; End of function sub_3C4AC ; =============== S U B R O U T I N E ======================================= sub_3C638: ; CODE XREF: DoLoopF+484p move.l d0,-(sp) move.w (word_FFFFAB66).w,d3 move.l d3,d0 sub.w (word_FFFF9D8A).w,d0 bcc.s loc_3C648 neg.w d0 loc_3C648: ; CODE XREF: sub_3C638+Cj move.w d0,(word_FFFF9D4A).w move.w d3,(word_FFFF9D8A).w move.w (EngineRPM_PID_000C___).w,d3 move.l d3,d0 sub.w (word_FFFF9D84).w,d0 bcc.s loc_3C65E neg.w d0 loc_3C65E: ; CODE XREF: sub_3C638+22j move.w d0,(word_FFFF9D48).w move.w d3,(word_FFFF9D84).w move.b (byte_FFFF9D8D).w,d3 bne.s loc_3C67C jsr sub_3BC80 move.b (SPARK_KNOCK_KE_ADAPTIVE_BPF_GAIN_ADJ_RATE).l,(byte_FFFF9D8D).w ; This controls the number of 200 ms loops betweenadaptive BPF gain calculations ; Counts bra.s loc_3C682 ; --------------------------------------------------------------------------- loc_3C67C: ; CODE XREF: sub_3C638+32j subq.b #1,d3 move.b d3,(byte_FFFF9D8D).w loc_3C682: ; CODE XREF: sub_3C638+42j jsr sub_3CA2E move.l (sp)+,d0 rts ; End of function sub_3C638 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3C68C: ; CODE XREF: sub_3BDC4:loc_3BE98p var_2 = -2 arg_0 = 8 arg_4 = $C link a6,#-2 movem.l d2/d6-d7/a4-a5,-(sp) movea.l a0,a5 movea.l a1,a0 movea.l arg_0(a6),a1 move.w d0,d7 movea.l arg_4(a6),a4 move.w (a5),d6 move.w (word_FFFFF2B0).w,d0 lsr.w #2,d0 asl.w #8,d0 mulu.w #5,d0 lsr.l #8,d0 move.w d0,(a4) move.l d1,d0 jsr sub_3BC68 move.b d0,var_2(a6) clr.w d3 move.l d3,d4 move.b (byte_FFFF9D9E).w,d1 beq.s loc_3C6D2 move.w (AnotherRpmValue).w,d3 tblu.w (a1),d3 loc_3C6D2: ; CODE XREF: sub_3C68C+3Cj move.b (byte_FFFF9D94).w,d0 beq.s loc_3C6E6 move.w (AnotherRpmValue).w,d4 movea.l #SPARK_KNOCK_KV_DELTA_RPM_KNOCK_ENERGY_MAD,a2 ; This calibration is used to establish the knock limit if Delta RPM knock detection is true. ; Multiplier tblu.w (a2),d4 loc_3C6E6: ; CODE XREF: sub_3C68C+4Aj or.b d0,d1 beq.s loc_3C6F4 cmp.w d4,d3 bcc.s loc_3C6FC move.w d4,(word_FFFF9D72).w bra.s loc_3C700 ; --------------------------------------------------------------------------- loc_3C6F4: ; CODE XREF: sub_3C68C+5Cj move.w (AnotherRpmValue).w,d3 tblu.w (a0),d3 loc_3C6FC: ; CODE XREF: sub_3C68C+60j move.w d3,(word_FFFF9D72).w loc_3C700: ; CODE XREF: sub_3C68C+66j clr.w d4 move.b var_2(a6),d4 move.l dword_FFFF9D6A(d4.w*4),d3 muls.l #$80,d1:d3 ; '?' divs.l #$3999,d1:d3 tst.l d3 blt.s loc_3C72E cmpi.l #$FFFF,d3 bls.s loc_3C730 move.w #$FFFF,d3 bra.s loc_3C730 ; --------------------------------------------------------------------------- loc_3C72E: ; CODE XREF: sub_3C68C+92j clr.w d3 loc_3C730: ; CODE XREF: sub_3C68C+9Aj ; sub_3C68C+A0j mulu.w (word_FFFF9D72).w,d3 divu.w #$200,d3 bvc.s loc_3C73E move.w #$FFFF,d3 loc_3C73E: ; CODE XREF: sub_3C68C+ACj move.w d3,(word_FFFF9D7E).w move.l d7,d3 mulu.w (word_FFFF9D7E).w,d3 move.w #$1000,d7 divu.w d7,d3 bvc.s loc_3C754 move.w #$FFFF,d3 loc_3C754: ; CODE XREF: sub_3C68C+C2j add.w d6,d3 bcc.s loc_3C75C move.w #$FFFF,d3 loc_3C75C: ; CODE XREF: sub_3C68C+CAj move.w d3,(word_FFFF9D7E).w move.w (a4),d1 cmp.w d3,d1 bls.s loc_3C778 move.l d1,d4 sub.w d3,d4 move.w d4,(word_FFFF9D68).w move.w (SPARK_KNOCK_KE_KNOCK_PORTION).l,(word_FFFF9D74).w ; The portion of the knock A/D reading used in the calculation of the average noise level knock event. ; Multiplier bra.s loc_3C780 ; --------------------------------------------------------------------------- loc_3C778: ; CODE XREF: sub_3C68C+D8j clr.w (word_FFFF9D68).w move.w d7,(word_FFFF9D74).w loc_3C780: ; CODE XREF: sub_3C68C+EAj move.l d6,d2 move.b var_2(a6),d0 jsr sub_3BB66 move.w (EngineRPM_PID_000C___).w,d4 move.l d4,d3 sub.w (word_FFFF9D50).w,d3 bcc.s loc_3C79A neg.w d3 loc_3C79A: ; CODE XREF: sub_3C68C+10Aj move.w d4,(word_FFFF9D50).w cmp.w (SPARK_KNOCK_KE_SPEED_CHANGE_HIGH).l,d3 ; When delta engine speed is above this threshold use the high noise channel time constants. ; RPM bcc.s loc_3C7AC tst.b (byte_FFFF9D9E).w beq.s loc_3C7FA loc_3C7AC: ; CODE XREF: sub_3C68C+118j clr.b (byte_FFFF9D9D).w move.b (SPARK_KNOCK_KE_SAMPLE_NUMBER_FAST).l,d3 clr.l d5 move.w d6,d5 clr.l d4 move.w (a4),d4 sub.l d5,d4 andi.w #$FF,d3 divs.w d3,d4 bvs.s loc_3C81E muls.w (word_FFFF9D74).w,d4 bpl.s loc_3C7D4 addi.l #$FFF,d4 loc_3C7D4: ; CODE XREF: sub_3C68C+140j asr.l #8,d4 asr.l #4,d4 ext.l d4 andi.l #$FFFF,d6 add.l d4,d6 tst.l d6 loc_3C7E4: ; CODE XREF: sub_3C68C+1B4j blt.w loc_3C886 loc_3C7E8: ; CODE XREF: sub_3C68C+1F6j cmpi.l #$FFFF,d6 bls.w loc_3C888 loc_3C7F2: ; CODE XREF: sub_3C68C+198j move.w #$FFFF,d6 bra.w loc_3C888 ; --------------------------------------------------------------------------- loc_3C7FA: ; CODE XREF: sub_3C68C+11Ej move.b (byte_FFFF9D9D).w,d3 cmp.b (SPARK_KNOCK_KE_SPEED_CHANGE_HIGH_COUNTER_A).l,d3 ; When this calibration is exceeded, the slow sample number will be used for determining the average noise level. ; Counts bls.s loc_3C842 move.b (SPARK_KNOCK_KE_SAMPLE_NUMBER_SLOW).l,d3 clr.l d5 move.w d6,d5 clr.l d4 move.w (a4),d4 sub.l d5,d4 andi.w #$FF,d3 divs.w d3,d4 bvc.s loc_3C826 loc_3C81E: ; CODE XREF: sub_3C68C+13Aj ; sub_3C68C+1D8j swap d4 eor.w d3,d4 bmi.s loc_3C886 bra.s loc_3C7F2 ; --------------------------------------------------------------------------- loc_3C826: ; CODE XREF: sub_3C68C+190j muls.w (word_FFFF9D74).w,d4 bpl.s loc_3C832 addi.l #$FFF,d4 loc_3C832: ; CODE XREF: sub_3C68C+19Ej asr.l #8,d4 asr.l #4,d4 ext.l d4 andi.l #$FFFF,d6 add.l d4,d6 bra.s loc_3C7E4 ; --------------------------------------------------------------------------- loc_3C842: ; CODE XREF: sub_3C68C+178j addq.b #1,d3 bcc.s loc_3C84A move.b #$FF,d3 loc_3C84A: ; CODE XREF: sub_3C68C+1B8j move.b d3,(byte_FFFF9D9D).w move.b (SPARK_KNOCK_KE_SAMPLE_NUMBER_FAST).l,d3 clr.l d5 move.w d6,d5 clr.l d4 move.w (a4),d4 sub.l d5,d4 andi.w #$FF,d3 divs.w d3,d4 bvs.s loc_3C81E muls.w (word_FFFF9D74).w,d4 bpl.s loc_3C872 addi.l #$FFF,d4 loc_3C872: ; CODE XREF: sub_3C68C+1DEj asr.l #8,d4 asr.l #4,d4 ext.l d4 andi.l #$FFFF,d6 add.l d4,d6 tst.l d6 bge.w loc_3C7E8 loc_3C886: ; CODE XREF: sub_3C68C:loc_3C7E4j ; sub_3C68C+196j clr.w d6 loc_3C888: ; CODE XREF: sub_3C68C+162j ; sub_3C68C+16Aj move.w (SPARK_KNOCK_KE_MINIMUM_AVERAGE_NOISE_LEVEL).l,d3 ; This calibration establishes a minimum learned average noise level for the Integrate and Read detector threshold calculation. ; Volts cmp.w d3,d6 bcc.s loc_3C894 move.l d3,d6 loc_3C894: ; CODE XREF: sub_3C68C+204j move.w d6,(a5) tst.b (byte_FFFF9D99).w beq.s loc_3C8AC move.b (byte_FFFF9D8E).w,d3 subq.b #1,d3 bcc.s loc_3C8A6 clr.b d3 loc_3C8A6: ; CODE XREF: sub_3C68C+216j move.b d3,(byte_FFFF9D8E).w bra.s loc_3C8B2 ; --------------------------------------------------------------------------- loc_3C8AC: ; CODE XREF: sub_3C68C+20Ej move.b (byte_FFFF9D8F).w,(byte_FFFF9D8E).w loc_3C8B2: ; CODE XREF: sub_3C68C+21Ej movem.l (sp)+,d2/d6-d7/a4-a5 unlk a6 rtd #8 ; End of function sub_3C68C ; =============== S U B R O U T I N E ======================================= sub_3C8BC: ; CODE XREF: sub_3C4AC:loc_3C626p move.w #$1000,d4 move.w (AnotherRpmValue).w,d3 movea.l #SPARK_KNOCK_KV_KNOCK_FAST_RECOVER_RATE,a2 tblu.w (a2),d3 sub.w d3,d4 muls.w (KnockRetardFast).w,d4 bpl.s loc_3C8DC addi.l #$FFF,d4 loc_3C8DC: ; CODE XREF: sub_3C8BC+18j asr.l #8,d4 asr.l #4,d4 move.w d4,(KnockRetardFast).w btst #1,(byte_FFFF8254).w bne.s loc_3C912 tst.b (byte_FFFFA1F6).w bne.s loc_3C8FE move.w (ManifoldPressure).w,d3 movea.l #SPARK_KNOCK_KV_KNOCK_RETARD_LIMIT_LOAD,a2 ; This calibration is the total maximum knock retard authority allowed when Power Enrichment is not active. ; Degrees bra.s loc_3C908 ; --------------------------------------------------------------------------- loc_3C8FE: ; CODE XREF: sub_3C8BC+34j move.w (AnotherRpmValue).w,d3 movea.l #SPARK_KNOCK_KV_KNOCK_RETARD_LIMIT_SPEED,a2 ; This calibration is the total maximum knock retard authority allowed when Power Enrichment is active. ; Degrees loc_3C908: ; CODE XREF: sub_3C8BC+40j tbls.w (a2),d3 cmp.w d3,d4 ble.s locret_3C936 bra.s loc_3C932 ; --------------------------------------------------------------------------- loc_3C912: ; CODE XREF: sub_3C8BC+2Ej tst.b (byte_FFFFA1F6).w bne.s loc_3C924 move.w (word_FFFFAEEC).w,d3 movea.l #SPARK_KNOCK_KV_KNOCK_RETARD_DEFAULT_LOAD,a2 ; This calibration is the default value for knock retard fast when Knock System faults exist. ; Degrees bra.s loc_3C92E ; --------------------------------------------------------------------------- loc_3C924: ; CODE XREF: sub_3C8BC+5Aj move.w (AnotherRpmValue).w,d3 movea.l #SPARK_KNOCK_KV_KNOCK_RETARD_LIMIT_SPEED,a2 ; This calibration is the total maximum knock retard authority allowed when Power Enrichment is active. ; Degrees loc_3C92E: ; CODE XREF: sub_3C8BC+66j tbls.w (a2),d3 loc_3C932: ; CODE XREF: sub_3C8BC+54j move.w d3,(KnockRetardFast).w locret_3C936: ; CODE XREF: sub_3C8BC+52j rts ; End of function sub_3C8BC ; =============== S U B R O U T I N E ======================================= sub_3C938: ; CODE XREF: sub_3C4AC+180p movem.l d0-d2/d6/a0,-(sp) btst #1,(byte_FFFF88CA).w bne.s loc_3C94C btst #1,(byte_FFFF88C8).w beq.s loc_3C954 loc_3C94C: ; CODE XREF: sub_3C938+Aj clr.w (IgnitionAdvanceMultiplier).w bra.w loc_3CA28 ; --------------------------------------------------------------------------- loc_3C954: ; CODE XREF: sub_3C938+12j btst #1,(byte_FFFF8254).w beq.s loc_3C968 move.w (SPARK_KNOCK_KE_OCTANE_SCALER_DIAG_DEFAULT).l,(IgnitionAdvanceMultiplier).w ; This is the octane scaler value if a knock sensor group fault is active. ; Multiplier_0_To_1 bra.w loc_3CA28 ; --------------------------------------------------------------------------- loc_3C968: ; CODE XREF: sub_3C938+22j tst.b (byte_FFFF984E).w beq.w loc_3CA28 move.w (DefinitelyEngineLoad).w,d0 move.w (DefinitelyRpm).w,d1 moveq #$19,d2 movea.l #SPARK_ADVANCE_KA_MAIN_OT_HIGH_OCTANE,a0 ; This calibration determines base spark 'good fuel' contribution to spark advance. ; Degrees jsr SurfaceTableLookup move.w d0,d6 move.w (DefinitelyEngineLoad).w,d0 move.w (DefinitelyRpm).w,d1 moveq #$19,d2 movea.l #SPARK_ADVANCE_KA_MAIN_OT_LOW_OCTANE,a0 ; This calibration determines base spark 'bad fuel' contribution to spark advance. ; Degrees jsr SurfaceTableLookup move.l d6,d3 sub.w d0,d3 movea.w #$1E00,a2 clr.w d4 tst.w d3 bge.s loc_3C9B0 move.l d4,d3 bra.s loc_3C9CE ; --------------------------------------------------------------------------- loc_3C9B0: ; CODE XREF: sub_3C938+72j cmpi.w #$564,d3 bge.s loc_3C9CA ext.l d3 asl.l #7,d3 bmi.s loc_3C9C6 divu.l #$17,d3 bra.s loc_3C9CE ; --------------------------------------------------------------------------- loc_3C9C6: ; CODE XREF: sub_3C938+82j clr.l d3 bra.s loc_3C9CE ; --------------------------------------------------------------------------- loc_3C9CA: ; CODE XREF: sub_3C938+7Cj move.w #$1E00,d3 loc_3C9CE: ; CODE XREF: sub_3C938+76j ; sub_3C938+8Cj ... tblu.w (SPARK_KNOCK_KV_DELTA_OCTANE_MULT).l,d3 mulu.w (word_FFFF9D80).w,d3 lsr.l #8,d3 lsr.l #4,d3 move.w (KnockRetardFast).w,d4 bne.s loc_3CA02 mulu.w (SPARK_KNOCK_KE_OCTANE_SCALER_INCREMENT).l,d3 ; This is the rate to increment the Octane Scaler when conditions are met. ; Multiplier lsr.l #8,d3 lsr.l #4,d3 add.w (IgnitionAdvanceMultiplier).w,d3 cmpi.w #$1000,d3 bls.s loc_3C9FC move.w #$1000,d3 loc_3C9FC: ; CODE XREF: sub_3C938+BEj ; sub_3C938+EAj ... move.w d3,(IgnitionAdvanceMultiplier).w bra.s loc_3CA28 ; --------------------------------------------------------------------------- loc_3CA02: ; CODE XREF: sub_3C938+AAj cmp.w (SPARK_KNOCK_KE_OCT_KNOCK_FAST_THRESH).l,d4 ; Learn down octane scaler only if Knock_Retard_Fast exceeds this minimum threshold. ; Degrees blt.s loc_3CA28 clr.b (byte_FFFF9D32).w mulu.w (SPARK_KNOCK_KE_OCTANE_SCALER_DECREMENT).l,d3 ; This is the rate to decrement the Octane Scaler when conditions are met. ; Multiplier lsr.l #8,d3 lsr.l #4,d3 move.w (IgnitionAdvanceMultiplier).w,d4 sub.w d3,d4 bcs.s loc_3CA24 move.w d4,d3 bra.s loc_3C9FC ; --------------------------------------------------------------------------- loc_3CA24: ; CODE XREF: sub_3C938+E6j clr.w d3 bra.s loc_3C9FC ; --------------------------------------------------------------------------- loc_3CA28: ; CODE XREF: sub_3C938+18j ; sub_3C938+2Cj ... movem.l (sp)+,d0-d2/d6/a0 rts ; End of function sub_3C938 ; =============== S U B R O U T I N E ======================================= sub_3CA2E: ; CODE XREF: sub_3C638:loc_3C682p movem.l d0/a0,-(sp) tst.b (byte_FFFF9D9C).w beq.s loc_3CA44 move.b (byte_FFFF9D8C).w,d0 move.b #1,(byte_FFFF9D96).w bra.s loc_3CA4E ; --------------------------------------------------------------------------- loc_3CA44: ; CODE XREF: sub_3CA2E+8j move.b (SPARK_KNOCK_KE_DIAG_IRIC_DB_GAIN).l,d0 ; This is the value for the BPF Gain in diagnostic mode. ; Gain_dB clr.b (byte_FFFF9D96).w loc_3CA4E: ; CODE XREF: sub_3CA2E+14j move.b d0,(byte_FFFF9D98).w move.w (EngineRPM_PID_000C___).w,d4 move.w (word_FFFFB294).w,d3 lsr.w #8,d4 lsr.w #3,d4 cmpi.b #$14,d4 bls.s loc_3CA66 moveq #$14,d4 loc_3CA66: ; CODE XREF: sub_3CA2E+34j lsr.w #8,d3 lsr.w #1,d3 cmpi.b #4,d3 bcc.s loc_3CA72 moveq #4,d3 loc_3CA72: ; CODE XREF: sub_3CA2E+40j andi.w #$FF,d3 mulu.w #$16,d3 add.b d4,d3 andi.w #$FF,d3 move.b byte_14A98(d3.w),d3 lsl.b #3,d3 andi.b #$F8,d3 andi.b #7,(byte_FFFFBE78).w or.b d3,(byte_FFFFBE78).w bclr #2,(byte_FFFFBE78).w tst.b (byte_FFFF9D2E).w beq.s loc_3CAAA bset #2,(byte_FFFFBE78).w loc_3CAAA: ; CODE XREF: sub_3CA2E+74j move.b (SPARK_KNOCK_KE_DIAG2_MODE).l,d3 ; This calibration selects the output for diagnostics mux 2. ; Mode andi.b #3,d3 andi.b #$FC,(byte_FFFFBE78).w or.b d3,(byte_FFFFBE78).w move.b (SPARK_KNOCK_KE_DIAG1_MODE).l,d3 ; This calibration selects the output for diagnostics mux 1. ; Mode lsl.b #6,d3 andi.b #$C0,d3 andi.b #$3F,(byte_FFFFBE79).w ; '?' or.b d3,(byte_FFFFBE79).w clr.l d3 move.b d4,d3 move.b SPARK_KNOCK_KV_BPF1_Q(d3.w),d5 ; This is the quality factor for bandpass filter 1. ; Q lsl.b #4,d5 andi.b #$30,d5 ; '0' andi.b #$CF,(byte_FFFFBE79).w or.b d5,(byte_FFFFBE79).w move.b SPARK_KNOCK_KV_BPF1_FC(d3.w),d3 ; This is the center frequency for bandpass filter 1. ; KHz andi.b #$F,d3 andi.b #$F0,(byte_FFFFBE79).w or.b d3,(byte_FFFFBE79).w lsl.b #4,d0 andi.b #$F0,d0 andi.b #$F,(byte_FFFFBE7A).w or.b d0,(byte_FFFFBE7A).w bclr #3,(byte_FFFFBE7A).w bclr #2,(byte_FFFFBE7A).w tst.b (SPARK_KNOCK_KE_IR_OFFSET_CANCEL).l ; This calibration controls offset cancellation in the IRIC when in Integrate and Read modes. ; BOOLEAN beq.s loc_3CB30 bset #2,(byte_FFFFBE7A).w loc_3CB30: ; CODE XREF: sub_3CA2E+FAj bclr #1,(byte_FFFFBE7A).w bclr #0,(byte_FFFFBE7A).w movea.l #unk_FFBE78,a0 jsr sub_786B2 movem.l (sp)+,d0/a0 rts ; End of function sub_3CA2E ; =============== S U B R O U T I N E ======================================= sub_3CB4E: ; CODE XREF: DoLoopG:loc_2B388p ; sub_3CB70:loc_3CB8Cp movem.l d0-d1,-(sp) tst.b (ENG_CONSTANTS_KE_TYPE_OF_KNOCK_SENSORS).l ; Identifies whether the engine is equipped with resonant( 0 ) or flat response( 1 ) knock sensors. ; Knock_Sensor_Type bne.s loc_3CB5E clr.b d1 bra.s loc_3CB60 ; --------------------------------------------------------------------------- loc_3CB5E: ; CODE XREF: sub_3CB4E+Aj moveq #1,d1 loc_3CB60: ; CODE XREF: sub_3CB4E+Ej move.w #$D6,d0 ; '?' jsr (sub_1122).l movem.l (sp)+,d0-d1 rts ; End of function sub_3CB4E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3CB70: ; CODE XREF: OS1:00028A70p var_62E2 = -$62E2 var_4 = -4 var_2 = -2 link a6,#-4 movem.l d1-d2/d6/a0-a1,-(sp) clr.l d5 move.b d0,d5 cmpi.w #8,d5 bhi.s loc_3CC00 movea.l off_8A400(d5.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_3CB8C: ; DATA XREF: OS4:0008A408o ; OS4:0008A40Co jsr sub_3CB4E clr.w (KnockRetardFast).w clr.w (word_FFFF9D50).w clr.w (word_FFFF9D34).w moveq #1,d5 move.b d5,(byte_FFFF9D91).w clr.w (word_FFFF9D92).w clr.w (word_FFFF9D7C).w clr.b (byte_FFFF9D99).w move.b (SPARK_KNOCK_KE_KNOCK_DETECTION_MODE).l,(byte_FFFF9D2E).w ; This calibration selects the knock detection configuration. ; IRIC Mode clr.w (word_FFFF9D4E).w clr.b (byte_FFFF9D2D).w clr.w (word_FFFF9D86).w clr.w (word_FFFF9D52).w bra.s loc_3CBF8 ; --------------------------------------------------------------------------- loc_3CBCA: ; DATA XREF: OS4:off_8A400o ; OS4:0008A418o ... clr.w (KnockRetardFast).w clr.w (word_FFFF9D50).w clr.w (word_FFFF9D34).w moveq #1,d5 move.b d5,(byte_FFFF9D91).w clr.w (word_FFFF9D92).w clr.w (word_FFFF9D7C).w clr.b (byte_FFFF9D99).w move.b (SPARK_KNOCK_KE_KNOCK_DETECTION_MODE).l,(byte_FFFF9D2E).w ; This calibration selects the knock detection configuration. ; IRIC Mode clr.w (word_FFFF9D4E).w clr.b (byte_FFFF9D2D).w loc_3CBF8: ; CODE XREF: sub_3CB70+58j clr.b (byte_FFFF9D9C).w clr.b (byte_FFFF9D96).w loc_3CC00: ; CODE XREF: sub_3CB70+10j ; DATA XREF: OS4:0008A404o ... clr.w (word_FFFF9D80).w clr.b (byte_FFFF9D90).w move.b (SPARK_KNOCK_KE_INITIAL_ADAPTIVE_BPF_GAIN).l,(byte_FFFF9D8C).w ; This is the initial value for the BPF Gain. ; Gain_dB clr.w d3 move.b (SPARK_KNOCK_KE_SAMPLE_NUMBER_SLOW).l,d3 clr.w d4 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d4 ; Number of cylinders for this engine application. ; SHORTCARD mulu.w d3,d4 move.b d4,(byte_FFFF9D8F).w movea.l (SPARK_KNOCK_KE_KNOCK_DETECTOR_MAD_INIT).l,a2 ; Initialization value for Knock_Detector_MAD value invoked during powerup. ; Millivolts move.l a2,(dword_FFFF9D6A).w move.l a2,(dword_FFFF9D6E).w clr.b (byte_FFFF9D94).w clr.w (word_FFFF9D4C).w clr.w (word_FFFF9D88).w clr.b (byte_FFFF9D9E).w clr.b (byte_FFFF9D2C).w clr.b (byte_FFFF9D95).w clr.w d4 move.b (SPARK_KNOCK_KE_MUX_PATTERN_CONTROL).l,d4 move.w (word_FFFFE1C8).w,var_4(a6) move.w (word_FFFFE1F0).w,var_2(a6) move.b var_4(a6),d3 sub.b var_2(a6),d3 tst.b d3 bge.s loc_3CC78 move.w (word_FFFFE060).w,d3 clr.w d3 add.w d4,d4 add.w d3,d4 bra.s loc_3CC8C ; --------------------------------------------------------------------------- loc_3CC78: ; CODE XREF: sub_3CB70+FAj tst.b d3 bne.s loc_3CC8C movea.w (word_FFFFE1E4).w,a2 loc_3CC80: ; CODE XREF: sub_3CB70+11Aj move.w (word_FFFFE1E4).w,d3 sub.w a2,d3 cmpi.w #1,d3 bls.s loc_3CC80 loc_3CC8C: ; CODE XREF: sub_3CB70+106j ; sub_3CB70+10Aj move.w d4,(word_FFFFE060).w cmpi.b #2,d0 bne.s loc_3CD0E tst.b (SPARK_KNOCK_KE_IR_AVG_NOISE_MODIFY_INIT).l ; When set to TRUE, all IR average noise levels will be set to a calibration upon initialization. ; Boolean beq.s loc_3CCB6 clr.b d3 loc_3CCA0: ; CODE XREF: sub_3CB70+144j clr.l d4 move.b d3,d4 move.w (SPARK_KNOCK_KE_IR_AVERAGE_NOISE_INITIAL).l,$18+var_62E2(d4.w*2) ; If KE_IR_Avg_Noise_Modify_Init is TRUE then all IR average noise levels will be set to this calibration upon initialization. ; Volts addq.b #1,d3 cmpi.b #7,d3 bls.s loc_3CCA0 loc_3CCB6: ; CODE XREF: sub_3CB70+12Cj tst.b (byte_FFFFB54A).w bne.s loc_3CCC6 move.w (SPARK_KNOCK_KE_OCTANE_INIT_SCALER).l,(IgnitionAdvanceMultiplier).w ; This calibration is the initial value for Octane Scaler. ; Multiplier bra.s loc_3CD0E ; --------------------------------------------------------------------------- loc_3CCC6: ; CODE XREF: sub_3CB70+14Aj tst.b (SPARK_KNOCK_KE_OCTANE_SCALER_MODIFY_ON_INIT).l ; When set to TRUE the octane adaptive scaler will be modified on every powerup. ; Boolean beq.s loc_3CD0E move.w (IgnitionAdvanceMultiplier).w,d6 lsr.w #1,d6 move.w (CoolantTemperatureOrDefault).w,d1 move.w (word_FFFFB3E8).w,d0 movea.w #$400,a1 add.w a1,d1 add.w a1,d0 moveq #$13,d2 movea.l #SPARK_KNOCK_KA_OCTANE_INIT_MODIFIER,a0 ; Octane adaptive scaler is modified by this calibrated amount every powerup when KE_Octane_Scaler_Modify_On_Init is TRUE. ; Scaler -1 to 1 jsr SurfaceTableLookup add.w d0,d6 cmpi.w #$7FFF,d6 bhi.s loc_3CD08 add.w d6,d6 cmpi.w #$1000,d6 bls.s loc_3CD0A move.w #$1000,d6 bra.s loc_3CD0A ; --------------------------------------------------------------------------- loc_3CD08: ; CODE XREF: sub_3CB70+188j clr.w d6 loc_3CD0A: ; CODE XREF: sub_3CB70+190j ; sub_3CB70+196j move.w d6,(IgnitionAdvanceMultiplier).w loc_3CD0E: ; CODE XREF: sub_3CB70+124j ; sub_3CB70+154j ... movem.l (sp)+,d1-d2/d6/a0-a1 unlk a6 rts ; End of function sub_3CB70 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3CD16: ; CODE XREF: sub_39F12:loc_39F4Cp ; sub_39F12+14Cp ... var_4 = -4 link a6,#0 move.l a0,-(sp) movem.l d2/d6,-(sp) clr.w d3 move.l #$148,d6 cmp.w d1,d6 bls.s loc_3CD30 move.l d3,d1 bra.s loc_3CD56 ; --------------------------------------------------------------------------- loc_3CD30: ; CODE XREF: sub_3CD16+14j cmpi.w #$1333,d1 bcc.s loc_3CD52 andi.l #$FFFF,d1 sub.l d6,d1 asl.l #8,d1 asl.l #4,d1 bmi.s loc_3CD4E divu.l #$A3D,d1 bra.s loc_3CD56 ; --------------------------------------------------------------------------- loc_3CD4E: ; CODE XREF: sub_3CD16+2Cj clr.l d1 bra.s loc_3CD56 ; --------------------------------------------------------------------------- loc_3CD52: ; CODE XREF: sub_3CD16+1Ej move.w #$1C00,d1 loc_3CD56: ; CODE XREF: sub_3CD16+18j ; sub_3CD16+36j ... cmpi.w #$6000,d0 bcc.s loc_3CD60 lsr.w #3,d0 bra.s loc_3CD64 ; --------------------------------------------------------------------------- loc_3CD60: ; CODE XREF: sub_3CD16+44j move.w #$C00,d0 loc_3CD64: ; CODE XREF: sub_3CD16+48j moveq #$D,d2 movea.l var_4(a6),a0 jsr SurfaceTableLookup movem.l (sp)+,d2/d6 unlk a6 rts ; End of function sub_3CD16 ; =============== S U B R O U T I N E ======================================= sub_3CD78: ; CODE XREF: DoLoopC+A0p DoLoopC+3E0p ... movem.l d1-d2/a0,-(sp) cmpi.b #5,d0 beq.w loc_3CE7A cmpi.b #3,d0 bne.w loc_3D7AA btst #7,(byte_FFFFA804).w beq.w loc_3CE40 btst #6,(byte_FFFFA804).w bne.s loc_3CDD6 move.b (byte_FFFFA807).w,d0 jsr sub_3E1DC tst.b d0 beq.s loc_3CDCE btst #5,(byte_FFFFA802).w beq.s loc_3CDBA jsr sub_3E4B4 loc_3CDBA: ; CODE XREF: sub_3CD78+3Aj bclr #7,(byte_FFFFA7E0).w loc_3CDC0: ; CODE XREF: sub_3CD78+A2j bclr #6,(byte_FFFFA7E0).w loc_3CDC6: ; CODE XREF: sub_3CD78+80j jsr sub_41D74 bra.s loc_3CE4C ; --------------------------------------------------------------------------- loc_3CDCE: ; CODE XREF: sub_3CD78+32j bset #7,(byte_FFFFA7E0).w bra.s loc_3CE46 ; --------------------------------------------------------------------------- loc_3CDD6: ; CODE XREF: sub_3CD78+24j btst #5,(byte_FFFFA804).w beq.s loc_3CE0E move.b (byte_FFFFA807).w,d0 jsr sub_3E12E tst.b d0 beq.s loc_3CDFA bclr #6,(byte_FFFFA7E0).w bclr #7,(byte_FFFFA7E0).w bra.s loc_3CDC6 ; --------------------------------------------------------------------------- loc_3CDFA: ; CODE XREF: sub_3CD78+72j bset #6,(byte_FFFFA7E0).w bclr #6,(byte_FFFFA7E4).w loc_3CE06: ; CODE XREF: sub_3CD78+C6j bclr #7,(byte_FFFFA7E0).w bra.s loc_3CE4C ; --------------------------------------------------------------------------- loc_3CE0E: ; CODE XREF: sub_3CD78+64j move.b (byte_FFFFA807).w,d0 jsr sub_3E040 tst.b d0 bne.s loc_3CDC0 btst #6,(byte_FFFFA7E4).w beq.s loc_3CE32 clr.w d3 move.b (byte_FFFFA7F7).w,d3 tst.b -$7D70(d3.w) bne.s loc_3CE46 loc_3CE32: ; CODE XREF: sub_3CD78+AAj bset #6,(byte_FFFFA7E0).w bset #6,(byte_FFFFA7E4).w bra.s loc_3CE06 ; --------------------------------------------------------------------------- loc_3CE40: ; CODE XREF: sub_3CD78+1Aj bclr #7,(byte_FFFFA7E0).w loc_3CE46: ; CODE XREF: sub_3CD78+5Cj ; sub_3CD78+B8j bclr #6,(byte_FFFFA7E0).w loc_3CE4C: ; CODE XREF: sub_3CD78+54j ; sub_3CD78+94j cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_3D7AA clr.b (byte_FFFF8290).w clr.b (byte_FFFF8291).w clr.b (byte_FFFF8292).w clr.b (byte_FFFF8293).w clr.b (byte_FFFF8294).w clr.b (byte_FFFF8295).w clr.b (byte_FFFF8296).w clr.b (byte_FFFF8297).w bra.w loc_3D7AA ; --------------------------------------------------------------------------- loc_3CE7A: ; CODE XREF: sub_3CD78+8j tst.b (byte_FFFFA7F9).w beq.s loc_3CE9A cmpi.w #$500,(word_FFFFB4A2).w bcc.s loc_3CE9A jsr sub_3E4B4 move.w #3,(word_FFFFA7FA).w jsr sub_41D74 loc_3CE9A: ; CODE XREF: sub_3CD78+106j ; sub_3CD78+10Ej btst #7,(byte_FFFFA7FC).w beq.s loc_3CEC0 bset #3,(word_FFFFA7DC).w btst #7,(byte_FFFFA7FD).w beq.s loc_3CEB8 bset #7,(word_FFFFA7E2).w bra.s loc_3CEC6 ; --------------------------------------------------------------------------- loc_3CEB8: ; CODE XREF: sub_3CD78+136j bclr #7,(word_FFFFA7E2).w bra.s loc_3CEC6 ; --------------------------------------------------------------------------- loc_3CEC0: ; CODE XREF: sub_3CD78+128j bclr #3,(word_FFFFA7DC).w loc_3CEC6: ; CODE XREF: sub_3CD78+13Ej ; sub_3CD78+146j btst #6,(byte_FFFFA7FC).w beq.s loc_3CEEC bset #2,(word_FFFFA7DC).w btst #6,(byte_FFFFA7FD).w beq.s loc_3CEE4 bset #6,(word_FFFFA7E2).w bra.s loc_3CEF2 ; --------------------------------------------------------------------------- loc_3CEE4: ; CODE XREF: sub_3CD78+162j bclr #6,(word_FFFFA7E2).w bra.s loc_3CEF2 ; --------------------------------------------------------------------------- loc_3CEEC: ; CODE XREF: sub_3CD78+154j bclr #2,(word_FFFFA7DC).w loc_3CEF2: ; CODE XREF: sub_3CD78+16Aj ; sub_3CD78+172j btst #1,(byte_FFFFA7FC).w beq.s loc_3CF18 bset #1,(word_FFFFA7DC).w btst #1,(byte_FFFFA7FD).w beq.s loc_3CF10 bset #5,(word_FFFFA7E2).w bra.s loc_3CF1E ; --------------------------------------------------------------------------- loc_3CF10: ; CODE XREF: sub_3CD78+18Ej bclr #5,(word_FFFFA7E2).w bra.s loc_3CF1E ; --------------------------------------------------------------------------- loc_3CF18: ; CODE XREF: sub_3CD78+180j bclr #1,(word_FFFFA7DC).w loc_3CF1E: ; CODE XREF: sub_3CD78+196j ; sub_3CD78+19Ej btst #0,(byte_FFFFA7FC).w beq.s loc_3CF44 bset #0,(word_FFFFA7DC).w btst #0,(byte_FFFFA7FD).w beq.s loc_3CF3C bset #4,(word_FFFFA7E2).w bra.s loc_3CF4A ; --------------------------------------------------------------------------- loc_3CF3C: ; CODE XREF: sub_3CD78+1BAj bclr #4,(word_FFFFA7E2).w bra.s loc_3CF4A ; --------------------------------------------------------------------------- loc_3CF44: ; CODE XREF: sub_3CD78+1ACj bclr #0,(word_FFFFA7DC).w loc_3CF4A: ; CODE XREF: sub_3CD78+1C2j ; sub_3CD78+1CAj btst #3,(byte_FFFFA801).w beq.s loc_3CF66 tst.b (byte_FFFF98DB).w beq.s loc_3CF5E tst.b (byte_FFFFA894).w bne.s loc_3CF66 loc_3CF5E: ; CODE XREF: sub_3CD78+1DEj bset #4,(byte_FFFFA7DE).w bra.s loc_3CF7A ; --------------------------------------------------------------------------- loc_3CF66: ; CODE XREF: sub_3CD78+1D8j ; sub_3CD78+1E4j bclr #4,(byte_FFFFA7DE).w bclr #3,(byte_FFFFA801).w clr.b (byte_FFFF98DB).w clr.b (byte_FFFFA894).w loc_3CF7A: ; CODE XREF: sub_3CD78+1ECj btst #7,(byte_FFFFA7FE).w beq.s loc_3CFB2 btst #7,(byte_FFFFA7FF).w beq.s loc_3CF98 bset #7,(word_FFFFA7DC+1).w bset #3,(word_FFFFA7E2).w bra.s loc_3CFB8 ; --------------------------------------------------------------------------- loc_3CF98: ; CODE XREF: sub_3CD78+210j moveq #1,d0 jsr sub_3DD8C tst.b d0 bne.s loc_3CFB2 bset #7,(word_FFFFA7DC+1).w bclr #3,(word_FFFFA7E2).w bra.s loc_3CFB8 ; --------------------------------------------------------------------------- loc_3CFB2: ; CODE XREF: sub_3CD78+208j ; sub_3CD78+22Aj bclr #7,(word_FFFFA7DC+1).w loc_3CFB8: ; CODE XREF: sub_3CD78+21Ej ; sub_3CD78+238j btst #6,(byte_FFFFA7FE).w beq.s loc_3CFF0 btst #6,(byte_FFFFA7FF).w beq.s loc_3CFD6 bset #6,(word_FFFFA7DC+1).w bset #2,(word_FFFFA7E2).w bra.s loc_3CFF6 ; --------------------------------------------------------------------------- loc_3CFD6: ; CODE XREF: sub_3CD78+24Ej clr.b d0 jsr sub_3DD8C tst.b d0 bne.s loc_3CFF0 bset #6,(word_FFFFA7DC+1).w bclr #2,(word_FFFFA7E2).w bra.s loc_3CFF6 ; --------------------------------------------------------------------------- loc_3CFF0: ; CODE XREF: sub_3CD78+246j ; sub_3CD78+268j bclr #6,(word_FFFFA7DC+1).w loc_3CFF6: ; CODE XREF: sub_3CD78+25Cj ; sub_3CD78+276j btst #5,(byte_FFFFA7FE).w beq.s loc_3D03A btst #5,(byte_FFFFA7FF).w beq.s loc_3D02C jsr sub_3DDE4 tst.b d0 beq.s loc_3D01E bclr #5,(word_FFFFA7DC+1).w jsr sub_41D74 bra.s loc_3D040 ; --------------------------------------------------------------------------- loc_3D01E: ; CODE XREF: sub_3CD78+296j bset #5,(word_FFFFA7DC+1).w bset #1,(word_FFFFA7E2).w bra.s loc_3D040 ; --------------------------------------------------------------------------- loc_3D02C: ; CODE XREF: sub_3CD78+28Cj bset #5,(word_FFFFA7DC+1).w bclr #1,(word_FFFFA7E2).w bra.s loc_3D040 ; --------------------------------------------------------------------------- loc_3D03A: ; CODE XREF: sub_3CD78+284j bclr #5,(word_FFFFA7DC+1).w loc_3D040: ; CODE XREF: sub_3CD78+2A4j ; sub_3CD78+2B2j ... btst #4,(byte_FFFFA7FE).w beq.s loc_3D07C jsr sub_3DE0C tst.b d0 beq.s loc_3D060 bclr #4,(word_FFFFA7DC+1).w jsr sub_41D74 bra.s loc_3D082 ; --------------------------------------------------------------------------- loc_3D060: ; CODE XREF: sub_3CD78+2D8j bset #4,(word_FFFFA7DC+1).w btst #4,(byte_FFFFA7FF).w beq.s loc_3D076 move.b #$FF,(byte_FFFFA7E8).w bra.s loc_3D082 ; --------------------------------------------------------------------------- loc_3D076: ; CODE XREF: sub_3CD78+2F4j clr.b (byte_FFFFA7E8).w bra.s loc_3D082 ; --------------------------------------------------------------------------- loc_3D07C: ; CODE XREF: sub_3CD78+2CEj bclr #4,(word_FFFFA7DC+1).w loc_3D082: ; CODE XREF: sub_3CD78+2E6j ; sub_3CD78+2FCj ... btst #2,(byte_FFFFA802).w beq.s loc_3D0B0 jsr sub_3DE0C tst.b d0 beq.s loc_3D0A2 bclr #0,(word_FFFFA7DC+1).w jsr sub_41D74 bra.s loc_3D0B6 ; --------------------------------------------------------------------------- loc_3D0A2: ; CODE XREF: sub_3CD78+31Aj bset #0,(word_FFFFA7DC+1).w move.b (byte_FFFFA803).w,(byte_FFFFA7E8).w bra.s loc_3D0B6 ; --------------------------------------------------------------------------- loc_3D0B0: ; CODE XREF: sub_3CD78+310j bclr #0,(word_FFFFA7DC+1).w loc_3D0B6: ; CODE XREF: sub_3CD78+328j ; sub_3CD78+336j btst #3,(byte_FFFFA802).w beq.s loc_3D0E4 jsr sub_3DE42 tst.b d0 beq.s loc_3D0D6 bclr #7,(byte_FFFFA7E1).w jsr sub_41D74 bra.s loc_3D0EA ; --------------------------------------------------------------------------- loc_3D0D6: ; CODE XREF: sub_3CD78+34Ej bset #7,(byte_FFFFA7E1).w move.b (byte_FFFFA803).w,(byte_FFFFA7E9).w bra.s loc_3D0EA ; --------------------------------------------------------------------------- loc_3D0E4: ; CODE XREF: sub_3CD78+344j bclr #7,(byte_FFFFA7E1).w loc_3D0EA: ; CODE XREF: sub_3CD78+35Cj ; sub_3CD78+36Aj btst #3,(byte_FFFFA7FE).w beq.s loc_3D128 jsr sub_3DE6E tst.b d0 beq.s loc_3D10A bclr #3,(word_FFFFA7DC+1).w jsr sub_41D74 bra.s loc_3D12E ; --------------------------------------------------------------------------- loc_3D10A: ; CODE XREF: sub_3CD78+382j bset #3,(word_FFFFA7DC+1).w btst #3,(byte_FFFFA7FF).w beq.s loc_3D120 bset #7,(word_FFFFA7E2+1).w bra.s loc_3D12E ; --------------------------------------------------------------------------- loc_3D120: ; CODE XREF: sub_3CD78+39Ej bclr #7,(word_FFFFA7E2+1).w bra.s loc_3D12E ; --------------------------------------------------------------------------- loc_3D128: ; CODE XREF: sub_3CD78+378j bclr #3,(word_FFFFA7DC+1).w loc_3D12E: ; CODE XREF: sub_3CD78+390j ; sub_3CD78+3A6j ... btst #2,(byte_FFFFA7FE).w beq.w loc_3D1BC btst #2,(byte_FFFFA7FF).w beq.s loc_3D192 tst.b (byte_FFFFA816).w beq.s loc_3D178 move.w #$140,d0 movea.l #unk_FFA814,a0 jsr sub_276D4 tst.b d0 beq.s loc_3D1C2 tst.b (byte_FFFFA80F).w bne.s loc_3D1C2 bclr #2,(word_FFFFA7DC+1).w clr.b (byte_FFFFA816).w bclr #2,(byte_FFFFA7FE).w bclr #2,(byte_FFFFA7FF).w bra.s loc_3D1C2 ; --------------------------------------------------------------------------- loc_3D178: ; CODE XREF: sub_3CD78+3CCj move.w (GlobalClock).w,(word_FFFFA814).w bset #2,(word_FFFFA7DC+1).w move.b #1,(byte_FFFFA816).w bset #6,(word_FFFFA7E2+1).w bra.s loc_3D1C2 ; --------------------------------------------------------------------------- loc_3D192: ; CODE XREF: sub_3CD78+3C6j clr.b (byte_FFFFA816).w jsr sub_3DEA4 tst.b d0 beq.s loc_3D1AE bclr #2,(word_FFFFA7DC+1).w jsr sub_41D74 bra.s loc_3D1C2 ; --------------------------------------------------------------------------- loc_3D1AE: ; CODE XREF: sub_3CD78+426j bset #2,(word_FFFFA7DC+1).w bclr #6,(word_FFFFA7E2+1).w bra.s loc_3D1C2 ; --------------------------------------------------------------------------- loc_3D1BC: ; CODE XREF: sub_3CD78+3BCj bclr #2,(word_FFFFA7DC+1).w loc_3D1C2: ; CODE XREF: sub_3CD78+3E0j ; sub_3CD78+3E6j ... btst #1,(byte_FFFFA7FE).w beq.s loc_3D1E8 bset #1,(word_FFFFA7DC+1).w btst #1,(byte_FFFFA7FF).w beq.s loc_3D1E0 bset #5,(word_FFFFA7E2+1).w bra.s loc_3D1EE ; --------------------------------------------------------------------------- loc_3D1E0: ; CODE XREF: sub_3CD78+45Ej bclr #5,(word_FFFFA7E2+1).w bra.s loc_3D1EE ; --------------------------------------------------------------------------- loc_3D1E8: ; CODE XREF: sub_3CD78+450j bclr #1,(word_FFFFA7DC+1).w loc_3D1EE: ; CODE XREF: sub_3CD78+466j ; sub_3CD78+46Ej btst #7,(byte_FFFFA800).w beq.s loc_3D214 bset #7,(byte_FFFFA7DE).w btst #7,(byte_FFFFA801).w beq.s loc_3D20C bset #4,(word_FFFFA7E2+1).w bra.s loc_3D21A ; --------------------------------------------------------------------------- loc_3D20C: ; CODE XREF: sub_3CD78+48Aj bclr #4,(word_FFFFA7E2+1).w bra.s loc_3D21A ; --------------------------------------------------------------------------- loc_3D214: ; CODE XREF: sub_3CD78+47Cj bclr #7,(byte_FFFFA7DE).w loc_3D21A: ; CODE XREF: sub_3CD78+492j ; sub_3CD78+49Aj btst #5,(byte_FFFFA800).w beq.s loc_3D240 bset #6,(byte_FFFFA7DE).w btst #5,(byte_FFFFA801).w beq.s loc_3D238 bset #3,(word_FFFFA7E2+1).w bra.s loc_3D246 ; --------------------------------------------------------------------------- loc_3D238: ; CODE XREF: sub_3CD78+4B6j bclr #3,(word_FFFFA7E2+1).w bra.s loc_3D246 ; --------------------------------------------------------------------------- loc_3D240: ; CODE XREF: sub_3CD78+4A8j bclr #6,(byte_FFFFA7DE).w loc_3D246: ; CODE XREF: sub_3CD78+4BEj ; sub_3CD78+4C6j btst #3,(byte_FFFFA800).w beq.s loc_3D26E jsr sub_3DEE2 tst.b d0 beq.s loc_3D266 bclr #3,(byte_FFFFA7DE).w jsr sub_41D74 bra.s loc_3D274 ; --------------------------------------------------------------------------- loc_3D266: ; CODE XREF: sub_3CD78+4DEj bset #3,(byte_FFFFA7DE).w bra.s loc_3D274 ; --------------------------------------------------------------------------- loc_3D26E: ; CODE XREF: sub_3CD78+4D4j bclr #3,(byte_FFFFA7DE).w loc_3D274: ; CODE XREF: sub_3CD78+4ECj ; sub_3CD78+4F4j btst #2,(byte_FFFFA800).w beq.s loc_3D2E4 jsr sub_3DF86 tst.b d0 bne.s loc_3D294 bset #2,(byte_FFFFA7DE).w bclr #1,(byte_FFFFA7DE).w bra.s loc_3D2CC ; --------------------------------------------------------------------------- loc_3D294: ; CODE XREF: sub_3CD78+50Cj move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d3 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_3D2A2 cmpi.b #1,d3 bne.s loc_3D2BA loc_3D2A2: ; CODE XREF: sub_3CD78+522j jsr sub_3E3D6 tst.b d0 bne.s loc_3D2BA bclr #2,(byte_FFFFA7DE).w bset #1,(byte_FFFFA7DE).w bra.s loc_3D2CC ; --------------------------------------------------------------------------- loc_3D2BA: ; CODE XREF: sub_3CD78+528j ; sub_3CD78+532j bclr #2,(byte_FFFFA7DE).w bclr #1,(byte_FFFFA7DE).w jsr sub_41D74 loc_3D2CC: ; CODE XREF: sub_3CD78+51Aj ; sub_3CD78+540j btst #2,(byte_FFFFA801).w beq.s loc_3D2DC bset #1,(word_FFFFA7E2+1).w bra.s loc_3D2F0 ; --------------------------------------------------------------------------- loc_3D2DC: ; CODE XREF: sub_3CD78+55Aj bclr #1,(word_FFFFA7E2+1).w bra.s loc_3D2F0 ; --------------------------------------------------------------------------- loc_3D2E4: ; CODE XREF: sub_3CD78+502j bclr #2,(byte_FFFFA7DE).w bclr #1,(byte_FFFFA7DE).w loc_3D2F0: ; CODE XREF: sub_3CD78+562j ; sub_3CD78+56Aj btst #1,(byte_FFFFA80A).w beq.s loc_3D31E jsr sub_3E3D6 tst.b d0 bne.s loc_3D310 bset #6,(byte_FFFFA7DF).w move.b (byte_FFFFA80C).w,(byte_FFFFA7F3).w bra.s loc_3D324 ; --------------------------------------------------------------------------- loc_3D310: ; CODE XREF: sub_3CD78+588j bclr #6,(byte_FFFFA7DF).w jsr sub_41D74 bra.s loc_3D324 ; --------------------------------------------------------------------------- loc_3D31E: ; CODE XREF: sub_3CD78+57Ej bclr #6,(byte_FFFFA7DF).w loc_3D324: ; CODE XREF: sub_3CD78+596j ; sub_3CD78+5A4j btst #0,(byte_FFFFA800).w beq.s loc_3D362 jsr sub_3DF96 tst.b d0 beq.s loc_3D344 bclr #7,(byte_FFFFA7DF).w jsr sub_41D74 bra.s loc_3D368 ; --------------------------------------------------------------------------- loc_3D344: ; CODE XREF: sub_3CD78+5BCj bset #7,(byte_FFFFA7DF).w btst #0,(byte_FFFFA801).w beq.s loc_3D35A bset #7,(byte_FFFFA7E4).w bra.s loc_3D368 ; --------------------------------------------------------------------------- loc_3D35A: ; CODE XREF: sub_3CD78+5D8j bclr #7,(byte_FFFFA7E4).w bra.s loc_3D368 ; --------------------------------------------------------------------------- loc_3D362: ; CODE XREF: sub_3CD78+5B2j bclr #7,(byte_FFFFA7DF).w loc_3D368: ; CODE XREF: sub_3CD78+5CAj ; sub_3CD78+5E0j ... btst #6,(byte_FFFFA802).w beq.s loc_3D3A0 bset #4,(byte_FFFFA7DF).w clr.w d3 move.b (byte_FFFFA803).w,d3 clr.l d4 move.w (F_TANK_KE_FUEL_TANK_RATED_CAPACITY).l,d4 ; Maximum Fuel Tank volume as rated by GMUTS and/or the platform. ; Liters asl.l #6,d4 move.w #$FF,d2 divu.w d2,d4 cmpi.w #$4000,d4 bls.s loc_3D396 move.w #$4000,d4 loc_3D396: ; CODE XREF: sub_3CD78+618j mulu.w d4,d3 lsr.l #6,d3 move.w d3,(word_FFFFA7E6).w bra.s loc_3D3A6 ; --------------------------------------------------------------------------- loc_3D3A0: ; CODE XREF: sub_3CD78+5F6j bclr #4,(byte_FFFFA7DF).w loc_3D3A6: ; CODE XREF: sub_3CD78+626j btst #4,(byte_FFFFA802).w beq.s loc_3D3B6 bset #3,(byte_FFFFA7DF).w bra.s loc_3D3BC ; --------------------------------------------------------------------------- loc_3D3B6: ; CODE XREF: sub_3CD78+634j bclr #3,(byte_FFFFA7DF).w loc_3D3BC: ; CODE XREF: sub_3CD78+63Cj btst #1,(byte_FFFFA802).w beq.s loc_3D438 btst #1,(byte_FFFFA804).w sne d4 neg.b d4 btst #0,(byte_FFFFA804).w sne d3 neg.b d3 tst.b d4 bne.s loc_3D404 tst.b d3 bne.s loc_3D404 move.b (byte_FFFFA805).w,d0 jsr sub_3DFF8 tst.b d0 beq.s loc_3D3FC bclr #1,(byte_FFFFA7DF).w jsr sub_41D74 bra.s loc_3D43E ; --------------------------------------------------------------------------- loc_3D3FC: ; CODE XREF: sub_3CD78+674j bset #1,(byte_FFFFA7DF).w bra.s loc_3D43E ; --------------------------------------------------------------------------- loc_3D404: ; CODE XREF: sub_3CD78+662j ; sub_3CD78+666j and.b d3,d4 beq.s loc_3D444 tst.b (byte_FFFFB370).w bne.s loc_3D430 move.b (byte_FFFFA805).w,d0 jsr sub_3DFBA tst.b d0 beq.s loc_3D42A bclr #2,(byte_FFFFA7DF).w jsr sub_41D74 bra.s loc_3D430 ; --------------------------------------------------------------------------- loc_3D42A: ; CODE XREF: sub_3CD78+6A2j bset #2,(byte_FFFFA7DF).w loc_3D430: ; CODE XREF: sub_3CD78+694j ; sub_3CD78+6B0j bclr #1,(byte_FFFFA7DF).w bra.s loc_3D444 ; --------------------------------------------------------------------------- loc_3D438: ; CODE XREF: sub_3CD78+64Aj bclr #1,(byte_FFFFA7DF).w loc_3D43E: ; CODE XREF: sub_3CD78+682j ; sub_3CD78+68Aj bclr #2,(byte_FFFFA7DF).w loc_3D444: ; CODE XREF: sub_3CD78+68Ej ; sub_3CD78+6BEj btst #0,(byte_FFFFA802).w beq.s loc_3D45A bset #0,(byte_FFFFA7DF).w move.b (byte_FFFFA803).w,(byte_FFFFA7EA).w bra.s loc_3D460 ; --------------------------------------------------------------------------- loc_3D45A: ; CODE XREF: sub_3CD78+6D2j bclr #0,(byte_FFFFA7DF).w loc_3D460: ; CODE XREF: sub_3CD78+6E0j btst #4,(byte_FFFFA804).w beq.s loc_3D4DE move.b (byte_FFFFA806).w,d1 move.b (byte_FFFFA804).w,d0 jsr sub_3DF16 tst.b d0 beq.s loc_3D488 bclr #5,(byte_FFFFA7E0).w jsr sub_41D74 bra.s loc_3D4F0 ; --------------------------------------------------------------------------- loc_3D488: ; CODE XREF: sub_3CD78+700j bset #5,(byte_FFFFA7E0).w btst #3,(byte_FFFFA804).w beq.s loc_3D4A4 bset #4,(byte_FFFFA7E4).w bclr #5,(byte_FFFFA7E4).w bra.s loc_3D4BC ; --------------------------------------------------------------------------- loc_3D4A4: ; CODE XREF: sub_3CD78+71Cj bset #5,(byte_FFFFA7E4).w bclr #4,(byte_FFFFA7E4).w clr.w d3 move.b (byte_FFFFA806).w,d3 asl.w #4,d3 move.w d3,(word_FFFFA7F0).w loc_3D4BC: ; CODE XREF: sub_3CD78+72Aj btst #2,(byte_FFFFA804).w beq.s loc_3D4D0 clr.w d3 move.b (byte_FFFFA806).w,d3 asl.w #4,d3 neg.w d3 bra.s loc_3D4D8 ; --------------------------------------------------------------------------- loc_3D4D0: ; CODE XREF: sub_3CD78+74Aj clr.w d3 move.b (byte_FFFFA806).w,d3 asl.w #4,d3 loc_3D4D8: ; CODE XREF: sub_3CD78+756j move.w d3,(word_FFFFA7F0).w bra.s loc_3D4F0 ; --------------------------------------------------------------------------- loc_3D4DE: ; CODE XREF: sub_3CD78+6EEj bclr #5,(byte_FFFFA7E0).w bclr #4,(byte_FFFFA7E4).w bclr #5,(byte_FFFFA7E4).w loc_3D4F0: ; CODE XREF: sub_3CD78+70Ej ; sub_3CD78+764j btst #1,(byte_FFFFA808).w beq.s loc_3D516 bset #4,(byte_FFFFA7E0).w btst #1,(byte_FFFFA809).w beq.s loc_3D50E bset #1,(byte_FFFFA7E4).w bra.s loc_3D51C ; --------------------------------------------------------------------------- loc_3D50E: ; CODE XREF: sub_3CD78+78Cj bclr #1,(byte_FFFFA7E4).w bra.s loc_3D51C ; --------------------------------------------------------------------------- loc_3D516: ; CODE XREF: sub_3CD78+77Ej bclr #4,(byte_FFFFA7E0).w loc_3D51C: ; CODE XREF: sub_3CD78+794j ; sub_3CD78+79Cj btst #0,(byte_FFFFA808).w beq.s loc_3D542 bset #3,(byte_FFFFA7E0).w btst #0,(byte_FFFFA809).w beq.s loc_3D53A bset #0,(byte_FFFFA7E4).w bra.s loc_3D548 ; --------------------------------------------------------------------------- loc_3D53A: ; CODE XREF: sub_3CD78+7B8j bclr #0,(byte_FFFFA7E4).w bra.s loc_3D548 ; --------------------------------------------------------------------------- loc_3D542: ; CODE XREF: sub_3CD78+7AAj bclr #3,(byte_FFFFA7E0).w loc_3D548: ; CODE XREF: sub_3CD78+7C0j ; sub_3CD78+7C8j btst #5,(byte_FFFFA80A).w beq.s loc_3D574 move.b (byte_FFFFA80A).w,d0 jsr sub_3E250 tst.b d0 beq.s loc_3D56C bclr #2,(byte_FFFFA7E0).w jsr sub_41D74 bra.s loc_3D57A ; --------------------------------------------------------------------------- loc_3D56C: ; CODE XREF: sub_3CD78+7E4j bset #2,(byte_FFFFA7E0).w bra.s loc_3D57A ; --------------------------------------------------------------------------- loc_3D574: ; CODE XREF: sub_3CD78+7D6j bclr #2,(byte_FFFFA7E0).w loc_3D57A: ; CODE XREF: sub_3CD78+7F2j ; sub_3CD78+7FAj btst #2,(byte_FFFFA80A).w beq.s loc_3D5A6 move.b (byte_FFFFA80D).w,d0 jsr sub_3E346 tst.b d0 beq.s loc_3D59E bclr #1,(byte_FFFFA7E0).w jsr sub_41D74 bra.s loc_3D5AC ; --------------------------------------------------------------------------- loc_3D59E: ; CODE XREF: sub_3CD78+816j bset #1,(byte_FFFFA7E0).w bra.s loc_3D5AC ; --------------------------------------------------------------------------- loc_3D5A6: ; CODE XREF: sub_3CD78+808j bclr #1,(byte_FFFFA7E0).w loc_3D5AC: ; CODE XREF: sub_3CD78+824j ; sub_3CD78+82Cj btst #1,(byte_FFFFA800).w beq.s loc_3D5D2 bset #0,(byte_FFFFA7DE).w btst #1,(byte_FFFFA801).w beq.s loc_3D5CA loc_3D5C2: ; CODE XREF: sub_3CD78+86Ej bset #2,(word_FFFFA7E2+1).w bra.s loc_3D5F0 ; --------------------------------------------------------------------------- loc_3D5CA: ; CODE XREF: sub_3CD78+848j ; sub_3CD78+870j bclr #2,(word_FFFFA7E2+1).w bra.s loc_3D5F0 ; --------------------------------------------------------------------------- loc_3D5D2: ; CODE XREF: sub_3CD78+83Aj btst #2,(byte_FFFFA808).w beq.s loc_3D5EA bset #0,(byte_FFFFA7DE).w btst #2,(byte_FFFFA809).w bne.s loc_3D5C2 bra.s loc_3D5CA ; --------------------------------------------------------------------------- loc_3D5EA: ; CODE XREF: sub_3CD78+860j bclr #0,(byte_FFFFA7DE).w loc_3D5F0: ; CODE XREF: sub_3CD78+850j ; sub_3CD78+858j btst #0,(byte_FFFFA80A).w beq.s loc_3D606 bset #0,(byte_FFFFA7E0).w move.b (byte_FFFFA80B).w,(byte_FFFFA7F4).w bra.s loc_3D63E ; --------------------------------------------------------------------------- loc_3D606: ; CODE XREF: sub_3CD78+87Ej btst #0,(byte_FFFFA800).w beq.s loc_3D638 move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d3 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_3D61C cmpi.b #1,d3 bne.s loc_3D638 loc_3D61C: ; CODE XREF: sub_3CD78+89Cj bset #0,(byte_FFFFA7E0).w btst #0,(byte_FFFFA801).w beq.s loc_3D632 move.b #$FF,(byte_FFFFA7F4).w bra.s loc_3D63E ; --------------------------------------------------------------------------- loc_3D632: ; CODE XREF: sub_3CD78+8B0j clr.b (byte_FFFFA7F4).w bra.s loc_3D63E ; --------------------------------------------------------------------------- loc_3D638: ; CODE XREF: sub_3CD78+894j ; sub_3CD78+8A2j bclr #0,(byte_FFFFA7E0).w loc_3D63E: ; CODE XREF: sub_3CD78+88Cj ; sub_3CD78+8B8j ... btst #5,(byte_FFFFA7FD).w beq.s loc_3D66C btst #6,(word_FFFFA7DC).w bne.s loc_3D65C bset #5,(word_FFFFA7DC).w bset #6,(word_FFFFA7DC).w bra.s loc_3D678 ; --------------------------------------------------------------------------- loc_3D65C: ; CODE XREF: sub_3CD78+8D4j btst #5,(word_FFFFA7DC).w bne.s loc_3D678 bclr #5,(byte_FFFFA7FD).w bra.s loc_3D672 ; --------------------------------------------------------------------------- loc_3D66C: ; CODE XREF: sub_3CD78+8CCj bclr #5,(word_FFFFA7DC).w loc_3D672: ; CODE XREF: sub_3CD78+8F2j bclr #6,(word_FFFFA7DC).w loc_3D678: ; CODE XREF: sub_3CD78+8E2j ; sub_3CD78+8EAj btst #4,(byte_FFFFA800).w beq.s loc_3D69E bset #5,(byte_FFFFA7DE).w btst #4,(byte_FFFFA801).w beq.s loc_3D696 bset #2,(byte_FFFFA7E4).w bra.s loc_3D6A4 ; --------------------------------------------------------------------------- loc_3D696: ; CODE XREF: sub_3CD78+914j bclr #2,(byte_FFFFA7E4).w bra.s loc_3D6A4 ; --------------------------------------------------------------------------- loc_3D69E: ; CODE XREF: sub_3CD78+906j bclr #5,(byte_FFFFA7DE).w loc_3D6A4: ; CODE XREF: sub_3CD78+91Cj ; sub_3CD78+924j btst #4,(byte_FFFFA7FC).w beq.s loc_3D6E2 jsr sub_3DD56 tst.b d0 beq.s loc_3D6C4 bclr #7,(word_FFFFA7DC).w jsr sub_41D74 bra.s loc_3D6E8 ; --------------------------------------------------------------------------- loc_3D6C4: ; CODE XREF: sub_3CD78+93Cj bset #7,(word_FFFFA7DC).w btst #4,(byte_FFFFA7FD).w beq.s loc_3D6DA bset #0,(word_FFFFA7E2).w bra.s loc_3D6E8 ; --------------------------------------------------------------------------- loc_3D6DA: ; CODE XREF: sub_3CD78+958j bclr #0,(word_FFFFA7E2).w bra.s loc_3D6E8 ; --------------------------------------------------------------------------- loc_3D6E2: ; CODE XREF: sub_3CD78+932j bclr #7,(word_FFFFA7DC).w loc_3D6E8: ; CODE XREF: sub_3CD78+94Aj ; sub_3CD78+960j ... tst.b (byte_FFFFA80F).w bne.w loc_3D7AA tst.b (byte_FFFFA80E).w beq.s loc_3D714 move.w #$2580,d0 movea.l #unk_FFA810,a0 jsr sub_276D4 tst.b d0 beq.w loc_3D7AA clr.b (byte_FFFFA80E).w bra.w loc_3D7A6 ; --------------------------------------------------------------------------- loc_3D714: ; CODE XREF: sub_3CD78+97Cj tst.b (byte_FFFFA812).w beq.w loc_3D7AA btst #6,(byte_FFFFA7E0).w beq.s loc_3D72C btst #6,(byte_FFFFA7E4).w beq.s loc_3D774 loc_3D72C: ; CODE XREF: sub_3CD78+9AAj btst #1,(word_FFFFA7DC+1).w beq.s loc_3D73C btst #5,(word_FFFFA7E2+1).w bne.s loc_3D774 loc_3D73C: ; CODE XREF: sub_3CD78+9BAj btst #2,(byte_FFFFA7DE).w beq.s loc_3D74C btst #1,(word_FFFFA7E2+1).w bne.s loc_3D774 loc_3D74C: ; CODE XREF: sub_3CD78+9CAj btst #0,(byte_FFFFA7DF).w bne.s loc_3D774 btst #5,(byte_FFFFA7E0).w beq.s loc_3D7A6 btst #3,(byte_FFFFA804).w beq.s loc_3D7A6 btst #2,(byte_FFFFA804).w beq.s loc_3D7A6 cmpi.w #$A00,(word_FFFFAEBC).w bls.s loc_3D7A6 loc_3D774: ; CODE XREF: sub_3CD78+9B2j ; sub_3CD78+9C2j ... move.w #$12C0,d0 movea.l #unk_FFA810,a0 jsr sub_276D4 tst.b d0 beq.s loc_3D7AA jsr sub_3E4B4 moveq #1,d0 move.b d0,(byte_FFFFA80E).w move.w (GlobalClock).w,(word_FFFFA810).w move.w d0,(word_FFFFA7FA).w jsr sub_41D74 bra.s loc_3D7AA ; --------------------------------------------------------------------------- loc_3D7A6: ; CODE XREF: sub_3CD78+998j ; sub_3CD78+9E2j ... clr.b (byte_FFFFA812).w loc_3D7AA: ; CODE XREF: sub_3CD78+10j ; sub_3CD78+DAj ... movem.l (sp)+,d1-d2/a0 rts ; End of function sub_3CD78 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3D7B0: ; CODE XREF: OS2:00041CE2p var_4 = -4 link a6,#0 move.l a0,-(sp) movem.l d1-d2/d6,-(sp) clr.w (word_FFFFA7FA).w movea.l var_4(a6),a0 move.b (a0),d2 cmpi.b #3,d2 bhi.w loc_3DC34 beq.w loc_3DB7A cmpi.b #1,d2 bhi.w loc_3D9DE bne.w loc_3DC34 lea 1(a0),a0 moveq #1,d2 btst #5,(a0) beq.s loc_3D814 btst #6,(byte_FFFFA9D7).w bne.s loc_3D7FC bset #4,(word_FFFFA7DC).w jsr sub_664A0 loc_3D7FC: ; CODE XREF: sub_3D7B0+3Ej bclr #4,(word_FFFFA7DC).w jsr sub_3DD00 tst.b d0 beq.s loc_3D814 jsr sub_3E4B4 clr.b d2 loc_3D814: ; CODE XREF: sub_3D7B0+36j ; sub_3D7B0+5Aj tst.b (byte_FFFFA80F).w bne.w loc_3D992 tst.b d2 beq.w loc_3D992 btst #1,2(a0) beq.s loc_3D832 btst #1,3(a0) bne.s loc_3D84C loc_3D832: ; CODE XREF: sub_3D7B0+78j btst #2,4(a0) beq.s loc_3D874 btst #2,5(a0) beq.s loc_3D874 cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_3D874 loc_3D84C: ; CODE XREF: sub_3D7B0+80j tst.b (byte_FFFFA80E).w beq.s loc_3D862 loc_3D852: ; CODE XREF: sub_3D7B0+2F6j move.w #1,(word_FFFFA7FA).w jsr sub_3E4B4 bra.w loc_3DC2C ; --------------------------------------------------------------------------- loc_3D862: ; CODE XREF: sub_3D7B0+A0j tst.b (byte_FFFFA812).w bne.s loc_3D874 move.w (GlobalClock).w,(word_FFFFA810).w move.b #1,(byte_FFFFA812).w loc_3D874: ; CODE XREF: sub_3D7B0+88j ; sub_3D7B0+90j ... btst #4,(a0) beq.s loc_3D886 jsr sub_3DD56 tst.b d0 bne.w loc_3D98A loc_3D886: ; CODE XREF: sub_3D7B0+C8j btst #5,2(a0) beq.s loc_3D8A2 btst #5,3(a0) beq.s loc_3D8A2 jsr sub_3DDE4 tst.b d0 bne.w loc_3D98A loc_3D8A2: ; CODE XREF: sub_3D7B0+DCj ; sub_3D7B0+E4j btst #2,2(a0) beq.s loc_3D8BE btst #2,3(a0) bne.s loc_3D8BE jsr sub_3DEA4 tst.b d0 bne.w loc_3D98A loc_3D8BE: ; CODE XREF: sub_3D7B0+F8j ; sub_3D7B0+100j btst #7,2(a0) beq.s loc_3D8DC btst #7,3(a0) bne.s loc_3D8DC moveq #1,d0 jsr sub_3DD8C tst.b d0 bne.w loc_3D98A loc_3D8DC: ; CODE XREF: sub_3D7B0+114j ; sub_3D7B0+11Cj btst #6,2(a0) beq.s loc_3D8FA btst #6,3(a0) bne.s loc_3D8FA clr.b d0 jsr sub_3DD8C tst.b d0 bne.w loc_3D98A loc_3D8FA: ; CODE XREF: sub_3D7B0+132j ; sub_3D7B0+13Aj btst #4,2(a0) beq.s loc_3D90C jsr sub_3DE0C tst.b d0 bne.s loc_3D98A loc_3D90C: ; CODE XREF: sub_3D7B0+150j btst #3,2(a0) beq.s loc_3D91E jsr sub_3DE6E tst.b d0 bne.s loc_3D98A loc_3D91E: ; CODE XREF: sub_3D7B0+162j btst #3,4(a0) beq.s loc_3D930 jsr sub_3DEE2 tst.b d0 bne.s loc_3D98A loc_3D930: ; CODE XREF: sub_3D7B0+174j btst #2,4(a0) beq.s loc_3D950 move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d3 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_3D946 cmpi.b #1,d3 bne.s loc_3D950 loc_3D946: ; CODE XREF: sub_3D7B0+18Ej jsr sub_3E3D6 tst.b d0 bne.s loc_3D98A loc_3D950: ; CODE XREF: sub_3D7B0+186j ; sub_3D7B0+194j btst #0,4(a0) beq.s loc_3D96C cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_3D96C jsr sub_3DF96 tst.b d0 bne.s loc_3D98A loc_3D96C: ; CODE XREF: sub_3D7B0+1A6j ; sub_3D7B0+1B0j btst #1,4(a0) beq.s loc_3D992 btst #1,5(a0) beq.s loc_3D992 clr.b d1 move.l a0,d0 jsr sub_3E3FE tst.b d0 beq.s loc_3D992 loc_3D98A: ; CODE XREF: sub_3D7B0+D2j ; sub_3D7B0+EEj ... jsr sub_3E4B4 clr.b d2 loc_3D992: ; CODE XREF: sub_3D7B0+68j ; sub_3D7B0+6Ej ... tst.b d2 beq.w loc_3DC2C movea.l var_4(a6),a2 move.b 1(a2),(byte_FFFFA7FC).w movea.l var_4(a6),a2 move.b 2(a2),(byte_FFFFA7FD).w movea.l var_4(a6),a2 move.b 3(a2),(byte_FFFFA7FE).w movea.l var_4(a6),a2 move.b 4(a2),(byte_FFFFA7FF).w movea.l var_4(a6),a2 move.b 5(a2),(byte_FFFFA800).w movea.l var_4(a6),a2 move.b 6(a2),(byte_FFFFA801).w loc_3D9D4: ; CODE XREF: sub_3D7B0+3C6j ; sub_3D7B0+478j move.b #1,(byte_FFFFA7F9).w bra.w loc_3DC40 ; --------------------------------------------------------------------------- loc_3D9DE: ; CODE XREF: sub_3D7B0+24j lea 1(a0),a0 moveq #1,d2 btst #7,2(a0) beq.s loc_3DA02 btst #6,2(a0) bne.s loc_3DA02 move.b 5(a0),d0 jsr sub_3E1DC tst.b d0 bne.s loc_3DA50 loc_3DA02: ; CODE XREF: sub_3D7B0+23Aj ; sub_3D7B0+242j btst #4,2(a0) beq.s loc_3DA1C move.b 4(a0),d1 move.b 2(a0),d0 jsr sub_3DF16 tst.b d0 bne.s loc_3DA50 loc_3DA1C: ; CODE XREF: sub_3D7B0+258j btst #1,(a0) beq.s loc_3DA40 btst #1,2(a0) beq.s loc_3DA40 btst #0,2(a0) beq.s loc_3DA40 move.b 3(a0),d0 jsr sub_3DFBA tst.b d0 bne.s loc_3DA50 loc_3DA40: ; CODE XREF: sub_3D7B0+270j ; sub_3D7B0+278j ... btst #3,(a0) beq.s loc_3DA58 jsr sub_3DE42 tst.b d0 beq.s loc_3DA58 loc_3DA50: ; CODE XREF: sub_3D7B0+250j ; sub_3D7B0+26Aj ... jsr sub_3E4B4 clr.b d2 loc_3DA58: ; CODE XREF: sub_3D7B0+294j ; sub_3D7B0+29Ej tst.b (byte_FFFFA80F).w bne.w loc_3DB34 tst.b d2 beq.w loc_3DB34 btst #7,2(a0) beq.s loc_3DA84 btst #6,2(a0) beq.s loc_3DA84 btst #5,2(a0) beq.s loc_3DA84 tst.b 5(a0) bne.s loc_3DAA2 loc_3DA84: ; CODE XREF: sub_3D7B0+2BCj ; sub_3D7B0+2C4j ... btst #0,(a0) bne.s loc_3DAA2 btst #4,2(a0) beq.s loc_3DABC btst #3,2(a0) beq.s loc_3DABC cmpi.w #$A00,(word_FFFFAEBC).w bls.s loc_3DABC loc_3DAA2: ; CODE XREF: sub_3D7B0+2D2j ; sub_3D7B0+2D8j tst.b (byte_FFFFA80E).w bne.w loc_3D852 tst.b (byte_FFFFA812).w bne.s loc_3DABC move.w (GlobalClock).w,(word_FFFFA810).w move.b #1,(byte_FFFFA812).w loc_3DABC: ; CODE XREF: sub_3D7B0+2E0j ; sub_3D7B0+2E8j ... btst #7,2(a0) beq.s loc_3DAE2 btst #6,2(a0) beq.s loc_3DAE2 btst #5,2(a0) bne.s loc_3DAE2 move.b 5(a0),d0 jsr sub_3E040 tst.b d0 bne.s loc_3DB2C loc_3DAE2: ; CODE XREF: sub_3D7B0+312j ; sub_3D7B0+31Aj ... btst #7,2(a0) beq.s loc_3DB08 btst #6,2(a0) beq.s loc_3DB08 btst #5,2(a0) beq.s loc_3DB08 move.b 5(a0),d0 jsr sub_3E12E tst.b d0 bne.s loc_3DB2C loc_3DB08: ; CODE XREF: sub_3D7B0+338j ; sub_3D7B0+340j ... btst #1,(a0) beq.s loc_3DB34 btst #1,2(a0) bne.s loc_3DB34 btst #0,2(a0) bne.s loc_3DB34 move.b 3(a0),d0 jsr sub_3DFF8 tst.b d0 beq.s loc_3DB34 loc_3DB2C: ; CODE XREF: sub_3D7B0+330j ; sub_3D7B0+356j jsr sub_3E4B4 clr.b d2 loc_3DB34: ; CODE XREF: sub_3D7B0+2ACj ; sub_3D7B0+2B2j ... tst.b d2 beq.w loc_3DC2C movea.l var_4(a6),a2 move.b 1(a2),(byte_FFFFA802).w movea.l var_4(a6),a2 move.b 2(a2),(byte_FFFFA803).w movea.l var_4(a6),a2 move.b 3(a2),(byte_FFFFA804).w movea.l var_4(a6),a2 move.b 4(a2),(byte_FFFFA805).w movea.l var_4(a6),a2 move.b 5(a2),(byte_FFFFA806).w movea.l var_4(a6),a2 move.b 6(a2),(byte_FFFFA807).w bra.w loc_3D9D4 ; --------------------------------------------------------------------------- loc_3DB7A: ; CODE XREF: sub_3D7B0+1Cj lea 1(a0),a0 moveq #1,d2 tst.b (byte_FFFFA80F).w bne.s loc_3DBE8 btst #5,2(a0) beq.s loc_3DB9C move.b 2(a0),d0 jsr sub_3E250 tst.b d0 bne.s loc_3DBE0 loc_3DB9C: ; CODE XREF: sub_3D7B0+3DCj btst #2,2(a0) beq.s loc_3DBB2 move.b 5(a0),d0 jsr sub_3E346 tst.b d0 bne.s loc_3DBE0 loc_3DBB2: ; CODE XREF: sub_3D7B0+3F2j btst #1,2(a0) beq.s loc_3DBC4 jsr sub_3E3D6 tst.b d0 bne.s loc_3DBE0 loc_3DBC4: ; CODE XREF: sub_3D7B0+408j btst #2,(a0) beq.s loc_3DBE8 btst #2,1(a0) beq.s loc_3DBE8 move.l d2,d1 move.l a0,d0 jsr sub_3E3FE tst.b d0 beq.s loc_3DBE8 loc_3DBE0: ; CODE XREF: sub_3D7B0+3EAj ; sub_3D7B0+400j ... jsr sub_3E4B4 clr.b d2 loc_3DBE8: ; CODE XREF: sub_3D7B0+3D4j ; sub_3D7B0+418j ... tst.b d2 beq.s loc_3DC2C movea.l var_4(a6),a2 move.b 1(a2),(byte_FFFFA808).w movea.l var_4(a6),a2 move.b 2(a2),(byte_FFFFA809).w movea.l var_4(a6),a2 move.b 3(a2),(byte_FFFFA80A).w movea.l var_4(a6),a2 move.b 4(a2),(byte_FFFFA80B).w movea.l var_4(a6),a2 move.b 5(a2),(byte_FFFFA80C).w movea.l var_4(a6),a2 move.b 6(a2),(byte_FFFFA80D).w bra.w loc_3D9D4 ; --------------------------------------------------------------------------- loc_3DC2C: ; CODE XREF: sub_3D7B0+AEj ; sub_3D7B0+1E4j ... jsr sub_41D74 bra.s loc_3DC40 ; --------------------------------------------------------------------------- loc_3DC34: ; CODE XREF: sub_3D7B0+18j ; sub_3D7B0+28j move.w #2,(word_FFFFA7FA).w jsr sub_3E4B4 loc_3DC40: ; CODE XREF: sub_3D7B0+22Aj ; sub_3D7B0+482j tst.b (byte_FFFFA7F9).w beq.w loc_3DCE0 btst #4,(byte_FFFFA7FE).w beq.s loc_3DC94 btst #2,(byte_FFFFA802).w beq.s loc_3DC94 btst #4,(word_FFFFA7DC+1).w bne.s loc_3DC68 btst #0,(word_FFFFA7DC+1).w beq.s loc_3DC8E loc_3DC68: ; CODE XREF: sub_3D7B0+4AEj btst #4,(word_FFFFA7DC+1).w bne.s loc_3DC78 bset #4,(byte_FFFFA7FE).w bra.s loc_3DC7E ; --------------------------------------------------------------------------- loc_3DC78: ; CODE XREF: sub_3D7B0+4BEj bclr #4,(byte_FFFFA7FE).w loc_3DC7E: ; CODE XREF: sub_3D7B0+4C6j btst #0,(word_FFFFA7DC+1).w bne.s loc_3DC8E bset #2,(byte_FFFFA802).w bra.s loc_3DC94 ; --------------------------------------------------------------------------- loc_3DC8E: ; CODE XREF: sub_3D7B0+4B6j ; sub_3D7B0+4D4j bclr #2,(byte_FFFFA802).w loc_3DC94: ; CODE XREF: sub_3D7B0+49Ej ; sub_3D7B0+4A6j ... btst #2,(byte_FFFFA800).w beq.s loc_3DCE0 btst #1,(byte_FFFFA80A).w beq.s loc_3DCE0 btst #1,(byte_FFFFA7DE).w bne.s loc_3DCB4 btst #6,(byte_FFFFA7DF).w beq.s loc_3DCDA loc_3DCB4: ; CODE XREF: sub_3D7B0+4FAj btst #1,(byte_FFFFA7DE).w bne.s loc_3DCC4 bset #2,(byte_FFFFA800).w bra.s loc_3DCCA ; --------------------------------------------------------------------------- loc_3DCC4: ; CODE XREF: sub_3D7B0+50Aj bclr #2,(byte_FFFFA800).w loc_3DCCA: ; CODE XREF: sub_3D7B0+512j btst #6,(byte_FFFFA7DF).w bne.s loc_3DCDA bset #1,(byte_FFFFA80A).w bra.s loc_3DCE0 ; --------------------------------------------------------------------------- loc_3DCDA: ; CODE XREF: sub_3D7B0+502j ; sub_3D7B0+520j bclr #1,(byte_FFFFA80A).w loc_3DCE0: ; CODE XREF: sub_3D7B0+494j ; sub_3D7B0+4EAj ... tst.b (byte_FFFFA7F9).w bne.s loc_3DCEA moveq #1,d0 bra.s loc_3DCF8 ; --------------------------------------------------------------------------- loc_3DCEA: ; CODE XREF: sub_3D7B0+534j cmpi.w #2,(word_FFFFA7FA).w bne.s loc_3DCF6 moveq #2,d0 bra.s loc_3DCF8 ; --------------------------------------------------------------------------- loc_3DCF6: ; CODE XREF: sub_3D7B0+540j clr.b d0 loc_3DCF8: ; CODE XREF: sub_3D7B0+538j ; sub_3D7B0+544j movem.l (sp)+,d1-d2/d6 unlk a6 rts ; End of function sub_3D7B0 ; =============== S U B R O U T I N E ======================================= sub_3DD00: ; CODE XREF: sub_3D7B0+52p clr.b d0 tst.b (byte_FFFFA9DA).w bne.s locret_3DD54 moveq #1,d0 move.b (byte_FFFFA9DB).w,d3 bne.s loc_3DD18 move.w #$1301,(word_FFFFA7FA).w bra.s loc_3DD4E ; --------------------------------------------------------------------------- loc_3DD18: ; CODE XREF: sub_3DD00+Ej cmpi.b #1,d3 bne.s loc_3DD26 move.w #$1302,(word_FFFFA7FA).w bra.s loc_3DD4E ; --------------------------------------------------------------------------- loc_3DD26: ; CODE XREF: sub_3DD00+1Cj cmpi.b #2,d3 bne.s loc_3DD34 move.w #$1303,(word_FFFFA7FA).w bra.s loc_3DD4E ; --------------------------------------------------------------------------- loc_3DD34: ; CODE XREF: sub_3DD00+2Aj cmpi.b #3,d3 bne.s loc_3DD42 move.w #$1304,(word_FFFFA7FA).w bra.s loc_3DD4E ; --------------------------------------------------------------------------- loc_3DD42: ; CODE XREF: sub_3DD00+38j cmpi.b #4,d3 bne.s loc_3DD4E move.w #$1305,(word_FFFFA7FA).w loc_3DD4E: ; CODE XREF: sub_3DD00+16j ; sub_3DD00+24j ... jsr sub_3E4B4 locret_3DD54: ; CODE XREF: sub_3DD00+6j rts ; End of function sub_3DD00 ; =============== S U B R O U T I N E ======================================= sub_3DD56: ; CODE XREF: sub_3CD78+934p ; sub_3D7B0+CAp clr.b d0 move.w (word_FFFFB4A2).w,d3 cmp.w (OXYGEN_SENSOR_KE_O2_HEATER_OVERVOLTAGE_LIMIT).l,d3 ; Ignition voltage greater than or equal to this value will shut the heaters off to protect against overvoltage. ; Volts bcs.s loc_3DD74 moveq #1,d0 move.w #$1803,(word_FFFFA7FA).w loc_3DD6C: ; CODE XREF: sub_3DD56+32j jsr sub_3E4B4 bra.s locret_3DD8A ; --------------------------------------------------------------------------- loc_3DD74: ; CODE XREF: sub_3DD56+Cj move.w (word_FFFFA0DC).w,d3 cmp.w (OXYGEN_SENSOR_KE_DEV_CNTL_O2_HTR_AIRFLOW_LIMIT).l,d3 ; The maximum airflow for O2 heater device control to be allowed. ; Grams_Per_Second bcs.s locret_3DD8A moveq #1,d0 move.w #$1804,(word_FFFFA7FA).w bra.s loc_3DD6C ; --------------------------------------------------------------------------- locret_3DD8A: ; CODE XREF: sub_3DD56+1Cj ; sub_3DD56+28j rts ; End of function sub_3DD56 ; =============== S U B R O U T I N E ======================================= sub_3DD8C: ; CODE XREF: sub_3CD78+222p ; sub_3CD78+260p ... movem.l d1-d2,-(sp) move.b d0,d2 clr.b d1 tst.b (byte_FFFFA80F).w bne.s loc_3DDDC btst #0,(byte_FFFFAD8A).w beq.s loc_3DDB2 moveq #1,d1 move.w #$602,(word_FFFFA7FA).w loc_3DDAA: ; CODE XREF: sub_3DD8C+4Ej jsr sub_3E4B4 bra.s loc_3DDDC ; --------------------------------------------------------------------------- loc_3DDB2: ; CODE XREF: sub_3DD8C+14j tst.b d2 beq.s loc_3DDC2 jsr sub_2E716 cmp.w (CoolantTemperatureOrDefault).w,d0 ble.s loc_3DDD2 loc_3DDC2: ; CODE XREF: sub_3DD8C+28j tst.b d2 bne.s loc_3DDDC jsr sub_2E71E cmp.w (CoolantTemperatureOrDefault).w,d0 bgt.s loc_3DDDC loc_3DDD2: ; CODE XREF: sub_3DD8C+34j moveq #1,d1 move.w #$601,(word_FFFFA7FA).w bra.s loc_3DDAA ; --------------------------------------------------------------------------- loc_3DDDC: ; CODE XREF: sub_3DD8C+Cj ; sub_3DD8C+24j ... move.l d1,d0 movem.l (sp)+,d1-d2 rts ; End of function sub_3DD8C ; =============== S U B R O U T I N E ======================================= sub_3DDE4: ; CODE XREF: sub_3CD78+28Ep ; sub_3D7B0+E6p clr.b d0 tst.b (byte_FFFFA80F).w bne.s locret_3DE0A cmpi.b #3,(ThrottleControlMode2?).w bne.s locret_3DE0A btst #6,(byte_FFFFAD8A).w beq.s locret_3DE0A moveq #1,d0 move.w #$A03,(word_FFFFA7FA).w jsr sub_3E4B4 locret_3DE0A: ; CODE XREF: sub_3DDE4+6j sub_3DDE4+Ej ... rts ; End of function sub_3DDE4 ; =============== S U B R O U T I N E ======================================= sub_3DE0C: ; CODE XREF: sub_3CD78+2D0p ; sub_3CD78+312p ... clr.b d0 btst #5,(byte_FFFF9B2E).w beq.s loc_3DE26 moveq #1,d0 move.w #$F01,(word_FFFFA7FA).w loc_3DE1E: ; CODE XREF: sub_3DE0C+32j jsr sub_3E4B4 bra.s locret_3DE40 ; --------------------------------------------------------------------------- loc_3DE26: ; CODE XREF: sub_3DE0C+8j btst #1,(byte_FFFF897E).w bne.s loc_3DE36 btst #1,(byte_FFFF897C).w beq.s locret_3DE40 loc_3DE36: ; CODE XREF: sub_3DE0C+20j moveq #1,d0 move.w #$F02,(word_FFFFA7FA).w bra.s loc_3DE1E ; --------------------------------------------------------------------------- locret_3DE40: ; CODE XREF: sub_3DE0C+18j ; sub_3DE0C+28j rts ; End of function sub_3DE0C ; =============== S U B R O U T I N E ======================================= sub_3DE42: ; CODE XREF: sub_3CD78+346p ; sub_3D7B0+296p clr.b d0 cmpi.b #3,(ThrottleControlMode2?).w beq.s loc_3DE5C moveq #1,d0 move.w #$604,(word_FFFFA7FA).w loc_3DE54: ; CODE XREF: sub_3DE42+28j jsr sub_3E4B4 bra.s locret_3DE6C ; --------------------------------------------------------------------------- loc_3DE5C: ; CODE XREF: sub_3DE42+8j tst.b (byte_FFFF9DA7).w beq.s locret_3DE6C moveq #1,d0 move.w #$601,(word_FFFFA7FA).w bra.s loc_3DE54 ; --------------------------------------------------------------------------- locret_3DE6C: ; CODE XREF: sub_3DE42+18j ; sub_3DE42+1Ej rts ; End of function sub_3DE42 ; =============== S U B R O U T I N E ======================================= sub_3DE6E: ; CODE XREF: sub_3CD78+37Ap ; sub_3D7B0+164p clr.b d0 btst #5,(byte_FFFF9B2E).w beq.s loc_3DE88 moveq #1,d0 move.w #$1001,(word_FFFFA7FA).w loc_3DE80: ; CODE XREF: sub_3DE6E+32j jsr sub_3E4B4 bra.s locret_3DEA2 ; --------------------------------------------------------------------------- loc_3DE88: ; CODE XREF: sub_3DE6E+8j btst #1,(byte_FFFF897E).w bne.s loc_3DE98 btst #1,(byte_FFFF897C).w beq.s locret_3DEA2 loc_3DE98: ; CODE XREF: sub_3DE6E+20j moveq #1,d0 move.w #$1002,(word_FFFFA7FA).w bra.s loc_3DE80 ; --------------------------------------------------------------------------- locret_3DEA2: ; CODE XREF: sub_3DE6E+18j ; sub_3DE6E+28j rts ; End of function sub_3DE6E ; =============== S U B R O U T I N E ======================================= sub_3DEA4: ; CODE XREF: sub_3CD78+41Ep ; sub_3D7B0+102p clr.b d0 tst.b (byte_FFFFA80F).w bne.s locret_3DEE0 tst.w (word_FFFFAEBC).w beq.s loc_3DEC2 moveq #1,d0 move.w #$401,(word_FFFFA7FA).w loc_3DEBA: ; CODE XREF: sub_3DEA4+3Aj jsr sub_3E4B4 bra.s locret_3DEE0 ; --------------------------------------------------------------------------- loc_3DEC2: ; CODE XREF: sub_3DEA4+Cj btst #7,(byte_FFFF8252).w bne.s loc_3DED6 move.l (dword_FFFFAAC8).w,d3 andi.l #$80000000,d3 beq.s locret_3DEE0 loc_3DED6: ; CODE XREF: sub_3DEA4+24j moveq #1,d0 move.w #$402,(word_FFFFA7FA).w bra.s loc_3DEBA ; --------------------------------------------------------------------------- locret_3DEE0: ; CODE XREF: sub_3DEA4+6j ; sub_3DEA4+1Cj ... rts ; End of function sub_3DEA4 ; =============== S U B R O U T I N E ======================================= sub_3DEE2: ; CODE XREF: sub_3CD78+4D6p ; sub_3D7B0+176p clr.b d0 tst.b (byte_FFFFA80F).w bne.s locret_3DF14 cmpi.b #8,(byte_FFFFA3B8).w beq.s loc_3DF02 moveq #1,d0 move.w #$1101,(word_FFFFA7FA).w loc_3DEFA: ; CODE XREF: sub_3DEE2+30j jsr sub_3E4B4 bra.s locret_3DF14 ; --------------------------------------------------------------------------- loc_3DF02: ; CODE XREF: sub_3DEE2+Ej btst #4,(byte_FFFF8255).w beq.s locret_3DF14 moveq #1,d0 move.w #$1102,(word_FFFFA7FA).w bra.s loc_3DEFA ; --------------------------------------------------------------------------- locret_3DF14: ; CODE XREF: sub_3DEE2+6j ; sub_3DEE2+1Ej ... rts ; End of function sub_3DEE2 ; =============== S U B R O U T I N E ======================================= sub_3DF16: ; CODE XREF: sub_3CD78+6F8p ; sub_3D7B0+262p move.b d0,d3 move.b d1,d4 clr.b d0 tst.b (byte_FFFFA80F).w bne.s locret_3DF84 btst #3,d3 beq.s loc_3DF64 btst #2,d3 beq.s loc_3DF64 andi.w #$FF,d4 asl.w #4,d4 move.w (word_FFFF9848).w,d3 sub.w d4,d3 bvc.s loc_3DF48 bpl.s loc_3DF44 move.w #$7FFF,d3 bra.s loc_3DF48 ; --------------------------------------------------------------------------- loc_3DF44: ; CODE XREF: sub_3DF16+26j move.w #$8000,d3 loc_3DF48: ; CODE XREF: sub_3DF16+24j ; sub_3DF16+2Cj move.w (AnotherRpmValue).w,d5 movea.l #SPARK_ADVANCE_KV_LIMIT_MAX_RETARD,a2 ; Maximum spark retard limit allowed. ; Degrees tbls.w (a2),d5 cmp.w d5,d3 bgt.s locret_3DF84 moveq #1,d0 move.w #$701,(word_FFFFA7FA).w bra.s loc_3DF7E ; --------------------------------------------------------------------------- loc_3DF64: ; CODE XREF: sub_3DF16+10j ; sub_3DF16+16j btst #3,d3 beq.s loc_3DF76 btst #3,d3 beq.s locret_3DF84 btst #2,d3 bne.s locret_3DF84 loc_3DF76: ; CODE XREF: sub_3DF16+52j moveq #1,d0 move.w #4,(word_FFFFA7FA).w loc_3DF7E: ; CODE XREF: sub_3DF16+4Cj jsr sub_3E4B4 locret_3DF84: ; CODE XREF: sub_3DF16+Aj ; sub_3DF16+42j ... rts ; End of function sub_3DF16 ; =============== S U B R O U T I N E ======================================= sub_3DF86: ; CODE XREF: sub_3CD78+504p clr.b d0 cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s locret_3DF94 moveq #1,d0 locret_3DF94: ; CODE XREF: sub_3DF86+Aj rts ; End of function sub_3DF86 ; =============== S U B R O U T I N E ======================================= sub_3DF96: ; CODE XREF: sub_3CD78+5B4p ; sub_3D7B0+1B2p clr.b d0 cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s locret_3DFB8 tst.b (TRANS_IO_KE_REVERSE_LOCKOUT_EQUIPPED).l ; Set TRUE if manual transmission has reverse lockout control solenoid. ; Boolean bne.s locret_3DFB8 moveq #1,d0 move.w #4,(word_FFFFA7FA).w jsr sub_3E4B4 locret_3DFB8: ; CODE XREF: sub_3DF96+Aj ; sub_3DF96+12j rts ; End of function sub_3DF96 ; =============== S U B R O U T I N E ======================================= sub_3DFBA: ; CODE XREF: sub_3CD78+69Ap ; sub_3D7B0+286p move.b d0,d3 clr.b d0 lsr.b #1,d3 andi.w #$FF,d3 move.w d3,(word_FFFFA7EC).w tst.b (byte_FFFFA80F).w bne.s locret_3DFF6 cmpi.b #3,(ThrottleControlMode2?).w bne.s locret_3DFF6 cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s locret_3DFF6 cmpi.b #8,(byte_FFFFA3B8).w beq.s locret_3DFF6 moveq #1,d0 move.w #$903,(word_FFFFA7FA).w jsr sub_3E4B4 locret_3DFF6: ; CODE XREF: sub_3DFBA+12j ; sub_3DFBA+1Aj ... rts ; End of function sub_3DFBA ; =============== S U B R O U T I N E ======================================= sub_3DFF8: ; CODE XREF: sub_3CD78+66Cp ; sub_3D7B0+372p move.b d0,d3 clr.b d0 andi.w #$FF,d3 andi.l #$FFFF,d3 asl.l #8,d3 asl.l #2,d3 divu.w #$19,d3 move.w d3,(word_FFFFA7EE).w tst.b (byte_FFFFA80F).w bne.s locret_3E03E cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s locret_3E03E cmpi.b #8,(byte_FFFFA3B8).w beq.s locret_3E03E cmpi.w #$1400,d3 ble.s locret_3E03E moveq #1,d0 move.w #$902,(word_FFFFA7FA).w jsr sub_3E4B4 locret_3E03E: ; CODE XREF: sub_3DFF8+1Ej ; sub_3DFF8+28j ... rts ; End of function sub_3DFF8 ; =============== S U B R O U T I N E ======================================= sub_3E040: ; CODE XREF: sub_3CD78+9Ap ; sub_3D7B0+328p movem.l d1-d2/d6-d7,-(sp) move.b d0,d3 clr.b d6 tst.w (EngineRPM_PID_000C___).w beq.s loc_3E060 moveq #1,d6 move.w #$201,(word_FFFFA7FA).w loc_3E056: ; CODE XREF: sub_3E040+80j ; sub_3E040+94j ... jsr sub_3E4B4 bra.w loc_3E126 ; --------------------------------------------------------------------------- loc_3E060: ; CODE XREF: sub_3E040+Cj move.l d6,d1 btst #7,d3 beq.s loc_3E06C move.l d1,d2 moveq #1,d1 loc_3E06C: ; CODE XREF: sub_3E040+26j btst #6,d3 beq.s loc_3E076 moveq #1,d2 addq.b #1,d1 loc_3E076: ; CODE XREF: sub_3E040+30j btst #5,d3 beq.s loc_3E080 moveq #2,d2 addq.b #1,d1 loc_3E080: ; CODE XREF: sub_3E040+3Aj btst #4,d3 beq.s loc_3E08A moveq #3,d2 addq.b #1,d1 loc_3E08A: ; CODE XREF: sub_3E040+44j btst #3,d3 beq.s loc_3E094 moveq #4,d2 addq.b #1,d1 loc_3E094: ; CODE XREF: sub_3E040+4Ej btst #2,d3 beq.s loc_3E09E moveq #5,d2 addq.b #1,d1 loc_3E09E: ; CODE XREF: sub_3E040+58j btst #1,d3 beq.s loc_3E0A8 moveq #6,d2 addq.b #1,d1 loc_3E0A8: ; CODE XREF: sub_3E040+62j btst #0,d3 beq.s loc_3E0B2 moveq #7,d2 addq.b #1,d1 loc_3E0B2: ; CODE XREF: sub_3E040+6Cj moveq #1,d7 cmp.b d1,d7 bcc.s loc_3E0C2 move.l d7,d6 move.w #$205,(word_FFFFA7FA).w bra.s loc_3E056 ; --------------------------------------------------------------------------- loc_3E0C2: ; CODE XREF: sub_3E040+76j jsr sub_85316 tst.b d0 beq.s loc_3E0D6 move.l d7,d6 move.w #$206,(word_FFFFA7FA).w bra.s loc_3E056 ; --------------------------------------------------------------------------- loc_3E0D6: ; CODE XREF: sub_3E040+8Aj clr.l d0 move.b d2,d0 tst.b -$7D70(d0.w) beq.s loc_3E0F6 btst #6,(byte_FFFFA7E0).w bne.s loc_3E0F6 move.l d7,d6 move.w #$202,(word_FFFFA7FA).w bra.w loc_3E056 ; --------------------------------------------------------------------------- loc_3E0F6: ; CODE XREF: sub_3E040+A0j ; sub_3E040+A8j btst #6,(byte_FFFFA7E0).w beq.s loc_3E11E cmp.b (byte_FFFFA7F7).w,d2 beq.s loc_3E11E clr.w d3 move.b (byte_FFFFA7F7).w,d3 tst.b -$7D70(d3.w) bne.s loc_3E11E move.l d7,d6 move.w #$204,(word_FFFFA7FA).w bra.w loc_3E056 ; --------------------------------------------------------------------------- loc_3E11E: ; CODE XREF: sub_3E040+BCj ; sub_3E040+C2j ... cmp.b d1,d7 bne.s loc_3E126 move.b d2,(byte_FFFFA7F7).w loc_3E126: ; CODE XREF: sub_3E040+1Cj ; sub_3E040+E0j move.l d6,d0 movem.l (sp)+,d1-d2/d6-d7 rts ; End of function sub_3E040 ; =============== S U B R O U T I N E ======================================= sub_3E12E: ; CODE XREF: sub_3CD78+6Ap ; sub_3D7B0+34Ep movem.l d1-d2,-(sp) move.b d0,d1 clr.b d0 move.l d0,d3 move.l d3,d4 btst #7,d1 beq.s loc_3E146 ori.b #1,d3 moveq #1,d4 loc_3E146: ; CODE XREF: sub_3E12E+10j btst #6,d1 beq.s loc_3E152 moveq #2,d2 or.b d2,d3 addq.b #1,d4 loc_3E152: ; CODE XREF: sub_3E12E+1Cj btst #5,d1 beq.s loc_3E15E ori.b #4,d3 addq.b #1,d4 loc_3E15E: ; CODE XREF: sub_3E12E+28j btst #4,d1 beq.s loc_3E16A ori.b #8,d3 addq.b #1,d4 loc_3E16A: ; CODE XREF: sub_3E12E+34j btst #3,d1 beq.s loc_3E176 ori.b #$10,d3 addq.b #1,d4 loc_3E176: ; CODE XREF: sub_3E12E+40j btst #2,d1 beq.s loc_3E182 ori.b #$20,d3 ; ' ' addq.b #1,d4 loc_3E182: ; CODE XREF: sub_3E12E+4Cj btst #1,d1 beq.s loc_3E18E ori.b #$40,d3 ; '@' addq.b #1,d4 loc_3E18E: ; CODE XREF: sub_3E12E+58j btst #0,d1 beq.s loc_3E19A ori.b #$80,d3 addq.b #1,d4 loc_3E19A: ; CODE XREF: sub_3E12E+64j cmpi.b #2,d4 bls.s loc_3E1B0 moveq #1,d0 move.w #$302,(word_FFFFA7FA).w loc_3E1A8: ; CODE XREF: sub_3E12E+A2j jsr sub_3E4B4 bra.s loc_3E1D6 ; --------------------------------------------------------------------------- loc_3E1B0: ; CODE XREF: sub_3E12E+70j btst #6,(byte_FFFFA7E0).w beq.s loc_3E1D2 btst #6,(byte_FFFFA7E4).w beq.s loc_3E1D2 move.b (byte_FFFFA7F7).w,d5 btst d5,d3 beq.s loc_3E1D2 moveq #1,d0 move.w #$303,(word_FFFFA7FA).w bra.s loc_3E1A8 ; --------------------------------------------------------------------------- loc_3E1D2: ; CODE XREF: sub_3E12E+88j ; sub_3E12E+90j ... move.b d3,(byte_FFFFA7F8).w loc_3E1D6: ; CODE XREF: sub_3E12E+80j movem.l (sp)+,d1-d2 rts ; End of function sub_3E12E ; =============== S U B R O U T I N E ======================================= sub_3E1DC: ; CODE XREF: sub_3CD78+2Ap ; sub_3D7B0+248p move.b d0,d3 clr.b d0 tst.b (byte_FFFFA80F).w bne.s loc_3E1F0 move.w #4,(word_FFFFA7FA).w moveq #1,d0 bra.s locret_3E24E ; --------------------------------------------------------------------------- loc_3E1F0: ; CODE XREF: sub_3E1DC+8j btst #5,(byte_FFFFA802).w beq.s loc_3E24A move.b (ThrottleControlMode2?).w,d3 cmpi.b #3,d3 seq d4 neg.b d4 bne.s loc_3E210 cmpi.b #4,d3 seq d3 neg.b d3 beq.s loc_3E216 loc_3E210: ; CODE XREF: sub_3E1DC+28j moveq #1,d0 clr.w (word_FFFFA7FA).w loc_3E216: ; CODE XREF: sub_3E1DC+32j move.w (CoolantTemperatureOrDefault).w,d3 clr.w d4 tst.w d3 bge.s loc_3E224 move.l d4,d3 bra.s loc_3E238 ; --------------------------------------------------------------------------- loc_3E224: ; CODE XREF: sub_3E1DC+42j cmpi.w #$400,d3 bge.s loc_3E234 tst.w d3 bpl.s loc_3E230 addq.w #1,d3 loc_3E230: ; CODE XREF: sub_3E1DC+50j asr.w #1,d3 bra.s loc_3E238 ; --------------------------------------------------------------------------- loc_3E234: ; CODE XREF: sub_3E1DC+4Cj move.w #$200,d3 loc_3E238: ; CODE XREF: sub_3E1DC+46j ; sub_3E1DC+56j movea.l #$C7CA,a2 tblu.w (a2),d3 mulu.w #5,d3 lsr.l #8,d3 lsr.l #1,d3 loc_3E24A: ; CODE XREF: sub_3E1DC+1Aj move.b d3,(byte_FFFFA7F2).w locret_3E24E: ; CODE XREF: sub_3E1DC+12j rts ; End of function sub_3E1DC ; =============== S U B R O U T I N E ======================================= sub_3E250: ; CODE XREF: sub_3CD78+7DCp ; sub_3D7B0+3E2p movem.l d1-d2/d6-d7,-(sp) move.b d0,d3 clr.b d0 btst #6,d3 sne d2 neg.b d2 add.b d2,d2 btst #7,d3 sne d3 neg.b d3 add.b d2,d3 move.b d3,d4 move.b d4,(byte_FFFFA7F6).w tst.b (byte_FFFFA80F).w bne.w loc_3E340 moveq #3,d1 cmp.b (ThrottleControlMode2?).w,d1 bne.w loc_3E340 move.w (word_FFFFAEBC).w,d2 cmpi.w #$2080,d2 bls.s loc_3E2A0 moveq #1,d0 move.w #$2801,(word_FFFFA7FA).w loc_3E296: ; CODE XREF: sub_3E250+64j ; sub_3E250+90j ... jsr sub_3E4B4 bra.w loc_3E340 ; --------------------------------------------------------------------------- loc_3E2A0: ; CODE XREF: sub_3E250+3Cj move.w (EngineRPM_PID_000C___).w,d5 cmp.w (C2_DC_DEFINITION_KE_DEV_CNTL_GEAR_RPM_LIMIT).l,d5 ; The maximum engine rpm allowed for gear device control. ; RPM bls.s loc_3E2B6 moveq #1,d0 move.w #$2802,(word_FFFFA7FA).w bra.s loc_3E296 ; --------------------------------------------------------------------------- loc_3E2B6: ; CODE XREF: sub_3E250+5Aj move.b (byte_FFFF95DC).w,d1 cmp.b d1,d4 beq.s loc_3E2E2 move.l d1,d5 moveq #3,d6 cmp.b d5,d6 bls.s loc_3E2C8 addq.b #1,d5 loc_3E2C8: ; CODE XREF: sub_3E250+74j cmp.b d5,d4 beq.s loc_3E2E2 move.l d1,d5 tst.b d5 bls.s loc_3E2D4 subq.b #1,d5 loc_3E2D4: ; CODE XREF: sub_3E250+80j cmp.b d5,d4 beq.s loc_3E2E2 moveq #1,d0 move.w #$2803,(word_FFFFA7FA).w bra.s loc_3E296 ; --------------------------------------------------------------------------- loc_3E2E2: ; CODE XREF: sub_3E250+6Cj ; sub_3E250+7Aj ... moveq #2,d6 cmp.b d1,d6 bne.s loc_3E300 moveq #1,d7 cmp.b d3,d7 bne.s loc_3E300 cmp.w (C2_DC_DEFINITION_KE_DEV_CNTL_32_VEHICLE_SPEED_LIM).l,d2 ; The maximum vehicle speed allowed for 32 gear down shiftdevice control. ; MPH bls.s loc_3E300 moveq #1,d0 loc_3E2F8: ; CODE XREF: sub_3E250+C4j move.w #$2804,(word_FFFFA7FA).w bra.s loc_3E296 ; --------------------------------------------------------------------------- loc_3E300: ; CODE XREF: sub_3E250+96j ; sub_3E250+9Cj ... moveq #1,d7 cmp.b d1,d7 bne.s loc_3E316 tst.b d3 bne.s loc_3E316 cmp.w (C2_DC_DEFINITION_KE_DEV_CNTL_21_VEHICLE_SPEED_LIM).l,d2 ; The maximum engine rpm allowed for 21 gear down shiftdevice control. ; MPH bls.s loc_3E316 move.l d7,d0 bra.s loc_3E2F8 ; --------------------------------------------------------------------------- loc_3E316: ; CODE XREF: sub_3E250+B4j ; sub_3E250+B8j ... move.b (byte_FFFFA3AF).w,d4 cmp.b d4,d6 bne.s loc_3E324 cmpi.b #3,d3 beq.s loc_3E334 loc_3E324: ; CODE XREF: sub_3E250+CCj cmp.b d4,d7 bne.s loc_3E32C cmp.b d3,d7 bcs.s loc_3E334 loc_3E32C: ; CODE XREF: sub_3E250+D6j cmp.b d4,d7 bne.s loc_3E340 tst.b d3 bls.s loc_3E340 loc_3E334: ; CODE XREF: sub_3E250+D2j ; sub_3E250+DAj move.l d7,d0 move.w #$2805,(word_FFFFA7FA).w bra.w loc_3E296 ; --------------------------------------------------------------------------- loc_3E340: ; CODE XREF: sub_3E250+26j ; sub_3E250+30j ... movem.l (sp)+,d1-d2/d6-d7 rts ; End of function sub_3E250 ; =============== S U B R O U T I N E ======================================= sub_3E346: ; CODE XREF: sub_3CD78+80Ep ; sub_3D7B0+3F8p move.l d1,-(sp) clr.w d3 move.b d0,d3 asl.w #6,d3 andi.l #$FFFF,d3 divu.w #$49,d3 ; 'I' move.b d3,(byte_FFFFA7F5).w tst.b (byte_FFFFA80F).w bne.s loc_3E3D0 cmp.b (X_OVERRIDES_KE_C2_FM_OVERRIDE_LO_LIMIT).l,d3 ; The low threshold of Force Motor current for theClass II Device Control Limits ; Amps bls.s loc_3E372 cmp.b (X_OVERRIDES_KE_C2_FM_OVERRIDE_HI_LIMIT).l,d3 ; The high threshold of Force Motor current for theClass II Device Control Limits ; Amps bcs.s loc_3E382 loc_3E372: ; CODE XREF: sub_3E346+22j moveq #1,d0 move.w #$2A01,(word_FFFFA7FA).w loc_3E37A: ; CODE XREF: sub_3E346+54j ; sub_3E346+6Ej ... jsr sub_3E4B4 bra.s loc_3E3D2 ; --------------------------------------------------------------------------- loc_3E382: ; CODE XREF: sub_3E346+2Aj btst #0,(byte_FFFF95E2).w beq.s loc_3E3D0 btst #1,(byte_FFFF8A6E).w beq.s loc_3E39C moveq #1,d0 move.w #$2A02,(word_FFFFA7FA).w bra.s loc_3E37A ; --------------------------------------------------------------------------- loc_3E39C: ; CODE XREF: sub_3E346+4Aj move.b (byte_FFFF95E9).w,d4 moveq #4,d1 cmp.b d4,d1 bcs.s loc_3E3B6 cmp.b (byte_FFFFADD2).w,d3 bls.s loc_3E3B6 moveq #1,d0 move.w #$2A03,(word_FFFFA7FA).w bra.s loc_3E37A ; --------------------------------------------------------------------------- loc_3E3B6: ; CODE XREF: sub_3E346+5Ej ; sub_3E346+64j cmp.b d4,d1 bcc.s loc_3E3D0 move.w (word_FFFF95B6).w,d0 cmp.w (X_OVERRIDES_KE_C2_FM_ENG_LIMIT).l,d0 ; The limit of engine speed for a Class II force motor ; RPM bls.s loc_3E3D0 moveq #1,d0 move.w #$2A04,(word_FFFFA7FA).w bra.s loc_3E37A ; --------------------------------------------------------------------------- loc_3E3D0: ; CODE XREF: sub_3E346+1Aj ; sub_3E346+42j ... clr.b d0 loc_3E3D2: ; CODE XREF: sub_3E346+3Aj move.l (sp)+,d1 rts ; End of function sub_3E346 ; =============== S U B R O U T I N E ======================================= sub_3E3D6: ; CODE XREF: sub_3CD78:loc_3D2A2p ; sub_3CD78+580p ... clr.b d0 tst.b (byte_FFFFA80F).w bne.s locret_3E3FC cmpi.b #3,(ThrottleControlMode2?).w bne.s locret_3E3FC cmpi.b #8,(byte_FFFFA3B8).w beq.s locret_3E3FC moveq #1,d0 move.w #$2B01,(word_FFFFA7FA).w jsr sub_3E4B4 locret_3E3FC: ; CODE XREF: sub_3E3D6+6j sub_3E3D6+Ej ... rts ; End of function sub_3E3D6 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3E3FE: ; CODE XREF: sub_3D7B0+1D0p ; sub_3D7B0+426p var_4 = -4 link a6,#0 move.l d0,-(sp) clr.b d0 tst.b (byte_FFFFA80F).w bne.s loc_3E450 cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_3E450 tst.b d1 beq.s loc_3E438 movea.l var_4(a6),a2 btst #0,2(a2) beq.s loc_3E438 bset #0,(byte_FFFFA7E0).w move.b 3(a2),d3 move.b d3,(byte_FFFFA7F4).w tst.b d3 bne.s loc_3E450 bra.s loc_3E442 ; --------------------------------------------------------------------------- loc_3E438: ; CODE XREF: sub_3E3FE+18j ; sub_3E3FE+24j move.w (word_FFFFA40C).w,d3 cmpi.w #$7333,d3 bcc.s loc_3E450 loc_3E442: ; CODE XREF: sub_3E3FE+38j moveq #1,d0 move.w #$2903,(word_FFFFA7FA).w jsr sub_3E4B4 loc_3E450: ; CODE XREF: sub_3E3FE+Cj ; sub_3E3FE+14j ... unlk a6 rts ; End of function sub_3E3FE ; =============== S U B R O U T I N E ======================================= sub_3E454: ; CODE XREF: OS1:00028ECEp cmpi.b #3,d0 bhi.s locret_3E4B2 cmpi.b #1,d0 bls.s locret_3E4B2 tst.b (byte_FFFFB54A).w bne.s loc_3E48C cmpi.b #2,d0 bne.s loc_3E48C clr.b (byte_FFFF8290).w clr.b (byte_FFFF8291).w clr.b (byte_FFFF8292).w clr.b (byte_FFFF8293).w clr.b (byte_FFFF8294).w clr.b (byte_FFFF8295).w clr.b (byte_FFFF8296).w clr.b (byte_FFFF8297).w loc_3E48C: ; CODE XREF: sub_3E454+10j ; sub_3E454+16j clr.b (byte_FFFFA7F7).w jsr sub_3E4B4 clr.b (byte_FFFFA80E).w clr.b (byte_FFFFA812).w clr.w (word_FFFFA7FA).w clr.l (byte_FFFFA7DE).w clr.w (word_FFFFA7DC).w clr.b (byte_FFFFA7E4).w clr.w (word_FFFFA7E2).w locret_3E4B2: ; CODE XREF: sub_3E454+4j sub_3E454+Aj rts ; End of function sub_3E454 ; =============== S U B R O U T I N E ======================================= sub_3E4B4: ; CODE XREF: sub_3CD78+3Cp ; sub_3CD78+110p ... clr.b (byte_FFFFA80F).w clr.b (byte_FFFFA7F9).w lea (byte_FFFFA7FC).w,a2 moveq #8,d3 loc_3E4C2: ; CODE XREF: sub_3E4B4+10j clr.w (a2)+ dbf d3,loc_3E4C2 clr.b (byte_FFFFA816).w rts ; End of function sub_3E4B4 ; =============== S U B R O U T I N E ======================================= sub_3E4CE: ; CODE XREF: sub_3E4F2+B6p ; sub_3E4F2+102p ... clr.b d4 loc_3E4D0: ; CODE XREF: sub_3E4CE+20j clr.l d5 move.b d4,d5 move.b $364E.l(d5.w),d3 beq.s loc_3E4E8 andi.w #$FF,d3 clr.b -$6348(d3.w) loc_3E4E8: ; CODE XREF: sub_3E4CE+Ej addq.b #1,d4 cmpi.b #$89,d4 bls.s loc_3E4D0 rts ; End of function sub_3E4CE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3E4F2: ; CODE XREF: DoLoopC+84p DoLoopC+3C4p ... var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a1,-(sp) move.b (byte_FFFF90BD).w,d3 moveq #2,d1 cmp.b d3,d1 bne.s loc_3E526 move.b (ThrottleControlMode2?).w,d3 cmp.b d3,d1 beq.s loc_3E512 cmpi.b #3,d3 bne.s loc_3E51A loc_3E512: ; CODE XREF: sub_3E4F2+18j move.b #3,(byte_FFFFB15C).w bra.s loc_3E536 ; --------------------------------------------------------------------------- loc_3E51A: ; CODE XREF: sub_3E4F2+1Ej cmpi.b #1,d3 bne.s loc_3E536 move.b d1,(byte_FFFFB15C).w bra.s loc_3E536 ; --------------------------------------------------------------------------- loc_3E526: ; CODE XREF: sub_3E4F2+10j tst.b d3 beq.s loc_3E530 cmpi.b #1,d3 bne.s loc_3E536 loc_3E530: ; CODE XREF: sub_3E4F2+36j move.b (byte_FFFF90BC).w,(byte_FFFFB15C).w loc_3E536: ; CODE XREF: sub_3E4F2+26j ; sub_3E4F2+2Cj ... move.b (byte_FFFF9A38).w,d4 beq.s loc_3E58E move.b (byte_FFFFB15A).w,d0 lsr.b #2,d0 andi.b #$1F,d0 cmpi.b #$1C,d0 beq.s loc_3E58E move.b (byte_FFFFB15C).w,(byte_FFFFB15D).w move.b (byte_FFFFB15A).w,(byte_FFFFB15B).w andi.b #$FC,(byte_FFFFB15B).w andi.b #$83,(byte_FFFFB15A).w ori.b #$70,(byte_FFFFB15A).w ; 'p' bset #7,(byte_FFFFB15A).w andi.b #$FC,(byte_FFFFB15A).w movea.w #0,a1 movea.l #C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE28,a0 ; Class2 msgs allowed during mode28 active ; Tx_Msg_ID_Record_Type loc_3E580: ; CODE XREF: sub_3E4F2+210j move.b (byte_FFFFB15A).w,d0 jsr ModeInitHandler bra.w loc_3E89C ; --------------------------------------------------------------------------- loc_3E58E: ; CODE XREF: sub_3E4F2+48j ; sub_3E4F2+58j move.b (byte_FFFFB15A).w,d3 lsr.b #2,d3 moveq #$1F,d2 and.b d2,d3 moveq #$1C,d6 cmp.b d3,d6 bne.s loc_3E5DC tst.b d4 bne.s loc_3E5DC jsr sub_4A3D6 jsr sub_3E4CE move.b (byte_FFFFB15D).w,(byte_FFFFB15C).w move.b (byte_FFFFB15B).w,(byte_FFFFB15A).w ori.b #$7C,var_2(a6) ; '|' bset #7,var_2(a6) andi.b #$FC,var_2(a6) movea.l (dword_FFFFB166).w,a1 movea.l (dword_FFFFB162).w,a0 move.b var_2(a6),d0 bra.w loc_3E890 ; --------------------------------------------------------------------------- loc_3E5DC: ; CODE XREF: sub_3E4F2+AAj ; sub_3E4F2+AEj moveq #3,d7 cmp.b (byte_FFFFB15C).w,d7 bne.s loc_3E624 cmpi.b #7,d3 beq.s loc_3E624 cmp.b d3,d6 beq.s loc_3E624 jsr sub_4A3D6 jsr sub_3E4CE andi.b #$83,(byte_FFFFB15A).w or.b d6,(byte_FFFFB15A).w bset #7,(byte_FFFFB15A).w andi.b #$FC,(byte_FFFFB15A).w movea.l #C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE7_P1,a0 ; Class2 msgs allowed during run phase 1 ; Tx_Msg_ID_Record_Type move.l a0,(dword_FFFFB162).w movea.l #C2_TX_MSGS_KV_C2_MSGS_QUEUED_AT_MODE7_P1,a1 ; Class2 msgs queued during run phase 1 ; Tx_Msg_ID_Record_Type bra.w loc_3E888 ; --------------------------------------------------------------------------- loc_3E624: ; CODE XREF: sub_3E4F2+F0j ; sub_3E4F2+F6j ... cmpi.b #7,d3 bne.s loc_3E67E move.b (byte_FFFFB15A).w,d0 and.b d7,d0 bne.s loc_3E67E move.w (C2_EXECUTIVE_KE_MS_C2_INIT_PHASE2_DELAY).l,d0 ; Wait this amount of time after phase 1 has started before starting phase 2. ; Seconds movea.l #unk_FFB160,a0 jsr sub_276D4 tst.b d0 beq.s loc_3E67E andi.b #$FC,(byte_FFFFB15A).w ori.b #1,(byte_FFFFB15A).w movea.w #0,a1 movea.l #C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE7_P2,a0 ; Class2 msgs allowed during run phase 2 ; Tx_Msg_ID_Record_Type move.b (byte_FFFFB15A).w,d0 jsr ModeInitHandler tst.b (VEH_SYS_KE_VTD_CONFIGURATION).l ; This is used to activate the different VTD functionalities within the PCM. ; Unitless beq.w loc_3E896 move.l d1,d0 jsr sub_45152 bra.w loc_3E896 ; --------------------------------------------------------------------------- loc_3E67E: ; CODE XREF: sub_3E4F2+136j ; sub_3E4F2+13Ej ... move.b (byte_FFFFB15A).w,d0 lsr.b #2,d0 and.b d2,d0 cmpi.b #7,d0 bne.s loc_3E6C6 move.b (byte_FFFFB15A).w,d0 and.b d7,d0 cmpi.b #1,d0 bne.s loc_3E6C6 move.w (C2_EXECUTIVE_KE_MS_C2_INIT_PHASE3_DELAY).l,d0 ; Wait this amount of time after phase 2 has started before starting phase 3. ; Seconds movea.l #unk_FFB160,a0 jsr sub_276D4 tst.b d0 beq.s loc_3E6C6 andi.b #$FC,(byte_FFFFB15A).w or.b d1,(byte_FFFFB15A).w movea.w #0,a1 movea.l #C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE7_P3,a0 ; Class2 msgs allowed during run phase 3 ; Tx_Msg_ID_Record_Type bra.w loc_3E88C ; --------------------------------------------------------------------------- loc_3E6C6: ; CODE XREF: sub_3E4F2+198j ; sub_3E4F2+1A4j ... move.b (byte_FFFFB15A).w,d0 lsr.b #2,d0 and.b d2,d0 cmpi.b #7,d0 bne.s loc_3E706 move.b (byte_FFFFB15A).w,d0 and.b d7,d0 cmp.b d0,d1 bne.s loc_3E706 move.w (C2_EXECUTIVE_KE_MS_C2_INIT_PHASE4_DELAY).l,d0 ; Wait this amount of time after phase 3 has started before starting phase 4. ; Seconds movea.l #unk_FFB160,a0 jsr sub_276D4 tst.b d0 beq.s loc_3E706 or.b d7,(byte_FFFFB15A).w movea.w #0,a1 movea.l #C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE7_P4,a0 ; Class2 msgs allowed during run phase 4 ; Tx_Msg_ID_Record_Type bra.w loc_3E580 ; --------------------------------------------------------------------------- loc_3E706: ; CODE XREF: sub_3E4F2+1E0j ; sub_3E4F2+1EAj ... cmp.b (byte_FFFFB15C).w,d1 bne.s loc_3E75E move.b (byte_FFFFB15A).w,d3 lsr.b #2,d3 and.b d2,d3 cmpi.b #8,d3 beq.s loc_3E75E move.b (byte_FFFFB15A).w,d3 lsr.b #2,d3 and.b d2,d3 cmp.b d3,d6 beq.s loc_3E75E jsr sub_4A3D6 jsr sub_3E4CE andi.b #$83,(byte_FFFFB15A).w ori.b #$20,(byte_FFFFB15A).w ; ' ' bset #7,(byte_FFFFB15A).w andi.b #$FC,(byte_FFFFB15A).w movea.l #C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE8_P1,a0 ; Class2 msgs allowed during crank phase 1 ; Tx_Msg_ID_Record_Type move.l a0,(dword_FFFFB162).w movea.l #C2_TX_MSGS_KV_C2_MSGS_QUEUED_AT_MODE8_P1,a1 ; Class2 msgs queued during crank phase 1 ; Tx_Msg_ID_Record_Type bra.w loc_3E888 ; --------------------------------------------------------------------------- loc_3E75E: ; CODE XREF: sub_3E4F2+218j ; sub_3E4F2+226j ... move.b (byte_FFFFB15A).w,d0 lsr.b #2,d0 and.b d2,d0 cmpi.b #8,d0 bne.s loc_3E7C0 move.b (byte_FFFFB15A).w,d0 and.b d7,d0 bne.s loc_3E7C0 move.w (C2_EXECUTIVE_KE_MS_C2_INIT_PHASE2_DELAY).l,d0 ; Wait this amount of time after phase 1 has started before starting phase 2. ; Seconds movea.l #unk_FFB160,a0 jsr sub_276D4 tst.b d0 beq.s loc_3E7C0 andi.b #$FC,(byte_FFFFB15A).w ori.b #1,(byte_FFFFB15A).w movea.w #0,a1 movea.l #C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE8_P2,a0 ; Class2 msgs allowed during crank phase 2 ; Tx_Msg_ID_Record_Type move.b (byte_FFFFB15A).w,d0 jsr ModeInitHandler tst.b (VEH_SYS_KE_VTD_CONFIGURATION).l ; This is used to activate the different VTD functionalities within the PCM. ; Unitless beq.w loc_3E89C move.l d1,d0 jsr sub_45152 bra.w loc_3E89C ; --------------------------------------------------------------------------- loc_3E7C0: ; CODE XREF: sub_3E4F2+278j ; sub_3E4F2+280j ... moveq #4,d0 cmp.b (byte_FFFFB15C).w,d0 bne.w loc_3E89C move.b (byte_FFFFB15A).w,d3 lsr.b #2,d3 and.b d2,d3 cmpi.b #$10,d3 beq.w loc_3E89C move.b (byte_FFFFB15A).w,d3 lsr.b #2,d3 and.b d2,d3 cmp.b d3,d0 beq.w loc_3E89C move.b (byte_FFFFB15A).w,d3 lsr.b #2,d3 and.b d2,d3 cmpi.b #5,d3 beq.w loc_3E89C move.b (byte_FFFFB15A).w,d3 lsr.b #2,d3 and.b d2,d3 cmpi.b #6,d3 beq.w loc_3E89C move.b (byte_FFFFB15A).w,d3 lsr.b #2,d3 and.b d2,d3 cmp.b d3,d6 beq.w loc_3E89C jsr sub_4A3D6 jsr sub_3E4CE move.b (byte_FFFF90CC).w,d3 cmp.b d3,d0 bne.s loc_3E838 andi.b #$83,(byte_FFFFB15A).w ori.b #$10,(byte_FFFFB15A).w bra.s loc_3E86C ; --------------------------------------------------------------------------- loc_3E838: ; CODE XREF: sub_3E4F2+336j cmpi.b #5,d3 bne.s loc_3E84C andi.b #$83,(byte_FFFFB15A).w ori.b #$14,(byte_FFFFB15A).w bra.s loc_3E86C ; --------------------------------------------------------------------------- loc_3E84C: ; CODE XREF: sub_3E4F2+34Aj cmpi.b #6,d3 bne.s loc_3E860 andi.b #$83,(byte_FFFFB15A).w ori.b #$18,(byte_FFFFB15A).w bra.s loc_3E86C ; --------------------------------------------------------------------------- loc_3E860: ; CODE XREF: sub_3E4F2+35Ej andi.b #$83,(byte_FFFFB15A).w ori.b #$40,(byte_FFFFB15A).w ; '@' loc_3E86C: ; CODE XREF: sub_3E4F2+344j ; sub_3E4F2+358j ... bset #7,(byte_FFFFB15A).w andi.b #$FC,(byte_FFFFB15A).w ; Mod? movea.l #C2_TX_MSGS_KV_C2_MSGS_ALLOWED_AT_MODE10_P1,a0 ; Class2 msgs allowed during powerup phase 1 ; Tx_Msg_ID_Record_Type move.l a0,(dword_FFFFB162).w movea.l #C2_TX_MSGS_KV_C2_MSGS_QUEUED_AT_MODE10_P1,a1 ; Class2 msgs queued during powerup phase 1 ; Tx_Msg_ID_Record_Type loc_3E888: ; CODE XREF: sub_3E4F2+12Ej ; sub_3E4F2+268j move.l a1,(dword_FFFFB166).w loc_3E88C: ; CODE XREF: sub_3E4F2+1D0j move.b (byte_FFFFB15A).w,d0 loc_3E890: ; CODE XREF: sub_3E4F2+E6j jsr ModeInitHandler loc_3E896: ; CODE XREF: sub_3E4F2+17Cj ; sub_3E4F2+188j move.w (GlobalClock).w,(word_FFFFB160).w loc_3E89C: ; CODE XREF: sub_3E4F2+98j ; sub_3E4F2+2BEj ... movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_3E4F2 ; --------------------------------------------------------------------------- loc_3E8A4: ; DATA XREF: OS4:off_87C52o movem.l d0-d1/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF963A).w cmpi.b #5,(a0) bne.s loc_3E8D4 move.b 5(a0),d1 move.b d1,(byte_FFFF9651).w moveq #1,d0 jsr sub_494B8 tst.b d0 beq.s loc_3E8D4 moveq #$71,d0 ; 'q' jsr sub_4519E loc_3E8D4: ; CODE XREF: OS1:0003E8B6j ; OS1:0003E8CAj movem.l (sp)+,d0-d1/a0 rts ; --------------------------------------------------------------------------- movem.l d0-d2/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF963A).w cmpi.b #6,(a0) bne.s loc_3E922 tst.b 6(a0) bne.s loc_3E922 move.b 5(a0),d2 move.b d2,(byte_FFFF9652).w move.l d2,d1 moveq #2,d0 jsr sub_494B8 tst.b d0 beq.s loc_3E922 moveq #2,d1 cmp.b d2,d1 bcc.s loc_3E91A cmp.b d2,d1 bcc.s loc_3E922 move.w (word_FFFF86C4).w,d3 beq.s loc_3E922 loc_3E91A: ; CODE XREF: OS1:0003E90Ej moveq #$72,d0 ; 'r' jsr sub_4519E loc_3E922: ; CODE XREF: OS1:0003E8ECj ; OS1:0003E8F2j ... movem.l (sp)+,d0-d2/a0 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3E928: ; CODE XREF: OS1:0003FB6Ap ; OS1:0003FBE0p var_2 = -2 link a6,#-2 movem.l d1-d2/a1/a4,-(sp) movea.l a0,a1 movea.w #0,a4 clr.w var_2(a6) clr.b (a1) cmpi.b #3,d0 bne.s loc_3E960 moveq #$10,d0 move.w (word_FFFF9654).w,var_2(a6) lea var_2(a6),a0 moveq #1,d2 clr.b d1 jsr sub_5F1BE move.w var_2(a6),(word_FFFF9654).w bra.s loc_3E982 ; --------------------------------------------------------------------------- loc_3E960: ; CODE XREF: sub_3E928+18j cmpi.b #7,d0 bne.s loc_3E982 moveq #$41,d0 ; 'A' move.w (word_FFFF9656).w,var_2(a6) lea var_2(a6),a0 moveq #1,d2 clr.b d1 jsr sub_5F1BE move.w var_2(a6),(word_FFFF9656).w loc_3E982: ; CODE XREF: sub_3E928+36j ; sub_3E928+3Cj move.w var_2(a6),d3 cmpi.w #$3D,d3 ; '=' bne.s loc_3E996 move.b #1,(a1) movea.w (word_FFFF8C0A).w,a4 bra.s loc_3E9AA ; --------------------------------------------------------------------------- loc_3E996: ; CODE XREF: sub_3E928+62j tst.w d3 beq.s loc_3E9AA move.b #1,(a1) movea.w var_2(a6),a4 movea.w word_87F70(a4.w*4),a4 loc_3E9AA: ; CODE XREF: sub_3E928+6Cj ; sub_3E928+70j move.l a4,d0 movem.l (sp)+,d1-d2/a1/a4 unlk a6 rts ; End of function sub_3E928 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3E9B4: ; CODE XREF: OS1:0003EA1Cp ; OS1:0003FC22p var_2 = -2 link a6,#-2 movem.l d1-d2/d6/a0,-(sp) clr.b d6 clr.w var_2(a6) cmpi.b #3,d0 bne.s loc_3E9E0 moveq #$10,d0 move.w (word_FFFF9654).w,var_2(a6) loc_3E9D0: ; CODE XREF: sub_3E9B4+3Aj lea var_2(a6),a0 moveq #1,d2 move.l d6,d1 jsr sub_5F1BE bra.s loc_3E9F0 ; --------------------------------------------------------------------------- loc_3E9E0: ; CODE XREF: sub_3E9B4+12j cmpi.b #7,d0 bne.s loc_3E9F0 moveq #$41,d0 ; 'A' move.w (word_FFFF9656).w,var_2(a6) bra.s loc_3E9D0 ; --------------------------------------------------------------------------- loc_3E9F0: ; CODE XREF: sub_3E9B4+2Aj ; sub_3E9B4+30j tst.w var_2(a6) beq.s loc_3E9F8 moveq #1,d6 loc_3E9F8: ; CODE XREF: sub_3E9B4+40j move.l d6,d0 movem.l (sp)+,d1-d2/d6/a0 unlk a6 rts ; End of function sub_3E9B4 ; --------------------------------------------------------------------------- movem.l d0/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF963A).w clr.w (word_FFFF9654).w cmpi.b #4,(a0) bne.s loc_3EA2E moveq #3,d0 jsr sub_3E9B4 tst.b d0 beq.s loc_3EA2E moveq #$6C,d0 ; 'l' jsr sub_4519E loc_3EA2E: ; CODE XREF: OS1:0003EA18j ; OS1:0003EA24j movem.l (sp)+,d0/a0 rts ; --------------------------------------------------------------------------- movem.l d0/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF963A).w cmpi.b #4,(a0) bne.s loc_3EA56 jsr sub_75370 moveq #$6D,d0 ; 'm' jsr sub_4519E loc_3EA56: ; CODE XREF: OS1:0003EA46j movem.l (sp)+,d0/a0 rts ; --------------------------------------------------------------------------- movem.l d0-d1/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF963A).w move.b 5(a0),d0 move.b 6(a0),d1 cmpi.b #6,(a0) bne.s loc_3EA8A jsr sub_42896 tst.b d0 beq.s loc_3EA8A moveq #$73,d0 ; 's' jsr sub_4519E loc_3EA8A: ; CODE XREF: OS1:0003EA76j ; OS1:0003EA80j movem.l (sp)+,d0-d1/a0 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3EA90: ; CODE XREF: OS1:0003F636p ; OS1:0003F99Cp var_4 = -4 link a6,#-4 movem.l d1-d2/d6-d7,-(sp) clr.w d0 move.l d0,d1 clr.l var_4(a6) move.b (byte_FFFF964D).w,d3 bne.s loc_3EACE move.l (C2_J1979_MSGS_KE_OBD_01_20_TEST_SUPPORT).l,d3 ; Bit encoded calibration which indicates which mode 6 tests are supported. ; BOOLEAN move.l d3,var_4(a6) tst.l d3 beq.w loc_3F60A tst.b (byte_FFFF964A).w bne.w loc_3F60A move.b #$FF,(byte_FFFF964E).w loc_3EAC4: ; CODE XREF: sub_3EA90+98Ej moveq #1,d0 addq.b #1,(byte_FFFF964A).w bra.w loc_3F60A ; --------------------------------------------------------------------------- loc_3EACE: ; CODE XREF: sub_3EA90+14j moveq #2,d4 cmp.b d3,d4 bne.w loc_3ED54 btst #6,(C2_J1979_MSGS_KE_OBD_01_20_TEST_SUPPORT).l ; Bit encoded calibration which indicates which mode 6 tests are supported. ; BOOLEAN beq.w loc_3ED54 move.b (byte_FFFF964A).w,d1 bne.s loc_3EB1E move.b #$84,(byte_FFFF964E).w movea.w #0,a2 tst.w (word_FFFF8B58).w beq.s loc_3EAFC movea.w #$100,a2 loc_3EAFC: ; CODE XREF: sub_3EA90+66j move.w a2,var_4(a6) movea.w #0,a2 tst.w (word_FFFF8B56).w beq.s loc_3EB0E movea.w #1,a2 loc_3EB0E: ; CODE XREF: sub_3EA90+78j ; sub_3EA90+ECj ... move.w a2,var_4+2(a6) loc_3EB12: ; CODE XREF: sub_3EA90+D6j ; sub_3EA90+210j addq.b #1,d1 move.b d1,(byte_FFFF964A).w loc_3EB18: ; CODE XREF: sub_3EA90+20Cj moveq #1,d0 bra.w loc_3F60A ; --------------------------------------------------------------------------- loc_3EB1E: ; CODE XREF: sub_3EA90+56j cmpi.b #1,d1 bne.s loc_3EB68 move.b #$66,(byte_FFFF964E).w ; 'f' move.w (word_FFFF8B5C).w,d3 moveq #5,d2 muls.w d2,d3 bpl.s loc_3EB3A addi.l #$1FF,d3 loc_3EB3A: ; CODE XREF: sub_3EA90+A2j asr.l #8,d3 asr.l #1,d3 ext.l d3 movea.l #$8000,a2 add.l a2,d3 move.w d3,var_4(a6) move.w (word_FFFF8B5A).w,d3 loc_3EB50: ; CODE XREF: sub_3EA90+184j ; sub_3EA90+2C0j muls.w d2,d3 bpl.s loc_3EB5A addi.l #$1FF,d3 loc_3EB5A: ; CODE XREF: sub_3EA90+C2j asr.l #8,d3 asr.l #1,d3 ext.l d3 add.l a2,d3 loc_3EB62: ; CODE XREF: sub_3EA90+146j ; sub_3EA90+14Cj ... move.w d3,var_4+2(a6) bra.s loc_3EB12 ; --------------------------------------------------------------------------- loc_3EB68: ; CODE XREF: sub_3EA90+92j cmp.b d1,d4 bne.s loc_3EB7E move.b #$36,(byte_FFFF964E).w ; '6' move.w (word_FFFF8B60).w,var_4(a6) movea.w (word_FFFF8B5E).w,a2 bra.s loc_3EB0E ; --------------------------------------------------------------------------- loc_3EB7E: ; CODE XREF: sub_3EA90+DAj cmpi.b #3,d1 bne.s loc_3EBE2 move.b #$86,(byte_FFFF964E).w move.w #$3333,d0 move.l (dword_FFFF8B66).w,d3 add.l d3,d3 bvs.s loc_3EB9E divs.w d0,d3 bvc.s loc_3EBA2 swap d3 eor.w d0,d3 loc_3EB9E: ; CODE XREF: sub_3EA90+104j bmi.s loc_3EBB4 bra.s loc_3EBAE ; --------------------------------------------------------------------------- loc_3EBA2: ; CODE XREF: sub_3EA90+108j ext.l d3 movea.l #$8000,a2 add.l a2,d3 bra.s loc_3EBB6 ; --------------------------------------------------------------------------- loc_3EBAE: ; CODE XREF: sub_3EA90+110j move.w #$FFFF,d3 bra.s loc_3EBB6 ; --------------------------------------------------------------------------- loc_3EBB4: ; CODE XREF: sub_3EA90:loc_3EB9Ej clr.w d3 loc_3EBB6: ; CODE XREF: sub_3EA90+11Cj ; sub_3EA90+122j move.w d3,var_4(a6) move.l (dword_FFFF8B62).w,d3 loc_3EBBE: ; CODE XREF: sub_3EA90+1C8j add.l d3,d3 bvs.s loc_3EBCA loc_3EBC2: ; CODE XREF: sub_3EA90+254j divs.w d0,d3 bvc.s loc_3EBCE swap d3 eor.w d0,d3 loc_3EBCA: ; CODE XREF: sub_3EA90+130j bmi.s loc_3EBDE bra.s loc_3EBD8 ; --------------------------------------------------------------------------- loc_3EBCE: ; CODE XREF: sub_3EA90+134j ext.l d3 addi.l #$8000,d3 bra.s loc_3EB62 ; --------------------------------------------------------------------------- loc_3EBD8: ; CODE XREF: sub_3EA90+13Cj move.w #$FFFF,d3 bra.s loc_3EB62 ; --------------------------------------------------------------------------- loc_3EBDE: ; CODE XREF: sub_3EA90:loc_3EBCAj clr.w d3 bra.s loc_3EB62 ; --------------------------------------------------------------------------- loc_3EBE2: ; CODE XREF: sub_3EA90+F2j cmpi.b #4,d1 bne.s loc_3EC18 move.b #$D0,(byte_FFFF964E).w move.w (word_FFFF8B84).w,d3 moveq #5,d2 muls.w d2,d3 bpl.s loc_3EBFE addi.l #$1FF,d3 loc_3EBFE: ; CODE XREF: sub_3EA90+166j asr.l #8,d3 asr.l #1,d3 ext.l d3 movea.l #$8000,a2 add.l a2,d3 move.w d3,var_4(a6) move.w (word_FFFF8B82).w,d3 bra.w loc_3EB50 ; --------------------------------------------------------------------------- loc_3EC18: ; CODE XREF: sub_3EA90+156j moveq #5,d5 cmp.b d1,d5 bne.s loc_3EC5C move.b #$60,(byte_FFFF964E).w ; '`' move.w #$3333,d0 move.l (dword_FFFF8B7E).w,d3 add.l d3,d3 bvs.s loc_3EC38 divs.w d0,d3 bvc.s loc_3EC3C swap d3 eor.w d0,d3 loc_3EC38: ; CODE XREF: sub_3EA90+19Ej bmi.s loc_3EC4E bra.s loc_3EC48 ; --------------------------------------------------------------------------- loc_3EC3C: ; CODE XREF: sub_3EA90+1A2j ext.l d3 movea.l #$8000,a2 add.l a2,d3 bra.s loc_3EC50 ; --------------------------------------------------------------------------- loc_3EC48: ; CODE XREF: sub_3EA90+1AAj move.w #$FFFF,d3 bra.s loc_3EC50 ; --------------------------------------------------------------------------- loc_3EC4E: ; CODE XREF: sub_3EA90:loc_3EC38j clr.w d3 loc_3EC50: ; CODE XREF: sub_3EA90+1B6j ; sub_3EA90+1BCj move.w d3,var_4(a6) move.l (dword_FFFF8B7A).w,d3 bra.w loc_3EBBE ; --------------------------------------------------------------------------- loc_3EC5C: ; CODE XREF: sub_3EA90+18Cj cmpi.b #6,d1 bne.s loc_3EC76 move.b #$B0,(byte_FFFF964E).w move.w (word_FFFF8B88).w,var_4(a6) movea.w (word_FFFF8B86).w,a2 bra.w loc_3EB0E ; --------------------------------------------------------------------------- loc_3EC76: ; CODE XREF: sub_3EA90+1D0j cmpi.b #7,d1 bne.s loc_3ECA4 move.b #$C0,(byte_FFFF964E).w move.w (word_FFFF8B8C).w,var_4(a6) movea.w (word_FFFF8B8A).w,a2 move.w a2,var_4+2(a6) addq.b #1,d1 move.b d1,(byte_FFFF964A).w tst.b (DI_EONV_KE_EONV_DO_NOT_USE_FAST_PASS).l ; Used to bypass the small leak test. ; BOOLEAN beq.w loc_3EB18 bra.w loc_3EB12 ; --------------------------------------------------------------------------- loc_3ECA4: ; CODE XREF: sub_3EA90+1EAj cmpi.b #8,d1 bne.s loc_3ECE8 move.b #$52,(byte_FFFF964E).w ; 'R' move.w (word_FFFF8B78).w,d3 moveq #$7D,d2 ; '}' muls.w d2,d3 moveq #$20,d0 ; ' ' divs.w d0,d3 bvc.s loc_3ECC6 swap d3 eor.w d0,d3 bmi.s loc_3ECD8 bra.s loc_3ECD2 ; --------------------------------------------------------------------------- loc_3ECC6: ; CODE XREF: sub_3EA90+22Cj ext.l d3 movea.l #$8000,a2 add.l a2,d3 bra.s loc_3ECDA ; --------------------------------------------------------------------------- loc_3ECD2: ; CODE XREF: sub_3EA90+234j move.w #$FFFF,d3 bra.s loc_3ECDA ; --------------------------------------------------------------------------- loc_3ECD8: ; CODE XREF: sub_3EA90+232j clr.w d3 loc_3ECDA: ; CODE XREF: sub_3EA90+240j ; sub_3EA90+246j move.w d3,var_4(a6) move.w (word_FFFF8B76).w,d3 muls.w d2,d3 bra.w loc_3EBC2 ; --------------------------------------------------------------------------- loc_3ECE8: ; CODE XREF: sub_3EA90+218j cmpi.b #9,d1 bne.s loc_3ED02 move.b #$91,(byte_FFFF964E).w move.w (word_FFFF8B6C).w,var_4(a6) movea.w (word_FFFF8B6A).w,a2 bra.w loc_3EB0E ; --------------------------------------------------------------------------- loc_3ED02: ; CODE XREF: sub_3EA90+25Cj cmpi.b #$A,d1 bne.s loc_3ED1C move.b #$21,(byte_FFFF964E).w ; '!' move.w (word_FFFF8B74).w,var_4(a6) movea.w (word_FFFF8B72).w,a2 bra.w loc_3EB0E ; --------------------------------------------------------------------------- loc_3ED1C: ; CODE XREF: sub_3EA90+276j cmpi.b #$B,d1 bne.w loc_3F60A move.b #$71,(byte_FFFF964E).w ; 'q' move.w (word_FFFF8B70).w,d3 move.l d5,d2 muls.w d2,d3 bpl.s loc_3ED3A addi.l #$1FF,d3 loc_3ED3A: ; CODE XREF: sub_3EA90+2A2j asr.l #8,d3 asr.l #1,d3 ext.l d3 movea.l #$8000,a2 add.l a2,d3 move.w d3,var_4(a6) move.w (word_FFFF8B6E).w,d3 bra.w loc_3EB50 ; --------------------------------------------------------------------------- loc_3ED54: ; CODE XREF: sub_3EA90+42j ; sub_3EA90+4Ej moveq #3,d5 cmp.b d3,d5 bne.s loc_3EDB0 btst #5,(C2_J1979_MSGS_KE_OBD_01_20_TEST_SUPPORT).l ; Bit encoded calibration which indicates which mode 6 tests are supported. ; BOOLEAN beq.s loc_3EDB0 clr.w d3 move.b (byte_FFFF82AC).w,d3 move.w d3,var_4+2(a6) move.b (byte_FFFF964A).w,d3 bne.s loc_3ED90 move.b #1,(byte_FFFF964E).w clr.w d0 move.b (byte_FFFF82AE).w,d0 loc_3ED80: ; CODE XREF: sub_3EA90+31Ej move.w d0,var_4(a6) moveq #1,d0 addq.b #1,d3 move.b d3,(byte_FFFF964A).w bra.w loc_3F60A ; --------------------------------------------------------------------------- loc_3ED90: ; CODE XREF: sub_3EA90+2E2j cmpi.b #1,d3 bne.w loc_3F60A btst #7,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_1).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F60A move.b d4,(byte_FFFF964E).w clr.w d0 move.b (byte_FFFF82AF).w,d0 bra.s loc_3ED80 ; --------------------------------------------------------------------------- loc_3EDB0: ; CODE XREF: sub_3EA90+2C8j ; sub_3EA90+2D2j moveq #5,d6 cmp.b d3,d6 bne.w loc_3F3AC btst #3,(C2_J1979_MSGS_KE_OBD_01_20_TEST_SUPPORT).l ; Bit encoded calibration which indicates which mode 6 tests are supported. ; BOOLEAN beq.w loc_3F3AC loc_3EDC4: ; CODE XREF: sub_3EA90+914j move.b (byte_FFFF964A).w,d4 clr.l d1 move.b d4,d1 cmpi.w #$1D,d1 bhi.w loc_3F394 movea.l off_89666(d1.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_3EDDE: ; DATA XREF: OS4:off_89666o btst #7,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_3).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #1,(byte_FFFF964E).w bra.s loc_3EE04 ; --------------------------------------------------------------------------- loc_3EDF2: ; DATA XREF: OS4:0008966Ao btst #6,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_3).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #2,(byte_FFFF964E).w loc_3EE04: ; CODE XREF: sub_3EA90+360j move.w (word_FFFFA88C).w,d3 bra.w loc_3EFEC ; --------------------------------------------------------------------------- loc_3EE0C: ; DATA XREF: OS4:0008966Eo btst #5,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_3).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b d5,(byte_FFFF964E).w move.w (DI_EOS_KV_EOSD_RESP_ST_LEAN_THRESH).l,d3 ; Threshold which separates normal and lean operating zones using the slope time method. ; Millivolts bra.w loc_3EFEC ; --------------------------------------------------------------------------- loc_3EE26: ; DATA XREF: OS4:00089672o btst #4,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_3).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #4,(byte_FFFF964E).w move.w (DI_EOS_KV_EOSD_RESP_ST_RICH_THRESH).l,d3 ; Threshold which separates normal and rich operating zones using the slope time method. ; Millivolts bra.w loc_3EFEC ; --------------------------------------------------------------------------- loc_3EE42: ; DATA XREF: OS4:00089676o btst #3,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_3).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b d6,(byte_FFFF964E).w clr.w d3 move.b (byte_8974E).l,d3 move.w dword_FFFF8B20+2(d3.w*2),d3 andi.l #$FFFF,d3 asl.l #6,d3 cmpi.l #$FFFF,d3 bls.s loc_3EE74 move.w #$FFFF,d3 loc_3EE74: ; CODE XREF: sub_3EA90+3DEj move.w d3,var_4(a6) clr.w d3 move.b (byte_8974E).l,d3 bra.w loc_3F042 ; --------------------------------------------------------------------------- loc_3EE84: ; DATA XREF: OS4:0008967Ao btst #2,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_3).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #6,(byte_FFFF964E).w clr.w d3 move.b (byte_8974E).l,d3 move.w dword_FFFF8AF4+2(d3.w*2),d3 andi.l #$FFFF,d3 asl.l #6,d3 cmpi.l #$FFFF,d3 bls.s loc_3EEB8 move.w #$FFFF,d3 loc_3EEB8: ; CODE XREF: sub_3EA90+422j move.w d3,var_4(a6) clr.w d3 move.b (byte_8974E).l,d3 bra.w loc_3F08A ; --------------------------------------------------------------------------- loc_3EEC8: ; DATA XREF: OS4:0008967Eo btst #1,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_3).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #9,(byte_FFFF964E).w clr.w d3 move.b (byte_8974E).l,d3 move.b -$74B3(d3.w),d3 andi.w #$FF,d3 asl.w #8,d3 move.w d3,var_4(a6) clr.w d3 move.b (byte_8974E).l,d3 bra.w loc_3F0DC ; --------------------------------------------------------------------------- loc_3EEFE: ; DATA XREF: OS4:00089682o btst #0,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_3).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$A,(byte_FFFF964E).w clr.w d3 move.b (byte_8974B).l,d3 bra.w loc_3F100 ; --------------------------------------------------------------------------- loc_3EF1C: ; DATA XREF: OS4:00089686o btst #7,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_4).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$C,(byte_FFFF964E).w clr.w d3 move.b (byte_89750).l,d3 move.w dword_FFFF81D6+2(d3.w*2),d3 moveq #$33,d1 ; '3' mulu.w d1,d3 moveq #$2F,d2 ; '/' divu.w d2,d3 move.w d3,var_4(a6) clr.w d3 move.b (byte_89750).l,d3 bra.w loc_3F148 ; --------------------------------------------------------------------------- loc_3EF54: ; DATA XREF: OS4:0008968Ao btst #6,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_4).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$D,(byte_FFFF964E).w clr.w d3 move.b (byte_8974E).l,d3 move.w dword_FFFF8B34+2(d3.w*2),d3 ext.l d3 movea.l #$8000,a2 add.l a2,d3 move.w d3,var_4(a6) clr.w d3 move.b (byte_8974E).l,d3 bra.w loc_3F188 ; --------------------------------------------------------------------------- loc_3EF8E: ; DATA XREF: OS4:0008968Eo btst #5,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_4).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$41,(byte_FFFF964E).w ; 'A' bra.s loc_3EFB4 ; --------------------------------------------------------------------------- loc_3EFA2: ; DATA XREF: OS4:00089692o btst #4,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_4).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$42,(byte_FFFF964E).w ; 'B' loc_3EFB4: ; CODE XREF: sub_3EA90+510j move.w (word_FFFFA88E).w,d3 bra.s loc_3EFEC ; --------------------------------------------------------------------------- loc_3EFBA: ; DATA XREF: OS4:00089696o btst #3,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_4).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$43,(byte_FFFF964E).w ; 'C' move.w (word_16E98).l,d3 bra.s loc_3EFEC ; --------------------------------------------------------------------------- loc_3EFD4: ; DATA XREF: OS4:0008969Ao btst #2,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_4).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$44,(byte_FFFF964E).w ; 'D' move.w (unk_16E9C).l,d3 loc_3EFEC: ; CODE XREF: sub_3EA90+378j ; sub_3EA90+392j ... mulu.w #$33,d3 ; '3' divu.w #$2F,d3 ; '/' move.w d3,var_4(a6) move.w #$FFFF,var_4+2(a6) bra.w loc_3F392 ; --------------------------------------------------------------------------- loc_3F002: ; DATA XREF: OS4:0008969Eo btst #1,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_4).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$45,(byte_FFFF964E).w ; 'E' clr.w d3 move.b (byte_8974F).l,d3 move.w dword_FFFF8B20+2(d3.w*2),d3 andi.l #$FFFF,d3 asl.l #6,d3 cmpi.l #$FFFF,d3 bls.s loc_3F036 move.w #$FFFF,d3 loc_3F036: ; CODE XREF: sub_3EA90+5A0j move.w d3,var_4(a6) clr.w d3 move.b (byte_8974F).l,d3 loc_3F042: ; CODE XREF: sub_3EA90+3F0j move.w dword_FFFF8B40+2(d3.w*2),d3 bra.s loc_3F090 ; --------------------------------------------------------------------------- loc_3F04A: ; DATA XREF: OS4:000896A2o btst #0,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_4).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$46,(byte_FFFF964E).w ; 'F' clr.w d3 move.b (byte_8974F).l,d3 move.w dword_FFFF8AF4+2(d3.w*2),d3 andi.l #$FFFF,d3 asl.l #6,d3 cmpi.l #$FFFF,d3 bls.s loc_3F07E move.w #$FFFF,d3 loc_3F07E: ; CODE XREF: sub_3EA90+5E8j move.w d3,var_4(a6) clr.w d3 move.b (byte_8974F).l,d3 loc_3F08A: ; CODE XREF: sub_3EA90+434j move.w unk_FFFF8B3E(d3.w*2),d3 loc_3F090: ; CODE XREF: sub_3EA90+5B8j andi.l #$FFFF,d3 asl.l #6,d3 cmpi.l #$FFFF,d3 bls.w loc_3F38E move.w #$FFFF,d3 bra.w loc_3F38E ; --------------------------------------------------------------------------- loc_3F0AA: ; DATA XREF: OS4:000896A6o btst #7,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_5).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$49,(byte_FFFF964E).w ; 'I' clr.w d3 move.b (byte_8974F).l,d3 move.b -$74B3(d3.w),d3 andi.w #$FF,d3 asl.w #8,d3 move.w d3,var_4(a6) clr.w d3 move.b (byte_8974F).l,d3 loc_3F0DC: ; CODE XREF: sub_3EA90+46Aj move.b -$74B9(d3.w),d3 bra.w loc_3F30A ; --------------------------------------------------------------------------- loc_3F0E6: ; DATA XREF: OS4:000896AAo btst #6,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_5).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$4A,(byte_FFFF964E).w ; 'J' clr.w d3 move.b (byte_8974D).l,d3 loc_3F100: ; CODE XREF: sub_3EA90+488j move.w dword_FFFF8B08+2(d3.w*2),var_4(a6) move.w dword_FFFF8B00+2(d3.w*2),var_4+2(a6) bra.w loc_3F392 ; --------------------------------------------------------------------------- loc_3F114: ; DATA XREF: OS4:000896AEo btst #5,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_5).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$4C,(byte_FFFF964E).w ; 'L' clr.w d3 move.b (byte_89751).l,d3 move.w dword_FFFF81D6+2(d3.w*2),d3 moveq #$33,d1 ; '3' mulu.w d1,d3 moveq #$2F,d2 ; '/' divu.w d2,d3 move.w d3,var_4(a6) clr.w d3 move.b (byte_89751).l,d3 loc_3F148: ; CODE XREF: sub_3EA90+4C0j move.w unk_FFFF81D0(d3.w*2),d3 bra.w loc_3F34A ; --------------------------------------------------------------------------- loc_3F152: ; DATA XREF: OS4:000896B2o btst #4,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_5).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$4D,(byte_FFFF964E).w ; 'M' clr.w d3 move.b (byte_8974F).l,d3 move.w dword_FFFF8B34+2(d3.w*2),d3 ext.l d3 movea.l #$8000,a2 add.l a2,d3 move.w d3,var_4(a6) clr.w d3 move.b (byte_8974F).l,d3 loc_3F188: ; CODE XREF: sub_3EA90+4FAj move.w word_FFFF8B48(d3.w*2),d3 bra.w loc_3F38A ; --------------------------------------------------------------------------- loc_3F192: ; DATA XREF: OS4:000896B6o btst #3,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_5).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$87,(byte_FFFF964E).w clr.w d3 move.b (byte_8974E).l,d3 bra.w loc_3F290 ; --------------------------------------------------------------------------- loc_3F1B0: ; DATA XREF: OS4:000896BAo btst #2,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_5).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$88,(byte_FFFF964E).w clr.w d3 move.b (byte_8974E).l,d3 bra.w loc_3F2BE ; --------------------------------------------------------------------------- loc_3F1CE: ; DATA XREF: OS4:000896BEo btst #1,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_5).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$89,(byte_FFFF964E).w clr.w d3 move.b (byte_8974E).l,d3 move.b -$74B3(d3.w),d3 andi.w #$FF,d3 asl.w #8,d3 move.w d3,var_4(a6) clr.w d3 move.b (byte_8974E).l,d3 bra.w loc_3F304 ; --------------------------------------------------------------------------- loc_3F204: ; DATA XREF: OS4:000896C2o btst #0,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_5).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$8B,(byte_FFFF964E).w clr.w d3 move.b (byte_89750).l,d3 move.w dword_FFFF81E2+2(d3.w*2),d3 moveq #$33,d1 ; '3' mulu.w d1,d3 moveq #$2F,d2 ; '/' divu.w d2,d3 move.w d3,var_4(a6) clr.w d3 move.b (byte_89750).l,d3 bra.w loc_3F344 ; --------------------------------------------------------------------------- loc_3F23C: ; DATA XREF: OS4:000896C6o btst #7,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_6).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$8D,(byte_FFFF964E).w clr.w d3 move.b (byte_8974E).l,d3 move.w dword_FFFF8B34+2(d3.w*2),d3 ext.l d3 movea.l #$8000,a2 add.l a2,d3 move.w d3,var_4(a6) clr.w d3 move.b (byte_8974E).l,d3 bra.w loc_3F384 ; --------------------------------------------------------------------------- loc_3F276: ; DATA XREF: OS4:000896CAo btst #6,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_6).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$C7,(byte_FFFF964E).w clr.w d3 move.b (byte_8974F).l,d3 loc_3F290: ; CODE XREF: sub_3EA90+71Cj move.w dword_FFFF8B30+2(d3.w*2),var_4(a6) move.w dword_FFFF8B2C+2(d3.w*2),var_4+2(a6) bra.w loc_3F392 ; --------------------------------------------------------------------------- loc_3F2A4: ; DATA XREF: OS4:000896CEo btst #5,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_6).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$C8,(byte_FFFF964E).w clr.w d3 move.b (byte_8974F).l,d3 loc_3F2BE: ; CODE XREF: sub_3EA90+73Aj move.w dword_FFFF8AFC+2(d3.w*2),var_4(a6) move.w dword_FFFF8AF8+2(d3.w*2),var_4+2(a6) bra.w loc_3F392 ; --------------------------------------------------------------------------- loc_3F2D2: ; DATA XREF: OS4:000896D2o btst #4,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_6).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F394 move.b #$C9,(byte_FFFF964E).w clr.w d3 move.b (byte_8974F).l,d3 move.b -$74B3(d3.w),d3 andi.w #$FF,d3 asl.w #8,d3 move.w d3,var_4(a6) clr.w d3 move.b (byte_8974F).l,d3 loc_3F304: ; CODE XREF: sub_3EA90+770j move.b -$74B1(d3.w),d3 loc_3F30A: ; CODE XREF: sub_3EA90+652j andi.w #$FF,d3 asl.w #8,d3 bra.s loc_3F38E ; --------------------------------------------------------------------------- loc_3F312: ; DATA XREF: OS4:000896D6o btst #3,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_6).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.s loc_3F394 move.b #$CB,(byte_FFFF964E).w clr.w d3 move.b (byte_89751).l,d3 move.w dword_FFFF81E2+2(d3.w*2),d3 moveq #$33,d1 ; '3' mulu.w d1,d3 moveq #$2F,d2 ; '/' divu.w d2,d3 move.w d3,var_4(a6) clr.w d3 move.b (byte_89751).l,d3 loc_3F344: ; CODE XREF: sub_3EA90+7A8j move.w dword_FFFF81DE+2(d3.w*2),d3 loc_3F34A: ; CODE XREF: sub_3EA90+6BEj mulu.w d1,d3 divu.w d2,d3 bra.s loc_3F38E ; --------------------------------------------------------------------------- loc_3F350: ; DATA XREF: OS4:000896DAo btst #2,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_6).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.s loc_3F394 move.b #$CD,(byte_FFFF964E).w clr.w d3 move.b (byte_8974F).l,d3 move.w dword_FFFF8B34+2(d3.w*2),d3 ext.l d3 movea.l #$8000,a2 add.l a2,d3 move.w d3,var_4(a6) clr.w d3 move.b (byte_8974F).l,d3 loc_3F384: ; CODE XREF: sub_3EA90+7E2j move.w unk_FFFF8B3A(d3.w*2),d3 loc_3F38A: ; CODE XREF: sub_3EA90+6FEj ext.l d3 add.l a2,d3 loc_3F38E: ; CODE XREF: sub_3EA90+60Ej ; sub_3EA90+616j ... move.w d3,var_4+2(a6) loc_3F392: ; CODE XREF: sub_3EA90+56Ej ; sub_3EA90+680j ... moveq #1,d0 loc_3F394: ; CODE XREF: sub_3EA90+340j ; sub_3EA90+356j ... addq.b #1,d4 move.b d4,(byte_FFFF964A).w tst.b d0 bne.w loc_3F60A cmpi.b #$1E,d4 bcs.w loc_3EDC4 bra.w loc_3F60A ; --------------------------------------------------------------------------- loc_3F3AC: ; CODE XREF: sub_3EA90+324j ; sub_3EA90+330j cmpi.b #7,d3 bne.s loc_3F422 btst #1,(C2_J1979_MSGS_KE_OBD_01_20_TEST_SUPPORT).l ; Bit encoded calibration which indicates which mode 6 tests are supported. ; BOOLEAN beq.s loc_3F422 tst.b (byte_FFFF964A).w bne.s loc_3F422 move.b #$4D,(byte_FFFF964E).w ; 'M' moveq #9,d0 move.w (word_FFFF8CF4).w,d3 ext.l d3 asl.l #5,d3 divs.w d0,d3 bvc.s loc_3F3DE swap d3 eor.w d0,d3 bmi.s loc_3F3EE bra.s loc_3F3E8 ; --------------------------------------------------------------------------- loc_3F3DE: ; CODE XREF: sub_3EA90+944j ext.l d3 addi.l #$8000,d3 bra.s loc_3F3F0 ; --------------------------------------------------------------------------- loc_3F3E8: ; CODE XREF: sub_3EA90+94Cj move.w #$FFFF,d3 bra.s loc_3F3F0 ; --------------------------------------------------------------------------- loc_3F3EE: ; CODE XREF: sub_3EA90+94Aj move.l d1,d3 loc_3F3F0: ; CODE XREF: sub_3EA90+956j ; sub_3EA90+95Cj move.w d3,var_4(a6) move.w (word_FFFF8CF2).w,d3 ext.l d3 asl.l #5,d3 divs.w d0,d3 bvc.s loc_3F408 swap d3 eor.w d0,d3 bmi.s loc_3F418 bra.s loc_3F412 ; --------------------------------------------------------------------------- loc_3F408: ; CODE XREF: sub_3EA90+96Ej ext.l d3 addi.l #$8000,d3 bra.s loc_3F41A ; --------------------------------------------------------------------------- loc_3F412: ; CODE XREF: sub_3EA90+976j move.w #$FFFF,d3 bra.s loc_3F41A ; --------------------------------------------------------------------------- loc_3F418: ; CODE XREF: sub_3EA90+974j move.l d1,d3 loc_3F41A: ; CODE XREF: sub_3EA90+980j ; sub_3EA90+986j move.w d3,var_4+2(a6) bra.w loc_3EAC4 ; --------------------------------------------------------------------------- loc_3F422: ; CODE XREF: sub_3EA90+920j ; sub_3EA90+92Aj ... cmpi.b #$A,d3 bne.s loc_3F480 btst #6,(C2_J1979_MSGS_KE_OBD_01_20_TEST_SUPPORT+1).l ; Bit encoded calibration which indicates which mode 6 tests are supported. ; BOOLEAN beq.s loc_3F480 move.b (byte_FFFF964A).w,d1 bne.w loc_3F60A btst #2,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_1).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.w loc_3F60A move.w (word_FFFF822E).w,d3 cmpi.w #$7FFF,d3 bhi.s loc_3F454 lsr.w #2,d3 bra.s loc_3F456 ; --------------------------------------------------------------------------- loc_3F454: ; CODE XREF: sub_3EA90+9BEj move.l d0,d3 loc_3F456: ; CODE XREF: sub_3EA90+9C2j move.w (word_FFFF822C).w,d4 cmpi.w #$7FFF,d4 bhi.s loc_3F464 lsr.w #2,d4 bra.s loc_3F466 ; --------------------------------------------------------------------------- loc_3F464: ; CODE XREF: sub_3EA90+9CEj move.l d0,d4 loc_3F466: ; CODE XREF: sub_3EA90+9D2j move.b #$A,(byte_FFFF964E).w move.w d3,var_4(a6) move.w d4,var_4+2(a6) moveq #1,d0 addq.b #1,d1 move.b d1,(byte_FFFF964A).w bra.w loc_3F60A ; --------------------------------------------------------------------------- loc_3F480: ; CODE XREF: sub_3EA90+996j ; sub_3EA90+9A0j cmpi.b #$E,d3 bne.w loc_3F56C btst #2,(C2_J1979_MSGS_KE_OBD_01_20_TEST_SUPPORT+1).l ; Bit encoded calibration which indicates which mode 6 tests are supported. ; BOOLEAN beq.w loc_3F56C loc_3F494: ; CODE XREF: sub_3EA90+AD4j move.b (byte_FFFF964A).w,d4 bne.s loc_3F4BA btst #6,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_1).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.s loc_3F4BA clr.b d2 btst #0,(C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN sne d1 neg.b d1 move.b #$11,(byte_FFFF964E).w bra.s loc_3F528 ; --------------------------------------------------------------------------- loc_3F4BA: ; CODE XREF: sub_3EA90+A08j ; sub_3EA90+A12j cmpi.b #1,d4 bne.s loc_3F4E0 btst #5,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_1).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.s loc_3F4E0 moveq #1,d2 btst #1,(C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN sne d1 neg.b d1 move.b #$12,(byte_FFFF964E).w bra.s loc_3F528 ; --------------------------------------------------------------------------- loc_3F4E0: ; CODE XREF: sub_3EA90+A2Ej ; sub_3EA90+A38j cmpi.b #2,d4 bne.s loc_3F506 btst #4,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_1).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.s loc_3F506 moveq #2,d2 btst #4,(C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN sne d1 neg.b d1 move.b #$21,(byte_FFFF964E).w ; '!' bra.s loc_3F528 ; --------------------------------------------------------------------------- loc_3F506: ; CODE XREF: sub_3EA90+A54j ; sub_3EA90+A5Ej cmp.b d4,d5 bne.s loc_3F528 btst #3,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_1).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.s loc_3F528 move.l d5,d2 btst #5,(C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN sne d1 neg.b d1 move.b #$22,(byte_FFFF964E).w ; '"' loc_3F528: ; CODE XREF: sub_3EA90+A28j ; sub_3EA90+A4Ej ... tst.b d1 beq.s loc_3F554 clr.b var_4(a6) clr.l d7 move.b d2,d7 clr.w d3 move.b byte_89752(d7.w),d3 move.b -$7D9B(d3.w),var_4+1(a6) clr.b var_4+2(a6) move.b -$7D9F(d3.w),var_4+3(a6) moveq #1,d0 loc_3F554: ; CODE XREF: sub_3EA90+A9Aj addq.b #1,d4 move.b d4,(byte_FFFF964A).w tst.b d0 bne.w loc_3F60A cmpi.b #4,d4 bcs.w loc_3F494 bra.w loc_3F60A ; --------------------------------------------------------------------------- loc_3F56C: ; CODE XREF: sub_3EA90+9F4j ; sub_3EA90+A00j cmpi.b #$C,d3 bne.w loc_3F60A btst #4,(C2_J1979_MSGS_KE_OBD_01_20_TEST_SUPPORT+1).l ; Bit encoded calibration which indicates which mode 6 tests are supported. ; BOOLEAN beq.w loc_3F60A move.b (byte_FFFF964A).w,d4 bne.s loc_3F5CE move.b #$60,(byte_FFFF964E).w ; '`' move.w (word_FFFF8CB2).w,d3 moveq #$7D,d1 ; '}' muls.w d1,d3 bpl.s loc_3F59C addi.l #$7F,d3 ; '' loc_3F59C: ; CODE XREF: sub_3EA90+B04j asr.l #7,d3 ext.l d3 movea.l #$8000,a2 add.l a2,d3 move.w d3,var_4(a6) move.w (word_FFFFAA9E).w,d3 loc_3F5B0: ; CODE XREF: sub_3EA90+B78j muls.w d1,d3 bpl.s loc_3F5BA addi.l #$7F,d3 ; '' loc_3F5BA: ; CODE XREF: sub_3EA90+B22j asr.l #7,d3 ext.l d3 add.l a2,d3 move.w d3,var_4+2(a6) moveq #1,d0 addq.b #1,d4 move.b d4,(byte_FFFF964A).w bra.s loc_3F60A ; --------------------------------------------------------------------------- loc_3F5CE: ; CODE XREF: sub_3EA90+AF4j cmpi.b #1,d4 bne.s loc_3F60A btst #4,(C2_J1979_MSGS_KE_MODE_06_COMP_ID_SUPPORTED_2).l ; Bit encoded calibration which indicates support or non-support for a particular mode 6 comp ID. ; BOOLEAN beq.s loc_3F60A move.b #$70,(byte_FFFF964E).w ; 'p' move.w (word_FFFF8CB4).w,d3 moveq #$7D,d1 ; '}' muls.w d1,d3 bpl.s loc_3F5F4 addi.l #$7F,d3 ; '' loc_3F5F4: ; CODE XREF: sub_3EA90+B5Cj asr.l #7,d3 ext.l d3 movea.l #$8000,a2 add.l a2,d3 move.w d3,var_4(a6) move.w (word_FFFFAAA0).w,d3 bra.s loc_3F5B0 ; --------------------------------------------------------------------------- loc_3F60A: ; CODE XREF: sub_3EA90+22j ; sub_3EA90+2Aj ... move.l var_4(a6),(dword_FFFF963E).w movem.l (sp)+,d1-d2/d6-d7 unlk a6 rts ; End of function sub_3EA90 ; --------------------------------------------------------------------------- movem.l d0/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF963A).w clr.b (byte_FFFF964A).w move.b 5(a0),(byte_FFFF964D).w cmpi.b #5,(a0) bne.s loc_3F648 jsr sub_3EA90 tst.b d0 beq.s loc_3F648 moveq #$74,d0 ; 't' jsr sub_4519E loc_3F648: ; CODE XREF: OS1:0003F634j ; OS1:0003F63Ej movem.l (sp)+,d0/a0 rts ; --------------------------------------------------------------------------- movem.l d0/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF963A).w clr.w (word_FFFF9656).w cmpi.b #4,(a0) bne.s loc_3F66E moveq #$6E,d0 ; 'n' jsr sub_4519E loc_3F66E: ; CODE XREF: OS1:0003F664j movem.l (sp)+,d0/a0 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3F674: ; CODE XREF: OS1:0003F6E6p var_4 = -4 link a6,#-4 clr.b d0 clr.l var_4(a6) move.b (byte_FFFF964F).w,d3 bne.s loc_3F696 move.l (C2_J1979_MSGS_KE_MODE_8_01_20_TEST_SUPPORT).l,d3 ; Bit encoded calibration which indicates which mode 8 tests in this range are supported. ; BOOLEAN move.l d3,var_4(a6) tst.l d3 beq.s loc_3F6C2 moveq #1,d0 bra.s loc_3F6C2 ; --------------------------------------------------------------------------- loc_3F696: ; CODE XREF: sub_3F674+Ej moveq #1,d4 cmp.b d3,d4 bne.s loc_3F6C2 btst #7,(C2_J1979_MSGS_KE_MODE_8_01_20_TEST_SUPPORT).l ; Bit encoded calibration which indicates which mode 8 tests in this range are supported. ; BOOLEAN beq.s loc_3F6C2 cmpi.b #3,(ThrottleControlMode2?).w beq.s loc_3F6C2 cmp.b (ThrottleControlMode2?).w,d4 beq.s loc_3F6C2 move.b d4,(byte_FFFF9636).w move.b d4,(byte_FFFF9637).w move.b d4,(byte_FFFF9638).w move.l d4,d0 loc_3F6C2: ; CODE XREF: sub_3F674+1Cj ; sub_3F674+20j ... move.l var_4(a6),(dword_FFFF9642).w unlk a6 rts ; End of function sub_3F674 ; --------------------------------------------------------------------------- movem.l d0/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF963A).w move.b 5(a0),(byte_FFFF964F).w cmpi.b #5,(a0) bcs.s loc_3F6F8 jsr sub_3F674 tst.b d0 beq.s loc_3F6F8 moveq #$6F,d0 ; 'o' jsr sub_4519E loc_3F6F8: ; CODE XREF: OS1:0003F6E4j ; OS1:0003F6EEj movem.l (sp)+,d0/a0 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_3F6FE: ; CODE XREF: OS1:0003F940p ; OS1:loc_3FAF4p var_4 = -4 link a6,#-4 clr.b d0 clr.l var_4(a6) move.b (byte_FFFF9650).w,d3 bne.s loc_3F728 tst.b (byte_FFFF964B).w bne.s loc_3F728 move.b #1,(byte_FFFF964C).w move.b (C2_J1979_MSGS_KE_MODE9_01_08_SUPPORT).l,var_4(a6) ; Bit encoded calibration which indicates support or non-support for a particular mode 9 info type. ; BOOLEAN loc_3F722: ; CODE XREF: sub_3F6FE+46j ; sub_3F6FE+AAj ... moveq #1,d0 bra.w loc_3F910 ; --------------------------------------------------------------------------- loc_3F728: ; CODE XREF: sub_3F6FE+Ej ; sub_3F6FE+14j cmpi.b #1,d3 bne.s loc_3F746 btst #7,(C2_J1979_MSGS_KE_MODE9_01_08_SUPPORT).l ; Bit encoded calibration which indicates support or non-support for a particular mode 9 info type. ; BOOLEAN beq.s loc_3F746 tst.b (byte_FFFF964B).w bne.s loc_3F746 move.b #5,(byte_FFFF964C).w bra.s loc_3F722 ; --------------------------------------------------------------------------- loc_3F746: ; CODE XREF: sub_3F6FE+2Ej ; sub_3F6FE+38j ... cmpi.b #2,d3 bne.s loc_3F7AC btst #6,(C2_J1979_MSGS_KE_MODE9_01_08_SUPPORT).l ; Bit encoded calibration which indicates support or non-support for a particular mode 9 info type. ; BOOLEAN beq.s loc_3F7AC moveq #4,d4 cmp.b (byte_FFFF964B).w,d4 bcs.s loc_3F7AC move.b (byte_FFFF964B).w,d3 bne.s loc_3F76C move.l (dword_FFFF90A8).w,var_4(a6) bra.s loc_3F7A2 ; --------------------------------------------------------------------------- loc_3F76C: ; CODE XREF: sub_3F6FE+64j cmpi.b #1,d3 bne.s loc_3F77A move.l (dword_FFFF90AC).w,var_4(a6) bra.s loc_3F7A2 ; --------------------------------------------------------------------------- loc_3F77A: ; CODE XREF: sub_3F6FE+72j cmpi.b #2,d3 bne.s loc_3F788 move.l (dword_FFFF90B0).w,var_4(a6) bra.s loc_3F7A2 ; --------------------------------------------------------------------------- loc_3F788: ; CODE XREF: sub_3F6FE+80j cmpi.b #3,d3 bne.s loc_3F796 move.l (dword_FFFF90B4).w,var_4(a6) bra.s loc_3F7A2 ; --------------------------------------------------------------------------- loc_3F796: ; CODE XREF: sub_3F6FE+8Ej cmpi.b #4,d3 bne.s loc_3F7A2 move.l (dword_FFFF90B8).w,var_4(a6) loc_3F7A2: ; CODE XREF: sub_3F6FE+6Cj ; sub_3F6FE+7Aj ... addq.b #1,d3 move.b d3,(byte_FFFF964C).w bra.w loc_3F722 ; --------------------------------------------------------------------------- loc_3F7AC: ; CODE XREF: sub_3F6FE+4Cj ; sub_3F6FE+56j ... cmpi.b #3,d3 bne.s loc_3F7CC btst #5,(C2_J1979_MSGS_KE_MODE9_01_08_SUPPORT).l ; Bit encoded calibration which indicates support or non-support for a particular mode 9 info type. ; BOOLEAN beq.s loc_3F7CC tst.b (byte_FFFF964B).w bne.s loc_3F7CC move.b #$20,(byte_FFFF964C).w ; ' ' bra.w loc_3F722 ; --------------------------------------------------------------------------- loc_3F7CC: ; CODE XREF: sub_3F6FE+B2j ; sub_3F6FE+BCj ... cmpi.b #4,d3 bne.w loc_3F8A8 btst #4,(C2_J1979_MSGS_KE_MODE9_01_08_SUPPORT).l ; Bit encoded calibration which indicates support or non-support for a particular mode 9 info type. ; BOOLEAN beq.w loc_3F8A8 cmpi.b #$1F,(byte_FFFF964B).w bhi.w loc_3F8A8 move.b (byte_FFFF964B).w,d3 bne.w loc_3F892 move.l #a12587603,(dword_FFFF9658).w ; "12587603" movea.l (dword_FFFF9658).w,a3 lea (unk_FFFF965C).w,a2 moveq #7,d0 loc_3F804: ; CODE XREF: sub_3F6FE+108j move.w (a3)+,(a2)+ dbf d0,loc_3F804 lea (CurveTable_8_Columns_Engine_Calibration_ID_ASCII).l,a3 ; "12587918" lea (unk_FFFF966C).w,a2 moveq #7,d0 loc_3F816: ; CODE XREF: sub_3F6FE+11Aj move.w (a3)+,(a2)+ dbf d0,loc_3F816 lea (CurveTable_8_Columns_Engine_Diagnostics_Calibration_ID_ASCII).l,a3 ; "12586875" lea (unk_FFFF967C).w,a2 moveq #7,d0 loc_3F828: ; CODE XREF: sub_3F6FE+12Cj move.w (a3)+,(a2)+ dbf d0,loc_3F828 lea (CurveTable_8_Columns_Transmission_Calibration_ID_ASCII).l,a3 ; "12579111" lea (unk_FFFF968C).w,a2 moveq #7,d0 loc_3F83A: ; CODE XREF: sub_3F6FE+13Ej move.w (a3)+,(a2)+ dbf d0,loc_3F83A lea (a12579115).l,a3 ; "12579115" lea (unk_FFFF969C).w,a2 moveq #7,d0 loc_3F84C: ; CODE XREF: sub_3F6FE+150j move.w (a3)+,(a2)+ dbf d0,loc_3F84C lea (CurveTable_8_Columns_Fuel_System_Calibration_ID_ASCII).l,a3 ; "12584409" lea (unk_FFFF96AC).w,a2 moveq #7,d0 loc_3F85E: ; CODE XREF: sub_3F6FE+162j move.w (a3)+,(a2)+ dbf d0,loc_3F85E lea (CurveTable_8_Columns_Vehicle_System_Calibration_ID_ASCII).l,a3 ; "12585027" lea (unk_FFFF96BC).w,a2 moveq #7,d0 loc_3F870: ; CODE XREF: sub_3F6FE+174j move.w (a3)+,(a2)+ dbf d0,loc_3F870 lea (CurveTable_8_Columns_Speedometer_Calibration_ID_ASCII).l,a3 ; "12579127" lea (unk_FFFF96CC).w,a2 moveq #7,d0 loc_3F882: ; CODE XREF: sub_3F6FE+186j move.w (a3)+,(a2)+ dbf d0,loc_3F882 move.l #unk_FF965C,(dword_FFFF96DC).w bra.s loc_3F89C ; --------------------------------------------------------------------------- loc_3F892: ; CODE XREF: sub_3F6FE+F0j move.l (dword_FFFF96DC).w,d0 addq.l #4,d0 move.l d0,(dword_FFFF96DC).w loc_3F89C: ; CODE XREF: sub_3F6FE+192j movea.l (dword_FFFF96DC).w,a2 move.l (a2),var_4(a6) bra.w loc_3F7A2 ; --------------------------------------------------------------------------- loc_3F8A8: ; CODE XREF: sub_3F6FE+D2j ; sub_3F6FE+DEj ... cmpi.b #5,d3 bne.s loc_3F8C8 btst #3,(C2_J1979_MSGS_KE_MODE9_01_08_SUPPORT).l ; Bit encoded calibration which indicates support or non-support for a particular mode 9 info type. ; BOOLEAN beq.s loc_3F8C8 tst.b (byte_FFFF964B).w bne.s loc_3F8C8 move.b #8,(byte_FFFF964C).w bra.w loc_3F722 ; --------------------------------------------------------------------------- loc_3F8C8: ; CODE XREF: sub_3F6FE+1AEj ; sub_3F6FE+1B8j ... cmpi.b #6,d3 bne.s loc_3F910 btst #2,(C2_J1979_MSGS_KE_MODE9_01_08_SUPPORT).l ; Bit encoded calibration which indicates support or non-support for a particular mode 9 info type. ; BOOLEAN beq.s loc_3F910 tst.b (byte_FFFF80DF).w beq.s loc_3F910 cmpi.b #7,(byte_FFFF964B).w bhi.s loc_3F910 move.b (byte_FFFF964B).w,d3 bne.s loc_3F8F6 move.l #unk_FF80E0,(dword_FFFF96E0).w bra.s loc_3F900 ; --------------------------------------------------------------------------- loc_3F8F6: ; CODE XREF: sub_3F6FE+1ECj move.l (dword_FFFF96E0).w,d0 addq.l #2,d0 move.l d0,(dword_FFFF96E0).w loc_3F900: ; CODE XREF: sub_3F6FE+1F6j clr.w var_4(a6) movea.l (dword_FFFF96E0).w,a2 move.w (a2),var_4+2(a6) bra.w loc_3F7A2 ; --------------------------------------------------------------------------- loc_3F910: ; CODE XREF: sub_3F6FE+26j ; sub_3F6FE+1CEj ... addq.b #1,(byte_FFFF964B).w move.l var_4(a6),(dword_FFFF9646).w unlk a6 rts ; End of function sub_3F6FE ; --------------------------------------------------------------------------- movem.l d0/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF963A).w clr.b (byte_FFFF964B).w clr.b (byte_FFFF964C).w move.b 5(a0),(byte_FFFF9650).w cmpi.b #5,(a0) bne.s loc_3F952 jsr sub_3F6FE tst.b d0 beq.s loc_3F952 moveq #$70,d0 ; 'p' jsr sub_4519E loc_3F952: ; CODE XREF: OS1:0003F93Ej ; OS1:0003F948j movem.l (sp)+,d0/a0 rts ; --------------------------------------------------------------------------- moveq #$46,d0 ; 'F' jsr (sub_6D2).l move.b (byte_FFFF964D).w,d0 jsr (sub_6D2).l move.b (byte_FFFF964E).w,d0 jsr (sub_6D2).l move.b (dword_FFFF963E).w,d0 jsr (sub_6D2).l move.b (dword_FFFF963E+1).w,d0 jsr (sub_6D2).l move.b (dword_FFFF963E+2).w,d0 jsr (sub_6D2).l move.b (dword_FFFF963E+3).w,d0 jsr (sub_6D2).l jsr sub_3EA90 tst.b d0 beq.s loc_3F9AE moveq #$74,d0 ; 't' jsr sub_4519E loc_3F9AE: ; CODE XREF: OS1:0003F9A4j moveq #1,d0 rts ; --------------------------------------------------------------------------- link a6,#-4 movem.l d1-d2/d6,-(sp) move.l (dword_FFFFB4E2).w,-4(a6) move.b (byte_FFFFB4E0).w,d6 move.b (byte_FFFFB4E1).w,d2 move.b (byte_FFFFB4E6).w,d1 moveq #$45,d0 ; 'E' jsr (sub_6D2).l move.l d6,d0 jsr (sub_6D2).l move.l d2,d0 jsr (sub_6D2).l move.b -4(a6),d0 jsr (sub_6D2).l cmpi.b #7,d1 bls.s loc_3FA08 move.b -3(a6),d0 jsr (sub_6D2).l move.b -2(a6),d0 jsr (sub_6D2).l loc_3FA08: ; CODE XREF: OS1:0003F9F2j cmpi.b #$A,d1 bne.s loc_3FA18 move.b -1(a6),d0 jsr (sub_6D2).l loc_3FA18: ; CODE XREF: OS1:0003FA0Cj moveq #1,d0 movem.l (sp)+,d1-d2/d6 unlk a6 rts ; --------------------------------------------------------------------------- movem.l d1/a0,-(sp) moveq #$42,d0 ; 'B' jsr (sub_6D2).l move.b (byte_FFFF9652).w,d1 move.l d1,d0 jsr (sub_6D2).l clr.b d0 jsr (sub_6D2).l andi.w #$FF,d1 mulu.w #6,d1 lea unk_88450(d1.l),a0 jsr sub_49582 moveq #1,d0 movem.l (sp)+,d1/a0 rts ; --------------------------------------------------------------------------- movem.l d1/a0,-(sp) moveq #$41,d0 ; 'A' jsr (sub_6D2).l move.b (byte_FFFF9651).w,d1 move.l d1,d0 jsr (sub_6D2).l andi.w #$FF,d1 mulu.w #6,d1 lea unk_88384(d1.l),a0 jsr sub_49582 moveq #1,d0 movem.l (sp)+,d1/a0 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #$49,d0 ; 'I' jsr (sub_6D2).l move.b (byte_FFFF9650).w,d1 move.l d1,d0 jsr (sub_6D2).l move.b (byte_FFFF964C).w,d0 jsr (sub_6D2).l tst.b d1 beq.s loc_3FACC cmpi.b #2,d1 beq.s loc_3FACC cmpi.b #4,d1 beq.s loc_3FACC cmpi.b #6,d1 bne.s loc_3FAF4 loc_3FACC: ; CODE XREF: OS1:0003FAB8j ; OS1:0003FABEj ... move.b (dword_FFFF9646).w,d0 jsr (sub_6D2).l move.b (dword_FFFF9646+1).w,d0 jsr (sub_6D2).l move.b (dword_FFFF9646+2).w,d0 jsr (sub_6D2).l move.b (dword_FFFF9646+3).w,d0 jsr (sub_6D2).l loc_3FAF4: ; CODE XREF: OS1:0003FACAj jsr sub_3F6FE tst.b d0 beq.s loc_3FB06 moveq #$70,d0 ; 'p' jsr sub_4519E loc_3FB06: ; CODE XREF: OS1:0003FAFCj moveq #1,d0 move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- moveq #$48,d0 ; 'H' jsr (sub_6D2).l move.b (byte_FFFF964F).w,d0 jsr (sub_6D2).l clr.b d0 jsr (sub_6D2).l move.b (dword_FFFF9642).w,d0 jsr (sub_6D2).l move.b (dword_FFFF9642+1).w,d0 jsr (sub_6D2).l move.b (dword_FFFF9642+2).w,d0 jsr (sub_6D2).l move.b (dword_FFFF9642+3).w,d0 jsr (sub_6D2).l moveq #1,d0 rts ; --------------------------------------------------------------------------- link a6,#-2 movem.l d1-d2/a0,-(sp) moveq #$47,d0 ; 'G' jsr (sub_6D2).l moveq #5,d1 loc_3FB64: ; CODE XREF: OS1:0003FBA2j lea -2(a6),a0 moveq #7,d0 jsr sub_3E928 move.w d0,d2 tst.b -2(a6) beq.s loc_3FB8C lsr.w #8,d0 jsr (sub_6D2).l move.l d2,d0 jsr (sub_6D2).l addq.b #2,d1 bra.s loc_3FB9E ; --------------------------------------------------------------------------- loc_3FB8C: ; CODE XREF: OS1:0003FB76j moveq #$B,d2 bra.s loc_3FB9A ; --------------------------------------------------------------------------- loc_3FB90: ; CODE XREF: OS1:0003FB9Cj clr.b d0 jsr (sub_6D2).l addq.b #1,d1 loc_3FB9A: ; CODE XREF: OS1:0003FB8Ej cmp.b d1,d2 bhi.s loc_3FB90 loc_3FB9E: ; CODE XREF: OS1:0003FB8Aj cmpi.b #$B,d1 bcs.s loc_3FB64 tst.b -2(a6) beq.s loc_3FBB2 moveq #$6E,d0 ; 'n' jsr sub_4519E loc_3FBB2: ; CODE XREF: OS1:0003FBA8j moveq #1,d0 movem.l (sp)+,d1-d2/a0 unlk a6 rts ; --------------------------------------------------------------------------- moveq #$44,d0 ; 'D' jsr (sub_6D2).l moveq #1,d0 rts ; --------------------------------------------------------------------------- link a6,#-2 movem.l d1-d2/a0,-(sp) moveq #$43,d0 ; 'C' jsr (sub_6D2).l moveq #5,d1 loc_3FBDA: ; CODE XREF: OS1:0003FC18j lea -2(a6),a0 moveq #3,d0 jsr sub_3E928 move.w d0,d2 tst.b -2(a6) beq.s loc_3FC02 lsr.w #8,d0 jsr (sub_6D2).l move.l d2,d0 jsr (sub_6D2).l addq.b #2,d1 bra.s loc_3FC14 ; --------------------------------------------------------------------------- loc_3FC02: ; CODE XREF: OS1:0003FBECj moveq #$B,d2 bra.s loc_3FC10 ; --------------------------------------------------------------------------- loc_3FC06: ; CODE XREF: OS1:0003FC12j clr.b d0 jsr (sub_6D2).l addq.b #1,d1 loc_3FC10: ; CODE XREF: OS1:0003FC04j cmp.b d1,d2 bhi.s loc_3FC06 loc_3FC14: ; CODE XREF: OS1:0003FC00j cmpi.b #$B,d1 bcs.s loc_3FBDA tst.b -2(a6) beq.s loc_3FC34 moveq #3,d0 jsr sub_3E9B4 tst.b d0 beq.s loc_3FC34 moveq #$6C,d0 ; 'l' jsr sub_4519E loc_3FC34: ; CODE XREF: OS1:0003FC1Ej ; OS1:0003FC2Aj moveq #1,d0 movem.l (sp)+,d1-d2/a0 unlk a6 rts ; =============== S U B R O U T I N E ======================================= TenSecondDelayIsInHere: ; CODE XREF: OS1:00028E8Ap move.l d0,-(sp) clr.b (byte_FFFF9A56).w clr.b (byte_FFFF9A65).w clr.b (byte_FFFF9A66).w clr.b (byte_FF82EC).l clr.b (byte_FFFF9A38).w move.b #$17,(byte_FFFF9A16).w move.w #$640,(word_FFFFAAFC).w ; This is the ten-second delay timer! move.w (GlobalClock).w,(word_FFFFAAFA).w clr.b (byte_FFFF9A64).w clr.b (byte_FFFF9A63).w cmpi.b #$FF,(C2_J2190_MSGS_KE_VULNERABILITY_FLAG).l ; Bypass Data Link Security to PCM. 0FFH indicates PCM is unlocked. ; SHORTCARD beq.s loc_3FC84 jsr sub_2749A tst.b d0 bls.s loc_3FC9C loc_3FC84: ; CODE XREF: TenSecondDelayIsInHere+3Aj jsr sub_2743C jsr sub_27482 tst.b d0 beq.s loc_3FC9C move.b #1,(byte_FFFF92CD).w bra.s loc_3FCA0 ; --------------------------------------------------------------------------- loc_3FC9C: ; CODE XREF: TenSecondDelayIsInHere+44j ; TenSecondDelayIsInHere+54j clr.b (byte_FFFF92CD).w loc_3FCA0: ; CODE XREF: TenSecondDelayIsInHere+5Cj clr.b (byte_FFFF9A50).w move.l (sp)+,d0 rts ; End of function TenSecondDelayIsInHere ; =============== S U B R O U T I N E ======================================= sub_3FCA8: ; CODE XREF: OS1:loc_3FEBAp ; OS1:loc_3FF44p ... var_6584 = -$6584 var_6583 = -$6583 movem.l d1-d2/d6,-(sp) move.b d0,d1 moveq #1,d2 move.b d2,(byte_FFFF9A88).w movea.l (dword_FFFF9CFA).w,a2 move.b 4(a2),(byte_FFFF9A89).w move.b (a2),d0 subq.b #4,d0 cmpi.b #5,d0 bls.s loc_3FCCA moveq #5,d0 loc_3FCCA: ; CODE XREF: sub_3FCA8+1Ej move.l d2,d3 cmp.b d0,d2 bhi.s loc_3FCE8 loc_3FCD0: ; CODE XREF: sub_3FCA8+3Ej clr.l d5 move.b d3,d5 move.b 4(a2,d5.w),$C+var_6583(d5.w) addq.b #1,(byte_FFFF9A88).w addq.b #1,d3 bcs.s loc_3FCE8 cmp.b d3,d0 bcc.s loc_3FCD0 loc_3FCE8: ; CODE XREF: sub_3FCA8+26j ; sub_3FCA8+3Aj move.b (byte_FFFF9A88).w,d3 moveq #7,d6 cmp.b d3,d6 bhi.s loc_3FCF8 move.b d6,(byte_FFFF9A88).w bra.s loc_3FCFE ; --------------------------------------------------------------------------- loc_3FCF8: ; CODE XREF: sub_3FCA8+48j addq.b #1,d3 move.b d3,(byte_FFFF9A88).w loc_3FCFE: ; CODE XREF: sub_3FCA8+4Ej clr.w d0 move.b (byte_FFFF9A88).w,d0 move.b d1,$C+var_6584(d0.w) moveq #$75,d0 ; 'u' jsr sub_4519E movem.l (sp)+,d1-d2/d6 rts ; End of function sub_3FCA8 ; --------------------------------------------------------------------------- movem.l d1-d2/d6,-(sp) move.b (byte_FFFF9A88).w,d2 moveq #1,d1 cmpi.b #1,d2 bra.s loc_3FD3E ; --------------------------------------------------------------------------- loc_3FD28: ; CODE XREF: OS1:loc_3FD3Ej clr.l d6 move.b d1,d6 move.b -$6578(d6.w),d0 jsr (sub_6D2).l addq.b #1,d1 bcs.s loc_3FD40 cmp.b d1,d2 loc_3FD3E: ; CODE XREF: OS1:0003FD26j bcc.s loc_3FD28 loc_3FD40: ; CODE XREF: OS1:0003FD3Aj moveq #1,d0 movem.l (sp)+,d1-d2/d6 rts ; --------------------------------------------------------------------------- loc_3FD48: ; DATA XREF: OS4:off_87C88o movem.l d0-d1/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w cmpi.b #5,(a0) bne.w loc_3FEB8 move.b 5(a0),d3 move.b d3,(byte_FFFF9A3D).w tst.b d3 bne.s loc_3FDB8 move.b #$84,d0 jsr sub_4519E clr.b (byte_FFFF9D22).w move.b (byte_FFFF9A16).w,d3 btst #0,d3 bne.s loc_3FDA0 ori.b #1,d3 move.b d3,(byte_FFFF9A16).w btst #1,d3 beq.s loc_3FDA0 ori.b #4,d3 move.b d3,(byte_FFFF9A16).w ori.b #8,d3 move.b d3,(byte_FFFF9A16).w loc_3FDA0: ; CODE XREF: OS1:0003FD80j ; OS1:0003FD8Ej move.b (byte_FFFF9A16).w,d3 btst #4,d3 bne.w loc_3FEC0 ori.b #$10,d3 loc_3FDB0: ; CODE XREF: OS1:0003FE90j move.b d3,(byte_FFFF9A16).w bra.w loc_3FEC0 ; --------------------------------------------------------------------------- loc_3FDB8: ; CODE XREF: OS1:0003FD68j moveq #1,d1 cmp.b d3,d1 bne.s loc_3FDE0 move.b d1,(byte_FFFFB158).w move.w #$320,(word_FFFFAB22).w move.w (GlobalClock).w,(word_FFFFAB20).w move.b d1,(byte_FFFF9D22).w loc_3FDD2: ; CODE XREF: OS1:0003FDFCj ; OS1:0003FE2Aj ... move.b #$84,d0 jsr sub_4519E bra.w loc_3FEC0 ; --------------------------------------------------------------------------- loc_3FDE0: ; CODE XREF: OS1:0003FDBCj cmpi.b #2,d3 bne.s loc_3FDFE move.b d1,(byte_FFFFB158).w move.w #$320,(word_FFFFAB22).w move.w (GlobalClock).w,(word_FFFFAB20).w move.b #2,(byte_FFFF9D22).w bra.s loc_3FDD2 ; --------------------------------------------------------------------------- loc_3FDFE: ; CODE XREF: OS1:0003FDE4j cmpi.b #$10,d3 bne.s loc_3FE2C move.b d1,(byte_FFFFB158).w move.w #$320,(word_FFFFAB22).w move.w (GlobalClock).w,(word_FFFFAB20).w move.l d1,d3 not.b d3 and.b (byte_FFFF9A16).w,d3 move.b d3,(byte_FFFF9A16).w moveq #4,d0 not.b d0 and.b d3,d0 move.b d0,(byte_FFFF9A16).w bra.s loc_3FDD2 ; --------------------------------------------------------------------------- loc_3FE2C: ; CODE XREF: OS1:0003FE02j cmpi.b #$20,d3 ; ' ' bne.s loc_3FE4A move.b d1,(byte_FFFFB158).w move.w #$320,(word_FFFFAB22).w move.w (GlobalClock).w,(word_FFFFAB20).w bclr #4,(byte_FFFF9A16).w bra.s loc_3FDD2 ; --------------------------------------------------------------------------- loc_3FE4A: ; CODE XREF: OS1:0003FE30j cmpi.b #$81,d3 beq.s loc_3FE56 cmpi.b #$82,d3 bne.s loc_3FE5E loc_3FE56: ; CODE XREF: OS1:0003FE4Ej clr.b (byte_FFFF9D22).w bra.w loc_3FDD2 ; --------------------------------------------------------------------------- loc_3FE5E: ; CODE XREF: OS1:0003FE54j cmpi.b #$90,d3 bne.s loc_3FE98 btst #0,(byte_FFFF9A16).w bne.s loc_3FE94 move.b #$84,d0 jsr sub_4519E or.b d1,(byte_FFFF9A16).w move.b (byte_FFFF9A16).w,d3 btst #1,d3 beq.s loc_3FEC0 ori.b #4,d3 move.b d3,(byte_FFFF9A16).w ori.b #8,d3 bra.w loc_3FDB0 ; --------------------------------------------------------------------------- loc_3FE94: ; CODE XREF: OS1:0003FE6Aj ; OS1:0003FEA4j moveq #$22,d0 ; '"' bra.s loc_3FEBA ; --------------------------------------------------------------------------- loc_3FE98: ; CODE XREF: OS1:0003FE62j cmpi.b #$A0,d3 bne.s loc_3FEB8 btst #4,(byte_FFFF9A16).w bne.s loc_3FE94 move.b #$84,d0 jsr sub_4519E bset #4,(byte_FFFF9A16).w bra.s loc_3FEC0 ; --------------------------------------------------------------------------- loc_3FEB8: ; CODE XREF: OS1:0003FD5Aj ; OS1:0003FE9Cj moveq #$12,d0 loc_3FEBA: ; CODE XREF: OS1:0003FE96j jsr sub_3FCA8 loc_3FEC0: ; CODE XREF: OS1:0003FDA8j ; OS1:0003FDB4j ... movem.l (sp)+,d0-d1/a0 rts ; --------------------------------------------------------------------------- movem.l d0-d2/d6-a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w move.b 5(a0),d1 move.b d1,(byte_FFFF9A44).w move.b (a0),d3 moveq #7,d2 cmp.b d3,d2 bne.s loc_3FF3E move.b #$FF,d6 cmp.b 6(a0),d6 bne.s loc_3FF3E move.b #$FF,d6 cmp.b 7(a0),d6 bne.s loc_3FF3E move.b #$FF,d6 cmp.b d1,d6 beq.s loc_3FF06 moveq #5,d7 cmp.b d1,d7 bcs.s loc_3FF3E loc_3FF06: ; CODE XREF: OS1:0003FEFEj tst.b d1 beq.s loc_3FF10 cmpi.b #$FF,d1 bne.s loc_3FF16 loc_3FF10: ; CODE XREF: OS1:0003FF08j clr.b (byte_FFFF9A46).w bra.s loc_3FF2A ; --------------------------------------------------------------------------- loc_3FF16: ; CODE XREF: OS1:0003FF0Ej subq.b #1,d1 jsr sub_5F2D8 sub.b d1,d0 tst.b d0 bgt.s loc_3FF26 addq.b #5,d0 loc_3FF26: ; CODE XREF: OS1:0003FF22j move.b d0,(byte_FFFF9A46).w loc_3FF2A: ; CODE XREF: OS1:0003FF14j move.b #$82,d0 jsr sub_4519E clr.b (byte_FFFF9A47).w clr.b (byte_FFFF9A45).w bra.s loc_3FF68 ; --------------------------------------------------------------------------- loc_3FF3E: ; CODE XREF: OS1:0003FEE2j ; OS1:0003FEECj ... cmp.b d3,d2 beq.s loc_3FF4C moveq #$12,d0 loc_3FF44: ; CODE XREF: OS1:0003FF66j jsr sub_3FCA8 bra.s loc_3FF68 ; --------------------------------------------------------------------------- loc_3FF4C: ; CODE XREF: OS1:0003FF40j cmpi.b #5,d1 bhi.s loc_3FF64 move.b #$FF,d1 cmp.b 6(a0),d1 bne.s loc_3FF64 cmpi.b #$FF,7(a0) beq.s loc_3FF68 loc_3FF64: ; CODE XREF: OS1:0003FF50j ; OS1:0003FF5Aj moveq #$31,d0 ; '1' bra.s loc_3FF44 ; --------------------------------------------------------------------------- loc_3FF68: ; CODE XREF: OS1:0003FF3Cj ; OS1:0003FF4Aj ... movem.l (sp)+,d0-d2/d6-a0 rts ; --------------------------------------------------------------------------- link a6,#-6 movem.l d1-d2/d6-a1,-(sp) lea -6(a6),a1 move.l a1,-(sp) lea -2(a6),a1 lea -4(a6),a0 move.b (byte_FFFF9A47).w,d6 move.l d6,d1 move.b (byte_FFFF9A46).w,d0 jsr sub_497D4 move.b d0,d2 move.b (byte_FFFF9A44).w,d1 move.b #$FF,d7 cmp.b d1,d7 bne.s loc_3FFA8 move.b (byte_FFFF9A45).w,d0 bra.s loc_3FFAA ; --------------------------------------------------------------------------- loc_3FFA8: ; CODE XREF: OS1:0003FFA0j move.l d1,d0 loc_3FFAA: ; CODE XREF: OS1:0003FFA6j jsr (sub_6D2).l move.b -4(a6),d0 jsr (sub_6D2).l move.b -3(a6),d0 jsr (sub_6D2).l tst.b -6(a6) beq.s loc_3FFD4 move.b -2(a6),d0 jsr (sub_6D2).l loc_3FFD4: ; CODE XREF: OS1:0003FFC8j move.b -1(a6),d0 jsr (sub_6D2).l tst.b d2 beq.s loc_40012 cmp.b d1,d7 bne.s loc_40022 cmpi.b #5,(byte_FFFF9A45).w bcc.s loc_40022 move.b (byte_FFFF9A45).w,d2 move.l d2,d1 jsr sub_5F2D8 sub.b d1,d0 tst.b d0 ; --------------------------------------------------------------------------- dc.b $6E ; n ; end of 'OS1' dc.b 2 ; =========================================================================== ; Segment type: Regular ; segment "OS2" unk_40000: dc.b $5A ; Z ; DATA XREF: sub_4C296+42o ; sub_5DBA0+ACo ... dc.b 0 dc.b $11 unk_40003: dc.b $C0 ; ? ; DATA XREF: Calibration:SPARK_ADVANCE_KA_RDSC_PHASE_DELAY_TIME_CTo ; Calibration:off_120CEo ... unk_40004: dc.b $9A ; ? ; DATA XREF: Calibration:IAC_AIRFLOW_KV_BREAKAWAY_FRICTION_DELAYo ; Calibration:0000F332o ... unk_40005: dc.b $46 ; F ; DATA XREF: Boot:000018C8o ; Calibration:0000EE5Eo dc.b $42 ; B dc.b $38 ; 8 dc.b $9A ; ? dc.b $47 ; G dc.b $52 ; R dc.b 2 dc.b $11 dc.b $C2 ; ? dc.b $9A ; ? dc.b $45 ; E dc.b $60 ; ` dc.b 6 ; --------------------------------------------------------------------------- loc_40012: ; CODE XREF: OS1:0003FFE0j addq.b #1,d6 move.b d6,(byte_FFFF9A47).w move.b #$82,d0 jsr sub_4519E loc_40022: ; CODE XREF: OS1:0003FFE4j ; OS1:0003FFECj moveq #1,d0 movem.l (sp)+,d1-d2/d6-a1 unlk a6 rts ; --------------------------------------------------------------------------- move.l d0,-(sp) jsr sub_75370 moveq #$7D,d0 ; '}' jsr sub_4519E move.l (sp)+,d0 rts ; --------------------------------------------------------------------------- moveq #1,d0 rts ; =============== S U B R O U T I N E ======================================= sub_40044: ; CODE XREF: OS2:000400ACp move.l d1,-(sp) clr.b d1 jsr sub_5F180 tst.w d0 beq.s loc_40072 cmpi.b #3,DM_TYPES_KV_DM_FAULT_TYPE(d0.w) ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type beq.s loc_40072 move.b byte_FFFF88C0(d0.w*2),d3 moveq #$20,d1 ; ' ' eor.b d1,d3 ori.b #1,d3 move.b d3,(byte_FFFF9A4A).w moveq #1,d1 loc_40072: ; CODE XREF: sub_40044+Cj ; sub_40044+18j move.l d1,d0 move.l (sp)+,d1 rts ; End of function sub_40044 ; --------------------------------------------------------------------------- link a6,#-2 movem.l d0/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w move.b 5(a0),-2(a6) move.b 6(a0),-1(a6) move.w -2(a6),d0 move.w d0,(word_FFFF9A48).w cmpi.b #6,(a0) beq.s loc_400A8 moveq #$12,d0 bra.s loc_400C2 ; --------------------------------------------------------------------------- loc_400A8: ; CODE XREF: OS2:000400A2j tst.w d0 beq.s loc_400C8 jsr sub_40044 tst.b d0 beq.s loc_400C0 moveq #$7E,d0 ; '~' jsr sub_4519E bra.s loc_400C8 ; --------------------------------------------------------------------------- loc_400C0: ; CODE XREF: OS2:000400B4j moveq #$31,d0 ; '1' loc_400C2: ; CODE XREF: OS2:000400A6j jsr sub_3FCA8 loc_400C8: ; CODE XREF: OS2:000400AAj ; OS2:000400BEj movem.l (sp)+,d0/a0 unlk a6 rts ; --------------------------------------------------------------------------- link a6,#-2 move.w (word_FFFF9A48).w,-2(a6) move.b -2(a6),d0 jsr (sub_6D2).l move.b -1(a6),d0 jsr (sub_6D2).l move.b (byte_FFFF9A4A).w,d0 jsr (sub_6D2).l moveq #1,d0 unlk a6 rts ; =============== S U B R O U T I N E ======================================= sub_400FE: ; CODE XREF: OS2:0004020Cp movem.l d1-d2,-(sp) move.b d0,d2 move.w #$104,d4 cmp.w (word_FFFF9A4E).w,d4 bne.s loc_40114 clr.b (a0) clr.w d0 bra.s loc_4015A ; --------------------------------------------------------------------------- loc_40114: ; CODE XREF: sub_400FE+Ej clr.b d1 loc_40116: ; CODE XREF: sub_400FE+4Aj move.w (word_FFFF9A4E).w,d0 addq.w #1,d0 move.w d0,(word_FFFF9A4E).w cmpi.b #3,DM_TYPES_KV_DM_FAULT_TYPE(d0.w) ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type beq.s loc_40142 move.b byte_FFFF88C0(d0.w*2),d3 moveq #$20,d5 ; ' ' eor.b d5,d3 ori.b #1,d3 move.l d2,d5 and.b d3,d5 beq.s loc_40142 moveq #1,d1 loc_40142: ; CODE XREF: sub_400FE+2Cj ; sub_400FE+40j cmp.w d0,d4 beq.s loc_4014A tst.b d1 beq.s loc_40116 loc_4014A: ; CODE XREF: sub_400FE+46j move.b d1,(a0) move.b d3,(a1) move.w (word_FFFF9A4E).w,d0 move.w word_87F70(d0.w*4),d0 loc_4015A: ; CODE XREF: sub_400FE+14j movem.l (sp)+,d1-d2 rts ; End of function sub_400FE ; =============== S U B R O U T I N E ======================================= sub_40160: ; CODE XREF: OS2:00040262p movem.l d1-d2,-(sp) move.b d0,d2 clr.b d0 moveq #1,d1 loc_4016A: ; CODE XREF: sub_40160+32j cmpi.b #3,DM_TYPES_KV_DM_FAULT_TYPE(d1.w) ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type beq.s loc_4018C move.b byte_FFFF88C0(d1.w*2),d3 moveq #$20,d5 ; ' ' eor.b d5,d3 ori.b #1,d3 move.l d2,d4 and.b d3,d4 beq.s loc_4018C addq.b #1,d0 loc_4018C: ; CODE XREF: sub_40160+14j ; sub_40160+28j addq.w #1,d1 cmpi.w #$104,d1 bls.s loc_4016A movem.l (sp)+,d1-d2 rts ; End of function sub_40160 ; --------------------------------------------------------------------------- movem.l d0-d1/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w move.b 5(a0),(byte_FFFF9A4B).w move.b 6(a0),d3 move.b #$FF,d1 cmp.b d3,d1 bne.s loc_401D4 tst.b 7(a0) bne.s loc_401D4 clr.w (word_FFFF9A4E).w move.b #1,(byte_FFFF9A4C).w loc_401CA: ; CODE XREF: OS2:000401E2j moveq #$7F,d0 ; '' jsr sub_4519E bra.s loc_401EC ; --------------------------------------------------------------------------- loc_401D4: ; CODE XREF: OS2:000401B8j ; OS2:000401BEj cmp.b d3,d1 bne.s loc_401E4 cmp.b 7(a0),d1 bne.s loc_401E4 clr.b (byte_FFFF9A4C).w bra.s loc_401CA ; --------------------------------------------------------------------------- loc_401E4: ; CODE XREF: OS2:000401D6j ; OS2:000401DCj moveq #$12,d0 jsr sub_3FCA8 loc_401EC: ; CODE XREF: OS2:000401D2j movem.l (sp)+,d0-d1/a0 rts ; --------------------------------------------------------------------------- link a6,#-2 movem.l d1/a0-a1,-(sp) tst.b (byte_FFFF9A4C).w beq.s loc_40254 lea -2(a6),a1 lea -1(a6),a0 move.b (byte_FFFF9A4B).w,d0 jsr sub_400FE move.w d0,d1 tst.b -1(a6) beq.s loc_4023E lsr.w #8,d0 jsr (sub_6D2).l move.l d1,d0 jsr (sub_6D2).l move.b -2(a6),d0 jsr (sub_6D2).l moveq #$7F,d0 ; '' jsr sub_4519E bra.s loc_4026E ; --------------------------------------------------------------------------- loc_4023E: ; CODE XREF: OS2:00040218j clr.b d0 jsr (sub_6D2).l clr.b d0 jsr (sub_6D2).l move.b #$FF,d0 bra.s loc_40268 ; --------------------------------------------------------------------------- loc_40254: ; CODE XREF: OS2:000401FEj move.b (byte_FFFF9A4B).w,d1 move.l d1,d0 jsr (sub_6D2).l move.l d1,d0 jsr sub_40160 loc_40268: ; CODE XREF: OS2:00040252j jsr (sub_6D2).l loc_4026E: ; CODE XREF: OS2:0004023Cj moveq #1,d0 movem.l (sp)+,d1/a0-a1 unlk a6 rts ; =============== S U B R O U T I N E ======================================= sub_40278: ; CODE XREF: DoLoopF+17Cp DoLoopF+4CCp ... movem.l d0-d2/d6/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w tst.b (byte_FFFF9A3A).w bne.s loc_402B2 cmpi.b #4,(a0) beq.s loc_402B2 move.w (word_FFFFAB22).w,d0 movea.l #unk_FFAB20,a0 jsr sub_276D4 tst.b d0 bne.s loc_402B2 moveq #$12,d0 jsr sub_3FCA8 bra.w loc_40394 ; --------------------------------------------------------------------------- loc_402B2: ; CODE XREF: sub_40278+12j ; sub_40278+18j ... clr.b (byte_FFFFB158).w clr.b (byte_FFFF9A2C).w clr.b (byte_FFFF9A28).w clr.b (byte_FFFF9A29).w moveq #1,d1 move.b d1,(byte_FFFF9A2A).w clr.b (byte_FFFF9A35).w clr.b (byte_FFFF9A36).w clr.b (byte_FFFF9A37).w moveq #8,d2 move.b d2,(byte_FFFF9A2B).w move.b d1,(byte_FFFF9A2D).w move.l d1,d3 loc_402E0: ; CODE XREF: sub_40278+76j clr.l d6 move.b d3,d6 clr.b unk_FFFF9A17(d6.w*2) addq.b #1,d3 cmp.b d3,d2 bcc.s loc_402E0 jsr sub_3E4B4 clr.b (byte_FFFF9A38).w move.w #$640,(word_FFFFAAFC).w loc_40300: ; DATA XREF: OS4:000890A6o move.w (GlobalClock).w,(word_FFFFAAFA).w clr.b (byte_FFFF9A64).w clr.b (byte_FFFF9A63).w cmpi.b #$FF,(C2_J2190_MSGS_KE_VULNERABILITY_FLAG).l ; Bypass Data Link Security to PCM. 0FFH indicates PCM is unlocked. ; SHORTCARD beq.s loc_40322 jsr sub_2749A tst.b d0 bls.s loc_40338 loc_40322: ; CODE XREF: sub_40278+9Ej jsr sub_2743C jsr sub_27482 tst.b d0 beq.s loc_40338 move.b d1,(byte_FFFF92CD).w bra.s loc_4033C ; --------------------------------------------------------------------------- loc_40338: ; CODE XREF: sub_40278+A8j ; sub_40278+B8j clr.b (byte_FFFF92CD).w loc_4033C: ; CODE XREF: sub_40278+BEj clr.b (byte_FFFF9A50).w clr.b (byte_FFFF9D22).w move.b (byte_FFFF9A16).w,d3 btst #2,d3 bne.s loc_4036A or.b d1,d3 move.b d3,(byte_FFFF9A16).w ori.b #2,d3 move.b d3,(byte_FFFF9A16).w ori.b #4,d3 move.b d3,(byte_FFFF9A16).w or.b d2,d3 move.b d3,(byte_FFFF9A16).w loc_4036A: ; CODE XREF: sub_40278+D4j bset #4,(byte_FFFF9A16).w tst.b (byte_FFFFBE71).w beq.s loc_4037C jsr sub_87962 loc_4037C: ; CODE XREF: sub_40278+FCj moveq #$79,d0 ; 'y' jsr sub_4519E movea.w #4,a2 lea -$6348(a2.w),a2 bset #2,$46(a2) loc_40394: ; CODE XREF: sub_40278+36j movem.l (sp)+,d0-d2/d6/a0 rts ; End of function sub_40278 ; =============== S U B R O U T I N E ======================================= sub_4039A: ; CODE XREF: OS2:0004057Ap ; sub_40AD6+178p var_50A8 = -$50A8 var_50A7 = -$50A7 move.b d1,d5 andi.w #$FF,d0 move.b dword_2C3C+2.l(d0.w*4),d1 moveq #1,d4 clr.b d0 loc_403AC: ; CODE XREF: sub_4039A+5Cj clr.l d3 move.b d4,d3 btst #3,word_FFFFAF56(d3.w*4) bne.s loc_403C4 btst #2,word_FFFFAF56(d3.w*4) beq.s loc_403C8 loc_403C4: ; CODE XREF: sub_4039A+1Ej addq.b #1,d4 bra.s loc_403EE ; --------------------------------------------------------------------------- loc_403C8: ; CODE XREF: sub_4039A+28j moveq #1,d0 move.b d5,var_50A7(d3.w*4) bset #3,word_FFFFAF56(d3.w*4) move.b d1,var_50A8(d3.w*4) andi.b #$F,word_FFFFAF56(d3.w*4) ori.b #$20,word_FFFFAF56(d3.w*4) ; ' ' loc_403EE: ; CODE XREF: sub_4039A+2Cj tst.b d0 bne.s locret_403F8 cmpi.b #7,d4 bls.s loc_403AC locret_403F8: ; CODE XREF: sub_4039A+56j rts ; End of function sub_4039A ; =============== S U B R O U T I N E ======================================= sub_403FA: ; CODE XREF: sub_40414+80p ; sub_40AD6+98p andi.w #$FF,d0 movea.w byte_FFFF9A66(d0.w*2),a2 lea PID_jump_table.PID.l(a2.w*8),a2 movea.l 4(a2),a2 jsr (a2) rts ; End of function sub_403FA ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40414: ; CODE XREF: sub_40982+8p var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d1,-(sp) tst.b (byte_FFFF9A56).w beq.w loc_404F2 clr.b d1 moveq #1,d0 move.l d1,d4 loc_4042A: ; CODE XREF: sub_40414+76j clr.l d3 move.b d0,d3 btst #2,word_FFFFAF56(d3.w*4) beq.s loc_40480 move.b word_FFFFAF56(d3.w*4),d5 lsr.b #4,d5 cmpi.b #2,d5 bne.s loc_40480 btst #0,word_FFFFAF56(d3.w*4) sne d5 neg.b d5 btst #1,word_FFFFAF56(d3.w*4) sne d4 neg.b d4 add.b d4,d4 add.b d5,d4 move.b d4,(byte_FFFFAF77).w move.b word_FFFFAF56+1(d3.w*4),(byte_FFFFAF78).w move.b unk_FFFFAF59(d3.w*4),var_4(a6) bclr #2,word_FFFFAF56(d3.w*4) moveq #1,d4 loc_40480: ; CODE XREF: sub_40414+22j ; sub_40414+30j addq.b #1,d0 tst.b d4 bne.s loc_4048C cmpi.b #7,d0 bls.s loc_4042A loc_4048C: ; CODE XREF: sub_40414+70j tst.b d4 beq.s loc_404A2 move.b var_4(a6),d0 jsr sub_403FA move.b d0,(byte_FFFF9A57).w loc_4049E: ; CODE XREF: sub_40414+C6j moveq #1,d1 bra.s loc_404DC ; --------------------------------------------------------------------------- loc_404A2: ; CODE XREF: sub_40414+7Aj move.w (word_FFFF9A5A).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (word_8A832).l,d3 bcs.s loc_404DC moveq #1,d3 loc_404BA: ; CODE XREF: sub_40414+C0j clr.l d4 move.b d3,d4 bclr #3,word_FFFFAF56(d4.w*4) bclr #2,word_FFFFAF56(d4.w*4) addq.b #1,d3 cmpi.b #7,d3 bls.s loc_404BA clr.b (byte_FFFF9A57).w bra.s loc_4049E ; --------------------------------------------------------------------------- loc_404DC: ; CODE XREF: sub_40414+8Cj ; sub_40414+A2j tst.b d1 beq.s loc_404F2 clr.b (byte_FFFF9A56).w move.b #1,(byte_FFFF9A58).w moveq #$7A,d0 ; 'z' jsr sub_4519E loc_404F2: ; CODE XREF: sub_40414+Cj ; sub_40414+CAj movem.l (sp)+,d0-d1 unlk a6 rts ; End of function sub_40414 ; --------------------------------------------------------------------------- link a6,#-2 movem.l d0-d2/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w clr.w d0 move.b 6(a0),d0 clr.w d1 move.b 5(a0),d1 asl.w #8,d1 add.w d0,d1 move.w d1,(word_FFFF9A52).w cmpi.b #7,(a0) bne.s loc_40598 moveq #1,d2 cmp.b 7(a0),d2 bne.s loc_40598 movea.l #unk_FF9A54,a0 move.l d1,d0 jsr sub_42EB2 tst.b d0 beq.s loc_40556 lea -2(a6),a0 move.l d1,d0 jsr sub_42F10 tst.b d0 beq.s loc_4058E tst.b (byte_FFFFB370).w bne.s loc_4055A loc_40556: ; CODE XREF: OS2:0004053Ej moveq #$31,d0 ; '1' bra.s loc_4059A ; --------------------------------------------------------------------------- loc_4055A: ; CODE XREF: OS2:00040554j tst.b (byte_FFFF9A56).w beq.s loc_40564 moveq #$22,d0 ; '"' bra.s loc_4059A ; --------------------------------------------------------------------------- loc_40564: ; CODE XREF: OS2:0004055Ej moveq #$23,d0 ; '#' jsr sub_3FCA8 moveq #1,d3 move.w (word_FFFF9A54).w,(word_FFFF9A68).w move.l d3,d1 move.b -2(a6),d0 jsr sub_4039A move.b #1,(byte_FFFF9A56).w move.w (GlobalClock).w,(word_FFFF9A5A).w bra.s loc_405A0 ; --------------------------------------------------------------------------- loc_4058E: ; CODE XREF: OS2:0004054Ej moveq #$7A,d0 ; 'z' jsr sub_4519E bra.s loc_405A0 ; --------------------------------------------------------------------------- loc_40598: ; CODE XREF: OS2:00040524j ; OS2:0004052Cj moveq #$12,d0 loc_4059A: ; CODE XREF: OS2:00040558j ; OS2:00040562j jsr sub_3FCA8 loc_405A0: ; CODE XREF: OS2:0004058Cj ; OS2:00040596j movem.l (sp)+,d0-d2/a0 unlk a6 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w (word_FFFF9A52).w,d1 move.l d1,d0 lsr.w #8,d0 jsr (sub_6D2).l move.l d1,d0 jsr (sub_6D2).l tst.b (byte_FFFF9A58).w beq.s loc_405D0 clr.b (byte_FFFF9A58).w move.b (byte_FFFF9A57).w,d0 bra.s loc_40626 ; --------------------------------------------------------------------------- loc_405D0: ; CODE XREF: OS2:000405C4j movea.w (word_FFFF9A54).w,a2 lea PID_jump_table.PID.l(a2.w*8),a2 move.b 2(a2),d3 cmpi.b #1,d3 bhi.s loc_405FA beq.s loc_405F0 movea.l 4(a2),a2 jsr (a2) bra.s loc_40626 ; --------------------------------------------------------------------------- loc_405F0: ; CODE XREF: OS2:000405E6j movea.l 4(a2),a2 jsr (a2) move.w d0,d1 bra.s loc_4061C ; --------------------------------------------------------------------------- loc_405FA: ; CODE XREF: OS2:000405E4j movea.l 4(a2),a2 jsr (a2) move.l d0,d1 lsr.l #8,d0 lsr.l #8,d0 lsr.l #8,d0 jsr (sub_6D2).l move.l d1,d0 lsr.l #8,d0 lsr.l #8,d0 jsr (sub_6D2).l move.l d1,d0 loc_4061C: ; CODE XREF: OS2:000405F8j lsr.w #8,d0 jsr (sub_6D2).l move.l d1,d0 loc_40626: ; CODE XREF: OS2:000405CEj ; OS2:000405EEj jsr (sub_6D2).l moveq #1,d0 move.l (sp)+,d1 rts ; =============== S U B R O U T I N E ======================================= sub_40632: ; CODE XREF: OS2:000406F0p ; OS2:00040752p ... move.l d0,d4 move.l d4,d3 cmp.l (off_1E84).l,d3 bhi.s loc_40646 cmp.l (off_1E80).l,d3 bcc.s loc_40686 loc_40646: ; CODE XREF: sub_40632+Aj cmp.l (off_1E9C).l,d3 bhi.s loc_40656 cmp.l (off_1E98).l,d3 bcc.s loc_40686 loc_40656: ; CODE XREF: sub_40632+1Aj cmp.l (off_1EA8).l,d3 bhi.s loc_40666 cmp.l (off_1EA4).l,d3 bcc.s loc_40686 loc_40666: ; CODE XREF: sub_40632+2Aj cmp.l (off_1EC0).l,d3 bhi.s loc_40676 cmp.l (off_1EBC).l,d3 bcc.s loc_40686 loc_40676: ; CODE XREF: sub_40632+3Aj cmp.l (off_1E90).l,d3 bhi.s loc_406AC cmp.l (off_1E8C).l,d3 bcs.s loc_406AC loc_40686: ; CODE XREF: sub_40632+12j ; sub_40632+22j ... move.l #unk_FF8000,d3 cmp.l d3,d4 bcs.s loc_40698 move.l d3,d5 addq.l #3,d5 cmp.l d4,d5 bcc.s loc_406AC loc_40698: ; CODE XREF: sub_40632+5Cj moveq #$32,d0 ; '2' add.l d3,d0 cmp.l d4,d0 beq.s loc_406AC moveq #$33,d0 ; '3' add.l d3,d0 cmp.l d4,d0 beq.s loc_406AC moveq #1,d0 bra.s locret_406AE ; --------------------------------------------------------------------------- loc_406AC: ; CODE XREF: sub_40632+4Aj ; sub_40632+52j ... clr.b d0 locret_406AE: ; CODE XREF: sub_40632+78j rts ; End of function sub_40632 ; --------------------------------------------------------------------------- movem.l d0-d1/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w cmpi.b #8,(a0) bne.s loc_4070C cmpi.b #1,8(a0) bne.s loc_4070C clr.l d0 move.b 6(a0),d0 asl.w #8,d0 andi.l #$FFFF,d0 clr.l d1 move.b 5(a0),d1 asl.l #8,d1 asl.l #8,d1 add.l d0,d1 clr.l d0 move.b 7(a0),d0 add.l d0,d1 move.l d1,d0 jsr sub_40632 tst.b d0 beq.s loc_40708 move.l d1,(dword_FFFF9A5C).w moveq #$7B,d0 ; '{' jsr sub_4519E bra.s loc_40714 ; --------------------------------------------------------------------------- loc_40708: ; CODE XREF: OS2:000406F8j moveq #$31,d0 ; '1' bra.s loc_4070E ; --------------------------------------------------------------------------- loc_4070C: ; CODE XREF: OS2:000406C2j ; OS2:000406CAj moveq #$12,d0 loc_4070E: ; CODE XREF: OS2:0004070Aj jsr sub_3FCA8 loc_40714: ; CODE XREF: OS2:00040706j movem.l (sp)+,d0-d1/a0 rts ; --------------------------------------------------------------------------- link a6,#-4 movem.l d1/a0,-(sp) movea.l (dword_FFFF9A5C).w,a0 move.l a0,-4(a6) move.l a0,d0 lsr.w #8,d0 jsr (sub_6D2).l move.l a0,d0 jsr (sub_6D2).l move.b (a0),d0 jsr (sub_6D2).l moveq #1,d1 loc_40746: ; CODE XREF: OS2:0004076Ej movea.l -4(a6),a0 addq.l #1,a0 move.l a0,-4(a6) move.l a0,d0 jsr sub_40632 tst.b d0 beq.s loc_40760 move.b (a0),d0 bra.s loc_40762 ; --------------------------------------------------------------------------- loc_40760: ; CODE XREF: OS2:0004075Aj clr.b d0 loc_40762: ; CODE XREF: OS2:0004075Ej jsr (sub_6D2).l addq.b #1,d1 cmpi.b #3,d1 bls.s loc_40746 moveq #1,d0 movem.l (sp)+,d1/a0 unlk a6 rts ; --------------------------------------------------------------------------- movem.l d0/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w move.b 5(a0),d3 move.b d3,(byte_FFFF9A62).w clr.w d0 move.b 7(a0),d0 clr.w d4 move.b 6(a0),d4 asl.w #8,d4 add.w d0,d4 move.w d4,(word_FFFF9A60).w cmpi.b #1,d3 bne.s loc_407BC cmpi.b #5,(a0) bne.s loc_407EC loc_407B0: ; CODE XREF: OS2:000407CCj ; OS2:000407E0j ... move.b #$85,d0 jsr sub_4519E bra.s loc_407F4 ; --------------------------------------------------------------------------- loc_407BC: ; CODE XREF: OS2:000407A8j cmpi.b #2,d3 bne.s loc_407EC cmpi.b #7,(a0) bne.s loc_407EC tst.b (byte_FFFF92CD).w bne.s loc_407B0 move.w (word_FFFFAAFC).w,d0 movea.l #unk_FFAAFA,a0 jsr sub_276D4 tst.b d0 beq.s loc_407B0 tst.b (byte_FFFF9A64).w bne.s loc_407B0 moveq #$22,d0 ; '"' bra.s loc_407EE ; --------------------------------------------------------------------------- loc_407EC: ; CODE XREF: OS2:000407AEj ; OS2:000407C0j ... moveq #$12,d0 loc_407EE: ; CODE XREF: OS2:000407EAj jsr sub_3FCA8 loc_407F4: ; CODE XREF: OS2:000407BAj movem.l (sp)+,d0/a0 rts ; --------------------------------------------------------------------------- movem.l d1-d2/a0,-(sp) move.b (byte_FFFF9A62).w,d1 move.l d1,d0 jsr (sub_6D2).l moveq #1,d2 cmp.b d1,d2 bne.s loc_4085C tst.b (byte_FFFF92CD).w bne.s loc_4084E move.w (word_FFFFAAFC).w,d0 movea.l #unk_FFAAFA,a0 jsr sub_276D4 tst.b d0 bne.s loc_40830 loc_4082A: ; CODE XREF: OS2:00040874j moveq #$37,d0 ; '7' bra.w loc_408DC ; --------------------------------------------------------------------------- loc_40830: ; CODE XREF: OS2:00040828j move.b d2,(byte_FFFF9A64).w jsr sub_27436 move.w d0,d1 lsr.w #8,d0 jsr (sub_6D2).l move.l d1,d0 andi.w #$FF,d0 bra.w loc_408DC ; --------------------------------------------------------------------------- loc_4084E: ; CODE XREF: OS2:00040814j clr.b d0 jsr (sub_6D2).l clr.b d0 bra.w loc_408DC ; --------------------------------------------------------------------------- loc_4085C: ; CODE XREF: OS2:0004080Ej tst.b (byte_FFFF92CD).w bne.s loc_408DA move.w (word_FFFFAAFC).w,d0 movea.l #unk_FFAAFA,a0 jsr sub_276D4 tst.b d0 beq.s loc_4082A tst.b (byte_FFFF9A64).w beq.s loc_408E2 clr.b (byte_FFFF9A64).w move.w (word_FFFF9A60).w,d0 jsr sub_27482 tst.b d0 beq.s loc_40894 move.b d2,(byte_FFFF92CD).w bra.s loc_40898 ; --------------------------------------------------------------------------- loc_40894: ; CODE XREF: OS2:0004088Cj clr.b (byte_FFFF92CD).w loc_40898: ; CODE XREF: OS2:00040892j tst.b (byte_FFFF92CD).w bne.s loc_408C6 move.b (byte_FFFF9A63).w,d3 addq.b #1,d3 move.b d3,(byte_FFFF9A63).w cmpi.b #2,d3 bcs.s loc_408C2 move.w #$640,(word_FFFFAAFC).w move.w (GlobalClock).w,(word_FFFFAAFA).w clr.b (byte_FFFF9A63).w moveq #$36,d0 ; '6' bra.s loc_408DC ; --------------------------------------------------------------------------- loc_408C2: ; CODE XREF: OS2:000408ACj moveq #$35,d0 ; '5' bra.s loc_408DC ; --------------------------------------------------------------------------- loc_408C6: ; CODE XREF: OS2:0004089Cj clr.b (byte_FFFF9A63).w move.b d2,(byte_FFFFB158).w move.w #$320,(word_FFFFAB22).w move.w (GlobalClock).w,(word_FFFFAB20).w loc_408DA: ; CODE XREF: OS2:00040860j moveq #$34,d0 ; '4' loc_408DC: ; CODE XREF: OS2:0004082Cj ; OS2:0004084Aj ... jsr (sub_6D2).l loc_408E2: ; CODE XREF: OS2:0004087Aj move.l d2,d0 movem.l (sp)+,d1-d2/a0 rts ; --------------------------------------------------------------------------- movem.l d0-d1/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w move.b 5(a0),d3 move.b d3,(byte_FFFF9A3E).w movea.l (dword_FFFF9CFA).w,a2 cmpi.b #5,(a2) bne.s loc_4093C tst.b d3 bne.s loc_4093C moveq #1,d1 move.b d1,(byte_FFFF9A38).w move.b d1,(byte_FFFFB158).w move.w #$320,(word_FFFFAB22).w move.w (GlobalClock).w,(word_FFFFAB20).w bclr #4,(byte_FFFF9A16).w jsr sub_3E4F2 move.b #$83,d0 jsr sub_4519E bra.s loc_40944 ; --------------------------------------------------------------------------- loc_4093C: ; CODE XREF: OS2:00040908j ; OS2:0004090Cj moveq #$12,d0 jsr sub_3FCA8 loc_40944: ; CODE XREF: OS2:0004093Aj movem.l (sp)+,d0-d1/a0 rts ; --------------------------------------------------------------------------- movem.l d0/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w cmpi.b #4,(a0) bne.s loc_40974 clr.b (byte_FFFF9A38).w bset #4,(byte_FFFF9A16).w move.b #$88,d0 jsr sub_4519E bra.s loc_4097C ; --------------------------------------------------------------------------- loc_40974: ; CODE XREF: OS2:0004095Cj moveq #$12,d0 jsr sub_3FCA8 loc_4097C: ; CODE XREF: OS2:00040972j movem.l (sp)+,d0/a0 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40982: ; CODE XREF: DoLoopD:loc_2A734p ; DoLoopD:loc_2A832p var_2 = -2 link a6,#-2 movem.l d0-d2/d6/a0-a1,-(sp) jsr sub_40414 tst.b (byte_FFFF9A34).w bls.s loc_409F6 tst.b (byte_FFFF9A35).w bne.s loc_409F6 loc_4099C: ; CODE XREF: sub_40982+5Ej move.l #unk_FF9A76,-(sp) movea.l #unk_FF9A65,a1 lea var_2(a6),a0 clr.w d1 move.b (byte_FFFF9A34).w,d1 move.b -$65D3(d1.w),d1 clr.b d0 jsr sub_40AD6 tst.b var_2(a6) bne.s loc_409D0 tst.b (byte_FFFF9A65).w bne.s loc_409D0 subq.b #1,(byte_FFFF9A34).w loc_409D0: ; CODE XREF: sub_40982+42j ; sub_40982+48j tst.b (byte_FFFF9A34).w beq.s loc_409E2 tst.b var_2(a6) bne.s loc_409E2 tst.b (byte_FFFF9A65).w beq.s loc_4099C loc_409E2: ; CODE XREF: sub_40982+52j ; sub_40982+58j tst.b var_2(a6) beq.s loc_409F6 move.b #1,(byte_FFFF9A35).w moveq #$7C,d0 ; '|' jsr sub_4519E loc_409F6: ; CODE XREF: sub_40982+12j ; sub_40982+18j ... tst.b (byte_FFFF9A2D).w bne.w loc_40ACE tst.b (byte_FFFF9A36).w bne.w loc_40ACE move.b (byte_FFFF9A28).w,d3 moveq #4,d4 cmp.b d3,d4 bne.s loc_40A18 move.b #1,(byte_FFFF9A28).w bra.s loc_40A1E ; --------------------------------------------------------------------------- loc_40A18: ; CODE XREF: sub_40982+8Cj addq.b #1,d3 move.b d3,(byte_FFFF9A28).w loc_40A1E: ; CODE XREF: sub_40982+94j move.b (byte_FFFF9A2C).w,d3 cmp.b d3,d4 beq.s loc_40A44 cmpi.b #3,d3 bne.s loc_40A34 cmpi.b #2,(byte_FFFF9A28).w beq.s loc_40A44 loc_40A34: ; CODE XREF: sub_40982+A8j cmpi.b #2,d3 bne.w loc_40ACE cmp.b (byte_FFFF9A28).w,d4 bne.w loc_40ACE loc_40A44: ; CODE XREF: sub_40982+A2j ; sub_40982+B0j cmpi.b #8,(byte_FFFF9A2B).w bne.s loc_40A60 move.b (byte_FFFF9A2A).w,d3 cmp.b (byte_FFFF9A29).w,d3 bcc.s loc_40A60 clr.b (byte_FFFF9A28).w addq.b #1,(byte_FFFF9A2A).w bra.s loc_40ACE ; --------------------------------------------------------------------------- loc_40A60: ; CODE XREF: sub_40982+C8j ; sub_40982+D2j moveq #1,d2 move.b d2,(byte_FFFF9A2A).w move.b (byte_FFFF9A2B).w,d1 addq.b #1,d1 andi.l #$FF,d1 divul.l #9,d3:d1 tst.b d3 bhi.s loc_40A80 move.l d2,d3 loc_40A80: ; CODE XREF: sub_40982+FAj clr.l d6 move.b d3,d6 tst.b unk_FFFF9A17(d6.w*2) beq.s loc_40AC6 clr.b (byte_FFFF9A28).w move.b d3,(byte_FFFF9A2B).w move.l #unk_FF9A7E,-(sp) movea.l #unk_FF9A65,a1 lea var_2(a6),a0 clr.w d1 move.b (byte_FFFF9A2B).w,d1 move.b byte_FFFF9A16(d1.w*2),d1 move.l d2,d0 jsr sub_40AD6 move.b d2,(byte_FFFF9A36).w moveq #$76,d0 ; 'v' jsr sub_4519E bra.s loc_40ACE ; --------------------------------------------------------------------------- loc_40AC6: ; CODE XREF: sub_40982+108j clr.b (byte_FFFF9A28).w move.b d3,(byte_FFFF9A2B).w loc_40ACE: ; CODE XREF: sub_40982+78j ; sub_40982+80j ... movem.l (sp)+,d0-d2/d6/a0-a1 unlk a6 rts ; End of function sub_40982 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AD6: ; CODE XREF: sub_40982+38p ; sub_40982+130p var_65BC = -$65BC var_E = -$E var_A = -$A var_9 = -9 var_8 = -8 var_7 = -7 var_6 = -6 var_2 = -2 arg_0 = 8 link a6,#-$A move.l a0,-(sp) movem.l d2/d6-d7/a4-a5,-(sp) move.b d1,d6 movea.l a1,a5 movea.l arg_0(a6),a4 clr.b (a0) tst.b d0 bne.w loc_40BD6 tst.b (a5) beq.w loc_40BD6 tst.b (byte_FFFF9A66).w beq.w loc_40F04 loc_40AFE: ; CODE XREF: sub_40AD6+B2j moveq #1,d0 clr.b d4 loc_40B02: ; CODE XREF: sub_40AD6+8Cj clr.l d3 move.b d0,d3 btst #2,word_FFFFAF56(d3.w*4) beq.s loc_40B58 move.b word_FFFFAF56(d3.w*4),d1 lsr.b #4,d1 cmpi.b #2,d1 bne.s loc_40B58 btst #0,word_FFFFAF56(d3.w*4) sne d1 neg.b d1 btst #1,word_FFFFAF56(d3.w*4) sne d4 neg.b d4 add.b d4,d4 add.b d1,d4 move.b d4,(byte_FFFFAF77).w move.b word_FFFFAF56+1(d3.w*4),(byte_FFFFAF78).w move.b unk_FFFFAF59(d3.w*4),var_A(a6) bclr #2,word_FFFFAF56(d3.w*4) moveq #1,d4 loc_40B58: ; CODE XREF: sub_40AD6+38j ; sub_40AD6+46j addq.b #1,d0 tst.b d4 bne.s loc_40B64 cmpi.b #7,d0 bls.s loc_40B02 loc_40B64: ; CODE XREF: sub_40AD6+86j move.b d4,d1 beq.s loc_40B80 move.b var_A(a6),d2 move.l d2,d0 jsr sub_403FA andi.w #$FF,d2 move.b d0,(a4,d2.w) subq.b #1,(byte_FFFF9A66).w loc_40B80: ; CODE XREF: sub_40AD6+90j tst.b d1 beq.s loc_40B8C tst.b (byte_FFFF9A66).w bne.w loc_40AFE loc_40B8C: ; CODE XREF: sub_40AD6+ACj move.w (word_FFFF9A5A).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (word_8A832).l,d3 bcs.s loc_40BC4 moveq #1,d3 loc_40BA4: ; CODE XREF: sub_40AD6+E8j clr.l d4 move.b d3,d4 bclr #3,word_FFFFAF56(d4.w*4) bclr #2,word_FFFFAF56(d4.w*4) addq.b #1,d3 cmpi.b #7,d3 bls.s loc_40BA4 clr.b (byte_FFFF9A66).w loc_40BC4: ; CODE XREF: sub_40AD6+CAj tst.b (byte_FFFF9A66).w bne.w loc_40F04 move.b #1,(a0) clr.b (a5) bra.w loc_40F04 ; --------------------------------------------------------------------------- loc_40BD6: ; CODE XREF: sub_40AD6+16j ; sub_40AD6+1Cj cmpi.b #$FE,d6 bhi.s loc_40BE2 cmpi.b #$EF,d6 bcc.s loc_40BE6 loc_40BE2: ; CODE XREF: sub_40AD6+104j clr.b d3 bra.s loc_40BE8 ; --------------------------------------------------------------------------- loc_40BE6: ; CODE XREF: sub_40AD6+10Aj moveq #1,d3 loc_40BE8: ; CODE XREF: sub_40AD6+10Ej tst.b d3 beq.w loc_40EF2 moveq #6,d1 move.b d1,(a4) moveq #1,d7 move.b d7,var_A(a6) loc_40BF8: ; CODE XREF: sub_40AD6+418j clr.l d2 move.b d6,d2 mulu.w #$24,d2 ; '$' clr.w d4 move.b var_A(a6),d4 move.l d4,d3 moveq #6,d1 mulu.w d1,d3 add.w d2,d3 move.b byte_FF614D(d3.w),d0 lsr.b #6,d0 cmpi.b #2,d0 bhi.w loc_40EE0 beq.w loc_40D5E tst.b d0 beq.w loc_40EE0 move.w dword_FF614E(d3.w),d0 lea var_7(a6),a0 jsr sub_42F10 tst.b d0 beq.s loc_40CA8 tst.b (byte_FFFFB370).w beq.s loc_40C9A move.b var_A(a6),d1 move.b var_7(a6),d0 jsr sub_4039A move.b d7,(a5) addq.b #1,(byte_FFFF9A66).w clr.w d0 move.b var_A(a6),d0 moveq #6,d1 mulu.w d1,d0 add.w d2,d0 move.w dword_FF614E(d0.w),d0 movea.l #unk_FF9A54,a0 jsr sub_42EB2 clr.w d3 move.b var_A(a6),d3 move.w (word_FFFF9A54).w,$22+var_65BC(d3.w*2) clr.b (a4,d3.w) addq.b #1,var_A(a6) move.w (GlobalClock).w,(word_FFFF9A5A).w bra.w loc_40EE8 ; --------------------------------------------------------------------------- loc_40C9A: ; CODE XREF: sub_40AD6+16Ej ; sub_40AD6+1FAj clr.w d3 move.b var_A(a6),d3 clr.b (a4,d3.w) bra.w loc_40EE4 ; --------------------------------------------------------------------------- loc_40CA8: ; CODE XREF: sub_40AD6+168j clr.w d0 move.b var_A(a6),d0 mulu.w d1,d0 add.w d2,d0 move.w dword_FF614E(d0.w),d0 lea var_9(a6),a0 lea var_8(a6),a1 jsr sub_42E3C move.l d0,var_6(a6) tst.b var_9(a6) beq.s loc_40C9A move.b var_8(a6),d3 cmpi.b #1,d3 bhi.s loc_40D12 beq.s loc_40CEE clr.w d3 move.b var_A(a6),d3 loc_40CE4: ; CODE XREF: sub_40AD6:loc_40DE6j move.b var_6(a6),(a4,d3.w) bra.w loc_40EE4 ; --------------------------------------------------------------------------- loc_40CEE: ; CODE XREF: sub_40AD6+206j clr.w d3 move.b var_A(a6),d3 loc_40CF4: ; CODE XREF: sub_40AD6:loc_40DEAj move.b var_6(a6),(a4,d3.w) move.b var_A(a6),d3 addq.b #1,d3 move.b d3,var_A(a6) andi.w #$FF,d3 move.b var_6+1(a6),(a4,d3.w) bra.w loc_40EE4 ; --------------------------------------------------------------------------- loc_40D12: ; CODE XREF: sub_40AD6+204j clr.w d3 move.b var_A(a6),d3 loc_40D18: ; CODE XREF: sub_40AD6+2FAj ; sub_40AD6+302j ... move.b var_6(a6),(a4,d3.w) move.b var_A(a6),d3 addq.b #1,d3 move.b d3,var_A(a6) andi.w #$FF,d3 move.b var_6+1(a6),(a4,d3.w) move.b var_A(a6),d3 addq.b #1,d3 move.b d3,var_A(a6) andi.w #$FF,d3 move.b var_6+2(a6),(a4,d3.w) move.b var_A(a6),d3 addq.b #1,d3 move.b d3,var_A(a6) andi.w #$FF,d3 move.b var_6+3(a6),(a4,d3.w) bra.w loc_40EE4 ; --------------------------------------------------------------------------- loc_40D5E: ; CODE XREF: sub_40AD6+14Aj movea.l dword_FF614E(d3.w),a0 clr.l var_6(a6) move.l a0,d0 jsr sub_40632 tst.b d0 beq.s loc_40D7A move.b (a0),var_6(a6) loc_40D7A: ; CODE XREF: sub_40AD6+29Ej addq.l #1,a0 move.l a0,d0 jsr sub_40632 tst.b d0 beq.s loc_40D8C move.b (a0),var_6+1(a6) loc_40D8C: ; CODE XREF: sub_40AD6+2B0j addq.l #1,a0 move.l a0,d0 jsr sub_40632 tst.b d0 beq.s loc_40D9E move.b (a0),var_6+2(a6) loc_40D9E: ; CODE XREF: sub_40AD6+2C2j addq.l #1,a0 move.l a0,d0 jsr sub_40632 tst.b d0 beq.s loc_40DB0 move.b (a0),var_6+3(a6) loc_40DB0: ; CODE XREF: sub_40AD6+2D4j clr.w d3 move.b var_A(a6),d3 move.l d3,d4 mulu.w d1,d4 add.w d2,d4 move.b byte_FF614D(d4.w),d4 andi.b #7,d4 andi.w #$FF,d4 cmpi.w #1,d4 bcs.w loc_40D18 cmpi.w #6,d4 bhi.w loc_40D18 movea.l off_8A70C(d4.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_40DE6: ; DATA XREF: OS4:0008A710o bra.w loc_40CE4 ; --------------------------------------------------------------------------- loc_40DEA: ; DATA XREF: OS4:0008A714o bra.w loc_40CF4 ; --------------------------------------------------------------------------- loc_40DEE: ; DATA XREF: OS4:0008A718o move.b var_6(a6),(a4,d3.w) move.b var_A(a6),d3 addq.b #1,d3 move.b d3,var_A(a6) andi.w #$FF,d3 move.b var_6+1(a6),(a4,d3.w) move.b var_A(a6),d3 addq.b #1,d3 move.b d3,var_A(a6) andi.w #$FF,d3 move.b var_6+2(a6),(a4,d3.w) bra.w loc_40EE4 ; --------------------------------------------------------------------------- loc_40E20: ; DATA XREF: OS4:0008A71Co bra.w loc_40D18 ; --------------------------------------------------------------------------- loc_40E24: ; DATA XREF: OS4:0008A720o move.b var_6(a6),(a4,d3.w) move.b var_A(a6),d3 addq.b #1,d3 move.b d3,var_A(a6) andi.w #$FF,d3 move.b var_6+1(a6),(a4,d3.w) move.b var_A(a6),d3 addq.b #1,d3 move.b d3,var_A(a6) andi.w #$FF,d3 move.b var_6+2(a6),(a4,d3.w) move.b var_A(a6),d3 addq.b #1,d3 move.b d3,var_A(a6) andi.w #$FF,d3 move.b var_6+3(a6),(a4,d3.w) move.b var_A(a6),d3 addq.b #1,d3 move.b d3,var_A(a6) addq.l #1,a0 bra.s loc_40ED6 ; --------------------------------------------------------------------------- loc_40E74: ; DATA XREF: OS4:0008A724o move.b var_6(a6),(a4,d3.w) move.b var_A(a6),d3 addq.b #1,d3 move.b d3,var_A(a6) andi.w #$FF,d3 move.b var_6+1(a6),(a4,d3.w) move.b var_A(a6),d3 addq.b #1,d3 move.b d3,var_A(a6) andi.w #$FF,d3 move.b var_6+2(a6),(a4,d3.w) move.b var_A(a6),d3 addq.b #1,d3 move.b d3,var_A(a6) andi.w #$FF,d3 move.b var_6+3(a6),(a4,d3.w) move.b var_A(a6),d3 addq.b #1,d3 move.b d3,var_A(a6) addq.l #1,a0 andi.w #$FF,d3 move.b (a0),(a4,d3.w) addq.l #1,a0 move.b var_A(a6),d3 addq.b #1,d3 move.b d3,var_A(a6) loc_40ED6: ; CODE XREF: sub_40AD6+39Cj andi.w #$FF,d3 move.b (a0),(a4,d3.w) bra.s loc_40EE4 ; --------------------------------------------------------------------------- loc_40EE0: ; CODE XREF: sub_40AD6+146j ; sub_40AD6+150j clr.b (a4,d4.w) loc_40EE4: ; CODE XREF: sub_40AD6+1CEj ; sub_40AD6+214j ... addq.b #1,var_A(a6) loc_40EE8: ; CODE XREF: sub_40AD6+1C0j cmp.b var_A(a6),d1 bcs.s loc_40EF4 bra.w loc_40BF8 ; --------------------------------------------------------------------------- loc_40EF2: ; CODE XREF: sub_40AD6+114j clr.b (a4) loc_40EF4: ; CODE XREF: sub_40AD6+416j tst.b (a4) beq.s loc_40F04 tst.b (a5) bne.s loc_40F04 movea.l var_E(a6),a2 move.b #1,(a2) loc_40F04: ; CODE XREF: sub_40AD6+24j ; sub_40AD6+F2j ... movem.l (sp)+,d2/d6-d7/a4-a5 unlk a6 rtd #4 ; End of function sub_40AD6 ; --------------------------------------------------------------------------- movem.l d0-d2/d6-a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w move.b 5(a0),d3 bne.s loc_40F5C cmpi.b #5,(a0) bne.s loc_40F5C clr.b (byte_FFFF9A2C).w clr.b (byte_FFFF9A28).w clr.b (byte_FFFF9A29).w moveq #1,d1 move.b d1,(byte_FFFF9A2A).w move.b d1,(byte_FFFF9A2D).w clr.b (byte_FFFF9A36).w move.b #8,(byte_FFFF9A2B).w clr.b (byte_FFFF9A39).w move.b d1,(byte_FFFF9A37).w loc_40F50: ; CODE XREF: OS2:00041176j moveq #$76,d0 ; 'v' jsr sub_4519E bra.w loc_41182 ; --------------------------------------------------------------------------- loc_40F5C: ; CODE XREF: OS2:00040F20j ; OS2:00040F26j moveq #1,d6 cmp.b d3,d6 bne.w loc_41030 move.b (a0),d4 cmpi.b #6,d4 bcs.w loc_41030 cmpi.b #$B,d4 bhi.w loc_41030 move.l d6,d1 clr.b d0 move.l d0,d4 move.l d4,d2 loc_40F7E: ; CODE XREF: OS2:00040FD8j move.l d1,d3 addq.b #5,d3 andi.w #$FF,d3 move.b (a0,d3.w),d3 beq.s loc_40FBE cmpi.b #$FF,d3 bne.s loc_40FA8 cmp.b d1,d6 bne.s loc_40F9C moveq #$12,d0 loc_40F98: ; CODE XREF: OS2:00040FC0j move.l d6,d4 bra.s loc_40FC2 ; --------------------------------------------------------------------------- loc_40F9C: ; CODE XREF: OS2:00040F94j tst.b d2 bne.s loc_40FC2 move.l d1,d7 subq.b #1,d7 move.l d6,d2 bra.s loc_40FC2 ; --------------------------------------------------------------------------- loc_40FA8: ; CODE XREF: OS2:00040F90j cmpi.b #$FE,d3 bhi.s loc_40FB4 cmpi.b #$EF,d3 bcc.s loc_40FB8 loc_40FB4: ; CODE XREF: OS2:00040FACj clr.b d3 bra.s loc_40FBA ; --------------------------------------------------------------------------- loc_40FB8: ; CODE XREF: OS2:00040FB2j move.l d6,d3 loc_40FBA: ; CODE XREF: OS2:00040FB6j tst.b d3 bne.s loc_40FC2 loc_40FBE: ; CODE XREF: OS2:00040F8Aj moveq #$31,d0 ; '1' bra.s loc_40F98 ; --------------------------------------------------------------------------- loc_40FC2: ; CODE XREF: OS2:00040F9Aj ; OS2:00040F9Ej ... move.b (a0),d3 subq.b #5,d3 cmp.b d1,d3 bne.s loc_40FD4 move.l d6,d4 tst.b d2 bne.s loc_40FD6 move.b d1,d7 bra.s loc_40FD6 ; --------------------------------------------------------------------------- loc_40FD4: ; CODE XREF: OS2:00040FC8j addq.b #1,d1 loc_40FD6: ; CODE XREF: OS2:00040FCEj ; OS2:00040FD2j tst.b d4 beq.s loc_40F7E tst.b d0 bne.w loc_4117C clr.b d0 move.l d7,d6 moveq #1,d1 cmpi.b #1,d6 bra.s loc_4101C ; --------------------------------------------------------------------------- loc_40FEC: ; CODE XREF: OS2:loc_4101Cj move.l d7,d2 sub.b d1,d2 addq.b #6,d2 andi.w #$FF,d2 movea.l (dword_FFFF9CFA).w,a2 move.b (a2,d2.w),d3 clr.l d2 move.b d1,d2 move.b d3,-$65D3(d2.w) cmpi.b #$EF,d3 bcs.s loc_41016 cmpi.b #$F1,d3 bhi.s loc_41016 moveq #$23,d0 ; '#' loc_41016: ; CODE XREF: OS2:0004100Cj ; OS2:00041012j addq.b #1,d1 bcs.s loc_4101E cmp.b d1,d6 loc_4101C: ; CODE XREF: OS2:00040FEAj bcc.s loc_40FEC loc_4101E: ; CODE XREF: OS2:00041018j tst.b d0 beq.s loc_41028 jsr sub_3FCA8 loc_41028: ; CODE XREF: OS2:00041020j move.b d7,(byte_FFFF9A34).w bra.w loc_41182 ; --------------------------------------------------------------------------- loc_41030: ; CODE XREF: OS2:00040F60j ; OS2:00040F6Aj ... cmpi.b #$12,d3 beq.s loc_41056 cmpi.b #$13,d3 beq.s loc_41056 moveq #$14,d1 cmp.b d3,d1 beq.s loc_41056 cmpi.b #$22,d3 ; '"' beq.s loc_41056 cmpi.b #$23,d3 ; '#' beq.s loc_41056 cmpi.b #$24,d3 ; '$' bne.w loc_4114C loc_41056: ; CODE XREF: OS2:00041034j ; OS2:0004103Aj ... moveq #9,d1 cmp.b (a0),d1 bhi.w loc_4114C moveq #6,d4 move.l d6,d0 loc_41062: ; CODE XREF: OS2:000410ACj clr.l d1 move.b d4,d1 move.b (a0,d1.w),d3 beq.s loc_4108A cmpi.b #$FF,d3 beq.s loc_4108A cmpi.b #$FE,d3 bhi.s loc_41080 move.b #$EF,d1 cmp.b d3,d1 bls.s loc_41084 loc_41080: ; CODE XREF: OS2:00041076j clr.b d5 bra.s loc_41086 ; --------------------------------------------------------------------------- loc_41084: ; CODE XREF: OS2:0004107Ej move.l d6,d5 loc_41086: ; CODE XREF: OS2:00041082j tst.b d5 beq.s loc_4108E loc_4108A: ; CODE XREF: OS2:0004106Aj ; OS2:00041070j addq.b #1,d4 bra.s loc_41090 ; --------------------------------------------------------------------------- loc_4108E: ; CODE XREF: OS2:00041088j clr.b d0 loc_41090: ; CODE XREF: OS2:0004108Cj cmpi.b #$EF,d3 beq.s loc_410A2 cmpi.b #$F0,d3 beq.s loc_410A2 cmpi.b #$F1,d3 bne.s loc_410A4 loc_410A2: ; CODE XREF: OS2:00041094j ; OS2:0004109Aj clr.b d0 loc_410A4: ; CODE XREF: OS2:000410A0j cmpi.b #9,d4 bhi.s loc_410AE tst.b d0 bne.s loc_41062 loc_410AE: ; CODE XREF: OS2:000410A8j tst.b d0 beq.w loc_41148 move.b d6,(byte_FFFF9A2D).w movea.l (dword_FFFF9CFA).w,a2 move.b 5(a2),d0 andi.b #$F,d0 move.b d0,(byte_FFFF9A2C).w movea.l (dword_FFFF9CFA).w,a2 cmpi.b #$14,5(a2) bls.s loc_410D8 moveq #5,d0 bra.s loc_410DA ; --------------------------------------------------------------------------- loc_410D8: ; CODE XREF: OS2:000410D2j move.l d6,d0 loc_410DA: ; CODE XREF: OS2:000410D6j moveq #6,d4 loc_410DC: ; CODE XREF: OS2:00041128j clr.l d1 move.b d4,d1 movea.l (dword_FFFF9CFA).w,a2 move.b (a2,d1.w),d3 bne.s loc_410F6 clr.l d1 move.b d0,d1 clr.b unk_FFFF9A17(d1.w*2) bra.s loc_41118 ; --------------------------------------------------------------------------- loc_410F6: ; CODE XREF: OS2:000410E8j cmpi.b #$FF,d3 bne.s loc_41108 clr.l d1 move.b d0,d1 move.b d6,unk_FFFF9A17(d1.w*2) bra.s loc_41118 ; --------------------------------------------------------------------------- loc_41108: ; CODE XREF: OS2:000410FAj clr.l d1 move.b d0,d1 move.b d6,unk_FFFF9A17(d1.w*2) move.b d3,byte_FFFF9A16(d1.w*2) loc_41118: ; CODE XREF: OS2:000410F4j ; OS2:00041106j addq.b #1,d4 addq.b #1,d0 cmpi.b #8,d0 bls.s loc_41124 moveq #8,d0 loc_41124: ; CODE XREF: OS2:00041120j cmpi.b #9,d4 bls.s loc_410DC move.b d6,(byte_FFFFB158).w move.w #$320,(word_FFFFAB22).w move.w (GlobalClock).w,(word_FFFFAB20).w moveq #$23,d0 ; '#' jsr sub_3FCA8 clr.b (byte_FFFF9A2D).w bra.s loc_41182 ; --------------------------------------------------------------------------- loc_41148: ; CODE XREF: OS2:000410B0j moveq #$31,d0 ; '1' bra.s loc_4117C ; --------------------------------------------------------------------------- loc_4114C: ; CODE XREF: OS2:00041052j ; OS2:0004105Aj cmpi.b #$F1,d3 bcs.s loc_4117A cmpi.b #5,(a0) bne.s loc_4117A move.b d3,(byte_FFFF9A39).w movea.l (dword_FFFF9CFA).w,a2 clr.l d0 move.b 5(a2),d0 divul.l #$F0,d3:d0 ; '?' move.b d3,(byte_FFFF9A29).w move.b d6,(byte_FFFF9A37).w bra.w loc_40F50 ; --------------------------------------------------------------------------- loc_4117A: ; CODE XREF: OS2:00041150j ; OS2:00041156j moveq #$12,d0 loc_4117C: ; CODE XREF: OS2:00040FDCj ; OS2:0004114Aj jsr sub_3FCA8 loc_41182: ; CODE XREF: OS2:00040F58j ; OS2:0004102Cj ... movem.l (sp)+,d0-d2/d6-a0 rts ; --------------------------------------------------------------------------- movem.l d1-d2/d6,-(sp) tst.b (byte_FFFF9A37).w beq.s loc_411A4 move.b (byte_FFFF9A39).w,d0 jsr (sub_6D2).l clr.b (byte_FFFF9A37).w bra.w loc_4122A ; --------------------------------------------------------------------------- loc_411A4: ; CODE XREF: OS2:00041190j tst.b (byte_FFFF9A36).w beq.s loc_411E6 clr.w d0 move.b (byte_FFFF9A2B).w,d0 move.b byte_FFFF9A16(d0.w*2),d0 jsr (sub_6D2).l move.b (byte_FFFF9A7E).w,d2 moveq #1,d1 cmpi.b #1,d2 bra.s loc_411DE ; --------------------------------------------------------------------------- loc_411C8: ; CODE XREF: OS2:loc_411DEj clr.l d6 move.b d1,d6 move.b -$6582(d6.w),d0 jsr (sub_6D2).l addq.b #1,d1 bcs.s loc_411E0 cmp.b d1,d2 loc_411DE: ; CODE XREF: OS2:000411C6j bcc.s loc_411C8 loc_411E0: ; CODE XREF: OS2:000411DAj clr.b (byte_FFFF9A36).w bra.s loc_4122A ; --------------------------------------------------------------------------- loc_411E6: ; CODE XREF: OS2:000411A8j tst.b (byte_FFFF9A35).w beq.s loc_4122A clr.w d0 move.b (byte_FFFF9A34).w,d0 move.b -$65D3(d0.w),d0 jsr (sub_6D2).l move.b (byte_FFFF9A76).w,d2 moveq #1,d1 cmpi.b #1,d2 bra.s loc_41220 ; --------------------------------------------------------------------------- loc_4120A: ; CODE XREF: OS2:loc_41220j clr.l d6 move.b d1,d6 move.b -$658A(d6.w),d0 jsr (sub_6D2).l addq.b #1,d1 bcs.s loc_41222 cmp.b d1,d2 loc_41220: ; CODE XREF: OS2:00041208j bcc.s loc_4120A loc_41222: ; CODE XREF: OS2:0004121Cj subq.b #1,(byte_FFFF9A34).w clr.b (byte_FFFF9A35).w loc_4122A: ; CODE XREF: OS2:000411A0j ; OS2:000411E4j ... moveq #1,d0 movem.l (sp)+,d1-d2/d6 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41232: ; CODE XREF: OS2:0004154Cp var_C = -$C var_B = -$B var_A = -$A var_8 = -8 var_6 = -6 var_4 = -4 link a6,#-$C movem.l d1-d2/d6-d7/a1/a4,-(sp) movea.l a0,a1 move.b (a1),d3 cmpi.b #$FE,d3 bhi.s loc_4124A cmpi.b #$EF,d3 bcc.s loc_4124E loc_4124A: ; CODE XREF: sub_41232+10j clr.b d3 bra.s loc_41250 ; --------------------------------------------------------------------------- loc_4124E: ; CODE XREF: sub_41232+16j moveq #1,d3 loc_41250: ; CODE XREF: sub_41232+1Aj tst.b d3 beq.w loc_414F8 move.b 1(a1),d3 lsr.b #3,d3 moveq #7,d4 and.b d4,d3 moveq #1,d5 cmp.b d3,d5 bhi.s loc_41284 cmpi.b #6,d3 bhi.s loc_41284 move.b 1(a1),d0 and.b d4,d0 move.l d5,d1 cmp.b d0,d1 bhi.s loc_41284 move.b 1(a1),d0 and.b d4,d0 add.b d3,d0 cmp.b d0,d4 bcc.s loc_41288 loc_41284: ; CODE XREF: sub_41232+32j ; sub_41232+38j ... clr.b d3 bra.s loc_4128A ; --------------------------------------------------------------------------- loc_41288: ; CODE XREF: sub_41232+50j move.l d5,d3 loc_4128A: ; CODE XREF: sub_41232+54j tst.b d3 beq.w loc_414F8 clr.b var_C(a6) move.b 1(a1),d0 lsr.b #6,d0 cmpi.b #2,d0 bhi.w loc_414F8 beq.w loc_4149A tst.b d0 beq.w loc_414F8 tst.b (byte_FFFFB370).w beq.s loc_412EE move.b (a1),d3 cmpi.b #$EF,d3 beq.s loc_412EE cmpi.b #$F0,d3 beq.s loc_412EE cmpi.b #$F1,d3 beq.s loc_412EE lea var_A(a6),a4 movea.l a4,a0 move.w 2(a1),d0 jsr sub_42F10 tst.b d0 bne.w loc_41492 movea.l a4,a0 move.w 4(a1),d0 jsr sub_42F10 tst.b d0 bne.w loc_41492 loc_412EE: ; CODE XREF: sub_41232+7Ej ; sub_41232+86j ... tst.b (byte_FFFFB370).w bne.s loc_4131C lea var_A(a6),a4 movea.l a4,a0 move.w 2(a1),d0 jsr sub_42F10 tst.b d0 bne.w loc_41492 movea.l a4,a0 move.w 4(a1),d0 jsr sub_42F10 tst.b d0 bne.w loc_41492 loc_4131C: ; CODE XREF: sub_41232+C0j lea var_8(a6),a0 movea.w 2(a1),a4 move.l a4,d0 jsr sub_42EB2 tst.b d0 beq.w loc_41492 move.b 1(a1),d4 lsr.b #3,d4 moveq #7,d1 and.b d1,d4 move.b d4,var_B(a6) move.w var_8(a6),d2 move.b PID_jump_table.PidFlags.l(d2.w*8),d2 cmpi.b #1,d2 bhi.s loc_4135C beq.s loc_41358 moveq #1,d2 bra.s loc_4135E ; --------------------------------------------------------------------------- loc_41358: ; CODE XREF: sub_41232+120j moveq #2,d2 bra.s loc_4135E ; --------------------------------------------------------------------------- loc_4135C: ; CODE XREF: sub_41232+11Ej moveq #4,d2 loc_4135E: ; CODE XREF: sub_41232+124j ; sub_41232+128j move.b 1(a1),d3 and.b d1,d3 cmp.b d3,d2 bhi.s loc_41374 cmp.b d3,d2 beq.s loc_4137A cmpi.w #$FFFF,4(a1) bne.s loc_4137A loc_41374: ; CODE XREF: sub_41232+134j moveq #$12,d3 bra.w loc_4148C ; --------------------------------------------------------------------------- loc_4137A: ; CODE XREF: sub_41232+138j ; sub_41232+140j movea.l a1,a3 clr.w d6 move.b (a1),d6 mulu.w #$24,d6 ; '$' clr.l d1 move.b d4,d1 moveq #6,d3 mulu.w d3,d1 add.w d6,d1 move.b 1(a3),byte_FF614D(d1.w) move.l d2,d0 andi.b #7,d0 andi.b #$F8,byte_FF614D(d1.w) or.b d0,byte_FF614D(d1.w) move.w a4,dword_FF614E(d1.w) move.w 4(a1),d7 cmpi.w #$FFFF,d7 bne.s loc_413CA clr.b var_C(a6) bra.w loc_414FE ; --------------------------------------------------------------------------- loc_413CA: ; CODE XREF: sub_41232+18Ej lea var_6(a6),a0 move.l d7,d0 jsr sub_42EB2 tst.b d0 beq.w loc_41480 move.b var_B(a6),d3 add.b d2,d3 move.b d3,var_B(a6) move.b 1(a1),d0 andi.b #7,d0 sub.b d2,d0 bcc.s loc_413F4 clr.b d0 loc_413F4: ; CODE XREF: sub_41232+1BEj move.w var_6(a6),d2 move.b PID_jump_table.PidFlags.l(d2.w*8),d2 cmpi.b #1,d2 bhi.s loc_41410 beq.s loc_4140C moveq #1,d2 bra.s loc_41412 ; --------------------------------------------------------------------------- loc_4140C: ; CODE XREF: sub_41232+1D4j moveq #2,d2 bra.s loc_41412 ; --------------------------------------------------------------------------- loc_41410: ; CODE XREF: sub_41232+1D2j moveq #4,d2 loc_41412: ; CODE XREF: sub_41232+1D8j ; sub_41232+1DCj cmpi.b #1,d0 bcs.s loc_41422 cmpi.b #6,d0 bhi.s loc_41422 cmp.b d0,d2 beq.s loc_41430 loc_41422: ; CODE XREF: sub_41232+1E4j ; sub_41232+1EAj ori.b #$C0,byte_FF614D(d1.w) bra.w loc_414F8 ; --------------------------------------------------------------------------- loc_41430: ; CODE XREF: sub_41232+1EEj andi.w #$FF,d3 mulu.w #6,d3 add.w d6,d3 move.b 1(a1),byte_FF614D(d3.w) move.b var_B(a6),d1 lsl.b #3,d1 andi.b #$38,d1 ; '8' andi.b #$C7,byte_FF614D(d3.w) or.b d1,byte_FF614D(d3.w) andi.b #7,d0 andi.b #$F8,byte_FF614D(d3.w) or.b d0,byte_FF614D(d3.w) move.w d7,dword_FF614E(d3.w) bra.s loc_414FE ; --------------------------------------------------------------------------- loc_41480: ; CODE XREF: sub_41232+1A6j ori.b #$C0,byte_FF614D(d1.w) moveq #$31,d3 ; '1' loc_4148C: ; CODE XREF: sub_41232+144j move.b d3,var_C(a6) bra.s loc_414FE ; --------------------------------------------------------------------------- loc_41492: ; CODE XREF: sub_41232+A6j ; sub_41232+B8j ... move.b #$31,var_C(a6) ; '1' bra.s loc_414FE ; --------------------------------------------------------------------------- loc_4149A: ; CODE XREF: sub_41232+70j cmpi.b #$FF,5(a1) bne.s loc_414F8 clr.b var_4(a6) move.b 2(a1),var_4+1(a6) move.b 3(a1),var_4+2(a6) move.b 4(a1),var_4+3(a6) move.l var_4(a6),d0 jsr sub_40632 tst.b d0 beq.s loc_41492 move.b 1(a1),d4 lsr.b #3,d4 andi.b #7,d4 clr.l d5 move.b d4,d5 mulu.w #6,d5 clr.w d3 move.b (a1),d3 mulu.w #$24,d3 ; '$' add.w d5,d3 move.b 1(a1),byte_FF614D(d3.w) move.l var_4(a6),dword_FF614E(d3.w) bra.s loc_414FE ; --------------------------------------------------------------------------- loc_414F8: ; CODE XREF: sub_41232+20j ; sub_41232+5Aj ... move.b #$12,var_C(a6) loc_414FE: ; CODE XREF: sub_41232+194j ; sub_41232+24Cj ... move.b var_C(a6),d0 movem.l (sp)+,d1-d2/d6-d7/a1/a4 unlk a6 rts ; End of function sub_41232 ; --------------------------------------------------------------------------- link a6,#-6 movem.l d0-d1/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w cmpi.b #$A,(a0) beq.s loc_41526 moveq #$12,d0 bra.s loc_41572 ; --------------------------------------------------------------------------- loc_41526: ; CODE XREF: OS2:00041520j clr.b d3 loc_41528: ; CODE XREF: OS2:00041546j clr.l d1 move.b d3,d1 move.l d3,d4 addq.b #5,d4 andi.w #$FF,d4 movea.l (dword_FFFF9CFA).w,a0 move.b (a0,d4.w),d4 move.b d4,-6(a6,d1.w) addq.b #1,d3 cmpi.b #5,d3 bls.s loc_41528 lea -6(a6),a0 jsr sub_41232 tst.b d0 bne.s loc_41572 movea.l (dword_FFFF9CFA).w,a2 move.b 5(a2),(byte_FFFF9A86).w move.b 6(a2),(byte_FFFF9A85).w move.b #$80,d0 jsr sub_4519E bra.s loc_41578 ; --------------------------------------------------------------------------- loc_41572: ; CODE XREF: OS2:00041524j ; OS2:00041554j jsr sub_3FCA8 loc_41578: ; CODE XREF: OS2:00041570j movem.l (sp)+,d0-d1/a0 unlk a6 rts ; --------------------------------------------------------------------------- move.b (byte_FFFF9A86).w,d0 jsr (sub_6D2).l move.b (byte_FFFF9A85).w,d0 jsr (sub_6D2).l moveq #1,d0 rts ; --------------------------------------------------------------------------- link a6,#-$C movem.l d0-d2/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w cmpi.b #$A,(a0) beq.s loc_415BC moveq #$12,d0 loc_415B2: ; CODE XREF: OS2:000415C4j ; OS2:000415E6j jsr sub_3FCA8 bra.w loc_416E4 ; --------------------------------------------------------------------------- loc_415BC: ; CODE XREF: OS2:000415AEj tst.b (byte_FFFF92CD).w bne.s loc_415C6 moveq #$33,d0 ; '3' bra.s loc_415B2 ; --------------------------------------------------------------------------- loc_415C6: ; CODE XREF: OS2:000415C0j clr.b d3 cmpi.w #$400,(EngineRPM_PID_000C___).w bcc.s loc_415E0 cmpi.w #$180,(word_FFFFAEBE).w bcc.s loc_415E0 tst.b (byte_FFFF82BE).w beq.s loc_415E0 moveq #1,d3 loc_415E0: ; CODE XREF: OS2:000415CEj ; OS2:000415D6j ... tst.b d3 bne.s loc_415E8 moveq #$22,d0 ; '"' bra.s loc_415B2 ; --------------------------------------------------------------------------- loc_415E8: ; CODE XREF: OS2:000415E2j move.b 5(a0),d3 move.b d3,(byte_FFFF9A40).w movea.l (dword_FFFF9CFA).w,a2 clr.w d1 move.b 7(a2),d1 clr.w d2 move.b 6(a2),d2 asl.w #8,d2 add.w d1,d2 move.w d2,(word_FFFF9A9C).w clr.l d0 move.b 9(a2),d0 asl.w #8,d0 andi.l #$FFFF,d0 clr.l d1 move.b 8(a2),d1 asl.l #8,d1 asl.l #8,d1 add.l d0,d1 clr.l d0 move.b $A(a2),d0 add.l d0,d1 move.l d1,(dword_FFFF9A98).w tst.b d3 beq.s loc_41646 move.b #$41,(byte_FFFF9A41).w ; 'A' loc_41638: ; CODE XREF: OS2:00041680j ; OS2:0004168Ej move.b #$87,d0 jsr sub_4519E bra.w loc_416E4 ; --------------------------------------------------------------------------- loc_41646: ; CODE XREF: OS2:00041630j move.b 4(a2),d3 clr.b d4 move.l d2,d0 subq.w #1,d0 andi.l #$FFFF,d0 add.l d1,d0 cmpi.b #$34,d3 ; '4' beq.s loc_41664 cmpi.b #$36,d3 ; '6' bne.s loc_41676 loc_41664: ; CODE XREF: OS2:0004165Cj cmpi.l #unk_FF8000,d1 bcs.s loc_41676 cmpi.l #unk_FFC000,d0 bcc.s loc_41676 moveq #1,d4 loc_41676: ; CODE XREF: OS2:00041662j ; OS2:0004166Aj ... tst.b d4 bne.s loc_41682 move.b #$42,(byte_FFFF9A41).w ; 'B' bra.s loc_41638 ; --------------------------------------------------------------------------- loc_41682: ; CODE XREF: OS2:00041678j cmpi.w #$1000,d2 bls.s loc_41690 move.b #$43,(byte_FFFF9A41).w ; 'C' bra.s loc_41638 ; --------------------------------------------------------------------------- loc_41690: ; CODE XREF: OS2:00041686j btst #1,(byte_FFFF89B8).w beq.s loc_416A0 move.b #$99,(byte_FFFF9A41).w bra.s loc_416A6 ; --------------------------------------------------------------------------- loc_416A0: ; CODE XREF: OS2:00041696j move.b #$44,(byte_FFFF9A41).w ; 'D' loc_416A6: ; CODE XREF: OS2:0004169Ej movea.l (dword_FFFF9CFA).w,a2 addq.l #1,a2 move.b (a2),-$C(a6) movea.l (dword_FFFF9CFA).w,a0 move.b 3(a0),-$B(a6) move.b #$10,-$A(a6) move.b #$74,-9(a6) ; 't' move.b (byte_FFFF9A40).w,-8(a6) move.b (byte_FFFF9A41).w,-7(a6) moveq #6,d0 lea -$C(a6),a0 jsr (sub_D6E).l jsr (sub_80E).l ; --------------------------------------------------------------------------- loc_416E4: ; CODE XREF: OS2:000415B8j ; OS2:00041642j movem.l (sp)+,d0-d2/a0 unlk a6 rts ; --------------------------------------------------------------------------- movem.l d0/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w moveq #$22,d0 ; '"' jsr sub_3FCA8 movem.l (sp)+,d0/a0 rts ; --------------------------------------------------------------------------- link a6,#-4 movem.l d0-d2/d6-a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w move.b 5(a0),(byte_FFFF9A42).w movea.l (dword_FFFF9CFA).w,a2 addq.l #6,a2 move.l a2,-4(a6) movea.l (dword_FFFF9CFA).w,a3 cmpi.b #5,(a3) bls.w loc_418F6 move.b (byte_FFFF9A42).w,d3 moveq #1,d2 cmp.b d3,d2 beq.w loc_418C2 cmpi.b #2,d3 beq.w loc_418C2 cmpi.b #3,d3 beq.w loc_418C2 cmpi.b #8,d3 beq.w loc_418C2 cmpi.b #$A,d3 beq.w loc_418C2 cmpi.b #$B,d3 beq.w loc_418C2 cmpi.b #$C,d3 beq.w loc_418C2 cmpi.b #$D,d3 beq.w loc_418C2 cmpi.b #$E,d3 beq.w loc_418C2 cmpi.b #$F,d3 beq.w loc_418C2 cmpi.b #$14,d3 beq.w loc_418C2 cmpi.b #$41,d3 ; 'A' beq.w loc_418C2 cmpi.b #$42,d3 ; 'B' beq.w loc_418C2 cmpi.b #$43,d3 ; 'C' beq.w loc_418C2 cmpi.b #$44,d3 ; 'D' beq.w loc_418C2 cmpi.b #$45,d3 ; 'E' beq.w loc_418C2 cmpi.b #$46,d3 ; 'F' beq.w loc_418C2 cmpi.b #$47,d3 ; 'G' beq.w loc_418C2 cmpi.b #$48,d3 ; 'H' beq.w loc_418C2 cmpi.b #$49,d3 ; 'I' beq.w loc_418C2 cmpi.b #$4D,d3 ; 'M' beq.w loc_418C2 cmpi.b #$4E,d3 ; 'N' beq.w loc_418C2 cmpi.b #$4F,d3 ; 'O' beq.w loc_418C2 cmpi.b #$6D,d3 ; 'm' beq.w loc_418C2 moveq #$6F,d6 ; 'o' cmp.b d3,d6 beq.s loc_4180C moveq #$70,d7 ; 'p' cmp.b d3,d7 beq.s loc_4180C moveq #$71,d7 ; 'q' cmp.b d3,d7 bne.s loc_41870 loc_4180C: ; CODE XREF: OS2:000417FEj ; OS2:00041804j clr.b d0 cmp.b d3,d6 bne.s loc_4182E move.b (a2),d4 lsr.b #4,d4 cmpi.b #8,d4 beq.s loc_4182A cmpi.b #4,d4 beq.s loc_4182A cmp.b d4,d2 beq.s loc_4182A tst.b d4 bne.s loc_4186C loc_4182A: ; CODE XREF: OS2:0004181Aj ; OS2:00041820j ... addq.b #1,d0 bra.s loc_4186C ; --------------------------------------------------------------------------- loc_4182E: ; CODE XREF: OS2:00041810j cmpi.b #$70,d3 ; 'p' bne.s loc_4184E move.l d2,d0 clr.b d4 loc_41838: ; CODE XREF: OS2:0004184Aj move.b (a2),d5 beq.s loc_4183E clr.b d0 loc_4183E: ; CODE XREF: OS2:0004183Aj addq.b #1,d4 addq.l #1,a2 tst.b d0 beq.s loc_4186C cmpi.b #6,d4 bcs.s loc_41838 bra.s loc_4186C ; --------------------------------------------------------------------------- loc_4184E: ; CODE XREF: OS2:00041832j cmpi.b #$71,d3 ; 'q' bne.s loc_4186C move.l d2,d0 clr.b d4 loc_41858: ; CODE XREF: OS2:0004186Aj move.b (a2),d5 beq.s loc_4185E clr.b d0 loc_4185E: ; CODE XREF: OS2:0004185Aj addq.b #1,d4 addq.l #1,a2 tst.b d0 beq.s loc_4186C cmpi.b #3,d4 bcs.s loc_41858 loc_4186C: ; CODE XREF: OS2:00041828j ; OS2:0004182Cj ... tst.b d0 bne.s loc_418C2 loc_41870: ; CODE XREF: OS2:0004180Aj cmpi.b #$73,d3 ; 's' beq.s loc_418C2 cmpi.b #$80,d3 beq.s loc_418C2 cmpi.b #$81,d3 beq.s loc_418C2 cmpi.b #$82,d3 bne.s loc_4188E tst.b (byte_FFFF92CD).w bne.s loc_418C2 loc_4188E: ; CODE XREF: OS2:00041886j cmpi.b #$93,d3 beq.s loc_418C2 cmpi.b #$94,d3 beq.s loc_418C2 cmpi.b #$95,d3 beq.s loc_418C2 cmpi.b #$96,d3 beq.s loc_418C2 cmpi.b #$97,d3 beq.s loc_418C2 cmpi.b #$98,d3 beq.s loc_418C2 cmpi.b #$A0,d3 bne.s loc_418F6 jsr sub_2749A tst.b d0 bls.s loc_418F6 loc_418C2: ; CODE XREF: OS2:0004173Ej ; OS2:00041746j ... movea.l (dword_FFFF9CFA).w,a2 movea.l a2,a0 addq.l #6,a0 move.b (a2),d1 subq.b #5,d1 move.b (byte_FFFF9A42).w,d0 jsr sub_26DFA tst.b d0 beq.s loc_418F6 cmpi.b #3,(byte_FFFF9A42).w bhi.s loc_418EA jsr sub_49382 loc_418EA: ; CODE XREF: OS2:000418E2j move.b #$89,d0 jsr sub_4519E bra.s loc_418FE ; --------------------------------------------------------------------------- loc_418F6: ; CODE XREF: OS2:00041732j ; OS2:000418B6j ... moveq #$12,d0 jsr sub_3FCA8 loc_418FE: ; CODE XREF: OS2:000418F4j movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; --------------------------------------------------------------------------- movem.l d0-d1/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w move.b 5(a0),d3 move.b d3,(byte_FFFF9A43).w movea.l (dword_FFFF9CFA).w,a2 moveq #5,d1 cmp.b (a2),d1 bne.w loc_41A7E cmpi.b #1,d3 beq.w loc_41A72 cmpi.b #2,d3 beq.w loc_41A72 cmpi.b #3,d3 beq.w loc_41A72 cmpi.b #4,d3 beq.w loc_41A72 cmp.b d3,d1 beq.w loc_41A72 cmpi.b #6,d3 beq.w loc_41A72 cmpi.b #7,d3 beq.w loc_41A72 cmpi.b #8,d3 beq.w loc_41A72 cmpi.b #$A,d3 beq.w loc_41A72 cmpi.b #$B,d3 beq.w loc_41A72 cmpi.b #$C,d3 beq.w loc_41A72 cmpi.b #$D,d3 beq.w loc_41A72 cmpi.b #$E,d3 beq.w loc_41A72 cmpi.b #$F,d3 beq.w loc_41A72 cmpi.b #$10,d3 beq.w loc_41A72 cmpi.b #$11,d3 beq.w loc_41A72 cmpi.b #$14,d3 beq.w loc_41A72 cmpi.b #$41,d3 ; 'A' beq.w loc_41A72 cmpi.b #$42,d3 ; 'B' beq.w loc_41A72 cmpi.b #$43,d3 ; 'C' beq.w loc_41A72 cmpi.b #$44,d3 ; 'D' beq.w loc_41A72 cmpi.b #$45,d3 ; 'E' beq.w loc_41A72 cmpi.b #$46,d3 ; 'F' beq.w loc_41A72 cmpi.b #$47,d3 ; 'G' beq.w loc_41A72 cmpi.b #$48,d3 ; 'H' beq.w loc_41A72 cmpi.b #$49,d3 ; 'I' beq.s loc_41A72 cmpi.b #$4D,d3 ; 'M' beq.s loc_41A72 cmpi.b #$4E,d3 ; 'N' beq.s loc_41A72 cmpi.b #$4F,d3 ; 'O' beq.s loc_41A72 cmpi.b #$6D,d3 ; 'm' beq.s loc_41A72 cmpi.b #$6F,d3 ; 'o' beq.s loc_41A72 cmpi.b #$70,d3 ; 'p' beq.s loc_41A72 cmpi.b #$71,d3 ; 'q' beq.s loc_41A72 cmpi.b #$73,d3 ; 's' beq.s loc_41A72 cmpi.b #$74,d3 ; 't' beq.s loc_41A72 cmpi.b #$80,d3 beq.s loc_41A72 cmpi.b #$81,d3 beq.s loc_41A72 cmpi.b #$82,d3 beq.s loc_41A72 cmpi.b #$93,d3 beq.s loc_41A72 cmpi.b #$94,d3 beq.s loc_41A72 cmpi.b #$95,d3 beq.s loc_41A72 cmpi.b #$96,d3 beq.s loc_41A72 cmpi.b #$97,d3 beq.s loc_41A72 cmpi.b #$98,d3 beq.s loc_41A72 cmpi.b #$99,d3 beq.s loc_41A72 cmpi.b #$9A,d3 beq.s loc_41A72 cmpi.b #$A0,d3 bne.s loc_41A7E loc_41A72: ; CODE XREF: OS2:0004192Cj ; OS2:00041934j ... move.b #$81,d0 jsr sub_4519E bra.s loc_41A86 ; --------------------------------------------------------------------------- loc_41A7E: ; CODE XREF: OS2:00041924j ; OS2:00041A70j moveq #$12,d0 jsr sub_3FCA8 loc_41A86: ; CODE XREF: OS2:00041A7Cj movem.l (sp)+,d0-d1/a0 rts ; --------------------------------------------------------------------------- link a6,#-8 movem.l d1-d2/a0,-(sp) move.b (byte_FFFF9A43).w,d0 lea -8(a6),a0 jsr sub_26B32 move.b (byte_FFFF9A43).w,d0 jsr (sub_6D2).l moveq #1,d1 cmpi.b #1,-8(a6) bcs.s loc_41ACC loc_41AB6: ; CODE XREF: OS2:00041ACAj clr.l d2 move.b d1,d2 move.b -8(a6,d2.w),d0 jsr (sub_6D2).l addq.b #1,d1 cmp.b -8(a6),d1 bls.s loc_41AB6 loc_41ACC: ; CODE XREF: OS2:00041AB4j moveq #1,d0 movem.l (sp)+,d1-d2/a0 unlk a6 rts ; --------------------------------------------------------------------------- tst.b (byte_FFFFB158).w beq.s locret_41AE8 move.w #$320,(word_FFFFAB22).w move.w (GlobalClock).w,(word_FFFFAB20).w locret_41AE8: ; CODE XREF: OS2:00041ADAj rts ; --------------------------------------------------------------------------- movem.l d0-d1/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w cmpi.b #4,(a0) beq.s loc_41B08 moveq #$12,d0 loc_41B00: ; CODE XREF: OS2:00041B1Aj jsr sub_3FCA8 bra.s loc_41B3C ; --------------------------------------------------------------------------- loc_41B08: ; CODE XREF: OS2:00041AFCj cmpi.w #$400,(EngineRPM_PID_000C___).w bcc.s loc_41B18 cmpi.w #$180,(word_FFFFAEBE).w bcs.s loc_41B1C loc_41B18: ; CODE XREF: OS2:00041B0Ej moveq #$22,d0 ; '"' bra.s loc_41B00 ; --------------------------------------------------------------------------- loc_41B1C: ; CODE XREF: OS2:00041B16j moveq #1,d1 move.b d1,(byte_FFFFB158).w move.w #$320,(word_FFFFAB22).w move.w (GlobalClock).w,(word_FFFFAB20).w move.b d1,(byte_FFFF9A50).w move.b #$86,d0 jsr sub_4519E loc_41B3C: ; CODE XREF: OS2:00041B06j movem.l (sp)+,d0-d1/a0 rts ; --------------------------------------------------------------------------- movem.l d0/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w cmpi.b #4,(a0) beq.s loc_41B60 moveq #$12,d0 loc_41B58: ; CODE XREF: OS2:00041B68j jsr sub_3FCA8 bra.s loc_41B8E ; --------------------------------------------------------------------------- loc_41B60: ; CODE XREF: OS2:00041B54j tst.b (byte_FFFF9A50).w bne.s loc_41B6A moveq #$22,d0 ; '"' bra.s loc_41B58 ; --------------------------------------------------------------------------- loc_41B6A: ; CODE XREF: OS2:00041B64j moveq #1,d0 move.b d0,(byte_FFFFB158).w move.w #$320,(word_FFFFAB22).w move.w (GlobalClock).w,(word_FFFFAB20).w clr.b (byte_FFFFBE6C).w jsr (sub_7E2).l move.b d0,(byte_FFFFBE71).w clr.b (byte_FFFF9A50).w loc_41B8E: ; CODE XREF: OS2:00041B5Ej movem.l (sp)+,d0/a0 rts ; --------------------------------------------------------------------------- movem.l d0-d1/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w cmpi.b #4,(a0) bne.s loc_41BDA tst.b (byte_FFFFA7F9).w beq.s loc_41BB2 moveq #$22,d0 ; '"' bra.s loc_41BDC ; --------------------------------------------------------------------------- loc_41BB2: ; CODE XREF: OS2:00041BACj moveq #1,d1 move.b d1,(byte_FFFFA80F).w clr.b (byte_FFFFA80E).w clr.b (byte_FFFFA812).w move.b d1,(byte_FFFFB158).w move.w #$320,(word_FFFFAB22).w move.w (GlobalClock).w,(word_FFFFAB20).w moveq #$78,d0 ; 'x' jsr sub_4519E bra.s loc_41BE2 ; --------------------------------------------------------------------------- loc_41BDA: ; CODE XREF: OS2:00041BA6j moveq #$12,d0 loc_41BDC: ; CODE XREF: OS2:00041BB0j jsr sub_3FCA8 loc_41BE2: ; CODE XREF: OS2:00041BD8j movem.l (sp)+,d0-d1/a0 rts ; --------------------------------------------------------------------------- moveq #1,d0 rts ; --------------------------------------------------------------------------- movem.l d0-d2/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF9CFA).w cmpi.b #$B,(a0) bne.w loc_41D2C move.b 5(a0),d3 move.b d3,(byte_FFFF9A9E).w move.b 6(a0),d4 cmpi.b #$FE,d3 bne.s loc_41C4C cmpi.b #$80,d4 bne.s loc_41C4C tst.b (byte_FFFF92CD).w beq.s loc_41C46 cmpi.b #3,(ThrottleControlMode2?).w beq.s loc_41C34 move.b #1,(byte_FF82EC).l bra.w loc_41D18 ; --------------------------------------------------------------------------- loc_41C34: ; CODE XREF: OS2:00041C26j move.b #$E3,(byte_FFFF9A9F).w loc_41C3A: ; CODE XREF: OS2:00041D1Ej moveq #$77,d0 ; 'w' jsr sub_4519E bra.w loc_41D34 ; --------------------------------------------------------------------------- loc_41C46: ; CODE XREF: OS2:00041C1Ej moveq #$33,d0 ; '3' bra.w loc_41D2E ; --------------------------------------------------------------------------- loc_41C4C: ; CODE XREF: OS2:00041C12j ; OS2:00041C18j tst.b d3 bne.s loc_41C8E jsr sub_3E4B4 move.b #$E1,(byte_FFFF9A9F).w moveq #$77,d0 ; 'w' jsr sub_4519E move.b (byte_FFFF9A16).w,d3 btst #0,d3 beq.s loc_41C84 btst #1,d3 bne.s loc_41C84 ori.b #4,d3 move.b d3,(byte_FFFF9A16).w ori.b #8,d3 move.b d3,(byte_FFFF9A16).w loc_41C84: ; CODE XREF: OS2:00041C6Cj ; OS2:00041C72j bset #1,(byte_FFFF9A16).w bra.w loc_41D34 ; --------------------------------------------------------------------------- loc_41C8E: ; CODE XREF: OS2:00041C4Ej moveq #1,d1 cmp.b d3,d1 beq.s loc_41CA2 cmpi.b #2,d3 beq.s loc_41CA2 cmpi.b #3,d3 bne.w loc_41D28 loc_41CA2: ; CODE XREF: OS2:00041C92j ; OS2:00041C98j move.b d3,(byte_FFFF9A90).w move.b d4,(byte_FFFF9A91).w movea.l (dword_FFFF9CFA).w,a0 move.b 7(a0),(byte_FFFF9A92).w movea.l (dword_FFFF9CFA).w,a0 move.b 8(a0),(byte_FFFF9A93).w movea.l (dword_FFFF9CFA).w,a0 move.b 9(a0),(byte_FFFF9A94).w movea.l (dword_FFFF9CFA).w,a0 move.b $A(a0),(byte_FFFF9A95).w movea.l (dword_FFFF9CFA).w,a0 move.b $B(a0),(byte_FFFF9A96).w movea.l #unk_FF9A90,a0 jsr sub_3D7B0 tst.b d0 bne.s loc_41D22 tst.b (byte_FFFFA80F).w bne.s loc_41D08 moveq #2,d3 not.b d3 and.b (byte_FFFF9A16).w,d3 move.b d3,(byte_FFFF9A16).w moveq #4,d0 not.b d0 and.b d3,d0 move.b d0,(byte_FFFF9A16).w loc_41D08: ; CODE XREF: OS2:00041CF0j move.b d1,(byte_FFFFB158).w move.w #$320,(word_FFFFAB22).w move.w (GlobalClock).w,(word_FFFFAB20).w loc_41D18: ; CODE XREF: OS2:00041C30j move.b #$E1,(byte_FFFF9A9F).w bra.w loc_41C3A ; --------------------------------------------------------------------------- loc_41D22: ; CODE XREF: OS2:00041CEAj cmpi.b #2,d0 bne.s loc_41D34 loc_41D28: ; CODE XREF: OS2:00041C9Ej moveq #$31,d0 ; '1' bra.s loc_41D2E ; --------------------------------------------------------------------------- loc_41D2C: ; CODE XREF: OS2:00041BFEj moveq #$12,d0 loc_41D2E: ; CODE XREF: OS2:00041C48j ; OS2:00041D2Aj jsr sub_3FCA8 loc_41D34: ; CODE XREF: OS2:00041C42j ; OS2:00041C8Aj ... movem.l (sp)+,d0-d2/a0 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.b (byte_FFFF9A9E).w,d0 jsr (sub_6D2).l move.b (byte_FFFF9A9F).w,d1 move.l d1,d0 jsr (sub_6D2).l cmpi.b #$E3,d1 bne.s loc_41D6E move.w (word_FFFFA7FA).w,d0 lsr.w #8,d0 jsr (sub_6D2).l move.w (word_FFFFA7FA).w,d0 jsr (sub_6D2).l loc_41D6E: ; CODE XREF: OS2:00041D56j moveq #1,d0 move.l (sp)+,d1 rts ; =============== S U B R O U T I N E ======================================= sub_41D74: ; CODE XREF: sub_3CD78:loc_3CDC6p ; sub_3CD78+11Cp ... move.l d0,-(sp) clr.b (byte_FFFF9A9E).w move.b #$E3,(byte_FFFF9A9F).w moveq #$77,d0 ; 'w' jsr sub_4519E move.l (sp)+,d0 rts ; End of function sub_41D74 ; =============== S U B R O U T I N E ======================================= sub_41D8C: ; CODE XREF: sub_41DAA+1Cp ; sub_85D6E:loc_85E9Ep moveq #1,d3 loc_41D8E: ; CODE XREF: sub_41D8C+1Aj clr.l d4 move.b d3,d4 cmp.b -$655D(d4.w),d0 bne.s loc_41DA0 clr.b -$655D(d4.w) loc_41DA0: ; CODE XREF: sub_41D8C+Cj addq.b #1,d3 cmpi.b #1,d3 bls.s loc_41D8E rts ; End of function sub_41D8C ; =============== S U B R O U T I N E ======================================= sub_41DAA: ; CODE XREF: sub_85D6E+234p ; sub_86D9C+9Ap movem.l d0-d2,-(sp) moveq #1,d1 loc_41DB0: ; CODE XREF: sub_41DAA+28j clr.l d2 move.b d1,d2 move.b -$655D(d2.w),d0 jsr sub_4519E move.b -$655D(d2.w),d0 jsr sub_41D8C addq.b #1,d1 cmpi.b #1,d1 bls.s loc_41DB0 movem.l (sp)+,d0-d2 rts ; End of function sub_41DAA ; =============== S U B R O U T I N E ======================================= sub_41DDA: ; CODE XREF: OS1:0003E8A8p ; OS1:0003E8DEp ... move.l (dword_FFFF9B1E).w,d3 cmp.l (dword_FFFF9B22).w,d3 bne.s loc_41DF0 tst.b (byte_FFFF9AA1).w bne.s loc_41DF0 movea.w #0,a0 bra.s locret_41DF4 ; --------------------------------------------------------------------------- loc_41DF0: ; CODE XREF: sub_41DDA+8j sub_41DDA+Ej movea.l (dword_FFFF9B1E).w,a0 locret_41DF4: ; CODE XREF: sub_41DDA+14j rts ; End of function sub_41DDA ; =============== S U B R O U T I N E ======================================= sub_41DF6: ; CODE XREF: sub_45AE8+Ep jsr (sub_75A).l move.b (word_FFFFBE74).w,d3 andi.b #3,d3 bne.s locret_41E0A clr.b (byte_FFFF9AA4).w locret_41E0A: ; CODE XREF: sub_41DF6+Ej rts ; End of function sub_41DF6 ; =============== S U B R O U T I N E ======================================= sub_41E0C: ; CODE XREF: sub_41E26:loc_41F0Cp ; OS2:loc_4209Ep move.l d1,-(sp) move.b d0,d1 bra.s loc_41E1E ; --------------------------------------------------------------------------- loc_41E12: ; CODE XREF: sub_41E0C+14j move.b (a0),d0 jsr (sub_6D2).l addq.l #1,a0 subq.b #1,d1 loc_41E1E: ; CODE XREF: sub_41E0C+4j tst.b d1 bhi.s loc_41E12 move.l (sp)+,d1 rts ; End of function sub_41E0C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E26: ; CODE XREF: sub_45AE8+4Ep ; sub_45AE8+10Cp var_4 = -4 ; FUNCTION CHUNK AT 000420A6 SIZE 0000003E BYTES link a6,#-4 movem.l d1-d2/d6/a1/a4-a5,-(sp) movea.l a0,a5 move.b d0,d2 movea.l a5,a4 movea.l a4,a0 btst #7,4(a0) bne.s loc_41E4E move.b 5(a0),d0 jsr (sub_6D2).l move.b 6(a0),d0 bra.s loc_41E84 ; --------------------------------------------------------------------------- loc_41E4E: ; CODE XREF: sub_41E26+16j move.b #$C,var_4(a6) btst #3,4(a0) bne.s loc_41E62 move.b (byte_FFFF9B1D).w,d0 bra.s loc_41E66 ; --------------------------------------------------------------------------- loc_41E62: ; CODE XREF: sub_41E26+34j move.b (byte_FFFF9B1C).w,d0 loc_41E66: ; CODE XREF: sub_41E26+3Aj lsl.b #5,d0 andi.b #$E0,d0 andi.b #$1F,var_4(a6) or.b d0,var_4(a6) move.b var_4(a6),d0 jsr (sub_6D2).l move.b (byte_FFFF9AA3).w,d0 loc_41E84: ; CODE XREF: sub_41E26+26j jsr (sub_6D2).l moveq #$10,d0 jsr (sub_6D2).l clr.b d1 movea.l a4,a1 btst #7,4(a1) beq.s loc_41F18 move.b 7(a1),d0 jsr (sub_6D2).l move.b 4(a1),d0 moveq #7,d6 and.b d6,d0 andi.w #$FF,d0 movea.l off_8992A(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_41EBE: ; DATA XREF: OS4:off_8992Ao move.b 4(a1),d0 lsr.b #4,d0 and.b d6,d0 movea.l (a1),a0 bra.s loc_41F0C ; --------------------------------------------------------------------------- loc_41ECA: ; DATA XREF: OS4:0008992Eo movea.l (a1),a2 jsr (a2) move.b d0,d1 loc_41ED0: ; DATA XREF: OS4:00089936o bra.w loc_420A6 ; --------------------------------------------------------------------------- loc_41ED4: ; DATA XREF: OS4:0008993Ao move.b 4(a1),d0 lsr.b #4,d0 and.b d6,d0 movea.l a5,a0 bra.s loc_41F0C ; --------------------------------------------------------------------------- loc_41EE0: ; DATA XREF: OS4:0008993Eo ; OS4:00089942o bra.w loc_420A6 ; --------------------------------------------------------------------------- loc_41EE4: ; DATA XREF: OS4:00089946o move.w (a1),d0 andi.w #$FF,d0 move.b -$655A(d0.w),d0 jsr (sub_6D2).l move.b 4(a1),d0 lsr.b #4,d0 and.b d6,d0 move.w 2(a1),d3 andi.w #$FF,d3 lea -$655A(d3.w),a0 loc_41F0C: ; CODE XREF: sub_41E26+A2j ; sub_41E26+B8j jsr sub_41E0C moveq #1,d1 loc_41F14: ; DATA XREF: OS4:00089932o bra.w loc_420A6 ; --------------------------------------------------------------------------- loc_41F18: ; CODE XREF: sub_41E26+76j move.b 4(a1),d0 andi.b #$F,d0 andi.w #$FF,d0 movea.l off_8994A(d0.w*4),a2 jmp (a2) ; End of function sub_41E26 ; --------------------------------------------------------------------------- loc_41F2E: ; DATA XREF: OS4:off_8994Ao move.b 7(a1),d0 jsr (sub_6D2).l btst #1,5(a4) beq.s loc_41F4A move.b 8(a4),d0 jsr (sub_6D2).l loc_41F4A: ; CODE XREF: OS2:00041F3Ej move.b 4(a1),d0 lsr.b #4,d0 andi.b #7,d0 movea.l (a1),a0 bra.w loc_4209E ; --------------------------------------------------------------------------- loc_41F5A: ; DATA XREF: OS4:0008994Eo movea.l (a1),a2 jsr (a2) move.b d0,d1 loc_41F60: ; DATA XREF: OS4:00089956o bra.w loc_420A6 ; --------------------------------------------------------------------------- loc_41F64: ; DATA XREF: OS4:0008995Ao move.b 7(a1),d0 jsr (sub_6D2).l movea.l a4,a2 btst #1,5(a2) beq.s loc_41F82 move.b 8(a2),d0 jsr (sub_6D2).l loc_41F82: ; CODE XREF: OS2:00041F76j move.b 4(a1),d0 lsr.b #4,d0 andi.b #7,d0 movea.l a5,a0 bra.w loc_4209E ; --------------------------------------------------------------------------- loc_41F92: ; DATA XREF: OS4:0008995Eo ; OS4:00089962o bra.w loc_420A6 ; --------------------------------------------------------------------------- loc_41F96: ; DATA XREF: OS4:00089966o move.b 7(a1),d0 jsr (sub_6D2).l movea.l a4,a2 btst #1,5(a2) beq.s loc_41FB4 move.b 8(a2),d0 jsr (sub_6D2).l loc_41FB4: ; CODE XREF: OS2:00041FA8j move.w (a1),d0 andi.w #$FF,d0 move.b -$655A(d0.w),d0 bra.w loc_4205C ; --------------------------------------------------------------------------- loc_41FC4: ; DATA XREF: OS4:0008996Ao bra.w loc_420A6 ; --------------------------------------------------------------------------- loc_41FC8: ; DATA XREF: OS4:0008996Eo move.b 7(a1),-2(a6) move.w (a1),d0 jsr sub_420E4 tst.b d0 beq.s loc_41FE2 bset #7,-2(a6) bra.s loc_41FE8 ; --------------------------------------------------------------------------- loc_41FE2: ; CODE XREF: OS2:00041FD8j bclr #7,-2(a6) loc_41FE8: ; CODE XREF: OS2:00041FE0j move.w 2(a1),d0 jsr sub_4210A tst.b d0 beq.s loc_41FFE bset #6,-2(a6) bra.s loc_42004 ; --------------------------------------------------------------------------- loc_41FFE: ; CODE XREF: OS2:00041FF4j bclr #6,-2(a6) loc_42004: ; CODE XREF: OS2:00041FFCj move.b -2(a6),d0 jsr (sub_6D2).l movea.l a4,a2 btst #1,5(a2) beq.w loc_420A4 move.b 8(a2),d0 jsr (sub_6D2).l bra.s loc_420A4 ; --------------------------------------------------------------------------- loc_42026: ; DATA XREF: OS4:00089972o move.b 7(a1),-2(a6) move.w (a1),d0 jsr sub_420E4 tst.b d0 beq.s loc_42040 bset #7,-2(a6) bra.s loc_42046 ; --------------------------------------------------------------------------- loc_42040: ; CODE XREF: OS2:00042036j bclr #7,-2(a6) loc_42046: ; CODE XREF: OS2:0004203Ej ; OS2:0004207Cj ... move.b -2(a6),d0 jsr (sub_6D2).l btst #1,5(a4) beq.s loc_42086 move.b 8(a4),d0 loc_4205C: ; CODE XREF: OS2:00041FC0j jsr (sub_6D2).l bra.s loc_42086 ; --------------------------------------------------------------------------- loc_42064: ; DATA XREF: OS4:off_89976o move.b 7(a1),-2(a6) move.w (a1),d0 jsr sub_4210A tst.b d0 beq.s loc_4207E bset #6,-2(a6) bra.s loc_42046 ; --------------------------------------------------------------------------- loc_4207E: ; CODE XREF: OS2:00042074j bclr #6,-2(a6) bra.s loc_42046 ; --------------------------------------------------------------------------- loc_42086: ; CODE XREF: OS2:00042056j ; OS2:00042062j move.b 4(a1),d0 lsr.b #4,d0 andi.b #7,d0 move.w 2(a1),d3 andi.w #$FF,d3 lea -$655A(d3.w),a0 loc_4209E: ; CODE XREF: OS2:00041F56j ; OS2:00041F8Ej jsr sub_41E0C loc_420A4: ; CODE XREF: OS2:00042016j ; OS2:00042024j moveq #1,d1 ; START OF FUNCTION CHUNK FOR sub_41E26 loc_420A6: ; CODE XREF: sub_41E26:loc_41ED0j ; sub_41E26:loc_41EE0j ... tst.b d1 beq.s loc_420C4 move.b (byte_FFFFBE6A).w,d0 movea.l #$806,a0 jsr (sub_7B6).l clr.b (byte_FFFFBE6B).w move.b d2,(byte_FFFF9AA4).w bra.s loc_420DC ; --------------------------------------------------------------------------- loc_420C4: ; CODE XREF: sub_41E26+282j move.l d2,d0 jsr sub_4519E clr.b (byte_FFFFBE6B).w move.b (byte_808).l,d0 jsr (sub_794).l loc_420DC: ; CODE XREF: sub_41E26+29Cj movem.l (sp)+,d1-d2/d6/a1/a4-a5 unlk a6 rts ; END OF FUNCTION CHUNK FOR sub_41E26 ; =============== S U B R O U T I N E ======================================= sub_420E4: ; CODE XREF: OS2:00041FD0p ; OS2:0004202Ep movea.l #unk_FF9AD6,a2 move.l d0,d3 lsr.b #3,d3 andi.l #$FF,d3 add.l a2,d3 andi.b #7,d0 andi.w #$FF,d0 movea.l d3,a2 move.b (a2),d3 btst d0,d3 sne d0 neg.b d0 rts ; End of function sub_420E4 ; =============== S U B R O U T I N E ======================================= sub_4210A: ; CODE XREF: OS2:00041FECp ; OS2:0004206Cp ... movea.l #unk_FF9ADC,a2 move.l d0,d3 lsr.b #3,d3 andi.l #$FF,d3 add.l a2,d3 andi.b #7,d0 andi.w #$FF,d0 movea.l d3,a2 move.b (a2),d3 btst d0,d3 sne d0 neg.b d0 rts ; End of function sub_4210A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42130: ; CODE XREF: sub_42BBC+F4p var_4 = -4 var_2 = -2 var_1 = -1 link a6,#-2 move.b d0,-(sp) movem.l d1/a4,-(sp) movea.l a0,a4 clr.b (a4) move.b (C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l,var_2(a6) ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN move.b var_4(a6),d3 move.l d3,d1 and.b var_2(a6),d1 eor.b d3,d1 andi.b #$FF,d1 bne.s loc_421A2 move.b var_4(a6),d0 lea var_1(a6),a0 jsr sub_42802 tst.b d0 beq.s loc_421A2 move.b var_1(a6),d0 jsr sub_427E2 tst.b d0 beq.s loc_421A2 move.b var_1(a6),d0 jsr sub_427F4 andi.w #$FF,d0 move.w word_FFFFA88C(d0.w*2),d3 mulu.w #$22,d3 ; '"' divu.l #5,d3 divu.w #$3E8,d3 move.b d3,(a1) move.b #1,(a4) loc_421A2: ; CODE XREF: sub_42130+26j ; sub_42130+38j ... movem.l (sp)+,d1/a4 unlk a6 rts ; End of function sub_42130 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421AA: ; CODE XREF: sub_42BBC+10Ep var_4 = -4 var_2 = -2 var_1 = -1 link a6,#-2 move.b d0,-(sp) movem.l d1/a4,-(sp) movea.l a0,a4 clr.b (a4) move.b (C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l,var_2(a6) ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN move.b var_4(a6),d3 move.l d3,d1 and.b var_2(a6),d1 eor.b d3,d1 andi.b #$FF,d1 bne.s loc_4221C move.b var_4(a6),d0 lea var_1(a6),a0 jsr sub_42802 tst.b d0 beq.s loc_4221C move.b var_1(a6),d0 jsr sub_427E2 tst.b d0 beq.s loc_4221C move.b var_1(a6),d0 jsr sub_427F4 andi.w #$FF,d0 move.w word_FFFFA88C(d0.w*2),d3 mulu.w #$22,d3 ; '"' divu.l #5,d3 divu.w #$3E8,d3 move.b d3,(a1) move.b #1,(a4) loc_4221C: ; CODE XREF: sub_421AA+26j ; sub_421AA+38j ... movem.l (sp)+,d1/a4 unlk a6 rts ; End of function sub_421AA ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42224: ; CODE XREF: sub_42BBC+128p var_4 = -4 var_2 = -2 var_1 = -1 link a6,#-2 move.b d0,-(sp) movem.l d1/a4,-(sp) movea.l a0,a4 clr.b (a4) move.b (C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l,var_1(a6) ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN move.b var_4(a6),d3 move.l d3,d1 and.b var_1(a6),d1 eor.b d3,d1 andi.b #$FF,d1 bne.s loc_422A2 move.b var_4(a6),d0 lea var_2(a6),a0 jsr sub_42802 tst.b d0 beq.s loc_422A2 move.b var_2(a6),d0 jsr sub_427E2 tst.b d0 beq.s loc_422A2 move.b var_2(a6),d0 jsr sub_427F4 tst.b d0 bne.s loc_4227E moveq #1,d3 bra.s loc_42280 ; --------------------------------------------------------------------------- loc_4227E: ; CODE XREF: sub_42224+54j moveq #2,d3 loc_42280: ; CODE XREF: sub_42224+58j andi.w #$FF,d3 move.w word_16E94(d3.w*2),d3 mulu.w #$22,d3 ; '"' divu.l #5,d3 divu.w #$3E8,d3 move.b d3,(a1) move.b #1,(a4) loc_422A2: ; CODE XREF: sub_42224+26j ; sub_42224+38j ... movem.l (sp)+,d1/a4 unlk a6 rts ; End of function sub_42224 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422AA: ; CODE XREF: sub_42BBC+142p var_4 = -4 var_2 = -2 var_1 = -1 link a6,#-2 move.b d0,-(sp) movem.l d1/a4,-(sp) movea.l a0,a4 clr.b (a4) move.b (C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l,var_1(a6) ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN move.b var_4(a6),d3 move.l d3,d1 and.b var_1(a6),d1 eor.b d3,d1 andi.b #$FF,d1 bne.s loc_42328 move.b var_4(a6),d0 lea var_2(a6),a0 jsr sub_42802 tst.b d0 beq.s loc_42328 move.b var_2(a6),d0 jsr sub_427E2 tst.b d0 beq.s loc_42328 move.b var_2(a6),d0 jsr sub_427F4 tst.b d0 bne.s loc_42304 moveq #1,d3 bra.s loc_42306 ; --------------------------------------------------------------------------- loc_42304: ; CODE XREF: sub_422AA+54j moveq #2,d3 loc_42306: ; CODE XREF: sub_422AA+58j andi.w #$FF,d3 move.w word_16E98(d3.w*2),d3 mulu.w #$22,d3 ; '"' divu.l #5,d3 divu.w #$3E8,d3 move.b d3,(a1) move.b #1,(a4) loc_42328: ; CODE XREF: sub_422AA+26j ; sub_422AA+38j ... movem.l (sp)+,d1/a4 unlk a6 rts ; End of function sub_422AA ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42330: ; CODE XREF: sub_42BBC+168p var_B = -$B var_A = -$A var_6 = -6 var_5 = -5 var_4 = -4 arg_0 = 8 arg_4 = $C link a6,#-6 movem.l d0/a0,-(sp) movem.l d1-d2/d6-d7/a4-a5,-(sp) movea.l arg_0(a6),a4 movea.l arg_4(a6),a5 clr.b (a0) move.b (C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l,var_5(a6) ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN move.b var_B(a6),d3 move.l d3,d6 and.b var_5(a6),d6 eor.b d3,d6 andi.b #$FF,d6 bne.w loc_4242E move.b var_B(a6),d0 lea var_6(a6),a0 jsr sub_42802 tst.b d0 beq.w loc_4242E move.b var_6(a6),d0 jsr sub_427E2 tst.b d0 beq.w loc_4242E move.b var_6(a6),d0 jsr sub_427F4 tst.b d0 bne.s loc_42398 moveq #1,d4 bra.s loc_4239A ; --------------------------------------------------------------------------- loc_42398: ; CODE XREF: sub_42330+62j moveq #2,d4 loc_4239A: ; CODE XREF: sub_42330+66j clr.l d6 move.b d4,d6 move.w dword_FFFF8B20+2(d6.w*2),d3 lsr.w #2,d3 cmpi.w #$FF,d3 bls.s loc_423B0 move.b #$FF,d3 loc_423B0: ; CODE XREF: sub_42330+7Aj move.b d3,(a1) clr.b d3 move.b d3,(a4) moveq #1,d6 cmp.b d4,d6 bne.s loc_423C4 movea.l #DI_EOS_KA_EOSD_ST_RLA_LIM_RS1,a2 ; The rich-to-lean average response time threshold (Bank 1 Sensor 1) above which a response time failure will be reported. ; Milliseconds bra.s loc_423CA ; --------------------------------------------------------------------------- loc_423C4: ; CODE XREF: sub_42330+8Aj movea.l #DI_EOS_KA_EOSD_ST_RLA_LIM_RS2,a2 ; The rich-to-lean average response time threshold (Bank 2 Sensor 1) above which a response time failure will be reported. ; Milliseconds loc_423CA: ; CODE XREF: sub_42330+92j move.w (word_FFFF8260).w,d0 move.l a2,var_4(a6) clr.w d3 move.l #$780,d7 cmp.w d0,d7 bls.s loc_423E2 move.l d3,d0 bra.s loc_42406 ; --------------------------------------------------------------------------- loc_423E2: ; CODE XREF: sub_42330+ACj cmpi.w #$1E00,d0 bcc.s loc_42402 andi.l #$FFFF,d0 sub.l d7,d0 mulu.l #sub_20000,d3:d0 divu.l #(loc_5028E+1),d3:d0 bra.s loc_42406 ; --------------------------------------------------------------------------- loc_42402: ; CODE XREF: sub_42330+B6j move.w #$8FB,d0 loc_42406: ; CODE XREF: sub_42330+B0j ; sub_42330+D0j move.w (word_FFFFAEF8).w,d1 moveq #$A,d2 movea.l var_4(a6),a0 jsr sub_26946 clr.w d3 move.b d0,d3 lsr.w #2,d3 cmpi.w #$FF,d3 bls.s loc_42426 move.b #$FF,d3 loc_42426: ; CODE XREF: sub_42330+F0j move.b d3,(a5) movea.l var_A(a6),a2 move.b d6,(a2) loc_4242E: ; CODE XREF: sub_42330+2Ej ; sub_42330+42j ... movem.l (sp)+,d1-d2/d6-d7/a4-a5 unlk a6 rtd #8 ; End of function sub_42330 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42438: ; CODE XREF: sub_42BBC+18Ep var_B = -$B var_A = -$A var_6 = -6 var_5 = -5 var_4 = -4 arg_0 = 8 arg_4 = $C link a6,#-6 movem.l d0/a0,-(sp) movem.l d1-d2/d6-d7/a4-a5,-(sp) movea.l arg_0(a6),a4 movea.l arg_4(a6),a5 clr.b (a0) move.b (C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l,var_5(a6) ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN move.b var_B(a6),d3 move.l d3,d6 and.b var_5(a6),d6 eor.b d3,d6 andi.b #$FF,d6 bne.w loc_42536 move.b var_B(a6),d0 lea var_6(a6),a0 jsr sub_42802 tst.b d0 beq.w loc_42536 move.b var_6(a6),d0 jsr sub_427E2 tst.b d0 beq.w loc_42536 move.b var_6(a6),d0 jsr sub_427F4 tst.b d0 bne.s loc_424A0 moveq #1,d4 bra.s loc_424A2 ; --------------------------------------------------------------------------- loc_424A0: ; CODE XREF: sub_42438+62j moveq #2,d4 loc_424A2: ; CODE XREF: sub_42438+66j clr.l d6 move.b d4,d6 move.w dword_FFFF8AF4+2(d6.w*2),d3 lsr.w #2,d3 cmpi.w #$FF,d3 bls.s loc_424B8 move.b #$FF,d3 loc_424B8: ; CODE XREF: sub_42438+7Aj move.b d3,(a1) clr.b d3 move.b d3,(a4) moveq #1,d6 cmp.b d4,d6 bne.s loc_424CC movea.l #DI_EOS_KA_EOSD_ST_LRA_LIM_RS1,a2 ; The lean-to-rich average response time (Bank 1 Sensor 1) threshold above which a response time failure will be reported. ; Milliseconds bra.s loc_424D2 ; --------------------------------------------------------------------------- loc_424CC: ; CODE XREF: sub_42438+8Aj movea.l #DI_EOS_KA_EOSD_ST_LRA_LIM_RS2,a2 ; The lean-to-rich average response time (Bank 2 Sensor 1) threshold above which a response time failure will be reported. ; Milliseconds loc_424D2: ; CODE XREF: sub_42438+92j move.w (word_FFFF8260).w,d0 move.l a2,var_4(a6) clr.w d3 move.l #$780,d7 cmp.w d0,d7 bls.s loc_424EA move.l d3,d0 bra.s loc_4250E ; --------------------------------------------------------------------------- loc_424EA: ; CODE XREF: sub_42438+ACj cmpi.w #$1E00,d0 bcc.s loc_4250A andi.l #$FFFF,d0 sub.l d7,d0 mulu.l #sub_20000,d3:d0 divu.l #(loc_5028E+1),d3:d0 bra.s loc_4250E ; --------------------------------------------------------------------------- loc_4250A: ; CODE XREF: sub_42438+B6j move.w #$8FB,d0 loc_4250E: ; CODE XREF: sub_42438+B0j ; sub_42438+D0j move.w (word_FFFFAEF8).w,d1 moveq #$A,d2 movea.l var_4(a6),a0 jsr sub_26946 clr.w d3 move.b d0,d3 lsr.w #2,d3 cmpi.w #$FF,d3 bls.s loc_4252E move.b #$FF,d3 loc_4252E: ; CODE XREF: sub_42438+F0j move.b d3,(a5) movea.l var_A(a6),a2 move.b d6,(a2) loc_42536: ; CODE XREF: sub_42438+2Ej ; sub_42438+42j ... movem.l (sp)+,d1-d2/d6-d7/a4-a5 unlk a6 rtd #8 ; End of function sub_42438 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42540: ; CODE XREF: sub_42BBC+1B2p var_4 = -4 var_2 = -2 var_1 = -1 arg_0 = 8 arg_4 = $C link a6,#-2 move.b d0,-(sp) movem.l d1/a4-a5,-(sp) movea.l a0,a5 movea.l arg_0(a6),a4 clr.b (a5) move.b (C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l,var_1(a6) ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN move.b var_4(a6),d3 move.l d3,d1 and.b var_1(a6),d1 eor.b d3,d1 andi.b #$FF,d1 bne.s loc_425E4 move.b var_4(a6),d0 lea var_2(a6),a0 jsr sub_42802 tst.b d0 beq.s loc_425E4 move.b var_2(a6),d0 jsr sub_427E2 tst.b d0 beq.s loc_425E4 move.b var_2(a6),d0 jsr sub_427F4 tst.b d0 bne.s loc_4259E moveq #1,d4 bra.s loc_425A0 ; --------------------------------------------------------------------------- loc_4259E: ; CODE XREF: sub_42540+58j moveq #2,d4 loc_425A0: ; CODE XREF: sub_42540+5Cj clr.l d5 move.b d4,d5 move.w dword_FFFF8B30+2(d5.w*2),d3 cmpi.w #$FF,d3 bls.s loc_425B4 move.b #$FF,d3 loc_425B4: ; CODE XREF: sub_42540+6Ej move.b d3,(a1) moveq #1,d5 cmp.b d4,d5 bne.s loc_425C6 clr.w d3 move.b (DI_EOS_KE_EOSD_ST_RLS_LIM_RS1).l,d3 ; The number of rich-to-lean switches (Bank 1 Sensor 1) below which a switches failure will be reported. ; Unitless bra.s loc_425CE ; --------------------------------------------------------------------------- loc_425C6: ; CODE XREF: sub_42540+7Aj clr.w d3 move.b (DI_EOS_KE_EOSD_ST_RLS_LIM_RS2).l,d3 ; The number of rich-to-lean switches (Bank 2 Sensor 1) below which a switches failure will be reported. ; Unitless loc_425CE: ; CODE XREF: sub_42540+84j cmpi.w #$FF,d3 bls.s loc_425D8 move.b #$FF,d3 loc_425D8: ; CODE XREF: sub_42540+92j move.b d3,(a4) movea.l arg_4(a6),a2 move.b #$FF,(a2) move.b d5,(a5) loc_425E4: ; CODE XREF: sub_42540+2Aj ; sub_42540+3Cj ... movem.l (sp)+,d1/a4-a5 unlk a6 rtd #8 ; End of function sub_42540 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425EE: ; CODE XREF: sub_42BBC+1D6p var_4 = -4 var_2 = -2 var_1 = -1 arg_0 = 8 arg_4 = $C link a6,#-2 move.b d0,-(sp) movem.l d1/a4-a5,-(sp) movea.l a0,a5 movea.l arg_0(a6),a4 clr.b (a5) move.b (C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l,var_1(a6) ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN move.b var_4(a6),d3 move.l d3,d1 and.b var_1(a6),d1 eor.b d3,d1 andi.b #$FF,d1 bne.s loc_42692 move.b var_4(a6),d0 lea var_2(a6),a0 jsr sub_42802 tst.b d0 beq.s loc_42692 move.b var_2(a6),d0 jsr sub_427E2 tst.b d0 beq.s loc_42692 move.b var_2(a6),d0 jsr sub_427F4 tst.b d0 bne.s loc_4264C moveq #1,d4 bra.s loc_4264E ; --------------------------------------------------------------------------- loc_4264C: ; CODE XREF: sub_425EE+58j moveq #2,d4 loc_4264E: ; CODE XREF: sub_425EE+5Cj clr.l d5 move.b d4,d5 move.w dword_FFFF8AFC+2(d5.w*2),d3 cmpi.w #$FF,d3 bls.s loc_42662 move.b #$FF,d3 loc_42662: ; CODE XREF: sub_425EE+6Ej move.b d3,(a1) moveq #1,d5 cmp.b d4,d5 bne.s loc_42674 clr.w d3 move.b (DI_EOS_KE_EOSD_ST_LRS_LIM_RS1).l,d3 ; The number of lean-to-rich switches (Bank 1 Sensor 1) below which a switches failure will be reported. ; Unitless bra.s loc_4267C ; --------------------------------------------------------------------------- loc_42674: ; CODE XREF: sub_425EE+7Aj clr.w d3 move.b (DI_EOS_KE_EOSD_ST_LRS_LIM_RS2).l,d3 ; The number of lean-to-rich switches (Bank 2 Sensor 1) below which a switches failure will be reported. ; Unitless loc_4267C: ; CODE XREF: sub_425EE+84j cmpi.w #$FF,d3 bls.s loc_42686 move.b #$FF,d3 loc_42686: ; CODE XREF: sub_425EE+92j move.b d3,(a4) movea.l arg_4(a6),a2 move.b #$FF,(a2) move.b d5,(a5) loc_42692: ; CODE XREF: sub_425EE+2Aj ; sub_425EE+3Cj ... movem.l (sp)+,d1/a4-a5 unlk a6 rtd #8 ; End of function sub_425EE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4269C: ; CODE XREF: sub_42BBC+1FAp var_B = -$B var_A = -$A var_6 = -6 var_5 = -5 var_4 = -4 arg_0 = 8 arg_4 = $C link a6,#-6 movem.l d0/a0,-(sp) movem.l d1-d2/d6-d7/a4-a5,-(sp) movea.l arg_0(a6),a4 movea.l arg_4(a6),a5 clr.b (a0) move.b (C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l,var_5(a6) ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN move.b var_B(a6),d3 move.l d3,d7 and.b var_5(a6),d7 eor.b d3,d7 andi.b #$FF,d7 bne.w loc_427D8 move.b var_B(a6),d0 lea var_6(a6),a0 jsr sub_42802 tst.b d0 beq.w loc_427D8 move.b var_6(a6),d0 jsr sub_427E2 tst.b d0 beq.w loc_427D8 move.b var_6(a6),d0 jsr sub_427F4 tst.b d0 bne.s loc_42704 moveq #1,d6 bra.s loc_42706 ; --------------------------------------------------------------------------- loc_42704: ; CODE XREF: sub_4269C+62j moveq #2,d6 loc_42706: ; CODE XREF: sub_4269C+66j clr.l d7 move.b d6,d7 move.b -$74B3(d7.w),(a1) moveq #1,d7 cmp.b d6,d7 bne.s loc_4271E movea.l #DI_EOS_KA_EOSD_ST_RATIO_LOW_LIM_RS1,a2 bra.s loc_42724 ; --------------------------------------------------------------------------- loc_4271E: ; CODE XREF: sub_4269C+78j movea.l #DI_EOS_KA_EOSD_ST_RATIO_LOW_LIM_RS2,a2 loc_42724: ; CODE XREF: sub_4269C+80j move.w (word_FFFF8260).w,d0 move.l a2,var_4(a6) clr.w d3 move.l #$780,d4 cmp.w d0,d4 bls.s loc_4273C move.l d3,d0 bra.s loc_42760 ; --------------------------------------------------------------------------- loc_4273C: ; CODE XREF: sub_4269C+9Aj cmpi.w #$1E00,d0 bcc.s loc_4275C andi.l #$FFFF,d0 sub.l d4,d0 mulu.l #sub_20000,d3:d0 divu.l #(loc_5028E+1),d3:d0 bra.s loc_42760 ; --------------------------------------------------------------------------- loc_4275C: ; CODE XREF: sub_4269C+A4j move.w #$8FB,d0 loc_42760: ; CODE XREF: sub_4269C+9Ej ; sub_4269C+BEj move.w (word_FFFFAEF8).w,d1 moveq #$A,d2 movea.l var_4(a6),a0 jsr sub_26946 move.b d0,(a4) cmp.b d6,d7 bne.s loc_4277E movea.l #DI_EOS_KA_EOSD_ST_RATIO_HIGH_LIM_RS1,a2 bra.s loc_42784 ; --------------------------------------------------------------------------- loc_4277E: ; CODE XREF: sub_4269C+D8j movea.l #DI_EOS_KA_EOSD_ST_RATIO_HIGH_LIM_RS2,a2 loc_42784: ; CODE XREF: sub_4269C+E0j move.w (word_FFFF8260).w,d0 move.l a2,var_4(a6) clr.w d3 move.l #$780,d6 cmp.w d0,d6 bls.s loc_4279C move.l d3,d0 bra.s loc_427C0 ; --------------------------------------------------------------------------- loc_4279C: ; CODE XREF: sub_4269C+FAj cmpi.w #$1E00,d0 bcc.s loc_427BC andi.l #$FFFF,d0 sub.l d6,d0 mulu.l #sub_20000,d3:d0 divu.l #(loc_5028E+1),d3:d0 bra.s loc_427C0 ; --------------------------------------------------------------------------- loc_427BC: ; CODE XREF: sub_4269C+104j move.w #$8FB,d0 loc_427C0: ; CODE XREF: sub_4269C+FEj ; sub_4269C+11Ej move.w (word_FFFFAEF8).w,d1 moveq #$A,d2 movea.l var_4(a6),a0 jsr sub_26946 move.b d0,(a5) movea.l var_A(a6),a2 move.b d7,(a2) loc_427D8: ; CODE XREF: sub_4269C+2Ej ; sub_4269C+42j ... movem.l (sp)+,d1-d2/d6-d7/a4-a5 unlk a6 rtd #8 ; End of function sub_4269C ; =============== S U B R O U T I N E ======================================= sub_427E2: ; CODE XREF: sub_42130+3Ep ; sub_421AA+3Ep ... move.b d0,d3 clr.b d0 cmpi.b #4,d3 beq.s loc_427F0 tst.b d3 bne.s locret_427F2 loc_427F0: ; CODE XREF: sub_427E2+8j moveq #1,d0 locret_427F2: ; CODE XREF: sub_427E2+Cj rts ; End of function sub_427E2 ; =============== S U B R O U T I N E ======================================= sub_427F4: ; CODE XREF: sub_42130+4Cp ; sub_421AA+4Cp ... cmpi.b #3,d0 bhi.s loc_427FE clr.b d0 bra.s locret_42800 ; --------------------------------------------------------------------------- loc_427FE: ; CODE XREF: sub_427F4+4j moveq #1,d0 locret_42800: ; CODE XREF: sub_427F4+8j rts ; End of function sub_427F4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42802: ; CODE XREF: sub_42130+30p ; sub_421AA+30p ... var_2 = -2 link a6,#0 move.b d0,-(sp) clr.b d0 move.b var_2(a6),d3 moveq #1,d4 cmp.b d3,d4 beq.s loc_4283E cmpi.b #2,d3 beq.s loc_4283E moveq #4,d5 cmp.b d3,d5 beq.s loc_4283E cmpi.b #8,d3 beq.s loc_4283E cmpi.b #$10,d3 beq.s loc_4283E cmpi.b #$20,d3 ; ' ' beq.s loc_4283E cmpi.b #$40,d3 ; '@' beq.s loc_4283E cmpi.b #$80,d3 bne.s loc_42892 loc_4283E: ; CODE XREF: sub_42802+10j ; sub_42802+16j ... btst #0,var_2(a6) beq.s loc_4284C clr.b (a0) loc_42848: ; CODE XREF: sub_42802+54j ; sub_42802+72j ... move.l d4,d0 bra.s loc_42892 ; --------------------------------------------------------------------------- loc_4284C: ; CODE XREF: sub_42802+42j btst #1,var_2(a6) beq.s loc_42858 move.b d4,(a0) bra.s loc_42848 ; --------------------------------------------------------------------------- loc_42858: ; CODE XREF: sub_42802+50j btst #2,var_2(a6) bne.s loc_42892 btst #3,var_2(a6) bne.s loc_42892 btst #4,var_2(a6) beq.s loc_42876 move.b #4,(a0) bra.s loc_42848 ; --------------------------------------------------------------------------- loc_42876: ; CODE XREF: sub_42802+6Cj btst #5,var_2(a6) beq.s loc_42884 move.b #5,(a0) bra.s loc_42848 ; --------------------------------------------------------------------------- loc_42884: ; CODE XREF: sub_42802+7Aj btst #6,var_2(a6) bne.s loc_42892 btst #7,var_2(a6) loc_42892: ; CODE XREF: sub_42802+3Aj ; sub_42802+48j ... unlk a6 rts ; End of function sub_42802 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42896: ; CODE XREF: OS1:0003EA78p var_2 = -2 var_1 = -1 link a6,#-2 movem.l d2/d6-a1,-(sp) move.b d0,d7 move.b d1,d6 clr.b d2 move.b d7,(byte_FFFFB4E0).w move.b d6,(byte_FFFFB4E1).w clr.l (dword_FFFFB4E2).w lea var_2(a6),a1 lea var_1(a6),a0 jsr sub_428E0 tst.b d0 beq.s loc_428D6 move.b var_2(a6),-(sp) move.b var_1(a6),d2 move.l d6,d1 move.l d7,d0 jsr sub_42BBC move.b d0,d2 loc_428D6: ; CODE XREF: sub_42896+2Aj move.l d2,d0 movem.l (sp)+,d2/d6-a1 unlk a6 rts ; End of function sub_42896 ; =============== S U B R O U T I N E ======================================= sub_428E0: ; CODE XREF: sub_42896+22p movem.l d2/d6-d7,-(sp) clr.b d3 move.l d3,d2 moveq #1,d6 cmp.b d1,d6 bne.s loc_428FE btst #0,(C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN beq.s loc_428FE move.l d6,d2 bra.w loc_429A2 ; --------------------------------------------------------------------------- loc_428FE: ; CODE XREF: sub_428E0+Cj ; sub_428E0+16j moveq #2,d7 cmp.b d1,d7 bne.s loc_42916 btst #1,(C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN beq.s loc_42916 move.l d6,d2 move.b d6,(a0) bra.w loc_429A4 ; --------------------------------------------------------------------------- loc_42916: ; CODE XREF: sub_428E0+22j ; sub_428E0+2Cj moveq #4,d4 cmp.b d1,d4 bne.s loc_4292C btst #2,(C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN beq.s loc_4292C move.l d6,d2 move.b d7,(a0) bra.s loc_429A4 ; --------------------------------------------------------------------------- loc_4292C: ; CODE XREF: sub_428E0+3Aj ; sub_428E0+44j cmpi.b #8,d1 bne.s loc_42944 btst #3,(C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN beq.s loc_42944 move.l d6,d2 move.b #3,(a0) bra.s loc_429A4 ; --------------------------------------------------------------------------- loc_42944: ; CODE XREF: sub_428E0+50j ; sub_428E0+5Aj cmpi.b #$10,d1 bne.s loc_4295A btst #4,(C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN beq.s loc_4295A move.l d6,d2 move.b d4,(a0) bra.s loc_429A4 ; --------------------------------------------------------------------------- loc_4295A: ; CODE XREF: sub_428E0+68j ; sub_428E0+72j cmpi.b #$20,d1 ; ' ' bne.s loc_42972 btst #5,(C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN beq.s loc_42972 move.l d6,d2 move.b #5,(a0) bra.s loc_429A4 ; --------------------------------------------------------------------------- loc_42972: ; CODE XREF: sub_428E0+7Ej ; sub_428E0+88j cmpi.b #$40,d1 ; '@' bne.s loc_4298A btst #6,(C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN beq.s loc_4298A move.l d6,d2 move.b #6,(a0) bra.s loc_429A4 ; --------------------------------------------------------------------------- loc_4298A: ; CODE XREF: sub_428E0+96j ; sub_428E0+A0j cmpi.b #$80,d1 bne.s loc_429A2 btst #7,(C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN beq.s loc_429A2 move.l d6,d2 move.b #7,(a0) bra.s loc_429A4 ; --------------------------------------------------------------------------- loc_429A2: ; CODE XREF: sub_428E0+1Aj ; sub_428E0+AEj ... clr.b (a0) loc_429A4: ; CODE XREF: sub_428E0+32j ; sub_428E0+4Aj ... tst.b d2 beq.s loc_429EE tst.b d0 beq.s loc_429D6 cmpi.b #$20,d0 ; ' ' beq.s loc_429D6 cmpi.b #$40,d0 ; '@' beq.s loc_429D6 cmpi.b #$60,d0 ; '`' beq.s loc_429D6 cmpi.b #$80,d0 beq.s loc_429D6 cmpi.b #$A0,d0 beq.s loc_429D6 cmpi.b #$C0,d0 beq.s loc_429D6 cmpi.b #$E0,d0 bne.s loc_429E2 loc_429D6: ; CODE XREF: sub_428E0+CAj ; sub_428E0+D0j ... move.b d6,(a1) move.b (a0),d1 jsr sub_429F8 bra.s loc_429EC ; --------------------------------------------------------------------------- loc_429E2: ; CODE XREF: sub_428E0+F4j clr.b (a1) move.b (a0),d1 jsr sub_42AC0 loc_429EC: ; CODE XREF: sub_428E0+100j move.b d0,d3 loc_429EE: ; CODE XREF: sub_428E0+C6j move.l d2,d0 and.b d3,d0 movem.l (sp)+,d2/d6-d7 rts ; End of function sub_428E0 ; =============== S U B R O U T I N E ======================================= sub_429F8: ; CODE XREF: sub_428E0+FAp move.l d2,-(sp) move.b d0,d2 clr.b d0 move.w #$100,d4 loc_42A02: ; CODE XREF: sub_429F8+C0j subi.w #$20,d4 ; ' ' cmpi.w #$E0,d4 ; '?' beq.w loc_42A98 cmpi.w #$C0,d4 ; '?' beq.s loc_42A8A cmpi.w #$A0,d4 ; '?' beq.s loc_42A7C cmpi.w #$80,d4 ; '?' beq.s loc_42A6E cmpi.w #$60,d4 ; '`' beq.s loc_42A60 cmpi.w #$40,d4 ; '@' beq.s loc_42A52 cmpi.w #$20,d4 ; ' ' beq.s loc_42A44 tst.w d4 bne.s loc_42AA4 clr.l d5 move.b d1,d5 move.l C2_M5_DEFINITION_KE_MODE_5_01_20_TEST_SUPPORT(d5.w*4),d3 ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.s loc_42AA4 ; --------------------------------------------------------------------------- loc_42A44: ; CODE XREF: sub_429F8+38j clr.l d5 move.b d1,d5 move.l C2_M5_DEFINITION_KE_MODE_5_21_40_TEST_SUPPORT(d5.w*4),d3 ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.s loc_42AA4 ; --------------------------------------------------------------------------- loc_42A52: ; CODE XREF: sub_429F8+32j clr.l d5 move.b d1,d5 move.l C2_M5_DEFINITION_KE_MODE_5_41_60_TEST_SUPPORT(d5.w*4),d3 ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.s loc_42AA4 ; --------------------------------------------------------------------------- loc_42A60: ; CODE XREF: sub_429F8+2Cj clr.l d5 move.b d1,d5 move.l C2_M5_DEFINITION_KE_MODE_5_61_80_TEST_SUPPORT(d5.w*4),d3 ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.s loc_42AA4 ; --------------------------------------------------------------------------- loc_42A6E: ; CODE XREF: sub_429F8+26j clr.l d5 move.b d1,d5 move.l C2_M5_DEFINITION_KE_MODE_5_81_A0_TEST_SUPPORT(d5.w*4),d3 ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.s loc_42AA4 ; --------------------------------------------------------------------------- loc_42A7C: ; CODE XREF: sub_429F8+20j clr.l d5 move.b d1,d5 move.l C2_M5_DEFINITION_KE_MODE_5_A1_C0_TEST_SUPPORT(d5.w*4),d3 ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.s loc_42AA4 ; --------------------------------------------------------------------------- loc_42A8A: ; CODE XREF: sub_429F8+1Aj clr.l d5 move.b d1,d5 move.l C2_M5_DEFINITION_KE_MODE_5_C1_E0_TEST_SUPPORT(d5.w*4),d3 ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.s loc_42AA4 ; --------------------------------------------------------------------------- loc_42A98: ; CODE XREF: sub_429F8+12j clr.l d5 move.b d1,d5 move.l C2_M5_DEFINITION_KE_MODE_5_E1_FF_TEST_SUPPORT(d5.w*4),d3 ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN loc_42AA4: ; CODE XREF: sub_429F8+3Cj ; sub_429F8+4Aj ... tst.l d3 beq.s loc_42AAA moveq #1,d0 loc_42AAA: ; CODE XREF: sub_429F8+AEj tst.w d4 beq.s loc_42ABC clr.l d5 move.b d2,d5 cmp.w d4,d5 beq.s loc_42ABC tst.b d0 beq.w loc_42A02 loc_42ABC: ; CODE XREF: sub_429F8+B4j ; sub_429F8+BCj move.l (sp)+,d2 rts ; End of function sub_429F8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42AC0: ; CODE XREF: sub_428E0+106p var_4 = -4 link a6,#-4 clr.l var_4(a6) cmpi.b #1,d0 bcs.s loc_42AE6 cmpi.b #$1F,d0 bhi.s loc_42AE6 andi.w #$FF,d1 move.l C2_M5_DEFINITION_KE_MODE_5_01_20_TEST_SUPPORT(d1.w*4),var_4(a6) ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.w loc_42BA6 ; --------------------------------------------------------------------------- loc_42AE6: ; CODE XREF: sub_42AC0+Cj ; sub_42AC0+12j cmpi.b #$21,d0 ; '!' bcs.s loc_42B04 cmpi.b #$3F,d0 ; '?' bhi.s loc_42B04 andi.w #$FF,d1 move.l C2_M5_DEFINITION_KE_MODE_5_21_40_TEST_SUPPORT(d1.w*4),var_4(a6) ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.w loc_42BA6 ; --------------------------------------------------------------------------- loc_42B04: ; CODE XREF: sub_42AC0+2Aj ; sub_42AC0+30j cmpi.b #$41,d0 ; 'A' bcs.s loc_42B22 cmpi.b #$5F,d0 ; '_' bhi.s loc_42B22 andi.w #$FF,d1 move.l C2_M5_DEFINITION_KE_MODE_5_41_60_TEST_SUPPORT(d1.w*4),var_4(a6) ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.w loc_42BA6 ; --------------------------------------------------------------------------- loc_42B22: ; CODE XREF: sub_42AC0+48j ; sub_42AC0+4Ej cmpi.b #$61,d0 ; 'a' bcs.s loc_42B3E cmpi.b #$7F,d0 ; '' bhi.s loc_42B3E andi.w #$FF,d1 move.l C2_M5_DEFINITION_KE_MODE_5_61_80_TEST_SUPPORT(d1.w*4),var_4(a6) ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.s loc_42BA6 ; --------------------------------------------------------------------------- loc_42B3E: ; CODE XREF: sub_42AC0+66j ; sub_42AC0+6Cj cmpi.b #$81,d0 bcs.s loc_42B5A cmpi.b #$9F,d0 bhi.s loc_42B5A andi.w #$FF,d1 move.l C2_M5_DEFINITION_KE_MODE_5_81_A0_TEST_SUPPORT(d1.w*4),var_4(a6) ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.s loc_42BA6 ; --------------------------------------------------------------------------- loc_42B5A: ; CODE XREF: sub_42AC0+82j ; sub_42AC0+88j cmpi.b #$A1,d0 bcs.s loc_42B76 cmpi.b #$BF,d0 bhi.s loc_42B76 andi.w #$FF,d1 move.l C2_M5_DEFINITION_KE_MODE_5_A1_C0_TEST_SUPPORT(d1.w*4),var_4(a6) ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.s loc_42BA6 ; --------------------------------------------------------------------------- loc_42B76: ; CODE XREF: sub_42AC0+9Ej ; sub_42AC0+A4j cmpi.b #$C1,d0 bcs.s loc_42B92 cmpi.b #$DF,d0 bhi.s loc_42B92 andi.w #$FF,d1 move.l C2_M5_DEFINITION_KE_MODE_5_C1_E0_TEST_SUPPORT(d1.w*4),var_4(a6) ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.s loc_42BA6 ; --------------------------------------------------------------------------- loc_42B92: ; CODE XREF: sub_42AC0+BAj ; sub_42AC0+C0j cmpi.b #$E1,d0 bcs.s loc_42BA6 andi.w #$FF,d1 move.l C2_M5_DEFINITION_KE_MODE_5_E1_FF_TEST_SUPPORT(d1.w*4),var_4(a6) ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN loc_42BA6: ; CODE XREF: sub_42AC0+22j ; sub_42AC0+40j ... andi.b #$1F,d0 moveq #$20,d3 ; ' ' sub.b d0,d3 move.l var_4(a6),d0 btst d3,d0 sne d0 neg.b d0 unlk a6 rts ; End of function sub_42AC0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42BBC: ; CODE XREF: sub_42896+38p var_4 = -4 var_3 = -3 var_2 = -2 var_1 = -1 arg_0 = 8 link a6,#-4 movem.l d6-a1,-(sp) move.b d0,d6 move.b arg_0(a6),d3 beq.w loc_42CA0 move.b #1,var_1(a6) move.b #$A,(byte_FFFFB4E6).w tst.b d6 bne.s loc_42BF0 andi.w #$FF,d2 move.l C2_M5_DEFINITION_KE_MODE_5_01_20_TEST_SUPPORT(d2.w*4),(dword_FFFFB4E2).w ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.w loc_42E04 ; --------------------------------------------------------------------------- loc_42BF0: ; CODE XREF: sub_42BBC+20j cmpi.b #$20,d6 ; ' ' bne.s loc_42C08 andi.w #$FF,d2 move.l C2_M5_DEFINITION_KE_MODE_5_21_40_TEST_SUPPORT(d2.w*4),(dword_FFFFB4E2).w ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.w loc_42E04 ; --------------------------------------------------------------------------- loc_42C08: ; CODE XREF: sub_42BBC+38j cmpi.b #$40,d6 ; '@' bne.s loc_42C20 andi.w #$FF,d2 move.l C2_M5_DEFINITION_KE_MODE_5_41_60_TEST_SUPPORT(d2.w*4),(dword_FFFFB4E2).w ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.w loc_42E04 ; --------------------------------------------------------------------------- loc_42C20: ; CODE XREF: sub_42BBC+50j cmpi.b #$60,d6 ; '`' bne.s loc_42C38 andi.w #$FF,d2 move.l C2_M5_DEFINITION_KE_MODE_5_61_80_TEST_SUPPORT(d2.w*4),(dword_FFFFB4E2).w ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.w loc_42E04 ; --------------------------------------------------------------------------- loc_42C38: ; CODE XREF: sub_42BBC+68j cmpi.b #$80,d6 bne.s loc_42C50 andi.w #$FF,d2 move.l C2_M5_DEFINITION_KE_MODE_5_81_A0_TEST_SUPPORT(d2.w*4),(dword_FFFFB4E2).w ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.w loc_42E04 ; --------------------------------------------------------------------------- loc_42C50: ; CODE XREF: sub_42BBC+80j cmpi.b #$A0,d6 bne.s loc_42C68 andi.w #$FF,d2 move.l C2_M5_DEFINITION_KE_MODE_5_A1_C0_TEST_SUPPORT(d2.w*4),(dword_FFFFB4E2).w ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.w loc_42E04 ; --------------------------------------------------------------------------- loc_42C68: ; CODE XREF: sub_42BBC+98j cmpi.b #$C0,d6 bne.s loc_42C80 andi.w #$FF,d2 move.l C2_M5_DEFINITION_KE_MODE_5_C1_E0_TEST_SUPPORT(d2.w*4),(dword_FFFFB4E2).w ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.w loc_42E04 ; --------------------------------------------------------------------------- loc_42C80: ; CODE XREF: sub_42BBC+B0j cmpi.b #$E0,d6 bne.s loc_42C98 andi.w #$FF,d2 move.l C2_M5_DEFINITION_KE_MODE_5_E1_FF_TEST_SUPPORT(d2.w*4),(dword_FFFFB4E2).w ; Bit encoded calibration which indicates which mode 5 tests are supported. ; BOOLEAN bra.w loc_42E04 ; --------------------------------------------------------------------------- loc_42C98: ; CODE XREF: sub_42BBC+C8j clr.b var_1(a6) bra.w loc_42E04 ; --------------------------------------------------------------------------- loc_42CA0: ; CODE XREF: sub_42BBC+Ej moveq #1,d2 cmp.b d6,d2 bne.s loc_42CBA lea var_4(a6),a1 lea var_1(a6),a0 move.l d1,d0 jsr sub_42130 bra.w loc_42DC2 ; --------------------------------------------------------------------------- loc_42CBA: ; CODE XREF: sub_42BBC+E8j cmpi.b #2,d6 bne.s loc_42CD4 lea var_4(a6),a1 lea var_1(a6),a0 move.l d1,d0 jsr sub_421AA bra.w loc_42DC2 ; --------------------------------------------------------------------------- loc_42CD4: ; CODE XREF: sub_42BBC+102j cmpi.b #3,d6 bne.s loc_42CEE lea var_4(a6),a1 lea var_1(a6),a0 move.l d1,d0 jsr sub_42224 bra.w loc_42DC2 ; --------------------------------------------------------------------------- loc_42CEE: ; CODE XREF: sub_42BBC+11Cj cmpi.b #4,d6 bne.s loc_42D08 lea var_4(a6),a1 lea var_1(a6),a0 move.l d1,d0 jsr sub_422AA bra.w loc_42DC2 ; --------------------------------------------------------------------------- loc_42D08: ; CODE XREF: sub_42BBC+136j cmpi.b #5,d6 bne.s loc_42D2E lea var_3(a6),a1 move.l a1,-(sp) lea var_2(a6),a1 move.l a1,-(sp) lea var_4(a6),a1 lea var_1(a6),a0 move.l d1,d0 jsr sub_42330 bra.w loc_42DC2 ; --------------------------------------------------------------------------- loc_42D2E: ; CODE XREF: sub_42BBC+150j cmpi.b #6,d6 bne.s loc_42D52 lea var_3(a6),a1 move.l a1,-(sp) lea var_2(a6),a1 move.l a1,-(sp) lea var_4(a6),a1 lea var_1(a6),a0 move.l d1,d0 jsr sub_42438 bra.s loc_42DC2 ; --------------------------------------------------------------------------- loc_42D52: ; CODE XREF: sub_42BBC+176j cmpi.b #$70,d6 ; 'p' bne.s loc_42D76 lea var_3(a6),a1 move.l a1,-(sp) lea var_2(a6),a1 move.l a1,-(sp) lea var_4(a6),a1 lea var_1(a6),a0 move.l d1,d0 jsr sub_42540 bra.s loc_42DC2 ; --------------------------------------------------------------------------- loc_42D76: ; CODE XREF: sub_42BBC+19Aj cmpi.b #$71,d6 ; 'q' bne.s loc_42D9A lea var_3(a6),a1 move.l a1,-(sp) lea var_2(a6),a1 move.l a1,-(sp) lea var_4(a6),a1 lea var_1(a6),a0 move.l d1,d0 jsr sub_425EE bra.s loc_42DC2 ; --------------------------------------------------------------------------- loc_42D9A: ; CODE XREF: sub_42BBC+1BEj cmpi.b #$81,d6 bne.s loc_42DBE lea var_3(a6),a1 move.l a1,-(sp) lea var_2(a6),a1 move.l a1,-(sp) lea var_4(a6),a1 lea var_1(a6),a0 move.l d1,d0 jsr sub_4269C bra.s loc_42DC2 ; --------------------------------------------------------------------------- loc_42DBE: ; CODE XREF: sub_42BBC+1E2j clr.b var_1(a6) loc_42DC2: ; CODE XREF: sub_42BBC+FAj ; sub_42BBC+114j ... tst.b var_1(a6) beq.s loc_42E04 cmp.b d6,d2 beq.s loc_42DDE cmpi.b #2,d6 beq.s loc_42DDE cmpi.b #3,d6 beq.s loc_42DDE cmpi.b #4,d6 bne.s loc_42DEC loc_42DDE: ; CODE XREF: sub_42BBC+20Ej ; sub_42BBC+214j ... move.b var_4(a6),(dword_FFFFB4E2).w move.b #7,(byte_FFFFB4E6).w bra.s loc_42E04 ; --------------------------------------------------------------------------- loc_42DEC: ; CODE XREF: sub_42BBC+220j move.b var_4(a6),(dword_FFFFB4E2).w move.b var_2(a6),(dword_FFFFB4E2+1).w move.b var_3(a6),(dword_FFFFB4E2+2).w move.b #9,(byte_FFFFB4E6).w loc_42E04: ; CODE XREF: sub_42BBC+30j ; sub_42BBC+48j ... move.b var_1(a6),d0 movem.l (sp)+,d6-a1 unlk a6 rtd #2 ; End of function sub_42BBC ; =============== S U B R O U T I N E ======================================= sub_42E12: ; CODE XREF: OS2:0004402Ep ; OS2:0004405Ap ... move.b d0,d4 clr.b (a0) clr.b d0 loc_42E18: ; CODE XREF: sub_42E12+26j move.b (a0),d3 clr.l d5 move.b d3,d5 cmp.b DI_MISFIRE_KV_MISF_ENGINE_BLOCK_CYLINDER_ID(d5.w),d4 ; Identifies the actual engine block cylinder from the misfire diagnostic cylinder counter. ; Unitless bne.s loc_42E2C moveq #1,d0 bra.s loc_42E30 ; --------------------------------------------------------------------------- loc_42E2C: ; CODE XREF: sub_42E12+14j addq.b #1,d3 move.b d3,(a0) loc_42E30: ; CODE XREF: sub_42E12+18j tst.b d0 bne.s locret_42E3A cmpi.b #8,(a0) bcs.s loc_42E18 locret_42E3A: ; CODE XREF: sub_42E12+20j rts ; End of function sub_42E12 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E3C: ; CODE XREF: sub_40AD6+1ECp ; sub_5F380+10p var_6 = -6 var_4 = -4 link a6,#-6 move.l a4,-(sp) movea.l a0,a4 clr.l var_4(a6) lea var_6(a6),a0 jsr sub_42EB2 move.b d0,(a4) tst.b d0 beq.s loc_42EA8 move.w var_6(a6),d3 move.b PID_jump_table.PidFlags.l(d3.w*8),d3 move.b d3,(a1) cmpi.b #1,d3 bhi.s loc_42E96 beq.s loc_42E82 movea.w var_6(a6),a2 movea.l PID_jump_table.Function.l(a2.w*8),a2 jsr (a2) move.b d0,var_4(a6) bra.s loc_42EA8 ; --------------------------------------------------------------------------- loc_42E82: ; CODE XREF: sub_42E3C+30j movea.w var_6(a6),a2 movea.l PID_jump_table.Function.l(a2.w*8),a2 jsr (a2) move.w d0,var_4(a6) bra.s loc_42EA8 ; --------------------------------------------------------------------------- loc_42E96: ; CODE XREF: sub_42E3C+2Ej movea.w var_6(a6),a2 movea.l PID_jump_table.Function.l(a2.w*8),a2 jsr (a2) move.l d0,var_4(a6) loc_42EA8: ; CODE XREF: sub_42E3C+1Aj ; sub_42E3C+44j ... move.l var_4(a6),d0 movea.l (sp)+,a4 unlk a6 rts ; End of function sub_42E3C ; =============== S U B R O U T I N E ======================================= sub_42EB2: ; CODE XREF: OS2:00040536p ; sub_40AD6+19Ep ... movem.l d2/d6,-(sp) move.w d0,d6 clr.w d0 move.w #$132,d2 move.l d0,d4 loc_42EC0: ; CODE XREF: sub_42EB2+42j move.l d2,d5 add.w d4,d5 addq.w #1,d5 lsr.w #1,d5 move.w d5,(a0) move.w d5,d3 move.w PID_jump_table.PID.l(d3.w*8),d3 cmp.w d6,d3 bne.s loc_42EDC moveq #1,d0 bra.s loc_42EEE ; --------------------------------------------------------------------------- loc_42EDC: ; CODE XREF: sub_42EB2+24j cmp.w d3,d6 bcc.s loc_42EEC move.l d5,d2 subq.w #1,d2 cmp.w d2,d4 bls.s loc_42EEE move.w d4,d2 bra.s loc_42EEE ; --------------------------------------------------------------------------- loc_42EEC: ; CODE XREF: sub_42EB2+2Cj move.l d5,d4 loc_42EEE: ; CODE XREF: sub_42EB2+28j ; sub_42EB2+34j ... cmp.w d2,d4 bcc.s loc_42EF6 tst.b d0 beq.s loc_42EC0 loc_42EF6: ; CODE XREF: sub_42EB2+3Ej cmp.w d2,d4 bne.s loc_42F0A move.w d4,(a0) movea.w d4,a2 cmp.w PID_jump_table.PID.l(a2.w*8),d6 bne.s loc_42F0A moveq #1,d0 loc_42F0A: ; CODE XREF: sub_42EB2+46j ; sub_42EB2+54j movem.l (sp)+,d2/d6 rts ; End of function sub_42EB2 ; =============== S U B R O U T I N E ======================================= sub_42F10: ; CODE XREF: OS2:00040546p ; sub_40AD6+160p ... movem.l d1-d2/d6-d7,-(sp) move.w d0,d7 clr.w d0 moveq #$33,d2 ; '3' move.l d0,d3 loc_42F1C: ; CODE XREF: sub_42F10+42j move.l d2,d1 add.w d3,d1 addq.w #1,d1 lsr.w #1,d1 move.l d1,d6 clr.l d5 move.b d6,d5 move.w dword_2C3C.l(d5.w*4),d4 cmp.w d7,d4 bne.s loc_42F3A moveq #1,d0 bra.s loc_42F4C ; --------------------------------------------------------------------------- loc_42F3A: ; CODE XREF: sub_42F10+24j cmp.w d4,d7 bcc.s loc_42F4A move.l d1,d2 subq.w #1,d2 cmp.w d2,d3 bls.s loc_42F4C move.w d3,d2 bra.s loc_42F4C ; --------------------------------------------------------------------------- loc_42F4A: ; CODE XREF: sub_42F10+2Cj move.l d1,d3 loc_42F4C: ; CODE XREF: sub_42F10+28j ; sub_42F10+34j ... cmp.w d2,d3 bcc.s loc_42F54 tst.b d0 beq.s loc_42F1C loc_42F54: ; CODE XREF: sub_42F10+3Ej cmp.w d2,d3 bne.s loc_42F6A move.b d3,d6 andi.w #$FF,d3 cmp.w dword_2C3C.l(d3.w*4),d7 bne.s loc_42F6A moveq #1,d0 loc_42F6A: ; CODE XREF: sub_42F10+46j ; sub_42F10+56j tst.b d0 beq.s loc_42F70 move.b d6,(a0) loc_42F70: ; CODE XREF: sub_42F10+5Cj movem.l (sp)+,d1-d2/d6-d7 rts ; End of function sub_42F10 ; --------------------------------------------------------------------------- GetPid_1100: ; DATA XREF: Boot:PID_jump_tableo link a6,#-4 movea.l (off_1330).l,a2 move.l a2,d3 bne.s loc_42F8A jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_42F8A: ; CODE XREF: OS2:00042F82j btst #2,2(a2) beq.s loc_42F98 bset #7,d0 bra.s loc_42F9C ; --------------------------------------------------------------------------- loc_42F98: ; CODE XREF: OS2:00042F90j bclr #7,d0 loc_42F9C: ; CODE XREF: OS2:00042F96j btst #3,(byte_FFFFAD8A).w beq.s loc_42FAA bset #6,d0 bra.s loc_42FAE ; --------------------------------------------------------------------------- loc_42FAA: ; CODE XREF: OS2:00042FA2j bclr #6,d0 loc_42FAE: ; CODE XREF: OS2:00042FA8j btst #7,(byte_FFFFAD8B).w beq.s loc_42FBC bset #5,d0 bra.s loc_42FC0 ; --------------------------------------------------------------------------- loc_42FBC: ; CODE XREF: OS2:00042FB4j bclr #5,d0 loc_42FC0: ; CODE XREF: OS2:00042FBAj btst #6,(byte_FFFFAD8A).w beq.s loc_42FCE bset #4,d0 bra.s loc_42FD2 ; --------------------------------------------------------------------------- loc_42FCE: ; CODE XREF: OS2:00042FC6j bclr #4,d0 loc_42FD2: ; CODE XREF: OS2:00042FCCj btst #1,(byte_FFFFAD8B).w beq.s loc_42FE0 bset #3,d0 bra.s loc_42FE4 ; --------------------------------------------------------------------------- loc_42FE0: ; CODE XREF: OS2:00042FD8j bclr #3,d0 loc_42FE4: ; CODE XREF: OS2:00042FDEj tst.b (byte_FFFFB54B).w beq.s loc_42FF0 bset #2,d0 bra.s loc_42FF4 ; --------------------------------------------------------------------------- loc_42FF0: ; CODE XREF: OS2:00042FE8j bclr #2,d0 loc_42FF4: ; CODE XREF: OS2:00042FEEj btst #5,(byte_FFFFAD8B).w beq.s loc_43002 bset #1,d0 bra.s loc_43006 ; --------------------------------------------------------------------------- loc_43002: ; CODE XREF: OS2:00042FFAj bclr #1,d0 loc_43006: ; CODE XREF: OS2:00043000j btst #6,(byte_FFFFAD8B).w beq.s loc_43014 bset #0,d0 bra.s loc_43018 ; --------------------------------------------------------------------------- loc_43014: ; CODE XREF: OS2:0004300Cj bclr #0,d0 loc_43018: ; CODE XREF: OS2:00043012j unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1101: ; DATA XREF: Boot:PID_jump_tableo link a6,#-4 movem.l d1-d2/a0,-(sp) bclr #7,d1 bclr #6,d1 bclr #5,d1 movea.l (off_134C).l,a0 move.l a0,d2 bne.s loc_43040 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_43040: ; CODE XREF: OS2:00043038j btst #2,2(a0) beq.s loc_4304E bset #4,d1 bra.s loc_43052 ; --------------------------------------------------------------------------- loc_4304E: ; CODE XREF: OS2:00043046j bclr #4,d1 loc_43052: ; CODE XREF: OS2:0004304Cj bclr #3,d1 move.w #$142,d0 jsr (sub_1216).l tst.b d0 beq.s loc_4306A bset #2,d1 bra.s loc_4306E ; --------------------------------------------------------------------------- loc_4306A: ; CODE XREF: OS2:00043062j bclr #2,d1 loc_4306E: ; CODE XREF: OS2:00043068j jsr sub_2F512 tst.b d0 beq.s loc_4307E bset #1,d1 bra.s loc_43082 ; --------------------------------------------------------------------------- loc_4307E: ; CODE XREF: OS2:00043076j bclr #1,d1 loc_43082: ; CODE XREF: OS2:0004307Cj btst #1,(byte_FFFF8930).w beq.s loc_43090 bset #0,d1 bra.s loc_43094 ; --------------------------------------------------------------------------- loc_43090: ; CODE XREF: OS2:00043088j bclr #0,d1 loc_43094: ; CODE XREF: OS2:0004308Ej move.l d1,d0 movem.l (sp)+,d1-d2/a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1102: ; DATA XREF: Boot:PID_jump_tableo link a6,#-4 movem.l d1-d2/a0,-(sp) move.w (word_FFFFA40C).w,d3 bls.s loc_430B2 bset #7,d1 bra.s loc_430B6 ; --------------------------------------------------------------------------- loc_430B2: ; CODE XREF: OS2:000430AAj bclr #7,d1 loc_430B6: ; CODE XREF: OS2:000430B0j movea.l (off_1330).l,a0 move.l a0,-4(a6) move.l a0,d2 bne.s loc_430CA jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_430CA: ; CODE XREF: OS2:000430C2j btst #6,2(a0) bne.s loc_430D8 bset #6,d1 bra.s loc_430DC ; --------------------------------------------------------------------------- loc_430D8: ; CODE XREF: OS2:000430D0j bclr #6,d1 loc_430DC: ; CODE XREF: OS2:000430D6j move.w #$140,d0 jsr (sub_1216).l tst.b d0 beq.s loc_430F0 bset #5,d1 bra.s loc_430F4 ; --------------------------------------------------------------------------- loc_430F0: ; CODE XREF: OS2:000430E8j bclr #5,d1 loc_430F4: ; CODE XREF: OS2:000430EEj move.w #$158,d0 jsr (sub_1216).l tst.b d0 beq.s loc_43108 bset #4,d1 bra.s loc_4310C ; --------------------------------------------------------------------------- loc_43108: ; CODE XREF: OS2:00043100j bclr #4,d1 loc_4310C: ; CODE XREF: OS2:00043106j tst.b (byte_FFFFAF3A).w beq.s loc_43118 bset #3,d1 bra.s loc_4311C ; --------------------------------------------------------------------------- loc_43118: ; CODE XREF: OS2:00043110j bclr #3,d1 loc_4311C: ; CODE XREF: OS2:00043116j cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_43132 tst.b (byte_FFFFA3B5).w beq.s loc_43138 loc_4312C: ; CODE XREF: OS2:00043136j bset #2,d1 bra.s loc_4313C ; --------------------------------------------------------------------------- loc_43132: ; CODE XREF: OS2:00043124j tst.b (byte_FFFFA3AC).w bne.s loc_4312C loc_43138: ; CODE XREF: OS2:0004312Aj bclr #2,d1 loc_4313C: ; CODE XREF: OS2:00043130j jsr sub_85316 tst.b d0 beq.s loc_4314C bset #1,d1 bra.s loc_43150 ; --------------------------------------------------------------------------- loc_4314C: ; CODE XREF: OS2:00043144j bclr #1,d1 loc_43150: ; CODE XREF: OS2:0004314Aj tst.b (byte_FFFF93EA).w beq.s loc_4315C bset #0,d1 bra.s loc_43160 ; --------------------------------------------------------------------------- loc_4315C: ; CODE XREF: OS2:00043154j bclr #0,d1 loc_43160: ; CODE XREF: OS2:0004315Aj move.l d1,d0 movem.l (sp)+,d1-d2/a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1103: ; DATA XREF: Boot:PID_jump_tableo link a6,#-4 movem.l d1-d2/a0,-(sp) move.b (byte_FFFFB370).w,d3 beq.s loc_431A6 tst.b (VEH_SYS_KE_TYPE_OF_INSTRUMENT_CLUSTER).l bne.s loc_43198 tst.b d3 beq.s loc_4318A move.b (byte_FFFFA302).w,d3 bra.s loc_4318E ; --------------------------------------------------------------------------- loc_4318A: ; CODE XREF: OS2:00043182j move.b (byte_FFFFABDA).w,d3 loc_4318E: ; CODE XREF: OS2:00043188j tst.b d3 beq.s loc_431A6 loc_43192: ; CODE XREF: OS2:000431A4j bset #7,d1 bra.s loc_431AA ; --------------------------------------------------------------------------- loc_43198: ; CODE XREF: OS2:0004317Ej move.w #$132,d0 jsr (sub_1216).l tst.b d0 bne.s loc_43192 loc_431A6: ; CODE XREF: OS2:00043176j ; OS2:00043190j bclr #7,d1 loc_431AA: ; CODE XREF: OS2:00043196j bclr #6,d1 movea.l (off_1328).l,a0 move.l a0,d2 bne.s loc_431BE jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_431BE: ; CODE XREF: OS2:000431B6j btst #1,2(a0) beq.s loc_431CC bset #5,d1 bra.s loc_431D0 ; --------------------------------------------------------------------------- loc_431CC: ; CODE XREF: OS2:000431C4j bclr #5,d1 loc_431D0: ; CODE XREF: OS2:000431CAj move.w #$134,d0 jsr (sub_1216).l tst.b d0 beq.s loc_431E4 bset #4,d1 bra.s loc_431E8 ; --------------------------------------------------------------------------- loc_431E4: ; CODE XREF: OS2:000431DCj bclr #4,d1 loc_431E8: ; CODE XREF: OS2:000431E2j tst.b (byte_FFFF900F).w bne.s loc_431F6 btst #2,(byte_FFFFA59C).w beq.s loc_431FC loc_431F6: ; CODE XREF: OS2:000431ECj bset #3,d1 bra.s loc_43200 ; --------------------------------------------------------------------------- loc_431FC: ; CODE XREF: OS2:000431F4j bclr #3,d1 loc_43200: ; CODE XREF: OS2:000431FAj moveq #$26,d0 ; '&' jsr (sub_1216).l tst.b d0 beq.s loc_43212 bset #2,d1 bra.s loc_43216 ; --------------------------------------------------------------------------- loc_43212: ; CODE XREF: OS2:0004320Aj bclr #2,d1 loc_43216: ; CODE XREF: OS2:00043210j moveq #$3E,d0 ; '>' jsr (sub_1216).l tst.b d0 beq.s loc_43228 bset #1,d1 bra.s loc_4322C ; --------------------------------------------------------------------------- loc_43228: ; CODE XREF: OS2:00043220j bclr #1,d1 loc_4322C: ; CODE XREF: OS2:00043226j move.w (word_FFFFBFD2).w,d3 bls.s loc_43238 bset #0,d1 bra.s loc_4323C ; --------------------------------------------------------------------------- loc_43238: ; CODE XREF: OS2:00043230j bclr #0,d1 loc_4323C: ; CODE XREF: OS2:00043236j move.l d1,d0 movem.l (sp)+,d1-d2/a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1104: ; DATA XREF: Boot:PID_jump_tableo move.l d1,-(sp) tst.b (byte_FFFFB54A).w bne.s loc_43254 bset #7,d1 bra.s loc_43258 ; --------------------------------------------------------------------------- loc_43254: ; CODE XREF: OS2:0004324Cj bclr #7,d1 loc_43258: ; CODE XREF: OS2:00043252j cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_43266 bset #6,d1 bra.s loc_4326A ; --------------------------------------------------------------------------- loc_43266: ; CODE XREF: OS2:0004325Ej bclr #6,d1 loc_4326A: ; CODE XREF: OS2:00043264j tst.b (byte_FFFFB370).w bne.s loc_43284 move.w #$133,d0 jsr (sub_1216).l tst.b d0 beq.s loc_4328A loc_4327E: ; CODE XREF: OS2:00043288j bset #5,d1 bra.s loc_4328E ; --------------------------------------------------------------------------- loc_43284: ; CODE XREF: OS2:0004326Ej tst.b (byte_FFFFB047).w bne.s loc_4327E loc_4328A: ; CODE XREF: OS2:0004327Cj bclr #5,d1 loc_4328E: ; CODE XREF: OS2:00043282j tst.b (byte_FFFFB048).w beq.s loc_4329A bset #4,d1 bra.s loc_4329E ; --------------------------------------------------------------------------- loc_4329A: ; CODE XREF: OS2:00043292j bclr #4,d1 loc_4329E: ; CODE XREF: OS2:00043298j tst.b (byte_FFFFACAA).w beq.s loc_432AA bset #3,d1 bra.s loc_432AE ; --------------------------------------------------------------------------- loc_432AA: ; CODE XREF: OS2:000432A2j bclr #3,d1 loc_432AE: ; CODE XREF: OS2:000432A8j clr.w d4 move.l d4,d3 loc_432B2: ; CODE XREF: OS2:000432C8j btst #6,byte_FFFF88C0(d3.w*2) sne d4 neg.b d4 addq.w #1,d3 cmpi.w #$104,d3 bcc.s loc_432CA tst.b d4 beq.s loc_432B2 loc_432CA: ; CODE XREF: OS2:000432C4j tst.b d4 beq.s loc_432D4 bset #2,d1 bra.s loc_432D8 ; --------------------------------------------------------------------------- loc_432D4: ; CODE XREF: OS2:000432CCj bclr #2,d1 loc_432D8: ; CODE XREF: OS2:000432D2j move.w #$144,d0 jsr (sub_1216).l tst.b d0 beq.s loc_432EC bset #1,d1 bra.s loc_432F0 ; --------------------------------------------------------------------------- loc_432EC: ; CODE XREF: OS2:000432E4j bclr #1,d1 loc_432F0: ; CODE XREF: OS2:000432EAj move.w #$130,d0 jsr (sub_1216).l tst.b d0 beq.s loc_43304 bset #0,d1 bra.s loc_43308 ; --------------------------------------------------------------------------- loc_43304: ; CODE XREF: OS2:000432FCj bclr #0,d1 loc_43308: ; CODE XREF: OS2:00043302j move.l d1,d0 move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- GetPid_1105: ; DATA XREF: Boot:PID_jump_tableo tst.b (byte_FFFFA93A).w beq.s loc_4331A bset #7,d0 bra.s loc_4331E ; --------------------------------------------------------------------------- loc_4331A: ; CODE XREF: OS2:00043312j bclr #7,d0 loc_4331E: ; CODE XREF: OS2:00043318j btst #0,(byte_FFFFA9D6).w beq.s loc_4332C bset #6,d0 bra.s loc_43330 ; --------------------------------------------------------------------------- loc_4332C: ; CODE XREF: OS2:00043324j bclr #6,d0 loc_43330: ; CODE XREF: OS2:0004332Aj tst.b (byte_FFFF98E0).w beq.s loc_4333C bset #5,d0 bra.s loc_43340 ; --------------------------------------------------------------------------- loc_4333C: ; CODE XREF: OS2:00043334j bclr #5,d0 loc_43340: ; CODE XREF: OS2:0004333Aj tst.b (byte_FFFF9F53).w beq.s loc_4334C bset #4,d0 bra.s loc_43350 ; --------------------------------------------------------------------------- loc_4334C: ; CODE XREF: OS2:00043344j bclr #4,d0 loc_43350: ; CODE XREF: OS2:0004334Aj tst.b (byte_FFFF9F52).w beq.s loc_4335C bset #3,d0 bra.s loc_43360 ; --------------------------------------------------------------------------- loc_4335C: ; CODE XREF: OS2:00043354j bclr #3,d0 loc_43360: ; CODE XREF: OS2:0004335Aj tst.b (byte_FFFFB2F1).w beq.s loc_4336C bset #2,d0 bra.s loc_43370 ; --------------------------------------------------------------------------- loc_4336C: ; CODE XREF: OS2:00043364j bclr #2,d0 loc_43370: ; CODE XREF: OS2:0004336Aj tst.b (byte_FFFFB2F0).w beq.s loc_4337C bset #1,d0 bra.s loc_43380 ; --------------------------------------------------------------------------- loc_4337C: ; CODE XREF: OS2:00043374j bclr #1,d0 loc_43380: ; CODE XREF: OS2:0004337Aj cmpi.b #1,(byte_FFFFB2EF).w bne.s loc_4338E bset #0,d0 bra.s locret_43392 ; --------------------------------------------------------------------------- loc_4338E: ; CODE XREF: OS2:00043386j bclr #0,d0 locret_43392: ; CODE XREF: OS2:0004338Cj rts ; --------------------------------------------------------------------------- GetPid_1106_VTDFuelDisable: ; DATA XREF: Boot:PID_jump_tableo move.l d1,-(sp) tst.b (byte_FFFF93F3).w beq.s loc_433A2 bset #7,d1 bra.s loc_433A6 ; --------------------------------------------------------------------------- loc_433A2: ; CODE XREF: OS2:0004339Aj bclr #7,d1 loc_433A6: ; CODE XREF: OS2:000433A0j tst.b (byte_FFFF93EB).w beq.s loc_433B2 bset #6,d1 bra.s loc_433B6 ; --------------------------------------------------------------------------- loc_433B2: ; CODE XREF: OS2:000433AAj bclr #6,d1 loc_433B6: ; CODE XREF: OS2:000433B0j move.b (byte_FFFF9FB9).w,d3 cmpi.b #3,d3 bne.s loc_433C6 bset #5,d1 bra.s loc_433CA ; --------------------------------------------------------------------------- loc_433C6: ; CODE XREF: OS2:000433BEj bclr #5,d1 loc_433CA: ; CODE XREF: OS2:000433C4j cmpi.b #2,d3 bne.s loc_433D6 bset #4,d1 bra.s loc_433DA ; --------------------------------------------------------------------------- loc_433D6: ; CODE XREF: OS2:000433CEj bclr #4,d1 loc_433DA: ; CODE XREF: OS2:000433D4j cmpi.b #1,d3 bne.s loc_433E6 bset #3,d1 bra.s loc_433EA ; --------------------------------------------------------------------------- loc_433E6: ; CODE XREF: OS2:000433DEj bclr #3,d1 loc_433EA: ; CODE XREF: OS2:000433E4j bclr #2,d1 move.w #$13A,d0 jsr (sub_1216).l tst.b d0 beq.s loc_43402 bset #1,d1 bra.s loc_43406 ; --------------------------------------------------------------------------- loc_43402: ; CODE XREF: OS2:000433FAj bclr #1,d1 loc_43406: ; CODE XREF: OS2:00043400j move.w #$13C,d0 jsr (sub_1216).l tst.b d0 beq.s loc_4341A bset #0,d1 bra.s loc_4341E ; --------------------------------------------------------------------------- loc_4341A: ; CODE XREF: OS2:00043412j bclr #0,d1 loc_4341E: ; CODE XREF: OS2:00043418j move.l d1,d0 move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- GetPid_1107_ThrottleAtIdle: ; DATA XREF: Boot:PID_jump_tableo bclr #7,d0 tst.b (byte_FFFFB439).w bne.s loc_43434 bset #6,d0 bra.s loc_43438 ; --------------------------------------------------------------------------- loc_43434: ; CODE XREF: OS2:0004342Cj bclr #6,d0 loc_43438: ; CODE XREF: OS2:00043432j bclr #5,d0 bclr #4,d0 btst #7,(byte_FFFFA9D7).w bne.s loc_4344E bset #3,d0 bra.s loc_43452 ; --------------------------------------------------------------------------- loc_4344E: ; CODE XREF: OS2:00043446j bclr #3,d0 loc_43452: ; CODE XREF: OS2:0004344Cj tst.b (byte_FFFF93EA).w beq.s loc_4345E bset #2,d0 bra.s loc_43462 ; --------------------------------------------------------------------------- loc_4345E: ; CODE XREF: OS2:00043456j bclr #2,d0 loc_43462: ; CODE XREF: OS2:0004345Cj btst #4,(byte_FFFFA068).w bne.s loc_43470 bset #1,d0 bra.s loc_43474 ; --------------------------------------------------------------------------- loc_43470: ; CODE XREF: OS2:00043468j bclr #1,d0 loc_43474: ; CODE XREF: OS2:0004346Ej tst.w (word_FFFFB172).w bls.s loc_43480 bset #0,d0 bra.s locret_43484 ; --------------------------------------------------------------------------- loc_43480: ; CODE XREF: OS2:00043478j bclr #0,d0 locret_43484: ; CODE XREF: OS2:0004347Ej rts ; --------------------------------------------------------------------------- GetPid_1108: ; DATA XREF: Boot:PID_jump_tableo bclr #7,d0 bclr #6,d0 bclr #5,d0 bclr #4,d0 bclr #3,d0 bclr #2,d0 tst.b (byte_FFFFB129).w beq.s loc_434AA bset #1,d0 bra.s loc_434AE ; --------------------------------------------------------------------------- loc_434AA: ; CODE XREF: OS2:000434A2j bclr #1,d0 loc_434AE: ; CODE XREF: OS2:000434A8j tst.b (byte_FFFFB128).w beq.s loc_434BA bset #0,d0 bra.s locret_434BE ; --------------------------------------------------------------------------- loc_434BA: ; CODE XREF: OS2:000434B2j bclr #0,d0 locret_434BE: ; CODE XREF: OS2:000434B8j rts ; --------------------------------------------------------------------------- GetPid_110C: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.w (word_FFFFA764).w,-2(a6) bclr #7,d0 btst #6,-1(a6) beq.s loc_434DC bset #6,d0 bra.s loc_434E0 ; --------------------------------------------------------------------------- loc_434DC: ; CODE XREF: OS2:000434D4j bclr #6,d0 loc_434E0: ; CODE XREF: OS2:000434DAj btst #5,-1(a6) beq.s loc_434EE bset #5,d0 bra.s loc_434F2 ; --------------------------------------------------------------------------- loc_434EE: ; CODE XREF: OS2:000434E6j bclr #5,d0 loc_434F2: ; CODE XREF: OS2:000434ECj btst #4,-1(a6) beq.s loc_43500 bset #4,d0 bra.s loc_43504 ; --------------------------------------------------------------------------- loc_43500: ; CODE XREF: OS2:000434F8j bclr #4,d0 loc_43504: ; CODE XREF: OS2:000434FEj btst #3,-1(a6) beq.s loc_43512 bset #3,d0 bra.s loc_43516 ; --------------------------------------------------------------------------- loc_43512: ; CODE XREF: OS2:0004350Aj bclr #3,d0 loc_43516: ; CODE XREF: OS2:00043510j btst #2,-1(a6) beq.s loc_43524 bset #2,d0 bra.s loc_43528 ; --------------------------------------------------------------------------- loc_43524: ; CODE XREF: OS2:0004351Cj bclr #2,d0 loc_43528: ; CODE XREF: OS2:00043522j btst #1,-1(a6) beq.s loc_43536 bset #1,d0 bra.s loc_4353A ; --------------------------------------------------------------------------- loc_43536: ; CODE XREF: OS2:0004352Ej bclr #1,d0 loc_4353A: ; CODE XREF: OS2:00043534j btst #0,-1(a6) beq.s loc_43548 bset #0,d0 bra.s loc_4354C ; --------------------------------------------------------------------------- loc_43548: ; CODE XREF: OS2:00043540j bclr #0,d0 loc_4354C: ; CODE XREF: OS2:00043546j unlk a6 rts ; --------------------------------------------------------------------------- GetPid_110D: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.w (word_FFFFA764).w,-2(a6) bclr #7,d0 btst #6,-2(a6) beq.s loc_4356C bset #6,d0 bra.s loc_43570 ; --------------------------------------------------------------------------- loc_4356C: ; CODE XREF: OS2:00043564j bclr #6,d0 loc_43570: ; CODE XREF: OS2:0004356Aj btst #5,-2(a6) beq.s loc_4357E bset #5,d0 bra.s loc_43582 ; --------------------------------------------------------------------------- loc_4357E: ; CODE XREF: OS2:00043576j bclr #5,d0 loc_43582: ; CODE XREF: OS2:0004357Cj btst #4,-2(a6) beq.s loc_43590 bset #4,d0 bra.s loc_43594 ; --------------------------------------------------------------------------- loc_43590: ; CODE XREF: OS2:00043588j bclr #4,d0 loc_43594: ; CODE XREF: OS2:0004358Ej btst #3,-2(a6) beq.s loc_435A2 bset #3,d0 bra.s loc_435A6 ; --------------------------------------------------------------------------- loc_435A2: ; CODE XREF: OS2:0004359Aj bclr #3,d0 loc_435A6: ; CODE XREF: OS2:000435A0j btst #2,-2(a6) beq.s loc_435B4 bset #2,d0 bra.s loc_435B8 ; --------------------------------------------------------------------------- loc_435B4: ; CODE XREF: OS2:000435ACj bclr #2,d0 loc_435B8: ; CODE XREF: OS2:000435B2j btst #1,-2(a6) beq.s loc_435C6 bset #1,d0 bra.s loc_435CA ; --------------------------------------------------------------------------- loc_435C6: ; CODE XREF: OS2:000435BEj bclr #1,d0 loc_435CA: ; CODE XREF: OS2:000435C4j btst #0,-2(a6) beq.s loc_435D8 bset #0,d0 bra.s loc_435DC ; --------------------------------------------------------------------------- loc_435D8: ; CODE XREF: OS2:000435D0j bclr #0,d0 loc_435DC: ; CODE XREF: OS2:000435D6j unlk a6 rts ; --------------------------------------------------------------------------- GetPid_110E: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.w (word_FFFFA766).w,-2(a6) bclr #7,d0 btst #6,-1(a6) beq.s loc_435FC bset #6,d0 bra.s loc_43600 ; --------------------------------------------------------------------------- loc_435FC: ; CODE XREF: OS2:000435F4j bclr #6,d0 loc_43600: ; CODE XREF: OS2:000435FAj btst #5,-1(a6) beq.s loc_4360E bset #5,d0 bra.s loc_43612 ; --------------------------------------------------------------------------- loc_4360E: ; CODE XREF: OS2:00043606j bclr #5,d0 loc_43612: ; CODE XREF: OS2:0004360Cj btst #4,-1(a6) beq.s loc_43620 bset #4,d0 bra.s loc_43624 ; --------------------------------------------------------------------------- loc_43620: ; CODE XREF: OS2:00043618j bclr #4,d0 loc_43624: ; CODE XREF: OS2:0004361Ej btst #3,-1(a6) beq.s loc_43632 bset #3,d0 bra.s loc_43636 ; --------------------------------------------------------------------------- loc_43632: ; CODE XREF: OS2:0004362Aj bclr #3,d0 loc_43636: ; CODE XREF: OS2:00043630j btst #2,-1(a6) beq.s loc_43644 bset #2,d0 bra.s loc_43648 ; --------------------------------------------------------------------------- loc_43644: ; CODE XREF: OS2:0004363Cj bclr #2,d0 loc_43648: ; CODE XREF: OS2:00043642j btst #1,-1(a6) beq.s loc_43656 bset #1,d0 bra.s loc_4365A ; --------------------------------------------------------------------------- loc_43656: ; CODE XREF: OS2:0004364Ej bclr #1,d0 loc_4365A: ; CODE XREF: OS2:00043654j btst #0,-1(a6) beq.s loc_43668 bset #0,d0 bra.s loc_4366C ; --------------------------------------------------------------------------- loc_43668: ; CODE XREF: OS2:00043660j bclr #0,d0 loc_4366C: ; CODE XREF: OS2:00043666j unlk a6 rts ; --------------------------------------------------------------------------- GetPid_110F_RearOCurrentNonVolatile: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.w (word_FFFFA766).w,-2(a6) bclr #7,d0 btst #6,-2(a6) beq.s loc_4368C bset #6,d0 bra.s loc_43690 ; --------------------------------------------------------------------------- loc_4368C: ; CODE XREF: OS2:00043684j bclr #6,d0 loc_43690: ; CODE XREF: OS2:0004368Aj btst #5,-2(a6) beq.s loc_4369E bset #5,d0 bra.s loc_436A2 ; --------------------------------------------------------------------------- loc_4369E: ; CODE XREF: OS2:00043696j bclr #5,d0 loc_436A2: ; CODE XREF: OS2:0004369Cj btst #4,-2(a6) beq.s loc_436B0 bset #4,d0 bra.s loc_436B4 ; --------------------------------------------------------------------------- loc_436B0: ; CODE XREF: OS2:000436A8j bclr #4,d0 loc_436B4: ; CODE XREF: OS2:000436AEj btst #3,-2(a6) beq.s loc_436C2 bset #3,d0 bra.s loc_436C6 ; --------------------------------------------------------------------------- loc_436C2: ; CODE XREF: OS2:000436BAj bclr #3,d0 loc_436C6: ; CODE XREF: OS2:000436C0j btst #2,-2(a6) beq.s loc_436D4 bset #2,d0 bra.s loc_436D8 ; --------------------------------------------------------------------------- loc_436D4: ; CODE XREF: OS2:000436CCj bclr #2,d0 loc_436D8: ; CODE XREF: OS2:000436D2j btst #1,-2(a6) beq.s loc_436E6 bset #1,d0 bra.s loc_436EA ; --------------------------------------------------------------------------- loc_436E6: ; CODE XREF: OS2:000436DEj bclr #1,d0 loc_436EA: ; CODE XREF: OS2:000436E4j btst #0,-2(a6) beq.s loc_436F8 bset #0,d0 bra.s loc_436FC ; --------------------------------------------------------------------------- loc_436F8: ; CODE XREF: OS2:000436F0j bclr #0,d0 loc_436FC: ; CODE XREF: OS2:000436F6j unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1110: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.w (word_FFFFA768).w,-2(a6) bclr #7,d0 btst #6,-1(a6) beq.s loc_4371C bset #6,d0 bra.s loc_43720 ; --------------------------------------------------------------------------- loc_4371C: ; CODE XREF: OS2:00043714j bclr #6,d0 loc_43720: ; CODE XREF: OS2:0004371Aj btst #5,-1(a6) beq.s loc_4372E bset #5,d0 bra.s loc_43732 ; --------------------------------------------------------------------------- loc_4372E: ; CODE XREF: OS2:00043726j bclr #5,d0 loc_43732: ; CODE XREF: OS2:0004372Cj btst #4,-1(a6) beq.s loc_43740 bset #4,d0 bra.s loc_43744 ; --------------------------------------------------------------------------- loc_43740: ; CODE XREF: OS2:00043738j bclr #4,d0 loc_43744: ; CODE XREF: OS2:0004373Ej btst #3,-1(a6) beq.s loc_43752 bset #3,d0 bra.s loc_43756 ; --------------------------------------------------------------------------- loc_43752: ; CODE XREF: OS2:0004374Aj bclr #3,d0 loc_43756: ; CODE XREF: OS2:00043750j btst #2,-1(a6) beq.s loc_43764 bset #2,d0 bra.s loc_43768 ; --------------------------------------------------------------------------- loc_43764: ; CODE XREF: OS2:0004375Cj bclr #2,d0 loc_43768: ; CODE XREF: OS2:00043762j btst #1,-1(a6) beq.s loc_43776 bset #1,d0 bra.s loc_4377A ; --------------------------------------------------------------------------- loc_43776: ; CODE XREF: OS2:0004376Ej bclr #1,d0 loc_4377A: ; CODE XREF: OS2:00043774j btst #0,-1(a6) beq.s loc_43788 bset #0,d0 bra.s loc_4378C ; --------------------------------------------------------------------------- loc_43788: ; CODE XREF: OS2:00043780j bclr #0,d0 loc_4378C: ; CODE XREF: OS2:00043786j unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1111: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.w (word_FFFFA768).w,-2(a6) bclr #7,d0 btst #6,-2(a6) beq.s loc_437AC bset #6,d0 bra.s loc_437B0 ; --------------------------------------------------------------------------- loc_437AC: ; CODE XREF: OS2:000437A4j bclr #6,d0 loc_437B0: ; CODE XREF: OS2:000437AAj btst #5,-2(a6) beq.s loc_437BE bset #5,d0 bra.s loc_437C2 ; --------------------------------------------------------------------------- loc_437BE: ; CODE XREF: OS2:000437B6j bclr #5,d0 loc_437C2: ; CODE XREF: OS2:000437BCj btst #4,-2(a6) beq.s loc_437D0 bset #4,d0 bra.s loc_437D4 ; --------------------------------------------------------------------------- loc_437D0: ; CODE XREF: OS2:000437C8j bclr #4,d0 loc_437D4: ; CODE XREF: OS2:000437CEj btst #3,-2(a6) beq.s loc_437E2 bset #3,d0 bra.s loc_437E6 ; --------------------------------------------------------------------------- loc_437E2: ; CODE XREF: OS2:000437DAj bclr #3,d0 loc_437E6: ; CODE XREF: OS2:000437E0j btst #2,-2(a6) beq.s loc_437F4 bset #2,d0 bra.s loc_437F8 ; --------------------------------------------------------------------------- loc_437F4: ; CODE XREF: OS2:000437ECj bclr #2,d0 loc_437F8: ; CODE XREF: OS2:000437F2j btst #1,-2(a6) beq.s loc_43806 bset #1,d0 bra.s loc_4380A ; --------------------------------------------------------------------------- loc_43806: ; CODE XREF: OS2:000437FEj bclr #1,d0 loc_4380A: ; CODE XREF: OS2:00043804j btst #0,-2(a6) beq.s loc_43818 bset #0,d0 bra.s loc_4381C ; --------------------------------------------------------------------------- loc_43818: ; CODE XREF: OS2:00043810j bclr #0,d0 loc_4381C: ; CODE XREF: OS2:00043816j unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1112: ; DATA XREF: Boot:PID_jump_tableo link a6,#-4 tst.b (byte_FFFF82BE).w bne.s loc_43830 bset #7,d0 bra.s loc_43834 ; --------------------------------------------------------------------------- loc_43830: ; CODE XREF: OS2:00043828j bclr #7,d0 loc_43834: ; CODE XREF: OS2:0004382Ej movea.l (off_132C).l,a3 move.l a3,d4 bne.s loc_43844 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_43844: ; CODE XREF: OS2:0004383Cj btst #2,2(a3) bne.s loc_43852 bset #6,d0 bra.s loc_43856 ; --------------------------------------------------------------------------- loc_43852: ; CODE XREF: OS2:0004384Aj bclr #6,d0 loc_43856: ; CODE XREF: OS2:00043850j movea.l (off_132C).l,a3 move.l a3,d4 bne.s loc_43866 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_43866: ; CODE XREF: OS2:0004385Ej btst #1,2(a3) bne.s loc_43874 bset #5,d0 bra.s loc_43878 ; --------------------------------------------------------------------------- loc_43874: ; CODE XREF: OS2:0004386Cj bclr #5,d0 loc_43878: ; CODE XREF: OS2:00043872j movea.l (off_132C).l,a3 move.l a3,d4 bne.s loc_43888 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_43888: ; CODE XREF: OS2:00043880j btst #0,2(a3) bne.s loc_43896 bset #4,d0 bra.s loc_4389A ; --------------------------------------------------------------------------- loc_43896: ; CODE XREF: OS2:0004388Ej bclr #4,d0 loc_4389A: ; CODE XREF: OS2:00043894j movea.l (off_1328).l,a3 move.l a3,d4 bne.s loc_438AA jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_438AA: ; CODE XREF: OS2:000438A2j btst #7,2(a3) bne.s loc_438B8 bset #3,d0 bra.s loc_438BC ; --------------------------------------------------------------------------- loc_438B8: ; CODE XREF: OS2:000438B0j bclr #3,d0 loc_438BC: ; CODE XREF: OS2:000438B6j movea.l (off_1328).l,a3 move.l a3,d4 bne.s loc_438CC jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_438CC: ; CODE XREF: OS2:000438C4j btst #6,2(a3) bne.s loc_438DA bset #2,d0 bra.s loc_438DE ; --------------------------------------------------------------------------- loc_438DA: ; CODE XREF: OS2:000438D2j bclr #2,d0 loc_438DE: ; CODE XREF: OS2:000438D8j movea.l (off_1328).l,a3 move.l a3,d4 bne.s loc_438EE jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_438EE: ; CODE XREF: OS2:000438E6j btst #5,2(a3) bne.s loc_438FC bset #1,d0 bra.s loc_43900 ; --------------------------------------------------------------------------- loc_438FC: ; CODE XREF: OS2:000438F4j bclr #1,d0 loc_43900: ; CODE XREF: OS2:000438FAj movea.l (off_1328).l,a2 move.l a2,d3 bne.s loc_43910 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_43910: ; CODE XREF: OS2:00043908j btst #4,2(a2) bne.s loc_4391E bset #0,d0 bra.s loc_43922 ; --------------------------------------------------------------------------- loc_4391E: ; CODE XREF: OS2:00043916j bclr #0,d0 loc_43922: ; CODE XREF: OS2:0004391Cj unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1113: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFA3AF).w,d3 cmpi.b #7,d3 bne.s loc_43936 bset #7,d0 bra.s loc_4393A ; --------------------------------------------------------------------------- loc_43936: ; CODE XREF: OS2:0004392Ej bclr #7,d0 loc_4393A: ; CODE XREF: OS2:00043934j tst.b d3 bne.s loc_43944 bset #6,d0 bra.s loc_43948 ; --------------------------------------------------------------------------- loc_43944: ; CODE XREF: OS2:0004393Cj bclr #6,d0 loc_43948: ; CODE XREF: OS2:00043942j cmpi.b #1,d3 bne.s loc_43954 bset #5,d0 bra.s loc_43958 ; --------------------------------------------------------------------------- loc_43954: ; CODE XREF: OS2:0004394Cj bclr #5,d0 loc_43958: ; CODE XREF: OS2:00043952j cmpi.b #2,d3 bne.s loc_43964 bset #4,d0 bra.s loc_43968 ; --------------------------------------------------------------------------- loc_43964: ; CODE XREF: OS2:0004395Cj bclr #4,d0 loc_43968: ; CODE XREF: OS2:00043962j cmpi.b #3,d3 bne.s loc_43974 bset #3,d0 bra.s loc_43978 ; --------------------------------------------------------------------------- loc_43974: ; CODE XREF: OS2:0004396Cj bclr #3,d0 loc_43978: ; CODE XREF: OS2:00043972j cmpi.b #5,d3 bne.s loc_43984 bset #2,d0 bra.s loc_43988 ; --------------------------------------------------------------------------- loc_43984: ; CODE XREF: OS2:0004397Cj bclr #2,d0 loc_43988: ; CODE XREF: OS2:00043982j cmpi.b #4,d3 bne.s loc_43994 bset #1,d0 bra.s loc_43998 ; --------------------------------------------------------------------------- loc_43994: ; CODE XREF: OS2:0004398Cj bclr #1,d0 loc_43998: ; CODE XREF: OS2:00043992j cmpi.b #6,d3 bne.s loc_439A4 bset #0,d0 bra.s locret_439A8 ; --------------------------------------------------------------------------- loc_439A4: ; CODE XREF: OS2:0004399Cj bclr #0,d0 locret_439A8: ; CODE XREF: OS2:000439A2j rts ; --------------------------------------------------------------------------- GetPid_1114: ; DATA XREF: Boot:PID_jump_tableo btst #1,(byte_FFFF895C).w beq.s loc_439B8 bset #7,d0 bra.s loc_439BC ; --------------------------------------------------------------------------- loc_439B8: ; CODE XREF: OS2:000439B0j bclr #7,d0 loc_439BC: ; CODE XREF: OS2:000439B6j btst #1,(byte_FFFF895A).w beq.s loc_439CA bset #6,d0 bra.s loc_439CE ; --------------------------------------------------------------------------- loc_439CA: ; CODE XREF: OS2:000439C2j bclr #6,d0 loc_439CE: ; CODE XREF: OS2:000439C8j btst #1,(byte_FFFF8958).w beq.s loc_439DC bset #5,d0 bra.s loc_439E0 ; --------------------------------------------------------------------------- loc_439DC: ; CODE XREF: OS2:000439D4j bclr #5,d0 loc_439E0: ; CODE XREF: OS2:000439DAj btst #1,(byte_FFFF8956).w beq.s loc_439EE bset #4,d0 bra.s loc_439F2 ; --------------------------------------------------------------------------- loc_439EE: ; CODE XREF: OS2:000439E6j bclr #4,d0 loc_439F2: ; CODE XREF: OS2:000439ECj btst #1,(byte_FFFF8954).w beq.s loc_43A00 bset #3,d0 bra.s loc_43A04 ; --------------------------------------------------------------------------- loc_43A00: ; CODE XREF: OS2:000439F8j bclr #3,d0 loc_43A04: ; CODE XREF: OS2:000439FEj btst #1,(byte_FFFF8952).w beq.s loc_43A12 bset #2,d0 bra.s loc_43A16 ; --------------------------------------------------------------------------- loc_43A12: ; CODE XREF: OS2:00043A0Aj bclr #2,d0 loc_43A16: ; CODE XREF: OS2:00043A10j btst #1,(byte_FFFF8950).w beq.s loc_43A24 bset #1,d0 bra.s loc_43A28 ; --------------------------------------------------------------------------- loc_43A24: ; CODE XREF: OS2:00043A1Cj bclr #1,d0 loc_43A28: ; CODE XREF: OS2:00043A22j btst #1,(byte_FFFF894E).w beq.s loc_43A36 bset #0,d0 bra.s locret_43A3A ; --------------------------------------------------------------------------- loc_43A36: ; CODE XREF: OS2:00043A2Ej bclr #0,d0 locret_43A3A: ; CODE XREF: OS2:00043A34j rts ; --------------------------------------------------------------------------- GetPid_1115: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 btst #6,(byte_FFFFA59C).w beq.s loc_43A4E bset #7,d0 bra.s loc_43A52 ; --------------------------------------------------------------------------- loc_43A4E: ; CODE XREF: OS2:00043A46j bclr #7,d0 loc_43A52: ; CODE XREF: OS2:00043A4Cj btst #6,(byte_FFFFA592).w beq.s loc_43A60 bset #6,d0 bra.s loc_43A64 ; --------------------------------------------------------------------------- loc_43A60: ; CODE XREF: OS2:00043A58j bclr #6,d0 loc_43A64: ; CODE XREF: OS2:00043A5Ej btst #5,(byte_FFFFA592).w beq.s loc_43A72 bset #5,d0 bra.s loc_43A76 ; --------------------------------------------------------------------------- loc_43A72: ; CODE XREF: OS2:00043A6Aj bclr #5,d0 loc_43A76: ; CODE XREF: OS2:00043A70j btst #4,(byte_FFFFA592).w beq.s loc_43A84 bset #4,d0 bra.s loc_43A88 ; --------------------------------------------------------------------------- loc_43A84: ; CODE XREF: OS2:00043A7Cj bclr #4,d0 loc_43A88: ; CODE XREF: OS2:00043A82j btst #3,(byte_FFFFA592).w beq.s loc_43A96 bset #3,d0 bra.s loc_43A9A ; --------------------------------------------------------------------------- loc_43A96: ; CODE XREF: OS2:00043A8Ej bclr #3,d0 loc_43A9A: ; CODE XREF: OS2:00043A94j move.b (byte_FFFFA592).w,-2(a6) move.b -2(a6),d3 moveq #7,d4 and.b d4,d3 btst #2,d3 beq.s loc_43AB4 bset #2,d0 bra.s loc_43AB8 ; --------------------------------------------------------------------------- loc_43AB4: ; CODE XREF: OS2:00043AACj bclr #2,d0 loc_43AB8: ; CODE XREF: OS2:00043AB2j move.b (byte_FFFFA592).w,-2(a6) move.b -2(a6),d3 and.b d4,d3 btst #1,d3 beq.s loc_43AD0 bset #1,d0 bra.s loc_43AD4 ; --------------------------------------------------------------------------- loc_43AD0: ; CODE XREF: OS2:00043AC8j bclr #1,d0 loc_43AD4: ; CODE XREF: OS2:00043ACEj move.b (byte_FFFFA592).w,-2(a6) move.b -2(a6),d3 and.b d4,d3 btst #0,d3 beq.s loc_43AEC bset #0,d0 bra.s loc_43AF0 ; --------------------------------------------------------------------------- loc_43AEC: ; CODE XREF: OS2:00043AE4j bclr #0,d0 loc_43AF0: ; CODE XREF: OS2:00043AEAj unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1116: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 btst #5,(word_FFFFA594).w beq.s loc_43B06 bset #7,d0 bra.s loc_43B0A ; --------------------------------------------------------------------------- loc_43B06: ; CODE XREF: OS2:00043AFEj bclr #7,d0 loc_43B0A: ; CODE XREF: OS2:00043B04j btst #4,(word_FFFFA594).w beq.s loc_43B18 bset #6,d0 bra.s loc_43B1C ; --------------------------------------------------------------------------- loc_43B18: ; CODE XREF: OS2:00043B10j bclr #6,d0 loc_43B1C: ; CODE XREF: OS2:00043B16j btst #3,(word_FFFFA594).w beq.s loc_43B2A bset #5,d0 bra.s loc_43B2E ; --------------------------------------------------------------------------- loc_43B2A: ; CODE XREF: OS2:00043B22j bclr #5,d0 loc_43B2E: ; CODE XREF: OS2:00043B28j btst #2,(word_FFFFA594).w beq.s loc_43B3C bset #4,d0 bra.s loc_43B40 ; --------------------------------------------------------------------------- loc_43B3C: ; CODE XREF: OS2:00043B34j bclr #4,d0 loc_43B40: ; CODE XREF: OS2:00043B3Aj btst #3,(byte_FFFFA593).w beq.s loc_43B4E bset #3,d0 bra.s loc_43B52 ; --------------------------------------------------------------------------- loc_43B4E: ; CODE XREF: OS2:00043B46j bclr #3,d0 loc_43B52: ; CODE XREF: OS2:00043B4Cj move.b (byte_FFFFA593).w,-2(a6) move.b -2(a6),d3 moveq #7,d4 and.b d4,d3 btst #2,d3 beq.s loc_43B6C bset #2,d0 bra.s loc_43B70 ; --------------------------------------------------------------------------- loc_43B6C: ; CODE XREF: OS2:00043B64j bclr #2,d0 loc_43B70: ; CODE XREF: OS2:00043B6Aj move.b (byte_FFFFA593).w,-2(a6) move.b -2(a6),d3 and.b d4,d3 btst #1,d3 beq.s loc_43B88 bset #1,d0 bra.s loc_43B8C ; --------------------------------------------------------------------------- loc_43B88: ; CODE XREF: OS2:00043B80j bclr #1,d0 loc_43B8C: ; CODE XREF: OS2:00043B86j move.b (byte_FFFFA593).w,-2(a6) move.b -2(a6),d3 and.b d4,d3 btst #0,d3 beq.s loc_43BA4 bset #0,d0 bra.s loc_43BA8 ; --------------------------------------------------------------------------- loc_43BA4: ; CODE XREF: OS2:00043B9Cj bclr #0,d0 loc_43BA8: ; CODE XREF: OS2:00043BA2j unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1117: ; DATA XREF: Boot:PID_jump_tableo cmpi.b #5,(AIR_CONDITIONING_KE_TYPE_OF_AC_ON_VEHICLE).l ; Type of Air Conditioning System supported ; Unitless beq.s loc_43BBC bset #7,d0 bra.s loc_43BC0 ; --------------------------------------------------------------------------- loc_43BBC: ; CODE XREF: OS2:00043BB4j bclr #7,d0 loc_43BC0: ; CODE XREF: OS2:00043BBAj move.b (AIR_CONDITIONING_KE_AUTO_RECIRCULATION_OPTION).l,d3 ; Auto recirculation mode is present on vehicle. ; boolean beq.s loc_43BCE bset #6,d0 bra.s loc_43BD2 ; --------------------------------------------------------------------------- loc_43BCE: ; CODE XREF: OS2:00043BC6j bclr #6,d0 loc_43BD2: ; CODE XREF: OS2:00043BCCj tst.b d3 beq.s loc_43BDC bset #5,d0 bra.s loc_43BE0 ; --------------------------------------------------------------------------- loc_43BDC: ; CODE XREF: OS2:00043BD4j bclr #5,d0 loc_43BE0: ; CODE XREF: OS2:00043BDAj btst #6,(byte_FFFFAD8C).w beq.s loc_43BEE bset #4,d0 bra.s loc_43BF2 ; --------------------------------------------------------------------------- loc_43BEE: ; CODE XREF: OS2:00043BE6j bclr #4,d0 loc_43BF2: ; CODE XREF: OS2:00043BECj btst #7,(byte_FFFFAD8C).w beq.s loc_43C00 bset #3,d0 bra.s loc_43C04 ; --------------------------------------------------------------------------- loc_43C00: ; CODE XREF: OS2:00043BF8j bclr #3,d0 loc_43C04: ; CODE XREF: OS2:00043BFEj btst #0,(byte_FFFFAD8B).w beq.s loc_43C12 bset #2,d0 bra.s loc_43C16 ; --------------------------------------------------------------------------- loc_43C12: ; CODE XREF: OS2:00043C0Aj bclr #2,d0 loc_43C16: ; CODE XREF: OS2:00043C10j move.b (byte_FFFFA67E).w,d3 cmpi.b #2,d3 beq.s loc_43C26 cmpi.b #1,d3 bne.s loc_43C2C loc_43C26: ; CODE XREF: OS2:00043C1Ej bset #1,d0 bra.s loc_43C30 ; --------------------------------------------------------------------------- loc_43C2C: ; CODE XREF: OS2:00043C24j bclr #1,d0 loc_43C30: ; CODE XREF: OS2:00043C2Aj cmpi.b #1,d3 bne.s loc_43C3C bset #0,d0 bra.s locret_43C40 ; --------------------------------------------------------------------------- loc_43C3C: ; CODE XREF: OS2:00043C34j bclr #0,d0 locret_43C40: ; CODE XREF: OS2:00043C3Aj rts ; --------------------------------------------------------------------------- GetPid_1118: ; DATA XREF: Boot:PID_jump_tableo link a6,#-4 bclr #7,d0 bclr #6,d0 bclr #5,d0 bclr #4,d0 bclr #3,d0 bclr #2,d0 btst #7,(byte_FFFFBF32).w beq.s loc_43C6C bset #1,d0 bra.s loc_43C70 ; --------------------------------------------------------------------------- loc_43C6C: ; CODE XREF: OS2:00043C64j bclr #1,d0 loc_43C70: ; CODE XREF: OS2:00043C6Aj move.b (VEH_SYS_KE_PLATFORM).l,d3 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type cmpi.b #3,d3 beq.s loc_43C82 cmpi.b #4,d3 bne.s loc_43C9C loc_43C82: ; CODE XREF: OS2:00043C7Aj movea.l (off_1328).l,a2 move.l a2,d3 bne.s loc_43C92 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_43C92: ; CODE XREF: OS2:00043C8Aj btst #0,2(a2) bne.s loc_43CBA bra.s loc_43CB4 ; --------------------------------------------------------------------------- loc_43C9C: ; CODE XREF: OS2:00043C80j movea.l (off_1328).l,a2 move.l a2,d3 bne.s loc_43CAC jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_43CAC: ; CODE XREF: OS2:00043CA4j btst #0,2(a2) beq.s loc_43CBA loc_43CB4: ; CODE XREF: OS2:00043C9Aj bset #0,d0 bra.s loc_43CBE ; --------------------------------------------------------------------------- loc_43CBA: ; CODE XREF: OS2:00043C98j ; OS2:00043CB2j bclr #0,d0 loc_43CBE: ; CODE XREF: OS2:00043CB8j unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1119: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.w (word_FFFFBF0C).w,-2(a6) bclr #7,d0 btst #6,-1(a6) beq.s loc_43CDE bset #6,d0 bra.s loc_43CE2 ; --------------------------------------------------------------------------- loc_43CDE: ; CODE XREF: OS2:00043CD6j bclr #6,d0 loc_43CE2: ; CODE XREF: OS2:00043CDCj btst #5,-1(a6) beq.s loc_43CF0 bset #5,d0 bra.s loc_43CF4 ; --------------------------------------------------------------------------- loc_43CF0: ; CODE XREF: OS2:00043CE8j bclr #5,d0 loc_43CF4: ; CODE XREF: OS2:00043CEEj btst #4,-1(a6) beq.s loc_43D02 bset #4,d0 bra.s loc_43D06 ; --------------------------------------------------------------------------- loc_43D02: ; CODE XREF: OS2:00043CFAj bclr #4,d0 loc_43D06: ; CODE XREF: OS2:00043D00j btst #3,-1(a6) beq.s loc_43D14 bset #3,d0 bra.s loc_43D18 ; --------------------------------------------------------------------------- loc_43D14: ; CODE XREF: OS2:00043D0Cj bclr #3,d0 loc_43D18: ; CODE XREF: OS2:00043D12j btst #2,-1(a6) beq.s loc_43D26 bset #2,d0 bra.s loc_43D2A ; --------------------------------------------------------------------------- loc_43D26: ; CODE XREF: OS2:00043D1Ej bclr #2,d0 loc_43D2A: ; CODE XREF: OS2:00043D24j btst #1,-1(a6) beq.s loc_43D38 bset #1,d0 bra.s loc_43D3C ; --------------------------------------------------------------------------- loc_43D38: ; CODE XREF: OS2:00043D30j bclr #1,d0 loc_43D3C: ; CODE XREF: OS2:00043D36j btst #0,-1(a6) beq.s loc_43D4A bset #0,d0 bra.s loc_43D4E ; --------------------------------------------------------------------------- loc_43D4A: ; CODE XREF: OS2:00043D42j bclr #0,d0 loc_43D4E: ; CODE XREF: OS2:00043D48j unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1120: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.w (word_FFFFBF0C).w,-2(a6) bclr #7,d0 btst #6,-2(a6) beq.s loc_43D6E bset #6,d0 bra.s loc_43D72 ; --------------------------------------------------------------------------- loc_43D6E: ; CODE XREF: OS2:00043D66j bclr #6,d0 loc_43D72: ; CODE XREF: OS2:00043D6Cj btst #5,-2(a6) beq.s loc_43D80 bset #5,d0 bra.s loc_43D84 ; --------------------------------------------------------------------------- loc_43D80: ; CODE XREF: OS2:00043D78j bclr #5,d0 loc_43D84: ; CODE XREF: OS2:00043D7Ej btst #4,-2(a6) beq.s loc_43D92 bset #4,d0 bra.s loc_43D96 ; --------------------------------------------------------------------------- loc_43D92: ; CODE XREF: OS2:00043D8Aj bclr #4,d0 loc_43D96: ; CODE XREF: OS2:00043D90j btst #3,-2(a6) beq.s loc_43DA4 bset #3,d0 bra.s loc_43DA8 ; --------------------------------------------------------------------------- loc_43DA4: ; CODE XREF: OS2:00043D9Cj bclr #3,d0 loc_43DA8: ; CODE XREF: OS2:00043DA2j btst #2,-2(a6) beq.s loc_43DB6 bset #2,d0 bra.s loc_43DBA ; --------------------------------------------------------------------------- loc_43DB6: ; CODE XREF: OS2:00043DAEj bclr #2,d0 loc_43DBA: ; CODE XREF: OS2:00043DB4j btst #1,-2(a6) beq.s loc_43DC8 bset #1,d0 bra.s loc_43DCC ; --------------------------------------------------------------------------- loc_43DC8: ; CODE XREF: OS2:00043DC0j bclr #1,d0 loc_43DCC: ; CODE XREF: OS2:00043DC6j btst #0,-2(a6) beq.s loc_43DDA bset #0,d0 bra.s loc_43DDE ; --------------------------------------------------------------------------- loc_43DDA: ; CODE XREF: OS2:00043DD2j bclr #0,d0 loc_43DDE: ; CODE XREF: OS2:00043DD8j unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1140_MassAirFlowSensor: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFAC86).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1141_IgnitionVoltage: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFB4A2).w,d0 mulu.w #5,d0 cmpi.l #$FFFF,d0 bhi.s loc_43E00 lsr.w #7,d0 cmpi.w #$FF,d0 bls.s locret_43E04 loc_43E00: ; CODE XREF: OS2:00043DF6j move.b #$FF,d0 locret_43E04: ; CODE XREF: OS2:00043DFEj rts ; --------------------------------------------------------------------------- GetPid_1142: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFF2BC).w,d0 lsr.w #2,d0 asl.w #8,d0 lsr.w #8,d0 rts ; --------------------------------------------------------------------------- GetPid_1143_ThrottlePositionSensor: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFF2FC).w,d0 lsr.w #2,d0 asl.w #8,d0 lsr.w #8,d0 rts ; --------------------------------------------------------------------------- GetPid_1144_AirConditionerPressure: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFF2DE).w,d0 lsr.w #2,d0 asl.w #8,d0 lsr.w #8,d0 rts ; --------------------------------------------------------------------------- GetPid_1145: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFF2F4).w,d0 lsr.w #2,d0 asl.w #8,d0 lsr.w #8,d0 rts ; --------------------------------------------------------------------------- GetPid_1146_OSensorBankSensormv: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFF2EA).w,d0 lsr.w #2,d0 asl.w #8,d0 lsr.w #8,d0 rts ; --------------------------------------------------------------------------- GetPid_1148_OSensorBankSensormv: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFF2F6).w,d0 lsr.w #2,d0 asl.w #8,d0 lsr.w #8,d0 rts ; --------------------------------------------------------------------------- GetPid_1149_OSensorBankSensormv: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFF2EC).w,d0 lsr.w #2,d0 asl.w #8,d0 lsr.w #8,d0 rts ; --------------------------------------------------------------------------- GetPid_114B: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA252).w,d0 lsr.w #8,d0 rts ; --------------------------------------------------------------------------- GetPid_114C: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9FBC).w,d0 muls.w #$1B,d0 bpl.s loc_43E72 addi.l #$1FF,d0 loc_43E72: ; CODE XREF: OS2:00043E6Aj asr.l #8,d0 asr.l #1,d0 addi.w #$36,d0 ; '6' rts ; --------------------------------------------------------------------------- GetPid_114D: ; DATA XREF: Boot:PID_jump_tableo clr.l d0 move.w (word_FFFFA854).w,d0 divu.w #$14,d0 cmpi.w #$FF,d0 bls.s locret_43E90 move.b #$FF,d0 locret_43E90: ; CODE XREF: OS2:00043E8Aj rts ; --------------------------------------------------------------------------- GetPid_114E_FuelTankPressure: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9B2C).w,d0 lsr.w #2,d0 rts ; --------------------------------------------------------------------------- GetPid_1151_ThrottlePositionSensorNormalizedinDegreesPercent: ; DATA XREF: Boot:PID_jump_tableo clr.l d0 move.w (word_FFFFAB64).w,d0 divu.w #$14,d0 cmpi.w #$FF,d0 bls.s locret_43EAE move.b #$FF,d0 locret_43EAE: ; CODE XREF: OS2:00043EA8j rts ; --------------------------------------------------------------------------- GetPid_1152: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA258).w,d0 mulu.w #$D,d0 divu.w #$105,d0 rts ; --------------------------------------------------------------------------- GetPid_1155: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF9B2A).w,d0 rts ; --------------------------------------------------------------------------- GetPid_115C: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFF2E0).w,d0 lsr.w #2,d0 asl.w #8,d0 lsr.w #8,d0 rts ; --------------------------------------------------------------------------- GetPid_116F_StartUpEngineCoolantTemperature: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFADB6).w,d0 add.w d0,d0 ext.l d0 divs.w #$33,d0 ; '3' addi.w #$28,d0 ; '(' rts ; --------------------------------------------------------------------------- GetPid_1170_ControlledCanisterPurgeSolenoid: ; DATA XREF: Boot:PID_jump_tableo clr.l d0 move.w (word_FFFFA62A).w,d0 divu.w #$14,d0 cmpi.w #$FF,d0 bls.s locret_43EF6 move.b #$FF,d0 locret_43EF6: ; CODE XREF: OS2:00043EF0j rts ; --------------------------------------------------------------------------- GetPid_1172: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FF86AE).l,d0 rts ; --------------------------------------------------------------------------- GetPid_1177: ; DATA XREF: Boot:PID_jump_tableo clr.l d0 move.w (word_FFFFA254).w,d0 asl.l #8,d0 asl.l #5,d0 divu.w (EGR_KE_EGR_FULL_SCALE_GAIN).l,d0 ; EGR position sensor scaling factor. ; % / Count bvc.s loc_43F16 move.w #$FFFF,d0 loc_43F16: ; CODE XREF: OS2:00043F10j add.w (word_FFFF8280).w,d0 bcc.s loc_43F20 move.w #$FFFF,d0 loc_43F20: ; CODE XREF: OS2:00043F1Aj lsr.w #8,d0 rts ; --------------------------------------------------------------------------- GetPid_1186: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF8C10).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1187: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF8C0C).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1190_FuelTrimCell: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF98DA).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1192_DesiredIdleSpeed: ; DATA XREF: Boot:PID_jump_tableo move.w (DesiredIdleSpeed).w,d0 lsr.w #6,d0 cmpi.w #$FF,d0 bls.s locret_43F46 move.b #$FF,d0 locret_43F46: ; CODE XREF: OS2:00043F40j rts ; --------------------------------------------------------------------------- GetPid_119B: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA254).w,d0 mulu.w #$D,d0 divu.w #$105,d0 rts ; --------------------------------------------------------------------------- GetPid_119D_BarometricPressure: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF82D2).w,d0 subi.w #$211,d0 bcs.s loc_43F74 mulu.w #9,d0 divu.w #$AA,d0 ; '?' cmpi.w #$FF,d0 bls.s locret_43F76 move.b #$FF,d0 bra.s locret_43F76 ; --------------------------------------------------------------------------- loc_43F74: ; CODE XREF: OS2:00043F5Ej clr.b d0 locret_43F76: ; CODE XREF: OS2:00043F6Cj ; OS2:00043F72j rts ; --------------------------------------------------------------------------- GetPid_119E_AirFuelRatio: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA1E8).w,d0 mulu.w #5,d0 lsr.l #8,d0 lsr.l #1,d0 cmpi.w #$FF,d0 bls.s locret_43F8E move.b #$FF,d0 locret_43F8E: ; CODE XREF: OS2:00043F88j rts ; --------------------------------------------------------------------------- GetPid_119F: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA730).w,d0 beq.s loc_43F9C cmpi.w #$1400,d0 bne.s loc_43FA6 loc_43F9C: ; CODE XREF: OS2:00043F94j mulu.w #$D,d0 divu.w #$105,d0 bra.s locret_43FB0 ; --------------------------------------------------------------------------- loc_43FA6: ; CODE XREF: OS2:00043F9Aj mulu.w #$D,d0 divu.w #$105,d0 addq.b #1,d0 locret_43FB0: ; CODE XREF: OS2:00043FA4j rts ; --------------------------------------------------------------------------- GetPid_11A1_EngineRunTime: ; DATA XREF: Boot:PID_jump_tableo move.l (EngineRunTime).w,d0 divu.w #$A0,d0 ; '?' bvc.s locret_43FC0 move.w #$FFFF,d0 locret_43FC0: ; CODE XREF: OS2:00043FBAj rts ; --------------------------------------------------------------------------- GetPid_11A6: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF984C).w,d0 cmpi.w #$7FFF,d0 bhi.s loc_43FDA lsr.w #2,d0 cmpi.w #$FF,d0 bls.s locret_43FDC move.b #$FF,d0 bra.s locret_43FDC ; --------------------------------------------------------------------------- loc_43FDA: ; CODE XREF: OS2:00043FCAj clr.b d0 locret_43FDC: ; CODE XREF: OS2:00043FD2j ; OS2:00043FD8j rts ; --------------------------------------------------------------------------- GetPid_11BB_EGRClosedPositionVolts: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF8280).w,d0 lsr.w #8,d0 rts ; --------------------------------------------------------------------------- GetPid_11BD_EGRTestCount: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAA0B).w,d0 rts ; --------------------------------------------------------------------------- GetPid_11C1_EGRPositionError: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA25E).w,d0 ext.l d0 divs.w #$33,d0 ; '3' rts ; --------------------------------------------------------------------------- GetPid_11D7_OResponseLeantoRichSwitchesBankSensor: ; DATA XREF: Boot:PID_jump_tableo move.w (dword_FFFF8B00).w,d0 rts ; --------------------------------------------------------------------------- GetPid_11E4_CylinderModeMisfireIndex: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA9A4).w,d0 rts ; --------------------------------------------------------------------------- GetPid_11E5: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA9A8).w,d0 rts ; --------------------------------------------------------------------------- GetPid_11E6_RevolutionModeMisfireIndexBalanceTime: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA9A2).w,d0 rts ; --------------------------------------------------------------------------- GetPid_11E7: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF90EE).w,d0 rts ; --------------------------------------------------------------------------- GetPid_11E8: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF8D54).w,d0 rts ; --------------------------------------------------------------------------- GetPid_11E9: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFA9B9).w,d0 rts ; --------------------------------------------------------------------------- GetPid_11EA_MisfireCurrentCylinder: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.l a0,-(sp) lea -2(a6),a0 moveq #5,d0 jsr sub_42E12 tst.b d0 beq.s loc_44046 clr.w d0 move.b -2(a6),d0 move.b -$5640(d0.w),d0 bra.s loc_44048 ; --------------------------------------------------------------------------- loc_44046: ; CODE XREF: OS2:00044036j clr.b d0 loc_44048: ; CODE XREF: OS2:00044044j movea.l (sp)+,a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_11EB_MisfireCurrentCylinder: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.l a0,-(sp) lea -2(a6),a0 moveq #6,d0 jsr sub_42E12 tst.b d0 beq.s loc_44072 clr.w d0 move.b -2(a6),d0 move.b -$5640(d0.w),d0 bra.s loc_44074 ; --------------------------------------------------------------------------- loc_44072: ; CODE XREF: OS2:00044062j clr.b d0 loc_44074: ; CODE XREF: OS2:00044070j movea.l (sp)+,a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_11EC_MisfireCurrentCylinder: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.l a0,-(sp) lea -2(a6),a0 moveq #7,d0 jsr sub_42E12 tst.b d0 beq.s loc_4409E clr.w d0 move.b -2(a6),d0 move.b -$5640(d0.w),d0 bra.s loc_440A0 ; --------------------------------------------------------------------------- loc_4409E: ; CODE XREF: OS2:0004408Ej clr.b d0 loc_440A0: ; CODE XREF: OS2:0004409Cj movea.l (sp)+,a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_11ED_MisfireCurrentCylinder: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.l a0,-(sp) lea -2(a6),a0 moveq #8,d0 jsr sub_42E12 tst.b d0 beq.s loc_440CA clr.w d0 move.b -2(a6),d0 move.b -$5640(d0.w),d0 bra.s loc_440CC ; --------------------------------------------------------------------------- loc_440CA: ; CODE XREF: OS2:000440BAj clr.b d0 loc_440CC: ; CODE XREF: OS2:000440C8j movea.l (sp)+,a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_11F2: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAE62).w,d0 rts ; --------------------------------------------------------------------------- GetPid_11F3_TotalMisfiresperTestSpecial: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAE68).w,d0 rts ; --------------------------------------------------------------------------- GetPid_11F4: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAE5B).w,d0 rts ; --------------------------------------------------------------------------- GetPid_11F5: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF8BF4).w,d0 rts ; --------------------------------------------------------------------------- GetPid_11F6: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAE63).w,d0 rts ; --------------------------------------------------------------------------- GetPid_11F7: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF8BF5).w,d0 rts ; --------------------------------------------------------------------------- GetPid_11F8_MisfireHistoryCylinder: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.l a0,-(sp) lea -2(a6),a0 moveq #5,d0 jsr sub_42E12 tst.b d0 beq.s loc_4411A clr.w d0 move.b -2(a6),d0 move.w unk_FFFF8BFA(d0.w*2),d0 bra.s loc_4411C ; --------------------------------------------------------------------------- loc_4411A: ; CODE XREF: OS2:0004410Aj clr.w d0 loc_4411C: ; CODE XREF: OS2:00044118j movea.l (sp)+,a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_11F9_MisfireHistoryCylinder: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.l a0,-(sp) lea -2(a6),a0 moveq #6,d0 jsr sub_42E12 tst.b d0 beq.s loc_44146 clr.w d0 move.b -2(a6),d0 move.w unk_FFFF8BFA(d0.w*2),d0 bra.s loc_44148 ; --------------------------------------------------------------------------- loc_44146: ; CODE XREF: OS2:00044136j clr.w d0 loc_44148: ; CODE XREF: OS2:00044144j movea.l (sp)+,a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_11FA_MisfireHistoryCylinder: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.l a0,-(sp) lea -2(a6),a0 moveq #7,d0 jsr sub_42E12 tst.b d0 beq.s loc_44172 clr.w d0 move.b -2(a6),d0 move.w unk_FFFF8BFA(d0.w*2),d0 bra.s loc_44174 ; --------------------------------------------------------------------------- loc_44172: ; CODE XREF: OS2:00044162j clr.w d0 loc_44174: ; CODE XREF: OS2:00044170j movea.l (sp)+,a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_11FB_MisfireHistoryCylinder: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.l a0,-(sp) lea -2(a6),a0 moveq #8,d0 jsr sub_42E12 tst.b d0 beq.s loc_4419E clr.w d0 move.b -2(a6),d0 move.w unk_FFFF8BFA(d0.w*2),d0 bra.s loc_441A0 ; --------------------------------------------------------------------------- loc_4419E: ; CODE XREF: OS2:0004418Ej clr.w d0 loc_441A0: ; CODE XREF: OS2:0004419Cj movea.l (sp)+,a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1200_TotalMisfireCurrentCount: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAE65).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1201_MisfireHistoryCylinder: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.l a0,-(sp) lea -2(a6),a0 moveq #1,d0 jsr sub_42E12 tst.b d0 beq.s loc_441D0 clr.w d0 move.b -2(a6),d0 move.w unk_FFFF8BFA(d0.w*2),d0 bra.s loc_441D2 ; --------------------------------------------------------------------------- loc_441D0: ; CODE XREF: OS2:000441C0j clr.w d0 loc_441D2: ; CODE XREF: OS2:000441CEj movea.l (sp)+,a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1202_MisfireHistoryCylinder: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.l a0,-(sp) lea -2(a6),a0 moveq #2,d0 jsr sub_42E12 tst.b d0 beq.s loc_441FC clr.w d0 move.b -2(a6),d0 move.w unk_FFFF8BFA(d0.w*2),d0 bra.s loc_441FE ; --------------------------------------------------------------------------- loc_441FC: ; CODE XREF: OS2:000441ECj clr.w d0 loc_441FE: ; CODE XREF: OS2:000441FAj movea.l (sp)+,a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1203_MisfireHistoryCylinder: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.l a0,-(sp) lea -2(a6),a0 moveq #3,d0 jsr sub_42E12 tst.b d0 beq.s loc_44228 clr.w d0 move.b -2(a6),d0 move.w unk_FFFF8BFA(d0.w*2),d0 bra.s loc_4422A ; --------------------------------------------------------------------------- loc_44228: ; CODE XREF: OS2:00044218j clr.w d0 loc_4422A: ; CODE XREF: OS2:00044226j movea.l (sp)+,a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1204_MisfireHistoryCylinder: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.l a0,-(sp) lea -2(a6),a0 moveq #4,d0 jsr sub_42E12 tst.b d0 beq.s loc_44254 clr.w d0 move.b -2(a6),d0 move.w unk_FFFF8BFA(d0.w*2),d0 bra.s loc_44256 ; --------------------------------------------------------------------------- loc_44254: ; CODE XREF: OS2:00044244j clr.w d0 loc_44256: ; CODE XREF: OS2:00044252j movea.l (sp)+,a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1205_MisfireCurrentCylinder: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.l a0,-(sp) lea -2(a6),a0 moveq #2,d0 jsr sub_42E12 tst.b d0 beq.s loc_44280 clr.w d0 move.b -2(a6),d0 move.b -$5640(d0.w),d0 bra.s loc_44282 ; --------------------------------------------------------------------------- loc_44280: ; CODE XREF: OS2:00044270j clr.b d0 loc_44282: ; CODE XREF: OS2:0004427Ej movea.l (sp)+,a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1206_MisfireCurrentCylinder: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.l a0,-(sp) lea -2(a6),a0 moveq #1,d0 jsr sub_42E12 tst.b d0 beq.s loc_442AC clr.w d0 move.b -2(a6),d0 move.b -$5640(d0.w),d0 bra.s loc_442AE ; --------------------------------------------------------------------------- loc_442AC: ; CODE XREF: OS2:0004429Cj clr.b d0 loc_442AE: ; CODE XREF: OS2:000442AAj movea.l (sp)+,a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1207_MisfireCurrentCylinder: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.l a0,-(sp) lea -2(a6),a0 moveq #3,d0 jsr sub_42E12 tst.b d0 beq.s loc_442D8 clr.w d0 move.b -2(a6),d0 move.b -$5640(d0.w),d0 bra.s loc_442DA ; --------------------------------------------------------------------------- loc_442D8: ; CODE XREF: OS2:000442C8j clr.b d0 loc_442DA: ; CODE XREF: OS2:000442D6j movea.l (sp)+,a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_1208_MisfireCurrentCylinder: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.l a0,-(sp) lea -2(a6),a0 moveq #4,d0 jsr sub_42E12 tst.b d0 beq.s loc_44304 clr.w d0 move.b -2(a6),d0 move.b -$5640(d0.w),d0 bra.s loc_44306 ; --------------------------------------------------------------------------- loc_44304: ; CODE XREF: OS2:000442F4j clr.b d0 loc_44306: ; CODE XREF: OS2:00044302j movea.l (sp)+,a0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_120A_ShortTermFuelTrimBank: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAE82).w,d0 rts ; --------------------------------------------------------------------------- GetPid_120B_LongTermFuelTrimBank: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAE7E).w,d0 rts ; --------------------------------------------------------------------------- GetPid_120C_ShortTermFuelTrimBank: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAE83).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1212_RichLeantoLeanRichRatioSen: ; DATA XREF: Boot:PID_jump_tableo move.b (word_FFFF8B4E).w,d0 lsr.b #1,d0 rts ; --------------------------------------------------------------------------- GetPid_1216_OResponseRichtoLeanSwitchesBankSensor: ; DATA XREF: Boot:PID_jump_tableo move.w (dword_FFFF8B34+2).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1217_OResponseLeantoRichSwitchesBankSensor: ; DATA XREF: Boot:PID_jump_tableo move.w (dword_FFFF8B00+2).w,d0 rts ; --------------------------------------------------------------------------- GetPid_121A_OResponseRichtoLeanSwitchesBankSensor: ; DATA XREF: Boot:PID_jump_tableo move.w (dword_FFFF8B34).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1221: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA7FA).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1227_TotalMisfireFailuresSinceFirstFail: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF8C0E).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1228_TotalMisfirePassesSinceFirstFail: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF8C12).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1229: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA9BE).w,d0 rts ; --------------------------------------------------------------------------- GetPid_122A_CyclesofMisfireData: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFA9BA).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1232_Warmupcycleswithoutanemissionfault: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF8ACA).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1233_Warmupcycleswithoutanonemissionfault: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF8ACD).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1234_MileageSinceLastCodeClear: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFAACC).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1235_MileageSinceFirstFail: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF86C6).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1236_MileageSinceLastFail: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF86C8).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1237_FailCounter: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF86BF).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1238_PassCounter: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF86C1).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1239_NoResultsCounter: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF86C0).w,d0 rts ; --------------------------------------------------------------------------- GetPid_123A_LongTermFuelTrimBank: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAE7F).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1243: ; DATA XREF: Boot:PID_jump_tableo clr.l d0 move.w (dword_FFFF8AF8).w,d0 asl.l #5,d0 divu.w #$19,d0 bvc.s locret_4439E move.w #$FFFF,d0 locret_4439E: ; CODE XREF: OS2:00044398j rts ; --------------------------------------------------------------------------- GetPid_1244: ; DATA XREF: Boot:PID_jump_tableo clr.l d0 move.w (dword_FFFF8AF8+2).w,d0 asl.l #5,d0 divu.w #$19,d0 bvc.s locret_443B2 move.w #$FFFF,d0 locret_443B2: ; CODE XREF: OS2:000443ACj rts ; --------------------------------------------------------------------------- GetPid_1245: ; DATA XREF: Boot:PID_jump_tableo clr.l d0 move.w (dword_FFFF8B24).w,d0 asl.l #5,d0 divu.w #$19,d0 bvc.s locret_443C6 move.w #$FFFF,d0 locret_443C6: ; CODE XREF: OS2:000443C0j rts ; --------------------------------------------------------------------------- GetPid_1246_OResponseRichtoLeanAverageTimeBankSensor: ; DATA XREF: Boot:PID_jump_tableo clr.l d0 move.w (dword_FFFF8B24+2).w,d0 asl.l #5,d0 divu.w #$19,d0 bvc.s locret_443DA move.w #$FFFF,d0 locret_443DA: ; CODE XREF: OS2:000443D4j rts ; --------------------------------------------------------------------------- GetPid_1247: ; DATA XREF: Boot:PID_jump_tableo move.b (word_FFFF8B4E+1).w,d0 lsr.b #1,d0 rts ; --------------------------------------------------------------------------- GetPid_1250_MAFFrequencyHz: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFAC84).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1255: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFE0C8).w,d0 rts ; --------------------------------------------------------------------------- GetPid_125A_InjectorPulseWidthAverageBank: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFB0E0).w,d0 rts ; --------------------------------------------------------------------------- GetPid_125B_InjectorPulseWidthAverageBank: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFB0E2).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1296: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9E86).w,d0 ext.l d0 asl.l #2,d0 divs.w #5,d0 rts ; --------------------------------------------------------------------------- GetPid_12B0: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA590).w,d0 andi.w #$3FF,d0 lsr.w #2,d0 cmpi.w #$FF,d0 bls.s locret_4441E move.b #$FF,d0 locret_4441E: ; CODE XREF: OS2:00044418j rts ; --------------------------------------------------------------------------- GetPid_12B1: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA598).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1324: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAF78).w,d0 rts ; --------------------------------------------------------------------------- GetPid_12B6: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.b (byte_FFFFAF77).w,-2(a6) move.b (byte_FFFFAF78).w,-1(a6) move.w -2(a6),d0 cmpi.w #$3FF,d0 bls.s loc_4444A move.w #$3FF,d0 loc_4444A: ; CODE XREF: OS2:00044444j andi.l #$FFFF,d0 asl.l #8,d0 asl.l #3,d0 divu.w (ETC_SERIAL_DATA_KE_MAX_PPS_IND).l,d0 ; Value representing max software stop and would also be defined as 100% pedal position ; Raw_10_Bit_AD_Type bvs.s loc_44462 cmpi.w #$800,d0 bls.s loc_44466 loc_44462: ; CODE XREF: OS2:0004445Aj move.w #$800,d0 loc_44466: ; CODE XREF: OS2:00044460j mulu.w #$19,d0 lsr.w #8,d0 lsr.w #1,d0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_12B8: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.b (byte_FFFFAF77).w,-2(a6) move.b (byte_FFFFAF78).w,-1(a6) move.w -2(a6),d0 cmpi.w #$3FF,d0 bls.s loc_44490 move.w #$3FF,d0 loc_44490: ; CODE XREF: OS2:0004448Aj andi.l #$FFFF,d0 asl.l #8,d0 asl.l #3,d0 divu.w (ETC_SERIAL_DATA_KE_TPS_WOT_10BIT_EQUIVALENT).l,d0 ; Value representing max software stop and would also be defined as 100% throttle position ; Raw_10_Bit_AD_Type bvs.s loc_444A8 cmpi.w #$800,d0 bls.s loc_444AC loc_444A8: ; CODE XREF: OS2:000444A0j move.w #$800,d0 loc_444AC: ; CODE XREF: OS2:000444A6j mulu.w #$19,d0 lsr.w #8,d0 lsr.w #1,d0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_12BD: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.b (byte_FFFFAF77).w,-2(a6) move.b (byte_FFFFAF78).w,-1(a6) move.w -2(a6),d0 cmpi.w #$3FF,d0 bls.s loc_444D6 move.w #$3FF,d0 loc_444D6: ; CODE XREF: OS2:000444D0j lsr.w #2,d0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_12C5_FuelLevelPercentage: ; DATA XREF: Boot:PID_jump_tableo clr.l d0 move.w (word_FFFF9B50).w,d0 divu.w #$14,d0 cmpi.w #$FF,d0 bls.s locret_444F0 move.b #$FF,d0 locret_444F0: ; CODE XREF: OS2:000444EAj rts ; --------------------------------------------------------------------------- GetPid_12E2: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFB3F0).w,d0 add.w d0,d0 ext.l d0 divs.w #$33,d0 ; '3' addi.w #$28,d0 ; '(' rts ; --------------------------------------------------------------------------- GetPid_12E3: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9B4A).w,d0 addi.w #$1E00,d0 bvc.s loc_44512 bmi.s loc_44522 bra.s loc_44528 ; --------------------------------------------------------------------------- loc_44512: ; CODE XREF: OS2:0004450Cj tst.w d0 blt.s loc_44528 ext.l d0 divu.w #$64,d0 ; 'd' cmpi.w #$FF,d0 bls.s locret_4452A loc_44522: ; CODE XREF: OS2:0004450Ej move.b #$FF,d0 bra.s locret_4452A ; --------------------------------------------------------------------------- loc_44528: ; CODE XREF: OS2:00044510j ; OS2:00044514j clr.b d0 locret_4452A: ; CODE XREF: OS2:00044520j ; OS2:00044526j rts ; --------------------------------------------------------------------------- GetPid_12EA: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF8D18).w,d0 rts ; --------------------------------------------------------------------------- GetPid_12EB: ; DATA XREF: Boot:PID_jump_tableo move.l (dword_FFFFB10E).w,d0 divu.w #$640,d0 bvs.s loc_44542 cmpi.w #$FF,d0 bls.s locret_44546 loc_44542: ; CODE XREF: OS2:0004453Aj move.b #$FF,d0 locret_44546: ; CODE XREF: OS2:00044540j rts ; --------------------------------------------------------------------------- GetPid_12EE: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF8D16).w,d0 rts ; --------------------------------------------------------------------------- GetPid_12EF: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFA6BE).w,d0 rts ; --------------------------------------------------------------------------- GetPid_12F0: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFA6C0).w,d0 rts ; --------------------------------------------------------------------------- GetPid_12F3: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF8242).w,d0 mulu.w #$D,d0 divu.w #$105,d0 rts ; --------------------------------------------------------------------------- GetPid_12F5: ; DATA XREF: Boot:PID_jump_tableo clr.w d0 move.b (byte_FFFFAC47).w,d0 move.w word_FFFFAA68(d0.w*2),d0 rts ; --------------------------------------------------------------------------- GetPid_12F7: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFB13E).w,d0 lsr.w #1,d0 rts ; --------------------------------------------------------------------------- GetPid_12FF: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA9B6).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1300: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA0E2).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1301: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9844).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1310: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF9E93).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1311: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF9E92).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1312: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF9E94).w,d0 rts ; --------------------------------------------------------------------------- GetPid_132B: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFAC3A).w,d0 rts ; --------------------------------------------------------------------------- GetPid_132C: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFAC3C).w,d0 rts ; --------------------------------------------------------------------------- GetPid_130E: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAC47).w,d3 addq.b #1,d3 andi.w #$FF,d3 cmpi.w #1,d3 bne.s loc_445C8 clr.w d3 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d3 ; Number of cylinders for this engine application. ; SHORTCARD bra.s loc_445CA ; --------------------------------------------------------------------------- loc_445C8: ; CODE XREF: OS2:000445BCj subq.w #1,d3 loc_445CA: ; CODE XREF: OS2:000445C6j subq.b #1,d3 andi.w #$FF,d3 move.w word_FFFFAA68(d3.w*2),d0 rts ; --------------------------------------------------------------------------- GetPid_130F: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAC47).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1315: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF8298).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1316: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF8299).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1317: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF829A).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1318: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF829B).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1319: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF829C).w,d0 rts ; --------------------------------------------------------------------------- GetPid_131A: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF829D).w,d0 rts ; --------------------------------------------------------------------------- GetPid_131B: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF829E).w,d0 rts ; --------------------------------------------------------------------------- GetPid_131C: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF829F).w,d0 rts ; --------------------------------------------------------------------------- GetPid_131D: ; DATA XREF: Boot:PID_jump_tableo move.w (F_TANK_KE_FUEL_TANK_RATED_CAPACITY).l,d0 ; Maximum Fuel Tank volume as rated by GMUTS and/or the platform. ; Liters rts ; --------------------------------------------------------------------------- GetPid_131E: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9050).w,d0 rts ; --------------------------------------------------------------------------- GetPid_131F: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF900A).w,d0 rts ; --------------------------------------------------------------------------- GetPid_132A: ; DATA XREF: Boot:PID_jump_tableo tst.b (byte_FFFFA1A3).w beq.s loc_4462E move.l (dword_FFFF9B30).w,d0 bra.s loc_44632 ; --------------------------------------------------------------------------- loc_4462E: ; CODE XREF: OS2:00044626j move.l (dword_FFFF9B34).w,d0 loc_44632: ; CODE XREF: OS2:0004462Cj lsr.l #8,d0 lsr.l #8,d0 rts ; --------------------------------------------------------------------------- GetPid_1336: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF93FA).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1337: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9E28).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1338: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF9B2B).w,d0 rts ; --------------------------------------------------------------------------- GetPid_139C: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9FC2).w,d0 mulu.w #$15,d0 divu.w #$2B,d0 ; '+' cmpi.w #$FF,d0 bls.s locret_44660 move.b #$FF,d0 locret_44660: ; CODE XREF: OS2:0004465Aj rts ; --------------------------------------------------------------------------- GetPid_139D: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9FC0).w,d0 mulu.w #$37C,d0 divu.w #$37,d0 ; '7' bvc.s locret_44674 move.w #$FFFF,d0 locret_44674: ; CODE XREF: OS2:0004466Ej rts ; --------------------------------------------------------------------------- GetPid_1481: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9EEA).w,d0 mulu.w #$19,d0 lsr.l #7,d0 rts ; --------------------------------------------------------------------------- GetPid_1482: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9EEC).w,d0 mulu.w #$19,d0 lsr.l #7,d0 rts ; --------------------------------------------------------------------------- GetPid_1484: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9EEE).w,d0 mulu.w #$19,d0 lsr.l #7,d0 rts ; --------------------------------------------------------------------------- GetPid_1485: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9EF0).w,d0 mulu.w #$19,d0 lsr.l #7,d0 rts ; --------------------------------------------------------------------------- GetPid_1617: ; DATA XREF: Boot:PID_jump_tableo move.w (DesiredIdleAirflow_IncludingFeedback_Clamped).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1627: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF8CF4).w,d0 muls.w #5,d0 bpl.s loc_446B8 addq.l #7,d0 loc_446B8: ; CODE XREF: OS2:000446B4j asr.l #3,d0 rts ; --------------------------------------------------------------------------- GetPid_1628: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF8CF2).w,d0 muls.w #5,d0 bpl.s loc_446C8 addq.l #7,d0 loc_446C8: ; CODE XREF: OS2:000446C4j asr.l #3,d0 rts ; --------------------------------------------------------------------------- GetPid_162B: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9DAC).w,d0 mulu.w #$C,d0 divu.w #$3D7,d0 cmpi.w #$FF,d0 bls.s locret_446E2 move.b #$FF,d0 locret_446E2: ; CODE XREF: OS2:000446DCj rts ; --------------------------------------------------------------------------- GetPid_163F: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9DAE).w,d0 mulu.w #$C,d0 divu.w #$3D7,d0 cmpi.w #$FF,d0 bls.s locret_446FA move.b #$FF,d0 locret_446FA: ; CODE XREF: OS2:000446F4j rts ; --------------------------------------------------------------------------- GetPid_1900: ; DATA XREF: Boot:PID_jump_tableo move.l d1,-(sp) move.w #$15C,d0 jsr (sub_1216).l tst.b d0 beq.s loc_44712 bset #7,d1 bra.s loc_44716 ; --------------------------------------------------------------------------- loc_44712: ; CODE XREF: OS2:0004470Aj bclr #7,d1 loc_44716: ; CODE XREF: OS2:00044710j bclr #6,d1 bclr #5,d1 bclr #4,d1 bclr #3,d1 bclr #2,d1 tst.b (byte_FFFFA3B7).w bne.s loc_44736 bset #1,d1 bra.s loc_4473A ; --------------------------------------------------------------------------- loc_44736: ; CODE XREF: OS2:0004472Ej bclr #1,d1 loc_4473A: ; CODE XREF: OS2:00044734j cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_44750 tst.b (byte_FFFFA3AC).w beq.s loc_44756 loc_4474A: ; CODE XREF: OS2:00044754j bset #0,d1 bra.s loc_4475A ; --------------------------------------------------------------------------- loc_44750: ; CODE XREF: OS2:00044742j tst.b (byte_FFFFAF3B).w bne.s loc_4474A loc_44756: ; CODE XREF: OS2:00044748j bclr #0,d1 loc_4475A: ; CODE XREF: OS2:0004474Ej move.l d1,d0 move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- GetPid_1901: ; DATA XREF: Boot:PID_jump_tableo btst #5,(byte_FFFFA900).w beq.s loc_4476E bset #7,d0 bra.s loc_44772 ; --------------------------------------------------------------------------- loc_4476E: ; CODE XREF: OS2:00044766j bclr #7,d0 loc_44772: ; CODE XREF: OS2:0004476Cj bclr #6,d0 bclr #5,d0 bclr #4,d0 btst #5,(byte_FFFFA8FF).w beq.s loc_4478C bset #3,d0 bra.s loc_44790 ; --------------------------------------------------------------------------- loc_4478C: ; CODE XREF: OS2:00044784j bclr #3,d0 loc_44790: ; CODE XREF: OS2:0004478Aj tst.b (byte_FFFFA40E).w beq.s loc_4479A moveq #1,d3 bra.s loc_4479C ; --------------------------------------------------------------------------- loc_4479A: ; CODE XREF: OS2:00044794j clr.b d3 loc_4479C: ; CODE XREF: OS2:00044798j tst.b d3 beq.s loc_447A6 bset #2,d0 bra.s loc_447AA ; --------------------------------------------------------------------------- loc_447A6: ; CODE XREF: OS2:0004479Ej bclr #2,d0 loc_447AA: ; CODE XREF: OS2:000447A4j bclr #1,d0 tst.b (byte_FFFF93EA).w beq.s loc_447BA bset #0,d0 bra.s locret_447BE ; --------------------------------------------------------------------------- loc_447BA: ; CODE XREF: OS2:000447B2j bclr #0,d0 locret_447BE: ; CODE XREF: OS2:000447B8j rts ; --------------------------------------------------------------------------- GetPid_1921: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFA3BB).w,d3 cmpi.b #7,d3 bne.s loc_447D0 bset #7,d0 bra.s loc_447D4 ; --------------------------------------------------------------------------- loc_447D0: ; CODE XREF: OS2:000447C8j bclr #7,d0 loc_447D4: ; CODE XREF: OS2:000447CEj cmpi.b #6,d3 bne.s loc_447E0 bset #6,d0 bra.s loc_447E4 ; --------------------------------------------------------------------------- loc_447E0: ; CODE XREF: OS2:000447D8j bclr #6,d0 loc_447E4: ; CODE XREF: OS2:000447DEj cmpi.b #4,d3 bne.s loc_447F0 bset #5,d0 bra.s loc_447F4 ; --------------------------------------------------------------------------- loc_447F0: ; CODE XREF: OS2:000447E8j bclr #5,d0 loc_447F4: ; CODE XREF: OS2:000447EEj cmpi.b #5,d3 bne.s loc_44800 bset #4,d0 bra.s loc_44804 ; --------------------------------------------------------------------------- loc_44800: ; CODE XREF: OS2:000447F8j bclr #4,d0 loc_44804: ; CODE XREF: OS2:000447FEj cmpi.b #3,d3 bne.s loc_44810 bset #3,d0 bra.s loc_44814 ; --------------------------------------------------------------------------- loc_44810: ; CODE XREF: OS2:00044808j bclr #3,d0 loc_44814: ; CODE XREF: OS2:0004480Ej cmpi.b #2,d3 bne.s loc_44820 bset #2,d0 bra.s loc_44824 ; --------------------------------------------------------------------------- loc_44820: ; CODE XREF: OS2:00044818j bclr #2,d0 loc_44824: ; CODE XREF: OS2:0004481Ej cmpi.b #1,d3 bne.s loc_44830 bset #1,d0 bra.s loc_44834 ; --------------------------------------------------------------------------- loc_44830: ; CODE XREF: OS2:00044828j bclr #1,d0 loc_44834: ; CODE XREF: OS2:0004482Ej tst.b d3 bne.s loc_4483E bset #0,d0 bra.s locret_44842 ; --------------------------------------------------------------------------- loc_4483E: ; CODE XREF: OS2:00044836j bclr #0,d0 locret_44842: ; CODE XREF: OS2:0004483Cj rts ; --------------------------------------------------------------------------- GetPid_1922: ; DATA XREF: Boot:PID_jump_tableo bclr #7,d0 btst #5,(byte_FFFF95E2).w beq.s loc_44856 bset #6,d0 bra.s loc_4485A ; --------------------------------------------------------------------------- loc_44856: ; CODE XREF: OS2:0004484Ej bclr #6,d0 loc_4485A: ; CODE XREF: OS2:00044854j bclr #5,d0 btst #7,(byte_FFFF95E5).w beq.s loc_4486C bset #4,d0 bra.s loc_44870 ; --------------------------------------------------------------------------- loc_4486C: ; CODE XREF: OS2:00044864j bclr #4,d0 loc_44870: ; CODE XREF: OS2:0004486Aj tst.b (TCM_OPTIONS_KE_TRANS_HAS_TCC_RELEASE_SWITCH).l ; Trans has TCC Release Switch. Used with 4T65E transmissions. ; BOOLEAN beq.s loc_44884 tst.b (byte_FFFFA676).w beq.s loc_44884 bset #3,d0 bra.s loc_44888 ; --------------------------------------------------------------------------- loc_44884: ; CODE XREF: OS2:00044876j ; OS2:0004487Cj bclr #3,d0 loc_44888: ; CODE XREF: OS2:00044882j tst.b (byte_FFFFA1F6).w beq.s loc_44894 bset #2,d0 bra.s loc_44898 ; --------------------------------------------------------------------------- loc_44894: ; CODE XREF: OS2:0004488Cj bclr #2,d0 loc_44898: ; CODE XREF: OS2:00044892j btst #6,(byte_FFFF95E2).w beq.s loc_448A6 bset #1,d0 bra.s loc_448AA ; --------------------------------------------------------------------------- loc_448A6: ; CODE XREF: OS2:0004489Ej bclr #1,d0 loc_448AA: ; CODE XREF: OS2:000448A4j tst.b (byte_FFFFAF3A).w beq.s loc_448B6 bset #0,d0 bra.s locret_448BA ; --------------------------------------------------------------------------- loc_448B6: ; CODE XREF: OS2:000448AEj bclr #0,d0 locret_448BA: ; CODE XREF: OS2:000448B4j rts ; --------------------------------------------------------------------------- GetPid_1923: ; DATA XREF: Boot:PID_jump_tableo btst #5,(byte_FFFFA8FF).w beq.s loc_448CA bset #7,d0 bra.s loc_448CE ; --------------------------------------------------------------------------- loc_448CA: ; CODE XREF: OS2:000448C2j bclr #7,d0 loc_448CE: ; CODE XREF: OS2:000448C8j btst #3,(byte_FFFF9BBA).w beq.s loc_448DC bset #6,d0 bra.s loc_448E0 ; --------------------------------------------------------------------------- loc_448DC: ; CODE XREF: OS2:000448D4j bclr #6,d0 loc_448E0: ; CODE XREF: OS2:000448DAj btst #4,(byte_FFFF9BBA).w beq.s loc_448EE bset #5,d0 bra.s loc_448F2 ; --------------------------------------------------------------------------- loc_448EE: ; CODE XREF: OS2:000448E6j bclr #5,d0 loc_448F2: ; CODE XREF: OS2:000448ECj btst #3,(byte_FFFFA8FE).w beq.s loc_44900 bset #4,d0 bra.s loc_44904 ; --------------------------------------------------------------------------- loc_44900: ; CODE XREF: OS2:000448F8j bclr #4,d0 loc_44904: ; CODE XREF: OS2:000448FEj btst #6,(byte_FFFF9BBA).w beq.s loc_44912 bset #3,d0 bra.s loc_44916 ; --------------------------------------------------------------------------- loc_44912: ; CODE XREF: OS2:0004490Aj bclr #3,d0 loc_44916: ; CODE XREF: OS2:00044910j btst #5,(byte_FFFF9BBA).w beq.s loc_44924 bset #2,d0 bra.s loc_44928 ; --------------------------------------------------------------------------- loc_44924: ; CODE XREF: OS2:0004491Cj bclr #2,d0 loc_44928: ; CODE XREF: OS2:00044922j btst #4,(byte_FFFFA8FE).w beq.s loc_44936 bset #1,d0 bra.s loc_4493A ; --------------------------------------------------------------------------- loc_44936: ; CODE XREF: OS2:0004492Ej bclr #1,d0 loc_4493A: ; CODE XREF: OS2:00044934j btst #7,(byte_FFFF9BBA).w beq.s loc_44948 bset #0,d0 bra.s locret_4494C ; --------------------------------------------------------------------------- loc_44948: ; CODE XREF: OS2:00044940j bclr #0,d0 locret_4494C: ; CODE XREF: OS2:00044946j rts ; --------------------------------------------------------------------------- GetPid_1924: ; DATA XREF: Boot:PID_jump_tableo btst #7,(byte_FFFFAF98).w beq.s loc_4495C bset #7,d0 bra.s loc_44960 ; --------------------------------------------------------------------------- loc_4495C: ; CODE XREF: OS2:00044954j bclr #7,d0 loc_44960: ; CODE XREF: OS2:0004495Aj bclr #6,d0 btst #0,(byte_FFFFA8FE).w beq.s loc_44972 bset #5,d0 bra.s loc_44976 ; --------------------------------------------------------------------------- loc_44972: ; CODE XREF: OS2:0004496Aj bclr #5,d0 loc_44976: ; CODE XREF: OS2:00044970j btst #7,(byte_FFFF9BBA).w bne.s loc_44986 btst #6,(byte_FFFF9BBA).w beq.s loc_4498C loc_44986: ; CODE XREF: OS2:0004497Cj bset #4,d0 bra.s loc_44990 ; --------------------------------------------------------------------------- loc_4498C: ; CODE XREF: OS2:00044984j bclr #4,d0 loc_44990: ; CODE XREF: OS2:0004498Aj bclr #3,d0 bclr #2,d0 bclr #1,d0 bclr #0,d0 rts ; --------------------------------------------------------------------------- GetPid_1925: ; DATA XREF: Boot:PID_jump_tableo bclr #7,d0 bclr #6,d0 bclr #5,d0 bclr #4,d0 move.b (byte_FFFFAF0A).w,d3 cmpi.b #2,d3 bne.s loc_449C2 bset #3,d0 bra.s loc_449C6 ; --------------------------------------------------------------------------- loc_449C2: ; CODE XREF: OS2:000449BAj bclr #3,d0 loc_449C6: ; CODE XREF: OS2:000449C0j cmpi.b #1,d3 bne.s loc_449D2 bset #2,d0 bra.s loc_449D6 ; --------------------------------------------------------------------------- loc_449D2: ; CODE XREF: OS2:000449CAj bclr #2,d0 loc_449D6: ; CODE XREF: OS2:000449D0j btst #7,(byte_FFFF95E4).w beq.s loc_449E4 bset #1,d0 bra.s loc_449E8 ; --------------------------------------------------------------------------- loc_449E4: ; CODE XREF: OS2:000449DCj bclr #1,d0 loc_449E8: ; CODE XREF: OS2:000449E2j btst #2,(byte_FFFFA8FE).w beq.s loc_449F6 bset #0,d0 bra.s locret_449FA ; --------------------------------------------------------------------------- loc_449F6: ; CODE XREF: OS2:000449EEj bclr #0,d0 locret_449FA: ; CODE XREF: OS2:000449F4j rts ; --------------------------------------------------------------------------- GetPid_1927: ; DATA XREF: Boot:PID_jump_tableo tst.b (byte_FFFFAC64).w beq.s loc_44A08 bset #7,d0 bra.s loc_44A0C ; --------------------------------------------------------------------------- loc_44A08: ; CODE XREF: OS2:00044A00j bclr #7,d0 loc_44A0C: ; CODE XREF: OS2:00044A06j tst.b (byte_FFFFAC69).w beq.s loc_44A18 bset #6,d0 bra.s loc_44A1C ; --------------------------------------------------------------------------- loc_44A18: ; CODE XREF: OS2:00044A10j bclr #6,d0 loc_44A1C: ; CODE XREF: OS2:00044A16j tst.b (byte_FFFFAC5C).w beq.s loc_44A28 bset #5,d0 bra.s loc_44A2C ; --------------------------------------------------------------------------- loc_44A28: ; CODE XREF: OS2:00044A20j bclr #5,d0 loc_44A2C: ; CODE XREF: OS2:00044A26j tst.b (byte_FFFFAC5B).w beq.s loc_44A38 bset #4,d0 bra.s loc_44A3C ; --------------------------------------------------------------------------- loc_44A38: ; CODE XREF: OS2:00044A30j bclr #4,d0 loc_44A3C: ; CODE XREF: OS2:00044A36j bclr #3,d0 btst #1,(byte_FFFF8A6E).w beq.s loc_44A4E bset #2,d0 bra.s loc_44A52 ; --------------------------------------------------------------------------- loc_44A4E: ; CODE XREF: OS2:00044A46j bclr #2,d0 loc_44A52: ; CODE XREF: OS2:00044A4Cj bclr #1,d0 btst #5,(byte_FFFF95E5).w beq.s loc_44A64 bset #0,d0 bra.s locret_44A68 ; --------------------------------------------------------------------------- loc_44A64: ; CODE XREF: OS2:00044A5Cj bclr #0,d0 locret_44A68: ; CODE XREF: OS2:00044A62j rts ; --------------------------------------------------------------------------- GetPid_1928: ; DATA XREF: Boot:PID_jump_tableo cmpi.b #2,(byte_FFFFADD0).w bne.s loc_44A78 bset #7,d0 bra.s loc_44A7C ; --------------------------------------------------------------------------- loc_44A78: ; CODE XREF: OS2:00044A70j bclr #7,d0 loc_44A7C: ; CODE XREF: OS2:00044A76j bclr #6,d0 tst.b (byte_FFFFAC59).w beq.s loc_44A8C bset #5,d0 bra.s loc_44A90 ; --------------------------------------------------------------------------- loc_44A8C: ; CODE XREF: OS2:00044A84j bclr #5,d0 loc_44A90: ; CODE XREF: OS2:00044A8Aj tst.b (byte_FFFFAC60).w beq.s loc_44A9C bset #4,d0 bra.s loc_44AA0 ; --------------------------------------------------------------------------- loc_44A9C: ; CODE XREF: OS2:00044A94j bclr #4,d0 loc_44AA0: ; CODE XREF: OS2:00044A9Aj bclr #3,d0 bclr #2,d0 tst.b (byte_FFFFAC58).w beq.s loc_44AB4 bset #1,d0 bra.s loc_44AB8 ; --------------------------------------------------------------------------- loc_44AB4: ; CODE XREF: OS2:00044AACj bclr #1,d0 loc_44AB8: ; CODE XREF: OS2:00044AB2j tst.b (byte_FFFFAC62).w beq.s loc_44AC4 bset #0,d0 bra.s locret_44AC8 ; --------------------------------------------------------------------------- loc_44AC4: ; CODE XREF: OS2:00044ABCj bclr #0,d0 locret_44AC8: ; CODE XREF: OS2:00044AC2j rts ; --------------------------------------------------------------------------- GetPid_1929: ; DATA XREF: Boot:PID_jump_tableo move.l (dword_FFFFAD84).w,d3 btst #7,d3 beq.s loc_44ADA bset #7,d0 bra.s loc_44ADE ; --------------------------------------------------------------------------- loc_44ADA: ; CODE XREF: OS2:00044AD2j bclr #7,d0 loc_44ADE: ; CODE XREF: OS2:00044AD8j bclr #6,d0 btst #$C,d3 beq.s loc_44AEE bset #5,d0 bra.s loc_44AF2 ; --------------------------------------------------------------------------- loc_44AEE: ; CODE XREF: OS2:00044AE6j bclr #5,d0 loc_44AF2: ; CODE XREF: OS2:00044AECj btst #9,d3 beq.s loc_44AFE bset #4,d0 bra.s loc_44B02 ; --------------------------------------------------------------------------- loc_44AFE: ; CODE XREF: OS2:00044AF6j bclr #4,d0 loc_44B02: ; CODE XREF: OS2:00044AFCj btst #5,d3 beq.s loc_44B0E bset #3,d0 bra.s loc_44B12 ; --------------------------------------------------------------------------- loc_44B0E: ; CODE XREF: OS2:00044B06j bclr #3,d0 loc_44B12: ; CODE XREF: OS2:00044B0Cj btst #3,d3 beq.s loc_44B1E bset #2,d0 bra.s loc_44B22 ; --------------------------------------------------------------------------- loc_44B1E: ; CODE XREF: OS2:00044B16j bclr #2,d0 loc_44B22: ; CODE XREF: OS2:00044B1Cj btst #4,d3 beq.s loc_44B2E bset #1,d0 bra.s loc_44B32 ; --------------------------------------------------------------------------- loc_44B2E: ; CODE XREF: OS2:00044B26j bclr #1,d0 loc_44B32: ; CODE XREF: OS2:00044B2Cj btst #$D,d3 beq.s loc_44B3E bset #0,d0 bra.s locret_44B42 ; --------------------------------------------------------------------------- loc_44B3E: ; CODE XREF: OS2:00044B36j bclr #0,d0 locret_44B42: ; CODE XREF: OS2:00044B3Cj rts ; --------------------------------------------------------------------------- GetPid_192A: ; DATA XREF: Boot:PID_jump_tableo btst #7,(byte_FFFFA400).w beq.s loc_44B52 bset #7,d0 bra.s loc_44B56 ; --------------------------------------------------------------------------- loc_44B52: ; CODE XREF: OS2:00044B4Aj bclr #7,d0 loc_44B56: ; CODE XREF: OS2:00044B50j move.l (dword_FFFFAD84).w,d3 btst #1,d3 beq.s loc_44B66 bset #6,d0 bra.s loc_44B6A ; --------------------------------------------------------------------------- loc_44B66: ; CODE XREF: OS2:00044B5Ej bclr #6,d0 loc_44B6A: ; CODE XREF: OS2:00044B64j tst.b (byte_FFFFA7A0).w bne.s loc_44B76 bset #5,d0 bra.s loc_44B7A ; --------------------------------------------------------------------------- loc_44B76: ; CODE XREF: OS2:00044B6Ej bclr #5,d0 loc_44B7A: ; CODE XREF: OS2:00044B74j tst.b (byte_FFFFA7A1).w bne.s loc_44B86 bset #4,d0 bra.s loc_44B8A ; --------------------------------------------------------------------------- loc_44B86: ; CODE XREF: OS2:00044B7Ej bclr #4,d0 loc_44B8A: ; CODE XREF: OS2:00044B84j bclr #3,d0 btst #6,d3 beq.s loc_44B9A bset #2,d0 bra.s loc_44B9E ; --------------------------------------------------------------------------- loc_44B9A: ; CODE XREF: OS2:00044B92j bclr #2,d0 loc_44B9E: ; CODE XREF: OS2:00044B98j btst #8,d3 beq.s loc_44BAA bset #1,d0 bra.s loc_44BAE ; --------------------------------------------------------------------------- loc_44BAA: ; CODE XREF: OS2:00044BA2j bclr #1,d0 loc_44BAE: ; CODE XREF: OS2:00044BA8j btst #$B,d3 beq.s loc_44BBA bset #0,d0 bra.s locret_44BBE ; --------------------------------------------------------------------------- loc_44BBA: ; CODE XREF: OS2:00044BB2j bclr #0,d0 locret_44BBE: ; CODE XREF: OS2:00044BB8j rts ; --------------------------------------------------------------------------- GetPid_192B: ; DATA XREF: Boot:PID_jump_tableo link a6,#-4 andi.w #1,-4(a6) move.l (dword_FFFFAD84).w,d0 andi.l #$1FFFF,d0 andi.l #$FFFE0000,-4(a6) or.l d0,-4(a6) move.l -4(a6),d0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_192D: ; DATA XREF: Boot:PID_jump_tableo move.l d1,-(sp) bclr #7,d1 bclr #6,d1 bclr #5,d1 btst #6,(byte_FFFFA400).w beq.s loc_44C04 bset #4,d1 bra.s loc_44C08 ; --------------------------------------------------------------------------- loc_44C04: ; CODE XREF: OS2:00044BFCj bclr #4,d1 loc_44C08: ; CODE XREF: OS2:00044C02j move.w (word_FFFFBFD2).w,d3 bls.s loc_44C14 bset #3,d1 bra.s loc_44C18 ; --------------------------------------------------------------------------- loc_44C14: ; CODE XREF: OS2:00044C0Cj bclr #3,d1 loc_44C18: ; CODE XREF: OS2:00044C12j moveq #$26,d0 ; '&' jsr (sub_1216).l tst.b d0 beq.s loc_44C2A bset #2,d1 bra.s loc_44C2E ; --------------------------------------------------------------------------- loc_44C2A: ; CODE XREF: OS2:00044C22j bclr #2,d1 loc_44C2E: ; CODE XREF: OS2:00044C28j moveq #$24,d0 ; '$' jsr (sub_1216).l tst.b d0 beq.s loc_44C40 bset #1,d1 bra.s loc_44C44 ; --------------------------------------------------------------------------- loc_44C40: ; CODE XREF: OS2:00044C38j bclr #1,d1 loc_44C44: ; CODE XREF: OS2:00044C3Ej tst.b (byte_FFFFA40E).w beq.s loc_44C4E moveq #1,d3 bra.s loc_44C50 ; --------------------------------------------------------------------------- loc_44C4E: ; CODE XREF: OS2:00044C48j clr.b d3 loc_44C50: ; CODE XREF: OS2:00044C4Cj tst.b d3 beq.s loc_44C5A bset #0,d1 bra.s loc_44C5E ; --------------------------------------------------------------------------- loc_44C5A: ; CODE XREF: OS2:00044C52j bclr #0,d1 loc_44C5E: ; CODE XREF: OS2:00044C58j move.l d1,d0 move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- GetPid_1940_TransmissionOilTemperature: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF959A).w,d0 muls.w #3,d0 bpl.s loc_44C70 addq.w #3,d0 loc_44C70: ; CODE XREF: OS2:00044C6Cj asr.w #2,d0 addi.w #$28,d0 ; '(' tst.w d0 blt.s loc_44C86 cmpi.w #$FF,d0 bls.s locret_44C88 move.b #$FF,d0 bra.s locret_44C88 ; --------------------------------------------------------------------------- loc_44C86: ; CODE XREF: OS2:00044C78j clr.b d0 locret_44C88: ; CODE XREF: OS2:00044C7Ej ; OS2:00044C84j rts ; --------------------------------------------------------------------------- GetPid_1941_TransmissionInputShaftSpeed: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF95B0).w,d0 add.w d0,d0 rts ; --------------------------------------------------------------------------- GetPid_1942_TransmissionOutputShaftSpeed: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF95A2).w,d0 add.w d0,d0 rts ; --------------------------------------------------------------------------- GetPid_195D: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF95D8).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1970_TCCPWMDutyCycle: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA40C).w,d0 lsr.w #7,d0 rts ; --------------------------------------------------------------------------- GetPid_1971: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9600).w,d0 lsr.w #7,d0 rts ; --------------------------------------------------------------------------- GetPid_1973: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF95F1).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1972_PCPressureControlSolenoidDutyCycle: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFB4BA).w,d0 cmpi.w #$7FFF,d0 bhi.s loc_44CC4 lsr.w #7,d0 bra.s locret_44CC6 ; --------------------------------------------------------------------------- loc_44CC4: ; CODE XREF: OS2:00044CBEj clr.b d0 locret_44CC6: ; CODE XREF: OS2:00044CC2j rts ; --------------------------------------------------------------------------- GetPid_1975: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAFD5).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1976: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAD46).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1991_TCCSlipSpeed: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF95BC).w,d0 add.w d0,d0 bvc.s locret_44CE8 bmi.s loc_44CE4 move.w #$7FFF,d0 bra.s locret_44CE8 ; --------------------------------------------------------------------------- loc_44CE4: ; CODE XREF: OS2:00044CDCj move.w #$8000,d0 locret_44CE8: ; CODE XREF: OS2:00044CDAj ; OS2:00044CE2j rts ; --------------------------------------------------------------------------- GetPid_1992_TimeofLatestShift: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFB412).w,d0 lsr.w #2,d0 cmpi.w #$FF,d0 bls.s locret_44CFA move.b #$FF,d0 locret_44CFA: ; CODE XREF: OS2:00044CF4j rts ; --------------------------------------------------------------------------- GetPid_1993_TimeofLatestShift: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFAEFE).w,d0 lsr.w #2,d0 cmpi.w #$FF,d0 bls.s locret_44D0C move.b #$FF,d0 locret_44D0C: ; CODE XREF: OS2:00044D06j rts ; --------------------------------------------------------------------------- GetPid_1994_TimeofLatestShift: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFAF00).w,d0 lsr.w #2,d0 cmpi.w #$FF,d0 bls.s locret_44D1E move.b #$FF,d0 locret_44D1E: ; CODE XREF: OS2:00044D18j rts ; --------------------------------------------------------------------------- GetPid_1995_TimeofLatestShift: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFAF02).w,d0 lsr.w #2,d0 cmpi.w #$FF,d0 bls.s locret_44D30 move.b #$FF,d0 locret_44D30: ; CODE XREF: OS2:00044D2Aj rts ; --------------------------------------------------------------------------- GetPid_1996_ShiftTimeErrorforLatestShift: ; DATA XREF: Boot:PID_jump_tableo clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w word_FFFFAF02(d3.w*2),d0 bpl.s loc_44D42 addq.w #3,d0 loc_44D42: ; CODE XREF: OS2:00044D3Ej asr.w #2,d0 cmpi.w #$FF80,d0 blt.s loc_44D54 cmpi.w #$7F,d0 ; '' ble.s locret_44D56 moveq #$7F,d0 ; '' bra.s locret_44D56 ; --------------------------------------------------------------------------- loc_44D54: ; CODE XREF: OS2:00044D48j moveq #$FFFFFF80,d0 locret_44D56: ; CODE XREF: OS2:00044D4Ej ; OS2:00044D52j rts ; --------------------------------------------------------------------------- GetPid_1997_ShiftTimeErrorforShift: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFAF04).w,d0 bpl.s loc_44D60 addq.w #3,d0 loc_44D60: ; CODE XREF: OS2:00044D5Cj asr.w #2,d0 cmpi.w #$FF80,d0 blt.s loc_44D72 cmpi.w #$7F,d0 ; '' ble.s locret_44D74 moveq #$7F,d0 ; '' bra.s locret_44D74 ; --------------------------------------------------------------------------- loc_44D72: ; CODE XREF: OS2:00044D66j moveq #$FFFFFF80,d0 locret_44D74: ; CODE XREF: OS2:00044D6Cj ; OS2:00044D70j rts ; --------------------------------------------------------------------------- GetPid_1998_ShiftTimeErrorforShift: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFAF06).w,d0 bpl.s loc_44D7E addq.w #3,d0 loc_44D7E: ; CODE XREF: OS2:00044D7Aj asr.w #2,d0 cmpi.w #$FF80,d0 blt.s loc_44D90 cmpi.w #$7F,d0 ; '' ble.s locret_44D92 moveq #$7F,d0 ; '' bra.s locret_44D92 ; --------------------------------------------------------------------------- loc_44D90: ; CODE XREF: OS2:00044D84j moveq #$FFFFFF80,d0 locret_44D92: ; CODE XREF: OS2:00044D8Aj ; OS2:00044D8Ej rts ; --------------------------------------------------------------------------- GetPid_1999_ShiftTimeErrorforShift: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFAF08).w,d0 bpl.s loc_44D9C addq.w #3,d0 loc_44D9C: ; CODE XREF: OS2:00044D98j asr.w #2,d0 cmpi.w #$FF80,d0 blt.s loc_44DAE cmpi.w #$7F,d0 ; '' ble.s locret_44DB0 moveq #$7F,d0 ; '' bra.s locret_44DB0 ; --------------------------------------------------------------------------- loc_44DAE: ; CODE XREF: OS2:00044DA2j moveq #$FFFFFF80,d0 locret_44DB0: ; CODE XREF: OS2:00044DA8j ; OS2:00044DACj rts ; --------------------------------------------------------------------------- GetPid_199A: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF95DC).w,d0 addq.b #1,d0 rts ; --------------------------------------------------------------------------- GetPid_199B: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAEFB).w,d0 rts ; --------------------------------------------------------------------------- GetPid_199C_CurrentTAPTransmissionAdaptivePressureCell: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFACFE).w,d0 add.b d0,d0 bvc.s locret_44DD0 bmi.s loc_44DCE moveq #$7F,d0 ; '' bra.s locret_44DD0 ; --------------------------------------------------------------------------- loc_44DCE: ; CODE XREF: OS2:00044DC8j moveq #$FFFFFF80,d0 locret_44DD0: ; CODE XREF: OS2:00044DC6j ; OS2:00044DCCj rts ; --------------------------------------------------------------------------- GetPid_199D_TransmissionPressure: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFB452).w,d0 lsr.w #6,d0 rts ; --------------------------------------------------------------------------- GetPid_199E_PressureControlActualCurrent: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFF2F2).w,d0 lsr.w #2,d0 asl.w #8,d0 lsr.w #8,d0 andi.w #$FF,d0 mulu.w #$3F,d0 ; '?' divu.w #$FB,d0 ; '?' rts ; --------------------------------------------------------------------------- GetPid_199F_PressureControlReferenceCircuit: ; DATA XREF: Boot:PID_jump_tableo clr.w d0 move.b (byte_FFFFADD1).w,d0 mulu.w #$3F,d0 ; '?' divu.w #$FB,d0 ; '?' rts ; --------------------------------------------------------------------------- GetPid_19A0_ShiftDelay: ; DATA XREF: Boot:PID_jump_tableo clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w word_FFFFB408(d3.w*2),d0 lsr.w #2,d0 cmpi.w #$FF,d0 bls.s locret_44E1A move.b #$FF,d0 locret_44E1A: ; CODE XREF: OS2:00044E14j rts ; --------------------------------------------------------------------------- GetPid_19A1: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF95D4).w,d0 lsr.w #6,d0 cmpi.w #$FF,d0 bls.s locret_44E2C move.b #$FF,d0 locret_44E2C: ; CODE XREF: OS2:00044E26j rts ; --------------------------------------------------------------------------- GetPid_19AD_TransmissionTempSensor: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFF2C2).w,d0 lsr.w #2,d0 asl.w #8,d0 lsr.w #8,d0 rts ; --------------------------------------------------------------------------- GetPid_19D4: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF95AC).w,d0 add.w d0,d0 rts ; --------------------------------------------------------------------------- GetPid_19DE: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF95C0).w,d0 lsr.w #3,d0 rts ; --------------------------------------------------------------------------- GetPid_19FF: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA406).w,d0 lsr.w #2,d0 cmpi.w #$FF,d0 bls.s locret_44E5A move.b #$FF,d0 locret_44E5A: ; CODE XREF: OS2:00044E54j rts ; --------------------------------------------------------------------------- GetPid_1A02: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF95D6).w,d0 lsr.w #4,d0 rts ; --------------------------------------------------------------------------- GetPid_1A13: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFF95DD).w,d0 rts ; --------------------------------------------------------------------------- GetPid_1A88: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFAD44).w,d0 rts ; --------------------------------------------------------------------------- GetPid_FC4A: ; DATA XREF: Boot:PID_jump_tableo move.l (VEH_SYS_KE_VTD_CONFIGURATION+2).l,d0 ; This is used to activate the different VTD functionalities within the PCM. ; Unitless rts ; --------------------------------------------------------------------------- GetPid_FC48: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFB127).w,d0 rts ; --------------------------------------------------------------------------- GetPid_FC47: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFB126).w,d0 rts ; --------------------------------------------------------------------------- GetPid_FC46: ; DATA XREF: Boot:PID_jump_tableo bclr #7,d0 bclr #6,d0 bclr #5,d0 bclr #4,d0 bclr #3,d0 tst.b (byte_FFFFA0F8).w beq.s loc_44EA4 bset #2,d0 bra.s loc_44EA8 ; --------------------------------------------------------------------------- loc_44EA4: ; CODE XREF: OS2:00044E9Cj bclr #2,d0 loc_44EA8: ; CODE XREF: OS2:00044EA2j bclr #1,d0 bclr #0,d0 rts ; --------------------------------------------------------------------------- GetPid_FC45: ; DATA XREF: Boot:PID_jump_tableo tst.b (byte_FFFFA1F6).w beq.s loc_44EBE bset #7,d0 bra.s loc_44EC2 ; --------------------------------------------------------------------------- loc_44EBE: ; CODE XREF: OS2:00044EB6j bclr #7,d0 loc_44EC2: ; CODE XREF: OS2:00044EBCj btst #5,(byte_FFFFA592).w beq.s loc_44ED0 bset #6,d0 bra.s loc_44ED4 ; --------------------------------------------------------------------------- loc_44ED0: ; CODE XREF: OS2:00044EC8j bclr #6,d0 loc_44ED4: ; CODE XREF: OS2:00044ECEj btst #6,(byte_FFFFA59C).w beq.s loc_44EE2 bset #5,d0 bra.s loc_44EE6 ; --------------------------------------------------------------------------- loc_44EE2: ; CODE XREF: OS2:00044EDAj bclr #5,d0 loc_44EE6: ; CODE XREF: OS2:00044EE0j tst.b (byte_FFFFAC49).w beq.s loc_44EF2 bset #4,d0 bra.s loc_44EF6 ; --------------------------------------------------------------------------- loc_44EF2: ; CODE XREF: OS2:00044EEAj bclr #4,d0 loc_44EF6: ; CODE XREF: OS2:00044EF0j bclr #3,d0 tst.b (byte_FFFFA620).w beq.s loc_44F06 bset #2,d0 bra.s loc_44F0A ; --------------------------------------------------------------------------- loc_44F06: ; CODE XREF: OS2:00044EFEj bclr #2,d0 loc_44F0A: ; CODE XREF: OS2:00044F04j bclr #1,d0 tst.b (byte_FFFFA301).w beq.s loc_44F1A bset #0,d0 bra.s locret_44F1E ; --------------------------------------------------------------------------- loc_44F1A: ; CODE XREF: OS2:00044F12j bclr #0,d0 locret_44F1E: ; CODE XREF: OS2:00044F18j rts ; --------------------------------------------------------------------------- GetPid_FC43: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFB298).w,d0 rts ; --------------------------------------------------------------------------- GetPid_FC41: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF905A).w,d0 rts ; --------------------------------------------------------------------------- GetPid_FC40: ; DATA XREF: Boot:PID_jump_tableo move.w (ThrottleArea2).w,d0 lsr.w #1,d0 rts ; --------------------------------------------------------------------------- GetPid_FC30: ; DATA XREF: Boot:PID_jump_tableo move.w (IgnitionAdvanceMultiplier).w,d0 rts ; --------------------------------------------------------------------------- GetPid_FC2C: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFB0EC).w,d0 rts ; --------------------------------------------------------------------------- GetPid_FC25: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA49A).w,d0 rts ; --------------------------------------------------------------------------- GetPid_FC24: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA498).w,d0 rts ; --------------------------------------------------------------------------- GetPid_FC22: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA1EE).w,d0 rts ; --------------------------------------------------------------------------- GetPid_FC1E: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA0F4).w,d0 rts ; --------------------------------------------------------------------------- GetPid_FC1C: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA0C6).w,d0 rts ; --------------------------------------------------------------------------- GetPid_FC12: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA1E8).w,d0 rts ; --------------------------------------------------------------------------- GetPid_FC39: ; DATA XREF: Boot:PID_jump_tableo move.b (byte_FFFFAF78).w,d0 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ModeInitHandler: ; CODE XREF: OS1:00028D94p ; OS1:00028EBEp ... var_F = -$F var_E = -$E var_A = -$A var_6 = -6 var_2 = -2 link a6,#-$A movem.l d0/a1,-(sp) movem.l d1-d2,-(sp) move.b var_F(a6),var_2(a6) btst #7,var_2(a6) sne d3 neg.b d3 beq.w loc_45042 move.b var_2(a6),d0 lsr.b #2,d0 andi.b #$1F,d0 cmpi.b #$10,d0 bne.w loc_45042 move.b var_2(a6),d0 andi.b #3,d0 bne.w loc_45042 clr.b (byte_FFFF9D22).w lea (unk_FFFF9CFE).w,a2 moveq #8,d0 loc_44FB2: ; CODE XREF: ModeInitHandler+4Aj clr.w (a2)+ dbf d0,loc_44FB2 lea (unk_FFFF9D10).w,a2 moveq #8,d0 loc_44FBE: ; CODE XREF: ModeInitHandler+56j clr.w (a2)+ dbf d0,loc_44FBE clr.b (byte_FFFF9D24).w clr.b (byte_FFFFBE6C).w clr.b (byte_FFFFBE71).w clr.b (byte_FFFFBE70).w clr.b (byte_FFFFBE6D).w clr.b (byte_FFFFBE6E).w clr.b (byte_FFFFBE6B).w move.w #8,(word_FFFFAB1E).w move.w (GlobalClock).w,(word_FFFFAB1C).w move.b #1,(byte_FFFFBE6F).w clr.b (byte_FFFF9AA0).w moveq #7,d4 move.b d4,(byte_FFFF9B1D).w move.b d4,(byte_FFFF9B1C).w move.w #$640,(word_FFFFAB00).w move.w (GlobalClock).w,(word_FFFFAAFE).w clr.b (byte_FFFF9AA2).w clr.b (byte_FFFF9AA4).w lea (unk_FFFF9AE0).w,a2 moveq #$1D,d0 loc_4501A: ; CODE XREF: ModeInitHandler+B2j clr.w (a2)+ dbf d0,loc_4501A movea.l #unk_FF9AE0,a2 move.l a2,(dword_FFFF9B1E).w move.l a2,(dword_FFFF9B22).w move.l a2,(dword_FFFF9B26).w clr.b (byte_FFFF9AA1).w clr.w (word_FFFF9D26).w clr.b (byte_FFFF9D28).w clr.b (byte_FFFF9D29).w loc_45042: ; CODE XREF: ModeInitHandler+1Cj ; ModeInitHandler+2Ej ... btst #7,(byte_FFFF9D2A).w beq.s loc_45094 move.b (byte_FFFF9D2A).w,d0 lsr.b #2,d0 andi.b #$1F,d0 moveq #$1B,d2 cmp.b d0,d2 bcc.s loc_45094 tst.b d3 beq.s loc_45074 move.b var_2(a6),d0 lsr.b #2,d0 moveq #$1F,d4 and.b d4,d0 cmp.b d0,d4 bne.s loc_45074 move.b (byte_FFFF9D2B).w,var_2(a6) bra.s loc_450BC ; --------------------------------------------------------------------------- loc_45074: ; CODE XREF: ModeInitHandler+F2j ; ModeInitHandler+100j tst.b d3 beq.s loc_45088 move.b var_2(a6),d0 lsr.b #2,d0 andi.b #$1F,d0 cmpi.b #$1B,d0 bcc.s loc_450BC loc_45088: ; CODE XREF: ModeInitHandler+10Cj move.b var_2(a6),(byte_FFFF9D2B).w clr.b d0 bra.w loc_45130 ; --------------------------------------------------------------------------- loc_45094: ; CODE XREF: ModeInitHandler+DEj ; ModeInitHandler+EEj tst.b d3 beq.s loc_450BC move.b var_2(a6),d3 lsr.b #2,d3 andi.b #$1F,d3 cmpi.b #$1B,d3 bls.s loc_450BC move.b var_2(a6),d3 lsr.b #2,d3 moveq #$1F,d4 and.b d4,d3 cmp.b d3,d4 bls.s loc_450BC move.b (byte_FFFF9D2A).w,(byte_FFFF9D2B).w loc_450BC: ; CODE XREF: ModeInitHandler+108j ; ModeInitHandler+11Cj ... move.l a0,var_A(a6) move.l a1,var_6(a6) move.l var_A(a6),d4 beq.s loc_450D6 lea (unk_FFFF9CFE).w,a2 moveq #8,d3 loc_450D0: ; CODE XREF: ModeInitHandler+168j move.w (a0)+,(a2)+ dbf d3,loc_450D0 loc_450D6: ; CODE XREF: ModeInitHandler+15Ej move.l var_6(a6),d5 beq.s loc_450F0 clr.w d3 loc_450DE: ; CODE XREF: ModeInitHandler+184j move.b (a1,d3.w),d0 or.b d0,-$62F0(d3.w) addq.w #1,d3 cmpi.w #$11,d3 bls.s loc_450DE loc_450F0: ; CODE XREF: ModeInitHandler+170j tst.l var_E(a6) beq.s loc_45128 clr.b d3 clr.b (byte_FFFF9D24).w loc_450FC: ; CODE XREF: ModeInitHandler+1BCj move.b d3,d0 move.l d0,d2 lsr.b #3,d2 moveq #$11,d1 sub.b d2,d1 andi.w #$FF,d1 andi.b #7,d0 andi.w #$FF,d0 move.b -$62F0(d1.w),d1 btst d0,d1 beq.s loc_45120 addq.b #1,(byte_FFFF9D24).w loc_45120: ; CODE XREF: ModeInitHandler+1B0j addq.b #1,d3 cmpi.b #$89,d3 bcs.s loc_450FC loc_45128: ; CODE XREF: ModeInitHandler+18Aj move.b var_2(a6),(byte_FFFF9D2A).w moveq #1,d0 loc_45130: ; CODE XREF: ModeInitHandler+126j movem.l (sp)+,d1-d2 unlk a6 rts ; End of function ModeInitHandler ; =============== S U B R O U T I N E ======================================= sub_45138: ; CODE XREF: sub_451EA+486p ; sub_451EA+494p ... andi.w #$FF,d0 move.b $364E.l(d0.w),d3 beq.s locret_45150 andi.w #$FF,d3 clr.b -$6348(d3.w) locret_45150: ; CODE XREF: sub_45138+Cj rts ; End of function sub_45138 ; =============== S U B R O U T I N E ======================================= sub_45152: ; CODE XREF: sub_3E4F2+182p ; sub_3E4F2+2C4p ... movem.l d1-d2,-(sp) move.b d0,d3 move.l d3,d5 lsr.b #3,d5 moveq #$11,d1 sub.b d5,d1 andi.w #$FF,d1 moveq #7,d2 and.b d2,d3 andi.w #$FF,d3 move.b -$62F0(d1.w),d5 btst d3,d5 beq.s loc_45198 move.b d0,d3 move.l d3,d5 lsr.b #3,d5 moveq #$11,d4 sub.b d5,d4 andi.w #$FF,d4 and.b d2,d3 andi.w #$FF,d3 lea -$6348(d4.w),a2 bclr d3,$58(a2) subq.b #1,(byte_FFFF9D24).w loc_45198: ; CODE XREF: sub_45152+22j movem.l (sp)+,d1-d2 rts ; End of function sub_45152 ; =============== S U B R O U T I N E ======================================= sub_4519E: ; CODE XREF: DoLoopF+20Ap DoLoopF+55Ap ... movem.l d1-d2,-(sp) move.b d0,d3 move.l d3,d5 lsr.b #3,d5 moveq #$11,d1 sub.b d5,d1 andi.w #$FF,d1 moveq #7,d2 and.b d2,d3 andi.w #$FF,d3 move.b -$62F0(d1.w),d5 btst d3,d5 bne.s loc_451E4 move.b d0,d3 move.l d3,d5 lsr.b #3,d5 moveq #$11,d4 sub.b d5,d4 andi.w #$FF,d4 and.b d2,d3 andi.w #$FF,d3 lea -$6348(d4.w),a2 bset d3,$58(a2) addq.b #1,(byte_FFFF9D24).w loc_451E4: ; CODE XREF: sub_4519E+22j movem.l (sp)+,d1-d2 rts ; End of function sub_4519E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_451EA: ; CODE XREF: DoLoopC+92p DoLoopC+3D2p var_10 = -$10 var_C = -$C var_A = -$A var_6 = -6 var_2 = -2 link a6,#-$10 movem.l d0-d2/d6-a1,-(sp) jsr sub_41DDA move.l a0,var_10(a6) move.l a0,d1 bra.w loc_4586C ; --------------------------------------------------------------------------- loc_45202: ; CODE XREF: sub_451EA:loc_4586Cj clr.b var_C(a6) clr.l var_A(a6) btst #4,1(a0) bne.s loc_4521A btst #3,1(a0) bne.s loc_45232 loc_4521A: ; CODE XREF: sub_451EA+26j btst #2,1(a0) beq.w loc_45416 btst #6,4(a0) bne.w loc_45416 moveq #$12,d0 bra.s loc_45262 ; --------------------------------------------------------------------------- loc_45232: ; CODE XREF: sub_451EA+2Ej btst #2,1(a0) beq.s loc_4527A btst #6,4(a0) bne.w loc_45416 lea var_A(a6),a1 jsr sub_45A50 tst.b d0 beq.s loc_45272 movea.l var_10(a6),a1 btst #1,1(a1) beq.s loc_4526C moveq #$12,d0 movea.l a1,a0 loc_45262: ; CODE XREF: sub_451EA+46j ; sub_451EA+8Ej jsr sub_45ACC bra.w loc_45416 ; --------------------------------------------------------------------------- loc_4526C: ; CODE XREF: sub_451EA+72j moveq #1,d1 bra.w loc_45412 ; --------------------------------------------------------------------------- loc_45272: ; CODE XREF: sub_451EA+66j moveq #$11,d0 movea.l var_10(a6),a0 bra.s loc_45262 ; --------------------------------------------------------------------------- loc_4527A: ; CODE XREF: sub_451EA+4Ej moveq #4,d7 cmp.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d7 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.w loc_45360 clr.b d6 move.l d6,d1 move.l d1,d0 move.l d0,d2 loc_4528E: ; CODE XREF: sub_451EA+F8j clr.l d3 move.b d0,d3 mulu.w #6,d3 move.b byte_87C26(d3.l),d5 lsr.b #1,d5 move.b 2(a0),d4 lsr.b #1,d4 cmp.b d4,d5 bne.s loc_452D6 move.b 4(a0),d4 andi.b #$3F,d4 ; '?' cmp.b byte_87C27(d3.l),d4 bne.s loc_452D6 btst #1,1(a0) beq.s loc_452D2 move.b byte_87C28(d3.l),d3 cmp.b 5(a0),d3 bne.s loc_452D6 loc_452D2: ; CODE XREF: sub_451EA+D8j moveq #1,d1 bra.s loc_452D8 ; --------------------------------------------------------------------------- loc_452D6: ; CODE XREF: sub_451EA+BEj ; sub_451EA+D0j ... addq.b #1,d0 loc_452D8: ; CODE XREF: sub_451EA+EAj addq.b #1,d2 tst.b d1 bne.s loc_452E4 cmpi.b #2,d2 bne.s loc_4528E loc_452E4: ; CODE XREF: sub_451EA+F2j tst.b d1 beq.s loc_45342 andi.w #$FF,d0 moveq #6,d2 mulu.w d2,d0 lea byte_879BC(d0.l),a2 move.b $26D(a2),d3 lsr.b #4,d3 move.b d3,var_C(a6) cmpi.b #7,d3 bhi.s loc_45342 beq.s loc_45328 cmpi.b #5,d3 bls.s loc_45342 btst #3,$26D(a2) sne d3 neg.b d3 andi.w #$FF,d3 lea off_87F4C(d3.w*8),a1 bra.s loc_4533E ; --------------------------------------------------------------------------- loc_45328: ; CODE XREF: sub_451EA+11Ej btst #3,$26D(a2) sne d3 neg.b d3 andi.w #$FF,d3 lea off_87F44(d3.w*8),a1 loc_4533E: ; CODE XREF: sub_451EA+13Cj move.l a1,var_A(a6) loc_45342: ; CODE XREF: sub_451EA+FCj ; sub_451EA+11Cj ... tst.b d1 bne.s loc_4535A lea var_A(a6),a1 move.l a1,-(sp) lea var_C(a6),a1 jsr sub_458E6 tst.b d0 beq.s loc_4535C loc_4535A: ; CODE XREF: sub_451EA+15Aj addq.b #1,d6 loc_4535C: ; CODE XREF: sub_451EA+16Ej move.l d6,d0 bra.s loc_45370 ; --------------------------------------------------------------------------- loc_45360: ; CODE XREF: sub_451EA+98j lea var_A(a6),a1 move.l a1,-(sp) lea var_C(a6),a1 jsr sub_458E6 loc_45370: ; CODE XREF: sub_451EA+174j tst.b d0 bne.w loc_45416 movea.l var_10(a6),a1 move.b 2(a1),d6 lsr.b #1,d6 cmpi.b #$35,d6 ; '5' bne.w loc_45416 clr.w d6 moveq #8,d2 move.l d6,d3 loc_4538E: ; CODE XREF: sub_451EA+1DEj move.l d2,d0 add.w d3,d0 addq.w #1,d0 lsr.w #1,d0 move.l d0,d7 move.b 4(a1),d1 clr.l d5 move.b d7,d5 move.b byte_87C32(d5.w),d4 cmp.b d1,d4 bne.s loc_453B0 moveq #1,d6 bra.s loc_453C2 ; --------------------------------------------------------------------------- loc_453B0: ; CODE XREF: sub_451EA+1C0j cmp.b d4,d1 bcc.s loc_453C0 move.l d0,d2 subq.w #1,d2 cmp.w d2,d3 bls.s loc_453C2 move.w d3,d2 bra.s loc_453C2 ; --------------------------------------------------------------------------- loc_453C0: ; CODE XREF: sub_451EA+1C8j move.l d0,d3 loc_453C2: ; CODE XREF: sub_451EA+1C4j ; sub_451EA+1D0j ... cmp.w d2,d3 bcc.s loc_453CA tst.b d6 beq.s loc_4538E loc_453CA: ; CODE XREF: sub_451EA+1DAj cmp.w d2,d3 bne.s loc_453E4 move.b d3,d7 clr.l d1 move.b d3,d1 move.b byte_87C32(d1.w),d0 cmp.b 4(a1),d0 bne.s loc_453E4 moveq #1,d6 loc_453E4: ; CODE XREF: sub_451EA+1E2j ; sub_451EA+1F6j tst.b d6 beq.s loc_453FC andi.w #$FF,d7 moveq #6,d1 mulu.w d1,d7 lea off_87C52(d7.l),a2 move.l a2,var_A(a6) loc_453FC: ; CODE XREF: sub_451EA+1FCj tst.b d6 beq.s loc_45416 btst #1,1(a1) bne.s loc_45416 btst #0,1(a1) bne.s loc_45416 moveq #2,d1 loc_45412: ; CODE XREF: sub_451EA+84j move.b d1,var_C(a6) loc_45416: ; CODE XREF: sub_451EA+36j ; sub_451EA+40j ... move.b var_C(a6),d0 beq.w loc_45838 move.l var_A(a6),d3 movea.l var_10(a6),a1 movea.l a1,a2 btst #0,2(a2) sne d5 neg.b d5 add.b d5,d5 btst #0,1(a2) sne d2 neg.b d2 asl.b #2,d2 add.b d5,d2 btst #6,4(a2) sne d5 neg.b d5 add.b d5,d2 move.l d3,var_6(a6) andi.w #$FF,d0 cmpi.w #1,d0 bcs.w loc_45838 movea.l off_89B26(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_45468: ; DATA XREF: OS4:00089B2Ao ; OS4:00089B2Eo move.b 1(a1),d3 lsr.b #5,d3 move.b d3,(byte_FFFF9B1D).w move.b 3(a1),(byte_FFFF9AA3).w bra.w loc_4571A ; --------------------------------------------------------------------------- loc_4547C: ; DATA XREF: OS4:00089B32o move.b 3(a1),d6 andi.b #$F,var_2(a6) ori.b #$10,var_2(a6) bclr #0,var_2(a6) move.b d6,var_2+1(a6) move.w var_2(a6),d0 jsr sub_4A232 clr.b d7 loc_454A2: ; CODE XREF: sub_451EA+412j clr.l d0 move.b d7,d0 cmp.b -$571A(d0.w),d6 bne.w loc_455F6 moveq #1,d3 clr.b d4 loc_454B4: ; CODE XREF: sub_451EA+2E8j clr.l d0 move.b d3,d0 move.b -$572B(d0.w),d5 beq.s loc_454C8 cmp.b d6,d5 bne.s loc_454C8 moveq #1,d4 bra.s loc_454CA ; --------------------------------------------------------------------------- loc_454C8: ; CODE XREF: sub_451EA+2D4j ; sub_451EA+2D8j addq.b #1,d3 loc_454CA: ; CODE XREF: sub_451EA+2DCj cmpi.b #$B,d3 bhi.s loc_454D4 tst.b d4 beq.s loc_454B4 loc_454D4: ; CODE XREF: sub_451EA+2E4j tst.b d4 beq.w loc_455F6 move.l d7,d1 clr.b d2 loc_454DE: ; CODE XREF: sub_451EA+316j clr.l d3 move.b d2,d3 cmp.b byte_87D1D(d3.w*8),d1 bne.s loc_454FA move.b byte_87D1B(d3.w*8),d0 jsr sub_4519E loc_454FA: ; CODE XREF: sub_451EA+300j addq.b #1,d2 cmpi.b #$1C,d2 bls.s loc_454DE clr.b d2 loc_45504: ; CODE XREF: sub_451EA+33Cj clr.l d3 move.b d2,d3 cmp.b byte_87E2C(d3.w*8),d1 bne.s loc_45520 move.b byte_87E2B(d3.w*8),d0 jsr sub_4519E loc_45520: ; CODE XREF: sub_451EA+326j addq.b #1,d2 cmpi.b #$11,d2 bls.s loc_45504 moveq #4,d4 cmp.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d4 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_45556 clr.b d2 loc_45534: ; CODE XREF: sub_451EA+36Aj clr.l d3 move.b d2,d3 cmp.b byte_87F52(d3.w*8),d1 bne.s loc_45550 move.b byte_87F51(d3.w*8),d0 jsr sub_4519E loc_45550: ; CODE XREF: sub_451EA+356j addq.b #1,d2 tst.b d2 bls.s loc_45534 loc_45556: ; CODE XREF: sub_451EA+346j clr.b d2 loc_45558: ; CODE XREF: sub_451EA+390j clr.l d3 move.b d2,d3 cmp.b byte_87E05(d3.w*8),d1 bne.s loc_45574 move.b byte_87E03(d3.w*8),d0 jsr sub_4519E loc_45574: ; CODE XREF: sub_451EA+37Aj addq.b #1,d2 cmpi.b #4,d2 bls.s loc_45558 cmpi.b #4,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_455AA clr.b d2 loc_45588: ; CODE XREF: sub_451EA+3BEj clr.l d3 move.b d2,d3 cmp.b byte_87F4B(d3.w*8),d1 bne.s loc_455A4 move.b byte_87F49(d3.w*8),d0 jsr sub_4519E loc_455A4: ; CODE XREF: sub_451EA+3AAj addq.b #1,d2 tst.b d2 bls.s loc_45588 loc_455AA: ; CODE XREF: sub_451EA+39Aj clr.b d2 loc_455AC: ; CODE XREF: sub_451EA+3E4j clr.l d3 move.b d2,d3 cmp.b byte_87EE7(d3.w*8),d1 bne.s loc_455C8 move.b byte_87EE5(d3.w*8),d0 jsr sub_4519E loc_455C8: ; CODE XREF: sub_451EA+3CEj addq.b #1,d2 cmpi.b #6,d2 bls.s loc_455AC clr.b d2 loc_455D2: ; CODE XREF: sub_451EA+40Aj clr.l d3 move.b d2,d3 cmp.b byte_87F1F(d3.w*8),d1 bne.s loc_455EE move.b byte_87F1D(d3.w*8),d0 jsr sub_4519E loc_455EE: ; CODE XREF: sub_451EA+3F4j addq.b #1,d2 cmpi.b #1,d2 bls.s loc_455D2 loc_455F6: ; CODE XREF: sub_451EA+2C2j ; sub_451EA+2ECj addq.b #1,d7 cmpi.b #$17,d7 bls.w loc_454A2 moveq #1,d3 clr.b d0 loc_45604: ; CODE XREF: sub_451EA+446j ; sub_451EA+44Cj clr.l d1 move.b d3,d1 cmp.b -$5737(d1.w),d6 beq.s loc_45618 move.b #$FE,d2 cmp.b d6,d2 bne.s loc_45624 loc_45618: ; CODE XREF: sub_451EA+424j lea word_FFFFAB06(d1.w*2),a2 move.w (GlobalClock).w,(a2) moveq #1,d0 loc_45624: ; CODE XREF: sub_451EA+42Cj addq.b #1,d3 cmpi.b #$B,d3 bhi.w loc_45838 tst.b d0 beq.s loc_45604 cmpi.b #$FE,d6 beq.s loc_45604 bra.w loc_45838 ; --------------------------------------------------------------------------- loc_4563C: ; DATA XREF: OS4:00089B36o cmpi.b #2,d2 beq.s loc_45648 cmpi.b #3,d2 bne.s loc_4569C loc_45648: ; CODE XREF: sub_451EA+456j move.b 3(a1),d1 movea.l var_6(a6),a2 move.b 7(a2),d0 jsr sub_4A194 movea.l var_6(a6),a2 move.b 5(a2),d0 jsr sub_45152 movea.l var_6(a6),a2 move.b 5(a2),d0 jsr sub_45138 movea.l var_6(a6),a2 move.b 6(a2),d0 jsr sub_45138 movea.l var_6(a6),a0 move.l (a0),d1 movea.l var_6(a6),a0 move.b 4(a0),d0 movea.l a1,a0 jsr sub_45878 bra.s loc_456B0 ; --------------------------------------------------------------------------- loc_4569C: ; CODE XREF: sub_451EA+45Cj cmpi.b #6,d2 bne.s loc_456B0 movea.l var_6(a6),a2 move.b 6(a2),d0 jsr sub_4519E loc_456B0: ; CODE XREF: sub_451EA+4B0j ; sub_451EA+4B6j ; DATA XREF: ... bra.w loc_45838 ; --------------------------------------------------------------------------- loc_456B4: ; DATA XREF: OS4:00089B3Eo cmpi.b #2,d2 beq.s loc_456C2 cmpi.b #3,d2 bne.w loc_45838 loc_456C2: ; CODE XREF: sub_451EA+4CEj move.b 3(a1),d1 movea.l var_6(a6),a2 move.b 6(a2),d0 bra.s loc_456F8 ; --------------------------------------------------------------------------- loc_456D0: ; DATA XREF: OS4:00089B42o cmpi.b #2,d2 beq.s loc_456DE cmpi.b #3,d2 bne.w loc_45838 loc_456DE: ; CODE XREF: sub_451EA+4EAj movea.l var_6(a6),a2 move.b 6(a2),d0 jsr sub_4519E move.b 3(a1),d1 movea.l var_6(a6),a2 move.b 7(a2),d0 loc_456F8: ; CODE XREF: sub_451EA+4E4j jsr sub_4A194 movea.l var_6(a6),a2 move.b 5(a2),d0 jsr sub_45152 movea.l var_6(a6),a2 move.b 5(a2),d0 jsr sub_45138 loc_4571A: ; CODE XREF: sub_451EA+28Ej movea.l var_6(a6),a0 move.l (a0),d1 movea.l var_6(a6),a0 loc_45724: ; DATA XREF: sub_3442A+24o move.b 4(a0),d0 movea.l a1,a0 jsr sub_45878 bra.w loc_45838 ; --------------------------------------------------------------------------- loc_45734: ; DATA XREF: OS4:00089B46o bra.s loc_4574C ; --------------------------------------------------------------------------- loc_45736: ; DATA XREF: OS4:00089B4Ao cmpi.b #5,d2 bne.s loc_4574C movea.l var_6(a6),a2 move.b (a2),d0 jsr sub_45138 bra.w loc_45838 ; --------------------------------------------------------------------------- loc_4574C: ; CODE XREF: sub_451EA:loc_45734j ; sub_451EA+550j cmpi.b #4,d2 bne.w loc_45838 movea.l var_6(a6),a2 move.b (a2),d0 jsr sub_4519E bra.w loc_45838 ; --------------------------------------------------------------------------- loc_45764: ; DATA XREF: OS4:00089B4Eo tst.b d2 bne.s loc_457AE move.b 3(a1),d1 movea.l var_6(a6),a2 move.b 7(a2),d0 jsr sub_4A194 movea.l var_6(a6),a2 move.b 5(a2),d0 jsr sub_45152 movea.l var_6(a6),a2 move.b 5(a2),d0 jsr sub_45138 movea.l var_6(a6),a0 move.l (a0),d1 movea.l var_6(a6),a0 move.b 4(a0),d0 movea.l a1,a0 jsr sub_45878 bra.s loc_457C2 ; --------------------------------------------------------------------------- loc_457AE: ; CODE XREF: sub_451EA+57Cj cmpi.b #4,d2 bne.s loc_457C2 movea.l var_6(a6),a2 move.b 6(a2),d0 jsr sub_4519E loc_457C2: ; CODE XREF: sub_451EA+5C2j ; sub_451EA+5C8j ; DATA XREF: ... bra.s loc_45838 ; --------------------------------------------------------------------------- loc_457C4: ; DATA XREF: OS4:00089B56o tst.b d2 bne.s loc_4580E move.b 3(a1),d1 movea.l var_6(a6),a2 move.b 7(a2),d0 jsr sub_4A194 movea.l var_6(a6),a2 move.b 5(a2),d0 jsr sub_45152 movea.l var_6(a6),a2 move.b 5(a2),d0 jsr sub_45138 movea.l var_6(a6),a0 move.l (a0),d1 movea.l var_6(a6),a0 move.b 4(a0),d0 movea.l a1,a0 jsr sub_45878 bra.s loc_45838 ; --------------------------------------------------------------------------- loc_4580E: ; CODE XREF: sub_451EA+5DCj cmpi.b #5,d2 bne.s loc_45824 movea.l var_6(a6),a2 move.b 6(a2),d0 jsr sub_45138 bra.s loc_45838 ; --------------------------------------------------------------------------- loc_45824: ; CODE XREF: sub_451EA+628j cmpi.b #4,d2 bne.s loc_45838 movea.l var_6(a6),a2 move.b 6(a2),d0 jsr sub_4519E loc_45838: ; CODE XREF: sub_451EA+230j ; sub_451EA+270j ... movea.l (dword_FFFF9B1E).w,a2 clr.l d5 move.b (a2),d5 move.l a2,d3 add.l d5,d3 addq.l #1,d3 move.l d3,(dword_FFFF9B1E).w movea.l #unk_FF9AE0,a2 moveq #$2F,d4 ; '/' add.l a2,d4 cmp.l d3,d4 bcc.s loc_4585C move.l a2,(dword_FFFF9B1E).w loc_4585C: ; CODE XREF: sub_451EA+66Cj clr.b (byte_FFFF9AA1).w jsr sub_41DDA move.l a0,var_10(a6) move.l a0,d3 loc_4586C: ; CODE XREF: sub_451EA+14j bne.w loc_45202 movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_451EA ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_45878: ; CODE XREF: sub_451EA+4AAp ; sub_451EA+540p ... var_5 = -5 var_4 = -4 link a6,#0 movem.l d0-d1,-(sp) move.b var_5(a6),d3 andi.b #$F,d3 bne.s loc_458B2 movea.l var_4(a6),a2 move.b var_5(a6),d4 lsr.b #4,d4 andi.b #7,d4 moveq #1,d3 cmpi.b #1,d4 bra.s loc_458AE ; --------------------------------------------------------------------------- loc_458A0: ; CODE XREF: sub_45878:loc_458AEj clr.l d5 move.b d3,d5 move.b 4(a0,d5.w),(a2) addq.l #1,a2 addq.b #1,d3 cmp.b d3,d4 loc_458AE: ; CODE XREF: sub_45878+26j bcc.s loc_458A0 bra.s loc_458E2 ; --------------------------------------------------------------------------- loc_458B2: ; CODE XREF: sub_45878+10j cmpi.b #1,d3 bne.s loc_458C0 movea.l var_4(a6),a2 jsr (a2) bra.s loc_458E2 ; --------------------------------------------------------------------------- loc_458C0: ; CODE XREF: sub_45878+3Ej cmpi.b #8,d3 beq.s loc_458E2 cmpi.b #9,d3 beq.s loc_458E2 cmpi.b #$A,d3 beq.s loc_458E2 cmpi.b #$B,d3 beq.s loc_458E2 cmpi.b #2,d3 beq.s loc_458E2 cmpi.b #3,d3 loc_458E2: ; CODE XREF: sub_45878+38j ; sub_45878+46j ... unlk a6 rts ; End of function sub_45878 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_458E6: ; CODE XREF: sub_451EA+166p ; sub_451EA+180p arg_0 = 8 link a6,#0 move.l d1,-(sp) movea.l arg_0(a6),a2 clr.b d0 move.l d0,d1 loc_458F4: ; CODE XREF: sub_458E6+60j clr.l d3 move.b d1,d3 mulu.w #6,d3 move.b byte_879BC(d3.l),d5 lsr.b #1,d5 move.b 2(a0),d4 lsr.b #1,d4 cmp.b d4,d5 bne.s loc_4593C move.b 4(a0),d4 andi.b #$3F,d4 ; '?' cmp.b byte_879BD(d3.l),d4 bne.s loc_4593C btst #1,1(a0) beq.s loc_45938 move.b dword_879BE(d3.l),d3 cmp.b 5(a0),d3 bne.s loc_4593C loc_45938: ; CODE XREF: sub_458E6+42j moveq #1,d0 bra.s loc_4593E ; --------------------------------------------------------------------------- loc_4593C: ; CODE XREF: sub_458E6+28j ; sub_458E6+3Aj ... addq.b #1,d1 loc_4593E: ; CODE XREF: sub_458E6+54j tst.b d0 bne.s loc_45948 cmpi.b #$66,d1 ; 'f' bne.s loc_458F4 loc_45948: ; CODE XREF: sub_458E6+5Aj tst.b d0 beq.w loc_45A48 andi.w #$FF,d1 mulu.w #6,d1 lea byte_879BC(d1.l),a0 move.b 3(a0),d3 lsr.b #4,d3 move.b d3,(a1) andi.w #$FF,d3 cmpi.w #3,d3 bcs.w loc_45A48 movea.l off_89B82(d3.w*4),a3 jmp (a3) ; --------------------------------------------------------------------------- loc_4597C: ; DATA XREF: OS4:00089B8Eo clr.l (a2) bra.w loc_45A48 ; --------------------------------------------------------------------------- loc_45982: ; DATA XREF: OS4:00089B92o move.l 2(a0),d3 lsr.l #8,d3 lsr.l #7,d3 andi.b #$1F,d3 andi.w #$FF,d3 lea off_87D16(d3.w*8),a3 bra.w loc_45A46 ; --------------------------------------------------------------------------- loc_4599E: ; DATA XREF: OS4:00089B96o bra.w loc_45A48 ; --------------------------------------------------------------------------- loc_459A2: ; DATA XREF: OS4:00089B9Ao move.l 2(a0),d3 lsr.l #8,d3 lsr.l #7,d3 andi.b #$1F,d3 andi.w #$FF,d3 lea off_87E26(d3.w*8),a3 bra.w loc_45A46 ; --------------------------------------------------------------------------- loc_459BE: ; DATA XREF: OS4:00089B9Eo move.b 3(a0),d3 lsr.b #1,d3 andi.b #7,d3 andi.w #$FF,d3 lea off_87DFE(d3.w*8),a3 bra.s loc_45A46 ; --------------------------------------------------------------------------- loc_459D6: ; DATA XREF: OS4:00089BA2o move.l dword_879BE(d1.l),d3 lsr.l #8,d3 lsr.l #7,d3 andi.b #$1F,d3 andi.w #$FF,d3 lea unk_87EB6(d3.w),a3 bra.s loc_45A46 ; --------------------------------------------------------------------------- loc_459F4: ; DATA XREF: OS4:00089BA6o move.b $879BF(d1.l),d3 andi.b #$F,d3 andi.w #$FF,d3 lea unk_87ED4(d3.w),a3 bra.s loc_45A46 ; --------------------------------------------------------------------------- loc_45A0E: ; DATA XREF: OS4:00089BAEo bra.s loc_45A48 ; --------------------------------------------------------------------------- loc_45A10: ; DATA XREF: OS4:00089BAAo move.b $879BF(d1.l),d3 lsr.b #1,d3 andi.b #7,d3 andi.w #$FF,d3 lea off_87EE0(d3.w*8),a3 bra.s loc_45A46 ; --------------------------------------------------------------------------- loc_45A2C: ; DATA XREF: OS4:00089BB2o btst #3,$879BF(d1.l) sne d3 neg.b d3 andi.w #$FF,d3 lea off_87F18(d3.w*8),a3 loc_45A46: ; CODE XREF: sub_458E6+B4j ; sub_458E6+D4j ... move.l a3,(a2) loc_45A48: ; CODE XREF: sub_458E6+64j ; sub_458E6+88j ... move.l (sp)+,d1 unlk a6 rtd #4 ; End of function sub_458E6 ; =============== S U B R O U T I N E ======================================= sub_45A50: ; CODE XREF: sub_451EA+5Ep movem.l d1-d2/d6-d7,-(sp) clr.w d0 moveq #$15,d6 move.l d0,d3 loc_45A5A: ; CODE XREF: sub_45A50+44j move.l d6,d2 add.w d3,d2 addq.w #1,d2 lsr.w #1,d2 move.l d2,d7 move.b 4(a0),d1 clr.l d5 move.b d7,d5 move.b CurveTable_22_Rows_Supported_physical_OBD_message_modes(d5.w),d4 cmp.b d1,d4 bne.s loc_45A7C moveq #1,d0 bra.s loc_45A8E ; --------------------------------------------------------------------------- loc_45A7C: ; CODE XREF: sub_45A50+26j cmp.b d4,d1 bcc.s loc_45A8C move.l d2,d6 subq.w #1,d6 cmp.w d6,d3 bls.s loc_45A8E move.w d3,d6 bra.s loc_45A8E ; --------------------------------------------------------------------------- loc_45A8C: ; CODE XREF: sub_45A50+2Ej move.l d2,d3 loc_45A8E: ; CODE XREF: sub_45A50+2Aj ; sub_45A50+36j ... cmp.w d6,d3 bcc.s loc_45A96 tst.b d0 beq.s loc_45A5A loc_45A96: ; CODE XREF: sub_45A50+40j cmp.w d6,d3 bne.s loc_45AB0 move.b d3,d7 andi.w #$FF,d3 move.b CurveTable_22_Rows_Supported_physical_OBD_message_modes(d3.w),d3 cmp.b 4(a0),d3 bne.s loc_45AB0 moveq #1,d0 loc_45AB0: ; CODE XREF: sub_45A50+48j ; sub_45A50+5Cj tst.b d0 beq.s loc_45AC6 andi.w #$FF,d7 mulu.w #6,d7 lea off_87C88(d7.l),a3 move.l a3,(a1) loc_45AC6: ; CODE XREF: sub_45A50+62j movem.l (sp)+,d1-d2/d6-d7 rts ; End of function sub_45A50 ; =============== S U B R O U T I N E ======================================= sub_45ACC: ; CODE XREF: sub_451EA:loc_45262p move.b 1(a0),d3 lsr.b #5,d3 move.b d3,(byte_FFFF9B1D).w move.b 3(a0),(byte_FFFF9AA3).w move.l a0,(dword_FFFF9CFA).w jsr sub_3FCA8 rts ; End of function sub_45ACC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_45AE8: ; CODE XREF: DoLoopC+98p DoLoopC+3D8p var_2 = -2 link a6,#-2 movem.l d0-d1/a0,-(sp) tst.b (byte_FFFF9AA4).w beq.s loc_45AFC jsr sub_41DF6 loc_45AFC: ; CODE XREF: sub_45AE8+Cj tst.b (byte_FFFF9AA4).w bne.w loc_45BFA tst.b (byte_FFFF9D24).w beq.w loc_45BFA tst.b (byte_FFFF9AA0).w beq.s loc_45B4C btst #6,(byte_FFFF9D06).w beq.s loc_45B4C clr.b (byte_FFFFBE70).w clr.b (byte_FFFF9AA0).w move.w #$640,(word_FFFFAB00).w move.w (GlobalClock).w,(word_FFFFAAFE).w moveq #$4E,d0 ; 'N' movea.l #$39E4,a0 jsr sub_41E26 move.w #1,(word_FFFFAB1E).w move.w (GlobalClock).w,(word_FFFFAB1C).w bra.w loc_45BFA ; --------------------------------------------------------------------------- loc_45B4C: ; CODE XREF: sub_45AE8+28j ; sub_45AE8+30j move.w (word_FFFFAB1E).w,d0 movea.l #unk_FFAB1C,a0 jsr sub_276D4 tst.b d0 beq.w loc_45BFA move.b #$89,var_2(a6) move.b (byte_FFFF9D22).w,d0 cmpi.b #2,d0 bhi.s loc_45BD0 beq.s loc_45BA4 tst.b d0 bne.s loc_45B8E clr.b d1 move.l d1,d0 jsr sub_45C02 move.b d0,var_2(a6) tst.b d0 bne.s loc_45BD0 moveq #1,d1 bra.s loc_45BC4 ; --------------------------------------------------------------------------- loc_45B8E: ; CODE XREF: sub_45AE8+8Ej moveq #1,d1 move.l d1,d0 jsr sub_45C02 move.b d0,var_2(a6) tst.b d0 bne.s loc_45BD0 clr.b d1 bra.s loc_45BC4 ; --------------------------------------------------------------------------- loc_45BA4: ; CODE XREF: sub_45AE8+8Aj tst.b (byte_FFFF9D23).w bne.s loc_45BAE moveq #1,d1 bra.s loc_45BB0 ; --------------------------------------------------------------------------- loc_45BAE: ; CODE XREF: sub_45AE8+C0j clr.b d1 loc_45BB0: ; CODE XREF: sub_45AE8+C4j move.l d1,d0 jsr sub_45C02 move.b d0,var_2(a6) tst.b d0 bne.s loc_45BD0 move.b (byte_FFFF9D23).w,d1 loc_45BC4: ; CODE XREF: sub_45AE8+A4j ; sub_45AE8+BAj move.l d1,d0 jsr sub_45C02 move.b d0,var_2(a6) loc_45BD0: ; CODE XREF: sub_45AE8+88j ; sub_45AE8+A0j ... move.b d1,(byte_FFFF9D23).w move.b var_2(a6),d0 beq.s loc_45BFA jsr sub_45152 move.b var_2(a6),d0 clr.l d1 move.b d0,d1 mulu.w #$A,d1 lea $36D8.l(d1.l),a0 jsr sub_41E26 loc_45BFA: ; CODE XREF: sub_45AE8+18j ; sub_45AE8+20j ... movem.l (sp)+,d0-d1/a0 unlk a6 rts ; End of function sub_45AE8 ; =============== S U B R O U T I N E ======================================= sub_45C02: ; CODE XREF: sub_45AE8+94p ; sub_45AE8+AAp ... movem.l d1-d2/d6,-(sp) move.b d0,d3 clr.b d0 tst.b d3 bne.s loc_45C14 move.l d0,d3 moveq #$6B,d6 ; 'k' bra.s loc_45C1A ; --------------------------------------------------------------------------- loc_45C14: ; CODE XREF: sub_45C02+Aj moveq #$6B,d3 ; 'k' move.b #$89,d6 loc_45C1A: ; CODE XREF: sub_45C02+10j ; sub_45C02+3Cj ... addq.b #1,d3 cmp.b d6,d3 bcc.s loc_45C5E move.b d3,d1 move.l d1,d5 lsr.b #3,d5 moveq #$11,d2 sub.b d5,d2 andi.w #$FF,d2 moveq #7,d4 and.b d4,d1 andi.w #$FF,d1 move.b -$62F0(d2.w),d2 btst d1,d2 beq.s loc_45C1A move.b d3,d1 move.l d1,d5 lsr.b #3,d5 moveq #$11,d2 sub.b d5,d2 andi.w #$FF,d2 and.b d4,d1 andi.w #$FF,d1 move.b -$6302(d2.w),d2 btst d1,d2 beq.s loc_45C1A loc_45C5E: ; CODE XREF: sub_45C02+1Cj move.b d3,d1 move.l d1,d5 lsr.b #3,d5 moveq #$11,d2 sub.b d5,d2 andi.w #$FF,d2 moveq #7,d4 and.b d4,d1 andi.w #$FF,d1 move.b -$62F0(d2.w),d2 btst d1,d2 beq.s loc_45C9E move.b d3,d1 move.l d1,d5 lsr.b #3,d5 moveq #$11,d2 sub.b d5,d2 andi.w #$FF,d2 and.b d4,d1 andi.w #$FF,d1 move.b -$6302(d2.w),d5 btst d1,d5 beq.s loc_45C9E move.l d3,d0 loc_45C9E: ; CODE XREF: sub_45C02+7Aj ; sub_45C02+98j movem.l (sp)+,d1-d2/d6 rts ; End of function sub_45C02 ; =============== S U B R O U T I N E ======================================= sub_45CA4: ; CODE XREF: sub_45CCE+4Ap ; sub_45CCE+58p ... var_6348 = -$6348 tst.b d0 beq.s locret_45CCC clr.l d3 move.b d0,d3 tst.b $364E.l(d3.w) beq.s locret_45CCC andi.w #$FF,d0 clr.w d3 move.b $364E.l(d0.w),d3 move.b #$FF,var_6348(d3.w) locret_45CCC: ; CODE XREF: sub_45CA4+2j ; sub_45CA4+10j rts ; End of function sub_45CA4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_45CCE: ; CODE XREF: DoLoopG+31Cp DoLoopG+366p var_573D = -$573D var_572C = -$572C var_2 = -2 link a6,#-2 movem.l d1-d2/d6-d7,-(sp) move.b d0,d1 andi.b #$F,var_2(a6) ori.b #$10,var_2(a6) bset #0,var_2(a6) move.b d1,var_2+1(a6) move.w var_2(a6),d0 jsr sub_4A232 clr.b d2 loc_45CFA: ; CODE XREF: sub_45CCE+64j clr.l d6 move.b d2,d6 clr.w d0 move.b byte_87D1D(d6.w*8),d0 cmp.b -$571A(d0.w),d1 bne.s loc_45D2C move.b byte_87D1B(d6.w*8),d0 jsr sub_45CA4 move.b byte_87D1C(d6.w*8),d0 jsr sub_45CA4 loc_45D2C: ; CODE XREF: sub_45CCE+40j addq.b #1,d2 cmpi.b #$1C,d2 bls.s loc_45CFA clr.b d2 loc_45D36: ; CODE XREF: sub_45CCE+92j clr.l d3 move.b d2,d3 clr.w d0 move.b byte_87E2C(d3.w*8),d0 cmp.b -$571A(d0.w),d1 bne.s loc_45D5A move.b byte_87E2B(d3.w*8),d0 jsr sub_45CA4 loc_45D5A: ; CODE XREF: sub_45CCE+7Cj addq.b #1,d2 cmpi.b #$11,d2 bls.s loc_45D36 move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d7 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type moveq #4,d6 cmp.b d7,d6 bne.s loc_45D9A clr.b d2 loc_45D70: ; CODE XREF: sub_45CCE+CAj clr.l d3 move.b d2,d3 clr.w d0 move.b byte_87F52(d3.w*8),d0 cmp.b -$571A(d0.w),d1 bne.s loc_45D94 move.b byte_87F51(d3.w*8),d0 jsr sub_45CA4 loc_45D94: ; CODE XREF: sub_45CCE+B6j addq.b #1,d2 tst.b d2 bls.s loc_45D70 loc_45D9A: ; CODE XREF: sub_45CCE+9Ej clr.b d2 loc_45D9C: ; CODE XREF: sub_45CCE+106j clr.l d6 move.b d2,d6 clr.w d0 move.b byte_87E05(d6.w*8),d0 cmp.b -$571A(d0.w),d1 bne.s loc_45DCE move.b byte_87E03(d6.w*8),d0 jsr sub_45CA4 move.b byte_87E03(d6.w*8),d0 jsr sub_45CA4 loc_45DCE: ; CODE XREF: sub_45CCE+E2j addq.b #1,d2 cmpi.b #4,d2 bls.s loc_45D9C cmpi.b #4,d7 bne.s loc_45E16 clr.b d2 loc_45DDE: ; CODE XREF: sub_45CCE+146j clr.l d6 move.b d2,d6 clr.w d0 move.b byte_87F4B(d6.w*8),d0 cmp.b -$571A(d0.w),d1 bne.s loc_45E10 move.b byte_87F49(d6.w*8),d0 jsr sub_45CA4 move.b byte_87F49(d6.w*8),d0 jsr sub_45CA4 loc_45E10: ; CODE XREF: sub_45CCE+124j addq.b #1,d2 tst.b d2 bls.s loc_45DDE loc_45E16: ; CODE XREF: sub_45CCE+10Cj clr.b d2 loc_45E18: ; CODE XREF: sub_45CCE+182j clr.l d6 move.b d2,d6 clr.w d0 move.b byte_87EE7(d6.w*8),d0 cmp.b -$571A(d0.w),d1 bne.s loc_45E4A move.b byte_87EE5(d6.w*8),d0 jsr sub_45CA4 move.b byte_87EE6(d6.w*8),d0 jsr sub_45CA4 loc_45E4A: ; CODE XREF: sub_45CCE+15Ej addq.b #1,d2 cmpi.b #6,d2 bls.s loc_45E18 clr.b d2 loc_45E54: ; CODE XREF: sub_45CCE+1BEj clr.l d6 move.b d2,d6 clr.w d0 move.b byte_87F1F(d6.w*8),d0 cmp.b -$571A(d0.w),d1 bne.s loc_45E86 move.b byte_87F1D(d6.w*8),d0 jsr sub_45CA4 move.b byte_87F1E(d6.w*8),d0 jsr sub_45CA4 loc_45E86: ; CODE XREF: sub_45CCE+19Aj addq.b #1,d2 cmpi.b #1,d2 bls.s loc_45E54 moveq #1,d3 clr.b d4 loc_45E92: ; CODE XREF: sub_45CCE+1F6j clr.l d2 move.b d3,d2 move.b -$572B(d2.w),d0 beq.s loc_45EA2 cmp.b d1,d0 bne.s loc_45EBA loc_45EA2: ; CODE XREF: sub_45CCE+1CEj move.b d1,$12+var_573D(d2.w) tst.b d1 beq.s loc_45EB6 cmpi.b #$FF,d1 beq.s loc_45EB6 addq.b #1,(byte_FFFFA8E1).w loc_45EB6: ; CODE XREF: sub_45CCE+1DCj ; sub_45CCE+1E2j moveq #1,d4 bra.s loc_45EBC ; --------------------------------------------------------------------------- loc_45EBA: ; CODE XREF: sub_45CCE+1D2j addq.b #1,d3 loc_45EBC: ; CODE XREF: sub_45CCE+1EAj cmpi.b #$A,d3 bhi.s loc_45EC6 tst.b d4 beq.s loc_45E92 loc_45EC6: ; CODE XREF: sub_45CCE+1F2j move.b #$FF,d6 cmp.b d1,d6 bne.s loc_45ED2 clr.b d0 bra.s loc_45ED4 ; --------------------------------------------------------------------------- loc_45ED2: ; CODE XREF: sub_45CCE+1FEj move.b d1,d0 loc_45ED4: ; CODE XREF: sub_45CCE+202j clr.b d1 loc_45ED6: ; CODE XREF: sub_45CCE+232j clr.l d2 move.b d1,d2 cmp.b -$571A(d2.w),d0 bne.s loc_45EFA movea.l off_89816(d2.w*4),a2 jsr (a2) tst.b -$571A(d2.w) bne.s loc_45EFA move.b d6,$12+var_572C(d2.w) loc_45EFA: ; CODE XREF: sub_45CCE+212j ; sub_45CCE+224j addq.b #1,d1 cmpi.b #$17,d1 bls.s loc_45ED6 movem.l (sp)+,d1-d2/d6-d7 unlk a6 rts ; End of function sub_45CCE ; =============== S U B R O U T I N E ======================================= sub_45F0A: ; CODE XREF: sub_7D368+6Cp move.l d0,-(sp) btst #7,(byte_FFFFA732).w beq.s loc_45F20 movea.l #unk_FF9AD6,a2 bset #7,(a2) bra.s loc_45F2A ; --------------------------------------------------------------------------- loc_45F20: ; CODE XREF: sub_45F0A+8j movea.l #unk_FF9AD6,a2 bclr #7,(a2) loc_45F2A: ; CODE XREF: sub_45F0A+14j moveq #$3F,d0 ; '?' jsr sub_4519E clr.b (byte_FFFF90DB).w move.l (sp)+,d0 rts ; End of function sub_45F0A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_45F3A: ; CODE XREF: DoLoopC+8Cp DoLoopC+3CCp ... var_4 = -4 var_2 = -2 link a6,#-4 movem.l d1-d2/d6-a1,-(sp) moveq #2,d3 cmp.b d0,d3 bne.w loc_46320 btst #7,(byte_1F989).l bclr #7,(word_FFFF910A+1).w btst #0,(C2_NORMAL_MSGS_KE_TCS_FAILURE_STATUS_BITS_SUPPO).l ; This calibration indicates support or non-support ofa particular powertrain traction control failure status. ; TCS_Failure_Status_Record_Type beq.s loc_45F78 bclr #0,(word_FFFF910A).w btst #1,(byte_FFFF8A0C).w beq.s loc_45F7E bset #0,(word_FFFF910A).w bra.s loc_45F7E ; --------------------------------------------------------------------------- loc_45F78: ; CODE XREF: sub_45F3A+26j bclr #0,(word_FFFF910A).w loc_45F7E: ; CODE XREF: sub_45F3A+34j ; sub_45F3A+3Cj btst #1,(C2_NORMAL_MSGS_KE_TCS_FAILURE_STATUS_BITS_SUPPO).l ; This calibration indicates support or non-support ofa particular powertrain traction control failure status. ; TCS_Failure_Status_Record_Type beq.s loc_45F9C bclr #1,(word_FFFF910A).w tst.b (byte_FFFF93F8).w beq.s loc_45FA2 bset #1,(word_FFFF910A).w bra.s loc_45FA2 ; --------------------------------------------------------------------------- loc_45F9C: ; CODE XREF: sub_45F3A+4Cj bclr #1,(word_FFFF910A).w loc_45FA2: ; CODE XREF: sub_45F3A+58j ; sub_45F3A+60j btst #2,(C2_NORMAL_MSGS_KE_TCS_FAILURE_STATUS_BITS_SUPPO).l ; This calibration indicates support or non-support ofa particular powertrain traction control failure status. ; TCS_Failure_Status_Record_Type beq.s loc_45FC0 bclr #2,(word_FFFF910A).w tst.b (byte_FFFF93F7).w beq.s loc_45FC6 bset #2,(word_FFFF910A).w bra.s loc_45FC6 ; --------------------------------------------------------------------------- loc_45FC0: ; CODE XREF: sub_45F3A+70j bclr #2,(word_FFFF910A).w loc_45FC6: ; CODE XREF: sub_45F3A+7Cj ; sub_45F3A+84j btst #3,(C2_NORMAL_MSGS_KE_TCS_FAILURE_STATUS_BITS_SUPPO).l ; This calibration indicates support or non-support ofa particular powertrain traction control failure status. ; TCS_Failure_Status_Record_Type bclr #3,(word_FFFF910A).w btst #4,(C2_NORMAL_MSGS_KE_TCS_FAILURE_STATUS_BITS_SUPPO).l ; This calibration indicates support or non-support ofa particular powertrain traction control failure status. ; TCS_Failure_Status_Record_Type bclr #4,(word_FFFF910A).w btst #5,(C2_NORMAL_MSGS_KE_TCS_FAILURE_STATUS_BITS_SUPPO).l ; This calibration indicates support or non-support ofa particular powertrain traction control failure status. ; TCS_Failure_Status_Record_Type beq.s loc_46000 bclr #5,(word_FFFF910A).w tst.b (byte_FFFFA0F9).w beq.s loc_46006 bset #5,(word_FFFF910A).w bra.s loc_46006 ; --------------------------------------------------------------------------- loc_46000: ; CODE XREF: sub_45F3A+B0j bclr #5,(word_FFFF910A).w loc_46006: ; CODE XREF: sub_45F3A+BCj ; sub_45F3A+C4j btst #6,(C2_NORMAL_MSGS_KE_TCS_FAILURE_STATUS_BITS_SUPPO).l ; This calibration indicates support or non-support ofa particular powertrain traction control failure status. ; TCS_Failure_Status_Record_Type beq.s loc_4601E tst.b (byte_FFFF90D7).w bne.s loc_4601E bset #6,(word_FFFF910A).w bra.s loc_46024 ; --------------------------------------------------------------------------- loc_4601E: ; CODE XREF: sub_45F3A+D4j ; sub_45F3A+DAj bclr #6,(word_FFFF910A).w loc_46024: ; CODE XREF: sub_45F3A+E2j bclr #7,(word_FFFF910A).w move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d6 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type cmp.b d6,d3 beq.w loc_460B6 move.w (word_FFFF91A0).w,var_4(a6) move.w (GlobalClock).w,d4 sub.w var_4(a6),d4 cmp.w (C2_NORMAL_MSGS_KE_C2_PARK_NEUTRAL_SW_ACTIVE_MIN).l,d4 bcs.s loc_460B6 jsr sub_49356 move.b (byte_FFFF91E0).w,d2 cmp.b (byte_FFFF91E1).w,d2 bne.s loc_46066 move.b (byte_FFFF9146).w,d1 cmp.b (byte_FFFF9153).w,d1 beq.s loc_460B6 loc_46066: ; CODE XREF: sub_45F3A+120j tst.b d2 beq.s loc_46076 movea.l #unk_FF9AD6,a2 bset #4,(a2) bra.s loc_46080 ; --------------------------------------------------------------------------- loc_46076: ; CODE XREF: sub_45F3A+12Ej movea.l #unk_FF9AD6,a2 bclr #4,(a2) loc_46080: ; CODE XREF: sub_45F3A+13Aj move.b (byte_FFFF9146).w,d1 beq.s loc_46094 movea.l #unk_FF9ADC,a2 addq.l #1,a2 bset #2,(a2) bra.s loc_460A0 ; --------------------------------------------------------------------------- loc_46094: ; CODE XREF: sub_45F3A+14Aj movea.l #unk_FF9ADC,a2 addq.l #1,a2 bclr #2,(a2) loc_460A0: ; CODE XREF: sub_45F3A+158j moveq #6,d0 jsr sub_4519E move.w (GlobalClock).w,(word_FFFF91A0).w move.b d2,(byte_FFFF91E1).w move.b d1,(byte_FFFF9153).w loc_460B6: ; CODE XREF: sub_45F3A+F8j ; sub_45F3A+110j ... move.w (word_FFFF91A8).w,var_4(a6) move.w (GlobalClock).w,d3 sub.w var_4(a6),d3 cmp.w (C2_NORMAL_MSGS_KE_C2_PRNDL_DISPLAY_INTERVAL).l,d3 bcs.s loc_460F4 jsr sub_4930E move.b (byte_FFFF91CC).w,d1 cmp.b (byte_FFFF91CD).w,d1 beq.s loc_460F4 move.l d1,d3 move.b d3,(byte_FFFF9AD3).w moveq #9,d0 jsr sub_4519E move.w (GlobalClock).w,(word_FFFF91A8).w move.b d1,(byte_FFFF91CD).w loc_460F4: ; CODE XREF: sub_45F3A+190j ; sub_45F3A+1A0j move.b (byte_FFFFB048).w,d3 cmp.b (byte_FFFF9124).w,d3 beq.s loc_4612A tst.b d3 beq.s loc_46110 movea.l #unk_FF9AD6,a2 addq.l #3,a2 bset #3,(a2) bra.s loc_4611C ; --------------------------------------------------------------------------- loc_46110: ; CODE XREF: sub_45F3A+1C6j movea.l #unk_FF9AD6,a2 addq.l #3,a2 bclr #3,(a2) loc_4611C: ; CODE XREF: sub_45F3A+1D4j moveq #$28,d0 ; '(' jsr sub_4519E move.b (byte_FFFFB048).w,(byte_FFFF9124).w loc_4612A: ; CODE XREF: sub_45F3A+1C2j tst.b (C2_NORMAL_MSGS_KE_C2_LOCAL_POWERMODE_CONTROL).l ; Set TRUE if PCM is local power mode master meaning application does not use FE06 system power mode control. ; Boolean bne.w loc_46216 move.b (ThrottleControlMode2?).w,d3 moveq #3,d1 cmp.b d3,d1 bne.s loc_46142 moveq #2,d3 bra.s loc_46160 ; --------------------------------------------------------------------------- loc_46142: ; CODE XREF: sub_45F3A+202j moveq #1,d2 cmp.b d3,d2 bne.s loc_4614C move.l d2,d3 bra.s loc_46160 ; --------------------------------------------------------------------------- loc_4614C: ; CODE XREF: sub_45F3A+20Cj moveq #4,d5 cmp.b d3,d5 bne.s loc_46156 move.l d5,d3 bra.s loc_46160 ; --------------------------------------------------------------------------- loc_46156: ; CODE XREF: sub_45F3A+216j tst.b d3 bne.s loc_4615E move.l d1,d3 bra.s loc_46160 ; --------------------------------------------------------------------------- loc_4615E: ; CODE XREF: sub_45F3A+21Ej clr.b d3 loc_46160: ; CODE XREF: sub_45F3A+206j ; sub_45F3A+210j ... move.b (byte_FFFF91D4).w,d4 cmp.b d4,d3 beq.s loc_46196 cmpi.b #2,d3 beq.s loc_4617A cmpi.b #1,d3 beq.s loc_4617A cmpi.b #4,d3 bne.s loc_46196 loc_4617A: ; CODE XREF: sub_45F3A+232j ; sub_45F3A+238j cmpi.b #2,d4 beq.s loc_46190 cmpi.b #1,d4 beq.s loc_46190 cmp.b d4,d1 beq.s loc_46190 cmpi.b #4,d4 bne.s loc_46196 loc_46190: ; CODE XREF: sub_45F3A+244j ; sub_45F3A+24Aj ... tst.b (byte_FFFF912E).w beq.s loc_4619C loc_46196: ; CODE XREF: sub_45F3A+22Cj ; sub_45F3A+23Ej ... move.w (GlobalClock).w,(word_FFFF9190).w loc_4619C: ; CODE XREF: sub_45F3A+25Aj tst.b (byte_FFFF911F).w beq.s loc_461B0 loc_461A2: ; CODE XREF: sub_45F3A+2C2j moveq #$65,d0 ; 'e' jsr sub_4519E clr.b (byte_FFFF911F).w bra.s loc_46216 ; --------------------------------------------------------------------------- loc_461B0: ; CODE XREF: sub_45F3A+266j cmp.b d4,d3 beq.s loc_461FE moveq #2,d2 cmp.b d3,d2 beq.s loc_461C6 cmpi.b #1,d3 beq.s loc_461C6 cmpi.b #4,d3 bne.s loc_461FE loc_461C6: ; CODE XREF: sub_45F3A+27Ej ; sub_45F3A+284j cmpi.b #2,d4 beq.s loc_461DC moveq #1,d2 cmp.b d4,d2 beq.s loc_461DC cmp.b d4,d1 beq.s loc_461DC moveq #4,d2 cmp.b d4,d2 bne.s loc_461FE loc_461DC: ; CODE XREF: sub_45F3A+290j ; sub_45F3A+296j ... tst.b (byte_FFFF912E).w bne.s loc_461FE move.w (word_FFFF9190).w,var_4(a6) move.w (GlobalClock).w,d0 sub.w var_4(a6),d0 cmp.w (C2_NORMAL_MSGS_KE_C2_FE06_REQ_DELAY_TIME1).l,d0 ; The minimum required elapsed time before a FE06 REQ message is queued due to a local PCM power mode change. ; Seconds bcs.s loc_461FE move.b d3,(byte_FFFF91D4).w bra.s loc_461A2 ; --------------------------------------------------------------------------- loc_461FE: ; CODE XREF: sub_45F3A+278j ; sub_45F3A+28Aj ... move.b (byte_FFFFB15C).w,d2 cmp.b (byte_FFFF90BC).w,d2 bne.s loc_46216 tst.b (byte_FFFF912E).w beq.s loc_46216 move.b d3,(byte_FFFF91D4).w clr.b (byte_FFFF912E).w loc_46216: ; CODE XREF: sub_45F3A+1F6j ; sub_45F3A+274j ... move.b (VEH_SYS_KE_DRIVETRAIN_TYPE).l,d2 ; Describes the type of drivetrain used on the vehicle ; Drivetrain_Type cmpi.b #1,d2 beq.s loc_46286 cmpi.b #4,d6 bne.w loc_47AAC move.b (byte_FFFFB15A).w,d3 lsr.b #2,d3 andi.b #$1F,d3 cmp.b (byte_FFFF91D5).w,d3 beq.s loc_46244 move.w (GlobalClock).w,(word_FFFF91A4).w move.b d3,(byte_FFFF91D5).w loc_46244: ; CODE XREF: sub_45F3A+2FEj clr.b d1 tst.b (C2_NORMAL_MSGS_KE_1211_SLOWDOWN_FOR_MEC).l ; If set TRUE, activates the Allison 12-11 RPT message slow rate logic when Manufacturers Enable Counter is not zero ; Boolean beq.s loc_46258 jsr sub_2749A tst.b d0 bhi.s loc_4627A loc_46258: ; CODE XREF: sub_45F3A+312j move.b (C2_NORMAL_MSGS_KE_1211_SLOWDOWN_FOR_DIAG_TOOL).l,d0 ; If set TRUE, activates the Allison 12-11 RPT message slow rate logic when a diagnostic tool is present ; Boolean and.b (byte_FFFFB158).w,d0 bne.s loc_4627A move.w (C2_NORMAL_MSGS_KE_1211_SLOWDOWN_FOR_PRMD_DELTA).l,d0 ; This time must be exceeded before the the Allison 12-11 RPT message fast rate logic will be allowed ; Seconds movea.l #unk_FF91A4,a0 jsr sub_276D4 tst.b d0 bne.s loc_4627C loc_4627A: ; CODE XREF: sub_45F3A+31Cj ; sub_45F3A+328j addq.b #1,d1 loc_4627C: ; CODE XREF: sub_45F3A+33Ej move.b d1,(byte_FFFF91DF).w tst.b d1 bne.w loc_47AAC loc_46286: ; CODE XREF: sub_45F3A+2E6j clr.b d1 cmpi.b #1,d2 bne.s loc_462C4 move.w (word_FFFFAEBE).w,d3 cmp.w (C2_NORMAL_MSGS_KE_C2_1211_HIGH_SPEED).l,d3 ; The vehicle speed must be less than this to allow 12.5 msec check for queuing msg 1211 ; MPH bcc.s loc_4630E jsr sub_47AB4 move.b d0,d7 move.b (byte_FFFF91E5).w,d3 move.b (byte_FFFF91DD).w,d4 cmp.b d3,d4 bcs.s loc_462B4 cmp.b (byte_FFFF91DE).w,d3 bhi.s loc_4630C loc_462B4: ; CODE XREF: sub_45F3A+372j move.b (byte_FFFF91E3).w,d3 cmp.b d3,d4 bcs.s loc_46302 cmp.b (byte_FFFF91DE).w,d3 bhi.s loc_4630C bra.s loc_46302 ; --------------------------------------------------------------------------- loc_462C4: ; CODE XREF: sub_45F3A+352j cmpi.b #4,d6 bne.s loc_4630E tst.b (byte_FFFF91DF).w bne.s loc_4630E jsr sub_47AB4 move.b d0,d7 clr.w d0 move.b (byte_FFFF91DE).w,d0 clr.w d3 move.b (byte_FFFF91DD).w,d3 sub.w d0,d3 muls.w #$2FB,d3 divs.w #$26,d3 ; '&' tst.w d3 bge.s loc_462F4 neg.w d3 loc_462F4: ; CODE XREF: sub_45F3A+3B6j cmp.b (byte_FFFF91DA).w,d7 bne.s loc_4630C cmp.w (C2_NORMAL_MSGS_KE_C2_PEDAL_LOAD_SEND_ON_CHANGE).l,d3 bcc.s loc_4630C loc_46302: ; CODE XREF: sub_45F3A+380j ; sub_45F3A+388j move.b (byte_FFFF91DB).w,d0 cmp.b (byte_FFFF91DC).w,d0 beq.s loc_4630E loc_4630C: ; CODE XREF: sub_45F3A+378j ; sub_45F3A+386j ... moveq #1,d1 loc_4630E: ; CODE XREF: sub_45F3A+35Ej ; sub_45F3A+38Ej ... tst.b d1 beq.w loc_47AAC move.l d7,d0 jsr sub_47B10 bra.w loc_47AAC ; --------------------------------------------------------------------------- loc_46320: ; CODE XREF: sub_45F3A+Cj moveq #3,d6 cmp.b d0,d6 bne.w loc_4646C jsr sub_47B78 move.w #$19C0,d3 mulu.w (word_FFFF9020).w,d3 lsr.l #8,d3 lsr.l #8,d3 lsr.l #3,d3 cmpi.l #$FF,d3 bls.s loc_46348 move.b #$FF,d3 loc_46348: ; CODE XREF: sub_45F3A+408j move.b d3,(byte_FFFF9ABF).w move.w (word_FFFF9188).w,var_4(a6) move.w (GlobalClock).w,d0 sub.w var_4(a6),d0 cmp.w (C2_NORMAL_MSGS_KE_C2_CRUISE_MEMORY_SPEED_MIN_IN).l,d0 bcs.s loc_46376 move.w (word_FFFF9020).w,d0 sub.w (word_FFFF916E).w,d0 bcc.s loc_4636E neg.w d0 loc_4636E: ; CODE XREF: sub_45F3A+430j cmp.w (C2_NORMAL_MSGS_KE_C2_CRUISE_MEMORY_SPEED_SEND_O).l,d0 bcc.s loc_46388 loc_46376: ; CODE XREF: sub_45F3A+426j tst.w (word_FFFF9020).w sne d0 neg.b d0 and.b (byte_FFFFB048).w,d0 cmp.b (byte_FFFF9123).w,d0 beq.s loc_463D2 loc_46388: ; CODE XREF: sub_45F3A+43Aj tst.b (byte_FFFFB048).w beq.s loc_463A2 tst.w (word_FFFF9020).w beq.s loc_463A2 movea.l #unk_FF9AD6,a2 addq.l #1,a2 bset #3,(a2) bra.s loc_463AE ; --------------------------------------------------------------------------- loc_463A2: ; CODE XREF: sub_45F3A+452j ; sub_45F3A+458j movea.l #unk_FF9AD6,a2 addq.l #1,a2 bclr #3,(a2) loc_463AE: ; CODE XREF: sub_45F3A+466j moveq #$1A,d0 jsr sub_4519E move.w (word_FFFF9020).w,d3 move.w d3,(word_FFFF916E).w tst.w d3 sne d3 neg.b d3 and.b (byte_FFFFB048).w,d3 move.b d3,(byte_FFFF9123).w move.w (GlobalClock).w,(word_FFFF9188).w loc_463D2: ; CODE XREF: sub_45F3A+44Cj move.b (byte_FFFFADF2).w,d3 cmp.b (byte_FFFF9138).w,d3 beq.s loc_46408 tst.b d3 bne.s loc_463EE movea.l #unk_FF9AD6,a2 addq.l #1,a2 bset #6,(a2) bra.s loc_463FA ; --------------------------------------------------------------------------- loc_463EE: ; CODE XREF: sub_45F3A+4A4j movea.l #unk_FF9AD6,a2 addq.l #1,a2 bclr #6,(a2) loc_463FA: ; CODE XREF: sub_45F3A+4B2j moveq #8,d0 jsr sub_4519E move.b (byte_FFFFADF2).w,(byte_FFFF9138).w loc_46408: ; CODE XREF: sub_45F3A+4A0j move.b (byte_FFFFB370).w,d4 beq.s loc_46414 move.b (byte_FFFFA302).w,d3 bra.s loc_46418 ; --------------------------------------------------------------------------- loc_46414: ; CODE XREF: sub_45F3A+4D2j move.b (byte_FFFFABDA).w,d3 loc_46418: ; CODE XREF: sub_45F3A+4D8j cmp.b (byte_FFFF9133).w,d3 beq.w loc_47AAC tst.b d4 beq.s loc_4642A move.b (byte_FFFFA302).w,d3 bra.s loc_4642E ; --------------------------------------------------------------------------- loc_4642A: ; CODE XREF: sub_45F3A+4E8j move.b (byte_FFFFABDA).w,d3 loc_4642E: ; CODE XREF: sub_45F3A+4EEj tst.b d3 beq.s loc_46440 movea.l #unk_FF9AD6,a2 addq.l #4,a2 bset #1,(a2) bra.s loc_4644C ; --------------------------------------------------------------------------- loc_46440: ; CODE XREF: sub_45F3A+4F6j movea.l #unk_FF9AD6,a2 addq.l #4,a2 bclr #1,(a2) loc_4644C: ; CODE XREF: sub_45F3A+504j moveq #$2E,d0 ; '.' jsr sub_4519E tst.b (byte_FFFFB370).w beq.s loc_46460 move.b (byte_FFFFA302).w,d3 bra.s loc_46464 ; --------------------------------------------------------------------------- loc_46460: ; CODE XREF: sub_45F3A+51Ej move.b (byte_FFFFABDA).w,d3 loc_46464: ; CODE XREF: sub_45F3A+524j move.b d3,(byte_FFFF9133).w bra.w loc_47AAC ; --------------------------------------------------------------------------- loc_4646C: ; CODE XREF: sub_45F3A+3EAj cmpi.b #4,d0 bne.w loc_465A4 move.l d6,d0 jsr sub_4210A tst.b d0 bne.s loc_4649C move.w (EngineRPM_PID_000C___).w,d3 moveq #$19,d2 mulu.w d2,d3 lsr.l #5,d3 move.w d3,var_4(a6) lea var_4(a6),a2 move.b (a2),(byte_FFFF9AAB).w addq.l #1,a2 move.b (a2),(byte_FFFF9AAC).w loc_4649C: ; CODE XREF: sub_45F3A+544j move.w (word_FFFF918E).w,var_2(a6) move.w (GlobalClock).w,d1 sub.w var_2(a6),d1 cmp.w (C2_NORMAL_MSGS_KE_C2_ENGINE_SPEED_MIN_INTERVAL).l,d1 bcs.w loc_4654E move.b (byte_FFFF9141).w,d1 cmp.b (byte_FFFF914F).w,d1 bne.s loc_464E6 move.w (EngineRPM_PID_000C___).w,d3 bge.s loc_464C8 move.w #$7FFF,d3 loc_464C8: ; CODE XREF: sub_45F3A+588j ext.l d3 move.w (word_FFFF9174).w,d4 bge.s loc_464D4 move.w #$7FFF,d4 loc_464D4: ; CODE XREF: sub_45F3A+594j ext.l d4 sub.l d3,d4 tst.l d4 bge.s loc_464DE neg.l d4 loc_464DE: ; CODE XREF: sub_45F3A+5A0j cmp.w (C2_NORMAL_MSGS_KE_C2_ENGINE_SPEED_SEND_ON_CHANG).l,d4 bcs.s loc_4654E loc_464E6: ; CODE XREF: sub_45F3A+582j tst.b d1 bne.s loc_464F0 move.w (EngineRPM_PID_000C___).w,d3 bra.s loc_464F6 ; --------------------------------------------------------------------------- loc_464F0: ; CODE XREF: sub_45F3A+5AEj move.w (C2_NORMAL_MSGS_KE_C2_ENGINE_SPEED_DEFAULT_VALUE).l,d3 ; This is default value used for failsoft report. ; RPM loc_464F6: ; CODE XREF: sub_45F3A+5B4j mulu.w #$19,d3 lsr.l #5,d3 move.w d3,var_4(a6) loc_46500: ; DATA XREF: Calibration:000091FCo ; Calibration:DI_ICAT_KE_CAT_MATERIAL_BURNOFF_DELAYo moveq #1,d3 tst.b d3 beq.s loc_4654E lea var_4(a6),a2 move.b (a2),(byte_FFFF9AAB).w addq.l #1,a2 move.b (a2),(byte_FFFF9AAC).w tst.b d1 bne.s loc_4652A movea.l #unk_FF9ADC,a2 bclr #3,(a2) move.w (EngineRPM_PID_000C___).w,(word_FFFF9174).w bra.s loc_4653C ; --------------------------------------------------------------------------- loc_4652A: ; CODE XREF: sub_45F3A+5DCj movea.l #unk_FF9ADC,a2 bset #3,(a2) move.w (C2_NORMAL_MSGS_KE_C2_ENGINE_SPEED_DEFAULT_VALUE).l,(word_FFFF9174).w ; This is default value used for failsoft report. ; RPM loc_4653C: ; CODE XREF: sub_45F3A+5EEj moveq #$D,d0 jsr sub_4519E move.w (GlobalClock).w,(word_FFFF918E).w move.b d1,(byte_FFFF914F).w loc_4654E: ; CODE XREF: sub_45F3A+576j ; sub_45F3A+5AAj ... tst.b (VEH_SYS_KE_VTD_CONFIGURATION).l ; This is used to activate the different VTD functionalities within the PCM. ; Unitless bne.w loc_47AAC move.b (byte_FFFF8D16).w,(byte_FFFF9160).w move.b (byte_FFFF9161).w,d3 cmp.b (byte_FFFF9160).w,d3 beq.s loc_4657C move.b (byte_FFFF9160).w,(byte_FFFF9ACD).w moveq #1,d0 jsr sub_4519E move.b (byte_FFFF9160).w,(byte_FFFF9161).w loc_4657C: ; CODE XREF: sub_45F3A+62Cj tst.b (byte_FFFFB54A).w bne.w loc_47AAC tst.b (byte_FFFF90E3).w beq.w loc_47AAC moveq #2,d0 jsr sub_4519E move.b (byte_FFFFB116).w,d3 clr.b (byte_FFFFB116).w move.b d3,(byte_FFFF90E3).w bra.w loc_47AAC ; --------------------------------------------------------------------------- loc_465A4: ; CODE XREF: sub_45F3A+536j moveq #5,d7 cmp.b d0,d7 bne.w loc_46EA2 move.w (word_FFFF9E28).w,d2 move.w (C2_NORMAL_MSGS_KE_C2_ENG_TORQ_MIN_INTERVAL).l,d0 movea.l #unk_FF9198,a0 jsr sub_276D4 tst.b d0 beq.s loc_46628 move.w (word_FFFF91C4).w,d1 ext.l d1 move.l d2,d3 ext.l d3 sub.l d1,d3 tst.l d3 bge.s loc_465D8 neg.l d3 loc_465D8: ; CODE XREF: sub_45F3A+69Aj andi.l #$FFFF,d3 move.w (C2_NORMAL_MSGS_KE_C2_ENG_TORQ_SEND_ON_CHANGE).l,d1 ext.l d1 cmp.l d1,d3 blt.s loc_46628 move.l d2,d1 muls.w #$15B,d1 bpl.s loc_465F8 addi.l #$7FFF,d1 loc_465F8: ; CODE XREF: sub_45F3A+6B6j asr.l #8,d1 asr.l #7,d1 addi.w #$28,d1 ; '(' tst.w d1 blt.s loc_46610 cmpi.w #$FF,d1 bls.s loc_46612 move.b #$FF,d1 bra.s loc_46612 ; --------------------------------------------------------------------------- loc_46610: ; CODE XREF: sub_45F3A+6C8j clr.b d1 loc_46612: ; CODE XREF: sub_45F3A+6CEj ; sub_45F3A+6D4j move.b d1,(byte_FFFF9AA7).w moveq #$B,d0 jsr sub_4519E move.w d2,(word_FFFF91C4).w move.w (GlobalClock).w,(word_FFFF9198).w loc_46628: ; CODE XREF: sub_45F3A+68Aj ; sub_45F3A+6AEj clr.b d3 tst.b (byte_FFFF90CA).w beq.s loc_46638 clr.b (byte_FFFF90CA).w loc_46634: ; CODE XREF: sub_45F3A+70Ej ; sub_45F3A+734j moveq #1,d3 bra.s loc_46670 ; --------------------------------------------------------------------------- loc_46638: ; CODE XREF: sub_45F3A+6F4j tst.b (byte_FFFF90CF).w beq.s loc_4664A cmp.b (ThrottleControlMode2?).w,d6 beq.s loc_4664A clr.b (byte_FFFF90CF).w bra.s loc_46634 ; --------------------------------------------------------------------------- loc_4664A: ; CODE XREF: sub_45F3A+702j ; sub_45F3A+708j move.w (word_FFFF917E).w,var_4(a6) move.w (GlobalClock).w,d0 sub.w var_4(a6),d0 cmp.w (C2_NORMAL_MSGS_KE_C2_AC_CLUTCH_ENGAGED_MIN_INTE).l,d0 bcs.s loc_46670 btst #5,(byte_FFFFAD8B).w sne d0 neg.b d0 cmp.b (byte_FFFF9112).w,d0 bne.s loc_46634 loc_46670: ; CODE XREF: sub_45F3A+6FCj ; sub_45F3A+724j tst.b d3 beq.s loc_466AE btst #5,(byte_FFFFAD8B).w beq.s loc_46688 movea.l #unk_FF9AD6,a2 bset #1,(a2) bra.s loc_46692 ; --------------------------------------------------------------------------- loc_46688: ; CODE XREF: sub_45F3A+740j movea.l #unk_FF9AD6,a2 bclr #1,(a2) loc_46692: ; CODE XREF: sub_45F3A+74Cj moveq #$C,d0 jsr sub_4519E btst #5,(byte_FFFFAD8B).w sne d4 neg.b d4 move.b d4,(byte_FFFF9112).w move.w (GlobalClock).w,(word_FFFF917E).w loc_466AE: ; CODE XREF: sub_45F3A+738j clr.w d4 move.w #$19C0,d3 mulu.w (word_FFFFAEBC).w,d3 lsr.l #8,d3 lsr.l #8,d3 lsr.l #3,d3 cmpi.l #$FF,d3 bls.s loc_466CA move.b #$FF,d3 loc_466CA: ; CODE XREF: sub_45F3A+78Aj move.b d3,(byte_FFFF9AAD).w move.w (word_FFFF91B2).w,var_4(a6) move.w (GlobalClock).w,d1 sub.w var_4(a6),d1 cmp.w (C2_NORMAL_MSGS_KE_C2_VEHICLE_SPEED_MIN_INTERVAL).l,d1 bcs.s loc_46746 move.b (byte_FFFF915D).w,d1 cmp.b (byte_FFFF9158).w,d1 bne.s loc_4670E move.w (word_FFFFAEBC).w,d0 sub.w (word_FFFF9170).w,d0 bcc.s loc_466FA neg.w d0 loc_466FA: ; CODE XREF: sub_45F3A+7BCj cmp.w (C2_NORMAL_MSGS_KE_C2_VEHICLE_SPEED_SEND_ON_CHAN).l,d0 bcc.s loc_4670E tst.w (word_FFFFAEBC).w bne.s loc_4672A tst.w (word_FFFF9170).w beq.s loc_4672A loc_4670E: ; CODE XREF: sub_45F3A+7B2j ; sub_45F3A+7C6j tst.b d1 bne.s loc_4671E movea.l #unk_FF9ADC,a2 bclr #4,(a2) bra.s loc_46728 ; --------------------------------------------------------------------------- loc_4671E: ; CODE XREF: sub_45F3A+7D6j movea.l #unk_FF9ADC,a2 bset #4,(a2) loc_46728: ; CODE XREF: sub_45F3A+7E2j moveq #1,d4 loc_4672A: ; CODE XREF: sub_45F3A+7CCj ; sub_45F3A+7D2j tst.b d4 beq.s loc_46746 moveq #$E,d0 jsr sub_4519E move.w (word_FFFFAEBC).w,(word_FFFF9170).w move.b d1,(byte_FFFF9158).w move.w (GlobalClock).w,(word_FFFF91B2).w loc_46746: ; CODE XREF: sub_45F3A+7A8j ; sub_45F3A+7F2j move.w (word_FFFF910A).w,(word_FFFF90BE).w move.w (word_FFFF91AC).w,var_4(a6) move.w (GlobalClock).w,d0 sub.w var_4(a6),d0 cmp.w (C2_NORMAL_MSGS_KE_C2_PT_TCS_FAILURE_STATUS_MIN_).l,d0 bcs.s loc_46780 move.w (word_FFFF91CE).w,d0 cmp.w (word_FFFF910A).w,d0 beq.s loc_46780 moveq #$10,d0 jsr sub_4519E move.w (GlobalClock).w,(word_FFFF91AC).w move.w (word_FFFF910A).w,(word_FFFF91CE).w loc_46780: ; CODE XREF: sub_45F3A+826j ; sub_45F3A+830j move.b (byte_FFFFAF3A).w,d1 clr.b d3 move.w (word_FFFF9182).w,var_4(a6) move.w (GlobalClock).w,d2 sub.w var_4(a6),d2 cmp.w (C2_NORMAL_MSGS_KE_C2_TCC_BRAKE_DEPRESSED_MIN_IN).l,d2 bcs.s loc_467FC move.b (byte_FFFF913E).w,d2 cmp.b (byte_FFFF914C).w,d2 bne.s loc_467AC cmp.b (byte_FFFF911E).w,d1 beq.s loc_467C8 loc_467AC: ; CODE XREF: sub_45F3A+86Aj tst.b d2 bne.s loc_467BC movea.l #unk_FF9ADC,a2 bclr #6,(a2) bra.s loc_467C6 ; --------------------------------------------------------------------------- loc_467BC: ; CODE XREF: sub_45F3A+874j movea.l #unk_FF9ADC,a2 bset #6,(a2) loc_467C6: ; CODE XREF: sub_45F3A+880j moveq #1,d3 loc_467C8: ; CODE XREF: sub_45F3A+870j tst.b d3 beq.s loc_467FC tst.b d1 beq.s loc_467DC movea.l #unk_FF9AD6,a2 bset #2,(a2) bra.s loc_467E6 ; --------------------------------------------------------------------------- loc_467DC: ; CODE XREF: sub_45F3A+894j movea.l #unk_FF9AD6,a2 bclr #2,(a2) loc_467E6: ; CODE XREF: sub_45F3A+8A0j move.l d7,d0 jsr sub_4519E move.b d1,(byte_FFFF911E).w move.w (GlobalClock).w,(word_FFFF9182).w move.b d2,(byte_FFFF914C).w loc_467FC: ; CODE XREF: sub_45F3A+860j ; sub_45F3A+890j move.w (word_FFFF9184).w,var_4(a6) move.w (GlobalClock).w,d1 sub.w var_4(a6),d1 cmp.w (C2_NORMAL_MSGS_KE_C2_CLUTCH_PEDAL_DEP_MIN_INT).l,d1 bcs.s loc_4684C move.b (byte_FFFFA3C4).w,d1 eori.b #1,d1 cmp.b (byte_FFFF9120).w,d1 beq.s loc_4684C tst.b d1 beq.s loc_46830 movea.l #unk_FF9AD6,a2 bset #3,(a2) bra.s loc_4683A ; --------------------------------------------------------------------------- loc_46830: ; CODE XREF: sub_45F3A+8E8j movea.l #unk_FF9AD6,a2 bclr #3,(a2) loc_4683A: ; CODE XREF: sub_45F3A+8F4j moveq #$13,d0 jsr sub_4519E move.w (GlobalClock).w,(word_FFFF9184).w move.b d1,(byte_FFFF9120).w loc_4684C: ; CODE XREF: sub_45F3A+8D6j ; sub_45F3A+8E4j move.b (ThrottleControlMode2?).w,d3 cmp.b d3,d6 seq d0 neg.b d0 cmp.b (byte_FFFF9126).w,d0 beq.s loc_4688E cmp.b d3,d6 bne.s loc_4686E movea.l #unk_FF9AD6,a2 addq.l #1,a2 bset #1,(a2) bra.s loc_4687A ; --------------------------------------------------------------------------- loc_4686E: ; CODE XREF: sub_45F3A+924j movea.l #unk_FF9AD6,a2 addq.l #1,a2 bclr #1,(a2) loc_4687A: ; CODE XREF: sub_45F3A+932j moveq #$18,d0 jsr sub_4519E cmp.b (ThrottleControlMode2?).w,d6 seq d1 neg.b d1 move.b d1,(byte_FFFF9126).w loc_4688E: ; CODE XREF: sub_45F3A+920j move.w (word_FFFF91AE).w,var_4(a6) move.w (GlobalClock).w,d1 sub.w var_4(a6),d1 cmp.w (C2_NORMAL_MSGS_KE_C2_ROLLING_ODO_MIN_INTERVAL).l,d1 bcs.s loc_46912 move.l (dword_FFFF808E).w,d1 move.l d1,(dword_FFFF9116).w move.b (byte_FFFF9144).w,d2 cmp.b (byte_FFFF9145).w,d2 bne.s loc_468C8 move.l d1,d4 sub.l (dword_FFFF8214).w,d4 bcc.s loc_468C0 neg.l d4 loc_468C0: ; CODE XREF: sub_45F3A+982j cmp.l (C2_NORMAL_MSGS_KE_C2_ROLLING_ODO_SEND_ON_CHANGE).l,d4 bcs.s loc_46912 loc_468C8: ; CODE XREF: sub_45F3A+97Aj tst.b d2 bne.s loc_468DA movea.l #unk_FF9ADC,a2 addq.l #1,a2 bclr #5,(a2) bra.s loc_468E6 ; --------------------------------------------------------------------------- loc_468DA: ; CODE XREF: sub_45F3A+990j movea.l #unk_FF9ADC,a2 addq.l #1,a2 bset #5,(a2) loc_468E6: ; CODE XREF: sub_45F3A+99Ej move.l d1,d4 move.w d4,(word_FFFF9114).w movea.l #unk_FF9114,a2 move.b (a2),(byte_FFFF9AC4).w addq.l #1,a2 move.b (a2),(byte_FFFF9AC5).w moveq #$1D,d0 jsr sub_4519E move.l d1,(dword_FFFF8214).w move.w (GlobalClock).w,(word_FFFF91AE).w move.b d2,(byte_FFFF9145).w loc_46912: ; CODE XREF: sub_45F3A+968j ; sub_45F3A+98Cj move.w (word_FFFFB416).w,var_4(a6) lea var_4(a6),a2 move.b (a2),(byte_FFFF9AC6).w addq.l #1,a2 move.b (a2),(byte_FFFF9AC7).w move.w (word_FFFF917C).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmp.w (C2_NORMAL_MSGS_KE_C2_INSTANTANEOUS_FUEL_MIN_INT).l,d0 bcs.s loc_46964 move.w (word_FFFFB416).w,d0 sub.w (word_FFFF912C).w,d0 bcc.s loc_46948 neg.w d0 loc_46948: ; CODE XREF: sub_45F3A+A0Aj cmp.w (C2_NORMAL_MSGS_KE_C2_INSTANTANEOUS_FUEL_SEND_ON).l,d0 bls.s loc_46964 moveq #$42,d0 ; 'B' jsr sub_4519E move.w (word_FFFFB416).w,(word_FFFF912C).w move.w (GlobalClock).w,(word_FFFF917C).w loc_46964: ; CODE XREF: sub_45F3A+A00j ; sub_45F3A+A14j move.b (byte_FFFF9113).w,(byte_FFFF9AD0).w move.w (word_FFFF9196).w,var_4(a6) move.w (GlobalClock).w,d1 sub.w var_4(a6),d1 cmp.w (C2_NORMAL_MSGS_KE_C2_AC_PRESSURE_MIN_INTERVAL).l,d1 bcs.w loc_46A44 move.b (byte_FFFF9110).w,d1 bne.s loc_469E2 cmp.b (byte_FFFF9111).w,d1 bne.s loc_469A4 move.w (word_FFFFAD8E).w,d3 sub.w (word_FFFF910E).w,d3 bcc.s loc_4699A neg.w d3 loc_4699A: ; CODE XREF: sub_45F3A+A5Cj cmp.w (C2_NORMAL_MSGS_KE_C2_AC_PRESSURE_SEND_ON_CHANGE).l,d3 bls.w loc_46A44 loc_469A4: ; CODE XREF: sub_45F3A+A52j move.w (word_FFFFAD8E).w,d3 move.w #$6E52,d4 mulu.w d4,d3 divu.l #(loc_47AE0+1),d3 cmpi.l #$FF,d3 bls.s loc_469C2 move.b #$FF,d3 loc_469C2: ; CODE XREF: sub_45F3A+A82j move.b d3,(byte_FFFF9113).w movea.l #unk_FF9ADC,a2 addq.l #2,a2 bclr #0,(a2) moveq #$45,d0 ; 'E' jsr sub_4519E move.w (word_FFFFAD8E).w,(word_FFFF910E).w bra.s loc_46A3A ; --------------------------------------------------------------------------- loc_469E2: ; CODE XREF: sub_45F3A+A4Cj cmp.b (byte_FFFF9111).w,d1 bne.s loc_469FC move.w (word_FFFFAD8E).w,d3 sub.w (word_FFFF910E).w,d3 bcc.s loc_469F4 neg.w d3 loc_469F4: ; CODE XREF: sub_45F3A+AB6j cmp.w (C2_NORMAL_MSGS_KE_C2_AC_PRESSURE_SEND_ON_CHANGE).l,d3 bls.s loc_46A44 loc_469FC: ; CODE XREF: sub_45F3A+AACj movea.w (C2_NORMAL_MSGS_KE_C2_AC_PRESSURE_DEFAULT_VALUE).l,a0 ; This is default value used for failsoft report. ; PSI move.l a0,d3 move.w #$6E52,d4 mulu.w d4,d3 divu.l #(loc_47AE0+1),d3 cmpi.l #$FF,d3 bls.s loc_46A1E move.b #$FF,d3 loc_46A1E: ; CODE XREF: sub_45F3A+ADEj move.b d3,(byte_FFFF9113).w movea.l #unk_FF9ADC,a2 addq.l #2,a2 bset #0,(a2) moveq #$45,d0 ; 'E' jsr sub_4519E move.w a0,(word_FFFF910E).w loc_46A3A: ; CODE XREF: sub_45F3A+AA6j move.w (GlobalClock).w,(word_FFFF9196).w move.b d1,(byte_FFFF9111).w loc_46A44: ; CODE XREF: sub_45F3A+A44j ; sub_45F3A+A66j ... btst #6,(byte_FFFFA732).w sne d0 neg.b d0 cmp.b (byte_FFFF912F).w,d0 beq.s loc_46A8C btst #6,(byte_FFFFA732).w beq.s loc_46A6A movea.l #unk_FF9AD6,a2 addq.l #2,a2 bset #6,(a2) bra.s loc_46A76 ; --------------------------------------------------------------------------- loc_46A6A: ; CODE XREF: sub_45F3A+B20j movea.l #unk_FF9AD6,a2 addq.l #2,a2 bclr #6,(a2) loc_46A76: ; CODE XREF: sub_45F3A+B2Ej moveq #$23,d0 ; '#' jsr sub_4519E btst #6,(byte_FFFFA732).w sne d3 neg.b d3 move.b d3,(byte_FFFF912F).w loc_46A8C: ; CODE XREF: sub_45F3A+B18j move.b (byte_FFFFA3BA).w,d3 cmp.b (byte_FFFF9137).w,d3 beq.s loc_46AC2 tst.b d3 beq.s loc_46AA8 movea.l #unk_FF9AD6,a2 addq.l #3,a2 bset #0,(a2) bra.s loc_46AB4 ; --------------------------------------------------------------------------- loc_46AA8: ; CODE XREF: sub_45F3A+B5Ej movea.l #unk_FF9AD6,a2 addq.l #3,a2 bclr #0,(a2) loc_46AB4: ; CODE XREF: sub_45F3A+B6Cj moveq #$25,d0 ; '%' jsr sub_4519E move.b (byte_FFFFA3BA).w,(byte_FFFF9137).w loc_46AC2: ; CODE XREF: sub_45F3A+B5Aj jsr sub_47B5C move.b d0,d1 cmp.b (byte_FFFF913C).w,d1 beq.s loc_46AFA tst.b d1 beq.s loc_46AE2 movea.l #unk_FF9AD6,a2 addq.l #3,a2 bset #1,(a2) bra.s loc_46AEE ; --------------------------------------------------------------------------- loc_46AE2: ; CODE XREF: sub_45F3A+B98j movea.l #unk_FF9AD6,a2 addq.l #3,a2 bclr #1,(a2) loc_46AEE: ; CODE XREF: sub_45F3A+BA6j moveq #$26,d0 ; '&' jsr sub_4519E move.b d1,(byte_FFFF913C).w loc_46AFA: ; CODE XREF: sub_45F3A+B94j move.b (OISTER_KE_OIL_STARVE_ENABLE).l,d1 ; Bit selectable to allow oil starvation algorithm to run. ; BOOLEAN beq.s loc_46B0C move.b (byte_FFFFAB7F).w,d3 and.b (byte_FFFFAB80).w,d3 bra.s loc_46B1C ; --------------------------------------------------------------------------- loc_46B0C: ; CODE XREF: sub_45F3A+BC6j tst.b (VEH_SYS_KE_ENGINE_ALARM_ENABLE).l ; If set TRUE, then execute engine alarm or shut down functionality. ; BOOLEAN beq.s loc_46B1A move.b (byte_FFFFABDE).w,d3 bra.s loc_46B1C ; --------------------------------------------------------------------------- loc_46B1A: ; CODE XREF: sub_45F3A+BD8j clr.b d3 loc_46B1C: ; CODE XREF: sub_45F3A+BD0j ; sub_45F3A+BDEj cmp.b (byte_FFFF9128).w,d3 beq.s loc_46B88 tst.b d1 beq.s loc_46B30 move.b (byte_FFFFAB7F).w,d3 and.b (byte_FFFFAB80).w,d3 bra.s loc_46B40 ; --------------------------------------------------------------------------- loc_46B30: ; CODE XREF: sub_45F3A+BEAj tst.b (VEH_SYS_KE_ENGINE_ALARM_ENABLE).l ; If set TRUE, then execute engine alarm or shut down functionality. ; BOOLEAN beq.s loc_46B3E move.b (byte_FFFFABDE).w,d3 bra.s loc_46B40 ; --------------------------------------------------------------------------- loc_46B3E: ; CODE XREF: sub_45F3A+BFCj clr.b d3 loc_46B40: ; CODE XREF: sub_45F3A+BF4j ; sub_45F3A+C02j tst.b d3 beq.s loc_46B52 movea.l #unk_FF9AD6,a2 addq.l #5,a2 bset #0,(a2) bra.s loc_46B5E ; --------------------------------------------------------------------------- loc_46B52: ; CODE XREF: sub_45F3A+C08j movea.l #unk_FF9AD6,a2 addq.l #5,a2 bclr #0,(a2) loc_46B5E: ; CODE XREF: sub_45F3A+C16j moveq #$35,d0 ; '5' jsr sub_4519E tst.b d1 beq.s loc_46B74 move.b (byte_FFFFAB7F).w,d3 and.b (byte_FFFFAB80).w,d3 bra.s loc_46B84 ; --------------------------------------------------------------------------- loc_46B74: ; CODE XREF: sub_45F3A+C2Ej tst.b (VEH_SYS_KE_ENGINE_ALARM_ENABLE).l ; If set TRUE, then execute engine alarm or shut down functionality. ; BOOLEAN beq.s loc_46B82 move.b (byte_FFFFABDE).w,d3 bra.s loc_46B84 ; --------------------------------------------------------------------------- loc_46B82: ; CODE XREF: sub_45F3A+C40j clr.b d3 loc_46B84: ; CODE XREF: sub_45F3A+C38j ; sub_45F3A+C46j move.b d3,(byte_FFFF9128).w loc_46B88: ; CODE XREF: sub_45F3A+BE6j move.w (word_FFFF91A6).w,var_4(a6) move.w (GlobalClock).w,d0 sub.w var_4(a6),d0 cmp.w (C2_NORMAL_MSGS_KE_C2_POWERTRAIN_NODE_ALIVE_PERI).l,d0 bcs.s loc_46BAC moveq #$6A,d0 ; 'j' jsr sub_4519E move.w (GlobalClock).w,(word_FFFF91A6).w loc_46BAC: ; CODE XREF: sub_45F3A+C62j move.w (word_FFFF9180).w,var_4(a6) move.w (GlobalClock).w,d3 sub.w var_4(a6),d3 cmp.w (C2_NORMAL_MSGS_KE_C2_BAROMETRIC_PRESSURE_MIN_IN).l,d3 ; The minimum required elapsed time before a F211 RPT message is queued due to a baro change. ; Seconds bcs.s loc_46C26 move.w (word_FFFF82D2).w,d3 sub.w (word_FFFF911C).w,d3 bcc.s loc_46BCE neg.w d3 loc_46BCE: ; CODE XREF: sub_45F3A+C90j cmp.w (C2_NORMAL_MSGS_KE_C2_BAROMETRIC_PRESSURE_SEND_O).l,d3 bcc.s loc_46BE0 move.b (byte_FFFF9143).w,d3 cmp.b (byte_FFFF9152).w,d3 beq.s loc_46C26 loc_46BE0: ; CODE XREF: sub_45F3A+C9Aj clr.l d3 move.w (word_FFFF82D2).w,d3 divu.w #$CC,d3 ; '?' move.b d3,(byte_FFFF9AD4).w move.b (byte_FFFF9143).w,d1 bne.s loc_46C02 movea.l #unk_FF9ADC,a2 addq.l #2,a2 bclr #1,(a2) bra.s loc_46C0E ; --------------------------------------------------------------------------- loc_46C02: ; CODE XREF: sub_45F3A+CB8j movea.l #unk_FF9ADC,a2 addq.l #2,a2 bset #1,(a2) loc_46C0E: ; CODE XREF: sub_45F3A+CC6j moveq #$48,d0 ; 'H' jsr sub_4519E move.w (GlobalClock).w,(word_FFFF9180).w move.w (word_FFFF82D2).w,(word_FFFF911C).w move.b d1,(byte_FFFF9152).w loc_46C26: ; CODE XREF: sub_45F3A+C86j ; sub_45F3A+CA4j move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d7 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type cmpi.b #4,d7 bne.s loc_46C38 tst.b (byte_FFFF91DF).w beq.s loc_46C9E loc_46C38: ; CODE XREF: sub_45F3A+CF6j jsr sub_47AB4 move.w (word_FFFF91A2).w,var_4(a6) move.w (GlobalClock).w,d2 sub.w var_4(a6),d2 cmp.w (C2_NORMAL_MSGS_KE_C2_PEDAL_LOAD_MIN_INTERVAL).l,d2 bcs.s loc_46CA4 move.b (byte_FFFF91DE).w,d2 clr.l d5 move.b d2,d5 move.b (byte_FFFF91DD).w,d1 clr.l d3 move.b d1,d3 sub.w d5,d3 muls.w #$2FB,d3 divs.w #$26,d3 ; '&' tst.w d3 bge.s loc_46C74 neg.w d3 loc_46C74: ; CODE XREF: sub_45F3A+D36j cmp.w (C2_NORMAL_MSGS_KE_C2_PEDAL_LOAD_SEND_ON_CHANGE).l,d3 bcc.s loc_46C98 cmp.b (byte_FFFF91DA).w,d0 bne.s loc_46C98 move.b (byte_FFFF91E6).w,d3 cmp.b d3,d1 bhi.s loc_46C8E cmp.b d3,d2 bhi.s loc_46C98 loc_46C8E: ; CODE XREF: sub_45F3A+D4Ej move.b (byte_FFFF91DB).w,d3 cmp.b (byte_FFFF91DC).w,d3 beq.s loc_46CA4 loc_46C98: ; CODE XREF: sub_45F3A+D40j ; sub_45F3A+D46j ... jsr sub_47B10 loc_46C9E: ; CODE XREF: sub_45F3A+CFCj move.w (GlobalClock).w,(word_FFFF91A2).w loc_46CA4: ; CODE XREF: sub_45F3A+D18j ; sub_45F3A+D5Cj move.w (word_FFFF9DAA).w,d6 move.l d6,d1 mulu.w #$D,d1 divu.w #$105,d1 move.b d1,(byte_FFFF91E8).w move.w (word_FFFF91EA).w,var_4(a6) move.w (GlobalClock).w,d2 sub.w var_4(a6),d2 cmp.w (C2_NORMAL_MSGS_KE_C2_ENG_FAN_SPEED_MIN_INTERVAL).l,d2 ; Minimum required elapsed time since C2_4801_RPT_Eng_Fan_Speed was last queued for transmission on Class 2 bus. ; Seconds bcs.s loc_46CF4 move.l d6,d2 sub.w (word_FFFF91EC).w,d2 bcc.s loc_46CD6 neg.w d2 loc_46CD6: ; CODE XREF: sub_45F3A+D98j cmp.w (C2_NORMAL_MSGS_KE_C2_ENG_FAN_SPD_SEND_ON_CHANGE).l,d2 bcs.s loc_46CF4 move.b d1,(byte_FFFF9ABA).w moveq #$3E,d0 ; '>' jsr sub_4519E move.w d6,(word_FFFF91EC).w move.w (GlobalClock).w,(word_FFFF91EA).w loc_46CF4: ; CODE XREF: sub_45F3A+D90j ; sub_45F3A+DA2j tst.b d7 bne.w loc_46DD6 move.w (word_FFFF91AA).w,var_4(a6) move.w (GlobalClock).w,d1 sub.w var_4(a6),d1 cmp.w (C2_NORMAL_MSGS_KE_C2_PRNDL_POSITION_MIN_INTERVA).l,d1 bcs.w loc_46D92 clr.w d1 move.b (byte_FFFFA3AF).w,d1 move.b byte_8A504(d1.w),(byte_FFFF9166).w move.b (byte_FFFF915A).w,d1 beq.s loc_46D2C clr.b (byte_FFFF9166).w loc_46D2C: ; CODE XREF: sub_45F3A+DECj tst.b d1 bne.s loc_46D70 cmp.b (byte_FFFF9154).w,d1 bne.s loc_46D40 move.b (byte_FFFF9167).w,d3 cmp.b (byte_FFFF9166).w,d3 beq.s loc_46D70 loc_46D40: ; CODE XREF: sub_45F3A+DFAj movea.l #unk_FF9ADC,a2 addq.l #1,a2 bclr #0,(a2) loc_46D4C: ; CODE XREF: sub_45F3A+E56j move.b (byte_FFFF9166).w,d3 move.b d3,(byte_FFFF9164).w move.b d3,(byte_FFFF9167).w move.b d3,(byte_FFFF9AB2).w moveq #3,d0 jsr sub_4519E move.w (GlobalClock).w,(word_FFFF91AA).w move.b d1,(byte_FFFF9154).w bra.s loc_46D92 ; --------------------------------------------------------------------------- loc_46D70: ; CODE XREF: sub_45F3A+DF4j ; sub_45F3A+E04j tst.b d1 beq.s loc_46D92 cmp.b (byte_FFFF9154).w,d1 bne.s loc_46D84 move.b (byte_FFFF9167).w,d3 cmp.b (byte_FFFF9166).w,d3 beq.s loc_46D92 loc_46D84: ; CODE XREF: sub_45F3A+E3Ej movea.l #unk_FF9ADC,a2 addq.l #1,a2 bset #0,(a2) bra.s loc_46D4C ; --------------------------------------------------------------------------- loc_46D92: ; CODE XREF: sub_45F3A+DD4j ; sub_45F3A+E34j ... move.b (byte_FFFFA3B3).w,d3 moveq #1,d2 cmp.b d3,d2 seq d0 neg.b d0 cmp.b (byte_FFFF914A).w,d0 beq.s loc_46DD6 cmp.b d3,d2 bne.s loc_46DB6 movea.l #unk_FF9AD6,a2 addq.l #3,a2 bset #2,(a2) bra.s loc_46DC2 ; --------------------------------------------------------------------------- loc_46DB6: ; CODE XREF: sub_45F3A+E6Cj movea.l #unk_FF9AD6,a2 addq.l #3,a2 bclr #2,(a2) loc_46DC2: ; CODE XREF: sub_45F3A+E7Aj moveq #$27,d0 ; ''' jsr sub_4519E cmp.b (byte_FFFFA3B3).w,d2 seq d3 neg.b d3 move.b d3,(byte_FFFF914A).w loc_46DD6: ; CODE XREF: sub_45F3A+DBCj ; sub_45F3A+E68j cmpi.b #4,d7 beq.w loc_47AAC move.w (word_FFFF918A).w,var_4(a6) move.w (GlobalClock).w,d3 sub.w var_4(a6),d3 cmp.w (C2_NORMAL_MSGS_KE_C2_CURRENT_GEAR_MIN_INTERVAL).l,d3 bcs.w loc_47AAC clr.w d3 move.b (byte_FFFFA3B8).w,d3 move.b byte_8A4FA(d3.w),d3 move.b d3,(byte_FFFF9139).w cmpi.b #$80,d3 bne.s loc_46E1C cmpi.b #6,(byte_FFFFA3AF).w bne.s loc_46E1C move.b #$40,(byte_FFFF9139).w ; '@' loc_46E1C: ; CODE XREF: sub_45F3A+ED2j ; sub_45F3A+EDAj tst.b (byte_FFFF915C).w bne.s loc_46E28 tst.b (byte_FFFF915A).w beq.s loc_46E30 loc_46E28: ; CODE XREF: sub_45F3A+EE6j move.b #1,(byte_FFFF9156).w bra.s loc_46E34 ; --------------------------------------------------------------------------- loc_46E30: ; CODE XREF: sub_45F3A+EECj clr.b (byte_FFFF9156).w loc_46E34: ; CODE XREF: sub_45F3A+EF4j move.b (byte_FFFF9156).w,d1 bne.s loc_46E76 cmp.b (byte_FFFF9157).w,d1 bne.s loc_46E4A move.b (byte_FFFF9163).w,d3 cmp.b (byte_FFFF9139).w,d3 beq.s loc_46E76 loc_46E4A: ; CODE XREF: sub_45F3A+F04j move.b (byte_FFFF9139).w,d3 move.b d3,(byte_FFFF9163).w movea.l #unk_FF9ADC,a2 bclr #7,(a2) loc_46E5C: ; CODE XREF: sub_45F3A+F66j move.b d3,(byte_FFFF9AB1).w moveq #$14,d0 jsr sub_4519E move.b d1,(byte_FFFF9157).w move.w (GlobalClock).w,(word_FFFF918A).w bra.w loc_47AAC ; --------------------------------------------------------------------------- loc_46E76: ; CODE XREF: sub_45F3A+EFEj ; sub_45F3A+F0Ej tst.b d1 beq.w loc_47AAC cmp.b (byte_FFFF9157).w,d1 bne.s loc_46E8E move.b (byte_FFFF9163).w,d3 cmp.b (byte_FFFF9139).w,d3 beq.w loc_47AAC loc_46E8E: ; CODE XREF: sub_45F3A+F46j move.b (byte_FFFF9139).w,d3 move.b d3,(byte_FFFF9163).w movea.l #unk_FF9ADC,a2 bset #7,(a2) bra.s loc_46E5C ; --------------------------------------------------------------------------- loc_46EA2: ; CODE XREF: sub_45F3A+66Ej cmpi.b #6,d0 bne.w loc_46FF6 move.b (byte_FFFF9DA4).w,d3 cmp.b (byte_FFFF9129).w,d3 beq.s loc_46EDC tst.b d3 beq.s loc_46EC4 movea.l #unk_FF9AD6,a2 bset #5,(a2) bra.s loc_46ECE ; --------------------------------------------------------------------------- loc_46EC4: ; CODE XREF: sub_45F3A+F7Cj movea.l #unk_FF9AD6,a2 bclr #5,(a2) loc_46ECE: ; CODE XREF: sub_45F3A+F88j moveq #$5B,d0 ; '[' jsr sub_4519E move.b (byte_FFFF9DA4).w,(byte_FFFF9129).w loc_46EDC: ; CODE XREF: sub_45F3A+F78j move.b (byte_FFFF9DA5).w,d3 cmp.b (byte_FFFF912A).w,d3 beq.s loc_46F0E tst.b d3 beq.s loc_46EF6 movea.l #unk_FF9AD6,a2 bset #6,(a2) bra.s loc_46F00 ; --------------------------------------------------------------------------- loc_46EF6: ; CODE XREF: sub_45F3A+FAEj movea.l #unk_FF9AD6,a2 bclr #6,(a2) loc_46F00: ; CODE XREF: sub_45F3A+FBAj moveq #$16,d0 jsr sub_4519E move.b (byte_FFFF9DA5).w,(byte_FFFF912A).w loc_46F0E: ; CODE XREF: sub_45F3A+FAAj btst #6,(byte_FFFFA733).w sne d0 neg.b d0 cmp.b (byte_FFFF9127).w,d0 beq.s loc_46F56 btst #6,(byte_FFFFA733).w beq.s loc_46F34 movea.l #unk_FF9AD6,a2 addq.l #2,a2 bset #5,(a2) bra.s loc_46F40 ; --------------------------------------------------------------------------- loc_46F34: ; CODE XREF: sub_45F3A+FEAj movea.l #unk_FF9AD6,a2 addq.l #2,a2 bclr #5,(a2) loc_46F40: ; CODE XREF: sub_45F3A+FF8j moveq #$22,d0 ; '"' jsr sub_4519E btst #6,(byte_FFFFA733).w sne d4 neg.b d4 move.b d4,(byte_FFFF9127).w loc_46F56: ; CODE XREF: sub_45F3A+FE2j clr.w d4 move.w #$19C0,d3 mulu.w (word_FFFFAEBC).w,d3 lsr.l #8,d3 lsr.l #4,d3 move.w d3,var_4(a6) lea var_4(a6),a2 move.b (a2),(byte_FFFF9AAE).w addq.l #1,a2 move.b (a2),(byte_FFFF9AAF).w move.w (word_FFFF91B4).w,var_2(a6) move.w (GlobalClock).w,d1 sub.w var_2(a6),d1 cmp.w (C2_NORMAL_MSGS_KE_C2_HI_RES_VEH_SPD_MIN_INTERVL).l,d1 bcs.w loc_47AAC move.b (byte_FFFF915D).w,d1 cmp.b (byte_FFFF9159).w,d1 bne.s loc_46FB8 move.w (word_FFFFAEBC).w,d0 sub.w (word_FFFF9172).w,d0 bcc.s loc_46FA4 neg.w d0 loc_46FA4: ; CODE XREF: sub_45F3A+1066j cmp.w (C2_NORMAL_MSGS_KE_C2_HI_RES_VEH_SPD_SEND_ON_CHG).l,d0 bcc.s loc_46FB8 tst.w (word_FFFFAEBC).w bne.s loc_46FD4 tst.w (word_FFFF9172).w beq.s loc_46FD4 loc_46FB8: ; CODE XREF: sub_45F3A+105Cj ; sub_45F3A+1070j moveq #1,d4 tst.b d1 bne.s loc_46FCA movea.l #unk_FF9ADC,a2 bclr #5,(a2) bra.s loc_46FD4 ; --------------------------------------------------------------------------- loc_46FCA: ; CODE XREF: sub_45F3A+1082j movea.l #unk_FF9ADC,a2 bset #5,(a2) loc_46FD4: ; CODE XREF: sub_45F3A+1076j ; sub_45F3A+107Cj ... tst.b d4 beq.w loc_47AAC moveq #$F,d0 jsr sub_4519E move.w (word_FFFFAEBC).w,(word_FFFF9172).w move.b d1,(byte_FFFF9159).w move.w (GlobalClock).w,(word_FFFF91B4).w bra.w loc_47AAC ; --------------------------------------------------------------------------- loc_46FF6: ; CODE XREF: sub_45F3A+F6Cj cmpi.b #7,d0 bne.w loc_47816 moveq #1,d0 jsr sub_4210A tst.b d0 bne.s loc_4701E move.w (word_FFFFB3E8).w,d3 add.w d3,d3 ext.l d3 moveq #$33,d4 ; '3' divs.w d4,d3 addi.w #$28,d3 ; '(' move.b d3,(byte_FFFF9AA8).w loc_4701E: ; CODE XREF: sub_45F3A+10CEj move.w (word_FFFF919C).w,var_4(a6) move.w (GlobalClock).w,d3 sub.w var_4(a6),d3 cmp.w (C2_NORMAL_MSGS_KE_C2_INDUCTION_AIR_TEMP_MIN_INT).l,d3 bcs.s loc_470B0 move.b (byte_FFFF913D).w,d6 bne.s loc_47084 cmp.b (byte_FFFF914B).w,d6 bne.s loc_47056 move.w (word_FFFFB3E8).w,d3 sub.w (word_FFFF916A).w,d3 tst.w d3 bge.s loc_4704E neg.w d3 loc_4704E: ; CODE XREF: sub_45F3A+1110j cmp.w (C2_NORMAL_MSGS_KE_C2_INDUCTION_AIR_TEMP_SEND_ON).l,d3 blt.s loc_470B0 loc_47056: ; CODE XREF: sub_45F3A+1104j move.w (word_FFFFB3E8).w,d3 add.w d3,d3 ext.l d3 divs.w #$33,d3 ; '3' addi.w #$28,d3 ; '(' move.b d3,(byte_FFFF9AA8).w movea.l #unk_FF9ADC,a2 bclr #1,(a2) moveq #$37,d0 ; '7' jsr sub_4519E move.w (word_FFFFB3E8).w,(word_FFFF916A).w bra.s loc_470A6 ; --------------------------------------------------------------------------- loc_47084: ; CODE XREF: sub_45F3A+10FEj cmp.b (byte_FFFF914B).w,d6 beq.s loc_470B0 move.b #$28,(byte_FFFF9AA8).w ; '(' movea.l #unk_FF9ADC,a2 bset #1,(a2) moveq #$37,d0 ; '7' jsr sub_4519E clr.w (word_FFFF916A).w loc_470A6: ; CODE XREF: sub_45F3A+1148j move.w (GlobalClock).w,(word_FFFF919C).w move.b d6,(byte_FFFF914B).w loc_470B0: ; CODE XREF: sub_45F3A+10F8j ; sub_45F3A+111Aj ... clr.b d4 move.w (CoolantTemperatureOrDefault).w,d3 add.w d3,d3 ext.l d3 divs.w #$33,d3 ; '3' movea.w #$28,a1 ; '(' add.w a1,d3 move.b (C2_NORMAL_MSGS_KE_C2_COOLANT_TEMP_MAX).l,d0 cmp.b d0,d3 bls.s loc_470DC move.l (EngineRunTime).w,d5 cmp.l (C2_NORMAL_MSGS_KE_C2_COOL_TEMP_LIMIT_RUNTIME).l,d5 ; Class 2 coolant temperature will be limited to KE_C2_Coolant_Temp for this amount of time. ; Seconds bcc.s loc_470DC move.l d0,d3 loc_470DC: ; CODE XREF: sub_45F3A+1192j ; sub_45F3A+119Ej move.b d3,(byte_FFFF9ABB).w move.w (word_FFFF9186).w,var_4(a6) move.w (GlobalClock).w,d3 sub.w var_4(a6),d3 cmp.w (C2_NORMAL_MSGS_KE_C2_COOLANT_TEMPERATURE_MIN_IN).l,d3 bcs.s loc_47152 move.b (byte_FFFF913F).w,d3 cmp.b (byte_FFFF914D).w,d3 bne.s loc_47116 move.w (CoolantTemperatureOrDefault).w,d0 sub.w (word_FFFF9168).w,d0 tst.w d0 bge.s loc_4710E neg.w d0 loc_4710E: ; CODE XREF: sub_45F3A+11D0j cmp.w (C2_NORMAL_MSGS_KE_C2_COOLANT_TEMPERATURE_SEND_O).l,d0 blt.s loc_47136 loc_47116: ; CODE XREF: sub_45F3A+11C4j tst.b d3 bne.s loc_47128 movea.l #unk_FF9ADC,a2 addq.l #1,a2 bclr #3,(a2) bra.s loc_47134 ; --------------------------------------------------------------------------- loc_47128: ; CODE XREF: sub_45F3A+11DEj movea.l #unk_FF9ADC,a2 addq.l #1,a2 bset #3,(a2) loc_47134: ; CODE XREF: sub_45F3A+11ECj moveq #1,d4 loc_47136: ; CODE XREF: sub_45F3A+11DAj tst.b d4 beq.s loc_47152 move.b d3,(byte_FFFF914D).w moveq #7,d0 jsr sub_4519E move.w (CoolantTemperatureOrDefault).w,(word_FFFF9168).w move.w (GlobalClock).w,(word_FFFF9186).w loc_47152: ; CODE XREF: sub_45F3A+11BAj ; sub_45F3A+11FEj clr.b d6 moveq #$C,d0 jsr sub_4210A tst.b d0 bne.s loc_47186 move.l (dword_FFFFA726).w,d2 blt.s loc_47180 cmpi.l #$FFFF,d2 bhi.s loc_4717A mulu.w d7,d2 lsr.l #8,d2 lsr.l #2,d2 cmpi.w #$FF,d2 bls.s loc_47182 loc_4717A: ; CODE XREF: sub_45F3A+1232j move.b #$FF,d2 bra.s loc_47182 ; --------------------------------------------------------------------------- loc_47180: ; CODE XREF: sub_45F3A+122Aj move.l d6,d2 loc_47182: ; CODE XREF: sub_45F3A+123Ej ; sub_45F3A+1244j move.b d2,(byte_FFFF9ABC).w loc_47186: ; CODE XREF: sub_45F3A+1224j move.w (word_FFFF918C).w,var_4(a6) move.w (GlobalClock).w,d0 sub.w var_4(a6),d0 cmp.w (C2_NORMAL_MSGS_KE_C2_ENGINE_OIL_PRESSURE_MIN_IN).l,d0 bcs.w loc_47232 move.b (byte_FFFF9140).w,d7 cmp.b (byte_FFFF914E).w,d7 bne.s loc_471BE move.l (dword_FFFFA726).w,d0 sub.l (dword_FFFF91BE).w,d0 tst.l d0 bge.s loc_471B6 neg.l d0 loc_471B6: ; CODE XREF: sub_45F3A+1278j cmp.l (C2_NORMAL_MSGS_KE_C2_ENGINE_OIL_PRESSURE_SEND_O).l,d0 blt.s loc_471FA loc_471BE: ; CODE XREF: sub_45F3A+126Cj tst.b d7 bne.s loc_471CA move.l (dword_FFFFA726).w,(dword_FFFF91BE).w bra.s loc_471F8 ; --------------------------------------------------------------------------- loc_471CA: ; CODE XREF: sub_45F3A+1286j move.l (C2_NORMAL_MSGS_KE_C2_ENGINE_OIL_PRESSURE_DEFAUL).l,d2 ; This is default value used for failsoft report. ; kPa_L_S blt.s loc_471EE cmpi.l #$FFFF,d2 bhi.s loc_471E8 mulu.w #5,d2 lsr.l #8,d2 lsr.l #2,d2 cmpi.w #$FF,d2 bls.s loc_471F0 loc_471E8: ; CODE XREF: sub_45F3A+129Ej move.b #$FF,d2 bra.s loc_471F0 ; --------------------------------------------------------------------------- loc_471EE: ; CODE XREF: sub_45F3A+1296j move.l d6,d2 loc_471F0: ; CODE XREF: sub_45F3A+12ACj ; sub_45F3A+12B2j move.l (C2_NORMAL_MSGS_KE_C2_ENGINE_OIL_PRESSURE_DEFAUL).l,(dword_FFFF91BE).w ; This is default value used for failsoft report. ; kPa_L_S loc_471F8: ; CODE XREF: sub_45F3A+128Ej moveq #1,d6 loc_471FA: ; CODE XREF: sub_45F3A+1282j tst.b d6 beq.s loc_47232 move.b d2,(byte_FFFF9ABC).w tst.b d7 bne.s loc_47214 movea.l #unk_FF9ADC,a2 addq.l #1,a2 bclr #4,(a2) bra.s loc_47220 ; --------------------------------------------------------------------------- loc_47214: ; CODE XREF: sub_45F3A+12CAj movea.l #unk_FF9ADC,a2 addq.l #1,a2 bset #4,(a2) loc_47220: ; CODE XREF: sub_45F3A+12D8j moveq #$17,d0 jsr sub_4519E move.b d7,(byte_FFFF914E).w move.w (GlobalClock).w,(word_FFFF918C).w loc_47232: ; CODE XREF: sub_45F3A+1260j ; sub_45F3A+12C2j move.w (word_FFFFA730).w,d3 beq.s loc_4723E cmpi.w #$1400,d3 bne.s loc_4724A loc_4723E: ; CODE XREF: sub_45F3A+12FCj moveq #$D,d6 mulu.w d6,d3 move.w #$105,d7 divu.w d7,d3 bra.s loc_47256 ; --------------------------------------------------------------------------- loc_4724A: ; CODE XREF: sub_45F3A+1302j moveq #$D,d6 mulu.w d6,d3 move.w #$105,d7 divu.w d7,d3 addq.b #1,d3 loc_47256: ; CODE XREF: sub_45F3A+130Ej move.b d3,(byte_FFFF91BA).w move.b d3,(byte_FFFF9ABD).w move.w (word_FFFF919E).w,var_4(a6) move.w (GlobalClock).w,d0 sub.w var_4(a6),d0 cmp.w (C2_NORMAL_MSGS_KE_C2_OIL_LIFE_REMAINING_MIN_INT).l,d0 bcs.s loc_472C6 move.w (word_FFFFA730).w,d0 sub.w (word_FFFF91BC).w,d0 bcc.s loc_47280 neg.w d0 loc_47280: ; CODE XREF: sub_45F3A+1342j cmp.w (C2_NORMAL_MSGS_KE_C2_OIL_LIFE_REMAINING_SEND_ON).l,d0 bcc.s loc_4728E tst.b (byte_FFFF90DC).w beq.s loc_472C6 loc_4728E: ; CODE XREF: sub_45F3A+134Cj tst.b (byte_FFFF90DC).w beq.s loc_472A2 movea.l #unk_FF9AD6,a2 addq.l #1,a2 bset #0,(a2) bra.s loc_472AE ; --------------------------------------------------------------------------- loc_472A2: ; CODE XREF: sub_45F3A+1358j movea.l #unk_FF9AD6,a2 addq.l #1,a2 bclr #0,(a2) loc_472AE: ; CODE XREF: sub_45F3A+1366j clr.b (byte_FFFF90DC).w moveq #$5C,d0 ; '\' jsr sub_4519E move.w (word_FFFFA730).w,(word_FFFF91BC).w move.w (GlobalClock).w,(word_FFFF919E).w loc_472C6: ; CODE XREF: sub_45F3A+1338j ; sub_45F3A+1352j clr.b d2 moveq #$E,d0 jsr sub_4210A tst.b d0 bne.s loc_472EA move.w (word_FFFF9B50).w,d1 mulu.w d6,d1 divu.w d7,d1 cmpi.w #$FF,d1 bls.s loc_472E6 move.b #$FF,d1 loc_472E6: ; CODE XREF: sub_45F3A+13A6j move.b d1,(byte_FFFF9ACA).w loc_472EA: ; CODE XREF: sub_45F3A+1398j move.w (word_FFFF9194).w,var_4(a6) move.w (GlobalClock).w,d3 sub.w var_4(a6),d3 cmp.w (C2_NORMAL_MSGS_KE_C2_FUEL_PERCENT_MIN_INTERVAL).l,d3 bcs.w loc_473B0 btst #4,(byte_FFFFA7DF).w bne.s loc_4732A move.b (byte_FFFF9142).w,d3 bne.s loc_47352 cmp.b (byte_FFFF9150).w,d3 bne.s loc_4732A move.w (word_FFFF9B50).w,d0 sub.w (word_FFFF91C6).w,d0 bcc.s loc_47322 neg.w d0 loc_47322: ; CODE XREF: sub_45F3A+13E4j cmp.w (C2_NORMAL_MSGS_KE_C2_FUEL_PERCENT_SEND_ON_CHANG).l,d0 bls.s loc_47352 loc_4732A: ; CODE XREF: sub_45F3A+13CEj ; sub_45F3A+13DAj move.w (word_FFFF9B50).w,d1 mulu.w d6,d1 divu.w d7,d1 cmpi.w #$FF,d1 bls.s loc_4733C move.b #$FF,d1 loc_4733C: ; CODE XREF: sub_45F3A+13FCj move.w (word_FFFF9B50).w,(word_FFFF91C6).w movea.l #unk_FF9ADC,a2 addq.l #1,a2 bclr #6,(a2) loc_4734E: ; CODE XREF: sub_45F3A+1458j moveq #1,d2 bra.s loc_47394 ; --------------------------------------------------------------------------- loc_47352: ; CODE XREF: sub_45F3A+13D4j ; sub_45F3A+13EEj move.b (byte_FFFF9142).w,d3 beq.s loc_47394 cmp.b (byte_FFFF9150).w,d3 bne.s loc_47374 move.w (C2_NORMAL_MSGS_KE_C2_FUEL_PERCENT_DEFAULT_VALUE).l,d0 ; This is default value used for failsoft report. ; Percent sub.w (word_FFFF91C6).w,d0 bcc.s loc_4736C neg.w d0 loc_4736C: ; CODE XREF: sub_45F3A+142Ej cmp.w (C2_NORMAL_MSGS_KE_C2_FUEL_PERCENT_SEND_ON_CHANG).l,d0 bls.s loc_47394 loc_47374: ; CODE XREF: sub_45F3A+1422j move.w (C2_NORMAL_MSGS_KE_C2_FUEL_PERCENT_DEFAULT_VALUE).l,d1 ; This is default value used for failsoft report. ; Percent mulu.w d6,d1 divu.w d7,d1 move.w (C2_NORMAL_MSGS_KE_C2_FUEL_PERCENT_DEFAULT_VALUE).l,(word_FFFF91C6).w ; This is default value used for failsoft report. ; Percent movea.l #unk_FF9ADC,a2 addq.l #1,a2 bset #6,(a2) bra.s loc_4734E ; --------------------------------------------------------------------------- loc_47394: ; CODE XREF: sub_45F3A+1416j ; sub_45F3A+141Cj ... tst.b d2 beq.s loc_473B0 move.b d1,(byte_FFFF9ACA).w moveq #$43,d0 ; 'C' jsr sub_4519E move.w (GlobalClock).w,(word_FFFF9194).w move.b (byte_FFFF9142).w,(byte_FFFF9150).w loc_473B0: ; CODE XREF: sub_45F3A+13C4j ; sub_45F3A+145Cj clr.w d1 moveq #$F,d0 jsr sub_4210A tst.b d0 bne.s loc_473E6 move.l (dword_FFFF9B34).w,d3 lsr.l #8,d3 lsr.l #8,d3 moveq #$19,d2 mulu.w d2,d3 moveq #$10,d4 divu.w d4,d3 bvc.s loc_473D4 move.w #$FFFF,d3 loc_473D4: ; CODE XREF: sub_45F3A+1494j move.w d3,var_4(a6) lea var_4(a6),a2 move.b (a2),(byte_FFFF9ACB).w addq.l #1,a2 move.b (a2),(byte_FFFF9ACC).w loc_473E6: ; CODE XREF: sub_45F3A+1482j move.w (word_FFFF919A).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (C2_NORMAL_MSGS_KE_C2_FUEL_VOLUME_MIN_INTERVAL).l,d3 bcs.w loc_474D0 btst #4,(byte_FFFFA7DF).w bne.s loc_4742A move.b (byte_FFFF9142).w,d3 bne.s loc_4745A cmp.b (byte_FFFF9151).w,d3 bne.s loc_4742A move.l (dword_FFFF9B34).w,d3 lsr.l #8,d3 lsr.l #8,d3 sub.w (word_FFFF91C8).w,d3 bcc.s loc_47422 neg.w d3 loc_47422: ; CODE XREF: sub_45F3A+14E4j cmp.w (C2_NORMAL_MSGS_KE_C2_FUEL_VOLUME_SEND_ON_CHANGE).l,d3 bls.s loc_4745A loc_4742A: ; CODE XREF: sub_45F3A+14CAj ; sub_45F3A+14D6j move.l (dword_FFFF9B34).w,d3 lsr.l #8,d3 lsr.l #8,d3 moveq #$19,d2 mulu.w d2,d3 divu.w #$10,d3 bvc.s loc_47440 move.w #$FFFF,d3 loc_47440: ; CODE XREF: sub_45F3A+1500j move.w d3,var_4(a6) move.w (dword_FFFF9B34).w,(word_FFFF91C8).w movea.l #unk_FF9ADC,a2 addq.l #1,a2 bclr #7,(a2) loc_47456: ; CODE XREF: sub_45F3A+156Ej moveq #1,d1 bra.s loc_474AA ; --------------------------------------------------------------------------- loc_4745A: ; CODE XREF: sub_45F3A+14D0j ; sub_45F3A+14EEj move.b (byte_FFFF9142).w,d3 beq.s loc_474AA cmp.b (byte_FFFF9150).w,d3 bne.s loc_4747C move.w (C2_NORMAL_MSGS_KE_C2_FUEL_VOLUME_DEFAULT_VALUE).l,d3 ; This is default value used for failsoft report. ; Liters sub.w (word_FFFF91C8).w,d3 bcc.s loc_47474 neg.w d3 loc_47474: ; CODE XREF: sub_45F3A+1536j cmp.w (C2_NORMAL_MSGS_KE_C2_FUEL_VOLUME_SEND_ON_CHANGE).l,d3 bls.s loc_474AA loc_4747C: ; CODE XREF: sub_45F3A+152Aj move.w (C2_NORMAL_MSGS_KE_C2_FUEL_VOLUME_DEFAULT_VALUE).l,d3 ; This is default value used for failsoft report. ; Liters moveq #$19,d2 mulu.w d2,d3 divu.w #$10,d3 bvc.s loc_47490 move.w #$FFFF,d3 loc_47490: ; CODE XREF: sub_45F3A+1550j move.w d3,var_4(a6) move.w (C2_NORMAL_MSGS_KE_C2_FUEL_VOLUME_DEFAULT_VALUE).l,(word_FFFF91C8).w ; This is default value used for failsoft report. ; Liters movea.l #unk_FF9ADC,a2 addq.l #1,a2 bset #7,(a2) bra.s loc_47456 ; --------------------------------------------------------------------------- loc_474AA: ; CODE XREF: sub_45F3A+151Ej ; sub_45F3A+1524j ... tst.b d1 beq.s loc_474D0 lea var_4(a6),a2 move.b (a2),(byte_FFFF9ACB).w addq.l #1,a2 move.b (a2),(byte_FFFF9ACC).w moveq #$44,d0 ; 'D' jsr sub_4519E move.w (GlobalClock).w,(word_FFFF919A).w move.b (byte_FFFF9142).w,(byte_FFFF9151).w loc_474D0: ; CODE XREF: sub_45F3A+14C0j ; sub_45F3A+1572j move.b (byte_FFFFA856).w,d3 cmp.b (byte_FFFF911A).w,d3 beq.s loc_47522 tst.b d3 beq.s loc_474F6 movea.l #unk_FF9AD6,a0 movea.l a0,a2 addq.l #3,a2 bset #4,(a2) addq.l #4,a0 movea.l a0,a2 bset #6,(a2) bra.s loc_4750C ; --------------------------------------------------------------------------- loc_474F6: ; CODE XREF: sub_45F3A+15A2j movea.l #unk_FF9AD6,a0 movea.l a0,a2 addq.l #3,a2 bclr #4,(a2) addq.l #4,a0 movea.l a0,a2 bclr #6,(a2) loc_4750C: ; CODE XREF: sub_45F3A+15BAj moveq #$29,d0 ; ')' jsr sub_4519E moveq #$33,d0 ; '3' jsr sub_4519E move.b (byte_FFFFA856).w,(byte_FFFF911A).w loc_47522: ; CODE XREF: sub_45F3A+159Ej move.w (word_FFFF91B6).w,var_4(a6) move.w (GlobalClock).w,d1 sub.w var_4(a6),d1 cmp.w (C2_NORMAL_MSGS_KE_C2_HVAC_AUTO_RECIRC_MIN_INTER).l,d1 ; The minimum required elapsed time before a B230 RPTmessage is queued. ; Seconds bcs.s loc_47578 btst #0,(byte_FFFFAD8B).w sne d1 neg.b d1 cmp.b (byte_FFFF91E2).w,d1 beq.s loc_47578 tst.b d1 beq.s loc_4755A movea.l #unk_FF9AD6,a2 addq.l #2,a2 bset #0,(a2) bra.s loc_47566 ; --------------------------------------------------------------------------- loc_4755A: ; CODE XREF: sub_45F3A+1610j movea.l #unk_FF9AD6,a2 addq.l #2,a2 bclr #0,(a2) loc_47566: ; CODE XREF: sub_45F3A+161Ej moveq #$46,d0 ; 'F' jsr sub_4519E move.b d1,(byte_FFFF91E2).w move.w (GlobalClock).w,(word_FFFF91B6).w loc_47578: ; CODE XREF: sub_45F3A+15FCj ; sub_45F3A+160Cj move.w (word_FFFF82E4).w,d3 sub.w (word_FFFF8212).w,d3 andi.l #$FFFF,d3 divu.w #$B4,d3 ; '?' add.w d3,(word_FFFF8210).w move.w (word_FFFF82E4).w,(word_FFFF8212).w movea.l #unk_FF8210,a2 move.b (a2),(byte_FFFF9AC8).w addq.l #1,a2 move.b (a2),(byte_FFFF9AC9).w move.w (word_FFFF917A).w,var_4(a6) move.w (GlobalClock).w,d0 sub.w var_4(a6),d0 cmp.w (C2_NORMAL_MSGS_KE_C2_ACCUMULATED_FUEL_MIN_INTER).l,d0 bcs.s loc_475DE move.w (word_FFFF8210).w,d0 sub.w (word_FFFF91C2).w,d0 cmp.w (C2_NORMAL_MSGS_KE_C2_ACCUMULATED_FUEL_SEND_ON_C).l,d0 bcs.s loc_475DE moveq #$1E,d0 jsr sub_4519E move.w (word_FFFF8210).w,(word_FFFF91C2).w move.w (GlobalClock).w,(word_FFFF917A).w loc_475DE: ; CODE XREF: sub_45F3A+167Ej ; sub_45F3A+168Ej move.w (word_FFFFB4A2).w,d3 mulu.w #$19,d3 lsr.l #6,d3 move.w d3,var_4(a6) lea var_4(a6),a2 move.b (a2),(byte_FFFF9AC2).w addq.l #1,a2 move.b (a2),(byte_FFFF9AC3).w move.w (word_FFFF91B8).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmp.w (C2_NORMAL_MSGS_KE_C2_IGNITION_VOLT_MIN_INTERVAL).l,d0 bcs.s loc_47638 move.w (word_FFFFB4A2).w,d0 sub.w (word_FFFF91CA).w,d0 bcc.s loc_4761C neg.w d0 loc_4761C: ; CODE XREF: sub_45F3A+16DEj cmp.w (C2_NORMAL_MSGS_KE_C2_IGNITION_VOLT_SEND_ON_CHG).l,d0 bls.s loc_47638 moveq #$41,d0 ; 'A' jsr sub_4519E move.w (word_FFFFB4A2).w,(word_FFFF91CA).w move.w (GlobalClock).w,(word_FFFF91B8).w loc_47638: ; CODE XREF: sub_45F3A+16D4j ; sub_45F3A+16E8j move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (C2_NORMAL_MSGS_KE_ENGINECOOLANTHOTHI).l,d3 ble.s loc_4764C move.b #1,(byte_FFFF91EE).w bra.s loc_47658 ; --------------------------------------------------------------------------- loc_4764C: ; CODE XREF: sub_45F3A+1708j cmp.w (C2_NORMAL_MSGS_KE_ENGINECOOLANTHOTLO).l,d3 bge.s loc_47658 clr.b (byte_FFFF91EE).w loc_47658: ; CODE XREF: sub_45F3A+1710j ; sub_45F3A+1718j move.b (byte_FFFF91EE).w,d1 cmp.b (byte_FFFF91EF).w,d1 beq.s loc_4768C tst.b d1 beq.s loc_47674 movea.l #unk_FF9AD6,a2 addq.l #3,a2 bset #7,(a2) bra.s loc_47680 ; --------------------------------------------------------------------------- loc_47674: ; CODE XREF: sub_45F3A+172Aj movea.l #unk_FF9AD6,a2 addq.l #3,a2 bclr #7,(a2) loc_47680: ; CODE XREF: sub_45F3A+1738j moveq #$2C,d0 ; ',' jsr sub_4519E move.b d1,(byte_FFFF91EF).w loc_4768C: ; CODE XREF: sub_45F3A+1726j move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (C2_NORMAL_MSGS_KE_ENGHOT_STOPENG_TEMPHI).l,d3 ble.s loc_476A0 move.b #1,(byte_FFFF91F0).w bra.s loc_476AC ; --------------------------------------------------------------------------- loc_476A0: ; CODE XREF: sub_45F3A+175Cj cmp.w (C2_NORMAL_MSGS_KE_ENGHOT_STOPENG_TEMPLO).l,d3 bge.s loc_476AC clr.b (byte_FFFF91F0).w loc_476AC: ; CODE XREF: sub_45F3A+1764j ; sub_45F3A+176Cj move.b (byte_FFFF91F0).w,d1 cmp.b (byte_FFFF91F1).w,d1 beq.s loc_476E0 tst.b d1 beq.s loc_476C8 movea.l #unk_FF9AD6,a2 addq.l #2,a2 bset #7,(a2) bra.s loc_476D4 ; --------------------------------------------------------------------------- loc_476C8: ; CODE XREF: sub_45F3A+177Ej movea.l #unk_FF9AD6,a2 addq.l #2,a2 bclr #7,(a2) loc_476D4: ; CODE XREF: sub_45F3A+178Cj moveq #$24,d0 ; '$' jsr sub_4519E move.b d1,(byte_FFFF91F1).w loc_476E0: ; CODE XREF: sub_45F3A+177Aj btst #7,(byte_FFFFAD8A).w sne d0 neg.b d0 cmp.b (byte_FFFF91F2).w,d0 beq.s loc_47728 btst #7,(byte_FFFFAD8A).w beq.s loc_47706 movea.l #unk_FF9AD6,a2 addq.l #4,a2 bset #0,(a2) bra.s loc_47712 ; --------------------------------------------------------------------------- loc_47706: ; CODE XREF: sub_45F3A+17BCj movea.l #unk_FF9AD6,a2 addq.l #4,a2 bclr #0,(a2) loc_47712: ; CODE XREF: sub_45F3A+17CAj moveq #$2D,d0 ; '-' jsr sub_4519E btst #7,(byte_FFFFAD8A).w sne d3 neg.b d3 move.b d3,(byte_FFFF91F2).w loc_47728: ; CODE XREF: sub_45F3A+17B4j move.b (byte_FFFFABDD).w,d3 cmp.b (byte_FFFF9121).w,d3 beq.s loc_4775E tst.b d3 beq.s loc_47744 movea.l #unk_FF9AD6,a2 addq.l #4,a2 bset #5,(a2) bra.s loc_47750 ; --------------------------------------------------------------------------- loc_47744: ; CODE XREF: sub_45F3A+17FAj movea.l #unk_FF9AD6,a2 addq.l #4,a2 bclr #5,(a2) loc_47750: ; CODE XREF: sub_45F3A+1808j moveq #$32,d0 ; '2' jsr sub_4519E move.b (byte_FFFFABDD).w,(byte_FFFF9121).w loc_4775E: ; CODE XREF: sub_45F3A+17F6j cmpi.b #4,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.w loc_47AAC clr.b d4 move.w (word_FFFFA3C2).w,d1 muls.w #$60,d1 ; '`' divs.w #5,d1 cmpi.w #$DFF,d1 bgt.s loc_47786 cmpi.w #$FC00,d1 blt.s loc_4778C bra.s loc_47790 ; --------------------------------------------------------------------------- loc_47786: ; CODE XREF: sub_45F3A+1842j move.w #$DFF,d1 bra.s loc_47790 ; --------------------------------------------------------------------------- loc_4778C: ; CODE XREF: sub_45F3A+1848j move.w #$FC00,d1 loc_47790: ; CODE XREF: sub_45F3A+184Aj ; sub_45F3A+1850j move.l d1,d3 add.w d3,d3 ext.l d3 divs.w #$33,d3 ; '3' add.w a1,d3 move.b d3,(byte_FFFF9AB0).w move.w (word_FFFF91B0).w,var_4(a6) move.w (GlobalClock).w,d2 sub.w var_4(a6),d2 cmp.w (C2_NORMAL_MSGS_KE_C2_TRANSMISSION_OIL_TEMP_MIN_).l,d2 bcs.w loc_47AAC move.b (byte_FFFF915B).w,d2 cmp.b (byte_FFFF9155).w,d2 bne.s loc_477D6 move.l d1,d3 sub.w (word_FFFF916C).w,d3 tst.w d3 bge.s loc_477CE neg.w d3 loc_477CE: ; CODE XREF: sub_45F3A+1890j cmp.w (C2_NORMAL_MSGS_KE_C2_TRANSMISSION_OIL_TEMP_SEND).l,d3 ble.s loc_477F6 loc_477D6: ; CODE XREF: sub_45F3A+1886j tst.b d2 bne.s loc_477E8 movea.l #unk_FF9ADC,a2 addq.l #1,a2 bclr #1,(a2) bra.s loc_477F4 ; --------------------------------------------------------------------------- loc_477E8: ; CODE XREF: sub_45F3A+189Ej movea.l #unk_FF9ADC,a2 addq.l #1,a2 bset #1,(a2) loc_477F4: ; CODE XREF: sub_45F3A+18ACj moveq #1,d4 loc_477F6: ; CODE XREF: sub_45F3A+189Aj tst.b d4 beq.w loc_47AAC moveq #$57,d0 ; 'W' jsr sub_4519E move.w d1,(word_FFFF916C).w move.w (GlobalClock).w,(word_FFFF91B0).w move.b d2,(byte_FFFF9155).w bra.w loc_47AAC ; --------------------------------------------------------------------------- loc_47816: ; CODE XREF: sub_45F3A+10C0j cmpi.b #8,d0 bne.w loc_47AAC move.b (byte_FFFFA3AE).w,d1 cmp.b (byte_FFFF913B).w,d1 beq.s loc_47852 tst.b d1 beq.s loc_4783A movea.l #unk_FF9AD6,a2 addq.l #2,a2 bset #1,(a2) bra.s loc_47846 ; --------------------------------------------------------------------------- loc_4783A: ; CODE XREF: sub_45F3A+18F0j movea.l #unk_FF9AD6,a2 addq.l #2,a2 bclr #1,(a2) loc_47846: ; CODE XREF: sub_45F3A+18FEj moveq #$1F,d0 jsr sub_4519E move.b d1,(byte_FFFF913B).w loc_47852: ; CODE XREF: sub_45F3A+18ECj move.b (byte_FFFFA565).w,d3 cmp.b (byte_FFFF9130).w,d3 beq.s loc_47888 tst.b d3 beq.s loc_4786E movea.l #unk_FF9AD6,a2 addq.l #2,a2 bset #2,(a2) bra.s loc_4787A ; --------------------------------------------------------------------------- loc_4786E: ; CODE XREF: sub_45F3A+1924j movea.l #unk_FF9AD6,a2 addq.l #2,a2 bclr #2,(a2) loc_4787A: ; CODE XREF: sub_45F3A+1932j moveq #$36,d0 ; '6' jsr sub_4519E move.b (byte_FFFFA565).w,(byte_FFFF9130).w loc_47888: ; CODE XREF: sub_45F3A+1920j btst #4,(byte_FFFFA732).w sne d0 neg.b d0 cmp.b (byte_FFFF9132).w,d0 beq.s loc_478D0 btst #4,(byte_FFFFA732).w beq.s loc_478AE movea.l #unk_FF9AD6,a2 addq.l #2,a2 bset #3,(a2) bra.s loc_478BA ; --------------------------------------------------------------------------- loc_478AE: ; CODE XREF: sub_45F3A+1964j movea.l #unk_FF9AD6,a2 addq.l #2,a2 bclr #3,(a2) loc_478BA: ; CODE XREF: sub_45F3A+1972j moveq #$20,d0 ; ' ' jsr sub_4519E btst #4,(byte_FFFFA732).w sne d0 neg.b d0 move.b d0,(byte_FFFF9132).w loc_478D0: ; CODE XREF: sub_45F3A+195Cj btst #1,(byte_FFFFA732).w sne d0 neg.b d0 cmp.b (byte_FFFF9131).w,d0 beq.s loc_47918 btst #1,(byte_FFFFA732).w beq.s loc_478F6 movea.l #unk_FF9AD6,a2 addq.l #2,a2 bset #4,(a2) bra.s loc_47902 ; --------------------------------------------------------------------------- loc_478F6: ; CODE XREF: sub_45F3A+19ACj movea.l #unk_FF9AD6,a2 addq.l #2,a2 bclr #4,(a2) loc_47902: ; CODE XREF: sub_45F3A+19BAj moveq #$21,d0 ; '!' jsr sub_4519E btst #1,(byte_FFFFA732).w sne d1 neg.b d1 move.b d1,(byte_FFFF9131).w loc_47918: ; CODE XREF: sub_45F3A+19A4j btst #6,(byte_FFFFAAD0).w sne d1 neg.b d1 or.b (byte_FFFFA857).w,d1 move.b d1,(byte_FFFF9135).w cmp.b (byte_FFFF9136).w,d1 beq.s loc_4795A tst.b d1 beq.s loc_47942 movea.l #unk_FF9AD6,a2 addq.l #3,a2 bset #5,(a2) bra.s loc_4794E ; --------------------------------------------------------------------------- loc_47942: ; CODE XREF: sub_45F3A+19F8j movea.l #unk_FF9AD6,a2 addq.l #3,a2 bclr #5,(a2) loc_4794E: ; CODE XREF: sub_45F3A+1A06j moveq #$2A,d0 ; '*' jsr sub_4519E move.b d1,(byte_FFFF9136).w loc_4795A: ; CODE XREF: sub_45F3A+19F4j move.b (byte_FFFFADBC).w,d3 cmp.b (byte_FFFF9125).w,d3 beq.s loc_47990 tst.b d3 beq.s loc_47976 movea.l #unk_FF9AD6,a2 addq.l #3,a2 bset #6,(a2) bra.s loc_47982 ; --------------------------------------------------------------------------- loc_47976: ; CODE XREF: sub_45F3A+1A2Cj movea.l #unk_FF9AD6,a2 addq.l #3,a2 bclr #6,(a2) loc_47982: ; CODE XREF: sub_45F3A+1A3Aj moveq #$2B,d0 ; '+' jsr sub_4519E move.b (byte_FFFFADBC).w,(byte_FFFF9125).w loc_47990: ; CODE XREF: sub_45F3A+1A28j clr.b d3 move.b (byte_FFFFA67E).w,d4 moveq #1,d1 cmp.b d4,d1 beq.s loc_479A2 cmpi.b #2,d4 bne.s loc_479A4 loc_479A2: ; CODE XREF: sub_45F3A+1A60j addq.b #1,d3 loc_479A4: ; CODE XREF: sub_45F3A+1A66j clr.b d4 move.b (byte_FFFF9176).w,d5 cmp.b d5,d1 beq.s loc_479B4 cmpi.b #2,d5 bne.s loc_479B6 loc_479B4: ; CODE XREF: sub_45F3A+1A72j addq.b #1,d4 loc_479B6: ; CODE XREF: sub_45F3A+1A78j cmp.b d4,d3 beq.s loc_479E6 tst.b d3 beq.s loc_479CC movea.l #unk_FF9AD6,a2 addq.l #4,a2 bset #7,(a2) bra.s loc_479D8 ; --------------------------------------------------------------------------- loc_479CC: ; CODE XREF: sub_45F3A+1A82j movea.l #unk_FF9AD6,a2 addq.l #4,a2 bclr #7,(a2) loc_479D8: ; CODE XREF: sub_45F3A+1A90j moveq #$34,d0 ; '4' jsr sub_4519E move.b (byte_FFFFA67E).w,(byte_FFFF9176).w loc_479E6: ; CODE XREF: sub_45F3A+1A7Ej btst #7,(byte_FFFFAF98).w sne d0 neg.b d0 cmp.b (byte_FFFF913A).w,d0 beq.s loc_47A2E btst #7,(byte_FFFFAF98).w beq.s loc_47A0C movea.l #unk_FF9AD6,a2 addq.l #4,a2 bset #2,(a2) bra.s loc_47A18 ; --------------------------------------------------------------------------- loc_47A0C: ; CODE XREF: sub_45F3A+1AC2j movea.l #unk_FF9AD6,a2 addq.l #4,a2 bclr #2,(a2) loc_47A18: ; CODE XREF: sub_45F3A+1AD0j moveq #$2F,d0 ; '/' jsr sub_4519E btst #7,(byte_FFFFAF98).w sne d0 neg.b d0 move.b d0,(byte_FFFF913A).w loc_47A2E: ; CODE XREF: sub_45F3A+1ABAj btst #2,(byte_FFFF9E8F).w sne d0 neg.b d0 cmp.b (byte_FFFF9122).w,d0 beq.s loc_47A76 btst #2,(byte_FFFF9E8F).w beq.s loc_47A54 movea.l #unk_FF9AD6,a2 addq.l #4,a2 bset #3,(a2) bra.s loc_47A60 ; --------------------------------------------------------------------------- loc_47A54: ; CODE XREF: sub_45F3A+1B0Aj movea.l #unk_FF9AD6,a2 addq.l #4,a2 bclr #3,(a2) loc_47A60: ; CODE XREF: sub_45F3A+1B18j moveq #$30,d0 ; '0' jsr sub_4519E btst #2,(byte_FFFF9E8F).w sne d3 neg.b d3 move.b d3,(byte_FFFF9122).w loc_47A76: ; CODE XREF: sub_45F3A+1B02j move.b (byte_FFFFA93D).w,d3 cmp.b (byte_FFFF9134).w,d3 beq.s loc_47AAC tst.b d3 beq.s loc_47A92 movea.l #unk_FF9AD6,a2 addq.l #4,a2 bset #4,(a2) bra.s loc_47A9E ; --------------------------------------------------------------------------- loc_47A92: ; CODE XREF: sub_45F3A+1B48j movea.l #unk_FF9AD6,a2 addq.l #4,a2 bclr #4,(a2) loc_47A9E: ; CODE XREF: sub_45F3A+1B56j moveq #$31,d0 ; '1' jsr sub_4519E move.b (byte_FFFFA93D).w,(byte_FFFF9134).w loc_47AAC: ; CODE XREF: sub_45F3A+2ECj ; sub_45F3A+348j ... movem.l (sp)+,d1-d2/d6-a1 unlk a6 rts ; End of function sub_45F3A ; =============== S U B R O U T I N E ======================================= sub_47AB4: ; CODE XREF: sub_45F3A+360p ; sub_45F3A+396p ... cmpi.b #4,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_47ADA move.w (word_FFFF905C).w,d3 mulu.w #$D,d3 divu.w #$105,d3 move.b d3,(byte_FFFF91DD).w move.b (byte_FFFF9149).w,d0 loc_47AD2: ; CODE XREF: sub_47AB4+40j move.b (Dbw_Model?_2).w,(byte_FFFF91DB).w bra.s locret_47B0E ; --------------------------------------------------------------------------- loc_47ADA: ; CODE XREF: sub_47AB4+8j tst.b (byte_FFFFB370).w beq.s loc_47AF6 loc_47AE0: ; DATA XREF: sub_45F3A+A74o ; sub_45F3A+AD0o ... move.w (word_FFFF900A).w,d3 mulu.w #$D,d3 divu.w #$105,d3 move.b d3,(byte_FFFF91DD).w move.b (byte_FFFF9147).w,d0 bra.s loc_47AD2 ; --------------------------------------------------------------------------- loc_47AF6: ; CODE XREF: sub_47AB4+2Aj move.w (word_FFFFAB66).w,d3 mulu.w #$D,d3 divu.w #$105,d3 move.b d3,(byte_FFFF91DD).w move.b (byte_FFFF9148).w,d0 clr.b (byte_FFFF91DB).w locret_47B0E: ; CODE XREF: sub_47AB4+24j rts ; End of function sub_47AB4 ; =============== S U B R O U T I N E ======================================= sub_47B10: ; CODE XREF: sub_45F3A+3DCp ; sub_45F3A:loc_46C98p movem.l d1-d2/d6-d7,-(sp) move.b d0,d7 beq.s loc_47B24 movea.l #unk_FF9ADC,a2 bset #2,(a2) bra.s loc_47B2E ; --------------------------------------------------------------------------- loc_47B24: ; CODE XREF: sub_47B10+6j movea.l #unk_FF9ADC,a2 bclr #2,(a2) loc_47B2E: ; CODE XREF: sub_47B10+12j move.b (byte_FFFF91DD).w,d6 move.l d6,d3 move.b d3,(byte_FFFF9AA9).w move.b (byte_FFFF91DB).w,d2 move.l d2,d1 move.b d1,(byte_FFFF9AAA).w moveq #4,d0 jsr sub_4519E move.b d6,(byte_FFFF91DE).w move.b d7,(byte_FFFF91DA).w move.b d2,(byte_FFFF91DC).w movem.l (sp)+,d1-d2/d6-d7 rts ; End of function sub_47B10 ; =============== S U B R O U T I N E ======================================= sub_47B5C: ; CODE XREF: sub_45F3A:loc_46AC2p ; sub_47DA2:loc_483B0p ... tst.b (OISTER_KE_OIL_STARVE_ENABLE).l ; Bit selectable to allow oil starvation algorithm to run. ; BOOLEAN beq.s loc_47B72 move.b (byte_FFFFAB80).w,d0 eori.b #1,d0 and.b (byte_FFFFAB7F).w,d0 bra.s locret_47B76 ; --------------------------------------------------------------------------- loc_47B72: ; CODE XREF: sub_47B5C+6j move.b (byte_FFFFB37C).w,d0 locret_47B76: ; CODE XREF: sub_47B5C+14j rts ; End of function sub_47B5C ; =============== S U B R O U T I N E ======================================= sub_47B78: ; CODE XREF: sub_45F3A+3EEp ; sub_47DA2+20p move.l (byte_FFFF8252).w,d3 btst #$15,d3 bne.s loc_47B88 clr.b (byte_FFFF913D).w bra.s loc_47B8E ; --------------------------------------------------------------------------- loc_47B88: ; CODE XREF: sub_47B78+8j move.b #1,(byte_FFFF913D).w loc_47B8E: ; CODE XREF: sub_47B78+Ej btst #1,(byte_FFFF8A92).w bne.s loc_47BD4 btst #1,(byte_FFFF8A94).w bne.s loc_47BD4 btst #1,(byte_FFFF8A96).w bne.s loc_47BD4 btst #1,(byte_FFFF8A98).w bne.s loc_47BD4 btst #1,(byte_FFFF8A9A).w bne.s loc_47BD4 btst #1,(byte_FFFF8A9C).w bne.s loc_47BD4 btst #1,(byte_FFFF8A8E).w bne.s loc_47BD4 btst #1,(byte_FFFF8AAA).w bne.s loc_47BD4 clr.b (byte_FFFF9147).w bra.s loc_47BDA ; --------------------------------------------------------------------------- loc_47BD4: ; CODE XREF: sub_47B78+1Cj ; sub_47B78+24j ... move.b #1,(byte_FFFF9147).w loc_47BDA: ; CODE XREF: sub_47B78+5Aj btst #1,(byte_FFFF88E0).w bne.s loc_47C08 btst #1,(byte_FFFF88E4).w bne.s loc_47C08 btst #1,(byte_FFFF8A1C).w bne.s loc_47C08 btst #1,(byte_FFFF88E2).w bne.s loc_47C08 btst #1,(byte_FFFF8A1E).w bne.s loc_47C08 clr.b (byte_FFFF9148).w bra.s loc_47C0E ; --------------------------------------------------------------------------- loc_47C08: ; CODE XREF: sub_47B78+68j ; sub_47B78+70j ... move.b #1,(byte_FFFF9148).w loc_47C0E: ; CODE XREF: sub_47B78+8Ej btst #1,(byte_FFFF88DE).w bne.s loc_47C54 btst #1,(byte_FFFF8934).w bne.s loc_47C54 btst #1,(byte_FFFF8A9E).w bne.s loc_47C54 btst #1,(byte_FFFF88C4).w bne.s loc_47C54 btst #1,(byte_FFFF8A8C).w bne.s loc_47C54 btst #1,(byte_FFFF8A42).w bne.s loc_47C54 btst #1,(byte_FFFF8A8E).w bne.s loc_47C54 btst #1,(byte_FFFF8AAA).w bne.s loc_47C54 clr.b (byte_FFFF9149).w bra.s loc_47C5A ; --------------------------------------------------------------------------- loc_47C54: ; CODE XREF: sub_47B78+9Cj ; sub_47B78+A4j ... move.b #1,(byte_FFFF9149).w loc_47C5A: ; CODE XREF: sub_47B78+DAj btst #3,d3 bne.s loc_47C6C btst #4,d3 bne.s loc_47C6C clr.b (byte_FFFF9141).w bra.s loc_47C72 ; --------------------------------------------------------------------------- loc_47C6C: ; CODE XREF: sub_47B78+E6j ; sub_47B78+ECj move.b #1,(byte_FFFF9141).w loc_47C72: ; CODE XREF: sub_47B78+F2j btst #$1F,d3 bne.s loc_47C82 clr.b (byte_FFFF915D).w clr.b (byte_FFFF9144).w bra.s loc_47C8C ; --------------------------------------------------------------------------- loc_47C82: ; CODE XREF: sub_47B78+FEj moveq #1,d5 move.b d5,(byte_FFFF915D).w move.b d5,(byte_FFFF9144).w loc_47C8C: ; CODE XREF: sub_47B78+108j btst #1,(byte_FFFF89E4).w bne.s loc_47CB0 btst #1,(byte_FFFF89E6).w bne.s loc_47CB0 tst.b (byte_FFFFB4A0).w bne.s loc_47CB0 btst #1,(byte_FFFF89B6).w bne.s loc_47CB0 clr.b (byte_FFFF913E).w bra.s loc_47CB6 ; --------------------------------------------------------------------------- loc_47CB0: ; CODE XREF: sub_47B78+11Aj ; sub_47B78+122j ... move.b #1,(byte_FFFF913E).w loc_47CB6: ; CODE XREF: sub_47B78+136j btst #1,(byte_FFFF8A6E).w bne.s loc_47CCA tst.b (byte_FFFFB4A0).w bne.s loc_47CCA clr.b (byte_FFFF915C).w bra.s loc_47CD0 ; --------------------------------------------------------------------------- loc_47CCA: ; CODE XREF: sub_47B78+144j ; sub_47B78+14Aj move.b #1,(byte_FFFF915C).w loc_47CD0: ; CODE XREF: sub_47B78+150j move.b (byte_FFFFA3AA).w,d4 bne.s loc_47CE2 tst.b (byte_FFFFB4A0).w bne.s loc_47CE2 clr.b (byte_FFFF915A).w bra.s loc_47CE8 ; --------------------------------------------------------------------------- loc_47CE2: ; CODE XREF: sub_47B78+15Cj ; sub_47B78+162j move.b #1,(byte_FFFF915A).w loc_47CE8: ; CODE XREF: sub_47B78+168j btst #1,(byte_FFFF89DC).w bne.s loc_47CFE btst #1,(byte_FFFF89DE).w bne.s loc_47CFE clr.b (byte_FFFF915B).w bra.s loc_47D04 ; --------------------------------------------------------------------------- loc_47CFE: ; CODE XREF: sub_47B78+176j ; sub_47B78+17Ej move.b #1,(byte_FFFF915B).w loc_47D04: ; CODE XREF: sub_47B78+184j tst.b d4 beq.s loc_47D16 tst.b (byte_FFFFA3B4).w bne.s loc_47D1C cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_47D1C loc_47D16: ; CODE XREF: sub_47B78+18Ej clr.b (byte_FFFF9146).w bra.s loc_47D22 ; --------------------------------------------------------------------------- loc_47D1C: ; CODE XREF: sub_47B78+194j ; sub_47B78+19Cj move.b #1,(byte_FFFF9146).w loc_47D22: ; CODE XREF: sub_47B78+1A2j btst #6,d3 bne.s loc_47D2E clr.b (byte_FFFF913F).w bra.s loc_47D34 ; --------------------------------------------------------------------------- loc_47D2E: ; CODE XREF: sub_47B78+1AEj move.b #1,(byte_FFFF913F).w loc_47D34: ; CODE XREF: sub_47B78+1B4j btst #1,(byte_FFFF89A2).w bne.s loc_47D4A btst #1,(byte_FFFF89A4).w bne.s loc_47D4A clr.b (byte_FFFF9140).w bra.s loc_47D50 ; --------------------------------------------------------------------------- loc_47D4A: ; CODE XREF: sub_47B78+1C2j ; sub_47B78+1CAj move.b #1,(byte_FFFF9140).w loc_47D50: ; CODE XREF: sub_47B78+1D0j btst #$D,d3 bne.s loc_47D66 btst #1,(byte_FFFF8AA4).w beq.s loc_47D6E tst.b (F_TANK_KE_GAGE_TO_ZERO_ON_PUMP_FAULT).l ; Bit selectable cal to force the PWM Fuel Level output to zero when a secondary fuel pump fault is present. ; BOOLEAN beq.s loc_47D6E loc_47D66: ; CODE XREF: sub_47B78+1DCj move.b #1,(byte_FFFF9142).w bra.s loc_47D72 ; --------------------------------------------------------------------------- loc_47D6E: ; CODE XREF: sub_47B78+1E4j ; sub_47B78+1ECj clr.b (byte_FFFF9142).w loc_47D72: ; CODE XREF: sub_47B78+1F4j btst #1,(byte_FFFF89A8).w bne.s loc_47D88 btst #1,(byte_FFFF89AA).w bne.s loc_47D88 clr.b (byte_FFFF9110).w bra.s loc_47D8E ; --------------------------------------------------------------------------- loc_47D88: ; CODE XREF: sub_47B78+200j ; sub_47B78+208j move.b #1,(byte_FFFF9110).w loc_47D8E: ; CODE XREF: sub_47B78+20Ej btst #$14,d3 bne.s loc_47D9A clr.b (byte_FFFF9143).w bra.s locret_47DA0 ; --------------------------------------------------------------------------- loc_47D9A: ; CODE XREF: sub_47B78+21Aj move.b #1,(byte_FFFF9143).w locret_47DA0: ; CODE XREF: sub_47B78+220j rts ; End of function sub_47B78 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_47DA2: ; CODE XREF: OS1:00028EC6p var_C = -$C var_A = -$A var_8 = -8 var_6 = -6 var_4 = -4 var_2 = -2 link a6,#-$C movem.l d1-d2/d6-a1/a4-a5,-(sp) cmpi.b #5,d0 bhi.w loc_4894C cmpi.b #3,d0 bhi.w loc_48A68 cmpi.b #2,d0 bne.w loc_4894C jsr sub_47B78 jsr sub_84854 move.w d0,var_8(a6) lea var_8(a6),a2 move.b (a2),(byte_FFFF9AB8).w addq.l #1,a2 move.b (a2),(byte_FFFF9AB9).w move.w (word_FFFFB3E8).w,d3 add.w d3,d3 ext.l d3 moveq #$33,d2 ; '3' divs.w d2,d3 moveq #$28,d6 ; '(' add.w d6,d3 move.b d3,(byte_FFFF9AA8).w move.w (word_FFFF9E28).w,d3 muls.w #$15B,d3 bpl.s loc_47E04 addi.l #$7FFF,d3 loc_47E04: ; CODE XREF: sub_47DA2+5Aj asr.l #8,d3 asr.l #7,d3 add.w d6,d3 tst.w d3 blt.s loc_47E12 cmpi.w #$FF,d3 loc_47E12: ; CODE XREF: sub_47DA2+6Aj move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d1 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type moveq #4,d7 cmp.b d1,d7 bne.s loc_47E50 move.w (word_FFFF905C).w,d3 moveq #$D,d2 mulu.w d2,d3 divu.w #$105,d3 move.b d3,(byte_FFFF91DD).w move.b (byte_FFFF9149).w,(byte_FFFF91DA).w move.w (GlobalClock).w,(word_FFFF91A4).w move.b (byte_FFFFB15A).w,d0 lsr.b #2,d0 andi.b #$1F,d0 move.b d0,(byte_FFFF91D5).w loc_47E48: ; CODE XREF: sub_47DA2+CAj move.b (Dbw_Model?_2).w,(byte_FFFF91DB).w bra.s loc_47E88 ; --------------------------------------------------------------------------- loc_47E50: ; CODE XREF: sub_47DA2+7Aj tst.b (byte_FFFFB370).w beq.s loc_47E6E move.w (word_FFFF900A).w,d3 moveq #$D,d2 mulu.w d2,d3 divu.w #$105,d3 move.b d3,(byte_FFFF91DD).w move.b (byte_FFFF9147).w,(byte_FFFF91DA).w bra.s loc_47E48 ; --------------------------------------------------------------------------- loc_47E6E: ; CODE XREF: sub_47DA2+B2j move.w (word_FFFFAB66).w,d3 moveq #$D,d2 mulu.w d2,d3 divu.w #$105,d3 move.b d3,(byte_FFFF91DD).w move.b (byte_FFFF9148).w,(byte_FFFF91DA).w clr.b (byte_FFFF91DB).w loc_47E88: ; CODE XREF: sub_47DA2+ACj move.b (byte_FFFF91DD).w,d0 move.l d0,d3 move.b d3,(byte_FFFF9AA9).w move.b (byte_FFFF91DB).w,d4 move.l d4,d3 move.b d3,(byte_FFFF9AAA).w move.b d0,(byte_FFFF91DE).w move.b d4,(byte_FFFF91DC).w move.w (EngineRPM_PID_000C___).w,d3 moveq #$19,d0 mulu.w d0,d3 lsr.l #5,d3 move.w d3,var_C(a6) lea var_C(a6),a2 move.b (a2),(byte_FFFF9AAB).w addq.l #1,a2 move.b (a2),(byte_FFFF9AAC).w btst #5,(byte_FFFFAD8B).w beq.s loc_47ED4 movea.l #unk_FF9AD6,a2 bset #1,(a2) bra.s loc_47EDE ; --------------------------------------------------------------------------- loc_47ED4: ; CODE XREF: sub_47DA2+124j movea.l #unk_FF9AD6,a2 bclr #1,(a2) loc_47EDE: ; CODE XREF: sub_47DA2+130j btst #0,(byte_FFFFAD8B).w beq.s loc_47EF4 movea.l #unk_FF9AD6,a2 addq.l #2,a2 bset #0,(a2) bra.s loc_47F00 ; --------------------------------------------------------------------------- loc_47EF4: ; CODE XREF: sub_47DA2+142j movea.l #unk_FF9AD6,a2 addq.l #2,a2 bclr #0,(a2) loc_47F00: ; CODE XREF: sub_47DA2+150j move.w #$19C0,d3 mulu.w (word_FFFFAEBC).w,d3 lsr.l #8,d3 lsr.l #8,d3 lsr.l #3,d3 cmpi.l #$FF,d3 bls.s loc_47F1A move.b #$FF,d3 loc_47F1A: ; CODE XREF: sub_47DA2+172j move.b d3,(byte_FFFF9AAD).w move.w #$19C0,d3 mulu.w (word_FFFFAEBC).w,d3 lsr.l #8,d3 lsr.l #4,d3 move.w d3,var_A(a6) lea var_A(a6),a2 move.b (a2),(byte_FFFF9AAE).w addq.l #1,a2 move.b (a2),(byte_FFFF9AAF).w clr.w (word_FFFF910A).w move.w (word_FFFF910A).w,(word_FFFF90BE).w tst.b (byte_FFFFAF3A).w beq.s loc_47F58 movea.l #unk_FF9AD6,a2 bset #2,(a2) bra.s loc_47F62 ; --------------------------------------------------------------------------- loc_47F58: ; CODE XREF: sub_47DA2+1A8j movea.l #unk_FF9AD6,a2 bclr #2,(a2) loc_47F62: ; CODE XREF: sub_47DA2+1B4j tst.b (byte_FFFFA3C4).w bne.s loc_47F74 movea.l #unk_FF9AD6,a2 bset #3,(a2) bra.s loc_47F7E ; --------------------------------------------------------------------------- loc_47F74: ; CODE XREF: sub_47DA2+1C4j movea.l #unk_FF9AD6,a2 bclr #3,(a2) loc_47F7E: ; CODE XREF: sub_47DA2+1D0j clr.w d3 move.b (byte_FFFFA3B8).w,d3 move.b byte_8A4FA(d3.w),d3 move.b d3,(byte_FFFF9163).w move.b #$80,d5 cmp.b d3,d5 bne.s loc_47FA6 cmpi.b #6,(byte_FFFFA3AF).w bne.s loc_47FA6 move.b #$40,(byte_FFFF9163).w ; '@' loc_47FA6: ; CODE XREF: sub_47DA2+1F4j ; sub_47DA2+1FCj move.b (byte_FFFF9163).w,(byte_FFFF9AB1).w clr.w d3 move.b (byte_FFFFA3AF).w,d3 move.b byte_8A504(d3.w),d3 move.b d3,(byte_FFFF9166).w move.b d3,(byte_FFFF9164).w move.b d3,(byte_FFFF9AB2).w move.w (word_FFFFA3C2).w,d3 muls.w #3,d3 bpl.s loc_47FD2 addq.w #3,d3 loc_47FD2: ; CODE XREF: sub_47DA2+22Cj asr.w #2,d3 add.w d6,d3 tst.w d3 blt.s loc_47FE6 cmpi.w #$FF,d3 bls.s loc_47FE8 move.b #$FF,d3 bra.s loc_47FE8 ; --------------------------------------------------------------------------- loc_47FE6: ; CODE XREF: sub_47DA2+236j clr.b d3 loc_47FE8: ; CODE XREF: sub_47DA2+23Cj ; sub_47DA2+242j move.b d3,(byte_FFFF9AB0).w tst.b d1 beq.s loc_47FF6 cmpi.b #1,d1 bne.s loc_47FFC loc_47FF6: ; CODE XREF: sub_47DA2+24Cj move.b d7,(byte_FFFF90C0).w bra.s loc_48030 ; --------------------------------------------------------------------------- loc_47FFC: ; CODE XREF: sub_47DA2+252j cmpi.b #2,d1 bne.s loc_48018 tst.b (TRANS_IO_KE_MANUAL_TRANSMISSION_SPEEDS).l ; Used to configure Class 2 3A3C transmission option message for manual transmissions. ; Xmsn_Spd_Type bne.s loc_48012 move.b #$40,(byte_FFFF90C0).w ; '@' bra.s loc_48030 ; --------------------------------------------------------------------------- loc_48012: ; CODE XREF: sub_47DA2+266j move.b d5,(byte_FFFF90C0).w bra.s loc_48030 ; --------------------------------------------------------------------------- loc_48018: ; CODE XREF: sub_47DA2+25Ej cmp.b d1,d7 bne.s loc_48030 tst.b (TRANS_IO_KE_ALLISON_LCT_MODEL).l ; Used to configure Class 2 3A3C transmission option message for Allison LCT applications. ; Allison_LCT_Model_Type bne.s loc_4802A move.b d2,(byte_FFFF90C0).w bra.s loc_48030 ; --------------------------------------------------------------------------- loc_4802A: ; CODE XREF: sub_47DA2+280j move.b #$E,(byte_FFFF90C0).w loc_48030: ; CODE XREF: sub_47DA2+258j ; sub_47DA2+26Ej ... tst.b (byte_FFFF9DA4).w beq.s loc_48042 movea.l #unk_FF9AD6,a2 bset #5,(a2) bra.s loc_4804C ; --------------------------------------------------------------------------- loc_48042: ; CODE XREF: sub_47DA2+292j movea.l #unk_FF9AD6,a2 bclr #5,(a2) loc_4804C: ; CODE XREF: sub_47DA2+29Ej tst.b (byte_FFFF9DA5).w beq.s loc_4805E movea.l #unk_FF9AD6,a2 bset #6,(a2) bra.s loc_48068 ; --------------------------------------------------------------------------- loc_4805E: ; CODE XREF: sub_47DA2+2AEj movea.l #unk_FF9AD6,a2 bclr #6,(a2) loc_48068: ; CODE XREF: sub_47DA2+2BAj move.w (word_FFFF9DAA).w,d3 mulu.w d2,d3 move.w #$105,d1 divu.w d1,d3 move.b d3,(byte_FFFF91E8).w move.b d3,(byte_FFFF9ABA).w move.w (CoolantTemperatureOrDefault).w,d3 add.w d3,d3 ext.l d3 divs.w #$33,d3 ; '3' add.w d6,d3 move.b (C2_NORMAL_MSGS_KE_C2_COOLANT_TEMP_MAX).l,d4 cmp.b d4,d3 bls.s loc_480A2 move.l (EngineRunTime).w,d5 cmp.l (C2_NORMAL_MSGS_KE_C2_COOL_TEMP_LIMIT_RUNTIME).l,d5 ; Class 2 coolant temperature will be limited to KE_C2_Coolant_Temp for this amount of time. ; Seconds bcc.s loc_480A2 move.l d4,d3 loc_480A2: ; CODE XREF: sub_47DA2+2F0j ; sub_47DA2+2FCj move.b d3,(byte_FFFF9ABB).w move.l (dword_FFFFA726).w,d3 blt.s loc_480C8 cmpi.l #$FFFF,d3 bhi.s loc_480C2 mulu.w #5,d3 lsr.l #8,d3 lsr.l #2,d3 cmpi.w #$FF,d3 bls.s loc_480CA loc_480C2: ; CODE XREF: sub_47DA2+310j move.b #$FF,d3 bra.s loc_480CA ; --------------------------------------------------------------------------- loc_480C8: ; CODE XREF: sub_47DA2+308j clr.b d3 loc_480CA: ; CODE XREF: sub_47DA2+31Ej ; sub_47DA2+324j move.b d3,(byte_FFFF9ABC).w tst.b (byte_FFFF90DC).w beq.s loc_480E2 movea.l #unk_FF9AD6,a2 addq.l #1,a2 bset #0,(a2) bra.s loc_480EE ; --------------------------------------------------------------------------- loc_480E2: ; CODE XREF: sub_47DA2+330j movea.l #unk_FF9AD6,a2 addq.l #1,a2 bclr #0,(a2) loc_480EE: ; CODE XREF: sub_47DA2+33Ej move.w (word_FFFFA730).w,d3 mulu.w d2,d3 divu.w d1,d3 move.b d3,(byte_FFFF91BA).w move.b d3,(byte_FFFF9ABD).w clr.w d3 move.b (ENG_CONSTANTS_KE_ENGINE_IDENTIFIER).l,d3 ; Describes the type of engine associated with the vehicle including the engine displacement and valve train geometry. ; Engine_Identifier_Type move.b byte_8A514(d3.w),d3 move.b d3,(byte_FFFF9165).w move.b d3,(byte_FFFF9ABE).w tst.b (byte_FFFFB048).w beq.s loc_48130 tst.w (word_FFFF9020).w beq.s loc_48130 movea.l #unk_FF9AD6,a2 addq.l #1,a2 bset #3,(a2) bra.s loc_4813C ; --------------------------------------------------------------------------- loc_48130: ; CODE XREF: sub_47DA2+378j ; sub_47DA2+37Ej movea.l #unk_FF9AD6,a2 addq.l #1,a2 bclr #3,(a2) loc_4813C: ; CODE XREF: sub_47DA2+38Cj move.w #$19C0,d3 mulu.w (word_FFFF9020).w,d3 lsr.l #8,d3 lsr.l #8,d3 lsr.l #3,d3 cmpi.l #$FF,d3 bls.s loc_48156 move.b #$FF,d3 loc_48156: ; CODE XREF: sub_47DA2+3AEj move.b d3,(byte_FFFF9ABF).w move.w (VEH_SPEED_KE_RTD_FAULT_MAX_SPEED).l,d3 ; Maximum vehicle speed when an RTD fault is sent to the PCM by the RTD system. ; MPH cmp.w (VEH_SPEED_KE_RTD_FAULT_ETC_GOV_MAX_SPEED).l,d3 bhi.s loc_48174 move.w #$19C0,d3 mulu.w (VEH_SPEED_KE_RTD_FAULT_MAX_SPEED).l,d3 ; Maximum vehicle speed when an RTD fault is sent to the PCM by the RTD system. ; MPH bra.s loc_4817E ; --------------------------------------------------------------------------- loc_48174: ; CODE XREF: sub_47DA2+3C4j move.w #$19C0,d3 mulu.w (VEH_SPEED_KE_RTD_FAULT_ETC_GOV_MAX_SPEED).l,d3 loc_4817E: ; CODE XREF: sub_47DA2+3D0j lsr.l #8,d3 lsr.l #8,d3 lsr.l #3,d3 cmpi.l #$FF,d3 bls.s loc_48190 move.b #$FF,d3 loc_48190: ; CODE XREF: sub_47DA2+3E8j move.b d3,(byte_FFFF9AC0).w move.w (word_FFFFB4A2).w,d3 mulu.w d0,d3 lsr.l #6,d3 move.w d3,var_6(a6) lea var_6(a6),a2 move.b (a2),(byte_FFFF9AC2).w addq.l #1,a2 move.b (a2),(byte_FFFF9AC3).w tst.b (byte_FFFFB54A).w bne.s loc_481BA move.l (dword_FFFF808E).w,(dword_FFFF8214).w loc_481BA: ; CODE XREF: sub_47DA2+410j movea.l #unk_FF9AD6,a0 movea.l a0,a5 addq.l #1,a5 movea.l a5,a4 movea.l a4,a1 movea.l a1,a2 bclr #5,(a2) move.w (word_FFFFB416).w,var_4(a6) lea var_4(a6),a2 move.b (a2),(byte_FFFF9AC6).w addq.l #1,a2 move.b (a2),(byte_FFFF9AC7).w movea.l #unk_FF8210,a2 move.b (a2),(byte_FFFF9AC8).w addq.l #1,a2 move.b (a2),(byte_FFFF9AC9).w move.w (word_FFFF9B50).w,d3 mulu.w d2,d3 divu.w d1,d3 cmpi.w #$FF,d3 bls.s loc_48204 move.b #$FF,d3 loc_48204: ; CODE XREF: sub_47DA2+45Cj move.b d3,(byte_FFFF9ACA).w move.l (dword_FFFF9B34).w,d3 lsr.l #8,d3 lsr.l #8,d3 mulu.w d0,d3 moveq #$10,d4 divu.w d4,d3 bvc.s loc_4821C move.w #$FFFF,d3 loc_4821C: ; CODE XREF: sub_47DA2+474j move.w d3,var_2(a6) lea var_2(a6),a2 move.b (a2),(byte_FFFF9ACB).w addq.l #1,a2 move.b (a2),(byte_FFFF9ACC).w move.w (F_TANK_KE_FUEL_TANK_RATED_CAPACITY).l,d3 ; Maximum Fuel Tank volume as rated by GMUTS and/or the platform. ; Liters mulu.w d0,d3 divu.w d4,d3 bvc.s loc_4823E move.w #$FFFF,d3 loc_4823E: ; CODE XREF: sub_47DA2+496j move.w d3,(word_FFFF90C2).w move.w (VEH_SYS_KE_RESTRAINTS_IDENTIFIER).l,(word_FFFF90C4).w ; Contains a serial data keying information for SDM used to verify that its calibration is correct for the vehicle it is in. ; CARDINAL move.w (word_FFFFAD8E).w,d3 move.w #$6E52,d4 mulu.w d4,d3 divu.l #(loc_47AE0+1),d3 cmpi.l #$FF,d3 bls.s loc_48268 move.b #$FF,d3 loc_48268: ; CODE XREF: sub_47DA2+4C0j move.b d3,(byte_FFFF9113).w move.b d3,(byte_FFFF9AD0).w jsr sub_4930E move.b (byte_FFFF91CC).w,(byte_FFFF9AD3).w tst.b (byte_FFFF9143).w bne.s loc_48290 movea.l #unk_FF9ADC,a2 addq.l #2,a2 bclr #1,(a2) bra.s loc_4829C ; --------------------------------------------------------------------------- loc_48290: ; CODE XREF: sub_47DA2+4DEj movea.l #unk_FF9ADC,a2 addq.l #2,a2 bset #1,(a2) loc_4829C: ; CODE XREF: sub_47DA2+4ECj clr.l d3 move.w (word_FFFF82D2).w,d3 divu.w #$CC,d3 ; '?' move.b d3,(byte_FFFF9AD4).w jsr sub_49356 tst.b (byte_FFFF91E0).w beq.s loc_482BE movea.l a0,a2 bset #4,(a2) bra.s loc_482C4 ; --------------------------------------------------------------------------- loc_482BE: ; CODE XREF: sub_47DA2+512j movea.l a0,a2 bclr #4,(a2) loc_482C4: ; CODE XREF: sub_47DA2+51Aj cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_482D4 movea.l a1,a2 bset #1,(a2) bra.s loc_482DA ; --------------------------------------------------------------------------- loc_482D4: ; CODE XREF: sub_47DA2+528j movea.l a1,a2 bclr #1,(a2) loc_482DA: ; CODE XREF: sub_47DA2+530j tst.b (byte_FFFFADF2).w bne.s loc_482E6 bset #6,(a1) bra.s loc_482EA ; --------------------------------------------------------------------------- loc_482E6: ; CODE XREF: sub_47DA2+53Cj bclr #6,(a1) loc_482EA: ; CODE XREF: sub_47DA2+542j move.b (byte_FFFF8D16).w,(byte_FFFF9160).w btst #4,(byte_FFFFA732).w beq.s loc_48302 movea.l a0,a2 addq.l #2,a2 bset #3,(a2) bra.s loc_4830A ; --------------------------------------------------------------------------- loc_48302: ; CODE XREF: sub_47DA2+554j movea.l a0,a2 addq.l #2,a2 bclr #3,(a2) loc_4830A: ; CODE XREF: sub_47DA2+55Ej btst #1,(byte_FFFFA732).w beq.s loc_4831C movea.l a0,a2 addq.l #2,a2 bset #4,(a2) bra.s loc_48324 ; --------------------------------------------------------------------------- loc_4831C: ; CODE XREF: sub_47DA2+56Ej movea.l a0,a2 addq.l #2,a2 bclr #4,(a2) loc_48324: ; CODE XREF: sub_47DA2+578j btst #6,(byte_FFFFA733).w beq.s loc_48336 movea.l a0,a2 addq.l #2,a2 bset #5,(a2) bra.s loc_4833E ; --------------------------------------------------------------------------- loc_48336: ; CODE XREF: sub_47DA2+588j movea.l a0,a2 addq.l #2,a2 bclr #5,(a2) loc_4833E: ; CODE XREF: sub_47DA2+592j btst #6,(byte_FFFFA732).w beq.s loc_48350 movea.l a0,a2 addq.l #2,a2 bset #6,(a2) bra.s loc_48358 ; --------------------------------------------------------------------------- loc_48350: ; CODE XREF: sub_47DA2+5A2j movea.l a0,a2 addq.l #2,a2 bclr #6,(a2) loc_48358: ; CODE XREF: sub_47DA2+5ACj move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (C2_NORMAL_MSGS_KE_ENGHOT_STOPENG_TEMPHI).l,d3 sgt d3 neg.b d3 move.b d3,(byte_FFFF91F0).w tst.b d3 beq.s loc_48378 movea.l a0,a2 addq.l #2,a2 bset #7,(a2) bra.s loc_48380 ; --------------------------------------------------------------------------- loc_48378: ; CODE XREF: sub_47DA2+5CAj movea.l a0,a2 addq.l #2,a2 bclr #7,(a2) loc_48380: ; CODE XREF: sub_47DA2+5D4j tst.b (byte_FFFFA3BA).w beq.s loc_48390 movea.l a0,a2 addq.l #3,a2 bset #0,(a2) bra.s loc_48398 ; --------------------------------------------------------------------------- loc_48390: ; CODE XREF: sub_47DA2+5E2j movea.l a0,a2 addq.l #3,a2 bclr #0,(a2) loc_48398: ; CODE XREF: sub_47DA2+5ECj tst.b (byte_FFFFA3AE).w beq.s loc_483A8 movea.l a0,a2 addq.l #2,a2 bset #1,(a2) bra.s loc_483B0 ; --------------------------------------------------------------------------- loc_483A8: ; CODE XREF: sub_47DA2+5FAj movea.l a0,a2 addq.l #2,a2 bclr #1,(a2) loc_483B0: ; CODE XREF: sub_47DA2+604j jsr sub_47B5C tst.b d0 beq.s loc_483C4 movea.l a0,a2 addq.l #3,a2 bset #1,(a2) bra.s loc_483CC ; --------------------------------------------------------------------------- loc_483C4: ; CODE XREF: sub_47DA2+616j movea.l a0,a2 addq.l #3,a2 bclr #1,(a2) loc_483CC: ; CODE XREF: sub_47DA2+620j moveq #1,d4 cmp.b (byte_FFFFA3B3).w,d4 bne.s loc_483DE movea.l a0,a2 addq.l #3,a2 bset #2,(a2) bra.s loc_483E6 ; --------------------------------------------------------------------------- loc_483DE: ; CODE XREF: sub_47DA2+630j movea.l a0,a2 addq.l #3,a2 bclr #2,(a2) loc_483E6: ; CODE XREF: sub_47DA2+63Aj tst.b (byte_FFFFB048).w beq.s loc_483F6 movea.l a0,a2 addq.l #3,a2 bset #3,(a2) bra.s loc_483FE ; --------------------------------------------------------------------------- loc_483F6: ; CODE XREF: sub_47DA2+648j movea.l a0,a2 addq.l #3,a2 bclr #3,(a2) loc_483FE: ; CODE XREF: sub_47DA2+652j tst.b (byte_FFFFA856).w beq.s loc_48416 movea.l a0,a2 addq.l #3,a2 bset #4,(a2) movea.l a0,a2 addq.l #4,a2 bset #6,(a2) bra.s loc_48426 ; --------------------------------------------------------------------------- loc_48416: ; CODE XREF: sub_47DA2+660j movea.l a0,a2 addq.l #3,a2 bclr #4,(a2) movea.l a0,a2 addq.l #4,a2 bclr #6,(a2) loc_48426: ; CODE XREF: sub_47DA2+672j btst #6,(byte_FFFFAAD0).w sne d3 neg.b d3 or.b (byte_FFFFA857).w,d3 move.b d3,(byte_FFFF9135).w tst.b d3 beq.s loc_48446 movea.l a0,a2 addq.l #3,a2 bset #5,(a2) bra.s loc_4844E ; --------------------------------------------------------------------------- loc_48446: ; CODE XREF: sub_47DA2+698j movea.l a0,a2 addq.l #3,a2 bclr #5,(a2) loc_4844E: ; CODE XREF: sub_47DA2+6A2j tst.b (byte_FFFFADBC).w beq.s loc_4845E movea.l a0,a2 addq.l #3,a2 bset #6,(a2) bra.s loc_48466 ; --------------------------------------------------------------------------- loc_4845E: ; CODE XREF: sub_47DA2+6B0j movea.l a0,a2 addq.l #3,a2 bclr #6,(a2) loc_48466: ; CODE XREF: sub_47DA2+6BAj move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (C2_NORMAL_MSGS_KE_ENGINECOOLANTHOTHI).l,d3 sgt d3 neg.b d3 move.b d3,(byte_FFFF91EE).w tst.b d3 beq.s loc_48486 movea.l a0,a2 addq.l #3,a2 bset #7,(a2) bra.s loc_4848E ; --------------------------------------------------------------------------- loc_48486: ; CODE XREF: sub_47DA2+6D8j movea.l a0,a2 addq.l #3,a2 bclr #7,(a2) loc_4848E: ; CODE XREF: sub_47DA2+6E2j btst #7,(byte_FFFFAD8A).w beq.s loc_484A0 movea.l a0,a2 addq.l #4,a2 bset #0,(a2) bra.s loc_484A8 ; --------------------------------------------------------------------------- loc_484A0: ; CODE XREF: sub_47DA2+6F2j movea.l a0,a2 addq.l #4,a2 bclr #0,(a2) loc_484A8: ; CODE XREF: sub_47DA2+6FCj tst.b (byte_FFFFB370).w beq.s loc_484B4 move.b (byte_FFFFA302).w,d3 bra.s loc_484B8 ; --------------------------------------------------------------------------- loc_484B4: ; CODE XREF: sub_47DA2+70Aj move.b (byte_FFFFABDA).w,d3 loc_484B8: ; CODE XREF: sub_47DA2+710j tst.b d3 beq.s loc_484C6 movea.l a0,a2 addq.l #4,a2 bset #1,(a2) bra.s loc_484CE ; --------------------------------------------------------------------------- loc_484C6: ; CODE XREF: sub_47DA2+718j movea.l a0,a2 addq.l #4,a2 bclr #1,(a2) loc_484CE: ; CODE XREF: sub_47DA2+722j btst #7,(byte_FFFFAF98).w beq.s loc_484E0 movea.l a0,a2 addq.l #4,a2 bset #2,(a2) bra.s loc_484E8 ; --------------------------------------------------------------------------- loc_484E0: ; CODE XREF: sub_47DA2+732j movea.l a0,a2 addq.l #4,a2 bclr #2,(a2) loc_484E8: ; CODE XREF: sub_47DA2+73Cj btst #2,(byte_FFFF9E8F).w beq.s loc_484FA movea.l a0,a2 addq.l #4,a2 bset #3,(a2) bra.s loc_48502 ; --------------------------------------------------------------------------- loc_484FA: ; CODE XREF: sub_47DA2+74Cj movea.l a0,a2 addq.l #4,a2 bclr #3,(a2) loc_48502: ; CODE XREF: sub_47DA2+756j tst.b (byte_FFFFA93D).w beq.s loc_48512 movea.l a0,a2 addq.l #4,a2 bset #4,(a2) bra.s loc_4851A ; --------------------------------------------------------------------------- loc_48512: ; CODE XREF: sub_47DA2+764j movea.l a0,a2 addq.l #4,a2 bclr #4,(a2) loc_4851A: ; CODE XREF: sub_47DA2+76Ej tst.b (byte_FFFFABDD).w beq.s loc_4852A movea.l a0,a2 addq.l #4,a2 bset #5,(a2) bra.s loc_48532 ; --------------------------------------------------------------------------- loc_4852A: ; CODE XREF: sub_47DA2+77Cj movea.l a0,a2 addq.l #4,a2 bclr #5,(a2) loc_48532: ; CODE XREF: sub_47DA2+786j move.b (byte_FFFFA67E).w,d3 cmp.b d3,d4 beq.s loc_48540 cmpi.b #2,d3 bne.s loc_4854A loc_48540: ; CODE XREF: sub_47DA2+796j movea.l a0,a2 addq.l #4,a2 bset #7,(a2) bra.s loc_48552 ; --------------------------------------------------------------------------- loc_4854A: ; CODE XREF: sub_47DA2+79Cj movea.l a0,a2 addq.l #4,a2 bclr #7,(a2) loc_48552: ; CODE XREF: sub_47DA2+7A6j tst.b (OISTER_KE_OIL_STARVE_ENABLE).l ; Bit selectable to allow oil starvation algorithm to run. ; BOOLEAN beq.s loc_48564 move.b (byte_FFFFAB7F).w,d3 and.b (byte_FFFFAB80).w,d3 bra.s loc_48574 ; --------------------------------------------------------------------------- loc_48564: ; CODE XREF: sub_47DA2+7B6j tst.b (VEH_SYS_KE_ENGINE_ALARM_ENABLE).l ; If set TRUE, then execute engine alarm or shut down functionality. ; BOOLEAN beq.s loc_48572 move.b (byte_FFFFABDE).w,d3 bra.s loc_48574 ; --------------------------------------------------------------------------- loc_48572: ; CODE XREF: sub_47DA2+7C8j clr.b d3 loc_48574: ; CODE XREF: sub_47DA2+7C0j ; sub_47DA2+7CEj tst.b d3 beq.s loc_48582 addq.l #5,a0 movea.l a0,a2 bset #0,(a2) bra.s loc_4858A ; --------------------------------------------------------------------------- loc_48582: ; CODE XREF: sub_47DA2+7D4j addq.l #5,a0 movea.l a0,a2 bclr #0,(a2) loc_4858A: ; CODE XREF: sub_47DA2+7DEj jsr sub_49382 moveq #1,d4 move.b d4,(byte_FFFF90C7).w move.b d4,(byte_FFFF90D8).w move.b d4,(byte_FFFF90E6).w move.b d4,(byte_FFFF90E1).w moveq #2,d5 move.b d5,(byte_FFFF90FE).w move.b #8,(byte_FFFF90F7).w move.b d4,(byte_FFFF90BC).w move.b d7,(byte_FFFF91D3).w moveq #3,d3 move.b d3,(byte_FFFF90CC).w tst.b (C2_NORMAL_MSGS_KE_C2_LOCAL_POWERMODE_CONTROL).l ; Set TRUE if PCM is local power mode master meaning application does not use FE06 system power mode control. ; Boolean beq.s loc_485CA move.b d5,(byte_FFFF90BD).w bra.s loc_485CE ; --------------------------------------------------------------------------- loc_485CA: ; CODE XREF: sub_47DA2+820j clr.b (byte_FFFF90BD).w loc_485CE: ; CODE XREF: sub_47DA2+826j move.w #$FFFF,(word_FFFF90F2).w move.b (byte_FFFF91E0).w,(byte_FFFF91E1).w move.b (byte_FFFF9146).w,(byte_FFFF9153).w move.b d3,(byte_FFFF91D4).w move.w (word_FFFFA3C2).w,d3 muls.w #$60,d3 ; '`' divs.w #5,d3 cmpi.w #$DFF,d3 bgt.s loc_485FE cmpi.w #$FC00,d3 blt.s loc_48604 bra.s loc_48608 ; --------------------------------------------------------------------------- loc_485FE: ; CODE XREF: sub_47DA2+852j move.w #$DFF,d3 bra.s loc_48608 ; --------------------------------------------------------------------------- loc_48604: ; CODE XREF: sub_47DA2+858j move.w #$FC00,d3 loc_48608: ; CODE XREF: sub_47DA2+85Aj ; sub_47DA2+860j move.w d3,(word_FFFF916C).w move.w (word_FFFF8210).w,(word_FFFF91C2).w btst #5,(byte_FFFFAD8B).w sne d3 neg.b d3 move.b d3,(byte_FFFF9112).w move.b (byte_FFFFA856).w,(byte_FFFF911A).w move.w (word_FFFF82D2).w,(word_FFFF911C).w move.b (byte_FFFFAF3A).w,(byte_FFFF911E).w move.b (byte_FFFFABDD).w,(byte_FFFF9121).w move.b (byte_FFFFA3C4).w,d3 eori.b #1,d3 move.b d3,(byte_FFFF9120).w move.w (CoolantTemperatureOrDefault).w,(word_FFFF9168).w move.b (byte_FFFFB048).w,d3 move.b d3,(byte_FFFF9123).w move.b d3,(byte_FFFF9124).w move.w (word_FFFF9020).w,(word_FFFF916E).w move.b (byte_FFFF9166).w,(byte_FFFF9167).w move.b (byte_FFFFADBC).w,(byte_FFFF9125).w clr.w (word_FFFF91EC).w move.b (byte_FFFF91EE).w,(byte_FFFF91EF).w move.b (byte_FFFF91F0).w,(byte_FFFF91F1).w move.l (dword_FFFFA726).w,(dword_FFFF91BE).w btst #6,(byte_FFFFA733).w sne d3 neg.b d3 move.b d3,(byte_FFFF9127).w tst.b (OISTER_KE_OIL_STARVE_ENABLE).l ; Bit selectable to allow oil starvation algorithm to run. ; BOOLEAN beq.s loc_4869E move.b (byte_FFFFAB7F).w,d3 and.b (byte_FFFFAB80).w,d3 bra.s loc_486AE ; --------------------------------------------------------------------------- loc_4869E: ; CODE XREF: sub_47DA2+8F0j tst.b (VEH_SYS_KE_ENGINE_ALARM_ENABLE).l ; If set TRUE, then execute engine alarm or shut down functionality. ; BOOLEAN beq.s loc_486AC move.b (byte_FFFFABDE).w,d3 bra.s loc_486AE ; --------------------------------------------------------------------------- loc_486AC: ; CODE XREF: sub_47DA2+902j clr.b d3 loc_486AE: ; CODE XREF: sub_47DA2+8FAj ; sub_47DA2+908j move.b d3,(byte_FFFF9128).w cmpi.b #3,(ThrottleControlMode2?).w seq d3 neg.b d3 move.b d3,(byte_FFFF9126).w move.w (EngineRPM_PID_000C___).w,(word_FFFF9174).w btst #7,(byte_FFFFAD8A).w sne d3 neg.b d3 move.b d3,(byte_FFFF91F2).w move.b (byte_FFFF9DA4).w,(byte_FFFF9129).w move.b (byte_FFFF9DA5).w,(byte_FFFF912A).w move.b (byte_FFFFA67E).w,(byte_FFFF9176).w move.w (word_FFFF9B50).w,(word_FFFF91C6).w move.w (dword_FFFF9B34).w,(word_FFFF91C8).w move.w (word_FFFFB3E8).w,(word_FFFF916A).w btst #6,(byte_FFFFA732).w sne d3 neg.b d3 move.b d3,(byte_FFFF912F).w btst #1,(byte_FFFFA732).w sne d3 neg.b d3 move.b d3,(byte_FFFF9131).w btst #4,(byte_FFFFA732).w sne d3 neg.b d3 move.b d3,(byte_FFFF9132).w move.w (word_FFFFA730).w,(word_FFFF91BC).w cmp.b (byte_FFFFA3B3).w,d4 seq d3 neg.b d3 move.b d3,(byte_FFFF914A).w move.b (byte_FFFF91CC).w,(byte_FFFF91CD).w move.w (word_FFFF910A).w,(word_FFFF91CE).w tst.b (byte_FFFFB370).w beq.s loc_4874C move.b (byte_FFFFA302).w,d3 bra.s loc_48750 ; --------------------------------------------------------------------------- loc_4874C: ; CODE XREF: sub_47DA2+9A2j move.b (byte_FFFFABDA).w,d3 loc_48750: ; CODE XREF: sub_47DA2+9A8j move.b d3,(byte_FFFF9133).w move.b (byte_FFFFA93D).w,(byte_FFFF9134).w btst #6,(byte_FFFFAAD0).w sne d3 neg.b d3 or.b (byte_FFFFA857).w,d3 move.b d3,(byte_FFFF9136).w move.b (byte_FFFFA3BA).w,(byte_FFFF9137).w move.b (byte_FFFFADF2).w,(byte_FFFF9138).w btst #7,(byte_FFFFAF98).w sne d3 neg.b d3 move.b d3,(byte_FFFF913A).w move.b (byte_FFFFA3AE).w,(byte_FFFF913B).w jsr sub_47B5C move.b d0,(byte_FFFF913C).w movea.w (word_FFFFAEBC).w,a2 move.w a2,(word_FFFF9170).w move.w a2,(word_FFFF9172).w move.w (word_FFFFB4A2).w,(word_FFFF91CA).w move.b (byte_FFFF9160).w,(byte_FFFF9161).w move.b (byte_FFFFA565).w,(byte_FFFF9130).w move.b (byte_FFFF913D).w,(byte_FFFF914B).w move.b (byte_FFFF913E).w,(byte_FFFF914C).w move.b (byte_FFFF913F).w,(byte_FFFF914D).w move.b (byte_FFFF9140).w,(byte_FFFF914E).w move.b (byte_FFFF9141).w,(byte_FFFF914F).w move.b (byte_FFFF9142).w,d3 move.b d3,(byte_FFFF9150).w move.b d3,(byte_FFFF9151).w move.b (byte_FFFF9143).w,(byte_FFFF9152).w move.b (byte_FFFF9144).w,(byte_FFFF9145).w move.b (byte_FFFF915B).w,(byte_FFFF9155).w tst.b (byte_FFFF915C).w bne.s loc_487FC tst.b (byte_FFFF915A).w beq.s loc_48802 loc_487FC: ; CODE XREF: sub_47DA2+A52j move.b #1,(byte_FFFF9157).w loc_48802: ; CODE XREF: sub_47DA2+A58j move.b (byte_FFFF915A).w,(byte_FFFF9154).w move.b (byte_FFFF915D).w,d3 move.b d3,(byte_FFFF9158).w move.b d3,(byte_FFFF9159).w move.w (GlobalClock).w,(word_FFFF917A).w move.w (GlobalClock).w,(word_FFFF917E).w move.w (GlobalClock).w,(word_FFFF9180).w move.w (GlobalClock).w,(word_FFFF9182).w move.w (GlobalClock).w,(word_FFFF9184).w move.w (GlobalClock).w,(word_FFFF9186).w move.w (GlobalClock).w,(word_FFFF918A).w move.w (GlobalClock).w,(word_FFFF9188).w move.w (GlobalClock).w,(word_FFFF91EA).w move.w (GlobalClock).w,(word_FFFF9198).w move.w (GlobalClock).w,(word_FFFF918C).w move.w (GlobalClock).w,(word_FFFF918E).w move.w (GlobalClock).w,(word_FFFF9190).w move.w (GlobalClock).w,(word_FFFF9192).w move.w (GlobalClock).w,(word_FFFF9194).w move.w (GlobalClock).w,(word_FFFF919A).w move.w (GlobalClock).w,(word_FFFF919C).w move.w (GlobalClock).w,(word_FFFF919E).w move.w (GlobalClock).w,(word_FFFF91A0).w move.w (GlobalClock).w,(word_FFFF91A2).w move.w (GlobalClock).w,(word_FFFF91A6).w move.w (GlobalClock).w,(word_FFFF91AA).w move.w (GlobalClock).w,(word_FFFF91AC).w move.w (GlobalClock).w,(word_FFFF91AE).w move.w (GlobalClock).w,(word_FFFF91B0).w move.w (GlobalClock).w,(word_FFFF91B2).w move.w (GlobalClock).w,(word_FFFF91B4).w move.w (GlobalClock).w,(word_FFFF91B6).w move.w (GlobalClock).w,(word_FFFF91B8).w move.b #1,(byte_FFFF9AC1).w move.b (byte_FFFFB54A).w,d4 eori.b #1,d4 beq.s loc_488F6 clr.b (byte_FFFF8202).w clr.b (byte_FFFF8203).w clr.b (byte_FFFF8204).w clr.b (byte_FFFF8205).w clr.b (byte_FFFF8206).w clr.b (byte_FFFF8207).w clr.b (byte_FFFF8208).w clr.b (byte_FFFF8209).w clr.b (byte_FFFF820E).w loc_488F6: ; CODE XREF: sub_47DA2+B2Ej tst.b (byte_FFFFB159).w beq.s loc_48902 tst.b (byte_FFFF912E).w beq.s loc_48908 loc_48902: ; CODE XREF: sub_47DA2+B58j move.w (GlobalClock).w,(word_FFFF9192).w loc_48908: ; CODE XREF: sub_47DA2+B5Ej tst.b (byte_FFFFB159).w beq.s loc_48932 tst.b (byte_FFFF912E).w bne.s loc_48932 move.w (word_FFFF9192).w,var_C(a6) move.w (GlobalClock).w,d4 sub.w var_C(a6),d4 cmp.w (C2_NORMAL_MSGS_KE_C2_FE06_REQ_DELAY_TIME2).l,d4 ; The minimum required elapsed time before a FE06 REQ message is queued due to the PCM being capable of communicating on class2. ; Seconds bcs.s loc_48932 moveq #$65,d0 ; 'e' jsr sub_4519E loc_48932: ; CODE XREF: sub_47DA2+B6Aj ; sub_47DA2+B70j ... tst.b (byte_FFFF8D19).w beq.w loc_48A68 move.b #1,(byte_FFFF820B).w clr.b (byte_FFFF820D).w clr.b (byte_FFFF820C).w bra.w loc_48A68 ; --------------------------------------------------------------------------- loc_4894C: ; CODE XREF: sub_47DA2+Cj ; sub_47DA2+1Cj move.b (byte_FFFF913D).w,(byte_FFFF914B).w move.b (byte_FFFF913E).w,(byte_FFFF914C).w move.b (byte_FFFF913F).w,(byte_FFFF914D).w move.b (byte_FFFF9140).w,(byte_FFFF914E).w move.b (byte_FFFF9141).w,(byte_FFFF914F).w move.b (byte_FFFF9142).w,d3 move.b d3,(byte_FFFF9150).w move.b d3,(byte_FFFF9151).w move.b (byte_FFFF9143).w,(byte_FFFF9152).w move.b (byte_FFFF9144).w,(byte_FFFF9145).w move.b (byte_FFFF9146).w,(byte_FFFF9153).w move.b (byte_FFFF915A).w,(byte_FFFF9154).w move.b (byte_FFFF915B).w,(byte_FFFF9155).w move.b (byte_FFFF9156).w,(byte_FFFF9157).w move.b (byte_FFFF915D).w,d3 move.b d3,(byte_FFFF9158).w move.b d3,(byte_FFFF9159).w move.b (byte_FFFF91CC).w,(byte_FFFF91CD).w clr.b (byte_FFFF90DC).w clr.b (byte_FFFF90DE).w clr.b (byte_FFFF90DB).w clr.b (byte_FFFF90DD).w move.w (GlobalClock).w,(word_FFFF917A).w move.w (GlobalClock).w,(word_FFFF917E).w move.w (GlobalClock).w,(word_FFFF91B2).w move.w (GlobalClock).w,(word_FFFF91B4).w move.w (GlobalClock).w,(word_FFFF9182).w move.w (GlobalClock).w,(word_FFFF9184).w move.w (GlobalClock).w,(word_FFFF9186).w move.w (GlobalClock).w,(word_FFFF9188).w move.w (GlobalClock).w,(word_FFFF918A).w move.w (GlobalClock).w,(word_FFFF91EA).w move.w (GlobalClock).w,(word_FFFF918C).w move.w (GlobalClock).w,(word_FFFF918E).w move.w (GlobalClock).w,(word_FFFF9194).w move.w (GlobalClock).w,(word_FFFF919A).w move.w (GlobalClock).w,(word_FFFF919C).w move.w (GlobalClock).w,(word_FFFF919E).w move.w (GlobalClock).w,(word_FFFF91A0).w move.w (GlobalClock).w,(word_FFFF91A2).w move.w (GlobalClock).w,(word_FFFF91A6).w move.w (GlobalClock).w,(word_FFFF91AA).w move.w (GlobalClock).w,(word_FFFF91AC).w move.w (GlobalClock).w,(word_FFFF91AE).w move.w (GlobalClock).w,(word_FFFF91B0).w move.w (GlobalClock).w,(word_FFFF91B6).w move.w (GlobalClock).w,(word_FFFF91B8).w cmpi.b #3,d0 bne.s loc_48A68 move.b #1,(byte_FFFF820B).w movea.l #unk_FF9ADC,a2 bclr #7,(a2) loc_48A68: ; CODE XREF: sub_47DA2+14j ; sub_47DA2+B94j ... movem.l (sp)+,d1-d2/d6-a1/a4-a5 unlk a6 rts ; End of function sub_47DA2 ; --------------------------------------------------------------------------- loc_48A70: ; DATA XREF: OS4:off_87F18o movem.l d0/a0,-(sp) moveq #1,d0 move.b d0,(byte_FFFF90CE).w move.b d0,(byte_FFFF90C8).w jsr sub_41DDA btst #7,4(a0) sne d3 neg.b d3 move.b d3,(byte_FFFF90C6).w move.b d0,(byte_FFFF90CF).w movem.l (sp)+,d0/a0 rts ; --------------------------------------------------------------------------- loc_48A9C: ; DATA XREF: OS4:off_87DFEo move.l a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w moveq #1,d3 move.b d3,(byte_FFFF90D0).w move.b d3,(byte_FFFF90C9).w move.b 5(a0),(byte_FFFF90C7).w movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- loc_48ABC: ; DATA XREF: OS4:off_87E26o movem.l d0/a0,-(sp) moveq #1,d0 move.b d0,(byte_FFFF90D2).w jsr sub_41DDA move.l a0,(dword_FFFF91D6).w btst #6,4(a0) beq.s loc_48ADE move.b d0,(byte_FFFF90D1).w bra.s loc_48AE2 ; --------------------------------------------------------------------------- loc_48ADE: ; CODE XREF: OS2:00048AD6j clr.b (byte_FFFF90D1).w loc_48AE2: ; CODE XREF: OS2:00048ADCj tst.b (byte_FFFF90D1).w bne.s loc_48B10 move.b 5(a0),(byte_FFFF9178).w clr.l d3 move.b (byte_FFFF9178).w,d3 asl.l #8,d3 asl.l #8,d3 asl.l #3,d3 move.w #$19C0,d4 divu.w d4,d3 bvs.s loc_48B08 cmpi.w #$7FFF,d3 bls.s loc_48B0C loc_48B08: ; CODE XREF: OS2:00048B00j move.w #$7FFF,d3 loc_48B0C: ; CODE XREF: OS2:00048B06j move.w d3,(word_FFFF90EA).w loc_48B10: ; CODE XREF: OS2:00048AE6j movem.l (sp)+,d0/a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(4294939094).w btst #6,4(a0) beq.s loc_48B32 move.b #1,(byte_FFFF90D3).w bra.s loc_48B36 ; --------------------------------------------------------------------------- loc_48B32: ; CODE XREF: OS2:00048B28j clr.b (byte_FFFF90D3).w loc_48B36: ; CODE XREF: OS2:00048B30j tst.b (byte_FFFF90D3).w bne.s loc_48B64 move.b 6(a0),(byte_FFFF9177).w clr.l d3 move.b (byte_FFFF9177).w,d3 asl.l #8,d3 asl.l #8,d3 asl.l #3,d3 move.w #$19C0,d4 divu.w d4,d3 bvs.s loc_48B5C cmpi.w #$7FFF,d3 bls.s loc_48B60 loc_48B5C: ; CODE XREF: OS2:00048B54j move.w #$7FFF,d3 loc_48B60: ; CODE XREF: OS2:00048B5Aj move.w d3,(word_FFFF90EC).w loc_48B64: ; CODE XREF: OS2:00048B3Aj movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- movem.l d0/a0,-(sp) moveq #1,d0 move.b d0,(byte_FFFF90D7).w move.b d0,(byte_FFFF90D8).w jsr sub_41DDA move.l a0,(dword_FFFF91D6).w btst #6,4(a0) beq.s loc_48B8E move.b d0,(byte_FFFF90D4).w bra.s loc_48B92 ; --------------------------------------------------------------------------- loc_48B8E: ; CODE XREF: OS2:00048B86j clr.b (byte_FFFF90D4).w loc_48B92: ; CODE XREF: OS2:00048B8Cj btst #7,4(a0) beq.s loc_48BA0 move.b d0,(byte_FFFF90D5).w bra.s loc_48BA4 ; --------------------------------------------------------------------------- loc_48BA0: ; CODE XREF: OS2:00048B98j clr.b (byte_FFFF90D5).w loc_48BA4: ; CODE XREF: OS2:00048B9Ej tst.b (byte_FFFF90D4).w bne.s loc_48BBC tst.b (byte_FFFF90D5).w bne.s loc_48BBC move.b 5(a0),d3 move.b d3,(byte_FFFF9179).w move.b d3,(byte_FFFF90EE).w loc_48BBC: ; CODE XREF: OS2:00048BA8j ; OS2:00048BAEj movem.l (sp)+,d0/a0 rts ; --------------------------------------------------------------------------- loc_48BC2: ; DATA XREF: OS4:00087E06o move.l a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w move.b #1,(byte_FFFF90E7).w btst #7,4(a0) sne d3 neg.b d3 move.b d3,(byte_FFFF90E5).w movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w move.b 5(a0),(byte_FFFF915F).w clr.b d4 btst #1,(byte_FFFF915F).w sne d3 neg.b d3 bne.s loc_48C16 btst #2,(byte_FFFF915F).w bne.s loc_48C16 btst #6,(byte_FFFF915F).w beq.s loc_48C18 loc_48C16: ; CODE XREF: OS2:00048C04j ; OS2:00048C0Cj addq.b #1,d4 loc_48C18: ; CODE XREF: OS2:00048C14j move.b d4,(byte_FFFF8202).w tst.b d3 sne d3 neg.b d3 move.b d3,(byte_FFFF8203).w btst #2,(byte_FFFF915F).w sne d3 neg.b d3 sne d3 neg.b d3 move.b d3,(byte_FFFF8204).w btst #3,(byte_FFFF915F).w sne d3 neg.b d3 sne d3 neg.b d3 move.b d3,(byte_FFFF8205).w btst #4,(byte_FFFF915F).w sne d3 neg.b d3 sne d3 neg.b d3 move.b d3,(byte_FFFF8206).w btst #5,(byte_FFFF915F).w sne d3 neg.b d3 sne d3 neg.b d3 move.b d3,(byte_FFFF8207).w btst #6,(byte_FFFF915F).w sne d3 neg.b d3 sne d3 neg.b d3 move.b d3,(byte_FFFF8208).w movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w btst #6,4(a0) beq.s loc_48CA0 move.b #1,(byte_FFFF90D9).w bra.s loc_48CA4 ; --------------------------------------------------------------------------- loc_48CA0: ; CODE XREF: OS2:00048C96j clr.b (byte_FFFF90D9).w loc_48CA4: ; CODE XREF: OS2:00048C9Ej btst #7,4(a0) beq.s loc_48CB4 move.b #1,(byte_FFFF90DA).w bra.s loc_48CB8 ; --------------------------------------------------------------------------- loc_48CB4: ; CODE XREF: OS2:00048CAAj clr.b (byte_FFFF90DA).w loc_48CB8: ; CODE XREF: OS2:00048CB2j movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w move.b #1,(byte_FFFF9105).w btst #6,4(a0) sne d3 neg.b d3 move.b d3,(byte_FFFF9106).w btst #7,4(a0) sne d3 neg.b d3 move.b d3,(byte_FFFF9107).w movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- loc_48CEE: ; DATA XREF: OS4:off_87F44o movem.l d0-d1/a0,-(sp) moveq #4,d0 cmp.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d0 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.w loc_48D98 moveq #1,d1 move.b d1,(byte_FFFF90F8).w jsr sub_41DDA move.l a0,(dword_FFFF91D6).w btst #6,4(a0) sne d3 neg.b d3 move.b d3,(byte_FFFF90F9).w move.b 5(a0),d3 cmp.b d3,d1 bne.s loc_48D2C move.b #9,(byte_FFFF90F7).w bra.s loc_48D98 ; --------------------------------------------------------------------------- loc_48D2C: ; CODE XREF: OS2:00048D22j cmpi.b #2,d3 bne.s loc_48D38 clr.b (byte_FFFF90F7).w bra.s loc_48D98 ; --------------------------------------------------------------------------- loc_48D38: ; CODE XREF: OS2:00048D30j cmp.b d3,d0 bne.s loc_48D42 move.b d1,(byte_FFFF90F7).w bra.s loc_48D98 ; --------------------------------------------------------------------------- loc_48D42: ; CODE XREF: OS2:00048D3Aj moveq #8,d4 cmp.b d3,d4 bne.s loc_48D50 move.b #2,(byte_FFFF90F7).w bra.s loc_48D98 ; --------------------------------------------------------------------------- loc_48D50: ; CODE XREF: OS2:00048D46j cmpi.b #$10,d3 bne.s loc_48D5E move.b #3,(byte_FFFF90F7).w bra.s loc_48D98 ; --------------------------------------------------------------------------- loc_48D5E: ; CODE XREF: OS2:00048D54j cmpi.b #$20,d3 ; ' ' bne.s loc_48D6A move.b d0,(byte_FFFF90F7).w bra.s loc_48D98 ; --------------------------------------------------------------------------- loc_48D6A: ; CODE XREF: OS2:00048D62j cmpi.b #$21,d3 ; '!' bne.s loc_48D78 move.b #5,(byte_FFFF90F7).w bra.s loc_48D98 ; --------------------------------------------------------------------------- loc_48D78: ; CODE XREF: OS2:00048D6Ej cmpi.b #$22,d3 ; '"' bne.s loc_48D86 move.b #6,(byte_FFFF90F7).w bra.s loc_48D98 ; --------------------------------------------------------------------------- loc_48D86: ; CODE XREF: OS2:00048D7Cj cmpi.b #$40,d3 ; '@' bne.s loc_48D92 loc_48D8C: ; CODE XREF: OS2:00048D96j move.b d4,(byte_FFFF90F7).w bra.s loc_48D98 ; --------------------------------------------------------------------------- loc_48D92: ; CODE XREF: OS2:00048D8Aj cmpi.b #$80,d3 beq.s loc_48D8C loc_48D98: ; CODE XREF: OS2:00048CFAj ; OS2:00048D2Aj ... movem.l (sp)+,d0-d1/a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) move.b #1,(byte_FFFF90F6).w jsr sub_41DDA move.l a0,(dword_FFFF91D6).w move.b 5(a0),(byte_FFFF90FE).w movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(4294939094).w move.b #1,(byte_FFFF910C).w btst #7,4(a0) sne d3 neg.b d3 move.b d3,(byte_FFFF9108).w movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- loc_48DDE: ; DATA XREF: OS4:off_87F4Co move.l a0,-(sp) cmpi.b #4,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_48E32 move.b #1,(byte_FFFF90FA).w jsr sub_41DDA move.l a0,(dword_FFFF91D6).w btst #6,4(a0) sne d3 neg.b d3 move.b d3,(byte_FFFF90FB).w move.b 5(a0),(byte_FFFF91E7).w clr.w d3 move.b (byte_FFFF91E7).w,d3 asl.w #7,d3 andi.l #$FFFF,d3 divu.w #5,d3 subi.w #$400,d3 cmpi.w #$DFF,d3 ble.s loc_48E2E move.w #$DFF,d3 loc_48E2E: ; CODE XREF: OS2:00048E28j move.w d3,(word_FFFF90FC).w loc_48E32: ; CODE XREF: OS2:00048DE8j movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- loc_48E36: ; DATA XREF: OS4:off_87EE0o link a6,#-4 movem.l d0/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w move.b 5(a0),d3 move.b d3,d5 move.l d5,d4 move.b d4,(byte_FFFF9AB3).w move.b d5,(byte_FFFF91E3).w move.b d3,-4(a6) move.b 6(a0),d3 move.b d3,d5 move.l d5,d4 move.b d4,(byte_FFFF9AB4).w move.b d5,(byte_FFFF91E4).w move.b d3,-3(a6) move.b 7(a0),d3 move.b d3,d5 move.l d5,d4 move.b d4,(byte_FFFF9AB5).w move.b d5,(byte_FFFF91E5).w move.b d3,-2(a6) move.b 8(a0),d3 move.b d3,d5 move.l d5,d4 move.b d4,(byte_FFFF9AB6).w move.b d5,(byte_FFFF91E6).w move.b d3,-1(a6) moveq #$3C,d0 ; '<' jsr sub_4519E movem.l (sp)+,d0/a0 unlk a6 rts ; --------------------------------------------------------------------------- loc_48EA8: ; DATA XREF: OS4:00087EE8o movem.l d0-d1/a0,-(sp) moveq #1,d1 move.b d1,(byte_FFFF90F4).w jsr sub_41DDA move.l a0,(dword_FFFF91D6).w move.b 5(a0),d3 move.b d3,(byte_FFFF90C1).w tst.b d3 bne.s loc_48ECE clr.b (byte_FFFF90F5).w bra.s loc_48ED6 ; --------------------------------------------------------------------------- loc_48ECE: ; CODE XREF: OS2:00048EC6j cmp.b d3,d1 bne.s loc_48ED6 move.b d1,(byte_FFFF90F5).w loc_48ED6: ; CODE XREF: OS2:00048ECCj ; OS2:00048ED0j move.b (byte_FFFF90C1).w,(byte_FFFF9AB7).w moveq #$3D,d0 ; '=' jsr sub_4519E movem.l (sp)+,d0-d1/a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w btst #7,4(a0) beq.s loc_48F06 move.b #1,(byte_FFFF90DB).w bra.s loc_48F0A ; --------------------------------------------------------------------------- loc_48F06: ; CODE XREF: OS2:00048EFCj clr.b (byte_FFFF90DB).w loc_48F0A: ; CODE XREF: OS2:00048F04j move.b #1,(byte_FFFF90DD).w movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w btst #7,4(a0) beq.s loc_48F34 move.b #1,(byte_FFFF90DE).w move.b 5(a0),(byte_FFFF9A3B).w loc_48F34: ; CODE XREF: OS2:00048F26j movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w move.b 5(a0),(byte_FFFF9162).w btst #4,(byte_FFFF9162).w beq.s loc_48F5A move.b #1,(byte_FFFF820A).w bra.s loc_48F5E ; --------------------------------------------------------------------------- loc_48F5A: ; CODE XREF: OS2:00048F50j clr.b (byte_FFFF820A).w loc_48F5E: ; CODE XREF: OS2:00048F58j movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- movem.l d0/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w btst #7,4(a0) beq.s loc_48F80 move.b #1,(byte_FFFF90DF).w bra.s loc_48F84 ; --------------------------------------------------------------------------- loc_48F80: ; CODE XREF: OS2:00048F76j clr.b (byte_FFFF90DF).w loc_48F84: ; CODE XREF: OS2:00048F7Ej tst.b (byte_FFFF90DF).w beq.s loc_48F98 movea.l #unk_FF9AD6,a2 addq.l #1,a2 bset #2,(a2) bra.s loc_48FA4 ; --------------------------------------------------------------------------- loc_48F98: ; CODE XREF: OS2:00048F88j movea.l #unk_FF9AD6,a2 addq.l #1,a2 bclr #2,(a2) loc_48FA4: ; CODE XREF: OS2:00048F96j moveq #$19,d0 jsr sub_4519E movem.l (sp)+,d0/a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w move.b 5(a0),(byte_FFFF915E).w btst #0,(byte_FFFF915E).w bne.s loc_48FD2 clr.b (byte_FFFF8209).w bra.s loc_48FD8 ; --------------------------------------------------------------------------- loc_48FD2: ; CODE XREF: OS2:00048FCAj move.b #1,(byte_FFFF8209).w loc_48FD8: ; CODE XREF: OS2:00048FD0j movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w btst #7,4(a0) bne.s loc_48FF6 clr.b (byte_FFFF90CB).w bra.s loc_48FFC ; --------------------------------------------------------------------------- loc_48FF6: ; CODE XREF: OS2:00048FEEj move.b #1,(byte_FFFF90CB).w loc_48FFC: ; CODE XREF: OS2:00048FF4j movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- loc_49000: ; DATA XREF: OS4:00087F20o movem.l d0-d1/a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w moveq #1,d1 cmp.b 5(a0),d1 bne.s loc_49058 btst #7,4(a0) beq.s loc_49024 move.b d1,(byte_FFFF820B).w bra.s loc_49028 ; --------------------------------------------------------------------------- loc_49024: ; CODE XREF: OS2:0004901Cj clr.b (byte_FFFF820B).w loc_49028: ; CODE XREF: OS2:00049022j move.b d1,(byte_FFFF820D).w move.b d1,(byte_FFFF820C).w tst.b (byte_FFFF820B).w beq.s loc_49044 movea.l #unk_FF9AD6,a2 addq.l #1,a2 bset #4,(a2) bra.s loc_49050 ; --------------------------------------------------------------------------- loc_49044: ; CODE XREF: OS2:00049034j movea.l #unk_FF9AD6,a2 addq.l #1,a2 bclr #4,(a2) loc_49050: ; CODE XREF: OS2:00049042j moveq #$1C,d0 jsr sub_4519E loc_49058: ; CODE XREF: OS2:00049014j movem.l (sp)+,d0-d1/a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(4294939094).w btst #6,4(a0) beq.s loc_4907A move.b #1,(byte_FFFF90F0).w bra.s loc_4907E ; --------------------------------------------------------------------------- loc_4907A: ; CODE XREF: OS2:00049070j clr.b (byte_FFFF90F0).w loc_4907E: ; CODE XREF: OS2:00049078j tst.b (byte_FFFF90F0).w bne.s loc_4908A move.b 5(a0),(byte_FFFF90EF).w loc_4908A: ; CODE XREF: OS2:00049082j movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- link a6,#-2 movem.l d0-d1/a0,-(sp) moveq #1,d1 move.b d1,(byte_FFFF90E1).w move.b d1,(byte_FFFF90E2).w move.b d1,(byte_FFFF90E0).w jsr sub_41DDA move.l a0,(dword_FFFF91D6).w lea -2(a6),a2 move.b 5(a0),(a2) addq.l #1,a2 move.b 6(a0),(a2) move.w -2(a6),(word_FFFF90F2).w move.b (byte_FFFF8D16).w,(byte_FFFF9ACD).w move.l d1,d0 jsr sub_4519E movem.l (sp)+,d0-d1/a0 unlk a6 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) movea.l (dword_FFFF91D6).w,a2 move.b 5(a2),(byte_FFFF91D0).w move.b 6(a2),(byte_FFFF91D1).w move.b 7(a2),(byte_FFFF91D2).w jsr sub_41DDA move.l a0,(dword_FFFF91D6).w btst #0,(byte_FFFF91D0).w beq.s loc_4910A move.b #1,(byte_FFFF820E).w bra.s loc_4910E ; --------------------------------------------------------------------------- loc_4910A: ; CODE XREF: OS2:00049100j clr.b (byte_FFFF820E).w loc_4910E: ; CODE XREF: OS2:00049108j movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w move.b 5(a0),(byte_FFFF90CD).w movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w btst #7,4(a0) beq.s loc_49144 move.b #1,(byte_FFFF90D6).w bra.s loc_49148 ; --------------------------------------------------------------------------- loc_49144: ; CODE XREF: OS2:0004913Aj clr.b (byte_FFFF90D6).w loc_49148: ; CODE XREF: OS2:00049142j movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w move.b 6(a0),d3 bne.s loc_49166 move.b #1,(byte_FFFF90FF).w bra.s loc_4916A ; --------------------------------------------------------------------------- loc_49166: ; CODE XREF: OS2:0004915Cj clr.b (byte_FFFF90FF).w loc_4916A: ; CODE XREF: OS2:00049164j movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w move.b 6(a0),d3 bne.s loc_49188 move.b #1,(byte_FFFF9100).w bra.s loc_4918C ; --------------------------------------------------------------------------- loc_49188: ; CODE XREF: OS2:0004917Ej clr.b (byte_FFFF9100).w loc_4918C: ; CODE XREF: OS2:00049186j movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w move.b 6(a0),d3 bne.s loc_491AA move.b #1,(byte_FFFF9101).w bra.s loc_491AE ; --------------------------------------------------------------------------- loc_491AA: ; CODE XREF: OS2:000491A0j clr.b (byte_FFFF9101).w loc_491AE: ; CODE XREF: OS2:000491A8j movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) jsr sub_41DDA move.l a0,(dword_FFFF91D6).w move.b 6(a0),d3 bne.s loc_491CC move.b #1,(byte_FFFF9102).w bra.s loc_491D0 ; --------------------------------------------------------------------------- loc_491CC: ; CODE XREF: OS2:000491C2j clr.b (byte_FFFF9102).w loc_491D0: ; CODE XREF: OS2:000491CAj movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- movem.l d0/a0,-(sp) moveq #1,d0 move.b d0,(byte_FFFF90E7).w jsr sub_41DDA move.l a0,(dword_FFFF91D6).w btst #7,4(a0) beq.s loc_491F6 clr.b (byte_FFFF90E6).w bra.s loc_491FA ; --------------------------------------------------------------------------- loc_491F6: ; CODE XREF: OS2:000491EEj move.b d0,(byte_FFFF90E6).w loc_491FA: ; CODE XREF: OS2:000491F4j movem.l (sp)+,d0/a0 rts ; --------------------------------------------------------------------------- move.l a0,-(sp) move.b #1,(byte_FFFF9104).w jsr sub_41DDA btst #7,4(a0) sne d3 neg.b d3 move.b d3,(byte_FFFF9103).w movea.l (sp)+,a0 rts ; --------------------------------------------------------------------------- movem.l d0-d1/a0,-(sp) tst.b (C2_NORMAL_MSGS_KE_C2_LOCAL_POWERMODE_CONTROL).l ; Set TRUE if PCM is local power mode master meaning application does not use FE06 system power mode control. ; Boolean bne.w loc_49308 move.b (byte_FFFF90BC).w,d0 move.b d0,(byte_FFFF91D3).w jsr sub_41DDA move.l a0,(dword_FFFF91D6).w move.b 5(a0),d3 move.b d3,(byte_FFFF90CC).w cmpi.b #7,d3 bne.s loc_49280 move.b (ThrottleControlMode2?).w,d3 moveq #2,d4 cmp.b d3,d4 beq.s loc_4925E cmpi.b #3,d3 bne.s loc_4926C loc_4925E: ; CODE XREF: OS2:00049256j move.b #3,(byte_FFFF90BC).w loc_49264: ; CODE XREF: OS2:00049294j ; OS2:000492E4j clr.b (byte_FFFF90BD).w bra.w loc_492FC ; --------------------------------------------------------------------------- loc_4926C: ; CODE XREF: OS2:0004925Cj moveq #1,d3 cmp.b (byte_FFFF90BD).w,d3 beq.w loc_492F8 loc_49276: ; CODE XREF: OS2:0004929Aj move.b d3,(byte_FFFF911F).w move.b d3,(byte_FFFF90BD).w bra.s loc_492FC ; --------------------------------------------------------------------------- loc_49280: ; CODE XREF: OS2:0004924Cj cmpi.b #8,d3 bne.s loc_492A4 moveq #1,d3 cmp.b (ThrottleControlMode2?).w,d3 bne.s loc_49296 move.b #2,(byte_FFFF90BC).w bra.s loc_49264 ; --------------------------------------------------------------------------- loc_49296: ; CODE XREF: OS2:0004928Cj cmp.b (byte_FFFF90BD).w,d3 bne.s loc_49276 move.b #2,(byte_FFFF90BD).w bra.s loc_492FC ; --------------------------------------------------------------------------- loc_492A4: ; CODE XREF: OS2:00049284j moveq #1,d4 cmp.b d3,d4 beq.s loc_492CE cmpi.b #2,d3 beq.s loc_492CE cmpi.b #3,d3 beq.s loc_492CE cmpi.b #4,d3 beq.s loc_492CE cmpi.b #5,d3 beq.s loc_492CE cmpi.b #6,d3 beq.s loc_492CE cmpi.b #9,d3 bne.s loc_492FC loc_492CE: ; CODE XREF: OS2:000492A8j ; OS2:000492AEj ... move.b (ThrottleControlMode2?).w,d3 moveq #2,d5 cmp.b d3,d5 beq.s loc_492DE cmpi.b #4,d3 bne.s loc_492E8 loc_492DE: ; CODE XREF: OS2:000492D6j move.b #4,(byte_FFFF90BC).w bra.w loc_49264 ; --------------------------------------------------------------------------- loc_492E8: ; CODE XREF: OS2:000492DCj cmp.b (byte_FFFF90BD).w,d4 bne.s loc_492F4 move.b d5,(byte_FFFF90BD).w bra.s loc_492FC ; --------------------------------------------------------------------------- loc_492F4: ; CODE XREF: OS2:000492ECj move.b d4,(byte_FFFF911F).w loc_492F8: ; CODE XREF: OS2:00049272j move.b d4,(byte_FFFF90BD).w loc_492FC: ; CODE XREF: OS2:00049268j ; OS2:0004927Ej ... cmp.b (byte_FFFF90BC).w,d0 beq.s loc_49308 move.b #1,(byte_FFFF912E).w loc_49308: ; CODE XREF: OS2:0004922Aj ; OS2:00049300j movem.l (sp)+,d0-d1/a0 rts ; =============== S U B R O U T I N E ======================================= sub_4930E: ; CODE XREF: sub_45F3A+192p ; sub_47DA2+4CEp tst.b (byte_FFFFA3AA).w bne.s loc_49326 clr.w d3 move.b (byte_FFFFA3AF).w,d3 loc_4931A: ; CODE XREF: sub_4930E+40j move.b byte_8A50C(d3.w),(byte_FFFF91CC).w bra.s locret_49354 ; --------------------------------------------------------------------------- loc_49326: ; CODE XREF: sub_4930E+4j cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_49350 tst.b (byte_FFFFA3B4).w bne.s loc_49350 move.b (byte_FFFFA3B1).w,d3 cmpi.b #6,d3 beq.s loc_49350 cmpi.b #5,d3 beq.s loc_49350 cmpi.b #7,d3 beq.s loc_49350 andi.w #$FF,d3 bra.s loc_4931A ; --------------------------------------------------------------------------- loc_49350: ; CODE XREF: sub_4930E+1Ej ; sub_4930E+24j ... clr.b (byte_FFFF91CC).w locret_49354: ; CODE XREF: sub_4930E+16j rts ; End of function sub_4930E ; =============== S U B R O U T I N E ======================================= sub_49356: ; CODE XREF: sub_45F3A+112p ; sub_47DA2+508p tst.b (byte_FFFF9146).w beq.s loc_49362 clr.b (byte_FFFF91E0).w bra.s locret_49380 ; --------------------------------------------------------------------------- loc_49362: ; CODE XREF: sub_49356+4j tst.b (byte_FFFFA3AA).w bne.s loc_49372 cmpi.b #5,(byte_FFFFA3AF).w scc d3 bra.s loc_4937A ; --------------------------------------------------------------------------- loc_49372: ; CODE XREF: sub_49356+10j cmpi.b #6,(byte_FFFFA3B1).w seq d3 loc_4937A: ; CODE XREF: sub_49356+1Aj neg.b d3 move.b d3,(byte_FFFF91E0).w locret_49380: ; CODE XREF: sub_49356+Aj rts ; End of function sub_49356 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_49382: ; CODE XREF: OS2:000418E4p ; sub_47DA2:loc_4858Ap var_10 = -$10 var_E = -$E var_A = -$A var_6 = -6 var_4 = -4 link a6,#-$10 movem.l d0/a0-a1,-(sp) clr.b d0 lea var_A(a6),a0 jsr sub_27442 move.l var_A+2(a6),var_E(a6) move.w var_A(a6),var_10(a6) move.b var_10+1(a6),d3 clr.l (dword_FFFF90A8).w movea.l #unk_FF90A8,a2 addq.l #1,a2 addq.l #1,a2 addq.l #1,a2 move.b d3,(a2) clr.b d0 lea var_6(a6),a0 jsr sub_27442 move.l var_4(a6),var_E(a6) move.w var_6(a6),var_10(a6) lea var_A(a6),a2 move.b var_E(a6),(a2) addq.l #1,a2 move.b var_E+1(a6),(a2) addq.l #1,a2 move.b var_E+2(a6),(a2) addq.l #1,a2 move.b var_E+3(a6),(a2) move.l var_A(a6),(dword_FFFF90AC).w moveq #1,d0 lea var_6(a6),a0 jsr sub_27442 move.l var_4(a6),var_E(a6) move.w var_6(a6),var_10(a6) lea var_A(a6),a2 move.b var_10(a6),(a2) addq.l #1,a2 move.b var_10+1(a6),(a2) addq.l #1,a2 move.b var_E(a6),(a2) addq.l #1,a2 move.b var_E+1(a6),(a2) move.l var_A(a6),(dword_FFFF90B0).w moveq #1,d0 lea var_6(a6),a0 jsr sub_27442 move.l var_4(a6),var_E(a6) move.w var_6(a6),var_10(a6) lea var_A(a6),a1 move.b var_E+2(a6),(a1) addq.l #1,a1 move.b var_E+3(a6),(a1) moveq #2,d0 lea var_6(a6),a0 jsr sub_27442 move.l var_4(a6),var_E(a6) move.w var_6(a6),var_10(a6) addq.l #1,a1 move.b var_10(a6),(a1) addq.l #1,a1 move.b var_10+1(a6),(a1) move.l var_A(a6),(dword_FFFF90B4).w moveq #2,d0 lea var_6(a6),a0 jsr sub_27442 move.l var_4(a6),var_E(a6) move.w var_6(a6),var_10(a6) lea var_A(a6),a2 move.b var_E(a6),(a2) addq.l #1,a2 move.b var_E+1(a6),(a2) addq.l #1,a2 move.b var_E+2(a6),(a2) addq.l #1,a2 move.b var_E+3(a6),(a2) move.l var_A(a6),(dword_FFFF90B8).w movem.l (sp)+,d0/a0-a1 unlk a6 rts ; End of function sub_49382 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_494B8: ; CODE XREF: OS1:0003E8C2p ; OS1:0003E900p var_4 = -4 link a6,#-4 move.l d2,-(sp) moveq #1,d5 cmp.b d0,d5 bne.s loc_49522 cmpi.b #$40,d1 ; '@' bhi.s loc_49522 cmpi.b #$16,d1 beq.s loc_49522 move.l d5,d3 moveq #$20,d2 ; ' ' cmp.b d1,d2 bcs.s loc_494FC move.b (C2_PIDS_KE_MODE_1_PID_01_08_SUPPORT).l,var_4(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_1_PID_09_10_SUPPORT).l,var_4+1(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_1_PID_11_18_SUPPORT).l,var_4+2(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_1_PID_19_20_SUPPORT).l,var_4+3(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.l d2,d4 bra.s loc_4951E ; --------------------------------------------------------------------------- loc_494FC: ; CODE XREF: sub_494B8+1Ej move.b (C2_PIDS_KE_MODE_1_PID_21_28_SUPPORT).l,var_4(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_1_PID_29_30_SUPPORT).l,var_4+1(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_1_PID_31_38_SUPPORT).l,var_4+2(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_1_PID_39_40_SUPPORT).l,var_4+3(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type moveq #$40,d4 ; '@' loc_4951E: ; CODE XREF: sub_494B8+42j ; sub_494B8+9Aj sub.b d1,d4 bra.s loc_49556 ; --------------------------------------------------------------------------- loc_49522: ; CODE XREF: sub_494B8+Aj ; sub_494B8+10j ... cmpi.b #2,d0 bne.s loc_49554 cmpi.b #$20,d1 ; ' ' bhi.s loc_49554 move.l d5,d3 move.b (C2_PIDS_KE_MODE_2_PID_01_08_SUPPORT).l,var_4(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_2_PID_09_10_SUPPORT).l,var_4+1(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_2_PID_11_18_SUPPORT).l,var_4+2(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_2_PID_19_20_SUPPORT).l,var_4+3(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type moveq #$20,d4 ; ' ' bra.s loc_4951E ; --------------------------------------------------------------------------- loc_49554: ; CODE XREF: sub_494B8+6Ej ; sub_494B8+74j clr.b d3 loc_49556: ; CODE XREF: sub_494B8+68j tst.b d3 beq.s loc_4957A tst.b d1 beq.s loc_49568 cmpi.b #$20,d1 ; ' ' bne.s loc_4956C cmp.b d0,d5 bne.s loc_4956C loc_49568: ; CODE XREF: sub_494B8+A4j move.l d5,d0 bra.s loc_4957C ; --------------------------------------------------------------------------- loc_4956C: ; CODE XREF: sub_494B8+AAj ; sub_494B8+AEj move.l d4,d3 move.l var_4(a6),d0 btst d3,d0 sne d0 neg.b d0 bra.s loc_4957C ; --------------------------------------------------------------------------- loc_4957A: ; CODE XREF: sub_494B8+A0j clr.b d0 loc_4957C: ; CODE XREF: sub_494B8+B2j ; sub_494B8+C0j move.l (sp)+,d2 unlk a6 rts ; End of function sub_494B8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_49582: ; CODE XREF: OS1:0003FA52p ; OS1:0003FA88p var_4 = -4 link a6,#-4 movem.l d0-d1,-(sp) move.b (a0),d3 cmpi.b #1,d3 bhi.s loc_495AA beq.s loc_4959C movea.l 2(a0),a2 jsr (a2) bra.s loc_495DA ; --------------------------------------------------------------------------- loc_4959C: ; CODE XREF: sub_49582+10j movea.l 2(a0),a2 jsr (a2) move.w d0,d1 move.w d1,var_4(a6) bra.s loc_495D0 ; --------------------------------------------------------------------------- loc_495AA: ; CODE XREF: sub_49582+Ej movea.l 2(a0),a2 jsr (a2) move.l d0,d1 move.l d1,var_4(a6) lsr.l #8,d0 lsr.l #8,d0 lsr.l #8,d0 jsr (sub_6D2).l move.l d1,d0 lsr.l #8,d0 lsr.l #8,d0 jsr (sub_6D2).l move.l d1,d0 loc_495D0: ; CODE XREF: sub_49582+26j lsr.w #8,d0 jsr (sub_6D2).l move.l d1,d0 loc_495DA: ; CODE XREF: sub_49582+18j jsr (sub_6D2).l movem.l (sp)+,d0-d1 unlk a6 rts ; End of function sub_49582 ; --------------------------------------------------------------------------- moveq #18,d0 rts ; --------------------------------------------------------------------------- move.w #13398,d0 rts ; --------------------------------------------------------------------------- move.l #$789ABCDE,d0 rts ; --------------------------------------------------------------------------- link a6,#-4 move.b (C2_PIDS_KE_MODE_1_PID_01_08_SUPPORT).l,-4(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_1_PID_09_10_SUPPORT).l,-3(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_1_PID_11_18_SUPPORT).l,-2(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_1_PID_19_20_SUPPORT).l,-1(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.l -4(a6),d0 unlk a6 rts ; --------------------------------------------------------------------------- link a6,#-4 move.b (C2_PIDS_KE_MODE_1_PID_21_28_SUPPORT).l,-4(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_1_PID_29_30_SUPPORT).l,-3(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_1_PID_31_38_SUPPORT).l,-2(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_1_PID_39_40_SUPPORT).l,-1(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.l -4(a6),d0 unlk a6 rts ; --------------------------------------------------------------------------- link a6,#-4 move.b (C2_PIDS_KE_MODE_2_PID_01_08_SUPPORT).l,-4(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_2_PID_09_10_SUPPORT).l,-3(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_2_PID_11_18_SUPPORT).l,-2(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.b (C2_PIDS_KE_MODE_2_PID_19_20_SUPPORT).l,-1(a6) ; This calibration indicates support or non-support of a PID by the PCM. ; PID_Support_Type move.l -4(a6),d0 unlk a6 rts ; --------------------------------------------------------------------------- move.w (word_FFFF86C4).w,d0 cmp.w (word_88064).l,d0 bne.s locret_4968E move.w (word_FFFF8C0A).w,d0 locret_4968E: ; CODE XREF: OS2:00049688j rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #3,d1 clr.w d0 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- clr.w d0 jsr sub_4974A rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #5,d1 clr.w d0 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #6,d1 clr.w d0 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #7,d1 clr.w d0 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #8,d1 clr.w d0 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #9,d1 clr.w d0 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #$B,d1 clr.w d0 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #$C,d1 clr.w d0 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #$D,d1 clr.w d0 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #$10,d1 clr.w d0 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #$11,d1 clr.w d0 jsr sub_5F2EC move.l (sp)+,d1 rts ; =============== S U B R O U T I N E ======================================= sub_4974A: ; CODE XREF: OS2:000496A2p ; OS2:loc_4989Cp movem.l d1-d2/d6,-(sp) move.w d0,d2 move.w #$119D,d1 jsr sub_5F2EC move.b d0,d6 moveq #$10,d1 move.l d2,d0 jsr sub_5F2EC andi.w #$FF,d6 mulu.w #$97,d6 ; '?' addi.w #$1084,d6 lsr.w #3,d6 andi.l #$FFFF,d0 asl.l #5,d0 divu.w #$19,d0 move.w #$1400,d1 mulu.w d1,d0 divu.w (C2_PIDS_KE_PEAK_AIRFLOW_SEALEVEL).l,d0 ; This calibration indicates the mass air flow corrected corrected to sealevel. ; Grams_per_Second bvs.s loc_49794 cmpi.w #$1400,d0 bls.s loc_49796 loc_49794: ; CODE XREF: sub_4974A+42j move.l d1,d0 loc_49796: ; CODE XREF: sub_4974A+48j move.w d0,d4 move.l d6,d0 mulu.w d1,d0 divu.w (C2_PIDS_KE_SEALEVEL_BAROMETER).l,d0 ; It indicates the barometric pressure corrected corrected to sealevel. ; kPa bvs.s loc_497AA cmpi.w #$1400,d0 bls.s loc_497AC loc_497AA: ; CODE XREF: sub_4974A+58j move.l d1,d0 loc_497AC: ; CODE XREF: sub_4974A+5Ej move.w d0,d3 beq.s loc_497CC move.l d4,d0 mulu.w d1,d0 divu.w d3,d0 bvs.s loc_497BE cmpi.w #$1400,d0 bls.s loc_497C0 loc_497BE: ; CODE XREF: sub_4974A+6Cj move.l d1,d0 loc_497C0: ; CODE XREF: sub_4974A+72j mulu.w d1,d0 divu.l #unk_19191,d0 bra.s loc_497CE ; --------------------------------------------------------------------------- loc_497CC: ; CODE XREF: sub_4974A+64j clr.b d0 loc_497CE: ; CODE XREF: sub_4974A+80j movem.l (sp)+,d1-d2/d6 rts ; End of function sub_4974A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_497D4: ; CODE XREF: OS1:0003FF8Ep arg_0 = 8 link a6,#0 movem.l d2/d6-d7/a4,-(sp) move.b d0,d2 movea.l arg_0(a6),a4 cmpi.b #$29,d1 ; ')' bls.s loc_497EE clr.b d1 moveq #1,d6 bra.s loc_497F0 ; --------------------------------------------------------------------------- loc_497EE: ; CODE XREF: sub_497D4+12j clr.b d6 loc_497F0: ; CODE XREF: sub_497D4+18j tst.b d2 bne.s loc_497F8 clr.w d0 bra.s loc_4982C ; --------------------------------------------------------------------------- loc_497F8: ; CODE XREF: sub_497D4+1Ej moveq #1,d7 cmp.b d2,d7 bne.s loc_4980A jsr sub_5F2D8 andi.w #$FF,d0 bra.s loc_4982C ; --------------------------------------------------------------------------- loc_4980A: ; CODE XREF: sub_497D4+28j jsr sub_5F2D8 andi.w #$FF,d0 subq.b #1,d2 move.l d7,d3 cmp.b d2,d7 bhi.s loc_4982C loc_4981C: ; CODE XREF: sub_497D4+56j subq.w #1,d0 cmp.w d0,d7 bls.s loc_49824 moveq #5,d0 loc_49824: ; CODE XREF: sub_497D4+4Cj addq.b #1,d3 bcs.s loc_4982C cmp.b d3,d2 bcc.s loc_4981C loc_4982C: ; CODE XREF: sub_497D4+22j ; sub_497D4+34j ... andi.w #$FF,d1 move.w word_884C2(d1.w*8),(a0) move.b byte_884C4(d1.w*8),d3 move.b d3,(a4) tst.b d3 bne.s loc_49856 movea.l off_884C6(d1.w*8),a2 jsr (a2) move.b d0,1(a1) bra.s loc_49862 ; --------------------------------------------------------------------------- loc_49856: ; CODE XREF: sub_497D4+70j movea.l off_884C6(d1.w*8),a2 jsr (a2) move.w d0,(a1) loc_49862: ; CODE XREF: sub_497D4+80j move.l d6,d0 movem.l (sp)+,d2/d6-d7/a4 unlk a6 rtd #4 ; End of function sub_497D4 ; --------------------------------------------------------------------------- loc_4986E: ; DATA XREF: OS4:off_884C6o tst.w d0 bne.s loc_49878 move.w (4294936260).w,d0 bra.s locret_4988C ; --------------------------------------------------------------------------- loc_49878: ; CODE XREF: OS2:00049870j cmpi.w #5,d0 bhi.s loc_4988A mulu.w #$56,d0 ; 'V' move.w -$793C(d0.l),d0 bra.s locret_4988C ; --------------------------------------------------------------------------- loc_4988A: ; CODE XREF: OS2:0004987Cj clr.w d0 locret_4988C: ; CODE XREF: OS2:00049876j ; OS2:00049888j rts ; --------------------------------------------------------------------------- loc_4988E: ; DATA XREF: OS4:000884CEo move.l d1,-(sp) moveq #3,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- loc_4989C: ; DATA XREF: OS4:000884D6o jsr sub_4974A rts ; --------------------------------------------------------------------------- loc_498A4: ; DATA XREF: OS4:000884DEo move.l d1,-(sp) moveq #5,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- loc_498B2: ; DATA XREF: OS4:000884E6o move.l d1,-(sp) moveq #6,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- loc_498C0: ; DATA XREF: OS4:000884EEo move.l d1,-(sp) moveq #7,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- loc_498CE: ; DATA XREF: OS4:000884F6o move.l d1,-(sp) moveq #8,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #9,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #$B,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #$C,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #13,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #$10,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) moveq #$11,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$1102,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$114B,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #4428,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #4430,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$1152,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$116F,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$1192,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$119B,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$119D,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$119E,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$11A1,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$11E9,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- tst.w d0 bne.s loc_499FA move.w (word_FFFF86C6).w,d0 bra.s locret_49A0E ; --------------------------------------------------------------------------- loc_499FA: ; CODE XREF: OS2:000499F2j cmpi.w #5,d0 bhi.s loc_49A0C mulu.w #$56,d0 ; 'V' move.w -$793A(d0.l),d0 bra.s locret_49A0E ; --------------------------------------------------------------------------- loc_49A0C: ; CODE XREF: OS2:000499FEj clr.w d0 locret_49A0E: ; CODE XREF: OS2:000499F8j ; OS2:00049A0Aj rts ; --------------------------------------------------------------------------- tst.w d0 bne.s loc_49A1A move.w (word_FFFF86C8).w,d0 bra.s locret_49A2E ; --------------------------------------------------------------------------- loc_49A1A: ; CODE XREF: OS2:00049A12j cmpi.w #5,d0 bhi.s loc_49A2C mulu.w #$56,d0 ; 'V' move.w -$7938(d0.l),d0 bra.s locret_49A2E ; --------------------------------------------------------------------------- loc_49A2C: ; CODE XREF: OS2:00049A1Ej clr.w d0 locret_49A2E: ; CODE XREF: OS2:00049A18j ; OS2:00049A2Aj rts ; --------------------------------------------------------------------------- tst.w d0 bne.s loc_49A3A move.b (byte_FFFF86BF).w,d0 bra.s locret_49A4E ; --------------------------------------------------------------------------- loc_49A3A: ; CODE XREF: OS2:00049A32j cmpi.w #5,d0 bhi.s loc_49A4C mulu.w #$56,d0 ; 'V' move.b -$7941(d0.l),d0 bra.s locret_49A4E ; --------------------------------------------------------------------------- loc_49A4C: ; CODE XREF: OS2:00049A3Ej clr.b d0 locret_49A4E: ; CODE XREF: OS2:00049A38j ; OS2:00049A4Aj rts ; --------------------------------------------------------------------------- tst.w d0 bne.s loc_49A5A move.b (byte_FFFF86C1).w,d0 bra.s locret_49A6E ; --------------------------------------------------------------------------- loc_49A5A: ; CODE XREF: OS2:00049A52j cmpi.w #5,d0 bhi.s loc_49A6C mulu.w #$56,d0 ; 'V' move.b -$793F(d0.l),d0 bra.s locret_49A6E ; --------------------------------------------------------------------------- loc_49A6C: ; CODE XREF: OS2:00049A5Ej clr.b d0 locret_49A6E: ; CODE XREF: OS2:00049A58j ; OS2:00049A6Aj rts ; --------------------------------------------------------------------------- tst.w d0 bne.s loc_49A7A move.b (byte_FFFF86C0).w,d0 bra.s locret_49A8E ; --------------------------------------------------------------------------- loc_49A7A: ; CODE XREF: OS2:00049A72j cmpi.w #5,d0 bhi.s loc_49A8C mulu.w #$56,d0 ; 'V' move.b -$7940(d0.l),d0 bra.s locret_49A8E ; --------------------------------------------------------------------------- loc_49A8C: ; CODE XREF: OS2:00049A7Ej clr.b d0 locret_49A8E: ; CODE XREF: OS2:00049A78j ; OS2:00049A8Aj rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$125A,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$125B,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$12B0,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$12B1,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$12F3,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$131E,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$131F,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #5020,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$139D,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #6433,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$1942,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- move.l d1,-(sp) move.w #$199A,d1 jsr sub_5F2EC move.l (sp)+,d1 rts ; --------------------------------------------------------------------------- GetPid_0021: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFAACE).w,d0 rts ; --------------------------------------------------------------------------- GetPid_001E: ; DATA XREF: Boot:PID_jump_tableo bclr #7,d0 bclr #6,d0 bclr #5,d0 bclr #4,d0 bclr #3,d0 bclr #2,d0 bclr #1,d0 bclr #0,d0 tst.b (byte_FFFFB379).w beq.s locret_49B8E btst #1,(byte_FFFF9027).w beq.s loc_49B8A bset #0,d0 bra.s locret_49B8E ; --------------------------------------------------------------------------- loc_49B8A: ; CODE XREF: OS2:00049B82j bclr #0,d0 locret_49B8E: ; CODE XREF: OS2:00049B7Aj ; OS2:00049B88j rts ; --------------------------------------------------------------------------- GetPid_001C_OBDRequirements: ; DATA XREF: Boot:PID_jump_tableo move.b (C2_PIDS_KE_OBD2_SYSTEM_TYPE).l,d0 ; This Calibration indicates which on_board diagnostic system is used. ; SHORTCARD rts ; --------------------------------------------------------------------------- GetPid_0019_OBS: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.w (word_FFFF9F08).w,d3 mulu.w #$22,d3 ; '"' divu.l #5,d3 divu.w #$3E8,d3 move.b d3,-2(a6) move.b #$FF,-1(a6) move.w -2(a6),d0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_0018_OBS: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.w (word_FFFF9F06).w,d3 mulu.w #$22,d3 ; '"' divu.l #5,d3 divu.w #$3E8,d3 move.b d3,-2(a6) move.w (word_FFFFA8A8).w,d3 subi.w #$800,d3 bpl.s loc_49BEC addi.w #$F,d3 loc_49BEC: ; CODE XREF: OS2:00049BE6j asr.w #4,d3 addi.w #$80,d3 ; '?' tst.w d3 blt.s loc_49C02 cmpi.w #$FF,d3 bls.s loc_49C04 move.b #$FF,d3 bra.s loc_49C04 ; --------------------------------------------------------------------------- loc_49C02: ; CODE XREF: OS2:00049BF4j clr.b d3 loc_49C04: ; CODE XREF: OS2:00049BFAj ; OS2:00049C00j move.b d3,-1(a6) move.w -2(a6),d0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_0015_OBS: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.w (word_FFFF9F02).w,d3 mulu.w #$22,d3 ; '"' divu.l #5,d3 divu.w #$3E8,d3 move.b d3,-2(a6) move.b #$FF,-1(a6) move.w -2(a6),d0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_0014_OBS: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 move.w (word_FFFF9F00).w,d3 mulu.w #$22,d3 ; '"' divu.l #5,d3 divu.w #$3E8,d3 move.b d3,-2(a6) move.w (word_FFFFA8A6).w,d3 subi.w #$800,d3 bpl.s loc_49C64 addi.w #$F,d3 loc_49C64: ; CODE XREF: OS2:00049C5Ej asr.w #4,d3 addi.w #$80,d3 ; '?' tst.w d3 blt.s loc_49C7A cmpi.w #$FF,d3 bls.s loc_49C7C move.b #$FF,d3 bra.s loc_49C7C ; --------------------------------------------------------------------------- loc_49C7A: ; CODE XREF: OS2:00049C6Cj clr.b d3 loc_49C7C: ; CODE XREF: OS2:00049C72j ; OS2:00049C78j move.b d3,-1(a6) move.w -2(a6),d0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_0013_ReportOSensorConfiguration: ; DATA XREF: Boot:PID_jump_tableo move.b (C2_M5_DEFINITION_KE_LOCATIONS_WITH_O2_SENSORS).l,d0 ; Bit encoded calibration which indicates which O2 Sensors are supported. ; BOOLEAN rts ; --------------------------------------------------------------------------- GetPid_0012_CommandedSecondaryAir: ; DATA XREF: Boot:PID_jump_tableo bclr #7,d0 bclr #6,d0 bclr #5,d0 bclr #4,d0 bclr #3,d0 move.b (byte_FFFFB3C2).w,d3 bne.s loc_49CB0 bset #2,d0 bra.s loc_49CB4 ; --------------------------------------------------------------------------- loc_49CB0: ; CODE XREF: OS2:00049CA8j bclr #2,d0 loc_49CB4: ; CODE XREF: OS2:00049CAEj bclr #1,d0 tst.b d3 beq.s loc_49CC2 bset #0,d0 bra.s locret_49CC6 ; --------------------------------------------------------------------------- loc_49CC2: ; CODE XREF: OS2:00049CBAj bclr #0,d0 locret_49CC6: ; CODE XREF: OS2:00049CC0j rts ; --------------------------------------------------------------------------- GetPid_0011_ThrottlePositionSensor: ; DATA XREF: Boot:PID_jump_tableo tst.b (byte_FFFFB370).w beq.s loc_49CD4 move.w (word_FFFFA598).w,d0 bra.s loc_49CD8 ; --------------------------------------------------------------------------- loc_49CD4: ; CODE XREF: OS2:00049CCCj move.w (word_FFFFAB64).w,d0 loc_49CD8: ; CODE XREF: OS2:00049CD2j mulu.w #$D,d0 divu.w #$105,d0 rts ; --------------------------------------------------------------------------- GetPid_0010_MassAirFlow: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFAC82).w,d0 mulu.w #$19,d0 lsr.l #5,d0 rts ; --------------------------------------------------------------------------- GetPid_000F_IntakeAirTemperature: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFB3EA).w,d0 add.w d0,d0 ext.l d0 divs.w #$33,d0 ; '3' addi.w #$28,d0 ; '(' rts ; --------------------------------------------------------------------------- GetPid_000E_IgnitionTimingAdvance: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF9840).w,d0 asl.w #2,d0 bvc.s loc_49D0C bmi.s loc_49D26 bra.s loc_49D20 ; --------------------------------------------------------------------------- loc_49D0C: ; CODE XREF: OS2:00049D06j ext.l d0 divs.w #$5B,d0 ; '[' addi.w #$80,d0 ; '?' tst.w d0 blt.s loc_49D26 cmpi.w #$FF,d0 bls.s locret_49D28 loc_49D20: ; CODE XREF: OS2:00049D0Aj move.b #$FF,d0 bra.s locret_49D28 ; --------------------------------------------------------------------------- loc_49D26: ; CODE XREF: OS2:00049D08j ; OS2:00049D18j clr.b d0 locret_49D28: ; CODE XREF: OS2:00049D1Ej ; OS2:00049D24j rts ; =============== S U B R O U T I N E ======================================= GetPid_000D_SpeedinKPH: ; DATA XREF: Boot:PID_jump_tableo move.w #$19BE,d3 mulu.w (word_FFFFAEC0).w,d3 moveq #$D,d0 mulu.l d3,d0 divu.l #unk_14EAC,d0 cmpi.w #$7FFF,d0 bls.s loc_49D4A move.w #$7FFF,d0 loc_49D4A: ; CODE XREF: GetPid_000D_SpeedinKPH+1Aj add.w d0,d0 andi.l #$FFFF,d0 divu.w #$9F,d0 ; '?' cmpi.w #$FF,d0 bls.s locret_49D60 move.b #$FF,d0 locret_49D60: ; CODE XREF: GetPid_000D_SpeedinKPH+30j rts ; End of function GetPid_000D_SpeedinKPH ; =============== S U B R O U T I N E ======================================= GetPid_000C_EngineRPMHighResolutionRPMx: ; DATA XREF: Boot:PID_jump_tableo move.w (EngineRPM_PID_000C___).w,d0 mulu.w #$19,d0 lsr.l #5,d0 rts ; End of function GetPid_000C_EngineRPMHighResolutionRPMx ; --------------------------------------------------------------------------- GetPid_000B_ManifoldAbsolutePressure: ; DATA XREF: Boot:PID_jump_tableo clr.l d0 move.w (word_FFFFB296).w,d0 divu.w #$33,d0 ; '3' rts ; --------------------------------------------------------------------------- GetPid_0009_LongTermFuelTrimBank: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF98E4).w,d0 subi.w #$800,d0 bpl.s loc_49D88 addi.w #$F,d0 loc_49D88: ; CODE XREF: OS2:00049D82j asr.w #4,d0 addi.w #$80,d0 ; '?' tst.w d0 blt.s loc_49D9E cmpi.w #$FF,d0 bls.s locret_49DA0 move.b #$FF,d0 bra.s locret_49DA0 ; --------------------------------------------------------------------------- loc_49D9E: ; CODE XREF: OS2:00049D90j clr.b d0 locret_49DA0: ; CODE XREF: OS2:00049D96j ; OS2:00049D9Cj rts ; --------------------------------------------------------------------------- GetPid_0008_ShortTermFuelTrimBank: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA8A8).w,d0 subi.w #$800,d0 bpl.s loc_49DB0 addi.w #$F,d0 loc_49DB0: ; CODE XREF: OS2:00049DAAj asr.w #4,d0 addi.w #$80,d0 ; '?' tst.w d0 blt.s loc_49DC6 cmpi.w #$FF,d0 bls.s locret_49DC8 move.b #$FF,d0 bra.s locret_49DC8 ; --------------------------------------------------------------------------- loc_49DC6: ; CODE XREF: OS2:00049DB8j clr.b d0 locret_49DC8: ; CODE XREF: OS2:00049DBEj ; OS2:00049DC4j rts ; --------------------------------------------------------------------------- GetPid_0007_LongTermFuelTrimBank: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF98E2).w,d0 subi.w #$800,d0 bpl.s loc_49DD8 addi.w #$F,d0 loc_49DD8: ; CODE XREF: OS2:00049DD2j asr.w #4,d0 addi.w #$80,d0 ; '?' tst.w d0 blt.s loc_49DEE cmpi.w #$FF,d0 bls.s locret_49DF0 move.b #$FF,d0 bra.s locret_49DF0 ; --------------------------------------------------------------------------- loc_49DEE: ; CODE XREF: OS2:00049DE0j clr.b d0 locret_49DF0: ; CODE XREF: OS2:00049DE6j ; OS2:00049DECj rts ; --------------------------------------------------------------------------- GetPid_0006_ShortTermFuelTrimBank: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFFA8A6).w,d0 subi.w #$800,d0 bpl.s loc_49E00 addi.w #$F,d0 loc_49E00: ; CODE XREF: OS2:00049DFAj asr.w #4,d0 addi.w #$80,d0 ; '?' tst.w d0 blt.s loc_49E16 cmpi.w #$FF,d0 bls.s locret_49E18 move.b #$FF,d0 bra.s locret_49E18 ; --------------------------------------------------------------------------- loc_49E16: ; CODE XREF: OS2:00049E08j clr.b d0 locret_49E18: ; CODE XREF: OS2:00049E0Ej ; OS2:00049E14j rts ; --------------------------------------------------------------------------- GetPid_0005_EngineCoolantTemperature: ; DATA XREF: Boot:PID_jump_tableo move.w (Pid_0005_CoolantTemperature).w,d0 add.w d0,d0 ext.l d0 divs.w #$33,d0 ; '3' addi.w #$28,d0 ; '(' rts ; --------------------------------------------------------------------------- GetPid_0004_CalculatedLoad: ; DATA XREF: Boot:PID_jump_tableo move.w (word_FFFF82D2).w,d3 move.w (word_FFFFAC82).w,d0 move.w #$1400,d5 mulu.w d5,d0 divu.w (C2_PIDS_KE_PEAK_AIRFLOW_SEALEVEL).l,d0 ; This calibration indicates the mass air flow corrected corrected to sealevel. ; Grams_per_Second bvs.s loc_49E48 cmpi.w #$1400,d0 bls.s loc_49E4A loc_49E48: ; CODE XREF: OS2:00049E40j move.l d5,d0 loc_49E4A: ; CODE XREF: OS2:00049E46j move.w d0,d4 move.l d3,d0 mulu.w d5,d0 divu.w (C2_PIDS_KE_SEALEVEL_BAROMETER).l,d0 ; It indicates the barometric pressure corrected corrected to sealevel. ; kPa bvs.s loc_49E5E cmpi.w #$1400,d0 bls.s loc_49E60 loc_49E5E: ; CODE XREF: OS2:00049E56j move.l d5,d0 loc_49E60: ; CODE XREF: OS2:00049E5Cj move.w d0,d3 beq.s loc_49E7E move.l d4,d0 mulu.w d5,d0 divu.w d3,d0 bvs.s loc_49E72 cmpi.w #$1400,d0 bls.s loc_49E74 loc_49E72: ; CODE XREF: OS2:00049E6Aj move.l d5,d0 loc_49E74: ; CODE XREF: OS2:00049E70j mulu.w #$D,d0 divu.w #$105,d0 bra.s locret_49E80 ; --------------------------------------------------------------------------- loc_49E7E: ; CODE XREF: OS2:00049E62j clr.b d0 locret_49E80: ; CODE XREF: OS2:00049E7Cj rts ; --------------------------------------------------------------------------- GetPid_0003_FuelSystemStatus: ; DATA XREF: Boot:PID_jump_tableo link a6,#-2 clr.w d0 move.b (byte_FFFFB2F2).w,d0 move.b byte_884BC(d0.w),-2(a6) tst.b (FUEL_KE_TWO_BANK_FUEL_CONTROL).l ; Used to determine if two bank fuel control is to be used or not. ; BOOLEAN beq.s loc_49EB0 clr.w d0 move.b (byte_FFFFB2F3).w,d0 move.b byte_884BC(d0.w),-1(a6) bra.s loc_49EB4 ; --------------------------------------------------------------------------- loc_49EB0: ; CODE XREF: OS2:00049E9Cj clr.b -1(a6) loc_49EB4: ; CODE XREF: OS2:00049EAEj move.w -2(a6),d0 unlk a6 rts ; --------------------------------------------------------------------------- GetPid_0001_NumberofEmissionRelatedDTC: ; DATA XREF: Boot:PID_jump_tableo link a6,#-6 movem.l d1-d2/d6,-(sp) move.b (byte_FFFF8ACC).w,d3 lsr.b #4,d3 andi.b #3,d3 cmpi.b #1,d3 beq.s loc_49EDA cmpi.b #2,d3 bne.s loc_49EE2 loc_49EDA: ; CODE XREF: OS2:00049ED2j bset #7,-6(a6) bra.s loc_49EE8 ; --------------------------------------------------------------------------- loc_49EE2: ; CODE XREF: OS2:00049ED8j bclr #7,-6(a6) loc_49EE8: ; CODE XREF: OS2:00049EE0j moveq #1,d2 move.l d2,d1 clr.b d0 jsr sub_5F22C cmpi.b #$7F,d0 ; '' bls.s loc_49EFC moveq #$7F,d0 ; '' loc_49EFC: ; CODE XREF: OS2:00049EF8j andi.b #$7F,d0 ; '' andi.b #$80,-6(a6) or.b d0,-6(a6) move.b -6(a6),-4(a6) btst #5,(DM_TYPES_KV_NON_CONTINUOUS_TEST_SUPPORTED+1).l ; This calibration indicates what non-continuous diagnostics are supported by the diagnostic executive. ; BOOLEAN beq.s loc_49F20 bset #0,d6 bra.s loc_49F24 ; --------------------------------------------------------------------------- loc_49F20: ; CODE XREF: OS2:00049F18j bclr #0,d6 loc_49F24: ; CODE XREF: OS2:00049F1Ej btst #6,(DM_TYPES_KV_NON_CONTINUOUS_TEST_SUPPORTED+1).l ; This calibration indicates what non-continuous diagnostics are supported by the diagnostic executive. ; BOOLEAN beq.s loc_49F34 bset #1,d6 bra.s loc_49F38 ; --------------------------------------------------------------------------- loc_49F34: ; CODE XREF: OS2:00049F2Cj bclr #1,d6 loc_49F38: ; CODE XREF: OS2:00049F32j btst #7,(DM_TYPES_KV_NON_CONTINUOUS_TEST_SUPPORTED+1).l ; This calibration indicates what non-continuous diagnostics are supported by the diagnostic executive. ; BOOLEAN beq.s loc_49F48 bset #2,d6 bra.s loc_49F4C ; --------------------------------------------------------------------------- loc_49F48: ; CODE XREF: OS2:00049F40j bclr #2,d6 loc_49F4C: ; CODE XREF: OS2:00049F46j bclr #3,d6 btst #1,(byte_FFFF9027).w bne.s loc_49FB2 clr.w d3 move.b (byte_87F65).l,d3 move.b byte_87F54(d3.w),d0 move.w (word_FFFFB4A8).w,d3 btst d0,d3 bne.s loc_49F76 bset #4,d6 bra.s loc_49F7A ; --------------------------------------------------------------------------- loc_49F76: ; CODE XREF: OS2:00049F6Ej bclr #4,d6 loc_49F7A: ; CODE XREF: OS2:00049F74j clr.w d0 move.b (byte_87F66).l,d0 move.b byte_87F54(d0.w),d0 btst d0,d3 bne.s loc_49F94 bset #5,d6 bra.s loc_49F98 ; --------------------------------------------------------------------------- loc_49F94: ; CODE XREF: OS2:00049F8Cj bclr #5,d6 loc_49F98: ; CODE XREF: OS2:00049F92j clr.w d0 move.b (byte_87F67).l,d0 move.b byte_87F54(d0.w),d0 btst d0,d3 beq.s loc_49FBA bclr #6,d6 bra.s loc_49FBE ; --------------------------------------------------------------------------- loc_49FB2: ; CODE XREF: OS2:00049F56j bset #4,d6 bset #5,d6 loc_49FBA: ; CODE XREF: OS2:00049FAAj bset #6,d6 loc_49FBE: ; CODE XREF: OS2:00049FB0j bclr #7,d6 move.b d6,-3(a6) btst #0,(DM_TYPES_KV_NON_CONTINUOUS_TEST_SUPPORTED).l ; This calibration indicates what non-continuous diagnostics are supported by the diagnostic executive. ; BOOLEAN beq.s loc_49FD6 bset #0,d6 bra.s loc_49FDA ; --------------------------------------------------------------------------- loc_49FD6: ; CODE XREF: OS2:00049FCEj bclr #0,d6 loc_49FDA: ; CODE XREF: OS2:00049FD4j btst #1,(DM_TYPES_KV_NON_CONTINUOUS_TEST_SUPPORTED).l ; This calibration indicates what non-continuous diagnostics are supported by the diagnostic executive. ; BOOLEAN beq.s loc_49FEA bset #1,d6 bra.s loc_49FEE ; --------------------------------------------------------------------------- loc_49FEA: ; CODE XREF: OS2:00049FE2j bclr #1,d6 loc_49FEE: ; CODE XREF: OS2:00049FE8j btst #2,(DM_TYPES_KV_NON_CONTINUOUS_TEST_SUPPORTED).l ; This calibration indicates what non-continuous diagnostics are supported by the diagnostic executive. ; BOOLEAN beq.s loc_49FFE bset #2,d6 bra.s loc_4A002 ; --------------------------------------------------------------------------- loc_49FFE: ; CODE XREF: OS2:00049FF6j bclr #2,d6 loc_4A002: ; CODE XREF: OS2:00049FFCj btst #3,(DM_TYPES_KV_NON_CONTINUOUS_TEST_SUPPORTED).l ; This calibration indicates what non-continuous diagnostics are supported by the diagnostic executive. ; BOOLEAN beq.s loc_4A012 bset #3,d6 bra.s loc_4A016 ; --------------------------------------------------------------------------- loc_4A012: ; CODE XREF: OS2:0004A00Aj bclr #3,d6 loc_4A016: ; CODE XREF: OS2:0004A010j btst #4,(DM_TYPES_KV_NON_CONTINUOUS_TEST_SUPPORTED).l ; This calibration indicates what non-continuous diagnostics are supported by the diagnostic executive. ; BOOLEAN beq.s loc_4A026 bset #4,d6 bra.s loc_4A02A ; --------------------------------------------------------------------------- loc_4A026: ; CODE XREF: OS2:0004A01Ej bclr #4,d6 loc_4A02A: ; CODE XREF: OS2:0004A024j btst #5,(DM_TYPES_KV_NON_CONTINUOUS_TEST_SUPPORTED).l ; This calibration indicates what non-continuous diagnostics are supported by the diagnostic executive. ; BOOLEAN beq.s loc_4A03A bset #5,d6 bra.s loc_4A03E ; --------------------------------------------------------------------------- loc_4A03A: ; CODE XREF: OS2:0004A032j bclr #5,d6 loc_4A03E: ; CODE XREF: OS2:0004A038j btst #6,(DM_TYPES_KV_NON_CONTINUOUS_TEST_SUPPORTED).l ; This calibration indicates what non-continuous diagnostics are supported by the diagnostic executive. ; BOOLEAN beq.s loc_4A04E bset #6,d6 bra.s loc_4A052 ; --------------------------------------------------------------------------- loc_4A04E: ; CODE XREF: OS2:0004A046j bclr #6,d6 loc_4A052: ; CODE XREF: OS2:0004A04Cj btst #7,(DM_TYPES_KV_NON_CONTINUOUS_TEST_SUPPORTED).l ; This calibration indicates what non-continuous diagnostics are supported by the diagnostic executive. ; BOOLEAN beq.s loc_4A062 bset #7,d6 bra.s loc_4A066 ; --------------------------------------------------------------------------- loc_4A062: ; CODE XREF: OS2:0004A05Aj bclr #7,d6 loc_4A066: ; CODE XREF: OS2:0004A060j move.b d6,-2(a6) btst #1,(byte_FFFF9027).w bne.w loc_4A164 clr.w d3 move.b (byte_87F68).l,d3 move.b byte_87F54(d3.w),d0 move.w (word_FFFFB4A8).w,d3 btst d0,d3 bne.s loc_4A092 bset #0,d6 bra.s loc_4A096 ; --------------------------------------------------------------------------- loc_4A092: ; CODE XREF: OS2:0004A08Aj bclr #0,d6 loc_4A096: ; CODE XREF: OS2:0004A090j clr.w d0 move.b (byte_87F69).l,d0 move.b byte_87F54(d0.w),d0 btst d0,d3 bne.s loc_4A0B0 bset #1,d6 bra.s loc_4A0B4 ; --------------------------------------------------------------------------- loc_4A0B0: ; CODE XREF: OS2:0004A0A8j bclr #1,d6 loc_4A0B4: ; CODE XREF: OS2:0004A0AEj clr.w d0 move.b (byte_87F6A).l,d0 move.b byte_87F54(d0.w),d0 btst d0,d3 bne.s loc_4A0CE bset #2,d6 bra.s loc_4A0D2 ; --------------------------------------------------------------------------- loc_4A0CE: ; CODE XREF: OS2:0004A0C6j bclr #2,d6 loc_4A0D2: ; CODE XREF: OS2:0004A0CCj clr.w d0 move.b (byte_87F6B).l,d0 move.b byte_87F54(d0.w),d0 btst d0,d3 bne.s loc_4A0EC bset #3,d6 bra.s loc_4A0F0 ; --------------------------------------------------------------------------- loc_4A0EC: ; CODE XREF: OS2:0004A0E4j bclr #3,d6 loc_4A0F0: ; CODE XREF: OS2:0004A0EAj clr.w d0 move.b (byte_87F6C).l,d0 move.b byte_87F54(d0.w),d0 btst d0,d3 bne.s loc_4A10A bset #4,d6 bra.s loc_4A10E ; --------------------------------------------------------------------------- loc_4A10A: ; CODE XREF: OS2:0004A102j bclr #4,d6 loc_4A10E: ; CODE XREF: OS2:0004A108j clr.w d0 move.b (byte_87F6D).l,d0 move.b byte_87F54(d0.w),d0 btst d0,d3 bne.s loc_4A128 bset #5,d6 bra.s loc_4A12C ; --------------------------------------------------------------------------- loc_4A128: ; CODE XREF: OS2:0004A120j bclr #5,d6 loc_4A12C: ; CODE XREF: OS2:0004A126j clr.w d0 move.b (byte_87F6E).l,d0 move.b byte_87F54(d0.w),d0 btst d0,d3 bne.s loc_4A146 bset #6,d6 bra.s loc_4A14A ; --------------------------------------------------------------------------- loc_4A146: ; CODE XREF: OS2:0004A13Ej bclr #6,d6 loc_4A14A: ; CODE XREF: OS2:0004A144j clr.w d0 move.b (byte_87F6F).l,d0 move.b byte_87F54(d0.w),d0 btst d0,d3 beq.s loc_4A180 bclr #7,d6 bra.s loc_4A184 ; --------------------------------------------------------------------------- loc_4A164: ; CODE XREF: OS2:0004A070j bset #0,d6 bset #1,d6 bset #2,d6 bset #3,d6 bset #4,d6 bset #5,d6 bset #6,d6 loc_4A180: ; CODE XREF: OS2:0004A15Cj bset #7,d6 loc_4A184: ; CODE XREF: OS2:0004A162j move.b d6,-1(a6) move.l -4(a6),d0 movem.l (sp)+,d1-d2/d6 unlk a6 rts ; =============== S U B R O U T I N E ======================================= sub_4A194: ; CODE XREF: sub_451EA+46Ap ; sub_451EA:loc_456F8p ... var_573B = -$573B var_571E = -$571E move.l d2,-(sp) tst.b d0 beq.w loc_4A22E andi.w #$FF,d0 move.b d1,4+var_571E(d0.w) moveq #1,d3 clr.b d0 loc_4A1AA: ; CODE XREF: sub_4A194+3Aj clr.l d2 move.b d3,d2 cmp.b -$572B(d2.w),d1 bne.s loc_4A1C4 clr.b -$572B(d2.w) moveq #1,d0 subq.b #1,(byte_FFFFA8E1).w bra.s loc_4A1C6 ; --------------------------------------------------------------------------- loc_4A1C4: ; CODE XREF: sub_4A194+20j addq.b #1,d3 loc_4A1C6: ; CODE XREF: sub_4A194+2Ej cmpi.b #$B,d3 bhi.s loc_4A1D0 tst.b d0 beq.s loc_4A1AA loc_4A1D0: ; CODE XREF: sub_4A194+36j moveq #1,d3 clr.b d0 loc_4A1D4: ; CODE XREF: sub_4A194+6Aj clr.l d2 move.b d3,d2 cmp.b -$5737(d2.w),d1 bne.s loc_4A1F4 move.b d1,4+var_573B(d2.w) moveq #1,d0 lea word_FFFFAB06(d2.w*2),a2 move.w (GlobalClock).w,(a2) bra.s loc_4A1F6 ; --------------------------------------------------------------------------- loc_4A1F4: ; CODE XREF: sub_4A194+4Aj addq.b #1,d3 loc_4A1F6: ; CODE XREF: sub_4A194+5Ej cmpi.b #$B,d3 bhi.s loc_4A200 tst.b d0 beq.s loc_4A1D4 loc_4A200: ; CODE XREF: sub_4A194+66j moveq #1,d3 loc_4A202: ; CODE XREF: sub_4A194+98j tst.b d0 bne.s loc_4A22E clr.l d4 move.b d3,d4 tst.b -$5737(d4.w) bne.s loc_4A226 move.b d1,4+var_573B(d4.w) moveq #1,d0 lea word_FFFFAB06(d4.w*2),a2 move.w (GlobalClock).w,(a2) bra.s loc_4A228 ; --------------------------------------------------------------------------- loc_4A226: ; CODE XREF: sub_4A194+7Cj addq.b #1,d3 loc_4A228: ; CODE XREF: sub_4A194+90j cmpi.b #$B,d3 bls.s loc_4A202 loc_4A22E: ; CODE XREF: sub_4A194+4j ; sub_4A194+70j move.l (sp)+,d2 rts ; End of function sub_4A194 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4A232: ; CODE XREF: sub_451EA+2B0p ; sub_45CCE+24p ... var_4 = -4 var_3 = -3 var_2 = -2 link a6,#-2 move.w d0,-(sp) move.l d1,-(sp) move.b var_4(a6),d4 lsr.b #4,d4 move.b d4,(byte_FFFFA8C6).w btst #0,var_4(a6) sne d4 neg.b d4 move.b d4,(byte_FFFFA8C7).w move.b var_3(a6),(byte_FFFFA8C8).w move.b (byte_FFFF9A16).w,d4 btst #4,d4 bne.s loc_4A26A btst #2,d4 beq.w loc_4A3D0 loc_4A26A: ; CODE XREF: sub_4A232+2Ej tst.b (byte_FFFF9A38).w bne.w loc_4A3D0 tst.b (byte_FFFFB15E).w bne.w loc_4A3D0 move.b (ThrottleControlMode2?).w,d3 cmpi.b #3,d3 beq.s loc_4A28C cmpi.b #2,d3 bne.w loc_4A3D0 loc_4A28C: ; CODE XREF: sub_4A232+50j move.b (byte_FFFFA8C6).w,d3 cmpi.b #1,d3 bne.w loc_4A390 btst #1,(byte_FFFF8AC8).w bne.w loc_4A390 btst #1,(byte_FFFF8AC6).w bne.w loc_4A390 move.b (byte_FFFFA8C8).w,d3 move.w #$FF,d1 cmp.b d3,d1 bne.s loc_4A2C2 move.w #$F6,var_2(a6) ; '?' bra.w loc_4A364 ; --------------------------------------------------------------------------- loc_4A2C2: ; CODE XREF: sub_4A232+84j cmpi.b #$1A,d3 bne.s loc_4A2D2 move.w #$F8,var_2(a6) ; '?' bra.w loc_4A364 ; --------------------------------------------------------------------------- loc_4A2D2: ; CODE XREF: sub_4A232+94j cmpi.b #$28,d3 ; '(' bne.s loc_4A2E2 move.w #$F9,var_2(a6) ; '?' bra.w loc_4A364 ; --------------------------------------------------------------------------- loc_4A2E2: ; CODE XREF: sub_4A232+A4j cmpi.b #$29,d3 ; ')' bne.s loc_4A2F0 move.w #$FA,var_2(a6) ; '?' bra.s loc_4A364 ; --------------------------------------------------------------------------- loc_4A2F0: ; CODE XREF: sub_4A232+B4j cmpi.b #$38,d3 ; '8' bne.s loc_4A2FE move.w #$FB,var_2(a6) ; '?' bra.s loc_4A364 ; --------------------------------------------------------------------------- loc_4A2FE: ; CODE XREF: sub_4A232+C2j cmpi.b #$39,d3 ; '9' bne.s loc_4A30C move.w #$FC,var_2(a6) ; '?' bra.s loc_4A364 ; --------------------------------------------------------------------------- loc_4A30C: ; CODE XREF: sub_4A232+D0j cmpi.b #$40,d3 ; '@' bne.s loc_4A31A move.w #$FD,var_2(a6) ; '?' bra.s loc_4A364 ; --------------------------------------------------------------------------- loc_4A31A: ; CODE XREF: sub_4A232+DEj cmpi.b #$60,d3 ; '`' bne.s loc_4A328 move.w #$FE,var_2(a6) ; '?' bra.s loc_4A364 ; --------------------------------------------------------------------------- loc_4A328: ; CODE XREF: sub_4A232+ECj cmpi.b #$99,d3 bne.s loc_4A334 move.w d1,var_2(a6) bra.s loc_4A364 ; --------------------------------------------------------------------------- loc_4A334: ; CODE XREF: sub_4A232+FAj cmpi.b #$18,d3 bne.s loc_4A342 move.w #$F7,var_2(a6) ; '?' bra.s loc_4A364 ; --------------------------------------------------------------------------- loc_4A342: ; CODE XREF: sub_4A232+106j cmpi.b #$C0,d3 bne.s loc_4A350 move.w #$100,var_2(a6) bra.s loc_4A364 ; --------------------------------------------------------------------------- loc_4A350: ; CODE XREF: sub_4A232+114j cmpi.b #$C1,d3 bne.s loc_4A35E move.w #$101,var_2(a6) bra.s loc_4A364 ; --------------------------------------------------------------------------- loc_4A35E: ; CODE XREF: sub_4A232+122j clr.w var_2(a6) clr.b d0 loc_4A364: ; CODE XREF: sub_4A232+8Cj ; sub_4A232+9Cj ... tst.w var_2(a6) beq.s loc_4A36C moveq #1,d0 loc_4A36C: ; CODE XREF: sub_4A232+136j tst.b d0 beq.s loc_4A3D0 tst.b (byte_FFFFA8C7).w bne.s loc_4A382 move.w var_2(a6),d0 loc_4A37A: ; CODE XREF: sub_4A232+16Ej ; sub_4A232+18Cj jsr sub_5F0BE bra.s loc_4A3D0 ; --------------------------------------------------------------------------- loc_4A382: ; CODE XREF: sub_4A232+142j btst #4,(byte_FFFF9A16).w beq.s loc_4A3D0 move.w var_2(a6),d0 bra.s loc_4A3CA ; --------------------------------------------------------------------------- loc_4A390: ; CODE XREF: sub_4A232+62j ; sub_4A232+6Cj ... cmpi.b #3,d3 bne.s loc_4A3AE tst.b (byte_FFFFA8C7).w bne.s loc_4A3A2 move.w #$103,d0 bra.s loc_4A37A ; --------------------------------------------------------------------------- loc_4A3A2: ; CODE XREF: sub_4A232+168j btst #4,d4 beq.s loc_4A3D0 move.w #$103,d0 bra.s loc_4A3CA ; --------------------------------------------------------------------------- loc_4A3AE: ; CODE XREF: sub_4A232+162j cmpi.b #4,d3 bne.s loc_4A3D0 tst.b (byte_FFFFA8C7).w bne.s loc_4A3C0 move.w #$104,d0 bra.s loc_4A37A ; --------------------------------------------------------------------------- loc_4A3C0: ; CODE XREF: sub_4A232+186j btst #4,d4 beq.s loc_4A3D0 move.w #$104,d0 loc_4A3CA: ; CODE XREF: sub_4A232+15Cj ; sub_4A232+17Aj jsr sub_5F110 loc_4A3D0: ; CODE XREF: sub_4A232+34j ; sub_4A232+3Cj ... move.l (sp)+,d1 unlk a6 rts ; End of function sub_4A232 ; =============== S U B R O U T I N E ======================================= sub_4A3D6: ; CODE XREF: OS1:00028E32p ; sub_3E4F2+B0p ... moveq #1,d3 loc_4A3D8: ; CODE XREF: sub_4A3D6+18j clr.l d4 move.b d3,d4 clr.b -$5737(d4.w) clr.b -$572B(d4.w) addq.b #1,d3 cmpi.b #$B,d3 bls.s loc_4A3D8 clr.b d3 loc_4A3F2: ; CODE XREF: sub_4A3D6+2Cj clr.l d5 move.b d3,d5 clr.b -$571A(d5.w) addq.b #1,d3 cmpi.b #$17,d3 bls.s loc_4A3F2 moveq #1,d3 loc_4A406: ; CODE XREF: sub_4A3D6+46j clr.l d5 move.b d3,d5 lea word_FFFFAB06(d5.w*2),a2 move.w (GlobalClock).w,(a2) moveq #1,d4 addq.b #1,d3 cmpi.b #$B,d3 bls.s loc_4A406 move.w (GlobalClock).w,(word_FFFFAB06).w clr.l (dword_FFFFA8E2).w clr.b (byte_FFFFA8E1).w move.b d4,(byte_FFFF90E8).w rts ; End of function sub_4A3D6 ; --------------------------------------------------------------------------- loc_4A432: ; DATA XREF: OS4:00089826o clr.b (byte_FFFF90CE).w clr.b (byte_FFFF90C6).w rts ; --------------------------------------------------------------------------- loc_4A43C: ; DATA XREF: OS4:0008982Ao clr.b (byte_FFFF90D0).w move.b #1,(byte_FFFF90C7).w rts ; --------------------------------------------------------------------------- loc_4A448: ; DATA XREF: OS4:0008982Eo clr.b (byte_FFFF90D2).w move.b #1,(byte_FFFF90D1).w rts ; --------------------------------------------------------------------------- loc_4A454: ; DATA XREF: OS4:00089832o move.b #1,(byte_FFFF90D3).w rts ; --------------------------------------------------------------------------- loc_4A45C: ; DATA XREF: OS4:00089836o clr.b (byte_FFFF90D7).w move.b #1,(byte_FFFF90EE).w rts ; --------------------------------------------------------------------------- loc_4A468: ; DATA XREF: OS4:0008983Ao clr.b (4294938855).w clr.b (byte_FFFF90E5).w rts ; --------------------------------------------------------------------------- loc_4A472: ; DATA XREF: OS4:0008983Eo clr.b (4294938885).w move.b #1,(byte_FFFF9106).w rts ; --------------------------------------------------------------------------- loc_4A47E: ; DATA XREF: OS4:00089842o clr.b (byte_FFFF90F8).w move.b #1,(byte_FFFF90F9).w rts ; --------------------------------------------------------------------------- loc_4A48A: ; DATA XREF: OS4:00089846o clr.b (byte_FFFF90F6).w move.b #2,(byte_FFFF90FE).w rts ; --------------------------------------------------------------------------- loc_4A496: ; DATA XREF: OS4:0008984Ao clr.b (4294938892).w clr.b (byte_FFFF9108).w rts ; --------------------------------------------------------------------------- loc_4A4A0: ; DATA XREF: OS4:0008984Eo clr.b (byte_FFFF90FA).w move.b #1,(byte_FFFF90FB).w rts ; --------------------------------------------------------------------------- loc_4A4AC: ; DATA XREF: OS4:00089852o clr.b (byte_FFFF90F4).w clr.b (byte_FFFF90C1).w clr.b (byte_FFFF90F5).w rts ; --------------------------------------------------------------------------- loc_4A4BA: ; DATA XREF: OS4:00089856o clr.b (byte_FFFF820D).w rts ; --------------------------------------------------------------------------- loc_4A4C0: ; DATA XREF: OS4:0008981Eo move.b (ThrottleControlMode2?).w,d3 cmpi.b #3,d3 beq.s loc_4A4D0 cmpi.b #1,d3 bne.s locret_4A4DC loc_4A4D0: ; CODE XREF: OS2:0004A4C8j tst.b (byte_FFFF8209).w beq.s locret_4A4DC move.b #1,(byte_FFFF820A).w locret_4A4DC: ; CODE XREF: OS2:0004A4CEj ; OS2:0004A4D4j rts ; --------------------------------------------------------------------------- loc_4A4DE: ; DATA XREF: OS4:0008981Ao clr.b (byte_FFFF90E1).w rts ; --------------------------------------------------------------------------- loc_4A4E4: ; DATA XREF: OS4:00089822o move.b #2,(byte_FFFF90BD).w rts ; --------------------------------------------------------------------------- loc_4A4EC: ; DATA XREF: OS4:0008985Ao clr.b (4294938855).w clr.b (byte_FFFF90E5).w rts ; --------------------------------------------------------------------------- loc_4A4F6: ; DATA XREF: OS4:0008985Eo clr.b (4294938884).w rts ; --------------------------------------------------------------------------- loc_4A4FC: ; DATA XREF: OS4:00089862o move.b #1,(byte_FFFF90F0).w rts ; --------------------------------------------------------------------------- loc_4A504: ; DATA XREF: OS4:00089866o clr.b (4294938879).w rts ; --------------------------------------------------------------------------- loc_4A50A: ; DATA XREF: OS4:0008986Ao clr.b (byte_FFFF9100).w rts ; --------------------------------------------------------------------------- loc_4A510: ; DATA XREF: OS4:0008986Eo clr.b (byte_FFFF9101).w rts ; --------------------------------------------------------------------------- loc_4A516: ; DATA XREF: OS4:00089872o clr.b (byte_FFFF9102).w rts ; --------------------------------------------------------------------------- locret_4A51C: ; DATA XREF: OS4:off_89816o rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4A51E: ; CODE XREF: OS2:0004A702p var_2 = -2 link a6,#-2 move sr,-(sp) ori #$700,sr movem.l d1-d2/d6,-(sp) move.w d0,d2 move.l a0,d6 clr.w var_2(a6) jsr sub_4A630 clr.b d1 move.l d1,d0 jsr (sub_6D2).l jsr sub_4A630 move.l d2,d1 lsr.w #8,d1 move.l d1,d0 jsr (sub_6D2).l andi.w #$FF,d1 add.w d1,var_2(a6) jsr sub_4A630 move.l d2,d1 move.l d1,d0 jsr (sub_6D2).l andi.w #$FF,d1 add.w d1,var_2(a6) jsr sub_4A630 move.l a0,d1 lsr.l #8,d1 lsr.l #8,d1 move.l d1,d0 jsr (sub_6D2).l andi.w #$FF,d1 add.w d1,var_2(a6) jsr sub_4A630 move.l a0,d1 lsr.w #8,d1 move.l d1,d0 jsr (sub_6D2).l andi.w #$FF,d1 add.w d1,var_2(a6) jsr sub_4A630 move.l a0,d1 move.l d1,d0 jsr (sub_6D2).l andi.w #$FF,d1 add.w d1,var_2(a6) jsr (sub_72A).l bra.s loc_4A5E6 ; --------------------------------------------------------------------------- loc_4A5CC: ; CODE XREF: sub_4A51E+CAj jsr sub_4A630 move.b (a0),d0 jsr (sub_6D2).l clr.w d3 move.b (a0),d3 add.w d3,var_2(a6) addq.l #1,a0 subq.w #1,d2 loc_4A5E6: ; CODE XREF: sub_4A51E+ACj tst.w d2 bhi.s loc_4A5CC jsr sub_4A630 move.w var_2(a6),d0 lsr.w #8,d0 jsr (sub_6D2).l jsr sub_4A630 move.w var_2(a6),d0 jsr (sub_6D2).l jsr sub_4A630 move.b (byte_FFFFBE6A).w,d0 movea.l #$806,a0 jsr (sub_7B6).l clr.b (byte_FFFFBE6B).w movem.l (sp)+,d1-d2/d6 move (sp)+,sr unlk a6 rts ; End of function sub_4A51E ; =============== S U B R O U T I N E ======================================= sub_4A630: ; CODE XREF: sub_4A51E+16p ; sub_4A51E+26p ... move sr,-(sp) ori #$700,sr loc_4A636: ; CODE XREF: sub_4A630+42j jsr (sub_75A).l btst #3,(word_FFFFBE74).w sne d3 neg.b d3 cmp.b (byte_FFFFBE6E).w,d3 beq.s loc_4A650 move.b d3,(byte_FFFFBE6E).w loc_4A650: ; CODE XREF: sub_4A630+1Aj tst.b (byte_FFFFBE6E).w beq.s loc_4A65C jsr (sub_77A).l loc_4A65C: ; CODE XREF: sub_4A630+24j jsr (sub_1626).l jsr (sub_1634).l move.b (word_FFFFBE74).w,d3 moveq #3,d4 and.b d4,d3 cmp.b d3,d4 beq.s loc_4A636 move (sp)+,sr rts ; End of function sub_4A630 ; --------------------------------------------------------------------------- loc_4A678: ; DATA XREF: Boot:off_0o move sr,-(sp) ori #1792,sr movem.l d1-d2,-(sp) move.w d0,d1 jsr (sub_75A).l btst #3,(word_FFFFBE74).w sne d3 neg.b d3 cmp.b (byte_FFFFBE6E).w,d3 beq.s loc_4A69E move.b d3,(byte_FFFFBE6E).w loc_4A69E: ; CODE XREF: OS2:0004A698j tst.b (byte_FFFFBE6E).w beq.s loc_4A6AA jsr (sub_77A).l loc_4A6AA: ; CODE XREF: OS2:0004A6A2j move.b (word_FFFFBE74).w,d0 moveq #3,d2 and.b d2,d0 cmp.b d0,d2 bne.s loc_4A6C6 clr.b (byte_FFFFBE6B).w move.b (byte_808).l,d0 jsr (sub_794).l loc_4A6C6: ; CODE XREF: OS2:0004A6B4j jsr sub_4A630 moveq #$6D,d0 ; 'm' jsr (sub_6D2).l jsr sub_4A630 move.b #$F0,d0 jsr (sub_6D2).l jsr sub_4A630 moveq #$10,d0 jsr (sub_6D2).l jsr sub_4A630 moveq #$36,d0 ; '6' jsr (sub_6D2).l move.l d1,d0 jsr sub_4A51E movem.l (sp)+,d1-d2 move (sp)+,sr rts ; =============== S U B R O U T I N E ======================================= sub_4A710: ; CODE XREF: sub_78BBE+106p move.b (byte_E09).l,(byte_FFFFF607).w rts ; End of function sub_4A710 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4A71A: ; CODE XREF: DoLoopF+34Ep var_6 = -6 var_4 = -4 var_2 = -2 link a6,#-6 movem.l d0-d2/d6-a0,-(sp) tst.b (SHIFT_LIGHT_KE_EXECUTE_UPSHIFT_LIGHT_ALGORIT).l ; Set to TRUE if the upshift light logic should be executed. ; Boolean beq.w loc_4A9DC move.w (word_FFFFA55E).w,var_6(a6) clr.w d3 move.w var_6(a6),d5 bge.s loc_4A73E move.l d3,d0 bra.s loc_4A75E ; --------------------------------------------------------------------------- loc_4A73E: ; CODE XREF: sub_4A71A+1Ej cmpi.w #$60,d5 ; '`' bge.s loc_4A75A move.l d5,d0 muls.w #$50,d0 ; 'P' moveq #3,d6 tst.l d0 bmi.s loc_4A756 divu.l d6,d0 bra.s loc_4A75E ; --------------------------------------------------------------------------- loc_4A756: ; CODE XREF: sub_4A71A+34j clr.l d0 bra.s loc_4A75E ; --------------------------------------------------------------------------- loc_4A75A: ; CODE XREF: sub_4A71A+28j move.w #$A00,d0 loc_4A75E: ; CODE XREF: sub_4A71A+22j ; sub_4A71A+3Aj ... movea.l #SHIFT_LIGHT_KV_DELAY_TIME,a2 ; Delay time from a good shift point to when the light will be turned on. ; Seconds tblu.w (a2),d0 move.w d0,var_4(a6) move.w (word_FFFFA3C0).w,d4 beq.s loc_4A7B2 clr.l d3 move.w (EngineRPM_PID_000C___).w,d3 asl.l #8,d3 divu.w d4,d3 bvc.s loc_4A782 move.w #$FFFF,d3 loc_4A782: ; CODE XREF: sub_4A71A+62j cmp.w (SHIFT_LIGHT_KV_GEAR_RATIO_LO).l,d3 ; KTRNGR12, KTRNGR23, KTRNGR34, KTRNGR45 - The lowest gear ratio (input/output) recognized as each upshiftable gear. ; Input/Out bcs.s loc_4A78E clr.b d3 bra.s loc_4A7B4 ; --------------------------------------------------------------------------- loc_4A78E: ; CODE XREF: sub_4A71A+6Ej cmp.w (word_1014C).l,d3 bcs.s loc_4A79A moveq #1,d3 bra.s loc_4A7B4 ; --------------------------------------------------------------------------- loc_4A79A: ; CODE XREF: sub_4A71A+7Aj cmp.w (word_1014E).l,d3 bcs.s loc_4A7A6 moveq #2,d3 bra.s loc_4A7B4 ; --------------------------------------------------------------------------- loc_4A7A6: ; CODE XREF: sub_4A71A+86j cmp.w (word_10150).l,d3 bcs.s loc_4A7B2 moveq #3,d3 bra.s loc_4A7B4 ; --------------------------------------------------------------------------- loc_4A7B2: ; CODE XREF: sub_4A71A+56j ; sub_4A71A+92j moveq #4,d3 loc_4A7B4: ; CODE XREF: sub_4A71A+72j ; sub_4A71A+7Ej ... tst.b (byte_FFFFA3AC).w beq.s loc_4A7C0 move.w (GlobalClock).w,(word_FFFFB37E).w loc_4A7C0: ; CODE XREF: sub_4A71A+9Ej cmpi.b #3,d3 bhi.w loc_4A8DA move.w (CoolantTemperatureOrDefault).w,d7 cmp.w (SHIFT_LIGHT_KE_COLD_TEMP_LO).l,d7 ; Below this temperature, use the cold engine speed table to determine minimum engine speed for a good shift point. ; Degrees_C bge.s loc_4A7E2 clr.l d0 move.b d3,d0 move.w SHIFT_LIGHT_KV_COLD_ENGINE_SPEED_LO(d0.w*2),d1 ; Minimum engine speed allowed before indicating a good shift point when the engine is cold. ; RPM bra.s loc_4A7EE ; --------------------------------------------------------------------------- loc_4A7E2: ; CODE XREF: sub_4A71A+B8j clr.l d0 move.b d3,d0 move.w SHIFT_LIGHT_KV_ENGINE_SPEED_LO(d0.w*2),d1 loc_4A7EE: ; CODE XREF: sub_4A71A+C6j move.w (EngineRPM_PID_000C___).w,d2 move.l d2,d4 clr.l d6 move.b d3,d6 move.l d6,d0 mulu.w #$16,d0 lea SHIFT_LIGHT_KA_THROTTLE_HI_BASIC(d0.l),a2 ; Throttle must be less than or equal to this value to permit a good shift point. ; Percent clr.w d5 move.l #$1400,d0 cmp.w d4,d0 bls.s loc_4A816 move.l d5,d4 bra.s loc_4A82C ; --------------------------------------------------------------------------- loc_4A816: ; CODE XREF: sub_4A71A+F6j cmpi.w #$6400,d4 bcc.s loc_4A828 andi.l #$FFFF,d4 sub.l d0,d4 lsr.w #3,d4 bra.s loc_4A82C ; --------------------------------------------------------------------------- loc_4A828: ; CODE XREF: sub_4A71A+100j move.w #$A00,d4 loc_4A82C: ; CODE XREF: sub_4A71A+FAj ; sub_4A71A+10Cj tblu.w (a2),d4 tst.b (byte_FFFFB382).w beq.s loc_4A846 clr.l d5 move.b d3,d5 sub.w SHIFT_LIGHT_KV_THROTTLE_HI_HYST(d5.w*2),d4 ; Hysteresis value subtracted from KE_Throttle_Hi when the shift light is off. ; Percent bcc.s loc_4A846 clr.w d4 loc_4A846: ; CODE XREF: sub_4A71A+11Aj ; sub_4A71A+128j move.w (word_FFFF82D2).w,d5 clr.w d0 cmpi.w #$D00,d5 bcc.s loc_4A856 move.l d0,d5 bra.s loc_4A85C ; --------------------------------------------------------------------------- loc_4A856: ; CODE XREF: sub_4A71A+136j lsr.w #1,d5 subi.w #$680,d5 loc_4A85C: ; CODE XREF: sub_4A71A+13Aj movea.l #SHIFT_LIGHT_KV_THROTTLE_HI_BARO_CORRECTION,a2 ; Barometric correction used in determining the highest throttle allowed that indicates a good shift point. ; Gain 0-16 tblu.w (a2),d5 move.w d5,d0 mulu.w d0,d4 divu.w #$1000,d4 bvs.s loc_4A876 cmpi.w #$1400,d4 bls.s loc_4A87A loc_4A876: ; CODE XREF: sub_4A71A+154j move.w #$1400,d4 loc_4A87A: ; CODE XREF: sub_4A71A+15Aj move.w d4,d0 cmp.w (SHIFT_LIGHT_KE_TEMPERATURE_LO).l,d7 ; KSLTMPA - The lowest coolant temperature at which to indicate a good shift point. ; Degrees_C blt.s loc_4A8DA cmpi.w #$280,(word_FFFFAEBE).w bcs.s loc_4A8DA cmpi.w #$1400,d2 bcs.s loc_4A8DA cmp.w d1,d2 bcs.s loc_4A8DA move.w (word_FFFFAB66).w,d1 cmp.w SHIFT_LIGHT_KV_THROTTLE_LO(d6.w*2),d1 ; KTPSNLTA, KTPSNLTC - The lowest throttle at which to indicate a good shift point from each upshiftable gear. ; Percent bcs.s loc_4A8DA cmp.w (word_FFFFAB66).w,d0 bcs.s loc_4A8DA move.w (word_FFFFB292).w,d3 cmp.w SHIFT_LIGHT_KV_SHIFT_MAP_THRESHOLD(d6.w*2),d3 ; Turn off shift light when MAP is below this threshold. ; kPa bcs.s loc_4A8DA cmpi.b #1,(byte_FFFFA67E).w beq.s loc_4A8DA move.w (word_FFFFB37E).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (SHIFT_LIGHT_KE_CLUTCH_TRANS_INHIBIT_TIME).l,d3 ; Number of shift light loops to prevent a good shift point condition following the release of the clutch pedal. ; Seconds bcs.s loc_4A8DA moveq #1,d3 bra.s loc_4A8DC ; --------------------------------------------------------------------------- loc_4A8DA: ; CODE XREF: sub_4A71A+AAj ; sub_4A71A+168j ... clr.b d3 loc_4A8DC: ; CODE XREF: sub_4A71A+1BEj tst.b d3 beq.w loc_4A980 move.w (word_FFFFB384).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w var_4(a6),d3 bcc.s loc_4A8FC tst.b (byte_FFFFB381).w beq.s loc_4A942 loc_4A8FC: ; CODE XREF: sub_4A71A+1DAj tst.b (byte_FFFFB380).w bne.s loc_4A942 move.b (byte_FFFFB382).w,d3 bne.s loc_4A91E move.w (word_FFFFB386).w,var_2(a6) move.w (GlobalClock).w,d1 sub.w var_2(a6),d1 cmp.w (SHIFT_LIGHT_KE_SHIFT_DURATION).l,d1 ; Max on time for the shift light. ; Seconds bcs.s loc_4A928 loc_4A91E: ; CODE XREF: sub_4A71A+1ECj tst.b d3 beq.s loc_4A942 tst.b (byte_FFFFB388).w beq.s loc_4A942 loc_4A928: ; CODE XREF: sub_4A71A+202j clr.b (byte_FFFFB388).w clr.b d3 move.b #1,(byte_FFFFB381).w tst.b (byte_FFFFB382).w beq.s loc_4A996 move.w (GlobalClock).w,(word_FFFFB386).w bra.s loc_4A996 ; --------------------------------------------------------------------------- loc_4A942: ; CODE XREF: sub_4A71A+1E0j ; sub_4A71A+1E6j ... move.w (word_FFFFB386).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (SHIFT_LIGHT_KE_SHIFT_DURATION).l,d3 ; Max on time for the shift light. ; Seconds bcs.s loc_4A964 tst.b (byte_FFFFB382).w bne.s loc_4A964 move.b #1,(byte_FFFFB380).w loc_4A964: ; CODE XREF: sub_4A71A+23Cj ; sub_4A71A+242j moveq #1,d3 move.w (GlobalClock).w,(word_FFFFB386).w tst.w var_6(a6) bge.s loc_4A996 movea.l (dword_FFFFB5DE).w,a2 move.w $A(a2),d4 add.w d4,(word_FFFFB384).w bra.s loc_4A996 ; --------------------------------------------------------------------------- loc_4A980: ; CODE XREF: sub_4A71A+1C4j moveq #1,d2 move.b d2,(byte_FFFFB388).w move.l d2,d3 move.w (GlobalClock).w,(word_FFFFB384).w clr.b (byte_FFFFB380).w clr.b (byte_FFFFB381).w loc_4A996: ; CODE XREF: sub_4A71A+21Ej ; sub_4A71A+226j ... cmp.b (byte_FFFFB382).w,d3 beq.s loc_4A9A2 move.w (GlobalClock).w,(word_FFFFB386).w loc_4A9A2: ; CODE XREF: sub_4A71A+280j move.b d3,(byte_FFFFB382).w beq.s loc_4A9B4 move.w (EngineRPM_PID_000C___).w,d1 cmp.w (SHIFT_LIGHT_KE_REASONABLE_ENGINE_SPEED).l,d1 bls.s loc_4A9BC loc_4A9B4: ; CODE XREF: sub_4A71A+28Cj move.b #1,(byte_FFFFB37C).w bra.s loc_4A9C0 ; --------------------------------------------------------------------------- loc_4A9BC: ; CODE XREF: sub_4A71A+298j clr.b (byte_FFFFB37C).w loc_4A9C0: ; CODE XREF: sub_4A71A+2A0j tst.b (SHIFT_LIGHT_KE_CONTROL_UPSHIFT_LIGHT).l ; Set to TRUE if the upshift light logic should directly controlthe upshift light PCM output. (Class2 message not used). ; Boolean beq.s loc_4A9DC tst.b (byte_FFFFB37C).w beq.s loc_4A9D2 moveq #1,d1 bra.s loc_4A9D4 ; --------------------------------------------------------------------------- loc_4A9D2: ; CODE XREF: sub_4A71A+2B2j clr.b d1 loc_4A9D4: ; CODE XREF: sub_4A71A+2B6j moveq #$26,d0 ; '&' jsr (sub_1122).l loc_4A9DC: ; CODE XREF: sub_4A71A+Ej ; sub_4A71A+2ACj movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_4A71A ; =============== S U B R O U T I N E ======================================= sub_4A9E4: ; CODE XREF: OS1:00028AEAp movem.l d1-d2,-(sp) andi.w #$FF,d0 movea.l off_8A314(d0.w*4),a2 jmp (a2) ; End of function sub_4A9E4 ; --------------------------------------------------------------------------- loc_4A9F6: ; DATA XREF: OS4:0008A31Co moveq #1,d2 move.b d2,(byte_FFFFB382).w clr.b d1 moveq #$26,d0 ; '&' jsr (sub_1122).l move.b d2,(byte_FFFFB388).w bra.s loc_4AA12 ; --------------------------------------------------------------------------- loc_4AA0C: ; DATA XREF: OS4:0008A320o ; OS4:0008A334o bra.s loc_4AA12 ; --------------------------------------------------------------------------- loc_4AA0E: ; DATA XREF: OS4:0008A32Co ; OS4:0008A338o bra.s loc_4AA12 ; --------------------------------------------------------------------------- loc_4AA10: ; DATA XREF: OS4:0008A318o ; OS4:0008A330o nop loc_4AA12: ; CODE XREF: OS2:0004AA0Aj ; OS2:loc_4AA0Cj ... movem.l (sp)+,d1-d2 rts ; =============== S U B R O U T I N E ======================================= sub_4AA18: ; CODE XREF: DoLoopB+26Cp movem.l d0-d2/d6,-(sp) tst.b (byte_FFFFADD5).w beq.w loc_4AB64 move.w (word_FFFFF2F2).w,d3 lsr.w #2,d3 asl.w #8,d3 lsr.w #8,d3 move.b d3,(byte_FFFF95FE).w andi.w #$FF,d3 clr.w d6 move.b (byte_FFFFADD3).w,d6 sub.w d3,d6 move.w d6,d3 move.w d3,(word_FFFFB4B8).w tst.w d3 bge.s loc_4AA4A neg.w d3 loc_4AA4A: ; CODE XREF: sub_4AA18+2Ej cmpi.b #1,d3 bhi.s loc_4AA54 clr.w (word_FFFFB4B8).w loc_4AA54: ; CODE XREF: sub_4AA18+36j move.w (word_FFFFADD8).w,d2 muls.w (word_FFFFB4BE).w,d2 cmpi.l #$FFFF8000,d2 blt.s loc_4AA90 cmpi.l #$7FFF,d2 bgt.s loc_4AA8A move.w (word_FFFFADD6).w,d3 muls.w (word_FFFFB4B8).w,d3 cmpi.l #$FFFF8000,d3 blt.s loc_4AA90 cmpi.l #$7FFF,d3 bgt.s loc_4AA8A sub.w d2,d3 bvc.s loc_4AA94 bpl.s loc_4AA90 loc_4AA8A: ; CODE XREF: sub_4AA18+52j ; sub_4AA18+6Aj move.w #$7FFF,d3 bra.s loc_4AA94 ; --------------------------------------------------------------------------- loc_4AA90: ; CODE XREF: sub_4AA18+4Aj ; sub_4AA18+62j ... move.w #$8000,d3 loc_4AA94: ; CODE XREF: sub_4AA18+6Ej ; sub_4AA18+76j add.w (word_FFFFB4BC).w,d3 bvc.s loc_4AAA6 bpl.s loc_4AAA2 move.w #$7FFF,d3 bra.s loc_4AAA6 ; --------------------------------------------------------------------------- loc_4AAA2: ; CODE XREF: sub_4AA18+82j move.w #$8000,d3 loc_4AAA6: ; CODE XREF: sub_4AA18+80j ; sub_4AA18+88j move.w (TRANS_IO_KE_FORCE_MOTOR_FREQUENCY).l,d4 ; Frequency at which to operate the Force Motor output. ; Hertz mulu.w #$7D,d4 ; '}' lsr.l #8,d4 cmpi.w #$4B0,d4 bgt.w loc_4AB56 cmpi.w #$3E8,d4 bgt.s loc_4AB34 cmpi.w #$29A,d4 bgt.s loc_4AB14 cmpi.w #$14D,d4 bgt.s loc_4AAF4 tst.w d4 ble.w loc_4AB56 cmpi.w #$7FFF,d3 bhi.s loc_4AAEE cmpi.w #$7EB7,d3 bhi.s loc_4AAE8 cmpi.w #$148,d3 bcs.s loc_4AAEE loc_4AAE4: ; CODE XREF: sub_4AA18+EEj ; sub_4AA18+10Ej ... move.w d3,d4 bra.s loc_4AB52 ; --------------------------------------------------------------------------- loc_4AAE8: ; CODE XREF: sub_4AA18+C4j move.w #$7EB7,d4 bra.s loc_4AB52 ; --------------------------------------------------------------------------- loc_4AAEE: ; CODE XREF: sub_4AA18+BEj ; sub_4AA18+CAj move.w #$148,d4 bra.s loc_4AB52 ; --------------------------------------------------------------------------- loc_4AAF4: ; CODE XREF: sub_4AA18+B2j cmpi.w #$7FFF,d3 bhi.s loc_4AB0E cmpi.w #$7D70,d3 bhi.s loc_4AB08 cmpi.w #$28F,d3 bcs.s loc_4AB0E bra.s loc_4AAE4 ; --------------------------------------------------------------------------- loc_4AB08: ; CODE XREF: sub_4AA18+E6j move.w #$7D70,d4 bra.s loc_4AB52 ; --------------------------------------------------------------------------- loc_4AB0E: ; CODE XREF: sub_4AA18+E0j ; sub_4AA18+ECj move.w #$28F,d4 bra.s loc_4AB52 ; --------------------------------------------------------------------------- loc_4AB14: ; CODE XREF: sub_4AA18+ACj cmpi.w #$7FFF,d3 bhi.s loc_4AB2E cmpi.w #$7C28,d3 bhi.s loc_4AB28 cmpi.w #$3D7,d3 bcs.s loc_4AB2E bra.s loc_4AAE4 ; --------------------------------------------------------------------------- loc_4AB28: ; CODE XREF: sub_4AA18+106j move.w #$7C28,d4 bra.s loc_4AB52 ; --------------------------------------------------------------------------- loc_4AB2E: ; CODE XREF: sub_4AA18+100j ; sub_4AA18+10Cj move.w #$3D7,d4 bra.s loc_4AB52 ; --------------------------------------------------------------------------- loc_4AB34: ; CODE XREF: sub_4AA18+A6j cmpi.w #$7FFF,d3 bhi.s loc_4AB4E cmpi.w #$7AE0,d3 bhi.s loc_4AB48 cmpi.w #$51F,d3 bcs.s loc_4AB4E bra.s loc_4AAE4 ; --------------------------------------------------------------------------- loc_4AB48: ; CODE XREF: sub_4AA18+126j move.w #$7AE0,d4 bra.s loc_4AB52 ; --------------------------------------------------------------------------- loc_4AB4E: ; CODE XREF: sub_4AA18+120j ; sub_4AA18+12Cj move.w #$51F,d4 loc_4AB52: ; CODE XREF: sub_4AA18+CEj ; sub_4AA18+D4j ... move.w d4,(word_FFFFB4BA).w loc_4AB56: ; CODE XREF: sub_4AA18+9Ej ; sub_4AA18+B6j move.w (word_FFFFB4B8).w,(word_FFFFB4BE).w move.w (word_FFFFB4BA).w,(word_FFFFB4BC).w bra.s loc_4AB6C ; --------------------------------------------------------------------------- loc_4AB64: ; CODE XREF: sub_4AA18+8j clr.w (word_FFFFB4BA).w clr.w (word_FFFFB4B8).w loc_4AB6C: ; CODE XREF: sub_4AA18+14Aj move.w (T_FM_CONTROL_KE_FM_MIN_DUTY_CYCLE_MFD).l,d3 ; Minimum force motor duty cycle required for MFD chip to accurately measure the actual force motor current. ; Percent cmp.w (word_FFFFB4BA).w,d3 ble.s loc_4AB7C move.w d3,(word_FFFFB4BA).w loc_4AB7C: ; CODE XREF: sub_4AA18+15Ej move.w (word_FFFFB4BA).w,d2 mulu.w #5,d2 lsr.l #5,d2 clr.l d0 move.w (TRANS_IO_KE_FORCE_MOTOR_FREQUENCY).l,d0 ; Frequency at which to operate the Force Motor output. ; Hertz move.l #C2_NORMAL_MSGS_KE_C2_CRUISE_MEMORY_SPEED_SEND_O,d1 divu.l d0,d1 moveq #$14,d0 jsr (sub_16FA).l move.b (byte_FFFFADD5).w,d1 moveq #$32,d0 ; '2' jsr (sub_1122).l movem.l (sp)+,d0-d2/d6 rts ; End of function sub_4AA18 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4ABB2: ; CODE XREF: sub_4C30C+Cp var_4 = -4 var_2 = -2 link a6,#-4 movem.l d1/a0,-(sp) lea var_4(a6),a0 jsr sub_4B192 move.w var_4(a6),d0 move.w d0,(word_FFFFB3A0).w move.w var_2(a6),d4 move.w d4,(word_FFFFB39E).w move.l d0,d3 cmpi.w #$FF,d3 bhi.s loc_4ABE2 cmpi.b #2,d3 bls.s loc_4ABE4 loc_4ABE2: ; CODE XREF: sub_4ABB2+28j moveq #2,d3 loc_4ABE4: ; CODE XREF: sub_4ABB2+2Ej andi.w #$FF,d3 add.w (word_FFFFB3A2).w,d3 bcc.s loc_4ABF2 move.w #$FFFF,d3 loc_4ABF2: ; CODE XREF: sub_4ABB2+3Aj move.w d3,(word_FFFFB3A2).w tst.w d0 bne.s loc_4AC12 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB39C).w,d3 add.w $A(a2),d3 bcc.s loc_4AC0C move.w #$FFFF,d3 loc_4AC0C: ; CODE XREF: sub_4ABB2+54j move.w d3,(word_FFFFB39C).w bra.s loc_4AC1A ; --------------------------------------------------------------------------- loc_4AC12: ; CODE XREF: sub_4ABB2+46j move.w (word_FFFFB39C).w,d3 clr.w (word_FFFFB39C).w loc_4AC1A: ; CODE XREF: sub_4ABB2+5Ej movea.w (word_FFFFB398).w,a2 move.w d4,(word_FFFFB398).w cmp.w (T_INP_SPEED_KE_INPUT_SPD_ZERO_PULSE_TIME).l,d3 ; Time with out input speed pulses to assume zero speed. ; Seconds bcs.s loc_4AC42 move.l d0,d3 cmpi.w #$FF,d3 bhi.s loc_4AC38 cmpi.b #2,d3 bls.s loc_4AC3A loc_4AC38: ; CODE XREF: sub_4ABB2+7Ej moveq #2,d3 loc_4AC3A: ; CODE XREF: sub_4ABB2+84j andi.w #$FF,d3 move.w d3,(word_FFFFB3A2).w loc_4AC42: ; CODE XREF: sub_4ABB2+76j sub.w a2,d4 tst.w d0 bne.s loc_4AC54 tst.b (byte_FFFFB3A4).w bne.s loc_4AC54 cmp.w (word_FFFFB39A).w,d4 bls.s loc_4AC58 loc_4AC54: ; CODE XREF: sub_4ABB2+94j ; sub_4ABB2+9Aj move.w d4,(word_FFFFB39A).w loc_4AC58: ; CODE XREF: sub_4ABB2+A0j cmpi.w #2,d0 scc d1 neg.b d1 move.b d1,(byte_FFFFB3A4).w clr.l d1 move.w (word_FFFFB39A).w,d1 cmpi.w #3,(word_FFFFB3A2).w bcs.s loc_4ACC0 tst.l d1 beq.s loc_4ACC0 tst.w d0 bne.s loc_4AC7C moveq #1,d0 loc_4AC7C: ; CODE XREF: sub_4ABB2+C6j clr.l d5 move.w (T_INP_SPEED_KE_CALCULATED_PULSES_PER_REV).l,d5 ; Defines the number of input speed sensor pulses as Input_Speed_Pulses_Per_Rev / KE_Drive_Sproket_Ratio. ; Pulses/Rev andi.l #$FFFF,d0 mulu.l #$400000,d3:d0 divu.l d5,d3:d0 mulu.l #$24FF,d0 divu.l #$A,d0 divu.l d1,d0 bvs.s loc_4ACBA cmpi.l #$FFFF,d0 bhi.s loc_4ACBA cmpi.w #$7FFF,d0 bls.s loc_4ACC2 loc_4ACBA: ; CODE XREF: sub_4ABB2+F8j ; sub_4ABB2+100j move.w #$7FFF,d0 bra.s loc_4ACC2 ; --------------------------------------------------------------------------- loc_4ACC0: ; CODE XREF: sub_4ABB2+BEj ; sub_4ABB2+C2j clr.w d0 loc_4ACC2: ; CODE XREF: sub_4ABB2+106j ; sub_4ABB2+10Cj movem.l (sp)+,d1/a0 unlk a6 rts ; End of function sub_4ABB2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4ACCA: ; CODE XREF: sub_4B012+8p ; sub_4B012+12p var_597E = -$597E var_5978 = -$5978 var_5972 = -$5972 var_2 = -2 link a6,#-2 movem.l d2/d6,-(sp) move.b d0,d4 move.l d4,d3 addq.b #2,d3 andi.w #$FF,d3 cmpi.b #1,d4 bhi.s loc_4ACF0 beq.s loc_4ACEA movea.w (word_FFFFA764).w,a2 bra.s loc_4ACF4 ; --------------------------------------------------------------------------- loc_4ACEA: ; CODE XREF: sub_4ACCA+18j movea.w (word_FFFFA766).w,a2 bra.s loc_4ACF4 ; --------------------------------------------------------------------------- loc_4ACF0: ; CODE XREF: sub_4ACCA+16j movea.w (word_FFFFA768).w,a2 loc_4ACF4: ; CODE XREF: sub_4ACCA+1Ej ; sub_4ACCA+24j move.w a2,var_2(a6) move.b -$5974(d3.w),d4 moveq #1,d5 cmp.b d4,d5 bne.s loc_4AD72 move.b -$597A(d3.w),d0 bne.s loc_4AD22 move.b var_2(a6),d2 andi.b #$7F,d2 ; '' btst d1,d2 bne.s loc_4AD22 move.l d5,d4 move.b d4,$A+var_5972(d3.w) bra.s loc_4AD3A ; --------------------------------------------------------------------------- loc_4AD22: ; CODE XREF: sub_4ACCA+40j ; sub_4ACCA+4Cj tst.b d0 beq.s loc_4AD3A move.b var_2+1(a6),d0 andi.b #$7F,d0 ; '' btst d1,d0 bne.s loc_4AD3A move.l d5,d4 move.b d4,$A+var_5978(d3.w) loc_4AD3A: ; CODE XREF: sub_4ACCA+56j ; sub_4ACCA+5Aj ... move.l d5,d4 cmp.b -$596E(d3.w),d4 bne.s loc_4AD4E cmp.b -$5968(d3.w),d4 beq.w loc_4AE2C loc_4AD4E: ; CODE XREF: sub_4ACCA+78j move.b var_2(a6),d0 moveq #$7F,d2 ; '' and.b d2,d0 btst d1,d0 bne.w loc_4AE34 move.b var_2+1(a6),d0 and.b d2,d0 btst d1,d0 bne.w loc_4AE34 clr.b -$5974(d3.w) bra.w loc_4AE34 ; --------------------------------------------------------------------------- loc_4AD72: ; CODE XREF: sub_4ACCA+38j moveq #2,d0 cmp.b d4,d0 bne.s loc_4ADAA move.b var_2(a6),d2 moveq #$7F,d6 ; '' and.b d6,d2 btst d1,d2 beq.s loc_4AD96 move.b d0,$A+var_5972(d3.w) loc_4AD8A: ; CODE XREF: sub_4ACCA+DEj move.b #1,$A+var_597E(d3.w) bra.w loc_4AE34 ; --------------------------------------------------------------------------- loc_4AD96: ; CODE XREF: sub_4ACCA+B8j move.b var_2+1(a6),d2 and.b d6,d2 btst d1,d2 beq.w loc_4AE34 move.b d0,$A+var_5978(d3.w) bra.s loc_4AD8A ; --------------------------------------------------------------------------- loc_4ADAA: ; CODE XREF: sub_4ACCA+ACj tst.b d4 bne.w loc_4AE34 move.b -$597A(d3.w),d0 bne.s loc_4ADCE move.b var_2(a6),d2 moveq #$7F,d6 ; '' and.b d6,d2 btst d1,d2 bne.s loc_4ADCE move.l d5,d4 move.b d4,$A+var_5972(d3.w) bra.s loc_4AE1A ; --------------------------------------------------------------------------- loc_4ADCE: ; CODE XREF: sub_4ACCA+ECj ; sub_4ACCA+F8j tst.b d0 beq.s loc_4ADE8 move.b var_2+1(a6),d0 andi.b #$7F,d0 ; '' btst d1,d0 bne.s loc_4ADE8 move.l d5,d4 move.b d4,$A+var_5978(d3.w) bra.s loc_4AE1A ; --------------------------------------------------------------------------- loc_4ADE8: ; CODE XREF: sub_4ACCA+106j ; sub_4ACCA+112j move.b var_2(a6),d0 moveq #$7F,d2 ; '' and.b d2,d0 btst d1,d0 beq.s loc_4AE06 move.b #2,$A+var_5972(d3.w) loc_4ADFC: ; CODE XREF: sub_4ACCA+14Ej move.l d5,d0 move.b d0,$A+var_597E(d3.w) bra.s loc_4AE1A ; --------------------------------------------------------------------------- loc_4AE06: ; CODE XREF: sub_4ACCA+128j move.b var_2+1(a6),d0 and.b d2,d0 btst d1,d0 beq.s loc_4AE1A moveq #2,d4 move.b d4,$A+var_5978(d3.w) bra.s loc_4ADFC ; --------------------------------------------------------------------------- loc_4AE1A: ; CODE XREF: sub_4ACCA+102j ; sub_4ACCA+11Cj ... move.l d5,d4 cmp.b -$596E(d3.w),d4 bne.s loc_4AE34 cmp.b -$5968(d3.w),d4 bne.s loc_4AE34 loc_4AE2C: ; CODE XREF: sub_4ACCA+80j move.b #2,$A+var_597E(d3.w) loc_4AE34: ; CODE XREF: sub_4ACCA+8Ej ; sub_4ACCA+9Aj ... movem.l (sp)+,d2/d6 unlk a6 rts ; End of function sub_4ACCA ; =============== S U B R O U T I N E ======================================= sub_4AE3C: ; CODE XREF: sub_5436E+74p tst.b (byte_FFFFA2F6).w beq.s loc_4AE48 move.b #1,(a0) bra.s loc_4AE4C ; --------------------------------------------------------------------------- loc_4AE48: ; CODE XREF: sub_4AE3C+4j move.b (byte_FFFFA3B3).w,(a0) loc_4AE4C: ; CODE XREF: sub_4AE3C+Aj clr.b (a1) rts ; End of function sub_4AE3C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4AE50: ; CODE XREF: sub_840B4:loc_84298p var_2 = -2 link a6,#-2 move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d3 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type cmpi.b #1,d3 bhi.s loc_4AE80 beq.s loc_4AE72 clr.w d3 move.b (byte_FFFF9BB9).w,d3 move.w unk_2164(d3.w*2),var_2(a6) bra.s loc_4AE80 ; --------------------------------------------------------------------------- loc_4AE72: ; CODE XREF: sub_4AE50+10j clr.w d3 move.b (byte_FFFF9BB9).w,d3 move.w unk_216C(d3.w*2),var_2(a6) loc_4AE80: ; CODE XREF: sub_4AE50+Ej ; sub_4AE50+20j move.b var_2(a6),(byte_FFFFA686).w move.b var_2+1(a6),(byte_FFFFA687).w move.w (word_FFFFA40C).w,d3 move.w d3,d4 cmp.w (TCM_IO_INTERFACE_KE_TCC_DC_LOW_THRESH).l,d4 ; When the TCC PWM is below this threshold the TCC PWM isconsidered OFF. ; Percent bhi.s loc_4AEA0 clr.b (byte_FFFFA688).w bra.s loc_4AEAE ; --------------------------------------------------------------------------- loc_4AEA0: ; CODE XREF: sub_4AE50+48j cmp.w (TCM_IO_INTERFACE_KE_TCC_DC_HIGH_THRESH).l,d3 ; When the TCC PWM is above this threshold the TCC PWM isconsidered ON. ; Percent bcs.s loc_4AEAE move.b #1,(byte_FFFFA688).w loc_4AEAE: ; CODE XREF: sub_4AE50+4Ej ; sub_4AE50+56j move.b (byte_FFFFB538).w,(byte_FFFFA689).w move.b (byte_FFFFA40E).w,(byte_FFFFA68A).w unlk a6 rts ; End of function sub_4AE50 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4AEBE: ; CODE XREF: sub_840B4+1EAp var_5982 = -$5982 var_597C = -$597C var_5976 = -$5976 var_2 = -2 link a6,#-2 movem.l d0-d2,-(sp) moveq #4,d4 loc_4AEC8: ; CODE XREF: sub_4AEBE+148j move.l d4,d3 subq.b #4,d3 andi.w #$FF,d3 move.w (word_FFFFBF0C).w,var_2(a6) move.b -$5974(d3.w),d5 moveq #1,d1 cmp.b d5,d1 bne.s loc_4AF4A move.b -$597A(d3.w),d0 bne.s loc_4AEFE move.b var_2(a6),d5 moveq #$7F,d2 ; '' and.b d2,d5 btst d4,d5 bne.s loc_4AEFE move.b d1,$E+var_5976(d3.w) bra.s loc_4AF14 ; --------------------------------------------------------------------------- loc_4AEFE: ; CODE XREF: sub_4AEBE+2Aj ; sub_4AEBE+36j tst.b d0 beq.s loc_4AF14 move.b var_2+1(a6),d5 moveq #$7F,d0 ; '' and.b d0,d5 btst d4,d5 bne.s loc_4AF14 move.b d1,$E+var_597C(d3.w) loc_4AF14: ; CODE XREF: sub_4AEBE+3Ej ; sub_4AEBE+42j ... cmp.b -$596E(d3.w),d1 bne.s loc_4AF26 cmp.b -$5968(d3.w),d1 beq.w loc_4AFF8 loc_4AF26: ; CODE XREF: sub_4AEBE+5Cj move.b var_2(a6),d5 moveq #$7F,d0 ; '' and.b d0,d5 btst d4,d5 bne.w loc_4B000 move.b var_2+1(a6),d5 and.b d0,d5 btst d4,d5 bne.w loc_4B000 clr.b -$5974(d3.w) bra.w loc_4B000 ; --------------------------------------------------------------------------- loc_4AF4A: ; CODE XREF: sub_4AEBE+22j moveq #2,d0 cmp.b d5,d0 bne.s loc_4AF80 move.b var_2(a6),d5 moveq #$7F,d2 ; '' and.b d2,d5 btst d4,d5 beq.s loc_4AF6C move.b d0,$E+var_5976(d3.w) loc_4AF62: ; CODE XREF: sub_4AEBE+C0j move.b d1,$E+var_5982(d3.w) bra.w loc_4B000 ; --------------------------------------------------------------------------- loc_4AF6C: ; CODE XREF: sub_4AEBE+9Cj move.b var_2+1(a6),d5 and.b d2,d5 btst d4,d5 beq.w loc_4B000 move.b d0,$E+var_597C(d3.w) bra.s loc_4AF62 ; --------------------------------------------------------------------------- loc_4AF80: ; CODE XREF: sub_4AEBE+90j tst.b d5 bne.s loc_4B000 move.b -$597A(d3.w),d0 bne.s loc_4AFA0 move.b var_2(a6),d5 moveq #$7F,d2 ; '' and.b d2,d5 btst d4,d5 bne.s loc_4AFA0 move.b d1,$E+var_5976(d3.w) bra.s loc_4AFE8 ; --------------------------------------------------------------------------- loc_4AFA0: ; CODE XREF: sub_4AEBE+CCj ; sub_4AEBE+D8j tst.b d0 beq.s loc_4AFB8 move.b var_2+1(a6),d5 moveq #$7F,d0 ; '' and.b d0,d5 btst d4,d5 bne.s loc_4AFB8 move.b d1,$E+var_597C(d3.w) bra.s loc_4AFE8 ; --------------------------------------------------------------------------- loc_4AFB8: ; CODE XREF: sub_4AEBE+E4j ; sub_4AEBE+F0j move.b var_2(a6),d5 moveq #$7F,d0 ; '' and.b d0,d5 btst d4,d5 beq.s loc_4AFD4 moveq #2,d2 move.b d2,$E+var_5976(d3.w) loc_4AFCC: ; CODE XREF: sub_4AEBE+128j move.b d1,$E+var_5982(d3.w) bra.s loc_4AFE8 ; --------------------------------------------------------------------------- loc_4AFD4: ; CODE XREF: sub_4AEBE+104j move.b var_2+1(a6),d5 and.b d0,d5 btst d4,d5 beq.s loc_4AFE8 moveq #2,d2 move.b d2,$E+var_597C(d3.w) bra.s loc_4AFCC ; --------------------------------------------------------------------------- loc_4AFE8: ; CODE XREF: sub_4AEBE+E0j ; sub_4AEBE+F8j ... cmp.b -$596E(d3.w),d1 bne.s loc_4B000 cmp.b -$5968(d3.w),d1 bne.s loc_4B000 loc_4AFF8: ; CODE XREF: sub_4AEBE+64j move.b #2,$E+var_5982(d3.w) loc_4B000: ; CODE XREF: sub_4AEBE+72j ; sub_4AEBE+7Ej ... addq.b #1,d4 cmpi.b #6,d4 bls.w loc_4AEC8 movem.l (sp)+,d0-d2 unlk a6 rts ; End of function sub_4AEBE ; =============== S U B R O U T I N E ======================================= sub_4B012: ; CODE XREF: sub_840B4+1F0p movem.l d0-d1,-(sp) moveq #6,d1 moveq #1,d0 jsr sub_4ACCA moveq #6,d1 moveq #2,d0 jsr sub_4ACCA movem.l (sp)+,d0-d1 rts ; End of function sub_4B012 ; =============== S U B R O U T I N E ======================================= sub_4B030: ; CODE XREF: sub_54162+C8p ; sub_54162+E0p ... cmpi.b #1,d0 bhi.s loc_4B044 beq.s loc_4B03E move.b (byte_FFFFA68C).w,d0 bra.s locret_4B046 ; --------------------------------------------------------------------------- loc_4B03E: ; CODE XREF: sub_4B030+6j move.b (byte_FFFFA68D).w,d0 bra.s locret_4B046 ; --------------------------------------------------------------------------- loc_4B044: ; CODE XREF: sub_4B030+4j clr.b d0 locret_4B046: ; CODE XREF: sub_4B030+Cj ; sub_4B030+12j rts ; End of function sub_4B030 ; =============== S U B R O U T I N E ======================================= sub_4B048: ; CODE XREF: sub_5C510+244p move.b (byte_FFFFA690).w,d0 rts ; End of function sub_4B048 ; =============== S U B R O U T I N E ======================================= sub_4B04E: ; CODE XREF: sub_5C510:loc_5C72Ep move.b (byte_FFFFA68E).w,d0 rts ; End of function sub_4B04E ; =============== S U B R O U T I N E ======================================= sub_4B054: ; CODE XREF: sub_5C510+23Ep ; sub_5C510+25Ep movem.l d1-d2/d6,-(sp) move.b d0,d1 jsr sub_4B62A tst.b d0 beq.s loc_4B092 jsr sub_4B62A cmpi.b #2,d0 bne.s loc_4B080 moveq #1,d1 loc_4B072: ; CODE XREF: sub_4B054+3Cj move.w #$15C,d0 jsr (sub_1122).l bra.w loc_4B186 ; --------------------------------------------------------------------------- loc_4B080: ; CODE XREF: sub_4B054+1Aj jsr sub_4B62A cmpi.b #1,d0 bne.w loc_4B186 clr.b d1 bra.s loc_4B072 ; --------------------------------------------------------------------------- loc_4B092: ; CODE XREF: sub_4B054+Ej btst #5,(byte_FFFFAC06).w beq.s loc_4B0CA tst.b (byte_FFFFAF3A).w beq.s loc_4B0CA btst #7,(byte_FFFFB3CE).w bne.s loc_4B0C0 btst #6,(byte_FFFF899C).w bne.s loc_4B0C0 btst #6,(byte_FFFF899A).w bne.s loc_4B0C0 btst #3,(byte_FFFF95E3).w beq.s loc_4B0CA loc_4B0C0: ; CODE XREF: sub_4B054+52j ; sub_4B054+5Aj ... moveq #1,d2 move.l d2,d6 move.b d6,(byte_FFFFA664).w bra.s loc_4B0CC ; --------------------------------------------------------------------------- loc_4B0CA: ; CODE XREF: sub_4B054+44j ; sub_4B054+4Aj ... clr.b d2 loc_4B0CC: ; CODE XREF: sub_4B054+74j tst.b (TCM_OPTIONS_K_TCC_ENABLE_SOLENOID_PRESENT).l ; Indicates whether the transmission has a TCC enable solenoid. ; BOOLEAN beq.s loc_4B0F6 tst.b d2 bne.s loc_4B0E6 tst.b d1 beq.s loc_4B0E6 cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_4B0EA loc_4B0E6: ; CODE XREF: sub_4B054+82j ; sub_4B054+86j clr.b d1 bra.s loc_4B0EC ; --------------------------------------------------------------------------- loc_4B0EA: ; CODE XREF: sub_4B054+90j moveq #1,d1 loc_4B0EC: ; CODE XREF: sub_4B054+94j move.w #$15C,d0 jsr (sub_1122).l loc_4B0F6: ; CODE XREF: sub_4B054+7Ej tst.b d2 beq.w loc_4B186 clr.w d2 btst #0,(byte_FFFFA7E0).w bne.s loc_4B10A move.l d2,d3 bra.s loc_4B116 ; --------------------------------------------------------------------------- loc_4B10A: ; CODE XREF: sub_4B054+B0j tst.b (byte_FFFFA7F4).w bne.s loc_4B114 moveq #1,d3 bra.s loc_4B116 ; --------------------------------------------------------------------------- loc_4B114: ; CODE XREF: sub_4B054+BAj moveq #2,d3 loc_4B116: ; CODE XREF: sub_4B054+B4j ; sub_4B054+BEj tst.b d3 beq.s loc_4B15A btst #0,(byte_FFFFA7E0).w bne.s loc_4B126 move.l d2,d3 bra.s loc_4B132 ; --------------------------------------------------------------------------- loc_4B126: ; CODE XREF: sub_4B054+CCj tst.b (byte_FFFFA7F4).w bne.s loc_4B130 moveq #1,d3 bra.s loc_4B132 ; --------------------------------------------------------------------------- loc_4B130: ; CODE XREF: sub_4B054+D6j moveq #2,d3 loc_4B132: ; CODE XREF: sub_4B054+D0j ; sub_4B054+DAj cmpi.b #2,d3 bne.s loc_4B13E move.w #$7FFF,d2 bra.s loc_4B15A ; --------------------------------------------------------------------------- loc_4B13E: ; CODE XREF: sub_4B054+E2j btst #0,(byte_FFFFA7E0).w bne.s loc_4B14A move.l d2,d3 bra.s loc_4B156 ; --------------------------------------------------------------------------- loc_4B14A: ; CODE XREF: sub_4B054+F0j tst.b (byte_FFFFA7F4).w bne.s loc_4B154 moveq #1,d3 bra.s loc_4B156 ; --------------------------------------------------------------------------- loc_4B154: ; CODE XREF: sub_4B054+FAj moveq #2,d3 loc_4B156: ; CODE XREF: sub_4B054+F4j ; sub_4B054+FEj cmpi.b #1,d3 loc_4B15A: ; CODE XREF: sub_4B054+C4j ; sub_4B054+E8j move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d1 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type cmpi.b #1,d1 bhi.s loc_4B186 mulu.w #5,d2 lsr.l #5,d2 clr.l d0 move.w (TCM_OPTIONS_KE_TCC_CONTROL_OPERATING_FREQ).l,d0 ; Used to tune the TCC control solenoid operating frequency ; Hertz move.l #(loc_7E478+1),d1 divu.l d0,d1 moveq #$30,d0 ; '0' jsr (sub_16FA).l loc_4B186: ; CODE XREF: sub_4B054+28j ; sub_4B054+36j ... movem.l (sp)+,d1-d2/d6 rts ; End of function sub_4B054 ; =============== S U B R O U T I N E ======================================= sub_4B18C: ; CODE XREF: sub_4F9F4+5Ep ; sub_4F9F4:loc_4FAA2p move.b (byte_FFFFA68F).w,d0 rts ; End of function sub_4B18C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4B192: ; CODE XREF: sub_4ABB2+Cp var_10 = -$10 var_A = -$A link a6,#-$10 movem.l d0/a1,-(sp) movea.l a0,a1 lea var_10(a6),a0 moveq #$6C,d0 ; 'l' jsr sub_82046 movea.l a1,a2 move.w var_A(a6),2(a2) move.l var_10(a6),d3 move.l d3,d4 sub.w (word_FFFFA6A4).w,d4 move.w d4,(a2) move.w d3,(word_FFFFA6A4).w movem.l (sp)+,d0/a1 unlk a6 rts ; End of function sub_4B192 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4B1C8: ; CODE XREF: OS1:00028C2Ap ; sub_755FA+1B0p link a6,#-$70 movem.l d1-d2/d6-a1/a4-a5,-(sp) move.b d0,d6 clr.l d4 move.b d0,d4 movea.l off_8A224(d4.w*4),a2 jmp (a2) ; End of function sub_4B1C8 ; --------------------------------------------------------------------------- loc_4B1E0: ; DATA XREF: OS4:0008A22Co clr.b d1 moveq #$24,d0 ; '$' jsr (sub_1122).l move.b (VEH_SYS_KE_PLATFORM).l,d3 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type cmpi.b #3,d3 beq.s loc_4B206 moveq #4,d6 cmp.b d3,d6 beq.s loc_4B206 clr.b d1 moveq #$26,d0 ; '&' jsr (sub_1122).l loc_4B206: ; CODE XREF: OS2:0004B1F4j ; OS2:0004B1FAj clr.w d2 move.l #$50D,d1 move.b #$8C,d0 jsr (sub_16FA).l clr.b (byte_FFFFA67E).w clr.b (byte_FFFFA67F).w clr.w (word_FFFFA684).w clr.w (word_FFFFA682).w clr.b (byte_FFFFA69D).w clr.b (byte_FFFFA69E).w clr.w (word_FFFFA6A0).w clr.w (word_FFFFA6A2).w clr.w d3 loc_4B23A: ; CODE XREF: OS2:0004B254j clr.b -$5974(d3.w) moveq #2,d1 move.b d1,-$596E(d3.w) move.b d1,-$5968(d3.w) addq.w #1,d3 cmpi.w #4,d3 bls.s loc_4B23A clr.b (byte_FFFFA665).w clr.w (word_FFFFA66A).w tst.b (VEH_SYS_KE_DRIVETRAIN_TYPE).l ; Describes the type of drivetrain used on the vehicle ; Drivetrain_Type bne.s loc_4B282 movea.l (off_134C).l,a0 move.l a0,d2 bne.s loc_4B276 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_4B276: ; CODE XREF: OS2:0004B26Ej btst #1,2(a0) sne d3 neg.b d3 bra.s loc_4B284 ; --------------------------------------------------------------------------- loc_4B282: ; CODE XREF: OS2:0004B264j clr.b d3 loc_4B284: ; CODE XREF: OS2:0004B280j move.b d3,(byte_FFFFA667).w move.w (GlobalClock).w,(word_FFFFA67A).w jsr (sub_E32).l tst.b d0 bne.s loc_4B29E jsr sub_79A3E loc_4B29E: ; CODE XREF: OS2:0004B296j tst.b (TCM_OPTIONS_KE_TRANS_HAS_TCC_RELEASE_SWITCH).l ; Trans has TCC Release Switch. Used with 4T65E transmissions. ; BOOLEAN beq.s loc_4B2BE movea.l (off_134C).l,a2 move.l a2,d3 bne.s loc_4B2B6 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_4B2B6: ; CODE XREF: OS2:0004B2AEj btst #3,2(a2) beq.s loc_4B2C6 loc_4B2BE: ; CODE XREF: OS2:0004B2A4j clr.b (byte_FFFFA676).w bra.w loc_4B48C ; --------------------------------------------------------------------------- loc_4B2C6: ; CODE XREF: OS2:0004B2BCj move.b #1,(byte_FFFFA676).w bra.w loc_4B48C ; --------------------------------------------------------------------------- loc_4B2D0: ; DATA XREF: OS4:0008A228o ; OS4:0008A230o ... clr.b d1 move.w #$15C,d0 jsr (sub_1122).l clr.l d2 move.w (TCM_OPTIONS_KE_TCC_CONTROL_OPERATING_FREQ).l,d2 ; Used to tune the TCC control solenoid operating frequency ; Hertz move.l #(loc_7E478+1),d1 divu.l d2,d1 clr.w d2 moveq #$30,d0 ; '0' jsr (sub_16FA).l clr.b d1 moveq #$24,d0 ; '$' jsr (sub_1122).l move.b (VEH_SYS_KE_PLATFORM).l,d3 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type moveq #3,d7 cmp.b d3,d7 beq.s loc_4B31E cmpi.b #4,d3 beq.s loc_4B31E clr.b d1 moveq #$26,d0 ; '&' jsr (sub_1122).l loc_4B31E: ; CODE XREF: OS2:0004B30Cj ; OS2:0004B312j clr.w d2 move.l #$50D,d1 move.b #$8C,d0 jsr (sub_16FA).l clr.b (byte_FFFFA67E).w clr.b (byte_FFFFA67F).w clr.w (word_FFFFA684).w clr.w (word_FFFFA682).w clr.b (byte_FFFFA69D).w clr.b (byte_FFFFA69E).w clr.w (word_FFFFA6A0).w clr.w (word_FFFFA6A2).w clr.w d3 loc_4B352: ; CODE XREF: OS2:0004B36Cj clr.b -$5974(d3.w) moveq #2,d4 move.b d4,-$596E(d3.w) move.b d4,-$5968(d3.w) addq.w #1,d3 cmpi.w #4,d3 bls.s loc_4B352 cmp.b d6,d7 bne.w loc_4B48C clr.w (word_FFFFA66A).w bra.w loc_4B48C ; --------------------------------------------------------------------------- loc_4B37C: ; DATA XREF: OS4:0008A234o clr.b d1 move.w #$15C,d0 jsr (sub_1122).l clr.l d2 move.w (TCM_OPTIONS_KE_TCC_CONTROL_OPERATING_FREQ).l,d2 ; Used to tune the TCC control solenoid operating frequency ; Hertz move.l #(loc_7E478+1),d1 divu.l d2,d1 clr.w d2 moveq #$30,d0 ; '0' jsr (sub_16FA).l clr.b d1 moveq #$24,d0 ; '$' jsr (sub_1122).l move.b (VEH_SYS_KE_PLATFORM).l,d3 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type cmpi.b #3,d3 beq.s loc_4B3CA moveq #4,d6 cmp.b d3,d6 beq.s loc_4B3CA clr.b d1 moveq #$26,d0 ; '&' jsr (sub_1122).l loc_4B3CA: ; CODE XREF: OS2:0004B3B8j ; OS2:0004B3BEj clr.w d2 move.l #$50D,d1 move.b #$8C,d0 jsr (sub_16FA).l clr.b (byte_FFFFA67E).w clr.b (byte_FFFFA67F).w clr.w (word_FFFFA684).w clr.w (word_FFFFA682).w clr.b (byte_FFFFA69D).w clr.b (byte_FFFFA69E).w clr.w (word_FFFFA6A0).w clr.w (word_FFFFA6A2).w clr.w d3 loc_4B3FE: ; CODE XREF: OS2:0004B418j clr.b -$5974(d3.w) moveq #2,d4 move.b d4,-$596E(d3.w) move.b d4,-$5968(d3.w) addq.w #1,d3 cmpi.w #4,d3 bls.s loc_4B3FE move.l (dword_FFFF8D40).w,(dword_FFFF8092).w lea (unk_FFFF8096).w,a5 lea -$6C(a6),a1 movea.l a1,a4 lea -$36(a6),a0 lea (unk_FFFF8B96).w,a2 movea.l a0,a3 moveq #$1A,d3 loc_4B436: ; CODE XREF: OS2:0004B438j move.w (a2)+,(a3)+ dbf d3,loc_4B436 moveq #$1A,d3 loc_4B43E: ; CODE XREF: OS2:0004B440j move.w (a0)+,(a4)+ dbf d3,loc_4B43E moveq #$1A,d3 loc_4B446: ; CODE XREF: OS2:0004B448j move.w (a1)+,(a5)+ dbf d3,loc_4B446 bra.s loc_4B48C ; --------------------------------------------------------------------------- loc_4B44E: ; DATA XREF: OS4:off_8A224o ; OS4:0008A240o clr.b (byte_FFFFA67E).w clr.b (byte_FFFFA67F).w clr.w (4294944388).w clr.w (word_FFFFA682).w clr.w d3 loc_4B460: ; CODE XREF: OS2:0004B47Aj clr.b -$5974(d3.w) moveq #2,d4 move.b d4,-$596E(d3.w) move.b d4,-$5968(d3.w) addq.w #1,d3 cmpi.w #4,d3 bls.s loc_4B460 clr.b (byte_FFFFA69D).w clr.b (byte_FFFFA69E).w clr.w (word_FFFFA6A0).w clr.w (word_FFFFA6A2).w loc_4B48C: ; CODE XREF: OS2:0004B2C2j ; OS2:0004B2CCj ... movem.l (sp)+,d1-d2/d6-a1/a4-a5 unlk a6 rts ; =============== S U B R O U T I N E ======================================= sub_4B494: ; CODE XREF: DoLoopF+33Cp move.l (byte_FFFF8252).w,d3 btst #$1D,d3 bne.s locret_4B4C2 btst #$14,d3 bne.s locret_4B4C2 btst #4,d3 bne.s locret_4B4C2 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (T_DG_TASKS_KE_MAN_VSS_COOLANT_TEMPERATURE).l,d3 ; Disable VSS diagnostic below this temperature. ; Degrees C blt.s locret_4B4C2 tst.b (byte_FFFFA1BA).w beq.s locret_4B4C2 jsr sub_4B4C4 locret_4B4C2: ; CODE XREF: sub_4B494+8j sub_4B494+Ej ... rts ; End of function sub_4B494 ; =============== S U B R O U T I N E ======================================= sub_4B4C4: ; CODE XREF: sub_4B494+28p move.l d0,-(sp) move.w (word_FFFFAEC0).w,d0 beq.s loc_4B4DE clr.b (byte_FFFFA69D).w move.w (word_FFFFA6A2).w,d3 subq.w #1,d3 bcc.s loc_4B4DA clr.w d3 loc_4B4DA: ; CODE XREF: sub_4B4C4+12j move.w d3,(word_FFFFA6A2).w loc_4B4DE: ; CODE XREF: sub_4B4C4+6j tst.b (byte_FFFFA69D).w bne.w loc_4B5C4 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (T_DG_TASKS_KE_MAN_VSS_DIAG_RPM).l,d3 ; Diagnostic does not run below this RPM. ; RPM bls.s loc_4B542 move.w (word_FFFFAB66).w,d3 cmp.w (T_DG_TASKS_KE_MAN_VSS_DIAG_MIN_THROTTLE).l,d3 ; Diagnostic does not run below this throttle position. ; Percent bcs.s loc_4B542 move.w (word_FFFFAB66).w,d3 cmp.w (T_DG_TASKS_KE_MAN_VSS_DIAG_MAX_THROTTLE).l,d3 ; Diagnostic does not run above this throttle position. ; Percent bhi.s loc_4B542 btst #5,(byte_FFFFAD8B).w sne d3 neg.b d3 andi.w #$FF,d3 move.w (word_FFFFB292).w,d4 cmp.w T_DG_TASKS_KV_MAN_VSS_DIAG_MIN_MAP(d3.w*2),d4 ; Diagnostic does not run below this pressure. ; kPa bcs.s loc_4B542 btst #5,(byte_FFFFAD8B).w sne d3 neg.b d3 andi.w #$FF,d3 move.w (word_FFFFB292).w,d4 cmp.w T_DG_TASKS_KV_MAN_VSS_DIAG_MAX_MAP(d3.w*2),d4 ; Diagnostic does not run above this pressure. ; kPa bls.s loc_4B548 loc_4B542: ; CODE XREF: sub_4B4C4+2Cj ; sub_4B4C4+38j ... clr.b (byte_FFFFA69E).w bra.s loc_4B5C4 ; --------------------------------------------------------------------------- loc_4B548: ; CODE XREF: sub_4B4C4+7Cj move.b (byte_FFFFA69E).w,d3 cmp.b (T_DG_TASKS_KE_MAN_VSS_DELAY).l,d3 ; Delay time to meet enable criteria, before checking VSS. ; Counts bcc.s loc_4B562 addq.b #1,d3 bcc.s loc_4B55C move.b #$FF,d3 loc_4B55C: ; CODE XREF: sub_4B4C4+92j move.b d3,(byte_FFFFA69E).w bra.s loc_4B5C4 ; --------------------------------------------------------------------------- loc_4B562: ; CODE XREF: sub_4B4C4+8Ej move.w (word_FFFFA6A0).w,d3 addq.w #1,d3 cmpi.w #$7D0,d3 bls.s loc_4B572 move.w #$7D0,d3 loc_4B572: ; CODE XREF: sub_4B4C4+A8j move.w d3,(word_FFFFA6A0).w tst.w d0 bne.s loc_4B58E movea.w (word_FFFFA6A2).w,a2 addq.w #1,a2 cmpa.w #$7D0,a2 bls.s loc_4B58A movea.w #$7D0,a2 loc_4B58A: ; CODE XREF: sub_4B4C4+C0j move.w a2,(word_FFFFA6A2).w loc_4B58E: ; CODE XREF: sub_4B4C4+B4j move.w (word_FFFFA6A2).w,d0 cmp.w (T_DG_TASKS_KE_MAN_VSS_DIAG_FAIL).l,d0 ; Number of failures to fail the code. ; Counts bls.s loc_4B5B2 moveq #$6C,d0 ; 'l' jsr sub_5F110 move.b #1,(byte_FFFFA69D).w loc_4B5A8: ; CODE XREF: sub_4B4C4+FEj clr.w (word_FFFFA6A0).w clr.w (word_FFFFA6A2).w bra.s loc_4B5C4 ; --------------------------------------------------------------------------- loc_4B5B2: ; CODE XREF: sub_4B4C4+D4j cmp.w (T_DG_TASKS_KE_MAN_VSS_DIAG_PASS).l,d3 ; Number of passes to pass the code. ; Counts bcs.s loc_4B5C4 moveq #$6C,d0 ; 'l' jsr sub_5F0BE bra.s loc_4B5A8 ; --------------------------------------------------------------------------- loc_4B5C4: ; CODE XREF: sub_4B4C4+1Ej ; sub_4B4C4+82j ... move.l (sp)+,d0 rts ; End of function sub_4B4C4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4B5C8: ; CODE XREF: sub_4B780:loc_4B7A0p ; sub_5195C+102p ... var_4 = -4 link a6,#-4 move.b (VEH_SYS_KE_DRIVETRAIN_TYPE).l,d3 ; Describes the type of drivetrain used on the vehicle ; Drivetrain_Type cmpi.b #1,d3 beq.s loc_4B5DE cmpi.b #2,d3 bne.s loc_4B624 loc_4B5DE: ; CODE XREF: sub_4B5C8+Ej btst #6,(byte_FFFF8AA8).w beq.s loc_4B618 btst #7,(byte_FFFFB48E).w beq.s loc_4B5F2 moveq #1,d0 bra.s loc_4B626 ; --------------------------------------------------------------------------- loc_4B5F2: ; CODE XREF: sub_4B5C8+24j btst #6,(byte_FFFFB48E).w bne.s loc_4B624 movea.l (off_134C).l,a2 loc_4B600: ; CODE XREF: sub_4B5C8+5Aj move.l a2,d3 bne.s loc_4B60A jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_4B60A: ; CODE XREF: sub_4B5C8+3Aj clr.b d0 btst #3,2(a2) bne.s loc_4B626 addq.b #1,d0 bra.s loc_4B626 ; --------------------------------------------------------------------------- loc_4B618: ; CODE XREF: sub_4B5C8+1Cj movea.l (off_134C).l,a2 move.l a2,var_4(a6) bra.s loc_4B600 ; --------------------------------------------------------------------------- loc_4B624: ; CODE XREF: sub_4B5C8+14j ; sub_4B5C8+30j clr.b d0 loc_4B626: ; CODE XREF: sub_4B5C8+28j ; sub_4B5C8+4Aj ... unlk a6 rts ; End of function sub_4B5C8 ; =============== S U B R O U T I N E ======================================= sub_4B62A: ; CODE XREF: sub_4B054+6p ; sub_4B054+10p ... btst #0,(byte_FFFFA7DE).w bne.s loc_4B63E btst #0,(byte_FFFFA7E0).w bne.s loc_4B63E clr.b d0 bra.s locret_4B64C ; --------------------------------------------------------------------------- loc_4B63E: ; CODE XREF: sub_4B62A+6j sub_4B62A+Ej cmpi.b #1,(byte_FFFFB3F8).w bne.s loc_4B64A moveq #2,d0 bra.s locret_4B64C ; --------------------------------------------------------------------------- loc_4B64A: ; CODE XREF: sub_4B62A+1Aj moveq #1,d0 locret_4B64C: ; CODE XREF: sub_4B62A+12j ; sub_4B62A+1Ej rts ; End of function sub_4B62A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4B64E: ; CODE XREF: DoLoopF+342p link a6,#-4 tst.b (byte_FFFFA193).w beq.s loc_4B67E movea.l (off_1330).l,a2 move.l a2,d4 bne.s loc_4B668 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_4B668: ; CODE XREF: sub_4B64E+12j clr.b d3 btst #5,2(a2) bne.s loc_4B674 addq.b #1,d3 loc_4B674: ; CODE XREF: sub_4B64E+22j move.b d3,(byte_FFFFA665).w tst.b d3 bne.s loc_4B688 bra.s loc_4B682 ; --------------------------------------------------------------------------- loc_4B67E: ; CODE XREF: sub_4B64E+8j clr.b (byte_FFFFA665).w loc_4B682: ; CODE XREF: sub_4B64E+2Ej move.w (GlobalClock).w,(word_FFFFA67A).w loc_4B688: ; CODE XREF: sub_4B64E+2Cj unlk a6 rts ; End of function sub_4B64E ; =============== S U B R O U T I N E ======================================= sub_4B68C: ; CODE XREF: DoLoopF+348p movem.l d0-d2/a0,-(sp) tst.b (byte_FFFFA193).w beq.w loc_4B77A move.w (word_FFFFB4A2).w,d3 mulu.w #5,d3 lsr.w #7,d3 cmp.b (TCM_IO_INTERFACE_KE_ALLISON_TCM_VOLTAGE).l,d3 ; Voltage below which the TCM MIL request will not be monitored ; Volts bcc.s loc_4B6BE btst #7,(byte_FFFFBF32).w beq.w loc_4B776 tst.b (VEH_SYS_KE_VUNLOCK_USED).l ; Indicates if the Vunlock ignition switch wiring scheme is on the vehicle. ; BOOLEAN beq.w loc_4B776 loc_4B6BE: ; CODE XREF: sub_4B68C+1Cj move.w (word_FFFFA66A).w,d3 addi.w #$10,d3 bcc.s loc_4B6CC move.w #$FFFF,d3 loc_4B6CC: ; CODE XREF: sub_4B68C+3Aj move.w d3,(word_FFFFA66A).w cmp.w (TCM_IO_INTERFACE_KE_TCM_POWERUP_INTEGRITY_DELAY).l,d3 ; Time after ignition on that the PCM will start monitoring theAllison TCM MIL request for line integrity check - P0802 ; Seconds bcs.s loc_4B6F6 cmp.w (TCM_IO_INTERFACE_KE_TCM_POWERUP_INTEGRITY_COMPLET).l,d3 ; Time after ignition on that the PCM will stop monitoring theAllison TCM MIL request for line integrity check - P0802 ; Seconds bcc.s loc_4B6F6 tst.b (byte_FFFFA665).w beq.w loc_4B77A move.w #$A1,d0 ; '?' loc_4B6EC: ; CODE XREF: sub_4B68C+E6j jsr sub_5F0BE bra.w loc_4B77A ; --------------------------------------------------------------------------- loc_4B6F6: ; CODE XREF: sub_4B68C+4Aj ; sub_4B68C+52j move.w (TCM_IO_INTERFACE_KE_TCM_POWERUP_INTEGRITY_COMPLET).l,d0 ; Time after ignition on that the PCM will stop monitoring theAllison TCM MIL request for line integrity check - P0802 ; Seconds cmp.w d0,d3 bcs.s loc_4B72A clr.l d5 move.w (TCM_IO_INTERFACE_KE_TCM_GENERAL_DELAY_REQUEST).l,d5 clr.l d1 move.w d0,d1 add.l d5,d1 clr.l d2 move.w d3,d2 cmp.l d1,d2 bhi.s loc_4B72A btst #5,(byte_FFFF8A02).w bne.s loc_4B77A move.w #$A1,d0 ; '?' loc_4B722: ; CODE XREF: sub_4B68C+E0j jsr sub_5F110 bra.s loc_4B77A ; --------------------------------------------------------------------------- loc_4B72A: ; CODE XREF: sub_4B68C+72j ; sub_4B68C+88j clr.l d5 move.w (TCM_IO_INTERFACE_KE_TCM_GENERAL_DELAY_REQUEST).l,d5 andi.l #$FFFF,d0 add.l d5,d0 andi.l #$FFFF,d3 cmp.l d0,d3 bls.s loc_4B77A btst #1,(byte_FFFF8A02).w bne.s loc_4B77A tst.b (byte_FFFFA665).w beq.s loc_4B76E move.w (TCM_IO_INTERFACE_KE_TCM_MIL_REQUEST_TIME).l,d0 ; Allison TCM MIL request line must be active for this amount of time before PCM will log a P0700 and illuminate the MIL. ; Seconds movea.l #unk_FFA67A,a0 jsr sub_276D4 tst.b d0 beq.s loc_4B76E move.w #$8A,d0 ; '?' bra.s loc_4B722 ; --------------------------------------------------------------------------- loc_4B76E: ; CODE XREF: sub_4B68C+C4j ; sub_4B68C+DAj move.w #$8A,d0 ; '?' bra.w loc_4B6EC ; --------------------------------------------------------------------------- loc_4B776: ; CODE XREF: sub_4B68C+24j ; sub_4B68C+2Ej clr.w (word_FFFFA66A).w loc_4B77A: ; CODE XREF: sub_4B68C+8j ; sub_4B68C+58j ... movem.l (sp)+,d0-d2/a0 rts ; End of function sub_4B68C ; =============== S U B R O U T I N E ======================================= sub_4B780: ; CODE XREF: sub_54FAE+2p move.b (byte_FFFF95E9).w,d3 bne.s loc_4B796 btst #2,(byte_FFFF9BBC).w beq.s loc_4B792 moveq #9,d0 bra.s locret_4B800 ; --------------------------------------------------------------------------- loc_4B792: ; CODE XREF: sub_4B780+Cj clr.b d0 bra.s locret_4B800 ; --------------------------------------------------------------------------- loc_4B796: ; CODE XREF: sub_4B780+4j moveq #1,d4 cmp.b d3,d4 bne.s loc_4B7A0 move.l d4,d0 bra.s locret_4B800 ; --------------------------------------------------------------------------- loc_4B7A0: ; CODE XREF: sub_4B780+1Aj jsr sub_4B5C8 tst.b d0 beq.s loc_4B7B6 btst #7,(byte_FFFF95E5).w beq.s loc_4B7B6 moveq #$A,d0 bra.s locret_4B800 ; --------------------------------------------------------------------------- loc_4B7B6: ; CODE XREF: sub_4B780+28j ; sub_4B780+30j btst #7,(byte_FFFFAF98).w beq.s loc_4B7CE btst #7,(byte_FFFF95E5).w beq.s loc_4B7CA moveq #2,d0 bra.s locret_4B800 ; --------------------------------------------------------------------------- loc_4B7CA: ; CODE XREF: sub_4B780+44j moveq #3,d0 bra.s locret_4B800 ; --------------------------------------------------------------------------- loc_4B7CE: ; CODE XREF: sub_4B780+3Cj btst #7,(byte_FFFF95E5).w beq.s loc_4B7E6 cmpi.b #1,(byte_FFFF95F0).w bne.s loc_4B7E2 moveq #8,d0 bra.s locret_4B800 ; --------------------------------------------------------------------------- loc_4B7E2: ; CODE XREF: sub_4B780+5Cj moveq #4,d0 bra.s locret_4B800 ; --------------------------------------------------------------------------- loc_4B7E6: ; CODE XREF: sub_4B780+54j cmpi.b #1,(byte_FFFF95F0).w bne.s loc_4B7F2 moveq #7,d0 bra.s locret_4B800 ; --------------------------------------------------------------------------- loc_4B7F2: ; CODE XREF: sub_4B780+6Cj btst #5,(byte_FFFF95E2).w beq.s loc_4B7FE moveq #5,d0 bra.s locret_4B800 ; --------------------------------------------------------------------------- loc_4B7FE: ; CODE XREF: sub_4B780+78j moveq #6,d0 locret_4B800: ; CODE XREF: sub_4B780+10j ; sub_4B780+14j ... rts ; End of function sub_4B780 ; =============== S U B R O U T I N E ======================================= sub_4B802: ; CODE XREF: sub_54FAE+Cp btst #7,(byte_FFFFAF98).w beq.s loc_4B80E clr.b d0 bra.s locret_4B828 ; --------------------------------------------------------------------------- loc_4B80E: ; CODE XREF: sub_4B802+6j cmpi.b #1,(byte_FFFF95F0).w bne.s loc_4B81A moveq #3,d0 bra.s locret_4B828 ; --------------------------------------------------------------------------- loc_4B81A: ; CODE XREF: sub_4B802+12j btst #5,(byte_FFFF95E2).w beq.s loc_4B826 moveq #1,d0 bra.s locret_4B828 ; --------------------------------------------------------------------------- loc_4B826: ; CODE XREF: sub_4B802+1Ej moveq #2,d0 locret_4B828: ; CODE XREF: sub_4B802+Aj ; sub_4B802+16j ... rts ; End of function sub_4B802 ; =============== S U B R O U T I N E ======================================= sub_4B82A: ; CODE XREF: sub_54FAE+16p cmpi.b #1,(byte_FFFF95F0).w bne.s loc_4B836 moveq #1,d0 bra.s locret_4B838 ; --------------------------------------------------------------------------- loc_4B836: ; CODE XREF: sub_4B82A+6j clr.b d0 locret_4B838: ; CODE XREF: sub_4B82A+Aj rts ; End of function sub_4B82A ; =============== S U B R O U T I N E ======================================= sub_4B83A: ; CODE XREF: sub_54FAE+20p move.b (byte_FFFF95F0).w,d3 beq.s loc_4B854 cmpi.b #1,d3 bne.s loc_4B84A moveq #1,d0 bra.s locret_4B856 ; --------------------------------------------------------------------------- loc_4B84A: ; CODE XREF: sub_4B83A+Aj cmpi.b #2,d3 bne.s loc_4B854 moveq #2,d0 bra.s locret_4B856 ; --------------------------------------------------------------------------- loc_4B854: ; CODE XREF: sub_4B83A+4j ; sub_4B83A+14j clr.b d0 locret_4B856: ; CODE XREF: sub_4B83A+Ej ; sub_4B83A+18j rts ; End of function sub_4B83A ; =============== S U B R O U T I N E ======================================= sub_4B858: ; CODE XREF: DoLoopD+B4p jsr sub_4B866 jsr sub_4B9B8 rts ; End of function sub_4B858 ; =============== S U B R O U T I N E ======================================= sub_4B866: ; CODE XREF: sub_4B858p movem.l d0-d2/d6-d7,-(sp) btst #1,(byte_FFFFA7DE).w bne.s loc_4B87A btst #6,(byte_FFFFA7DF).w beq.s loc_4B8B8 loc_4B87A: ; CODE XREF: sub_4B866+Aj tst.b (byte_FFFFB3F4).w beq.s loc_4B8B8 btst #1,(byte_FFFFA7DE).w beq.s loc_4B894 btst #1,(word_FFFFA7E2+1).w sne d3 neg.b d3 bra.s loc_4B8A8 ; --------------------------------------------------------------------------- loc_4B894: ; CODE XREF: sub_4B866+20j btst #6,(byte_FFFFA7DF).w beq.s loc_4B8A6 tst.b (byte_FFFFA7F3).w beq.s loc_4B8A6 moveq #1,d3 bra.s loc_4B8A8 ; --------------------------------------------------------------------------- loc_4B8A6: ; CODE XREF: sub_4B866+34j ; sub_4B866+3Aj clr.b d3 loc_4B8A8: ; CODE XREF: sub_4B866+2Cj ; sub_4B866+3Ej tst.b d3 beq.w loc_4B962 loc_4B8AE: ; CODE XREF: sub_4B866+D2j ; sub_4B866+F0j ... move.b #1,(byte_FFFFB538).w bra.w loc_4B966 ; --------------------------------------------------------------------------- loc_4B8B8: ; CODE XREF: sub_4B866+12j ; sub_4B866+18j tst.b (byte_FFFFAC6C).w bne.s loc_4B8C6 btst #7,(byte_FFFF95E3).w bne.s loc_4B8E4 loc_4B8C6: ; CODE XREF: sub_4B866+56j clr.b (byte_FFFFB538).w btst #5,(byte_FFFFA8FF).w beq.s loc_4B8DC move.b #1,(byte_FFFFB539).w bra.w loc_4B966 ; --------------------------------------------------------------------------- loc_4B8DC: ; CODE XREF: sub_4B866+6Aj clr.b (byte_FFFFB539).w bra.w loc_4B966 ; --------------------------------------------------------------------------- loc_4B8E4: ; CODE XREF: sub_4B866+5Ej btst #5,(byte_FFFFA8FF).w beq.s loc_4B93E moveq #2,d6 cmp.b (byte_FFFFB539).w,d6 beq.s loc_4B8FC btst #1,(byte_FFFF9BBA).w beq.s loc_4B902 loc_4B8FC: ; CODE XREF: sub_4B866+8Cj move.b d6,(byte_FFFFB539).w bra.s loc_4B962 ; --------------------------------------------------------------------------- loc_4B902: ; CODE XREF: sub_4B866+94j move.w (word_FFFFA918).w,d3 cmp.w (X_D32_CONTROL_KE_32_COASTDOWN_SPEED).l,d3 ; Vehicle speed condition for 3-2 downshift to coastdown mode. ; MPH bcc.s loc_4B928 move.w (word_FFFFA916).w,d3 cmp.w (X_D32_CONTROL_KE_32_COASTDOWN_THROTTLE).l,d3 ; Throttle condition for 3-2 downshift to coastdown mode. ; Percent bcc.s loc_4B928 move.b #4,(byte_FFFFB539).w tst.b (X_D32_CONTROL_KE_32_COASTDOWN_SOL_STATE).l ; This calibration is used to determine the 3-2 solenoid state when it is in coastdown mode. ; ENUM bra.s loc_4B95E ; --------------------------------------------------------------------------- loc_4B928: ; CODE XREF: sub_4B866+A6j ; sub_4B866+B2j move.b #3,(byte_FFFFB539).w move.w (word_FFFFA918).w,d3 cmp.w (X_D32_CONTROL_KE_32_VEHICLE_SPEED).l,d3 ; Used to select adapt table and solenoid status at start of the 3-2 downshift. ; MPH bhi.w loc_4B8AE bra.s loc_4B962 ; --------------------------------------------------------------------------- loc_4B93E: ; CODE XREF: sub_4B866+84j clr.b (byte_FFFFB539).w move.w (word_FFFF9590).w,d3 cmp.w (X_D32_CONTROL_KE_32_SOLENOID_TEMP).l,d3 ; Transmission temperature threshold FOR determining the 3-2 solenoid status. ; Degrees_C blt.s loc_4B962 move.b (byte_FFFF95DC).w,d3 cmpi.b #2,d3 beq.w loc_4B8AE cmpi.b #3,d3 loc_4B95E: ; CODE XREF: sub_4B866+C0j beq.w loc_4B8AE loc_4B962: ; CODE XREF: sub_4B866+44j ; sub_4B866+9Aj ... clr.b (byte_FFFFB538).w loc_4B966: ; CODE XREF: sub_4B866+4Ej ; sub_4B866+72j ... move.b (byte_FFFFB538).w,d3 beq.s loc_4B974 move.w #$7FFF,(word_FFFF9600).w bra.s loc_4B978 ; --------------------------------------------------------------------------- loc_4B974: ; CODE XREF: sub_4B866+104j clr.w (word_FFFF9600).w loc_4B978: ; CODE XREF: sub_4B866+10Cj move.w (word_FFFF9600).w,d2 tst.b (TCM_OPTIONS_K_D32_PRESS_BIAS_CONTROL_AVAIL).l ; If TRUE, electronic control of the 3-2 downshift timing is available. ; BOOLEAN beq.s loc_4B9B2 tst.b d3 beq.s loc_4B994 moveq #1,d6 move.b d6,(byte_FFFFA67D).w move.b d6,(byte_FFFFA666).w bra.s loc_4B99C ; --------------------------------------------------------------------------- loc_4B994: ; CODE XREF: sub_4B866+120j clr.b (byte_FFFFA67D).w clr.b (byte_FFFFA666).w loc_4B99C: ; CODE XREF: sub_4B866+12Cj mulu.w #5,d2 lsr.l #5,d2 move.l #$50D,d1 move.b #$8C,d0 jsr (sub_16FA).l loc_4B9B2: ; CODE XREF: sub_4B866+11Cj movem.l (sp)+,d0-d2/d6-d7 rts ; End of function sub_4B866 ; =============== S U B R O U T I N E ======================================= sub_4B9B8: ; CODE XREF: sub_4B858+6p movem.l d0-d2/d6-a0,-(sp) clr.w d3 move.b (byte_FFFFB539).w,d3 movea.l off_8A768(d3.w*4),a2 jmp (a2) ; End of function sub_4B9B8 ; --------------------------------------------------------------------------- loc_4B9CC: ; DATA XREF: OS4:off_8A768o bra.s loc_4B9E6 ; --------------------------------------------------------------------------- loc_4B9CE: ; DATA XREF: OS4:0008A76Co move.w (X_D32_CONTROL_KE_D32_DIAGNOSTIC_MODE_PRESSURE).l,(word_FFFFB536).w ; Pressure modifier when Mode = Diagnostic. ; PSI bra.w loc_4BC28 ; --------------------------------------------------------------------------- loc_4B9DA: ; DATA XREF: OS4:0008A770o move.w (X_D32_CONTROL_KE_D32_RANGE_MODE_PRESSURE).l,(word_FFFFB536).w ; Pressure modifier when Mode = Range. ; PSI bra.w loc_4BC28 ; --------------------------------------------------------------------------- loc_4B9E6: ; CODE XREF: OS2:loc_4B9CCj ; DATA XREF: OS4:off_8A778o clr.w (word_FFFFB536).w bra.w loc_4BC28 ; --------------------------------------------------------------------------- loc_4B9EE: ; DATA XREF: OS4:0008A774o move.w (word_FFFFA918).w,d3 cmp.w (X_D32_CONTROL_KE_32_VEHICLE_SPEED).l,d3 ; Used to select adapt table and solenoid status at start of the 3-2 downshift. ; MPH bhi.w loc_4BB10 move.w (word_FFFF95CE).w,d0 clr.l d4 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d4 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d4 cmpi.l #$FFFF,d4 bhi.s loc_4BA18 cmpi.w #$1770,d4 bls.s loc_4BA1C loc_4BA18: ; CODE XREF: OS2:0004BA10j move.w #$1770,d4 loc_4BA1C: ; CODE XREF: OS2:0004BA16j cmp.w d4,d0 bls.s loc_4BA22 move.w d4,d0 loc_4BA22: ; CODE XREF: OS2:0004BA1Ej clr.w d4 move.w #$600,d7 cmp.w d3,d7 bls.s loc_4BA30 move.l d4,d3 bra.s loc_4BA4A ; --------------------------------------------------------------------------- loc_4BA30: ; CODE XREF: OS2:0004BA2Aj cmpi.w #$3600,d3 bcc.s loc_4BA46 andi.l #$FFFF,d3 divu.w #3,d3 subi.w #$200,d3 bra.s loc_4BA4A ; --------------------------------------------------------------------------- loc_4BA46: ; CODE XREF: OS2:0004BA34j move.w #$1000,d3 loc_4BA4A: ; CODE XREF: OS2:0004BA2Ej ; OS2:0004BA44j move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d2 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.w #2,d2 clr.l d1 move.w d0,d1 asl.l #8,d1 divu.w d2,d1 move.l d3,d0 lea (X_D32_CONTROL_KA_D32_LOW_SPEED_MAIN_PRESSURE).l,a0 ; Used to determine the base 3-2 pressure when the 3-2 vehicle speed is less than the 3-2 vehicle speed check value. ; PSI moveq #$22,d2 ; '"' jsr (sub_16D6).l move.w d0,d6 move.w (word_FFFFA914).w,d3 move.w (word_FFFFA918).w,d4 clr.w d5 cmp.w d4,d7 bls.s loc_4BA7E move.l d5,d4 bra.s loc_4BA8E ; --------------------------------------------------------------------------- loc_4BA7E: ; CODE XREF: OS2:0004BA78j cmpi.w #$3600,d4 bcc.s loc_4BA8C lsr.w #3,d4 subi.w #$C0,d4 ; '?' bra.s loc_4BA8E ; --------------------------------------------------------------------------- loc_4BA8C: ; CODE XREF: OS2:0004BA82j move.l d7,d4 loc_4BA8E: ; CODE XREF: OS2:0004BA7Cj ; OS2:0004BA8Aj cmpi.w #$7D0,d3 bcc.s loc_4BA98 move.l d5,d3 bra.s loc_4BAAA ; --------------------------------------------------------------------------- loc_4BA98: ; CODE XREF: OS2:0004BA92j cmpi.w #$23D0,d3 bcc.s loc_4BAA6 lsr.w #2,d3 subi.w #$1F4,d3 bra.s loc_4BAAA ; --------------------------------------------------------------------------- loc_4BAA6: ; CODE XREF: OS2:0004BA9Cj move.w #$700,d3 loc_4BAAA: ; CODE XREF: OS2:0004BA96j ; OS2:0004BAA4j lea (X_D32_CONTROL_KA_D32_LOW_SPD_ENG_SPD_MODIFIER).l,a0 ; Used to modify 3-2 base pressure as a function of engine speed. ; PSI_s move.l d3,d0 move.l d4,d1 moveq #$10,d2 jsr sub_878FA move.l d6,d3 add.w d0,d3 move.w (word_FFFF9590).w,d4 addi.b #$36,d4 ; '6' moveq #9,d5 cmp.b d4,d5 bls.s loc_4BAD2 clr.w d4 bra.s loc_4BAEC ; --------------------------------------------------------------------------- loc_4BAD2: ; CODE XREF: OS2:0004BACCj cmpi.b #$F3,d4 bcc.s loc_4BAE8 andi.w #$FF,d4 sub.w d5,d4 ext.l d4 asl.l #8,d4 divs.w #$1D,d4 bra.s loc_4BAEC ; --------------------------------------------------------------------------- loc_4BAE8: ; CODE XREF: OS2:0004BAD6j move.w #$811,d4 loc_4BAEC: ; CODE XREF: OS2:0004BAD0j ; OS2:0004BAE6j tbls.w (X_D32_CONTROL_KV_D32_TRANS_TEMP_PRESS_MODIFIER).l,d4 ; Used to determine 3-2 shift pressure modifications due to temperature. ; PSI_s add.w d4,d3 cmpi.w #$1800,d3 bgt.s loc_4BB08 cmpi.w #$E800,d3 blt.w loc_4BC18 bra.w loc_4BC1C ; --------------------------------------------------------------------------- loc_4BB08: ; CODE XREF: OS2:0004BAFAj ; OS2:0004BC0Ej move.w #$1800,d3 bra.w loc_4BC1C ; --------------------------------------------------------------------------- loc_4BB10: ; CODE XREF: OS2:0004B9F8j move.w (word_FFFF95CE).w,d1 clr.l d4 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d4 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d4 cmpi.l #$FFFF,d4 bhi.s loc_4BB2C cmpi.w #$1770,d4 bls.s loc_4BB30 loc_4BB2C: ; CODE XREF: OS2:0004BB24j move.w #$1770,d4 loc_4BB30: ; CODE XREF: OS2:0004BB2Aj cmp.w d4,d1 bls.s loc_4BB36 move.l d4,d1 loc_4BB36: ; CODE XREF: OS2:0004BB32j clr.w d4 move.l #$2000,d7 cmp.w d3,d7 bls.s loc_4BB46 move.l d4,d3 bra.s loc_4BB5E ; --------------------------------------------------------------------------- loc_4BB46: ; CODE XREF: OS2:0004BB40j cmpi.w #$5000,d3 bcc.s loc_4BB5A andi.l #$FFFF,d3 sub.l d7,d3 divs.w #3,d3 bra.s loc_4BB5E ; --------------------------------------------------------------------------- loc_4BB5A: ; CODE XREF: OS2:0004BB4Aj move.w #$1000,d3 loc_4BB5E: ; CODE XREF: OS2:0004BB44j ; OS2:0004BB58j move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d0 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.w #2,d0 andi.l #$FFFF,d1 asl.l #8,d1 divu.w d0,d1 move.l d3,d0 lea (X_D32_CONTROL_KA_D32_HIGH_SPEED_MAIN_PRESSURE).l,a0 ; Used to determine the base 3-2 pressure when the 3-2 vehicle speed is greater than the 3-2 vehicle speed check value. ; PSI moveq #$22,d2 ; '"' jsr (sub_16D6).l move.w d0,d6 move.w (word_FFFFA914).w,d0 move.w (word_FFFFA918).w,d1 clr.w d3 cmp.w d1,d7 bls.s loc_4BB94 move.l d3,d1 bra.s loc_4BBA6 ; --------------------------------------------------------------------------- loc_4BB94: ; CODE XREF: OS2:0004BB8Ej cmpi.w #$5000,d1 bcc.s loc_4BBA2 lsr.w #3,d1 subi.w #$400,d1 bra.s loc_4BBA6 ; --------------------------------------------------------------------------- loc_4BBA2: ; CODE XREF: OS2:0004BB98j move.w #$600,d1 loc_4BBA6: ; CODE XREF: OS2:0004BB92j ; OS2:0004BBA0j cmpi.w #$FA0,d0 bcc.s loc_4BBB0 move.l d3,d0 bra.s loc_4BBC2 ; --------------------------------------------------------------------------- loc_4BBB0: ; CODE XREF: OS2:0004BBAAj cmpi.w #$2BA0,d0 bcc.s loc_4BBBE lsr.w #2,d0 subi.w #$3E8,d0 bra.s loc_4BBC2 ; --------------------------------------------------------------------------- loc_4BBBE: ; CODE XREF: OS2:0004BBB4j move.w #$700,d0 loc_4BBC2: ; CODE XREF: OS2:0004BBAEj ; OS2:0004BBBCj lea (X_D32_CONTROL_KA_D32_HIGH_SPD_ENG_SPD_MODIFIER).l,a0 ; Used to modify 3-2 base pressure as a function of engine speed. ; PSI_s moveq #$10,d2 jsr sub_878FA move.l d6,d3 add.w d0,d3 move.w (word_FFFF9590).w,d4 addi.b #$36,d4 ; '6' moveq #9,d5 cmp.b d4,d5 bls.s loc_4BBE6 clr.w d4 bra.s loc_4BC00 ; --------------------------------------------------------------------------- loc_4BBE6: ; CODE XREF: OS2:0004BBE0j cmpi.b #$F3,d4 bcc.s loc_4BBFC andi.w #$FF,d4 sub.w d5,d4 ext.l d4 asl.l #8,d4 divs.w #$1D,d4 bra.s loc_4BC00 ; --------------------------------------------------------------------------- loc_4BBFC: ; CODE XREF: OS2:0004BBEAj move.w #$811,d4 loc_4BC00: ; CODE XREF: OS2:0004BBE4j ; OS2:0004BBFAj tbls.w (X_D32_CONTROL_KV_D32_TRANS_TEMP_PRESS_MODIFIER).l,d4 ; Used to determine 3-2 shift pressure modifications due to temperature. ; PSI_s add.w d4,d3 cmpi.w #$1800,d3 bgt.w loc_4BB08 cmpi.w #$E800,d3 bge.s loc_4BC1C loc_4BC18: ; CODE XREF: OS2:0004BB00j move.w #$E800,d3 loc_4BC1C: ; CODE XREF: OS2:0004BB04j ; OS2:0004BB0Cj ... cmpi.w #$7FFF,d3 bls.s loc_4BC24 clr.w d3 loc_4BC24: ; CODE XREF: OS2:0004BC20j move.w d3,(word_FFFFB536).w loc_4BC28: ; CODE XREF: OS2:0004B9D6j ; OS2:0004B9E2j ... movem.l (sp)+,d0-d2/d6-a0 rts ; =============== S U B R O U T I N E ======================================= sub_4BC2E: ; CODE XREF: DoLoopF+370p move.l d0,-(sp) move.b (byte_FFFFADDB).w,d3 moveq #7,d5 cmp.b d3,d5 beq.s loc_4BC46 move.l d3,d4 asl.b #5,d4 andi.w #$FF,d4 subi.w #$22,d4 ; '"' loc_4BC46: ; CODE XREF: sub_4BC2E+Aj tst.b d3 beq.s loc_4BC56 move.l d3,d0 asl.b #5,d0 andi.w #$FF,d0 subi.w #$4A,d0 ; 'J' loc_4BC56: ; CODE XREF: sub_4BC2E+1Aj cmp.b d3,d5 bls.s loc_4BC68 cmp.w (word_FFFF9590).w,d4 bge.s loc_4BC68 addq.b #1,d3 loc_4BC62: ; CODE XREF: sub_4BC2E+46j move.b d3,(byte_FFFFADDB).w bra.s loc_4BC76 ; --------------------------------------------------------------------------- loc_4BC68: ; CODE XREF: sub_4BC2E+2Aj ; sub_4BC2E+30j tst.b d3 bls.s loc_4BC76 cmp.w (word_FFFF9590).w,d0 ble.s loc_4BC76 subq.b #1,d3 bra.s loc_4BC62 ; --------------------------------------------------------------------------- loc_4BC76: ; CODE XREF: sub_4BC2E+38j ; sub_4BC2E+3Cj ... clr.w d3 move.b (byte_FFFFADDB).w,d3 move.w X_FM_CONTROL_KV_FORCE_MOTOR_GAIN_TABLE_1(d3.w*2),(word_FFFFADD6).w ; Table 1 of force motor gains. ; Gain move.w X_FM_CONTROL_KV_FORCE_MOTOR_GAIN_TABLE_2(d3.w*2),(word_FFFFADD8).w ; Table 2 of force motor gains. ; Gain move.l (sp)+,d0 rts ; End of function sub_4BC2E ; =============== S U B R O U T I N E ======================================= sub_4BC94: ; CODE XREF: DoLoopF+376p tst.b (TCM_OPTIONS_KE_FM_FDBCK_CURR_CRTN_ENABLE).l ; TRUE if force motor feedback current circuit characterization is available and desired, else FALSE. ; T/F beq.w loc_4BD72 move.w (word_FFFF805C).w,d4 move.l d4,d3 add.w (word_FFFF805E).w,d3 beq.s loc_4BCB4 move.w (X_FM_CONTROL_KE_FM_FDBCK_CRTN_CURR_FAILSOFT).l,(word_FFFFADF0).w ; Value of FM ckt characterization offset incase of a checksum failure or other failsoftingcondition. ; Amps_s bra.s loc_4BCB8 ; --------------------------------------------------------------------------- loc_4BCB4: ; CODE XREF: sub_4BC94+14j move.w d4,(word_FFFFADF0).w loc_4BCB8: ; CODE XREF: sub_4BC94+1Ej move.b (byte_FFFFADD1).w,d3 cmp.b (X_FM_CONTROL_KE_FM_FDBCK_CRTN_CURR_ENABLE).l,d3 ; Above this value, full compensation applied. ; Amps bcs.s loc_4BCF0 move.w (word_FFFFF2F2).w,d3 lsr.w #2,d3 asl.w #8,d3 lsr.w #8,d3 move.b d3,(byte_FFFF95FE).w clr.w d3 move.b (byte_FFFF95FE).w,d3 add.w (word_FFFFADF0).w,d3 tst.w d3 loc_4BCDE: ; CODE XREF: sub_4BC94+D2j blt.w loc_4BD6A cmpi.w #$FF,d3 bls.w loc_4BD6C move.b #$FF,d3 bra.s loc_4BD6C ; --------------------------------------------------------------------------- loc_4BCF0: ; CODE XREF: sub_4BC94+2Ej cmp.b (X_FM_CONTROL_KE_FM_FDBCK_CRTN_CURR_DISABLE).l,d3 ; Below this value, no compensation applied. ; Amps bhi.s loc_4BD08 move.w (word_FFFFF2F2).w,d3 lsr.w #2,d3 asl.w #8,d3 lsr.w #8,d3 move.b d3,(byte_FFFF95FE).w bra.s loc_4BD6C ; --------------------------------------------------------------------------- loc_4BD08: ; CODE XREF: sub_4BC94+62j move.w (word_FFFFF2F2).w,d3 lsr.w #2,d3 asl.w #8,d3 lsr.w #8,d3 move.b d3,(byte_FFFF95FE).w clr.w d3 move.b (byte_FFFF95FE).w,d3 move.b (byte_FFFFADD1).w,d4 sub.b (X_FM_CONTROL_KE_FM_FDBCK_CRTN_CURR_DISABLE).l,d4 ; Below this value, no compensation applied. ; Amps bcc.s loc_4BD2A clr.b d4 loc_4BD2A: ; CODE XREF: sub_4BC94+92j andi.w #$FF,d4 mulu.w (word_FFFFADEE).w,d4 lsr.l #8,d4 lsr.l #1,d4 cmpi.w #$FF,d4 bls.s loc_4BD40 move.b #$FF,d4 loc_4BD40: ; CODE XREF: sub_4BC94+A6j andi.w #$FF,d4 muls.w (word_FFFFADF0).w,d4 divs.w #$CC,d4 ; '?' cmpi.w #$FF,d4 bgt.s loc_4BD5A cmpi.w #$FF02,d4 blt.s loc_4BD60 bra.s loc_4BD64 ; --------------------------------------------------------------------------- loc_4BD5A: ; CODE XREF: sub_4BC94+BCj move.w #$FF,d4 bra.s loc_4BD64 ; --------------------------------------------------------------------------- loc_4BD60: ; CODE XREF: sub_4BC94+C2j move.w #$FF02,d4 loc_4BD64: ; CODE XREF: sub_4BC94+C4j ; sub_4BC94+CAj add.w d4,d3 bra.w loc_4BCDE ; --------------------------------------------------------------------------- loc_4BD6A: ; CODE XREF: sub_4BC94:loc_4BCDEj clr.b d3 loc_4BD6C: ; CODE XREF: sub_4BC94+52j ; sub_4BC94+5Aj ... move.b d3,(byte_FFFFADD4).w bra.s locret_4BD8A ; --------------------------------------------------------------------------- loc_4BD72: ; CODE XREF: sub_4BC94+6j move.w (word_FFFFF2F2).w,d3 lsr.w #2,d3 asl.w #8,d3 lsr.w #8,d3 move.b d3,(byte_FFFF95FE).w move.b d3,(byte_FFFFADD4).w move.w (word_FFFF805C).w,(word_FFFFADF0).w locret_4BD8A: ; CODE XREF: sub_4BC94+DCj rts ; End of function sub_4BC94 ; =============== S U B R O U T I N E ======================================= sub_4BD8C: ; CODE XREF: DoLoopD+C0p movem.l d0-d2/d6-a0,-(sp) btst #7,(byte_FFFF95E3).w beq.s loc_4BDA6 tst.b (byte_FFFFAC5E).w bne.s loc_4BDA6 moveq #3,d1 cmp.b (byte_FFFFADD0).w,d1 bne.s loc_4BDAC loc_4BDA6: ; CODE XREF: sub_4BD8C+Aj ; sub_4BD8C+10j clr.b (byte_FFFFADD2).w bra.s loc_4BDEE ; --------------------------------------------------------------------------- loc_4BDAC: ; CODE XREF: sub_4BD8C+18j moveq #4,d1 cmp.b (byte_FFFFADD0).w,d1 bne.s loc_4BDBE move.b (X_FM_CONTROL_KE_FM_RETEST_DESIRED_CURRENT).l,(byte_FFFFADD2).w ; Desired Force Motor current in retest mode. ; Amps bra.s loc_4BDEE ; --------------------------------------------------------------------------- loc_4BDBE: ; CODE XREF: sub_4BD8C+26j move.w (word_FFFFB452).w,d0 move.w (word_FFFF9590).w,d1 moveq #$36,d6 ; '6' add.b d6,d1 andi.w #$FF,d1 asl.w #4,d1 add.w d0,d0 andi.l #$FFFF,d0 moveq #3,d7 divu.w d7,d0 lea (X_FM_CONTROL_KA_FM_PRESSURE_TO_CURRENT).l,a0 ; FM current converted FROM pressure. ; Amps moveq #$12,d2 jsr sub_8791E move.b d0,(byte_FFFFADD2).w loc_4BDEE: ; CODE XREF: sub_4BD8C+1Ej ; sub_4BD8C+30j tst.b (byte_FFFFB3F5).w beq.s loc_4BDFC move.b (byte_FFFFA7F5).w,(byte_FFFFADD1).w bra.s loc_4BE02 ; --------------------------------------------------------------------------- loc_4BDFC: ; CODE XREF: sub_4BD8C+66j move.b (byte_FFFFADD2).w,(byte_FFFFADD1).w loc_4BE02: ; CODE XREF: sub_4BD8C+6Ej tst.b (TCM_OPTIONS_KE_FM_FDBCK_CURR_CRTN_ENABLE).l ; TRUE if force motor feedback current circuit characterization is available and desired, else FALSE. ; T/F beq.w loc_4BEAE move.b (byte_FFFFADD1).w,d3 cmp.b (X_FM_CONTROL_KE_FM_FDBCK_CRTN_CURR_ENABLE).l,d3 ; Above this value, full compensation applied. ; Amps bcs.s loc_4BE30 andi.w #$FF,d3 sub.w (word_FFFFADF0).w,d3 tst.w d3 loc_4BE22: ; CODE XREF: sub_4BD8C+FAj blt.s loc_4BE88 cmpi.w #$FF,d3 bls.s loc_4BE8A move.b #$FF,d3 bra.s loc_4BE8A ; --------------------------------------------------------------------------- loc_4BE30: ; CODE XREF: sub_4BD8C+8Aj cmp.b (X_FM_CONTROL_KE_FM_FDBCK_CRTN_CURR_DISABLE).l,d3 ; Below this value, no compensation applied. ; Amps bls.s loc_4BE8A andi.w #$FF,d3 move.b (byte_FFFFADD1).w,d4 sub.b (X_FM_CONTROL_KE_FM_FDBCK_CRTN_CURR_DISABLE).l,d4 ; Below this value, no compensation applied. ; Amps bcc.s loc_4BE4A clr.b d4 loc_4BE4A: ; CODE XREF: sub_4BD8C+BAj andi.w #$FF,d4 mulu.w (word_FFFFADEE).w,d4 lsr.l #8,d4 lsr.l #1,d4 cmpi.w #$FF,d4 bls.s loc_4BE60 move.b #$FF,d4 loc_4BE60: ; CODE XREF: sub_4BD8C+CEj andi.w #$FF,d4 muls.w (word_FFFFADF0).w,d4 divs.w #$CC,d4 ; '?' cmpi.w #$FF,d4 bgt.s loc_4BE7A cmpi.w #$FF02,d4 blt.s loc_4BE80 bra.s loc_4BE84 ; --------------------------------------------------------------------------- loc_4BE7A: ; CODE XREF: sub_4BD8C+E4j move.w #$FF,d4 bra.s loc_4BE84 ; --------------------------------------------------------------------------- loc_4BE80: ; CODE XREF: sub_4BD8C+EAj move.w #$FF02,d4 loc_4BE84: ; CODE XREF: sub_4BD8C+ECj ; sub_4BD8C+F2j sub.w d4,d3 bra.s loc_4BE22 ; --------------------------------------------------------------------------- loc_4BE88: ; CODE XREF: sub_4BD8C:loc_4BE22j clr.b d3 loc_4BE8A: ; CODE XREF: sub_4BD8C+9Cj ; sub_4BD8C+A2j ... move.b d3,(byte_FFFFADD3).w move.b (X_FM_CONTROL_KE_FM_CRTD_DSRD_CURR_LIMIT_MIN).l,d3 ; Minimum value of corrected desired current. ; Amps move.b (byte_FFFFADD3).w,d4 cmp.b d3,d4 bcc.s loc_4BEA2 loc_4BE9C: ; CODE XREF: sub_4BD8C+120j move.b d3,(byte_FFFFADD3).w bra.s loc_4BEB4 ; --------------------------------------------------------------------------- loc_4BEA2: ; CODE XREF: sub_4BD8C+10Ej move.b (X_FM_CONTROL_KE_FM_CRTD_DSRD_CURR_LIMIT_MAX).l,d3 ; Maximum value of corrected desired current. ; Amps cmp.b d3,d4 bls.s loc_4BEB4 bra.s loc_4BE9C ; --------------------------------------------------------------------------- loc_4BEAE: ; CODE XREF: sub_4BD8C+7Cj move.b (byte_FFFFADD1).w,(byte_FFFFADD3).w loc_4BEB4: ; CODE XREF: sub_4BD8C+114j ; sub_4BD8C+11Ej tst.b (byte_FFFFADD5).w beq.w loc_4BF5C move.b (byte_FFFFADD0).w,d3 beq.s loc_4BED0 cmpi.b #2,d3 beq.s loc_4BED0 cmpi.b #4,d3 bne.w loc_4BF5C loc_4BED0: ; CODE XREF: sub_4BD8C+134j ; sub_4BD8C+13Aj clr.w d3 move.b (X_FM_CONTROL_KE_FM_LOW_CURRENT_THRSH_GAIN).l,d3 ; Gain used when calculating the Force Motor LOW current threshold. ; Amps mulu.w (word_FFFFB4BA).w,d3 move.w #$147,d1 divu.w d1,d3 add.w (X_FM_CONTROL_KE_FM_LOW_CURRENT_THRSH_OFFSET).l,d3 ; Offset used when calculating the Force Motor LOW current threshold. ; Amps tst.w d3 blt.s loc_4BEF8 cmpi.w #$FF,d3 bls.s loc_4BEFA move.b #$FF,d3 bra.s loc_4BEFA ; --------------------------------------------------------------------------- loc_4BEF8: ; CODE XREF: sub_4BD8C+15Ej clr.b d3 loc_4BEFA: ; CODE XREF: sub_4BD8C+164j ; sub_4BD8C+16Aj move.b d3,(byte_FFFFADDC).w clr.w d4 move.b (X_FM_CONTROL_KE_FM_HIGH_CURRENT_THRSH_GAIN).l,d4 ; ; Gain used when calculating the F mulu.w (word_FFFFB4BA).w,d4 divu.w d1,d4 cmpi.w #$FF,d4 bhi.s loc_4BF1A add.b (X_FM_CONTROL_KE_FM_HIGH_CURRENT_THRSH_OFFSET).l,d4 ; Offset used when calculating the Force Motor HIGH current threshold. ; Amps bcc.s loc_4BF1E loc_4BF1A: ; CODE XREF: sub_4BD8C+184j move.b #$FF,d4 loc_4BF1E: ; CODE XREF: sub_4BD8C+18Cj move.b d4,(byte_FFFFADDD).w move.w (word_FFFFF2F2).w,d5 lsr.w #2,d5 asl.w #8,d5 lsr.w #8,d5 move.b d5,(byte_FFFF95FE).w cmp.b d4,d5 bcs.s loc_4BF3C bset #7,(byte_FFFFADDA).w bra.s loc_4BF42 ; --------------------------------------------------------------------------- loc_4BF3C: ; CODE XREF: sub_4BD8C+1A6j bclr #7,(byte_FFFFADDA).w loc_4BF42: ; CODE XREF: sub_4BD8C+1AEj move.w (word_FFFFF2F2).w,d4 lsr.w #2,d4 asl.w #8,d4 lsr.w #8,d4 move.b d4,(byte_FFFF95FE).w cmp.b d3,d4 bhi.s loc_4BF62 bset #6,(byte_FFFFADDA).w bra.s loc_4BF68 ; --------------------------------------------------------------------------- loc_4BF5C: ; CODE XREF: sub_4BD8C+12Cj ; sub_4BD8C+140j bclr #7,(byte_FFFFADDA).w loc_4BF62: ; CODE XREF: sub_4BD8C+1C6j bclr #6,(byte_FFFFADDA).w loc_4BF68: ; CODE XREF: sub_4BD8C+1CEj move.b (X_FM_CONTROL_KE_FM_LOW_VOLT_THRSH_DISABLE_HI).l,d0 ; The HIGH value used in calculating the low voltage threshold used to determine if ignition voltage is out of range. ; Volts sub.b (X_FM_CONTROL_KE_FM_LOW_VOLT_THRSH_DISABLE_LO).l,d0 ; The LOW value used in calculating the low voltage threshold used to determine if ignition voltage is out of range. ; Volts bcc.s loc_4BF78 clr.b d0 loc_4BF78: ; CODE XREF: sub_4BD8C+1E8j andi.w #$FF,d0 move.w (word_FFFF9590).w,d3 cmpi.w #$C9,d3 ; '?' ble.s loc_4BF8A move.w #$C9,d3 ; '?' loc_4BF8A: ; CODE XREF: sub_4BD8C+1F8j movea.w #$36,a2 ; '6' add.w a2,d3 cmpi.w #$C9,d3 ; '?' ble.s loc_4BF9A move.w #$C9,d3 ; '?' loc_4BF9A: ; CODE XREF: sub_4BD8C+208j tst.w d3 blt.s loc_4BFAA cmpi.w #$FF,d3 bls.s loc_4BFAC move.b #$FF,d3 bra.s loc_4BFAC ; --------------------------------------------------------------------------- loc_4BFAA: ; CODE XREF: sub_4BD8C+210j clr.b d3 loc_4BFAC: ; CODE XREF: sub_4BD8C+216j ; sub_4BD8C+21Cj andi.w #$FF,d3 mulu.w d0,d3 lsr.w #8,d3 add.b (X_FM_CONTROL_KE_FM_LOW_VOLT_THRSH_DISABLE_LO).l,d3 ; The LOW value used in calculating the low voltage threshold used to determine if ignition voltage is out of range. ; Volts bcc.s loc_4BFC0 move.b #$FF,d3 loc_4BFC0: ; CODE XREF: sub_4BD8C+22Ej move.b d3,(byte_FFFFADDE).w move.b (X_FM_CONTROL_KE_FM_LOW_VOLT_THRSH_ENABLE_HI).l,d0 ; The HIGH value used in calculating the low voltage threshold used to determine if ignition voltage is within range. ; Volts sub.b (X_FM_CONTROL_KE_FM_LOW_VOLT_THRSH_ENABLE_LO).l,d0 bcc.s loc_4BFD4 clr.b d0 loc_4BFD4: ; CODE XREF: sub_4BD8C+244j andi.w #$FF,d0 move.w (word_FFFF9590).w,d4 cmpi.w #$C9,d4 ; '?' ble.s loc_4BFE6 move.w #$C9,d4 ; '?' loc_4BFE6: ; CODE XREF: sub_4BD8C+254j add.w a2,d4 cmpi.w #$C9,d4 ; '?' ble.s loc_4BFF2 move.w #$C9,d4 ; '?' loc_4BFF2: ; CODE XREF: sub_4BD8C+260j tst.w d4 blt.s loc_4C002 cmpi.w #$FF,d4 bls.s loc_4C004 move.b #$FF,d4 bra.s loc_4C004 ; --------------------------------------------------------------------------- loc_4C002: ; CODE XREF: sub_4BD8C+268j clr.b d4 loc_4C004: ; CODE XREF: sub_4BD8C+26Ej ; sub_4BD8C+274j andi.w #$FF,d4 mulu.w d0,d4 lsr.w #8,d4 add.b (X_FM_CONTROL_KE_FM_LOW_VOLT_THRSH_ENABLE_LO).l,d4 bcc.s loc_4C018 move.b #$FF,d4 loc_4C018: ; CODE XREF: sub_4BD8C+286j move.b d4,(byte_FFFFADDF).w move.b (byte_FFFF959D).w,d5 cmp.b d3,d5 bcs.s loc_4C02C cmp.b (X_FM_CONTROL_KE_FM_HIGH_VOLT_THRSH_DISABLE).l,d5 ; The high voltage threshold used in determining if ignition voltage is out of range. ; Volts bls.s loc_4C034 loc_4C02C: ; CODE XREF: sub_4BD8C+296j bset #5,(byte_FFFFADDA).w bra.s loc_4C046 ; --------------------------------------------------------------------------- loc_4C034: ; CODE XREF: sub_4BD8C+29Ej cmp.b d4,d5 bls.s loc_4C046 cmp.b (X_FM_CONTROL_KE_FM_HIGH_VOLT_THRSH_DISABLE).l,d5 ; The high voltage threshold used in determining if ignition voltage is out of range. ; Volts bcc.s loc_4C046 bclr #5,(byte_FFFFADDA).w loc_4C046: ; CODE XREF: sub_4BD8C+2A6j ; sub_4BD8C+2AAj ... btst #4,(byte_FFFFADDA).w sne d3 neg.b d3 btst #5,(byte_FFFFADDA).w sne d4 neg.b d4 cmp.b d3,d4 bne.s loc_4C094 move.w (word_FFFFADE0).w,d3 cmp.w (X_FM_CONTROL_KE_FM_VOLTAGE_LIMIT_TIME).l,d3 bcs.s loc_4C080 bclr #3,(byte_FFFFADDA).w btst #5,(byte_FFFFADDA).w beq.s loc_4C094 bset #3,(byte_FFFFADDA).w bra.s loc_4C094 ; --------------------------------------------------------------------------- loc_4C080: ; CODE XREF: sub_4BD8C+2DCj movea.l (dword_FFFFB5DE).w,a3 add.w $A(a3),d3 bcc.s loc_4C08E move.w #$FFFF,d3 loc_4C08E: ; CODE XREF: sub_4BD8C+2FCj move.w d3,(word_FFFFADE0).w bra.s loc_4C098 ; --------------------------------------------------------------------------- loc_4C094: ; CODE XREF: sub_4BD8C+2D0j ; sub_4BD8C+2EAj ... clr.w (word_FFFFADE0).w loc_4C098: ; CODE XREF: sub_4BD8C+306j bclr #4,(byte_FFFFADDA).w btst #5,(byte_FFFFADDA).w beq.s loc_4C0AC bset #4,(byte_FFFFADDA).w loc_4C0AC: ; CODE XREF: sub_4BD8C+318j move.b (byte_FFFFADD0).w,d3 bne.s loc_4C106 btst #3,(byte_FFFFADDA).w beq.s loc_4C0C4 move.b #2,(byte_FFFFADD0).w bra.w loc_4C1D4 ; --------------------------------------------------------------------------- loc_4C0C4: ; CODE XREF: sub_4BD8C+32Cj btst #2,(byte_FFFFADDA).w beq.w loc_4C1E0 tst.b (X_FM_CONTROL_KE_FM_ENABLE_RETEST).l ; When TRUE, will enable the Force Motor Retest Logic. ; T/F beq.w loc_4C1CE move.b (byte_FFFFADE2).w,d3 cmp.b (X_FM_CONTROL_KE_FM_MAX_TRANSITION_TO_RETEST).l,d3 bcc.w loc_4C1CE move.b #3,(byte_FFFFADD0).w bclr #2,(byte_FFFFADDA).w move.b (byte_FFFFADE2).w,d3 addq.b #1,d3 bcc.s loc_4C0FE move.b #$FF,d3 loc_4C0FE: ; CODE XREF: sub_4BD8C+36Cj move.b d3,(byte_FFFFADE2).w bra.w loc_4C1E0 ; --------------------------------------------------------------------------- loc_4C106: ; CODE XREF: sub_4BD8C+324j cmpi.b #2,d3 bne.s loc_4C11E btst #3,(byte_FFFFADDA).w bne.w loc_4C1E0 clr.b (byte_FFFFADD0).w bra.w loc_4C1E0 ; --------------------------------------------------------------------------- loc_4C11E: ; CODE XREF: sub_4BD8C+37Ej moveq #3,d4 cmp.b d3,d4 bne.s loc_4C154 move.w (word_FFFFADE6).w,d3 cmp.w (X_FM_CONTROL_KE_FM_OFF_BEFORE_RETEST_TIME).l,d3 bcs.s loc_4C13E move.b #4,(byte_FFFFADD0).w clr.w (word_FFFFADE6).w bra.w loc_4C1E0 ; --------------------------------------------------------------------------- loc_4C13E: ; CODE XREF: sub_4BD8C+3A2j movea.l (dword_FFFFB5DE).w,a3 add.w $A(a3),d3 bcc.s loc_4C14C move.w #$FFFF,d3 loc_4C14C: ; CODE XREF: sub_4BD8C+3BAj move.w d3,(word_FFFFADE6).w bra.w loc_4C1E0 ; --------------------------------------------------------------------------- loc_4C154: ; CODE XREF: sub_4BD8C+396j cmpi.b #4,d3 bne.w loc_4C1DC btst #7,(byte_FFFFADDA).w bne.s loc_4C19A btst #6,(byte_FFFFADDA).w bne.s loc_4C19A move.w (word_FFFFADE4).w,d3 cmp.w (X_FM_CONTROL_KE_FM_RETEST_PASS_TIME).l,d3 bcs.s loc_4C186 clr.b (byte_FFFFADD0).w clr.b (byte_FFFFADE3).w loc_4C180: ; CODE XREF: sub_4BD8C+414j clr.w (word_FFFFADE4).w bra.s loc_4C1E0 ; --------------------------------------------------------------------------- loc_4C186: ; CODE XREF: sub_4BD8C+3EAj movea.l (dword_FFFFB5DE).w,a3 add.w $A(a3),d3 bcc.s loc_4C194 move.w #$FFFF,d3 loc_4C194: ; CODE XREF: sub_4BD8C+402j move.w d3,(word_FFFFADE4).w bra.s loc_4C1E0 ; --------------------------------------------------------------------------- loc_4C19A: ; CODE XREF: sub_4BD8C+3D6j ; sub_4BD8C+3DEj btst #2,(byte_FFFFADDA).w beq.s loc_4C180 clr.w (word_FFFFADE4).w move.b (byte_FFFFADE3).w,d3 cmp.b (X_FM_CONTROL_KE_FM_MAX_FAIL_IN_RETEST).l,d3 ; This calibration defines the limit for the number of times that the force motor can fail while in the retest operating state. ; Counts bcc.s loc_4C1CE move.b d4,(byte_FFFFADD0).w bclr #2,(byte_FFFFADDA).w move.b (byte_FFFFADE3).w,d3 addq.b #1,d3 bcc.s loc_4C1C8 move.b #$FF,d3 loc_4C1C8: ; CODE XREF: sub_4BD8C+436j move.b d3,(byte_FFFFADE3).w bra.s loc_4C1E0 ; --------------------------------------------------------------------------- loc_4C1CE: ; CODE XREF: sub_4BD8C+348j ; sub_4BD8C+356j ... move.b #1,(byte_FFFFADD0).w loc_4C1D4: ; CODE XREF: sub_4BD8C+334j bclr #2,(byte_FFFFADDA).w bra.s loc_4C1E0 ; --------------------------------------------------------------------------- loc_4C1DC: ; CODE XREF: sub_4BD8C+3CCj moveq #1,d0 cmp.b d3,d0 loc_4C1E0: ; CODE XREF: sub_4BD8C+33Ej ; sub_4BD8C+376j ... move.b (byte_FFFFADD0).w,d3 beq.s loc_4C1EC cmpi.b #4,d3 bne.s loc_4C262 loc_4C1EC: ; CODE XREF: sub_4BD8C+458j cmp.b (byte_FFFFADE8).w,d3 beq.s loc_4C1FA clr.w (word_FFFFADEC).w clr.w (word_FFFFADEA).w loc_4C1FA: ; CODE XREF: sub_4BD8C+464j btst #7,(byte_FFFFADDA).w beq.s loc_4C22A move.w (word_FFFFADEC).w,d3 cmp.w (X_FM_CONTROL_KE_FM_CURRENT_OVER_LIMIT_TIME).l,d3 ; Time in which force motor current is over range before the force motor is considered out of control. ; Seconds bcs.s loc_4C216 bset #2,(byte_FFFFADDA).w bra.s loc_4C22A ; --------------------------------------------------------------------------- loc_4C216: ; CODE XREF: sub_4BD8C+480j movea.l (dword_FFFFB5DE).w,a3 add.w $A(a3),d3 bcc.s loc_4C224 move.w #$FFFF,d3 loc_4C224: ; CODE XREF: sub_4BD8C+492j move.w d3,(word_FFFFADEC).w bra.s loc_4C22E ; --------------------------------------------------------------------------- loc_4C22A: ; CODE XREF: sub_4BD8C+474j ; sub_4BD8C+488j clr.w (word_FFFFADEC).w loc_4C22E: ; CODE XREF: sub_4BD8C+49Cj btst #6,(byte_FFFFADDA).w beq.s loc_4C25E move.w (word_FFFFADEA).w,d3 cmp.w (X_FM_CONTROL_KE_FM_CURRENT_UNDER_LIMIT_TIME).l,d3 ; Time in which force motor current is under range before the force motor is considered out of control. ; Seconds bcs.s loc_4C24A bset #2,(byte_FFFFADDA).w bra.s loc_4C25E ; --------------------------------------------------------------------------- loc_4C24A: ; CODE XREF: sub_4BD8C+4B4j movea.l (dword_FFFFB5DE).w,a3 add.w $A(a3),d3 bcc.s loc_4C258 move.w #$FFFF,d3 loc_4C258: ; CODE XREF: sub_4BD8C+4C6j move.w d3,(word_FFFFADEA).w bra.s loc_4C262 ; --------------------------------------------------------------------------- loc_4C25E: ; CODE XREF: sub_4BD8C+4A8j ; sub_4BD8C+4BCj clr.w (word_FFFFADEA).w loc_4C262: ; CODE XREF: sub_4BD8C+45Ej ; sub_4BD8C+4D0j move.b (byte_FFFFADD0).w,d3 move.b d3,(byte_FFFFADE8).w tst.b (byte_FFFFAC5E).w bne.s loc_4C284 btst #7,(byte_FFFF95E3).w beq.s loc_4C284 cmpi.b #1,d3 beq.s loc_4C284 cmpi.b #3,d3 bne.s loc_4C28A loc_4C284: ; CODE XREF: sub_4BD8C+4E2j ; sub_4BD8C+4EAj ... clr.b (byte_FFFFADD5).w bra.s loc_4C290 ; --------------------------------------------------------------------------- loc_4C28A: ; CODE XREF: sub_4BD8C+4F6j move.b #1,(byte_FFFFADD5).w loc_4C290: ; CODE XREF: sub_4BD8C+4FCj movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_4BD8C ; =============== S U B R O U T I N E ======================================= sub_4C296: ; CODE XREF: OS1:00028C92p tst.b (TCM_OPTIONS_KE_FM_FDBCK_CURR_CRTN_ENABLE).l ; TRUE if force motor feedback current circuit characterization is available and desired, else FALSE. ; T/F beq.s loc_4C2EC move.w (word_FFFF805C).w,d4 move.l d4,d3 add.w (word_FFFF805E).w,d3 beq.s loc_4C2B4 move.w (X_FM_CONTROL_KE_FM_FDBCK_CRTN_CURR_FAILSOFT).l,(word_FFFFADF0).w ; Value of FM ckt characterization offset incase of a checksum failure or other failsoftingcondition. ; Amps_s bra.s loc_4C2B8 ; --------------------------------------------------------------------------- loc_4C2B4: ; CODE XREF: sub_4C296+12j move.w d4,(word_FFFFADF0).w loc_4C2B8: ; CODE XREF: sub_4C296+1Cj move.b (X_FM_CONTROL_KE_FM_FDBCK_CRTN_CURR_ENABLE).l,d3 ; Above this value, full compensation applied. ; Amps sub.b (X_FM_CONTROL_KE_FM_FDBCK_CRTN_CURR_DISABLE).l,d3 ; Below this value, no compensation applied. ; Amps bcc.s loc_4C2C8 clr.b d3 loc_4C2C8: ; CODE XREF: sub_4C296+2Ej tst.b d3 beq.s loc_4C304 clr.l d5 move.b d3,d5 mulu.w #$7B,d5 ; '{' divu.w #$31,d5 ; '1' move.l #unk_40000,d3 divu.w d5,d3 bvc.s loc_4C2E6 move.w #$FFFF,d3 loc_4C2E6: ; CODE XREF: sub_4C296+4Aj move.w d3,(word_FFFFADEE).w bra.s locret_4C30A ; --------------------------------------------------------------------------- loc_4C2EC: ; CODE XREF: sub_4C296+6j move.w (word_FFFFF2F2).w,d3 lsr.w #2,d3 asl.w #8,d3 lsr.w #8,d3 move.b d3,(byte_FFFF95FE).w move.b d3,(byte_FFFFADD4).w move.w (word_FFFF805C).w,(word_FFFFADF0).w loc_4C304: ; CODE XREF: sub_4C296+34j move.w #$FFFF,(word_FFFFADEE).w locret_4C30A: ; CODE XREF: sub_4C296+54j rts ; End of function sub_4C296 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4C30C: ; CODE XREF: sub_5436E+80Cp arg_0 = 8 link a6,#0 movem.l d0-d2/a4,-(sp) movea.l arg_0(a6),a4 jsr sub_4ABB2 move.w d0,(a1) jsr sub_52CD6 tst.b (byte_FFFFB448).w beq.s loc_4C330 move.w (a0),d1 bra.s loc_4C354 ; --------------------------------------------------------------------------- loc_4C330: ; CODE XREF: sub_4C30C+1Ej movea.w (a1),a2 move.l a2,d1 move.w (word_FFFFB4A2).w,d3 mulu.w #5,d3 lsr.w #7,d3 cmp.b (TCM_IO_INTERFACE_KE_TRANS_DIAG_SYSTEM_VOLT_LOW).l,d3 ; System voltage below which transmission diagnostics willbe disabled. ; Volts bls.s loc_4C352 cmp.b (TCM_IO_INTERFACE_KE_TRANS_DIAG_SYSTEM_VOLT_HIGH).l,d3 ; System voltage above which transmission diagnostics willbe disabled. ; Volts bcc.s loc_4C352 move.w a2,(a0) bra.s loc_4C354 ; --------------------------------------------------------------------------- loc_4C352: ; CODE XREF: sub_4C30C+38j ; sub_4C30C+40j clr.w (a0) loc_4C354: ; CODE XREF: sub_4C30C+22j ; sub_4C30C+44j movea.l a4,a0 move.w (X_INP_SPEED_KE_INPUT_SPEED_FILTER_COEFF).l,d0 ; Filter Coefficient for filtering input speed. ; Coeff move.w (a4),d2 jsr sub_26608 move.w d0,(a0) move.w (XPRS_GARAGE_PRESSURE_KE_GS_PARK_NEUTRAL_MPH).l,d4 move.w (XPRS_GARAGE_PRESSURE_KE_GS_REVERSE_DRIVE_MPH).l,d3 cmp.w d4,d3 bhi.s loc_4C37C cmp.w (word_FFFF95DA).w,d4 bcc.s loc_4C38A loc_4C37C: ; CODE XREF: sub_4C30C+68j cmp.w d3,d4 bcc.w loc_4C4A8 cmp.w (word_FFFF95DA).w,d3 bcs.w loc_4C4A8 loc_4C38A: ; CODE XREF: sub_4C30C+6Ej move.w (a1),d3 sub.w (word_FFFFB408).w,d3 bvc.s loc_4C39E bpl.s loc_4C39A move.w #$7FFF,d3 bra.s loc_4C39E ; --------------------------------------------------------------------------- loc_4C39A: ; CODE XREF: sub_4C30C+86j move.w #$8000,d3 loc_4C39E: ; CODE XREF: sub_4C30C+84j ; sub_4C30C+8Cj move.w d3,(word_FFFFB406).w ext.l d3 clr.l d4 move.w (X_INP_SPEED_KE_INPUT_SPEED_KALMAN_GAIN_1).l,d4 ; This is a gain used in the Kalman Filter routine, and isassociated with plant speed noise ; Gain muls.l d3,d4 move.w #$400,d3 divs.w d3,d4 bvc.s loc_4C3BE swap d4 eor.w d3,d4 bra.s loc_4C3DE ; --------------------------------------------------------------------------- loc_4C3BE: ; CODE XREF: sub_4C30C+AAj move.w (word_FFFFB404).w,d5 ext.l d5 movea.l (dword_FFFFB5DE).w,a2 clr.l d3 move.w $A(a2),d3 muls.l d5,d3 move.w #$A0,d5 ; '?' divs.w d5,d3 bvc.s loc_4C3E2 swap d3 eor.w d5,d3 loc_4C3DE: ; CODE XREF: sub_4C30C+B0j bmi.s loc_4C3EE bra.s loc_4C3E8 ; --------------------------------------------------------------------------- loc_4C3E2: ; CODE XREF: sub_4C30C+CCj add.w d4,d3 bvc.s loc_4C3F2 bpl.s loc_4C3EE loc_4C3E8: ; CODE XREF: sub_4C30C+D4j move.w #$7FFF,d3 bra.s loc_4C3F2 ; --------------------------------------------------------------------------- loc_4C3EE: ; CODE XREF: sub_4C30C:loc_4C3DEj ; sub_4C30C+DAj move.w #$8000,d3 loc_4C3F2: ; CODE XREF: sub_4C30C+D8j ; sub_4C30C+E0j add.w (word_FFFFB408).w,d3 bvc.s loc_4C404 bpl.s loc_4C400 move.w #$7FFF,d3 bra.s loc_4C404 ; --------------------------------------------------------------------------- loc_4C400: ; CODE XREF: sub_4C30C+ECj move.w #$8000,d3 loc_4C404: ; CODE XREF: sub_4C30C+EAj ; sub_4C30C+F2j move.w d3,(word_FFFFB408).w move.w (word_FFFFB406).w,d3 ext.l d3 clr.l d4 move.w (X_INP_SPEED_KE_INPUT_SPEED_KALMAN_GAIN_2).l,d4 ; This is a gain used in the Kalman Filter routine, and isassociated with plant acceleration noise ; Gain muls.l d3,d4 move.w #$400,d3 divs.w d3,d4 bvc.s loc_4C428 swap d4 eor.w d3,d4 bra.s loc_4C448 ; --------------------------------------------------------------------------- loc_4C428: ; CODE XREF: sub_4C30C+114j move.w (word_FFFFB402).w,d5 ext.l d5 movea.l (dword_FFFFB5DE).w,a2 clr.l d3 move.w $A(a2),d3 muls.l d5,d3 move.w #$A0,d5 ; '?' divs.w d5,d3 bvc.s loc_4C44C swap d3 eor.w d5,d3 loc_4C448: ; CODE XREF: sub_4C30C+11Aj bmi.s loc_4C45E bra.s loc_4C458 ; --------------------------------------------------------------------------- loc_4C44C: ; CODE XREF: sub_4C30C+136j add.w d4,d3 bvs.s loc_4C456 add.w (word_FFFFB404).w,d3 bvc.s loc_4C462 loc_4C456: ; CODE XREF: sub_4C30C+142j bpl.s loc_4C45E loc_4C458: ; CODE XREF: sub_4C30C+13Ej move.w #$7FFF,d3 bra.s loc_4C462 ; --------------------------------------------------------------------------- loc_4C45E: ; CODE XREF: sub_4C30C:loc_4C448j ; sub_4C30C:loc_4C456j move.w #$8000,d3 loc_4C462: ; CODE XREF: sub_4C30C+148j ; sub_4C30C+150j move.w d3,(word_FFFFB3FE).w move.w (word_FFFFB406).w,d5 ext.l d5 clr.l d4 move.w (X_INP_SPEED_KE_INPUT_SPEED_KALMAN_GAIN_3).l,d4 ; This is a gain used in the Kalman Filter routine, and isassociated with plant jerk noise ; Gain muls.l d5,d4 move.w #$400,d5 divs.w d5,d4 bvc.s loc_4C488 swap d4 eor.w d5,d4 bmi.s loc_4C496 bra.s loc_4C490 ; --------------------------------------------------------------------------- loc_4C488: ; CODE XREF: sub_4C30C+172j add.w (word_FFFFB402).w,d4 bvc.s loc_4C49A bpl.s loc_4C496 loc_4C490: ; CODE XREF: sub_4C30C+17Aj move.w #$7FFF,d4 bra.s loc_4C49A ; --------------------------------------------------------------------------- loc_4C496: ; CODE XREF: sub_4C30C+178j ; sub_4C30C+182j move.w #$8000,d4 loc_4C49A: ; CODE XREF: sub_4C30C+180j ; sub_4C30C+188j move.w d4,(word_FFFFB400).w move.w d3,(word_FFFFB404).w move.w d4,(word_FFFFB402).w bra.s loc_4C4BC ; --------------------------------------------------------------------------- loc_4C4A8: ; CODE XREF: sub_4C30C+72j ; sub_4C30C+7Aj clr.w (word_FFFFB3FE).w clr.w (word_FFFFB400).w clr.w (word_FFFFB404).w clr.w (word_FFFFB402).w move.w (a4),(word_FFFFB408).w loc_4C4BC: ; CODE XREF: sub_4C30C+19Aj movem.l (sp)+,d0-d2/a4 unlk a6 rtd #4 ; End of function sub_4C30C ; =============== S U B R O U T I N E ======================================= sub_4C4C6: ; CODE XREF: sub_4C50E:loc_4C55Cp move.b 4(a0),d3 cmpi.b #1,d3 bhi.s loc_4C4E2 beq.s loc_4C4DA movea.l 6(a0),a2 clr.b (a2) bra.s locret_4C4E8 ; --------------------------------------------------------------------------- loc_4C4DA: ; CODE XREF: sub_4C4C6+Aj movea.l 6(a0),a2 clr.w (a2) bra.s locret_4C4E8 ; --------------------------------------------------------------------------- loc_4C4E2: ; CODE XREF: sub_4C4C6+8j movea.l 6(a0),a2 clr.l (a2) locret_4C4E8: ; CODE XREF: sub_4C4C6+12j ; sub_4C4C6+1Aj rts ; End of function sub_4C4C6 ; =============== S U B R O U T I N E ======================================= sub_4C4EA: ; CODE XREF: sub_4C50E+46p move.b 4(a0),d3 cmpi.b #1,d3 bhi.s loc_4C506 beq.s loc_4C4FE movea.l $A(a0),a2 clr.b (a2) bra.s locret_4C50C ; --------------------------------------------------------------------------- loc_4C4FE: ; CODE XREF: sub_4C4EA+Aj movea.l $A(a0),a2 clr.w (a2) bra.s locret_4C50C ; --------------------------------------------------------------------------- loc_4C506: ; CODE XREF: sub_4C4EA+8j movea.l $A(a0),a2 clr.l (a2) locret_4C50C: ; CODE XREF: sub_4C4EA+12j ; sub_4C4EA+1Aj rts ; End of function sub_4C4EA ; =============== S U B R O U T I N E ======================================= sub_4C50E: ; CODE XREF: DoLoopF:loc_2AEC8p movem.l d0-d1/a0-a1,-(sp) tst.b (byte_FFFF819D).w bne.s loc_4C56A tst.b (byte_FFFFB0C6).w bne.s loc_4C56A clr.b (byte_FFFFA2A0).w clr.w (word_FFFFA2DC).w clr.w (word_FFFFA2DE).w clr.b (byte_FFFFA2DA).w clr.w d1 loc_4C530: ; CODE XREF: sub_4C50E+5Aj move.l d1,d0 mulu.w #$E,d0 tst.l dword_88BF8(d0.l) bne.s loc_4C54A lea unk_88BEE(d0.l),a0 bra.s loc_4C55C ; --------------------------------------------------------------------------- loc_4C54A: ; CODE XREF: sub_4C50E+30j lea unk_88BEE(d0.l),a1 movea.l a1,a0 jsr sub_4C4EA movea.l a1,a0 loc_4C55C: ; CODE XREF: sub_4C50E+3Aj jsr sub_4C4C6 addq.w #1,d1 cmpi.w #$1D,d1 bls.s loc_4C530 loc_4C56A: ; CODE XREF: sub_4C50E+8j sub_4C50E+Ej movem.l (sp)+,d0-d1/a0-a1 rts ; End of function sub_4C50E ; =============== S U B R O U T I N E ======================================= sub_4C570: ; CODE XREF: sub_4CCBC+8p movem.l d0-d1,-(sp) btst #2,(byte_FFFFA7E0).w beq.w loc_4C658 btst #0,(byte_FFFF95E2).w beq.w loc_4C62E tst.b (byte_FFFFA80F).w bne.w loc_4C62E move.w (word_FFFF95DA).w,d0 cmp.w (X_OVERRIDES_KE_C2_SHIFT_MPH_SPEED_ALLOWABLE).l,d0 ; The limit of vehicle speed for a Class II gear shift ; MPH bls.s loc_4C5A2 moveq #2,d3 bra.w loc_4C630 ; --------------------------------------------------------------------------- loc_4C5A2: ; CODE XREF: sub_4C570+2Aj move.w (word_FFFF95B6).w,d3 cmp.w (X_OVERRIDES_KE_C2_SHIFT_ENG_SPEED_ALLOWABLE).l,d3 ; The limit of engine speed for a Class II gear shift ; RPM bls.s loc_4C5B2 moveq #3,d3 bra.s loc_4C630 ; --------------------------------------------------------------------------- loc_4C5B2: ; CODE XREF: sub_4C570+3Cj move.b (byte_FFFFA7F6).w,d3 move.b (byte_FFFF95DC).w,d5 cmpi.b #3,d5 bcc.s loc_4C5C2 addq.b #1,d5 loc_4C5C2: ; CODE XREF: sub_4C570+4Ej cmp.b d5,d3 beq.s loc_4C5DC move.b (byte_FFFF95DC).w,d5 bls.s loc_4C5CE subq.b #1,d5 loc_4C5CE: ; CODE XREF: sub_4C570+5Aj cmp.b d5,d3 beq.s loc_4C5DC cmp.b (byte_FFFF95DC).w,d3 beq.s loc_4C5DC moveq #4,d3 bra.s loc_4C630 ; --------------------------------------------------------------------------- loc_4C5DC: ; CODE XREF: sub_4C570+54j ; sub_4C570+60j ... move.b (byte_FFFF95DC).w,d4 moveq #2,d5 cmp.b d4,d5 bne.s loc_4C5F4 cmpi.b #1,d3 bne.s loc_4C5F4 cmp.w (X_OVERRIDES_KE_C2_32_DOWN_SPEED_ALLOWABLE).l,d0 ; The limit of vehicle speed for a Class II 32 downshift ; MPH bhi.s loc_4C606 loc_4C5F4: ; CODE XREF: sub_4C570+74j ; sub_4C570+7Aj cmpi.b #1,d4 bne.s loc_4C60A tst.b d3 bne.s loc_4C60A cmp.w (X_OVERRIDES_KE_C2_21_DOWN_SPEED_ALLOWABLE).l,d0 ; The limit of vehicle speed for a Class II 21 downshift ; MPH bls.s loc_4C60A loc_4C606: ; CODE XREF: sub_4C570+82j moveq #5,d3 bra.s loc_4C630 ; --------------------------------------------------------------------------- loc_4C60A: ; CODE XREF: sub_4C570+88j ; sub_4C570+8Cj ... tst.b d3 bls.s loc_4C614 tst.b (byte_FFFF95E9).w beq.s loc_4C62A loc_4C614: ; CODE XREF: sub_4C570+9Cj moveq #1,d4 cmp.b d3,d4 bcc.s loc_4C620 cmp.b (byte_FFFF95E9).w,d4 beq.s loc_4C62A loc_4C620: ; CODE XREF: sub_4C570+A8j cmp.b d3,d5 bcc.s loc_4C62E cmp.b (byte_FFFF95E9).w,d5 bne.s loc_4C62E loc_4C62A: ; CODE XREF: sub_4C570+A2j ; sub_4C570+AEj moveq #6,d3 bra.s loc_4C630 ; --------------------------------------------------------------------------- loc_4C62E: ; CODE XREF: sub_4C570+14j ; sub_4C570+1Cj ... moveq #1,d3 loc_4C630: ; CODE XREF: sub_4C570+2Ej ; sub_4C570+40j ... cmpi.b #1,d3 bne.s loc_4C648 move.b (byte_FFFFA7F6).w,d4 addq.b #1,d4 move.b d4,(byte_FFFFA2A0).w bclr #5,(byte_FFFFB3FA).w bra.s loc_4C652 ; --------------------------------------------------------------------------- loc_4C648: ; CODE XREF: sub_4C570+C4j clr.b (byte_FFFFA2A0).w bset #5,(byte_FFFFB3FA).w loc_4C652: ; CODE XREF: sub_4C570+D6j move.b d3,(byte_FFFFB3F6).w bra.s loc_4C65E ; --------------------------------------------------------------------------- loc_4C658: ; CODE XREF: sub_4C570+Aj bclr #5,(byte_FFFFB3FA).w loc_4C65E: ; CODE XREF: sub_4C570+E6j movem.l (sp)+,d0-d1 rts ; End of function sub_4C570 ; =============== S U B R O U T I N E ======================================= sub_4C664: ; CODE XREF: sub_4CCBC:loc_4CD0Ap btst #0,(byte_FFFFA7DE).w bne.s loc_4C676 btst #0,(byte_FFFFA7E0).w beq.w loc_4C76C loc_4C676: ; CODE XREF: sub_4C664+6j tst.b (byte_FFFFA80F).w bne.w loc_4C72E btst #0,(byte_FFFFA7DE).w beq.s loc_4C694 tst.b (TCM_OPTIONS_K_TCC_ENABLE_SOLENOID_PRESENT).l ; Indicates whether the transmission has a TCC enable solenoid. ; BOOLEAN bne.s loc_4C694 moveq #7,d3 bra.w loc_4C730 ; --------------------------------------------------------------------------- loc_4C694: ; CODE XREF: sub_4C664+20j ; sub_4C664+28j btst #0,(byte_FFFF95E2).w beq.w loc_4C72E btst #0,(byte_FFFFA7DE).w beq.s loc_4C6D2 btst #2,(word_FFFFA7E2+1).w beq.s loc_4C6D2 btst #6,(byte_FFFFA400).w bne.s loc_4C72E btst #0,(byte_FFFFA7E0).w beq.s loc_4C6CE tst.b (byte_FFFFA7F4).w bne.s loc_4C6C8 clr.b d3 bra.s loc_4C6CA ; --------------------------------------------------------------------------- loc_4C6C8: ; CODE XREF: sub_4C664+5Ej moveq #1,d3 loc_4C6CA: ; CODE XREF: sub_4C664+62j tst.b d3 bne.s loc_4C72E loc_4C6CE: ; CODE XREF: sub_4C664+58j moveq #9,d3 bra.s loc_4C730 ; --------------------------------------------------------------------------- loc_4C6D2: ; CODE XREF: sub_4C664+40j ; sub_4C664+48j btst #0,(byte_FFFFA7DE).w beq.s loc_4C6E2 btst #2,(word_FFFFA7E2+1).w beq.s loc_4C6FA loc_4C6E2: ; CODE XREF: sub_4C664+74j btst #0,(byte_FFFFA7E0).w beq.s loc_4C72E tst.b (byte_FFFFA7F4).w bne.s loc_4C6F4 clr.b d3 bra.s loc_4C6F6 ; --------------------------------------------------------------------------- loc_4C6F4: ; CODE XREF: sub_4C664+8Aj moveq #1,d3 loc_4C6F6: ; CODE XREF: sub_4C664+8Ej tst.b d3 bne.s loc_4C72E loc_4C6FA: ; CODE XREF: sub_4C664+7Cj btst #7,(byte_FFFFAF98).w bne.s loc_4C72A move.w (word_FFFFB3FC).w,d3 cmp.w (X_OVERRIDES_KE_C2_TCC_OVERRIDE_OFF_TIME).l,d3 ; The limit amount of time that TCC can be commanded OFFwhen using the Class II Device ; Seconds bls.s loc_4C716 moveq #$B,d3 clr.w (word_FFFFB3FC).w bra.s loc_4C730 ; --------------------------------------------------------------------------- loc_4C716: ; CODE XREF: sub_4C664+A8j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_4C724 move.w #$FFFF,d3 loc_4C724: ; CODE XREF: sub_4C664+BAj move.w d3,(word_FFFFB3FC).w bra.s loc_4C72E ; --------------------------------------------------------------------------- loc_4C72A: ; CODE XREF: sub_4C664+9Cj moveq #$A,d3 bra.s loc_4C730 ; --------------------------------------------------------------------------- loc_4C72E: ; CODE XREF: sub_4C664+16j ; sub_4C664+36j ... moveq #1,d3 loc_4C730: ; CODE XREF: sub_4C664+2Cj ; sub_4C664+6Cj ... tst.b (TCM_OPTIONS_K_TCC_ENABLE_SOLENOID_PRESENT).l ; Indicates whether the transmission has a TCC enable solenoid. ; BOOLEAN beq.s loc_4C740 bset #2,(byte_FFFFB3FA).w bra.s loc_4C746 ; --------------------------------------------------------------------------- loc_4C740: ; CODE XREF: sub_4C664+D2j bclr #2,(byte_FFFFB3FA).w loc_4C746: ; CODE XREF: sub_4C664+DAj cmpi.b #1,d3 bne.s loc_4C75A bclr #4,(byte_FFFFB3FA).w bclr #3,(byte_FFFFB3FA).w bra.s loc_4C766 ; --------------------------------------------------------------------------- loc_4C75A: ; CODE XREF: sub_4C664+E6j bset #4,(byte_FFFFB3FA).w bset #3,(byte_FFFFB3FA).w loc_4C766: ; CODE XREF: sub_4C664+F4j move.b d3,(byte_FFFFB3F6).w bra.s loc_4C77A ; --------------------------------------------------------------------------- loc_4C76C: ; CODE XREF: sub_4C664+Ej bclr #4,(byte_FFFFB3FA).w bclr #3,(byte_FFFFB3FA).w clr.b d3 loc_4C77A: ; CODE XREF: sub_4C664+106j moveq #1,d4 cmp.b d3,d4 bne.w loc_4C9DA btst #2,(byte_FFFFB3FA).w beq.w loc_4C960 btst #0,(byte_FFFFA7DE).w beq.w loc_4C8F8 btst #0,(byte_FFFFA7E0).w beq.s loc_4C7CA btst #2,(word_FFFFA7E2+1).w beq.s loc_4C7CA tst.b (byte_FFFFA7F4).w bne.s loc_4C7B0 clr.b d3 bra.s loc_4C7B2 ; --------------------------------------------------------------------------- loc_4C7B0: ; CODE XREF: sub_4C664+146j move.l d4,d3 loc_4C7B2: ; CODE XREF: sub_4C664+14Aj tst.b d3 beq.s loc_4C7CA loc_4C7B6: ; CODE XREF: sub_4C664+2B2j move.b d4,(byte_FFFFB3F2).w move.b d4,(byte_FFFFB3F3).w move.b d4,(byte_FFFFB3F8).w loc_4C7C2: ; CODE XREF: sub_4C664+1CAj ; sub_4C664+2C2j move.b d4,(byte_FFFFB3F7).w bra.w loc_4C9EA ; --------------------------------------------------------------------------- loc_4C7CA: ; CODE XREF: sub_4C664+138j ; sub_4C664+140j ... btst #0,(byte_FFFFA7E0).w beq.s loc_4C800 btst #2,(word_FFFFA7E2+1).w beq.s loc_4C800 tst.b (byte_FFFFA7F4).w bne.s loc_4C7E4 clr.b d3 bra.s loc_4C7E6 ; --------------------------------------------------------------------------- loc_4C7E4: ; CODE XREF: sub_4C664+17Aj move.l d4,d3 loc_4C7E6: ; CODE XREF: sub_4C664+17Ej tst.b d3 bne.s loc_4C800 loc_4C7EA: ; CODE XREF: sub_4C664+2E8j move.b d4,(byte_FFFFB3F2).w move.b d4,(byte_FFFFB3F3).w move.b d4,(byte_FFFFB3F8).w loc_4C7F6: ; CODE XREF: sub_4C664+2F8j move.b #2,(byte_FFFFB3F7).w bra.w loc_4C9EA ; --------------------------------------------------------------------------- loc_4C800: ; CODE XREF: sub_4C664+16Cj ; sub_4C664+174j ... btst #0,(byte_FFFFA7E0).w beq.s loc_4C830 btst #2,(word_FFFFA7E2+1).w bne.s loc_4C830 tst.b (byte_FFFFA7F4).w bne.s loc_4C81A clr.b d3 bra.s loc_4C81C ; --------------------------------------------------------------------------- loc_4C81A: ; CODE XREF: sub_4C664+1B0j move.l d4,d3 loc_4C81C: ; CODE XREF: sub_4C664+1B4j tst.b d3 beq.s loc_4C830 move.b d4,(byte_FFFFB3F2).w move.b d4,(byte_FFFFB3F3).w move.b #2,(byte_FFFFB3F8).w bra.s loc_4C7C2 ; --------------------------------------------------------------------------- loc_4C830: ; CODE XREF: sub_4C664+1A2j ; sub_4C664+1AAj ... btst #0,(byte_FFFFA7E0).w beq.s loc_4C866 btst #2,(word_FFFFA7E2+1).w bne.s loc_4C866 tst.b (byte_FFFFA7F4).w bne.s loc_4C84A clr.b d3 bra.s loc_4C84C ; --------------------------------------------------------------------------- loc_4C84A: ; CODE XREF: sub_4C664+1E0j move.l d4,d3 loc_4C84C: ; CODE XREF: sub_4C664+1E4j tst.b d3 bne.s loc_4C866 move.b d4,(byte_FFFFB3F2).w move.b d4,(byte_FFFFB3F3).w moveq #2,d3 move.b d3,(byte_FFFFB3F8).w move.b d3,(byte_FFFFB3F7).w bra.w loc_4C9EA ; --------------------------------------------------------------------------- loc_4C866: ; CODE XREF: sub_4C664+1D2j ; sub_4C664+1DAj ... btst #0,(byte_FFFFA7E0).w bne.s loc_4C88E btst #2,(word_FFFFA7E2+1).w beq.s loc_4C88E btst #6,(byte_FFFFA400).w beq.s loc_4C88E loc_4C87E: ; CODE XREF: sub_4C664+244j ; sub_4C664+312j move.b d4,(byte_FFFFB3F2).w move.b d4,(byte_FFFFB3F3).w move.b d4,(byte_FFFFB3F8).w bra.w loc_4C9E6 ; --------------------------------------------------------------------------- loc_4C88E: ; CODE XREF: sub_4C664+208j ; sub_4C664+210j ... btst #0,(byte_FFFFA7E0).w bne.s loc_4C8AA btst #2,(word_FFFFA7E2+1).w beq.s loc_4C8AA btst #6,(byte_FFFFA400).w sne d3 neg.b d3 beq.s loc_4C87E loc_4C8AA: ; CODE XREF: sub_4C664+230j ; sub_4C664+238j btst #0,(byte_FFFFA7E0).w bne.s loc_4C8D4 btst #2,(word_FFFFA7E2+1).w bne.s loc_4C8D4 btst #6,(byte_FFFFA400).w beq.s loc_4C8D4 loc_4C8C2: ; CODE XREF: sub_4C664+292j ; sub_4C664+32Cj move.b d4,(byte_FFFFB3F2).w move.b d4,(byte_FFFFB3F3).w move.b #2,(byte_FFFFB3F8).w bra.w loc_4C9E6 ; --------------------------------------------------------------------------- loc_4C8D4: ; CODE XREF: sub_4C664+24Cj ; sub_4C664+254j ... btst #0,(byte_FFFFA7E0).w bne.w loc_4C9EA btst #2,(word_FFFFA7E2+1).w bne.w loc_4C9EA btst #6,(byte_FFFFA400).w sne d3 neg.b d3 bne.w loc_4C9EA bra.s loc_4C8C2 ; --------------------------------------------------------------------------- loc_4C8F8: ; CODE XREF: sub_4C664+12Ej btst #0,(byte_FFFFA7E0).w beq.s loc_4C92A tst.b (byte_FFFFA7F4).w bne.s loc_4C90A clr.b d3 bra.s loc_4C90C ; --------------------------------------------------------------------------- loc_4C90A: ; CODE XREF: sub_4C664+2A0j move.l d4,d3 loc_4C90C: ; CODE XREF: sub_4C664+2A4j tst.b d3 beq.s loc_4C92A btst #0,(byte_FFFF95E2).w bne.w loc_4C7B6 loc_4C91A: ; CODE XREF: sub_4C664+34Ej move.b d4,(byte_FFFFB3F2).w move.b d4,(byte_FFFFB3F3).w clr.b (byte_FFFFB3F8).w bra.w loc_4C7C2 ; --------------------------------------------------------------------------- loc_4C92A: ; CODE XREF: sub_4C664+29Aj ; sub_4C664+2AAj btst #0,(byte_FFFFA7E0).w beq.w loc_4C9EA tst.b (byte_FFFFA7F4).w bne.s loc_4C93E clr.b d3 bra.s loc_4C940 ; --------------------------------------------------------------------------- loc_4C93E: ; CODE XREF: sub_4C664+2D4j move.l d4,d3 loc_4C940: ; CODE XREF: sub_4C664+2D8j tst.b d3 bne.w loc_4C9EA btst #0,(byte_FFFF95E2).w bne.w loc_4C7EA loc_4C950: ; CODE XREF: sub_4C664+372j move.b d4,(byte_FFFFB3F2).w move.b d4,(byte_FFFFB3F3).w clr.b (byte_FFFFB3F8).w bra.w loc_4C7F6 ; --------------------------------------------------------------------------- loc_4C960: ; CODE XREF: sub_4C664+124j btst #0,(byte_FFFFA7DE).w beq.s loc_4C97A btst #0,(byte_FFFFA7E0).w bne.s loc_4C97A btst #2,(word_FFFFA7E2+1).w bne.w loc_4C87E loc_4C97A: ; CODE XREF: sub_4C664+302j ; sub_4C664+30Aj btst #0,(byte_FFFFA7DE).w beq.s loc_4C994 btst #0,(byte_FFFFA7E0).w bne.s loc_4C994 btst #2,(word_FFFFA7E2+1).w beq.w loc_4C8C2 loc_4C994: ; CODE XREF: sub_4C664+31Cj ; sub_4C664+324j btst #0,(byte_FFFFA7DE).w bne.s loc_4C9B6 btst #0,(byte_FFFFA7E0).w beq.s loc_4C9B6 tst.b (byte_FFFFA7F4).w bne.s loc_4C9AE clr.b d3 bra.s loc_4C9B0 ; --------------------------------------------------------------------------- loc_4C9AE: ; CODE XREF: sub_4C664+344j move.l d4,d3 loc_4C9B0: ; CODE XREF: sub_4C664+348j tst.b d3 bne.w loc_4C91A loc_4C9B6: ; CODE XREF: sub_4C664+336j ; sub_4C664+33Ej btst #0,(byte_FFFFA7DE).w bne.s loc_4C9EA btst #0,(byte_FFFFA7E0).w beq.s loc_4C9EA tst.b (byte_FFFFA7F4).w bne.s loc_4C9D0 clr.b d3 bra.s loc_4C9D2 ; --------------------------------------------------------------------------- loc_4C9D0: ; CODE XREF: sub_4C664+366j move.l d4,d3 loc_4C9D2: ; CODE XREF: sub_4C664+36Aj tst.b d3 bne.s loc_4C9EA bra.w loc_4C950 ; --------------------------------------------------------------------------- loc_4C9DA: ; CODE XREF: sub_4C664+11Aj clr.b (byte_FFFFB3F2).w clr.b (byte_FFFFB3F3).w clr.b (byte_FFFFB3F8).w loc_4C9E6: ; CODE XREF: sub_4C664+226j ; sub_4C664+26Cj clr.b (byte_FFFFB3F7).w loc_4C9EA: ; CODE XREF: sub_4C664+162j ; sub_4C664+198j ... tst.b (byte_FFFFB0C6).w beq.s locret_4CA04 tst.b (byte_FFFFA2BC).w beq.s loc_4C9FE bset #1,(byte_FFFFB3FA).w bra.s locret_4CA04 ; --------------------------------------------------------------------------- loc_4C9FE: ; CODE XREF: sub_4C664+390j bclr #1,(byte_FFFFB3FA).w locret_4CA04: ; CODE XREF: sub_4C664+38Aj ; sub_4C664+398j rts ; End of function sub_4C664 ; =============== S U B R O U T I N E ======================================= sub_4CA06: ; CODE XREF: sub_4CCBC+54p btst #1,(byte_FFFFA7E0).w beq.s loc_4CA8C tst.b (byte_FFFFA80F).w bne.s loc_4CA68 move.b (byte_FFFFA7F5).w,d3 cmp.b (X_OVERRIDES_KE_C2_FM_OVERRIDE_LO_LIMIT).l,d3 ; The low threshold of Force Motor current for theClass II Device Control Limits ; Amps bls.s loc_4CA28 cmp.b (X_OVERRIDES_KE_C2_FM_OVERRIDE_HI_LIMIT).l,d3 ; The high threshold of Force Motor current for theClass II Device Control Limits ; Amps bcs.s loc_4CA2C loc_4CA28: ; CODE XREF: sub_4CA06+18j moveq #$C,d3 bra.s loc_4CA6A ; --------------------------------------------------------------------------- loc_4CA2C: ; CODE XREF: sub_4CA06+20j btst #0,(byte_FFFF95E2).w beq.s loc_4CA68 btst #1,(byte_FFFF8A6E).w beq.s loc_4CA40 moveq #$D,d3 bra.s loc_4CA6A ; --------------------------------------------------------------------------- loc_4CA40: ; CODE XREF: sub_4CA06+34j move.b (byte_FFFF95E9).w,d4 moveq #4,d5 cmp.b d4,d5 bcs.s loc_4CA54 cmp.b (byte_FFFFADD2).w,d3 bls.s loc_4CA54 moveq #$E,d3 bra.s loc_4CA6A ; --------------------------------------------------------------------------- loc_4CA54: ; CODE XREF: sub_4CA06+42j ; sub_4CA06+48j cmp.b d4,d5 bcc.s loc_4CA68 move.w (word_FFFF95B6).w,d3 cmp.w (X_OVERRIDES_KE_C2_FM_ENG_LIMIT).l,d3 ; The limit of engine speed for a Class II force motor ; RPM bls.s loc_4CA68 moveq #$F,d3 bra.s loc_4CA6A ; --------------------------------------------------------------------------- loc_4CA68: ; CODE XREF: sub_4CA06+Cj ; sub_4CA06+2Cj ... moveq #1,d3 loc_4CA6A: ; CODE XREF: sub_4CA06+24j ; sub_4CA06+38j ... moveq #1,d4 cmp.b d3,d4 bne.s loc_4CA7C bclr #6,(byte_FFFFB3FA).w move.b d4,(byte_FFFFB3F5).w bra.s loc_4CA86 ; --------------------------------------------------------------------------- loc_4CA7C: ; CODE XREF: sub_4CA06+68j bset #6,(byte_FFFFB3FA).w clr.b (byte_FFFFB3F5).w loc_4CA86: ; CODE XREF: sub_4CA06+74j move.b d3,(byte_FFFFB3F6).w bra.s loc_4CA96 ; --------------------------------------------------------------------------- loc_4CA8C: ; CODE XREF: sub_4CA06+6j bclr #6,(byte_FFFFB3FA).w clr.b (byte_FFFFB3F5).w loc_4CA96: ; CODE XREF: sub_4CA06+84j tst.b (byte_FFFFB0C6).w beq.s locret_4CAB6 tst.w (word_FFFFA2DC).w bne.s loc_4CAA8 tst.w (word_FFFFA2DE).w beq.s loc_4CAB0 loc_4CAA8: ; CODE XREF: sub_4CA06+9Aj bset #0,(byte_FFFFB3FA).w bra.s locret_4CAB6 ; --------------------------------------------------------------------------- loc_4CAB0: ; CODE XREF: sub_4CA06+A0j bclr #0,(byte_FFFFB3FA).w locret_4CAB6: ; CODE XREF: sub_4CA06+94j ; sub_4CA06+A8j rts ; End of function sub_4CA06 ; =============== S U B R O U T I N E ======================================= sub_4CAB8: ; CODE XREF: sub_4CCBC+5Ap btst #1,(byte_FFFFA7DE).w bne.s loc_4CAC8 btst #6,(byte_FFFFA7DF).w beq.s loc_4CB06 loc_4CAC8: ; CODE XREF: sub_4CAB8+6j btst #0,(byte_FFFF95E2).w beq.s loc_4CAE2 tst.b (byte_FFFFA80F).w bne.s loc_4CAE2 cmpi.b #4,(byte_FFFF95E9).w bhi.s loc_4CAE2 moveq #$10,d3 bra.s loc_4CAE4 ; --------------------------------------------------------------------------- loc_4CAE2: ; CODE XREF: sub_4CAB8+16j ; sub_4CAB8+1Cj ... moveq #1,d3 loc_4CAE4: ; CODE XREF: sub_4CAB8+28j moveq #1,d4 cmp.b d3,d4 bne.s loc_4CAF6 move.b d4,(byte_FFFFB3F4).w bclr #7,(byte_FFFFB3FA).w bra.s loc_4CB00 ; --------------------------------------------------------------------------- loc_4CAF6: ; CODE XREF: sub_4CAB8+30j clr.b (byte_FFFFB3F4).w bset #7,(byte_FFFFB3FA).w loc_4CB00: ; CODE XREF: sub_4CAB8+3Cj move.b d3,(byte_FFFFB3F6).w bra.s locret_4CB10 ; --------------------------------------------------------------------------- loc_4CB06: ; CODE XREF: sub_4CAB8+Ej clr.b (byte_FFFFB3F4).w bclr #7,(byte_FFFFB3FA).w locret_4CB10: ; CODE XREF: sub_4CAB8+4Cj rts ; End of function sub_4CAB8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4CB12: ; CODE XREF: sub_4CCBC:loc_4CD50p var_6 = -6 var_4 = -4 link a6,#-6 movem.l a0-a1,-(sp) tst.b (byte_FFFFB0C6).w beq.s loc_4CB56 lea var_6(a6),a1 movea.l #$408296,a0 jsr sub_27A50 cmpi.b #1,var_6(a6) bne.s loc_4CB46 move.b var_4(a6),d3 move.b d3,(byte_FFFFA2DA).w move.b d3,(byte_FFFFB3F9).w bra.s loc_4CB4E ; --------------------------------------------------------------------------- loc_4CB46: ; CODE XREF: sub_4CB12+24j clr.b (byte_FFFFA2DA).w clr.b (byte_FFFFB3F9).w loc_4CB4E: ; CODE XREF: sub_4CB12+32j ; sub_4CB12+50j jsr sub_4CB7A bra.s loc_4CB72 ; --------------------------------------------------------------------------- loc_4CB56: ; CODE XREF: sub_4CB12+Cj tst.b (byte_FFFF819D).w beq.s loc_4CB64 jsr sub_2828E bra.s loc_4CB4E ; --------------------------------------------------------------------------- loc_4CB64: ; CODE XREF: sub_4CB12+48j tst.b (byte_FFFFB3F9).w beq.s loc_4CB72 clr.b (byte_FFFFA2DA).w clr.b (byte_FFFFB3F9).w loc_4CB72: ; CODE XREF: sub_4CB12+42j ; sub_4CB12+56j movem.l (sp)+,a0-a1 unlk a6 rts ; End of function sub_4CB12 ; =============== S U B R O U T I N E ======================================= sub_4CB7A: ; CODE XREF: sub_4CB12:loc_4CB4Ep movem.l d0/a0,-(sp) move.b (byte_FFFFA2DA).w,d3 beq.s loc_4CB94 cmpi.b #6,d3 bhi.s loc_4CB94 jsr sub_5D15C bra.w loc_4CCB2 ; --------------------------------------------------------------------------- loc_4CB94: ; CODE XREF: sub_4CB7A+8j sub_4CB7A+Ej cmpi.b #7,d3 bne.s loc_4CBBC lea (unk_FFFF8BCE).w,a0 moveq #$11,d0 loc_4CBA0: ; CODE XREF: sub_4CB7A+28j clr.w (a0)+ dbf d0,loc_4CBA0 movea.l #unk_FF8BCE,a0 moveq #$24,d0 ; '$' jsr sub_2654C move.w d0,(word_FFFF8BF2).w bra.w loc_4CCB2 ; --------------------------------------------------------------------------- loc_4CBBC: ; CODE XREF: sub_4CB7A+1Ej cmpi.b #8,d3 bne.s loc_4CC02 clr.b (byte_FFFF8CAA).w clr.l (dword_FFFF8CA6).w clr.l (dword_FFFF8CA2).w movea.l #unk_FF8CA2,a0 moveq #9,d0 jsr sub_2654C move.w d0,(word_FFFF8CAE).w clr.b (byte_FFFF8CA0).w clr.l (dword_FFFF8C9C).w clr.l (dword_FFFF8C98).w movea.l #unk_FF8C98,a0 moveq #9,d0 jsr sub_2654C move.w d0,(word_FFFF8CAC).w bra.w loc_4CCB2 ; --------------------------------------------------------------------------- loc_4CC02: ; CODE XREF: sub_4CB7A+46j cmpi.b #$B,d3 bne.s loc_4CC4E clr.w (word_FFFF8C80).w clr.w (word_FFFF8C82).w clr.w (word_FFFF8C84).w clr.w (word_FFFF8C86).w clr.w (word_FFFF8C88).w movea.l #unk_FF8C80,a0 moveq #$A,d0 jsr sub_2654C move.w d0,(word_FFFF8C8A).w clr.l (dword_FFFF8C92).w clr.l (dword_FFFF8C8E).w clr.w (word_FFFF8C8C).w movea.l #unk_FF8C8C,a0 moveq #$A,d0 jsr sub_2654C move.w d0,(word_FFFF8C96).w bra.s loc_4CCB2 ; --------------------------------------------------------------------------- loc_4CC4E: ; CODE XREF: sub_4CB7A+8Cj cmpi.b #$A,d3 bne.s loc_4CC76 lea (byte_FFFF8CC6).w,a0 moveq #6,d0 loc_4CC5A: ; CODE XREF: sub_4CB7A+E2j clr.w (a0)+ dbf d0,loc_4CC5A clr.b (a0) movea.l #unk_FF8CC6,a0 moveq #$F,d0 jsr sub_2654C move.w d0,(word_FFFF8CC4).w bra.s loc_4CCB2 ; --------------------------------------------------------------------------- loc_4CC76: ; CODE XREF: sub_4CB7A+D8j cmpi.b #9,d3 bne.s loc_4CC9C lea (unk_FFFF8C50).w,a0 moveq #7,d0 loc_4CC82: ; CODE XREF: sub_4CB7A+10Aj clr.w (a0)+ dbf d0,loc_4CC82 movea.l #unk_FF8C50,a0 moveq #$10,d0 jsr sub_2654C move.w d0,(word_FFFF8C60).w bra.s loc_4CCB2 ; --------------------------------------------------------------------------- loc_4CC9C: ; CODE XREF: sub_4CB7A+100j cmpi.b #$C,d3 bne.s loc_4CCB2 lea (unk_FFFF8C3E).w,a2 moveq #7,d3 loc_4CCA8: ; CODE XREF: sub_4CB7A+130j clr.w (a2)+ dbf d3,loc_4CCA8 clr.w (word_FFFF8C4E).w loc_4CCB2: ; CODE XREF: sub_4CB7A+16j ; sub_4CB7A+3Ej ... clr.b (byte_FFFFA2DA).w movem.l (sp)+,d0/a0 rts ; End of function sub_4CB7A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4CCBC: ; CODE XREF: DoLoopD+8Ep var_6 = -6 var_4 = -4 link a6,#-6 movem.l a0-a1,-(sp) jsr sub_4C570 btst #2,(byte_FFFFA7E0).w bne.s loc_4CD0A tst.b (byte_FFFFB0C6).w beq.s loc_4CCFE lea var_6(a6),a1 movea.l #$40827E,a0 jsr sub_27A50 cmpi.b #1,var_6(a6) bne.s loc_4CCF8 move.b var_4(a6),(byte_FFFFA2A0).w bra.s loc_4CD0A ; --------------------------------------------------------------------------- loc_4CCF8: ; CODE XREF: sub_4CCBC+32j clr.b (byte_FFFFA2A0).w bra.s loc_4CD0A ; --------------------------------------------------------------------------- loc_4CCFE: ; CODE XREF: sub_4CCBC+1Aj tst.b (byte_FFFF819D).w beq.s loc_4CD0A jsr sub_28274 loc_4CD0A: ; CODE XREF: sub_4CCBC+14j ; sub_4CCBC+3Aj ... jsr sub_4C664 jsr sub_4CA06 jsr sub_4CAB8 btst #0,(byte_FFFFA7DE).w bne.s loc_4CD50 btst #0,(byte_FFFFA7E0).w bne.s loc_4CD50 btst #1,(byte_FFFFA7E0).w bne.s loc_4CD50 btst #1,(byte_FFFFA7DE).w bne.s loc_4CD50 btst #6,(byte_FFFFA7DF).w bne.s loc_4CD50 btst #2,(byte_FFFFA7E0).w bne.s loc_4CD50 clr.b (byte_FFFFB3F6).w loc_4CD50: ; CODE XREF: sub_4CCBC+66j ; sub_4CCBC+6Ej ... jsr sub_4CB12 movem.l (sp)+,a0-a1 unlk a6 rts ; End of function sub_4CCBC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4CD5E: ; CODE XREF: DoLoopD:loc_2A710p var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d2,-(sp) jsr sub_5752E jsr sub_56EDC jsr sub_575C6 jsr sub_559D6 move.w d0,d1 move.w d1,(word_FFFFB458).w jsr sub_55796 move.w d0,d2 move.w d2,(word_FFFFB456).w move.w (word_FFFF95B2).w,d3 clr.w d4 move.b (byte_FFFF95DC).w,d4 mulu.w #$12,d4 lea X_PRESSURE_KA_LUBE_PRESSURE(d4.l),a2 ; Lube pressure based on the gear and output speed. ; PSI lsr.w #4,d3 tblu.w (a2),d3 move.w d3,(word_FFFFB45A).w clr.b (byte_FFFFA4FA).w move.w (word_FFFFA2DC).w,d4 beq.s loc_4CDC6 move.w d4,var_2(a6) clr.b var_4(a6) bra.w loc_4CF8C ; --------------------------------------------------------------------------- loc_4CDC6: ; CODE XREF: sub_4CD5E+5Aj tst.b (byte_FFFFAC5C).w bne.s loc_4CDDA tst.b (byte_FFFFADD5).w beq.s loc_4CDDA btst #5,(byte_FFFFAFD4).w beq.s loc_4CDEC loc_4CDDA: ; CODE XREF: sub_4CD5E+6Cj ; sub_4CD5E+72j move.w (XMSN_IO_KE_MAX_PRESSURE).l,var_2(a6) ; Max allowable force motor pressure used for limitingcalculations. ; PSI move.b #1,var_4(a6) bra.w loc_4CF8C ; --------------------------------------------------------------------------- loc_4CDEC: ; CODE XREF: sub_4CD5E+7Aj moveq #4,d4 cmp.b (byte_FFFFADD0).w,d4 bne.s loc_4CE06 move.w (XMSN_IO_KE_MAX_PRESSURE).l,var_2(a6) ; Max allowable force motor pressure used for limitingcalculations. ; PSI move.b #2,var_4(a6) bra.w loc_4CF8C ; --------------------------------------------------------------------------- loc_4CE06: ; CODE XREF: sub_4CD5E+94j tst.b (byte_FFFFA4F8).w beq.s loc_4CE5C move.w (word_FFFFB00E).w,d3 sub.w (X_PRESSURE_KE_GS_PRESSURE_DIFFERENCE).l,d3 bcc.s loc_4CE1A clr.w d3 loc_4CE1A: ; CODE XREF: sub_4CD5E+B8j cmp.w d3,d1 bcs.s loc_4CE3A move.l d0,d3 sub.w (X_PRESSURE_KE_GS_PRESSURE_DIFFERENCE).l,d3 bcc.s loc_4CE2A clr.w d3 loc_4CE2A: ; CODE XREF: sub_4CD5E+C8j cmp.w d3,d1 bcs.s loc_4CE3A move.w d1,var_2(a6) move.b d4,var_4(a6) bra.w loc_4CF8C ; --------------------------------------------------------------------------- loc_4CE3A: ; CODE XREF: sub_4CD5E+BEj ; sub_4CD5E+CEj clr.b (byte_FFFFA4F8).w move.b #1,(byte_FFFFA4FA).w move.w (word_FFFFB00E).w,d3 cmp.w d2,d3 bls.w loc_4CF82 loc_4CE4E: ; CODE XREF: sub_4CD5E+204j move.w d3,var_2(a6) loc_4CE52: ; CODE XREF: sub_4CD5E+19Cj move.b #5,var_4(a6) bra.w loc_4CF8C ; --------------------------------------------------------------------------- loc_4CE5C: ; CODE XREF: sub_4CD5E+ACj move.b (byte_FFFF95E9).w,d4 moveq #4,d5 cmp.b d4,d5 bne.s loc_4CE76 move.b #5,var_4(a6) move.w (word_FFFFB00E).w,var_2(a6) bra.w loc_4CF8C ; --------------------------------------------------------------------------- loc_4CE76: ; CODE XREF: sub_4CD5E+106j btst #7,(byte_FFFFACFA).w beq.s loc_4CEB4 move.b (byte_FFFFB539).w,d3 cmpi.b #1,d3 beq.s loc_4CE8E cmpi.b #3,d3 bne.s loc_4CEA6 loc_4CE8E: ; CODE XREF: sub_4CD5E+128j move.w (word_FFFFACF8).w,d3 cmp.w d2,d3 bls.w loc_4CF82 move.w d3,var_2(a6) loc_4CE9C: ; CODE XREF: sub_4CD5E+154j ; sub_4CD5E+1B8j move.b #3,var_4(a6) bra.w loc_4CF8C ; --------------------------------------------------------------------------- loc_4CEA6: ; CODE XREF: sub_4CD5E+12Ej cmp.b d3,d5 bne.w loc_4CF8C move.w (word_FFFFACF8).w,var_2(a6) bra.s loc_4CE9C ; --------------------------------------------------------------------------- loc_4CEB4: ; CODE XREF: sub_4CD5E+11Ej btst #4,(byte_FFFFA8FE).w bne.s loc_4CEC6 btst #3,(byte_FFFFA8FE).w beq.w loc_4CF66 loc_4CEC6: ; CODE XREF: sub_4CD5E+15Cj movea.w (word_FFFFACF8).w,a3 move.l a3,d3 tst.b (byte_FFFFA0C1).w bne.s loc_4CF1A btst #4,(byte_FFFFA8FE).w beq.s loc_4CEFE move.w (word_FFFFB00E).w,d4 add.w (X_PRESSURE_KE_UPSHFT_VS_SS_PRES_OFFSET).l,d3 cmp.w d4,d3 ble.s loc_4CEF6 move.w a3,var_2(a6) loc_4CEEC: ; CODE XREF: sub_4CD5E+1BAj move.b #7,var_4(a6) bra.w loc_4CF8C ; --------------------------------------------------------------------------- loc_4CEF6: ; CODE XREF: sub_4CD5E+188j ; sub_4CD5E+1ACj ... move.w d4,var_2(a6) bra.w loc_4CE52 ; --------------------------------------------------------------------------- loc_4CEFE: ; CODE XREF: sub_4CD5E+17Aj move.w (word_FFFFB00E).w,d4 add.w (X_PRESSURE_KE_DNSHFT_VS_SS_PRES_OFFSET).l,d3 cmp.w d4,d3 ble.s loc_4CEF6 loc_4CF0C: ; CODE XREF: sub_4CD5E+1F4j move.w a3,var_2(a6) btst #5,(byte_FFFFA8FF).w bne.s loc_4CE9C bra.s loc_4CEEC ; --------------------------------------------------------------------------- loc_4CF1A: ; CODE XREF: sub_4CD5E+172j btst #4,(byte_FFFFA8FE).w beq.s loc_4CF30 andi.w #$FF,d4 movea.w X_PRESSURE_KV_UPSHFT_VS_BRAKING_PRES_OFFSET(d4.w*2),a2 bra.s loc_4CF3C ; --------------------------------------------------------------------------- loc_4CF30: ; CODE XREF: sub_4CD5E+1C2j andi.w #$FF,d4 movea.w X_PRESSURE_KV_DNSHFT_VS_BRAKING_PRES_OFFSET(d4.w*2),a2 loc_4CF3C: ; CODE XREF: sub_4CD5E+1D0j move.l d3,d4 add.w a2,d4 move.l d0,d1 add.w (X_PRESSURE_KE_BRAKING_VS_SS_PRES_OFFSET).l,d1 cmp.w d1,d4 ble.s loc_4CF54 add.w a2,d3 cmp.w (word_FFFFB00E).w,d3 bgt.s loc_4CF0C loc_4CF54: ; CODE XREF: sub_4CD5E+1ECj move.w (word_FFFFB00E).w,d3 add.w (X_PRESSURE_KE_BRAKING_VS_SS_PRES_OFFSET).l,d0 cmp.w d3,d0 bgt.s loc_4CF82 bra.w loc_4CE4E ; --------------------------------------------------------------------------- loc_4CF66: ; CODE XREF: sub_4CD5E+164j move.w (word_FFFFB00E).w,d4 cmp.w d3,d4 bls.s loc_4CF72 cmp.w d2,d4 bhi.s loc_4CEF6 loc_4CF72: ; CODE XREF: sub_4CD5E+20Ej cmp.w d2,d3 bls.s loc_4CF82 move.w d3,var_2(a6) move.b #8,var_4(a6) bra.s loc_4CF8C ; --------------------------------------------------------------------------- loc_4CF82: ; CODE XREF: sub_4CD5E+ECj ; sub_4CD5E+136j ... move.w d2,var_2(a6) move.b #6,var_4(a6) loc_4CF8C: ; CODE XREF: sub_4CD5E+64j ; sub_4CD5E+8Aj ... move.w var_2(a6),d3 add.w (word_FFFFA2DE).w,d3 cmpi.w #$7FFF,d3 bhi.s loc_4CFA6 cmpi.w #$1800,d3 bls.s loc_4CFA8 move.w #$1800,d3 bra.s loc_4CFA8 ; --------------------------------------------------------------------------- loc_4CFA6: ; CODE XREF: sub_4CD5E+23Aj clr.w d3 loc_4CFA8: ; CODE XREF: sub_4CD5E+240j ; sub_4CD5E+246j move.w d3,var_2(a6) tst.b (byte_FFFFAC5F).w beq.s loc_4CFD4 move.w var_2(a6),d3 add.w (X_PRESSURE_KE_PRESSURE_OFFSET_MALF).l,d3 ; Offset added to Pressure when Torque PressureOffset Malf present. ; PSI_S cmpi.w #$7FFF,d3 bhi.s loc_4CFCE cmpi.w #$1800,d3 bls.s loc_4CFD0 move.w #$1800,d3 bra.s loc_4CFD0 ; --------------------------------------------------------------------------- loc_4CFCE: ; CODE XREF: sub_4CD5E+262j clr.w d3 loc_4CFD0: ; CODE XREF: sub_4CD5E+268j ; sub_4CD5E+26Ej move.w d3,var_2(a6) loc_4CFD4: ; CODE XREF: sub_4CD5E+252j move.w (XMSN_IO_KE_MAX_PRESSURE).l,d3 ; Max allowable force motor pressure used for limitingcalculations. ; PSI cmp.w var_2(a6),d3 bcc.s loc_4CFE4 move.w d3,var_2(a6) loc_4CFE4: ; CODE XREF: sub_4CD5E+280j move.w var_2(a6),(word_FFFFB452).w move.b var_4(a6),(byte_FFFFB454).w movem.l (sp)+,d0-d2 unlk a6 rts ; End of function sub_4CD5E ; =============== S U B R O U T I N E ======================================= sub_4CFF8: ; CODE XREF: sub_5436E+872p ; sub_5436E+90Ap movem.l d0-d2/d6,-(sp) btst #6,(byte_FFFF8A6E).w bne.s loc_4D014 btst #6,(byte_FFFF88C0).w bne.s loc_4D014 btst #6,(byte_FFFF88C0).w beq.s loc_4D01C loc_4D014: ; CODE XREF: sub_4CFF8+Aj ; sub_4CFF8+12j move.b #1,(byte_FFFFAD47).w bra.s loc_4D068 ; --------------------------------------------------------------------------- loc_4D01C: ; CODE XREF: sub_4CFF8+1Aj btst #7,(byte_FFFFA8FE).w beq.s loc_4D02C moveq #2,d6 loc_4D026: ; CODE XREF: sub_4CFF8+5Aj move.b d6,(byte_FFFFAD47).w bra.s loc_4D068 ; --------------------------------------------------------------------------- loc_4D02C: ; CODE XREF: sub_4CFF8+2Aj btst #6,(byte_FFFFA8FE).w bne.s loc_4D050 btst #4,(byte_FFFFA8FE).w beq.s loc_4D054 clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFFA90C).w,d4 cmp.w X_PRESSURE_KE_GS_PRESSURE_DIFFERENCE(d3.w*2),d4 bls.s loc_4D054 loc_4D050: ; CODE XREF: sub_4CFF8+3Aj moveq #3,d6 bra.s loc_4D026 ; --------------------------------------------------------------------------- loc_4D054: ; CODE XREF: sub_4CFF8+42j ; sub_4CFF8+56j btst #3,(byte_FFFFA8FE).w bne.s loc_4D068 btst #4,(byte_FFFFA8FE).w bne.s loc_4D068 clr.b (byte_FFFFAD47).w loc_4D068: ; CODE XREF: sub_4CFF8+22j ; sub_4CFF8+32j ... move.b (byte_FFFFAD47).w,d4 cmpi.b #2,d4 bhi.s loc_4D0AE beq.s loc_4D0E0 tst.b d4 bne.s loc_4D08A cmpi.b #4,(byte_FFFF95E9).w seq d1 neg.b d1 asl.b #2,d1 add.b (byte_FFFF95DC).w,d1 bra.s loc_4D09C ; --------------------------------------------------------------------------- loc_4D08A: ; CODE XREF: sub_4CFF8+7Ej cmpi.b #4,(byte_FFFF95E9).w seq d1 neg.b d1 asl.b #2,d1 add.b (TCM_OPTIONS_K_DEFAULT_GEAR).l,d1 ; Default hydraulic gear for the transmission. ; Gear loc_4D09C: ; CODE XREF: sub_4CFF8+90j andi.w #$FF,d1 movea.l off_8A5DC(d1.w*4),a2 move.w (a2),(word_FFFFAD42).w bra.s loc_4D0E0 ; --------------------------------------------------------------------------- loc_4D0AE: ; CODE XREF: sub_4CFF8+78j btst #4,(byte_FFFFA8FE).w beq.s loc_4D0DA move.w (word_FFFFAD44).w,d3 add.w (word_FFFFAD62).w,d3 bvc.s loc_4D0C4 bmi.s loc_4D0CC bra.s loc_4D0D2 ; --------------------------------------------------------------------------- loc_4D0C4: ; CODE XREF: sub_4CFF8+C6j cmpi.w #$7FFF,d3 bhi.s loc_4D0D2 bra.s loc_4D0D4 ; --------------------------------------------------------------------------- loc_4D0CC: ; CODE XREF: sub_4CFF8+C8j move.w #$7FFF,d3 bra.s loc_4D0D4 ; --------------------------------------------------------------------------- loc_4D0D2: ; CODE XREF: sub_4CFF8+CAj ; sub_4CFF8+D0j clr.w d3 loc_4D0D4: ; CODE XREF: sub_4CFF8+D2j ; sub_4CFF8+D8j move.w d3,(word_FFFFAD42).w bra.s loc_4D0E0 ; --------------------------------------------------------------------------- loc_4D0DA: ; CODE XREF: sub_4CFF8+BCj move.w (word_FFFFAD44).w,(word_FFFFAD42).w loc_4D0E0: ; CODE XREF: sub_4CFF8+7Aj ; sub_4CFF8+B4j ... move.w (word_FFFFAD42).w,d1 sub.w (word_FFFFAD44).w,d1 moveq #3,d6 cmp.b d4,d6 beq.s loc_4D102 move.w (X_RATIO_KE_RATIO_ERROR_FILTER_COEFF).l,d0 ; Filter coefficient for filtering ratio error. ; Coeff move.w (word_FFFFAD62).w,d2 jsr loc_26610 move.w d0,(word_FFFFAD62).w loc_4D102: ; CODE XREF: sub_4CFF8+F4j tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_4D130 tst.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.s loc_4D134 move.b (byte_FFFF95DC).w,d3 cmp.b d3,d6 beq.s loc_4D130 cmpi.b #2,d3 bne.s loc_4D134 btst #3,(byte_FFFFA8FE).w bne.s loc_4D130 btst #6,(byte_FFFF9BBA).w beq.s loc_4D134 loc_4D130: ; CODE XREF: sub_4CFF8+110j ; sub_4CFF8+120j ... move.w (word_FFFFAD42).w,(a0) loc_4D134: ; CODE XREF: sub_4CFF8+118j ; sub_4CFF8+126j ... movem.l (sp)+,d0-d2/d6 rts ; End of function sub_4CFF8 ; =============== S U B R O U T I N E ======================================= sub_4D13A: ; CODE XREF: sub_5436E:loc_54BD4p ; sub_5436E:loc_54C6Cp movem.l d0-d2/d6-a1/a4,-(sp) tst.b (X_RATIO_KE_USE_ACTUAL_ENGINE_TORQUE).l ; IF true, set MRatio_Engine_Torque to Actual_Engine_Torque, otherwise, set to Unmanaged_Engine_Out_Torque. ; T/F beq.s loc_4D15E jsr sub_7EFC4 moveq #5,d7 muls.w d7,d0 bpl.s loc_4D158 addi.l #$3F,d0 ; '?' loc_4D158: ; CODE XREF: sub_4D13A+16j asr.l #6,d0 move.w d0,d3 bra.s loc_4D170 ; --------------------------------------------------------------------------- loc_4D15E: ; CODE XREF: sub_4D13A+Aj move.w (word_FFFF9E22).w,d3 moveq #5,d7 muls.w d7,d3 bpl.s loc_4D16E addi.l #$3F,d3 ; '?' loc_4D16E: ; CODE XREF: sub_4D13A+2Cj asr.l #6,d3 loc_4D170: ; CODE XREF: sub_4D13A+22j cmpi.w #$7FFF,d3 bls.s loc_4D178 clr.w d3 loc_4D178: ; CODE XREF: sub_4D13A+3Aj move.w (X_RATIO_KE_MRATIO_ENG_TORQ_FILTER_COEFF).l,d0 ; Filter coefficient for filtering MRatio_Engine_Torque. ; Coeff move.w (word_FFFFAD48).w,d2 move.l d3,d1 jsr sub_26608 move.w d0,d6 move.w d6,(word_FFFFAD48).w move.w (word_FFFF95B8).w,d3 sub.w (word_FFFFAD4A).w,d3 clr.l d1 move.w (word_8A81C).l,d1 ext.l d3 muls.l d1,d3 move.w #$1AD0,d1 divs.w d1,d3 bvc.s loc_4D1BE swap d3 eor.w d1,d3 bmi.s loc_4D1BA move.w #$7FFF,d3 bra.s loc_4D1BE ; --------------------------------------------------------------------------- loc_4D1BA: ; CODE XREF: sub_4D13A+78j move.w #$8000,d3 loc_4D1BE: ; CODE XREF: sub_4D13A+72j ; sub_4D13A+7Ej clr.l d1 move.w (X_RATIO_KE_ENG_INERTIA).l,d1 ; Moment of inertia for calculating Inertia Torque. ; Kg-m-m move.l d3,d4 ext.l d4 muls.l d1,d4 cmpi.l #$7FFFFFFF,d4 bhi.s loc_4D1E6 moveq #$16,d3 mulu.l d4,d1:d3 divu.l #unk_15015,d1:d3 bra.s loc_4D1E8 ; --------------------------------------------------------------------------- loc_4D1E6: ; CODE XREF: sub_4D13A+9Aj clr.l d3 loc_4D1E8: ; CODE XREF: sub_4D13A+AAj movea.l (dword_FFFFB5DE).w,a2 divu.w $A(a2),d3 bvs.s loc_4D1F8 cmpi.w #$2020,d3 bls.s loc_4D1FC loc_4D1F8: ; CODE XREF: sub_4D13A+B6j move.w #$2020,d3 loc_4D1FC: ; CODE XREF: sub_4D13A+BCj mulu.w (word_8A81E).l,d3 lsr.l #8,d3 lsr.l #8,d3 cmpi.w #$1770,d3 bls.s loc_4D210 move.w #$1770,d3 loc_4D210: ; CODE XREF: sub_4D13A+D0j move.w d3,(word_FFFFAD64).w move.w (word_FFFF95B8).w,(word_FFFFAD4A).w tst.b (byte_FFFFA40E).w beq.s loc_4D224 moveq #1,d3 bra.s loc_4D226 ; --------------------------------------------------------------------------- loc_4D224: ; CODE XREF: sub_4D13A+E4j clr.b d3 loc_4D226: ; CODE XREF: sub_4D13A+E8j tst.b d3 beq.s loc_4D230 move.w (word_FFFFA40A).w,d1 bra.s loc_4D232 ; --------------------------------------------------------------------------- loc_4D230: ; CODE XREF: sub_4D13A+EEj clr.w d1 loc_4D232: ; CODE XREF: sub_4D13A+F4j move.w (X_RATIO_KE_TCC_PRESSURE_FILTER_COEFF).l,d0 ; Filter coefficient for filtering calculated TCC Pressure. ; Coeff move.w (word_FFFFAD4E).w,d2 jsr sub_26608 move.w d0,(word_FFFFAD4E).w move.w d0,d3 sub.w (X_RATIO_KE_TCC_OFFSET).l,d3 ; Pressure offset subtracted from filtered TCC Pressure. ; PSI bcc.s loc_4D252 clr.w d3 loc_4D252: ; CODE XREF: sub_4D13A+114j mulu.w (X_RATIO_KE_TCC_GAIN).l,d3 ; Gain multiplied with filtered TCC Pressure minus offset to yield TCC Torque. ; Ftlb/PSI divu.l #unk_19999,d3 move.w d3,(word_FFFFAD4C).w move.w (word_FFFFAD48).w,d3 sub.w (word_FFFFAD64).w,d3 bcc.s loc_4D270 clr.w d3 loc_4D270: ; CODE XREF: sub_4D13A+132j sub.w (word_FFFFAD4C).w,d3 bcc.s loc_4D278 clr.w d3 loc_4D278: ; CODE XREF: sub_4D13A+13Aj move.w d3,(word_FFFFAD50).w mulu.w (word_8A81A).l,d3 lsr.l #8,d3 lsr.l #7,d3 move.w d3,d4 clr.l d3 move.w (X_RATIO_KE_SQRT_STEP).l,d3 ; Used to determine the step size of KV_Sqrt_Torque Table ; N_Meter asl.l #4,d3 cmpi.l #$FFFF,d3 bhi.s loc_4D2A0 cmpi.w #$2020,d3 bls.s loc_4D2A4 loc_4D2A0: ; CODE XREF: sub_4D13A+15Ej move.w #$2020,d3 loc_4D2A4: ; CODE XREF: sub_4D13A+164j cmp.w d3,d4 bls.s loc_4D2AA move.w d3,d4 loc_4D2AA: ; CODE XREF: sub_4D13A+16Cj andi.l #$FFFF,d4 asl.l #8,d4 divu.w (X_RATIO_KE_SQRT_STEP).l,d4 ; Used to determine the step size of KV_Sqrt_Torque Table ; N_Meter tblu.w (X_RATIO_KV_SQRT_TORQUE).l,d4 ; Square root of torque (in Newton-meters) used in the calculation for K_Factor_wo_Compensation. ; SQRT_N_Meter tst.w d4 bne.s loc_4D2CA loc_4D2C4: ; CODE XREF: sub_4D13A+19Cj ; sub_4D13A+1A4j move.w #$FFFF,d3 bra.s loc_4D2E0 ; --------------------------------------------------------------------------- loc_4D2CA: ; CODE XREF: sub_4D13A+188j clr.l d3 move.w (word_FFFF95A8).w,d3 asl.l #8,d3 asl.l #8,d3 divu.w d4,d3 bvs.s loc_4D2C4 movea.w #$A00,a4 add.w a4,d3 bcs.s loc_4D2C4 loc_4D2E0: ; CODE XREF: sub_4D13A+18Ej cmp.w (X_RATIO_KE_KFACT_E_TORQUE_HI).l,d6 ; Calibration above which K Factor Torque Compensation is set to zero. ; Ftlb bls.s loc_4D2EE move.w #$A00,d0 bra.s loc_4D358 ; --------------------------------------------------------------------------- loc_4D2EE: ; CODE XREF: sub_4D13A+1ACj cmp.w (X_RATIO_KE_KFACT_E_TORQUE_LO).l,d6 ; Calibration below which K Factor Torque Compensation is set to KE_KFact_Offset_At_Lo_Torq. ; Ftlb bhi.s loc_4D2FE move.w (X_RATIO_KE_KFACT_OFFSET_AT_LO_TORQ).l,d0 ; K Factor Torque Compensation when MRatio_Engine_Torque is less than a calibration. ; RPM/SQRTNM bra.s loc_4D358 ; --------------------------------------------------------------------------- loc_4D2FE: ; CODE XREF: sub_4D13A+1BAj move.w (X_RATIO_KE_KFACT_E_TORQUE_HI).l,d4 ; Calibration above which K Factor Torque Compensation is set to zero. ; Ftlb sub.w (X_RATIO_KE_KFACT_E_TORQUE_LO).l,d4 ; Calibration below which K Factor Torque Compensation is set to KE_KFact_Offset_At_Lo_Torq. ; Ftlb bcc.s loc_4D30E clr.w d4 loc_4D30E: ; CODE XREF: sub_4D13A+1D0j move.w (X_RATIO_KE_KFACT_E_TORQUE_HI).l,d5 ; Calibration above which K Factor Torque Compensation is set to zero. ; Ftlb sub.w (word_FFFFAD48).w,d5 bcc.s loc_4D31C clr.w d5 loc_4D31C: ; CODE XREF: sub_4D13A+1DEj tst.w d4 bne.s loc_4D326 loc_4D320: ; CODE XREF: sub_4D13A+1F8j move.w #$FFFF,d0 bra.s loc_4D358 ; --------------------------------------------------------------------------- loc_4D326: ; CODE XREF: sub_4D13A+1E4j andi.l #$FFFF,d5 asl.l #8,d5 asl.l #8,d5 divu.w d4,d5 bvs.s loc_4D320 andi.l #$FFFF,d5 clr.l d0 move.w (X_RATIO_KE_KFACT_OFFSET_AT_LO_TORQ).l,d0 ; K Factor Torque Compensation when MRatio_Engine_Torque is less than a calibration. ; RPM/SQRTNM movea.w #$A00,a4 sub.l a4,d0 muls.l d5,d1:d0 move.l #unk_10000,d6 divs.l d6,d1:d0 add.l a4,d0 loc_4D358: ; CODE XREF: sub_4D13A+1B2j ; sub_4D13A+1C2j ... move.w (X_RATIO_KE_TEMP_COMP_START).l,d4 ; Transmission Temperature above which K Factor Temperature compensation returns to zero. ; Degrees_C cmp.w (word_FFFF9590).w,d4 bge.s loc_4D36A move.w #$A00,d4 bra.s loc_4D3C8 ; --------------------------------------------------------------------------- loc_4D36A: ; CODE XREF: sub_4D13A+228j addi.w #$36,d4 ; '6' move.w (X_RATIO_KE_TEMP_COMP_START).l,d1 ; Transmission Temperature above which K Factor Temperature compensation returns to zero. ; Degrees_C sub.w (word_FFFF9590).w,d1 cmpi.w #$FFCA,d1 bge.s loc_4D380 moveq #$FFFFFFCA,d1 loc_4D380: ; CODE XREF: sub_4D13A+242j tst.w d4 bne.s loc_4D38A loc_4D384: ; CODE XREF: sub_4D13A+25Ej ; sub_4D13A+286j move.w #$FFFF,d4 bra.s loc_4D3C8 ; --------------------------------------------------------------------------- loc_4D38A: ; CODE XREF: sub_4D13A+248j move.l d4,d6 ext.l d6 ext.l d1 asl.l #8,d1 asl.l #8,d1 divs.l d6,d1 bvs.s loc_4D384 clr.l d6 move.w (X_RATIO_KE_TEMP_COMP_AT_MINUS_40).l,d6 ; K Factor Temperature Compensation at minus 40 degrees. ; RPM/SQRTNM movea.w #$A00,a4 sub.l a4,d6 muls.l d1,d4:d6 divs.l #unk_10000,d4:d6 add.l a4,d6 tst.l d6 blt.s loc_4D3C6 cmpi.l #$FFFF,d6 bhi.s loc_4D384 move.w d6,d4 bra.s loc_4D3C8 ; --------------------------------------------------------------------------- loc_4D3C6: ; CODE XREF: sub_4D13A+27Ej clr.w d4 loc_4D3C8: ; CODE XREF: sub_4D13A+22Ej ; sub_4D13A+24Ej ... move.w (word_FFFF8D5A).w,d1 ext.l d1 andi.l #$FFFF,d4 add.l d1,d4 tst.l d4 blt.s loc_4D3E8 cmpi.l #$FFFF,d4 bls.s loc_4D3EA move.w #$FFFF,d4 bra.s loc_4D3EA ; --------------------------------------------------------------------------- loc_4D3E8: ; CODE XREF: sub_4D13A+29Ej clr.w d4 loc_4D3EA: ; CODE XREF: sub_4D13A+2A6j ; sub_4D13A+2ACj clr.l d6 move.w d4,d6 andi.l #$FFFF,d0 add.l d6,d0 movea.w #$A00,a4 sub.l a4,d0 bcs.s loc_4D40C cmpi.l #$FFFF,d0 bls.s loc_4D40E move.w #$FFFF,d0 bra.s loc_4D40E ; --------------------------------------------------------------------------- loc_4D40C: ; CODE XREF: sub_4D13A+2C2j clr.w d0 loc_4D40E: ; CODE XREF: sub_4D13A+2CAj ; sub_4D13A+2D0j andi.l #$FFFF,d0 andi.l #$FFFF,d3 add.l d0,d3 sub.l a4,d3 bcs.s loc_4D42E cmpi.l #$FFFF,d3 bls.s loc_4D430 move.w #$FFFF,d3 bra.s loc_4D430 ; --------------------------------------------------------------------------- loc_4D42E: ; CODE XREF: sub_4D13A+2E4j clr.w d3 loc_4D430: ; CODE XREF: sub_4D13A+2ECj ; sub_4D13A+2F2j move.w d3,(word_FFFFAD52).w move.w #$A00,d6 cmp.w d3,d6 bls.s loc_4D440 move.w a4,(word_FFFFAD52).w loc_4D440: ; CODE XREF: sub_4D13A+300j clr.l d1 move.w (X_RATIO_KE_ADAPT_RANGE).l,d1 clr.l d0 move.w (word_FFFFAD52).w,d0 sub.l d1,d0 add.l a4,d0 tst.l d0 blt.s loc_4D45E cmpi.l #$FFFF,d0 bls.s loc_4D460 loc_4D45E: ; CODE XREF: sub_4D13A+31Aj clr.w d0 loc_4D460: ; CODE XREF: sub_4D13A+322j clr.l d3 move.w (X_RATIO_KE_ADAPT_RANGE).l,d3 clr.l d1 move.w (word_FFFFAD52).w,d1 add.l d3,d1 sub.l a4,d1 bcs.s loc_4D47C cmpi.l #$FFFF,d1 bls.s loc_4D480 loc_4D47C: ; CODE XREF: sub_4D13A+338j move.w #$FFFF,d1 loc_4D480: ; CODE XREF: sub_4D13A+340j movea.l #X_RATIO_KV_TRQ_CNV_SRATIO,a1 ; This calibration is used in the calculation of Speed Ratio. ; Factor_0_To_2 movea.l a1,a0 jsr sub_4D774 move.b d0,d2 move.l d1,d0 movea.l a1,a0 jsr sub_4D774 move.b (byte_FFFF95DC).w,d3 cmp.b (X_RATIO_KE_ADAPT_AT_OR_ABOVE_GEAR).l,d3 ; Gear below which adapt of K_Factor is disabled. ; Gear bcc.s loc_4D4B0 move.b #3,(byte_FFFFAD54).w bra.w loc_4D5F8 ; --------------------------------------------------------------------------- loc_4D4B0: ; CODE XREF: sub_4D13A+36Aj move.w (word_FFFFAD48).w,d3 cmp.w (X_RATIO_KE_ADAPT_HI_TORQUE).l,d3 ; MRatio_Engine_Torque above which adapt of the K_Factor is disabled. ; Ftlb bhi.s loc_4D4C4 cmp.w (X_RATIO_KE_ADAPT_LO_TORQUE).l,d3 ; MRatio_Engine_Torque below which adapt of the K_Factor is disabled. ; Ftlb bcc.s loc_4D4CE loc_4D4C4: ; CODE XREF: sub_4D13A+380j move.b #4,(byte_FFFFAD54).w bra.w loc_4D5F8 ; --------------------------------------------------------------------------- loc_4D4CE: ; CODE XREF: sub_4D13A+388j tst.w (word_FFFFAD4C).w bls.s loc_4D4DC move.b d7,(byte_FFFFAD54).w bra.w loc_4D5F8 ; --------------------------------------------------------------------------- loc_4D4DC: ; CODE XREF: sub_4D13A+398j btst #4,(byte_FFFFA8FE).w bne.s loc_4D4EC btst #3,(byte_FFFFA8FE).w beq.s loc_4D4F6 loc_4D4EC: ; CODE XREF: sub_4D13A+3A8j move.b #6,(byte_FFFFAD54).w bra.w loc_4D5F8 ; --------------------------------------------------------------------------- loc_4D4F6: ; CODE XREF: sub_4D13A+3B0j move.w (word_FFFFAD58).w,d3 cmp.w (word_FFFFAD5A).w,d3 ble.s loc_4D50A move.b #7,(byte_FFFFAD54).w bra.w loc_4D5F8 ; --------------------------------------------------------------------------- loc_4D50A: ; CODE XREF: sub_4D13A+3C4j move.b (byte_FFFF95DF).w,d3 lsr.b #1,d3 cmp.b d2,d3 bcs.s loc_4D518 cmp.b d0,d3 bls.s loc_4D522 loc_4D518: ; CODE XREF: sub_4D13A+3D8j move.b #8,(byte_FFFFAD54).w bra.w loc_4D5F8 ; --------------------------------------------------------------------------- loc_4D522: ; CODE XREF: sub_4D13A+3DCj move.b (X_RATIO_KE_ADAPT_MIN_S_RATIO).l,d4 ; Speed Ratio below which adapt of the K_Factor is disabled. ; Factor_0_To_2 cmp.b d4,d3 bcc.s loc_4D536 move.b #9,(byte_FFFFAD54).w bra.w loc_4D5F8 ; --------------------------------------------------------------------------- loc_4D536: ; CODE XREF: sub_4D13A+3F0j cmp.b (byte_FFFFAD5E).w,d4 bls.s loc_4D546 move.b #$A,(byte_FFFFAD54).w bra.w loc_4D5F8 ; --------------------------------------------------------------------------- loc_4D546: ; CODE XREF: sub_4D13A+400j move.w (word_FFFF9590).w,d3 cmp.w (X_RATIO_KE_ADAPT_MIN_TRANS_TEMP).l,d3 ; Transmission Temperature below which adapt of the K_Factor is disabled. ; Degrees_C bge.s loc_4D55C move.b #$B,(byte_FFFFAD54).w bra.w loc_4D5F8 ; --------------------------------------------------------------------------- loc_4D55C: ; CODE XREF: sub_4D13A+416j tst.w (word_FFFFA2F4).w beq.s loc_4D56C move.b #$C,(byte_FFFFAD54).w bra.w loc_4D5F8 ; --------------------------------------------------------------------------- loc_4D56C: ; CODE XREF: sub_4D13A+426j move.w (word_FFFFAD44).w,d4 clr.w d3 move.b (X_RATIO_KE_ADAPT_RATIO_LOW_MULT).l,d3 ; The Adapt_Time_Counter is decremented when modeled ratio is less than Ratio multiplied by this calibration. ; Factor_0_T0_2 mulu.w (word_FFFF95D4).w,d3 lsr.l #7,d3 cmpi.w #$7FFF,d3 bls.s loc_4D588 move.w #$7FFF,d3 loc_4D588: ; CODE XREF: sub_4D13A+448j cmp.w d3,d4 bcc.s loc_4D5BE move.b #1,(byte_FFFFAD54).w movea.l (dword_FFFFB5DE).w,a2 clr.l d0 move.w $A(a2),d0 move.w (word_FFFFAD56).w,d3 ext.l d3 sub.l d0,d3 loc_4D5A4: ; CODE XREF: sub_4D13A+4B8j cmpi.l #$FFFF8000,d3 blt.s loc_4D5B4 cmpi.l #$7FFF,d3 ble.s loc_4D5B8 loc_4D5B4: ; CODE XREF: sub_4D13A+470j move.w #$7FFF,d3 loc_4D5B8: ; CODE XREF: sub_4D13A+478j move.w d3,(word_FFFFAD56).w bra.s loc_4D5F8 ; --------------------------------------------------------------------------- loc_4D5BE: ; CODE XREF: sub_4D13A+450j clr.w d3 move.b (X_RATIO_KE_ADAPT_RATIO_HIGH_MULT).l,d3 ; The Adapt_Time_Counter is incremented when modeled ratio is greater than Ratio multiplied by this calibration. ; Factor_0_To_2 mulu.w (word_FFFF95D4).w,d3 lsr.l #7,d3 cmpi.w #$7FFF,d3 bls.s loc_4D5D6 move.w #$7FFF,d3 loc_4D5D6: ; CODE XREF: sub_4D13A+496j cmp.w d3,d4 bls.s loc_4D5F4 move.b #2,(byte_FFFFAD54).w movea.l (dword_FFFFB5DE).w,a2 clr.l d0 move.w $A(a2),d0 move.w (word_FFFFAD56).w,d3 ext.l d3 add.l d0,d3 bra.s loc_4D5A4 ; --------------------------------------------------------------------------- loc_4D5F4: ; CODE XREF: sub_4D13A+49Ej clr.b (byte_FFFFAD54).w loc_4D5F8: ; CODE XREF: sub_4D13A+372j ; sub_4D13A+390j ... clr.l d3 move.w (X_RATIO_KE_ADAPT_TIME_COUNTER).l,d3 move.w (word_FFFFAD56).w,d4 ext.l d4 cmp.l d3,d4 ble.s loc_4D61E move.w (word_FFFF8D5A).w,d3 subi.w #$80,d3 ; '?' cmpi.w #$F600,d3 bge.s loc_4D634 move.w #$F600,d3 bra.s loc_4D634 ; --------------------------------------------------------------------------- loc_4D61E: ; CODE XREF: sub_4D13A+4CEj neg.l d3 cmp.l d4,d3 ble.s loc_4D63C move.w (word_FFFF8D5A).w,d3 addi.w #$80,d3 ; '?' cmpi.w #$A00,d3 ble.s loc_4D634 move.l d6,d3 loc_4D634: ; CODE XREF: sub_4D13A+4DCj ; sub_4D13A+4E2j ... move.w d3,(word_FFFF8D5A).w clr.w (word_FFFFAD56).w loc_4D63C: ; CODE XREF: sub_4D13A+4E8j move.w (word_FFFFA2F4).w,d3 beq.s loc_4D646 move.w d3,(word_FFFF8D5A).w loc_4D646: ; CODE XREF: sub_4D13A+506j move.w (X_RATIO_KE_ADAPT_LIMIT).l,d3 ; The Adapt_K_Factor is limited to this value. ; RPM/SQRTNM move.w (word_FFFF8D5A).w,d0 cmp.w d3,d0 ble.s loc_4D65A move.w d3,(word_FFFF8D5A).w bra.s loc_4D666 ; --------------------------------------------------------------------------- loc_4D65A: ; CODE XREF: sub_4D13A+518j move.l d3,d4 neg.w d4 cmp.w d4,d0 bge.s loc_4D666 move.w d4,(word_FFFF8D5A).w loc_4D666: ; CODE XREF: sub_4D13A+51Ej ; sub_4D13A+526j move.w (word_FFFFAD52).w,d0 cmp.w (X_RATIO_KE_COUPLING_KFACT_OR_ABV).l,d0 bls.s loc_4D67A move.b #$80,(byte_FFFFAD5E).w bra.s loc_4D686 ; --------------------------------------------------------------------------- loc_4D67A: ; CODE XREF: sub_4D13A+536j movea.l a1,a0 jsr sub_4D774 move.b d0,(byte_FFFFAD5E).w loc_4D686: ; CODE XREF: sub_4D13A+53Ej move.w (word_FFFF95A8).w,d3 move.b #$80,d4 sub.b (byte_FFFFAD5E).w,d4 andi.w #$FF,d4 mulu.w d3,d4 lsr.l #7,d4 move.w d4,(word_FFFFAD5A).w tst.w d3 bne.s loc_4D6A8 clr.w (word_FFFFAD58).w bra.s loc_4D6C8 ; --------------------------------------------------------------------------- loc_4D6A8: ; CODE XREF: sub_4D13A+566j move.w (X_RATIO_KE_SNGLE_CAL_COUPLING_APPROX).l,d3 mulu.w (word_FFFFAD50).w,d3 lsr.l #3,d3 asl.l #2,d3 divu.w (word_FFFF95A8).w,d3 bvs.s loc_4D6C0 tst.w d3 bge.s loc_4D6C4 loc_4D6C0: ; CODE XREF: sub_4D13A+580j move.w #$7FFF,d3 loc_4D6C4: ; CODE XREF: sub_4D13A+584j move.w d3,(word_FFFFAD58).w loc_4D6C8: ; CODE XREF: sub_4D13A+56Cj move.w (word_FFFFAD58).w,d1 bge.s loc_4D6D0 neg.w d1 loc_4D6D0: ; CODE XREF: sub_4D13A+592j tst.w d4 bge.s loc_4D6D6 neg.w d4 loc_4D6D6: ; CODE XREF: sub_4D13A+598j cmp.w d1,d4 bls.s loc_4D6E0 move.w (word_FFFFAD5A).w,d1 bra.s loc_4D6E4 ; --------------------------------------------------------------------------- loc_4D6E0: ; CODE XREF: sub_4D13A+59Ej move.w (word_FFFFAD58).w,d1 loc_4D6E4: ; CODE XREF: sub_4D13A+5A4j cmpi.w #$7FFF,d1 bls.s loc_4D6EC clr.w d1 loc_4D6EC: ; CODE XREF: sub_4D13A+5AEj move.w (X_RATIO_KE_MRATIO_SLIP_FILTER_COEFF).l,d0 ; Filter coefficient for filtering calculated TCC slip. ; Coeff move.w (word_FFFFAD5C).w,d2 jsr sub_26608 move.w d0,(word_FFFFAD5C).w move.w (word_FFFF95A2).w,d4 bne.s loc_4D70E move.w #$7FFF,(word_FFFFAD44).w bra.s loc_4D72A ; --------------------------------------------------------------------------- loc_4D70E: ; CODE XREF: sub_4D13A+5CAj move.w (word_FFFF95A8).w,d3 sub.w (word_FFFFAD5C).w,d3 bcc.s loc_4D71A clr.w d3 loc_4D71A: ; CODE XREF: sub_4D13A+5DCj andi.l #$FFFF,d3 asl.l #8,d3 asl.l #4,d3 divu.w d4,d3 move.w d3,(word_FFFFAD44).w loc_4D72A: ; CODE XREF: sub_4D13A+5D2j move.w (word_FFFF95A8).w,d4 bne.s loc_4D736 clr.b (byte_FFFFAD46).w bra.s loc_4D74E ; --------------------------------------------------------------------------- loc_4D736: ; CODE XREF: sub_4D13A+5F4j move.l d4,d3 sub.w (word_FFFFAD5C).w,d3 bcc.s loc_4D740 clr.w d3 loc_4D740: ; CODE XREF: sub_4D13A+602j andi.l #$FFFF,d3 asl.l #7,d3 divu.w d4,d3 move.b d3,(byte_FFFFAD46).w loc_4D74E: ; CODE XREF: sub_4D13A+5FAj move.w (word_FFFFAD5C).w,d3 move.w (word_FFFF95A8).w,d5 sub.w (word_FFFF95AA).w,d5 sub.w d5,d3 bvc.s loc_4D76A bpl.s loc_4D766 move.w #$7FFF,d3 bra.s loc_4D76A ; --------------------------------------------------------------------------- loc_4D766: ; CODE XREF: sub_4D13A+624j move.w #$8000,d3 loc_4D76A: ; CODE XREF: sub_4D13A+622j ; sub_4D13A+62Aj move.w d3,(word_FFFFAD60).w movem.l (sp)+,d0-d2/d6-a1/a4 rts ; End of function sub_4D13A ; =============== S U B R O U T I N E ======================================= sub_4D774: ; CODE XREF: sub_4D13A+34Ep ; sub_4D13A+35Ap ... move.l d1,-(sp) cmp.w (X_RATIO_KE_COUPLING_KFACT_OR_ABV).l,d0 bcs.s loc_4D786 move.w #$1000,d0 bra.w loc_4D866 ; --------------------------------------------------------------------------- loc_4D786: ; CODE XREF: sub_4D774+8j move.w (X_RATIO_KE_KFACT_STEP).l,d4 ; Used to determine the step size of KV_Trq_Cnv_SRatio Table. ; RPM/SQRTNM movea.w #$960,a2 sub.w a2,d4 bcs.s loc_4D7AA andi.l #$FFFF,d4 asl.l #4,d4 cmpi.l #$FFFF,d4 bls.s loc_4D7AC move.w #$FFFF,d4 bra.s loc_4D7AC ; --------------------------------------------------------------------------- loc_4D7AA: ; CODE XREF: sub_4D774+1Ej clr.w d4 loc_4D7AC: ; CODE XREF: sub_4D774+2Ej ; sub_4D774+34j clr.l d5 move.w d4,d5 clr.l d4 move.w (X_RATIO_KE_COUPLING_KFACT_OR_ABV).l,d4 sub.l d5,d4 movea.w #$A00,a3 add.l a3,d4 tst.l d4 blt.s loc_4D7CC cmpi.l #$FFFF,d4 bls.s loc_4D7CE loc_4D7CC: ; CODE XREF: sub_4D774+4Ej clr.w d4 loc_4D7CE: ; CODE XREF: sub_4D774+56j cmp.w d4,d0 bls.w loc_4D864 clr.l d1 move.w (X_RATIO_KE_KFACT_STEP).l,d1 ; Used to determine the step size of KV_Trq_Cnv_SRatio Table. ; RPM/SQRTNM sub.l a3,d1 move.w (X_RATIO_KE_KFACT_STEP).l,d3 ; Used to determine the step size of KV_Trq_Cnv_SRatio Table. ; RPM/SQRTNM sub.w a2,d3 bcs.s loc_4D7FE andi.l #$FFFF,d3 asl.l #4,d3 cmpi.l #$FFFF,d3 bls.s loc_4D800 move.w #$FFFF,d3 bra.s loc_4D800 ; --------------------------------------------------------------------------- loc_4D7FE: ; CODE XREF: sub_4D774+72j clr.w d3 loc_4D800: ; CODE XREF: sub_4D774+82j ; sub_4D774+88j andi.l #$FFFF,d3 clr.l d4 move.w (X_RATIO_KE_COUPLING_KFACT_OR_ABV).l,d4 sub.l d3,d4 add.l a3,d4 tst.l d4 blt.s loc_4D822 cmpi.l #$FFFF,d4 bhi.s loc_4D822 move.w d4,d3 bra.s loc_4D824 ; --------------------------------------------------------------------------- loc_4D822: ; CODE XREF: sub_4D774+A0j ; sub_4D774+A8j clr.w d3 loc_4D824: ; CODE XREF: sub_4D774+ACj andi.l #$FFFF,d3 andi.l #$FFFF,d0 sub.l d3,d0 add.l a3,d0 tst.l d0 blt.s loc_4D840 cmpi.l #$FFFF,d0 bls.s loc_4D842 loc_4D840: ; CODE XREF: sub_4D774+C2j clr.w d0 loc_4D842: ; CODE XREF: sub_4D774+CAj andi.l #$FFFF,d0 sub.l a3,d0 asl.l #8,d0 divs.l d1,d0 bvs.s loc_4D85E tst.l d0 blt.s loc_4D864 cmpi.l #$FFFF,d0 bls.s loc_4D866 loc_4D85E: ; CODE XREF: sub_4D774+DCj move.w #$FFFF,d0 bra.s loc_4D866 ; --------------------------------------------------------------------------- loc_4D864: ; CODE XREF: sub_4D774+5Cj ; sub_4D774+E0j clr.w d0 loc_4D866: ; CODE XREF: sub_4D774+Ej ; sub_4D774+E8j ... tblu.b (a0),d0 move.l (sp)+,d1 rts ; End of function sub_4D774 ; =============== S U B R O U T I N E ======================================= sub_4D86E: ; CODE XREF: sub_4DD5C+7F6p ; sub_4DD5C+804p move.b (byte_FFFF95DC).w,d3 cmp.b (byte_FFFF93E6).w,d3 bcc.s loc_4D8A0 bset #5,(byte_FFFF9BBA).w move.b (byte_FFFF95DC).w,d3 cmpi.b #3,d3 bcc.s loc_4D88A addq.b #1,d3 loc_4D88A: ; CODE XREF: sub_4D86E+18j move.b d3,(byte_FFFF9C09).w clr.w (word_FFFF9C0E).w bset #2,(unk_FFFFB4C3).w bset #7,(byte_FFFF9BBC).w bra.s locret_4D8A6 ; --------------------------------------------------------------------------- loc_4D8A0: ; CODE XREF: sub_4D86E+8j bclr #7,(byte_FFFF9BBC).w locret_4D8A6: ; CODE XREF: sub_4D86E+30j rts ; End of function sub_4D86E ; =============== S U B R O U T I N E ======================================= sub_4D8A8: ; CODE XREF: sub_4DD5C:loc_4E57Ap ; sub_4DD5C:loc_4E5BEp movem.l d0-d1,-(sp) btst #4,(byte_FFFFA8FE).w bne.s loc_4D8CA btst #7,(byte_FFFFA8FE).w bne.s loc_4D8CA btst #7,(byte_FFFF9BBB).w bne.s loc_4D8CA bclr #6,(byte_FFFF9BBB).w loc_4D8CA: ; CODE XREF: sub_4D8A8+Aj ; sub_4D8A8+12j ... tst.b (byte_FFFF93E9).w beq.s loc_4D90C move.w (word_FFFF9BCC).w,d1 beq.s loc_4D8E8 jsr sub_58E3A cmp.w d1,d0 bcs.s loc_4D8E8 btst #0,(byte_FFFFA8FE).w bne.s loc_4D8F0 loc_4D8E8: ; CODE XREF: sub_4D8A8+2Cj ; sub_4D8A8+36j bclr #5,(byte_FFFF9BBB).w bra.s loc_4D8F6 ; --------------------------------------------------------------------------- loc_4D8F0: ; CODE XREF: sub_4D8A8+3Ej bset #5,(byte_FFFF9BBB).w loc_4D8F6: ; CODE XREF: sub_4D8A8+46j btst #5,(byte_FFFF9BBB).w bne.s loc_4D90C bset #7,(byte_FFFF9BBB).w bset #6,(byte_FFFF9BBB).w bra.s loc_4D912 ; --------------------------------------------------------------------------- loc_4D90C: ; CODE XREF: sub_4D8A8+26j ; sub_4D8A8+54j bclr #7,(byte_FFFF9BBB).w loc_4D912: ; CODE XREF: sub_4D8A8+62j movem.l (sp)+,d0-d1 rts ; End of function sub_4D8A8 ; =============== S U B R O U T I N E ======================================= sub_4D918: ; CODE XREF: sub_4DD5C+7CEp ; sub_4DD5C+824p ... bclr #5,(byte_FFFF9BBC).w bclr #1,(byte_FFFF9BBB).w btst #7,(byte_FFFF9BBC).w bne.s loc_4D974 btst #7,(byte_FFFF9BBB).w bne.s loc_4D974 bclr #5,(byte_FFFF9BBA).w move.w (word_FFFF95DA).w,d3 cmp.w (word_FFFF9C0A).w,d3 bcs.s loc_4D94C cmpi.b #3,(byte_FFFF95DC).w bcs.s loc_4D95E loc_4D94C: ; CODE XREF: sub_4D918+2Aj btst #7,(byte_FFFF95E5).w beq.s loc_4D966 move.b (byte_FFFF9BB8).w,d3 cmp.b (byte_FFFF95DC).w,d3 bcs.s loc_4D966 loc_4D95E: ; CODE XREF: sub_4D918+32j bset #0,(byte_FFFF9BBB).w bra.s loc_4D96C ; --------------------------------------------------------------------------- loc_4D966: ; CODE XREF: sub_4D918+3Aj ; sub_4D918+44j bclr #5,(byte_FFFF9BBC).w loc_4D96C: ; CODE XREF: sub_4D918+4Cj bclr #2,(unk_FFFFB4C3).w bra.s locret_4D97A ; --------------------------------------------------------------------------- loc_4D974: ; CODE XREF: sub_4D918+12j ; sub_4D918+1Aj bclr #5,(byte_FFFF9BBC).w locret_4D97A: ; CODE XREF: sub_4D918+5Aj rts ; End of function sub_4D918 ; =============== S U B R O U T I N E ======================================= sub_4D97C: ; CODE XREF: sub_4DD5C+7D4p ; sub_4DD5C:loc_4E586p ... btst #0,(byte_FFFF9BBB).w beq.w locret_4DB04 tst.b (X_SHIFT_KE_ETC_STAB_ENABLE).l ; Boolean calibration to show if the ETC shift stabilization is enabled or disabled. ; T/F bne.s loc_4D998 btst #1,(byte_FFFF9BBB).w bne.w loc_4DAC6 loc_4D998: ; CODE XREF: sub_4D97C+10j move.w (word_FFFF9BE6).w,d3 cmp.w (word_FFFF9BC0).w,d3 bcs.s loc_4D9AA tst.b (byte_FFFFA2F8).w beq.w loc_4DA6C loc_4D9AA: ; CODE XREF: sub_4D97C+24j clr.w d3 move.b (byte_FFFF95F1).w,d3 tst.b T_SHIFT_TABLES_KV_SHIFT_STAB_SHIFT_PATTRN_ENBLE(d3.w) ; These flags will enable or disable ETC shift stabilization for the indicated shift pattern. ; T/F beq.w loc_4DA6C tst.b (XTCC_CONTROL_KE_SHIFT_STABILIZATION_ENABLE).l ; Boolean calibration to show if the shift stabilization is enabled or disabled. ; BOOLEAN beq.w loc_4DA6C btst #3,(byte_FFFFA8FE).w bne.w loc_4DA6C move.w (word_FFFF9BCC).w,d3 beq.s loc_4D9E6 btst #0,(byte_FFFFA8FE).w beq.s loc_4D9E6 cmp.w (word_FFFF9BF6).w,d3 bls.w loc_4DA6C loc_4D9E6: ; CODE XREF: sub_4D97C+58j ; sub_4D97C+60j tst.b (byte_FFFF9BC6).w bne.s loc_4DA10 bset #5,(byte_FFFF9BBC).w bclr #7,(byte_FFFF9BBD).w bset #6,(byte_FFFF9BBD).w btst #5,(byte_FFFF9BBD).w bne.w loc_4DAFE clr.w (word_FFFF9BFA).w bra.w loc_4DAFE ; --------------------------------------------------------------------------- loc_4DA10: ; CODE XREF: sub_4D97C+6Ej btst #1,(byte_FFFF9BBB).w beq.s loc_4DA38 move.w (word_FFFF9BF6).w,d3 cmp.w (word_FFFF9BCC).w,d3 bcs.s loc_4DA56 bset #5,(byte_FFFF9BBA).w btst #6,(byte_FFFF9BBD).w beq.s loc_4DA46 loc_4DA30: ; CODE XREF: sub_4D97C+C8j bset #5,(byte_FFFF9BBD).w bra.s loc_4DA56 ; --------------------------------------------------------------------------- loc_4DA38: ; CODE XREF: sub_4D97C+9Aj bset #5,(byte_FFFF9BBA).w btst #6,(byte_FFFF9BBD).w bne.s loc_4DA30 loc_4DA46: ; CODE XREF: sub_4D97C+B2j move.b (byte_FFFF95DC).w,d3 cmpi.b #3,d3 bcc.s loc_4DA52 addq.b #1,d3 loc_4DA52: ; CODE XREF: sub_4D97C+D2j move.b d3,(byte_FFFF9C09).w loc_4DA56: ; CODE XREF: sub_4D97C+A4j ; sub_4D97C+BAj move.w (word_FFFF9C0A).w,(word_FFFF9C0E).w bclr #5,(byte_FFFF9BBC).w bset #7,(byte_FFFF9BBD).w bra.w loc_4DAFE ; --------------------------------------------------------------------------- loc_4DA6C: ; CODE XREF: sub_4D97C+2Aj ; sub_4D97C+3Cj ... btst #1,(byte_FFFF9BBB).w beq.s loc_4DA94 move.w (word_FFFF9BF6).w,d3 cmp.w (word_FFFF9BCC).w,d3 bcs.s loc_4DAB2 bset #5,(byte_FFFF9BBA).w btst #6,(byte_FFFF9BBD).w beq.s loc_4DAA2 loc_4DA8C: ; CODE XREF: sub_4D97C+124j bset #5,(byte_FFFF9BBD).w bra.s loc_4DAB2 ; --------------------------------------------------------------------------- loc_4DA94: ; CODE XREF: sub_4D97C+F6j bset #5,(byte_FFFF9BBA).w btst #6,(byte_FFFF9BBD).w bne.s loc_4DA8C loc_4DAA2: ; CODE XREF: sub_4D97C+10Ej move.b (byte_FFFF95DC).w,d3 cmpi.b #3,d3 bcc.s loc_4DAAE addq.b #1,d3 loc_4DAAE: ; CODE XREF: sub_4D97C+12Ej move.b d3,(byte_FFFF9C09).w loc_4DAB2: ; CODE XREF: sub_4D97C+100j ; sub_4D97C+116j move.w (word_FFFF9C0A).w,(word_FFFF9C0E).w bclr #5,(byte_FFFF9BBC).w bclr #7,(byte_FFFF9BBD).w bra.s loc_4DAFE ; --------------------------------------------------------------------------- loc_4DAC6: ; CODE XREF: sub_4D97C+18j bclr #6,(byte_FFFF9BBD).w bclr #5,(byte_FFFF9BBD).w bclr #5,(byte_FFFF9BBC).w move.w (word_FFFF9BF6).w,d3 cmp.w (word_FFFF9BCC).w,d3 bcs.s loc_4DAFE bset #5,(byte_FFFF9BBA).w move.b (byte_FFFF95DC).w,d3 cmpi.b #3,d3 bcc.s loc_4DAF4 addq.b #1,d3 loc_4DAF4: ; CODE XREF: sub_4D97C+174j move.b d3,(byte_FFFF9C09).w move.w (word_FFFF9C0A).w,(word_FFFF9C0E).w loc_4DAFE: ; CODE XREF: sub_4D97C+88j ; sub_4D97C+90j ... bclr #0,(byte_FFFF9BBB).w locret_4DB04: ; CODE XREF: sub_4D97C+6j rts ; End of function sub_4D97C ; =============== S U B R O U T I N E ======================================= sub_4DB06: ; CODE XREF: sub_4DD5C+7DAp ; sub_4DD5C+830p ... btst #4,(byte_FFFF9BBA).w beq.s loc_4DB20 clr.w (word_FFFF9BFA).w loc_4DB12: ; CODE XREF: sub_4DB06+3Ej bclr #6,(byte_FFFF9BBD).w bclr #5,(byte_FFFF9BBD).w bra.s locret_4DB5A ; --------------------------------------------------------------------------- loc_4DB20: ; CODE XREF: sub_4DB06+6j btst #5,(byte_FFFF9BBD).w beq.s locret_4DB5A move.w (word_FFFF9BFA).w,d4 bne.s loc_4DB3E move.b (byte_FFFF95DC).w,d3 cmpi.b #3,d3 bcc.s loc_4DB3A addq.b #1,d3 loc_4DB3A: ; CODE XREF: sub_4DB06+30j move.b d3,(byte_FFFF9C09).w loc_4DB3E: ; CODE XREF: sub_4DB06+26j cmp.w (X_SHIFT_KE_SHIFT_STAB_UPSHF_DELAY_TIME).l,d4 bcc.s loc_4DB12 movea.l (dword_FFFFB5DE).w,a2 move.l d4,d3 add.w $A(a2),d3 bcc.s loc_4DB56 move.w #$FFFF,d3 loc_4DB56: ; CODE XREF: sub_4DB06+4Aj move.w d3,(word_FFFF9BFA).w locret_4DB5A: ; CODE XREF: sub_4DB06+18j ; sub_4DB06+20j rts ; End of function sub_4DB06 ; =============== S U B R O U T I N E ======================================= sub_4DB5C: ; CODE XREF: sub_4DD5C+85Ap movem.l d0-d2,-(sp) bclr #6,(byte_FFFF9BBB).w bset #1,(byte_FFFF9BBB).w btst #7,(byte_FFFF9BBC).w bne.w loc_4DBFE bclr #5,(byte_FFFF9BBA).w move.w (word_FFFF9C0A).w,d1 cmp.w (word_FFFF95DA).w,d1 bcc.s loc_4DBF2 btst #1,(byte_FFFFA8FE).w beq.s loc_4DBF2 move.b (byte_FFFF95DC).w,d0 cmpi.b #3,d0 bcc.s loc_4DB9A addq.b #1,d0 loc_4DB9A: ; CODE XREF: sub_4DB5C+3Aj jsr sub_58F32 tst.b d0 beq.s loc_4DBF2 btst #1,(byte_FFFF9BBD).w beq.s loc_4DBC4 clr.w d3 move.b (byte_FFFF95E9).w,d3 tst.b X_SHIFT_KV_DETENT_RPM_POINT_ENABLE(d3.w) ; This is a calibration table to enable or disable detent shiftstabilization. ; T/F beq.s loc_4DBC4 bset #0,(byte_FFFF9BBB).w bra.s loc_4DBF8 ; --------------------------------------------------------------------------- loc_4DBC4: ; CODE XREF: sub_4DB5C+4Ej ; sub_4DB5C+5Ej bclr #6,(byte_FFFF9BBD).w bclr #5,(byte_FFFF9BBD).w bclr #5,(byte_FFFF9BBC).w bset #5,(byte_FFFF9BBA).w move.b (byte_FFFF95DC).w,d3 cmpi.b #3,d3 bcc.s loc_4DBE8 addq.b #1,d3 loc_4DBE8: ; CODE XREF: sub_4DB5C+88j move.b d3,(byte_FFFF9C09).w move.w d1,(word_FFFF9C0E).w bra.s loc_4DBF8 ; --------------------------------------------------------------------------- loc_4DBF2: ; CODE XREF: sub_4DB5C+28j ; sub_4DB5C+30j ... bclr #5,(byte_FFFF9BBC).w loc_4DBF8: ; CODE XREF: sub_4DB5C+66j ; sub_4DB5C+94j bclr #2,(unk_FFFFB4C3).w loc_4DBFE: ; CODE XREF: sub_4DB5C+16j movem.l (sp)+,d0-d2 rts ; End of function sub_4DB5C ; =============== S U B R O U T I N E ======================================= sub_4DC04: ; CODE XREF: sub_4DD5C:loc_4E59Ap movem.l d0-d1,-(sp) bclr #4,(byte_FFFF9BBA).w btst #7,(byte_FFFF9BBC).w bne.w loc_4DCEC move.b (byte_FFFF95DC).w,d1 cmp.b (byte_FFFF93E6).w,d1 beq.w loc_4DCEC move.w (word_FFFF9C0C).w,d1 bls.w loc_4DCEC cmp.w (word_FFFF95DA).w,d1 bls.w loc_4DCE2 btst #3,(byte_FFFF9BBC).w bne.s loc_4DC44 cmpi.b #9,(byte_FFFF95F1).w bne.s loc_4DCAA loc_4DC44: ; CODE XREF: sub_4DC04+36j move.w (word_FFFF9582).w,d3 cmp.w (X_SHIFT_KE_URBAN_THROTTLE).l,d3 ; If throttle is greater than this cal and Urban conditions are met we want to delay downshift to reduce noise emmisions. ; % bls.s loc_4DC74 tst.w (word_FFFF9BEC).w bne.s loc_4DC74 btst #4,(byte_FFFF9BBC).w bne.s loc_4DC74 clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w X_SHIFT_KE_WHEEL_SLIP_FILTER_COEFF(d3.w*2),(word_FFFF9BEC).w ; The filter coefficient for filtering the wheel slip acceleration ; None bset #4,(byte_FFFF9BBC).w loc_4DC74: ; CODE XREF: sub_4DC04+4Aj ; sub_4DC04+50j ... movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9BEC).w,d3 sub.w $A(a2),d3 bcc.s loc_4DC84 clr.w d3 loc_4DC84: ; CODE XREF: sub_4DC04+7Cj move.w d3,(word_FFFF9BEC).w tst.w d3 loc_4DC8A: ; CODE XREF: sub_4DC04+DCj bne.s loc_4DCEC loc_4DC8C: ; CODE XREF: sub_4DC04+B6j ; sub_4DC04+BEj ... bset #4,(byte_FFFF9BBA).w bclr #5,(byte_FFFF9BBA).w move.b (byte_FFFF95DC).w,d3 bls.s loc_4DCA0 subq.b #1,d3 loc_4DCA0: ; CODE XREF: sub_4DC04+98j move.b d3,(byte_FFFF9C09).w move.w d1,(word_FFFF9C0E).w bra.s loc_4DCEC ; --------------------------------------------------------------------------- loc_4DCAA: ; CODE XREF: sub_4DC04+3Ej clr.w (word_FFFF9BEC).w bclr #4,(byte_FFFF9BBC).w btst #7,(byte_FFFF95E5).w beq.s loc_4DC8C btst #0,(byte_FFFFA8FE).w bne.s loc_4DC8C move.b (byte_FFFF95DC).w,d0 cmpi.b #3,d0 bcc.s loc_4DCD0 addq.b #1,d0 loc_4DCD0: ; CODE XREF: sub_4DC04+C8j jsr sub_58F32 tst.b d0 bne.s loc_4DC8C btst #2,(byte_FFFF9BBA).w bra.s loc_4DC8A ; --------------------------------------------------------------------------- loc_4DCE2: ; CODE XREF: sub_4DC04+2Cj clr.w (word_FFFF9BEC).w bclr #4,(byte_FFFF9BBC).w loc_4DCEC: ; CODE XREF: sub_4DC04+10j ; sub_4DC04+1Cj ... movem.l (sp)+,d0-d1 rts ; End of function sub_4DC04 ; =============== S U B R O U T I N E ======================================= sub_4DCF2: ; CODE XREF: DoLoopD+D8p btst #4,(byte_FFFF9BBD).w bne.s loc_4DD1A move.w (word_FFFF9BF8).w,d3 cmp.w (X_SHIFT_KE_SHIFT_STAB_DELTHR_LFTFT).l,d3 ; Threshold of rate of change of throttle to trigger power offshift stabilization. ; %/sec bge.s loc_4DD4C bset #4,(byte_FFFF9BBD).w clr.w (word_FFFF9C2E).w tst.w (X_SHIFT_KE_LIFT_FOOT_TIME).l ; Time to inhibit upshift once power off inhibiting is triggered. ; seconds bls.s loc_4DD42 bra.s loc_4DD38 ; --------------------------------------------------------------------------- loc_4DD1A: ; CODE XREF: sub_4DCF2+6j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9C2E).w,d3 add.w $A(a2),d3 bcc.s loc_4DD2C move.w #$FFFF,d3 loc_4DD2C: ; CODE XREF: sub_4DCF2+34j move.w d3,(word_FFFF9C2E).w cmp.w (X_SHIFT_KE_LIFT_FOOT_TIME).l,d3 ; Time to inhibit upshift once power off inhibiting is triggered. ; seconds bcc.s loc_4DD42 loc_4DD38: ; CODE XREF: sub_4DCF2+26j move.w (word_FFFF9BFC).w,d3 cmp.w (word_FFFF9BC0).w,d3 bcc.s loc_4DD4C loc_4DD42: ; CODE XREF: sub_4DCF2+24j ; sub_4DCF2+44j bclr #4,(byte_FFFF9BBD).w clr.w (word_FFFF9C2E).w loc_4DD4C: ; CODE XREF: sub_4DCF2+12j ; sub_4DCF2+4Ej btst #4,(byte_FFFF9BBD).w beq.s locret_4DD5A move.w (word_FFFF9BFC).w,(word_FFFF9BC0).w locret_4DD5A: ; CODE XREF: sub_4DCF2+60j rts ; End of function sub_4DCF2 ; =============== S U B R O U T I N E ======================================= sub_4DD5C: ; CODE XREF: DoLoopE+AEp var_640C = -$640C movem.l d0-d2/d6-a1/a4,-(sp) move.b (byte_FFFFB370).w,d3 bne.s loc_4DD6C move.w (word_FFFF9582).w,d3 bra.s loc_4DD8E ; --------------------------------------------------------------------------- loc_4DD6C: ; CODE XREF: sub_4DD5C+8j tst.b d3 beq.s loc_4DD78 clr.l d3 move.w (word_FFFF9050).w,d3 bra.s loc_4DD7E ; --------------------------------------------------------------------------- loc_4DD78: ; CODE XREF: sub_4DD5C+12j clr.l d3 move.w (word_FFFFAB66).w,d3 loc_4DD7E: ; CODE XREF: sub_4DD5C+1Aj asl.l #5,d3 moveq #5,d6 divu.w d6,d3 cmpi.w #$7FFF,d3 bls.s loc_4DD8E move.w #$7FFF,d3 loc_4DD8E: ; CODE XREF: sub_4DD5C+Ej ; sub_4DD5C+2Cj move.w (word_FFFF95B6).w,d4 lsr.w #3,d4 lsr.w #3,d3 lea (X_SHIFT_KA_SHIFT_STABLE_ENG_TORQUE).l,a0 ; Used to calculate normalized engine torque for the shift stabilization algorithm. ; Norm Torque move.l d3,d0 move.l d4,d1 moveq #$22,d2 ; '"' jsr (sub_16D6).l move.w d0,(word_FFFF9BD6).w clr.w d3 move.b (byte_FFFF95DF).w,d3 asl.w #4,d3 tblu.w (XMSN_IO_KV_CONVERTER_TORQUE_RATIO).l,d3 ; Ratio used to determine gearbox torque. ; Ratio move.w d3,(word_FFFF9BD8).w clr.w d3 move.b (byte_FFFF95DC).w,d3 mulu.w X_SHIFT_KV_SHIFT_STABLE_OVERALL_RATIO(d3.w*2),d0 moveq #3,d3 mulu.l d0,d3 divu.w #$3E8,d3 mulu.w (word_FFFF9BD8).w,d3 divu.w #$2800,d3 bvs.s loc_4DDE8 cmpi.w #$FA00,d3 bls.s loc_4DDEC loc_4DDE8: ; CODE XREF: sub_4DD5C+84j move.w #$FA00,d3 loc_4DDEC: ; CODE XREF: sub_4DD5C+8Aj move.w d3,(word_FFFF9BC0).w move.w (word_FFFFB526).w,d3 move.w (word_FFFF95AC).w,d4 lsr.w #3,d4 lsr.w #3,d3 lea (X_SHIFT_KA_SHIFT_STABLE_ENG_TORQUE).l,a0 ; Used to calculate normalized engine torque for the shift stabilization algorithm. ; Norm Torque move.l d3,d0 move.l d4,d1 moveq #$22,d2 ; '"' jsr (sub_16D6).l move.w d0,(word_FFFF9BDA).w clr.w d3 move.b (byte_FFFF95DC).w,d3 mulu.w X_SHIFT_KV_SHIFT_STABLE_OVERALL_RATIO(d3.w*2),d0 moveq #3,d3 mulu.l d0,d3 divu.w #$9C4,d3 move.w d3,(word_FFFF9BC2).w move.b (byte_FFFF95DF).w,d3 clr.w d4 cmpi.b #$C0,d3 bcc.s loc_4DE3E move.l d4,d3 bra.s loc_4DE48 ; --------------------------------------------------------------------------- loc_4DE3E: ; CODE XREF: sub_4DD5C+DCj andi.w #$FF,d3 asl.w #6,d3 subi.w #$3000,d3 loc_4DE48: ; CODE XREF: sub_4DD5C+E0j tblu.w (X_SHIFT_KV_TRQ_CONV_K_FACTOR).l,d3 ; Used to calculate the current torque converter K factor. ; KFactor move.w d3,d4 move.w d4,(word_FFFF9BDE).w move.b (byte_FFFF95DC).w,d3 moveq #3,d6 cmp.b d3,d6 bls.s loc_4DE62 addq.b #1,d3 loc_4DE62: ; CODE XREF: sub_4DD5C+102j andi.w #$FF,d3 move.b byte_1D4A5(d3.w),d3 andi.w #$FF,d3 mulu.w d4,d3 lsr.l #8,d3 move.w d3,(word_FFFF9BE0).w cmpi.w #$100,d3 bcc.s loc_4DE84 asl.w #4,d3 bra.s loc_4DE88 ; --------------------------------------------------------------------------- loc_4DE84: ; CODE XREF: sub_4DD5C+122j move.w #$1000,d3 loc_4DE88: ; CODE XREF: sub_4DD5C+126j tblu.w (X_SHIFT_KV_PRED_TRQ_CONV_SPD_RATIO).l,d3 ; Used to calculate the predicted torque converter speed ratio. ; Ratio move.w d3,(word_FFFF9BE2).w clr.l d4 move.w d3,d4 divu.w #$D,d4 andi.w #$FF,d4 asl.w #4,d4 tblu.w (XMSN_IO_KV_CONVERTER_TORQUE_RATIO).l,d4 ; Ratio used to determine gearbox torque. ; Ratio move.w d4,(word_FFFF9BE4).w move.b (byte_FFFF95DC).w,d4 cmp.b d4,d6 bls.s loc_4DEB8 addq.b #1,d4 loc_4DEB8: ; CODE XREF: sub_4DD5C+158j clr.l d7 move.b d4,d7 move.w (word_FFFF95AC).w,d0 mulu.w X_SHIFT_KV_SHIFT_STABLE_OVERALL_RATIO(d7.w*2),d0 move.l #$7D0,d7 divu.l d7,d0 clr.w d1 move.b (byte_FFFF95DC).w,d1 mulu.w X_SHIFT_KV_SHIFT_STABLE_OVERALL_RATIO(d1.w*2),d3 divu.l d7,d3 bne.s loc_4DEF0 movea.w #$7FFF,a4 move.w a4,(word_FFFF9BE8).w bra.s loc_4DF18 ; --------------------------------------------------------------------------- loc_4DEF0: ; CODE XREF: sub_4DD5C+188j mulu.l #$2710,d1:d0 divu.l d6,d1:d0 divu.l d3,d0 bvs.s loc_4DF10 cmpi.l #$FFFF,d0 bhi.s loc_4DF10 cmpi.w #$7FFF,d0 bls.s loc_4DF14 loc_4DF10: ; CODE XREF: sub_4DD5C+1A4j ; sub_4DD5C+1ACj move.w #$7FFF,d0 loc_4DF14: ; CODE XREF: sub_4DD5C+1B2j move.w d0,(word_FFFF9BE8).w loc_4DF18: ; CODE XREF: sub_4DD5C+192j move.w (word_FFFFB51E).w,d0 move.w (word_FFFF9BE8).w,d1 lsr.w #3,d1 lsr.w #3,d0 lea (X_SHIFT_KA_SHIFT_STABLE_ENG_TORQUE).l,a0 ; Used to calculate normalized engine torque for the shift stabilization algorithm. ; Norm Torque moveq #$22,d2 ; '"' jsr (sub_16D6).l move.w d0,(word_FFFF9BDC).w move.b (byte_FFFF95DC).w,d3 cmp.b d3,d6 bls.s loc_4DF40 addq.b #1,d3 loc_4DF40: ; CODE XREF: sub_4DD5C+1E0j clr.l d2 move.b d3,d2 move.w (word_FFFF9BE4).w,d3 mulu.w X_SHIFT_KV_SHIFT_STABLE_OVERALL_RATIO(d2.w*2),d3 divu.w d7,d3 bvs.s loc_4DF5A cmpi.w #$7FFF,d3 bls.s loc_4DF5E loc_4DF5A: ; CODE XREF: sub_4DD5C+1F6j move.w #$7FFF,d3 loc_4DF5E: ; CODE XREF: sub_4DD5C+1FCj mulu.w d0,d3 add.l d3,d3 divu.w #$D55,d3 move.w d3,(word_FFFF9BE6).w cmpi.w #$40,(word_FFFF9C28).w ; '@' bcs.s loc_4DF7E bset #2,(byte_FFFF9BBD).w clr.w (word_FFFF9C28).w bra.s loc_4DF9A ; --------------------------------------------------------------------------- loc_4DF7E: ; CODE XREF: sub_4DD5C+214j bclr #2,(byte_FFFF9BBD).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9C28).w,d3 add.w $A(a2),d3 bcc.s loc_4DF96 move.w #$FFFF,d3 loc_4DF96: ; CODE XREF: sub_4DD5C+234j move.w d3,(word_FFFF9C28).w loc_4DF9A: ; CODE XREF: sub_4DD5C+220j move.b (byte_FFFFB370).w,d3 bne.s loc_4DFA6 move.w (word_FFFF9582).w,d3 bra.s loc_4DFC8 ; --------------------------------------------------------------------------- loc_4DFA6: ; CODE XREF: sub_4DD5C+242j tst.b d3 beq.s loc_4DFB2 clr.l d3 move.w (word_FFFF9050).w,d3 bra.s loc_4DFB8 ; --------------------------------------------------------------------------- loc_4DFB2: ; CODE XREF: sub_4DD5C+24Cj clr.l d3 move.w (word_FFFFAB66).w,d3 loc_4DFB8: ; CODE XREF: sub_4DD5C+254j asl.l #5,d3 moveq #5,d2 divu.w d2,d3 cmpi.w #$7FFF,d3 bls.s loc_4DFC8 move.w #$7FFF,d3 loc_4DFC8: ; CODE XREF: sub_4DD5C+248j ; sub_4DD5C+266j tst.b (byte_FFFF9C20).w beq.s loc_4DFDE move.w d3,(word_FFFF9C22).w clr.b (byte_FFFF9C20).w moveq #1,d2 move.b d2,(byte_FFFF9C21).w bra.s loc_4E044 ; --------------------------------------------------------------------------- loc_4DFDE: ; CODE XREF: sub_4DD5C+270j tst.b (byte_FFFF9C21).w beq.s loc_4DFF4 move.w (word_FFFF9C22).w,(word_FFFF9C24).w move.w d3,(word_FFFF9C22).w clr.b (byte_FFFF9C21).w bra.s loc_4E044 ; --------------------------------------------------------------------------- loc_4DFF4: ; CODE XREF: sub_4DD5C+286j movea.l (dword_FFFFB5DE).w,a2 clr.l d0 move.w $A(a2),d0 add.l d0,d0 move.l d3,d4 sub.w (word_FFFF9C24).w,d4 ext.l d4 divs.l d0,d4 bvs.s loc_4E02C cmpi.l #$FFFF8000,d4 blt.s loc_4E032 cmpi.l #$7FFF,d4 bgt.s loc_4E02C cmpi.w #$1000,d4 bgt.s loc_4E02C cmpi.w #$F000,d4 blt.s loc_4E032 bra.s loc_4E036 ; --------------------------------------------------------------------------- loc_4E02C: ; CODE XREF: sub_4DD5C+2B0j ; sub_4DD5C+2C0j ... move.w #$1000,d4 bra.s loc_4E036 ; --------------------------------------------------------------------------- loc_4E032: ; CODE XREF: sub_4DD5C+2B8j ; sub_4DD5C+2CCj move.w #$F000,d4 loc_4E036: ; CODE XREF: sub_4DD5C+2CEj ; sub_4DD5C+2D4j move.w d4,(word_FFFF9BF8).w move.w (word_FFFF9C22).w,(word_FFFF9C24).w move.w d3,(word_FFFF9C22).w loc_4E044: ; CODE XREF: sub_4DD5C+280j ; sub_4DD5C+296j btst #3,(byte_FFFF9BBD).w bne.s loc_4E068 move.w (word_FFFF9BF8).w,d3 cmp.w (X_SHIFT_KE_POWER_ON_THROTTLE).l,d3 ; The rate of change in throttle which is considered apower-on manuver. ; %/sec ble.s loc_4E086 move.w (X_SHIFT_KE_SHIFT_STAB_POWER_ON_TIME).l,(word_FFFF9C26).w ; The time to freeze the power-off vehicle torque modifier duringa power-on manuever. ; Seconds bset #3,(byte_FFFF9BBD).w bra.s loc_4E086 ; --------------------------------------------------------------------------- loc_4E068: ; CODE XREF: sub_4DD5C+2EEj movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9C26).w,d3 sub.w $A(a2),d3 bcc.s loc_4E078 clr.w d3 loc_4E078: ; CODE XREF: sub_4DD5C+318j move.w d3,(word_FFFF9C26).w tst.w d3 bne.s loc_4E086 bclr #3,(byte_FFFF9BBD).w loc_4E086: ; CODE XREF: sub_4DD5C+2FAj ; sub_4DD5C+30Aj ... btst #2,(byte_FFFF9BBD).w beq.w loc_4E1CC move.w (word_FFFF95DA).w,d3 movea.w #$1000,a2 clr.w d4 cmpi.w #$8000,d3 bcc.s loc_4E0A4 lsr.w #3,d3 bra.s loc_4E0A8 ; --------------------------------------------------------------------------- loc_4E0A4: ; CODE XREF: sub_4DD5C+342j move.w #$1000,d3 loc_4E0A8: ; CODE XREF: sub_4DD5C+346j tblu.w (X_SHIFT_KV_PRED_BASE_NORM_VEH_TORQUE).l,d3 ; Normalized Tractive Effort on a level road table used in theShift Stabilization power off rountine. ; None move.w d3,(word_FFFF9BFE).w clr.l d3 move.w (word_FFFF9BFE).w,d3 add.l (dword_FFFF9C04).w,d3 tst.l d3 blt.s loc_4E0D6 cmpi.l #$FFFF,d3 bhi.s loc_4E0D0 cmpi.w #$FA00,d3 bls.s loc_4E0D8 loc_4E0D0: ; CODE XREF: sub_4DD5C+36Cj move.w #$FA00,d3 bra.s loc_4E0D8 ; --------------------------------------------------------------------------- loc_4E0D6: ; CODE XREF: sub_4DD5C+364j move.l d4,d3 loc_4E0D8: ; CODE XREF: sub_4DD5C+372j ; sub_4DD5C+378j move.w d3,(word_FFFF9BFC).w clr.l d2 move.w d3,d2 clr.l d3 move.w (word_FFFF9BC0).w,d3 sub.l d2,d3 move.l d3,(dword_FFFF9C2A).w move.l d3,d0 sub.l (dword_FFFF9C00).w,d0 clr.l d3 move.b (X_SHIFT_KE_VEH_TORQ_ERR_FILTCOEF).l,d3 ; Lag filter weighting used for Vehicle_Torque_Error used withinthe power off shift stabilization power off routine. ; NONE muls.l d0,d3 bpl.s loc_4E106 addi.l #$FF,d3 loc_4E106: ; CODE XREF: sub_4DD5C+3A2j asr.l #8,d3 cmpi.l #$FA00,d3 bgt.s loc_4E11A cmpi.l #$FFFF0600,d3 blt.s loc_4E122 bra.s loc_4E128 ; --------------------------------------------------------------------------- loc_4E11A: ; CODE XREF: sub_4DD5C+3B2j move.l #$FA00,d3 bra.s loc_4E128 ; --------------------------------------------------------------------------- loc_4E122: ; CODE XREF: sub_4DD5C+3BAj move.l #$FFFF0600,d3 loc_4E128: ; CODE XREF: sub_4DD5C+3BCj ; sub_4DD5C+3C4j add.l (dword_FFFF9C00).w,d3 cmpi.l #$FA00,d3 bgt.s loc_4E13E cmpi.l #$FFFF0600,d3 blt.s loc_4E146 bra.s loc_4E14C ; --------------------------------------------------------------------------- loc_4E13E: ; CODE XREF: sub_4DD5C+3D6j move.l #$FA00,d3 bra.s loc_4E14C ; --------------------------------------------------------------------------- loc_4E146: ; CODE XREF: sub_4DD5C+3DEj move.l #$FFFF0600,d3 loc_4E14C: ; CODE XREF: sub_4DD5C+3E0j ; sub_4DD5C+3E8j move.l d3,(dword_FFFF9C00).w btst #4,(byte_FFFF9BBD).w bne.s loc_4E1CC btst #3,(byte_FFFF9BBD).w bne.s loc_4E1CC move.w (word_FFFF9BC8).w,d3 cmp.w (X_SHIFT_KE_VEHICLE_ACCELERATING_MIN).l,d3 ; Minimum acceleration defining steady state within shiftstabilization power off routine. ; MPH/Sec blt.s loc_4E1CC move.w (word_FFFF9BC8).w,d3 cmp.w (X_SHIFT_KE_VEHICLE_ACCELERATING_MAX).l,d3 ; Maximum acceleration defining steady state within shiftstabilization power off routine. ; MPH/Sec bgt.s loc_4E1CC move.l d4,d3 cmpi.l #$FFFFF800,(dword_FFFF9C00).w blt.s loc_4E19C move.l #$800,d2 cmp.l (dword_FFFF9C00).w,d2 ble.s loc_4E198 move.l (dword_FFFF9C00).w,d3 add.l d2,d3 bra.s loc_4E19C ; --------------------------------------------------------------------------- loc_4E198: ; CODE XREF: sub_4DD5C+432j move.w #$1000,d3 loc_4E19C: ; CODE XREF: sub_4DD5C+426j ; sub_4DD5C+43Aj tbls.l (X_SHIFT_KV_VEH_TORQ_MOD_ERR_TABLE).l,d3 add.l (dword_FFFF9C04).w,d3 cmpi.l #$FA00,d3 bgt.s loc_4E1BA cmpi.l #$FFFF0600,d3 blt.s loc_4E1C2 bra.s loc_4E1C8 ; --------------------------------------------------------------------------- loc_4E1BA: ; CODE XREF: sub_4DD5C+452j move.l #$FA00,d3 bra.s loc_4E1C8 ; --------------------------------------------------------------------------- loc_4E1C2: ; CODE XREF: sub_4DD5C+45Aj move.l #$FFFF0600,d3 loc_4E1C8: ; CODE XREF: sub_4DD5C+45Cj ; sub_4DD5C+464j move.l d3,(dword_FFFF9C04).w loc_4E1CC: ; CODE XREF: sub_4DD5C+330j ; sub_4DD5C+3FAj ... move.b (X_SHIFT_KE_DRIVE_LOW_URBAN_TEST_ENABLE).l,d4 beq.w loc_4E38A move.w (word_FFFF9582).w,d3 cmp.w (X_SHIFT_KE_URBAN_ENG_BRAKE_THR).l,d3 bcc.s loc_4E20C move.w (word_FFFFAEBC).w,d3 add.w d3,d3 cmp.w (X_SHIFT_KE_URBAN_ENG_BRAKE_MPH).l,d3 ; This is the threshold which Urban_Vehicle_Speed must be greater than in order to satisfy urban engine braking conditions. ; MPH bls.s loc_4E20C tst.b (byte_FFFF95E9).w bne.s loc_4E20C movea.l (dword_FFFFB5DE).w,a0 move.w (word_FFFF9BF2).w,d3 sub.w $A(a0),d3 bcc.s loc_4E206 clr.w d3 loc_4E206: ; CODE XREF: sub_4DD5C+4A6j move.w d3,(word_FFFF9BF2).w bra.s loc_4E214 ; --------------------------------------------------------------------------- loc_4E20C: ; CODE XREF: sub_4DD5C+484j ; sub_4DD5C+492j ... move.w (X_SHIFT_KE_URBAN_ENG_BRAKE_TIME).l,(word_FFFF9BF2).w ; This specifies how long the vehicle must be in urban engine braking conditions before exiting urban conditions. ; Secs loc_4E214: ; CODE XREF: sub_4DD5C+4AEj move.w (word_FFFFAEBC).w,d3 add.w d3,d3 cmp.w (X_SHIFT_KE_URBAN_ABOVE_MPH).l,d3 ; This calibration disables urban conditions if you are above this cal for KE_Urban_Above_MPH_Time. ; MPH bcs.s loc_4E238 movea.l (dword_FFFFB5DE).w,a0 move.w (word_FFFF9BEE).w,d3 sub.w $A(a0),d3 bcc.s loc_4E232 clr.w d3 loc_4E232: ; CODE XREF: sub_4DD5C+4D2j move.w d3,(word_FFFF9BEE).w bra.s loc_4E240 ; --------------------------------------------------------------------------- loc_4E238: ; CODE XREF: sub_4DD5C+4C4j move.w (X_SHIFT_KE_URBAN_ABOVE_MPH_TIME).l,(word_FFFF9BEE).w ; This calibration is used to disable the Urban Pattern if time has expired. ; Secs loc_4E240: ; CODE XREF: sub_4DD5C+4DAj tst.b (byte_FFFF95E9).w beq.s loc_4E260 bclr #2,(byte_FFFF9BBC).w bclr #1,(byte_FFFF9BBC).w clr.w (word_FFFF9BF4).w bclr #0,(byte_FFFF9BBC).w bra.w loc_4E390 ; --------------------------------------------------------------------------- loc_4E260: ; CODE XREF: sub_4DD5C+4E8j move.b (byte_FFFF958E).w,d3 cmp.b (X_SHIFT_KE_URBAN_BARO).l,d3 bls.s loc_4E2AC move.b (byte_FFFF959C).w,d3 cmp.b (X_SHIFT_KE_URBAN_COOLANT_TEMP).l,d3 bls.s loc_4E2AC tst.b (TCM_OPTIONS_K_FOUR_WHEEL_DRIVE_AVAILABLE).l ; If TRUE, vehicle has four wheel drive. ; BOOLEAN beq.s loc_4E286 tst.b (byte_FFFFA67E).w bne.s loc_4E2AC loc_4E286: ; CODE XREF: sub_4DD5C+522j btst #5,(byte_FFFF95E2).w bne.s loc_4E2AC tst.w (word_FFFF9BEE).w bls.s loc_4E2AC movea.l (dword_FFFFB5DE).w,a0 move.w (word_FFFF9BF4).w,d3 add.w $A(a0),d3 bcc.s loc_4E2A6 move.w #$FFFF,d3 loc_4E2A6: ; CODE XREF: sub_4DD5C+544j move.w d3,(word_FFFF9BF4).w bra.s loc_4E2B0 ; --------------------------------------------------------------------------- loc_4E2AC: ; CODE XREF: sub_4DD5C+50Ej ; sub_4DD5C+51Aj ... clr.w (word_FFFF9BF4).w loc_4E2B0: ; CODE XREF: sub_4DD5C+54Ej move.w (word_FFFF9BF4).w,d3 cmp.w (X_SHIFT_KE_URBAN_LO_TIME).l,d3 bcs.s loc_4E2CC cmp.w (X_SHIFT_KE_URBAN_HI_TIME).l,d3 bcc.s loc_4E2CC bset #2,(byte_FFFF9BBC).w bra.s loc_4E2EE ; --------------------------------------------------------------------------- loc_4E2CC: ; CODE XREF: sub_4DD5C+55Ej ; sub_4DD5C+566j cmpi.b #9,(byte_FFFF95F1).w bne.s loc_4E2E2 bset #2,(byte_FFFF9BBC).w bset #1,(byte_FFFF9BBC).w bra.s loc_4E2EE ; --------------------------------------------------------------------------- loc_4E2E2: ; CODE XREF: sub_4DD5C+576j bclr #2,(byte_FFFF9BBC).w bclr #1,(byte_FFFF9BBC).w loc_4E2EE: ; CODE XREF: sub_4DD5C+56Ej ; sub_4DD5C+584j btst #2,(byte_FFFF9BBC).w beq.s loc_4E31A tst.w (word_FFFF9BEE).w bne.s loc_4E31A bset #1,(byte_FFFF9BBC).w btst #7,(byte_FFFF95E2).w beq.s loc_4E31A bclr #2,(byte_FFFF9BBC).w bclr #1,(byte_FFFF9BBC).w clr.w (word_FFFF9BF4).w loc_4E31A: ; CODE XREF: sub_4DD5C+598j ; sub_4DD5C+59Ej ... btst #2,(byte_FFFF9BBC).w beq.s loc_4E338 tst.w (word_FFFF9BF2).w bne.s loc_4E338 bclr #2,(byte_FFFF9BBC).w bclr #1,(byte_FFFF9BBC).w clr.w (word_FFFF9BF4).w loc_4E338: ; CODE XREF: sub_4DD5C+5C4j ; sub_4DD5C+5CAj btst #1,(byte_FFFF9BBC).w beq.s loc_4E356 tst.b (byte_FFFF95DC).w bne.s loc_4E356 bclr #2,(byte_FFFF9BBC).w bclr #1,(byte_FFFF9BBC).w clr.w (word_FFFF9BF4).w loc_4E356: ; CODE XREF: sub_4DD5C+5E2j ; sub_4DD5C+5E8j move.w (word_FFFFAEBC).w,d3 add.w d3,d3 cmp.w (X_SHIFT_KE_URBAN_ENG_BRAKE_MPH).l,d3 ; This is the threshold which Urban_Vehicle_Speed must be greater than in order to satisfy urban engine braking conditions. ; MPH bhi.s loc_4E370 tst.b (byte_FFFF95E9).w bne.s loc_4E370 bclr #0,(byte_FFFF9BBC).w loc_4E370: ; CODE XREF: sub_4DD5C+606j ; sub_4DD5C+60Cj tst.w (word_FFFF9BF2).w bne.s loc_4E37C bset #0,(byte_FFFF9BBC).w loc_4E37C: ; CODE XREF: sub_4DD5C+618j btst #0,(byte_FFFF9BBC).w beq.s loc_4E390 tst.b (byte_FFFF95F1).w bne.s loc_4E390 loc_4E38A: ; CODE XREF: sub_4DD5C+476j bclr #2,(byte_FFFF9BBC).w loc_4E390: ; CODE XREF: sub_4DD5C+500j ; sub_4DD5C+626j ... move.b (byte_FFFF95E9).w,d3 cmp.b d3,d6 bcs.w loc_4E488 tst.b d3 beq.w loc_4E488 tst.b d4 bne.w loc_4E488 andi.w #$FF,d3 tst.b byte_1D4D1(d3.w) beq.w loc_4E488 move.w (word_FFFFAEBC).w,d3 add.w d3,d3 cmp.w (X_SHIFT_KE_URBAN_ABOVE_MPH).l,d3 ; This calibration disables urban conditions if you are above this cal for KE_Urban_Above_MPH_Time. ; MPH bcs.s loc_4E3DA movea.l (dword_FFFFB5DE).w,a0 move.w (word_FFFF9BEE).w,d3 sub.w $A(a0),d3 bcc.s loc_4E3D4 clr.w d3 loc_4E3D4: ; CODE XREF: sub_4DD5C+674j move.w d3,(word_FFFF9BEE).w bra.s loc_4E3E2 ; --------------------------------------------------------------------------- loc_4E3DA: ; CODE XREF: sub_4DD5C+666j move.w (X_SHIFT_KE_URBAN_ABOVE_MPH_TIME).l,(word_FFFF9BEE).w ; This calibration is used to disable the Urban Pattern if time has expired. ; Secs loc_4E3E2: ; CODE XREF: sub_4DD5C+67Cj move.w (word_FFFFAEBC).w,d3 add.w d3,d3 cmp.w (X_SHIFT_KE_URBAN_MPH_LOW).l,d3 ; This calibration is used as a lower bound for the range that vehicle speed must be in to meet a condition for the urban tests. ; MPH bls.s loc_4E468 cmp.w (X_SHIFT_KE_URBAN_MPH_HIGH).l,d3 ; This calibration is used as an upper bound for the range that vehicle speed must be in to meet a condition for the urban tests. ; MPH bcs.s loc_4E40C btst #3,(byte_FFFF9BBC).w beq.s loc_4E468 move.w (word_FFFF9582).w,d3 cmp.w (X_SHIFT_KE_URBAN_THROTTLE).l,d3 ; If throttle is greater than this cal and Urban conditions are met we want to delay downshift to reduce noise emmisions. ; % bls.s loc_4E468 loc_4E40C: ; CODE XREF: sub_4DD5C+69Aj move.b (byte_FFFF958E).w,d3 cmp.b (X_SHIFT_KE_URBAN_BARO).l,d3 bls.s loc_4E468 move.b (byte_FFFF959C).w,d3 cmp.b (X_SHIFT_KE_URBAN_COOLANT_TEMP).l,d3 bls.s loc_4E468 tst.w (word_FFFF9BEE).w bls.s loc_4E468 btst #5,(byte_FFFF95E2).w beq.s loc_4E43A tst.b (X_SHIFT_KE_DISABLE_URBAN_DUE_TO_CRUISE).l bne.s loc_4E468 loc_4E43A: ; CODE XREF: sub_4DD5C+6D4j tst.b (X_SHIFT_KE_DISABLE_URBAN_DUE_TO_4WD_LO).l beq.s loc_4E450 tst.b (TCM_OPTIONS_K_FOUR_WHEEL_DRIVE_AVAILABLE).l ; If TRUE, vehicle has four wheel drive. ; BOOLEAN beq.s loc_4E450 tst.b (byte_FFFFA67E).w bne.s loc_4E468 loc_4E450: ; CODE XREF: sub_4DD5C+6E4j ; sub_4DD5C+6ECj movea.l (dword_FFFFB5DE).w,a0 move.w (word_FFFF9BF0).w,d3 add.w $A(a0),d3 bcc.s loc_4E462 move.w #$FFFF,d3 loc_4E462: ; CODE XREF: sub_4DD5C+700j move.w d3,(word_FFFF9BF0).w bra.s loc_4E46C ; --------------------------------------------------------------------------- loc_4E468: ; CODE XREF: sub_4DD5C+692j ; sub_4DD5C+6A2j ... clr.w (word_FFFF9BF0).w loc_4E46C: ; CODE XREF: sub_4DD5C+70Aj move.w (word_FFFF9BF0).w,d3 cmp.w (X_SHIFT_KE_URBAN_LO_TIME).l,d3 bcs.s loc_4E488 cmp.w (X_SHIFT_KE_URBAN_HI_TIME).l,d3 bcc.s loc_4E488 bset #3,(byte_FFFF9BBC).w bra.s loc_4E48E ; --------------------------------------------------------------------------- loc_4E488: ; CODE XREF: sub_4DD5C+63Aj ; sub_4DD5C+640j ... bclr #3,(byte_FFFF9BBC).w loc_4E48E: ; CODE XREF: sub_4DD5C+72Aj move.b (byte_FFFF95DC).w,(byte_FFFF9C09).w clr.b (byte_FFFF9C08).w move.b (byte_FFFF95DC).w,d0 cmp.b d0,d6 beq.s loc_4E4B2 movea.l #unk_FF9C08,a0 jsr sub_59CD8 move.w d0,(word_FFFF9C0A).w bra.s loc_4E4BE ; --------------------------------------------------------------------------- loc_4E4B2: ; CODE XREF: sub_4DD5C+742j bclr #5,(byte_FFFF9BBA).w bclr #5,(byte_FFFF9BBC).w loc_4E4BE: ; CODE XREF: sub_4DD5C+754j move.b (byte_FFFF95DC).w,d0 beq.s loc_4E4DC movea.l #unk_FF9C08,a0 tst.b d0 bls.s loc_4E4D0 subq.b #1,d0 loc_4E4D0: ; CODE XREF: sub_4DD5C+770j jsr sub_59D9E move.w d0,(word_FFFF9C0C).w bra.s loc_4E4E2 ; --------------------------------------------------------------------------- loc_4E4DC: ; CODE XREF: sub_4DD5C+766j bclr #4,(byte_FFFF9BBA).w loc_4E4E2: ; CODE XREF: sub_4DD5C+77Ej move.b (byte_FFFF95DC).w,d0 cmp.b d0,d6 beq.s loc_4E51A movea.l #unk_FF9BCC,a1 movea.l #$2D3C,a0 jsr sub_59B02 tst.b d0 beq.s loc_4E508 bset #1,(byte_FFFF9BBD).w bra.s loc_4E50E ; --------------------------------------------------------------------------- loc_4E508: ; CODE XREF: sub_4DD5C+7A2j bclr #1,(byte_FFFF9BBD).w loc_4E50E: ; CODE XREF: sub_4DD5C+7AAj jsr sub_58E3A move.w d0,(word_FFFF9BF6).w bra.s loc_4E520 ; --------------------------------------------------------------------------- loc_4E51A: ; CODE XREF: sub_4DD5C+78Cj bclr #1,(byte_FFFF9BBD).w loc_4E520: ; CODE XREF: sub_4DD5C+7BCj move.b (byte_FFFF9C08).w,d3 btst #0,d3 beq.s loc_4E540 jsr sub_4D918 jsr sub_4D97C jsr sub_4DB06 bra.w loc_4E5DE ; --------------------------------------------------------------------------- loc_4E540: ; CODE XREF: sub_4DD5C+7CCj btst #1,d3 bne.s loc_4E59A btst #3,d3 beq.s loc_4E55A btst #2,d3 bne.s loc_4E55A jsr sub_4D86E bra.s loc_4E59A ; --------------------------------------------------------------------------- loc_4E55A: ; CODE XREF: sub_4DD5C+7EEj ; sub_4DD5C+7F4j btst #2,d3 beq.s loc_4E5DE jsr sub_4D86E btst #7,(byte_FFFF95E5).w beq.s loc_4E5BE move.b (byte_FFFFABDA).w,d3 beq.s loc_4E5A2 tst.b (byte_FFFFA93E).w bne.s loc_4E5A2 loc_4E57A: ; CODE XREF: sub_4DD5C+84Ej jsr sub_4D8A8 jsr sub_4D918 loc_4E586: ; CODE XREF: sub_4DD5C+860j jsr sub_4D97C jsr sub_4DB06 btst #3,(byte_FFFF9C08).w beq.s loc_4E5DE loc_4E59A: ; CODE XREF: sub_4DD5C+7E8j ; sub_4DD5C+7FCj ... jsr sub_4DC04 bra.s loc_4E5DE ; --------------------------------------------------------------------------- loc_4E5A2: ; CODE XREF: sub_4DD5C+816j ; sub_4DD5C+81Cj tst.b d3 bne.s loc_4E5AC tst.b (byte_FFFFA93E).w bne.s loc_4E57A loc_4E5AC: ; CODE XREF: sub_4DD5C+848j tst.b d3 bne.s loc_4E5DE tst.b (byte_FFFFA93E).w bne.s loc_4E5DE jsr sub_4DB5C bra.s loc_4E586 ; --------------------------------------------------------------------------- loc_4E5BE: ; CODE XREF: sub_4DD5C+810j jsr sub_4D8A8 jsr sub_4D918 jsr sub_4D97C jsr sub_4DB06 btst #3,(byte_FFFF9C08).w bne.s loc_4E59A loc_4E5DE: ; CODE XREF: sub_4DD5C+7E0j ; sub_4DD5C+802j ... tst.b (byte_FFFFB370).w beq.w loc_4EA14 move.b (XTCC_CONTROL_KE_SHIFT_STABILIZATION_ENABLE).l,d3 ; Boolean calibration to show if the shift stabilization is enabled or disabled. ; BOOLEAN and.b (X_SHIFT_KE_ETC_STAB_ENABLE).l,d3 ; Boolean calibration to show if the ETC shift stabilization is enabled or disabled. ; T/F beq.w loc_4EA0A move.b (byte_FFFF95E9).w,d3 cmp.b d3,d6 bcs.s loc_4E61E andi.w #$FF,d3 move.b (byte_FFFF95DC).w,d4 cmp.b X_SHIFT_KV_ETC_STAB_DISABLED_MIN_GEAR(d3.w),d4 ; Minimum gear that when manually selected disables the ETC shift stability algorithm. ; Gear bcc.s loc_4E618 bclr #2,(byte_FFFF9BBB).w bra.s loc_4E61E ; --------------------------------------------------------------------------- loc_4E618: ; CODE XREF: sub_4DD5C+8B2j bset #2,(byte_FFFF9BBB).w loc_4E61E: ; CODE XREF: sub_4DD5C+8A0j ; sub_4DD5C+8BAj moveq #2,d2 cmp.b (byte_FFFF95DC).w,d2 bcs.s loc_4E66E clr.w d3 move.b (byte_FFFF95DC).w,d3 movea.l off_3FF4.l(d3.w*4),a3 move.b (byte_FFFF959C).w,d3 movea.w #$FFF,a2 andi.w #$FF,d3 asl.w #8,d3 andi.l #$FFFF,d3 divu.w #$11,d3 tblu.w (X_SHIFT_KV_ETC_STAB_OFFSET_TEMP_SCALAR).l,d3 ; Amount to scale the gear offset by as a function of temperature. ; Factor mulu.w (a3),d3 add.l d3,d3 divu.w #$3333,d3 bvs.s loc_4E664 cmpi.w #$7FFF,d3 bls.s loc_4E668 loc_4E664: ; CODE XREF: sub_4DD5C+900j move.w #$7FFF,d3 loc_4E668: ; CODE XREF: sub_4DD5C+906j move.w d3,(word_FFFF9C32).w bra.s loc_4E672 ; --------------------------------------------------------------------------- loc_4E66E: ; CODE XREF: sub_4DD5C+8C8j clr.w (word_FFFF9C32).w loc_4E672: ; CODE XREF: sub_4DD5C+910j tst.w (word_FFFF9C32).w beq.s loc_4E680 btst #5,(byte_FFFF9BBC).w bne.s loc_4E68A loc_4E680: ; CODE XREF: sub_4DD5C+91Aj movea.w #$7FFF,a4 move.w a4,(word_FFFF9C34).w bra.s loc_4E69A ; --------------------------------------------------------------------------- loc_4E68A: ; CODE XREF: sub_4DD5C+922j move.w (word_FFFF9BCC).w,d3 sub.w (word_FFFF9C32).w,d3 bcc.s loc_4E696 clr.w d3 loc_4E696: ; CODE XREF: sub_4DD5C+936j move.w d3,(word_FFFF9C34).w loc_4E69A: ; CODE XREF: sub_4DD5C+92Cj move.w (word_FFFF9BD4).w,d3 cmpi.w #$7FFF,d3 bne.s loc_4E6AA clr.b (byte_FFFF9C36).w bra.s loc_4E6CC ; --------------------------------------------------------------------------- loc_4E6AA: ; CODE XREF: sub_4DD5C+946j move.w (word_FFFF9C34).w,d4 cmp.w d4,d3 bne.s loc_4E6BA move.b #1,(byte_FFFF9C36).w bra.s loc_4E6CC ; --------------------------------------------------------------------------- loc_4E6BA: ; CODE XREF: sub_4DD5C+954j cmp.w d4,d3 bcc.s loc_4E6C4 move.b d2,(byte_FFFF9C36).w bra.s loc_4E6CC ; --------------------------------------------------------------------------- loc_4E6C4: ; CODE XREF: sub_4DD5C+960j cmp.w d4,d3 bls.s loc_4E6CC move.b d6,(byte_FFFF9C36).w loc_4E6CC: ; CODE XREF: sub_4DD5C+94Cj ; sub_4DD5C+95Cj ... move.b (byte_FFFF9C37).w,d3 bne.s loc_4E6DC moveq #1,d4 loc_4E6D4: ; CODE XREF: sub_4DD5C+998j ; sub_4DD5C+9B4j ... move.b d4,(byte_FFFF9C37).w bra.w loc_4E80E ; --------------------------------------------------------------------------- loc_4E6DC: ; CODE XREF: sub_4DD5C+974j moveq #1,d4 cmp.b d3,d4 beq.s loc_4E6E8 moveq #5,d5 cmp.b d3,d5 bne.s loc_4E6F6 loc_4E6E8: ; CODE XREF: sub_4DD5C+984j btst #5,(byte_FFFF9BBC).w bne.s loc_4E6F6 tst.b (byte_FFFF9C36).w beq.s loc_4E6D4 loc_4E6F6: ; CODE XREF: sub_4DD5C+98Aj ; sub_4DD5C+992j moveq #5,d5 cmp.b d3,d5 bne.s loc_4E712 btst #5,(byte_FFFF9BBC).w beq.s loc_4E712 tst.b (byte_FFFF9C36).w bne.s loc_4E712 btst #0,(byte_FFFF9BBD).w bne.s loc_4E6D4 loc_4E712: ; CODE XREF: sub_4DD5C+99Ej ; sub_4DD5C+9A6j ... cmp.b d3,d2 bne.s loc_4E72C btst #5,(byte_FFFF9BBC).w bne.s loc_4E72C tst.b (byte_FFFF9C36).w bne.s loc_4E72C btst #2,(byte_FFFF9BBB).w beq.s loc_4E6D4 loc_4E72C: ; CODE XREF: sub_4DD5C+9B8j ; sub_4DD5C+9C0j ... btst #5,(byte_FFFF9BBC).w beq.s loc_4E74A tst.b (byte_FFFF9C36).w bne.s loc_4E74A btst #2,(byte_FFFF9BBB).w beq.s loc_4E74A move.b d2,(byte_FFFF9C37).w bra.w loc_4E80E ; --------------------------------------------------------------------------- loc_4E74A: ; CODE XREF: sub_4DD5C+9D6j ; sub_4DD5C+9DCj ... btst #5,(byte_FFFF9BBC).w beq.s loc_4E768 tst.b (byte_FFFF9C36).w beq.s loc_4E768 btst #2,(byte_FFFF9BBB).w beq.s loc_4E768 move.b d6,(byte_FFFF9C37).w bra.w loc_4E80E ; --------------------------------------------------------------------------- loc_4E768: ; CODE XREF: sub_4DD5C+9F4j ; sub_4DD5C+9FAj ... btst #5,(byte_FFFF9BBC).w beq.s loc_4E788 cmp.b (byte_FFFF9C36).w,d4 bne.s loc_4E788 btst #2,(byte_FFFF9BBB).w bne.s loc_4E788 move.b #4,(byte_FFFF9C37).w bra.w loc_4E80E ; --------------------------------------------------------------------------- loc_4E788: ; CODE XREF: sub_4DD5C+A12j ; sub_4DD5C+A18j ... btst #5,(byte_FFFF9BBC).w bne.s loc_4E79C tst.b (byte_FFFF9C36).w beq.s loc_4E79C loc_4E796: ; CODE XREF: sub_4DD5C+A58j move.b d5,(byte_FFFF9C37).w bra.s loc_4E80E ; --------------------------------------------------------------------------- loc_4E79C: ; CODE XREF: sub_4DD5C+A32j ; sub_4DD5C+A38j cmp.b d3,d5 bne.s loc_4E7B6 btst #5,(byte_FFFF9BBC).w beq.s loc_4E7B6 tst.b (byte_FFFF9C36).w beq.s loc_4E7B6 btst #2,(byte_FFFF9BBB).w beq.s loc_4E796 loc_4E7B6: ; CODE XREF: sub_4DD5C+A42j ; sub_4DD5C+A4Aj ... btst #5,(byte_FFFF9BBC).w beq.s loc_4E7D4 cmp.b (byte_FFFF9C36).w,d6 bne.s loc_4E7D4 btst #2,(byte_FFFF9BBB).w bne.s loc_4E7D4 loc_4E7CC: ; CODE XREF: sub_4DD5C+A94j moveq #6,d1 move.b d1,(byte_FFFF9C37).w bra.s loc_4E80E ; --------------------------------------------------------------------------- loc_4E7D4: ; CODE XREF: sub_4DD5C+A60j ; sub_4DD5C+A66j ... btst #5,(byte_FFFF9BBC).w beq.s loc_4E7F2 tst.b (byte_FFFF9C36).w bne.s loc_4E7F2 btst #2,(byte_FFFF9BBB).w bne.s loc_4E7F2 btst #0,(byte_FFFF9BBD).w beq.s loc_4E7CC loc_4E7F2: ; CODE XREF: sub_4DD5C+A7Ej ; sub_4DD5C+A84j ... btst #5,(byte_FFFF9BBC).w beq.s loc_4E80E cmp.b (byte_FFFF9C36).w,d2 bne.s loc_4E80E btst #2,(byte_FFFF9BBB).w bne.s loc_4E80E move.b #7,(byte_FFFF9C37).w loc_4E80E: ; CODE XREF: sub_4DD5C+97Cj ; sub_4DD5C+9EAj ... move.b (byte_FFFF9C37).w,d0 clr.l d5 move.b d0,d5 movea.l off_8A5FC(d5.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_4E820: ; DATA XREF: OS4:0008A614o bset #0,(byte_FFFF9BBD).w move.b (byte_FFFF95DC).w,(byte_FFFF9C39).w cmpi.b #6,(byte_FFFF9C38).w beq.s loc_4E844 move.w (word_FFFF95B6).w,d3 cmp.w (word_FFFF9C34).w,d3 bls.s loc_4E844 move.w (word_FFFF95B6).w,(word_FFFF9BD4).w loc_4E844: ; CODE XREF: sub_4DD5C+AD6j ; sub_4DD5C+AE0j move.w (word_FFFF95B6).w,d4 move.w (word_FFFF9C34).w,d3 sub.w (X_SHIFT_KE_ETC_STAB_JUMP_DOWN_THRESHOLD).l,d3 ; Threshold for the difference between actual and target engine speed that causes the target to jump down. ; RPM bcc.s loc_4E856 clr.w d3 loc_4E856: ; CODE XREF: sub_4DD5C+AF6j cmp.w d3,d4 bcc.s loc_4E874 move.w (word_FFFF9BD4).w,d3 sub.w (X_SHIFT_KE_ETC_STAB_JUMP_DOWN_THRESHOLD).l,d3 ; Threshold for the difference between actual and target engine speed that causes the target to jump down. ; RPM bcc.s loc_4E868 clr.w d3 loc_4E868: ; CODE XREF: sub_4DD5C+B08j cmp.w d3,d4 bcc.s loc_4E874 move.w (word_FFFF9C34).w,(word_FFFF9BD4).w bra.s loc_4E8EE ; --------------------------------------------------------------------------- loc_4E874: ; CODE XREF: sub_4DD5C+AFCj ; sub_4DD5C+B0Ej move.w (word_FFFF9C34).w,d3 sub.w (X_SHIFT_KE_ETC_STAB_JUMP_DOWN_THRESHOLD).l,d3 ; Threshold for the difference between actual and target engine speed that causes the target to jump down. ; RPM bcc.s loc_4E882 clr.w d3 loc_4E882: ; CODE XREF: sub_4DD5C+B22j cmp.w d3,d4 bls.s loc_4E8AC move.w (word_FFFF9BD4).w,d3 sub.w (X_SHIFT_KE_ETC_STAB_JUMP_DOWN_THRESHOLD).l,d3 ; Threshold for the difference between actual and target engine speed that causes the target to jump down. ; RPM bcc.s loc_4E894 clr.w d3 loc_4E894: ; CODE XREF: sub_4DD5C+B34j cmp.w d3,d4 bcc.s loc_4E8AC move.l d4,d3 add.w (X_SHIFT_KE_ETC_STAB_JUMP_DOWN_THRESHOLD).l,d3 ; Threshold for the difference between actual and target engine speed that causes the target to jump down. ; RPM cmpi.w #$7FFF,d3 bhi.s loc_4E8E4 loc_4E8A6: ; CODE XREF: sub_4DD5C+B86j ; sub_4DD5C+B8Cj ... move.w d3,(word_FFFF9BD4).w bra.s loc_4E8EE ; --------------------------------------------------------------------------- loc_4E8AC: ; CODE XREF: sub_4DD5C+B28j ; sub_4DD5C+B3Aj move.w (word_FFFF9BD4).w,d3 cmp.w (word_FFFF9C34).w,d3 bls.s loc_4E8EE movea.l (dword_FFFFB5DE).w,a2 clr.l d3 move.w $A(a2),d3 move.w (X_SHIFT_KE_ETC_STAB_RPM_DECREASE_RATE).l,d1 ; Rate at which the engine speed limit is ramped down. ; RPM/Sec ext.l d1 muls.l d3,d1 cmpi.l #$7FFFFFFF,d1 bhi.s loc_4E8EA divu.w #$A0,d1 ; '?' bvs.s loc_4E8E4 move.w (word_FFFF9BD4).w,d3 sub.w d1,d3 bcs.s loc_4E8EA bra.s loc_4E8A6 ; --------------------------------------------------------------------------- loc_4E8E4: ; CODE XREF: sub_4DD5C+B48j ; sub_4DD5C+B7Cj move.w #$7FFF,d3 bra.s loc_4E8A6 ; --------------------------------------------------------------------------- loc_4E8EA: ; CODE XREF: sub_4DD5C+B76j ; sub_4DD5C+B84j clr.w d3 bra.s loc_4E8A6 ; --------------------------------------------------------------------------- loc_4E8EE: ; CODE XREF: sub_4DD5C+B16j ; sub_4DD5C+B4Ej ... move.w (word_FFFF9C34).w,d3 cmp.w (word_FFFF9BD4).w,d3 bcs.w loc_4E9AA bra.w loc_4E99C ; --------------------------------------------------------------------------- loc_4E8FE: ; DATA XREF: OS4:0008A618o movea.l (dword_FFFFB5DE).w,a2 clr.l d1 move.w $A(a2),d1 move.w (X_SHIFT_KE_ETC_STAB_RPM_INCREASE_RATE).l,d3 ; Rate at which the engine speed limit is ramped up. ; RPM/Sec ext.l d3 muls.l d1,d3 cmpi.l #$7FFFFFFF,d3 bhi.s loc_4E934 divu.w #$A0,d3 ; '?' bvs.s loc_4E92E add.w (word_FFFF9BD4).w,d3 bcs.s loc_4E92E cmpi.w #$7FFF,d3 bls.s loc_4E936 loc_4E92E: ; CODE XREF: sub_4DD5C+BC4j ; sub_4DD5C+BCAj move.w #$7FFF,d3 bra.s loc_4E936 ; --------------------------------------------------------------------------- loc_4E934: ; CODE XREF: sub_4DD5C+BBEj clr.w d3 loc_4E936: ; CODE XREF: sub_4DD5C+BD0j ; sub_4DD5C+BD6j move.w d3,(word_FFFF9BD4).w move.w (word_FFFF9C34).w,d4 cmp.w d4,d3 bcs.s loc_4E9AA move.w d4,(word_FFFF9BD4).w bra.s loc_4E9AA ; --------------------------------------------------------------------------- loc_4E948: ; DATA XREF: OS4:0008A608o ; OS4:0008A610o move.w (word_FFFF9BD4).w,d3 sub.w (X_SHIFT_KE_ETC_STAB_JUMP_UP_THRESHOLD).l,d3 ; Threshold for the difference between actual and target engine speed that causes the target to jump up. ; RPM bcc.s loc_4E956 clr.w d3 loc_4E956: ; CODE XREF: sub_4DD5C+BF6j cmp.w (word_FFFF95B6).w,d3 bls.s loc_4E964 loc_4E95C: ; CODE XREF: sub_4DD5C:loc_4E9A2j move.w #$7FFF,(word_FFFF9BD4).w bra.s loc_4E9AA ; --------------------------------------------------------------------------- loc_4E964: ; CODE XREF: sub_4DD5C+BFEj movea.l (dword_FFFFB5DE).w,a2 clr.l d1 move.w $A(a2),d1 move.w (X_SHIFT_KE_ETC_STAB_RPM_INCREASE_RATE).l,d3 ; Rate at which the engine speed limit is ramped up. ; RPM/Sec ext.l d3 muls.l d1,d3 cmpi.l #$7FFFFFFF,d3 bhi.s loc_4E99A divu.w #$A0,d3 ; '?' bvs.s loc_4E994 add.w (word_FFFF9BD4).w,d3 bcs.s loc_4E994 cmpi.w #$7FFF,d3 bls.s loc_4E99C loc_4E994: ; CODE XREF: sub_4DD5C+C2Aj ; sub_4DD5C+C30j move.w #$7FFF,d3 bra.s loc_4E99C ; --------------------------------------------------------------------------- loc_4E99A: ; CODE XREF: sub_4DD5C+C24j clr.w d3 loc_4E99C: ; CODE XREF: sub_4DD5C+B9Ej ; sub_4DD5C+C36j ... move.w d3,(word_FFFF9BD4).w bra.s loc_4E9AA ; --------------------------------------------------------------------------- loc_4E9A2: ; DATA XREF: OS4:off_8A5FCo ; OS4:0008A600o ... bra.s loc_4E95C ; --------------------------------------------------------------------------- loc_4E9A4: ; DATA XREF: OS4:0008A60Co move.w (word_FFFF9C34).w,(word_FFFF9BD4).w loc_4E9AA: ; CODE XREF: sub_4DD5C+B9Aj ; sub_4DD5C+BE4j ... move.b d0,(byte_FFFF9C38).w move.b (byte_FFFF95DC).w,d3 cmp.b (byte_FFFF9C39).w,d3 bne.s loc_4EA02 btst #4,(byte_FFFF9BBD).w bne.s loc_4EA02 tst.b (X_SHIFT_KE_ETC_SHIFT_STAB_ONCE_PER_GEAR).l ; Boolean calibration to show whether to reactivate ETC Shift Stabilization. When FALSE, ETC Stabilization can be reactivated. ; T/F beq.s loc_4EA02 btst #2,(byte_FFFF9BBB).w bne.s loc_4E9D4 cmp.b d0,d2 beq.s loc_4EA02 loc_4E9D4: ; CODE XREF: sub_4DD5C+C72j btst #5,(byte_FFFF9BBC).w bne.s loc_4EA14 move.w (word_FFFF9BE6).w,d1 cmp.w (word_FFFF9BC0).w,d1 bcc.s loc_4EA14 btst #0,(byte_FFFF9BBD).w beq.s loc_4EA14 tst.b (byte_FFFF9BC6).w bne.s loc_4EA02 move.w (word_FFFF95DA).w,d1 cmp.w (word_FFFF9C0A).w,d1 bcc.s loc_4EA14 cmp.b d3,d6 bls.s loc_4EA14 loc_4EA02: ; CODE XREF: sub_4DD5C+C5Aj ; sub_4DD5C+C62j ... bclr #0,(byte_FFFF9BBD).w bra.s loc_4EA14 ; --------------------------------------------------------------------------- loc_4EA0A: ; CODE XREF: sub_4DD5C+896j move.w #$7FFF,(word_FFFF9BD4).w clr.b (byte_FFFF9C37).w loc_4EA14: ; CODE XREF: sub_4DD5C+886j ; sub_4DD5C+C7Ej ... move.w (word_FFFF9C0E).w,(word_FFFF9C10).w move.b (byte_FFFF9C09).w,(byte_FFFF9BB8).w move.b (byte_FFFF95DC).w,d1 btst #4,(byte_FFFF9BBA).w bne.s loc_4EA32 bclr #7,(byte_FFFFB344).w loc_4EA32: ; CODE XREF: sub_4DD5C+CCEj jsr sub_592EA btst #5,(byte_FFFF9BBA).w beq.s loc_4EA50 movea.l #unk_FF9BB8,a0 move.l d1,d0 jsr sub_59332 bra.s loc_4EA9C ; --------------------------------------------------------------------------- loc_4EA50: ; CODE XREF: sub_4DD5C+CE2j btst #4,(byte_FFFF9BBA).w bne.s loc_4EA70 btst #6,(byte_FFFF9BBA).w beq.s loc_4EA68 cmpi.b #1,(byte_FFFF95DC).w beq.s loc_4EA70 loc_4EA68: ; CODE XREF: sub_4DD5C+D02j btst #3,(byte_FFFF9BBA).w beq.s loc_4EA96 loc_4EA70: ; CODE XREF: sub_4DD5C+CFAj ; sub_4DD5C+D0Aj movea.l #unk_FF9BB8,a1 movea.l a1,a0 move.l d1,d0 jsr sub_59368 movea.l a1,a0 move.l d1,d0 jsr sub_594F4 movea.l a1,a0 move.l d1,d0 jsr sub_5955E bra.s loc_4EA9C ; --------------------------------------------------------------------------- loc_4EA96: ; CODE XREF: sub_4DD5C+D12j bclr #5,(byte_FFFFB344).w loc_4EA9C: ; CODE XREF: sub_4DD5C+CF2j ; sub_4DD5C+D38j movea.l #unk_FF9BB8,a1 movea.l a1,a0 move.l d1,d0 jsr sub_595C0 movea.l a1,a0 move.l d1,d0 jsr sub_59626 move.w (word_FFFF95DA).w,(word_FFFF9BC4).w move.b (byte_FFFF9BB8).w,d0 move.l d0,d3 move.b (byte_FFFF95E9).w,d4 cmp.b d4,d6 bcs.s loc_4EAE2 andi.w #$FF,d4 move.b X_SHIFT_KV_MAX_GEAR_TABLE(d4.w),d4 ; Maximum allowable gear based of range selector. ; Gear cmp.b d4,d0 bls.s loc_4EAE2 tst.b (byte_FFFFA2A0).w bne.s loc_4EAE2 move.l d4,d3 loc_4EAE2: ; CODE XREF: sub_4DD5C+D6Cj ; sub_4DD5C+D7Cj ... move.b d3,(byte_FFFF9BB8).w move sr,-(sp) ori #$700,sr bclr #7,(byte_FFFF9BBA).w bclr #6,(byte_FFFF9BBA).w bclr #6,(byte_FFFF9BBC).w btst #5,(byte_FFFF9BBC).w beq.s loc_4EB14 clr.w d4 move.b (byte_FFFF95DC).w,d4 move.b #1,$22+var_640C(d4.w) loc_4EB14: ; CODE XREF: sub_4DD5C+DA8j move.b (byte_FFFF9BB8).w,d4 move.b (byte_FFFF95DC).w,d3 cmp.b d4,d3 bcc.s loc_4EB56 bset #7,(byte_FFFF9BBA).w move.w (word_FFFF9C10).w,(word_FFFF9C14).w bset #4,(byte_FFFF95E5).w move.w (word_FFFF9C10).w,(word_FFFF9BB6).w move.w (word_FFFF9BBE).w,(word_FFFF9BB4).w clr.w (word_FFFF9BBE).w bclr #0,(byte_FFFF9BBA).w clr.w (word_FFFF9BEA).w move.w (word_FFFF95DA).w,(word_FFFF9BD2).w bra.w loc_4EBE0 ; --------------------------------------------------------------------------- loc_4EB56: ; CODE XREF: sub_4DD5C+DC2j cmp.b d4,d3 bls.s loc_4EBCA bset #6,(byte_FFFF9BBA).w move.w (word_FFFF9C10).w,(word_FFFF9C12).w bset #4,(byte_FFFF95E5).w move.w (word_FFFF9C10).w,(word_FFFF9BB6).w move.w (word_FFFF9BBE).w,(word_FFFF9BB4).w clr.w (word_FFFF9BBE).w clr.w d3 move.b (byte_FFFF9BB8).w,d3 clr.b -$63EA(d3.w) bclr #4,(byte_FFFF9BBC).w btst #0,(byte_FFFF9BBA).w beq.s loc_4EBAC bset #6,(byte_FFFF9BBC).w clr.w d3 move.b (byte_FFFF9BB8).w,d3 move.b X_SHIFT_KV_DS_JUMP_SOLENOID_DELAY_TIME(d3.w),d3 ; The amount of time to delay the state change of the shift solenoidfor a jump downshift. ; Seconds bra.s loc_4EBC0 ; --------------------------------------------------------------------------- loc_4EBAC: ; CODE XREF: sub_4DD5C+E38j bset #0,(byte_FFFF9BBA).w clr.w d3 move.b (byte_FFFF9BB8).w,d3 move.b X_SHIFT_KV_DS_SOLENOID_DELAY_TIME(d3.w),d3 ; The amount of time to delay the state change of the shift solenoidfor downshift. ; Seconds loc_4EBC0: ; CODE XREF: sub_4DD5C+E4Ej andi.w #$FF,d3 move.w d3,(word_FFFF9C1E).w bra.s loc_4EBE0 ; --------------------------------------------------------------------------- loc_4EBCA: ; CODE XREF: sub_4DD5C+DFCj movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9BBE).w,d3 add.w $A(a2),d3 bcc.s loc_4EBDC move.w #$FFFF,d3 loc_4EBDC: ; CODE XREF: sub_4DD5C+E7Aj move.w d3,(word_FFFF9BBE).w loc_4EBE0: ; CODE XREF: sub_4DD5C+DF6j ; sub_4DD5C+E6Cj move.b (byte_FFFF95DC).w,d3 cmp.b (byte_FFFF9BB8).w,d3 beq.s loc_4EBFE move.w (word_FFFF95F6).w,d3 cmp.w (X_SHIFT_KE_SHIFT_CAUSED_BY_RANGE_TIME).l,d3 ; Time used to determine a shift caused be a range change. ; Seconds bhi.s loc_4EBFE bset #1,(byte_FFFF9BBA).w bra.s loc_4EC04 ; --------------------------------------------------------------------------- loc_4EBFE: ; CODE XREF: sub_4DD5C+E8Cj ; sub_4DD5C+E98j bclr #1,(byte_FFFF9BBA).w loc_4EC04: ; CODE XREF: sub_4DD5C+EA0j tst.b (X_SHIFT_KE_32_23_SOLENOID_DELAY_ENABLE).l ; 2-3 upshift solenoid state change delay is active after a 2-3 upshift. ; T/F beq.w loc_4ECDA moveq #2,d2 cmp.b (byte_FFFF95DC).w,d2 bne.s loc_4EC2C cmpi.b #1,(byte_FFFF9BB8).w bne.s loc_4EC2C clr.w (word_FFFF9BCE).w clr.w (word_FFFF9C1A).w move.b #1,(byte_FFFF9C1C).w loc_4EC2C: ; CODE XREF: sub_4DD5C+EB8j ; sub_4DD5C+EC0j move.b (byte_FFFF95DC).w,d3 moveq #1,d4 cmp.b d3,d4 beq.s loc_4EC3A tst.b d3 bne.s loc_4EC58 loc_4EC3A: ; CODE XREF: sub_4DD5C+ED8j tst.b (byte_FFFF9C1C).w beq.s loc_4EC58 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9C1A).w,d3 add.w $A(a2),d3 bcc.s loc_4EC52 move.w #$FFFF,d3 loc_4EC52: ; CODE XREF: sub_4DD5C+EF0j move.w d3,(word_FFFF9C1A).w bra.s loc_4EC5C ; --------------------------------------------------------------------------- loc_4EC58: ; CODE XREF: sub_4DD5C+EDCj ; sub_4DD5C+EE2j clr.w (word_FFFF9C1A).w loc_4EC5C: ; CODE XREF: sub_4DD5C+EFAj cmp.b (byte_FFFF95DC).w,d4 bne.s loc_4EC98 cmp.b (byte_FFFF9BB8).w,d2 bne.s loc_4EC98 move.w (word_FFFF9C1A).w,d3 cmp.w (X_SHIFT_KE_32_23_LOW_TIME).l,d3 ; If time since 3-2 downshift is less than this, the 2-3 shift should not be delayed. ; Seconds bls.s loc_4EC92 cmp.w (X_SHIFT_KE_32_23_HIGH_TIME).l,d3 ; If time since 3-2 downshift is greater than this, the 2-3 shift should not be delayed. ; Seconds bcc.s loc_4EC92 btst #7,(byte_FFFF95E5).w bne.s loc_4EC92 bset #4,(byte_FFFF9BBB).w bset #3,(byte_FFFF9BBB).w bra.s loc_4EC98 ; --------------------------------------------------------------------------- loc_4EC92: ; CODE XREF: sub_4DD5C+F16j ; sub_4DD5C+F1Ej ... bclr #4,(byte_FFFF9BBB).w loc_4EC98: ; CODE XREF: sub_4DD5C+F04j ; sub_4DD5C+F0Aj ... btst #4,(byte_FFFF9BBB).w beq.s loc_4ECDA move.w (word_FFFF9BCE).w,d1 cmp.w (X_SHIFT_KE_32_23_SOL_DELAY_TIME).l,d1 ; Threshold delay time for the solenoid state change for 2-3 upshift after 3-2 downshift. ; Seconds bcs.s loc_4ECC6 clr.b (byte_FFFF9C1C).w bclr #4,(byte_FFFF9BBB).w move.w (word_FFFF9BCE).w,(word_FFFF9BD0).w clr.w (word_FFFF9BCE).w clr.w (word_FFFF9C1A).w bra.s loc_4ECDA ; --------------------------------------------------------------------------- loc_4ECC6: ; CODE XREF: sub_4DD5C+F4Ej movea.l (dword_FFFFB5DE).w,a2 move.l d1,d3 add.w $A(a2),d3 bcc.s loc_4ECD6 move.w #$FFFF,d3 loc_4ECD6: ; CODE XREF: sub_4DD5C+F74j move.w d3,(word_FFFF9BCE).w loc_4ECDA: ; CODE XREF: sub_4DD5C+EAEj ; sub_4DD5C+F42j ... btst #0,(byte_FFFF9BBA).w beq.s loc_4ED26 btst #6,(byte_FFFF9BBC).w beq.s loc_4ECF4 move.b (byte_FFFF95DC).w,(byte_FFFF9BB9).w clr.w (word_FFFF9BEA).w loc_4ECF4: ; CODE XREF: sub_4DD5C+F8Cj move.w (word_FFFF9BEA).w,d1 cmp.w (word_FFFF9C1E).w,d1 bcs.s loc_4ED10 move.b (byte_FFFF9BB8).w,(byte_FFFF9BB9).w bclr #0,(byte_FFFF9BBA).w clr.w (word_FFFF9BEA).w bra.s loc_4ED34 ; --------------------------------------------------------------------------- loc_4ED10: ; CODE XREF: sub_4DD5C+FA0j movea.l (dword_FFFFB5DE).w,a2 move.l d1,d3 add.w $A(a2),d3 bcc.s loc_4ED20 move.w #$FFFF,d3 loc_4ED20: ; CODE XREF: sub_4DD5C+FBEj move.w d3,(word_FFFF9BEA).w bra.s loc_4ED34 ; --------------------------------------------------------------------------- loc_4ED26: ; CODE XREF: sub_4DD5C+F84j btst #4,(byte_FFFF9BBB).w bne.s loc_4ED34 move.b (byte_FFFF9BB8).w,(byte_FFFF9BB9).w loc_4ED34: ; CODE XREF: sub_4DD5C+FB2j ; sub_4DD5C+FC8j ... move.b (byte_FFFF9BB9).w,d1 move.b (byte_FFFF9BB8).w,d0 jsr sub_54162 move (sp)+,sr jsr sub_5923E movem.l (sp)+,d0-d2/d6-a1/a4 rts ; End of function sub_4DD5C ; =============== S U B R O U T I N E ======================================= sub_4ED50: ; CODE XREF: DoLoopF+38Ap move.l d1,-(sp) move.w (word_FFFF95A2).w,d5 sub.w (word_FFFF9C30).w,d5 move.w (word_FFFF95A2).w,(word_FFFF9C30).w muls.w #$2800,d5 movea.l (dword_FFFFB5DE).w,a2 move.w $A(a2),d3 mulu.w (X_SHIFT_KE_VEHICLE_SPEED_RATIO).l,d3 ; Output_Speed / Vehicle_Speed Ratio. ; 60 RPMI divu.w #$400,d3 bvc.s loc_4ED7C move.w #$FFFF,d3 loc_4ED7C: ; CODE XREF: sub_4ED50+26j andi.l #$FFFF,d3 divs.l d3,d5 bvs.s loc_4ED98 cmpi.l #$FFFF8000,d5 blt.s loc_4ED9E cmpi.l #$7FFF,d5 ble.s loc_4EDA2 loc_4ED98: ; CODE XREF: sub_4ED50+36j move.w #$7FFF,d5 bra.s loc_4EDA2 ; --------------------------------------------------------------------------- loc_4ED9E: ; CODE XREF: sub_4ED50+3Ej move.w #$8000,d5 loc_4EDA2: ; CODE XREF: sub_4ED50+46j ; sub_4ED50+4Cj clr.l d1 move.w (X_SHIFT_KE_VEH_ACCELERATION_FILTER_COEFF).l,d1 ; Lag filter coefficient for filtering vehicle acceleration. ; Coeff move.l d5,d3 sub.w (word_FFFF9BC8).w,d3 bvc.s loc_4EDBE bpl.s loc_4EDBA move.w #$7FFF,d3 bra.s loc_4EDBE ; --------------------------------------------------------------------------- loc_4EDBA: ; CODE XREF: sub_4ED50+62j move.w #$8000,d3 loc_4EDBE: ; CODE XREF: sub_4ED50+60j ; sub_4ED50+68j ext.l d3 muls.l d1,d3 bpl.s loc_4EDCC addi.l #$FFFF,d3 loc_4EDCC: ; CODE XREF: sub_4ED50+74j asr.l #8,d3 asr.l #8,d3 add.w (word_FFFF9BC8).w,d3 bvc.s loc_4EDE2 bpl.s loc_4EDDE move.w #$7FFF,d3 bra.s loc_4EDE2 ; --------------------------------------------------------------------------- loc_4EDDE: ; CODE XREF: sub_4ED50+86j move.w #$8000,d3 loc_4EDE2: ; CODE XREF: sub_4ED50+84j ; sub_4ED50+8Cj move.w d3,(word_FFFF9BC8).w clr.w d3 move.b (X_SHIFT_KE_WHEEL_SLIP_FILTER_COEFF).l,d3 ; The filter coefficient for filtering the wheel slip acceleration ; None sub.w (word_FFFF9BCA).w,d5 bvc.s loc_4EE00 bpl.s loc_4EDFC move.w #$7FFF,d5 bra.s loc_4EE00 ; --------------------------------------------------------------------------- loc_4EDFC: ; CODE XREF: sub_4ED50+A4j move.w #$8000,d5 loc_4EE00: ; CODE XREF: sub_4ED50+A2j ; sub_4ED50+AAj muls.w d5,d3 bpl.s loc_4EE0A addi.l #$FF,d3 loc_4EE0A: ; CODE XREF: sub_4ED50+B2j asr.l #8,d3 add.w (word_FFFF9BCA).w,d3 bvc.s loc_4EE1E bpl.s loc_4EE1A move.w #$7FFF,d3 bra.s loc_4EE1E ; --------------------------------------------------------------------------- loc_4EE1A: ; CODE XREF: sub_4ED50+C2j move.w #$8000,d3 loc_4EE1E: ; CODE XREF: sub_4ED50+C0j ; sub_4ED50+C8j move.w d3,(word_FFFF9BCA).w clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFF9BC8).w,d4 cmp.w X_SHIFT_KV_STABIL_DISABLE_VEH_ACCEL_HI(d3.w*2),d4 ; If Vehicle acceleration is grater than this cal then shift stabilization is disabled. ; MPH_per_Second_S ble.s loc_4EE3E move.b #1,(byte_FFFF9BC6).w bra.s loc_4EE4C ; --------------------------------------------------------------------------- loc_4EE3E: ; CODE XREF: sub_4ED50+E4j cmp.w X_SHIFT_KV_STABIL_DISABLE_VEH_ACCEL_LO(d3.w*2),d4 ; If Vehicle acceleration is less than this cal then shift stabilization is enabled. ; MPH_per_Second_S bge.s loc_4EE4C clr.b (byte_FFFF9BC6).w loc_4EE4C: ; CODE XREF: sub_4ED50+ECj ; sub_4ED50+F6j move.l (sp)+,d1 rts ; End of function sub_4ED50 ; =============== S U B R O U T I N E ======================================= sub_4EE50: ; CODE XREF: OS1:00028C68p move.w (X_SHIFT_KE_URBAN_ABOVE_MPH_TIME).l,(word_FFFF9BEE).w ; This calibration is used to disable the Urban Pattern if time has expired. ; Secs move.w (X_SHIFT_KE_URBAN_ENG_BRAKE_TIME).l,(word_FFFF9BF2).w ; This specifies how long the vehicle must be in urban engine braking conditions before exiting urban conditions. ; Secs move.b #1,(byte_FFFF9C20).w move.w #$7FFF,(word_FFFF9BD4).w clr.b (byte_FFFF9C37).w move.b (TCM_OPTIONS_K_DEFAULT_GEAR).l,(byte_FFFF9C09).w ; Default hydraulic gear for the transmission. ; Gear rts ; End of function sub_4EE50 ; =============== S U B R O U T I N E ======================================= sub_4EE7A: ; CODE XREF: DoLoopE+B4p jsr sub_5A336 jsr sub_5A582 jsr sub_5B246 jsr sub_5A6A0 jsr sub_5AB46 jsr sub_5AB84 rts ; End of function sub_4EE7A ; =============== S U B R O U T I N E ======================================= sub_4EEA0: ; CODE XREF: DoLoopD+C6p jsr sub_5B2CA jsr sub_5B3B2 jsr sub_5B3F8 rts ; End of function sub_4EEA0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4EEB4: ; CODE XREF: DoLoopD+9Ap var_8 = -8 var_4 = -4 link a6,#-8 movem.l d0-d2/d6-a1/a4,-(sp) btst #4,(byte_FFFFA8FE).w bne.s loc_4EECE btst #7,(byte_FFFFA8FE).w loc_4EECA: ; DATA XREF: sub_850+1DAo beq.w loc_4EFB0 loc_4EECE: ; CODE XREF: sub_4EEB4+Ej clr.w d0 move.b (byte_FFFF95F4).w,d0 moveq #3,d2 mulu.w d2,d0 add.b (byte_FFFF95DC).w,d0 andi.w #$FF,d0 movea.l off_89976(d0.w*4),a0 move.w (word_FFFFA902).w,d0 jsr sub_87710 move.w d0,(word_FFFFA90E).w move.b (byte_FFFF95DC).w,d3 clr.l d6 move.b d3,d6 movea.l off_899B2(d6.w*4),a1 move.l a1,var_8(a6) clr.w d1 move.b (byte_FFFF95F4).w,d1 mulu.w d2,d1 add.b d3,d1 andi.w #$FF,d1 movea.l off_8999A(d1.w*4),a4 move.l a4,var_4(a6) move.l var_8(a6),d6 beq.w loc_4EFB0 move.l var_4(a6),d7 beq.s loc_4EFB0 move.b (byte_FFFF958E).w,d1 clr.w d3 moveq #$56,d6 ; 'V' cmp.b d1,d6 bls.s loc_4EF42 move.l d3,d1 bra.s loc_4EF60 ; --------------------------------------------------------------------------- loc_4EF42: ; CODE XREF: sub_4EEB4+88j cmpi.b #$7A,d1 ; 'z' bcc.s loc_4EF5C sub.b d6,d1 andi.w #$FF,d1 asl.w #8,d1 andi.l #$FFFF,d1 divu.w #9,d1 bra.s loc_4EF60 ; --------------------------------------------------------------------------- loc_4EF5C: ; CODE XREF: sub_4EEB4+92j move.w #$400,d1 loc_4EF60: ; CODE XREF: sub_4EEB4+8Cj ; sub_4EEB4+A6j tblu.b (a1),d1 move.b d1,(byte_FFFFA92A).w move.w (word_FFFFA902).w,d0 movea.l a4,a0 jsr sub_876D6 move.w d0,(word_FFFFA92C).w andi.w #$FF,d1 muls.w d0,d1 bpl.s loc_4EF86 addi.l #$FF,d1 loc_4EF86: ; CODE XREF: sub_4EEB4+CAj asr.l #8,d1 move.w d1,(word_FFFFA92C).w move.w d1,d5 ext.l d5 clr.l d3 move.w (word_FFFFA90E).w,d3 add.l d5,d3 tst.l d3 blt.s loc_4EFAA cmpi.l #$FFFF,d3 bls.s loc_4EFAC move.w #$FFFF,d3 bra.s loc_4EFAC ; --------------------------------------------------------------------------- loc_4EFAA: ; CODE XREF: sub_4EEB4+E6j clr.w d3 loc_4EFAC: ; CODE XREF: sub_4EEB4+EEj ; sub_4EEB4+F4j move.w d3,(word_FFFFA90E).w loc_4EFB0: ; CODE XREF: sub_4EEB4:loc_4EECAj ; sub_4EEB4+74j ... movem.l (sp)+,d0-d2/d6-a1/a4 unlk a6 rts ; End of function sub_4EEB4 ; =============== S U B R O U T I N E ======================================= sub_4EFB8: ; CODE XREF: DoLoopD+94p bclr #7,(byte_FFFFA8FE).w bclr #6,(byte_FFFFA8FE).w btst #4,(byte_FFFF95E5).w beq.s locret_4EFF0 bclr #4,(byte_FFFF95E5).w btst #7,(byte_FFFF9BBA).w beq.s loc_4EFE2 bset #7,(byte_FFFFA8FE).w bra.s locret_4EFF0 ; --------------------------------------------------------------------------- loc_4EFE2: ; CODE XREF: sub_4EFB8+20j btst #6,(byte_FFFF9BBA).w beq.s locret_4EFF0 bset #6,(byte_FFFFA8FE).w locret_4EFF0: ; CODE XREF: sub_4EFB8+12j ; sub_4EFB8+28j ... rts ; End of function sub_4EFB8 ; =============== S U B R O U T I N E ======================================= sub_4EFF2: ; CODE XREF: DoLoopD+A6p var_56F0 = -$56F0 var_56EA = -$56EA movem.l d0-d2,-(sp) btst #7,(byte_FFFFA8FE).w beq.s loc_4F04C move.b #1,(byte_FFFFA910).w clr.b (byte_FFFFB414).w bset #4,(byte_FFFFA8FE).w bclr #3,(byte_FFFFA8FE).w bclr #7,(byte_FFFFA8FF).w bclr #0,(byte_FFFFA8FE).w bclr #4,(byte_FFFFA8FF).w bclr #1,(byte_FFFFA8FE).w bclr #3,(byte_FFFFA900).w clr.w (word_FFFFA90C).w movea.w (word_FFFFA668).w,a2 move.w a2,(word_FFFFA912).w clr.w d1 move.b (byte_FFFF95DC).w,d1 move.w a2,$C+var_56F0(d1.w*2) bra.s loc_4F0B2 ; --------------------------------------------------------------------------- loc_4F04C: ; CODE XREF: sub_4EFF2+Aj btst #6,(byte_FFFFA8FE).w beq.s loc_4F0A6 move.b #2,(byte_FFFFA910).w btst #3,(byte_FFFFA8FE).w beq.s loc_4F06A bset #3,(byte_FFFFA900).w bra.s loc_4F070 ; --------------------------------------------------------------------------- loc_4F06A: ; CODE XREF: sub_4EFF2+6Ej bclr #3,(byte_FFFFA900).w loc_4F070: ; CODE XREF: sub_4EFF2+76j bset #3,(byte_FFFFA8FE).w bclr #4,(byte_FFFFA8FE).w bclr #7,(byte_FFFFA8FF).w bclr #0,(byte_FFFFA8FE).w bclr #1,(byte_FFFFA8FE).w bclr #7,(byte_FFFFA900).w bclr #6,(byte_FFFFA900).w bclr #5,(byte_FFFFA900).w clr.w (word_FFFFA90C).w bra.s loc_4F0B2 ; --------------------------------------------------------------------------- loc_4F0A6: ; CODE XREF: sub_4EFF2+60j btst #1,(byte_FFFFA8FE).w beq.s loc_4F0B2 clr.b (byte_FFFFA910).w loc_4F0B2: ; CODE XREF: sub_4EFF2+58j ; sub_4EFF2+B2j ... clr.w d1 bclr #4,(byte_FFFFA900).w tst.b (TCM_OPTIONS_KE_TRANS_HAS_SIGNED_TORQUE_MODEL).l ; When TRUE, allows for signed engine torque values and uses the negative torque model. ; T/F beq.s loc_4F0CA tst.b (TCM_OPTIONS_KE_SIGNED_TRQ_SHIFT_PRESS_ENBL).l ; When TRUE, signed torque pressure control is enabled if KE_Trans_Has_Signed_Torque_Model is also TRUE. ; T/F bne.s loc_4F0D0 loc_4F0CA: ; CODE XREF: sub_4EFF2+CEj move.w (word_FFFF95CE).w,d2 bra.s loc_4F0D4 ; --------------------------------------------------------------------------- loc_4F0D0: ; CODE XREF: sub_4EFF2+D6j move.w (word_FFFF95D0).w,d2 loc_4F0D4: ; CODE XREF: sub_4EFF2+DCj move.b (byte_FFFFA910).w,d3 cmpi.b #1,d3 bhi.w loc_4F2C8 beq.s loc_4F0FE bclr #7,(byte_FFFFA91C).w bclr #6,(byte_FFFFA91C).w clr.w (word_FFFFA902).w clr.w (word_FFFFA90A).w clr.w (word_FFFFA904).w bra.w loc_4F3AA ; --------------------------------------------------------------------------- loc_4F0FE: ; CODE XREF: sub_4EFF2+EEj move.w (word_FFFF95AC).w,d3 move.w d3,(word_FFFFA930).w btst #7,(byte_FFFFA8FF).w beq.w loc_4F236 move.l d2,d3 add.w (word_FFFFA908).w,d3 cmpi.w #$1770,d3 ble.s loc_4F120 move.w #$1770,d3 loc_4F120: ; CODE XREF: sub_4EFF2+128j tst.w d3 bge.s loc_4F12A clr.w (word_FFFFA906).w bra.s loc_4F12E ; --------------------------------------------------------------------------- loc_4F12A: ; CODE XREF: sub_4EFF2+130j move.w d3,(word_FFFFA906).w loc_4F12E: ; CODE XREF: sub_4EFF2+136j btst #6,(byte_FFFFA91C).w beq.s loc_4F15E loc_4F136: ; CODE XREF: sub_4EFF2+18Ej move.w d3,(word_FFFFA904).w cmpi.w #$7FFF,d3 bls.s loc_4F142 move.l d1,d3 loc_4F142: ; CODE XREF: sub_4EFF2+14Cj move.w d3,(word_FFFFA902).w bset #4,(byte_FFFFA900).w loc_4F14C: ; CODE XREF: sub_4EFF2+240j move.w (word_FFFFA904).w,(word_FFFFA934).w moveq #1,d1 bclr #5,(byte_FFFFA91C).w bra.w loc_4F3AA ; --------------------------------------------------------------------------- loc_4F15E: ; CODE XREF: sub_4EFF2+142j move.w (word_FFFF9582).w,d0 move.w (word_FFFFA912).w,d5 add.w (X_TIMING_KE_POSITIVE_DELTA_SHIFT_THROTTLE).l,d5 ; Used to detect an increase in throttleby a specific amount. ; Percent cmpi.w #$7FFF,d5 bls.s loc_4F176 move.w #$7FFF,d5 loc_4F176: ; CODE XREF: sub_4EFF2+17Ej cmp.w d5,d0 bls.s loc_4F182 bset #6,(byte_FFFFA91C).w bra.s loc_4F136 ; --------------------------------------------------------------------------- loc_4F182: ; CODE XREF: sub_4EFF2+186j move.w (word_FFFFA912).w,d4 sub.w (word_FFFF9582).w,d4 bcc.s loc_4F18E move.l d1,d4 loc_4F18E: ; CODE XREF: sub_4EFF2+198j cmp.w (X_TIMING_KE_SHIFT_LIFTFOOT_THROTTLE).l,d4 ; Used to detect when a liftfoot throttle condition has taken place. ; Percent bcs.s loc_4F1E8 cmp.w (X_TIMING_KE_MINIMUM_SHIFT_THROTTLE).l,d0 ; Used to detect when a minimum threshold throttle has been exceeded. ; Percent bcc.s loc_4F1E8 btst #5,(byte_FFFFA91C).w bne.s loc_4F1B2 move.w (word_FFFFA904).w,(word_FFFFA932).w bset #5,(byte_FFFFA91C).w loc_4F1B2: ; CODE XREF: sub_4EFF2+1B2j tst.b (TCM_OPTIONS_KE_SIGNED_TRQ_SHIFT_PRESS_ENBL).l ; When TRUE, signed torque pressure control is enabled if KE_Trans_Has_Signed_Torque_Model is also TRUE. ; T/F beq.s loc_4F1C0 move.w d2,(word_FFFFA904).w bra.s loc_4F1C6 ; --------------------------------------------------------------------------- loc_4F1C0: ; CODE XREF: sub_4EFF2+1C6j move.w (word_FFFF95CE).w,(word_FFFFA904).w loc_4F1C6: ; CODE XREF: sub_4EFF2+1CCj bset #4,(byte_FFFFA900).w move.w (word_FFFFA904).w,d3 cmpi.w #$7FFF,d3 bls.s loc_4F1D8 move.l d1,d3 loc_4F1D8: ; CODE XREF: sub_4EFF2+1E2j move.w d3,(word_FFFFA902).w loc_4F1DC: ; CODE XREF: sub_4EFF2+228j move.w (word_FFFFA904).w,(word_FFFFA934).w moveq #1,d1 bra.w loc_4F3AA ; --------------------------------------------------------------------------- loc_4F1E8: ; CODE XREF: sub_4EFF2+1A2j ; sub_4EFF2+1AAj move.w (word_FFFFA912).w,d5 sub.w (X_TIMING_KE_NEGATIVE_DELTA_SHIFT_THROTTLE).l,d5 ; Used to detect an increase in throttleby a specific amount. ; Percent bcc.s loc_4F1F6 move.l d1,d5 loc_4F1F6: ; CODE XREF: sub_4EFF2+200j cmp.w d5,d0 bcc.s loc_4F21C move.w d0,(word_FFFFA912).w move.w d3,(word_FFFFA904).w cmpi.w #$7FFF,d3 bls.s loc_4F20A move.l d1,d3 loc_4F20A: ; CODE XREF: sub_4EFF2+214j move.w d3,(word_FFFFA902).w bset #4,(byte_FFFFA900).w bclr #5,(byte_FFFFA91C).w bra.s loc_4F1DC ; --------------------------------------------------------------------------- loc_4F21C: ; CODE XREF: sub_4EFF2+206j btst #5,(byte_FFFFA91C).w beq.w loc_4F3AA movea.w (word_FFFFA932).w,a2 move.w a2,(word_FFFFA904).w move.w a2,(word_FFFFA902).w bra.w loc_4F14C ; --------------------------------------------------------------------------- loc_4F236: ; CODE XREF: sub_4EFF2+11Aj tst.b (byte_FFFFB4C0).w bne.s loc_4F26E clr.w d4 move.b (byte_FFFF95DC).w,d4 mulu.w #$22,d4 ; '"' lea unk_1D7C4(d4.l),a2 cmpi.w #$6400,d3 bcc.s loc_4F262 andi.l #$FFFF,d3 asl.l #2,d3 divu.w #$19,d3 bra.s loc_4F266 ; --------------------------------------------------------------------------- loc_4F262: ; CODE XREF: sub_4EFF2+260j move.w #$1000,d3 loc_4F266: ; CODE XREF: sub_4EFF2+26Ej tblu.w (a2),d3 move.w d3,(word_FFFFA908).w loc_4F26E: ; CODE XREF: sub_4EFF2+248j move.l d2,d3 add.w (word_FFFFA908).w,d3 cmpi.w #$1770,d3 ble.s loc_4F27E move.w #$1770,d3 loc_4F27E: ; CODE XREF: sub_4EFF2+286j tst.w d3 bge.s loc_4F288 clr.w (word_FFFFA906).w bra.s loc_4F28C ; --------------------------------------------------------------------------- loc_4F288: ; CODE XREF: sub_4EFF2+28Ej move.w d3,(word_FFFFA906).w loc_4F28C: ; CODE XREF: sub_4EFF2+294j move.w d3,(word_FFFFA904).w cmpi.w #$7FFF,d3 bls.s loc_4F298 move.l d1,d3 loc_4F298: ; CODE XREF: sub_4EFF2+2A2j move.w d3,(word_FFFFA902).w bclr #6,(byte_FFFFA91C).w bset #4,(byte_FFFFA900).w movea.w (word_FFFFA904).w,a2 move.w a2,(word_FFFFA934).w moveq #1,d1 bclr #5,(byte_FFFFA91C).w clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w a2,$C+var_56EA(d3.w*2) bra.w loc_4F3AA ; --------------------------------------------------------------------------- loc_4F2C8: ; CODE XREF: sub_4EFF2+EAj move.w (word_FFFF95AE).w,d3 move.w d3,(word_FFFFA930).w btst #7,(byte_FFFFA8FF).w bne.s loc_4F310 btst #7,(byte_FFFFA91C).w bne.s loc_4F310 move.b (byte_FFFF95DC).w,d4 cmpi.b #3,d4 bcc.s loc_4F2EC addq.b #1,d4 loc_4F2EC: ; CODE XREF: sub_4EFF2+2F6j andi.w #$FF,d4 mulu.w #$22,d4 ; '"' lea unk_1D7C4(d4.l),a2 cmpi.w #$6400,d3 bcs.s loc_4F348 loc_4F302: ; CODE XREF: sub_4EFF2+354j move.w #$1000,d3 loc_4F306: ; CODE XREF: sub_4EFF2+362j tblu.w (a2),d3 move.w d3,(word_FFFFA908).w bra.s loc_4F364 ; --------------------------------------------------------------------------- loc_4F310: ; CODE XREF: sub_4EFF2+2E4j ; sub_4EFF2+2ECj btst #7,(byte_FFFFA91C).w beq.s loc_4F356 btst #6,(byte_FFFFA8FE).w beq.s loc_4F356 move.b (byte_FFFF95DC).w,d4 moveq #3,d0 cmp.b d4,d0 bls.s loc_4F32C addq.b #1,d4 loc_4F32C: ; CODE XREF: sub_4EFF2+336j andi.w #$FF,d4 mulu.w #$22,d4 ; '"' lea unk_1D7C4(d4.l),a2 movea.w #$1000,a3 move.l d1,d4 cmpi.w #$6400,d3 bcc.s loc_4F302 loc_4F348: ; CODE XREF: sub_4EFF2+30Ej andi.l #$FFFF,d3 asl.l #2,d3 divu.w #$19,d3 bra.s loc_4F306 ; --------------------------------------------------------------------------- loc_4F356: ; CODE XREF: sub_4EFF2+324j ; sub_4EFF2+32Cj btst #7,(byte_FFFFA8FF).w beq.s loc_4F364 bset #7,(byte_FFFFA91C).w loc_4F364: ; CODE XREF: sub_4EFF2+31Cj ; sub_4EFF2+36Aj move.l d2,d3 sub.w (word_FFFFA908).w,d3 cmpi.w #$E890,d3 bge.s loc_4F374 move.w #$E890,d3 loc_4F374: ; CODE XREF: sub_4EFF2+37Cj tst.w d3 bge.s loc_4F37E clr.w (word_FFFFA906).w bra.s loc_4F382 ; --------------------------------------------------------------------------- loc_4F37E: ; CODE XREF: sub_4EFF2+384j move.w d3,(word_FFFFA906).w loc_4F382: ; CODE XREF: sub_4EFF2+38Aj tst.b (X_TIMING_KE_FRZ_SHFTTRQ_MAN_DNSHFT_TRQMNT).l ; Enable/disable manual downshift inertia torque management. ; T/F beq.s loc_4F39A btst #2,(byte_FFFFB30B).w beq.s loc_4F39A btst #6,(byte_FFFFA8FE).w beq.s loc_4F3AA loc_4F39A: ; CODE XREF: sub_4EFF2+396j ; sub_4EFF2+39Ej move.w d3,(word_FFFFA904).w move.w (word_FFFFA906).w,(word_FFFFA902).w move.w (word_FFFFA904).w,(word_FFFFA934).w loc_4F3AA: ; CODE XREF: sub_4EFF2+108j ; sub_4EFF2+168j ... tst.b d1 beq.s loc_4F3EC tst.w (word_FFFFA908).w bne.s loc_4F3BC move.w #$5000,(word_FFFFA90A).w bra.s loc_4F3E6 ; --------------------------------------------------------------------------- loc_4F3BC: ; CODE XREF: sub_4EFF2+3C0j clr.l d3 move.w (word_FFFF95CE).w,d3 asl.l #8,d3 asl.l #4,d3 divu.w (word_FFFFA908).w,d3 bvs.s loc_4F3D2 cmpi.w #$7FFF,d3 bls.s loc_4F3D6 loc_4F3D2: ; CODE XREF: sub_4EFF2+3D8j move.w #$7FFF,d3 loc_4F3D6: ; CODE XREF: sub_4EFF2+3DEj move.w d3,(word_FFFFA90A).w move.w #$5000,d0 cmp.w d3,d0 bcc.s loc_4F3E6 move.w d0,(word_FFFFA90A).w loc_4F3E6: ; CODE XREF: sub_4EFF2+3C8j ; sub_4EFF2+3EEj move.w (word_FFFFA90A).w,(word_FFFFA92E).w loc_4F3EC: ; CODE XREF: sub_4EFF2+3BAj move.b (byte_FFFFA910).w,d3 cmpi.b #1,d3 bhi.w loc_4F4FE beq.s loc_4F422 bclr #4,(byte_FFFFA8FE).w bclr #3,(byte_FFFFA8FE).w bclr #5,(byte_FFFFA8FE).w bset #0,(byte_FFFFA8FE).w bset #1,(byte_FFFFA8FE).w andi.b #$E7,(byte_FFFFA91C).w bra.w loc_4F52A ; --------------------------------------------------------------------------- loc_4F422: ; CODE XREF: sub_4EFF2+406j jsr sub_5DB98 move.b (byte_FFFFA91C).w,d0 lsr.b #3,d0 moveq #3,d1 and.b d1,d0 cmpi.b #1,d0 bhi.s loc_4F46E beq.s loc_4F450 btst #7,(byte_FFFFA8FE).w beq.s loc_4F47C andi.b #$E7,(byte_FFFFA91C).w ori.b #8,(byte_FFFFA91C).w bra.s loc_4F47C ; --------------------------------------------------------------------------- loc_4F450: ; CODE XREF: sub_4EFF2+446j btst #6,(byte_FFFFA8FE).w bne.s loc_4F476 btst #0,(byte_FFFFA8FE).w beq.s loc_4F47C andi.b #$E7,(byte_FFFFA91C).w ori.b #$10,(byte_FFFFA91C).w bra.s loc_4F47C ; --------------------------------------------------------------------------- loc_4F46E: ; CODE XREF: sub_4EFF2+444j btst #0,(byte_FFFFA8FE).w beq.s loc_4F47C loc_4F476: ; CODE XREF: sub_4EFF2+464j andi.b #$E7,(byte_FFFFA91C).w loc_4F47C: ; CODE XREF: sub_4EFF2+44Ej ; sub_4EFF2+45Cj ... move.b (byte_FFFFA91C).w,d0 lsr.b #3,d0 and.b d1,d0 beq.w loc_4F50C jsr sub_5D7F6 btst #7,(byte_FFFFA8FE).w beq.s loc_4F49E jsr sub_5DBA0 bra.s loc_4F4A4 ; --------------------------------------------------------------------------- loc_4F49E: ; CODE XREF: sub_4EFF2+4A2j jsr sub_5DC70 loc_4F4A4: ; CODE XREF: sub_4EFF2+4AAj btst #0,(byte_FFFFA8FE).w beq.s loc_4F4B2 jsr sub_5DD8A loc_4F4B2: ; CODE XREF: sub_4EFF2+4B8j cmpi.b #2,d0 bne.s loc_4F50C jsr sub_5D22A btst #2,(byte_FFFFA8FE).w beq.s loc_4F50C jsr sub_5D45C move.w (word_FFFFB4A2).w,d3 mulu.w #5,d3 lsr.w #7,d3 cmp.b (TCM_IO_INTERFACE_KE_TRANS_DIAG_SYSTEM_VOLT_LOW).l,d3 ; System voltage below which transmission diagnostics willbe disabled. ; Volts bls.s loc_4F50C cmp.b (TCM_IO_INTERFACE_KE_TRANS_DIAG_SYSTEM_VOLT_HIGH).l,d3 ; System voltage above which transmission diagnostics willbe disabled. ; Volts bcc.s loc_4F50C btst #2,(byte_FFFFB1C2).w beq.s loc_4F4F6 tst.b (XDT_COMMON_KE_DISABLE_DIAG_FOR_PTO).l ; To disable diagnostics when PTO is active, set this to TRUE. ; T/F bne.s loc_4F50C loc_4F4F6: ; CODE XREF: sub_4EFF2+4FAj jsr sub_505A4 bra.s loc_4F50C ; --------------------------------------------------------------------------- loc_4F4FE: ; CODE XREF: sub_4EFF2+402j btst #0,(byte_FFFF9BBA).w bne.s loc_4F52A jsr sub_5D8BC loc_4F50C: ; CODE XREF: sub_4EFF2+492j ; sub_4EFF2+4C4j ... btst #1,(byte_FFFFA8FE).w bne.s loc_4F52A movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA90C).w,d3 add.w $A(a2),d3 bcc.s loc_4F526 move.w #$FFFF,d3 loc_4F526: ; CODE XREF: sub_4EFF2+52Ej move.w d3,(word_FFFFA90C).w loc_4F52A: ; CODE XREF: sub_4EFF2+42Cj ; sub_4EFF2+512j ... btst #6,(byte_FFFFA8FE).w beq.s loc_4F570 move.b (byte_FFFF95DC).w,d3 cmpi.b #2,d3 bne.s loc_4F542 clr.w (word_FFFFA91A).w bra.s loc_4F586 ; --------------------------------------------------------------------------- loc_4F542: ; CODE XREF: sub_4EFF2+548j cmpi.b #1,d3 bne.s loc_4F586 tst.b (TCM_OPTIONS_K_D32_PRESS_BIAS_CONTROL_AVAIL).l ; If TRUE, electronic control of the 3-2 downshift timing is available. ; BOOLEAN beq.s loc_4F586 bset #5,(byte_FFFFA8FF).w move.w (word_FFFF95B6).w,(word_FFFFA914).w move.w (word_FFFF95DA).w,(word_FFFFA918).w bclr #6,(byte_FFFFA8FF).w move.w (word_FFFF9582).w,(word_FFFFA916).w bra.s loc_4F586 ; --------------------------------------------------------------------------- loc_4F570: ; CODE XREF: sub_4EFF2+53Ej movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA91A).w,d3 add.w $A(a2),d3 bcc.s loc_4F582 move.w #$FFFF,d3 loc_4F582: ; CODE XREF: sub_4EFF2+58Aj move.w d3,(word_FFFFA91A).w loc_4F586: ; CODE XREF: sub_4EFF2+54Ej ; sub_4EFF2+554j ... btst #5,(byte_FFFFA8FF).w beq.s loc_4F5B6 btst #1,(byte_FFFFA8FE).w bne.s loc_4F5A6 btst #6,(byte_FFFFA8FE).w bne.s loc_4F5A6 btst #7,(byte_FFFFA8FE).w beq.s loc_4F5B6 loc_4F5A6: ; CODE XREF: sub_4EFF2+5A2j ; sub_4EFF2+5AAj btst #6,(byte_FFFFA8FF).w beq.s loc_4F5B6 bclr #5,(byte_FFFFA8FF).w bra.s loc_4F5BC ; --------------------------------------------------------------------------- loc_4F5B6: ; CODE XREF: sub_4EFF2+59Aj ; sub_4EFF2+5B2j ... bset #6,(byte_FFFFA8FF).w loc_4F5BC: ; CODE XREF: sub_4EFF2+5C2j movem.l (sp)+,d0-d2 rts ; End of function sub_4EFF2 ; =============== S U B R O U T I N E ======================================= sub_4F5C2: ; CODE XREF: OS1:00028C4Ap bset #0,(byte_FFFFA8FE).w bset #1,(byte_FFFFA8FE).w rts ; End of function sub_4F5C2 ; =============== S U B R O U T I N E ======================================= sub_4F5D0: ; CODE XREF: DoLoopE:loc_2A9E2p movem.l d0-d2/d6,-(sp) move.b (TCM_OPTIONS_K_TRANS_HAS_THIRD_GEAR_DEFAULT).l,d6 ; If TRUE, then the transmission will assume third gear when the wiring harness is disabled; otherwise, second gear. ; BOOLEAN beq.s loc_4F5E4 clr.b (byte_FFFFAC6D).w clr.b (byte_FFFFAC6E).w loc_4F5E4: ; CODE XREF: sub_4F5D0+Aj move.b (TCM_OPTIONS_K_D32_PRESS_BIAS_CONTROL_AVAIL).l,d2 ; If TRUE, electronic control of the 3-2 downshift timing is available. ; BOOLEAN beq.s loc_4F5F0 clr.b (byte_FFFFAC80).w loc_4F5F0: ; CODE XREF: sub_4F5D0+1Aj clr.b (byte_FFFFAC70).w clr.b (byte_FFFFAC71).w clr.b (byte_FFFFAC72).w clr.b (byte_FFFFAC73).w clr.b (byte_FFFFAC74).w clr.b (byte_FFFFAC75).w clr.b (byte_FFFFAC7C).w clr.b (byte_FFFFAC7D).w clr.b (byte_FFFFAC7E).w clr.b (byte_FFFFAC6A).w clr.b (byte_FFFFAC6B).w clr.b (byte_FFFFAC76).w clr.b (byte_FFFFAC77).w clr.b (byte_FFFFAC78).w clr.b (byte_FFFFAC79).w clr.b (byte_FFFFAC7A).w clr.b (byte_FFFFAC7B).w clr.b (byte_FFFFAC6F).w clr.b d1 loc_4F63A: ; CODE XREF: sub_4F5D0+B4j clr.l d3 move.b d1,d3 tst.b T_DG_TYPES_KV_DIAGNOSTIC_ACTION_ENABLED(d3.w) ; This parameter defines which action for the corresponding diagnostic faults are enabled. ; BOOLEAN beq.s loc_4F67E tst.b T_DG_TYPES_KV_FAULT_DIAGNOSTIC_RECOVER_INFO(d3.w) ; This parameter defines which diagnostic tests are Fault_Active or Fault_Active_This_Key_On. ; F_A/This_Key_On beq.s loc_4F664 move.w word_896DE(d3.w*2),d0 btst #6,byte_FFFF88C0(d0.w*2) bra.s loc_4F674 ; --------------------------------------------------------------------------- loc_4F664: ; CODE XREF: sub_4F5D0+80j move.w word_896DE(d3.w*2),d0 btst #1,byte_FFFF88C0(d0.w*2) loc_4F674: ; CODE XREF: sub_4F5D0+92j beq.s loc_4F67E move.l d1,d0 jsr sub_4F726 loc_4F67E: ; CODE XREF: sub_4F5D0+76j ; sub_4F5D0:loc_4F674j addq.b #1,d1 cmpi.b #$35,d1 ; '5' bls.s loc_4F63A moveq #$36,d3 ; '6' tst.b (byte_1D96A).l beq.s loc_4F6A0 btst #7,(byte_FFFF95E8).w beq.s loc_4F6A0 move.l d3,d0 jsr sub_4F726 loc_4F6A0: ; CODE XREF: sub_4F5D0+BEj ; sub_4F5D0+C6j tst.b d6 beq.s loc_4F6B0 move.b (byte_FFFFAC6D).w,(byte_FFFFAC58).w move.b (byte_FFFFAC6E).w,(byte_FFFFAC59).w loc_4F6B0: ; CODE XREF: sub_4F5D0+D2j tst.b d2 beq.s loc_4F6BA move.b (byte_FFFFAC80).w,(byte_FFFFAC6C).w loc_4F6BA: ; CODE XREF: sub_4F5D0+E2j move.b (byte_FFFFAC70).w,(byte_FFFFAC5B).w move.b (byte_FFFFAC71).w,(byte_FFFFAC5C).w move.b (byte_FFFFAC72).w,(byte_FFFFAC5D).w move.b (byte_FFFFAC73).w,(byte_FFFFAC5E).w move.b (byte_FFFFAC74).w,(byte_FFFFAC5F).w move.b (byte_FFFFAC75).w,(byte_FFFFAC60).w move.b (byte_FFFFAC7C).w,(byte_FFFFAC67).w move.b (byte_FFFFAC7D).w,(byte_FFFFAC68).w move.b (byte_FFFFAC7E).w,(byte_FFFFAC69).w move.b (byte_FFFFAC7F).w,(byte_FFFFAC6A).w move.b (byte_FFFFAC76).w,(byte_FFFFAC61).w move.b (byte_FFFFAC77).w,(byte_FFFFAC62).w move.b (byte_FFFFAC78).w,(byte_FFFFAC63).w move.b (byte_FFFFAC79).w,(byte_FFFFAC64).w move.b (byte_FFFFAC7A).w,(byte_FFFFAC65).w move.b (byte_FFFFAC7B).w,(byte_FFFFAC66).w move.b (byte_FFFFAC6F).w,(byte_FFFFAC5A).w movem.l (sp)+,d0-d2/d6 rts ; End of function sub_4F5D0 ; =============== S U B R O U T I N E ======================================= sub_4F726: ; CODE XREF: sub_4F5D0+A8p ; sub_4F5D0+CAp move.b d0,d3 tst.b (TCM_OPTIONS_K_TRANS_HAS_THIRD_GEAR_DEFAULT).l ; If TRUE, then the transmission will assume third gear when the wiring harness is disabled; otherwise, second gear. ; BOOLEAN beq.s loc_4F754 clr.l d4 move.b d3,d4 tst.b T_DG_TYPES_KV_SPEED_LIMIT_DEFAULT_GEAR_MALF(d4.w) ; Dianostic faults which will cause thedefault gear action to occur ; BOOLEAN beq.s loc_4F744 move.b #1,(byte_FFFFAC6D).w loc_4F744: ; CODE XREF: sub_4F726+16j tst.b T_DG_TYPES_KV_SPEED_LIMIT_SOFT_LANDING_MALF(d4.w) ; Diagnostic faults which will cause softlanding to occur ; BOOLEAN beq.s loc_4F754 move.b #1,(byte_FFFFAC6E).w loc_4F754: ; CODE XREF: sub_4F726+8j ; sub_4F726+26j tst.b (TCM_OPTIONS_K_D32_PRESS_BIAS_CONTROL_AVAIL).l ; If TRUE, electronic control of the 3-2 downshift timing is available. ; BOOLEAN beq.s loc_4F770 clr.l d4 move.b d3,d4 tst.b T_DG_TYPES_KV_DISABLE_32_MALFUNCTIONS(d4.w) ; Diagnostic faults which will cause the 3-2 pressure bias remedial action to be taken ; BOOLEAN beq.s loc_4F770 move.b #1,(byte_FFFFAC80).w loc_4F770: ; CODE XREF: sub_4F726+34j ; sub_4F726+42j andi.w #$FF,d3 tst.b T_DG_TYPES_KV_DIAGNOSTIC_FM_OVERRIDE(d3.w) ; Diagnostic faults which will cause disabling FM action to be taken. ; BOOLEAN beq.s loc_4F784 move.b #1,(byte_FFFFAC73).w loc_4F784: ; CODE XREF: sub_4F726+56j tst.b T_DG_TYPES_KV_DRIVE_2_PRESSURE_MALFUNCTIONS(d3.w) ; Diagnostic faults which will cause drive 2 pressure schedule action to be taken. ; BOOLEAN beq.s loc_4F794 move.b #1,(byte_FFFFAC72).w loc_4F794: ; CODE XREF: sub_4F726+66j tst.b T_DG_TYPES_KV_MAXIMUM_PRESSURE_MALFUNCTIONS(d3.w) ; Diagnostic faults which will cause maximum pressure action to be taken. ; BOOLEAN beq.s loc_4F7A4 move.b #1,(byte_FFFFAC71).w loc_4F7A4: ; CODE XREF: sub_4F726+76j tst.b T_DG_TYPES_KV_FREEZE_ADAPT_MALFUNCTIONS(d3.w) ; Diagnostic faults which will cause the freezing of the adaptive pressure modifier to be taken. ; BOOLEAN beq.s loc_4F7B4 move.b #1,(byte_FFFFAC70).w loc_4F7B4: ; CODE XREF: sub_4F726+86j tst.b T_DG_TYPES_KV_TORQUE_PRESSURE_OFFSET_MALF(d3.w) ; Diagnostic faults that disable the torque pressure offsets. ; BOOLEAN beq.s loc_4F7C4 move.b #1,(byte_FFFFAC74).w loc_4F7C4: ; CODE XREF: sub_4F726+96j tst.b T_DG_TYPES_KV_ENGINE_TORQUE_MALFUNCTION(d3.w) ; Diagnostic faults that involvethe Engine Torque Calc. ; BOOLEAN beq.s loc_4F7D4 move.b #1,(byte_FFFFAC75).w loc_4F7D4: ; CODE XREF: sub_4F726+A6j tst.b T_DG_TYPES_KV_TCC_OFF_MALFUNCTIONS(d3.w) ; Diagnostic faults which will cause the TCC be turned off action to be taken ; True/False beq.s loc_4F7E4 move.b #1,(byte_FFFFAC7C).w loc_4F7E4: ; CODE XREF: sub_4F726+B6j tst.b T_DG_TYPES_KV_APPLY_IN_4TH_MALFUNCTIONS(d3.w) ; Diagnostic faults which will cause the TCC applying in 4th gear action to be taken ; True/False beq.s loc_4F7F4 move.b #1,(byte_FFFFAC7D).w loc_4F7F4: ; CODE XREF: sub_4F726+C6j tst.b T_DG_TYPES_KV_TCC_INHIBIT_OUTPUTS_MALFS(d3.w) ; Diagnostic faults which will cause the TCC output to be inhibited. ; True/False beq.s loc_4F804 move.b #1,(byte_FFFFAC7E).w loc_4F804: ; CODE XREF: sub_4F726+D6j tst.b T_DG_TYPES_KV_APPLY_IN_3RD_OR_4TH_MALFS(d3.w) ; Defines which diagnostic faults will resultin the TCC applying in 3rd or 4th gear. ; True/False beq.s loc_4F814 move.b #1,(byte_FFFFAC7F).w loc_4F814: ; CODE XREF: sub_4F726+E6j tst.b T_DG_TYPES_KV_FREEZE_ECCC_ADAPT_MALF(d3.w) ; Diagnostic faults which will cause the ECCC adapts to be frozen. ; True/False beq.s loc_4F824 move.b #1,(byte_FFFFAC6B).w loc_4F824: ; CODE XREF: sub_4F726+F6j tst.b T_DG_TYPES_KV_DEFAULT_GEAR_MALFUNCTIONS(d3.w) ; Diagnostic faults which will cause default gear action to be taken ; True/False beq.s loc_4F834 move.b #1,(byte_FFFFAC76).w loc_4F834: ; CODE XREF: sub_4F726+106j tst.b T_DG_TYPES_KV_SOFT_LANDING_MALFUNCTIONS(d3.w) ; Diagnostic faults which will cause soft landing action to be taken ; True/False beq.s loc_4F844 move.b #1,(byte_FFFFAC77).w loc_4F844: ; CODE XREF: sub_4F726+116j tst.b T_DG_TYPES_KV_LIMIT_GEAR_MALFUNCTIONS(d3.w) ; Diagnostic faults which will cause limiting gear action to be taken ; True/False beq.s loc_4F864 tst.b (T_DG_TYPES_KE_SOFT_LIMIT_GEAR_MALF).l ; TRUE indicates soft limit max gear is desired. FALSE indicates immediate limit max gear is desired for diagnostic action. ; True/False beq.s loc_4F85E move.b #1,(byte_FFFFAC78).w bra.s loc_4F864 ; --------------------------------------------------------------------------- loc_4F85E: ; CODE XREF: sub_4F726+12Ej move.b #1,(byte_FFFFAC79).w loc_4F864: ; CODE XREF: sub_4F726+126j ; sub_4F726+136j tst.b T_DG_TYPES_KV_LIMIT_GEAR_TRANS_HOT_MALF(d3.w) ; Diagnostic faults which will cause limiting gear action to be taken ; True/False beq.s loc_4F874 move.b #1,(byte_FFFFAC7A).w loc_4F874: ; CODE XREF: sub_4F726+146j tst.b T_DG_TYPES_KV_INHIBIT_DOWN_TO_SECOND(d3.w) ; Diagnostic faults will result in inhibiting downshift to second. ; True/False beq.s loc_4F884 move.b #1,(byte_FFFFAC7B).w loc_4F884: ; CODE XREF: sub_4F726+156j tst.b T_DG_TYPES_KV_INHIBIT_SEM_MALFUNCTIONS(d3.w) ; Diagnostic faults which will cause the SEM disabled remedial action to be taken. ; BOOLEAN beq.s locret_4F894 move.b #1,(byte_FFFFAC6F).w locret_4F894: ; CODE XREF: sub_4F726+166j rts ; End of function sub_4F726 ; =============== S U B R O U T I N E ======================================= sub_4F896: ; CODE XREF: DoLoopE+136p tst.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.s loc_4F8A6 cmpi.b #3,(byte_FFFF95DC).w beq.s loc_4F8AC loc_4F8A6: ; CODE XREF: sub_4F896+6j jsr sub_50C1C loc_4F8AC: ; CODE XREF: sub_4F896+Ej jsr sub_50628 jsr sub_50FB6 jsr sub_50EAA rts ; End of function sub_4F896 ; =============== S U B R O U T I N E ======================================= sub_4F8C0: ; CODE XREF: DoLoopE+13Cp jsr sub_51C44 rts ; End of function sub_4F8C0 ; =============== S U B R O U T I N E ======================================= sub_4F8C8: ; CODE XREF: DoLoopE+10Ep move.l d0,-(sp) tst.b (byte_1D8E1).l beq.w loc_4F9E4 move.b (byte_FFFF959D).w,d3 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_LOW).l,d3 ; The low thresholdof Ignition voltage range ; Volts bcs.s loc_4F8E8 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_HIGH).l,d3 ; The high thresholdof Ignition voltage range ; Volts bls.s loc_4F900 loc_4F8E8: ; CODE XREF: sub_4F8C8+16j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB50A).w,d3 add.w $A(a2),d3 bcc.s loc_4F8FA move.w #$FFFF,d3 loc_4F8FA: ; CODE XREF: sub_4F8C8+2Cj move.w d3,(word_FFFFB50A).w bra.s loc_4F904 ; --------------------------------------------------------------------------- loc_4F900: ; CODE XREF: sub_4F8C8+1Ej clr.w (word_FFFFB50A).w loc_4F904: ; CODE XREF: sub_4F8C8+36j move.w (word_FFFFB50A).w,d3 cmp.w (XDTA_CTCC_KE_DIAG_TCC_CS_SYS_VOLT_TIME).l,d3 ; TCC control solenoid output will not be tested if ignition voltage is out of range for longer than this. ; Seconds bcc.w loc_4F9F0 move.w (word_FFFFA40C).w,d3 move.w d3,d4 cmp.w (XDTA_CTCC_KE_TCC_CTRL_DUTY_CYCLE_HIGH).l,d4 ; TCC DutyCycle(Capacity)should be ABOVE this threshold to enablethe test for TCC control solenoid ; Percent bcc.s loc_4F92A cmp.w (XDTA_CTCC_KE_TCC_CTRL_DUTY_CYCLE_LOW).l,d3 ; TCC DutyCycle(Capacity)should be BELOW this threshold to enablethe test for TCC control solenoid ; Percent bhi.w loc_4F9F0 loc_4F92A: ; CODE XREF: sub_4F8C8+56j move.b (byte_FFFFB506).w,d3 addq.b #1,d3 bcc.s loc_4F936 move.b #$FF,d3 loc_4F936: ; CODE XREF: sub_4F8C8+68j move.b d3,(byte_FFFFB506).w move.b (byte_FFFF95E7).w,d3 lsr.b #6,d3 cmpi.b #1,d3 bne.s loc_4F97C btst #1,(byte_FFFF8AA6).w beq.s loc_4F958 btst #6,(byte_FFFF8AA6).w bne.w loc_4F9D8 loc_4F958: ; CODE XREF: sub_4F8C8+84j move.b (byte_FFFFB507).w,d3 addq.b #1,d3 bcc.s loc_4F964 move.b #$FF,d3 loc_4F964: ; CODE XREF: sub_4F8C8+96j move.b d3,(byte_FFFFB507).w cmp.b (XDTA_CTCC_KE_TCC_CTRL_SOLENOID_FAIL_MAX).l,d3 ; Number of times that an illegal TCC control solenoid status must be seen before the fault is set. ; Counts bcs.s loc_4F9D8 move.w #$F3,d0 ; '?' jsr sub_5F110 bra.s loc_4F9CC ; --------------------------------------------------------------------------- loc_4F97C: ; CODE XREF: sub_4F8C8+7Cj cmpi.b #2,d3 bne.s loc_4F9CC btst #1,(byte_FFFF8AA6).w bne.s loc_4F992 btst #5,(byte_FFFF8AA6).w bne.s loc_4F9D8 loc_4F992: ; CODE XREF: sub_4F8C8+C0j move.b (byte_FFFFB508).w,d3 addq.b #1,d3 bcc.s loc_4F99E move.b #$FF,d3 loc_4F99E: ; CODE XREF: sub_4F8C8+D0j move.b d3,(byte_FFFFB508).w cmp.b (XDTA_CTCC_KE_TCC_CTRL_SOLENOID_PASS_MAX).l,d3 ; Number of times that a valid TCC control solenoid status must be seen before the fault is passed. ; Counts bcc.s loc_4F9C2 btst #5,(byte_FFFF89EE).w beq.s loc_4F9D8 btst #5,(byte_FFFF8A0E).w bne.s loc_4F9C2 btst #5,(byte_FFFF89EC).w beq.s loc_4F9D8 loc_4F9C2: ; CODE XREF: sub_4F8C8+E0j ; sub_4F8C8+F0j move.w #$F3,d0 ; '?' jsr sub_5F0BE loc_4F9CC: ; CODE XREF: sub_4F8C8+B2j ; sub_4F8C8+B8j clr.b (byte_FFFFB506).w clr.b (byte_FFFFB507).w clr.b (byte_FFFFB508).w loc_4F9D8: ; CODE XREF: sub_4F8C8+8Cj ; sub_4F8C8+A6j ... move.b (byte_FFFFB506).w,d3 cmp.b (XDTA_CTCC_KE_TCC_CTRL_SOLENOID_TOTAL_MAX).l,d3 ; Number of times that the TCC control solenoid status can be tested before the test counters are reset. ; Counts bcs.s loc_4F9F0 loc_4F9E4: ; CODE XREF: sub_4F8C8+8j clr.b (byte_FFFFB506).w clr.b (byte_FFFFB507).w clr.b (byte_FFFFB508).w loc_4F9F0: ; CODE XREF: sub_4F8C8+46j ; sub_4F8C8+5Ej ... move.l (sp)+,d0 rts ; End of function sub_4F8C8 ; =============== S U B R O U T I N E ======================================= sub_4F9F4: ; CODE XREF: DoLoopE+12Ap movem.l d0-d2,-(sp) tst.b (byte_1D8E3).l beq.w loc_4FB08 move.b (byte_FFFF959D).w,d3 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_LOW).l,d3 ; The low thresholdof Ignition voltage range ; Volts bcs.s loc_4FA16 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_HIGH).l,d3 ; The high thresholdof Ignition voltage range ; Volts bls.s loc_4FA2E loc_4FA16: ; CODE XREF: sub_4F9F4+18j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB4FE).w,d3 add.w $A(a2),d3 bcc.s loc_4FA28 move.w #$FFFF,d3 loc_4FA28: ; CODE XREF: sub_4F9F4+2Ej move.w d3,(word_FFFFB4FE).w bra.s loc_4FA32 ; --------------------------------------------------------------------------- loc_4FA2E: ; CODE XREF: sub_4F9F4+20j clr.w (word_FFFFB4FE).w loc_4FA32: ; CODE XREF: sub_4F9F4+38j move.w (word_FFFFB4FE).w,d3 cmp.w (XDTA_D32_KE_DIAG_32DSO_SYS_VOLT_TIME).l,d3 ; 3-2 downshift solenoid output will not be tested if ignition voltage is out of range for longer than this. ; Seconds bcc.w loc_4FB14 move.b (byte_FFFFB4FC).w,d3 addq.b #1,d3 bcc.s loc_4FA4C move.b #$FF,d3 loc_4FA4C: ; CODE XREF: sub_4F9F4+52j move.b d3,(byte_FFFFB4FC).w moveq #$C,d1 jsr sub_4B18C move.l d0,d2 lsl.b #2,d2 and.b d1,d2 andi.b #$F3,(byte_FFFF95E7).w or.b d2,(byte_FFFF95E7).w cmpi.b #1,d0 bne.s loc_4FAA2 btst #1,(byte_FFFF89FE).w beq.s loc_4FA7E btst #6,(byte_FFFF89FE).w bne.s loc_4FAFC loc_4FA7E: ; CODE XREF: sub_4F9F4+80j move.b (byte_FFFFB4FA).w,d3 addq.b #1,d3 bcc.s loc_4FA8A move.b #$FF,d3 loc_4FA8A: ; CODE XREF: sub_4F9F4+90j move.b d3,(byte_FFFFB4FA).w cmp.b (XDTA_D32_KE_D32_SOLENOID_FAIL_COUNT).l,d3 ; Number of times that an illegal downshift 3-2 solenoid status must be seen before the fault is set. ; Counts bcs.s loc_4FAFC move.w #$9F,d0 ; '?' jsr sub_5F110 bra.s loc_4FAF0 ; --------------------------------------------------------------------------- loc_4FAA2: ; CODE XREF: sub_4F9F4+78j jsr sub_4B18C move.l d0,d2 lsl.b #2,d2 and.b d1,d2 andi.b #$F3,(byte_FFFF95E7).w or.b d2,(byte_FFFF95E7).w cmpi.b #2,d0 bne.s loc_4FAF0 btst #1,(byte_FFFF89FE).w bne.s loc_4FACE btst #5,(byte_FFFF89FE).w bne.s loc_4FAFC loc_4FACE: ; CODE XREF: sub_4F9F4+D0j move.b (byte_FFFFB4FB).w,d3 addq.b #1,d3 bcc.s loc_4FADA move.b #$FF,d3 loc_4FADA: ; CODE XREF: sub_4F9F4+E0j move.b d3,(byte_FFFFB4FB).w cmp.b (XDTA_D32_KE_D32_SOLENOID_PASS_COUNT).l,d3 ; Number of times that a legal downshift 3-2 solenoid status must be seen before the fault is cleared. ; Counts bcs.s loc_4FAFC move.w #$9F,d0 ; '?' jsr sub_5F0BE loc_4FAF0: ; CODE XREF: sub_4F9F4+ACj ; sub_4F9F4+C8j clr.b (byte_FFFFB4FA).w clr.b (byte_FFFFB4FB).w clr.b (byte_FFFFB4FC).w loc_4FAFC: ; CODE XREF: sub_4F9F4+88j ; sub_4F9F4+A0j ... move.b (byte_FFFFB4FC).w,d3 cmp.b (XDTA_D32_KE_D32_SOLENOID_TEST_COUNT).l,d3 ; Total number of times that a legal/ illegal downshift 3-2 solenoid status must be seen before the test counters are reset. ; Counts bcs.s loc_4FB14 loc_4FB08: ; CODE XREF: sub_4F9F4+Aj clr.b (byte_FFFFB4FA).w clr.b (byte_FFFFB4FB).w clr.b (byte_FFFFB4FC).w loc_4FB14: ; CODE XREF: sub_4F9F4+48j ; sub_4F9F4+112j movem.l (sp)+,d0-d2 rts ; End of function sub_4F9F4 ; =============== S U B R O U T I N E ======================================= sub_4FB1A: ; CODE XREF: DoLoopE+11Cp move.l d0,-(sp) tst.b (byte_1D8E2).l beq.w loc_4FC08 move.b (byte_FFFF959D).w,d3 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_LOW).l,d3 ; The low thresholdof Ignition voltage range ; Volts bcs.s loc_4FB3A cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_HIGH).l,d3 ; The high thresholdof Ignition voltage range ; Volts bls.s loc_4FB52 loc_4FB3A: ; CODE XREF: sub_4FB1A+16j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB504).w,d3 add.w $A(a2),d3 bcc.s loc_4FB4C move.w #$FFFF,d3 loc_4FB4C: ; CODE XREF: sub_4FB1A+2Cj move.w d3,(word_FFFFB504).w bra.s loc_4FB56 ; --------------------------------------------------------------------------- loc_4FB52: ; CODE XREF: sub_4FB1A+1Ej clr.w (word_FFFFB504).w loc_4FB56: ; CODE XREF: sub_4FB1A+36j move.w (word_FFFFB504).w,d3 cmp.w (XDTA_ETCC_KE_DIAG_TCC_ENABLE_SO_SVOLT_TIME).l,d3 ; TCC enable solenoid output will not be tested if ignition voltage is out of range for longer than this. ; Seconds bcc.w loc_4FC14 move.b (byte_FFFFB502).w,d3 addq.b #1,d3 bcc.s loc_4FB70 move.b #$FF,d3 loc_4FB70: ; CODE XREF: sub_4FB1A+50j move.b d3,(byte_FFFFB502).w move.b (byte_FFFF95E7).w,d3 lsr.b #4,d3 andi.b #3,d3 cmpi.b #1,d3 bne.s loc_4FBB8 btst #1,(byte_FFFF89EA).w beq.s loc_4FB94 btst #6,(byte_FFFF89EA).w bne.s loc_4FBFC loc_4FB94: ; CODE XREF: sub_4FB1A+70j move.b (byte_FFFFB500).w,d3 addq.b #1,d3 bcc.s loc_4FBA0 move.b #$FF,d3 loc_4FBA0: ; CODE XREF: sub_4FB1A+80j move.b d3,(byte_FFFFB500).w cmp.b (XDTA_ETCC_KE_TCC_ENABLE_FAIL_COUNT).l,d3 ; Number of times that an illegal TCC Enable solenoid status must be seen before the fault is set. ; Counts bcs.s loc_4FBFC move.w #$95,d0 ; '?' jsr sub_5F110 bra.s loc_4FBF0 ; --------------------------------------------------------------------------- loc_4FBB8: ; CODE XREF: sub_4FB1A+68j cmpi.b #2,d3 bne.s loc_4FBF0 btst #1,(byte_FFFF89EA).w bne.s loc_4FBCE btst #5,(byte_FFFF89EA).w bne.s loc_4FBFC loc_4FBCE: ; CODE XREF: sub_4FB1A+AAj move.b (byte_FFFFB501).w,d3 addq.b #1,d3 bcc.s loc_4FBDA move.b #$FF,d3 loc_4FBDA: ; CODE XREF: sub_4FB1A+BAj move.b d3,(byte_FFFFB501).w cmp.b (XDTA_ETCC_KE_TCC_ENABLE_PASS_COUNT).l,d3 ; Number of times that a legal TCC Enable solenoid status must be seen before the fault is cleared. ; Counts bcs.s loc_4FBFC move.w #$95,d0 ; '?' jsr sub_5F0BE loc_4FBF0: ; CODE XREF: sub_4FB1A+9Cj ; sub_4FB1A+A2j clr.b (byte_FFFFB500).w clr.b (byte_FFFFB502).w clr.b (byte_FFFFB501).w loc_4FBFC: ; CODE XREF: sub_4FB1A+78j ; sub_4FB1A+90j ... move.b (byte_FFFFB502).w,d3 cmp.b (XDTA_ETCC_KE_TCC_ENABLE_MAX_COUNT).l,d3 ; Total number of times that a legal/illegal TCC Enable solenoid status must be seen before the counters are reset. ; Counts bcs.s loc_4FC14 loc_4FC08: ; CODE XREF: sub_4FB1A+8j clr.b (byte_FFFFB500).w clr.b (byte_FFFFB502).w clr.b (byte_FFFFB501).w loc_4FC14: ; CODE XREF: sub_4FB1A+46j ; sub_4FB1A+ECj move.l (sp)+,d0 rts ; End of function sub_4FB1A ; =============== S U B R O U T I N E ======================================= sub_4FC18: ; CODE XREF: DoLoopE:loc_2A99Cp movem.l d0-d1,-(sp) tst.b (byte_1D8E5).l beq.s loc_4FC9C moveq #1,d1 cmp.b (byte_FFFFADD0).w,d1 bne.s loc_4FC4A tst.b (byte_FFFF9BB3).w beq.s loc_4FC4A btst #1,(byte_FFFF89F0).w bne.s loc_4FC4A btst #6,(byte_FFFF89F0).w bne.s loc_4FC4A clr.b (byte_FFFFADD0).w clr.b (byte_FFFF9BB3).w loc_4FC4A: ; CODE XREF: sub_4FC18+12j ; sub_4FC18+18j ... move.b (byte_FFFFADD0).w,d3 cmp.b d3,d1 beq.s loc_4FC5E cmpi.b #3,d3 beq.s loc_4FC5E cmpi.b #4,d3 bne.s loc_4FC7E loc_4FC5E: ; CODE XREF: sub_4FC18+38j ; sub_4FC18+3Ej btst #6,(byte_FFFF89F0).w beq.s loc_4FC6E btst #1,(byte_FFFF89F0).w bne.s loc_4FC7E loc_4FC6E: ; CODE XREF: sub_4FC18+4Cj move.w #$98,d0 ; '?' jsr sub_5F110 move.b d1,(byte_FFFF9BB3).w bra.s loc_4FC9C ; --------------------------------------------------------------------------- loc_4FC7E: ; CODE XREF: sub_4FC18+44j ; sub_4FC18+54j tst.b d3 bne.s loc_4FC9C btst #5,(byte_FFFF89F0).w beq.s loc_4FC92 btst #1,(byte_FFFF89F0).w beq.s loc_4FC9C loc_4FC92: ; CODE XREF: sub_4FC18+70j move.w #$98,d0 ; '?' jsr sub_5F0BE loc_4FC9C: ; CODE XREF: sub_4FC18+Aj ; sub_4FC18+64j ... movem.l (sp)+,d0-d1 rts ; End of function sub_4FC18 ; =============== S U B R O U T I N E ======================================= sub_4FCA2: ; CODE XREF: DoLoopE+108p movem.l d0-d2/d6,-(sp) tst.b (byte_1D8DF).l beq.w loc_4FD92 move.b (byte_FFFF959D).w,d3 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_LOW).l,d3 ; The low thresholdof Ignition voltage range ; Volts bcs.s loc_4FCC4 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_HIGH).l,d3 ; The high thresholdof Ignition voltage range ; Volts bls.s loc_4FCDC loc_4FCC4: ; CODE XREF: sub_4FCA2+18j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB444).w,d3 add.w $A(a2),d3 bcc.s loc_4FCD6 move.w #$FFFF,d3 loc_4FCD6: ; CODE XREF: sub_4FCA2+2Ej move.w d3,(word_FFFFB444).w bra.s loc_4FCE0 ; --------------------------------------------------------------------------- loc_4FCDC: ; CODE XREF: sub_4FCA2+20j clr.w (word_FFFFB444).w loc_4FCE0: ; CODE XREF: sub_4FCA2+38j move.w (word_FFFFB444).w,d3 cmp.w (XDTA_SHIFT_SOL_KE_DIAG_SSA_SYS_VOLT_TIME).l,d3 ; Shift solenoid A output will not be tested if ignition voltage is out of range for longer than this. ; Seconds bcc.w loc_4FD9E move.b (byte_FFFFB43E).w,d3 addq.b #1,d3 bcc.s loc_4FCFA move.b #$FF,d3 loc_4FCFA: ; CODE XREF: sub_4FCA2+52j move.b d3,(byte_FFFFB43E).w move.b (byte_FFFF95E6).w,d3 lsr.b #4,d3 andi.b #3,d3 cmpi.b #1,d3 bne.s loc_4FD42 btst #1,(byte_FFFF89F6).w beq.s loc_4FD1E btst #6,(byte_FFFF89F6).w bne.s loc_4FD86 loc_4FD1E: ; CODE XREF: sub_4FCA2+72j move.b (byte_FFFFB43F).w,d3 addq.b #1,d3 bcc.s loc_4FD2A move.b #$FF,d3 loc_4FD2A: ; CODE XREF: sub_4FCA2+82j move.b d3,(byte_FFFFB43F).w cmp.b (XDTA_SHIFT_SOL_KE_SHIFT_SOLENOID_A_FAIL_COUNT).l,d3 ; The number of times an invalid status on solenoid A must be seen before the diagnostic fault is set. ; Counts bcs.s loc_4FD86 move.w #$9B,d0 ; '?' jsr sub_5F110 bra.s loc_4FD7A ; --------------------------------------------------------------------------- loc_4FD42: ; CODE XREF: sub_4FCA2+6Aj cmpi.b #2,d3 bne.s loc_4FD7A btst #1,(byte_FFFF89F6).w bne.s loc_4FD58 btst #5,(byte_FFFF89F6).w bne.s loc_4FD86 loc_4FD58: ; CODE XREF: sub_4FCA2+ACj move.b (byte_FFFFB440).w,d3 addq.b #1,d3 bcc.s loc_4FD64 move.b #$FF,d3 loc_4FD64: ; CODE XREF: sub_4FCA2+BCj move.b d3,(byte_FFFFB440).w cmp.b (XDTA_SHIFT_SOL_KE_SHIFT_SOLENOID_A_PASS_COUNT).l,d3 ; The number of times a valid status on solenoid A must be seen before the pass condition is set. ; Counts bcs.s loc_4FD86 move.w #$9B,d0 ; '?' jsr sub_5F0BE loc_4FD7A: ; CODE XREF: sub_4FCA2+9Ej ; sub_4FCA2+A4j clr.b (byte_FFFFB43E).w clr.b (byte_FFFFB43F).w clr.b (byte_FFFFB440).w loc_4FD86: ; CODE XREF: sub_4FCA2+7Aj ; sub_4FCA2+92j ... move.b (byte_FFFFB43E).w,d3 cmp.b (XDTA_SHIFT_SOL_KE_SHIFT_SOLENOID_A_MAX_COUNT).l,d3 ; The number of times solenoid A must be tested before resetting all solenoid A diagnostic counters. ; Counts bcs.s loc_4FD9E loc_4FD92: ; CODE XREF: sub_4FCA2+Aj clr.b (byte_FFFFB43E).w clr.b (byte_FFFFB43F).w clr.b (byte_FFFFB440).w loc_4FD9E: ; CODE XREF: sub_4FCA2+48j ; sub_4FCA2+EEj tst.b (byte_1D8E0).l beq.w loc_4FE8A move.b (byte_FFFF959D).w,d3 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_LOW).l,d3 ; The low thresholdof Ignition voltage range ; Volts bcs.s loc_4FDBC cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_HIGH).l,d3 ; The high thresholdof Ignition voltage range ; Volts bls.s loc_4FDD4 loc_4FDBC: ; CODE XREF: sub_4FCA2+110j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB446).w,d3 add.w $A(a2),d3 bcc.s loc_4FDCE move.w #$FFFF,d3 loc_4FDCE: ; CODE XREF: sub_4FCA2+126j move.w d3,(word_FFFFB446).w bra.s loc_4FDD8 ; --------------------------------------------------------------------------- loc_4FDD4: ; CODE XREF: sub_4FCA2+118j clr.w (word_FFFFB446).w loc_4FDD8: ; CODE XREF: sub_4FCA2+130j move.w (word_FFFFB446).w,d3 cmp.w (XDTA_SHIFT_SOL_KE_DIAG_SSB_SYS_VOLT_TIME).l,d3 ; Shift solenoid B output will not be tested if ignition voltage is out of range for longer than this. ; Seconds bcc.w loc_4FE96 move.b (byte_FFFFB441).w,d3 addq.b #1,d3 bcc.s loc_4FDF2 move.b #$FF,d3 loc_4FDF2: ; CODE XREF: sub_4FCA2+14Aj move.b d3,(byte_FFFFB441).w move.b (byte_FFFF95E6).w,d3 lsr.b #2,d3 andi.b #3,d3 cmpi.b #1,d3 bne.s loc_4FE3A btst #1,(byte_FFFF89FC).w beq.s loc_4FE16 btst #6,(byte_FFFF89FC).w bne.s loc_4FE7E loc_4FE16: ; CODE XREF: sub_4FCA2+16Aj move.b (byte_FFFFB442).w,d3 addq.b #1,d3 bcc.s loc_4FE22 move.b #$FF,d3 loc_4FE22: ; CODE XREF: sub_4FCA2+17Aj move.b d3,(byte_FFFFB442).w cmp.b (XDTA_SHIFT_SOL_KE_SHIFT_SOLENOID_B_FAIL_COUNT).l,d3 ; The number of times an invalid status on solenoid B must be seen before the diagnostic fault is set. ; Counts bcs.s loc_4FE7E move.w #$9E,d0 ; '?' jsr sub_5F110 bra.s loc_4FE72 ; --------------------------------------------------------------------------- loc_4FE3A: ; CODE XREF: sub_4FCA2+162j cmpi.b #2,d3 bne.s loc_4FE72 btst #1,(byte_FFFF89FC).w bne.s loc_4FE50 btst #5,(byte_FFFF89FC).w bne.s loc_4FE7E loc_4FE50: ; CODE XREF: sub_4FCA2+1A4j move.b (byte_FFFFB443).w,d3 addq.b #1,d3 bcc.s loc_4FE5C move.b #$FF,d3 loc_4FE5C: ; CODE XREF: sub_4FCA2+1B4j move.b d3,(byte_FFFFB443).w cmp.b (XDTA_SHIFT_SOL_KE_SHIFT_SOLENOID_B_PASS_COUNT).l,d3 ; The number of times a valid status on solenoid A must be seen before the pass condition is set. ; Counts bcs.s loc_4FE7E move.w #$9E,d0 ; '?' jsr sub_5F0BE loc_4FE72: ; CODE XREF: sub_4FCA2+196j ; sub_4FCA2+19Cj clr.b (byte_FFFFB441).w clr.b (byte_FFFFB442).w clr.b (byte_FFFFB443).w loc_4FE7E: ; CODE XREF: sub_4FCA2+172j ; sub_4FCA2+18Aj ... move.b (byte_FFFFB441).w,d3 cmp.b (XDTA_SHIFT_SOL_KE_SHIFT_SOLENOID_B_MAX_COUNT).l,d3 ; The number of times solenoid B must be tested before resetting all solenoid B diagnostic counters. ; Counts bcs.s loc_4FE96 loc_4FE8A: ; CODE XREF: sub_4FCA2+102j clr.b (byte_FFFFB441).w clr.b (byte_FFFFB442).w clr.b (byte_FFFFB443).w loc_4FE96: ; CODE XREF: sub_4FCA2+140j ; sub_4FCA2+1E6j movem.l (sp)+,d0-d2/d6 rts ; End of function sub_4FCA2 ; --------------------------------------------------------------------------- loc_4FE9C: ; CODE XREF: DoLoopE+142p link a6,#-4 movem.l d0-d2/d6-a0,-(sp) move.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l,d1 ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.w loc_500D6 jsr sub_503CA tst.b d0 beq.w loc_503BA btst #6,(byte_FFFF89E2).w bne.w loc_503BA btst #6,(byte_FFFF89E0).w bne.w loc_503BA tst.b d1 beq.s loc_4FEDA tst.b (byte_FFFFB448).w bne.w loc_503BA loc_4FEDA: ; CODE XREF: OS2:0004FED0j move.w (word_FFFF95DA).w,d6 cmp.w (XDTP_4W_LOW_KE_4WD_MPH_THRESH).l,d6 ; Vehicle speed threshold above which enables the 4WD-Lo diagnostic. ; MPH bcs.w loc_503BA tst.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.s loc_4FF02 cmpi.b #3,(byte_FFFF95DC).w bne.s loc_4FF02 cmpi.b #4,(byte_FFFF95DD).w bne.w loc_503BA loc_4FF02: ; CODE XREF: OS2:0004FEEEj ; OS2:0004FEF6j btst #4,(byte_FFFFA8FE).w bne.w loc_503BA btst #3,(byte_FFFFA8FE).w bne.w loc_503BA move.b (byte_FFFF95DC).w,d6 cmp.b (byte_FFFFB496).w,d6 beq.s loc_4FF2C move.b d6,(byte_FFFFB496).w clr.b d0 jsr sub_50576 loc_4FF2C: ; CODE XREF: OS2:0004FF1Ej bset #5,(byte_FFFFB48E).w move.b (VEH_SYS_KE_DRIVETRAIN_TYPE).l,d3 ; Describes the type of drivetrain used on the vehicle ; Drivetrain_Type moveq #1,d7 cmp.b d3,d7 beq.s loc_4FF44 cmpi.b #2,d3 bne.s loc_4FF62 loc_4FF44: ; CODE XREF: OS2:0004FF3Cj movea.l (off_134C).l,a0 move.l a0,d1 bne.s loc_4FF54 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_4FF54: ; CODE XREF: OS2:0004FF4Cj clr.b d3 btst #3,2(a0) bne.s loc_4FF64 addq.b #1,d3 bra.s loc_4FF64 ; --------------------------------------------------------------------------- loc_4FF62: ; CODE XREF: OS2:0004FF42j clr.b d3 loc_4FF64: ; CODE XREF: OS2:0004FF5Cj ; OS2:0004FF60j tst.b d3 beq.w loc_4FFFA move.w (word_FFFF95D8).w,d2 cmp.w (XDTP_4W_LOW_KE_4WD_HIGH_TCR_MIN_RATIO).l,d2 ; Transfer case ratio, when not in 4WD-Lo, minimum value. Used in a hysteresis pair with KE_4WD_High_TCR_Max_Ratio. ; Unitless bcs.s loc_4FFD2 cmp.w (XDTP_4W_LOW_KE_4WD_HIGH_TCR_MAX_RATIO).l,d2 ; Transfer case ratio, when not in 4WD-Lo, maximum value. Used in a hysteresis pair with KE_4WD_High_TCR_Min_Ratio. ; Unitless bhi.s loc_4FFD2 moveq #3,d0 jsr sub_50576 move.w (XDTP_4W_LOW_KE_4WD_STUCK_ON_FAIL_TIME).l,d1 moveq #3,d0 jsr sub_504FC tst.b d0 beq.s loc_4FFD2 move.b (byte_FFFFB492).w,d3 addq.b #1,d3 cmpi.b #$64,d3 ; 'd' bls.s loc_4FFA6 moveq #$64,d3 ; 'd' loc_4FFA6: ; CODE XREF: OS2:0004FFA2j move.b d3,(byte_FFFFB492).w cmp.b (XDTP_4W_LOW_KE_4WD_LO_STUCK_ON_FAIL_COUNTS).l,d3 ; 4WD-Lo switch stuck on fail counter limit ; Counts bcs.s loc_4FFD2 bclr #0,(byte_FFFFB48E).w bclr #7,(byte_FFFFB48E).w bset #6,(byte_FFFFB48E).w bclr #4,(byte_FFFFB48E).w clr.b (byte_FFFFB492).w clr.b (byte_FFFFB493).w loc_4FFD2: ; CODE XREF: OS2:0004FF74j ; OS2:0004FF7Cj ... cmp.w (XDTP_4W_LOW_KE_4WD_LOW_TCR_MIN_RATIO).l,d2 ; Transfer Case Ratio; when in 4WD-Lo, manimum value. Used in a hysteresis pair with KE_4WD_Low_TCR_Max_Ratio. ; Unitless bcs.w loc_500BC cmp.w (XDTP_4W_LOW_KE_4WD_LOW_TCR_MAX_RATIO).l,d2 ; Transfer Case Ratio; when in 4WD-Lo, maximum value. Used in a hysteresis pair with KE_4WD_Low_TCR_Min_Ratio. ; Unitless bhi.w loc_500BC moveq #4,d0 jsr sub_50576 move.w (XDTP_4W_LOW_KE_4WD_STUCK_ON_PASS_TIME).l,d1 moveq #4,d0 bra.w loc_50092 ; --------------------------------------------------------------------------- loc_4FFFA: ; CODE XREF: OS2:0004FF66j move.w (word_FFFF95D8).w,d2 ; --------------------------------------------------------------------------- dc.b $B4 ; ? dc.b $79 ; y ; --------------------------------------------------------------------------- loc_50000: ; DATA XREF: sub_6BC6C+A2o ; sub_7D0BE:loc_7D168o ... ori.b #$C4,d1 loc_50004: ; DATA XREF: Calibration:0000EE62o ; Calibration:0000EE66o ... bcs.s loc_50072 loc_50006: ; DATA XREF: Calibration:0000F5D8o ; Calibration:0000F608o cmp.w (XDTP_4W_LOW_KE_4WD_LOW_TCR_MAX_RATIO).l,d2 ; Transfer Case Ratio; when in 4WD-Lo, maximum value. Used in a hysteresis pair with KE_4WD_Low_TCR_Min_Ratio. ; Unitless bhi.s loc_50072 move.l d7,d0 jsr sub_50576 move.w (XDTP_4W_LOW_KE_4WD_STUCK_OFF_FAIL_TIME).l,d1 move.l d7,d0 jsr sub_504FC tst.b d0 beq.s loc_50072 move.b (byte_FFFFB493).w,d3 addq.b #1,d3 cmpi.b #$64,d3 ; 'd' bls.s loc_50036 moveq #$64,d3 ; 'd' loc_50036: ; CODE XREF: OS2:00050032j move.b d3,(byte_FFFFB493).w cmp.b (XDTP_4W_LOW_KE_4WD_LO_STUCK_OFF_FAIL_COUNTS).l,d3 ; 4WD-Lo switch stuck off fail counter limit ; Counts bcs.s loc_5006A cmp.b (byte_FFFFB494).w,d6 beq.s loc_5006A bset #0,(byte_FFFFB48E).w bset #7,(byte_FFFFB48E).w bclr #6,(byte_FFFFB48E).w bclr #4,(byte_FFFFB48E).w clr.b (byte_FFFFB492).w clr.b (byte_FFFFB493).w bra.s loc_50072 ; --------------------------------------------------------------------------- loc_5006A: ; CODE XREF: OS2:00050040j ; OS2:00050046j cmp.b d3,d7 bne.s loc_50072 move.b d6,(byte_FFFFB494).w loc_50072: ; CODE XREF: OS2:loc_50004j ; OS2:0005000Cj ... cmp.w (XDTP_4W_LOW_KE_4WD_HIGH_TCR_MIN_RATIO).l,d2 ; Transfer case ratio, when not in 4WD-Lo, minimum value. Used in a hysteresis pair with KE_4WD_High_TCR_Max_Ratio. ; Unitless bcs.s loc_500BC cmp.w (XDTP_4W_LOW_KE_4WD_HIGH_TCR_MAX_RATIO).l,d2 ; Transfer case ratio, when not in 4WD-Lo, maximum value. Used in a hysteresis pair with KE_4WD_High_TCR_Min_Ratio. ; Unitless bhi.s loc_500BC moveq #2,d0 jsr sub_50576 move.w (XDTP_4W_LOW_KE_4WD_STUCK_OFF_PASS_TIME).l,d1 moveq #2,d0 loc_50092: ; CODE XREF: OS2:0004FFF6j jsr sub_504FC tst.b d0 beq.s loc_500BC bclr #0,(byte_FFFFB48E).w bclr #7,(byte_FFFFB48E).w bclr #6,(byte_FFFFB48E).w bset #4,(byte_FFFFB48E).w clr.b (byte_FFFFB492).w clr.b (byte_FFFFB493).w loc_500BC: ; CODE XREF: OS2:0004FFD8j ; OS2:0004FFE2j ... btst #5,(byte_FFFFB48E).w beq.s loc_500CC clr.b d0 jsr sub_50576 loc_500CC: ; CODE XREF: OS2:000500C2j jsr sub_50514 bra.w loc_503C2 ; --------------------------------------------------------------------------- loc_500D6: ; CODE XREF: OS2:0004FEAAj move.b (byte_FFFF95DD).w,d3 cmp.b (byte_FFFFB495).w,d3 beq.s loc_5012E move.b d3,(byte_FFFFB495).w tst.b d3 beq.s loc_500F4 cmpi.b #3,d3 beq.s loc_500F4 cmpi.b #1,d3 bne.s loc_500F8 loc_500F4: ; CODE XREF: OS2:000500E6j ; OS2:000500ECj moveq #1,d4 bra.s loc_500FA ; --------------------------------------------------------------------------- loc_500F8: ; CODE XREF: OS2:000500F2j clr.b d4 loc_500FA: ; CODE XREF: OS2:000500F6j tst.b d4 beq.s loc_50106 bset #2,(byte_FFFFB48E).w bra.s loc_5012E ; --------------------------------------------------------------------------- loc_50106: ; CODE XREF: OS2:000500FCj cmpi.b #4,d3 beq.s loc_50112 cmpi.b #5,d3 bne.s loc_50128 loc_50112: ; CODE XREF: OS2:0005010Aj btst #2,(byte_FFFFB48E).w beq.s loc_50128 bclr #2,(byte_FFFFB48E).w bset #3,(byte_FFFFB48E).w bra.s loc_5012E ; --------------------------------------------------------------------------- loc_50128: ; CODE XREF: OS2:00050110j ; OS2:00050118j bclr #3,(byte_FFFFB48E).w loc_5012E: ; CODE XREF: OS2:000500DEj ; OS2:00050104j ... jsr sub_503CA tst.b d0 beq.w loc_503BA btst #6,(byte_FFFF89EE).w bne.w loc_503BA btst #6,(byte_FFFF89EC).w bne.w loc_503BA btst #6,(byte_FFFF88CE).w bne.w loc_503BA btst #6,(byte_FFFF88D0).w bne.w loc_503BA move.w (word_FFFF95C0).w,d3 cmp.w (XDTP_4W_LOW_KE_4WD_ETORQUE_LOW).l,d3 ; Lower engine torque threshold to enable 4WD-Lo diagnostic. Used in a hysteresis pair with KE_4WD_Etorque_High. ; Ft_lb bls.w loc_503BA cmp.w (XDTP_4W_LOW_KE_4WD_ETORQUE_HIGH).l,d3 ; Higher engine torque threshold to enable 4WD-Lo diagnostic. Used in a hysteresis pair with KE_4WD_Etorque_Low. ; Ft_lb bcc.w loc_503BA clr.l d3 move.w (word_FFFFB298).w,d3 moveq #$28,d6 ; '(' divu.w d6,d3 cmp.b (XDTP_4W_LOW_KE_4WD_VAC_LOW_THRESH).l,d3 ; Lower engine vacuum threshold to enable 4WD-Lo diagnostic. Used in a hysteresis pair with KE_4WD_Vac_High_Thresh. ; kPa bls.w loc_503BA clr.l d3 move.w (word_FFFFB298).w,d3 divu.w d6,d3 cmp.b (XDTP_4W_LOW_KE_4WD_VAC_HIGH_THRESH).l,d3 ; Higher engine vacuum threshold to enable 4WD-Lo diagnostic. Used in a hysteresis pair with KE_4WD_Vac_Low_Thresh. ; kPa bcc.w loc_503BA tst.b (byte_FFFFAC60).w bne.w loc_503BA cmpi.b #3,(byte_FFFF95DC).w bne.w loc_503BA move.b (VEH_SYS_KE_DRIVETRAIN_TYPE).l,d3 ; Describes the type of drivetrain used on the vehicle ; Drivetrain_Type cmpi.b #1,d3 beq.s loc_501C4 cmpi.b #2,d3 bne.s loc_501E6 loc_501C4: ; CODE XREF: OS2:000501BCj movea.l (off_134C).l,a0 move.l a0,-4(a6) move.l a0,d6 bne.s loc_501D8 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_501D8: ; CODE XREF: OS2:000501D0j clr.b d3 btst #3,2(a0) bne.s loc_501E8 addq.b #1,d3 bra.s loc_501E8 ; --------------------------------------------------------------------------- loc_501E6: ; CODE XREF: OS2:000501C2j clr.b d3 loc_501E8: ; CODE XREF: OS2:000501E0j ; OS2:000501E4j tst.b d3 beq.w loc_502AC move.w (word_FFFF95D8).w,d2 cmp.w (XDTP_4W_LOW_KE_4WD_HIGH_TCR_MIN_RATIO).l,d2 ; Transfer case ratio, when not in 4WD-Lo, minimum value. Used in a hysteresis pair with KE_4WD_High_TCR_Max_Ratio. ; Unitless bcs.s loc_50268 cmp.w (XDTP_4W_LOW_KE_4WD_HIGH_TCR_MAX_RATIO).l,d2 ; Transfer case ratio, when not in 4WD-Lo, maximum value. Used in a hysteresis pair with KE_4WD_High_TCR_Min_Ratio. ; Unitless bhi.s loc_50268 move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_4W_LOW_KE_4WD_LO_FAIL_STCK_ON_SLIP_LO).l,d0 blt.s loc_50268 move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_4W_LOW_KE_4WD_LO_FAIL_STCK_ON_SLIP_HI).l,d0 bgt.s loc_50268 moveq #3,d0 jsr sub_50576 move.w (XDTP_4W_LOW_KE_4WD_STUCK_ON_FAIL_TIME).l,d1 moveq #3,d0 jsr sub_504FC tst.b d0 beq.s loc_50268 move.b (byte_FFFFB492).w,d3 addq.b #1,d3 cmpi.b #$64,d3 ; 'd' bls.s loc_50242 moveq #$64,d3 ; 'd' loc_50242: ; CODE XREF: OS2:0005023Ej move.b d3,(byte_FFFFB492).w cmp.b (XDTP_4W_LOW_KE_4WD_LO_STUCK_ON_FAIL_COUNTS).l,d3 ; 4WD-Lo switch stuck on fail counter limit ; Counts bcs.s loc_50268 bclr #7,(byte_FFFFB48E).w bset #6,(byte_FFFFB48E).w bclr #4,(byte_FFFFB48E).w clr.b (byte_FFFFB492).w clr.b (byte_FFFFB493).w loc_50268: ; CODE XREF: OS2:000501F8j ; OS2:00050200j ... cmp.w (XDTP_4W_LOW_KE_4WD_LOW_TCR_MIN_RATIO).l,d2 ; Transfer Case Ratio; when in 4WD-Lo, manimum value. Used in a hysteresis pair with KE_4WD_Low_TCR_Max_Ratio. ; Unitless bcs.w loc_500BC cmp.w (XDTP_4W_LOW_KE_4WD_LOW_TCR_MAX_RATIO).l,d2 ; Transfer Case Ratio; when in 4WD-Lo, maximum value. Used in a hysteresis pair with KE_4WD_Low_TCR_Min_Ratio. ; Unitless bhi.w loc_500BC move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_4W_LOW_KE_4WD_LO_PASS_STCK_ON_SLIP_LO).l,d0 blt.w loc_500BC move.w (word_FFFF95BC).w,d0 loc_5028E: ; DATA XREF: sub_42330+C8o ; sub_42438+C8o ... cmp.w (XDTP_4W_LOW_KE_4WD_LO_PASS_STCK_ON_SLIP_HI).l,d0 bgt.w loc_500BC moveq #4,d0 jsr sub_50576 move.w (XDTP_4W_LOW_KE_4WD_STUCK_ON_PASS_TIME).l,d1 moveq #4,d0 bra.w loc_50390 ; --------------------------------------------------------------------------- loc_502AC: ; CODE XREF: OS2:000501EAj move.w (word_FFFF95D8).w,d2 cmp.w (XDTP_4W_LOW_KE_4WD_LOW_TCR_MIN_RATIO).l,d2 ; Transfer Case Ratio; when in 4WD-Lo, manimum value. Used in a hysteresis pair with KE_4WD_Low_TCR_Max_Ratio. ; Unitless bcs.w loc_50346 cmp.w (XDTP_4W_LOW_KE_4WD_LOW_TCR_MAX_RATIO).l,d2 ; Transfer Case Ratio; when in 4WD-Lo, maximum value. Used in a hysteresis pair with KE_4WD_Low_TCR_Min_Ratio. ; Unitless bhi.w loc_50346 move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_4W_LOW_KE_4WD_LO_FAIL_STCK_OFF_SLIP_HI).l,d0 bgt.s loc_50346 move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_4W_LOW_KE_4WD_LO_FAIL_STCK_OFF_SLIP_LO).l,d0 blt.s loc_50346 cmpi.b #4,(byte_FFFF95DD).w bne.s loc_50346 moveq #1,d0 jsr sub_50576 move.w (XDTP_4W_LOW_KE_4WD_STUCK_OFF_FAIL_TIME).l,d1 moveq #1,d0 jsr sub_504FC tst.b d0 beq.s loc_50346 btst #3,(byte_FFFFB48E).w beq.s loc_50346 move.b (byte_FFFFB493).w,d3 addq.b #1,d3 cmpi.b #$64,d3 ; 'd' bls.s loc_50314 moveq #$64,d3 ; 'd' loc_50314: ; CODE XREF: OS2:00050310j move.b d3,(byte_FFFFB493).w bclr #3,(byte_FFFFB48E).w cmp.b (XDTP_4W_LOW_KE_4WD_LO_STUCK_OFF_FAIL_COUNTS).l,d3 ; 4WD-Lo switch stuck off fail counter limit ; Counts bcs.s loc_50346 bset #1,(byte_FFFFB48E).w bset #7,(byte_FFFFB48E).w bclr #6,(byte_FFFFB48E).w bclr #4,(byte_FFFFB48E).w clr.b (byte_FFFFB493).w clr.b (byte_FFFFB492).w loc_50346: ; CODE XREF: OS2:000502B6j ; OS2:000502C0j ... cmpi.b #4,(byte_FFFF95DD).w bne.w loc_500BC cmp.w (XDTP_4W_LOW_KE_4WD_HIGH_TCR_MIN_RATIO).l,d2 ; Transfer case ratio, when not in 4WD-Lo, minimum value. Used in a hysteresis pair with KE_4WD_High_TCR_Max_Ratio. ; Unitless bcs.w loc_500BC cmp.w (XDTP_4W_LOW_KE_4WD_HIGH_TCR_MAX_RATIO).l,d2 ; Transfer case ratio, when not in 4WD-Lo, maximum value. Used in a hysteresis pair with KE_4WD_High_TCR_Min_Ratio. ; Unitless bhi.w loc_500BC move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_4W_LOW_KE_4WD_LO_PASS_STCK_OFF_SLIP_LO).l,d0 blt.w loc_500BC move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_4W_LOW_KE_4WD_LO_PASS_STCK_OFF_SLIP_HI).l,d0 bgt.w loc_500BC moveq #2,d0 jsr sub_50576 move.w (XDTP_4W_LOW_KE_4WD_STUCK_OFF_PASS_TIME).l,d1 moveq #2,d0 loc_50390: ; CODE XREF: OS2:000502A8j jsr sub_504FC tst.b d0 beq.w loc_500BC bclr #7,(byte_FFFFB48E).w bclr #6,(byte_FFFFB48E).w bset #4,(byte_FFFFB48E).w clr.b (byte_FFFFB493).w clr.b (byte_FFFFB492).w bra.w loc_500BC ; --------------------------------------------------------------------------- loc_503BA: ; CODE XREF: OS2:0004FEB6j ; OS2:0004FEC0j ... clr.b d0 jsr sub_50576 loc_503C2: ; CODE XREF: OS2:000500D2j movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; =============== S U B R O U T I N E ======================================= sub_503CA: ; CODE XREF: OS2:0004FEAEp ; OS2:loc_5012Ep tst.b (byte_1D8EB).l beq.w loc_504F8 btst #6,(byte_FFFF88E2).w bne.w loc_504F8 btst #6,(byte_FFFF88E4).w bne.w loc_504F8 btst #6,(byte_FFFF8A6E).w bne.w loc_504F8 btst #6,(byte_FFFF899A).w bne.w loc_504F8 btst #6,(byte_FFFF899C).w bne.w loc_504F8 btst #6,(byte_FFFF89F6).w bne.w loc_504F8 btst #6,(byte_FFFF89F2).w bne.w loc_504F8 btst #6,(byte_FFFF89F4).w bne.w loc_504F8 btst #6,(byte_FFFF89FC).w bne.w loc_504F8 btst #6,(byte_FFFF89F8).w bne.w loc_504F8 btst #6,(byte_FFFF89FA).w bne.w loc_504F8 btst #6,(byte_FFFF89FE).w bne.w loc_504F8 btst #6,(byte_FFFF8AA6).w bne.w loc_504F8 tst.b (TCM_OPTIONS_K_TCC_ENABLE_SOLENOID_PRESENT).l ; Indicates whether the transmission has a TCC enable solenoid. ; BOOLEAN beq.s loc_50468 btst #6,(byte_FFFF89EA).w bne.w loc_504F8 loc_50468: ; CODE XREF: sub_503CA+92j btst #7,(byte_FFFFA96E).w bne.w loc_504F8 btst #6,(byte_FFFFA96E).w bne.s loc_504F8 btst #0,(byte_FFFF95E2).w beq.s loc_504F8 tst.b (byte_FFFFB370).w beq.s loc_50490 clr.l d3 move.w (word_FFFF905C).w,d3 bra.s loc_50496 ; --------------------------------------------------------------------------- loc_50490: ; CODE XREF: sub_503CA+BCj clr.l d3 move.w (word_FFFFAB66).w,d3 loc_50496: ; CODE XREF: sub_503CA+C4j asl.l #5,d3 moveq #5,d4 divu.w d4,d3 cmpi.w #$7FFF,d3 bls.s loc_504A6 move.w #$7FFF,d3 loc_504A6: ; CODE XREF: sub_503CA+D6j cmp.w (XDTP_4W_LOW_KE_4WD_LOW_TPS).l,d3 ; Lower throttle range threshold to enable 4WD-Lo diagnostic. Used in a hysteresis pair with KE_4WD_High_TPS. ; Percent bcs.s loc_504F8 tst.b (byte_FFFFB370).w beq.s loc_504BC clr.l d3 move.w (word_FFFF905C).w,d3 bra.s loc_504C2 ; --------------------------------------------------------------------------- loc_504BC: ; CODE XREF: sub_503CA+E8j clr.l d3 move.w (word_FFFFAB66).w,d3 loc_504C2: ; CODE XREF: sub_503CA+F0j asl.l #5,d3 divu.w d4,d3 cmpi.w #$7FFF,d3 bls.s loc_504D0 move.w #$7FFF,d3 loc_504D0: ; CODE XREF: sub_503CA+100j cmp.w (XDTP_4W_LOW_KE_4WD_HIGH_TPS).l,d3 ; Upper throttle range threshold to enable 4WD-Lo diagnostic. Used in a hysteresis pair with KE_4WD_Low_TPS. ; Percent bhi.s loc_504F8 cmpi.b #3,(byte_FFFF95E9).w bne.s loc_504F8 move.w (word_FFFF9594).w,d3 cmp.w (XDTP_4W_LOW_KE_4WD_LOW_TRANS_TEMP).l,d3 blt.s loc_504F8 cmp.w (XDTP_4W_LOW_KE_4WD_HIGH_TRANS_TEMP).l,d3 bgt.s loc_504F8 moveq #1,d0 bra.s locret_504FA ; --------------------------------------------------------------------------- loc_504F8: ; CODE XREF: sub_503CA+6j ; sub_503CA+10j ... clr.b d0 locret_504FA: ; CODE XREF: sub_503CA+12Cj rts ; End of function sub_503CA ; =============== S U B R O U T I N E ======================================= sub_504FC: ; CODE XREF: OS2:0004FF8Ep ; OS2:0005001Ep ... cmp.b (byte_FFFFB48F).w,d0 bne.s loc_50510 cmp.w (word_FFFFB490).w,d1 bhi.s loc_50510 clr.w (word_FFFFB490).w moveq #1,d0 bra.s locret_50512 ; --------------------------------------------------------------------------- loc_50510: ; CODE XREF: sub_504FC+4j sub_504FC+Aj clr.b d0 locret_50512: ; CODE XREF: sub_504FC+12j rts ; End of function sub_504FC ; =============== S U B R O U T I N E ======================================= sub_50514: ; CODE XREF: OS2:loc_500CCp move.l d0,-(sp) btst #7,(byte_FFFFB48E).w bne.s loc_50526 btst #6,(byte_FFFFB48E).w beq.s loc_50548 loc_50526: ; CODE XREF: sub_50514+8j btst #1,(byte_FFFF8AA8).w beq.s loc_50536 btst #6,(byte_FFFF8AA8).w bne.s loc_50548 loc_50536: ; CODE XREF: sub_50514+18j move.w #$F4,d0 ; '?' jsr sub_5F110 clr.b (byte_FFFFB493).w clr.b (byte_FFFFB492).w loc_50548: ; CODE XREF: sub_50514+10j ; sub_50514+20j btst #4,(byte_FFFFB48E).w beq.s loc_50572 btst #1,(byte_FFFF8AA8).w bne.s loc_50560 btst #5,(byte_FFFF8AA8).w bne.s loc_50572 loc_50560: ; CODE XREF: sub_50514+42j move.w #$F4,d0 ; '?' jsr sub_5F0BE clr.b (byte_FFFFB493).w clr.b (byte_FFFFB492).w loc_50572: ; CODE XREF: sub_50514+3Aj ; sub_50514+4Aj move.l (sp)+,d0 rts ; End of function sub_50514 ; =============== S U B R O U T I N E ======================================= sub_50576: ; CODE XREF: OS2:0004FF26p ; OS2:0004FF80p ... cmp.b (byte_FFFFB48F).w,d0 beq.s loc_50586 clr.w (word_FFFFB490).w move.b d0,(byte_FFFFB48F).w bra.s loc_5059C ; --------------------------------------------------------------------------- loc_50586: ; CODE XREF: sub_50576+4j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB490).w,d3 add.w $A(a2),d3 bcc.s loc_50598 move.w #$FFFF,d3 loc_50598: ; CODE XREF: sub_50576+1Cj move.w d3,(word_FFFFB490).w loc_5059C: ; CODE XREF: sub_50576+Ej bclr #5,(byte_FFFFB48E).w rts ; End of function sub_50576 ; =============== S U B R O U T I N E ======================================= sub_505A4: ; CODE XREF: sub_4EFF2:loc_4F4F6p var_72B9 = -$72B9 movem.l d0/a0,-(sp) tst.b (byte_1D8F0).l beq.s loc_50612 btst #1,(byte_FFFF8A70).w beq.s loc_505C0 btst #6,(byte_FFFF8A70).w bne.s loc_50612 loc_505C0: ; CODE XREF: sub_505A4+12j tst.b (byte_FFFFAEFA).w beq.s loc_50612 clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFFB412).w,d4 cmp.w XDTP_4W_LOW_KE_4WD_LO_PASS_STCK_ON_SLIP_HI(d3.w*2),d4 bls.s loc_50612 clr.w d3 move.b (byte_FFFF95DC).w,d3 move.b -$72B1(d3.w),d3 addq.b #1,d3 cmpi.b #$64,d3 ; 'd' bls.s loc_505F0 moveq #$64,d3 ; 'd' loc_505F0: ; CODE XREF: sub_505A4+48j clr.w d4 move.b (byte_FFFF95DC).w,d4 move.b d3,8+var_72B9(d4.w) movea.l d4,a0 cmp.b byte_1DEEB(a0.w),d3 bcs.s loc_50612 move.w #$D8,d0 ; '?' jsr sub_5F110 loc_50612: ; CODE XREF: sub_505A4+Aj ; sub_505A4+1Aj ... movem.l (sp)+,d0/a0 rts ; End of function sub_505A4 ; =============== S U B R O U T I N E ======================================= sub_50618: ; CODE XREF: OS1:00028C98p move.l d0,-(sp) move.w #$D8,d0 ; '?' jsr sub_5F0BE move.l (sp)+,d0 rts ; End of function sub_50618 ; =============== S U B R O U T I N E ======================================= sub_50628: ; CODE XREF: sub_4F896:loc_4F8ACp movem.l d0-d2/d6,-(sp) tst.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.s loc_5063C cmpi.b #3,(byte_FFFF95DC).w beq.s loc_50646 loc_5063C: ; CODE XREF: sub_50628+Aj tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN bne.w loc_50BFC loc_50646: ; CODE XREF: sub_50628+12j bclr #1,(byte_FFFFAFD4).w move.b (byte_FFFF95DD).w,d3 cmp.b (byte_FFFFAFE2).w,d3 beq.s loc_50692 cmpi.b #4,d3 beq.s loc_50662 cmpi.b #2,d3 bne.s loc_5066A loc_50662: ; CODE XREF: sub_50628+32j bset #7,(byte_FFFFAFD4).w bra.s loc_50670 ; --------------------------------------------------------------------------- loc_5066A: ; CODE XREF: sub_50628+38j bclr #7,(byte_FFFFAFD4).w loc_50670: ; CODE XREF: sub_50628+40j btst #7,(byte_FFFFAFD4).w beq.s loc_50692 btst #2,(byte_FFFFAFD4).w bne.s loc_50692 bclr #3,(byte_FFFFAFD4).w clr.b (byte_FFFFAFF0).w clr.w (word_FFFFAFDE).w clr.w (word_FFFFAFDA).w loc_50692: ; CODE XREF: sub_50628+2Cj ; sub_50628+4Ej ... move.b (byte_FFFF95DD).w,d3 move.b d3,(byte_FFFFAFE2).w cmpi.b #4,d3 bne.s loc_506C0 move.w (word_FFFFAFD6).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIPPING_COMP_TCC_ON_TIME).l,d3 ; Amount of time TCC must be commanded on before the transmission component slipping test is run. ; Seconds bcc.s loc_506C4 movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_506BA move.w #$FFFF,d3 loc_506BA: ; CODE XREF: sub_50628+8Cj move.w d3,(word_FFFFAFD6).w bra.s loc_506C4 ; --------------------------------------------------------------------------- loc_506C0: ; CODE XREF: sub_50628+76j clr.w (word_FFFFAFD6).w loc_506C4: ; CODE XREF: sub_50628+82j ; sub_50628+96j move.w (word_FFFFA40C).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_TCC_LOCKED_CAPACITY).l,d3 bcc.s loc_506E0 btst #6,(byte_FFFFA400).w bne.s loc_506E0 btst #1,(byte_FFFFA400).w beq.s loc_50700 loc_506E0: ; CODE XREF: sub_50628+A6j ; sub_50628+AEj move.w (word_FFFFAFD8).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FULL_LOCK_TIME).l,d3 ; Time TCC must be commanded at fullat full duty cycle before fail test enables. ; Seconds bcc.s loc_50704 movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_506FA move.w #$FFFF,d3 loc_506FA: ; CODE XREF: sub_50628+CCj move.w d3,(word_FFFFAFD8).w bra.s loc_50704 ; --------------------------------------------------------------------------- loc_50700: ; CODE XREF: sub_50628+B6j clr.w (word_FFFFAFD8).w loc_50704: ; CODE XREF: sub_50628+C2j ; sub_50628+D6j btst #0,(byte_FFFF95E2).w beq.w loc_50B98 tst.b (byte_1D8E6).l beq.w loc_50B98 move.w (word_FFFFAFD6).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIPPING_COMP_TCC_ON_TIME).l,d3 ; Amount of time TCC must be commanded on before the transmission component slipping test is run. ; Seconds bcs.w loc_50B98 move.w (word_FFFF9594).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIPPING_COMP_TRANS_TEMP_LOW).l,d3 ; Minimum transmission temperature for enabling the Transmission Slipping Component tests. ; Degrees_C ble.w loc_50B98 move.w (word_FFFF9594).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIPPING_COMP_TRANS_TEMP_HIGH).l,d3 ; Maximum transmission temperature for enabling the Transmission Slipping Component tests. ; Degrees_C bge.w loc_50B98 move.w (word_FFFF95C0).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_ENG_TRQ_LOW).l,d3 ; Upper engine torque bound for transmission component slipping diagnostic test to be enabled. ; Foot Lbs bls.w loc_50B98 move.w (word_FFFF95C0).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_ENG_TRQ_HIGH).l,d3 ; Lower engine torque bound for transmission component slipping diagnostic test to be enabled. ; Foot Lbs bcc.w loc_50B98 clr.l d3 move.w (word_FFFFB298).w,d3 moveq #$28,d2 ; '(' divu.w d2,d3 cmp.b (XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_ENG_VAC_LOW).l,d3 ; Upper bound of engine vacuum constraint. ; kPa bls.w loc_50B98 clr.l d3 move.w (word_FFFFB298).w,d3 divu.w #$28,d3 ; '(' cmp.b (XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_ENG_VAC_HIGH).l,d3 ; Lower bound of engine vacuum constraint. ; kPa bcc.w loc_50B98 btst #7,(byte_FFFFA96E).w bne.w loc_50B98 btst #6,(byte_FFFFA96E).w bne.w loc_50B98 move.b (byte_FFFF95E9).w,d3 cmp.b (XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_DRIVE_RANGE).l,d3 ; Enable criterion for the diagnostic Note: Drive_3 exclusively for the 3T40-E trans. ; PRNDL_Type bne.w loc_50B98 move.w (word_FFFF95B6).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_ENG_SPD_LOW).l,d3 ; Low limit for the engine speed to enable diagnostic ; RPM bcs.w loc_50B98 move.w (word_FFFF95B6).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_ENG_SPD_HIGH).l,d3 ; High limit for the engine speed to enable diagnostic ; RPM bhi.w loc_50B98 move.w (word_FFFF95DA).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_VEH_SPD_LOW).l,d3 ; Low limit for the Vehicle speed to enable diagnostic ; MPH bcs.w loc_50B98 move.w (word_FFFF95DA).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_COMP_VEH_SPD_HIGH).l,d3 ; High limit for the Vehicle speed to enable diagnostic ; MPH bhi.w loc_50B98 move.w (word_FFFF95D6).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_CMP_SPD_RATIO_LOW).l,d3 ; Low limit for the speed ratio to enable diagnostic ; Ratio bcs.w loc_50B98 move.w (word_FFFF95D6).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_TRANS_SLIP_CMP_SPD_RATIO_HIGH).l,d3 ; High limit for the speed ratio to enable diagnostic ; Ratio bhi.w loc_50B98 tst.b (byte_FFFFAC60).w bne.w loc_50B98 btst #6,(byte_FFFF88E2).w bne.w loc_50B98 btst #6,(byte_FFFF88E4).w bne.w loc_50B98 btst #6,(byte_FFFF8A6E).w bne.w loc_50B98 btst #6,(byte_FFFF899A).w bne.w loc_50B98 btst #6,(byte_FFFF899C).w bne.w loc_50B98 btst #6,(byte_FFFF89EA).w bne.w loc_50B98 btst #6,(byte_FFFF8AA6).w bne.w loc_50B98 btst #6,(byte_FFFF89EE).w bne.w loc_50B98 btst #6,(byte_FFFF89EC).w bne.w loc_50B98 btst #6,(byte_FFFF89F6).w bne.w loc_50B98 btst #6,(byte_FFFF89FC).w bne.w loc_50B98 btst #6,(byte_FFFF89F2).w bne.w loc_50B98 btst #6,(byte_FFFF89F4).w bne.w loc_50B98 btst #6,(byte_FFFF89F8).w bne.w loc_50B98 btst #6,(byte_FFFF89FA).w bne.w loc_50B98 move.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l,d3 ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_508BC tst.b d3 beq.w loc_50B98 btst #6,(byte_FFFF89E2).w bne.w loc_50B98 btst #6,(byte_FFFF89E0).w bne.w loc_50B98 loc_508BC: ; CODE XREF: sub_50628+278j clr.b d1 move.w (word_FFFFAFD8).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FULL_LOCK_TIME).l,d3 ; Time TCC must be commanded at fullat full duty cycle before fail test enables. ; Seconds bcs.w loc_50AE6 btst #1,(byte_FFFF8A0E).w beq.s loc_508DE btst #6,(byte_FFFF8A0E).w bne.w loc_50AE6 loc_508DE: ; CODE XREF: sub_50628+2AAj btst #7,(byte_FFFFAFD4).w beq.w loc_50AE6 moveq #1,d1 move.w (word_FFFF95BC).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FAIL_LOW_LIMIT).l,d3 ; Low threshold for TCC slip failband ; RPM blt.w loc_50986 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FAIL_HIGH_LIMIT).l,d3 ; High threshold for TCC slip failband ; RPM bgt.w loc_50986 move.w (word_FFFF9582).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIPPING_COMP_THROTTLE_LOW).l,d3 ; Minimum throttle position for enabling the Transmission Slipping Component test. ; Percent bls.s loc_50986 move.w (word_FFFF9582).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIPPING_COMP_THROTTLE_HIGH).l,d3 ; Maximum throttle position for enabling the Transmission Slipping Component test. ; Percent bcc.s loc_50986 clr.w (word_FFFFAFE0).w move.w (word_FFFFAFDE).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIPPING_COMPONENT_DIAG_TIME).l,d3 ; Amount of time which slip must be above threshold to set the malfunction ; Seconds bcs.s loc_5094E clr.w (word_FFFFAFDE).w btst #3,(byte_FFFFAFD4).w bne.s loc_50960 move.b (byte_FFFFAFD5).w,d3 addq.b #1,d3 bcc.s loc_50942 move.b #$FF,d3 loc_50942: ; CODE XREF: sub_50628+314j move.b d3,(byte_FFFFAFD5).w bset #3,(byte_FFFFAFD4).w bra.s loc_50960 ; --------------------------------------------------------------------------- loc_5094E: ; CODE XREF: sub_50628+300j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_5095C move.w #$FFFF,d3 loc_5095C: ; CODE XREF: sub_50628+32Ej move.w d3,(word_FFFFAFDE).w loc_50960: ; CODE XREF: sub_50628+30Cj ; sub_50628+324j move.b (byte_FFFFAFD5).w,d3 cmp.b (XDTP_SLIP_COMPONENT_KE_TRANS_COMP_SLIP_MAX_COUNT).l,d3 ; Transmission component slipping fail case counter. ; Counts bcs.s loc_5098A clr.b (byte_FFFFAFD5).w tst.b (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FC2_ENABLE).l ; Enables fail case 2 in Trans Comp Slip test. ; T/F bne.s loc_5097E bclr #7,(byte_FFFFAFD4).w loc_5097E: ; CODE XREF: sub_50628+34Ej bset #1,(byte_FFFFAFD4).w bra.s loc_5098A ; --------------------------------------------------------------------------- loc_50986: ; CODE XREF: sub_50628+2CCj ; sub_50628+2D6j ... clr.w (word_FFFFAFDE).w loc_5098A: ; CODE XREF: sub_50628+342j ; sub_50628+35Cj tst.b (byte_FFFFAFD5).w bls.w loc_50AD4 tst.b (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FC2_ENABLE).l ; Enables fail case 2 in Trans Comp Slip test. ; T/F beq.w loc_50AD4 move.w (word_FFFF9582).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FC2_THROTTLE_LOW).l,d3 ; The lower limit of throttle position for enabling fail case 2 in the Trans Slip Comp test. ; % bls.w loc_50AC6 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FC2_THROTTLE_HIGH).l,d3 ; The upper limit of throttle position for enabling fail case 2 in the Trans Slip Comp test. ; % bcc.w loc_50AC6 cmpi.b #3,(byte_FFFF95DC).w bne.w loc_50AC6 move.b (byte_FFFFAFF0).w,d3 bne.s loc_50A18 move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FAIL_LOW_LIMIT_1).l,d0 ; Low threshold for TCC slip fail band in condition 1, fail case 2, trans comp slip test. ; RPM blt.s loc_50A18 move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FAIL_HIGH_LIMIT_1).l,d0 ; High threshold for TCC slip fail band in condition 1, fail case2, trans comp slip test. ; RPM bgt.s loc_50A18 clr.w (word_FFFFAFE0).w move.w (word_FFFFAFDA).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_EXTENDED_TIME_1).l,d0 ; TCC Slip must be in a calibratable range for this long before 1st fault can be set in trans comp slip test. ; Seconds bcs.s loc_50A00 clr.w (word_FFFFAFDA).w bset #5,(byte_FFFFAFD4).w move.b #1,(byte_FFFFAFF0).w bra.w loc_50AD4 ; --------------------------------------------------------------------------- loc_50A00: ; CODE XREF: sub_50628+3C2j ; sub_50628+41Cj ... movea.l (dword_FFFFB5DE).w,a2 move.l d0,d3 add.w $A(a2),d3 bcc.s loc_50A10 move.w #$FFFF,d3 loc_50A10: ; CODE XREF: sub_50628+3E2j move.w d3,(word_FFFFAFDA).w bra.w loc_50AD4 ; --------------------------------------------------------------------------- loc_50A18: ; CODE XREF: sub_50628+39Aj ; sub_50628+3A6j ... cmpi.b #1,d3 bne.s loc_50A64 move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FAIL_LOW_LIMIT_2).l,d0 ; Low threshold for TCC slip fail band in condition 2, fail case 2, trans comp slip test. ; RPM blt.s loc_50A64 move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FAIL_HIGH_LIMIT_2).l,d0 ; High threshold for TCC slip fail band in condition 2, fail case2, trans comp slip test. ; RPM bgt.s loc_50A64 clr.w (word_FFFFAFE0).w move.w (word_FFFFAFDA).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_EXTENDED_TIME_2).l,d0 ; TCC Slip must be in a calibratable range for this long before 2nd fault can be set in trans comp slip test. ; Seconds bcs.s loc_50A00 clr.w (word_FFFFAFDA).w move.b #2,(byte_FFFFAFF0).w bset #2,(byte_FFFFAFD4).w bset #5,(byte_FFFFAFD4).w bset #4,(byte_FFFFAFD4).w bra.s loc_50AD4 ; --------------------------------------------------------------------------- loc_50A64: ; CODE XREF: sub_50628+3F4j ; sub_50628+400j ... cmpi.b #2,d3 bne.s loc_50AB4 btst #4,(byte_FFFFAFD4).w bne.s loc_50AB4 move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FAIL_LOW_LIMIT_3).l,d0 ; Low threshold for TCC slip fail band in condition 3, fail case 2, trans comp slip test. ; RPM blt.s loc_50AB4 move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_FAIL_HIGH_LIMIT_3).l,d0 ; High threshold for TCC slip fail band in condition 3, fail case2, trans comp slip test. ; RPM bgt.s loc_50AB4 clr.w (word_FFFFAFE0).w bclr #2,(byte_FFFFAFD4).w move.w (word_FFFFAFDA).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_EXTENDED_TIME_3).l,d0 ; TCC Slip must be in a calibratable range for this long before fault can be set in trans comp slip test. ; Seconds bcs.w loc_50A00 clr.w (word_FFFFAFDA).w bclr #7,(byte_FFFFAFD4).w bset #1,(byte_FFFFAFD4).w bra.s loc_50AD4 ; --------------------------------------------------------------------------- loc_50AB4: ; CODE XREF: sub_50628+440j ; sub_50628+448j ... clr.w (word_FFFFAFDA).w btst #2,(byte_FFFFAFD4).w bne.s loc_50AD4 clr.b (byte_FFFFAFF0).w bra.s loc_50AD4 ; --------------------------------------------------------------------------- loc_50AC6: ; CODE XREF: sub_50628+37Ej ; sub_50628+388j ... clr.w (word_FFFFAFDA).w clr.b (byte_FFFFAFF0).w bclr #2,(byte_FFFFAFD4).w loc_50AD4: ; CODE XREF: sub_50628+366j ; sub_50628+370j ... btst #1,(byte_FFFFAFD4).w beq.s loc_50AE6 move.w #$A7,d0 ; '?' jsr sub_5F110 loc_50AE6: ; CODE XREF: sub_50628+2A0j ; sub_50628+2B2j ... move.w (word_FFFF95BC).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_PASS_LOW_LIMIT).l,d3 ; Low threshold for TCC slip pass. ; RPM ble.w loc_50B86 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIP_COMP_PASS_HIGH_LIMIT).l,d3 ; High threshold for TCC slip pass. ; RPM bge.w loc_50B86 move.w (word_FFFF9582).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIPPING_COMP_THROTTLE_LOW).l,d0 ; Minimum throttle position for enabling the Transmission Slipping Component test. ; Percent bls.s loc_50B86 move.w (word_FFFF9582).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIPPING_COMP_THROTTLE_HIGH).l,d0 ; Maximum throttle position for enabling the Transmission Slipping Component test. ; Percent bcc.s loc_50B86 moveq #1,d1 clr.w (word_FFFFAFDE).w clr.w (word_FFFFAFDA).w bclr #2,(byte_FFFFAFD4).w clr.b (byte_FFFFAFF0).w move.w (word_FFFFAFE0).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_SLIPPING_COMPONENT_DIAG_TIME).l,d0 ; Amount of time which slip must be above threshold to set the malfunction ; Seconds bcs.s loc_50B72 btst #1,(byte_FFFF8A0E).w bne.s loc_50B56 btst #5,(byte_FFFF8A0E).w beq.s loc_50B56 btst #5,(byte_FFFFAFD4).w bne.s loc_50B56 btst #4,(byte_FFFFAFD4).w beq.s loc_50B6C loc_50B56: ; CODE XREF: sub_50628+514j ; sub_50628+51Cj ... bclr #5,(byte_FFFFAFD4).w bclr #4,(byte_FFFFAFD4).w move.w #$A7,d0 ; '?' jsr sub_5F0BE loc_50B6C: ; CODE XREF: sub_50628+52Cj clr.b (byte_FFFFAFD5).w bra.s loc_50B86 ; --------------------------------------------------------------------------- loc_50B72: ; CODE XREF: sub_50628+50Cj movea.l (dword_FFFFB5DE).w,a2 move.l d0,d3 add.w $A(a2),d3 bcc.s loc_50B82 move.w #$FFFF,d3 loc_50B82: ; CODE XREF: sub_50628+554j move.w d3,(word_FFFFAFE0).w loc_50B86: ; CODE XREF: sub_50628+4C8j ; sub_50628+4D2j ... tst.b d1 bne.s loc_50BB4 clr.w (word_FFFFAFDE).w clr.w (word_FFFFAFE0).w clr.w (word_FFFFAFDA).w bra.s loc_50BA8 ; --------------------------------------------------------------------------- loc_50B98: ; CODE XREF: sub_50628+E2j ; sub_50628+ECj ... clr.w (word_FFFFAFDE).w clr.w (word_FFFFAFE0).w clr.w (word_FFFFAFDA).w clr.w (word_FFFFAFD8).w loc_50BA8: ; CODE XREF: sub_50628+56Ej btst #2,(byte_FFFFAFD4).w bne.s loc_50BB4 clr.b (byte_FFFFAFF0).w loc_50BB4: ; CODE XREF: sub_50628+560j ; sub_50628+586j btst #4,(byte_FFFFAFD4).w beq.s loc_50BE6 move.w (word_FFFFAFDC).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_COMP_SLIP_TCC_TURN_OFF_TIME).l,d3 ; Amount of time TCC must be turned off due to TCC slipping detected in Trans Comp Slip test, fail case 2, cond 2. ; Seconds bcs.s loc_50BD4 bclr #4,(byte_FFFFAFD4).w clr.w (word_FFFFAFDC).w bra.s loc_50BE6 ; --------------------------------------------------------------------------- loc_50BD4: ; CODE XREF: sub_50628+59Ej movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_50BE2 move.w #$FFFF,d3 loc_50BE2: ; CODE XREF: sub_50628+5B4j move.w d3,(word_FFFFAFDC).w loc_50BE6: ; CODE XREF: sub_50628+592j ; sub_50628+5AAj cmpi.b #3,(byte_FFFF95DC).w beq.s loc_50C16 bclr #5,(byte_FFFFAFD4).w bclr #4,(byte_FFFFAFD4).w bra.s loc_50C16 ; --------------------------------------------------------------------------- loc_50BFC: ; CODE XREF: sub_50628+1Aj bclr #5,(byte_FFFFAFD4).w bclr #4,(byte_FFFFAFD4).w bclr #2,(byte_FFFFAFD4).w clr.b (byte_FFFFAFF0).w clr.w (word_FFFFAFDA).w loc_50C16: ; CODE XREF: sub_50628+5C4j ; sub_50628+5D2j movem.l (sp)+,d0-d2/d6 rts ; End of function sub_50628 ; =============== S U B R O U T I N E ======================================= sub_50C1C: ; CODE XREF: sub_4F896:loc_4F8A6p movem.l d0-d2/d6,-(sp) move.b (byte_FFFF95DD).w,d3 cmp.b (byte_FFFFAFE3).w,d3 beq.s loc_50C44 cmpi.b #4,d3 beq.s loc_50C36 cmpi.b #2,d3 bne.s loc_50C3E loc_50C36: ; CODE XREF: sub_50C1C+12j bset #6,(byte_FFFFAFD4).w bra.s loc_50C44 ; --------------------------------------------------------------------------- loc_50C3E: ; CODE XREF: sub_50C1C+18j bclr #6,(byte_FFFFAFD4).w loc_50C44: ; CODE XREF: sub_50C1C+Cj ; sub_50C1C+20j move.b (byte_FFFF95DD).w,d3 move.b d3,(byte_FFFFAFE3).w moveq #4,d1 cmp.b d3,d1 bne.s loc_50C86 move.w (word_FFFFA40C).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_TCC_LOCKED_CAPACITY).l,d3 bcc.s loc_50C66 btst #6,(byte_FFFFA400).w beq.s loc_50C86 loc_50C66: ; CODE XREF: sub_50C1C+40j move.w (word_FFFFAFE6).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_TCC_LOCKED_OFF_TIME).l,d3 ; Amount of time TCCmust be in locked mode before TCC Stuck OffDiagnostic Test is run. ; Seconds bcc.s loc_50C8A movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_50C80 move.w #$FFFF,d3 loc_50C80: ; CODE XREF: sub_50C1C+5Ej move.w d3,(word_FFFFAFE6).w bra.s loc_50C8A ; --------------------------------------------------------------------------- loc_50C86: ; CODE XREF: sub_50C1C+34j ; sub_50C1C+48j clr.w (word_FFFFAFE6).w loc_50C8A: ; CODE XREF: sub_50C1C+54j ; sub_50C1C+68j move.b (byte_FFFF95E9).w,d3 moveq #1,d2 cmp.b d3,d2 bhi.w loc_50DA4 cmpi.b #3,d3 bhi.w loc_50DA4 move.w (word_FFFF9594).w,d4 cmp.w (XDTP_SLIP_COMPONENT_KE_TCC_OFF_TRANS_TEMP_HIGH).l,d4 ; Maximum transmission temperature for enabling the TCC Stuck Off tests. ; Degrees_C bge.w loc_50DA4 move.w (word_FFFF9594).w,d4 cmp.w (XDTP_SLIP_COMPONENT_KE_TCC_OFF_TRANS_TEMP_LOW).l,d4 ; Minimum transmission temperature for enabling the TCC Stuck Off tests. ; Degrees_C blt.w loc_50DA4 move.w (word_FFFF95F6).w,d4 cmp.w (XDTP_SLIP_COMPONENT_KE_TCC_OFF_LAST_RANGE_CHNG_TIME).l,d4 ; Amount of time since the last change in transmission range status before the TCC Stuck Off diagnostic can be enabled. ; Seconds bls.w loc_50DA4 tst.b (byte_1D8E8).l beq.w loc_50DA4 btst #6,(byte_FFFF88E2).w bne.w loc_50DA4 btst #6,(byte_FFFF88E4).w bne.w loc_50DA4 move.w (word_FFFF9582).w,d4 cmp.w (XDTP_SLIP_COMPONENT_KE_TCC_OFF_THROTTLE_LOW).l,d4 ; Minimum throttle position for enabling the TCC stuck off test. ; Percent bls.w loc_50DA4 move.w (word_FFFF9582).w,d4 cmp.w (XDTP_SLIP_COMPONENT_KE_TCC_OFF_THROTTLE_HIGH).l,d4 ; Maximum throttle position for enabling the TCC stuck off test. ; Percent bcc.w loc_50DA4 btst #6,(byte_FFFF899A).w bne.w loc_50DA4 btst #6,(byte_FFFF899C).w bne.w loc_50DA4 btst #6,(byte_FFFF8A6E).w bne.w loc_50DA4 btst #6,(byte_FFFF89EE).w bne.s loc_50DA4 btst #6,(byte_FFFF89EA).w bne.s loc_50DA4 btst #6,(byte_FFFF8AA6).w bne.s loc_50DA4 btst #0,(byte_FFFF95E2).w beq.s loc_50DA4 move.b (byte_FFFF95DC).w,d4 cmp.b d4,d2 bne.s loc_50D5C move.w (word_FFFF95D4).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_2_TCC_STUCK_OFF_RATIO_HIGH).l,d3 ; Higher Ratio bound for 2nd gear in the TCCstuck off diagnostic test. ; Ratio_Type bcc.s loc_50D5C cmp.w (XDTP_SLIP_COMPONENT_KE_2_TCC_STUCK_OFF_RATIO_LOW).l,d3 ; Lower Ratio bound for 2nd gear in the TCCstuck off diagnostic test. ; Ratio_Type bhi.s loc_50D90 loc_50D5C: ; CODE XREF: sub_50C1C+12Aj ; sub_50C1C+136j cmpi.b #2,d4 bne.s loc_50D76 move.w (word_FFFF95D4).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_3_TCC_STUCK_OFF_RATIO_HIGH).l,d3 ; Higher Ratio bound for 3rd gear in the TCCstuck off diagnostic test. ; Ratio_Type bcc.s loc_50D76 cmp.w (XDTP_SLIP_COMPONENT_KE_3_TCC_STUCK_OFF_RATIO_LOW).l,d3 ; Lower Ratio bound for 3rd gear in the TCCstuck off diagnostic test. ; Ratio_Type bhi.s loc_50D90 loc_50D76: ; CODE XREF: sub_50C1C+144j ; sub_50C1C+150j cmpi.b #3,d4 bne.s loc_50DA4 move.w (word_FFFF95D4).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_4_TCC_STUCK_OFF_RATIO_HIGH).l,d3 ; Higher Ratio bound for 4th gear in the TCCstuck off diagnostic test. ; Ratio_Type bcc.s loc_50DA4 cmp.w (XDTP_SLIP_COMPONENT_KE_4_TCC_STUCK_OFF_RATIO_LOW).l,d3 ; Lower Ratio bound for 4th gear in the TCCstuck off diagnostic test. ; Ratio_Type bls.s loc_50DA4 loc_50D90: ; CODE XREF: sub_50C1C+13Ej ; sub_50C1C+158j btst #1,(byte_FFFF89E2).w bne.s loc_50DA4 btst #6,(byte_FFFF89E0).w bne.s loc_50DA4 move.l d2,d3 bra.s loc_50DA6 ; --------------------------------------------------------------------------- loc_50DA4: ; CODE XREF: sub_50C1C+76j ; sub_50C1C+7Ej ... clr.b d3 loc_50DA6: ; CODE XREF: sub_50C1C+186j tst.b d3 beq.w loc_50E3A move.w (word_FFFFAFE6).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_TCC_LOCKED_OFF_TIME).l,d0 ; Amount of time TCCmust be in locked mode before TCC Stuck OffDiagnostic Test is run. ; Seconds bcs.w loc_50E3A btst #1,(byte_FFFF89EC).w beq.s loc_50DCA btst #6,(byte_FFFF89EC).w bne.s loc_50E3A loc_50DCA: ; CODE XREF: sub_50C1C+1A4j move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_TCC_OFF_FAIL_SLIP_LIMIT).l,d0 ; Above this value the TCC Stuck Off malfunction may be set ; RPM blt.s loc_50E3A clr.w (word_FFFFAFE8).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAFEA).w,d3 add.w $A(a2),d3 bcc.s loc_50DEC move.w #$FFFF,d3 loc_50DEC: ; CODE XREF: sub_50C1C+1CAj move.w d3,(word_FFFFAFEA).w cmp.w (XDTP_SLIP_COMPONENT_KE_TCC_OFF_FAIL_DIAG_TIME).l,d3 ; Amount of time slip must be above threshold to clear the malfunction ; Seconds bcs.w loc_50EA4 btst #6,(byte_FFFFAFD4).w beq.w loc_50EA4 move.b (byte_FFFFAFE4).w,d3 addq.b #1,d3 bcc.s loc_50E10 move.b #$FF,d3 loc_50E10: ; CODE XREF: sub_50C1C+1EEj move.b d3,(byte_FFFFAFE4).w clr.w (word_FFFFAFEA).w move.b (byte_FFFFAFE4).w,d0 cmp.b (XDTP_SLIP_COMPONENT_KE_TCC_STUCK_OFF_MAX_COUNT).l,d0 ; Fail counter for TCC_Stuck_Off. ; Counts bcs.s loc_50E32 move.w #$96,d0 ; '?' jsr sub_5F110 clr.b (byte_FFFFAFE4).w loc_50E32: ; CODE XREF: sub_50C1C+206j bclr #6,(byte_FFFFAFD4).w bra.s loc_50EA4 ; --------------------------------------------------------------------------- loc_50E3A: ; CODE XREF: sub_50C1C+18Cj ; sub_50C1C+19Aj ... tst.b d3 beq.s loc_50E9C cmp.b (byte_FFFF95DD).w,d1 bne.s loc_50E9C move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_TCC_OFF_PASS_SLIP_LIMIT).l,d0 ; Above this value the TCC Stuck Off malfunction may be cleared ; RPM bge.s loc_50E9C clr.w (word_FFFFAFEA).w move.w (word_FFFFAFE8).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_TCC_OFF_PASS_DIAG_TIME).l,d0 ; Amount of time slip must be above threshold to clear the malfunction ; Seconds bcs.s loc_50E86 clr.b (byte_FFFFAFE4).w bclr #6,(byte_FFFFAFD4).w btst #1,(byte_FFFF89EC).w bne.s loc_50E7A btst #5,(byte_FFFF89EC).w bne.s loc_50EA4 loc_50E7A: ; CODE XREF: sub_50C1C+254j move.w #$96,d0 ; '?' jsr sub_5F0BE bra.s loc_50EA4 ; --------------------------------------------------------------------------- loc_50E86: ; CODE XREF: sub_50C1C+242j movea.l (dword_FFFFB5DE).w,a2 move.l d0,d3 add.w $A(a2),d3 bcc.s loc_50E96 move.w #$FFFF,d3 loc_50E96: ; CODE XREF: sub_50C1C+274j move.w d3,(word_FFFFAFE8).w bra.s loc_50EA4 ; --------------------------------------------------------------------------- loc_50E9C: ; CODE XREF: sub_50C1C+220j ; sub_50C1C+226j ... clr.w (word_FFFFAFEA).w clr.w (word_FFFFAFE8).w loc_50EA4: ; CODE XREF: sub_50C1C+1DAj ; sub_50C1C+1E4j ... movem.l (sp)+,d0-d2/d6 rts ; End of function sub_50C1C ; =============== S U B R O U T I N E ======================================= sub_50EAA: ; CODE XREF: sub_4F896+22p move.l d0,-(sp) tst.b (byte_1D8E9).l beq.s loc_50EF4 move.w (word_FFFF95DA).w,d3 cmp.w (XDTP_SLIP_COMPONENT_KE_TORQUE_CONV_STRESS_MPH).l,d3 ; Vehicle speed must be less than this to enable torque converter overstress diagnostic. ; MPH bhi.s loc_50EF4 cmpi.b #4,(byte_FFFF95E9).w bhi.s loc_50EF4 btst #6,(byte_FFFF88E2).w bne.s loc_50EF4 btst #6,(byte_FFFF88E4).w bne.s loc_50EF4 btst #6,(byte_FFFF899A).w bne.s loc_50EF4 btst #6,(byte_FFFF899C).w bne.s loc_50EF4 btst #6,(byte_FFFF8A6E).w bne.s loc_50EF4 moveq #1,d3 bra.s loc_50EF6 ; --------------------------------------------------------------------------- loc_50EF4: ; CODE XREF: sub_50EAA+8j ; sub_50EAA+14j ... clr.b d3 loc_50EF6: ; CODE XREF: sub_50EAA+48j tst.b d3 beq.s loc_50F52 btst #1,(byte_FFFF88C0).w beq.s loc_50F0A btst #6,(byte_FFFF88C0).w bne.s loc_50F52 loc_50F0A: ; CODE XREF: sub_50EAA+56j move.w (word_FFFF9582).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_TORQUE_CONV_STRESS_THR_HIGH).l,d0 ; Throttle must be greater than this to fail the torque converter overstress diagnostic. ; Percent bcs.s loc_50F52 move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_TORQUE_CONV_STRESS_SLIP_HIGH).l,d0 ; Slip must be greater than this to fail the torque converter overstress diagnostic. ; RPM blt.s loc_50F52 move.w (word_FFFFAFEC).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_TORQUE_CONV_STRESS_FAIL_TIME).l,d0 ; Amount of time the torque converter overstress fail conditions must be met before the diagnostic Fails. ; Seconds bcs.s loc_50F3C clr.w d0 jsr sub_5F110 loc_50F36: ; CODE XREF: sub_50EAA+FEj clr.w (word_FFFFAFEC).w bra.s loc_50FB2 ; --------------------------------------------------------------------------- loc_50F3C: ; CODE XREF: sub_50EAA+82j movea.l (dword_FFFFB5DE).w,a2 move.l d0,d3 add.w $A(a2),d3 bcc.s loc_50F4C move.w #$FFFF,d3 loc_50F4C: ; CODE XREF: sub_50EAA+9Cj move.w d3,(word_FFFFAFEC).w bra.s loc_50FAE ; --------------------------------------------------------------------------- loc_50F52: ; CODE XREF: sub_50EAA+4Ej ; sub_50EAA+5Ej ... tst.b d3 beq.s loc_50FAA btst #1,(byte_FFFF88C0).w bne.s loc_50F66 btst #5,(byte_FFFF88C0).w bne.s loc_50FAA loc_50F66: ; CODE XREF: sub_50EAA+B2j move.w (word_FFFF9582).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_TORQUE_CONV_STRESS_THR_LOW).l,d0 ; Throttle must be less than this to pass the torque converter overstress diagnostic. ; Percent bhi.s loc_50FAA move.w (word_FFFF95BC).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_TORQUE_CONV_STRESS_SLIP_LOW).l,d0 ; Slip must be less than this to pass the torque converter overstress diagnostic. ; RPM bge.s loc_50FAA move.w (word_FFFFAFEE).w,d0 cmp.w (XDTP_SLIP_COMPONENT_KE_TORQUE_CONV_STRESS_PASS_TIME).l,d0 ; Amount of time the torque converter overstress pass conditions must be met before the diagnostic Passes. ; Seconds bcs.s loc_50F94 clr.w d0 jsr sub_5F0BE bra.s loc_50FAE ; --------------------------------------------------------------------------- loc_50F94: ; CODE XREF: sub_50EAA+DEj movea.l (dword_FFFFB5DE).w,a2 move.l d0,d3 add.w $A(a2),d3 bcc.s loc_50FA4 move.w #$FFFF,d3 loc_50FA4: ; CODE XREF: sub_50EAA+F4j move.w d3,(word_FFFFAFEE).w bra.s loc_50F36 ; --------------------------------------------------------------------------- loc_50FAA: ; CODE XREF: sub_50EAA+AAj ; sub_50EAA+BAj ... clr.w (word_FFFFAFEC).w loc_50FAE: ; CODE XREF: sub_50EAA+A6j ; sub_50EAA+E8j clr.w (word_FFFFAFEE).w loc_50FB2: ; CODE XREF: sub_50EAA+90j move.l (sp)+,d0 rts ; End of function sub_50EAA ; =============== S U B R O U T I N E ======================================= sub_50FB6: ; CODE XREF: sub_4F896+1Cp movem.l d0-d2/a0,-(sp) tst.b (byte_1D8E7).l beq.w loc_513AA btst #0,(byte_FFFF95E2).w beq.w loc_513AA btst #6,(byte_FFFF8AA6).w bne.w loc_513AA btst #6,(byte_FFFF89EA).w bne.w loc_513AA tst.b (TCM_OPTIONS_KE_TRANS_HAS_TCC_RELEASE_SWITCH).l ; Trans has TCC Release Switch. Used with 4T65E transmissions. ; BOOLEAN beq.w loc_51084 tst.b (byte_FFFFA7F9).w bne.w loc_513AA btst #6,(byte_FFFF88C0).w bne.w loc_513AA btst #6,(byte_FFFF88E4).w bne.w loc_513AA btst #6,(byte_FFFF88E2).w bne.w loc_513AA move.w (word_FFFF9582).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_ON_W_REL_THROTTLE_LOW).l,d3 ; Low threshold throttle position for TCC Systemstuck on with release switch diagnostic test ; Percent bcs.w loc_513AA move.w (word_FFFF9582).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_ON_W_REL_THROTTLE_HIGH).l,d3 ; High threshold throttle position for TCC Systemstuck on with release switch diagnostic test ; Percent bhi.w loc_513AA move.w (word_FFFF95F6).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_ON_LAST_RANGE_CHNG_TIME).l,d3 ; Amount of time since the last change in in transmission range status before the TCCStuck On diagnostic can be enabled ; Seconds bcs.w loc_513AA move.b (byte_FFFF95DD).w,d3 beq.s loc_51048 cmpi.b #3,d3 bne.s loc_5104C loc_51048: ; CODE XREF: sub_50FB6+8Aj moveq #1,d3 bra.s loc_5104E ; --------------------------------------------------------------------------- loc_5104C: ; CODE XREF: sub_50FB6+90j clr.b d3 loc_5104E: ; CODE XREF: sub_50FB6+94j tst.b d3 beq.w loc_513AA move.w (word_FFFF9594).w,d3 addi.w #$36,d3 ; '6' clr.w d0 move.b (XDTP_TCC_SLIP_KE_TCC_SYST_PERF_STU_ON_TEMP_LO).l,d0 ; Disable TCC Stuck On with release switch diagnostic if transmission temperature is below this. ; Degrees_C cmp.w d0,d3 bcs.w loc_513AA move.w (word_FFFF9594).w,d3 addi.w #$36,d3 ; '6' clr.w d0 move.b (XDTP_TCC_SLIP_KE_TCC_SYST_PERF_STU_ON_TEMP_HI).l,d0 ; Disable TCC Stuck On with release switch diagnostic if transmission temperature is above this. ; Degrees_C cmp.w d0,d3 bhi.w loc_513AA bra.w loc_511EA ; --------------------------------------------------------------------------- loc_51084: ; CODE XREF: sub_50FB6+32j move.b (byte_FFFF95DC).w,d4 beq.w loc_513AA move.w (word_FFFF9582).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_THROTTLE_LOW).l,d3 ; Minimum throttle position for enabling the TCC stuck on diagnostic ; Percent bcs.w loc_513AA move.w (word_FFFF9582).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_THROTTLE_HIGH).l,d3 ; Maximum throttle position for enabling the TCC stuck on diagnostic ; Percent bhi.w loc_513AA clr.l d3 move.w (word_FFFFB298).w,d3 moveq #$28,d1 ; '(' divu.w d1,d3 cmp.b (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_VAC_LOW_THRESH).l,d3 ; In order to execute the TCC stuck on diagnostic, engine vac > this cal ; Kpa bcs.w loc_513AA clr.l d3 move.w (word_FFFFB298).w,d3 divu.w #$28,d3 ; '(' cmp.b (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_VAC_HIGH_THRESH).l,d3 ; In order to execute the TCC stuck on diagnostic, engine vac < this cal ; Kpa bcc.w loc_513AA move.w (word_FFFF95C0).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_ETORQUE_LOW).l,d3 ; TCC Stuck On diagnostic will not execute if torque below this level ; FtLB bls.w loc_513AA move.w (word_FFFF95C0).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_ETORQUE_HIGH).l,d3 ; TCC Stuck On diagnostic will not execute if torque above this level ; FtLB bcc.w loc_513AA move.b (byte_FFFF95E9).w,d3 cmp.b (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_DRIVE_RANGE).l,d3 ; Enable criterion for the diagnostic Note: Drive_3 exclusively for the 3T40-E trans. ; PRNDL_Type bne.w loc_513AA move.b (byte_FFFF95DD).w,d3 beq.s loc_51106 cmpi.b #3,d3 bne.s loc_5110A loc_51106: ; CODE XREF: sub_50FB6+148j moveq #1,d3 bra.s loc_5110C ; --------------------------------------------------------------------------- loc_5110A: ; CODE XREF: sub_50FB6+14Ej clr.b d3 loc_5110C: ; CODE XREF: sub_50FB6+152j tst.b d3 beq.w loc_513AA move.w (word_FFFF95B6).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_ENG_SPD_LOW).l,d3 ; Low limit for the engine speed to enable diagnostic ; RPM bcs.w loc_513AA move.w (word_FFFF95B6).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_ENG_SPD_HIGH).l,d3 ; High limit for the engine speed to enable diagnostic ; RPM bhi.w loc_513AA move.w (word_FFFF95DA).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_VEH_SPD_LOW).l,d3 ; Low limit for the Vehicle speed to enable diagnostic ; MPH bcs.w loc_513AA move.w (word_FFFF95DA).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_VEH_SPD_HIGH).l,d3 ; High limit for the Vehicle speed to enable diagnostic ; MPH bhi.w loc_513AA move.w (word_FFFF95D6).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_SPD_RATIO_LOW).l,d3 ; Low limit for the speed ratio to enable diagnostic ; Ratio bcs.w loc_513AA move.w (word_FFFF95D6).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_SPD_RATIO_HIGH).l,d3 ; High limit for the speed ratio to enable diagnostic ; Ratio bhi.w loc_513AA btst #6,(byte_FFFF89EC).w bne.w loc_513AA btst #6,(byte_FFFF88E4).w bne.w loc_513AA btst #6,(byte_FFFF88E2).w bne.w loc_513AA btst #6,(byte_FFFF899A).w bne.w loc_513AA btst #6,(byte_FFFF899C).w bne.w loc_513AA btst #6,(byte_FFFF8A6E).w bne.w loc_513AA btst #6,(byte_FFFF88CE).w bne.w loc_513AA btst #6,(byte_FFFF88D0).w bne.w loc_513AA tst.b (byte_FFFFAC60).w bne.w loc_513AA tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_511EA btst #6,(byte_FFFF89E2).w bne.w loc_513AA btst #6,(byte_FFFF89E0).w bne.w loc_513AA tst.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.s loc_511EA cmpi.b #3,d4 beq.w loc_513AA loc_511EA: ; CODE XREF: sub_50FB6+CAj ; sub_50FB6+20Ej ... moveq #2,d1 cmp.b (byte_FFFFB46A).w,d1 beq.w loc_512D4 btst #6,(byte_FFFF89EE).w beq.s loc_51206 btst #1,(byte_FFFF89EE).w bne.w loc_512D4 loc_51206: ; CODE XREF: sub_50FB6+244j tst.b (TCM_OPTIONS_KE_TRANS_HAS_TCC_RELEASE_SWITCH).l ; Trans has TCC Release Switch. Used with 4T65E transmissions. ; BOOLEAN beq.s loc_51218 tst.b (byte_FFFFA676).w bne.s loc_5125C bra.w loc_512D4 ; --------------------------------------------------------------------------- loc_51218: ; CODE XREF: sub_50FB6+256j move.w (word_FFFF95BC).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_FAIL_LOW_SLIP).l,d3 ; TCC stuck on low limit, above this value malfucntion will be set ; RPM_S ble.s loc_51256 cmp.w (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_FAIL_HIGH_SLIP).l,d3 ; TCC stuck on high limit, below this value malfucntion will be set ; RPM_S bge.s loc_51256 move.w (word_FFFFB468).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_FAIL_TIME).l,d3 ; Amount of time TCC slip must be between thresholds in order to set malfunction ; Seconds bcs.s loc_5123E clr.w (word_FFFFB468).w bra.s loc_5125C ; --------------------------------------------------------------------------- loc_5123E: ; CODE XREF: sub_50FB6+280j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_5124C move.w #$FFFF,d3 loc_5124C: ; CODE XREF: sub_50FB6+290j move.w d3,(word_FFFFB468).w clr.w (word_FFFFB466).w bra.s loc_512D4 ; --------------------------------------------------------------------------- loc_51256: ; CODE XREF: sub_50FB6+26Cj ; sub_50FB6+274j clr.w (word_FFFFB468).w bra.s loc_512D4 ; --------------------------------------------------------------------------- loc_5125C: ; CODE XREF: sub_50FB6+25Cj ; sub_50FB6+286j tst.b (TCM_OPTIONS_KE_TRANS_HAS_TCC_RELEASE_SWITCH).l ; Trans has TCC Release Switch. Used with 4T65E transmissions. ; BOOLEAN beq.s loc_512BA movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB46E).w,d3 add.w $A(a2),d3 bcc.s loc_51276 move.w #$FFFF,d3 loc_51276: ; CODE XREF: sub_50FB6+2BAj move.w d3,(word_FFFFB46E).w cmp.w (XDTP_TCC_SLIP_KE_TCC_ON_REL_SWITCH_TIME_FAIL).l,d3 ; The amount of time that the TCC_Release_Switchindicates TCC release oil is not presentin order to fail ; Seconds bcs.s loc_512E0 move.b (byte_FFFFB46B).w,d3 addq.b #1,d3 bcc.s loc_5128E move.b #$FF,d3 loc_5128E: ; CODE XREF: sub_50FB6+2D2j move.b d3,(byte_FFFFB46B).w clr.w (word_FFFFB46E).w move.b (byte_FFFFB46B).w,d0 cmp.b (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_FAIL_COUNTER).l,d0 ; Number of times fail condition must occur in order for the test to report a failure ; SHORTCARD bcs.s loc_512E0 loc_512A2: ; CODE XREF: sub_50FB6+31Cj clr.b (byte_FFFFB46B).w move.b d1,(byte_FFFFB46A).w move.w #$97,d0 ; '?' jsr sub_5F110 loc_512B4: ; CODE XREF: sub_50FB6+31Aj clr.b (byte_FFFFB46A).w bra.s loc_512E0 ; --------------------------------------------------------------------------- loc_512BA: ; CODE XREF: sub_50FB6+2ACj move.b (byte_FFFFB46B).w,d3 addq.b #1,d3 bcc.s loc_512C6 move.b #$FF,d3 loc_512C6: ; CODE XREF: sub_50FB6+30Aj move.b d3,(byte_FFFFB46B).w cmp.b (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_FAIL_COUNTER).l,d3 ; Number of times fail condition must occur in order for the test to report a failure ; SHORTCARD bcs.s loc_512B4 bra.s loc_512A2 ; --------------------------------------------------------------------------- loc_512D4: ; CODE XREF: sub_50FB6+23Aj ; sub_50FB6+24Cj ... tst.b (TCM_OPTIONS_KE_TRANS_HAS_TCC_RELEASE_SWITCH).l ; Trans has TCC Release Switch. Used with 4T65E transmissions. ; BOOLEAN beq.s loc_512E0 clr.w (word_FFFFB46E).w loc_512E0: ; CODE XREF: sub_50FB6+2CAj ; sub_50FB6+2EAj ... moveq #1,d2 cmp.b (byte_FFFFB46A).w,d2 beq.w loc_5139C btst #1,(byte_FFFF89EE).w bne.s loc_512FC btst #5,(byte_FFFF89EE).w bne.w loc_5139C loc_512FC: ; CODE XREF: sub_50FB6+33Aj tst.b (TCM_OPTIONS_KE_TRANS_HAS_TCC_RELEASE_SWITCH).l ; Trans has TCC Release Switch. Used with 4T65E transmissions. ; BOOLEAN beq.s loc_5130E tst.b (byte_FFFFA676).w beq.s loc_51352 bra.w loc_5139C ; --------------------------------------------------------------------------- loc_5130E: ; CODE XREF: sub_50FB6+34Cj move.w (word_FFFF95BC).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_PASS_LOW_SLIP).l,d3 ; TCC stuck on low limit, above this value malfucntion will be cleared ; RPM_S ble.s loc_5134C cmp.w (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_PASS_HIGH_SLIP).l,d3 ; TCC stuck on high limit, below this value malfucntion will be cleared ; RPM_S bge.s loc_5134C move.w (word_FFFFB466).w,d3 cmp.w (XDTP_TCC_SLIP_KE_TCC_STUCK_ON_PASS_TIME).l,d3 ; Amount of time TCC slip must be between thresholds in order to clear malfunction ; Seconds bcs.s loc_51334 clr.w (word_FFFFB466).w bra.s loc_51352 ; --------------------------------------------------------------------------- loc_51334: ; CODE XREF: sub_50FB6+376j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_51342 move.w #$FFFF,d3 loc_51342: ; CODE XREF: sub_50FB6+386j move.w d3,(word_FFFFB466).w clr.w (word_FFFFB468).w bra.s loc_5139C ; --------------------------------------------------------------------------- loc_5134C: ; CODE XREF: sub_50FB6+362j ; sub_50FB6+36Aj clr.w (word_FFFFB466).w bra.s loc_5139C ; --------------------------------------------------------------------------- loc_51352: ; CODE XREF: sub_50FB6+352j ; sub_50FB6+37Cj tst.b (TCM_OPTIONS_KE_TRANS_HAS_TCC_RELEASE_SWITCH).l ; Trans has TCC Release Switch. Used with 4T65E transmissions. ; BOOLEAN beq.s loc_51396 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB46C).w,d3 add.w $A(a2),d3 bcc.s loc_5136C move.w #$FFFF,d3 loc_5136C: ; CODE XREF: sub_50FB6+3B0j move.w d3,(word_FFFFB46C).w cmp.w (XDTP_TCC_SLIP_KE_TCC_ON_REL_SWITCH_TIME_PASS).l,d3 ; The amount of time that the TCC ReleaseSwitch indicates TCC Release oil is presentin order to pass ; Seconds bcs.s loc_513BA clr.w (word_FFFFB46C).w tst.b (byte_FFFFB46B).w bne.s loc_513BA loc_51382: ; CODE XREF: sub_50FB6+3E4j move.b d2,(byte_FFFFB46A).w move.w #$97,d0 ; '?' jsr sub_5F0BE clr.b (byte_FFFFB46A).w bra.s loc_513BA ; --------------------------------------------------------------------------- loc_51396: ; CODE XREF: sub_50FB6+3A2j clr.b (byte_FFFFB46B).w bra.s loc_51382 ; --------------------------------------------------------------------------- loc_5139C: ; CODE XREF: sub_50FB6+330j ; sub_50FB6+342j ... tst.b (TCM_OPTIONS_KE_TRANS_HAS_TCC_RELEASE_SWITCH).l ; Trans has TCC Release Switch. Used with 4T65E transmissions. ; BOOLEAN beq.s loc_513BA clr.w (word_FFFFB46C).w bra.s loc_513BA ; --------------------------------------------------------------------------- loc_513AA: ; CODE XREF: sub_50FB6+Aj ; sub_50FB6+14j ... clr.w (word_FFFFB46E).w clr.w (word_FFFFB46C).w clr.w (word_FFFFB466).w clr.w (word_FFFFB468).w loc_513BA: ; CODE XREF: sub_50FB6+3C0j ; sub_50FB6+3CAj ... movem.l (sp)+,d0-d2/a0 rts ; End of function sub_50FB6 ; =============== S U B R O U T I N E ======================================= sub_513C0: ; CODE XREF: DoLoopE+14Ep move.l d0,-(sp) tst.b (byte_1D8E4).l beq.w loc_5148C btst #1,(byte_FFFF89DC).w bne.w loc_5148C btst #1,(byte_FFFF89DE).w bne.w loc_5148C btst #1,(byte_FFFF89DA).w bne.w loc_5148C move.w (word_FFFF9594).w,d3 cmp.w (XDTP_TEMP_KE_TRANS_OVER_TEMPERATURE_HIGH).l,d3 ; Degrees Ctemperature threshold above which the transmission over temperature fault may occur ; Degrees_C blt.s loc_51444 btst #1,(byte_FFFF8932).w beq.s loc_51406 btst #6,(byte_FFFF8932).w bne.s loc_5143A loc_51406: ; CODE XREF: sub_513C0+3Cj movea.l (dword_FFFFB5DE).w,a2 clr.l d3 move.w $A(a2),d3 add.l (dword_FFFFAF1C).w,d3 bvc.s loc_5141C move.l #$7FFFFFFF,d3 loc_5141C: ; CODE XREF: sub_513C0+54j move.l d3,(dword_FFFFAF1C).w clr.w (word_FFFFAF1A).w move.l (dword_FFFFAF1C).w,d0 cmp.l (XDTP_TEMP_KE_TRANS_OVER_TEMP_FAIL_TIME).l,d0 ; Amountof time which transmission temperature must be above the high thresholds before a fault is set ; Seconds blt.s loc_51494 moveq #$39,d0 ; '9' jsr sub_5F110 bra.s loc_51490 ; --------------------------------------------------------------------------- loc_5143A: ; CODE XREF: sub_513C0+44j clr.l (dword_FFFFAF1C).w clr.w (word_FFFFAF1A).w bra.s loc_51494 ; --------------------------------------------------------------------------- loc_51444: ; CODE XREF: sub_513C0+34j cmp.w (XDTP_TEMP_KE_TRANS_OVER_TEMPERATURE_LOW).l,d3 ; Degrees Ctemperature threshold below which the transmission over temperature fault isreset ; Degrees_C bge.s loc_5148C btst #1,(byte_FFFF8932).w bne.s loc_5145C btst #5,(byte_FFFF8932).w bne.s loc_5148C loc_5145C: ; CODE XREF: sub_513C0+92j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAF1A).w,d3 add.w $A(a2),d3 bcc.s loc_5146E move.w #$FFFF,d3 loc_5146E: ; CODE XREF: sub_513C0+A8j move.w d3,(word_FFFFAF1A).w clr.l (dword_FFFFAF1C).w move.w (word_FFFFAF1A).w,d0 cmp.w (XDTP_TEMP_KE_TRANS_OVER_TEMP_PASS_TIME).l,d0 ; Amountof time which transmission temperature must be below the low thresholds before a fault is cleared ; Seconds bcs.s loc_51494 moveq #$39,d0 ; '9' jsr sub_5F0BE bra.s loc_51494 ; --------------------------------------------------------------------------- loc_5148C: ; CODE XREF: sub_513C0+8j ; sub_513C0+12j ... clr.w (word_FFFFAF1A).w loc_51490: ; CODE XREF: sub_513C0+78j clr.l (dword_FFFFAF1C).w loc_51494: ; CODE XREF: sub_513C0+6Ej ; sub_513C0+82j ... move.l (sp)+,d0 rts ; End of function sub_513C0 ; =============== S U B R O U T I N E ======================================= sub_51498: ; CODE XREF: DoLoopE+148p movem.l d0-d2/a0,-(sp) tst.b (byte_1D8CD).l beq.w loc_518B4 move.b (byte_FFFF959D).w,d3 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_LOW).l,d3 ; The low thresholdof Ignition voltage range ; Volts bcs.s loc_514BA cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_HIGH).l,d3 ; The high thresholdof Ignition voltage range ; Volts bls.s loc_514D2 loc_514BA: ; CODE XREF: sub_51498+18j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAF38).w,d3 add.w $A(a2),d3 bcc.s loc_514CC move.w #$FFFF,d3 loc_514CC: ; CODE XREF: sub_51498+2Ej move.w d3,(word_FFFFAF38).w bra.s loc_514D6 ; --------------------------------------------------------------------------- loc_514D2: ; CODE XREF: sub_51498+20j clr.w (word_FFFFAF38).w loc_514D6: ; CODE XREF: sub_51498+38j move.w (word_FFFF95DA).w,d3 cmp.w (XDTP_TEMP_KE_TEMP_PERF_MPH_OUTPUT_SPD_THRE).l,d3 ; Minimumoutput speed threshold to enable fail caseof the transmission temperature performancediagnostic test ; MPH bcs.s loc_51522 btst #7,(byte_FFFFAF36).w bne.s loc_51522 move.l (dword_FFFFAF20).w,d3 cmp.l (XDTP_TEMP_KE_TEMP_PERF_MPH_OUTPUT_SPD_TIME).l,d3 bcs.s loc_51502 clr.l (dword_FFFFAF20).w bset #7,(byte_FFFFAF36).w bra.s loc_51522 ; --------------------------------------------------------------------------- loc_51502: ; CODE XREF: sub_51498+5Cj movea.l (dword_FFFFB5DE).w,a2 clr.l d3 move.w $A(a2),d3 add.l (dword_FFFFAF20).w,d3 cmpi.l #$7FFFFFFF,d3 bls.s loc_5151E move.l #$7FFFFFFF,d3 loc_5151E: ; CODE XREF: sub_51498+7Ej move.l d3,(dword_FFFFAF20).w loc_51522: ; CODE XREF: sub_51498+48j ; sub_51498+50j ... move.w (word_FFFF95BC).w,d3 cmp.w (XDTP_TEMP_KE_TEMP_PERF_SLIP_THRESH).l,d3 ; Minimum slipthreshold to enable fail case of thetransmission temperature performancediagnostic test ; RPM_S blt.s loc_5156E btst #6,(byte_FFFFAF36).w bne.s loc_5156E move.l (dword_FFFFAF24).w,d3 cmp.l (XDTP_TEMP_KE_TEMP_PERF_SLIP_TIME).l,d3 bcs.s loc_5154E clr.l (dword_FFFFAF24).w bset #6,(byte_FFFFAF36).w bra.s loc_5156E ; --------------------------------------------------------------------------- loc_5154E: ; CODE XREF: sub_51498+A8j movea.l (dword_FFFFB5DE).w,a2 clr.l d3 move.w $A(a2),d3 add.l (dword_FFFFAF24).w,d3 cmpi.l #$7FFFFFFF,d3 bls.s loc_5156A move.l #$7FFFFFFF,d3 loc_5156A: ; CODE XREF: sub_51498+CAj move.l d3,(dword_FFFFAF24).w loc_5156E: ; CODE XREF: sub_51498+94j ; sub_51498+9Cj ... tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_5158E btst #6,(byte_FFFF89E2).w bne.s loc_51586 btst #6,(byte_FFFF89E0).w beq.s loc_5158E loc_51586: ; CODE XREF: sub_51498+E4j bset #7,(byte_FFFFAF37).w bra.s loc_51594 ; --------------------------------------------------------------------------- loc_5158E: ; CODE XREF: sub_51498+DCj ; sub_51498+ECj bclr #7,(byte_FFFFAF37).w loc_51594: ; CODE XREF: sub_51498+F4j move.w (word_FFFFAF38).w,d3 cmp.w (XDTP_TEMP_KE_DIAG_SYS_VOLT_FAULT_TIME).l,d3 bcc.w loc_5167E btst #6,(byte_FFFF899A).w bne.w loc_5167E btst #6,(byte_FFFF899C).w bne.w loc_5167E btst #6,(byte_FFFF88DA).w bne.w loc_5167E btst #6,(byte_FFFF88DC).w bne.w loc_5167E btst #6,(byte_FFFF8A0E).w bne.w loc_5167E btst #7,(byte_FFFFAF37).w bne.w loc_5167E move.w (word_FFFFF2C2).w,d3 lsr.w #2,d3 asl.w #8,d3 lsr.w #8,d3 cmp.b (XDTP_TEMP_KE_TRANS_TEMP_AD_COUNTS_LOW).l,d3 ; The minimumtransmission temperature A/D counts to enablethe transmission temperature diagnostictest ; A/D Counts bcs.w loc_5167E move.w (word_FFFFF2C2).w,d3 lsr.w #2,d3 asl.w #8,d3 lsr.w #8,d3 cmp.b (XDTP_TEMP_KE_TRANS_TEMP_AD_COUNTS_HIGH).l,d3 ; The maximumtransmission temperature A/D counts to enablethe transmission temperature diagnostictest ; A/D Counts bhi.s loc_5167E move.l (EngineRunTime).w,d3 cmp.l (XDTP_TEMP_KE_TEMP_PERF_ENGINE_RUN_TIME).l,d3 ; The minimumamount of time engine must be running toenable fail case of the transmissiontemperature performance diagnostic test ; Seconds blt.s loc_5167E tst.b (byte_FFFF9598).w beq.s loc_5167E move.w (word_FFFF9592).w,d3 cmp.w (XDTP_TEMP_KE_TEMP_AT_START_UP_LOW_THRESH).l,d3 ; Minimumstart up transmission fluid temperaturethreshold to enable fail case of thetransmission temperature performance test ; Degrees C blt.s loc_5167E move.w (word_FFFF9592).w,d3 cmp.w (XDTP_TEMP_KE_TEMP_AT_START_UP_HIGH_THRESH).l,d3 ; Maximumstart up transmission fluid temperaturethreshold to enable fail case of thetransmission temperature performance test ; Degrees C bgt.s loc_5167E move.b (byte_FFFF959C).w,d3 cmp.b (XDTP_TEMP_KE_TEMP_PERF_COOLANT_THRESH).l,d3 ; Minimum enginecoolant temperature threshold to enable failcase of the transmission temperatureperformance diagnostic test ; Degrees C bcs.s loc_5167E move.w (word_FFFFADB4).w,d3 muls.w #5,d3 divs.w #$60,d3 ; '`' moveq #$36,d2 ; '6' add.b d2,d3 move.b (byte_FFFF959C).w,d0 sub.b d3,d0 bcc.s loc_51654 neg.b d0 loc_51654: ; CODE XREF: sub_51498+1B8j andi.w #$FF,d0 add.w d2,d0 clr.w d3 move.b (XDTP_TEMP_KE_TEMP_PERF_COOLANT_DELTA).l,d3 cmp.w d3,d0 bcs.s loc_5167E btst #7,(byte_FFFFAF36).w beq.s loc_5167E btst #6,(byte_FFFFAF36).w beq.s loc_5167E bset #1,(byte_FFFFAF36).w bra.s loc_51684 ; --------------------------------------------------------------------------- loc_5167E: ; CODE XREF: sub_51498+106j ; sub_51498+110j ... bclr #1,(byte_FFFFAF36).w loc_51684: ; CODE XREF: sub_51498+1E4j move.w (word_FFFF959A).w,d3 sub.w (word_FFFF9592).w,d3 cmpi.w #$190,d3 bgt.s loc_5169A cmpi.w #$FFCA,d3 blt.s loc_516A0 bra.s loc_516A2 ; --------------------------------------------------------------------------- loc_5169A: ; CODE XREF: sub_51498+1F8j move.w #$190,d3 bra.s loc_516A2 ; --------------------------------------------------------------------------- loc_516A0: ; CODE XREF: sub_51498+1FEj moveq #$FFFFFFCA,d3 loc_516A2: ; CODE XREF: sub_51498+200j ; sub_51498+206j move.w d3,(word_FFFFAF28).w move.w (word_FFFF959A).w,d0 sub.w (word_FFFFAF2C).w,d0 cmpi.w #$190,d0 bgt.s loc_516BC cmpi.w #$FFCA,d0 blt.s loc_516C2 bra.s loc_516C4 ; --------------------------------------------------------------------------- loc_516BC: ; CODE XREF: sub_51498+21Aj move.w #$190,d0 bra.s loc_516C4 ; --------------------------------------------------------------------------- loc_516C2: ; CODE XREF: sub_51498+220j moveq #$FFFFFFCA,d0 loc_516C4: ; CODE XREF: sub_51498+222j ; sub_51498+228j move.w d0,(word_FFFFAF2A).w move.w (word_FFFF959A).w,(word_FFFFAF2C).w btst #1,(byte_FFFFAF36).w beq.w loc_517E0 move.l d3,d2 tst.w d2 bge.s loc_516E0 neg.w d2 loc_516E0: ; CODE XREF: sub_51498+244j movea.w #$36,a0 ; '6' add.w a0,d2 clr.w d1 move.b (XDTP_TEMP_KE_TRANS_TEMP_FAIL_1_DELTA_THRES).l,d1 ; Minimummabsolute delta transmission fluid temperaturefor fail case 1 of the transmissiontemperature performance diagnostic ; Degrees C cmp.w d1,d2 bhi.s loc_5172C btst #3,(byte_FFFFAF36).w bne.s loc_5172C move.w (word_FFFFAF2E).w,d1 cmp.w (XDTP_TEMP_KE_TRANS_TEMP_FAIL_1_DIAG_TIME).l,d1 bcs.s loc_51712 clr.w (word_FFFFAF2E).w bset #5,(byte_FFFFAF36).w bra.s loc_51736 ; --------------------------------------------------------------------------- loc_51712: ; CODE XREF: sub_51498+26Cj movea.l (dword_FFFFB5DE).w,a2 move.l d1,d4 add.w $A(a2),d4 bcc.s loc_51722 move.w #$FFFF,d4 loc_51722: ; CODE XREF: sub_51498+284j move.w d4,(word_FFFFAF2E).w clr.w (word_FFFFAF34).w bra.s loc_51736 ; --------------------------------------------------------------------------- loc_5172C: ; CODE XREF: sub_51498+258j ; sub_51498+260j clr.w (word_FFFFAF2E).w bclr #5,(byte_FFFFAF36).w loc_51736: ; CODE XREF: sub_51498+278j ; sub_51498+292j move.w (XDTP_TEMP_KE_TRANS_TEMP_FAIL_2_DIAG_TIME).l,d1 cmp.w (word_FFFFAF32).w,d1 bhi.s loc_5174A clr.w (word_FFFFAF32).w clr.b (byte_FFFFAF30).w loc_5174A: ; CODE XREF: sub_51498+2A8j tst.w d0 bge.s loc_51750 neg.w d0 loc_51750: ; CODE XREF: sub_51498+2B4j add.w a0,d0 clr.w d4 move.b (XDTP_TEMP_KE_TRANS_TEMP_FAIL_2_DELTA_THRES).l,d4 ; Minimummabsolute delta transmission fluid temperaturefor fail case 2 of the transmissiontemperature performance diagnostic ; Degrees C cmp.w d4,d0 bcs.s loc_517B0 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAF32).w,d4 add.w $A(a2),d4 bcc.s loc_51770 move.w #$FFFF,d4 loc_51770: ; CODE XREF: sub_51498+2D2j move.w d4,(word_FFFFAF32).w cmp.w d1,d4 bhi.s loc_517A6 move.b (byte_FFFFAF30).w,d4 addq.b #1,d4 bcc.s loc_51784 move.b #$FF,d4 loc_51784: ; CODE XREF: sub_51498+2E6j move.b d4,(byte_FFFFAF30).w cmp.b (XDTP_TEMP_KE_TRANS_TEMP_FAIL_2_COUNT).l,d4 bcs.s loc_517F2 clr.b (byte_FFFFAF30).w clr.w (word_FFFFAF32).w bset #4,(byte_FFFFAF36).w bclr #2,(byte_FFFFAF36).w bra.s loc_517F8 ; --------------------------------------------------------------------------- loc_517A6: ; CODE XREF: sub_51498+2DEj clr.w (word_FFFFAF32).w clr.b (byte_FFFFAF30).w bra.s loc_517F8 ; --------------------------------------------------------------------------- loc_517B0: ; CODE XREF: sub_51498+2C4j tst.b (byte_FFFFAF30).w beq.s loc_517DA movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAF32).w,d4 add.w $A(a2),d4 bcc.s loc_517C8 move.w #$FFFF,d4 loc_517C8: ; CODE XREF: sub_51498+32Aj move.w d4,(word_FFFFAF32).w cmp.w d1,d4 bcs.s loc_517F8 clr.b (byte_FFFFAF30).w clr.w (word_FFFFAF32).w bra.s loc_517F8 ; --------------------------------------------------------------------------- loc_517DA: ; CODE XREF: sub_51498+31Cj clr.w (word_FFFFAF32).w bra.s loc_517F2 ; --------------------------------------------------------------------------- loc_517E0: ; CODE XREF: sub_51498+23Cj clr.w (word_FFFFAF2E).w clr.w (word_FFFFAF32).w clr.b (byte_FFFFAF30).w bclr #5,(byte_FFFFAF36).w loc_517F2: ; CODE XREF: sub_51498+2F6j ; sub_51498+346j bclr #4,(byte_FFFFAF36).w loc_517F8: ; CODE XREF: sub_51498+30Cj ; sub_51498+316j ... move.w (word_FFFFF2C2).w,d0 lsr.w #2,d0 asl.w #8,d0 lsr.w #8,d0 cmp.b (XDTP_TEMP_KE_TRANS_TEMP_AD_COUNTS_LOW).l,d0 ; The minimumtransmission temperature A/D counts to enablethe transmission temperature diagnostictest ; A/D Counts bcs.s loc_5182A move.w (word_FFFFF2C2).w,d0 lsr.w #2,d0 asl.w #8,d0 lsr.w #8,d0 cmp.b (XDTP_TEMP_KE_TRANS_TEMP_AD_COUNTS_HIGH).l,d0 ; The maximumtransmission temperature A/D counts to enablethe transmission temperature diagnostictest ; A/D Counts bhi.s loc_5182A tst.b (byte_FFFF9598).w beq.s loc_5182A bset #0,(byte_FFFFAF36).w bra.s loc_51830 ; --------------------------------------------------------------------------- loc_5182A: ; CODE XREF: sub_51498+370j ; sub_51498+382j ... bclr #0,(byte_FFFFAF36).w loc_51830: ; CODE XREF: sub_51498+390j btst #0,(byte_FFFFAF36).w beq.s loc_518AE tst.w d3 bge.s loc_5183E neg.w d3 loc_5183E: ; CODE XREF: sub_51498+3A2j addi.w #$36,d3 ; '6' clr.w d0 move.b (XDTP_TEMP_KE_TRANS_TEMP_PASS_1_DELTA_THRES).l,d0 ; Minimummabsolute delta transmission fluid temperaturefor pass case 1 of the transmissiontemperature performance diagnostic ; Degrees C cmp.w d0,d3 bcs.s loc_51888 btst #5,(byte_FFFFAF36).w bne.s loc_51888 move.w (word_FFFFAF34).w,d0 cmp.w (XDTP_TEMP_KE_TRANS_TEMP_PASS_1_DIAG_TIME).l,d0 bcs.s loc_5186E clr.w (word_FFFFAF34).w bset #3,(byte_FFFFAF36).w bra.s loc_5188C ; --------------------------------------------------------------------------- loc_5186E: ; CODE XREF: sub_51498+3C8j movea.l (dword_FFFFB5DE).w,a2 move.l d0,d3 add.w $A(a2),d3 bcc.s loc_5187E move.w #$FFFF,d3 loc_5187E: ; CODE XREF: sub_51498+3E0j move.w d3,(word_FFFFAF34).w clr.w (word_FFFFAF2E).w bra.s loc_5188C ; --------------------------------------------------------------------------- loc_51888: ; CODE XREF: sub_51498+3B4j ; sub_51498+3BCj clr.w (word_FFFFAF34).w loc_5188C: ; CODE XREF: sub_51498+3D4j ; sub_51498+3EEj tst.b (byte_FFFFAF30).w bne.s loc_518A6 btst #4,(byte_FFFFAF36).w bne.s loc_518A6 bset #2,(byte_FFFFAF36).w clr.w (word_FFFFAF32).w bra.s loc_518E2 ; --------------------------------------------------------------------------- loc_518A6: ; CODE XREF: sub_51498+3F8j ; sub_51498+400j ... bclr #2,(byte_FFFFAF36).w bra.s loc_518E2 ; --------------------------------------------------------------------------- loc_518AE: ; CODE XREF: sub_51498+39Ej clr.w (word_FFFFAF34).w bra.s loc_518A6 ; --------------------------------------------------------------------------- loc_518B4: ; CODE XREF: sub_51498+Aj clr.w (word_FFFFAF2E).w clr.w (word_FFFFAF32).w clr.w (word_FFFFAF34).w clr.b (byte_FFFFAF30).w bclr #5,(byte_FFFFAF36).w bclr #4,(byte_FFFFAF36).w bclr #3,(byte_FFFFAF36).w bclr #2,(byte_FFFFAF36).w move.w (word_FFFF959A).w,(word_FFFFAF2C).w loc_518E2: ; CODE XREF: sub_51498+40Cj ; sub_51498+414j btst #5,(byte_FFFFAF36).w bne.s loc_518F2 btst #4,(byte_FFFFAF36).w beq.s loc_5191C loc_518F2: ; CODE XREF: sub_51498+450j btst #1,(byte_FFFF89DA).w beq.s loc_51902 btst #6,(byte_FFFF89DA).w bne.s loc_5191C loc_51902: ; CODE XREF: sub_51498+460j move.w #$8D,d0 ; '?' jsr sub_5F110 clr.b (byte_FFFFAF30).w bclr #5,(byte_FFFFAF36).w bclr #4,(byte_FFFFAF36).w loc_5191C: ; CODE XREF: sub_51498+458j ; sub_51498+468j btst #3,(byte_FFFFAF36).w beq.s loc_51956 btst #2,(byte_FFFFAF36).w beq.s loc_51956 btst #1,(byte_FFFF89DA).w bne.s loc_5193C btst #5,(byte_FFFF89DA).w bne.s loc_51956 loc_5193C: ; CODE XREF: sub_51498+49Aj move.w #$8D,d0 ; '?' jsr sub_5F0BE clr.b (byte_FFFFAF30).w bclr #3,(byte_FFFFAF36).w bclr #2,(byte_FFFFAF36).w loc_51956: ; CODE XREF: sub_51498+48Aj ; sub_51498+492j ... movem.l (sp)+,d0-d2/a0 rts ; End of function sub_51498 ; =============== S U B R O U T I N E ======================================= sub_5195C: ; CODE XREF: DoLoopE+15Cp movem.l d0-d1,-(sp) tst.b (byte_1D8EA).l beq.w loc_51A52 btst #6,(byte_FFFF89E0).w bne.w loc_51A52 btst #6,(byte_FFFF89E2).w bne.w loc_51A52 btst #6,(byte_FFFF88E4).w bne.w loc_51A52 btst #6,(byte_FFFF88E2).w bne.w loc_51A52 btst #6,(byte_FFFF8A6E).w bne.w loc_51A52 btst #6,(byte_FFFF899A).w bne.w loc_51A52 btst #6,(byte_FFFF899C).w bne.w loc_51A52 btst #6,(byte_FFFF8AA8).w bne.w loc_51A52 move.w (word_FFFF95DA).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_RATIO_DIAG_OUT_SPD_THRESH).l,d3 ; Low MPH limit for Gear Ratio test enable. ; MPH bls.w loc_51A52 move.b (byte_FFFF95E9).w,d3 cmpi.b #3,d3 bls.s loc_519D8 cmpi.b #4,d3 bne.s loc_51A52 loc_519D8: ; CODE XREF: sub_5195C+74j move.w (word_FFFF9582).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_RATIO_DIAG_THROTTLE_THRESH).l,d3 ; Low Throttle limit for Gear Ratio test enable. ; Throttle bls.s loc_51A52 move.w (word_FFFF95F6).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_RANGE_TIME).l,d3 ; Minimum amount of time since manual valve change constraint for undefined ratio diag. test. ; Seconds bcs.s loc_51A52 move.w (word_FFFF9594).w,d3 addi.w #$36,d3 ; '6' clr.w d4 move.b (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_TRANS_TEMP).l,d4 ; Amount of transmission temp. constraint for undefined ratio test. ; Deg_C cmp.w d4,d3 bcs.s loc_51A52 move.w (word_FFFF95C0).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_ENG_TRQ_LOW).l,d3 ; Low limit of Engine Torque constraint in undefined ratio diagnostic test. ; Ft_lbs bls.s loc_51A52 move.w (word_FFFF95C0).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_ENG_TRQ_HIGH).l,d3 ; High limit of Engine Torque constraint in undefined ratio diagnostic test. ; Ft_lbs bcc.s loc_51A52 clr.l d3 move.w (word_FFFFB298).w,d3 moveq #$28,d1 ; '(' divu.w d1,d3 cmp.b (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_ENG_VAC_LOW).l,d3 ; Low limit of Engine Vacuum constraint in undefined ratio diagnostic test. ; k_Pa bcs.s loc_51A52 clr.l d3 move.w (word_FFFFB298).w,d3 divu.w #$28,d3 ; '(' cmp.b (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_ENG_VAC_HIGH).l,d3 ; High limit of Engine Vacuum constraint in undefined ratio diagnostic test. ; k_Pa bcc.s loc_51A52 btst #0,(byte_FFFF95E2).w beq.s loc_51A52 tst.b (byte_FFFFAC60).w bne.s loc_51A52 moveq #1,d4 bra.s loc_51A54 ; --------------------------------------------------------------------------- loc_51A52: ; CODE XREF: sub_5195C+Aj ; sub_5195C+14j ... clr.b d4 loc_51A54: ; CODE XREF: sub_5195C+F4j move.l d4,d1 and.b (TCM_OPTIONS_K_FOUR_WHEEL_DRIVE_AVAILABLE).l,d1 ; If TRUE, vehicle has four wheel drive. ; BOOLEAN beq.s loc_51AA0 jsr sub_4B5C8 tst.b d0 beq.s loc_51A7C move.w (word_FFFF95D8).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_UNKNW_RATIO_4WD_LOW_MTCR_MIN).l,d3 bls.s loc_51A9A cmp.w (XDTP_TRANS_RATIO_KE_UNKNW_RATIO_4WD_LOW_MTCR_MAX).l,d3 bcc.s loc_51A9A loc_51A7C: ; CODE XREF: sub_5195C+10Aj jsr sub_4B5C8 tst.b d0 bne.s loc_51A9E move.w (word_FFFF95D8).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_UNKNW_RATIO_4WD_HIGH_MTCR_MIN).l,d3 bls.s loc_51A9A cmp.w (XDTP_TRANS_RATIO_KE_UNKNW_RATIO_4WD_HIGH_MTCR_MAX).l,d3 bcs.s loc_51A9E loc_51A9A: ; CODE XREF: sub_5195C+116j ; sub_5195C+11Ej ... moveq #1,d4 bra.s loc_51AA0 ; --------------------------------------------------------------------------- loc_51A9E: ; CODE XREF: sub_5195C+128j ; sub_5195C+13Cj clr.b d4 loc_51AA0: ; CODE XREF: sub_5195C+100j ; sub_5195C+140j tst.b d4 beq.s loc_51AE0 tst.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.s loc_51ADA tst.w (word_FFFF95B2).w beq.s loc_51AD2 clr.l d3 move.w (word_FFFF95B0).w,d3 asl.l #8,d3 asl.l #4,d3 divu.w (word_FFFF95B2).w,d3 bvs.s loc_51AC8 cmpi.w #$7FFF,d3 bls.s loc_51ACC loc_51AC8: ; CODE XREF: sub_5195C+164j move.w #$7FFF,d3 loc_51ACC: ; CODE XREF: sub_5195C+16Aj move.w d3,(word_FFFFA974).w bra.s loc_51AE0 ; --------------------------------------------------------------------------- loc_51AD2: ; CODE XREF: sub_5195C+154j move.w #$7FFF,(word_FFFFA974).w bra.s loc_51AE0 ; --------------------------------------------------------------------------- loc_51ADA: ; CODE XREF: sub_5195C+14Ej move.w (word_FFFF95D4).w,(word_FFFFA974).w loc_51AE0: ; CODE XREF: sub_5195C+146j ; sub_5195C+174j ... tst.b d4 beq.w loc_51B8E btst #1,(byte_FFFF89E8).w beq.s loc_51AF8 btst #6,(byte_FFFF89E8).w bne.w loc_51B8E loc_51AF8: ; CODE XREF: sub_5195C+190j move.w (word_FFFFA974).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_1ST_GEAR_HIGH).l,d3 ; High limit for 1st gear ratio used in determining if the ratio is unknown ; Gear Ratio bcc.s loc_51B0C cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_1ST_GEAR_LOW).l,d3 ; Low limit for 1st gear ratio used in determining if the ratio is unknown ; Gear Ratio bhi.s loc_51B4C loc_51B0C: ; CODE XREF: sub_5195C+1A6j cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_REV_GEAR_HIGH).l,d3 ; High limit for reverse gear ratio used in determining if the ratio is unknown ; Gear Ratio bcc.s loc_51B1C cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_REV_GEAR_LOW).l,d3 ; Low limit for reverse gear ratio used in determining if the ratio is unknown ; Gear Ratio bhi.s loc_51B4C loc_51B1C: ; CODE XREF: sub_5195C+1B6j cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_2ND_GEAR_HIGH).l,d3 ; High limit for 2nd gear ratio used in determining if the ratio is unknown ; Gear Ratio bcc.s loc_51B2C cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_2ND_GEAR_LOW).l,d3 ; Low limit for 2nd gear ratio used in determining if the ratio is unknown ; Gear Ratio bhi.s loc_51B4C loc_51B2C: ; CODE XREF: sub_5195C+1C6j cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_3RD_GEAR_HIGH).l,d3 ; High limit for 3rd gear ratio used in determining if the ratio is unknown ; Gear Ratio bcc.s loc_51B3C cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_3RD_GEAR_LOW).l,d3 ; Low limit for 3rd gear ratio used in determining if the ratio is unknown ; Gear Ratio bhi.s loc_51B4C loc_51B3C: ; CODE XREF: sub_5195C+1D6j cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_4TH_GEAR_HIGH).l,d3 ; High limit for 4th gear ratio used in determining if the ratio is unknown ; Gear Ratio bcc.s loc_51B50 cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_4TH_GEAR_LOW).l,d3 ; Low limit for 4th gear ratio used in determining if the ratio is unknown ; Gear Ratio bls.s loc_51B50 loc_51B4C: ; CODE XREF: sub_5195C+1AEj ; sub_5195C+1BEj ... moveq #1,d3 bra.s loc_51B52 ; --------------------------------------------------------------------------- loc_51B50: ; CODE XREF: sub_5195C+1E6j ; sub_5195C+1EEj clr.b d3 loc_51B52: ; CODE XREF: sub_5195C+1F2j tst.b d3 bne.s loc_51B8E clr.w (word_FFFFA972).w move.w (word_FFFFA970).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_DIAG_TIME).l,d3 ; Amount of time ratio is outside of the thresholds in order to set malfunction ; Seconds bcc.s loc_51B7C movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_51B74 move.w #$FFFF,d3 loc_51B74: ; CODE XREF: sub_5195C+212j move.w d3,(word_FFFFA970).w bra.w loc_51C3E ; --------------------------------------------------------------------------- loc_51B7C: ; CODE XREF: sub_5195C+208j move.w #$94,d0 ; '?' jsr sub_5F110 clr.w (word_FFFFA970).w bra.w loc_51C3E ; --------------------------------------------------------------------------- loc_51B8E: ; CODE XREF: sub_5195C+186j ; sub_5195C+198j ... tst.b d4 beq.w loc_51C36 btst #1,(byte_FFFF89E8).w bne.s loc_51BA6 btst #5,(byte_FFFF89E8).w bne.w loc_51C36 loc_51BA6: ; CODE XREF: sub_5195C+23Ej move.w (word_FFFFA974).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_1ST_GEAR_HIGH).l,d3 ; High limit for 1st gear ratio used in determining if the ratio is unknown ; Gear Ratio bcc.s loc_51BBA cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_1ST_GEAR_LOW).l,d3 ; Low limit for 1st gear ratio used in determining if the ratio is unknown ; Gear Ratio bhi.s loc_51BFA loc_51BBA: ; CODE XREF: sub_5195C+254j cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_REV_GEAR_HIGH).l,d3 ; High limit for reverse gear ratio used in determining if the ratio is unknown ; Gear Ratio bcc.s loc_51BCA cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_REV_GEAR_LOW).l,d3 ; Low limit for reverse gear ratio used in determining if the ratio is unknown ; Gear Ratio bhi.s loc_51BFA loc_51BCA: ; CODE XREF: sub_5195C+264j cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_2ND_GEAR_HIGH).l,d3 ; High limit for 2nd gear ratio used in determining if the ratio is unknown ; Gear Ratio bcc.s loc_51BDA cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_2ND_GEAR_LOW).l,d3 ; Low limit for 2nd gear ratio used in determining if the ratio is unknown ; Gear Ratio bhi.s loc_51BFA loc_51BDA: ; CODE XREF: sub_5195C+274j cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_3RD_GEAR_HIGH).l,d3 ; High limit for 3rd gear ratio used in determining if the ratio is unknown ; Gear Ratio bcc.s loc_51BEA cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_3RD_GEAR_LOW).l,d3 ; Low limit for 3rd gear ratio used in determining if the ratio is unknown ; Gear Ratio bhi.s loc_51BFA loc_51BEA: ; CODE XREF: sub_5195C+284j cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_4TH_GEAR_HIGH).l,d3 ; High limit for 4th gear ratio used in determining if the ratio is unknown ; Gear Ratio bcc.s loc_51BFE cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_4TH_GEAR_LOW).l,d3 ; Low limit for 4th gear ratio used in determining if the ratio is unknown ; Gear Ratio bls.s loc_51BFE loc_51BFA: ; CODE XREF: sub_5195C+25Cj ; sub_5195C+26Cj ... moveq #1,d3 bra.s loc_51C00 ; --------------------------------------------------------------------------- loc_51BFE: ; CODE XREF: sub_5195C+294j ; sub_5195C+29Cj clr.b d3 loc_51C00: ; CODE XREF: sub_5195C+2A0j cmpi.b #1,d3 bne.s loc_51C36 clr.w (word_FFFFA970).w move.w (word_FFFFA972).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_UNKNOWN_RATIO_DIAG_TIME).l,d3 ; Amount of time ratio is outside of the thresholds in order to set malfunction ; Seconds bcc.s loc_51C2A movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_51C24 move.w #$FFFF,d3 loc_51C24: ; CODE XREF: sub_5195C+2C2j move.w d3,(word_FFFFA972).w bra.s loc_51C3E ; --------------------------------------------------------------------------- loc_51C2A: ; CODE XREF: sub_5195C+2B8j move.w #$94,d0 ; '?' jsr sub_5F0BE bra.s loc_51C3A ; --------------------------------------------------------------------------- loc_51C36: ; CODE XREF: sub_5195C+234j ; sub_5195C+246j ... clr.w (word_FFFFA970).w loc_51C3A: ; CODE XREF: sub_5195C+2D8j clr.w (word_FFFFA972).w loc_51C3E: ; CODE XREF: sub_5195C+21Cj ; sub_5195C+22Ej ... movem.l (sp)+,d0-d1 rts ; End of function sub_5195C ; =============== S U B R O U T I N E ======================================= sub_51C44: ; CODE XREF: sub_4F8C0p movem.l d0-d2/d6-a0,-(sp) btst #6,(byte_FFFF88E4).w bne.w loc_51D9A btst #6,(byte_FFFF88E2).w bne.w loc_51D9A btst #6,(byte_FFFF89E2).w bne.w loc_51D9A btst #6,(byte_FFFF89E0).w bne.w loc_51D9A cmpi.b #3,(byte_FFFF95E9).w bhi.w loc_51D9A btst #0,(byte_FFFF95E2).w beq.w loc_51D9A btst #6,(byte_FFFF8A0E).w bne.w loc_51D9A btst #6,(byte_FFFF89EE).w bne.w loc_51D9A btst #6,(byte_FFFF899A).w bne.w loc_51D9A btst #6,(byte_FFFF899C).w bne.w loc_51D9A btst #6,(byte_FFFF8A6E).w bne.w loc_51D9A btst #6,(byte_FFFF89F6).w bne.w loc_51D9A btst #6,(byte_FFFF89FC).w bne.w loc_51D9A btst #6,(byte_FFFF8AA6).w bne.w loc_51D9A btst #6,(byte_FFFF89EA).w bne.w loc_51D9A move.w (word_FFFF9594).w,d3 addi.w #$36,d3 ; '6' clr.w d4 move.b (XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_DIAGTT_LOW).l,d4 ; Low transmission temperature calibration limit for Shift Solenoid Performance Diagnostic ; Deg_C cmp.w d3,d4 bhi.w loc_51D9A move.w (word_FFFF9594).w,d3 addi.w #$36,d3 ; '6' clr.w d4 move.b (XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_DIAGTT_HIGH).l,d4 ; High transmission temperature calibration limit for Shift Solenoid Performance Diagnostic enabling condition ; Deg_C cmp.w d4,d3 bhi.w loc_51D9A move.b (XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_IGVOLT_LOW).l,d3 ; Low Ignition Voltage Calibration for enabling condition ; Volts cmp.b (byte_FFFF959D).w,d3 bhi.w loc_51D9A move.b (byte_FFFF959D).w,d3 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_IGVOLT_HIGH).l,d3 ; High ignition voltage calibration for enabling conditions for shift solenoid circuit performance ; Volts bhi.s loc_51D9A tst.b (byte_FFFFAC60).w bne.s loc_51D9A move.w (XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_INPSPD_LOW).l,d3 ; Low input speed calibration limit for Shift Solenoid Performance Diagnostic ; RPM cmp.w (word_FFFF95B0).w,d3 bhi.s loc_51D9A move.w (word_FFFF95B0).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_INPSPD_HIGH).l,d3 ; High calibration limit for enabling conditions in Shift Solenoid Performance Diagnostic ; RPM bhi.s loc_51D9A move.w (word_FFFF95B2).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_OUTSPD).l,d3 ; Output Speed calibratiofor Shift Solenoid Performance Diagnostic ; RPM bcs.s loc_51D9A tst.b (TCM_OPTIONS_K_FOUR_WHEEL_DRIVE_AVAILABLE).l ; If TRUE, vehicle has four wheel drive. ; BOOLEAN beq.s loc_51D92 jsr sub_4B5C8 tst.b d0 beq.s loc_51D74 move.w (word_FFFF95D8).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ENAB_4WD_LO_MTCR_MIN).l,d3 ; 4WD Low/Min measured transfer case rario for Shift Solenoid Performance Diagnostic ; NONE bls.s loc_51D92 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ENAB_4WD_LO_MTCR_MAX).l,d3 ; 4WD Low/Max measured transfer case ratio for Shift Solenoid Performance Diagnostic ; NONE bcc.s loc_51D92 loc_51D74: ; CODE XREF: sub_51C44+11Aj jsr sub_4B5C8 tst.b d0 bne.s loc_51D9A move.w (word_FFFF95D8).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ENAB_4WD_HI_MTCR_MIN).l,d3 ; 4WD High/Min measured transfer case ratio for Shift Solenoid Performance Diagnostic ; NONE bls.s loc_51D92 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ENAB_4WD_HI_MTCR_MAX).l,d3 ; 4WD High/Max measured transfer case ratio for Shift Solenoid Perfornce Diagnostic ; NONE bcs.s loc_51D9A loc_51D92: ; CODE XREF: sub_51C44+110j ; sub_51C44+126j ... move.b #1,(byte_FFFFA9A0).w bra.s loc_51DCE ; --------------------------------------------------------------------------- loc_51D9A: ; CODE XREF: sub_51C44+Aj ; sub_51C44+14j ... clr.b (byte_FFFFA9A0).w clr.w (word_FFFFA976).w clr.w (word_FFFFA978).w clr.w (word_FFFFA97A).w clr.w (word_FFFFA97C).w clr.w (word_FFFFA97E).w clr.w (word_FFFFA980).w clr.w (word_FFFFA982).w clr.w (word_FFFFA984).w clr.w (word_FFFFA986).w clr.w (word_FFFFA988).w clr.w (word_FFFFA98A).w clr.w (word_FFFFA98C).w loc_51DCE: ; CODE XREF: sub_51C44+154j tst.b (byte_FFFFA96F).w beq.s loc_51E08 clr.b (byte_FFFFA96F).w clr.b (byte_FFFFA990).w clr.b (byte_FFFFA991).w clr.b (byte_FFFFA992).w clr.b (byte_FFFFA993).w clr.b (byte_FFFFA994).w clr.b (byte_FFFFA995).w clr.b (byte_FFFFA996).w clr.b (byte_FFFFA997).w clr.b (byte_FFFFA998).w clr.b (byte_FFFFA999).w clr.b (byte_FFFFA99A).w clr.b (byte_FFFFA99B).w loc_51E08: ; CODE XREF: sub_51C44+18Ej tst.b (byte_FFFFA9A0).w beq.w loc_52854 move.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l,d1 ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_51E20 move.w (word_FFFF95D4).w,(word_FFFFA98E).w bra.s loc_51E26 ; --------------------------------------------------------------------------- loc_51E20: ; CODE XREF: sub_51C44+1D2j move.w (word_FFFFAD44).w,(word_FFFFA98E).w loc_51E26: ; CODE XREF: sub_51C44+1DAj move.b (byte_FFFFAD46).w,d3 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_FC1).l,d3 ; Fail case 1 Modeled Speed Ratio calibration for Shift Solenoid Performance Diagnostic ; Factor bcs.s loc_51EAA tst.b (byte_FFFF95DC).w bne.s loc_51EAA move.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC1_LOW).l,d3 ; Lower Limit Engine Torque used for Shift Solenoid Performance diagnostic Fail Case 1 ; Ft_Lb cmp.w (word_FFFF95C0).w,d3 bhi.s loc_51EAA move.w (word_FFFF95C0).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC1_HIGH).l,d3 ; High Limit calibration for fail case 1 Engine Torque Shift Solenoid Performance Diagnostic ; Ft_Lb bhi.s loc_51EAA move.w (word_FFFF9582).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_THROT_FC1).l,d3 ; Fail case 1 Throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent bcs.s loc_51EAA move.w (word_FFFF9BBE).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_GEAR_CHANGE_TIMER_FC1).l,d3 ; Fail case 1 Gear change timer calibration for Shift Solenoid Performance Diagnostic ; Seconds bcs.s loc_51EAA move.w (word_FFFFA98E).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC1_LOW).l,d3 ; Lower ratio limt for fail case 1 in Shift Solenoid Performance Diagnostic ; Ratio bcs.s loc_51EAA cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC1_HIGH).l,d3 ; High ratio limit for fail case 1 in Shift Solenoid Performance Diagnostic ; Ratio bhi.s loc_51EAA move.w (word_FFFFA976).w,d2 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_TIME_FC1).l,d2 ; Fail case 1 timer for Shift Solenoid Performance Diagnostic ; Seconds bcs.s loc_51E94 move.b #1,(byte_FFFFA990).w clr.b (byte_FFFFA998).w bra.s loc_51EAA ; --------------------------------------------------------------------------- loc_51E94: ; CODE XREF: sub_51C44+242j movea.l (dword_FFFFB5DE).w,a2 move.l d2,d3 add.w $A(a2),d3 bcc.s loc_51EA4 move.w #$FFFF,d3 loc_51EA4: ; CODE XREF: sub_51C44+25Aj move.w d3,(word_FFFFA976).w bra.s loc_51EAE ; --------------------------------------------------------------------------- loc_51EAA: ; CODE XREF: sub_51C44+1ECj ; sub_51C44+1F2j ... clr.w (word_FFFFA976).w loc_51EAE: ; CODE XREF: sub_51C44+264j tst.b d1 beq.s loc_51EBA move.w (word_FFFF95D4).w,(word_FFFFA98E).w bra.s loc_51EC0 ; --------------------------------------------------------------------------- loc_51EBA: ; CODE XREF: sub_51C44+26Cj move.w (word_FFFFAD44).w,(word_FFFFA98E).w loc_51EC0: ; CODE XREF: sub_51C44+274j move.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l,d2 ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.s loc_51F0E move.b (byte_FFFF95DD).w,d3 cmpi.b #4,d3 beq.s loc_51ED8 cmpi.b #2,d3 bne.s loc_51EDC loc_51ED8: ; CODE XREF: sub_51C44+28Cj moveq #1,d3 bra.s loc_51EDE ; --------------------------------------------------------------------------- loc_51EDC: ; CODE XREF: sub_51C44+292j clr.b d3 loc_51EDE: ; CODE XREF: sub_51C44+296j tst.b d3 beq.s loc_51F0A cmpi.b #3,(byte_FFFF95DC).w bne.s loc_51F0A move.w (word_FFFF95B2).w,d3 beq.s loc_51F02 clr.l d0 move.w (word_FFFF95B6).w,d0 asl.l #8,d0 asl.l #4,d0 divu.w d3,d0 move.w d0,(word_FFFFA98E).w bra.s loc_51F0E ; --------------------------------------------------------------------------- loc_51F02: ; CODE XREF: sub_51C44+2AAj move.w #$7FFF,(word_FFFFA98E).w bra.s loc_51F0E ; --------------------------------------------------------------------------- loc_51F0A: ; CODE XREF: sub_51C44+29Cj ; sub_51C44+2A4j clr.b d3 bra.s loc_51F10 ; --------------------------------------------------------------------------- loc_51F0E: ; CODE XREF: sub_51C44+282j ; sub_51C44+2BCj ... moveq #1,d3 loc_51F10: ; CODE XREF: sub_51C44+2C8j move.b (byte_FFFFAD46).w,d0 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_FC2).l,d0 ; Fail case 2 Modeled Speed Ratio calibration for Shift Solenoid Performance Diagnostic ; Factor bcs.s loc_51F98 cmpi.b #3,(byte_FFFF95DC).w bne.s loc_51F98 move.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC2_LOW).l,d0 ; Lower Limit Engine Torque Used for Shift Solenoid Performance Fail Case 2 diagnostic Test ; Ft_Lb cmp.w (word_FFFF95C0).w,d0 bhi.s loc_51F98 move.w (word_FFFF95C0).w,d0 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC2_HIGH).l,d0 ; High Limit calibration for fail case 2 Engine Torque Shift Solenoid Performance Diagnostic ; Ft_Lb bhi.s loc_51F98 move.w (word_FFFF9582).w,d0 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_THROT_FC2).l,d0 ; Fail case 2 Throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent bcs.s loc_51F98 move.w (word_FFFF9BBE).w,d0 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_GEAR_CHANGE_TIMER_FC2).l,d0 ; Fail case 2 gear change timer calibration for Shift Solenoid Performnace Diagnostic ; Seconds bcs.s loc_51F98 tst.b d3 beq.s loc_51F98 move.w (word_FFFFA98E).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC2_LOW).l,d3 ; Lower ratio limit for fail case 2 in Shift Solenoid Performnace Diagnostic ; Ratio bcs.s loc_51F98 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC2_HIGH).l,d3 ; Higher ratio limit for fail case 2 in Shift Solenoid Performance Diagnostic ; Ratio bhi.s loc_51F98 move.w (word_FFFFA978).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_TIME_FC2).l,d3 ; Fail case 2 timer for Shift Solenoid Perfromance Diagnostic ; Seconds bcs.s loc_51F84 move.b #1,(byte_FFFFA991).w clr.b (byte_FFFFA99B).w bra.s loc_51F98 ; --------------------------------------------------------------------------- loc_51F84: ; CODE XREF: sub_51C44+332j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_51F92 move.w #$FFFF,d3 loc_51F92: ; CODE XREF: sub_51C44+348j move.w d3,(word_FFFFA978).w bra.s loc_51F9C ; --------------------------------------------------------------------------- loc_51F98: ; CODE XREF: sub_51C44+2D6j ; sub_51C44+2DEj ... clr.w (word_FFFFA978).w loc_51F9C: ; CODE XREF: sub_51C44+352j tst.b d1 beq.s loc_51FA8 move.w (word_FFFF95D4).w,(word_FFFFA98E).w bra.s loc_51FAE ; --------------------------------------------------------------------------- loc_51FA8: ; CODE XREF: sub_51C44+35Aj move.w (word_FFFFAD44).w,(word_FFFFA98E).w loc_51FAE: ; CODE XREF: sub_51C44+362j move.b (byte_FFFFAD46).w,d3 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_FC3).l,d3 ; Fail case 3 Modeled Speed Ratio calibration ; Factor bcs.s loc_52032 cmpi.b #1,(byte_FFFF95DC).w bne.s loc_52032 move.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC3_LOW).l,d3 ; Lower Limit Engine Torque used for Shift Solenoid Performance (Fail Case 3) diagnostic test ; Ft_Lb cmp.w (word_FFFF95C0).w,d3 bhi.s loc_52032 move.w (word_FFFF95C0).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC3_HIGH).l,d3 ; High Limit calibration for fail case 3 Engine Torque Shift Solenoid Performance Diagnostic ; Ft_Lb bhi.s loc_52032 move.w (word_FFFF9582).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_THROT_FC3).l,d3 ; Fail case 3 Throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent bcs.s loc_52032 move.w (word_FFFF9BBE).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_GEAR_CHANGE_TIMER_FC3).l,d3 ; Fail case 3 Gear change timer for Shift Solenoid Performnace Diagnostic ; Seconds bcs.s loc_52032 move.w (word_FFFFA98E).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC3_LOW).l,d3 ; Lower ratio limit for fail case 3 in Shift Solenoid Performance Diagnostic ; Ratio bcs.s loc_52032 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC3_HIGH).l,d3 ; Higher ratio limit for fail case 3 in Shift Solenoid Performance Diagnostic ; Ratio bhi.s loc_52032 move.w (word_FFFFA97A).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_TIME_FC3).l,d3 ; Fail case 3 timer for Shift Solenoid Performance Diagnostic ; Seconds bcs.s loc_5201E move.b #1,(byte_FFFFA992).w clr.b (byte_FFFFA999).w bra.s loc_52032 ; --------------------------------------------------------------------------- loc_5201E: ; CODE XREF: sub_51C44+3CCj movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_5202C move.w #$FFFF,d3 loc_5202C: ; CODE XREF: sub_51C44+3E2j move.w d3,(word_FFFFA97A).w bra.s loc_52036 ; --------------------------------------------------------------------------- loc_52032: ; CODE XREF: sub_51C44+374j ; sub_51C44+37Cj ... clr.w (word_FFFFA97A).w loc_52036: ; CODE XREF: sub_51C44+3ECj tst.b d1 beq.s loc_52042 move.w (word_FFFF95D4).w,(word_FFFFA98E).w bra.s loc_52048 ; --------------------------------------------------------------------------- loc_52042: ; CODE XREF: sub_51C44+3F4j move.w (word_FFFFAD44).w,(word_FFFFA98E).w loc_52048: ; CODE XREF: sub_51C44+3FCj tst.b d2 beq.s loc_52060 tst.b (XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_FC4).l ; Bit select enble calibration for fail case four ; T/F beq.s loc_5205C move.w (word_FFFFAD44).w,(word_FFFFA98E).w bra.s loc_52060 ; --------------------------------------------------------------------------- loc_5205C: ; CODE XREF: sub_51C44+40Ej clr.b d3 bra.s loc_52062 ; --------------------------------------------------------------------------- loc_52060: ; CODE XREF: sub_51C44+406j ; sub_51C44+416j moveq #1,d3 loc_52062: ; CODE XREF: sub_51C44+41Aj move.b (byte_FFFFAD46).w,d0 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_FC4).l,d0 ; Fail case 4 Modeled Speed Ratio calibration for Shift Solenoid Perfromance Diagnostic ; Factor bcs.s loc_520EA cmpi.b #2,(byte_FFFF95DC).w bne.s loc_520EA move.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC4_LOW).l,d0 ; Lower Limit for fail Case 4 Engine Torque in Shift Solenoid Performance Diagnostic test ; Ft_Lb cmp.w (word_FFFF95C0).w,d0 bhi.s loc_520EA move.w (word_FFFF95C0).w,d0 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC4_HIGH).l,d0 ; High Limit calibration for fail case 4 Engine Torque Shift Solenoid Performance Diagnostic ; Ft_Lb bhi.s loc_520EA move.w (word_FFFF9582).w,d0 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_THROT_FC4).l,d0 ; Fail case 4 Throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent bcs.s loc_520EA move.w (word_FFFF9BBE).w,d0 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_GEAR_CHANGE_TIMER_FC4).l,d0 ; Fail case 4 Gear change timer calibration for Shift Solenoid Performance Diagnostic ; Seconds bcs.s loc_520EA tst.b d3 beq.s loc_520EA move.w (word_FFFFA98E).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC4_LOW).l,d3 ; Low ratio limit for fail case 4 in Shift Solenoid Performance Diagnostic ; Ratio bcs.s loc_520EA cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC4_HIGH).l,d3 ; High ratio limit for fail case 4 in Shift Solenoid Performance Diagnostic ; Ratio bhi.s loc_520EA move.w (word_FFFFA97C).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_TIME_FC4).l,d3 ; Fail case 4 timer for Shift Solenoid Performance Diagnostic ; Seconds bcs.s loc_520D6 move.b #1,(byte_FFFFA993).w clr.b (byte_FFFFA99A).w bra.s loc_520EA ; --------------------------------------------------------------------------- loc_520D6: ; CODE XREF: sub_51C44+484j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_520E4 move.w #$FFFF,d3 loc_520E4: ; CODE XREF: sub_51C44+49Aj move.w d3,(word_FFFFA97C).w bra.s loc_520EE ; --------------------------------------------------------------------------- loc_520EA: ; CODE XREF: sub_51C44+428j ; sub_51C44+430j ... clr.w (word_FFFFA97C).w loc_520EE: ; CODE XREF: sub_51C44+4A4j tst.b d1 beq.s loc_520FA move.w (word_FFFF95D4).w,(word_FFFFA98E).w bra.s loc_52100 ; --------------------------------------------------------------------------- loc_520FA: ; CODE XREF: sub_51C44+4ACj move.w (word_FFFFAD44).w,(word_FFFFA98E).w loc_52100: ; CODE XREF: sub_51C44+4B4j move.b (byte_FFFFAD46).w,d3 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_FC5).l,d3 ; Fail case 5 Modeled Speed Ratio calibration for Shift Solenoid Perfromance Diagnostic ; Factor bcs.w loc_521AC tst.b (byte_FFFF95DC).w bne.w loc_521AC move.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC5_LOW).l,d3 ; Lower Limit for fail Case 5 Engine Torque in Shift Solenoid Performance Diagnostic test ; Ft_Lb cmp.w (word_FFFF95C0).w,d3 bhi.w loc_521AC move.w (word_FFFF95C0).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC5_HIGH).l,d3 ; High Limit calibration for fail case 5 Engine Torque Shift Solenoid Performance Diagnostic ; Ft_Lb bhi.s loc_521AC move.w (word_FFFF9582).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_THROT_FC5).l,d3 ; Fail case 5 Throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent bcs.s loc_521AC move.w (word_FFFF9BBE).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_GEAR_CHANGE_TIMER_FC5).l,d3 ; Fail case 5 gear change timer for Shift Solenoid Performance Diagnostic ; Seconds bcs.s loc_521AC move.w (word_FFFF95B2).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_OUTSPD_FC5).l,d3 ; Fail case 5 output speed calibration for Shift Solenoid Performance Diagnostic ; RPM bcs.s loc_521AC move.w (XDTP_TRANS_RATIO_KE_SS_PERF_SLIP_FC5_LOW).l,d3 ; Low slip limit for fail case 5 in Shift Solenoid Performance Diagnostic test ; RPM cmp.w (word_FFFF95BC).w,d3 bgt.s loc_521AC move.w (word_FFFF95BC).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_SLIP_FC5_HIGH).l,d3 ; High slip limit for fail case 5 in Shift Solenoid Performance Diagnostic test ; RPM bgt.s loc_521AC move.w (word_FFFFA98E).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC5_LOW).l,d3 ; Lower ratio limit for fail case 5 in Shift Solenoid Performance ; Ratio bcs.s loc_521AC cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC5_HIGH).l,d3 ; High ratio limit for fail case 5 in Shift Solenoid Performnace Diagnostic ; Ratio bhi.s loc_521AC move.w (word_FFFFA97E).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_TIME_FC5).l,d3 ; Fail case 5 timer for Shift Solenoid Performance Diagnostic ; Seconds bcs.s loc_52198 move.b #1,(byte_FFFFA994).w clr.b (byte_FFFFA998).w bra.s loc_521AC ; --------------------------------------------------------------------------- loc_52198: ; CODE XREF: sub_51C44+546j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_521A6 move.w #$FFFF,d3 loc_521A6: ; CODE XREF: sub_51C44+55Cj move.w d3,(word_FFFFA97E).w bra.s loc_521B0 ; --------------------------------------------------------------------------- loc_521AC: ; CODE XREF: sub_51C44+4C6j ; sub_51C44+4CEj ... clr.w (word_FFFFA97E).w loc_521B0: ; CODE XREF: sub_51C44+566j tst.b d1 beq.s loc_521BC move.w (word_FFFF95D4).w,(word_FFFFA98E).w bra.s loc_521C2 ; --------------------------------------------------------------------------- loc_521BC: ; CODE XREF: sub_51C44+56Ej move.w (word_FFFFAD44).w,(word_FFFFA98E).w loc_521C2: ; CODE XREF: sub_51C44+576j move.b (byte_FFFFAD46).w,d3 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_FC6).l,d3 ; Fail case 6 Modeled Speed Ratio calibration for Shift Solenoid Performance Diagnostic ; Factor bcs.s loc_52246 cmpi.b #1,(byte_FFFF95DC).w bne.s loc_52246 move.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC6_LOW).l,d3 ; Lower Limit for fail Case 6 Engine Torque in Shift Solenoid Performance Diagnostic Tset ; Ft_Lb cmp.w (word_FFFF95C0).w,d3 bhi.s loc_52246 move.w (word_FFFF95C0).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC6_HIGH).l,d3 ; High Limit calibration for fail case 1 Engine Torque Shift Solenoid Performance Diagnostic ; Ft_Lb bhi.s loc_52246 move.w (word_FFFF9582).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_THROT_FC6).l,d3 ; Fail case 6 Throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent bcs.s loc_52246 move.w (word_FFFF9BBE).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_GEAR_CHANGE_TIMER_FC6).l,d3 ; Fail case 6 gear change timer calibration for Shift Solenoid Performance Diagnostic ; Seconds bcs.s loc_52246 move.w (word_FFFFA98E).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC6_LOW).l,d3 ; Lower ratio limit for fail case 6 in Shift Solenoid Performance Diagnostic ; Ratio bcs.s loc_52246 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC6_HIGH).l,d3 ; High ratio limit for fail case 6 in Shift Solenoid Performance Diagnostic ; Ratio bhi.s loc_52246 move.w (word_FFFFA980).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_TIME_FC6).l,d3 ; Fail case 6 timer for Shift Solenoid Performance Diagnostic ; Seconds bcs.s loc_52232 move.b #1,(byte_FFFFA995).w clr.b (byte_FFFFA999).w bra.s loc_52246 ; --------------------------------------------------------------------------- loc_52232: ; CODE XREF: sub_51C44+5E0j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_52240 move.w #$FFFF,d3 loc_52240: ; CODE XREF: sub_51C44+5F6j move.w d3,(word_FFFFA980).w bra.s loc_5224A ; --------------------------------------------------------------------------- loc_52246: ; CODE XREF: sub_51C44+588j ; sub_51C44+590j ... clr.w (word_FFFFA980).w loc_5224A: ; CODE XREF: sub_51C44+600j tst.b d1 beq.s loc_52256 move.w (word_FFFF95D4).w,(word_FFFFA98E).w bra.s loc_5225C ; --------------------------------------------------------------------------- loc_52256: ; CODE XREF: sub_51C44+608j move.w (word_FFFFAD44).w,(word_FFFFA98E).w loc_5225C: ; CODE XREF: sub_51C44+610j move.b (byte_FFFFAD46).w,d3 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_FC7).l,d3 ; Fail case 7 Modeled Speed Ratio calibration for Shift Solenoid Performance Diagnostic ; Factor bcs.s loc_522E0 cmpi.b #2,(byte_FFFF95DC).w bne.s loc_522E0 move.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC7_LOW).l,d3 ; Lower Limit for fail Case 7 Engine Torque in Shift Solenoid Performance Diagnostic Test ; Ft_Lb cmp.w (word_FFFF95C0).w,d3 bhi.s loc_522E0 move.w (word_FFFF95C0).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC7_HIGH).l,d3 ; High Limit calibration for fail case 7 Engine Torque Shift Solenoid Performance Diagnostic ; Ft_Lb bhi.s loc_522E0 move.w (word_FFFF9582).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_THROT_FC7).l,d3 ; Fail case 7 throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent bcs.s loc_522E0 move.w (word_FFFF9BBE).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_GEAR_CHANGE_TIMER_FC7).l,d3 ; Fail case 7 gear change timer calibration for Shift Solenoid Performance Diagnostic ; Seconds bcs.s loc_522E0 move.w (word_FFFFA98E).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC7_LOW).l,d3 ; Lower ratio limit for fail case 7 in Shift Solenoid Performance Diagnostic ; Ratio bcs.s loc_522E0 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC7_HIGH).l,d3 ; High ratio limit for fail case 7 in Shift Solenoid Performance Diagnostic ; Ratio bhi.s loc_522E0 move.w (word_FFFFA982).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_TIME_FC7).l,d3 ; Fail case 7 timer for Shift Solenoid Performance Diagnostic ; Seconds bcs.s loc_522CC move.b #1,(byte_FFFFA996).w clr.b (byte_FFFFA99A).w bra.s loc_522E0 ; --------------------------------------------------------------------------- loc_522CC: ; CODE XREF: sub_51C44+67Aj movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_522DA move.w #$FFFF,d3 loc_522DA: ; CODE XREF: sub_51C44+690j move.w d3,(word_FFFFA982).w bra.s loc_522E4 ; --------------------------------------------------------------------------- loc_522E0: ; CODE XREF: sub_51C44+622j ; sub_51C44+62Aj ... clr.w (word_FFFFA982).w loc_522E4: ; CODE XREF: sub_51C44+69Aj tst.b d1 beq.s loc_522F0 move.w (word_FFFF95D4).w,(word_FFFFA98E).w bra.s loc_522F6 ; --------------------------------------------------------------------------- loc_522F0: ; CODE XREF: sub_51C44+6A2j move.w (word_FFFFAD44).w,(word_FFFFA98E).w loc_522F6: ; CODE XREF: sub_51C44+6AAj tst.b d2 beq.s loc_5230E tst.b (XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_FC8).l ; Bit select enable calibrationfor fail case eight ; T/F beq.s loc_5230A move.w (word_FFFFAD44).w,(word_FFFFA98E).w bra.s loc_5230E ; --------------------------------------------------------------------------- loc_5230A: ; CODE XREF: sub_51C44+6BCj clr.b d3 bra.s loc_52310 ; --------------------------------------------------------------------------- loc_5230E: ; CODE XREF: sub_51C44+6B4j ; sub_51C44+6C4j moveq #1,d3 loc_52310: ; CODE XREF: sub_51C44+6C8j move.b (byte_FFFFAD46).w,d0 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_FC8).l,d0 ; Fail case 8 Modeled Speed Ratio calibration for Shift Solenoid Performance Diagnostic ; Factor bcs.s loc_52398 cmpi.b #3,(byte_FFFF95DC).w bne.s loc_52398 move.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC8_LOW).l,d0 ; Lower Limit for Fail case 8 Engine Torque in Shift Solenoid Diagnostic Test ; Ft_Lb cmp.w (word_FFFF95C0).w,d0 bhi.s loc_52398 move.w (word_FFFF95C0).w,d0 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_FC8_HIGH).l,d0 ; High limit calibration for fail case 8 Engine Torque Shift Solenoid Performance Diagnostic ; Ft_Lb bhi.s loc_52398 move.w (word_FFFF9582).w,d0 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_THROT_FC8).l,d0 ; Fail Case 8 throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent bcs.s loc_52398 move.w (word_FFFF9BBE).w,d0 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_GEAR_CHANGE_TIMER_FC8).l,d0 ; Fail case 8 gear change timer calibration for Shift Solenoid Performance Diagnostic ; Seconds bcs.s loc_52398 tst.b d3 beq.s loc_52398 move.w (word_FFFFA98E).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC8_LOW).l,d3 ; Lower ratio limit for fail case 8 in Shift Solenoid Performance Diagnostic ; Ratio bcs.s loc_52398 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_FC8_HIGH).l,d3 ; High ratio limit for fail case 8 in Shift Solenoid Performance ; Ratio bhi.s loc_52398 move.w (word_FFFFA984).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_TIME_FC8).l,d3 ; Fail case 8 timer for Shift Solenoid Performance Diagnostic ; Seconds bcs.s loc_52384 move.b #1,(byte_FFFFA997).w clr.b (byte_FFFFA99B).w bra.s loc_52398 ; --------------------------------------------------------------------------- loc_52384: ; CODE XREF: sub_51C44+732j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_52392 move.w #$FFFF,d3 loc_52392: ; CODE XREF: sub_51C44+748j move.w d3,(word_FFFFA984).w bra.s loc_5239C ; --------------------------------------------------------------------------- loc_52398: ; CODE XREF: sub_51C44+6D6j ; sub_51C44+6DEj ... clr.w (word_FFFFA984).w loc_5239C: ; CODE XREF: sub_51C44+752j move.b (byte_FFFFA990).w,d3 and.b (byte_FFFFA991).w,d3 beq.s loc_523C4 move.b (byte_FFFFA99C).w,d3 addq.b #1,d3 bcc.s loc_523B2 move.b #$FF,d3 loc_523B2: ; CODE XREF: sub_51C44+768j move.b d3,(byte_FFFFA99C).w bset #7,(byte_FFFFA96E).w clr.b (byte_FFFFA990).w clr.b (byte_FFFFA991).w loc_523C4: ; CODE XREF: sub_51C44+760j move.b (byte_FFFFA99C).w,d0 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_D2233_COUNTER).l,d0 ; Shift Solenoid Performance Diagnostic Fail Counter for 2233 Failure Mode ; counts bcs.s loc_523DE clr.b (byte_FFFFA99C).w move.w #$99,d0 ; '?' jsr sub_5F110 loc_523DE: ; CODE XREF: sub_51C44+78Aj tst.b (byte_FFFFA992).w beq.s loc_52410 tst.b (byte_FFFFA993).w bne.s loc_523F2 tst.b (XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_FC4).l ; Bit select enble calibration for fail case four ; T/F bne.s loc_52410 loc_523F2: ; CODE XREF: sub_51C44+7A4j move.b (byte_FFFFA99D).w,d3 addq.b #1,d3 bcc.s loc_523FE move.b #$FF,d3 loc_523FE: ; CODE XREF: sub_51C44+7B4j move.b d3,(byte_FFFFA99D).w bset #7,(byte_FFFFA96E).w clr.b (byte_FFFFA992).w clr.b (byte_FFFFA993).w loc_52410: ; CODE XREF: sub_51C44+79Ej ; sub_51C44+7ACj move.b (byte_FFFFA99D).w,d0 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_D1144_COUNTER).l,d0 ; Shift Solenoid Performance Diagnostic Fail Counter for 1144 Failure Mode ; counts bcs.s loc_5242A clr.b (byte_FFFFA99D).w move.w #$9A,d0 ; '?' jsr sub_5F110 loc_5242A: ; CODE XREF: sub_51C44+7D6j move.b (byte_FFFFA994).w,d3 and.b (byte_FFFFA995).w,d3 beq.s loc_52452 move.b (byte_FFFFA99E).w,d3 addq.b #1,d3 bcc.s loc_52440 move.b #$FF,d3 loc_52440: ; CODE XREF: sub_51C44+7F6j move.b d3,(byte_FFFFA99E).w bset #6,(byte_FFFFA96E).w clr.b (byte_FFFFA994).w clr.b (byte_FFFFA995).w loc_52452: ; CODE XREF: sub_51C44+7EEj move.b (byte_FFFFA99E).w,d0 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_D4334_COUNTER).l,d0 ; Shift Solenoid Performance Diagnostic Fail Counter for 4334 Failure Mode ; counts bcs.s loc_5246C clr.b (byte_FFFFA99E).w move.w #$9C,d0 ; '?' jsr sub_5F110 loc_5246C: ; CODE XREF: sub_51C44+818j tst.b (byte_FFFFA996).w beq.s loc_5249E tst.b (byte_FFFFA997).w bne.s loc_52480 tst.b (XDTP_TRANS_RATIO_KE_SS_PERF_ENABLE_FC8).l ; Bit select enable calibrationfor fail case eight ; T/F bne.s loc_5249E loc_52480: ; CODE XREF: sub_51C44+832j move.b (byte_FFFFA99F).w,d3 addq.b #1,d3 bcc.s loc_5248C move.b #$FF,d3 loc_5248C: ; CODE XREF: sub_51C44+842j move.b d3,(byte_FFFFA99F).w bset #6,(byte_FFFFA96E).w clr.b (byte_FFFFA996).w clr.b (byte_FFFFA997).w loc_5249E: ; CODE XREF: sub_51C44+82Cj ; sub_51C44+83Aj move.b (byte_FFFFA99F).w,d0 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_FAIL_D1221_COUNTER).l,d0 ; Shift Solenoid Performance Diagnostic Fail Counter for 1221 Failure Mode ; counts bcs.s loc_524B8 clr.b (byte_FFFFA99F).w move.w #$9D,d0 ; '?' jsr sub_5F110 loc_524B8: ; CODE XREF: sub_51C44+864j tst.b d1 beq.s loc_524C4 move.w (word_FFFF95D4).w,(word_FFFFA98E).w bra.s loc_524CA ; --------------------------------------------------------------------------- loc_524C4: ; CODE XREF: sub_51C44+876j move.w (word_FFFFAD44).w,(word_FFFFA98E).w loc_524CA: ; CODE XREF: sub_51C44+87Ej move.b (byte_FFFFAD46).w,d3 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_PC1).l,d3 ; Pass case 1 Modeled Speed ratio calibration for Shift Solenoid Performance Diagnostic ; Factor bcs.s loc_52544 tst.b (byte_FFFF95DC).w bne.s loc_52544 move.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_PC1_LOW).l,d3 ; Lower pass case 1 Engine Torque calibration limit for Shift Solenoid Performance Diagnostic ; Ft_Lb cmp.w (word_FFFF95C0).w,d3 bhi.s loc_52544 move.w (word_FFFF95C0).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_PC1_HIGH).l,d3 ; High pass case 1 limit Engine Torque used for Shift Solenoid Performance Diagnostio ; Ft_Lb bhi.s loc_52544 move.w (word_FFFF9582).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_THROT_PC1).l,d3 ; Pass case 1 throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent bcs.s loc_52544 move.w (word_FFFFA98E).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_PC1_LOW).l,d3 ; Low ratio calibration limit for pass case 1 in Shift Solenoid Performance Diagnostic ; Ratio bcs.s loc_52544 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_PC1_HIGH).l,d3 ; High ratio limit for fail case 1 in Shift Solenoid Performance Diagnostic ; Ratio bhi.s loc_52544 move.w (word_FFFFA986).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_PASS_TIME_PC1).l,d3 ; Pass case 1 time calibration for Shift Solenoid Performance Diagnostic ; Seconds bcs.s loc_52530 move.b #1,(byte_FFFFA998).w clr.b (byte_FFFFA990).w clr.b (byte_FFFFA994).w bra.s loc_52544 ; --------------------------------------------------------------------------- loc_52530: ; CODE XREF: sub_51C44+8DAj movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_5253E move.w #$FFFF,d3 loc_5253E: ; CODE XREF: sub_51C44+8F4j move.w d3,(word_FFFFA986).w bra.s loc_52548 ; --------------------------------------------------------------------------- loc_52544: ; CODE XREF: sub_51C44+890j ; sub_51C44+896j ... clr.w (word_FFFFA986).w loc_52548: ; CODE XREF: sub_51C44+8FEj tst.b d1 beq.s loc_52554 move.w (word_FFFF95D4).w,(word_FFFFA98E).w bra.s loc_5255A ; --------------------------------------------------------------------------- loc_52554: ; CODE XREF: sub_51C44+906j move.w (word_FFFFAD44).w,(word_FFFFA98E).w loc_5255A: ; CODE XREF: sub_51C44+90Ej move.b (byte_FFFFAD46).w,d3 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_PC2).l,d3 ; Pass case 2 Modeled Speed Ratio calibration for Shift Solenoid Performance Diagnostic ; Factor bcs.s loc_525D6 cmpi.b #1,(byte_FFFF95DC).w bne.s loc_525D6 move.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_PC2_LOW).l,d3 ; Low pass case 2 Engine Torque calibration limit for Shift Solenoid Perfromance Diagnostic ; Ft_Lb cmp.w (word_FFFF95C0).w,d3 bhi.s loc_525D6 move.w (word_FFFF95C0).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_PC2_HIGH).l,d3 ; High pass case 2 calibration limit for Shift Solenoid Performance Diagnostic ; Ft_Lb bhi.s loc_525D6 move.w (word_FFFF9582).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_THROT_PC2).l,d3 ; Pass case 2 throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent bcs.s loc_525D6 move.w (word_FFFFA98E).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_PC2_LOW).l,d3 ; Low ratio calibration limit for pass case 2 in Shift Solenoid Performance Diagnostic ; Ratio bcs.s loc_525D6 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_PC2_HIGH).l,d3 ; High ratio calibration limit for pass case 2 in Shift Solenoid Performance Diagnostic ; Ratio bhi.s loc_525D6 move.w (word_FFFFA988).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_PASS_TIME_PC2).l,d3 ; Pass case 2 time calibration for Shift Solenoid Performnace Diagnostic ; Seconds bcs.s loc_525C2 move.b #1,(byte_FFFFA999).w clr.b (byte_FFFFA992).w clr.b (byte_FFFFA995).w bra.s loc_525D6 ; --------------------------------------------------------------------------- loc_525C2: ; CODE XREF: sub_51C44+96Cj movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_525D0 move.w #$FFFF,d3 loc_525D0: ; CODE XREF: sub_51C44+986j move.w d3,(word_FFFFA988).w bra.s loc_525DA ; --------------------------------------------------------------------------- loc_525D6: ; CODE XREF: sub_51C44+920j ; sub_51C44+928j ... clr.w (word_FFFFA988).w loc_525DA: ; CODE XREF: sub_51C44+990j tst.b d1 beq.s loc_525E6 move.w (word_FFFF95D4).w,(word_FFFFA98E).w bra.s loc_525EC ; --------------------------------------------------------------------------- loc_525E6: ; CODE XREF: sub_51C44+998j move.w (word_FFFFAD44).w,(word_FFFFA98E).w loc_525EC: ; CODE XREF: sub_51C44+9A0j move.b (byte_FFFFAD46).w,d3 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_PC3).l,d3 ; Pass case 3 Model Speed Ratio calibration ; Factor bcs.s loc_52668 cmpi.b #2,(byte_FFFF95DC).w bne.s loc_52668 move.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_PC3_LOW).l,d3 ; Low pass case 3 Engine Torque calibration limit For Shift Solenoid Performance Diagnostic ; Ft_Lb cmp.w (word_FFFF95C0).w,d3 bhi.s loc_52668 move.w (word_FFFF95C0).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_PC3_HIGH).l,d3 ; High pass 3 Engine Torque calibration limit for Shift Solenoid Performance Diagnostic ; Ft_Lb bhi.s loc_52668 move.w (word_FFFF9582).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_THROT_PC3).l,d3 ; Pass case 3 throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent bcs.s loc_52668 move.w (word_FFFFA98E).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_PC3_LOW).l,d3 ; Low ratio calibration limit for pass case 3 in Shift Soleoid Performance Diagnostic ; Ratio bcs.s loc_52668 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_PC3_HIGH).l,d3 ; High ratio calibration for pass case 3 in Shift Solenoid Performance Diagnostic ; Ratio bhi.s loc_52668 move.w (word_FFFFA98A).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_PASS_TIME_PC3).l,d3 ; Pass case 3 timer calibration for Shift Solenoid Performance Diagnostic ; Seconds bcs.s loc_52654 move.b #1,(byte_FFFFA99A).w clr.b (byte_FFFFA993).w clr.b (byte_FFFFA996).w bra.s loc_52668 ; --------------------------------------------------------------------------- loc_52654: ; CODE XREF: sub_51C44+9FEj movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_52662 move.w #$FFFF,d3 loc_52662: ; CODE XREF: sub_51C44+A18j move.w d3,(word_FFFFA98A).w bra.s loc_5266C ; --------------------------------------------------------------------------- loc_52668: ; CODE XREF: sub_51C44+9B2j ; sub_51C44+9BAj ... clr.w (word_FFFFA98A).w loc_5266C: ; CODE XREF: sub_51C44+A22j tst.b d1 beq.s loc_52678 move.w (word_FFFF95D4).w,(word_FFFFA98E).w bra.s loc_5267E ; --------------------------------------------------------------------------- loc_52678: ; CODE XREF: sub_51C44+A2Aj move.w (word_FFFFAD44).w,(word_FFFFA98E).w loc_5267E: ; CODE XREF: sub_51C44+A32j tst.b d2 beq.s loc_526C8 move.b (byte_FFFF95DD).w,d3 cmpi.b #4,d3 beq.s loc_52692 cmpi.b #2,d3 bne.s loc_52696 loc_52692: ; CODE XREF: sub_51C44+A46j moveq #1,d3 bra.s loc_52698 ; --------------------------------------------------------------------------- loc_52696: ; CODE XREF: sub_51C44+A4Cj clr.b d3 loc_52698: ; CODE XREF: sub_51C44+A50j tst.b d3 beq.s loc_526C4 cmpi.b #3,(byte_FFFF95DC).w bne.s loc_526C4 move.w (word_FFFF95B2).w,d3 beq.s loc_526BC clr.l d7 move.w (word_FFFF95B6).w,d7 asl.l #8,d7 asl.l #4,d7 divu.w d3,d7 move.w d7,(word_FFFFA98E).w bra.s loc_526C8 ; --------------------------------------------------------------------------- loc_526BC: ; CODE XREF: sub_51C44+A64j move.w #$7FFF,(word_FFFFA98E).w bra.s loc_526C8 ; --------------------------------------------------------------------------- loc_526C4: ; CODE XREF: sub_51C44+A56j ; sub_51C44+A5Ej clr.b d3 bra.s loc_526CA ; --------------------------------------------------------------------------- loc_526C8: ; CODE XREF: sub_51C44+A3Cj ; sub_51C44+A76j ... moveq #1,d3 loc_526CA: ; CODE XREF: sub_51C44+A82j move.b (byte_FFFFAD46).w,d7 cmp.b (XDTP_TRANS_RATIO_KE_SS_PERF_MODELSR_PC4).l,d7 ; Pass case 4 Model Speed Ratio calibration ; Factor bcs.s loc_5274C cmpi.b #3,(byte_FFFF95DC).w bne.s loc_5274C move.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_PC4_LOW).l,d7 ; Low pass case 4 Engine Torque calibration limit for Shift Solenoid Performance Diagnostic ; Ft_Lb cmp.w (word_FFFF95C0).w,d7 bhi.s loc_5274C move.w (word_FFFF95C0).w,d7 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_ETORQUE_PC4_HIGH).l,d7 ; High pass case 4 Engine Torque calibration limit for Shift Solenoid Performance Diagnostic ; Ft_Lb bhi.s loc_5274C move.w (word_FFFF9582).w,d7 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_THROT_PC4).l,d7 ; Pass case 4 throttle position threshold for Shift Solenoid Performance Diagnostic ; Percent bcs.s loc_5274C tst.b d3 beq.s loc_5274C move.w (word_FFFFA98E).w,d3 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_PC4_LOW).l,d3 ; Low ratio calibration limit for pass case 4 in Shift Solenoid Performance Diagnostic ; Ratio bcs.s loc_5274C cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_RATIO_PC4_HIGH).l,d3 ; High ratio calibration limit for fail case 4 in Shift Solenoid Performance Diagnostic ; Ratio bhi.s loc_5274C move.w (word_FFFFA98C).w,d7 cmp.w (XDTP_TRANS_RATIO_KE_SS_PERF_PASS_TIME_PC4).l,d7 ; Pass case 4 timer for Shift Solenoid Performance diagnostic ; Seconds bcs.s loc_52736 move.b #1,(byte_FFFFA99B).w clr.b (byte_FFFFA991).w clr.b (byte_FFFFA997).w bra.s loc_5274C ; --------------------------------------------------------------------------- loc_52736: ; CODE XREF: sub_51C44+AE0j movea.l (dword_FFFFB5DE).w,a2 move.l d7,d3 add.w $A(a2),d3 bcc.s loc_52746 move.w #$FFFF,d3 loc_52746: ; CODE XREF: sub_51C44+AFCj move.w d3,(word_FFFFA98C).w bra.s loc_52750 ; --------------------------------------------------------------------------- loc_5274C: ; CODE XREF: sub_51C44+A90j ; sub_51C44+A98j ... clr.w (word_FFFFA98C).w loc_52750: ; CODE XREF: sub_51C44+B06j move.b (byte_FFFFA99B).w,d7 move.b (byte_FFFFA998).w,d6 move.l d6,d1 and.b d7,d1 beq.s loc_52772 clr.b (byte_FFFFA99C).w move.w #$99,d0 ; '?' jsr sub_5F0BE bclr #7,(byte_FFFFA96E).w loc_52772: ; CODE XREF: sub_51C44+B18j move.b (byte_FFFFA99A).w,d2 move.b (byte_FFFFA999).w,d1 move.l d1,d3 and.b d2,d3 beq.s loc_52794 clr.b (byte_FFFFA99D).w move.w #$9A,d0 ; '?' jsr sub_5F0BE bclr #7,(byte_FFFFA96E).w loc_52794: ; CODE XREF: sub_51C44+B3Aj and.b d1,d6 beq.s loc_527AC clr.b (byte_FFFFA99E).w move.w #$9C,d0 ; '?' jsr sub_5F0BE bclr #6,(byte_FFFFA96E).w loc_527AC: ; CODE XREF: sub_51C44+B52j and.b d7,d2 beq.s loc_527C4 clr.b (byte_FFFFA99F).w move.w #$9D,d0 ; '?' jsr sub_5F0BE bclr #6,(byte_FFFFA96E).w loc_527C4: ; CODE XREF: sub_51C44+B6Aj btst #5,(byte_FFFF89F2).w beq.s loc_527E8 btst #1,(byte_FFFF89F2).w bne.s loc_527E8 btst #5,(byte_FFFF89F8).w beq.s loc_527E8 btst #1,(byte_FFFF89F8).w bne.s loc_527E8 clr.b (byte_FFFFA998).w loc_527E8: ; CODE XREF: sub_51C44+B86j ; sub_51C44+B8Ej ... btst #5,(byte_FFFF89F4).w beq.s loc_5280C btst #1,(byte_FFFF89F4).w bne.s loc_5280C btst #5,(byte_FFFF89F8).w beq.s loc_5280C btst #1,(byte_FFFF89F8).w bne.s loc_5280C clr.b (byte_FFFFA999).w loc_5280C: ; CODE XREF: sub_51C44+BAAj ; sub_51C44+BB2j ... btst #5,(byte_FFFF89F4).w beq.s loc_52830 btst #1,(byte_FFFF89F4).w bne.s loc_52830 btst #5,(byte_FFFF89FA).w beq.s loc_52830 btst #1,(byte_FFFF89FA).w bne.s loc_52830 clr.b (byte_FFFFA99A).w loc_52830: ; CODE XREF: sub_51C44+BCEj ; sub_51C44+BD6j ... btst #5,(byte_FFFF89F2).w beq.s loc_52854 btst #1,(byte_FFFF89F2).w bne.s loc_52854 btst #5,(byte_FFFF89FA).w beq.s loc_52854 btst #1,(byte_FFFF89FA).w bne.s loc_52854 clr.b (byte_FFFFA99B).w loc_52854: ; CODE XREF: sub_51C44+1C8j ; sub_51C44+BF2j ... movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_51C44 ; =============== S U B R O U T I N E ======================================= sub_5285A: ; CODE XREF: DoLoopE:loc_2A9CEp movem.l d0-d2,-(sp) btst #7,(byte_FFFF95E2).w beq.w loc_5296C cmpi.b #1,(byte_FFFFB02B).w beq.w loc_5296C tst.b (byte_1D8DB).l beq.w loc_5296C btst #6,(byte_FFFF899A).w bne.w loc_5296C btst #6,(byte_FFFF899C).w bne.w loc_5296C move.w (word_FFFF95DA).w,d3 cmp.w (XDTS_BRAKE_KE_BRAKE_ON_OUT_SPD_LOW_THRESH).l,d3 ; Starting speed for detecting an acceleration cycle for brakeswitch stuck on diagnostic. ; MPH bhi.s loc_528B0 move.b #1,(byte_FFFFB03E).w clr.b (byte_FFFFB03F).w clr.w (word_FFFFB032).w clr.w (word_FFFFB030).w bra.s loc_52928 ; --------------------------------------------------------------------------- loc_528B0: ; CODE XREF: sub_5285A+40j cmp.w (XDTS_BRAKE_KE_BRAKE_ON_OUT_SPD_HIGH_THRESH).l,d3 ; Ending speed for detecting an acceleration cycle for brake switch stuck on diagnostic. ; MPH bcc.s loc_528EA clr.b (byte_FFFFB03F).w tst.b (byte_FFFFB03E).w beq.s loc_52928 move.w (word_FFFFB032).w,d3 cmp.w (XDTS_BRAKE_KE_ON_MED_TIME_LIMIT).l,d3 ; Amount of time vehicle speed must be in-between the high and low threshold during the brakestuck on test accelerationcycle. ; Seconds bcc.s loc_528E2 movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_528DC move.w #$FFFF,d3 loc_528DC: ; CODE XREF: sub_5285A+7Cj move.w d3,(word_FFFFB032).w bra.s loc_52928 ; --------------------------------------------------------------------------- loc_528E2: ; CODE XREF: sub_5285A+72j move.b #1,(byte_FFFFB03F).w bra.s loc_52928 ; --------------------------------------------------------------------------- loc_528EA: ; CODE XREF: sub_5285A+5Cj clr.b (byte_FFFFB03E).w tst.b (byte_FFFFB03F).w beq.s loc_52928 move.w (word_FFFFB030).w,d3 cmp.w (XDTS_BRAKE_KE_ON_HIGH_TIME_LIMIT).l,d3 ; Amount of time vehicle speed must be above the high thresholdduring the accel cycle in thebrake stuck on test. ; Seconds bcc.s loc_52914 movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_5290E move.w #$FFFF,d3 loc_5290E: ; CODE XREF: sub_5285A+AEj move.w d3,(word_FFFFB030).w bra.s loc_52928 ; --------------------------------------------------------------------------- loc_52914: ; CODE XREF: sub_5285A+A4j clr.b (byte_FFFFB03F).w move.b (byte_FFFFB043).w,d3 addq.b #1,d3 bcc.s loc_52924 move.b #$FF,d3 loc_52924: ; CODE XREF: sub_5285A+C4j move.b d3,(byte_FFFFB043).w loc_52928: ; CODE XREF: sub_5285A+54j ; sub_5285A+66j ... move.l (dword_FFFFB038).w,d3 cmp.l (XDTS_BRAKE_KE_BRAKE_ON_FAIL_TIME_LIMIT).l,d3 ; Amount of time that the brake switch stuck on test must fail before the accelerationcycle counter is reset. ; Seconds bge.s loc_52950 movea.l (dword_FFFFB5DE).w,a2 clr.l d3 move.w $A(a2),d3 add.l (dword_FFFFB038).w,d3 bvc.s loc_5294A move.l #$7FFFFFFF,d3 loc_5294A: ; CODE XREF: sub_5285A+E8j move.l d3,(dword_FFFFB038).w bra.s loc_52984 ; --------------------------------------------------------------------------- loc_52950: ; CODE XREF: sub_5285A+D8j move.b (byte_FFFFB043).w,d3 cmp.b (XDTS_BRAKE_KE_BRAKE_ON_WITH_ACCEL_LIMIT).l,d3 ; Number of acceleration events with the brake depressed above which the brake switch stuck on malfunction will be set. ; Counts bcs.s loc_52984 move.b #2,(byte_FFFFB02B).w clr.b (byte_FFFFB044).w clr.b (byte_FFFFB045).w bra.s loc_52984 ; --------------------------------------------------------------------------- loc_5296C: ; CODE XREF: sub_5285A+Aj ; sub_5285A+14j ... clr.l (dword_FFFFB038).w clr.w (word_FFFFB032).w clr.w (word_FFFFB030).w clr.b (byte_FFFFB043).w clr.b (byte_FFFFB03E).w clr.b (byte_FFFFB03F).w loc_52984: ; CODE XREF: sub_5285A+F4j ; sub_5285A+100j ... btst #7,(byte_FFFF95E2).w bne.w loc_52A7C tst.b (byte_1D8DC).l beq.w loc_52A7C btst #6,(byte_FFFF899A).w bne.w loc_52A7C btst #6,(byte_FFFF899C).w bne.w loc_52A7C cmpi.b #1,(byte_FFFFB02A).w beq.w loc_52A7C move.w (word_FFFF95DA).w,d3 cmp.w (XDTS_BRAKE_KE_BRAKE_OFF_OUT_SPD_HIGH_THRESH).l,d3 ; Ending speed for detecting an acceleration cycle for brake switch stuck off diagnostic. ; MPH bcs.s loc_529F6 clr.w (word_FFFFB02E).w clr.b (byte_FFFFB03C).w move.w (word_FFFFB02C).w,d3 cmp.w (XDTS_BRAKE_KE_OFF_HIGH_TIME_LIMIT).l,d3 bcc.s loc_529EE movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_529E4 move.w #$FFFF,d3 loc_529E4: ; CODE XREF: sub_5285A+184j move.w d3,(word_FFFFB02C).w loc_529E8: ; CODE XREF: sub_5285A+1D4j clr.b (byte_FFFFB03D).w bra.s loc_52A60 ; --------------------------------------------------------------------------- loc_529EE: ; CODE XREF: sub_5285A+17Aj move.b #1,(byte_FFFFB03D).w bra.s loc_52A60 ; --------------------------------------------------------------------------- loc_529F6: ; CODE XREF: sub_5285A+166j tst.b (byte_FFFFB03D).w beq.s loc_52A30 cmp.w (XDTS_BRAKE_KE_BRAKE_OFF_OUT_SPD_LOW_THRESH).l,d3 ; Starting speed for detecting an acceleration cycle for brake switch stuck off diagnostic. ; MPH bls.s loc_52A30 clr.w (word_FFFFB02C).w move.w (word_FFFFB02E).w,d3 cmp.w (XDTS_BRAKE_KE_OFF_MED_TIME_LIMIT).l,d3 ; Amount of time vehicle speed must be in-between the low andhigh threshold during a decel cycle in the brake stuck off test. ; Seconds bcc.s loc_52A28 movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_52A22 move.w #$FFFF,d3 loc_52A22: ; CODE XREF: sub_5285A+1C2j move.w d3,(word_FFFFB02E).w bra.s loc_52A60 ; --------------------------------------------------------------------------- loc_52A28: ; CODE XREF: sub_5285A+1B8j move.b #1,(byte_FFFFB03C).w bra.s loc_529E8 ; --------------------------------------------------------------------------- loc_52A30: ; CODE XREF: sub_5285A+1A0j ; sub_5285A+1A8j cmp.w (XDTS_BRAKE_KE_BRAKE_OFF_OUT_SPD_LOW_THRESH).l,d3 ; Starting speed for detecting an acceleration cycle for brake switch stuck off diagnostic. ; MPH bhi.s loc_52A58 tst.b (byte_FFFFB03C).w beq.s loc_52A52 move.b (byte_FFFFB042).w,d3 addq.b #1,d3 bcc.s loc_52A4A move.b #$FF,d3 loc_52A4A: ; CODE XREF: sub_5285A+1EAj move.b d3,(byte_FFFFB042).w clr.b (byte_FFFFB03C).w loc_52A52: ; CODE XREF: sub_5285A+1E2j clr.b (byte_FFFFB03D).w bra.s loc_52A5C ; --------------------------------------------------------------------------- loc_52A58: ; CODE XREF: sub_5285A+1DCj clr.w (word_FFFFB02C).w loc_52A5C: ; CODE XREF: sub_5285A+1FCj clr.w (word_FFFFB02E).w loc_52A60: ; CODE XREF: sub_5285A+192j ; sub_5285A+19Aj ... move.b (byte_FFFFB042).w,d3 cmp.b (XDTS_BRAKE_KE_BRAKE_OFF_WITH_DECEL_LIMIT).l,d3 ; Number of deceleration events with the brake not depressed above which the brake switch stuck off malfunction will be set. ; Counts bcs.s loc_52A90 move.b #2,(byte_FFFFB02A).w clr.b (byte_FFFFB044).w clr.b (byte_FFFFB045).w bra.s loc_52A90 ; --------------------------------------------------------------------------- loc_52A7C: ; CODE XREF: sub_5285A+130j ; sub_5285A+13Aj ... clr.b (byte_FFFFB042).w clr.w (word_FFFFB02C).w clr.w (word_FFFFB02E).w clr.b (byte_FFFFB03C).w clr.b (byte_FFFFB03D).w loc_52A90: ; CODE XREF: sub_5285A+210j ; sub_5285A+220j btst #7,(byte_FFFF95E2).w beq.s loc_52AF6 moveq #1,d1 move.b d1,(byte_FFFFB040).w clr.w (word_FFFFB034).w tst.b (byte_1D8DC).l beq.w loc_52B4E move.w (word_FFFFB036).w,d3 cmp.w (XDTS_BRAKE_KE_BRAKE_STUCK_OFF_RECOVER_TIME).l,d3 bhi.s loc_52ACE movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_52AC6 move.w #$FFFF,d3 loc_52AC6: ; CODE XREF: sub_5285A+266j move.w d3,(word_FFFFB036).w bra.w loc_52B4E ; --------------------------------------------------------------------------- loc_52ACE: ; CODE XREF: sub_5285A+25Cj tst.b (byte_FFFFB041).w beq.s loc_52B4E clr.b (byte_FFFFB041).w move.b (byte_FFFFB044).w,d3 addq.b #1,d3 bcc.s loc_52AE4 move.b #$FF,d3 loc_52AE4: ; CODE XREF: sub_5285A+284j move.b d3,(byte_FFFFB044).w cmp.b (XDTS_BRAKE_KE_BRAKE_OFF_PASS_COUNT).l,d3 ; Number of valid pass cycles before a pass condition is accepted for the brake switch stuck off test. ; Counts bcs.s loc_52B4E move.b d1,(byte_FFFFB02A).w bra.s loc_52B4E ; --------------------------------------------------------------------------- loc_52AF6: ; CODE XREF: sub_5285A+23Cj moveq #1,d1 move.b d1,(byte_FFFFB041).w clr.w (word_FFFFB036).w tst.b (byte_1D8DB).l beq.s loc_52B4E move.w (word_FFFFB034).w,d3 cmp.w (XDTS_BRAKE_KE_BRAKE_STUCK_ON_RECOVER_TIME).l,d3 bhi.s loc_52B28 movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_52B22 move.w #$FFFF,d3 loc_52B22: ; CODE XREF: sub_5285A+2C2j move.w d3,(word_FFFFB034).w bra.s loc_52B4E ; --------------------------------------------------------------------------- loc_52B28: ; CODE XREF: sub_5285A+2B8j tst.b (byte_FFFFB040).w beq.s loc_52B4E clr.b (byte_FFFFB040).w move.b (byte_FFFFB045).w,d3 addq.b #1,d3 bcc.s loc_52B3E move.b #$FF,d3 loc_52B3E: ; CODE XREF: sub_5285A+2DEj move.b d3,(byte_FFFFB045).w cmp.b (XDTS_BRAKE_KE_BRAKE_ON_PASS_COUNT).l,d3 ; Number of valid pass cycles before a pass condition is accepted for the brake switch stuck on test. ; Counts bcs.s loc_52B4E move.b d1,(byte_FFFFB02B).w loc_52B4E: ; CODE XREF: sub_5285A+24Ej ; sub_5285A+270j ... move.b (byte_FFFFB02A).w,d4 moveq #2,d2 cmp.b d4,d2 bne.s loc_52B7C btst #1,(byte_FFFF89E6).w beq.s loc_52B68 btst #6,(byte_FFFF89E6).w bne.s loc_52B7C loc_52B68: ; CODE XREF: sub_5285A+304j move.w #$93,d0 ; '?' jsr sub_5F110 clr.b (byte_FFFFB042).w clr.b (byte_FFFFB02A).w bra.s loc_52BE2 ; --------------------------------------------------------------------------- loc_52B7C: ; CODE XREF: sub_5285A+2FCj ; sub_5285A+30Cj move.b (byte_FFFFB02B).w,d3 cmp.b d3,d2 bne.s loc_52BA8 btst #1,(byte_FFFF89E4).w beq.s loc_52B94 btst #6,(byte_FFFF89E4).w bne.s loc_52BA8 loc_52B94: ; CODE XREF: sub_5285A+330j move.w #$92,d0 ; '?' jsr sub_5F110 clr.b (byte_FFFFB043).w clr.b (byte_FFFFB02B).w bra.s loc_52BE2 ; --------------------------------------------------------------------------- loc_52BA8: ; CODE XREF: sub_5285A+328j ; sub_5285A+338j cmp.b d4,d1 bne.s loc_52BC8 btst #1,(byte_FFFF89E6).w bne.s loc_52BBC btst #5,(byte_FFFF89E6).w bne.s loc_52BC8 loc_52BBC: ; CODE XREF: sub_5285A+358j move.w #$93,d0 ; '?' loc_52BC0: ; CODE XREF: sub_5285A+386j jsr sub_5F0BE bra.s loc_52BE2 ; --------------------------------------------------------------------------- loc_52BC8: ; CODE XREF: sub_5285A+350j ; sub_5285A+360j cmp.b d3,d1 bne.s loc_52BE2 btst #1,(byte_FFFF89E4).w bne.s loc_52BDC btst #5,(byte_FFFF89E4).w bne.s loc_52BE2 loc_52BDC: ; CODE XREF: sub_5285A+378j move.w #$92,d0 ; '?' bra.s loc_52BC0 ; --------------------------------------------------------------------------- loc_52BE2: ; CODE XREF: sub_5285A+320j ; sub_5285A+34Cj ... movem.l (sp)+,d0-d2 rts ; End of function sub_5285A ; =============== S U B R O U T I N E ======================================= sub_52BE8: ; CODE XREF: DoLoopC+1ACp move.l d0,-(sp) tst.b (byte_1D8D0).l beq.w loc_52CCA move.w (word_FFFF95A6).w,d3 cmp.w (XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_LOW_THRESH).l,d3 ; Input speed threshold below which a diagnostic fault is enabled. ; RPM bcc.w loc_52C84 btst #1,(byte_FFFF89E2).w beq.s loc_52C12 btst #6,(byte_FFFF89E2).w bne.s loc_52C84 loc_52C12: ; CODE XREF: sub_52BE8+20j cmpi.b #4,(byte_FFFF95E9).w bhi.s loc_52C84 btst #6,(byte_FFFF8A6E).w bne.s loc_52C84 move.w (word_FFFF95DA).w,d0 cmp.w (XDTS_INPT_SPD_SENSOR_KE_IN_SPD_DIAG_OUT_SPD_THRESH).l,d0 ; Vehicle speed threshold above which input speed diagnostic is enabled. ; MPH bcs.s loc_52C84 btst #6,(byte_FFFF899A).w bne.s loc_52C84 btst #6,(byte_FFFF899C).w bne.s loc_52C84 btst #6,(byte_FFFF88C0).w bne.s loc_52C84 btst #6,(byte_FFFF88C0).w bne.s loc_52C84 btst #0,(byte_FFFF95E2).w beq.s loc_52C84 clr.w (word_FFFFB44C).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB44A).w,d3 add.w $A(a2),d3 bcc.s loc_52C6C move.w #$FFFF,d3 loc_52C6C: ; CODE XREF: sub_52BE8+7Ej move.w d3,(word_FFFFB44A).w cmp.w (XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_LOW_TIME).l,d3 ; Amount of time input speed must be below the threshold in order to set malfunction. ; Seconds. bcs.s loc_52CD2 move.w #$91,d0 ; '?' jsr sub_5F110 bra.s loc_52CCE ; --------------------------------------------------------------------------- loc_52C84: ; CODE XREF: sub_52BE8+16j ; sub_52BE8+28j ... cmp.w (XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_HIGH_THRESH).l,d3 ; Input speed threshold above which a diagnostic fault is cleared. ; RPM bls.s loc_52CCA btst #1,(byte_FFFF89E2).w bne.s loc_52C9C btst #5,(byte_FFFF89E2).w bne.s loc_52CCA loc_52C9C: ; CODE XREF: sub_52BE8+AAj clr.w (word_FFFFB44A).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB44C).w,d3 add.w $A(a2),d3 bcc.s loc_52CB2 move.w #$FFFF,d3 loc_52CB2: ; CODE XREF: sub_52BE8+C4j move.w d3,(word_FFFFB44C).w cmp.w (XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_HIGH_TIME).l,d3 ; Amount of time input speed must be above the threshold in order to clear malfunction. ; Seconds. bcs.s loc_52CD2 move.w #$91,d0 ; '?' jsr sub_5F0BE bra.s loc_52CD2 ; --------------------------------------------------------------------------- loc_52CCA: ; CODE XREF: sub_52BE8+8j ; sub_52BE8+A2j ... clr.w (word_FFFFB44C).w loc_52CCE: ; CODE XREF: sub_52BE8+9Aj clr.w (word_FFFFB44A).w loc_52CD2: ; CODE XREF: sub_52BE8+8Ej ; sub_52BE8+D4j ... move.l (sp)+,d0 rts ; End of function sub_52BE8 ; =============== S U B R O U T I N E ======================================= sub_52CD6: ; CODE XREF: sub_4C30C+14p move.l d0,-(sp) tst.b (byte_1D8CF).l beq.w loc_52E34 move.w (word_FFFF9582).w,d0 cmp.w (XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_PERF_THR_THRESH).l,d0 ; Throttle position must be above this threshold for the input speed sensor performance fail test to be enabled. ; Percent bcs.w loc_52DC6 move.w (word_FFFF95DA).w,d0 cmp.w (XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_PERF_MPH_THRESH).l,d0 ; Vehicle speed must be above this threshold for the input speed sensor performance fail test to be enabled. ; MPH bcs.w loc_52DC6 btst #0,(byte_FFFF95E2).w beq.w loc_52DC6 btst #5,(byte_FFFF89E2).w beq.w loc_52DC6 btst #6,(byte_FFFF89E2).w bne.w loc_52DC6 btst #6,(byte_FFFF88E4).w bne.w loc_52DC6 btst #6,(byte_FFFF88E2).w bne.w loc_52DC6 btst #6,(byte_FFFF89F6).w bne.w loc_52DC6 btst #6,(byte_FFFF89F2).w bne.w loc_52DC6 btst #6,(byte_FFFF89F4).w bne.s loc_52DC6 btst #6,(byte_FFFF89FE).w bne.s loc_52DC6 btst #6,(byte_FFFF899A).w bne.s loc_52DC6 btst #6,(byte_FFFF899C).w bne.s loc_52DC6 btst #1,(byte_FFFF89E0).w beq.s loc_52D74 btst #6,(byte_FFFF89E0).w bne.s loc_52DC6 loc_52D74: ; CODE XREF: sub_52CD6+94j move.w (word_FFFF95A4).w,d0 sub.w (word_FFFF95A6).w,d0 cmp.w (XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_PERF_DELTA_FAIL).l,d0 ; The drop in input speed must be above this for a period of time for a failure to be reported. ; RPM blt.s loc_52DC6 clr.w (word_FFFFB44E).w move.w (word_FFFFB450).w,d0 cmp.w (XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_DELTA_TIME_FAIL).l,d0 ; Amount of time there must be a drop in the input speed for a failure to be reported. ; Seconds. bcs.s loc_52DAA move.w #$90,d0 ; '?' jsr sub_5F110 clr.b (byte_FFFFB448).w clr.w (word_FFFFB450).w bra.w loc_52E40 ; --------------------------------------------------------------------------- loc_52DAA: ; CODE XREF: sub_52CD6+BCj movea.l (dword_FFFFB5DE).w,a2 move.l d0,d3 add.w $A(a2),d3 bcc.s loc_52DBA move.w #$FFFF,d3 loc_52DBA: ; CODE XREF: sub_52CD6+DEj move.w d3,(word_FFFFB450).w move.b #1,(byte_FFFFB448).w bra.s loc_52E40 ; --------------------------------------------------------------------------- loc_52DC6: ; CODE XREF: sub_52CD6+16j ; sub_52CD6+24j ... btst #6,(byte_FFFF89E2).w bne.s loc_52E34 btst #1,(byte_FFFF89E0).w bne.s loc_52DDE btst #5,(byte_FFFF89E0).w bne.s loc_52E34 loc_52DDE: ; CODE XREF: sub_52CD6+FEj move.w (word_FFFF95A4).w,d0 sub.w (word_FFFF95A6).w,d0 cmp.w (XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_PERF_DELTA_PASS).l,d0 ; The drop in input speed must be below this for a period of time for a pass to be reported. ; RPM bgt.s loc_52E34 move.w (word_FFFF95A6).w,d0 cmp.w (XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_PERF_PASS_THRESH).l,d0 ; Input speed must be above this threshold for a period of time for the PASS test to be valid. ; RPM bls.s loc_52E34 clr.w (word_FFFFB450).w move.w (word_FFFFB44E).w,d0 cmp.w (XDTS_INPT_SPD_SENSOR_KE_INPUT_SPEED_PERF_TIME_PASS).l,d0 ; Amount of time pass condition for input speed sensor performance must be valid before a PASS is reported. ; Seconds. bcs.s loc_52E1E move.w #$90,d0 ; '?' jsr sub_5F0BE clr.b (byte_FFFFB448).w clr.w (word_FFFFB44E).w bra.s loc_52E40 ; --------------------------------------------------------------------------- loc_52E1E: ; CODE XREF: sub_52CD6+132j movea.l (dword_FFFFB5DE).w,a2 move.l d0,d3 add.w $A(a2),d3 bcc.s loc_52E2E move.w #$FFFF,d3 loc_52E2E: ; CODE XREF: sub_52CD6+152j move.w d3,(word_FFFFB44E).w bra.s loc_52E3C ; --------------------------------------------------------------------------- loc_52E34: ; CODE XREF: sub_52CD6+8j ; sub_52CD6+F6j ... clr.w (word_FFFFB44E).w clr.w (word_FFFFB450).w loc_52E3C: ; CODE XREF: sub_52CD6+15Cj clr.b (byte_FFFFB448).w loc_52E40: ; CODE XREF: sub_52CD6+D0j ; sub_52CD6+EEj ... move.l (sp)+,d0 rts ; End of function sub_52CD6 ; =============== S U B R O U T I N E ======================================= sub_52E44: ; CODE XREF: sub_5436E:loc_5493Cp jsr sub_52E70 jsr sub_53008 btst #6,(byte_FFFFB3CE).w bne.s loc_52E60 btst #5,(byte_FFFFB3CE).w beq.s loc_52E68 loc_52E60: ; CODE XREF: sub_52E44+12j bset #7,(byte_FFFFB3CE).w bra.s locret_52E6E ; --------------------------------------------------------------------------- loc_52E68: ; CODE XREF: sub_52E44+1Aj bclr #7,(byte_FFFFB3CE).w locret_52E6E: ; CODE XREF: sub_52E44+22j rts ; End of function sub_52E44 ; =============== S U B R O U T I N E ======================================= sub_52E70: ; CODE XREF: sub_52E44p movem.l d0-d2,-(sp) move.b (byte_1D8D2).l,d1 beq.w loc_52F3C cmpi.b #4,(byte_FFFF95E9).w bhi.w loc_52F3C btst #6,(byte_FFFF8A6E).w bne.w loc_52F3C btst #6,(byte_FFFF88E4).w bne.w loc_52F3C btst #6,(byte_FFFF88E2).w bne.w loc_52F3C btst #6,(byte_FFFF88CE).w bne.w loc_52F3C btst #6,(byte_FFFF88D0).w bne.w loc_52F3C move.w (word_FFFF9582).w,d3 cmp.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_THROTTLE_THRESH).l,d3 ; Amount of throttle position below which output speed low diagnostic is disabled ; Percent bcs.s loc_52F3C clr.l d3 move.w (word_FFFFB298).w,d3 moveq #$28,d2 ; '(' divu.w d2,d3 cmp.b (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_VAC_LOW_THRESH).l,d3 ; Amount of engine vacuum below which the output speed low diagnostic is disabled ; KPA bcs.s loc_52F3C clr.l d3 move.w (word_FFFFB298).w,d3 divu.w #$28,d3 ; '(' cmp.b (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_VAC_HIGH_THRESH).l,d3 ; Amount of engine vacuum above which the output speed low diagnostic is disabled ; KPA bcc.s loc_52F3C move.w (word_FFFF95C0).w,d3 cmp.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_ETORQUE_LOW).l,d3 ; Amount of engine torque below which the output speed low diagnostic is disabled ; Ft_lb bls.s loc_52F3C move.w (word_FFFF95C0).w,d3 cmp.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_ETORQUE_HIGH).l,d3 ; Amount of engine torque above which the output speed low diagnostic is disabled ; Ft_lb bcc.s loc_52F3C tst.b (byte_FFFFAC60).w bne.s loc_52F3C tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_52F30 move.w (word_FFFF95B0).w,d3 cmp.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_IN_SPD_THRESH).l,d3 ; Amount of engine or input speed (depending on the application) below which the output speed low diagnostic is disabled ; RPM bcs.s loc_52F3C btst #6,(byte_FFFF89E2).w bne.s loc_52F3C btst #6,(byte_FFFF89E0).w bne.s loc_52F3C loc_52F2C: ; CODE XREF: sub_52E70+CAj moveq #1,d3 bra.s loc_52F3E ; --------------------------------------------------------------------------- loc_52F30: ; CODE XREF: sub_52E70+9Ej move.w (word_FFFF95B6).w,d3 cmp.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_IN_SPD_THRESH).l,d3 ; Amount of engine or input speed (depending on the application) below which the output speed low diagnostic is disabled ; RPM bcc.s loc_52F2C loc_52F3C: ; CODE XREF: sub_52E70+Aj ; sub_52E70+14j ... clr.b d3 loc_52F3E: ; CODE XREF: sub_52E70+BEj tst.b d3 beq.s loc_52F9C move.w (word_FFFF95A2).w,d0 cmp.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_THRESHOLD_FAIL).l,d0 ; Amount of transmission output shaft speed below which output speed low diagnostic will fail ; RPM bhi.s loc_52F9C btst #1,(byte_FFFF899A).w beq.s loc_52F5E btst #6,(byte_FFFF899A).w bne.s loc_52F9C loc_52F5E: ; CODE XREF: sub_52E70+E4j move.w (word_FFFFB3D2).w,d0 cmp.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_TIME_FAIL).l,d0 ; Amount of time output speed is below the low threshold before the output speed low diagnostic is enabled ; Seconds bcs.s loc_52F7E moveq #$6D,d0 ; 'm' jsr sub_5F110 bclr #5,(byte_FFFFB3CE).w clr.w (word_FFFFB3D0).w bra.s loc_52FA2 ; --------------------------------------------------------------------------- loc_52F7E: ; CODE XREF: sub_52E70+F8j bset #5,(byte_FFFFB3CE).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB3D2).w,d3 add.w $A(a2),d3 bcc.s loc_52F96 move.w #$FFFF,d3 loc_52F96: ; CODE XREF: sub_52E70+120j move.w d3,(word_FFFFB3D2).w bra.s loc_52FA6 ; --------------------------------------------------------------------------- loc_52F9C: ; CODE XREF: sub_52E70+D0j ; sub_52E70+DCj ... bclr #5,(byte_FFFFB3CE).w loc_52FA2: ; CODE XREF: sub_52E70+10Cj clr.w (word_FFFFB3D2).w loc_52FA6: ; CODE XREF: sub_52E70+12Aj tst.b d1 beq.s loc_52FFE btst #6,(byte_FFFF899C).w bne.s loc_52FFE move.w (word_FFFF95A2).w,d0 cmp.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_THRESHOLD_PASS).l,d0 ; Amount of transmission output shaft speed above which output speed low diagnostic will pass ; RPM bcs.s loc_52FFE btst #1,(byte_FFFF899A).w bne.s loc_52FCE btst #5,(byte_FFFF899A).w bne.s loc_52FFE loc_52FCE: ; CODE XREF: sub_52E70+154j move.w (word_FFFFB3D0).w,d0 cmp.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOW_TIME_PASS).l,d0 ; Amount of time output speed is above the low threshold before the output speed low diagnostic is passed ; Seconds bcs.s loc_52FE8 moveq #$6D,d0 ; 'm' jsr sub_5F0BE clr.w (word_FFFFB3D2).w bra.s loc_52FFE ; --------------------------------------------------------------------------- loc_52FE8: ; CODE XREF: sub_52E70+168j movea.l (dword_FFFFB5DE).w,a2 move.l d0,d3 add.w $A(a2),d3 bcc.s loc_52FF8 move.w #$FFFF,d3 loc_52FF8: ; CODE XREF: sub_52E70+182j move.w d3,(word_FFFFB3D0).w bra.s loc_53002 ; --------------------------------------------------------------------------- loc_52FFE: ; CODE XREF: sub_52E70+138j ; sub_52E70+140j ... clr.w (word_FFFFB3D0).w loc_53002: ; CODE XREF: sub_52E70+18Cj movem.l (sp)+,d0-d2 rts ; End of function sub_52E70 ; =============== S U B R O U T I N E ======================================= sub_53008: ; CODE XREF: sub_52E44+6p move.l d0,-(sp) tst.b (byte_1D8D1).l beq.s loc_5307C move.w (word_FFFF95A2).w,d3 sub.w (word_FFFF959E).w,d3 cmp.w (XDTS_OUTPT_SPD_SENSOR_KE_MAX_ALLOWED_POS_OUT_SPD_CHG).l,d3 ; Maximum positive change in output speed over one loop that will still allow the output speed loss test to run ; RPM ble.s loc_5302E clr.b d3 move.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_TEST_DELAY_TIME).l,(word_FFFFB3D8).w ; Amount of time to delay the Output Speed loss test after a Positive output speed spike has occured ; Seconds bra.s loc_5307E ; --------------------------------------------------------------------------- loc_5302E: ; CODE XREF: sub_53008+18j tst.w (word_FFFFB3D8).w bne.s loc_53068 move.w (word_FFFF95F6).w,d3 cmp.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOSS_RANGE_CHG_TIME).l,d3 ; Amount of time since the last change in transmission range status before the output speed loss diagnostic is enabled ; Seconds bcs.s loc_53068 btst #6,(byte_FFFF8A6E).w bne.s loc_53068 btst #1,(byte_FFFF95E2).w beq.s loc_53068 tst.b (TCM_OPTIONS_K_FOUR_WHEEL_DRIVE_AVAILABLE).l ; If TRUE, vehicle has four wheel drive. ; BOOLEAN beq.s loc_53064 move.w (word_FFFF95FA).w,d3 cmp.w (XDTS_OUTPT_SPD_SENSOR_KE_TIME_SINCE_4WDL_STATE_CHANGE).l,d3 ; Enables the diagnostic if the time since the four wheel drive low state change is greater than this calibration. ; Seconds bcs.s loc_5307C loc_53064: ; CODE XREF: sub_53008+4Ej moveq #1,d3 bra.s loc_5307E ; --------------------------------------------------------------------------- loc_53068: ; CODE XREF: sub_53008+2Aj ; sub_53008+36j ... movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB3D8).w,d3 sub.w $A(a2),d3 bcc.s loc_53078 clr.w d3 loc_53078: ; CODE XREF: sub_53008+6Cj move.w d3,(word_FFFFB3D8).w loc_5307C: ; CODE XREF: sub_53008+8j ; sub_53008+5Aj clr.b d3 loc_5307E: ; CODE XREF: sub_53008+24j ; sub_53008+5Ej cmpi.b #4,(byte_FFFF95E9).w bls.s loc_53094 move.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOSS_IN_PN_FAIL).l,d0 ; Change in transmission output shaft speed above which will trigger output speed loss diagnostic in park or neutral ; RPM move.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOSS_TIME_FL_PN).l,d4 bra.s loc_530A0 ; --------------------------------------------------------------------------- loc_53094: ; CODE XREF: sub_53008+7Cj move.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOSS_NOT_PN_FAIL).l,d0 ; Change in transmission output shaft speed above which will trigger output speed loss diagnostic when not in park or neutral ; RPM move.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOSS_TIME_FL_NOTPN).l,d4 loc_530A0: ; CODE XREF: sub_53008+8Aj tst.b d3 beq.w loc_53162 move.w (word_FFFF959E).w,d3 sub.w (word_FFFF95A2).w,d3 cmp.w d0,d3 ble.s loc_530FA btst #1,(byte_FFFF899C).w beq.s loc_530C2 btst #6,(byte_FFFF899C).w bne.s loc_530FA loc_530C2: ; CODE XREF: sub_53008+B0j cmp.w (word_FFFFB3D6).w,d4 bcc.s loc_530DC moveq #$6E,d0 ; 'n' jsr sub_5F110 bclr #6,(byte_FFFFB3CE).w clr.w (word_FFFFB3D4).w bra.s loc_53100 ; --------------------------------------------------------------------------- loc_530DC: ; CODE XREF: sub_53008+BEj bset #6,(byte_FFFFB3CE).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB3D6).w,d3 add.w $A(a2),d3 bcc.s loc_530F4 move.w #$FFFF,d3 loc_530F4: ; CODE XREF: sub_53008+E6j move.w d3,(word_FFFFB3D6).w bra.s loc_53104 ; --------------------------------------------------------------------------- loc_530FA: ; CODE XREF: sub_53008+A8j ; sub_53008+B8j bclr #6,(byte_FFFFB3CE).w loc_53100: ; CODE XREF: sub_53008+D2j clr.w (word_FFFFB3D6).w loc_53104: ; CODE XREF: sub_53008+F0j move.w (word_FFFF95A2).w,d3 move.w (word_FFFF959E).w,d0 sub.w d3,d0 cmp.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOSS_MPH_PASS).l,d0 ; Change in transmission output shaft speed below which the output speed loss diagnostic will be passed ; RPM bgt.s loc_53146 cmp.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOSS_MPH_UNFIL).l,d3 ; Unfiltered output shaft speed above which the output speed loss diagnostic will be passed ; RPM bls.s loc_53146 btst #1,(byte_FFFF899C).w bne.s loc_5312E btst #5,(byte_FFFF899C).w bne.s loc_53146 loc_5312E: ; CODE XREF: sub_53008+11Cj move.w (word_FFFFB3D4).w,d0 cmp.w (XDTS_OUTPT_SPD_SENSOR_KE_OUT_SPD_LOSS_TIME_PASS).l,d0 ; Amount of time the change in output speed must meet the pass conditions before the output speed loss diagnostic is passed ; Seconds bls.s loc_5314C moveq #$6E,d0 ; 'n' jsr sub_5F0BE clr.w (word_FFFFB3D6).w loc_53146: ; CODE XREF: sub_53008+10Cj ; sub_53008+114j ... clr.w (word_FFFFB3D4).w bra.s loc_53170 ; --------------------------------------------------------------------------- loc_5314C: ; CODE XREF: sub_53008+130j movea.l (dword_FFFFB5DE).w,a2 move.l d0,d3 add.w $A(a2),d3 bcc.s loc_5315C move.w #$FFFF,d3 loc_5315C: ; CODE XREF: sub_53008+14Ej move.w d3,(word_FFFFB3D4).w bra.s loc_53170 ; --------------------------------------------------------------------------- loc_53162: ; CODE XREF: sub_53008+9Aj bclr #6,(byte_FFFFB3CE).w clr.w (word_FFFFB3D4).w clr.w (word_FFFFB3D6).w loc_53170: ; CODE XREF: sub_53008+142j ; sub_53008+158j move.l (sp)+,d0 rts ; End of function sub_53008 ; =============== S U B R O U T I N E ======================================= sub_53174: ; CODE XREF: OS1:00028C9Ep bclr #6,(byte_FFFFB3CE).w bclr #5,(byte_FFFFB3CE).w rts ; End of function sub_53174 ; =============== S U B R O U T I N E ======================================= sub_53182: ; CODE XREF: DoLoopE+D6p movem.l d0-d2,-(sp) btst #2,(byte_FFFFB1C2).w beq.s loc_53198 tst.b (XDT_COMMON_KE_DISABLE_DIAG_FOR_PTO).l ; To disable diagnostics when PTO is active, set this to TRUE. ; T/F bne.w loc_53252 loc_53198: ; CODE XREF: sub_53182+Aj tst.b (byte_1D8D3).l beq.w loc_532BE jsr sub_532C4 tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_531B8 jsr sub_537A8 bra.s loc_531BE ; --------------------------------------------------------------------------- loc_531B8: ; CODE XREF: sub_53182+2Cj jsr sub_5341E loc_531BE: ; CODE XREF: sub_53182+34j move.b (byte_FFFFA7B2).w,d3 moveq #2,d1 cmp.b d3,d1 beq.s loc_531E0 cmp.b (byte_FFFFA7A0).w,d1 beq.s loc_531E0 cmp.b (byte_FFFFA7B3).w,d1 beq.s loc_531E0 cmp.b (byte_FFFFA7B4).w,d1 beq.s loc_531E0 cmp.b (byte_FFFFA7A1).w,d1 bne.s loc_53212 loc_531E0: ; CODE XREF: sub_53182+44j ; sub_53182+4Aj ... btst #1,(byte_FFFF8A6E).w beq.s loc_531F0 btst #6,(byte_FFFF8A6E).w bne.s loc_531FA loc_531F0: ; CODE XREF: sub_53182+64j move.w #$D7,d0 ; '?' jsr sub_5F110 loc_531FA: ; CODE XREF: sub_53182+6Cj ; sub_53182+C2j ... clr.b (byte_FFFFA7B2).w clr.b (byte_FFFFA7A0).w clr.b (byte_FFFFA7B3).w clr.b (byte_FFFFA7B4).w clr.b (byte_FFFFA7A1).w bra.w loc_532BE ; --------------------------------------------------------------------------- loc_53212: ; CODE XREF: sub_53182+5Cj moveq #1,d2 cmp.b d3,d2 bne.w loc_532BE cmp.b (byte_FFFFA7A0).w,d2 bne.w loc_532BE cmp.b (byte_FFFFA7B3).w,d2 beq.s loc_53236 cmp.b (byte_FFFFA7B4).w,d2 beq.s loc_53236 cmp.b (byte_FFFFA7A1).w,d2 bne.w loc_532BE loc_53236: ; CODE XREF: sub_53182+A4j ; sub_53182+AAj btst #1,(byte_FFFF8A6E).w bne.s loc_53246 btst #5,(byte_FFFF8A6E).w bne.s loc_531FA loc_53246: ; CODE XREF: sub_53182+BAj move.w #$D7,d0 ; '?' jsr sub_5F0BE bra.s loc_531FA ; --------------------------------------------------------------------------- loc_53252: ; CODE XREF: sub_53182+12j clr.w (word_FFFFA7BE).w clr.w (word_FFFFA7C0).w clr.w (word_FFFFA7C2).w clr.w (word_FFFFA7C4).w clr.w (word_FFFFA7C6).w clr.w (word_FFFFA7C8).w clr.w (word_FFFFA7A8).w clr.w (word_FFFFA7AA).w clr.w (word_FFFFA7A2).w clr.w (word_FFFFA7A4).w clr.w (word_FFFFA7AC).w clr.w (word_FFFFA7AE).w clr.w (word_FFFFA7BC).w clr.w (word_FFFFA7BA).w clr.w (word_FFFFA7A6).w clr.w (word_FFFFA7B0).w bclr #7,(byte_FFFFA7CA).w bclr #6,(byte_FFFFA7CA).w bclr #4,(byte_FFFFA7CA).w bclr #3,(byte_FFFFA7CA).w bclr #2,(byte_FFFFA7CA).w bclr #5,(byte_FFFFA7CA).w clr.b (byte_FFFFA7B2).w clr.b (byte_FFFFA7A0).w loc_532BE: ; CODE XREF: sub_53182+1Cj ; sub_53182+8Cj ... movem.l (sp)+,d0-d2 rts ; End of function sub_53182 ; =============== S U B R O U T I N E ======================================= sub_532C4: ; CODE XREF: sub_53182+20p btst #0,(byte_FFFF95E2).w beq.s loc_53344 move.b (byte_FFFF959D).w,d3 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_LOW).l,d3 ; The low thresholdof Ignition voltage range ; Volts bcs.s loc_53344 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_HIGH).l,d3 ; The high thresholdof Ignition voltage range ; Volts bhi.s loc_53344 btst #1,(byte_FFFF95E7).w beq.s loc_53318 clr.w (word_FFFFA7A4).w move.w (word_FFFFA7A2).w,d3 cmp.w (XDTS_RANGE_KE_ILLEGAL_RANGE_STATUS_TIME).l,d3 ; Amount of time an illegal range status must be seenbefore the diagnostic fault is set ; Seconds bcc.s loc_5330C movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_53306 move.w #$FFFF,d3 loc_53306: ; CODE XREF: sub_532C4+3Cj move.w d3,(word_FFFFA7A2).w bra.s locret_5334C ; --------------------------------------------------------------------------- loc_5330C: ; CODE XREF: sub_532C4+32j move.b #2,(byte_FFFFA7B2).w clr.w (word_FFFFA7A2).w bra.s locret_5334C ; --------------------------------------------------------------------------- loc_53318: ; CODE XREF: sub_532C4+22j clr.w (word_FFFFA7A2).w move.w (word_FFFFA7A4).w,d3 cmp.w (XDTS_RANGE_KE_ILLEGAL_RANGE_STATUS_TIME).l,d3 ; Amount of time an illegal range status must be seenbefore the diagnostic fault is set ; Seconds bcc.s loc_5333C movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_53336 move.w #$FFFF,d3 loc_53336: ; CODE XREF: sub_532C4+6Cj move.w d3,(word_FFFFA7A4).w bra.s locret_5334C ; --------------------------------------------------------------------------- loc_5333C: ; CODE XREF: sub_532C4+62j move.b #1,(byte_FFFFA7B2).w bra.s loc_53348 ; --------------------------------------------------------------------------- loc_53344: ; CODE XREF: sub_532C4+6j ; sub_532C4+12j ... clr.w (word_FFFFA7A2).w loc_53348: ; CODE XREF: sub_532C4+7Ej clr.w (word_FFFFA7A4).w locret_5334C: ; CODE XREF: sub_532C4+46j ; sub_532C4+52j ... rts ; End of function sub_532C4 ; =============== S U B R O U T I N E ======================================= sub_5334E: ; CODE XREF: DoLoopC:loc_2A404p btst #2,(byte_FFFFB1C2).w beq.s loc_53360 tst.b (XDT_COMMON_KE_DISABLE_DIAG_FOR_PTO).l ; To disable diagnostics when PTO is active, set this to TRUE. ; T/F bne.w loc_53414 loc_53360: ; CODE XREF: sub_5334E+6j tst.b (byte_1D8D3).l beq.w loc_53414 btst #6,(byte_FFFF8A6E).w bne.w loc_53414 btst #5,(byte_FFFF8A6E).w bne.w loc_53414 btst #1,(byte_FFFFA7CA).w bne.w loc_53414 btst #0,(byte_FFFFA7CC).w beq.s loc_533CC clr.w (word_FFFFA7BA).w move.w (word_FFFFA7BC).w,d3 cmp.w (XDTS_RANGE_KE_PSM_ENG_SPD_FAIL_TIMER_LIMIT).l,d3 ; Amount of time an illegal PSM state must be seen before diagnostic Fail shall be set ; Seconds bcs.s loc_533B8 clr.w (word_FFFFA7BC).w move.b #2,(byte_FFFFA7A0).w bclr #1,(byte_FFFFA7CC).w bset #1,(byte_FFFFA7CA).w bra.s loc_533D0 ; --------------------------------------------------------------------------- loc_533B8: ; CODE XREF: sub_5334E+50j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_533C6 move.w #$FFFF,d3 loc_533C6: ; CODE XREF: sub_5334E+72j move.w d3,(word_FFFFA7BC).w bra.s loc_533D0 ; --------------------------------------------------------------------------- loc_533CC: ; CODE XREF: sub_5334E+40j clr.w (word_FFFFA7BC).w loc_533D0: ; CODE XREF: sub_5334E+68j ; sub_5334E+7Cj btst #1,(byte_FFFFA7CC).w beq.s loc_53418 clr.w (word_FFFFA7BC).w move.w (word_FFFFA7BA).w,d3 cmp.w (XDTS_RANGE_KE_PSM_ENG_SPD_PASS_TIMER_LIMIT).l,d3 ; Amount of time an illegal PSM state must be seen before diagnostic Pass shall be set ; Seconds bcs.s loc_53400 clr.w (word_FFFFA7BA).w move.b #1,(byte_FFFFA7A0).w bclr #0,(byte_FFFFA7CC).w bset #1,(byte_FFFFA7CA).w bra.s locret_5341C ; --------------------------------------------------------------------------- loc_53400: ; CODE XREF: sub_5334E+98j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_5340E move.w #$FFFF,d3 loc_5340E: ; CODE XREF: sub_5334E+BAj move.w d3,(word_FFFFA7BA).w bra.s locret_5341C ; --------------------------------------------------------------------------- loc_53414: ; CODE XREF: sub_5334E+Ej ; sub_5334E+18j ... clr.w (word_FFFFA7BC).w loc_53418: ; CODE XREF: sub_5334E+88j clr.w (word_FFFFA7BA).w locret_5341C: ; CODE XREF: sub_5334E+B0j ; sub_5334E+C4j rts ; End of function sub_5334E ; =============== S U B R O U T I N E ======================================= sub_5341E: ; CODE XREF: sub_53182:loc_531B8p move.b (byte_FFFF959D).w,d3 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_LOW).l,d3 ; The low thresholdof Ignition voltage range ; Volts bcs.s loc_53432 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_HIGH).l,d3 ; The high thresholdof Ignition voltage range ; Volts bls.s loc_5344A loc_53432: ; CODE XREF: sub_5341E+Aj movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA7D0).w,d3 add.w $A(a2),d3 bcc.s loc_53444 move.w #$FFFF,d3 loc_53444: ; CODE XREF: sub_5341E+20j move.w d3,(word_FFFFA7D0).w bra.s loc_5344E ; --------------------------------------------------------------------------- loc_5344A: ; CODE XREF: sub_5341E+12j clr.w (word_FFFFA7D0).w loc_5344E: ; CODE XREF: sub_5341E+2Aj moveq #3,d4 cmp.b (byte_FFFF95DC).w,d4 bne.w loc_5357C cmpi.b #4,(byte_FFFF95DD).w bne.w loc_5357C move.w (word_FFFF95D6).w,d3 cmp.w (XDTS_RANGE_KE_DIAG_SPEED_RATIO_RANGE_HIGH).l,d3 ; Ratio below which illegal park/neutral test is enabled. ; Ratio bhi.w loc_5357C move.w (word_FFFF95D6).w,d3 cmp.w (XDTS_RANGE_KE_DIAG_SPEED_RATIO_RANGE_LOW).l,d3 ; Ratio above which illegal park/neutral test is enabled. ; Ratio bcs.w loc_5357C btst #6,(byte_FFFF899A).w bne.w loc_5357C btst #6,(byte_FFFF899C).w bne.w loc_5357C btst #6,(byte_FFFF88E4).w bne.w loc_5357C btst #6,(byte_FFFF88E2).w bne.w loc_5357C clr.l d3 move.w (word_FFFFB298).w,d3 moveq #$28,d5 ; '(' divu.w d5,d3 cmp.b (XDTS_RANGE_KE_PSM_FAULT_ENG_VAC_HIGH_THRESH).l,d3 ; High threshold manifold pressure for pressureswitch assembly diagnostic test. ; KPA bhi.w loc_5357C clr.l d3 move.w (word_FFFFB298).w,d3 divu.w #$28,d3 ; '(' cmp.b (XDTS_RANGE_KE_PSM_FAULT_ENG_VAC_LOW_THRESH).l,d3 ; Low threshold manifold pressure for pressureswitch assembly diagnostic test. ; KPA bcs.w loc_5357C move.w (word_FFFF95C0).w,d3 cmp.w (XDTS_RANGE_KE_PSM_FAULT_ENG_TRQ_HIGH_THRESH).l,d3 ; High threshold engine torque for pressureswitch assembly diagnostic test. ; Ft_lb bhi.w loc_5357C move.w (word_FFFF95C0).w,d3 cmp.w (XDTS_RANGE_KE_PSM_FAULT_ENG_TRQ_LOW_THRESH).l,d3 ; Low threshold engine torque for pressureswitch assembly diagnostic test. ; Ft_lb bcs.w loc_5357C move.w (word_FFFF9582).w,d3 cmp.w (XDTS_RANGE_KE_PSM_FAULT_TPS_HIGH_THRESH).l,d3 ; High threshold throttle position for pressureswitch assembly diagnostic test. ; Percent bhi.w loc_5357C move.w (word_FFFF9582).w,d3 cmp.w (XDTS_RANGE_KE_PSM_FAULT_TPS_LOW_THRESH).l,d3 ; Low threshold throttle position for pressureswitch assembly diagnostic test. ; Percent bcs.s loc_5357C move.w (word_FFFFA7D0).w,d3 cmp.w (XDTS_RANGE_KE_PSM_NOISS_VOLT_FAULT_TIME).l,d3 bcc.s loc_5357C move.b (byte_FFFFA3B2).w,d3 cmpi.b #6,d3 beq.s loc_53520 cmpi.b #5,d3 bne.s loc_5354C loc_53520: ; CODE XREF: sub_5341E+FAj clr.w (word_FFFFA7AA).w move.w (word_FFFFA7A8).w,d3 cmp.w (XDTS_RANGE_KE_ILLEGAL_P_N_FAIL_TIME).l,d3 ; Amount of time an illegal PSA state must be seen before the diagnostic fault is set ; Seconds bcc.s loc_53544 movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_5353E move.w #$FFFF,d3 loc_5353E: ; CODE XREF: sub_5341E+11Aj move.w d3,(word_FFFFA7A8).w bra.s locret_53584 ; --------------------------------------------------------------------------- loc_53544: ; CODE XREF: sub_5341E+110j move.b #2,(byte_FFFFA7B3).w bra.s locret_53584 ; --------------------------------------------------------------------------- loc_5354C: ; CODE XREF: sub_5341E+100j cmp.b d3,d4 bne.s loc_5357C clr.w (word_FFFFA7A8).w move.w (word_FFFFA7AA).w,d3 cmp.w (XDTS_RANGE_KE_ILLEGAL_P_N_PASS_TIME).l,d3 ; Amount of time an legal PSA state must be seen before the diagnostic pass is set ; Seconds bcc.s loc_53574 movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_5356E move.w #$FFFF,d3 loc_5356E: ; CODE XREF: sub_5341E+14Aj move.w d3,(word_FFFFA7AA).w bra.s locret_53584 ; --------------------------------------------------------------------------- loc_53574: ; CODE XREF: sub_5341E+140j move.b #1,(byte_FFFFA7B3).w bra.s locret_53584 ; --------------------------------------------------------------------------- loc_5357C: ; CODE XREF: sub_5341E+36j ; sub_5341E+40j ... clr.w (word_FFFFA7AA).w clr.w (word_FFFFA7A8).w locret_53584: ; CODE XREF: sub_5341E+124j ; sub_5341E+12Cj ... rts ; End of function sub_5341E ; =============== S U B R O U T I N E ======================================= sub_53586: ; CODE XREF: DoLoopC+176p move.b (byte_FFFF959D).w,d3 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_LOW).l,d3 ; The low thresholdof Ignition voltage range ; Volts bcs.s loc_5359A cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_HIGH).l,d3 ; The high thresholdof Ignition voltage range ; Volts bls.s loc_535B2 loc_5359A: ; CODE XREF: sub_53586+Aj movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA7DA).w,d3 add.w $A(a2),d3 bcc.s loc_535AC move.w #$FFFF,d3 loc_535AC: ; CODE XREF: sub_53586+20j move.w d3,(word_FFFFA7DA).w bra.s loc_535B6 ; --------------------------------------------------------------------------- loc_535B2: ; CODE XREF: sub_53586+12j clr.w (word_FFFFA7DA).w loc_535B6: ; CODE XREF: sub_53586+2Aj btst #1,(byte_FFFFA7CA).w bne.w locret_537A6 tst.b (byte_1D8D3).l beq.w loc_5376E btst #6,(byte_FFFF8A6E).w bne.w loc_5376E btst #5,(byte_FFFF8A6E).w bne.w loc_5376E move.w (word_FFFFA7DA).w,d3 cmp.w (XDTS_RANGE_KE_DIAG_PSA_SYS_VOLT_TIME).l,d3 ; If ignition voltage is out of range for a time greater than this, do not test Pressure Switch Assembly Engine Speed Transition. ; Seconds bcc.w loc_5376E btst #6,(byte_FFFF899A).w bne.w loc_5376E btst #6,(byte_FFFF899C).w bne.w loc_5376E btst #2,(byte_FFFFB1C2).w beq.s loc_53612 tst.b (XDT_COMMON_KE_DISABLE_DIAG_FOR_PTO).l ; To disable diagnostics when PTO is active, set this to TRUE. ; T/F bne.w loc_5376E loc_53612: ; CODE XREF: sub_53586+80j move.w (word_FFFF95DA).w,d3 cmp.w (XDTS_RANGE_KE_PSM_FAULT_MPH_THRESH).l,d3 ; Vehicle speed threshold below which illegal drive_2 test is enabled. ; MPH bcc.w loc_5376E move.w (word_FFFF95B6).w,d3 cmp.w (XDTS_RANGE_KE_PSM_FAULT_ENG_SPD_LOW_THRESH).l,d3 ; Engine speed low threshold above which illegal drive_2 test is enabled. ; RPM bcc.s loc_53662 btst #7,(byte_FFFFA7CC).w bne.w loc_53760 move.w (word_FFFFA7B8).w,d3 cmp.w (XDTS_RANGE_KE_PSM_FAULT_ENG_SPD_LOW_TIME).l,d3 ; A timer limit for Engine_Speed to be below a threshold. Is used by the PSM diagnostic for the illegal drive2 determination. ; Seconds bcs.s loc_5364C bset #6,(byte_FFFFA7CC).w bra.w loc_53766 ; --------------------------------------------------------------------------- loc_5364C: ; CODE XREF: sub_53586+BAj movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_5365A move.w #$FFFF,d3 loc_5365A: ; CODE XREF: sub_53586+CEj move.w d3,(word_FFFFA7B8).w bra.w loc_53766 ; --------------------------------------------------------------------------- loc_53662: ; CODE XREF: sub_53586+A4j move.w (XDTS_RANGE_KE_PSM_FAULT_ENG_SPD_HIGH_THRESH).l,d4 ; Engine speed high threshold below which illegal drive_2 test is enabled. ; RPM cmp.w d4,d3 bhi.s loc_536E2 btst #6,(byte_FFFFA7CC).w beq.s loc_536E2 bset #7,(byte_FFFFA7CC).w btst #5,(byte_FFFFA7CC).w bne.w loc_53760 move.b (byte_FFFF95E9).w,d3 cmpi.b #3,d3 beq.s loc_5369A cmpi.b #1,d3 beq.s loc_5369A cmpi.b #4,d3 bne.s loc_536AA loc_5369A: ; CODE XREF: sub_53586+106j ; sub_53586+10Cj btst #3,(byte_FFFFA7CC).w bne.s loc_536AA bset #2,(byte_FFFFA7CC).w bra.s loc_536B6 ; --------------------------------------------------------------------------- loc_536AA: ; CODE XREF: sub_53586+112j ; sub_53586+11Aj bclr #2,(byte_FFFFA7CC).w bset #3,(byte_FFFFA7CC).w loc_536B6: ; CODE XREF: sub_53586+122j move.w (word_FFFFA7B6).w,d3 cmp.w (XDTS_RANGE_KE_PSM_FAULT_ENG_SPD_MED_TIME).l,d3 ; A timer limit for Engine_Speed to be between two thresholds Is used by the PSM diagnostic for the illegal drive2 determination. ; Seconds bcs.s loc_536CC bset #4,(byte_FFFFA7CC).w bra.w loc_53766 ; --------------------------------------------------------------------------- loc_536CC: ; CODE XREF: sub_53586+13Aj movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_536DA move.w #$FFFF,d3 loc_536DA: ; CODE XREF: sub_53586+14Ej move.w d3,(word_FFFFA7B6).w bra.w loc_53766 ; --------------------------------------------------------------------------- loc_536E2: ; CODE XREF: sub_53586+E4j ; sub_53586+ECj cmp.w d4,d3 bls.s loc_53760 btst #4,(byte_FFFFA7CC).w beq.s loc_53760 tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_53712 move.w (word_FFFF95B0).w,d3 cmp.w (XDTS_RANGE_KE_PSM_FAULT_INPUT_SPD_THRESH).l,d3 ; Input speed threshold above which illegal drive_2 test is enabled. ; RPM bcc.s loc_53712 btst #5,(byte_FFFFA7CC).w beq.s loc_53718 bset #1,(byte_FFFFA7CA).w bra.s loc_53718 ; --------------------------------------------------------------------------- loc_53712: ; CODE XREF: sub_53586+16Ej ; sub_53586+17Aj bset #5,(byte_FFFFA7CC).w loc_53718: ; CODE XREF: sub_53586+182j ; sub_53586+18Aj btst #5,(byte_FFFFA7CC).w beq.s loc_53766 move.b (byte_FFFF95E9).w,d3 moveq #4,d4 cmp.b d3,d4 bcc.s loc_53738 bset #1,(byte_FFFFA7CC).w bclr #0,(byte_FFFFA7CC).w bra.s loc_53766 ; --------------------------------------------------------------------------- loc_53738: ; CODE XREF: sub_53586+1A2j cmpi.b #3,d3 beq.s loc_53748 cmpi.b #1,d3 beq.s loc_53748 cmp.b d3,d4 bne.s loc_53760 loc_53748: ; CODE XREF: sub_53586+1B6j ; sub_53586+1BCj btst #2,(byte_FFFFA7CC).w beq.s loc_53760 btst #1,(byte_FFFFA7CC).w bne.s loc_53760 bset #0,(byte_FFFFA7CC).w bra.s loc_53766 ; --------------------------------------------------------------------------- loc_53760: ; CODE XREF: sub_53586+ACj ; sub_53586+FAj ... bset #1,(byte_FFFFA7CA).w loc_53766: ; CODE XREF: sub_53586+C2j ; sub_53586+D8j ... btst #1,(byte_FFFFA7CA).w beq.s locret_537A6 loc_5376E: ; CODE XREF: sub_53586+40j ; sub_53586+4Aj ... bclr #7,(byte_FFFFA7CC).w bclr #6,(byte_FFFFA7CC).w bclr #5,(byte_FFFFA7CC).w bclr #4,(byte_FFFFA7CC).w bclr #3,(byte_FFFFA7CC).w bclr #2,(byte_FFFFA7CC).w bclr #1,(byte_FFFFA7CC).w bclr #0,(byte_FFFFA7CC).w clr.w (word_FFFFA7B8).w clr.w (word_FFFFA7B6).w locret_537A6: ; CODE XREF: sub_53586+36j ; sub_53586+1E6j rts ; End of function sub_53586 ; =============== S U B R O U T I N E ======================================= sub_537A8: ; CODE XREF: sub_53182+2Ep move.l d0,-(sp) move.b (byte_FFFF959D).w,d3 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_LOW).l,d3 ; The low thresholdof Ignition voltage range ; Volts bcs.s loc_537BE cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_HIGH).l,d3 ; The high thresholdof Ignition voltage range ; Volts bls.s loc_537D6 loc_537BE: ; CODE XREF: sub_537A8+Cj movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA7D2).w,d3 add.w $A(a2),d3 bcc.s loc_537D0 move.w #$FFFF,d3 loc_537D0: ; CODE XREF: sub_537A8+22j move.w d3,(word_FFFFA7D2).w bra.s loc_537DA ; --------------------------------------------------------------------------- loc_537D6: ; CODE XREF: sub_537A8+14j clr.w (word_FFFFA7D2).w loc_537DA: ; CODE XREF: sub_537A8+2Cj btst #6,(byte_FFFF899C).w bne.w loc_538E6 btst #6,(byte_FFFF899A).w bne.w loc_538E6 btst #6,(byte_FFFF88E4).w bne.w loc_538E6 btst #6,(byte_FFFF88E2).w bne.w loc_538E6 btst #6,(byte_FFFF8A6E).w bne.w loc_538E6 btst #6,(byte_FFFF89F6).w bne.w loc_538E6 btst #6,(byte_FFFF89FC).w bne.w loc_538E6 btst #6,(byte_FFFF89F2).w bne.w loc_538E6 btst #6,(byte_FFFF89F4).w bne.w loc_538E6 btst #6,(byte_FFFF89F8).w bne.w loc_538E6 btst #6,(byte_FFFF89FA).w bne.w loc_538E6 move.w (word_FFFF95DA).w,d3 cmp.w (XDTS_RANGE_KE_PSA_MPH_OUTPUT_SPEED).l,d3 ; Vehicle speed in MPH greater than this valueto enable case three of the pressure switchassembly test ; MPH bcs.w loc_538E6 move.w (word_FFFF9582).w,d3 cmp.w (XDTS_RANGE_KE_PSA_OUT_SPD_THROTTLE_THRESH).l,d3 ; Throttle greater than this valueto enable case three of the pressure switchassembly test ; Percent bls.w loc_538E6 move.w (word_FFFF95C0).w,d3 cmp.w (XDTS_RANGE_KE_PSM_FAULT_ENG_TRQ_HIGH_THRESH).l,d3 ; High threshold engine torque for pressureswitch assembly diagnostic test. ; Ft_lb bhi.s loc_538E6 move.w (word_FFFF95C0).w,d3 cmp.w (XDTS_RANGE_KE_PSM_FAULT_ENG_TRQ_LOW_THRESH).l,d3 ; Low threshold engine torque for pressureswitch assembly diagnostic test. ; Ft_lb bcs.s loc_538E6 clr.l d3 move.w (word_FFFFB298).w,d3 moveq #$28,d0 ; '(' divu.w d0,d3 cmp.b (XDTS_RANGE_KE_PSM_FAULT_ENG_VAC_HIGH_THRESH).l,d3 ; High threshold manifold pressure for pressureswitch assembly diagnostic test. ; KPA bhi.s loc_538E6 clr.l d3 move.w (word_FFFFB298).w,d3 divu.w #$28,d3 ; '(' cmp.b (XDTS_RANGE_KE_PSM_FAULT_ENG_VAC_LOW_THRESH).l,d3 ; Low threshold manifold pressure for pressureswitch assembly diagnostic test. ; KPA bcs.s loc_538E6 btst #0,(byte_FFFF95E2).w beq.s loc_538E6 tst.b (byte_FFFFAC60).w bne.s loc_538E6 move.w (word_FFFFA7D2).w,d4 cmp.w (XDTS_RANGE_KE_PSA_WISS_VOLT_FAULT_TIME).l,d4 ; Pressure switch assembly with input speed sensor will not be tested if ignition voltage is out of range for longer than this. ; Seconds bcc.s loc_538E6 tst.b (TCM_OPTIONS_K_D32_PRESS_BIAS_CONTROL_AVAIL).l ; If TRUE, electronic control of the 3-2 downshift timing is available. ; BOOLEAN beq.s loc_538CA btst #6,(byte_FFFF89FE).w bne.s loc_538E6 loc_538CA: ; CODE XREF: sub_537A8+118j tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_538E2 btst #6,(byte_FFFF89E2).w bne.s loc_538E6 btst #6,(byte_FFFF89E0).w bne.s loc_538E6 loc_538E2: ; CODE XREF: sub_537A8+128j moveq #1,d4 bra.s loc_538E8 ; --------------------------------------------------------------------------- loc_538E6: ; CODE XREF: sub_537A8+38j ; sub_537A8+42j ... clr.b d4 loc_538E8: ; CODE XREF: sub_537A8+13Cj tst.b d4 beq.s loc_53928 tst.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.s loc_53922 tst.w (word_FFFF95B2).w beq.s loc_5391A clr.l d3 move.w (word_FFFF95B0).w,d3 asl.l #8,d3 asl.l #4,d3 divu.w (word_FFFF95B2).w,d3 bvs.s loc_53910 cmpi.w #$7FFF,d3 bls.s loc_53914 loc_53910: ; CODE XREF: sub_537A8+160j move.w #$7FFF,d3 loc_53914: ; CODE XREF: sub_537A8+166j move.w d3,(word_FFFFA7CE).w bra.s loc_53928 ; --------------------------------------------------------------------------- loc_5391A: ; CODE XREF: sub_537A8+150j move.w #$7FFF,(word_FFFFA7CE).w bra.s loc_53928 ; --------------------------------------------------------------------------- loc_53922: ; CODE XREF: sub_537A8+14Aj move.w (word_FFFF95D4).w,(word_FFFFA7CE).w loc_53928: ; CODE XREF: sub_537A8+142j ; sub_537A8+170j ... tst.b d4 beq.w loc_53AF4 moveq #4,d4 cmp.b (byte_FFFF95E9).w,d4 bcc.s loc_5399E move.w (word_FFFF95D4).w,d3 cmp.w (XDTS_RANGE_KE_PSA_RATIO_IN_PARK_NEUTRAL).l,d3 ; Ratio value used to check low or high ratioin park or neutral range. ; NONE bhi.s loc_5396E clr.w (word_FFFFA7BE).w move.w (word_FFFFA7C0).w,d3 cmp.w (XDTS_RANGE_KE_PSA_LW_RAT_PARK_NEUTRAL_TIME).l,d3 ; Amount of Time used to check transmission range inpark or neutral with low gear ratio. ; Seconds bcs.s loc_5395A move.b #2,(byte_FFFFA7B3).w bra.s loc_539A2 ; --------------------------------------------------------------------------- loc_5395A: ; CODE XREF: sub_537A8+1A8j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_53968 move.w #$FFFF,d3 loc_53968: ; CODE XREF: sub_537A8+1BAj move.w d3,(word_FFFFA7C0).w bra.s loc_539A6 ; --------------------------------------------------------------------------- loc_5396E: ; CODE XREF: sub_537A8+198j clr.w (word_FFFFA7C0).w move.w (word_FFFFA7BE).w,d3 cmp.w (XDTS_RANGE_KE_PSA_HGH_RAT_PARK_NEUTRAL_TIME).l,d3 ; Amount of Time used to check transmission range inpark or neutral with hhgh gear ratio. ; Seconds bcs.s loc_5398A move.b #1,(byte_FFFFA7B3).w clr.w (word_FFFFA7BE).w bra.s loc_539A6 ; --------------------------------------------------------------------------- loc_5398A: ; CODE XREF: sub_537A8+1D4j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_53998 move.w #$FFFF,d3 loc_53998: ; CODE XREF: sub_537A8+1EAj move.w d3,(word_FFFFA7BE).w bra.s loc_539A6 ; --------------------------------------------------------------------------- loc_5399E: ; CODE XREF: sub_537A8+18Cj clr.w (word_FFFFA7BE).w loc_539A2: ; CODE XREF: sub_537A8+1B0j clr.w (word_FFFFA7C0).w loc_539A6: ; CODE XREF: sub_537A8+1C4j ; sub_537A8+1E0j ... cmp.b (byte_FFFF95E9).w,d4 bne.w loc_53A62 move.w (word_FFFFA7CE).w,d3 cmp.w (XDTS_RANGE_KE_PSA_REV_RATIO_1ST_GEAR_LOW).l,d3 ; Lowlimit for 1st gear ratio used in transmissiondrivable range check while in reverse ; NONE bcs.s loc_539C2 cmp.w (XDTS_RANGE_KE_PSA_REV_RATIO_1ST_GEAR_HIGH).l,d3 ; Highlimit for 1st gear ratio used in transmissiondrivable range check while in reverse ; NONE bls.s loc_539F2 loc_539C2: ; CODE XREF: sub_537A8+210j cmp.w (XDTS_RANGE_KE_PSA_REV_RATIO_2ND_GEAR_LOW).l,d3 ; Lowlimit for 2nd gear ratio used in transmissiondrivable range check while in reverse ; NONE bcs.s loc_539D2 cmp.w (XDTS_RANGE_KE_PSA_REV_RATIO_2ND_GEAR_HIGH).l,d3 ; Highlimit for 2nd gear ratio used in transmissiondrivable range check while in reverse ; NONE bls.s loc_539F2 loc_539D2: ; CODE XREF: sub_537A8+220j cmp.w (XDTS_RANGE_KE_PSA_REV_RATIO_3RD_GEAR_LOW).l,d3 ; Lowlimit for 3rd gear ratio used in transmissiondrivable range check while in reverse ; NONE bcs.s loc_539E2 cmp.w (XDTS_RANGE_KE_PSA_REV_RATIO_3RD_GEAR_HIGH).l,d3 ; Highlimit for 3rd gear ratio used in transmissiondrivable range check while in reverse ; NONE bls.s loc_539F2 loc_539E2: ; CODE XREF: sub_537A8+230j cmp.w (XDTS_RANGE_KE_PSA_REV_RATIO_4TH_GEAR_LOW).l,d3 ; Lowlimit for 4th gear ratio used in transmissiondrivable range check while in reverse ; NONE bcs.s loc_53A22 cmp.w (XDTS_RANGE_KE_PSA_REV_RATIO_4TH_GEAR_HIGH).l,d3 ; Highlimit for 4th gear ratio used in transmissiondrivable range check while in reverse ; NONE bhi.s loc_53A22 loc_539F2: ; CODE XREF: sub_537A8+218j ; sub_537A8+228j ... clr.w (word_FFFFA7C4).w move.w (word_FFFFA7C2).w,d3 cmp.w (XDTS_RANGE_KE_PSA_REV_RATIO_FAIL_TIME).l,d3 ; Amount of Time used to check transmission range inreverse with gear ratio either low or high ; Seconds bcs.s loc_53A0E move.b #2,(byte_FFFFA7B4).w clr.w (word_FFFFA7C2).w bra.s loc_53A6A ; --------------------------------------------------------------------------- loc_53A0E: ; CODE XREF: sub_537A8+258j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_53A1C move.w #$FFFF,d3 loc_53A1C: ; CODE XREF: sub_537A8+26Ej move.w d3,(word_FFFFA7C2).w bra.s loc_53A6A ; --------------------------------------------------------------------------- loc_53A22: ; CODE XREF: sub_537A8+240j ; sub_537A8+248j move.w (word_FFFF95D4).w,d3 cmp.w (XDTS_RANGE_KE_PSA_REVERSE_RATIO_LOW).l,d3 ; Low limit gear ratio used in transmissiondrivable range check. ; NONE bls.s loc_53A6A cmp.w (XDTS_RANGE_KE_PSA_REVERSE_RATIO_HIGH).l,d3 ; High limit gear ratio used in transmissiondrivable range check. ; NONE bcc.s loc_53A6A clr.w (word_FFFFA7C2).w move.w (word_FFFFA7C4).w,d3 cmp.w (XDTS_RANGE_KE_PSA_REV_RATIO_PASS_TIME).l,d3 ; Amount of Time used to check transmission range inreverse with gear ratio between low and high ; Seconds bcs.s loc_53A4E move.b #1,(byte_FFFFA7B4).w bra.s loc_53A66 ; --------------------------------------------------------------------------- loc_53A4E: ; CODE XREF: sub_537A8+29Cj movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_53A5C move.w #$FFFF,d3 loc_53A5C: ; CODE XREF: sub_537A8+2AEj move.w d3,(word_FFFFA7C4).w bra.s loc_53A6A ; --------------------------------------------------------------------------- loc_53A62: ; CODE XREF: sub_537A8+202j clr.w (word_FFFFA7C2).w loc_53A66: ; CODE XREF: sub_537A8+2A4j clr.w (word_FFFFA7C4).w loc_53A6A: ; CODE XREF: sub_537A8+264j ; sub_537A8+278j ... cmpi.b #3,(byte_FFFF95E9).w bhi.w loc_53B04 move.w (word_FFFFA7CE).w,d3 cmp.w (XDTS_RANGE_KE_PSA_DRIVE_RANGE_LOW_FAIL).l,d3 ; Low limit gear ratio used in transmissiondrivable range check. ; NONE bcs.s loc_53AB4 cmp.w (XDTS_RANGE_KE_PSA_DRIVE_RANGE_HIGH_FAIL).l,d3 ; High limit gear ratio used in transmissiondrivable range check. ; NONE bhi.s loc_53AB4 clr.w (word_FFFFA7C6).w move.w (word_FFFFA7C8).w,d3 cmp.w (XDTS_RANGE_KE_PSA_FAIL_DRIVE_RANGE_TIME).l,d3 ; Amount of Time used to check transmission range inDrive with gear ratio at low or high ; Seconds bcs.s loc_53AA0 move.b #2,(byte_FFFFA7A1).w bra.s loc_53B08 ; --------------------------------------------------------------------------- loc_53AA0: ; CODE XREF: sub_537A8+2EEj movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_53AAE move.w #$FFFF,d3 loc_53AAE: ; CODE XREF: sub_537A8+300j move.w d3,(word_FFFFA7C8).w bra.s loc_53B0C ; --------------------------------------------------------------------------- loc_53AB4: ; CODE XREF: sub_537A8+2D6j ; sub_537A8+2DEj cmp.w (XDTS_RANGE_KE_PSA_DRIVE_RANGE_LOW_PASS).l,d3 ; Low limit gear ratio used in transmissiondrivable range check. ; NONE bcs.s loc_53B04 cmp.w (XDTS_RANGE_KE_PSA_DRIVE_RANGE_HIGH_PASS).l,d3 ; Low limit gear ratio used in transmissiondrivable range check. ; NONE bhi.s loc_53B04 clr.w (word_FFFFA7C8).w move.w (word_FFFFA7C6).w,d3 cmp.w (XDTS_RANGE_KE_PSA_PASS_DRIVE_RANGE_TIME).l,d3 ; Amount of Time used to check transmission range inDrive with gear ratio between low and high ; Seconds bcs.s loc_53AE0 move.b #1,(byte_FFFFA7A1).w clr.w (word_FFFFA7C6).w bra.s loc_53B0C ; --------------------------------------------------------------------------- loc_53AE0: ; CODE XREF: sub_537A8+32Aj movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_53AEE move.w #$FFFF,d3 loc_53AEE: ; CODE XREF: sub_537A8+340j move.w d3,(word_FFFFA7C6).w bra.s loc_53B0C ; --------------------------------------------------------------------------- loc_53AF4: ; CODE XREF: sub_537A8+182j clr.w (word_FFFFA7BE).w clr.w (word_FFFFA7C0).w clr.w (word_FFFFA7C2).w clr.w (word_FFFFA7C4).w loc_53B04: ; CODE XREF: sub_537A8+2C8j ; sub_537A8+312j ... clr.w (word_FFFFA7C6).w loc_53B08: ; CODE XREF: sub_537A8+2F6j clr.w (word_FFFFA7C8).w loc_53B0C: ; CODE XREF: sub_537A8+30Aj ; sub_537A8+336j ... move.l (sp)+,d0 rts ; End of function sub_537A8 ; =============== S U B R O U T I N E ======================================= sub_53B10: ; CODE XREF: DoLoopE+DCp movem.l d0-d2/d6,-(sp) btst #4,(byte_FFFFA7CD).w beq.w loc_53BD6 move.b (byte_FFFF8D3A).w,d1 add.b (byte_FFFF8D3B).w,d1 bcc.s loc_53B2C move.b #$FF,d1 loc_53B2C: ; CODE XREF: sub_53B10+16j clr.w d2 move.b (XDTS_RANGE_KE_TOP_RANGE_MULTIPLIER).l,d2 ; Multiplier for the Top Range Counter used in PSA/IMS comparison diagnostic. ; IMS Number clr.w d4 move.b (byte_FFFF8D3C).w,d4 mulu.w d2,d4 cmpi.l #$FF,d4 bls.s loc_53B48 move.b #$FF,d4 loc_53B48: ; CODE XREF: sub_53B10+32j add.b d4,d1 bcc.s loc_53B50 move.b #$FF,d1 loc_53B50: ; CODE XREF: sub_53B10+3Aj move.l (dword_FFFF808E).w,d3 divu.l #$BEBC200,d3 cmpi.b #4,d3 bls.s loc_53B64 moveq #4,d3 loc_53B64: ; CODE XREF: sub_53B10+50j andi.l #$FF,d3 move.w #$C350,d6 divu.w d6,d3 andi.w #$FF,d3 mulu.w d6,d3 andi.w #$FF,d3 andi.w #$FF,d1 mulu.w XDTS_RANGE_KV_PSA_IMS_AGE_FACTOR(d3.w*2),d1 ; Multiplying factor based on engine miles. ; Scaler lsr.l #8,d1 lsr.l #7,d1 cmpi.w #$FF,d1 bls.s loc_53B94 move.b #$FF,d1 loc_53B94: ; CODE XREF: sub_53B10+7Ej move.b (XDTS_RANGE_KE_PSA_IMS_NUMBER).l,d2 ; Comparison for diagnostic P1527 pass or fail. ; IMS Number cmp.b d2,d1 bcs.s loc_53BB8 btst #1,(byte_FFFF8A44).w beq.s loc_53BAE btst #6,(byte_FFFF8A44).w beq.s loc_53BB8 loc_53BAE: ; CODE XREF: sub_53B10+94j move.w #$C2,d0 ; '?' jsr sub_5F110 loc_53BB8: ; CODE XREF: sub_53B10+8Cj ; sub_53B10+9Cj cmp.b d2,d1 bcc.s loc_53BD6 btst #1,(byte_FFFF8A44).w bne.s loc_53BCC btst #5,(byte_FFFF8A44).w bne.s loc_53BD6 loc_53BCC: ; CODE XREF: sub_53B10+B2j move.w #$C2,d0 ; '?' jsr sub_5F0BE loc_53BD6: ; CODE XREF: sub_53B10+Aj ; sub_53B10+AAj ... movem.l (sp)+,d0-d2/d6 rts ; End of function sub_53B10 ; =============== S U B R O U T I N E ======================================= sub_53BDC: ; CODE XREF: DoLoopD+D2p movem.l d0-d1/a0,-(sp) tst.b (byte_1D8D4).l beq.w loc_53D94 btst #7,(byte_FFFF95E3).w beq.w loc_53D94 btst #1,(byte_FFFF95E7).w bne.w loc_53D94 cmpi.b #7,(byte_FFFF95EC).w beq.w loc_53D94 btst #1,(byte_FFFF8A6E).w bne.w loc_53D94 move.b (byte_FFFF959D).w,d3 cmp.b (XDTS_RANGE_KE_DG_IGN_VOLTAGE_LOW_THRSH).l,d3 ; Lower limit for the system voltage for the PSA/IMS comparison diagnostic. ; Volts bls.w loc_53D94 move.b (byte_FFFF959D).w,d3 cmp.b (XDTS_RANGE_KE_DG_IGN_VOLTAGE_HIGH_THRSH).l,d3 ; Upper limit for the system voltage for the PSA/IMS comparison diagnostic. ; Volts bcc.w loc_53D94 bset #4,(byte_FFFFA7CD).w move.b (byte_FFFF95E9).w,d3 cmp.b (byte_FFFF95EA).w,d3 beq.s loc_53C48 clr.w (word_FFFFA7D4).w bset #5,(byte_FFFFA7CD).w loc_53C48: ; CODE XREF: sub_53BDC+60j btst #4,(byte_FFFFA4FD).w beq.s loc_53C64 btst #3,(byte_FFFFA7CD).w bne.s loc_53C6A bset #3,(byte_FFFFA7CD).w clr.w (word_FFFFA7D8).w bra.s loc_53C80 ; --------------------------------------------------------------------------- loc_53C64: ; CODE XREF: sub_53BDC+72j bclr #3,(byte_FFFFA7CD).w loc_53C6A: ; CODE XREF: sub_53BDC+7Aj movea.l (dword_FFFFB5DE).w,a0 move.w (word_FFFFA7D8).w,d3 add.w $A(a0),d3 bcc.s loc_53C7C move.w #$FFFF,d3 loc_53C7C: ; CODE XREF: sub_53BDC+9Aj move.w d3,(word_FFFFA7D8).w loc_53C80: ; CODE XREF: sub_53BDC+86j move.b (byte_FFFF95E9).w,d3 cmp.b (byte_FFFF95EC).w,d3 beq.w loc_53D84 movea.l (dword_FFFFB5DE).w,a0 move.w (word_FFFFA7D4).w,d3 add.w $A(a0),d3 bcc.s loc_53C9E move.w #$FFFF,d3 loc_53C9E: ; CODE XREF: sub_53BDC+BCj move.w d3,(word_FFFFA7D4).w cmp.w (XDTS_RANGE_KE_PSA_F_IMS_ODD_TIME).l,d3 ; Upper limit for the PSA/IMS mismatch time during a garage shift window. ; Seconds bcs.s loc_53CE6 btst #6,(byte_FFFFA7CD).w bne.s loc_53CE6 move.w (word_FFFFA7D8).w,d3 cmp.w (XDTS_RANGE_KE_PSA_IMS_GS_WINDOW_TIME).l,d3 ; Time before and after a new garage shift that constitutes a garage shift window. ; Seconds bhi.s loc_53CE6 move.b (byte_FFFF8D3A).w,d3 addq.b #1,d3 bcc.s loc_53CCA move.b #$FF,d3 loc_53CCA: ; CODE XREF: sub_53BDC+E8j move.b d3,(byte_FFFF8D3A).w movea.l #unk_FF8D3A,a0 moveq #3,d0 jsr sub_2654C move.w d0,(word_FFFF8D3E).w bset #6,(byte_FFFFA7CD).w loc_53CE6: ; CODE XREF: sub_53BDC+CCj ; sub_53BDC+D4j ... moveq #3,d1 cmp.b (byte_FFFF95E9).w,d1 beq.s loc_53CF4 cmp.b (byte_FFFF95EC).w,d1 bne.s loc_53D42 loc_53CF4: ; CODE XREF: sub_53BDC+110j btst #7,(byte_FFFFA7CD).w bne.s loc_53D42 movea.l (dword_FFFFB5DE).w,a0 move.w (word_FFFFA7D6).w,d3 add.w $A(a0),d3 bcc.s loc_53D0E move.w #$FFFF,d3 loc_53D0E: ; CODE XREF: sub_53BDC+12Cj move.w d3,(word_FFFFA7D6).w cmp.w (XDTS_RANGE_KE_PSA_IMS_TOP_RANGE_TIME).l,d3 ; Upper limit for the PSA/IMS mismatch time when one of them indicates Drive 4. ; Seconds bcs.s loc_53D46 move.b (byte_FFFF8D3C).w,d3 addq.b #1,d3 bcc.s loc_53D26 move.b #$FF,d3 loc_53D26: ; CODE XREF: sub_53BDC+144j move.b d3,(byte_FFFF8D3C).w movea.l #unk_FF8D3A,a0 move.l d1,d0 jsr sub_2654C move.w d0,(word_FFFF8D3E).w bset #7,(byte_FFFFA7CD).w loc_53D42: ; CODE XREF: sub_53BDC+116j ; sub_53BDC+11Ej clr.w (word_FFFFA7D6).w loc_53D46: ; CODE XREF: sub_53BDC+13Cj btst #5,(byte_FFFFA7CD).w beq.s loc_53D9A move.w (word_FFFFA7D4).w,d3 cmp.w (XDTS_RANGE_KE_PSA_IMS_GENERAL_TIME).l,d3 ; Upper limit for the PSA/IMS mismatch time. ; Seconds bcs.s loc_53D9A move.b (byte_FFFF8D3B).w,d3 addq.b #1,d3 bcc.s loc_53D66 move.b #$FF,d3 loc_53D66: ; CODE XREF: sub_53BDC+184j move.b d3,(byte_FFFF8D3B).w movea.l #unk_FF8D3A,a0 move.l d1,d0 jsr sub_2654C move.w d0,(word_FFFF8D3E).w bclr #5,(byte_FFFFA7CD).w bra.s loc_53D9A ; --------------------------------------------------------------------------- loc_53D84: ; CODE XREF: sub_53BDC+ACj clr.w (word_FFFFA7D4).w clr.w (word_FFFFA7D6).w bclr #6,(byte_FFFFA7CD).w bra.s loc_53D9A ; --------------------------------------------------------------------------- loc_53D94: ; CODE XREF: sub_53BDC+Aj ; sub_53BDC+14j ... bclr #4,(byte_FFFFA7CD).w loc_53D9A: ; CODE XREF: sub_53BDC+170j ; sub_53BDC+17Cj ... movem.l (sp)+,d0-d1/a0 rts ; End of function sub_53BDC ; =============== S U B R O U T I N E ======================================= sub_53DA0: ; CODE XREF: OS1:00028C8Cp movem.l d0/a0-a1,-(sp) movea.l #unk_FF8D3A,a1 movea.l a1,a0 moveq #3,d0 jsr sub_2654C cmp.w (word_FFFF8D3E).w,d0 beq.s loc_53DD4 clr.b (byte_FFFF8D3A).w clr.b (byte_FFFF8D3B).w clr.b (byte_FFFF8D3C).w movea.l a1,a0 moveq #3,d0 jsr sub_2654C move.w d0,(word_FFFF8D3E).w loc_53DD4: ; CODE XREF: sub_53DA0+18j movem.l (sp)+,d0/a0-a1 rts ; End of function sub_53DA0 ; =============== S U B R O U T I N E ======================================= sub_53DDA: ; CODE XREF: DoLoopE+170p movem.l d0-d1,-(sp) move.b (byte_FFFF95DD).w,d3 beq.s loc_53DEA cmpi.b #3,d3 bne.s loc_53DEE loc_53DEA: ; CODE XREF: sub_53DDA+8j moveq #1,d3 bra.s loc_53DF0 ; --------------------------------------------------------------------------- loc_53DEE: ; CODE XREF: sub_53DDA+Ej clr.b d3 loc_53DF0: ; CODE XREF: sub_53DDA+12j tst.b d3 beq.s loc_53DFA move.b #1,(byte_FFFFB511).w loc_53DFA: ; CODE XREF: sub_53DDA+18j tst.b (byte_1D8DD).l beq.w loc_53F82 btst #0,(byte_FFFF95E2).w beq.w loc_53F82 cmpi.b #4,(byte_FFFF95DD).w bne.w loc_53F82 btst #6,(byte_FFFF8A6E).w bne.w loc_53F82 btst #6,(byte_FFFF8AA6).w bne.w loc_53F82 btst #6,(byte_FFFF89EA).w bne.w loc_53F82 btst #6,(byte_FFFF89EE).w bne.w loc_53F82 btst #6,(byte_FFFF89EC).w bne.w loc_53F82 btst #6,(byte_FFFF8A0E).w bne.w loc_53F82 btst #6,(byte_FFFF89E2).w bne.w loc_53F82 btst #6,(byte_FFFF89E0).w bne.w loc_53F82 move.w (word_FFFF95BC).w,d3 cmp.w (XDTS_TCC_REL_SWCH_KE_TCC_REL_SW_SLIP_LOW).l,d3 ; TCC slip low threshold value to enable TCC stuck off while TCC is being commanded ON.- TCC Release switch circuit malfunction ; RPM_S ble.w loc_53F82 move.w (word_FFFF95BC).w,d3 cmp.w (XDTS_TCC_REL_SWCH_KE_TCC_REL_SW_SLIP_HIGH).l,d3 ; TCC slip high threshold value to enable TCC stuck off while TCC is being commanded ON. ; RPM_S bge.w loc_53F82 move.w (word_FFFF95C0).w,d3 cmp.w (XDTS_TCC_REL_SWCH_KE_TCC_REL_SW_ENGINE_TORQUE_LOW).l,d3 ; Low enable threshold to run rel sw diag for TCC stuck off when commanded on. ; Ft_Lb bls.w loc_53F82 move.w (word_FFFF95C0).w,d3 cmp.w (XDTS_TCC_REL_SWCH_KE_TCC_REL_SW_ENGINE_TORQUE_HIGH).l,d3 ; High enable threshold to run rel sw diag for TCC stuck off when commanded on. ; Ft_Lb bcc.w loc_53F82 move.w (word_FFFFA40A).w,d3 cmp.w (XDTS_TCC_REL_SWCH_KE_TCC_REL_SW_TCC_PRESSURE_LOW).l,d3 ; High threshold to run TCC stuck off when being commanded on - TCC release switch diag. ; PSI bls.w loc_53F82 move.w (word_FFFFA40A).w,d3 cmp.w (XDTS_TCC_REL_SWCH_KE_TCC_REL_SW_TCC_PRESSURE_HIGH).l,d3 ; Low threshold to run TCC stuck off when being commanded on - TCC release switch diag. ; PSI bcc.w loc_53F82 cmpi.b #3,(byte_FFFF95E9).w bne.w loc_53F82 move.b (byte_FFFFA676).w,d3 bne.s loc_53F36 tst.b (byte_FFFFB511).w beq.s loc_53F36 clr.w (word_FFFFB50E).w move.w (word_FFFFB50C).w,d3 cmp.w (XDTS_TCC_REL_SWCH_KE_TCC_REL_SW_DIAG_TIME_FAIL).l,d3 ; Fail time for TCC stuck off while TCC is being commanded ON. ; Seconds bcs.s loc_53F22 clr.w (word_FFFFB50C).w move.b (byte_FFFFB510).w,d3 addq.b #1,d3 bcc.s loc_53EF2 move.b #$FF,d3 loc_53EF2: ; CODE XREF: sub_53DDA+112j move.b d3,(byte_FFFFB510).w cmp.b (XDTS_TCC_REL_SWCH_KE_TCC_REL_FAIL_COUNTER).l,d3 ; TCC Stuck off while being commanded on fail counter - TCC release switch diag. ; Counts bcs.s loc_53F1C clr.b (byte_FFFFB510).w btst #1,(byte_FFFF88C0).w beq.s loc_53F12 btst #6,(byte_FFFF88C0).w bne.s loc_53F8A loc_53F12: ; CODE XREF: sub_53DDA+12Ej clr.w d0 jsr sub_5F110 bra.s loc_53F8A ; --------------------------------------------------------------------------- loc_53F1C: ; CODE XREF: sub_53DDA+122j clr.b (byte_FFFFB511).w bra.s loc_53F8A ; --------------------------------------------------------------------------- loc_53F22: ; CODE XREF: sub_53DDA+106j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_53F30 move.w #$FFFF,d3 loc_53F30: ; CODE XREF: sub_53DDA+150j move.w d3,(word_FFFFB50C).w bra.s loc_53F8A ; --------------------------------------------------------------------------- loc_53F36: ; CODE XREF: sub_53DDA+F0j ; sub_53DDA+F6j tst.b d3 beq.s loc_53F82 clr.w (word_FFFFB50C).w clr.b (byte_FFFFB510).w btst #1,(byte_FFFF88C0).w bne.s loc_53F52 btst #5,(byte_FFFF88C0).w bne.s loc_53F8A loc_53F52: ; CODE XREF: sub_53DDA+16Ej move.w (word_FFFFB50E).w,d0 cmp.w (XDTS_TCC_REL_SWCH_KE_TCC_REL_SW_DIAG_TIME_PASS).l,d0 ; Pass time for TCC stuck off while TCC is being commanded ON. ; Seconds bcs.s loc_53F6C clr.w (word_FFFFB50E).w clr.w d0 jsr sub_5F0BE bra.s loc_53F8A ; --------------------------------------------------------------------------- loc_53F6C: ; CODE XREF: sub_53DDA+182j movea.l (dword_FFFFB5DE).w,a2 move.l d0,d3 add.w $A(a2),d3 bcc.s loc_53F7C move.w #$FFFF,d3 loc_53F7C: ; CODE XREF: sub_53DDA+19Cj move.w d3,(word_FFFFB50E).w bra.s loc_53F8A ; --------------------------------------------------------------------------- loc_53F82: ; CODE XREF: sub_53DDA+26j ; sub_53DDA+30j ... clr.w (word_FFFFB50C).w clr.w (word_FFFFB50E).w loc_53F8A: ; CODE XREF: sub_53DDA+136j ; sub_53DDA+140j ... movem.l (sp)+,d0-d1 rts ; End of function sub_53DDA ; =============== S U B R O U T I N E ======================================= sub_53F90: ; CODE XREF: DoLoopE:loc_2A960p ; sub_842B2+174p move.l d0,-(sp) tst.b (byte_1D8CE).l beq.w loc_54076 move.b (byte_FFFF959D).w,d3 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_LOW).l,d3 ; The low thresholdof Ignition voltage range ; Volts bcs.s loc_53FB0 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_HIGH).l,d3 ; The high thresholdof Ignition voltage range ; Volts bls.s loc_53FC8 loc_53FB0: ; CODE XREF: sub_53F90+16j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB3E2).w,d3 add.w $A(a2),d3 bcc.s loc_53FC2 move.w #$FFFF,d3 loc_53FC2: ; CODE XREF: sub_53F90+2Cj move.w d3,(word_FFFFB3E2).w bra.s loc_53FCC ; --------------------------------------------------------------------------- loc_53FC8: ; CODE XREF: sub_53F90+1Ej clr.w (word_FFFFB3E2).w loc_53FCC: ; CODE XREF: sub_53F90+36j move.b (XDTS_TEMP_KE_TRANS_TEMP_SENSOR_VOLT_HIGH).l,d3 ; High limit for transmission temperature sensor voltage above which the diagnostic fault is set ; A/D Counts move.b (byte_FFFF9599).w,d4 cmp.b d3,d4 bcs.s loc_5402C btst #1,(byte_FFFF89DC).w bne.s loc_5402C btst #1,(byte_FFFF89DE).w beq.s loc_53FF2 btst #6,(byte_FFFF89DE).w bne.s loc_5402C loc_53FF2: ; CODE XREF: sub_53F90+58j move.w (word_FFFFB3E2).w,d0 cmp.w (XDTS_TEMP_KE_TTS_HIGH_VOLT_FAULT_TIME).l,d0 ; Transmission fluid temperature sensor circuit high will not be tested if ignition voltage is out of range for longer than this. ; Seconds bcc.s loc_5402C clr.w (word_FFFFB3DA).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB3DC).w,d3 add.w $A(a2),d3 bcc.s loc_54014 move.w #$FFFF,d3 loc_54014: ; CODE XREF: sub_53F90+7Ej move.w d3,(word_FFFFB3DC).w cmp.w (XDTS_TEMP_KE_TRANS_TEMP_SENSOR_HIGH_TIME).l,d3 ; Amount of time transmission sensor voltage must be above high limit before the diagnostic fault is set ; Seconds bcs.s loc_54076 move.w #$8F,d0 ; '?' jsr sub_5F110 bra.s loc_54072 ; --------------------------------------------------------------------------- loc_5402C: ; CODE XREF: sub_53F90+48j ; sub_53F90+50j ... cmp.b d3,d4 bcc.s loc_5406E btst #1,(byte_FFFF89DE).w bne.s loc_54040 btst #5,(byte_FFFF89DE).w bne.s loc_5406E loc_54040: ; CODE XREF: sub_53F90+A6j clr.w (word_FFFFB3DC).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB3DA).w,d3 add.w $A(a2),d3 bcc.s loc_54056 move.w #$FFFF,d3 loc_54056: ; CODE XREF: sub_53F90+C0j move.w d3,(word_FFFFB3DA).w cmp.w (XDTS_TEMP_KE_TRANS_TEMP_SENSOR_HIGH_TIME).l,d3 ; Amount of time transmission sensor voltage must be above high limit before the diagnostic fault is set ; Seconds bcs.s loc_54076 move.w #$8F,d0 ; '?' jsr sub_5F0BE bra.s loc_54076 ; --------------------------------------------------------------------------- loc_5406E: ; CODE XREF: sub_53F90+9Ej ; sub_53F90+AEj clr.w (word_FFFFB3DA).w loc_54072: ; CODE XREF: sub_53F90+9Aj clr.w (word_FFFFB3DC).w loc_54076: ; CODE XREF: sub_53F90+8j ; sub_53F90+8Ej ... tst.b (T_DG_TYPES_KV_DIAGNOSTIC_TEST_ENABLED).l ; This parameter defines which diagnostics are enabled ; BOOLEAN beq.w loc_5415E move.b (byte_FFFF959D).w,d3 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_LOW).l,d3 ; The low thresholdof Ignition voltage range ; Volts bcs.s loc_54094 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_HIGH).l,d3 ; The high thresholdof Ignition voltage range ; Volts bls.s loc_540AC loc_54094: ; CODE XREF: sub_53F90+FAj movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB3E4).w,d3 add.w $A(a2),d3 bcc.s loc_540A6 move.w #$FFFF,d3 loc_540A6: ; CODE XREF: sub_53F90+110j move.w d3,(word_FFFFB3E4).w bra.s loc_540B0 ; --------------------------------------------------------------------------- loc_540AC: ; CODE XREF: sub_53F90+102j clr.w (word_FFFFB3E4).w loc_540B0: ; CODE XREF: sub_53F90+11Aj move.b (XDTS_TEMP_KE_TRANS_TEMP_SENSOR_VOLTAGE_LOW).l,d3 ; Low limit for transmission temperature sensor voltage below which the diagnostic fault is set ; A/D Counts move.b (byte_FFFF9599).w,d4 cmp.b d3,d4 bhi.s loc_54114 btst #1,(byte_FFFF89DE).w bne.s loc_54114 btst #1,(byte_FFFF89DC).w beq.s loc_540D6 btst #6,(byte_FFFF89DC).w bne.s loc_54114 loc_540D6: ; CODE XREF: sub_53F90+13Cj move.w (word_FFFFB3E4).w,d0 cmp.w (XDTS_TEMP_KE_TTS_LOW_VOLT_FAULT_TIME).l,d0 ; Transmission fluid temperature sensor circuit low will not be tested if ignition voltage is out of range for longer than this. ; Seconds bcc.s loc_54114 clr.w (word_FFFFB3DE).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB3E0).w,d3 add.w $A(a2),d3 bcc.s loc_540F8 move.w #$FFFF,d3 loc_540F8: ; CODE XREF: sub_53F90+162j move.w d3,(word_FFFFB3E0).w cmp.w (XDTS_TEMP_KE_TRANS_TEMP_SENSOR_LOW_TIME).l,d3 ; Amount of time transmission sensor voltage must be below low limit before the diagnostic fault is set ; Seconds bcs.s loc_5415E move.w #$8E,d0 ; '?' jsr sub_5F110 clr.w (word_FFFFB3E0).w bra.s loc_5415E ; --------------------------------------------------------------------------- loc_54114: ; CODE XREF: sub_53F90+12Cj ; sub_53F90+134j ... cmp.b d3,d4 bls.s loc_54156 btst #1,(byte_FFFF89DC).w bne.s loc_54128 btst #5,(byte_FFFF89DC).w bne.s loc_54156 loc_54128: ; CODE XREF: sub_53F90+18Ej clr.w (word_FFFFB3E0).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB3DE).w,d3 add.w $A(a2),d3 bcc.s loc_5413E move.w #$FFFF,d3 loc_5413E: ; CODE XREF: sub_53F90+1A8j move.w d3,(word_FFFFB3DE).w cmp.w (XDTS_TEMP_KE_TRANS_TEMP_SENSOR_LOW_TIME).l,d3 ; Amount of time transmission sensor voltage must be below low limit before the diagnostic fault is set ; Seconds bcs.s loc_5415E move.w #$8E,d0 ; '?' jsr sub_5F0BE bra.s loc_5415E ; --------------------------------------------------------------------------- loc_54156: ; CODE XREF: sub_53F90+186j ; sub_53F90+196j clr.w (word_FFFFB3E0).w clr.w (word_FFFFB3DE).w loc_5415E: ; CODE XREF: sub_53F90+ECj ; sub_53F90+172j ... move.l (sp)+,d0 rts ; End of function sub_53F90 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_54162: ; CODE XREF: sub_4DD5C+FE0p var_2 = -2 link a6,#-2 movem.l d2/d6,-(sp) move.b d0,d2 btst #4,(byte_FFFFA7E0).w bne.s loc_5417C btst #3,(byte_FFFFA7E0).w beq.s loc_541C8 loc_5417C: ; CODE XREF: sub_54162+10j btst #3,(byte_FFFFA7E0).w beq.s loc_5419A btst #0,(byte_FFFFA7E4).w beq.s loc_54190 moveq #1,d1 bra.s loc_54192 ; --------------------------------------------------------------------------- loc_54190: ; CODE XREF: sub_54162+28j clr.b d1 loc_54192: ; CODE XREF: sub_54162+2Cj moveq #$24,d0 ; '$' jsr (sub_1122).l loc_5419A: ; CODE XREF: sub_54162+20j btst #4,(byte_FFFFA7E0).w beq.w loc_54228 btst #1,(byte_FFFFA7E4).w sne d3 neg.b d3 move.b (VEH_SYS_KE_PLATFORM).l,d4 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type cmpi.b #3,d4 beq.s loc_54228 cmpi.b #4,d4 beq.s loc_54228 tst.b d3 beq.s loc_5421E loc_541C4: ; CODE XREF: sub_54162+BAj moveq #1,d1 bra.s loc_54220 ; --------------------------------------------------------------------------- loc_541C8: ; CODE XREF: sub_54162+18j move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d3 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type cmpi.b #1,d3 bhi.s loc_54228 beq.s loc_541E4 andi.w #$FF,d1 move.w unk_2164(d1.w*2),var_2(a6) bra.s loc_541F0 ; --------------------------------------------------------------------------- loc_541E4: ; CODE XREF: sub_54162+72j andi.w #$FF,d1 move.w unk_216C(d1.w*2),var_2(a6) loc_541F0: ; CODE XREF: sub_54162+80j move.b var_2(a6),d3 beq.s loc_541FA moveq #1,d1 bra.s loc_541FC ; --------------------------------------------------------------------------- loc_541FA: ; CODE XREF: sub_54162+92j clr.b d1 loc_541FC: ; CODE XREF: sub_54162+96j moveq #$24,d0 ; '$' jsr (sub_1122).l move.b var_2+1(a6),d3 move.b (VEH_SYS_KE_PLATFORM).l,d4 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type cmpi.b #3,d4 beq.s loc_54228 cmpi.b #4,d4 beq.s loc_54228 tst.b d3 bne.s loc_541C4 loc_5421E: ; CODE XREF: sub_54162+60j clr.b d1 loc_54220: ; CODE XREF: sub_54162+64j moveq #$26,d0 ; '&' jsr (sub_1122).l loc_54228: ; CODE XREF: sub_54162+3Ej ; sub_54162+56j ... clr.b d0 jsr sub_4B030 lsl.b #4,d0 andi.b #$30,d0 ; '0' andi.b #$CF,(byte_FFFF95E6).w or.b d0,(byte_FFFF95E6).w moveq #1,d0 jsr sub_4B030 lsl.b #2,d0 andi.b #$C,d0 andi.b #$F3,(byte_FFFF95E6).w or.b d0,(byte_FFFF95E6).w moveq #2,d0 jsr sub_4B030 andi.b #3,d0 andi.b #$FC,(byte_FFFF95E6).w or.b d0,(byte_FFFF95E6).w move.b d2,(byte_FFFF95DC).w movem.l (sp)+,d2/d6 unlk a6 rts ; End of function sub_54162 ; =============== S U B R O U T I N E ======================================= sub_5427A: ; CODE XREF: sub_5436E+8p tst.w (word_FFFF9604).w bne.s loc_54288 move.b #7,(byte_FFFF95EC).w bra.s loc_542A2 ; --------------------------------------------------------------------------- loc_54288: ; CODE XREF: sub_5427A+4j move.b (byte_FFFF9606).w,(byte_FFFF95EC).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9604).w,d3 sub.w $A(a2),d3 bcc.s loc_5429E clr.w d3 loc_5429E: ; CODE XREF: sub_5427A+20j move.w d3,(word_FFFF9604).w loc_542A2: ; CODE XREF: sub_5427A+Cj clr.b (byte_FFFF9607).w btst #1,(byte_FFFF8A7C).w bne.s loc_542C6 btst #6,(byte_FFFF8A7C).w bne.s loc_542C6 cmpi.b #8,(byte_FFFF95EC).w beq.s loc_542C6 cmpi.b #7,(byte_FFFF95EC).w bne.s loc_542CE loc_542C6: ; CODE XREF: sub_5427A+32j ; sub_5427A+3Aj ... move.b #7,(byte_FFFF95EB).w bra.s loc_542D4 ; --------------------------------------------------------------------------- loc_542CE: ; CODE XREF: sub_5427A+4Aj move.b (byte_FFFF95EC).w,(byte_FFFF95EB).w loc_542D4: ; CODE XREF: sub_5427A+52j btst #1,(byte_FFFF8A7C).w bne.s loc_542E4 btst #6,(byte_FFFF8A7C).w beq.s loc_542F4 loc_542E4: ; CODE XREF: sub_5427A+60j move.b (XMSN_IO_KE_IMS_DEFAULTED_DRIVE_RANGE).l,d3 ; Default range used when IMS is requesting failsoft. ; Range move.b d3,(byte_FFFF95ED).w move.b d3,(byte_FFFF9608).w bra.s loc_5433E ; --------------------------------------------------------------------------- loc_542F4: ; CODE XREF: sub_5427A+68j move.b (byte_FFFF95EC).w,d3 cmpi.b #8,d3 beq.s loc_5430E cmpi.b #7,d3 beq.s loc_5430E move.b d3,(byte_FFFF9608).w move.b d3,(byte_FFFF95ED).w bra.s loc_5433E ; --------------------------------------------------------------------------- loc_5430E: ; CODE XREF: sub_5427A+82j ; sub_5427A+88j tst.b (XMSN_IO_KE_IMS_PREDICTIVE_STATE).l ; TRUE if the predictive algorithm is to be used when the IMSstate is Transition or Illegal_Range, FALSE otherwise. ; T/F bne.s loc_54324 move.b (byte_FFFF960A).w,(byte_FFFF9608).w move.b (byte_FFFF9609).w,(byte_FFFF95ED).w bra.s loc_5433E ; --------------------------------------------------------------------------- loc_54324: ; CODE XREF: sub_5427A+9Aj clr.w d3 move.b (byte_FFFF9606).w,d3 move.b byte_1B392(d3.w),(byte_FFFF9608).w move.b byte_1B412(d3.w),(byte_FFFF95ED).w loc_5433E: ; CODE XREF: sub_5427A+78j ; sub_5427A+92j ... move.b (byte_FFFF9608).w,(byte_FFFF960A).w move.b (byte_FFFF95ED).w,(byte_FFFF9609).w rts ; End of function sub_5427A ; =============== S U B R O U T I N E ======================================= sub_5434C: ; CODE XREF: DoLoopB+272p movem.l d0-d2,-(sp) move.w (XMSN_IO_KE_ENG_SPD_FILTER_COEFF).l,d0 ; Filter coefficient for filtering Engine Speed at 6.25 ms for use in Modeled Ratio calculation. ; Coeff move.w (word_FFFF95A8).w,d1 move.w (word_FFFF95B8).w,d2 jsr sub_26608 move.w d0,(word_FFFF95B8).w movem.l (sp)+,d0-d2 rts ; End of function sub_5434C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5436E: ; CODE XREF: DoLoopD+A0p var_6 = -6 var_2 = -2 var_1 = -1 link a6,#-6 movem.l d0-d2/d6-a1/a4,-(sp) jsr sub_5427A move.b (byte_FFFFA3B1).w,var_1(a6) move.b (byte_FFFFA3B4).w,var_2(a6) btst #6,(byte_FFFF8A6E).w beq.s loc_54396 move.b #3,var_1(a6) loc_54396: ; CODE XREF: sub_5436E+20j movea.l (dword_FFFFB5DE).w,a1 move.w (word_FFFF95F6).w,d3 add.w $A(a1),d3 bcc.s loc_543A8 move.w #$FFFF,d3 loc_543A8: ; CODE XREF: sub_5436E+34j move.w d3,(word_FFFF95F6).w move.b (byte_FFFF95E9).w,(byte_FFFF95EA).w move.b (byte_FFFF95E9).w,d3 cmp.b var_1(a6),d3 beq.s loc_543C6 move.b var_1(a6),(byte_FFFF95E9).w clr.w (word_FFFF95F6).w loc_543C6: ; CODE XREF: sub_5436E+4Cj bclr #1,(byte_FFFF95E7).w tst.b var_2(a6) beq.s loc_543D8 bset #1,(byte_FFFF95E7).w loc_543D8: ; CODE XREF: sub_5436E+62j lea var_2(a6),a1 movea.l #unk_FF95F0,a0 jsr sub_4AE3C bclr #0,(byte_FFFF95E7).w tst.b var_2(a6) beq.s loc_543FA bset #0,(byte_FFFF95E7).w loc_543FA: ; CODE XREF: sub_5436E+84j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF95F8).w,d3 add.w $A(a2),d3 bcc.s loc_5440C move.w #$FFFF,d3 loc_5440C: ; CODE XREF: sub_5436E+98j move.w d3,(word_FFFF95F8).w move.b (byte_FFFFAF3A).w,d4 btst #3,(byte_FFFF95E5).w sne d1 neg.b d1 cmp.b d4,d1 bne.s loc_54440 cmp.w (XMSN_IO_KE_BRAKE_DEBOUNCE_TIME).l,d3 ; Amount of time to debounce the brake switch input. ; Seconds bcs.s loc_54444 bclr #7,(byte_FFFF95E2).w btst #3,(byte_FFFF95E5).w beq.s loc_54444 bset #7,(byte_FFFF95E2).w bra.s loc_54444 ; --------------------------------------------------------------------------- loc_54440: ; CODE XREF: sub_5436E+B2j clr.w (word_FFFF95F8).w loc_54444: ; CODE XREF: sub_5436E+BAj ; sub_5436E+C8j ... tst.b d4 beq.s loc_54450 bset #3,(byte_FFFF95E5).w bra.s loc_54456 ; --------------------------------------------------------------------------- loc_54450: ; CODE XREF: sub_5436E+D8j bclr #3,(byte_FFFF95E5).w loc_54456: ; CODE XREF: sub_5436E+E0j bclr #6,(byte_FFFF95E2).w btst #5,(byte_FFFFAD8B).w beq.s loc_5446A bset #6,(byte_FFFF95E2).w loc_5446A: ; CODE XREF: sub_5436E+F4j move.b (byte_FFFFB048).w,d3 btst #2,(byte_FFFF95E5).w sne d1 neg.b d1 cmp.b d3,d1 beq.s loc_54490 tst.b d3 beq.s loc_54488 bset #2,(byte_FFFF95E5).w bra.s loc_544A2 ; --------------------------------------------------------------------------- loc_54488: ; CODE XREF: sub_5436E+110j bclr #2,(byte_FFFF95E5).w bra.s loc_544A2 ; --------------------------------------------------------------------------- loc_54490: ; CODE XREF: sub_5436E+10Cj tst.b d3 beq.s loc_5449C bset #5,(byte_FFFF95E2).w bra.s loc_544A2 ; --------------------------------------------------------------------------- loc_5449C: ; CODE XREF: sub_5436E+124j bclr #5,(byte_FFFF95E2).w loc_544A2: ; CODE XREF: sub_5436E+118j ; sub_5436E+120j ... move.b (TCM_OPTIONS_K_FOUR_WHEEL_DRIVE_AVAILABLE).l,d1 ; If TRUE, vehicle has four wheel drive. ; BOOLEAN beq.w loc_54596 jsr sub_4B5C8 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF95FA).w,d3 add.w $A(a2),d3 bcc.s loc_544C4 move.w #$FFFF,d3 loc_544C4: ; CODE XREF: sub_5436E+150j move.w d3,(word_FFFF95FA).w btst #3,(byte_FFFF95E4).w sne d3 neg.b d3 cmp.b d0,d3 beq.s loc_544EA tst.b d0 beq.s loc_544E2 bset #3,(byte_FFFF95E4).w bra.s loc_5450E ; --------------------------------------------------------------------------- loc_544E2: ; CODE XREF: sub_5436E+16Aj bclr #3,(byte_FFFF95E4).w bra.s loc_5450E ; --------------------------------------------------------------------------- loc_544EA: ; CODE XREF: sub_5436E+166j btst #4,(byte_FFFF95E2).w sne d3 neg.b d3 cmp.b d0,d3 beq.s loc_5450E clr.w (word_FFFF95FA).w tst.b d0 beq.s loc_54508 bset #4,(byte_FFFF95E2).w bra.s loc_5450E ; --------------------------------------------------------------------------- loc_54508: ; CODE XREF: sub_5436E+190j bclr #4,(byte_FFFF95E2).w loc_5450E: ; CODE XREF: sub_5436E+172j ; sub_5436E+17Aj ... move.b (VEH_SYS_KE_DRIVETRAIN_TYPE).l,d3 ; Describes the type of drivetrain used on the vehicle ; Drivetrain_Type moveq #1,d7 cmp.b d3,d7 beq.s loc_54520 cmpi.b #2,d3 bne.s loc_54560 loc_54520: ; CODE XREF: sub_5436E+1AAj tst.b (byte_FFFF90F6).w beq.s loc_54540 move.b (byte_FFFF90FE).w,d3 cmpi.b #3,d3 beq.s loc_5453C cmpi.b #4,d3 beq.s loc_5453C cmpi.b #6,d3 bne.s loc_54560 loc_5453C: ; CODE XREF: sub_5436E+1C0j ; sub_5436E+1C6j move.l d7,d3 bra.s loc_54562 ; --------------------------------------------------------------------------- loc_54540: ; CODE XREF: sub_5436E+1B6j movea.l (off_134C).l,a4 move.l a4,var_6(a6) move.l a4,d2 bne.s loc_54554 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_54554: ; CODE XREF: sub_5436E+1DEj btst #1,2(a4) sne d3 neg.b d3 bra.s loc_54562 ; --------------------------------------------------------------------------- loc_54560: ; CODE XREF: sub_5436E+1B0j ; sub_5436E+1CCj clr.b d3 loc_54562: ; CODE XREF: sub_5436E+1D0j ; sub_5436E+1F0j btst #2,(byte_FFFF95E4).w sne d4 neg.b d4 cmp.b d3,d4 beq.s loc_54584 tst.b d3 beq.s loc_5457C bset #2,(byte_FFFF95E4).w bra.s loc_54596 ; --------------------------------------------------------------------------- loc_5457C: ; CODE XREF: sub_5436E+204j bclr #2,(byte_FFFF95E4).w bra.s loc_54596 ; --------------------------------------------------------------------------- loc_54584: ; CODE XREF: sub_5436E+200j tst.b d3 beq.s loc_54590 bset #3,(byte_FFFF95E2).w bra.s loc_54596 ; --------------------------------------------------------------------------- loc_54590: ; CODE XREF: sub_5436E+218j bclr #3,(byte_FFFF95E2).w loc_54596: ; CODE XREF: sub_5436E+13Aj ; sub_5436E+20Cj ... clr.l d3 move.w (word_FFFFB292).w,d3 moveq #$28,d7 ; '(' divu.w d7,d3 move.b d3,(byte_FFFF958F).w clr.l d3 move.w (word_FFFF82D2).w,d3 divu.w d7,d3 move.b d3,(byte_FFFF958E).w clr.w d4 moveq #$55,d2 ; 'U' cmp.b d3,d2 bls.s loc_545BC move.l d4,d3 bra.s loc_545DA ; --------------------------------------------------------------------------- loc_545BC: ; CODE XREF: sub_5436E+248j cmpi.b #$79,d3 ; 'y' bcc.s loc_545D6 sub.b d2,d3 andi.w #$FF,d3 asl.w #8,d3 andi.l #$FFFF,d3 divu.w #9,d3 bra.s loc_545DA ; --------------------------------------------------------------------------- loc_545D6: ; CODE XREF: sub_5436E+252j move.w #$400,d3 loc_545DA: ; CODE XREF: sub_5436E+24Cj ; sub_5436E+266j tblu.b (X_LIBRARY_KV_ALTITUDE_FACTOR).l,d3 ; Shift point altitude compensation gain factor ; Factor 0-1 move.b d3,(byte_FFFF95FD).w move.w (word_FFFFB4A2).w,d3 moveq #5,d6 mulu.w d6,d3 lsr.w #7,d3 move.b d3,(byte_FFFF959D).w tst.b (byte_FFFFB370).w beq.s loc_54602 clr.l d3 move.w (word_FFFF905C).w,d3 bra.s loc_54608 ; --------------------------------------------------------------------------- loc_54602: ; CODE XREF: sub_5436E+28Aj clr.l d3 move.w (word_FFFFAB66).w,d3 loc_54608: ; CODE XREF: sub_5436E+292j asl.l #5,d3 divu.w d6,d3 cmpi.w #$7FFF,d3 bls.s loc_54616 move.w #$7FFF,d3 loc_54616: ; CODE XREF: sub_5436E+2A2j btst #1,(byte_FFFF88E4).w bne.s loc_5462E btst #1,(byte_FFFF88E2).w bne.s loc_5462E btst #1,(byte_FFFF88E0).w beq.s loc_5465E loc_5462E: ; CODE XREF: sub_5436E+2AEj ; sub_5436E+2B6j tst.b (XMSN_IO_KE_USE_ENGINE_TPS).l ; Determines whether to set default throttle position toa calibrated value or to an undefaulted throttle position. ; T/F bne.s loc_5464A movea.w (XMSN_IO_KE_DEFAULT_THROTTLE_POSITION).l,a2 ; Default throttle to use when throttle is faulted. ; Percent move.w a2,(word_FFFF9582).w move.w a2,(word_FFFF9588).w move.w a2,(word_FFFF962A).w bra.s loc_54656 ; --------------------------------------------------------------------------- loc_5464A: ; CODE XREF: sub_5436E+2C6j move.w d3,(word_FFFF9582).w move.w d3,(word_FFFF9588).w move.w d3,(word_FFFF962A).w loc_54656: ; CODE XREF: sub_5436E+2DAj bset #5,(byte_FFFF95E5).w bra.s loc_546BE ; --------------------------------------------------------------------------- loc_5465E: ; CODE XREF: sub_5436E+2BEj btst #1,(byte_FFFF88E4).w bne.s loc_546B4 btst #1,(byte_FFFF88E2).w bne.s loc_546B4 btst #1,(byte_FFFF88E0).w bne.s loc_546B4 btst #5,(byte_FFFF95E5).w beq.s loc_546B4 tst.b (XMSN_IO_KE_USE_ENGINE_TPS).l ; Determines whether to set default throttle position toa calibrated value or to an undefaulted throttle position. ; T/F bne.s loc_546B4 move.w (XMSN_IO_KE_DEFAULT_THROTTLE_POSITION).l,d4 ; Default throttle to use when throttle is faulted. ; Percent move.l d4,d5 sub.w (XMSN_IO_KE_DEFAULT_THROTTLE_LOW).l,d5 ; Negative delta for throttle recovery. ; Percent cmp.w d3,d5 bgt.s loc_546BE add.w (XMSN_IO_KE_DEFAULT_THROTTLE_HIGH).l,d4 ; Positive delta for throttle recovery. ; Percent cmp.w d3,d4 bcs.s loc_546BE move.w d3,(word_FFFF9582).w move.w (word_FFFFA668).w,(word_FFFF9588).w bclr #5,(byte_FFFF95E5).w bra.s loc_546BE ; --------------------------------------------------------------------------- loc_546B4: ; CODE XREF: sub_5436E+2F6j ; sub_5436E+2FEj ... move.w d3,(word_FFFF9582).w move.w (word_FFFFA668).w,(word_FFFF9588).w loc_546BE: ; CODE XREF: sub_5436E+2EEj ; sub_5436E+328j ... move.w (word_FFFF9582).w,d3 cmp.w (word_FFFF962A).w,d3 bcc.s loc_546D8 move.b #1,(byte_FFFF958A).w move.w (word_FFFF962A).w,d3 sub.w (word_FFFF9582).w,d3 bra.s loc_546E4 ; --------------------------------------------------------------------------- loc_546D8: ; CODE XREF: sub_5436E+358j clr.b (byte_FFFF958A).w move.w (word_FFFF9582).w,d3 sub.w (word_FFFF962A).w,d3 loc_546E4: ; CODE XREF: sub_5436E+368j bcc.s loc_546EA move.w #$7FFF,d3 loc_546EA: ; CODE XREF: sub_5436E:loc_546E4j move.w d3,(word_FFFF9584).w move.w (word_FFFF9582).w,(word_FFFF962A).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF962C).w,d3 add.w $A(a2),d3 bcc.s loc_54706 move.w #$FFFF,d3 loc_54706: ; CODE XREF: sub_5436E+392j move.w d3,(word_FFFF962C).w cmpi.w #$10,d3 bcs.s loc_5472E move.w (word_FFFF9582).w,d3 sub.w (word_FFFF962E).w,d3 move.w d3,(word_FFFF9586).w clr.w (word_FFFF962C).w move.w (word_FFFF9582).w,(word_FFFF962E).w bset #5,(byte_FFFF95E3).w bra.s loc_54734 ; --------------------------------------------------------------------------- loc_5472E: ; CODE XREF: sub_5436E+3A0j bclr #5,(byte_FFFF95E3).w loc_54734: ; CODE XREF: sub_5436E+3BEj tst.b d1 beq.s loc_54750 jsr sub_4B5C8 tst.b d0 beq.s loc_54750 move.w (XMSN_IO_KE_THROT_KICKDN_4WDLOW_HI_THRESH).l,d4 ; Defines the throttle position threshold above which the kickdown (detent) flag will be set to TRUE. ; Percent move.w (XMSN_IO_KE_THROT_KICKDN_4WDLOW_LO_THRESH).l,d3 ; Defines the throttle position threshold below which the kickdown (detent) flag will be set to FALSE. ; Percent bra.s loc_5477A ; --------------------------------------------------------------------------- loc_54750: ; CODE XREF: sub_5436E+3C8j ; sub_5436E+3D2j btst #5,(byte_FFFF95E2).w beq.s loc_5476E btst #7,(byte_FFFFAF98).w bne.s loc_5476E move.w (XMSN_IO_KE_THROT_KICKDN_CRUISE_HI_THRESH).l,d4 ; Defines the throttle position threshold for cruise above which the kickdown (detent) flag will be set to TRUE. ; Percent move.w (XMSN_IO_KE_THROT_KICKDN_CRUISE_LO_THRESH).l,d3 ; Defines the throttle position threshold for cruise below which the kickdown (detent) flag will be set to FALSE. ; Percent bra.s loc_5477A ; --------------------------------------------------------------------------- loc_5476E: ; CODE XREF: sub_5436E+3E8j ; sub_5436E+3F0j move.w (XMSN_IO_KE_THROTTLE_KICKDOWN_HIGH_THRESH).l,d4 ; Enter throttle kickdown when throttle is above this. ; Percent move.w (XMSN_IO_KE_THROTTLE_KICKDOWN_LOW_THRESH).l,d3 ; Exit throttle kickdown when throttle is below this. ; Percent loc_5477A: ; CODE XREF: sub_5436E+3E0j ; sub_5436E+3FEj move.w (word_FFFF9582).w,d5 move.w d5,(word_FFFF958C).w cmp.w d4,d5 bls.s loc_5478E bset #7,(byte_FFFF95E5).w bra.s loc_54798 ; --------------------------------------------------------------------------- loc_5478E: ; CODE XREF: sub_5436E+416j cmp.w d3,d5 bcc.s loc_54798 bclr #7,(byte_FFFF95E5).w loc_54798: ; CODE XREF: sub_5436E+41Ej ; sub_5436E+422j move.w (EngineRPM_PID_000C___).w,d3 moveq #$19,d4 mulu.w d4,d3 lsr.l #5,d3 move.w d3,(word_FFFF95A8).w sub.w (word_FFFF9612).w,d3 move.w d3,(word_FFFF9614).w move.w (word_FFFF95BA).w,d6 move.w (word_FFFF9614).w,d3 ext.l d3 clr.l d0 move.w (XMSN_IO_KE_ENGINE_SPEED_KALMAN_GAIN_1).l,d0 ; Gain used in kalman filter associated with plant speed noise. ; Gain muls.l d3,d0 move.w #$4000,d3 divs.w d3,d0 bvc.s loc_547D2 swap d0 eor.w d3,d0 bra.s loc_547F0 ; --------------------------------------------------------------------------- loc_547D2: ; CODE XREF: sub_5436E+45Cj move.l d6,d5 ext.l d5 movea.l (dword_FFFFB5DE).w,a2 clr.l d3 move.w $A(a2),d3 muls.l d5,d3 move.w #$A0,d1 ; '?' divs.w d1,d3 bvc.s loc_547F4 swap d3 eor.w d1,d3 loc_547F0: ; CODE XREF: sub_5436E+462j bmi.s loc_54810 bra.s loc_5480A ; --------------------------------------------------------------------------- loc_547F4: ; CODE XREF: sub_5436E+47Cj add.w d0,d3 bvs.s loc_547FE add.w (word_FFFF9612).w,d3 bvc.s loc_54802 loc_547FE: ; CODE XREF: sub_5436E+488j bmi.s loc_5480A bra.s loc_54810 ; --------------------------------------------------------------------------- loc_54802: ; CODE XREF: sub_5436E+48Ej cmpi.w #$7FFF,d3 bhi.s loc_54810 bra.s loc_54812 ; --------------------------------------------------------------------------- loc_5480A: ; CODE XREF: sub_5436E+484j ; sub_5436E:loc_547FEj move.w #$7FFF,d3 bra.s loc_54812 ; --------------------------------------------------------------------------- loc_54810: ; CODE XREF: sub_5436E:loc_547F0j ; sub_5436E+492j ... clr.w d3 loc_54812: ; CODE XREF: sub_5436E+49Aj ; sub_5436E+4A0j move.w d3,(word_FFFF9612).w move.w (word_FFFF9614).w,d3 ext.l d3 clr.l d0 move.w (XMSN_IO_KE_ENGINE_SPEED_KALMAN_GAIN_2).l,d0 ; Gain used in kalman filter associated with plant acceleration noise. ; Gain muls.l d3,d0 move.w #$4000,d3 divs.w d3,d0 bvc.s loc_54836 swap d0 eor.w d3,d0 bra.s loc_54856 ; --------------------------------------------------------------------------- loc_54836: ; CODE XREF: sub_5436E+4C0j move.w (word_FFFF9616).w,d1 ext.l d1 movea.l (dword_FFFFB5DE).w,a2 clr.l d3 move.w $A(a2),d3 muls.l d1,d3 move.w #$A0,d1 ; '?' divs.w d1,d3 bvc.s loc_5485A swap d3 eor.w d1,d3 loc_54856: ; CODE XREF: sub_5436E+4C6j bmi.s loc_5486C bra.s loc_54866 ; --------------------------------------------------------------------------- loc_5485A: ; CODE XREF: sub_5436E+4E2j add.w d0,d3 bvs.s loc_54864 add.w (word_FFFF95BA).w,d3 bvc.s loc_54870 loc_54864: ; CODE XREF: sub_5436E+4EEj bpl.s loc_5486C loc_54866: ; CODE XREF: sub_5436E+4EAj move.w #$7FFF,d3 bra.s loc_54870 ; --------------------------------------------------------------------------- loc_5486C: ; CODE XREF: sub_5436E:loc_54856j ; sub_5436E:loc_54864j move.w #$8000,d3 loc_54870: ; CODE XREF: sub_5436E+4F4j ; sub_5436E+4FCj move.w d3,(word_FFFF95BA).w move.w (word_FFFF9614).w,d0 ext.l d0 clr.l d3 move.w (XMSN_IO_KE_ENGINE_SPEED_KALMAN_GAIN_3).l,d3 ; Gain used in kalman filter associated with plant jerk noise. ; Gain muls.l d0,d3 move.w #$4000,d0 divs.w d0,d3 bvc.s loc_54896 swap d3 eor.w d0,d3 bmi.s loc_548A4 bra.s loc_5489E ; --------------------------------------------------------------------------- loc_54896: ; CODE XREF: sub_5436E+51Ej add.w (word_FFFF9616).w,d3 bvc.s loc_548A8 bpl.s loc_548A4 loc_5489E: ; CODE XREF: sub_5436E+526j move.w #$7FFF,d3 bra.s loc_548A8 ; --------------------------------------------------------------------------- loc_548A4: ; CODE XREF: sub_5436E+524j ; sub_5436E+52Ej move.w #$8000,d3 loc_548A8: ; CODE XREF: sub_5436E+52Cj ; sub_5436E+534j move.w d3,(word_FFFF9616).w move.w (XMSN_IO_KE_ENGINE_SPEED_FILTER_COEFF).l,d0 ; Filter Coefficient for filtering engine speed. ; Coeff move.w (word_FFFF95A8).w,d1 move.w (word_FFFF95B6).w,d2 jsr sub_26608 move.w d0,(word_FFFF95B6).w cmp.w (XMSN_IO_KE_ENGINE_RUNNING_ENG_SPD_THRESH).l,d0 ; Speed threshold above which engine is considered running. ; RPM bls.s loc_548D4 bset #1,(byte_FFFF95E2).w bra.s loc_548DA ; --------------------------------------------------------------------------- loc_548D4: ; CODE XREF: sub_5436E+55Cj bclr #1,(byte_FFFF95E2).w loc_548DA: ; CODE XREF: sub_5436E+564j cmp.w (word_FFFF95BA).w,d6 bgt.s loc_548E8 bset #4,(byte_FFFF95E3).w bra.s loc_548EE ; --------------------------------------------------------------------------- loc_548E8: ; CODE XREF: sub_5436E+570j bclr #4,(byte_FFFF95E3).w loc_548EE: ; CODE XREF: sub_5436E+578j move.w (word_FFFFA3C0).w,d3 moveq #$19,d2 mulu.w d2,d3 lsr.l #5,d3 move.w d3,(word_FFFF95A2).w move.w (word_FFFFA3BE).w,d3 mulu.w d2,d3 lsr.l #5,d3 cmpi.w #$7FFF,d3 bls.s loc_5490E move.w #$7FFF,d3 loc_5490E: ; CODE XREF: sub_5436E+59Aj move.w d3,(word_FFFF95B4).w move.w (word_FFFFB4A2).w,d3 moveq #5,d1 mulu.w d1,d3 lsr.w #7,d3 cmp.b (TCM_IO_INTERFACE_KE_TRANS_DIAG_SYSTEM_VOLT_LOW).l,d3 ; System voltage below which transmission diagnostics willbe disabled. ; Volts bls.s loc_54942 cmp.b (TCM_IO_INTERFACE_KE_TRANS_DIAG_SYSTEM_VOLT_HIGH).l,d3 ; System voltage above which transmission diagnostics willbe disabled. ; Volts bcc.s loc_54942 btst #2,(byte_FFFFB1C2).w beq.s loc_5493C tst.b (XDT_COMMON_KE_DISABLE_DIAG_FOR_PTO).l ; To disable diagnostics when PTO is active, set this to TRUE. ; T/F bne.s loc_54942 loc_5493C: ; CODE XREF: sub_5436E+5C4j jsr sub_52E44 loc_54942: ; CODE XREF: sub_5436E+5B4j ; sub_5436E+5BCj ... move.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l,d6 ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_5495A btst #6,(byte_FFFF899A).w bne.s loc_5496A btst #6,(byte_FFFF899C).w bne.s loc_5496A loc_5495A: ; CODE XREF: sub_5436E+5DAj tst.b d6 bne.w loc_54A30 btst #6,(byte_FFFF899C).w beq.w loc_54A30 loc_5496A: ; CODE XREF: sub_5436E+5E2j ; sub_5436E+5EAj btst #6,(byte_FFFF8A6E).w beq.s loc_5497A move.b (TCM_OPTIONS_K_DEFAULT_GEAR).l,d4 ; Default hydraulic gear for the transmission. ; Gear bra.s loc_549BE ; --------------------------------------------------------------------------- loc_5497A: ; CODE XREF: sub_5436E+602j tst.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.s loc_549AE cmpi.b #3,(byte_FFFF95DC).w bne.s loc_549AE moveq #4,d5 cmp.b (byte_FFFF95E9).w,d5 seq d0 neg.b d0 asl.b #2,d0 move.b (byte_FFFF95DC).w,d3 bls.s loc_5499E subq.b #1,d3 loc_5499E: ; CODE XREF: sub_5436E+62Cj add.b d3,d0 andi.w #$FF,d0 movea.l off_8A5DC(d0.w*4),a2 bra.s loc_549CA ; --------------------------------------------------------------------------- loc_549AE: ; CODE XREF: sub_5436E+612j ; sub_5436E+61Aj moveq #4,d3 cmp.b (byte_FFFF95E9).w,d3 seq d4 neg.b d4 asl.b #2,d4 add.b (byte_FFFF95DC).w,d4 loc_549BE: ; CODE XREF: sub_5436E+60Aj andi.w #$FF,d4 movea.l off_8A5DC(d4.w*4),a2 loc_549CA: ; CODE XREF: sub_5436E+63Ej move.w (a2),d4 tst.b d6 beq.s loc_54A28 btst #7,(byte_FFFFA8FE).w bne.s loc_549E0 btst #6,(byte_FFFFA8FE).w beq.s loc_549E6 loc_549E0: ; CODE XREF: sub_5436E+668j clr.w (word_FFFF9618).w bra.s loc_549FC ; --------------------------------------------------------------------------- loc_549E6: ; CODE XREF: sub_5436E+670j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9618).w,d3 add.w $A(a2),d3 bcc.s loc_549F8 move.w #$FFFF,d3 loc_549F8: ; CODE XREF: sub_5436E+684j move.w d3,(word_FFFF9618).w loc_549FC: ; CODE XREF: sub_5436E+676j move.w (word_FFFF9618).w,d0 cmp.w (XMSN_IO_KE_OUTPUT_SPEED_FREEZE_TIME).l,d0 ; Freeze output speed for this long after the start of an upshift or downshift if an ISS is present. ; Seconds bcs.s loc_54A20 move.w (word_FFFF95A0).w,(word_FFFF961A).w clr.l d0 move.w (word_FFFF95A6).w,d0 loc_54A14: ; CODE XREF: sub_5436E+6C0j asl.l #8,d0 asl.l #4,d0 divu.w d4,d0 move.w d0,(word_FFFF95A0).w bra.s loc_54A72 ; --------------------------------------------------------------------------- loc_54A20: ; CODE XREF: sub_5436E+698j move.w (word_FFFF961A).w,(word_FFFF95A0).w bra.s loc_54A72 ; --------------------------------------------------------------------------- loc_54A28: ; CODE XREF: sub_5436E+660j clr.l d0 move.w (word_FFFF95A8).w,d0 bra.s loc_54A14 ; --------------------------------------------------------------------------- loc_54A30: ; CODE XREF: sub_5436E+5EEj ; sub_5436E+5F8j btst #7,(byte_FFFFB3CE).w beq.s loc_54A40 move.w (word_FFFF959E).w,(word_FFFF95A0).w bra.s loc_54A72 ; --------------------------------------------------------------------------- loc_54A40: ; CODE XREF: sub_5436E+6C8j move.w (word_FFFFA3C0).w,d4 mulu.w d2,d4 lsr.l #5,d4 move.w d4,(word_FFFF95A0).w move.w (word_FFFFB4A2).w,d3 mulu.w d1,d3 lsr.w #7,d3 cmp.b (TCM_IO_INTERFACE_KE_TRANS_DIAG_SYSTEM_VOLT_LOW).l,d3 ; System voltage below which transmission diagnostics willbe disabled. ; Volts bls.s loc_54A6E cmp.b (TCM_IO_INTERFACE_KE_TRANS_DIAG_SYSTEM_VOLT_HIGH).l,d3 ; System voltage above which transmission diagnostics willbe disabled. ; Volts bcc.s loc_54A6E move.w d4,(word_FFFF961A).w move.w d4,(word_FFFF959E).w bra.s loc_54A72 ; --------------------------------------------------------------------------- loc_54A6E: ; CODE XREF: sub_5436E+6ECj ; sub_5436E+6F4j clr.w (word_FFFF959E).w loc_54A72: ; CODE XREF: sub_5436E+6B0j ; sub_5436E+6B8j ... move.w (XMSN_IO_KE_OUTPUT_SPEED_FILTER_COEFF).l,d0 ; Filter Coefficient for filtering output speed. ; Coeff move.w (word_FFFF95A0).w,d1 move.w (word_FFFF95B2).w,d2 jsr sub_26608 move.w d0,(word_FFFF95B2).w cmpi.b #4,(byte_FFFF95E9).w seq d3 neg.b d3 asl.b #2,d3 add.b (byte_FFFF95DC).w,d3 andi.w #$FF,d3 movea.l off_8A5DC(d3.w*4),a2 clr.l d3 move.w (a2),d3 asl.l #8,d3 asl.l #4,d3 divu.w (XMSN_IO_KE_DRIVE_SPROKET_RATIO).l,d3 ; Turbine shaft and Input shaft interconnect chain ratio. ; Ratio mulu.w (word_FFFF95B2).w,d3 divu.w #$1000,d3 bvs.s loc_54AC4 cmpi.w #$7FFF,d3 bls.s loc_54AC8 loc_54AC4: ; CODE XREF: sub_5436E+74Ej move.w #$7FFF,d3 loc_54AC8: ; CODE XREF: sub_5436E+754j move.w d3,(word_FFFF95AE).w move.w (word_FFFF95A2).w,d3 sub.w (word_FFFF961C).w,d3 muls.w #$A0,d3 ; '?' movea.l (dword_FFFFB5DE).w,a2 clr.l d0 move.w $A(a2),d0 divs.l d0,d3 bvs.s loc_54AF8 cmpi.l #$FFFF8000,d3 blt.s loc_54AFE cmpi.l #$7FFF,d3 ble.s loc_54B02 loc_54AF8: ; CODE XREF: sub_5436E+778j move.w #$7FFF,d3 bra.s loc_54B02 ; --------------------------------------------------------------------------- loc_54AFE: ; CODE XREF: sub_5436E+780j move.w #$8000,d3 loc_54B02: ; CODE XREF: sub_5436E+788j ; sub_5436E+78Ej move.w (XMSN_IO_KE_OUTPUT_ACCEL_FILTER_COEFF).l,d0 ; Filter Coefficient for filtering output acceleration. ; Coeff move.w (word_FFFF95E0).w,d2 move.l d3,d1 jsr loc_26610 move.w d0,(word_FFFF95E0).w move.w (word_FFFF95A2).w,(word_FFFF961C).w cmp.w (XMSN_IO_KE_FAST_DECEL_THRESHOLD).l,d0 ; If output acceleration below this, TCC is turned off. ; RPM_per_Sec bge.s loc_54B2E bset #3,(byte_FFFF95E3).w bra.s loc_54B34 ; --------------------------------------------------------------------------- loc_54B2E: ; CODE XREF: sub_5436E+7B6j bclr #3,(byte_FFFF95E3).w loc_54B34: ; CODE XREF: sub_5436E+7BEj clr.l d1 move.w (word_FFFF95A0).w,d1 asl.l #8,d1 asl.l #8,d1 divu.w (X_SHIFT_KE_VEHICLE_SPEED_RATIO).l,d1 ; Output_Speed / Vehicle_Speed Ratio. ; 60 RPMI bvc.s loc_54B4A move.w #$FFFF,d1 loc_54B4A: ; CODE XREF: sub_5436E+7D6j move.w d1,(word_FFFF961E).w move.w (XMSN_IO_KE_MPH_OUTPUT_SPEED_FILTER_COEFF).l,d0 ; Filter Coefficient for filtering MPH output speed. ; Coeff move.w (word_FFFF95DA).w,d2 jsr sub_26608 move.w d0,(word_FFFF95DA).w tst.b d6 beq.w loc_54C6C move.l #unk_FF95B0,-(sp) movea.l #unk_FF95A6,a1 movea.l #unk_FF95A4,a0 jsr sub_4C30C move.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l,d0 ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.s loc_54BE8 move.b (byte_FFFF95DC).w,d3 cmpi.b #3,d3 beq.s loc_54BD4 btst #3,(byte_FFFFA8FE).w bne.s loc_54BA2 btst #6,(byte_FFFF9BBA).w beq.s loc_54BA8 loc_54BA2: ; CODE XREF: sub_5436E+82Aj cmpi.b #2,d3 beq.s loc_54BD4 loc_54BA8: ; CODE XREF: sub_5436E+832j tst.w (word_FFFF95B2).w bne.s loc_54BB6 move.w #$7FFF,(word_FFFF95D4).w bra.s loc_54BD4 ; --------------------------------------------------------------------------- loc_54BB6: ; CODE XREF: sub_5436E+83Ej clr.l d3 move.w (word_FFFF95B0).w,d3 asl.l #8,d3 asl.l #4,d3 divu.w (word_FFFF95B2).w,d3 bvs.s loc_54BCC cmpi.w #$7FFF,d3 bls.s loc_54BD0 loc_54BCC: ; CODE XREF: sub_5436E+856j move.w #$7FFF,d3 loc_54BD0: ; CODE XREF: sub_5436E+85Cj move.w d3,(word_FFFF95D4).w loc_54BD4: ; CODE XREF: sub_5436E+822j ; sub_5436E+838j ... jsr sub_4D13A movea.l #unk_FF95D4,a0 jsr sub_4CFF8 bra.s loc_54C14 ; --------------------------------------------------------------------------- loc_54BE8: ; CODE XREF: sub_5436E+818j tst.w (word_FFFF95B2).w bne.s loc_54BF6 move.w #$7FFF,(word_FFFF95D4).w bra.s loc_54C14 ; --------------------------------------------------------------------------- loc_54BF6: ; CODE XREF: sub_5436E+87Ej clr.l d3 move.w (word_FFFF95B0).w,d3 asl.l #8,d3 asl.l #4,d3 divu.w (word_FFFF95B2).w,d3 bvs.s loc_54C0C cmpi.w #$7FFF,d3 bls.s loc_54C10 loc_54C0C: ; CODE XREF: sub_5436E+896j move.w #$7FFF,d3 loc_54C10: ; CODE XREF: sub_5436E+89Cj move.w d3,(word_FFFF95D4).w loc_54C14: ; CODE XREF: sub_5436E+878j ; sub_5436E+886j tst.b d0 beq.s loc_54C2C cmpi.b #3,(byte_FFFF95DC).w bne.s loc_54C2C move.w (word_FFFF95B0).w,d3 movea.l (off_8A5E4).l,a2 bra.s loc_54C4C ; --------------------------------------------------------------------------- loc_54C2C: ; CODE XREF: sub_5436E+8A8j ; sub_5436E+8B0j move.w (word_FFFF95B0).w,d3 cmpi.b #4,(byte_FFFF95E9).w seq d5 neg.b d5 asl.b #2,d5 add.b (byte_FFFF95DC).w,d5 andi.w #$FF,d5 movea.l off_8A5DC(d5.w*4),a2 loc_54C4C: ; CODE XREF: sub_5436E+8BCj move.w (word_FFFF95B2).w,d5 mulu.w (a2),d5 move.w #$1000,d6 divu.w d6,d5 bvs.s loc_54C60 cmpi.w #$7FFF,d5 bls.s loc_54C64 loc_54C60: ; CODE XREF: sub_5436E+8EAj move.w #$7FFF,d5 loc_54C64: ; CODE XREF: sub_5436E+8F0j sub.w d5,d3 move.w d3,(word_FFFF95BE).w bra.s loc_54CB2 ; --------------------------------------------------------------------------- loc_54C6C: ; CODE XREF: sub_5436E+7F6j jsr sub_4D13A movea.l #unk_FF95D4,a0 jsr sub_4CFF8 move.w (word_FFFF95A0).w,d3 mulu.w (word_FFFF95D4).w,d3 move.w #$1000,d6 divu.w d6,d3 bvs.s loc_54C94 cmpi.w #$7FFF,d3 bls.s loc_54C98 loc_54C94: ; CODE XREF: sub_5436E+91Ej move.w #$7FFF,d3 loc_54C98: ; CODE XREF: sub_5436E+924j move.w d3,(word_FFFF95A6).w move.w (X_INP_SPEED_KE_INPUT_SPEED_FILTER_COEFF).l,d0 ; Filter Coefficient for filtering input speed. ; Coeff move.w (word_FFFF95B0).w,d2 move.l d3,d1 jsr sub_26608 move.w d0,(word_FFFF95B0).w loc_54CB2: ; CODE XREF: sub_5436E+8FCj tst.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.s loc_54CE4 move.b (byte_FFFF95DC).w,d3 cmpi.b #3,d3 beq.s loc_54CD2 btst #3,(byte_FFFFA8FE).w beq.s loc_54CE4 cmpi.b #2,d3 bne.s loc_54CE4 loc_54CD2: ; CODE XREF: sub_5436E+954j move.w (word_FFFF95D4).w,d3 cmp.w d3,d6 bhi.s loc_54CDC move.l d6,d3 loc_54CDC: ; CODE XREF: sub_5436E+96Aj mulu.w (word_FFFF95A6).w,d3 divu.w d6,d3 bra.s loc_54CF4 ; --------------------------------------------------------------------------- loc_54CE4: ; CODE XREF: sub_5436E+94Aj ; sub_5436E+95Cj ... clr.l d3 move.w (word_FFFF95A6).w,d3 asl.l #8,d3 asl.l #4,d3 divu.w (XMSN_IO_KE_DRIVE_SPROKET_RATIO).l,d3 ; Turbine shaft and Input shaft interconnect chain ratio. ; Ratio loc_54CF4: ; CODE XREF: sub_5436E+974j bvs.s loc_54CFC cmpi.w #$7FFF,d3 bls.s loc_54D00 loc_54CFC: ; CODE XREF: sub_5436E:loc_54CF4j move.w #$7FFF,d3 loc_54D00: ; CODE XREF: sub_5436E+98Cj move.w d3,(word_FFFF95AA).w move.w (XMSN_IO_KE_TURBINE_SPEED_FILTER_COEFF).l,d0 ; Filter Coefficient for filtering turbine speed. ; Coeff move.w (word_FFFF95AA).w,d1 move.w (word_FFFF95AC).w,d2 jsr sub_26608 move.w d0,(word_FFFF95AC).w tst.w (word_FFFF95B2).w bne.s loc_54D2A move.w #$7FFF,(word_FFFF95D6).w bra.s loc_54D48 ; --------------------------------------------------------------------------- loc_54D2A: ; CODE XREF: sub_5436E+9B2j clr.l d3 move.w (word_FFFF95B6).w,d3 asl.l #8,d3 asl.l #4,d3 divu.w (word_FFFF95B2).w,d3 bvs.s loc_54D40 cmpi.w #$7FFF,d3 bls.s loc_54D44 loc_54D40: ; CODE XREF: sub_5436E+9CAj move.w #$7FFF,d3 loc_54D44: ; CODE XREF: sub_5436E+9D0j move.w d3,(word_FFFF95D6).w loc_54D48: ; CODE XREF: sub_5436E+9BAj move.w (word_FFFF95A8).w,d3 sub.w (word_FFFF95AA).w,d3 move.w (XMSN_IO_KE_SLIP_FILTER_COEFF).l,d0 ; Filter Coefficient for filtering Slip. ; Coeff move.w (word_FFFF95BC).w,d2 move.l d3,d1 jsr loc_26610 move.w d0,(word_FFFF95BC).w btst #4,(byte_FFFFA8FE).w bne.s loc_54D7C cmp.w (XMSN_IO_KE_SLIP_LOW_THRESHOLD).l,d0 ; Enter floating slip mode when slip is less than this. ; RPM bge.s loc_54D7C bset #6,(byte_FFFF95E3).w loc_54D7C: ; CODE XREF: sub_5436E+9FEj ; sub_5436E+A06j move.w (word_FFFF95BC).w,d3 cmp.w (XMSN_IO_KE_SLIP_HIGH_THRESHOLD).l,d3 ; Exit floating slip mode when slip is greater than this. ; RPM ble.s loc_54D90 bclr #6,(byte_FFFF95E3).w bra.s loc_54DAC ; --------------------------------------------------------------------------- loc_54D90: ; CODE XREF: sub_5436E+A18j move.b (byte_FFFF95DD).w,d3 beq.s loc_54D9C cmpi.b #3,d3 bne.s loc_54DA0 loc_54D9C: ; CODE XREF: sub_5436E+A26j moveq #1,d3 bra.s loc_54DA2 ; --------------------------------------------------------------------------- loc_54DA0: ; CODE XREF: sub_5436E+A2Cj clr.b d3 loc_54DA2: ; CODE XREF: sub_5436E+A30j tst.b d3 beq.s loc_54DAC bset #6,(byte_FFFF95E3).w loc_54DAC: ; CODE XREF: sub_5436E+A20j ; sub_5436E+A36j move.w (word_FFFF95B6).w,d3 cmp.w (XMSN_IO_KE_PWRTRAIN_MOVING_ENG_SPD_THRSH).l,d3 ; Speed threshold below which engine speed is considered stopped. ; RPM bcc.s loc_54DDE movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9620).w,d3 add.w $A(a2),d3 bcc.s loc_54DCA move.w #$FFFF,d3 loc_54DCA: ; CODE XREF: sub_5436E+A56j move.w d3,(word_FFFF9620).w cmp.w (XMSN_IO_KE_STOPPED_POWERTRAIN_TIME_LIMIT).l,d3 ; When all speed inputs indicate zero motion for this amount of time, indicate that the powertrain is not moving. ; Seconds bcs.s loc_54DE8 bclr #7,(byte_FFFF95E3).w bra.s loc_54DE8 ; --------------------------------------------------------------------------- loc_54DDE: ; CODE XREF: sub_5436E+A48j clr.w (word_FFFF9620).w bset #7,(byte_FFFF95E3).w loc_54DE8: ; CODE XREF: sub_5436E+A66j ; sub_5436E+A6Ej btst #1,(byte_FFFF95E2).w beq.s loc_54E1C tst.b (byte_FFFFA93B).w bne.s loc_54E1C movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9622).w,d3 add.w $A(a2),d3 bcc.s loc_54E08 move.w #$FFFF,d3 loc_54E08: ; CODE XREF: sub_5436E+A94j move.w d3,(word_FFFF9622).w cmp.w (XMSN_IO_KE_ENGINE_RUN_NOT_CUT_OFF_TIME).l,d3 ; The amount of time the engine must be running not in fuel cut off. ; Seconds bcs.s loc_54E20 bset #0,(byte_FFFF95E2).w bra.s loc_54E26 ; --------------------------------------------------------------------------- loc_54E1C: ; CODE XREF: sub_5436E+A80j ; sub_5436E+A86j clr.w (word_FFFF9622).w loc_54E20: ; CODE XREF: sub_5436E+AA4j bclr #0,(byte_FFFF95E2).w loc_54E26: ; CODE XREF: sub_5436E+AACj tst.b (TCM_OPTIONS_KE_TRANS_HAS_SIGNED_TORQUE_MODEL).l ; When TRUE, allows for signed engine torque values and uses the negative torque model. ; T/F bne.s loc_54E4E move.w (word_FFFF9E22).w,d3 moveq #5,d4 muls.w d4,d3 bpl.s loc_54E3E addi.l #$3F,d3 ; '?' loc_54E3E: ; CODE XREF: sub_5436E+AC8j asr.l #6,d3 ble.s loc_54E4A move.w (word_FFFF9E22).w,d3 muls.w d4,d3 bra.s loc_54E56 ; --------------------------------------------------------------------------- loc_54E4A: ; CODE XREF: sub_5436E+AD2j clr.w d3 bra.s loc_54E60 ; --------------------------------------------------------------------------- loc_54E4E: ; CODE XREF: sub_5436E+ABEj move.w (word_FFFF9E22).w,d3 muls.w #5,d3 loc_54E56: ; CODE XREF: sub_5436E+ADAj bpl.s loc_54E5E addi.l #$3F,d3 ; '?' loc_54E5E: ; CODE XREF: sub_5436E:loc_54E56j asr.l #6,d3 loc_54E60: ; CODE XREF: sub_5436E+ADEj move.w (XMSN_IO_KE_ENGINE_TORQUE_FILTER_COEFF).l,d0 ; Filter Coefficient for filtering turbine speed. ; Coeff move.w (word_FFFF95C2).w,d2 move.l d3,d1 jsr loc_26610 move.w d0,(word_FFFF95C2).w tst.w d0 ble.s loc_54E80 move.w d0,(word_FFFF95C0).w bra.s loc_54E84 ; --------------------------------------------------------------------------- loc_54E80: ; CODE XREF: sub_5436E+B0Aj clr.w (word_FFFF95C0).w loc_54E84: ; CODE XREF: sub_5436E+B10j move.w (XMSN_IO_KE_ECCC_ENGINE_TORQ_FILTER_CONST).l,d0 ; Filter Coefficient for determining ECCC_Engine_Torque. ; Coeff move.w (word_FFFF95C0).w,d1 move.w (word_FFFF95C8).w,d2 jsr sub_26608 move.w d0,d3 move.w d3,(word_FFFF95C8).w sub.w (word_FFFF9624).w,d3 move.w d3,(word_FFFF95C6).w move.w (word_FFFF95C8).w,d3 move.w d3,(word_FFFF9624).w move.w (word_FFFF9628).w,d4 cmp.w (XMSN_IO_KE_SPANNED_TIME_ECCC_ENGINE_TORQ).l,d4 ; Update Spanned_ECCC_Engine_Torq every this many seconds. ; Seconds bcs.s loc_54ECE sub.w (word_FFFF9626).w,d3 move.w d3,(word_FFFF95C4).w move.w (word_FFFF95C8).w,(word_FFFF9626).w clr.w (word_FFFF9628).w bra.s loc_54EE2 ; --------------------------------------------------------------------------- loc_54ECE: ; CODE XREF: sub_5436E+B4Aj movea.l (dword_FFFFB5DE).w,a2 move.l d4,d3 add.w $A(a2),d3 bcc.s loc_54EDE move.w #$FFFF,d3 loc_54EDE: ; CODE XREF: sub_5436E+B6Aj move.w d3,(word_FFFF9628).w loc_54EE2: ; CODE XREF: sub_5436E+B5Ej tst.w (word_FFFF95B6).w bne.s loc_54EF0 move.b #$FF,(byte_FFFF95DF).w bra.s loc_54F0C ; --------------------------------------------------------------------------- loc_54EF0: ; CODE XREF: sub_5436E+B78j clr.l d3 move.w (word_FFFF95AC).w,d3 asl.l #8,d3 divu.w (word_FFFF95B6).w,d3 bvs.s loc_54F04 cmpi.w #$FF,d3 bls.s loc_54F08 loc_54F04: ; CODE XREF: sub_5436E+B8Ej move.b #$FF,d3 loc_54F08: ; CODE XREF: sub_5436E+B94j move.b d3,(byte_FFFF95DF).w loc_54F0C: ; CODE XREF: sub_5436E+B80j clr.w d3 move.b (byte_FFFF95DF).w,d3 asl.w #4,d3 tblu.w (XMSN_IO_KV_CONVERTER_TORQUE_RATIO).l,d3 ; Ratio used to determine gearbox torque. ; Ratio muls.w (word_FFFF95C2).w,d3 divs.w d6,d3 bvc.s loc_54F2C swap d3 eor.w d6,d3 bmi.s loc_54F40 bra.s loc_54F3A ; --------------------------------------------------------------------------- loc_54F2C: ; CODE XREF: sub_5436E+BB4j cmpi.w #$1770,d3 bgt.s loc_54F3A cmpi.w #$E890,d3 blt.s loc_54F40 bra.s loc_54F44 ; --------------------------------------------------------------------------- loc_54F3A: ; CODE XREF: sub_5436E+BBCj ; sub_5436E+BC2j move.w #$1770,d3 bra.s loc_54F44 ; --------------------------------------------------------------------------- loc_54F40: ; CODE XREF: sub_5436E+BBAj ; sub_5436E+BC8j move.w #$E890,d3 loc_54F44: ; CODE XREF: sub_5436E+BCAj ; sub_5436E+BD0j move.w d3,(word_FFFF95CC).w move.w (XMSN_IO_KE_DRIVE_SPROKET_RATIO).l,d4 ; Turbine shaft and Input shaft interconnect chain ratio. ; Ratio move.w (word_FFFF95CC).w,d3 ext.l d3 asl.l #8,d3 asl.l #4,d3 divs.w d4,d3 bvc.s loc_54F64 swap d3 eor.w d4,d3 bmi.s loc_54F78 bra.s loc_54F72 ; --------------------------------------------------------------------------- loc_54F64: ; CODE XREF: sub_5436E+BECj cmpi.w #$1770,d3 bgt.s loc_54F72 cmpi.w #$E890,d3 blt.s loc_54F78 bra.s loc_54F7C ; --------------------------------------------------------------------------- loc_54F72: ; CODE XREF: sub_5436E+BF4j ; sub_5436E+BFAj move.w #$1770,d3 bra.s loc_54F7C ; --------------------------------------------------------------------------- loc_54F78: ; CODE XREF: sub_5436E+BF2j ; sub_5436E+C00j move.w #$E890,d3 loc_54F7C: ; CODE XREF: sub_5436E+C02j ; sub_5436E+C08j move.w d3,(word_FFFF95D0).w move.w (word_FFFF95CC).w,d3 ble.s loc_54F8C move.w d3,(word_FFFF95CA).w bra.s loc_54F90 ; --------------------------------------------------------------------------- loc_54F8C: ; CODE XREF: sub_5436E+C16j clr.w (word_FFFF95CA).w loc_54F90: ; CODE XREF: sub_5436E+C1Cj move.w (word_FFFF95D0).w,d3 ble.s loc_54F9C move.w d3,(word_FFFF95CE).w bra.s loc_54FA0 ; --------------------------------------------------------------------------- loc_54F9C: ; CODE XREF: sub_5436E+C26j clr.w (word_FFFF95CE).w loc_54FA0: ; CODE XREF: sub_5436E+C2Cj move.w #$1770,(word_FFFF95D2).w movem.l (sp)+,d0-d2/d6-a1/a4 unlk a6 rts ; End of function sub_5436E ; =============== S U B R O U T I N E ======================================= sub_54FAE: ; CODE XREF: DoLoopE+A8p move.l d0,-(sp) jsr sub_4B780 move.b d0,(byte_FFFF95F1).w jsr sub_4B802 move.b d0,(byte_FFFF95F2).w jsr sub_4B82A move.b d0,(byte_FFFF95F4).w jsr sub_4B83A move.b d0,(byte_FFFF95F3).w move.l (sp)+,d0 rts ; End of function sub_54FAE ; =============== S U B R O U T I N E ======================================= sub_54FDC: ; CODE XREF: DoLoopF+36Ap ; sub_842B2+17Ap movem.l d0-d2/d6-a0,-(sp) move.w (word_FFFFF2C2).w,d3 lsr.w #2,d3 asl.w #8,d3 lsr.w #8,d3 move.b d3,(byte_FFFF9599).w tst.b (byte_FFFF960C).w bne.s loc_55004 andi.w #$FF,d3 asl.w #4,d3 tbls.w (XMSN_IO_KV_LINEAR_HOT_TEMPERATURE_TABLE).l,d3 ; Table used to translate temperature sensor A/D counts into Degrees C. This table is for the 348 Ohm pullup resistor. ; Deg C bra.s loc_55012 ; --------------------------------------------------------------------------- loc_55004: ; CODE XREF: sub_54FDC+16j andi.w #$FF,d3 asl.w #4,d3 tbls.w (XMSN_IO_KV_LINEAR_COLD_TEMPERATURE_TABLE).l,d3 ; Table used to translate temperature sensor A/D counts into Degrees C. This table is for the 4K Ohm pullup resistor. ; Deg C loc_55012: ; CODE XREF: sub_54FDC+26j move.w d3,(word_FFFF959A).w btst #1,(byte_FFFF89DC).w bne.s loc_5506A btst #1,(byte_FFFF89DE).w bne.s loc_5506A btst #6,(byte_FFFF89DA).w bne.s loc_5506A movea.w (word_FFFF959A).w,a2 move.w a2,(word_FFFF9596).w btst #5,(byte_FFFF95E4).w bne.s loc_5504A move.w a2,(word_FFFF9590).w bset #5,(byte_FFFF95E4).w bra.s loc_55062 ; --------------------------------------------------------------------------- loc_5504A: ; CODE XREF: sub_54FDC+60j move.w (XMSN_IO_KE_TRANS_TEMP_FILTER_COEFFICIENT).l,d0 ; Filter coefficient for filtering Transmission Temperature. ; Coeff move.w (word_FFFF959A).w,d1 move.w (word_FFFF9590).w,d2 jsr loc_26610 move.w d0,(word_FFFF9590).w loc_55062: ; CODE XREF: sub_54FDC+6Cj move.w (word_FFFF9590).w,d4 bra.w loc_551A4 ; --------------------------------------------------------------------------- loc_5506A: ; CODE XREF: sub_54FDC+40j ; sub_54FDC+48j ... movea.w (XMSN_IO_KE_DEFAULT_TRANS_TEMPERATURE).l,a2 ; Default transmission temperature when sensor fails. ; Deg C move.w a2,(word_FFFF9596).w btst #1,(byte_FFFF88DA).w bne.s loc_55084 btst #1,(byte_FFFF88DC).w beq.s loc_5508E loc_55084: ; CODE XREF: sub_54FDC+9Ej move.w (XMSN_IO_KE_TRANS_TEMP_COND_UNKNOWN).l,d4 ; Default transmission temperature when a reliable engine coolant temperature is not available. ; Deg C bra.w loc_55192 ; --------------------------------------------------------------------------- loc_5508E: ; CODE XREF: sub_54FDC+A6j move.w (XMSN_IO_KE_MAX_COOLANT_TEMP_THRESH).l,d2 movea.w #$36,a0 ; '6' add.w a0,d2 clr.w d3 move.b (byte_FFFF959C).w,d3 cmp.w d2,d3 bcs.s loc_550AE move.w (XMSN_IO_KE_DEFAULT_TEMP_ENG_TO_HOT).l,d4 bra.w loc_55192 ; --------------------------------------------------------------------------- loc_550AE: ; CODE XREF: sub_54FDC+C6j move.l (XMSN_IO_KE_MIN_ENGINE_RUN_TIME).l,d0 ; Engine run time threshold for deteremining which default transmission temperature to use. ; Seconds move.l (EngineRunTime).w,d1 cmp.l d0,d1 bge.s loc_550DC btst #1,(byte_FFFF88D4).w bne.s loc_550DC btst #1,(byte_FFFF88D6).w bne.s loc_550DC btst #1,(byte_FFFF88D2).w bne.s loc_550DC move.w (word_FFFF960E).w,d4 bra.w loc_55192 ; --------------------------------------------------------------------------- loc_550DC: ; CODE XREF: sub_54FDC+DEj ; sub_54FDC+E6j ... cmp.l d0,d1 bge.s loc_55102 btst #1,(byte_FFFF88D4).w bne.s loc_550F8 btst #1,(byte_FFFF88D6).w bne.s loc_550F8 btst #1,(byte_FFFF88D2).w beq.s loc_55102 loc_550F8: ; CODE XREF: sub_54FDC+10Aj ; sub_54FDC+112j move.w (XMSN_IO_KE_TRANS_TEMP_STARTUP).l,d4 ; Default transmission temperature when engine run time is below a cal and coolant temperature is below a cal. ; Deg C bra.w loc_55192 ; --------------------------------------------------------------------------- loc_55102: ; CODE XREF: sub_54FDC+102j ; sub_54FDC+11Aj cmp.l d0,d1 blt.s loc_5517C move.w (XMSN_IO_KE_MIN_COOLANT_TEMP_THRESH).l,d5 add.w a0,d5 cmp.w d3,d5 bhi.s loc_5517C cmp.w d2,d3 bhi.s loc_5517C btst #1,(byte_FFFF88D4).w bne.s loc_55176 btst #1,(byte_FFFF88D6).w bne.s loc_55176 btst #1,(byte_FFFF88D2).w bne.s loc_55176 move.w (word_FFFF960E).w,d4 cmp.w (XMSN_IO_KE_STARTUP_TEMP_LOW_THRESH).l,d4 bgt.s loc_55160 clr.w d4 move.b (byte_FFFF959C).w,d4 add.w (XMSN_IO_KE_INTAKE_AIR_TEMP_LOW_OFFSET).l,d4 ; Offset added to coolant temperature to determine defaulttrans temp when air temp is below a threshold. ; Deg C loc_55146: ; CODE XREF: sub_54FDC+198j sub.w a0,d4 cmpi.w #$190,d4 bgt.s loc_55156 cmpi.w #$FFCA,d4 blt.s loc_5515C bra.s loc_55192 ; --------------------------------------------------------------------------- loc_55156: ; CODE XREF: sub_54FDC+170j move.w #$190,d4 bra.s loc_55192 ; --------------------------------------------------------------------------- loc_5515C: ; CODE XREF: sub_54FDC+176j moveq #$FFFFFFCA,d4 bra.s loc_55192 ; --------------------------------------------------------------------------- loc_55160: ; CODE XREF: sub_54FDC+15Cj cmp.w (XMSN_IO_KE_STARTUP_TEMP_HIGH_THRESH).l,d4 blt.s loc_55176 clr.w d4 move.b (byte_FFFF959C).w,d4 add.w (XMSN_IO_KE_INTAKE_AIR_TEMP_HIGH_OFFSET).l,d4 ; Offset added to coolant temperature to determine defaulttrans temp when air temp is above a threshold. ; Deg C bra.s loc_55146 ; --------------------------------------------------------------------------- loc_55176: ; CODE XREF: sub_54FDC+140j ; sub_54FDC+148j ... sub.w a0,d3 move.w d3,d4 bra.s loc_55192 ; --------------------------------------------------------------------------- loc_5517C: ; CODE XREF: sub_54FDC+128j ; sub_54FDC+134j ... cmp.l d0,d1 blt.s loc_55192 move.w (XMSN_IO_KE_MIN_COOLANT_TEMP_THRESH).l,d1 add.w a0,d1 cmp.w d3,d1 bls.s loc_55192 move.w (XMSN_IO_KE_TRANS_TEMP_ENG_TEMP_LOW).l,d4 ; Default transmission temperature when engine run time is above a cal and coolant temperature is below a cal. ; Deg C loc_55192: ; CODE XREF: sub_54FDC+AEj ; sub_54FDC+CEj ... tst.b (XMSN_IO_KE_USE_CONST_FOR_TRANS_TEMP).l beq.s loc_551A0 move.w a2,(word_FFFF9590).w bra.s loc_551A4 ; --------------------------------------------------------------------------- loc_551A0: ; CODE XREF: sub_54FDC+1BCj move.w d4,(word_FFFF9590).w loc_551A4: ; CODE XREF: sub_54FDC+8Aj ; sub_54FDC+1C2j move.w d4,(word_FFFF9594).w move.w (word_FFFF959A).w,d3 cmpi.w #$43,d3 ; 'C' blt.s loc_551C4 moveq #1,d1 move.w #$93,d0 ; '?' jsr (sub_1122).l clr.b (byte_FFFF960C).w bra.s loc_551DC ; --------------------------------------------------------------------------- loc_551C4: ; CODE XREF: sub_54FDC+1D4j cmpi.w #$35,d3 ; '5' bgt.s loc_551DC clr.b d1 move.w #$93,d0 ; '?' jsr (sub_1122).l move.b #1,(byte_FFFF960C).w loc_551DC: ; CODE XREF: sub_54FDC+1E6j ; sub_54FDC+1ECj tst.b (byte_FFFF9598).w bne.s loc_551FA move.l (EngineRunTime).w,d3 cmp.l (XMSN_IO_KE_TRANS_STARTUP_DELAY_TIME).l,d3 ; The minimum amount of time engine must be running beforeStoring Trans_Temp_At_Engine_Start. ; Seconds blt.s loc_551FA move.b #1,(byte_FFFF9598).w move.w (word_FFFF959A).w,(word_FFFF9592).w loc_551FA: ; CODE XREF: sub_54FDC+204j ; sub_54FDC+210j move.w (CoolantTemperatureOrDefault).w,d3 moveq #5,d1 muls.w d1,d3 moveq #$60,d2 ; '`' divs.w d2,d3 moveq #$36,d6 ; '6' add.b d6,d3 move.b d3,(byte_FFFF959C).w btst #6,(byte_FFFF95E4).w beq.s loc_55226 cmp.b (XMSN_IO_KE_COLD_ENGINE_HIGH_THRESHOLD).l,d3 ; When Coolant temperature rises above this value, the engine cold indicator is cleared. ; Deg C bhi.s loc_5522E loc_5521E: ; CODE XREF: sub_54FDC+250j bset #6,(byte_FFFF95E4).w bra.s loc_55234 ; --------------------------------------------------------------------------- loc_55226: ; CODE XREF: sub_54FDC+238j cmp.b (XMSN_IO_KE_COLD_ENGINE_LOW_THRESHOLD).l,d3 ; When Coolant temperature falls below this value, the engine cold indicator is set. ; Deg C bcs.s loc_5521E loc_5522E: ; CODE XREF: sub_54FDC+240j bclr #6,(byte_FFFF95E4).w loc_55234: ; CODE XREF: sub_54FDC+248j btst #7,(byte_FFFF95E4).w beq.s loc_55250 move.b (byte_FFFF959C).w,d3 cmp.b (XMSN_IO_KE_HOT_ENGINE_LOW_THRESHOLD).l,d3 ; When Coolant temperature falls below this value, the engine hot indicator is cleared. ; Deg C bcs.s loc_5525C loc_55248: ; CODE XREF: sub_54FDC+27Ej bset #7,(byte_FFFF95E4).w bra.s loc_55262 ; --------------------------------------------------------------------------- loc_55250: ; CODE XREF: sub_54FDC+25Ej move.b (byte_FFFF959C).w,d3 cmp.b (XMSN_IO_KE_HOT_ENGINE_HIGH_THRESHOLD).l,d3 ; When Coolant temperature rises above this value, the engine Hot indicator is Set. ; Deg C bhi.s loc_55248 loc_5525C: ; CODE XREF: sub_54FDC+26Aj bclr #7,(byte_FFFF95E4).w loc_55262: ; CODE XREF: sub_54FDC+272j btst #4,(byte_FFFF95E4).w beq.s loc_5527E move.b (byte_FFFF959C).w,d3 cmp.b (XMSN_IO_KE_HIGH_MAX_GEAR_INHIBIT_THRESH).l,d3 ; When Coolant temperature rises above this value, Enable max gear. ; Deg C bhi.s loc_5528A loc_55276: ; CODE XREF: sub_54FDC+2ACj bset #4,(byte_FFFF95E4).w bra.s loc_55290 ; --------------------------------------------------------------------------- loc_5527E: ; CODE XREF: sub_54FDC+28Cj move.b (byte_FFFF959C).w,d3 cmp.b (XMSN_IO_KE_LOW_MAX_GEAR_INHIBIT_THRESH).l,d3 ; When Coolant temperature falls below this value, inhibit max gear. ; Deg C bcs.s loc_55276 loc_5528A: ; CODE XREF: sub_54FDC+298j bclr #4,(byte_FFFF95E4).w loc_55290: ; CODE XREF: sub_54FDC+2A0j jsr sub_5546E move.b (byte_FFFF95FF).w,d3 beq.s loc_552AE move.w (word_FFFF9582).w,d4 cmp.w (XMSN_IO_KE_ENG_PROT_MODE_LOW_THROT_THR).l,d4 bcc.s loc_552AE clr.b (byte_FFFF95FF).w bra.s loc_552C4 ; --------------------------------------------------------------------------- loc_552AE: ; CODE XREF: sub_54FDC+2BEj ; sub_54FDC+2CAj tst.b d3 bne.s loc_552C4 move.w (word_FFFF9582).w,d3 cmp.w (XMSN_IO_KE_ENG_PROT_MODE_HIGH_THROT_THR).l,d3 ; High threshold for the throttle position to switch Heater Performance Mode to Engine Protection Mode. ; Percent bls.s loc_552C4 move.b #1,(byte_FFFF95FF).w loc_552C4: ; CODE XREF: sub_54FDC+2D0j ; sub_54FDC+2D4j ... move.b (XMSN_IO_KE_TEMPERATURE_FACTOR_SOURCE).l,d3 ; Indicates the temperatue source used to calculate thetemperature factor for heater performance ; NONE moveq #1,d7 cmp.b d3,d7 bne.s loc_552EE move.w (word_FFFFA72E).w,d3 muls.w d1,d3 divs.w d2,d3 add.w d6,d3 tst.w d3 blt.s loc_552EA cmpi.w #$FF,d3 bls.s loc_55300 move.b #$FF,d3 bra.s loc_55300 ; --------------------------------------------------------------------------- loc_552EA: ; CODE XREF: sub_54FDC+300j clr.b d3 bra.s loc_55300 ; --------------------------------------------------------------------------- loc_552EE: ; CODE XREF: sub_54FDC+2F2j cmpi.b #2,d3 bne.s loc_552FC move.w (word_FFFF9590).w,d3 add.b d6,d3 bra.s loc_55300 ; --------------------------------------------------------------------------- loc_552FC: ; CODE XREF: sub_54FDC+316j move.b (byte_FFFF959C).w,d3 loc_55300: ; CODE XREF: sub_54FDC+306j ; sub_54FDC+30Cj ... tst.b (byte_FFFF95FF).w beq.s loc_55318 clr.w d3 move.b (byte_FFFF959C).w,d3 asl.w #4,d3 tblu.b (XMSN_IO_KV_ENGINE_PROTECTION_TEMP_FACTOR).l,d3 ; Temperature Factor in Engine Protection Mode ; Factor 0_1 bra.s loc_5538E ; --------------------------------------------------------------------------- loc_55318: ; CODE XREF: sub_54FDC+328j move.b (byte_FFFF9630).w,d1 cmp.b d1,d7 bne.s loc_5532E move.b (XMSN_IO_KE_COOL_DAY_LOW_TEMP_FACT_THR).l,d0 ; If coolant temperature of a Cool Day is below this threshold then Temperature_Factor is 1 ; Degrees_C move.b (XMSN_IO_KE_COOL_DAY_HIGH_TEMP_FACT_THR).l,d4 ; If coolant temperature of a Cool Day is above this threshold then Temperature_Factor is 0 ; Degrees_C bra.s loc_5533A ; --------------------------------------------------------------------------- loc_5532E: ; CODE XREF: sub_54FDC+342j move.b (XMSN_IO_KE_COLD_DAY_LOW_TEMP_FACT_THR).l,d0 ; If coolant temperature of a Cold Day is below this threshold then Temperature_Factor is 1 ; Degrees_C move.b (XMSN_IO_KE_COLD_DAY_HIGH_TEMP_FACT_THR).l,d4 ; If coolant temperature of a Cold Day is above this threshold then Temperature_Factor is 0 ; Degrees_C loc_5533A: ; CODE XREF: sub_54FDC+350j cmp.b d4,d3 bcc.s loc_55344 cmpi.b #2,d1 bne.s loc_5534A loc_55344: ; CODE XREF: sub_54FDC+360j clr.b (byte_FFFF95FC).w bra.s loc_55392 ; --------------------------------------------------------------------------- loc_5534A: ; CODE XREF: sub_54FDC+366j cmp.b d0,d3 bhi.s loc_55356 move.b #$FF,(byte_FFFF95FC).w bra.s loc_55392 ; --------------------------------------------------------------------------- loc_55356: ; CODE XREF: sub_54FDC+370j clr.l d1 move.b d0,d1 andi.w #$FF,d4 sub.w d1,d4 andi.w #$FF,d0 andi.w #$FF,d3 sub.w d0,d3 ext.l d3 asl.l #8,d3 divs.w d4,d3 bvc.s loc_5537A swap d3 eor.w d4,d3 bmi.s loc_5538A bra.s loc_55384 ; --------------------------------------------------------------------------- loc_5537A: ; CODE XREF: sub_54FDC+394j tst.w d3 blt.s loc_5538A cmpi.w #$FF,d3 bls.s loc_5538C loc_55384: ; CODE XREF: sub_54FDC+39Cj move.b #$FF,d3 bra.s loc_5538C ; --------------------------------------------------------------------------- loc_5538A: ; CODE XREF: sub_54FDC+39Aj ; sub_54FDC+3A0j clr.b d3 loc_5538C: ; CODE XREF: sub_54FDC+3A6j ; sub_54FDC+3ACj not.b d3 loc_5538E: ; CODE XREF: sub_54FDC+33Aj move.b d3,(byte_FFFF95FC).w loc_55392: ; CODE XREF: sub_54FDC+36Cj ; sub_54FDC+378j move.b (byte_FFFF95E9).w,d0 clr.l d1 move.b d0,d1 move.b byte_8A7E8(d1.w),d3 move.b d3,(byte_FFFF9602).w btst #1,(byte_FFFF95E7).w beq.s loc_553B6 ori.b #$80,d3 move.b d3,(byte_FFFF9602).w loc_553B6: ; CODE XREF: sub_54FDC+3D0j clr.w d3 move.b (byte_FFFF95F0).w,d3 move.b byte_8A7F0(d3.w),d3 move.b d3,(byte_FFFF9603).w btst #0,(byte_FFFF95E7).w beq.s loc_553D8 ori.b #$10,d3 move.b d3,(byte_FFFF9603).w loc_553D8: ; CODE XREF: sub_54FDC+3F2j tst.w (word_FFFF95B4).w beq.s loc_55404 tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_553EE clr.l d3 move.w (word_FFFF95B0).w,d3 bra.s loc_553F4 ; --------------------------------------------------------------------------- loc_553EE: ; CODE XREF: sub_54FDC+408j clr.l d3 move.w (word_FFFF95B6).w,d3 loc_553F4: ; CODE XREF: sub_54FDC+410j asl.l #8,d3 asl.l #4,d3 divu.w (word_FFFF95B4).w,d3 bvs.s loc_55404 cmpi.w #$7FFF,d3 bls.s loc_55408 loc_55404: ; CODE XREF: sub_54FDC+400j ; sub_54FDC+420j move.w #$7FFF,d3 loc_55408: ; CODE XREF: sub_54FDC+426j move.b (byte_FFFF95DC).w,d4 cmpi.b #3,d4 bne.s loc_55432 tst.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.s loc_55432 cmpi.b #4,d0 seq d4 neg.b d4 asl.b #2,d4 andi.w #$FF,d4 movea.l off_8A5E4(d4.w*4),a2 bra.s loc_5544A ; --------------------------------------------------------------------------- loc_55432: ; CODE XREF: sub_54FDC+434j ; sub_54FDC+43Cj cmpi.b #4,d0 seq d5 neg.b d5 asl.b #2,d5 add.b d4,d5 andi.w #$FF,d5 movea.l off_8A5DC(d5.w*4),a2 loc_5544A: ; CODE XREF: sub_54FDC+454j andi.l #$FFFF,d3 asl.l #8,d3 asl.l #4,d3 divu.w (a2),d3 move.w d3,(word_FFFF95D8).w tst.b (XMSN_IO_KE_USE_TRANSMISSION_OIL_LIFE).l ; Bypass the oil life counter feature if this is false. ; T/F beq.s loc_55468 jsr sub_555EA loc_55468: ; CODE XREF: sub_54FDC+484j movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_54FDC ; =============== S U B R O U T I N E ======================================= sub_5546E: ; CODE XREF: sub_54FDC:loc_55290p btst #7,(byte_FFFF9610).w beq.s locret_554C4 btst #6,(byte_FFFF9610).w bne.s locret_554C4 bset #6,(byte_FFFF9610).w move.w (word_FFFF960E).w,d3 addi.w #$36,d3 ; '6' clr.w d4 move.b (XMSN_IO_KE_COLD_DAY_KUM_THRESH).l,d4 ; If Startup_Intake_Air_Temp is below this threshold then cold day is present ; Degrees_C cmp.w d3,d4 bls.s loc_5549E clr.b (byte_FFFF9630).w bra.s locret_554C4 ; --------------------------------------------------------------------------- loc_5549E: ; CODE XREF: sub_5546E+28j clr.w d4 move.b (XMSN_IO_KE_COOL_DAY_KUM_THRESH).l,d4 ; If Startup_Intake_Air_Temp is below this threshold andthen cool day is present ; Degrees_C cmp.w d3,d4 bhi.s loc_554BE move.w (word_FFFF9590).w,d3 cmp.w (XTEMP_STATUS_KE_COLD_TRANS_LOW_THRESHOLD).l,d3 ; When Transmission temperature falls below this value, the transmission cold indicator is set. ; Deg C ble.s loc_554BE move.b #2,(byte_FFFF9630).w bra.s locret_554C4 ; --------------------------------------------------------------------------- loc_554BE: ; CODE XREF: sub_5546E+3Aj ; sub_5546E+46j move.b #1,(byte_FFFF9630).w locret_554C4: ; CODE XREF: sub_5546E+6j sub_5546E+Ej ... rts ; End of function sub_5546E ; =============== S U B R O U T I N E ======================================= sub_554C6: ; CODE XREF: DoLoopE+FAp btst #0,(byte_FFFF95E2).w beq.s loc_5553A move.b (byte_FFFF959D).w,d3 cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_LOW).l,d3 ; The low thresholdof Ignition voltage range ; Volts bcs.s loc_5550E cmp.b (XMSN_IO_KE_DIAG_SYS_VOLTS_HIGH).l,d3 ; The high thresholdof Ignition voltage range ; Volts bhi.s loc_5550E clr.w (word_FFFF9634).w move.w (word_FFFF9632).w,d3 cmp.w (XMSN_IO_KE_DIAG_SYS_VOLTS_RANGE_TIME).l,d3 ; Amount of time that system voltage must be out of range before taking remedial action in transmission. ; Seconds bcs.s loc_554FA bclr #7,(byte_FFFF95E8).w bra.s locret_55542 ; --------------------------------------------------------------------------- loc_554FA: ; CODE XREF: sub_554C6+2Aj movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_55508 move.w #$FFFF,d3 loc_55508: ; CODE XREF: sub_554C6+3Cj move.w d3,(word_FFFF9632).w bra.s locret_55542 ; --------------------------------------------------------------------------- loc_5550E: ; CODE XREF: sub_554C6+12j ; sub_554C6+1Aj clr.w (word_FFFF9632).w move.w (word_FFFF9634).w,d3 cmp.w (XMSN_IO_KE_DIAG_SYS_VOLTS_RANGE_TIME).l,d3 ; Amount of time that system voltage must be out of range before taking remedial action in transmission. ; Seconds bcs.s loc_55526 bset #7,(byte_FFFF95E8).w bra.s locret_55542 ; --------------------------------------------------------------------------- loc_55526: ; CODE XREF: sub_554C6+56j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_55534 move.w #$FFFF,d3 loc_55534: ; CODE XREF: sub_554C6+68j move.w d3,(word_FFFF9634).w bra.s locret_55542 ; --------------------------------------------------------------------------- loc_5553A: ; CODE XREF: sub_554C6+6j clr.w (word_FFFF9634).w clr.w (word_FFFF9632).w locret_55542: ; CODE XREF: sub_554C6+32j ; sub_554C6+46j ... rts ; End of function sub_554C6 ; =============== S U B R O U T I N E ======================================= sub_55544: ; CODE XREF: OS1:loc_28C44p movem.l d0-d2/a0,-(sp) move.b #3,(byte_FFFF95E9).w move.b #6,(byte_FFFF95EA).w clr.w (word_FFFF95F6).w move.b (TCM_OPTIONS_K_DEFAULT_GEAR).l,(byte_FFFF95DC).w ; Default hydraulic gear for the transmission. ; Gear moveq #5,d2 move.b d2,(byte_FFFF95EC).w move.b d2,(byte_FFFF9608).w move.b d2,(byte_FFFF95ED).w move.b d2,(byte_FFFF9606).w move.b d2,(byte_FFFF960A).w move.b d2,(byte_FFFF9609).w move.b d2,(byte_FFFF95EB).w move.w (XMSN_IO_KE_IMS_DEBOUNCE_TIME).l,(word_FFFF9604).w ; Time that the filtered IMS can be set to the last positive IMS value when the IMS value is Transition or Illegal_Range ; Seconds clr.b (byte_FFFF95F0).w clr.w (word_FFFF95D4).w move.b #$FF,(byte_FFFF95FC).w bset #4,(byte_FFFF95E4).w move.b (byte_FFFF960C).w,d3 beq.s loc_555A4 clr.b d1 bra.s loc_555A6 ; --------------------------------------------------------------------------- loc_555A4: ; CODE XREF: sub_55544+5Aj moveq #1,d1 loc_555A6: ; CODE XREF: sub_55544+5Ej move.w #$93,d0 ; '?' jsr (sub_1122).l btst #7,(byte_FFFF9610).w bne.s loc_555D8 move.w (word_FFFFB3E8).w,d3 muls.w d2,d3 divs.w #$60,d3 ; '`' movea.w #$36,a0 ; '6' add.w a0,d3 andi.w #$FF,d3 sub.w a0,d3 move.w d3,(word_FFFF960E).w bset #7,(byte_FFFF9610).w loc_555D8: ; CODE XREF: sub_55544+72j jsr sub_556FC jsr sub_5D82A movem.l (sp)+,d0-d2/a0 rts ; End of function sub_55544 ; =============== S U B R O U T I N E ======================================= sub_555EA: ; CODE XREF: sub_54FDC+486p movem.l d0/a0,-(sp) move.w (word_FFFFB53C).w,d3 cmp.w (XOIL_LIFE_KE_TRANS_OIL_LIFE_TIME_TO_TEST).l,d3 ; Sampling period oftransmission oil temperature for transmission oil life. ; Seconds bcs.w loc_556E4 clr.w (word_FFFFB53C).w move.w (word_FFFF9590).w,d3 cmpi.w #$6B,d3 ; 'k' bge.s loc_55612 move.l (XOIL_LIFE_KV_TRANS_OIL_LIFE_COUNTER).l,d3 ; Counts to add to oil life counter based on transmission oil temperature. ; Seconds bra.s loc_5566C ; --------------------------------------------------------------------------- loc_55612: ; CODE XREF: sub_555EA+1Ej cmpi.w #$78,d3 ; 'x' bge.s loc_55620 move.l (dword_1D854).l,d3 bra.s loc_5566C ; --------------------------------------------------------------------------- loc_55620: ; CODE XREF: sub_555EA+2Cj cmpi.w #$85,d3 ; '?' bge.s loc_5562E move.l (dword_1D858).l,d3 bra.s loc_5566C ; --------------------------------------------------------------------------- loc_5562E: ; CODE XREF: sub_555EA+3Aj cmpi.w #$93,d3 ; '?' bge.s loc_5563C move.l (dword_1D85C).l,d3 bra.s loc_5566C ; --------------------------------------------------------------------------- loc_5563C: ; CODE XREF: sub_555EA+48j cmpi.w #$A0,d3 ; '?' bge.s loc_5564A move.l (dword_1D860).l,d3 bra.s loc_5566C ; --------------------------------------------------------------------------- loc_5564A: ; CODE XREF: sub_555EA+56j cmpi.w #$AD,d3 ; '?' bge.s loc_55658 move.l (dword_1D864).l,d3 bra.s loc_5566C ; --------------------------------------------------------------------------- loc_55658: ; CODE XREF: sub_555EA+64j cmpi.w #$BB,d3 ; '?' bge.s loc_55666 move.l (off_1D868).l,d3 bra.s loc_5566C ; --------------------------------------------------------------------------- loc_55666: ; CODE XREF: sub_555EA+72j move.l (off_1D86C).l,d3 loc_5566C: ; CODE XREF: sub_555EA+26j ; sub_555EA+34j ... add.l (dword_FFFF8D40).w,d3 cmpi.l #$FFFFFF,d3 bls.s loc_5567E move.l #$FFFFFF,d3 loc_5567E: ; CODE XREF: sub_555EA+8Cj move.l d3,(dword_FFFF8D40).w movea.l #unk_FF8D40,a0 moveq #3,d0 jsr sub_2654C move.w d0,(word_FFFF8D44).w move.l (XOIL_LIFE_KE_TRANS_OIL_LIFE_EXPECTANCY).l,d3 ; Transmission oil life expectancy. ; Counts sub.l (dword_FFFF8D40).w,d3 bcc.s loc_556A2 clr.l d3 loc_556A2: ; CODE XREF: sub_555EA+B4j asl.l #7,d3 divu.l (XOIL_LIFE_KE_TRANS_OIL_LIFE_EXPECTANCY).l,d3 ; Transmission oil life expectancy. ; Counts bvs.s loc_556B6 cmpi.l #$FF,d3 bls.s loc_556BA loc_556B6: ; CODE XREF: sub_555EA+C2j move.b #$FF,d3 loc_556BA: ; CODE XREF: sub_555EA+CAj andi.w #$FF,d3 mulu.w #$7FFF,d3 lsr.l #7,d3 cmpi.w #$7FFF,d3 bls.s loc_556CE move.w #$7FFF,d3 loc_556CE: ; CODE XREF: sub_555EA+DEj cmp.w (XOIL_LIFE_KE_TRANS_OIL_LIFE_TIME_TO_CHANGE).l,d3 ; Low threshold value of transmission oil life remaining. ; % bls.s loc_556DC clr.b (byte_FFFFB53A).w bra.s loc_556F6 ; --------------------------------------------------------------------------- loc_556DC: ; CODE XREF: sub_555EA+EAj move.b #1,(byte_FFFFB53A).w bra.s loc_556F6 ; --------------------------------------------------------------------------- loc_556E4: ; CODE XREF: sub_555EA+Ej movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_556F2 move.w #$FFFF,d3 loc_556F2: ; CODE XREF: sub_555EA+102j move.w d3,(word_FFFFB53C).w loc_556F6: ; CODE XREF: sub_555EA+F0j ; sub_555EA+F8j movem.l (sp)+,d0/a0 rts ; End of function sub_555EA ; =============== S U B R O U T I N E ======================================= sub_556FC: ; CODE XREF: sub_55544:loc_555D8p movem.l d0/a0-a1,-(sp) movea.l #unk_FF8D40,a1 movea.l a1,a0 moveq #3,d0 jsr sub_2654C cmp.w (word_FFFF8D44).w,d0 beq.s loc_5572A move.l (dword_FFFF8092).w,(dword_FFFF8D40).w movea.l a1,a0 moveq #3,d0 jsr sub_2654C move.w d0,(word_FFFF8D44).w loc_5572A: ; CODE XREF: sub_556FC+18j movem.l (sp)+,d0/a0-a1 rts ; End of function sub_556FC ; =============== S U B R O U T I N E ======================================= sub_55730: ; CODE XREF: OS1:00028C86p movem.l d0/a0-a1,-(sp) movea.l #unk_FF8D40,a1 movea.l a1,a0 moveq #3,d0 jsr sub_2654C cmp.w (word_FFFF8D44).w,d0 beq.s loc_55790 clr.l d4 move.w (XOIL_LIFE_KE_TRANS_OIL_LIFE_UPON_RESET).l,d4 ; Default transmission oil life expectancy upon EEPROM reset. ; % asl.l #8,d4 divu.w #$7FFF,d4 cmpi.w #$FF,d4 bls.s loc_55762 move.b #$FF,d4 loc_55762: ; CODE XREF: sub_55730+2Cj andi.l #$FF,d4 mulu.l (XOIL_LIFE_KE_TRANS_OIL_LIFE_EXPECTANCY).l,d4 ; Transmission oil life expectancy. ; Counts lsr.l #8,d4 move.l (XOIL_LIFE_KE_TRANS_OIL_LIFE_EXPECTANCY).l,d3 ; Transmission oil life expectancy. ; Counts sub.l d4,d3 bcc.s loc_5577E clr.l d3 loc_5577E: ; CODE XREF: sub_55730+4Aj move.l d3,(dword_FFFF8D40).w movea.l a1,a0 moveq #3,d0 jsr sub_2654C move.w d0,(word_FFFF8D44).w loc_55790: ; CODE XREF: sub_55730+18j movem.l (sp)+,d0/a0-a1 rts ; End of function sub_55730 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_55796: ; CODE XREF: sub_4CD5E+26p var_6 = -6 var_4 = -4 link a6,#-6 tst.b (byte_FFFFAC5D).w beq.s loc_557BA moveq #1,d3 move.l (off_892FE).l,var_4(a6) move.w (word_892FC).l,var_6(a6) move.b d3,(byte_FFFFA0C1).w bra.w loc_55868 ; --------------------------------------------------------------------------- loc_557BA: ; CODE XREF: sub_55796+8j btst #7,(byte_FFFFA8FE).w bne.s loc_557DA btst #6,(byte_FFFFA8FE).w bne.s loc_557DA tst.b (XPRS_BRAKING_PRESSURE_KE_COAST_SOL_CHANGE_ENABLE).l bne.s loc_5580E btst #4,(byte_FFFFA900).w beq.s loc_5580E loc_557DA: ; CODE XREF: sub_55796+2Aj ; sub_55796+32j move.b (TCM_OPTIONS_KE_TRANS_HAS_SIGNED_TORQUE_MODEL).l,d3 ; When TRUE, allows for signed engine torque values and uses the negative torque model. ; T/F and.b (TCM_OPTIONS_KE_SIGNED_TRQ_SHIFT_PRESS_ENBL).l,d3 ; When TRUE, signed torque pressure control is enabled if KE_Trans_Has_Signed_Torque_Model is also TRUE. ; T/F beq.s loc_557EE clr.b (byte_FFFFA0C1).w bra.s loc_5580E ; --------------------------------------------------------------------------- loc_557EE: ; CODE XREF: sub_55796+50j clr.b d3 move.w (word_FFFF95BC).w,d0 cmp.w (XPRS_BRAKING_PRESSURE_KE_BRAKING_SLIP).l,d0 ; Slip accross Torque Converter used to determine if engine braking present torque being transmitted from transmission to engine. ; RPM_s ble.s loc_55808 move.w (word_FFFF9582).w,d0 cmp.w (XPRS_BRAKING_PRESSURE_KE_BRAKING_PRESSURE_TPS_LIMIT).l,d0 ; Braking Pressure Throttle position opening for use in determining a coast or power-on shift. ; Percent bhi.s loc_5580A loc_55808: ; CODE XREF: sub_55796+64j addq.b #1,d3 loc_5580A: ; CODE XREF: sub_55796+70j move.b d3,(byte_FFFFA0C1).w loc_5580E: ; CODE XREF: sub_55796+3Aj ; sub_55796+42j ... move.b (byte_FFFF95E9).w,d3 cmpi.b #3,d3 bhi.s loc_55864 tst.b (byte_FFFFA0C1).w bne.s loc_55836 btst #4,(byte_FFFFA8FE).w bne.s loc_55864 btst #3,(byte_FFFFA8FE).w bne.s loc_55864 tst.b (TCM_OPTIONS_KE_TRANS_HAS_SIGNED_TORQUE_MODEL).l ; When TRUE, allows for signed engine torque values and uses the negative torque model. ; T/F bne.s loc_55864 loc_55836: ; CODE XREF: sub_55796+86j clr.w d0 move.b (byte_FFFF95DC).w,d0 mulu.w #6,d0 andi.w #$FF,d3 mulu.w #$18,d3 add.b d0,d3 andi.w #$FF,d3 move.l off_892E0(d3.w),var_4(a6) move.w word_892DE(d3.w),var_6(a6) bra.s loc_55868 ; --------------------------------------------------------------------------- loc_55864: ; CODE XREF: sub_55796+80j ; sub_55796+8Ej ... clr.l var_4(a6) loc_55868: ; CODE XREF: sub_55796+20j ; sub_55796+CCj tst.l var_4(a6) beq.s loc_55898 tst.b var_6(a6) beq.s loc_55890 move.w (word_FFFF95DA).w,d0 movea.l var_4(a6),a3 cmpi.w #$8000,d0 bcc.s loc_55886 lsr.w #3,d0 bra.s loc_5588A ; --------------------------------------------------------------------------- loc_55886: ; CODE XREF: sub_55796+EAj move.w #$1000,d0 loc_5588A: ; CODE XREF: sub_55796+EEj tblu.w (a3),d0 bra.s loc_5589E ; --------------------------------------------------------------------------- loc_55890: ; CODE XREF: sub_55796+DCj movea.l var_4(a6),a2 move.w (a2),d0 bra.s loc_5589E ; --------------------------------------------------------------------------- loc_55898: ; CODE XREF: sub_55796+D6j clr.b (byte_FFFFA0C1).w clr.w d0 loc_5589E: ; CODE XREF: sub_55796+F8j ; sub_55796+100j unlk a6 rts ; End of function sub_55796 ; =============== S U B R O U T I N E ======================================= sub_558A2: ; CODE XREF: sub_559D6+2E8p ; sub_559D6+3ECp move.w (word_FFFF9590).w,d0 addi.b #$36,d0 ; '6' moveq #$11,d3 cmp.b d0,d3 bls.s loc_558B4 clr.w d0 bra.s loc_558CE ; --------------------------------------------------------------------------- loc_558B4: ; CODE XREF: sub_558A2+Cj cmpi.b #$F1,d0 bcc.s loc_558CA andi.w #$FF,d0 sub.w d3,d0 asl.w #6,d0 ext.l d0 divs.w #7,d0 bra.s loc_558CE ; --------------------------------------------------------------------------- loc_558CA: ; CODE XREF: sub_558A2+16j move.w #$800,d0 loc_558CE: ; CODE XREF: sub_558A2+10j ; sub_558A2+26j tbls.b (dword_FFFF8C98).w,d0 ext.w d0 asl.w #2,d0 rts ; End of function sub_558A2 ; =============== S U B R O U T I N E ======================================= sub_558DA: ; CODE XREF: sub_559D6+37Cp ; sub_559D6+45Cp move.w (word_FFFF9590).w,d0 addi.b #$36,d0 ; '6' moveq #$11,d3 cmp.b d0,d3 bls.s loc_558EC clr.w d0 bra.s loc_55906 ; --------------------------------------------------------------------------- loc_558EC: ; CODE XREF: sub_558DA+Cj cmpi.b #$F1,d0 bcc.s loc_55902 andi.w #$FF,d0 sub.w d3,d0 asl.w #6,d0 ext.l d0 divs.w #7,d0 bra.s loc_55906 ; --------------------------------------------------------------------------- loc_55902: ; CODE XREF: sub_558DA+16j move.w #$800,d0 loc_55906: ; CODE XREF: sub_558DA+10j ; sub_558DA+26j tbls.b (dword_FFFF8CA2).w,d0 ext.w d0 asl.w #2,d0 rts ; End of function sub_558DA ; =============== S U B R O U T I N E ======================================= sub_55912: ; CODE XREF: sub_559D6:loc_5670Cp tst.b (X_PRESSURE_KE_FIRST_SHIFT_COLD_ENABLED).l ; This ca;ibration is used to enable First Cold Garage Pressure and Base Upshift Pressure Logic. ; T/F beq.w loc_559C4 btst #7,(byte_FFFFA4FD).w beq.s loc_5596C move.b (byte_FFFFA4F8).w,d3 cmpi.b #3,d3 beq.s loc_55934 cmpi.b #1,d3 bne.s loc_5596C loc_55934: ; CODE XREF: sub_55912+1Aj bclr #7,(byte_FFFFA4FD).w move.w (word_FFFF9590).w,d3 addi.b #$36,d3 ; '6' cmpi.b #$51,d3 ; 'Q' bcc.s loc_5595A andi.w #$FF,d3 asl.w #7,d3 andi.l #$FFFF,d3 divu.w #5,d3 bra.s loc_5595E ; --------------------------------------------------------------------------- loc_5595A: ; CODE XREF: sub_55912+34j move.w #$819,d3 loc_5595E: ; CODE XREF: sub_55912+46j tbls.w (XPRS_GARAGE_PRESSURE_KV_GS_FIRST_SHIFT_COLD_DRV_MOD).l,d3 ; Offset added to Garage Pressure when First Garage Shift Cold Drive is indicated. ; PSI loc_55966: ; CODE XREF: sub_55912+AAj move.w d3,(word_FFFFA50E).w bra.s locret_559D4 ; --------------------------------------------------------------------------- loc_5596C: ; CODE XREF: sub_55912+10j ; sub_55912+20j btst #7,(byte_FFFFA4FD).w beq.s loc_559BE move.b (byte_FFFFA4F8).w,d3 cmpi.b #4,d3 beq.s loc_55984 cmpi.b #2,d3 bne.s loc_559BE loc_55984: ; CODE XREF: sub_55912+6Aj bclr #6,(byte_FFFFA4FD).w move.w (word_FFFF9590).w,d3 addi.b #$36,d3 ; '6' movea.w #$819,a2 clr.b d4 cmpi.b #$51,d3 ; 'Q' bcc.s loc_559B0 andi.w #$FF,d3 asl.w #7,d3 andi.l #$FFFF,d3 divu.w #5,d3 bra.s loc_559B4 ; --------------------------------------------------------------------------- loc_559B0: ; CODE XREF: sub_55912+8Aj move.w #$819,d3 loc_559B4: ; CODE XREF: sub_55912+9Cj tbls.w (XPRS_GARAGE_PRESSURE_KV_GS_FIRST_SHIFT_COLD_RVRS_MOD).l,d3 ; Offset added to Garage Pressure when First Garage Shift Cold Reverse is indicated. ; PSI bra.s loc_55966 ; --------------------------------------------------------------------------- loc_559BE: ; CODE XREF: sub_55912+60j ; sub_55912+70j clr.w (word_FFFFA50E).w bra.s locret_559D4 ; --------------------------------------------------------------------------- loc_559C4: ; CODE XREF: sub_55912+6j clr.w (word_FFFFA50E).w bclr #7,(byte_FFFFA4FD).w bclr #6,(byte_FFFFA4FD).w locret_559D4: ; CODE XREF: sub_55912+58j ; sub_55912+B0j rts ; End of function sub_55912 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_559D6: ; CODE XREF: sub_4CD5E+1Ap var_738E = -$738E var_7384 = -$7384 var_A = -$A var_8 = -8 var_6 = -6 var_4 = -4 var_2 = -2 var_1 = -1 link a6,#-$A movem.l d1-d2/d6-a1/a4,-(sp) move.w (word_FFFF95BE).w,d3 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_CLUTCH_SLIP_HIGH_THRESH).l,d3 blt.s loc_559F0 bset #3,(byte_FFFFA4FC).w loc_559F0: ; CODE XREF: sub_559D6+12j bclr #4,(byte_FFFFA4FD).w btst #3,(byte_FFFFA4FD).w bne.s loc_55A48 move.w (word_FFFF95DA).w,d3 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_REVERSE_DRIVE_MPH).l,d3 bcc.s loc_55A30 tst.b (byte_FFFFA4FA).w bne.s loc_55A30 move.w (word_FFFF95BE).w,d3 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_CLUTCH_SLIP_LOW_THRESH).l,d3 bge.s loc_55A24 btst #3,(byte_FFFFA4FC).w bne.s loc_55A30 loc_55A24: ; CODE XREF: sub_559D6+44j move.w (word_FFFFA518).w,d3 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_MAXIMUM_TIME).l,d3 ; The maximum amount of time that a garageshift may take. ; Seconds bls.s loc_55A48 loc_55A30: ; CODE XREF: sub_559D6+32j ; sub_559D6+38j ... bset #6,(byte_FFFFA4FC).w clr.b (byte_FFFFA4F8).w bclr #3,(byte_FFFFA4FC).w clr.w (word_FFFFA518).w bra.w loc_55B24 ; --------------------------------------------------------------------------- loc_55A48: ; CODE XREF: sub_559D6+26j ; sub_559D6+58j move.b (byte_FFFF95E9).w,d3 moveq #3,d5 cmp.b d3,d5 bcs.s loc_55A7E cmp.b (byte_FFFF95EA).w,d5 bcc.s loc_55A7E bset #4,(byte_FFFFA4FD).w move.w (word_FFFF95BC).w,d3 cmp.w (XPRS_GARAGE_PRESSURE_KE_GARAGE_SHIFT_SLIP_THRESH).l,d3 ; This calibration is used in determining the garageshift type when a garage shift occurs ; RPM bge.s loc_55A70 move.b d5,(byte_FFFFA4F8).w bra.s loc_55A76 ; --------------------------------------------------------------------------- loc_55A70: ; CODE XREF: sub_559D6+92j moveq #1,d1 loc_55A72: ; CODE XREF: sub_559D6+C6j move.b d1,(byte_FFFFA4F8).w loc_55A76: ; CODE XREF: sub_559D6+98j ; sub_559D6+E6j ... move.b (byte_FFFFA4F8).w,(byte_FFFFA4F9).w bra.s loc_55ACA ; --------------------------------------------------------------------------- loc_55A7E: ; CODE XREF: sub_559D6+7Aj ; sub_559D6+80j move.b (byte_FFFF95EA).w,d4 moveq #4,d1 cmp.b d4,d1 beq.s loc_55AA2 cmp.b d3,d1 bne.s loc_55AA2 bset #4,(byte_FFFFA4FD).w move.w (word_FFFF95BC).w,d3 cmp.w (XPRS_GARAGE_PRESSURE_KE_GARAGE_SHIFT_SLIP_THRESH).l,d3 ; This calibration is used in determining the garageshift type when a garage shift occurs ; RPM blt.s loc_55A72 moveq #2,d2 bra.s loc_55AB8 ; --------------------------------------------------------------------------- loc_55AA2: ; CODE XREF: sub_559D6+B0j ; sub_559D6+B4j cmp.b d3,d1 bcc.s loc_55ACA move.w (word_FFFF95DA).w,d3 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_PARK_NEUTRAL_MPH).l,d3 bcc.s loc_55AC6 cmp.b d4,d5 bcs.s loc_55ABE moveq #5,d2 loc_55AB8: ; CODE XREF: sub_559D6+CAj ; sub_559D6+EEj move.b d2,(byte_FFFFA4F8).w bra.s loc_55A76 ; --------------------------------------------------------------------------- loc_55ABE: ; CODE XREF: sub_559D6+DEj cmp.b d4,d1 bne.s loc_55A76 moveq #6,d2 bra.s loc_55AB8 ; --------------------------------------------------------------------------- loc_55AC6: ; CODE XREF: sub_559D6+DAj clr.b (byte_FFFFA4F8).w loc_55ACA: ; CODE XREF: sub_559D6+A6j ; sub_559D6+CEj btst #6,(byte_FFFFA4FC).w bne.s loc_55AE8 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA518).w,d3 add.w $A(a2),d3 bcc.s loc_55AE4 move.w #$FFFF,d3 loc_55AE4: ; CODE XREF: sub_559D6+108j move.w d3,(word_FFFFA518).w loc_55AE8: ; CODE XREF: sub_559D6+FAj btst #4,(byte_FFFFA4FD).w beq.s loc_55B24 clr.w (word_FFFFA512).w clr.w (word_FFFFA518).w bclr #5,(byte_FFFFA4FC).w clr.b (byte_FFFFA516).w bclr #6,(byte_FFFFA4FC).w bclr #7,(byte_FFFFA4FC).w bclr #3,(byte_FFFFA4FC).w bclr #5,(byte_FFFFA4FD).w clr.w (word_FFFFA50C).w bclr #3,(byte_FFFFA4FD).w loc_55B24: ; CODE XREF: sub_559D6+6Ej ; sub_559D6+118j btst #6,(byte_FFFFA4FC).w bne.s loc_55B64 btst #5,(byte_FFFFA4FC).w bne.s loc_55B64 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA512).w,d3 add.w $A(a2),d3 bcc.s loc_55B46 move.w #$FFFF,d3 loc_55B46: ; CODE XREF: sub_559D6+16Aj move.w d3,(word_FFFFA512).w move.w (word_FFFFB3FE).w,d0 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_INPUT_SPEED_ACCEL_THRESH).l,d0 ; This calibration is used to determine the start of thegarage shift when turbine speed acceleration drops belowthis calibration ; RPM/Second bge.s loc_55B64 tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_55B64 bset #5,(byte_FFFFA4FC).w loc_55B64: ; CODE XREF: sub_559D6+154j ; sub_559D6+15Cj ... moveq #3,d5 cmp.b (byte_FFFF95EA).w,d5 bcs.s loc_55B78 cmp.b (byte_FFFF95E9).w,d5 bcc.s loc_55B78 clr.w (word_FFFFA51A).w bra.s loc_55B8E ; --------------------------------------------------------------------------- loc_55B78: ; CODE XREF: sub_559D6+194j ; sub_559D6+19Aj movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA51A).w,d3 add.w $A(a2),d3 bcc.s loc_55B8A move.w #$FFFF,d3 loc_55B8A: ; CODE XREF: sub_559D6+1AEj move.w d3,(word_FFFFA51A).w loc_55B8E: ; CODE XREF: sub_559D6+1A0j moveq #4,d1 cmp.b (byte_FFFF95EA).w,d1 bne.s loc_55BA2 cmp.b (byte_FFFF95E9).w,d1 beq.s loc_55BA2 clr.w (word_FFFFA51C).w bra.s loc_55BB8 ; --------------------------------------------------------------------------- loc_55BA2: ; CODE XREF: sub_559D6+1BEj ; sub_559D6+1C4j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA51C).w,d3 add.w $A(a2),d3 bcc.s loc_55BB4 move.w #$FFFF,d3 loc_55BB4: ; CODE XREF: sub_559D6+1D8j move.w d3,(word_FFFFA51C).w loc_55BB8: ; CODE XREF: sub_559D6+1CAj btst #3,(byte_FFFFA4FD).w bne.w loc_56818 btst #4,(byte_FFFFA4FD).w beq.w loc_56046 clr.w (word_FFFFA51E).w move.b (byte_FFFF95E9).w,d4 cmp.b d4,d5 scc d3 neg.b d3 cmp.b d4,d1 seq d0 neg.b d0 move.w (word_FFFF95DA).w,d4 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_REVERSE_DRIVE_MPH).l,d4 bcc.w loc_55EA8 tst.b d3 beq.s loc_55C2E move.w (word_FFFF9590).w,d3 moveq #$36,d2 ; '6' add.b d2,d3 clr.w d4 moveq #$10,d7 cmp.b d3,d7 bls.s loc_55C06 move.l d4,d3 bra.s loc_55C20 ; --------------------------------------------------------------------------- loc_55C06: ; CODE XREF: sub_559D6+22Aj cmpi.b #$F0,d3 bcc.s loc_55C1C andi.w #$FF,d3 sub.w d7,d3 asl.w #6,d3 ext.l d3 divs.w #7,d3 bra.s loc_55C20 ; --------------------------------------------------------------------------- loc_55C1C: ; CODE XREF: sub_559D6+234j move.w #$800,d3 loc_55C20: ; CODE XREF: sub_559D6+22Ej ; sub_559D6+244j tblu.w (XPRS_GARAGE_PRESSURE_KV_GS_LAST_DRIVE_TIME_THRESH).l,d3 ; The time since last drive range must be greater than orequal to this calibration in order for a pulse to becommanded ; Seconds cmp.w (word_FFFFA51A).w,d3 bls.s loc_55C72 loc_55C2E: ; CODE XREF: sub_559D6+21Aj tst.b d0 beq.w loc_55EA8 move.w (word_FFFF9590).w,d3 moveq #$36,d2 ; '6' add.b d2,d3 clr.w d4 moveq #$10,d7 cmp.b d3,d7 bls.s loc_55C48 move.l d4,d3 bra.s loc_55C62 ; --------------------------------------------------------------------------- loc_55C48: ; CODE XREF: sub_559D6+26Cj cmpi.b #$F0,d3 bcc.s loc_55C5E andi.w #$FF,d3 sub.w d7,d3 asl.w #6,d3 ext.l d3 divs.w #7,d3 bra.s loc_55C62 ; --------------------------------------------------------------------------- loc_55C5E: ; CODE XREF: sub_559D6+276j move.w #$800,d3 loc_55C62: ; CODE XREF: sub_559D6+270j ; sub_559D6+286j tblu.w (XPRS_GARAGE_PRESSURE_KV_GS_LAST_REVERSE_TIME_THRESH).l,d3 ; The time since last reverse range must be greater thanor equal to this calibration in order for a pulse to becommanded ; Seconds cmp.w (word_FFFFA51C).w,d3 bhi.w loc_55EA8 loc_55C72: ; CODE XREF: sub_559D6+256j btst #5,(byte_FFFFA4FC).w beq.s loc_55C84 tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN bne.w loc_55EA8 loc_55C84: ; CODE XREF: sub_559D6+2A2j bset #1,(byte_FFFFA4FC).w bset #4,(byte_FFFFA4FC).w clr.w (word_FFFFA508).w move.b (byte_FFFFA4F8).w,d3 cmpi.b #4,d3 bhi.w loc_55EA0 beq.w loc_55D4A tst.b d3 beq.w loc_55EA0 cmpi.b #2,d3 beq.w loc_55E2A bls.w loc_55DBA move.w (XPRS_GARAGE_PRESSURE_KE_GS_PN_TO_DRIVE_PULSE).l,(word_FFFFA500).w ; This calibrations returns a pressure pulse value forgarage shift type of Park_Neutral_To_Drive ; PSI jsr sub_558A2 ext.l d0 move.l d0,d7 move.w (word_FFFF9590).w,d3 addi.b #$36,d3 ; '6' move.w (word_FFFF95B6).w,d1 clr.w d4 cmpi.w #$800,d1 bcc.s loc_55CE0 move.l d4,d1 bra.s loc_55CF4 ; --------------------------------------------------------------------------- loc_55CE0: ; CODE XREF: sub_559D6+304j cmpi.w #$1800,d1 bcc.s loc_55CF0 lsr.w #1,d1 movea.w #$400,a4 sub.w a4,d1 bra.s loc_55CF4 ; --------------------------------------------------------------------------- loc_55CF0: ; CODE XREF: sub_559D6+30Ej move.w #$800,d1 loc_55CF4: ; CODE XREF: sub_559D6+308j ; sub_559D6+318j cmpi.b #$11,d3 bcc.s loc_55CFE clr.w d3 bra.s loc_55D1C ; --------------------------------------------------------------------------- loc_55CFE: ; CODE XREF: sub_559D6+322j cmpi.b #$F1,d3 bcc.s loc_55D18 andi.w #$FF,d3 movea.w #$11,a4 sub.w a4,d3 asl.w #6,d3 ext.l d3 divs.w #7,d3 bra.s loc_55D1C ; --------------------------------------------------------------------------- loc_55D18: ; CODE XREF: sub_559D6+32Cj move.w #$800,d3 loc_55D1C: ; CODE XREF: sub_559D6+326j ; sub_559D6+340j lea (XPRS_GARAGE_PRESSURE_KA_GS_PN_TO_DRIVE_PULSE_TIME).l,a0 ; The sum of this calibration and the adapt table is thetotal pulse time commanded for garage shit type Park_Neutral_To_Drive ; Seconds loc_55D22: ; CODE XREF: sub_559D6+3E0j ; sub_559D6+450j move.l d3,d0 loc_55D24: ; CODE XREF: sub_559D6+4BCj moveq #$12,d2 jsr (sub_16D6).l clr.l d3 move.w d0,d3 add.l d7,d3 tst.l d3 blt.w loc_55E96 cmpi.l #$FFFF,d3 bls.w loc_55E98 move.w #$FFFF,d3 bra.w loc_55E98 ; --------------------------------------------------------------------------- loc_55D4A: ; CODE XREF: sub_559D6+2CAj move.w (XPRS_GARAGE_PRESSURE_KE_GS_PN_TO_REVERSE_PULSE).l,(word_FFFFA500).w ; This calibrations returns a pressure pulse value forgarage shift type of Park_Neutral_To_Reverse ; PSI jsr sub_558DA ext.l d0 move.l d0,d7 move.w (word_FFFF9590).w,d3 addi.b #$36,d3 ; '6' move.w (word_FFFF95B6).w,d1 clr.w d4 cmpi.w #$800,d1 bcc.s loc_55D74 move.l d4,d1 bra.s loc_55D88 ; --------------------------------------------------------------------------- loc_55D74: ; CODE XREF: sub_559D6+398j cmpi.w #$1800,d1 bcc.s loc_55D84 lsr.w #1,d1 movea.w #$400,a4 sub.w a4,d1 bra.s loc_55D88 ; --------------------------------------------------------------------------- loc_55D84: ; CODE XREF: sub_559D6+3A2j move.w #$800,d1 loc_55D88: ; CODE XREF: sub_559D6+39Cj ; sub_559D6+3ACj cmpi.b #$11,d3 bcc.s loc_55D92 clr.w d3 bra.s loc_55DB0 ; --------------------------------------------------------------------------- loc_55D92: ; CODE XREF: sub_559D6+3B6j cmpi.b #$F1,d3 bcc.s loc_55DAC andi.w #$FF,d3 movea.w #$11,a4 sub.w a4,d3 asl.w #6,d3 ext.l d3 divs.w #7,d3 bra.s loc_55DB0 ; --------------------------------------------------------------------------- loc_55DAC: ; CODE XREF: sub_559D6+3C0j move.w #$800,d3 loc_55DB0: ; CODE XREF: sub_559D6+3BAj ; sub_559D6+3D4j lea (XPRS_GARAGE_PRESSURE_KA_GS_PN_TO_REVERSE_PULSE_TIME).l,a0 ; The sum of this calibration and the adapt table is thetotal pulse time commanded for garage shit type Park_Neutral_To_Reverse ; Seconds bra.w loc_55D22 ; --------------------------------------------------------------------------- loc_55DBA: ; CODE XREF: sub_559D6+2DCj move.w (XPRS_GARAGE_PRESSURE_KE_GS_REVERSE_TO_DRIVE_PULSE).l,(word_FFFFA500).w ; This calibrations returns a pressure pulse value forgarage shift type of Reverse_To_Drive ; PSI jsr sub_558A2 ext.l d0 move.l d0,d7 move.w (word_FFFF9590).w,d3 addi.b #$36,d3 ; '6' move.w (word_FFFF95B6).w,d1 clr.w d4 cmpi.w #$800,d1 bcc.s loc_55DE4 move.l d4,d1 bra.s loc_55DF8 ; --------------------------------------------------------------------------- loc_55DE4: ; CODE XREF: sub_559D6+408j cmpi.w #$1800,d1 bcc.s loc_55DF4 lsr.w #1,d1 movea.w #$400,a4 sub.w a4,d1 bra.s loc_55DF8 ; --------------------------------------------------------------------------- loc_55DF4: ; CODE XREF: sub_559D6+412j move.w #$800,d1 loc_55DF8: ; CODE XREF: sub_559D6+40Cj ; sub_559D6+41Cj cmpi.b #$11,d3 bcc.s loc_55E02 clr.w d3 bra.s loc_55E20 ; --------------------------------------------------------------------------- loc_55E02: ; CODE XREF: sub_559D6+426j cmpi.b #$F1,d3 bcc.s loc_55E1C andi.w #$FF,d3 movea.w #$11,a4 sub.w a4,d3 asl.w #6,d3 ext.l d3 divs.w #7,d3 bra.s loc_55E20 ; --------------------------------------------------------------------------- loc_55E1C: ; CODE XREF: sub_559D6+430j move.w #$800,d3 loc_55E20: ; CODE XREF: sub_559D6+42Aj ; sub_559D6+444j lea (XPRS_GARAGE_PRESSURE_KA_GS_REV_TO_DRIVE_PULSE_TIME).l,a0 ; The sum of this calibration and the adapt table is thetotal pulse time commanded for garage shit typeReverse_To_Drive ; Seconds bra.w loc_55D22 ; --------------------------------------------------------------------------- loc_55E2A: ; CODE XREF: sub_559D6+2D8j move.w (XPRS_GARAGE_PRESSURE_KE_GS_DRIVE_TO_REVERSE_PULSE).l,(word_FFFFA500).w ; This calibraions returns a pressure pulse value for garageshift type of Drive_To_Reverse ; PSI jsr sub_558DA ext.l d0 move.l d0,d7 move.w (word_FFFF9590).w,d0 addi.b #$36,d0 ; '6' move.w (word_FFFF95B6).w,d1 clr.w d3 cmpi.w #$800,d1 bcc.s loc_55E54 move.l d3,d1 bra.s loc_55E68 ; --------------------------------------------------------------------------- loc_55E54: ; CODE XREF: sub_559D6+478j cmpi.w #$1800,d1 bcc.s loc_55E64 lsr.w #1,d1 movea.w #$400,a4 sub.w a4,d1 bra.s loc_55E68 ; --------------------------------------------------------------------------- loc_55E64: ; CODE XREF: sub_559D6+482j move.w #$800,d1 loc_55E68: ; CODE XREF: sub_559D6+47Cj ; sub_559D6+48Cj moveq #$11,d3 cmp.b d0,d3 bls.s loc_55E72 clr.w d0 bra.s loc_55E8C ; --------------------------------------------------------------------------- loc_55E72: ; CODE XREF: sub_559D6+496j cmpi.b #$F1,d0 bcc.s loc_55E88 andi.w #$FF,d0 sub.w d3,d0 asl.w #6,d0 ext.l d0 divs.w #7,d0 bra.s loc_55E8C ; --------------------------------------------------------------------------- loc_55E88: ; CODE XREF: sub_559D6+4A0j move.w #$800,d0 loc_55E8C: ; CODE XREF: sub_559D6+49Aj ; sub_559D6+4B0j lea (XPRS_GARAGE_PRESSURE_KA_GS_DRIVE_TO_REV_PULSE_TIME).l,a0 ; The sum of this calibration and the adapt table is thetotal pulse time commanded for garage shit type Drive_To_Reverse ; Seconds bra.w loc_55D24 ; --------------------------------------------------------------------------- loc_55E96: ; CODE XREF: sub_559D6+35Ej clr.w d3 loc_55E98: ; CODE XREF: sub_559D6+368j ; sub_559D6+370j move.w d3,(word_FFFFA510).w bra.w loc_560A8 ; --------------------------------------------------------------------------- loc_55EA0: ; CODE XREF: sub_559D6+2C6j ; sub_559D6+2D0j clr.w (word_FFFFA500).w bra.w loc_560A8 ; --------------------------------------------------------------------------- loc_55EA8: ; CODE XREF: sub_559D6+214j ; sub_559D6+25Aj ... bclr #1,(byte_FFFFA4FC).w bclr #4,(byte_FFFFA4FC).w clr.w (word_FFFFA500).w move.b (byte_FFFFA4F8).w,d3 cmpi.b #4,d3 bhi.w loc_560A8 beq.s loc_55F2E tst.b d3 beq.w loc_560A8 cmpi.b #2,d3 beq.w loc_55FEA bls.w loc_55F8C move.w (word_FFFF9590).w,d3 moveq #$36,d7 ; '6' add.b d7,d3 move.w (word_FFFF95B6).w,d4 clr.w d5 cmpi.w #$800,d4 bcc.s loc_55EF0 move.l d5,d4 bra.s loc_55F04 ; --------------------------------------------------------------------------- loc_55EF0: ; CODE XREF: sub_559D6+514j cmpi.w #$1800,d4 bcc.s loc_55F00 lsr.w #1,d4 movea.w #$400,a4 sub.w a4,d4 bra.s loc_55F04 ; --------------------------------------------------------------------------- loc_55F00: ; CODE XREF: sub_559D6+51Ej move.w #$800,d4 loc_55F04: ; CODE XREF: sub_559D6+518j ; sub_559D6+528j cmpi.b #$11,d3 bcc.s loc_55F10 loc_55F0A: ; CODE XREF: sub_559D6+6B0j clr.w d3 bra.w loc_56092 ; --------------------------------------------------------------------------- loc_55F10: ; CODE XREF: sub_559D6+532j ; sub_559D6+6B4j cmpi.b #$F1,d3 bcc.w loc_5608E andi.w #$FF,d3 movea.w #$11,a4 sub.w a4,d3 asl.w #6,d3 ext.l d3 divs.w #7,d3 bra.w loc_56092 ; --------------------------------------------------------------------------- loc_55F2E: ; CODE XREF: sub_559D6+4EEj move.w (word_FFFF9590).w,d3 moveq #$36,d7 ; '6' add.b d7,d3 move.w (word_FFFF95B6).w,d4 clr.w d5 cmpi.w #$800,d4 bcc.s loc_55F46 move.l d5,d4 bra.s loc_55F5A ; --------------------------------------------------------------------------- loc_55F46: ; CODE XREF: sub_559D6+56Aj cmpi.w #$1800,d4 bcc.s loc_55F56 lsr.w #1,d4 movea.w #$400,a4 sub.w a4,d4 bra.s loc_55F5A ; --------------------------------------------------------------------------- loc_55F56: ; CODE XREF: sub_559D6+574j move.w #$800,d4 loc_55F5A: ; CODE XREF: sub_559D6+56Ej ; sub_559D6+57Ej cmpi.b #$11,d3 bcc.s loc_55F64 clr.w d3 bra.s loc_55F82 ; --------------------------------------------------------------------------- loc_55F64: ; CODE XREF: sub_559D6+588j cmpi.b #$F1,d3 bcc.s loc_55F7E andi.w #$FF,d3 movea.w #$11,a4 sub.w a4,d3 asl.w #6,d3 ext.l d3 divs.w #7,d3 bra.s loc_55F82 ; --------------------------------------------------------------------------- loc_55F7E: ; CODE XREF: sub_559D6+592j move.w #$800,d3 loc_55F82: ; CODE XREF: sub_559D6+58Cj ; sub_559D6+5A6j lea (XPRS_GARAGE_PRESSURE_KA_GS_PN_TO_REVERSE_BASE_PRES).l,a0 ; Three dimensional table determining base garage pressurewhen a park/neutral to drive garage shift occurs ; PSI bra.w loc_56098 ; --------------------------------------------------------------------------- loc_55F8C: ; CODE XREF: sub_559D6+4FEj move.w (word_FFFF9590).w,d3 moveq #$36,d7 ; '6' add.b d7,d3 move.w (word_FFFF95B6).w,d4 clr.w d5 cmpi.w #$800,d4 bcc.s loc_55FA4 move.l d5,d4 bra.s loc_55FB8 ; --------------------------------------------------------------------------- loc_55FA4: ; CODE XREF: sub_559D6+5C8j cmpi.w #$1800,d4 bcc.s loc_55FB4 lsr.w #1,d4 movea.w #$400,a4 sub.w a4,d4 bra.s loc_55FB8 ; --------------------------------------------------------------------------- loc_55FB4: ; CODE XREF: sub_559D6+5D2j move.w #$800,d4 loc_55FB8: ; CODE XREF: sub_559D6+5CCj ; sub_559D6+5DCj cmpi.b #$11,d3 bcc.s loc_55FC2 clr.w d3 bra.s loc_55FE0 ; --------------------------------------------------------------------------- loc_55FC2: ; CODE XREF: sub_559D6+5E6j cmpi.b #$F1,d3 bcc.s loc_55FDC andi.w #$FF,d3 movea.w #$11,a4 sub.w a4,d3 asl.w #6,d3 ext.l d3 divs.w #7,d3 bra.s loc_55FE0 ; --------------------------------------------------------------------------- loc_55FDC: ; CODE XREF: sub_559D6+5F0j move.w #$800,d3 loc_55FE0: ; CODE XREF: sub_559D6+5EAj ; sub_559D6+604j lea (XPRS_GARAGE_PRESSURE_KA_GS_REVERSE_TO_DRIVE_BASE_PRES).l,a0 ; Three dimensional table determining base garage pressurewhen a reverse to drive garage shift occurs ; PSI bra.w loc_56098 ; --------------------------------------------------------------------------- loc_55FEA: ; CODE XREF: sub_559D6+4FAj move.w (word_FFFF9590).w,d3 moveq #$36,d7 ; '6' add.b d7,d3 move.w (word_FFFF95B6).w,d4 clr.w d5 cmpi.w #$800,d4 bcc.s loc_56002 move.l d5,d4 bra.s loc_56016 ; --------------------------------------------------------------------------- loc_56002: ; CODE XREF: sub_559D6+626j cmpi.w #$1800,d4 bcc.s loc_56012 lsr.w #1,d4 movea.w #$400,a4 sub.w a4,d4 bra.s loc_56016 ; --------------------------------------------------------------------------- loc_56012: ; CODE XREF: sub_559D6+630j move.w #$800,d4 loc_56016: ; CODE XREF: sub_559D6+62Aj ; sub_559D6+63Aj cmpi.b #$11,d3 bcc.s loc_56020 clr.w d3 bra.s loc_5603E ; --------------------------------------------------------------------------- loc_56020: ; CODE XREF: sub_559D6+644j cmpi.b #$F1,d3 bcc.s loc_5603A andi.w #$FF,d3 movea.w #$11,a4 sub.w a4,d3 asl.w #6,d3 ext.l d3 divs.w #7,d3 bra.s loc_5603E ; --------------------------------------------------------------------------- loc_5603A: ; CODE XREF: sub_559D6+64Ej move.w #$800,d3 loc_5603E: ; CODE XREF: sub_559D6+648j ; sub_559D6+662j lea (XPRS_GARAGE_PRESSURE_KA_GS_DRIVE_TO_REVERSE_BASE_PRES).l,a0 ; Three dimensional table determining base garage pressurewhen a Drive to reverse garage shift occurs ; PSI bra.s loc_56098 ; --------------------------------------------------------------------------- loc_56046: ; CODE XREF: sub_559D6+1F2j move.b (byte_FFFFA4F8).w,d3 moveq #5,d7 cmp.b d3,d7 beq.s loc_56056 moveq #6,d2 cmp.b d3,d2 bne.s loc_560A8 loc_56056: ; CODE XREF: sub_559D6+678j move.w (word_FFFF9590).w,d3 addi.b #$36,d3 ; '6' move.w (word_FFFF95B6).w,d4 clr.w d5 cmpi.w #$800,d4 bcc.s loc_5606E move.l d5,d4 bra.s loc_56082 ; --------------------------------------------------------------------------- loc_5606E: ; CODE XREF: sub_559D6+692j cmpi.w #$1800,d4 bcc.s loc_5607E lsr.w #1,d4 movea.w #$400,a4 sub.w a4,d4 bra.s loc_56082 ; --------------------------------------------------------------------------- loc_5607E: ; CODE XREF: sub_559D6+69Cj move.w #$800,d4 loc_56082: ; CODE XREF: sub_559D6+696j ; sub_559D6+6A6j cmpi.b #$11,d3 bcs.w loc_55F0A bra.w loc_55F10 ; --------------------------------------------------------------------------- loc_5608E: ; CODE XREF: sub_559D6+53Ej move.w #$800,d3 loc_56092: ; CODE XREF: sub_559D6+536j ; sub_559D6+554j lea (XPRS_GARAGE_PRESSURE_KA_GS_PN_TO_DRIVE_BASE_PRES).l,a0 ; Three dimensional table determining base garage pressurewhen a park/neutral to drive garage shift occurs ; PSI loc_56098: ; CODE XREF: sub_559D6+5B2j ; sub_559D6+610j ... move.l d3,d0 move.l d4,d1 moveq #$12,d2 jsr (sub_16D6).l move.w d0,(word_FFFFA508).w loc_560A8: ; CODE XREF: sub_559D6+4C6j ; sub_559D6+4CEj ... btst #1,(byte_FFFFA4FC).w beq.w loc_5628C move.w (word_FFFFA51E).w,d3 cmp.w (word_FFFFA510).w,d3 bcc.s loc_560E2 tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_560CC btst #5,(byte_FFFFA4FC).w bne.s loc_560E2 loc_560CC: ; CODE XREF: sub_559D6+6ECj movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_560DA move.w #$FFFF,d3 loc_560DA: ; CODE XREF: sub_559D6+6FEj move.w d3,(word_FFFFA51E).w bra.w loc_5627A ; --------------------------------------------------------------------------- loc_560E2: ; CODE XREF: sub_559D6+6E4j ; sub_559D6+6F4j bclr #1,(byte_FFFFA4FC).w clr.w (word_FFFFA500).w move.b (byte_FFFFA4F8).w,d0 cmpi.b #4,d0 bhi.w loc_5627A beq.s loc_56166 tst.b d0 beq.w loc_5627A cmpi.b #2,d0 beq.w loc_5621A bls.w loc_561BE move.w (word_FFFF9590).w,d3 moveq #$36,d7 ; '6' add.b d7,d3 move.w (word_FFFF95B6).w,d4 clr.w d5 cmpi.w #$800,d4 bcc.s loc_56124 move.l d5,d4 bra.s loc_56136 ; --------------------------------------------------------------------------- loc_56124: ; CODE XREF: sub_559D6+748j cmpi.w #$1800,d4 bcc.s loc_56132 lsr.w #1,d4 subi.w #$400,d4 bra.s loc_56136 ; --------------------------------------------------------------------------- loc_56132: ; CODE XREF: sub_559D6+752j move.w #$800,d4 loc_56136: ; CODE XREF: sub_559D6+74Cj ; sub_559D6+75Aj cmpi.b #$11,d3 bcc.s loc_56140 clr.w d3 bra.s loc_5615C ; --------------------------------------------------------------------------- loc_56140: ; CODE XREF: sub_559D6+764j cmpi.b #$F1,d3 bcc.s loc_56158 andi.w #$FF,d3 subi.w #$11,d3 asl.w #6,d3 ext.l d3 divs.w #7,d3 bra.s loc_5615C ; --------------------------------------------------------------------------- loc_56158: ; CODE XREF: sub_559D6+76Ej move.w #$800,d3 loc_5615C: ; CODE XREF: sub_559D6+768j ; sub_559D6+780j lea (XPRS_GARAGE_PRESSURE_KA_GS_PN_TO_DRIVE_BASE_PRES).l,a0 ; Three dimensional table determining base garage pressurewhen a park/neutral to drive garage shift occurs ; PSI bra.w loc_56214 ; --------------------------------------------------------------------------- loc_56166: ; CODE XREF: sub_559D6+722j move.w (word_FFFF9590).w,d3 moveq #$36,d7 ; '6' add.b d7,d3 move.w (word_FFFF95B6).w,d4 clr.w d5 cmpi.w #$800,d4 bcc.s loc_5617E move.l d5,d4 bra.s loc_56190 ; --------------------------------------------------------------------------- loc_5617E: ; CODE XREF: sub_559D6+7A2j cmpi.w #$1800,d4 bcc.s loc_5618C lsr.w #1,d4 subi.w #$400,d4 bra.s loc_56190 ; --------------------------------------------------------------------------- loc_5618C: ; CODE XREF: sub_559D6+7ACj move.w #$800,d4 loc_56190: ; CODE XREF: sub_559D6+7A6j ; sub_559D6+7B4j cmpi.b #$11,d3 bcc.s loc_5619A clr.w d3 bra.s loc_561B6 ; --------------------------------------------------------------------------- loc_5619A: ; CODE XREF: sub_559D6+7BEj cmpi.b #$F1,d3 bcc.s loc_561B2 andi.w #$FF,d3 subi.w #$11,d3 asl.w #6,d3 ext.l d3 divs.w #7,d3 bra.s loc_561B6 ; --------------------------------------------------------------------------- loc_561B2: ; CODE XREF: sub_559D6+7C8j move.w #$800,d3 loc_561B6: ; CODE XREF: sub_559D6+7C2j ; sub_559D6+7DAj lea (XPRS_GARAGE_PRESSURE_KA_GS_PN_TO_REVERSE_BASE_PRES).l,a0 ; Three dimensional table determining base garage pressurewhen a park/neutral to drive garage shift occurs ; PSI bra.s loc_56214 ; --------------------------------------------------------------------------- loc_561BE: ; CODE XREF: sub_559D6+732j move.w (word_FFFF9590).w,d3 moveq #$36,d7 ; '6' add.b d7,d3 move.w (word_FFFF95B6).w,d4 clr.w d5 cmpi.w #$800,d4 bcc.s loc_561D6 move.l d5,d4 bra.s loc_561E8 ; --------------------------------------------------------------------------- loc_561D6: ; CODE XREF: sub_559D6+7FAj cmpi.w #$1800,d4 bcc.s loc_561E4 lsr.w #1,d4 subi.w #$400,d4 bra.s loc_561E8 ; --------------------------------------------------------------------------- loc_561E4: ; CODE XREF: sub_559D6+804j move.w #$800,d4 loc_561E8: ; CODE XREF: sub_559D6+7FEj ; sub_559D6+80Cj cmpi.b #$11,d3 bcc.s loc_561F2 clr.w d3 bra.s loc_5620E ; --------------------------------------------------------------------------- loc_561F2: ; CODE XREF: sub_559D6+816j cmpi.b #$F1,d3 bcc.s loc_5620A andi.w #$FF,d3 subi.w #$11,d3 asl.w #6,d3 ext.l d3 divs.w #7,d3 bra.s loc_5620E ; --------------------------------------------------------------------------- loc_5620A: ; CODE XREF: sub_559D6+820j move.w #$800,d3 loc_5620E: ; CODE XREF: sub_559D6+81Aj ; sub_559D6+832j lea (XPRS_GARAGE_PRESSURE_KA_GS_REVERSE_TO_DRIVE_BASE_PRES).l,a0 ; Three dimensional table determining base garage pressurewhen a reverse to drive garage shift occurs ; PSI loc_56214: ; CODE XREF: sub_559D6+78Cj ; sub_559D6+7E6j move.l d3,d0 move.l d4,d1 bra.s loc_5626E ; --------------------------------------------------------------------------- loc_5621A: ; CODE XREF: sub_559D6+72Ej move.w (word_FFFF9590).w,d0 moveq #$36,d7 ; '6' add.b d7,d0 move.w (word_FFFF95B6).w,d1 clr.w d3 cmpi.w #$800,d1 bcc.s loc_56232 move.l d3,d1 bra.s loc_56244 ; --------------------------------------------------------------------------- loc_56232: ; CODE XREF: sub_559D6+856j cmpi.w #$1800,d1 bcc.s loc_56240 lsr.w #1,d1 subi.w #$400,d1 bra.s loc_56244 ; --------------------------------------------------------------------------- loc_56240: ; CODE XREF: sub_559D6+860j move.w #$800,d1 loc_56244: ; CODE XREF: sub_559D6+85Aj ; sub_559D6+868j moveq #$11,d3 cmp.b d0,d3 bls.s loc_5624E clr.w d0 bra.s loc_56268 ; --------------------------------------------------------------------------- loc_5624E: ; CODE XREF: sub_559D6+872j cmpi.b #$F1,d0 bcc.s loc_56264 andi.w #$FF,d0 sub.w d3,d0 asl.w #6,d0 ext.l d0 divs.w #7,d0 bra.s loc_56268 ; --------------------------------------------------------------------------- loc_56264: ; CODE XREF: sub_559D6+87Cj move.w #$800,d0 loc_56268: ; CODE XREF: sub_559D6+876j ; sub_559D6+88Cj lea (XPRS_GARAGE_PRESSURE_KA_GS_DRIVE_TO_REVERSE_BASE_PRES).l,a0 ; Three dimensional table determining base garage pressurewhen a Drive to reverse garage shift occurs ; PSI loc_5626E: ; CODE XREF: sub_559D6+842j moveq #$12,d2 jsr (sub_16D6).l move.w d0,(word_FFFFA508).w loc_5627A: ; CODE XREF: sub_559D6+708j ; sub_559D6+71Ej ... move.w (word_FFFF95DA).w,d3 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_REVERSE_DRIVE_MPH).l,d3 bcs.s loc_5628C bclr #4,(byte_FFFFA4FC).w loc_5628C: ; CODE XREF: sub_559D6+6D8j ; sub_559D6+8AEj btst #4,(byte_FFFFA4FD).w beq.s loc_562A0 bclr #0,(byte_FFFFA4FC).w bclr #2,(byte_FFFFA4FC).w loc_562A0: ; CODE XREF: sub_559D6+8BCj btst #5,(byte_FFFFA4FD).w bne.s loc_5631C move.b (byte_FFFFA4F8).w,d3 cmpi.b #1,d3 beq.s loc_562B8 cmpi.b #2,d3 bne.s loc_562F6 loc_562B8: ; CODE XREF: sub_559D6+8DAj tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_562F6 move.w (word_FFFFB3FE).w,d3 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_RD_TO_DR_INPUT_ACCEL_HIGH).l,d3 ble.s loc_562D4 bset #0,(byte_FFFFA4FC).w bra.s loc_5631C ; --------------------------------------------------------------------------- loc_562D4: ; CODE XREF: sub_559D6+8F4j btst #0,(byte_FFFFA4FC).w beq.s loc_5631C cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_RD_TO_DR_INPUT_ACCEL_LOW).l,d3 bge.s loc_5631C loc_562E4: ; CODE XREF: sub_559D6+93Ej bset #5,(byte_FFFFA4FD).w clr.w (word_FFFFA514).w bset #2,(byte_FFFFA4FC).w bra.s loc_5631C ; --------------------------------------------------------------------------- loc_562F6: ; CODE XREF: sub_559D6+8E0j ; sub_559D6+8E8j cmpi.b #3,d3 beq.s loc_56302 moveq #4,d5 cmp.b d3,d5 bne.s loc_56316 loc_56302: ; CODE XREF: sub_559D6+924j tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_56316 move.w (word_FFFFB3FE).w,d3 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_PN_TO_RD_INPUT_ACCEL_THRE).l,d3 blt.s loc_562E4 loc_56316: ; CODE XREF: sub_559D6+92Aj ; sub_559D6+932j bclr #0,(byte_FFFFA4FC).w loc_5631C: ; CODE XREF: sub_559D6+8D0j ; sub_559D6+8FCj ... move.w (XPRS_GARAGE_PRESSURE_KE_GS_DELAY_TIME_MAX).l,d1 ; Garage shift delay time must be less than this calibrationin order for garage shift fill pulse time adapt to bemodified ; Seconds cmp.w (word_FFFFA512).w,d1 bls.s loc_5634C move.w (word_FFFF9590).w,d3 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_TEMP_HIGH).l,d3 ; This calibration is for setting the Garage PressureModifier to 0. ; Degrees C bge.s loc_5634C move.w (word_FFFF9590).w,d3 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_TEMP_LOW).l,d3 ; This calibration is for setting the Garage PressureModifier to 0. ; Degrees C ble.s loc_5634C move.w (word_FFFF9582).w,d3 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_MAX_TPS).l,d3 ; Maximum throttle position for disabling garage profile. ; Percent bls.s loc_56358 loc_5634C: ; CODE XREF: sub_559D6+950j ; sub_559D6+95Cj ... bclr #2,(byte_FFFFA4FC).w bclr #0,(byte_FFFFA4FC).w loc_56358: ; CODE XREF: sub_559D6+974j btst #2,(byte_FFFFA4FC).w beq.w loc_56436 btst #6,(byte_FFFFA4FC).w bne.s loc_56382 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA514).w,d3 add.w $A(a2),d3 bcc.s loc_5637C move.w #$FFFF,d3 loc_5637C: ; CODE XREF: sub_559D6+9A0j move.w d3,(word_FFFFA514).w bra.s loc_5638E ; --------------------------------------------------------------------------- loc_56382: ; CODE XREF: sub_559D6+992j bclr #2,(byte_FFFFA4FC).w bclr #0,(byte_FFFFA4FC).w loc_5638E: ; CODE XREF: sub_559D6+9AAj move.w (word_FFFFA514).w,d3 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_PHASE_1_TIME).l,d3 ; Time limit for phase 1 of the garage shift pressureprofile ; Seconds bcc.s loc_563C8 movea.l (dword_FFFFB5DE).w,a2 clr.l d7 move.w $A(a2),d7 move.w (XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_PHASE_1_RATE).l,d3 ; Value that iscontinuously added to garage shift pressure profilemodifier until phase 1 time has been reached ; PSI/Second ext.l d3 muls.l d7,d3 move.w #$80,d7 ; '?' divs.w d7,d3 bvc.s loc_56422 loc_563B8: ; CODE XREF: sub_559D6+A16j ; sub_559D6+A4Aj swap d3 eor.w d7,d3 bpl.s loc_563F6 loc_563BE: ; CODE XREF: sub_559D6:loc_563F4j ; sub_559D6+A5Cj move.w #$E800,d3 loc_563C2: ; CODE XREF: sub_559D6+A24j ; sub_559D6+A5Ej move.w d3,(word_FFFFA50C).w bra.s loc_5643A ; --------------------------------------------------------------------------- loc_563C8: ; CODE XREF: sub_559D6+9C2j cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_PHASE_2_TIME).l,d3 ; Time limit for phase 2 of the garage shift pressureprofile ; Seconds bcc.s loc_563FC movea.l (dword_FFFFB5DE).w,a2 clr.l d7 move.w $A(a2),d7 move.w (XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_PHASE_2_RATE).l,d3 ; Value that iscontinuously added to garage shift pressure profilemodifier until phase 2 time has been reached ; PSI/Second ext.l d3 muls.l d7,d3 move.w #$80,d7 ; '?' divs.w d7,d3 bvs.s loc_563B8 add.w (word_FFFFA50C).w,d3 bvc.s loc_56428 loc_563F4: ; CODE XREF: sub_559D6+A50j bpl.s loc_563BE loc_563F6: ; CODE XREF: sub_559D6+9E6j ; sub_559D6+A56j move.w #$1800,d3 bra.s loc_563C2 ; --------------------------------------------------------------------------- loc_563FC: ; CODE XREF: sub_559D6+9F8j cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_PHASE_3_TIME).l,d3 ; Time limit for phase 3 of the garage shift pressureprofile ; Seconds bcc.s loc_5643A movea.l (dword_FFFFB5DE).w,a2 clr.l d7 move.w $A(a2),d7 move.w (XPRS_GARAGE_PRESSURE_KE_GS_PROFILE_PHASE_3_RATE).l,d3 ext.l d3 muls.l d7,d3 move.w #$80,d7 ; '?' divs.w d7,d3 bvs.s loc_563B8 loc_56422: ; CODE XREF: sub_559D6+9E0j add.w (word_FFFFA50C).w,d3 bvs.s loc_563F4 loc_56428: ; CODE XREF: sub_559D6+A1Cj cmpi.w #$1800,d3 bgt.s loc_563F6 cmpi.w #$E800,d3 blt.s loc_563BE bra.s loc_563C2 ; --------------------------------------------------------------------------- loc_56436: ; CODE XREF: sub_559D6+988j clr.w (word_FFFFA50C).w loc_5643A: ; CODE XREF: sub_559D6+9F0j ; sub_559D6+A2Cj btst #6,(byte_FFFFA4FC).w bne.w loc_564CA move.w (word_FFFF9590).w,d3 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_TRANS_TEMP_LOW).l,d3 ; The low limit of transmission temperature for garageshift fill pulse time adapt to be modified ; DegreesC ble.s loc_56458 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_TRANS_TEMP_HIGH).l,d3 ; The high limit of transmission temperature for garageshift fill pulse time adapt to be modified ; DegreesC blt.s loc_5645E loc_56458: ; CODE XREF: sub_559D6+A78j bset #0,(byte_FFFFA516).w loc_5645E: ; CODE XREF: sub_559D6+A80j move.b (byte_FFFFA4F8).w,d3 cmpi.b #3,d3 beq.s loc_56474 cmpi.b #4,d3 beq.s loc_56474 bset #1,(byte_FFFFA516).w loc_56474: ; CODE XREF: sub_559D6+A90j ; sub_559D6+A96j btst #4,(byte_FFFFA4FC).w bne.s loc_56482 bset #2,(byte_FFFFA516).w loc_56482: ; CODE XREF: sub_559D6+AA4j move.w (word_FFFF95B6).w,d3 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_ENGINE_SPEED_LOW).l,d3 ; The low limit of engine speed for garage shift fillpulse time adapt to be modified ; RPM bls.s loc_56496 cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_ENGINE_SPEED_HIGH).l,d3 ; The high limit of engine speed for garage shift fillpulse time adapt to be modified ; RPM bcs.s loc_5649C loc_56496: ; CODE XREF: sub_559D6+AB6j bset #3,(byte_FFFFA516).w loc_5649C: ; CODE XREF: sub_559D6+ABEj move.w (XPRS_GARAGE_PRESSURE_KE_GS_DELAY_TIME_MAX).l,d5 ; Garage shift delay time must be less than this calibrationin order for garage shift fill pulse time adapt to bemodified ; Seconds cmp.w (word_FFFFA512).w,d5 bhi.s loc_564AE bset #4,(byte_FFFFA516).w loc_564AE: ; CODE XREF: sub_559D6+AD0j tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN bne.s loc_564BC bset #5,(byte_FFFFA516).w loc_564BC: ; CODE XREF: sub_559D6+ADEj tst.b (byte_FFFFA7F9).w beq.s loc_564D6 bset #7,(byte_FFFFA516).w bra.s loc_564D6 ; --------------------------------------------------------------------------- loc_564CA: ; CODE XREF: sub_559D6+A6Aj tst.b (byte_FFFFA4FA).w beq.s loc_564D6 bset #6,(byte_FFFFA516).w loc_564D6: ; CODE XREF: sub_559D6+AEAj ; sub_559D6+AF2j ... btst #5,(byte_FFFFA4FC).w beq.w loc_5670C btst #7,(byte_FFFFA4FC).w bne.w loc_5670C tst.b (byte_FFFFA516).w bne.w loc_5670C bset #7,(byte_FFFFA4FC).w move.b (byte_FFFFA4F8).w,d3 cmpi.b #4,d3 bhi.s loc_56556 beq.s loc_56542 cmpi.b #2,d3 bls.s loc_56556 movea.l #XPRS_GARAGE_PRESSURE_KV_GS_PULSE_MOD_DRIVE_TABLE,a1 ; Pulse time adapt modifier table for a drive garage shift ; Seconds clr.w d6 move.b (XPRS_GARAGE_PRESSURE_KE_GS_PULSE_TIME_PERCENT_DRV).l,d6 ; This calibrationis the desired pulse time percent of the shift delayfor Park-Neutral to Drive shifts. ; Factor loc_56518: ; CODE XREF: sub_559D6+B7Aj mulu.w (word_FFFFA512).w,d6 lsr.l #8,d6 andi.l #$FFFF,d6 clr.l d3 move.w (word_FFFFA510).w,d3 sub.l d3,d6 cmpi.l #$FFFF8000,d6 blt.s loc_56552 cmpi.l #$7FFF,d6 ble.s loc_56556 move.w #$7FFF,d6 bra.s loc_56556 ; --------------------------------------------------------------------------- loc_56542: ; CODE XREF: sub_559D6+B2Cj movea.l #XPRS_GARAGE_PRESSURE_KV_GS_PULSE_MOD_REVERSE_TABLE,a1 ; Pulse time adapt modifier table for a reverse garage shift ; Seconds clr.w d6 move.b (XPRS_GARAGE_PRESSURE_KE_GS_PULSE_TIME_PERCENT_RVRS).l,d6 ; This calibrationis the desired pulse time percent of the shift delayfor Park-Neutral to Reverse shifts. ; Factor bra.s loc_56518 ; --------------------------------------------------------------------------- loc_56552: ; CODE XREF: sub_559D6+B5Cj move.w #$8000,d6 loc_56556: ; CODE XREF: sub_559D6+B2Aj ; sub_559D6+B32j ... movea.w #$1000,a2 clr.w d3 cmpi.w #$FFC0,d6 blt.s loc_56576 cmpi.w #$40,d6 ; '@' bge.s loc_56572 ext.l d6 moveq #$40,d3 ; '@' add.l d6,d3 asl.l #5,d3 bra.s loc_56576 ; --------------------------------------------------------------------------- loc_56572: ; CODE XREF: sub_559D6+B90j move.w #$1000,d3 loc_56576: ; CODE XREF: sub_559D6+B8Aj ; sub_559D6+B9Aj tbls.w (a1),d3 move.w d3,var_A(a6) move.w (word_FFFF9590).w,d3 cmpi.w #$BB,d3 ; '?' blt.s loc_56590 moveq #8,d1 move.b d1,var_2(a6) bra.s loc_565B2 ; --------------------------------------------------------------------------- loc_56590: ; CODE XREF: sub_559D6+BB0j addi.w #$36,d3 ; '6' asl.w #2,d3 andi.l #$FFFF,d3 moveq #3,d1 divu.w d1,d3 andi.l #$FFFF,d3 divu.w #$1C,d3 mulu.w d1,d3 lsr.b #2,d3 move.b d3,var_2(a6) loc_565B2: ; CODE XREF: sub_559D6+BB8j moveq #$FFFFFFFE,d7 loc_565B4: ; CODE XREF: sub_559D6+D0Ej move.b var_2(a6),d2 add.b d7,d2 tst.b d2 blt.w loc_566DE cmpi.b #8,d2 bgt.w loc_566DE move.l d7,d1 ext.w d1 clr.w d3 move.b byte_1BA00(d1.w),d3 muls.w var_A(a6),d3 bpl.s loc_565E2 addi.l #$3FF,d3 loc_565E2: ; CODE XREF: sub_559D6+C04j asr.l #8,d3 asr.l #2,d3 cmpi.w #$FF80,d3 blt.s loc_565FE cmpi.w #$7F,d3 ; '' bgt.s loc_565FA cmpi.b #$81,d3 blt.s loc_565FE bra.s loc_56600 ; --------------------------------------------------------------------------- loc_565FA: ; CODE XREF: sub_559D6+C1Aj moveq #$7F,d3 ; '' bra.s loc_56600 ; --------------------------------------------------------------------------- loc_565FE: ; CODE XREF: sub_559D6+C14j ; sub_559D6+C20j moveq #$FFFFFF81,d3 loc_56600: ; CODE XREF: sub_559D6+C22j ; sub_559D6+C26j move.b (byte_FFFFA4F8).w,d1 cmpi.b #4,d1 bhi.s loc_5662C beq.s loc_5661E cmpi.b #2,d1 bls.s loc_5662C clr.w d4 move.b d2,d4 move.b -$7368(d4.w),d6 bra.s loc_56628 ; --------------------------------------------------------------------------- loc_5661E: ; CODE XREF: sub_559D6+C34j clr.w d4 move.b d2,d4 move.b -$735E(d4.w),d6 loc_56628: ; CODE XREF: sub_559D6+C46j move.b d6,var_1(a6) loc_5662C: ; CODE XREF: sub_559D6+C32j ; sub_559D6+C3Aj move.l d3,d0 move.b var_1(a6),d6 add.b d6,d0 bvc.s loc_5663A bmi.s loc_56642 bra.s loc_56646 ; --------------------------------------------------------------------------- loc_5663A: ; CODE XREF: sub_559D6+C5Ej cmpi.b #$81,d0 blt.s loc_56646 bra.s loc_56648 ; --------------------------------------------------------------------------- loc_56642: ; CODE XREF: sub_559D6+C60j moveq #$7F,d0 ; '' bra.s loc_56648 ; --------------------------------------------------------------------------- loc_56646: ; CODE XREF: sub_559D6+C62j ; sub_559D6+C68j moveq #$FFFFFF81,d0 loc_56648: ; CODE XREF: sub_559D6+C6Aj ; sub_559D6+C6Ej move.w (XPRS_GARAGE_PRESSURE_KE_GS_ADAPT_TOTAL_PULSE_TIME_MAX).l,d5 lsr.w #2,d5 cmpi.w #$7F,d5 ; '' bls.s loc_56658 moveq #$7F,d5 ; '' loc_56658: ; CODE XREF: sub_559D6+C7Ej cmp.b d5,d0 ble.s loc_5666E move.w (XPRS_GARAGE_PRESSURE_KE_GS_ADAPT_TOTAL_PULSE_TIME_MAX).l,d1 lsr.w #2,d1 cmpi.w #$7F,d1 ; '' bls.s loc_56670 moveq #$7F,d1 ; '' bra.s loc_56670 ; --------------------------------------------------------------------------- loc_5666E: ; CODE XREF: sub_559D6+C84j move.b d0,d1 loc_56670: ; CODE XREF: sub_559D6+C92j ; sub_559D6+C96j clr.l d5 move.w (word_FFFFA510).w,d5 ext.w d3 asl.w #2,d3 ext.l d3 add.l d5,d3 tst.l d3 blt.s loc_56690 cmpi.l #$FFFF,d3 bls.s loc_56692 move.w #$FFFF,d3 bra.s loc_56692 ; --------------------------------------------------------------------------- loc_56690: ; CODE XREF: sub_559D6+CAAj clr.w d3 loc_56692: ; CODE XREF: sub_559D6+CB2j ; sub_559D6+CB8j cmp.w (XPRS_GARAGE_PRESSURE_KE_GS_DELAY_TIME_MAX).l,d3 ; Garage shift delay time must be less than this calibrationin order for garage shift fill pulse time adapt to bemodified ; Seconds bhi.s loc_566DE btst #2,(byte_FFFFA2A1).w bne.s loc_566DE move.w (XPRS_GARAGE_PRESSURE_KE_GS_ADAPT_TOTAL_PULSE_TIME_MAX).l,d3 lsr.w #2,d3 cmpi.w #$7F,d3 ; '' bls.s loc_566B2 moveq #$7F,d3 ; '' loc_566B2: ; CODE XREF: sub_559D6+CD8j cmp.b d3,d0 bgt.s loc_566DE move.b (byte_FFFFA4F8).w,d3 cmpi.b #4,d3 bhi.s loc_566DE beq.s loc_566D4 cmpi.b #2,d3 bls.s loc_566DE andi.w #$FF,d2 move.b d1,$26+var_738E(d2.w) bra.s loc_566DE ; --------------------------------------------------------------------------- loc_566D4: ; CODE XREF: sub_559D6+CEAj andi.w #$FF,d2 move.b d1,$26+var_7384(d2.w) loc_566DE: ; CODE XREF: sub_559D6+BE6j ; sub_559D6+BEEj ... addq.b #1,d7 cmpi.b #2,d7 ble.w loc_565B4 movea.l #unk_FF8C98,a0 moveq #9,d0 jsr sub_2654C move.w d0,(word_FFFF8CAC).w movea.l #unk_FF8CA2,a0 moveq #9,d0 jsr sub_2654C move.w d0,(word_FFFF8CAE).w loc_5670C: ; CODE XREF: sub_559D6+B06j ; sub_559D6+B10j ... jsr sub_55912 move.b (byte_FFFFA4F8).w,d6 beq.w loc_5679E move.b (byte_FFFF95E9).w,d3 moveq #3,d7 cmp.b d3,d7 bcs.s loc_56766 move.w (word_FFFF9582).w,d3 move.w (word_FFFF95DA).w,d4 cmpi.w #$C00,d4 bcc.s loc_5673C andi.l #$FFFF,d4 divu.w d7,d4 bra.s loc_56740 ; --------------------------------------------------------------------------- loc_5673C: ; CODE XREF: sub_559D6+D5Aj move.w #$400,d4 loc_56740: ; CODE XREF: sub_559D6+D64j cmpi.w #$2000,d3 bcc.s loc_5674A lsr.w #3,d3 bra.s loc_5674E ; --------------------------------------------------------------------------- loc_5674A: ; CODE XREF: sub_559D6+D6Ej move.w #$400,d3 loc_5674E: ; CODE XREF: sub_559D6+D72j lea (XPRS_GARAGE_PRESSURE_KA_GS_DRIVE_ROLLING_MODIFIER).l,a0 ; Rolling modifier to account for a garage shift made into drive with a moving powertrain ; PSI_s move.l d3,d0 move.l d4,d1 loc_56758: ; CODE XREF: sub_559D6+DC6j moveq #$A,d2 jsr sub_878FA move.w d0,var_8(a6) bra.s loc_5679E ; --------------------------------------------------------------------------- loc_56766: ; CODE XREF: sub_559D6+D4Cj cmpi.b #4,d3 bne.s loc_5679E move.w (word_FFFF9582).w,d0 move.w (word_FFFF95DA).w,d1 cmpi.w #$C00,d1 bcc.s loc_56784 andi.l #$FFFF,d1 divu.w d7,d1 bra.s loc_56788 ; --------------------------------------------------------------------------- loc_56784: ; CODE XREF: sub_559D6+DA2j move.w #$400,d1 loc_56788: ; CODE XREF: sub_559D6+DACj cmpi.w #$2000,d0 bcc.s loc_56792 lsr.w #3,d0 bra.s loc_56796 ; --------------------------------------------------------------------------- loc_56792: ; CODE XREF: sub_559D6+DB6j move.w #$400,d0 loc_56796: ; CODE XREF: sub_559D6+DBAj lea (XPRS_GARAGE_PRESSURE_KA_GS_REVERSE_ROLLING_MODIFIER).l,a0 ; Rolling modifier to account for a garage shift made into reverse with a moving powertrain ; PSI_s bra.s loc_56758 ; --------------------------------------------------------------------------- loc_5679E: ; CODE XREF: sub_559D6+D40j ; sub_559D6+D8Ej ... cmpi.b #5,d6 beq.s loc_567AA cmpi.b #6,d6 bne.s loc_567B2 loc_567AA: ; CODE XREF: sub_559D6+DCCj move.w (word_FFFFA508).w,(word_FFFFA4FE).w bra.s loc_56818 ; --------------------------------------------------------------------------- loc_567B2: ; CODE XREF: sub_559D6+DD2j move.w var_8(a6),d3 add.w (word_FFFFA50E).w,d3 cmpi.w #$1800,d3 bgt.s loc_567C8 cmpi.w #$E800,d3 blt.s loc_567CE bra.s loc_567D2 ; --------------------------------------------------------------------------- loc_567C8: ; CODE XREF: sub_559D6+DE8j move.w #$1800,d3 bra.s loc_567D2 ; --------------------------------------------------------------------------- loc_567CE: ; CODE XREF: sub_559D6+DEEj move.w #$E800,d3 loc_567D2: ; CODE XREF: sub_559D6+DF0j ; sub_559D6+DF6j add.w (word_FFFFA50C).w,d3 cmpi.w #$1800,d3 bgt.s loc_567E4 cmpi.w #$E800,d3 blt.s loc_567EA bra.s loc_567EE ; --------------------------------------------------------------------------- loc_567E4: ; CODE XREF: sub_559D6+E04j move.w #$1800,d3 bra.s loc_567EE ; --------------------------------------------------------------------------- loc_567EA: ; CODE XREF: sub_559D6+E0Aj move.w #$E800,d3 loc_567EE: ; CODE XREF: sub_559D6+E0Cj ; sub_559D6+E12j add.w (word_FFFFA500).w,d3 cmpi.w #$1800,d3 ble.s loc_567FC move.w #$1800,d3 loc_567FC: ; CODE XREF: sub_559D6+E20j add.w (word_FFFFA508).w,d3 cmpi.w #$7FFF,d3 bhi.s loc_56812 cmpi.w #$1800,d3 bls.s loc_56814 move.w #$1800,d3 bra.s loc_56814 ; --------------------------------------------------------------------------- loc_56812: ; CODE XREF: sub_559D6+E2Ej clr.w d3 loc_56814: ; CODE XREF: sub_559D6+E34j ; sub_559D6+E3Aj move.w d3,(word_FFFFA4FE).w loc_56818: ; CODE XREF: sub_559D6+1E8j ; sub_559D6+DDAj move.w (word_FFFFA4FE).w,d0 btst #4,(byte_FFFFB38C).w beq.w loc_56A00 btst #4,(byte_FFFFB38C).w beq.w loc_5690C btst #2,(byte_FFFFB38C).w beq.w loc_568C4 move.b (byte_FFFF95E9).w,d3 moveq #3,d5 cmp.b d3,d5 bcs.s loc_5686E move.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_START_FORWRD).l,(word_FFFFA50A).w ; Pressure is used at the beginning of the initial abuseramp when in a forward range ; PSI move.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_END_FORWRD).l,d1 ; The end value for the torque signal pressure ramp in an initial abuse situation while in a forward range ; PSI sub.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_START_FORWRD).l,d1 ; Pressure is used at the beginning of the initial abuseramp when in a forward range ; PSI bcs.s loc_56860 move.w d1,var_A(a6) bra.s loc_56864 ; --------------------------------------------------------------------------- loc_56860: ; CODE XREF: sub_559D6+E82j clr.w var_A(a6) loc_56864: ; CODE XREF: sub_559D6+E88j movea.w var_A(a6),a2 loc_56868: ; CODE XREF: sub_559D6+EC2j move.w a2,var_6(a6) bra.s loc_5689A ; --------------------------------------------------------------------------- loc_5686E: ; CODE XREF: sub_559D6+E6Cj moveq #4,d1 cmp.b d3,d1 bne.s loc_5689A move.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_START_REVRS).l,(word_FFFFA50A).w ; Pressure is used at the beginning of the initial abuseramp when in a reverse range ; PSI move.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_END_REVRS).l,d2 ; The end value for the torque signal pressure ramp in an initial abuse situation while in a reverse range ; PSI sub.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_START_REVRS).l,d2 ; Pressure is used at the beginning of the initial abuseramp when in a reverse range ; PSI bcs.s loc_56890 move.w d2,var_A(a6) bra.s loc_56894 ; --------------------------------------------------------------------------- loc_56890: ; CODE XREF: sub_559D6+EB2j clr.w var_A(a6) loc_56894: ; CODE XREF: sub_559D6+EB8j movea.w var_A(a6),a2 bra.s loc_56868 ; --------------------------------------------------------------------------- loc_5689A: ; CODE XREF: sub_559D6+E96j ; sub_559D6+E9Cj movea.l (dword_FFFFB5DE).w,a2 clr.l d3 move.w $A(a2),d3 asl.l #8,d3 divu.w (word_FFFFB38A).w,d3 bvs.s loc_568B2 cmpi.w #$FF,d3 bls.s loc_568B6 loc_568B2: ; CODE XREF: sub_559D6+ED4j move.b #$FF,d3 loc_568B6: ; CODE XREF: sub_559D6+EDAj andi.w #$FF,d3 mulu.w var_6(a6),d3 lsr.l #8,d3 move.w d3,(word_FFFFA506).w loc_568C4: ; CODE XREF: sub_559D6+E60j move.w (word_FFFFA50A).w,d3 add.w (word_FFFFA506).w,d3 cmpi.w #$1800,d3 bls.s loc_568D6 move.w #$1800,d3 loc_568D6: ; CODE XREF: sub_559D6+EFAj move.w d3,(word_FFFFA50A).w move.b (byte_FFFF95E9).w,d4 cmpi.b #3,d4 bhi.s loc_568F6 cmp.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_END_FORWRD).l,d3 ; The end value for the torque signal pressure ramp in an initial abuse situation while in a forward range ; PSI bls.s loc_568F6 move.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_END_FORWRD).l,(word_FFFFA50A).w ; The end value for the torque signal pressure ramp in an initial abuse situation while in a forward range ; PSI bra.s loc_5690C ; --------------------------------------------------------------------------- loc_568F6: ; CODE XREF: sub_559D6+F0Cj ; sub_559D6+F14j cmpi.b #4,d4 bne.s loc_5690C cmp.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_END_REVRS).l,d3 ; The end value for the torque signal pressure ramp in an initial abuse situation while in a reverse range ; PSI bls.s loc_5690C move.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_END_REVRS).l,(word_FFFFA50A).w ; The end value for the torque signal pressure ramp in an initial abuse situation while in a reverse range ; PSI loc_5690C: ; CODE XREF: sub_559D6+E56j ; sub_559D6+F1Ej ... move.w (word_FFFFA50A).w,d3 cmp.w d0,d3 bcc.w loc_56A00 btst #4,(byte_FFFFB38C).w beq.w loc_569FC btst #2,(byte_FFFFB38C).w beq.w loc_569B4 move.b (byte_FFFF95E9).w,d3 moveq #3,d5 cmp.b d3,d5 bcs.s loc_5695E move.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_START_FORWRD).l,(word_FFFFA50A).w ; Pressure is used at the beginning of the initial abuseramp when in a forward range ; PSI move.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_END_FORWRD).l,d1 ; The end value for the torque signal pressure ramp in an initial abuse situation while in a forward range ; PSI sub.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_START_FORWRD).l,d1 ; Pressure is used at the beginning of the initial abuseramp when in a forward range ; PSI bcs.s loc_56950 move.w d1,var_A(a6) bra.s loc_56954 ; --------------------------------------------------------------------------- loc_56950: ; CODE XREF: sub_559D6+F72j clr.w var_A(a6) loc_56954: ; CODE XREF: sub_559D6+F78j movea.w var_A(a6),a2 loc_56958: ; CODE XREF: sub_559D6+FB2j move.w a2,var_4(a6) bra.s loc_5698A ; --------------------------------------------------------------------------- loc_5695E: ; CODE XREF: sub_559D6+F5Cj moveq #4,d1 cmp.b d3,d1 bne.s loc_5698A move.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_START_REVRS).l,(word_FFFFA50A).w ; Pressure is used at the beginning of the initial abuseramp when in a reverse range ; PSI move.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_END_REVRS).l,d2 ; The end value for the torque signal pressure ramp in an initial abuse situation while in a reverse range ; PSI sub.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_START_REVRS).l,d2 ; Pressure is used at the beginning of the initial abuseramp when in a reverse range ; PSI bcs.s loc_56980 move.w d2,var_A(a6) bra.s loc_56984 ; --------------------------------------------------------------------------- loc_56980: ; CODE XREF: sub_559D6+FA2j clr.w var_A(a6) loc_56984: ; CODE XREF: sub_559D6+FA8j movea.w var_A(a6),a2 bra.s loc_56958 ; --------------------------------------------------------------------------- loc_5698A: ; CODE XREF: sub_559D6+F86j ; sub_559D6+F8Cj movea.l (dword_FFFFB5DE).w,a2 clr.l d3 move.w $A(a2),d3 asl.l #8,d3 divu.w (word_FFFFB38A).w,d3 bvs.s loc_569A2 cmpi.w #$FF,d3 bls.s loc_569A6 loc_569A2: ; CODE XREF: sub_559D6+FC4j move.b #$FF,d3 loc_569A6: ; CODE XREF: sub_559D6+FCAj andi.w #$FF,d3 mulu.w var_4(a6),d3 lsr.l #8,d3 move.w d3,(word_FFFFA506).w loc_569B4: ; CODE XREF: sub_559D6+F50j move.w (word_FFFFA50A).w,d3 add.w (word_FFFFA506).w,d3 cmpi.w #$1800,d3 bls.s loc_569C6 move.w #$1800,d3 loc_569C6: ; CODE XREF: sub_559D6+FEAj move.w d3,(word_FFFFA50A).w move.b (byte_FFFF95E9).w,d4 cmpi.b #3,d4 bhi.s loc_569E6 cmp.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_END_FORWRD).l,d3 ; The end value for the torque signal pressure ramp in an initial abuse situation while in a forward range ; PSI bls.s loc_569E6 move.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_END_FORWRD).l,(word_FFFFA50A).w ; The end value for the torque signal pressure ramp in an initial abuse situation while in a forward range ; PSI bra.s loc_569FC ; --------------------------------------------------------------------------- loc_569E6: ; CODE XREF: sub_559D6+FFCj ; sub_559D6+1004j cmpi.b #4,d4 bne.s loc_569FC cmp.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_END_REVRS).l,d3 ; The end value for the torque signal pressure ramp in an initial abuse situation while in a reverse range ; PSI bls.s loc_569FC move.w (XPRS_GARAGE_PRESSURE_KE_ABUSE_PRESS_RAMP_END_REVRS).l,(word_FFFFA50A).w ; The end value for the torque signal pressure ramp in an initial abuse situation while in a reverse range ; PSI loc_569FC: ; CODE XREF: sub_559D6+F46j ; sub_559D6+100Ej ... move.w (word_FFFFA50A).w,d0 loc_56A00: ; CODE XREF: sub_559D6+E4Cj ; sub_559D6+F3Cj movem.l (sp)+,d1-d2/d6-a1/a4 unlk a6 rts ; End of function sub_559D6 ; =============== S U B R O U T I N E ======================================= sub_56A08: ; CODE XREF: OS1:00028C74p movem.l d0-d2/a0-a1/a4,-(sp) bset #6,(byte_FFFFA4FC).w bset #7,(byte_FFFFA4FC).w moveq #5,d1 move.b d1,(byte_FFFFA4F8).w clr.w d3 move.b (byte_FFFF959C).w,d3 sub.w (word_FFFF9590).w,d3 movea.w #$36,a4 ; '6' sub.w a4,d3 cmpi.w #$FFCA,d3 bge.s loc_56A36 moveq #$FFFFFFCA,d3 loc_56A36: ; CODE XREF: sub_56A08+2Aj add.w a4,d3 clr.w d0 move.b (X_PRESSURE_KE_FIRST_SHIFT_COLD_DELTA_1).l,d0 ; Temperature below which First Upshift Cold is indicated. ; Deg_C cmp.w d3,d0 bls.s loc_56A7E move.w (word_FFFFB3E8).w,d3 muls.w d1,d3 divs.w #$60,d3 ; '`' add.w a4,d3 clr.l d2 move.b d3,d2 clr.w d3 move.b (byte_FFFF959C).w,d3 sub.w d2,d3 cmpi.w #$FFCA,d3 bge.s loc_56A64 moveq #$FFFFFFCA,d3 loc_56A64: ; CODE XREF: sub_56A08+58j add.w a4,d3 clr.w d0 move.b (X_PRESSURE_KE_FIRST_SHIFT_COLD_DELTA_2).l,d0 ; Temperature below which First Upshift Cold is indicated. ; Deg_C cmp.w d3,d0 bls.s loc_56A7E bset #7,(byte_FFFFA4FD).w bset #6,(byte_FFFFA4FD).w loc_56A7E: ; CODE XREF: sub_56A08+3Aj ; sub_56A08+68j movea.l #unk_FF8C98,a1 movea.l a1,a0 moveq #9,d0 jsr sub_2654C cmp.w (word_FFFF8CAC).w,d0 beq.s loc_56AAE clr.b (byte_FFFF8CA0).w clr.l (dword_FFFF8C9C).w clr.l (dword_FFFF8C98).w movea.l a1,a0 moveq #9,d0 jsr sub_2654C move.w d0,(word_FFFF8CAC).w loc_56AAE: ; CODE XREF: sub_56A08+8Aj movea.l #unk_FF8CA2,a1 movea.l a1,a0 moveq #9,d0 jsr sub_2654C cmp.w (word_FFFF8CAE).w,d0 beq.s loc_56ADE clr.b (byte_FFFF8CAA).w clr.l (dword_FFFF8CA6).w clr.l (dword_FFFF8CA2).w movea.l a1,a0 moveq #9,d0 jsr sub_2654C move.w d0,(word_FFFF8CAE).w loc_56ADE: ; CODE XREF: sub_56A08+BAj movem.l (sp)+,d0-d2/a0-a1/a4 rts ; End of function sub_56A08 ; =============== S U B R O U T I N E ======================================= sub_56AE4: ; CODE XREF: sub_56D72+6Cp ; sub_56D72+15Ep movem.l d1-d2,-(sp) btst #4,(byte_FFFFA8FE).w beq.s loc_56B08 cmpi.b #4,(byte_FFFF95E9).w beq.s loc_56B08 cmpi.b #4,(byte_FFFF95E9).w bhi.s loc_56B08 btst #6,(byte_FFFF8A6E).w beq.s loc_56B10 loc_56B08: ; CODE XREF: sub_56AE4+Aj ; sub_56AE4+12j ... clr.w (word_FFFFB3B4).w bra.w loc_56D68 ; --------------------------------------------------------------------------- loc_56B10: ; CODE XREF: sub_56AE4+22j clr.w d1 move.b (byte_FFFF95DC).w,d1 mulu.w #$1A,d1 lea unk_1BE3E(d1.l),a3 move.w (word_FFFFACFC).w,d4 clr.w d3 tst.w d4 bge.s loc_56B30 move.l d3,d4 bra.s loc_56B38 ; --------------------------------------------------------------------------- loc_56B30: ; CODE XREF: sub_56AE4+46j tst.w d4 bpl.s loc_56B36 addq.w #1,d4 loc_56B36: ; CODE XREF: sub_56AE4+4Ej asr.w #1,d4 loc_56B38: ; CODE XREF: sub_56AE4+4Aj tblu.w (a3),d4 lea unk_1BEDA(d1.l),a3 move.w (word_FFFFACFC).w,d3 clr.w d5 tst.w d3 bge.s loc_56B52 move.l d5,d3 bra.s loc_56B5A ; --------------------------------------------------------------------------- loc_56B52: ; CODE XREF: sub_56AE4+68j tst.w d3 bpl.s loc_56B58 addq.w #1,d3 loc_56B58: ; CODE XREF: sub_56AE4+70j asr.w #1,d3 loc_56B5A: ; CODE XREF: sub_56AE4+6Cj tblu.w (a3),d3 move.w d3,d2 lea unk_1BE8C(d1.l),a3 move.w (word_FFFFACFC).w,d0 movea.w #$CFF,a2 move.l d5,d3 tst.w d0 bge.s loc_56B7A move.l d3,d0 bra.s loc_56B82 ; --------------------------------------------------------------------------- loc_56B7A: ; CODE XREF: sub_56AE4+90j tst.w d0 bpl.s loc_56B80 addq.w #1,d0 loc_56B80: ; CODE XREF: sub_56AE4+98j asr.w #1,d0 loc_56B82: ; CODE XREF: sub_56AE4+94j tblu.w (a3),d0 move.w (word_FFFF95D4).w,d3 cmp.w d0,d3 bls.w loc_56C42 cmp.w d4,d3 bhi.w loc_56C42 tst.b (byte_FFFFB3C0).w bne.s loc_56BC4 move.b #1,(byte_FFFFB3C0).w lea unk_1BD54(d1.l),a3 move.w (word_FFFFACFC).w,d3 bge.s loc_56BB4 move.l d5,d3 bra.s loc_56BBC ; --------------------------------------------------------------------------- loc_56BB4: ; CODE XREF: sub_56AE4+CAj tst.w d3 bpl.s loc_56BBA addq.w #1,d3 loc_56BBA: ; CODE XREF: sub_56AE4+D2j asr.w #1,d3 loc_56BBC: ; CODE XREF: sub_56AE4+CEj tbls.w (a3),d3 move.w d3,(word_FFFFB3B6).w loc_56BC4: ; CODE XREF: sub_56AE4+B6j lea unk_1BDA2(d1.l),a3 move.w (word_FFFFACFC).w,d3 movea.w #$CFF,a2 tst.w d3 bge.s loc_56BDC move.l d5,d3 bra.s loc_56BE4 ; --------------------------------------------------------------------------- loc_56BDC: ; CODE XREF: sub_56AE4+F2j tst.w d3 bpl.s loc_56BE2 addq.w #1,d3 loc_56BE2: ; CODE XREF: sub_56AE4+FAj asr.w #1,d3 loc_56BE4: ; CODE XREF: sub_56AE4+F6j tbls.w (a3),d3 move.w d3,(word_FFFFB3B8).w move.l d4,d3 sub.w (word_FFFF95D4).w,d3 bcc.s loc_56BF6 move.l d5,d3 loc_56BF6: ; CODE XREF: sub_56AE4+10Ej andi.l #$FFFF,d3 asl.l #8,d3 asl.l #4,d3 sub.w d0,d4 bcc.s loc_56C06 move.l d5,d4 loc_56C06: ; CODE XREF: sub_56AE4+11Ej divu.w d4,d3 bvs.s loc_56C10 cmpi.w #$7FFF,d3 bls.s loc_56C14 loc_56C10: ; CODE XREF: sub_56AE4+124j move.w #$7FFF,d3 loc_56C14: ; CODE XREF: sub_56AE4+12Aj muls.w (word_FFFFB3B8).w,d3 move.w #$1000,d0 divs.w d0,d3 bvc.s loc_56C2A swap d3 eor.w d0,d3 bmi.s loc_56C36 bra.w loc_56D26 ; --------------------------------------------------------------------------- loc_56C2A: ; CODE XREF: sub_56AE4+13Aj add.w (word_FFFFB3B6).w,d3 bvc.w loc_56D4E bmi.w loc_56D26 loc_56C36: ; CODE XREF: sub_56AE4+140j ; sub_56AE4+274j move.w #$E800,d3 loc_56C3A: ; CODE XREF: sub_56AE4+246j ; sub_56AE4+278j move.w d3,(word_FFFFB3B4).w bra.w loc_56D68 ; --------------------------------------------------------------------------- loc_56C42: ; CODE XREF: sub_56AE4+A8j ; sub_56AE4+AEj cmp.w d2,d3 bls.w loc_56D2E cmp.w d0,d3 bhi.w loc_56D2E tst.b (byte_FFFFB3C0).w bne.s loc_56CA2 loc_56C54: ; DATA XREF: Calibration:DI_ICAT_KV_EGPT_SS_ENG_AIRFLOW_COEFo move.b #1,(byte_FFFFB3C0).w lea unk_1BD54(d1.l),a3 move.w (word_FFFFACFC).w,d3 move.l d5,d4 tst.w d3 bge.s loc_56C70 move.l d4,d3 bra.s loc_56C78 ; --------------------------------------------------------------------------- loc_56C70: ; CODE XREF: sub_56AE4+186j tst.w d3 bpl.s loc_56C76 addq.w #1,d3 loc_56C76: ; CODE XREF: sub_56AE4+18Ej asr.w #1,d3 loc_56C78: ; CODE XREF: sub_56AE4+18Aj tbls.w (a3),d3 move.w d3,(word_FFFFB3B6).w lea unk_1BDA2(d1.l),a3 move.w (word_FFFFACFC).w,d3 bge.s loc_56C92 move.l d4,d3 bra.s loc_56C9A ; --------------------------------------------------------------------------- loc_56C92: ; CODE XREF: sub_56AE4+1A8j tst.w d3 bpl.s loc_56C98 addq.w #1,d3 loc_56C98: ; CODE XREF: sub_56AE4+1B0j asr.w #1,d3 loc_56C9A: ; CODE XREF: sub_56AE4+1ACj tbls.w (a3),d3 move.w d3,(word_FFFFB3B8).w loc_56CA2: ; CODE XREF: sub_56AE4+16Ej lea unk_1BDF0(d1.l),a3 move.w (word_FFFFACFC).w,d3 movea.w #$CFF,a2 move.l d5,d4 tst.w d3 bge.s loc_56CBC move.l d4,d3 bra.s loc_56CC4 ; --------------------------------------------------------------------------- loc_56CBC: ; CODE XREF: sub_56AE4+1D2j tst.w d3 bpl.s loc_56CC2 addq.w #1,d3 loc_56CC2: ; CODE XREF: sub_56AE4+1DAj asr.w #1,d3 loc_56CC4: ; CODE XREF: sub_56AE4+1D6j tbls.w (a3),d3 move.w d3,(word_FFFFB3BA).w move.l d0,d3 sub.w (word_FFFF95D4).w,d3 bcc.s loc_56CD6 move.l d4,d3 loc_56CD6: ; CODE XREF: sub_56AE4+1EEj andi.l #$FFFF,d3 asl.l #8,d3 asl.l #4,d3 sub.w d2,d0 bcc.s loc_56CE6 move.l d4,d0 loc_56CE6: ; CODE XREF: sub_56AE4+1FEj divu.w d0,d3 bvs.s loc_56CF0 cmpi.w #$7FFF,d3 bls.s loc_56CF4 loc_56CF0: ; CODE XREF: sub_56AE4+204j move.w #$7FFF,d3 loc_56CF4: ; CODE XREF: sub_56AE4+20Aj muls.w (word_FFFFB3BA).w,d3 move.w #$1000,d0 divs.w d0,d3 bvc.s loc_56D08 swap d3 eor.w d0,d3 bmi.s loc_56D46 bra.s loc_56D20 ; --------------------------------------------------------------------------- loc_56D08: ; CODE XREF: sub_56AE4+21Aj add.w (word_FFFFB3B8).w,d3 bvc.s loc_56D12 bmi.s loc_56D20 bra.s loc_56D46 ; --------------------------------------------------------------------------- loc_56D12: ; CODE XREF: sub_56AE4+228j cmpi.w #$1800,d3 bgt.s loc_56D20 cmpi.w #$E800,d3 blt.s loc_56D46 bra.s loc_56D4A ; --------------------------------------------------------------------------- loc_56D20: ; CODE XREF: sub_56AE4+222j ; sub_56AE4+22Aj ... move.w #$1800,d3 bra.s loc_56D4A ; --------------------------------------------------------------------------- loc_56D26: ; CODE XREF: sub_56AE4+142j ; sub_56AE4+14Ej ... move.w #$1800,d3 bra.w loc_56C3A ; --------------------------------------------------------------------------- loc_56D2E: ; CODE XREF: sub_56AE4+160j ; sub_56AE4+166j cmp.w d2,d3 bhi.s loc_56D60 move.w (word_FFFFB3B8).w,d3 add.w (word_FFFFB3BA).w,d3 cmpi.w #$1800,d3 bgt.s loc_56D20 cmpi.w #$E800,d3 bge.s loc_56D4A loc_56D46: ; CODE XREF: sub_56AE4+220j ; sub_56AE4+22Cj ... move.w #$E800,d3 loc_56D4A: ; CODE XREF: sub_56AE4+23Aj ; sub_56AE4+240j ... add.w (word_FFFFB3B6).w,d3 loc_56D4E: ; CODE XREF: sub_56AE4+14Aj cmpi.w #$1800,d3 bgt.s loc_56D26 cmpi.w #$E800,d3 blt.w loc_56C36 bra.w loc_56C3A ; --------------------------------------------------------------------------- loc_56D60: ; CODE XREF: sub_56AE4+24Cj clr.w (word_FFFFB3B4).w clr.b (byte_FFFFB3C0).w loc_56D68: ; CODE XREF: sub_56AE4+28j ; sub_56AE4+15Aj move.w (word_FFFFB3B4).w,d0 movem.l (sp)+,d1-d2 rts ; End of function sub_56AE4 ; =============== S U B R O U T I N E ======================================= sub_56D72: ; CODE XREF: sub_56EDC+282p movem.l d1/a0,-(sp) cmpi.b #1,(byte_FFFF95DC).w bne.w loc_56EC8 btst #4,(byte_FFFFA8FE).w beq.w loc_56EC8 tst.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.w loc_56EC8 cmpi.b #9,(byte_FFFF95F1).w bne.w loc_56EC8 move.w (word_FFFFA902).w,d1 clr.l d3 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_56DBA cmpi.w #$1770,d3 bls.s loc_56DBE loc_56DBA: ; CODE XREF: sub_56D72+40j move.w #$1770,d3 loc_56DBE: ; CODE XREF: sub_56D72+46j cmp.w d3,d1 bls.s loc_56DC4 move.w d3,d1 loc_56DC4: ; CODE XREF: sub_56D72+4Ej move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb add.w d3,d3 andi.l #$FFFF,d1 asl.l #8,d1 divu.w d3,d1 tbls.w (XPRS_RATIO_KV_12_DLOW_ACCUM_PROF_OFFSET).l,d1 jsr sub_56AE4 add.w d1,d0 cmpi.w #$1800,d0 bgt.s loc_56DF4 cmpi.w #$E800,d0 blt.s loc_56DFA bra.s loc_56DFE ; --------------------------------------------------------------------------- loc_56DF4: ; CODE XREF: sub_56D72+78j move.w #$1800,d0 bra.s loc_56DFE ; --------------------------------------------------------------------------- loc_56DFA: ; CODE XREF: sub_56D72+7Ej move.w #$E800,d0 loc_56DFE: ; CODE XREF: sub_56D72+80j ; sub_56D72+86j movea.w d0,a0 move.b (byte_FFFFACFE).w,d3 ext.w d3 asl.w #4,d3 add.w (word_FFFFACFC).w,d3 cmpi.w #$7FFF,d3 bhi.s loc_56E1E cmpi.w #$1800,d3 bls.s loc_56E20 move.w #$1800,d3 bra.s loc_56E20 ; --------------------------------------------------------------------------- loc_56E1E: ; CODE XREF: sub_56D72+9Ej clr.w d3 loc_56E20: ; CODE XREF: sub_56D72+A4j ; sub_56D72+AAj add.w d3,d3 andi.l #$FFFF,d3 divu.w #3,d3 tblu.w (XPRS_RATIO_KV_DLOW_ACCUM_PROF_START).l,d3 ; Time threshold for the start of the 1-2 drive low urban shift accumulator ramp ; Seconds cmp.w (word_FFFFB3BE).w,d3 bhi.s loc_56EB0 move.w (word_FFFFA902).w,d4 clr.l d3 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_56E56 cmpi.w #$1770,d3 bls.s loc_56E5A loc_56E56: ; CODE XREF: sub_56D72+DCj move.w #$1770,d3 loc_56E5A: ; CODE XREF: sub_56D72+E2j cmp.w d3,d4 bls.s loc_56E60 move.w d3,d4 loc_56E60: ; CODE XREF: sub_56D72+EAj move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d0 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb add.w d0,d0 clr.l d3 move.w d4,d3 asl.l #8,d3 divu.w d0,d3 tblu.w (XPRS_RATIO_KV_12_DLOW_ACCUM_PROF_RATE).l,d3 add.w (word_FFFFB3BC).w,d3 cmpi.w #$1400,d3 bls.s loc_56E86 move.w #$1400,d3 loc_56E86: ; CODE XREF: sub_56D72+10Ej move.w d3,(word_FFFFB3BC).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB3BC).w,d0 mulu.w $A(a2),d0 divu.w #$80,d0 ; '?' bvs.s loc_56EAA tst.w d0 blt.s loc_56EAA add.w a0,d0 bvs.s loc_56EAA cmpi.w #$1800,d0 ble.s loc_56ED6 loc_56EAA: ; CODE XREF: sub_56D72+128j ; sub_56D72+12Cj ... move.w #$1800,d0 bra.s loc_56ED6 ; --------------------------------------------------------------------------- loc_56EB0: ; CODE XREF: sub_56D72+C6j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB3BE).w,d3 add.w $A(a2),d3 bcc.s loc_56EC2 move.w #$FFFF,d3 loc_56EC2: ; CODE XREF: sub_56D72+14Aj move.w d3,(word_FFFFB3BE).w bra.s loc_56ED6 ; --------------------------------------------------------------------------- loc_56EC8: ; CODE XREF: sub_56D72+Aj ; sub_56D72+14j ... clr.w (word_FFFFB3BC).w clr.w (word_FFFFB3BE).w jsr sub_56AE4 loc_56ED6: ; CODE XREF: sub_56D72+136j ; sub_56D72+13Cj ... movem.l (sp)+,d1/a0 rts ; End of function sub_56D72 ; =============== S U B R O U T I N E ======================================= sub_56EDC: ; CODE XREF: sub_4CD5E+Ep movem.l d0-d2/d6/a0,-(sp) btst #3,(byte_FFFFACFA).w bne.s loc_56EFC tst.b (byte_FFFFAD14).w bne.s loc_56EFC btst #7,(byte_FFFF95E3).w beq.s loc_56EFC jsr sub_574BE loc_56EFC: ; CODE XREF: sub_56EDC+Aj ; sub_56EDC+10j ... btst #3,(byte_FFFFA8FE).w beq.s loc_56F12 move.b (byte_FFFF95DC).w,d0 moveq #3,d2 cmp.b d0,d2 bls.s loc_56F16 addq.b #1,d0 bra.s loc_56F16 ; --------------------------------------------------------------------------- loc_56F12: ; CODE XREF: sub_56EDC+26j move.b (byte_FFFF95DC).w,d0 loc_56F16: ; CODE XREF: sub_56EDC+30j ; sub_56EDC+34j jsr sub_5D20C move.b d0,(byte_FFFFACFE).w btst #6,(byte_FFFFA8FE).w beq.s loc_56F62 btst #3,(byte_FFFFA900).w bne.s loc_56F46 move.b (byte_FFFF95DC).w,d3 moveq #3,d2 cmp.b d3,d2 bls.s loc_56F3C addq.b #1,d3 loc_56F3C: ; CODE XREF: sub_56EDC+5Cj move.b d3,(byte_FFFFAD0C).w loc_56F40: ; CODE XREF: sub_56EDC+AEj clr.b (byte_FFFFAD0D).w bra.s loc_56F94 ; --------------------------------------------------------------------------- loc_56F46: ; CODE XREF: sub_56EDC+52j move.b (byte_FFFF95DC).w,d3 bne.s loc_56F54 move.b #1,(byte_FFFFAD0D).w bra.s loc_56F94 ; --------------------------------------------------------------------------- loc_56F54: ; CODE XREF: sub_56EDC+6Ej cmpi.b #1,d3 bne.s loc_56F94 move.b #2,(byte_FFFFAD0D).w bra.s loc_56F94 ; --------------------------------------------------------------------------- loc_56F62: ; CODE XREF: sub_56EDC+4Aj btst #3,(byte_FFFFA8FE).w beq.s loc_56F8C tst.b (byte_FFFFAD0D).w beq.s loc_56F8C clr.w d3 move.b (byte_FFFFAD0D).w,d3 move.w (word_FFFFA90C).w,d4 cmp.w word_1C034(d3.w*2),d4 bcs.s loc_56F8C loc_56F84: ; CODE XREF: sub_56EDC+B6j move.b (byte_FFFF95DC).w,(byte_FFFFAD0C).w bra.s loc_56F40 ; --------------------------------------------------------------------------- loc_56F8C: ; CODE XREF: sub_56EDC+8Cj ; sub_56EDC+92j ... btst #3,(byte_FFFFA8FE).w beq.s loc_56F84 loc_56F94: ; CODE XREF: sub_56EDC+68j ; sub_56EDC+76j ... move.b (byte_FFFFAD0D).w,d3 bne.s loc_56FA0 clr.w (word_FFFFAD0E).w bra.s loc_56FBE ; --------------------------------------------------------------------------- loc_56FA0: ; CODE XREF: sub_56EDC+BCj andi.w #$FF,d3 mulu.w #$22,d3 ; '"' lea unk_1C018(d3.l),a0 move.w (word_FFFFA902).w,d0 jsr sub_87784 move.w d0,(word_FFFFAD0E).w loc_56FBE: ; CODE XREF: sub_56EDC+C2j jsr sub_571CE btst #4,(byte_FFFFA8FE).w beq.s loc_57014 btst #1,(byte_FFFFA8FE).w bne.s loc_57014 tst.b (byte_FFFFB4C0).w beq.s loc_57014 clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFF95D4).w,d4 cmp.w word_1C09E(d3.w*2),d4 bcs.s loc_5701A clr.w d0 move.b (byte_FFFF95DC).w,d0 move.w (word_FFB5E8).l,d3 add.w word_1C0A4(d0.w*2),d3 cmpi.w #$1800,d3 bls.s loc_5700C move.w #$1800,d3 loc_5700C: ; CODE XREF: sub_56EDC+12Aj move.w d3,(word_FFB5E8).l bra.s loc_5701A ; --------------------------------------------------------------------------- loc_57014: ; CODE XREF: sub_56EDC+EEj ; sub_56EDC+F6j ... clr.w (word_FFB5E8).l loc_5701A: ; CODE XREF: sub_56EDC+110j ; sub_56EDC+136j btst #6,(byte_FFFFA8FE).w beq.w loc_570C0 move.b (byte_FFFFAD0D).w,d4 bne.s loc_57030 clr.w (word_FFFFAD10).w bra.s loc_5705C ; --------------------------------------------------------------------------- loc_57030: ; CODE XREF: sub_56EDC+14Cj move.w (word_FFFF95AE).w,d3 andi.w #$FF,d4 moveq #$1C,d2 mulu.w d2,d4 lea unk_1BFE2(d4.l),a2 move.w #$6800,d6 cmp.w d3,d6 bls.s loc_57050 lsr.w #3,d3 bra.s loc_57054 ; --------------------------------------------------------------------------- loc_57050: ; CODE XREF: sub_56EDC+16Ej move.w #$D00,d3 loc_57054: ; CODE XREF: sub_56EDC+172j tbls.w (a2),d3 move.w d3,(word_FFFFAD10).w loc_5705C: ; CODE XREF: sub_56EDC+152j btst #7,(byte_FFFFB011).w beq.s loc_5706C tst.b (XPRS_SHIFT_KE_ELIMINATE_DN_TURB_MOD_ELE_ON).l ; When TRUE, eliminate the use of the downshift pressuremodifier when the braking element is applied. ; T/F bne.s loc_570C8 loc_5706C: ; CODE XREF: sub_56EDC+186j move.w (word_FFFF95AE).w,d3 move.b (byte_FFFF95DC).w,d4 moveq #3,d2 cmp.b d4,d2 bls.s loc_5707C addq.b #1,d4 loc_5707C: ; CODE XREF: sub_56EDC+19Cj andi.w #$FF,d4 mulu.w #$1C,d4 lea unk_1BF8E(d4.l),a2 cmpi.w #$6800,d3 bcc.s loc_57096 lsr.w #3,d3 bra.s loc_5709A ; --------------------------------------------------------------------------- loc_57096: ; CODE XREF: sub_56EDC+1B4j move.w #$D00,d3 loc_5709A: ; CODE XREF: sub_56EDC+1B8j tbls.w (a2),d3 add.w (word_FFFFAD10).w,d3 cmpi.w #$1800,d3 bgt.s loc_570B0 cmpi.w #$E800,d3 blt.s loc_570B6 bra.s loc_570BA ; --------------------------------------------------------------------------- loc_570B0: ; CODE XREF: sub_56EDC+1CAj move.w #$1800,d3 bra.s loc_570BA ; --------------------------------------------------------------------------- loc_570B6: ; CODE XREF: sub_56EDC+1D0j move.w #$E800,d3 loc_570BA: ; CODE XREF: sub_56EDC+1D2j ; sub_56EDC+1D8j move.w d3,(word_FFFFAD00).w bra.s loc_570CC ; --------------------------------------------------------------------------- loc_570C0: ; CODE XREF: sub_56EDC+144j btst #3,(byte_FFFFA8FE).w bne.s loc_570CC loc_570C8: ; CODE XREF: sub_56EDC+18Ej clr.w (word_FFFFAD00).w loc_570CC: ; CODE XREF: sub_56EDC+1E2j ; sub_56EDC+1EAj btst #4,(byte_FFFFA8FE).w beq.s loc_570FA move.w (word_FFFF9590).w,d0 addi.b #$36,d0 ; '6' move.w (word_FFFFA902).w,d1 clr.w d3 move.b (byte_FFFF95DC).w,d3 movea.l off_892C2(d3.w*4),a0 loc_570EE: ; CODE XREF: sub_56EDC+24Aj jsr sub_87650 move.w d0,(word_FFFFAD02).w bra.s loc_57134 ; --------------------------------------------------------------------------- loc_570FA: ; CODE XREF: sub_56EDC+1F6j btst #6,(byte_FFFFA8FE).w beq.s loc_57128 move.w (word_FFFF9590).w,d0 addi.b #$36,d0 ; '6' move.w (word_FFFFA902).w,d1 move.b (byte_FFFF95DC).w,d3 cmpi.b #3,d3 bcc.s loc_5711A addq.b #1,d3 loc_5711A: ; CODE XREF: sub_56EDC+23Aj andi.w #$FF,d3 movea.l off_892CE(d3.w*4),a0 bra.s loc_570EE ; --------------------------------------------------------------------------- loc_57128: ; CODE XREF: sub_56EDC+224j btst #3,(byte_FFFFA8FE).w bne.s loc_57134 clr.w (word_FFFFAD02).w loc_57134: ; CODE XREF: sub_56EDC+21Cj ; sub_56EDC+252j btst #1,(byte_FFFFA8FE).w beq.s loc_57148 clr.w (word_FFFFACF8).w loc_57140: ; CODE XREF: sub_56EDC+2BAj ; sub_56EDC+2D0j bclr #7,(byte_FFFFACFA).w bra.s loc_571B2 ; --------------------------------------------------------------------------- loc_57148: ; CODE XREF: sub_56EDC+25Ej move.w (word_FFFFA2E4).w,d3 bne.s loc_571AE tst.b (TCM_OPTIONS_K_D32_PRESS_BIAS_CONTROL_AVAIL).l ; If TRUE, electronic control of the 3-2 downshift timing is available. ; BOOLEAN bne.s loc_57184 loc_57156: ; CODE XREF: sub_56EDC+2ACj move.w (word_FFFFAD02).w,d1 add.w (word_FFFFAD00).w,d1 jsr sub_56D72 move.w d0,d4 move.w d4,(word_FFFFB558).w move.l d1,d3 add.w d4,d3 add.w (word_FFFFACFC).w,d3 cmpi.w #$7FFF,d3 bhi.s loc_571A6 cmpi.w #$1800,d3 bls.s loc_571A8 move.w #$1800,d3 bra.s loc_571A8 ; --------------------------------------------------------------------------- loc_57184: ; CODE XREF: sub_56EDC+278j move.b (byte_FFFFB539).w,d3 beq.s loc_57156 cmpi.b #2,d3 bne.s loc_57198 move.w (word_FFFFB536).w,(word_FFFFACF8).w bra.s loc_57140 ; --------------------------------------------------------------------------- loc_57198: ; CODE XREF: sub_56EDC+2B2j move.w (word_FFFFB536).w,(word_FFFFACF8).w bset #7,(byte_FFFFACFA).w bra.s loc_571B2 ; --------------------------------------------------------------------------- loc_571A6: ; CODE XREF: sub_56EDC+29Aj clr.w d3 loc_571A8: ; CODE XREF: sub_56EDC+2A0j ; sub_56EDC+2A6j move.w d3,(word_FFFFACF8).w bra.s loc_57140 ; --------------------------------------------------------------------------- loc_571AE: ; CODE XREF: sub_56EDC+270j move.w d3,(word_FFFFACF8).w loc_571B2: ; CODE XREF: sub_56EDC+26Aj ; sub_56EDC+2C8j move.w (word_FFFFACF8).w,d3 add.w (word_FFFFA2E6).w,d3 cmpi.w #$1800,d3 bls.s loc_571C4 move.w #$1800,d3 loc_571C4: ; CODE XREF: sub_56EDC+2E2j move.w d3,(word_FFFFACF8).w movem.l (sp)+,d0-d2/d6/a0 rts ; End of function sub_56EDC ; =============== S U B R O U T I N E ======================================= sub_571CE: ; CODE XREF: sub_56EDC:loc_56FBEp var_5312 = -$5312 movem.l d0-d2/d6/a0,-(sp) btst #1,(byte_FFFFA8FE).w beq.s loc_571E6 clr.b (byte_FFFFB4C0).w clr.b (byte_FFFFAD14).w bra.w loc_574B8 ; --------------------------------------------------------------------------- loc_571E6: ; CODE XREF: sub_571CE+Aj move.w (word_FFFFA2E0).w,d3 beq.s loc_571F2 move.l d3,d0 bra.w loc_574A6 ; --------------------------------------------------------------------------- loc_571F2: ; CODE XREF: sub_571CE+1Cj btst #3,(byte_FFFFA8FE).w beq.s loc_57202 moveq #1,d1 loc_571FC: ; CODE XREF: sub_571CE+3Ej move.b d1,(byte_FFFFAD14).w bra.s loc_5720E ; --------------------------------------------------------------------------- loc_57202: ; CODE XREF: sub_571CE+2Aj btst #4,(byte_FFFFA8FE).w beq.s loc_5720E moveq #2,d1 bra.s loc_571FC ; --------------------------------------------------------------------------- loc_5720E: ; CODE XREF: sub_571CE+32j ; sub_571CE+3Aj move.b (byte_FFFFAD14).w,d3 moveq #1,d1 cmp.b d3,d1 bne.w loc_572D8 cmp.b (byte_FFFF95E9).w,d1 bne.s loc_5723C tst.b (byte_FFFF95DC).w bne.s loc_5723C move.w (word_FFFFA902).w,d0 movea.l #XPRS_SHIFT_KV_DRIVE2_PRESS_OFFSET_TABLE,a0 ; Offset addedto Base_Pressure during 1-2 and 2-1 shifts in Drive_2 ; PSI_S jsr sub_87784 move.w d0,(word_FFFFAD12).w bra.s loc_57240 ; --------------------------------------------------------------------------- loc_5723C: ; CODE XREF: sub_571CE+50j ; sub_571CE+56j clr.w (word_FFFFAD12).w loc_57240: ; CODE XREF: sub_571CE+6Cj move.b (TCM_OPTIONS_KE_TRANS_HAS_SIGNED_TORQUE_MODEL).l,d0 ; When TRUE, allows for signed engine torque values and uses the negative torque model. ; T/F and.b (TCM_OPTIONS_KE_SIGNED_TRQ_SHIFT_PRESS_ENBL).l,d0 ; When TRUE, signed torque pressure control is enabled if KE_Trans_Has_Signed_Torque_Model is also TRUE. ; T/F beq.s loc_572A2 btst #7,(byte_FFFFB011).w beq.s loc_572A2 move.w (word_FFFFA904).w,d0 move.b (byte_FFFF95DC).w,d3 cmpi.b #3,d3 bcc.s loc_57266 addq.b #1,d3 loc_57266: ; CODE XREF: sub_571CE+94j andi.w #$FF,d3 movea.l off_8936A(d3.w*4),a0 jsr sub_86FAA move.b (byte_FFFFACFE).w,d3 ext.w d3 asl.w #4,d3 add.w (word_FFFFAD12).w,d0 add.w d3,d0 loc_57286: ; CODE XREF: sub_571CE+108j cmpi.w #$7FFF,d0 bhi.s loc_5729C cmpi.w #$1800,d0 bls.w loc_574A6 move.w #$1800,d0 bra.w loc_574A6 ; --------------------------------------------------------------------------- loc_5729C: ; CODE XREF: sub_571CE+BCj clr.w d0 bra.w loc_574A6 ; --------------------------------------------------------------------------- loc_572A2: ; CODE XREF: sub_571CE+7Ej ; sub_571CE+86j move.w (word_FFFFA902).w,d0 move.b (byte_FFFF95DC).w,d3 cmpi.b #3,d3 bcc.s loc_572B2 addq.b #1,d3 loc_572B2: ; CODE XREF: sub_571CE+E0j andi.w #$FF,d3 movea.l off_8929E(d3.w*4),a0 jsr sub_87868 move.b (byte_FFFFACFE).w,d3 ext.w d3 asl.w #4,d3 add.w (word_FFFFAD12).w,d0 add.w d3,d0 add.w (word_FFFFAD0E).w,d0 bra.s loc_57286 ; --------------------------------------------------------------------------- loc_572D8: ; CODE XREF: sub_571CE+48j moveq #2,d2 cmp.b d3,d2 bne.w loc_5749A cmp.b (byte_FFFF95E9).w,d1 bne.s loc_57302 cmp.b (byte_FFFF95DC).w,d1 bne.s loc_57302 move.w (word_FFFFA902).w,d0 movea.l #XPRS_SHIFT_KV_DRIVE2_PRESS_OFFSET_TABLE,a0 ; Offset addedto Base_Pressure during 1-2 and 2-1 shifts in Drive_2 ; PSI_S jsr sub_87784 move.w d0,(word_FFFFAD12).w bra.s loc_57306 ; --------------------------------------------------------------------------- loc_57302: ; CODE XREF: sub_571CE+116j ; sub_571CE+11Cj clr.w (word_FFFFAD12).w loc_57306: ; CODE XREF: sub_571CE+132j tst.b (XPRS_SHIFT_KE_ENABLE_G_I_TRQ_RATIO_MULT).l ; Enables base pressure modification for upshifts based on ratio of gearbox and inertia torque. ; T/F beq.s loc_57330 move.w (word_FFFFA902).w,d1 move.w (word_FFFFA90A).w,d0 clr.w d3 move.b (byte_FFFF95DC).w,d3 movea.l off_8935E(d3.w*4),a0 jsr sub_874C0 move.w d0,(word_FFFFAD16).w bra.s loc_5733A ; --------------------------------------------------------------------------- loc_57330: ; CODE XREF: sub_571CE+13Ej move.w #$8000,(word_FFFFAD16).w clr.w (word_FFFFAD1A).w loc_5733A: ; CODE XREF: sub_571CE+160j tst.b (X_PRESSURE_KE_FIRST_SHIFT_COLD_ENABLED).l ; This ca;ibration is used to enable First Cold Garage Pressure and Base Upshift Pressure Logic. ; T/F beq.w loc_573EC btst #7,(byte_FFFFA8FE).w beq.w loc_57404 move.b (byte_FFFF95DC).w,d3 moveq #1,d1 cmp.b d3,d1 bne.s loc_5736C btst #6,(byte_FFFFACFA).w beq.s loc_5736C move.b d1,(byte_FFFFAD1C).w bclr #6,(byte_FFFFACFA).w bra.s loc_573A2 ; --------------------------------------------------------------------------- loc_5736C: ; CODE XREF: sub_571CE+188j ; sub_571CE+190j cmp.b d3,d2 bne.s loc_57384 btst #5,(byte_FFFFACFA).w beq.s loc_57384 move.b d1,(byte_FFFFAD1C).w bclr #5,(byte_FFFFACFA).w bra.s loc_573A2 ; --------------------------------------------------------------------------- loc_57384: ; CODE XREF: sub_571CE+1A0j ; sub_571CE+1A8j cmpi.b #3,d3 bne.s loc_5739E btst #4,(byte_FFFFACFA).w beq.s loc_5739E move.b d1,(byte_FFFFAD1C).w bclr #4,(byte_FFFFACFA).w bra.s loc_573A2 ; --------------------------------------------------------------------------- loc_5739E: ; CODE XREF: sub_571CE+1BAj ; sub_571CE+1C2j clr.b (byte_FFFFAD1C).w loc_573A2: ; CODE XREF: sub_571CE+19Cj ; sub_571CE+1B4j ... tst.b (byte_FFFFAD1C).w beq.s loc_573E4 move.w (word_FFFF9590).w,d3 clr.w d4 move.b (byte_FFFF95DC).w,d4 mulu.w #$12,d4 lea unk_1C09C(d4.l),a3 cmpi.w #$1A,d3 bge.s loc_573D6 addi.w #$36,d3 ; '6' asl.w #7,d3 andi.l #$FFFF,d3 divu.w #5,d3 bra.s loc_573DA ; --------------------------------------------------------------------------- loc_573D6: ; CODE XREF: sub_571CE+1F4j move.w #$800,d3 loc_573DA: ; CODE XREF: sub_571CE+206j tblu.w (a3),d3 move.w d3,(word_FFFFAD0A).w bra.s loc_57404 ; --------------------------------------------------------------------------- loc_573E4: ; CODE XREF: sub_571CE+1D8j move.w #$4000,(word_FFFFAD0A).w bra.s loc_57404 ; --------------------------------------------------------------------------- loc_573EC: ; CODE XREF: sub_571CE+172j move.w #$4000,(word_FFFFAD0A).w bclr #6,(byte_FFFFACFA).w bclr #5,(byte_FFFFACFA).w bclr #4,(byte_FFFFACFA).w loc_57404: ; CODE XREF: sub_571CE+17Cj ; sub_571CE+214j ... clr.w d0 move.b (byte_FFFF95F3).w,d0 mulu.w #3,d0 add.b (byte_FFFF95DC).w,d0 andi.w #$FF,d0 movea.l off_8929E(d0.w*4),a0 move.w (word_FFFFA902).w,d0 jsr sub_87868 move.w d0,(word_FFFFAD18).w mulu.w (word_FFFFAD16).w,d0 lsr.l #8,d0 lsr.l #7,d0 cmpi.w #$1800,d0 bls.s loc_5743E move.w #$1800,d0 loc_5743E: ; CODE XREF: sub_571CE+26Aj move.l d0,d3 sub.w (word_FFFFAD18).w,d3 move.w d3,(word_FFFFAD1A).w move.b (byte_FFFFACFE).w,d3 ext.w d3 asl.w #4,d3 add.w (word_FFFFAD12).w,d0 cmpi.w #$1800,d0 ble.s loc_5745E move.w #$1800,d0 loc_5745E: ; CODE XREF: sub_571CE+28Aj add.w (word_FFB5E8).l,d0 cmpi.w #$1800,d0 ble.s loc_5746E move.w #$1800,d0 loc_5746E: ; CODE XREF: sub_571CE+29Aj add.w d0,d3 cmpi.w #$7FFF,d3 bhi.s loc_57486 cmpi.w #$1800,d3 bhi.s loc_57480 move.w d3,d0 bra.s loc_57488 ; --------------------------------------------------------------------------- loc_57480: ; CODE XREF: sub_571CE+2ACj move.w #$1800,d0 bra.s loc_57488 ; --------------------------------------------------------------------------- loc_57486: ; CODE XREF: sub_571CE+2A6j clr.w d0 loc_57488: ; CODE XREF: sub_571CE+2B0j ; sub_571CE+2B6j mulu.w (word_FFFFAD0A).w,d0 lsr.l #8,d0 lsr.l #6,d0 cmpi.w #$1800,d0 bls.s loc_5749A move.w #$1800,d0 loc_5749A: ; CODE XREF: sub_571CE+10Ej ; sub_571CE+2C6j clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w d0,$14+var_5312(d3.w*2) loc_574A6: ; CODE XREF: sub_571CE+20j ; sub_571CE+C2j ... add.w (word_FFFFA2E2).w,d0 cmpi.w #$1800,d0 bls.s loc_574B4 move.w #$1800,d0 loc_574B4: ; CODE XREF: sub_571CE+2E0j move.w d0,(word_FFFFACFC).w loc_574B8: ; CODE XREF: sub_571CE+14j movem.l (sp)+,d0-d2/d6/a0 rts ; End of function sub_571CE ; =============== S U B R O U T I N E ======================================= sub_574BE: ; CODE XREF: sub_56EDC+1Ap clr.w d3 move.b (byte_FFFF959C).w,d3 sub.w (word_FFFF9590).w,d3 movea.w #$36,a2 ; '6' sub.w a2,d3 cmpi.w #$FFCA,d3 bge.s loc_574D6 moveq #$FFFFFFCA,d3 loc_574D6: ; CODE XREF: sub_574BE+14j add.w a2,d3 clr.w d4 move.b (X_PRESSURE_KE_FIRST_SHIFT_COLD_DELTA_1).l,d4 ; Temperature below which First Upshift Cold is indicated. ; Deg_C cmp.w d3,d4 bls.s loc_57526 move.w (word_FFFFB3E8).w,d3 muls.w #5,d3 divs.w #$60,d3 ; '`' add.w a2,d3 clr.l d5 move.b d3,d5 clr.w d3 move.b (byte_FFFF959C).w,d3 sub.w d5,d3 cmpi.w #$FFCA,d3 bge.s loc_57506 moveq #$FFFFFFCA,d3 loc_57506: ; CODE XREF: sub_574BE+44j add.w a2,d3 clr.w d4 move.b (X_PRESSURE_KE_FIRST_SHIFT_COLD_DELTA_2).l,d4 ; Temperature below which First Upshift Cold is indicated. ; Deg_C cmp.w d3,d4 bls.s loc_57526 bset #6,(byte_FFFFACFA).w bset #5,(byte_FFFFACFA).w bset #4,(byte_FFFFACFA).w loc_57526: ; CODE XREF: sub_574BE+24j ; sub_574BE+54j bset #3,(byte_FFFFACFA).w rts ; End of function sub_574BE ; =============== S U B R O U T I N E ======================================= sub_5752E: ; CODE XREF: sub_4CD5E+8p move.b (byte_FFFF95E9).w,d3 cmpi.b #3,d3 bhi.s loc_5755A clr.w d4 move.b (byte_FFFF95DC).w,d4 asl.b #2,d3 andi.w #$FF,d3 movea.l off_8A7A4(d3.w),a2 tst.b (a2,d4.w) beq.s loc_5755A bset #7,(byte_FFFFB011).w bra.s locret_57560 ; --------------------------------------------------------------------------- loc_5755A: ; CODE XREF: sub_5752E+8j ; sub_5752E+22j bclr #7,(byte_FFFFB011).w locret_57560: ; CODE XREF: sub_5752E+2Aj rts ; End of function sub_5752E ; =============== S U B R O U T I N E ======================================= sub_57562: ; CODE XREF: sub_575C6:loc_5767Ap movem.l d0-d2,-(sp) move.w (XPRS_STEADY_STATE_KE_SS_DELTA_THROTTLE_FILTER_COEF).l,d0 ; Lag filter coefficient used to achieve the filtered steadystate throttle. ; Coeff move.w (word_FFFF9582).w,d1 move.w (word_FFFFB014).w,d2 jsr sub_26608 move.w d0,(word_FFFFB014).w move.w (word_FFFF9582).w,d3 sub.w (word_FFFFB014).w,d3 bcc.s loc_5758A clr.w d3 loc_5758A: ; CODE XREF: sub_57562+24j move.w d3,(word_FFFFB016).w clr.l d3 move.w (word_FFFFB016).w,d3 mulu.l (XPRS_STEADY_STATE_KE_SS_DELTA_THROTTLE_GAIN).l,d3 ; This calibration is multiplied with the steady state deltathrotttle to yield steady state delta throttle modifier. ; PSI/Percent divu.w #$51EB,d3 bvs.s loc_575A8 cmpi.w #$1800,d3 bls.s loc_575AC loc_575A8: ; CODE XREF: sub_57562+3Ej move.w #$1800,d3 loc_575AC: ; CODE XREF: sub_57562+44j move.w (XPRS_STEADY_STATE_KE_SS_DELTA_THROTTLE_MOD_LIMIT).l,d4 ; The steady state delta throttle modifier is limited to thisvalue. ; PSI cmp.w d4,d3 bls.s loc_575BC move.w d4,(word_FFFFB018).w bra.s loc_575C0 ; --------------------------------------------------------------------------- loc_575BC: ; CODE XREF: sub_57562+52j move.w d3,(word_FFFFB018).w loc_575C0: ; CODE XREF: sub_57562+58j movem.l (sp)+,d0-d2 rts ; End of function sub_57562 ; =============== S U B R O U T I N E ======================================= sub_575C6: ; CODE XREF: sub_4CD5E+14p var_73DE = -$73DE var_73CC = -$73CC movem.l d0-d2/d6-a1,-(sp) moveq #4,d6 cmp.b (byte_FFFF95E9).w,d6 bne.s loc_575DC moveq #7,d7 loc_575D4: ; CODE XREF: sub_575C6+4Aj move.b d7,(byte_FFFFB010).w bra.w loc_5767A ; --------------------------------------------------------------------------- loc_575DC: ; CODE XREF: sub_575C6+Aj move.b (byte_FFFF95DC).w,d3 bne.s loc_575EA clr.b (byte_FFFFB010).w bra.w loc_5767A ; --------------------------------------------------------------------------- loc_575EA: ; CODE XREF: sub_575C6+1Aj moveq #1,d7 cmp.b d3,d7 bne.s loc_57618 move.b (byte_FFFF95DD).w,d3 cmp.b d3,d6 beq.s loc_57608 moveq #2,d1 cmp.b d3,d1 beq.s loc_57608 cmp.b d3,d7 beq.s loc_57608 moveq #5,d1 cmp.b d3,d1 bne.s loc_5760C loc_57608: ; CODE XREF: sub_575C6+30j ; sub_575C6+36j ... move.l d7,d3 bra.s loc_5760E ; --------------------------------------------------------------------------- loc_5760C: ; CODE XREF: sub_575C6+40j clr.b d3 loc_5760E: ; CODE XREF: sub_575C6+44j tst.b d3 beq.s loc_575D4 move.b d6,(byte_FFFFB010).w bra.s loc_5767A ; --------------------------------------------------------------------------- loc_57618: ; CODE XREF: sub_575C6+28j moveq #2,d1 cmp.b d3,d1 bne.s loc_57648 move.b (byte_FFFF95DD).w,d3 cmp.b d3,d6 beq.s loc_57634 cmp.b d3,d1 beq.s loc_57634 cmp.b d3,d7 beq.s loc_57634 moveq #5,d2 cmp.b d3,d2 bne.s loc_57638 loc_57634: ; CODE XREF: sub_575C6+5Ej ; sub_575C6+62j ... move.l d7,d3 bra.s loc_5763A ; --------------------------------------------------------------------------- loc_57638: ; CODE XREF: sub_575C6+6Cj clr.b d3 loc_5763A: ; CODE XREF: sub_575C6+70j tst.b d3 beq.s loc_57642 moveq #5,d2 bra.s loc_57676 ; --------------------------------------------------------------------------- loc_57642: ; CODE XREF: sub_575C6+76j move.b d1,(byte_FFFFB010).w bra.s loc_5767A ; --------------------------------------------------------------------------- loc_57648: ; CODE XREF: sub_575C6+56j moveq #3,d2 cmp.b d3,d2 bne.s loc_5767A move.b (byte_FFFF95DD).w,d3 cmp.b d3,d6 beq.s loc_57664 cmp.b d3,d1 beq.s loc_57664 cmp.b d3,d7 beq.s loc_57664 cmpi.b #5,d3 bne.s loc_57668 loc_57664: ; CODE XREF: sub_575C6+8Ej ; sub_575C6+92j ... move.l d7,d3 bra.s loc_5766A ; --------------------------------------------------------------------------- loc_57668: ; CODE XREF: sub_575C6+9Cj clr.b d3 loc_5766A: ; CODE XREF: sub_575C6+A0j tst.b d3 beq.s loc_57676 move.b #6,(byte_FFFFB010).w bra.s loc_5767A ; --------------------------------------------------------------------------- loc_57676: ; CODE XREF: sub_575C6+7Aj ; sub_575C6+A6j move.b d2,(byte_FFFFB010).w loc_5767A: ; CODE XREF: sub_575C6+12j ; sub_575C6+20j ... jsr sub_57562 tst.b (XPRS_STEADY_STATE_KE_USE_STEADY_STATE_ADAPTS).l ; Bypass the steady state adapt update if this is false. ; T/F beq.w loc_57EDA clr.b (byte_FFFFB01A).w move.w (word_FFFF95F6).w,d0 cmp.w (XPRS_STEADY_STATE_KE_SS_ADAPT_RANGE_CHANGE_TIME).l,d0 ; The amount of time that Time_Since_Last_Range_Change must be greater than in order to allow a SS adapt. ; Seconds bhi.s loc_576A0 bset #2,(byte_FFFFB01A).w loc_576A0: ; CODE XREF: sub_575C6+D2j btst #4,(byte_FFFFA8FE).w beq.s loc_576AE bset #0,(byte_FFFFB01A).w loc_576AE: ; CODE XREF: sub_575C6+E0j btst #3,(byte_FFFFA8FE).w beq.s loc_576BC bset #1,(byte_FFFFB01A).w loc_576BC: ; CODE XREF: sub_575C6+EEj tst.b (byte_FFFFAC5B).w bne.s loc_576CA btst #5,(byte_FFFFAFD4).w beq.s loc_576D0 loc_576CA: ; CODE XREF: sub_575C6+FAj bset #3,(byte_FFFFB01A).w loc_576D0: ; CODE XREF: sub_575C6+102j move.w (word_FFFF95DA).w,d0 cmp.w (XPRS_STEADY_STATE_KE_SS_ADAPT_OUTPUT_SPEED_VALID).l,d0 ; Vehicle speed must be greater than this for a valid steady state adapts update. ; MPH bcc.s loc_576E2 bset #4,(byte_FFFFB01A).w loc_576E2: ; CODE XREF: sub_575C6+114j move.b (byte_FFFF95E9).w,d0 cmp.b d0,d6 bcc.s loc_576F0 bset #6,(byte_FFFFB01A).w loc_576F0: ; CODE XREF: sub_575C6+122j move.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l,d2 ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_57718 move.b (byte_FFFF95DD).w,d3 beq.s loc_57704 cmpi.b #3,d3 bne.s loc_57708 loc_57704: ; CODE XREF: sub_575C6+136j moveq #1,d3 bra.s loc_5770A ; --------------------------------------------------------------------------- loc_57708: ; CODE XREF: sub_575C6+13Cj clr.b d3 loc_5770A: ; CODE XREF: sub_575C6+140j tst.b d3 beq.s loc_57718 cmp.b d0,d6 bcs.s loc_57718 move.b #2,(byte_FFFFB01B).w loc_57718: ; CODE XREF: sub_575C6+130j ; sub_575C6+146j ... move.b (byte_FFFF95DD).w,d3 cmp.b d3,d6 beq.s loc_57726 cmpi.b #5,d3 bne.s loc_57734 loc_57726: ; CODE XREF: sub_575C6+158j cmp.b d0,d6 bcs.s loc_57734 tst.b d2 bne.s loc_57734 move.b #1,(byte_FFFFB01B).w loc_57734: ; CODE XREF: sub_575C6+15Ej ; sub_575C6+162j ... tst.b d2 beq.s loc_5774C cmp.b d3,d6 beq.s loc_57742 cmpi.b #5,d3 bne.s loc_5774C loc_57742: ; CODE XREF: sub_575C6+174j cmp.b d0,d6 bcs.s loc_5774C move.b #3,(byte_FFFFB01B).w loc_5774C: ; CODE XREF: sub_575C6+170j ; sub_575C6+17Aj ... tst.b d2 bne.s loc_5776C tst.b d3 beq.s loc_5775A cmpi.b #3,d3 bne.s loc_5775E loc_5775A: ; CODE XREF: sub_575C6+18Cj moveq #1,d4 bra.s loc_57760 ; --------------------------------------------------------------------------- loc_5775E: ; CODE XREF: sub_575C6+192j clr.b d4 loc_57760: ; CODE XREF: sub_575C6+196j tst.b d4 beq.s loc_5776C cmp.b d0,d6 bcs.s loc_5776C clr.b (byte_FFFFB01B).w loc_5776C: ; CODE XREF: sub_575C6+188j ; sub_575C6+19Cj ... cmp.b d0,d6 bcc.s loc_57774 move.b d6,(byte_FFFFB01B).w loc_57774: ; CODE XREF: sub_575C6+1A8j cmp.b d3,d6 beq.s loc_5777E cmpi.b #5,d3 bne.s loc_577BA loc_5777E: ; CODE XREF: sub_575C6+1B0j btst #7,(byte_FFFFA400).w bne.s loc_5778E tst.b (TCM_OPTIONS_K_TRANS_HAS_ECCC).l ; If TRUE, Transmission has ECCC ; BOOLEAN bne.s loc_57794 loc_5778E: ; CODE XREF: sub_575C6+1BEj move.w (word_FFFF95BC).w,d3 bra.s loc_577BC ; --------------------------------------------------------------------------- loc_57794: ; CODE XREF: sub_575C6+1C6j cmp.b d3,d6 bne.s loc_577B0 move.w (word_FFFF95BC).w,d3 sub.w (word_FFFFAD7A).w,d3 loc_577A0: ; CODE XREF: sub_575C6+1F2j bvc.s loc_577BC bpl.s loc_577AA move.w #$7FFF,d3 bra.s loc_577BC ; --------------------------------------------------------------------------- loc_577AA: ; CODE XREF: sub_575C6+1DCj move.w #$8000,d3 bra.s loc_577BC ; --------------------------------------------------------------------------- loc_577B0: ; CODE XREF: sub_575C6+1D0j move.w (word_FFFF95BC).w,d3 add.w (word_FFFFAD7A).w,d3 bra.s loc_577A0 ; --------------------------------------------------------------------------- loc_577BA: ; CODE XREF: sub_575C6+1B6j clr.w d3 loc_577BC: ; CODE XREF: sub_575C6+1CCj ; sub_575C6:loc_577A0j ... moveq #3,d7 cmp.b d0,d7 bcs.s loc_577DE asl.b #2,d0 add.b (byte_FFFF95DC).w,d0 andi.w #$FF,d0 tst.b XPRS_STEADY_STATE_KA_SS_BRAKING_ADAPT_ENABLED(d0.w) beq.s loc_577DE bset #5,(byte_FFFFB011).w bra.s loc_577E4 ; --------------------------------------------------------------------------- loc_577DE: ; CODE XREF: sub_575C6+1FAj ; sub_575C6+20Ej bclr #5,(byte_FFFFB011).w loc_577E4: ; CODE XREF: sub_575C6+216j tst.w d3 blt.s loc_577EE loc_577E8: ; CODE XREF: sub_575C6+23Aj move.w d3,(word_FFFFB026).w bra.s loc_57806 ; --------------------------------------------------------------------------- loc_577EE: ; CODE XREF: sub_575C6+220j moveq #5,d5 cmp.b (byte_FFFF95DD).w,d5 beq.s loc_577FE btst #5,(byte_FFFFB011).w beq.s loc_57802 loc_577FE: ; CODE XREF: sub_575C6+22Ej neg.w d3 bra.s loc_577E8 ; --------------------------------------------------------------------------- loc_57802: ; CODE XREF: sub_575C6+236j clr.w (word_FFFFB026).w loc_57806: ; CODE XREF: sub_575C6+226j move.w (word_FFFF95BE).w,d3 blt.s loc_57812 loc_5780C: ; CODE XREF: sub_575C6+256j move.w d3,(word_FFFFB028).w bra.s loc_57822 ; --------------------------------------------------------------------------- loc_57812: ; CODE XREF: sub_575C6+244j btst #5,(byte_FFFFB011).w beq.s loc_5781E neg.w d3 bra.s loc_5780C ; --------------------------------------------------------------------------- loc_5781E: ; CODE XREF: sub_575C6+252j clr.w (word_FFFFB028).w loc_57822: ; CODE XREF: sub_575C6+24Aj move.w (XPRS_STEADY_STATE_KE_SS_DISABLE_ADAPT_TIME).l,d1 ; Amount of time an adapt cell update will be delayed after a previous adapt update. ; Seconds cmp.w (word_FFFFB01C).w,d1 bhi.w loc_57A96 move.b (byte_FFFFB01A).w,d0 move.b (byte_8A7B6).l,d5 not.b d5 and.b d0,d5 move.b (byte_8A7B4).l,d3 eor.b d3,d5 andi.b #$7F,d5 ; '' bne.w loc_57A8E move.b (byte_8A7B5).l,d5 not.b d5 and.b d0,d5 eor.b d3,d5 andi.b #$7F,d5 ; '' bne.w loc_57A96 move.b (byte_FFFFB01B).w,d0 cmpi.b #2,d0 beq.s loc_57872 cmp.b d0,d7 bne.w loc_57912 loc_57872: ; CODE XREF: sub_575C6+2A4j move.w (word_FFFFB028).w,d3 cmp.w (XPRS_STEADY_STATE_KE_SS_ADAPT_CLUTCH_SLIP_HIGH).l,d3 ; This determines if clutch slip is high enough to adapt up steady state pressure. ; RPM blt.s loc_578CE tst.w (word_FFFFB020).w bge.s loc_57888 clr.w (word_FFFFB020).w loc_57888: ; CODE XREF: sub_575C6+2BCj clr.w d3 tst.w (word_FFFFB028).w bcs.s loc_578A4 cmpi.w #$800,(word_FFFFB028).w bcc.s loc_578A0 move.w (word_FFFFB028).w,d3 lsr.w #1,d3 bra.s loc_578A4 ; --------------------------------------------------------------------------- loc_578A0: ; CODE XREF: sub_575C6+2D0j move.w #$400,d3 loc_578A4: ; CODE XREF: sub_575C6+2C8j ; sub_575C6+2D8j tbls.w (XPRS_STEADY_STATE_KV_CLUTCH_SLIP_ADAPT_UP_COUNTER).l,d3 ; Amount to increment slip counter by when clutch slip conditions are met for steady state adapt up pressure. ; Counts add.w (word_FFFFB020).w,d3 bvc.s loc_578BE bpl.s loc_578BA move.w #$7FFF,d3 bra.s loc_578BE ; --------------------------------------------------------------------------- loc_578BA: ; CODE XREF: sub_575C6+2ECj move.w #$8000,d3 loc_578BE: ; CODE XREF: sub_575C6+2EAj ; sub_575C6+2F2j move.w d3,(word_FFFFB020).w move.w (XPRS_STEADY_STATE_KE_SS_ADAPT_COUNT_HIGH).l,d4 ; Update steady state adapt up pressure cells when slip counter exceeds this cal. ; Counts cmp.w d4,d3 ble.s loc_57912 bra.s loc_5790E ; --------------------------------------------------------------------------- loc_578CE: ; CODE XREF: sub_575C6+2B6j cmp.w (XPRS_STEADY_STATE_KE_SS_ADAPT_CLUTCH_SLIP_LOW).l,d3 ; This determines if clutch slip is low enough to adapt down steady state pressure. ; RPM bgt.s loc_57912 tst.w (word_FFFFB020).w ble.s loc_578E0 clr.w (word_FFFFB020).w loc_578E0: ; CODE XREF: sub_575C6+314j clr.w d5 move.b (byte_FFFFB010).w,d5 move.w (word_FFFFB020).w,d3 sub.w XPRS_STEADY_STATE_KV_SS_ADAPT_DOWN_COUNTER(d5.w*2),d3 ; Amount to decrement slip counter by when slip conditions are met for steady state adapt down pressure. ; Counts bvc.s loc_57900 bpl.s loc_578FC move.w #$7FFF,d3 bra.s loc_57900 ; --------------------------------------------------------------------------- loc_578FC: ; CODE XREF: sub_575C6+32Ej move.w #$8000,d3 loc_57900: ; CODE XREF: sub_575C6+32Cj ; sub_575C6+334j move.w d3,(word_FFFFB020).w move.w (XPRS_STEADY_STATE_KE_SS_ADAPT_COUNT_LOW).l,d4 ; Update steady state adapt down pressure cells when slip counter exceeds this cal. ; Counts cmp.w d4,d3 bge.s loc_57912 loc_5790E: ; CODE XREF: sub_575C6+306j move.w d4,(word_FFFFB020).w loc_57912: ; CODE XREF: sub_575C6+2A8j ; sub_575C6+304j ... moveq #1,d5 cmp.b d0,d5 beq.s loc_5791E cmp.b d0,d7 bne.w loc_57A82 loc_5791E: ; CODE XREF: sub_575C6+350j move.b (byte_FFFF95DD).w,d3 cmp.b d3,d6 beq.s loc_5792E cmpi.b #5,d3 bne.w loc_57A82 loc_5792E: ; CODE XREF: sub_575C6+35Ej tst.b (TCM_OPTIONS_K_TRANS_HAS_ECCC).l ; If TRUE, Transmission has ECCC ; BOOLEAN beq.s loc_57940 btst #7,(byte_FFFFA400).w beq.w loc_579DE loc_57940: ; CODE XREF: sub_575C6+36Ej move.w (word_FFFFB026).w,d3 cmp.w (XPRS_STEADY_STATE_KE_SS_ADAPT_SLIP_HIGH).l,d3 ; This determines if TCC slip is high enough to adapt up steady state pressure. ; RPM blt.s loc_579A8 move.w (word_FFFFA410).w,d4 cmp.w (XPRS_STEADY_STATE_KE_SS_ADAPT_CC_HIGH).l,d4 ; This calibration defines a minimum limit of clutchcontrol capacity before allowing steady state adapts. ; Scaler bcs.s loc_579A8 tst.w (word_FFFFB01E).w bge.s loc_57962 clr.w (word_FFFFB01E).w loc_57962: ; CODE XREF: sub_575C6+396j clr.w d3 tst.w (word_FFFFB026).w bcs.s loc_5797E cmpi.w #$800,(word_FFFFB026).w bcc.s loc_5797A move.w (word_FFFFB026).w,d3 lsr.w #1,d3 bra.s loc_5797E ; --------------------------------------------------------------------------- loc_5797A: ; CODE XREF: sub_575C6+3AAj move.w #$400,d3 loc_5797E: ; CODE XREF: sub_575C6+3A2j ; sub_575C6+3B2j tbls.w (XPRS_STEADY_STATE_KV_TCC_SLIP_ADAPT_UP).l,d3 ; Amount to increment slip counter by when TCC slip conditions are met for steady state adapt up pressure. ; Counts add.w (word_FFFFB01E).w,d3 bvc.s loc_57994 bmi.w loc_57A3A loc_57990: ; CODE XREF: sub_575C6+470j move.w #$8000,d3 loc_57994: ; CODE XREF: sub_575C6+3C4j ; sub_575C6+46Cj ... move.w d3,(word_FFFFB01E).w move.w (XPRS_STEADY_STATE_KE_SS_ADAPT_COUNT_HIGH).l,d4 ; Update steady state adapt up pressure cells when slip counter exceeds this cal. ; Counts cmp.w d4,d3 ble.w loc_57A82 bra.w loc_57A7E ; --------------------------------------------------------------------------- loc_579A8: ; CODE XREF: sub_575C6+384j ; sub_575C6+390j cmp.w (XPRS_STEADY_STATE_KE_SS_ADAPT_SLIP_LOW).l,d3 ; This determines if TCC slip is low enough to adapt down steady state pressure. ; RPM bgt.w loc_57A82 tst.w (word_FFFFB01E).w ble.s loc_579BC clr.w (word_FFFFB01E).w loc_579BC: ; CODE XREF: sub_575C6+3F0j clr.w d5 move.b (byte_FFFFB010).w,d5 move.w (word_FFFFB01E).w,d3 sub.w XPRS_STEADY_STATE_KV_SS_ADAPT_DOWN_COUNTER(d5.w*2),d3 ; Amount to decrement slip counter by when slip conditions are met for steady state adapt down pressure. ; Counts bvc.w loc_57A70 bpl.w loc_57A6C loc_579D6: ; CODE XREF: sub_575C6+4A2j move.w #$7FFF,d3 bra.w loc_57A70 ; --------------------------------------------------------------------------- loc_579DE: ; CODE XREF: sub_575C6+376j btst #7,(byte_FFFFA400).w bne.w loc_57A82 move.w (word_FFFFB026).w,d3 cmp.w (XPRS_STEADY_STATE_KE_SS_ADAPT_SLIP_HIGH).l,d3 ; This determines if TCC slip is high enough to adapt up steady state pressure. ; RPM blt.s loc_57A42 move.w (word_FFFFA410).w,d4 cmp.w (XPRS_STEADY_STATE_KE_SS_ADAPT_CC_HIGH).l,d4 ; This calibration defines a minimum limit of clutchcontrol capacity before allowing steady state adapts. ; Scaler bcs.s loc_57A42 tst.w (word_FFFFB01E).w bge.s loc_57A0A clr.w (word_FFFFB01E).w loc_57A0A: ; CODE XREF: sub_575C6+43Ej clr.w d3 tst.w (word_FFFFB026).w bcs.s loc_57A26 cmpi.w #$800,(word_FFFFB026).w bcc.s loc_57A22 move.w (word_FFFFB026).w,d3 lsr.w #1,d3 bra.s loc_57A26 ; --------------------------------------------------------------------------- loc_57A22: ; CODE XREF: sub_575C6+452j move.w #$400,d3 loc_57A26: ; CODE XREF: sub_575C6+44Aj ; sub_575C6+45Aj tbls.w (XPRS_STEADY_STATE_KV_TCC_SLIP_ADAPT_UP).l,d3 ; Amount to increment slip counter by when TCC slip conditions are met for steady state adapt up pressure. ; Counts add.w (word_FFFFB01E).w,d3 bvc.w loc_57994 bpl.w loc_57990 loc_57A3A: ; CODE XREF: sub_575C6+3C6j move.w #$7FFF,d3 bra.w loc_57994 ; --------------------------------------------------------------------------- loc_57A42: ; CODE XREF: sub_575C6+42Cj ; sub_575C6+438j cmp.w (XPRS_STEADY_STATE_KE_SS_ADAPT_SLIP_LOW).l,d3 ; This determines if TCC slip is low enough to adapt down steady state pressure. ; RPM bgt.s loc_57A82 tst.w (word_FFFFB01E).w ble.s loc_57A54 clr.w (word_FFFFB01E).w loc_57A54: ; CODE XREF: sub_575C6+488j clr.w d5 move.b (byte_FFFFB010).w,d5 move.w (word_FFFFB01E).w,d3 sub.w XPRS_STEADY_STATE_KV_SS_ADAPT_DOWN_COUNTER(d5.w*2),d3 ; Amount to decrement slip counter by when slip conditions are met for steady state adapt down pressure. ; Counts bvc.s loc_57A70 bmi.w loc_579D6 loc_57A6C: ; CODE XREF: sub_575C6+40Cj move.w #$8000,d3 loc_57A70: ; CODE XREF: sub_575C6+408j ; sub_575C6+414j ... move.w d3,(word_FFFFB01E).w move.w (XPRS_STEADY_STATE_KE_SS_ADAPT_COUNT_LOW).l,d4 ; Update steady state adapt down pressure cells when slip counter exceeds this cal. ; Counts cmp.w d4,d3 bge.s loc_57A82 loc_57A7E: ; CODE XREF: sub_575C6+3DEj move.w d4,(word_FFFFB01E).w loc_57A82: ; CODE XREF: sub_575C6+354j ; sub_575C6+364j ... tst.b d0 bne.s loc_57A8A clr.w (word_FFFFB01E).w loc_57A8A: ; CODE XREF: sub_575C6+4BEj cmp.b d0,d6 bne.s loc_57A96 loc_57A8E: ; CODE XREF: sub_575C6+284j clr.w (word_FFFFB01E).w clr.w (word_FFFFB020).w loc_57A96: ; CODE XREF: sub_575C6+266j ; sub_575C6+298j ... movea.l (dword_FFFFB5DE).w,a0 move.w (word_FFFFB01C).w,d3 add.w $A(a0),d3 bcc.s loc_57AA8 move.w #$FFFF,d3 loc_57AA8: ; CODE XREF: sub_575C6+4DCj move.w d3,(word_FFFFB01C).w move.w (word_FFFF95C2).w,d3 cmp.w (XPRS_STEADY_STATE_KE_SS_BRAKING_TORQUE).l,d3 bge.s loc_57AC8 btst #5,(byte_FFFFB011).w beq.s loc_57AC8 bset #6,(byte_FFFFB011).w bra.s loc_57ACE ; --------------------------------------------------------------------------- loc_57AC8: ; CODE XREF: sub_575C6+4F0j ; sub_575C6+4F8j bclr #6,(byte_FFFFB011).w loc_57ACE: ; CODE XREF: sub_575C6+500j move.b (byte_FFFFB01B).w,d3 cmp.b d3,d7 bne.s loc_57AEE move.w (word_FFFFB020).w,d4 move.w (word_FFFFB01E).w,d3 cmp.w d4,d3 blt.s loc_57AE8 move.w d3,(word_FFFFB022).w bra.s loc_57B08 ; --------------------------------------------------------------------------- loc_57AE8: ; CODE XREF: sub_575C6+51Aj move.w d4,(word_FFFFB022).w bra.s loc_57B08 ; --------------------------------------------------------------------------- loc_57AEE: ; CODE XREF: sub_575C6+50Ej moveq #2,d5 cmp.b d3,d5 bne.s loc_57AFC move.w (word_FFFFB020).w,(word_FFFFB022).w bra.s loc_57B08 ; --------------------------------------------------------------------------- loc_57AFC: ; CODE XREF: sub_575C6+52Cj cmpi.b #1,d3 bne.s loc_57B08 move.w (word_FFFFB01E).w,(word_FFFFB022).w loc_57B08: ; CODE XREF: sub_575C6+520j ; sub_575C6+526j ... move.b (byte_8A7B4).l,d3 move.b (byte_FFFFB01A).w,d4 eor.b d3,d4 andi.b #$7F,d4 ; '' bne.w loc_57EC8 cmp.w (word_FFFFB01C).w,d1 bhi.w loc_57EC8 tst.b (byte_FFFFB024).w beq.s loc_57B2E clr.b (byte_FFFFB024).w loc_57B2E: ; CODE XREF: sub_575C6+562j tst.b d2 beq.s loc_57B44 tst.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.w loc_57D28 cmp.b (byte_FFFF95DC).w,d7 bne.w loc_57D28 loc_57B44: ; CODE XREF: sub_575C6+56Aj move.b (byte_FFFF95DD).w,d3 cmp.b d3,d6 beq.s loc_57B54 moveq #5,d1 cmp.b d3,d1 bne.w loc_57D28 loc_57B54: ; CODE XREF: sub_575C6+584j move.w (word_FFFFB022).w,d4 cmp.w (XPRS_STEADY_STATE_KE_SS_ADAPT_COUNT_HIGH).l,d4 ; Update steady state adapt up pressure cells when slip counter exceeds this cal. ; Counts blt.w loc_57C50 move.b (byte_FFFFB454).w,d3 moveq #6,d1 cmp.b d3,d1 beq.s loc_57B7A moveq #8,d2 cmp.b d3,d2 beq.s loc_57B7A moveq #5,d2 cmp.b d3,d2 bne.w loc_57C50 loc_57B7A: ; CODE XREF: sub_575C6+5A4j ; sub_575C6+5AAj btst #6,(byte_FFFFB011).w beq.s loc_57BD4 btst #6,(byte_FFFFA2A1).w bne.w loc_57C46 clr.w d0 move.b (byte_FFFFB010).w,d0 clr.w d4 move.b (byte_FFFFB010).w,d4 clr.w d3 move.b (byte_FFFFB010).w,d3 move.w unk_FFFF8C3E(d3.w*2),d3 add.w XPRS_STEADY_STATE_KV_SS_ADAPTIVE_CELLS_UP(d4.w*2),d3 ; This is added to the steady state adaptive pressure cells when adapt up conditions are met. ; PSI cmpi.w #$3E80,d3 bls.s loc_57BB6 move.w #$3E80,d3 loc_57BB6: ; CODE XREF: sub_575C6+5EAj move.w d3,$1C+var_73DE(d0.w*2) clr.w d0 move.b (byte_FFFFB010).w,d0 clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w unk_FFFF8C3E(d0.w*2),$1C+var_73DE(d3.w*2) bra.s loc_57C46 ; --------------------------------------------------------------------------- loc_57BD4: ; CODE XREF: sub_575C6+5BAj btst #3,(byte_FFFFA2A1).w bne.s loc_57C46 clr.w d0 move.b (byte_FFFFB010).w,d0 clr.w d3 move.b (byte_FFFFB010).w,d3 move.w unk_FFFF8C50(d3.w*2),d3 add.w XPRS_STEADY_STATE_KV_SS_ADAPTIVE_CELLS_UP(d0.w*2),d3 ; This is added to the steady state adaptive pressure cells when adapt up conditions are met. ; PSI cmpi.w #$3E80,d3 bls.s loc_57C00 move.w #$3E80,d3 loc_57C00: ; CODE XREF: sub_575C6+634j clr.w d4 move.b (byte_FFFFB010).w,d4 move.w d3,$1C+var_73CC(d4.w*2) movea.l #unk_FF8C50,a1 movea.l a1,a0 moveq #$10,d0 jsr sub_2654C move.w d0,(word_FFFF8C60).w clr.w d3 move.b (byte_FFFFB010).w,d3 movea.w unk_FFFF8C50(d3.w*2),a2 clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w a2,$1C+var_73CC(d3.w*2) movea.l a1,a0 loc_57C3A: ; CODE XREF: sub_575C6+824j moveq #$10,d0 jsr sub_2654C move.w d0,(word_FFFF8C60).w loc_57C46: ; CODE XREF: sub_575C6+5C2j ; sub_575C6+60Cj ... move.b #1,(byte_FFFFB024).w bra.w loc_57E90 ; --------------------------------------------------------------------------- loc_57C50: ; CODE XREF: sub_575C6+598j ; sub_575C6+5B0j cmp.w (XPRS_STEADY_STATE_KE_SS_ADAPT_COUNT_LOW).l,d4 ; Update steady state adapt down pressure cells when slip counter exceeds this cal. ; Counts bgt.w loc_57E90 moveq #5,d1 cmp.b (byte_FFFFB454).w,d1 bne.w loc_57E90 tst.w (word_FFFFB452).w bls.w loc_57E90 btst #6,(byte_FFFFB011).w beq.s loc_57CC2 btst #6,(byte_FFFFA2A1).w bne.w loc_57E8A clr.w d0 move.b (byte_FFFFB010).w,d0 clr.w d4 move.b (byte_FFFFB010).w,d4 clr.w d3 move.b (byte_FFFFB010).w,d3 move.w unk_FFFF8C3E(d3.w*2),d3 sub.w XPRS_STEADY_STATE_KV_SS_ADAPTIVE_CELLS_DOWN(d4.w*2),d3 ; This is subtracted from the steady state adaptive pressure cells when adapt down conditions are met. ; PSI bcc.s loc_57CA2 clr.w d3 loc_57CA2: ; CODE XREF: sub_575C6+6D8j move.w d3,$1C+var_73DE(d0.w*2) clr.w d0 move.b (byte_FFFFB010).w,d0 clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w unk_FFFF8C3E(d0.w*2),$1C+var_73DE(d3.w*2) bra.w loc_57E8A ; --------------------------------------------------------------------------- loc_57CC2: ; CODE XREF: sub_575C6+6ACj btst #3,(byte_FFFFA2A1).w bne.w loc_57E8A clr.w d0 move.b (byte_FFFFB010).w,d0 clr.w d3 move.b (byte_FFFFB010).w,d3 move.w unk_FFFF8C50(d3.w*2),d3 sub.w XPRS_STEADY_STATE_KV_SS_ADAPTIVE_CELLS_DOWN(d0.w*2),d3 ; This is subtracted from the steady state adaptive pressure cells when adapt down conditions are met. ; PSI bcc.s loc_57CEA clr.w d3 loc_57CEA: ; CODE XREF: sub_575C6+720j clr.w d4 move.b (byte_FFFFB010).w,d4 move.w d3,$1C+var_73CC(d4.w*2) movea.l #unk_FF8C50,a1 movea.l a1,a0 moveq #$10,d0 jsr sub_2654C move.w d0,(word_FFFF8C60).w clr.w d3 move.b (byte_FFFFB010).w,d3 movea.w unk_FFFF8C50(d3.w*2),a2 clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w a2,$1C+var_73CC(d3.w*2) movea.l a1,a0 bra.w loc_57E7E ; --------------------------------------------------------------------------- loc_57D28: ; CODE XREF: sub_575C6+572j ; sub_575C6+57Aj ... tst.b d2 beq.w loc_57E90 tst.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.s loc_57D3E cmp.b (byte_FFFF95DC).w,d7 beq.w loc_57E90 loc_57D3E: ; CODE XREF: sub_575C6+76Ej move.w (word_FFFFB022).w,d4 cmp.w (XPRS_STEADY_STATE_KE_SS_ADAPT_COUNT_HIGH).l,d4 ; Update steady state adapt up pressure cells when slip counter exceeds this cal. ; Counts blt.w loc_57DEE move.b (byte_FFFFB454).w,d3 moveq #6,d1 cmp.b d3,d1 beq.s loc_57D64 moveq #8,d2 cmp.b d3,d2 beq.s loc_57D64 moveq #5,d2 cmp.b d3,d2 bne.w loc_57DEE loc_57D64: ; CODE XREF: sub_575C6+78Ej ; sub_575C6+794j btst #6,(byte_FFFFB011).w beq.s loc_57DAA btst #6,(byte_FFFFA2A1).w bne.w loc_57C46 clr.w d0 move.b (byte_FFFFB010).w,d0 clr.w d4 move.b (byte_FFFFB010).w,d4 clr.w d3 move.b (byte_FFFFB010).w,d3 move.w unk_FFFF8C3E(d3.w*2),d3 add.w XPRS_STEADY_STATE_KV_SS_ADAPTIVE_CELLS_UP(d4.w*2),d3 ; This is added to the steady state adaptive pressure cells when adapt up conditions are met. ; PSI cmpi.w #$3E80,d3 bls.s loc_57DA0 move.w #$3E80,d3 loc_57DA0: ; CODE XREF: sub_575C6+7D4j move.w d3,$1C+var_73DE(d0.w*2) bra.w loc_57C46 ; --------------------------------------------------------------------------- loc_57DAA: ; CODE XREF: sub_575C6+7A4j btst #3,(byte_FFFFA2A1).w bne.w loc_57C46 clr.w d0 move.b (byte_FFFFB010).w,d0 clr.w d3 move.b (byte_FFFFB010).w,d3 move.w unk_FFFF8C50(d3.w*2),d3 add.w XPRS_STEADY_STATE_KV_SS_ADAPTIVE_CELLS_UP(d0.w*2),d3 ; This is added to the steady state adaptive pressure cells when adapt up conditions are met. ; PSI cmpi.w #$3E80,d3 bls.s loc_57DD8 move.w #$3E80,d3 loc_57DD8: ; CODE XREF: sub_575C6+80Cj clr.w d4 move.b (byte_FFFFB010).w,d4 move.w d3,$1C+var_73CC(d4.w*2) movea.l #unk_FF8C50,a0 bra.w loc_57C3A ; --------------------------------------------------------------------------- loc_57DEE: ; CODE XREF: sub_575C6+782j ; sub_575C6+79Aj cmp.w (XPRS_STEADY_STATE_KE_SS_ADAPT_COUNT_LOW).l,d4 ; Update steady state adapt down pressure cells when slip counter exceeds this cal. ; Counts bgt.w loc_57E90 moveq #5,d1 cmp.b (byte_FFFFB454).w,d1 bne.w loc_57E90 tst.w (word_FFFFB452).w bls.w loc_57E90 btst #6,(byte_FFFFB011).w beq.s loc_57E46 btst #6,(byte_FFFFA2A1).w bne.s loc_57E8A clr.w d0 move.b (byte_FFFFB010).w,d0 clr.w d4 move.b (byte_FFFFB010).w,d4 clr.w d3 move.b (byte_FFFFB010).w,d3 move.w unk_FFFF8C3E(d3.w*2),d3 sub.w XPRS_STEADY_STATE_KV_SS_ADAPTIVE_CELLS_DOWN(d4.w*2),d3 ; This is subtracted from the steady state adaptive pressure cells when adapt down conditions are met. ; PSI bcc.s loc_57E3E clr.w d3 loc_57E3E: ; CODE XREF: sub_575C6+874j move.w d3,$1C+var_73DE(d0.w*2) bra.s loc_57E8A ; --------------------------------------------------------------------------- loc_57E46: ; CODE XREF: sub_575C6+84Aj btst #3,(byte_FFFFA2A1).w bne.s loc_57E8A clr.w d0 move.b (byte_FFFFB010).w,d0 clr.w d3 move.b (byte_FFFFB010).w,d3 move.w unk_FFFF8C50(d3.w*2),d3 sub.w XPRS_STEADY_STATE_KV_SS_ADAPTIVE_CELLS_DOWN(d0.w*2),d3 ; This is subtracted from the steady state adaptive pressure cells when adapt down conditions are met. ; PSI bcc.s loc_57E6C clr.w d3 loc_57E6C: ; CODE XREF: sub_575C6+8A2j clr.w d4 move.b (byte_FFFFB010).w,d4 move.w d3,$1C+var_73CC(d4.w*2) movea.l #unk_FF8C50,a0 loc_57E7E: ; CODE XREF: sub_575C6+75Ej moveq #$10,d0 jsr sub_2654C move.w d0,(word_FFFF8C60).w loc_57E8A: ; CODE XREF: sub_575C6+6B4j ; sub_575C6+6F8j ... move.b #2,(byte_FFFFB024).w loc_57E90: ; CODE XREF: sub_575C6+686j ; sub_575C6+690j ... tst.b (byte_FFFFB024).w beq.s loc_57EDA clr.w (word_FFFFB01C).w clr.w (word_FFFFB01E).w clr.w (word_FFFFB020).w movea.l #unk_FF8C50,a0 moveq #$10,d0 jsr sub_2654C move.w d0,(word_FFFF8C60).w movea.l #unk_FF8C3E,a0 moveq #$10,d0 jsr sub_2654C move.w d0,(word_FFFF8C4E).w bra.s loc_57EDA ; --------------------------------------------------------------------------- loc_57EC8: ; CODE XREF: sub_575C6+552j ; sub_575C6+55Aj cmp.w (word_FFFFB01C).w,d1 bhi.s loc_57EDA clr.b (byte_FFFFB024).w clr.w (word_FFFFB01E).w clr.w (word_FFFFB020).w loc_57EDA: ; CODE XREF: sub_575C6+C0j ; sub_575C6+8CEj ... btst #6,(byte_FFFFB011).w beq.s loc_57EF0 clr.w d0 move.b (byte_FFFFB010).w,d0 move.w unk_FFFF8C3E(d0.w*2),d0 bra.s loc_57EFC ; --------------------------------------------------------------------------- loc_57EF0: ; CODE XREF: sub_575C6+91Aj clr.w d0 move.b (byte_FFFFB010).w,d0 move.w unk_FFFF8C50(d0.w*2),d0 loc_57EFC: ; CODE XREF: sub_575C6+928j move.w (word_FFFF9582).w,d4 cmp.w (XPRS_STEADY_STATE_KE_SS_CLOSED_THROT_MIN_TPS).l,d4 ; ; bcc.s loc_57F70 move.w (word_FFFF95DA).w,d4 cmp.w (XPRS_STEADY_STATE_KE_SS_CLOSED_THROT_MIN_MPH).l,d4 ; Do Closed Throttle calculation of steady state pressure if MPH is less than this. ; MPH bcc.s loc_57F70 bset #4,(byte_FFFFB011).w move.b (byte_FFFF95E9).w,d4 cmpi.b #5,d4 bne.s loc_57F26 moveq #6,d4 loc_57F26: ; CODE XREF: sub_575C6+95Cj move.w (word_FFFF9590).w,d3 addi.b #$36,d3 ; '6' andi.w #$FF,d4 mulu.w #$12,d4 lea XPRS_STEADY_STATE_KA_SS_CLOSED_THROT_LINE_PRES(d4.l),a3 ; Steady state line pressure in Closed Throttle mode. ; PSI clr.w d4 moveq #$10,d0 cmp.b d3,d0 bls.s loc_57F4A move.l d4,d3 bra.s loc_57F64 ; --------------------------------------------------------------------------- loc_57F4A: ; CODE XREF: sub_575C6+97Ej cmpi.b #$F0,d3 bcc.s loc_57F60 andi.w #$FF,d3 sub.w d0,d3 asl.w #6,d3 ext.l d3 divs.w #7,d3 bra.s loc_57F64 ; --------------------------------------------------------------------------- loc_57F60: ; CODE XREF: sub_575C6+988j move.w #$800,d3 loc_57F64: ; CODE XREF: sub_575C6+982j ; sub_575C6+998j tblu.w (a3),d3 loc_57F68: ; CODE XREF: sub_575C6+A34j ; sub_575C6+A3Cj move.w d3,(word_FFFFB012).w bra.w loc_58188 ; --------------------------------------------------------------------------- loc_57F70: ; CODE XREF: sub_575C6+940j ; sub_575C6+94Cj tst.b (TCM_OPTIONS_KE_TRANS_HAS_SIGNED_TORQUE_MODEL).l ; When TRUE, allows for signed engine torque values and uses the negative torque model. ; T/F beq.s loc_57F82 btst #7,(byte_FFFFB011).w bne.w loc_58006 loc_57F82: ; CODE XREF: sub_575C6+9B0j bclr #4,(byte_FFFFB011).w clr.w d3 move.b (byte_FFFFB010).w,d3 movea.w d3,a3 move.w (word_FFFF9590).w,d3 addi.b #$36,d3 ; '6' movea.w #$10EF,a2 andi.w #$FF,d3 asl.w #4,d3 tblu.b (XPRS_STEADY_STATE_KV_SS_LINE_TEMP_COMP).l,d3 ; Temperature compensation factor to steady state line pressure. ; PSI/Ftlb andi.w #$FF,d3 clr.w d4 move.b (byte_FFFFB010).w,d4 move.b XPRS_STEADY_STATE_KV_LINE_CLUTCH_GAIN(d4.w),d4 ; Gain used to calculate steady state line pressure. ; Gain andi.w #$FF,d4 mulu.w (word_FFFF95CE).w,d4 lsr.l #8,d4 mulu.w d4,d3 divu.w #8,d3 bvs.s loc_57FD4 cmpi.w #$5780,d3 bls.s loc_57FD8 loc_57FD4: ; CODE XREF: sub_575C6+A06j move.w #$5780,d3 loc_57FD8: ; CODE XREF: sub_575C6+A0Cj add.w XPRS_STEADY_STATE_KV_LINE_CLUTCH_OFFSET(a3.w*2),d3 ; Offset used to calculate steady state line pressure. ; PSI cmpi.w #$7FFF,d3 bhi.s loc_57FF2 cmpi.w #$5780,d3 bls.s loc_57FF4 move.w #$5780,d3 bra.s loc_57FF4 ; --------------------------------------------------------------------------- loc_57FF2: ; CODE XREF: sub_575C6+A1Ej clr.w d3 loc_57FF4: ; CODE XREF: sub_575C6+A24j ; sub_575C6+A2Aj add.w d0,d3 cmpi.w #$5780,d3 bls.w loc_57F68 move.w #$5780,d3 bra.w loc_57F68 ; --------------------------------------------------------------------------- loc_58006: ; CODE XREF: sub_575C6+9B8j move.w (word_FFFF95C2).w,d3 blt.w loc_580C2 clr.w d3 move.b (byte_FFFFB010).w,d3 movea.w d3,a3 move.w (word_FFFF9590).w,d3 addi.b #$36,d3 ; '6' movea.w #$10EF,a2 andi.w #$FF,d3 asl.w #4,d3 tblu.b (XPRS_STEADY_STATE_KV_SS_LINE_TEMP_COMP).l,d3 ; Temperature compensation factor to steady state line pressure. ; PSI/Ftlb andi.w #$FF,d3 clr.w d4 move.b (byte_FFFFB010).w,d4 move.b XPRS_STEADY_STATE_KV_LINE_CLUTCH_GAIN(d4.w),d4 ; Gain used to calculate steady state line pressure. ; Gain andi.w #$FF,d4 mulu.w (word_FFFF95CE).w,d4 lsr.l #8,d4 mulu.w d4,d3 divu.w #8,d3 bvs.s loc_5805A cmpi.w #$5780,d3 bls.s loc_5805E loc_5805A: ; CODE XREF: sub_575C6+A8Cj move.w #$5780,d3 loc_5805E: ; CODE XREF: sub_575C6+A92j add.w XPRS_STEADY_STATE_KV_LINE_CLUTCH_OFFSET(a3.w*2),d3 ; Offset used to calculate steady state line pressure. ; PSI cmpi.w #$7FFF,d3 bhi.s loc_58078 cmpi.w #$5780,d3 bls.s loc_5807A move.w #$5780,d3 bra.s loc_5807A ; --------------------------------------------------------------------------- loc_58078: ; CODE XREF: sub_575C6+AA4j clr.w d3 loc_5807A: ; CODE XREF: sub_575C6+AAAj ; sub_575C6+AB0j add.w d0,d3 cmpi.w #$5780,d3 bls.s loc_58086 move.w #$5780,d3 loc_58086: ; CODE XREF: sub_575C6+ABAj move.w d3,(word_FFFFB012).w clr.w d5 move.b (byte_FFFFB010).w,d5 move.l d0,d4 add.w XPRS_STEADY_STATE_KV_BRK_ELEMENT_LINE_CLUTCH_OFST(d5.w*2),d4 ; Offset used to calculate steady state line pressure. ; PSI cmpi.w #$7FFF,d4 bls.s loc_580A2 clr.w d4 loc_580A2: ; CODE XREF: sub_575C6+AD8j cmp.w d4,d3 bcc.s loc_580B8 clr.w d3 move.b (byte_FFFFB010).w,d3 add.w XPRS_STEADY_STATE_KV_BRK_ELEMENT_LINE_CLUTCH_OFST(d3.w*2),d0 ; Offset used to calculate steady state line pressure. ; PSI bra.w loc_58178 ; --------------------------------------------------------------------------- loc_580B8: ; CODE XREF: sub_575C6+ADEj ; sub_575C6+BA0j ... bclr #4,(byte_FFFFB011).w bra.w loc_58188 ; --------------------------------------------------------------------------- loc_580C2: ; CODE XREF: sub_575C6+A44j tst.w d3 bge.w loc_58188 clr.w d3 move.b (byte_FFFFB010).w,d3 movea.w d3,a3 move.w (word_FFFF9590).w,d3 addi.b #$36,d3 ; '6' movea.w #$10EF,a2 andi.w #$FF,d3 asl.w #4,d3 tblu.b (XPRS_STEADY_STATE_KV_SS_LINE_TEMP_COMP).l,d3 ; Temperature compensation factor to steady state line pressure. ; PSI/Ftlb clr.l d5 move.b d3,d5 clr.w d3 move.b (byte_FFFFB010).w,d3 clr.w d4 move.b XPRS_STEADY_STATE_KV_BRK_ELEMENT_LINE_CLUTCH_GAIN(d3.w),d4 ; Amount of clutch gain to be used in steady state linedetermination when in coast braking. ; Gain move.w (word_FFFF95D0).w,d3 bge.s loc_58106 neg.w d3 loc_58106: ; CODE XREF: sub_575C6+B3Cj mulu.w d4,d3 lsr.l #8,d3 mulu.w d3,d5 divu.w #8,d5 bvs.s loc_5811C cmpi.w #$5780,d5 bhi.s loc_5811C move.w d5,d3 bra.s loc_58120 ; --------------------------------------------------------------------------- loc_5811C: ; CODE XREF: sub_575C6+B4Aj ; sub_575C6+B50j move.w #$5780,d3 loc_58120: ; CODE XREF: sub_575C6+B54j add.w XPRS_STEADY_STATE_KV_BRK_ELEMENT_LINE_CLUTCH_OFST(a3.w*2),d3 ; Offset used to calculate steady state line pressure. ; PSI cmpi.w #$7FFF,d3 bhi.s loc_5813A cmpi.w #$5780,d3 bls.s loc_5813C move.w #$5780,d3 bra.s loc_5813C ; --------------------------------------------------------------------------- loc_5813A: ; CODE XREF: sub_575C6+B66j clr.w d3 loc_5813C: ; CODE XREF: sub_575C6+B6Cj ; sub_575C6+B72j add.w d0,d3 cmpi.w #$5780,d3 bls.s loc_58148 move.w #$5780,d3 loc_58148: ; CODE XREF: sub_575C6+B7Cj move.w d3,(word_FFFFB012).w clr.w d5 move.b (byte_FFFFB010).w,d5 move.l d0,d4 add.w XPRS_STEADY_STATE_KV_LINE_CLUTCH_OFFSET(d5.w*2),d4 ; Offset used to calculate steady state line pressure. ; PSI cmpi.w #$7FFF,d4 bls.s loc_58164 clr.w d4 loc_58164: ; CODE XREF: sub_575C6+B9Aj cmp.w d4,d3 bcc.w loc_580B8 clr.w d3 move.b (byte_FFFFB010).w,d3 add.w XPRS_STEADY_STATE_KV_LINE_CLUTCH_OFFSET(d3.w*2),d0 ; Offset used to calculate steady state line pressure. ; PSI loc_58178: ; CODE XREF: sub_575C6+AEEj cmpi.w #$7FFF,d0 bls.s loc_58180 clr.w d0 loc_58180: ; CODE XREF: sub_575C6+BB6j move.w d0,(word_FFFFB012).w bra.w loc_580B8 ; --------------------------------------------------------------------------- loc_58188: ; CODE XREF: sub_575C6+9A6j ; sub_575C6+AF8j ... move.w (word_FFFFB016).w,d3 cmp.w (XPRS_STEADY_STATE_KE_SS_DELTA_THROTTLE_THRESHOLD).l,d3 bcs.s loc_581AA move.w (word_FFFFB012).w,d3 add.w (word_FFFFB018).w,d3 cmpi.w #$5780,d3 bls.s loc_581A6 move.w #$5780,d3 loc_581A6: ; CODE XREF: sub_575C6+BDAj move.w d3,(word_FFFFB012).w loc_581AA: ; CODE XREF: sub_575C6+BCCj btst #4,(byte_FFFFB011).w bne.s loc_581B8 cmp.b (byte_FFFFB010).w,d6 beq.s loc_581C8 loc_581B8: ; CODE XREF: sub_575C6+BEAj cmpi.b #5,(byte_FFFFB010).w beq.s loc_581C8 cmpi.b #6,(byte_FFFFB010).w bne.s loc_581F4 loc_581C8: ; CODE XREF: sub_575C6+BF0j ; sub_575C6+BF8j move.w (word_FFFF95AC).w,d3 clr.w d4 lsr.w #3,d3 tbls.w (XPRS_STEADY_STATE_KV_LINE_TCC_OFFSET_PRESSURE).l,d3 ; Clutch pressure offset used in steady state pressure calculation when TCC is on. ; PSI add.w (word_FFFFB012).w,d3 cmpi.w #$7FFF,d3 bhi.s loc_581EE cmpi.w #$5780,d3 bls.s loc_581F0 move.w #$5780,d3 bra.s loc_581F0 ; --------------------------------------------------------------------------- loc_581EE: ; CODE XREF: sub_575C6+C1Aj move.l d4,d3 loc_581F0: ; CODE XREF: sub_575C6+C20j ; sub_575C6+C26j move.w d3,(word_FFFFB012).w loc_581F4: ; CODE XREF: sub_575C6+C00j clr.w d5 move.b (byte_FFFF95E9).w,d5 move.w (word_FFFFB012).w,d3 sub.w XPRS_STEADY_STATE_KV_PRESSURE_OFFSET(d5.w*2),d3 ; Pressure offset used in steady state pressure calculation. ; PSI ext.l d3 asl.l #8,d3 asl.l #6,d3 clr.w d5 move.b (byte_FFFF95E9).w,d5 move.w XPRS_STEADY_STATE_KV_PRESSURE_GAIN(d5.w*2),d5 ; Pressure gain used in steady state pressure calculation. ; Gain andi.l #$FFFF,d5 divs.l d5,d3 bvs.s loc_58238 tst.l d3 blt.s loc_5823E cmpi.l #$FFFF,d3 bhi.s loc_58238 cmpi.w #$1800,d3 bls.s loc_58240 loc_58238: ; CODE XREF: sub_575C6+C5Ej ; sub_575C6+C6Aj move.w #$1800,d3 bra.s loc_58240 ; --------------------------------------------------------------------------- loc_5823E: ; CODE XREF: sub_575C6+C62j clr.w d3 loc_58240: ; CODE XREF: sub_575C6+C70j ; sub_575C6+C76j move.w d3,(word_FFFFB00E).w movem.l (sp)+,d0-d2/d6-a1 rts ; End of function sub_575C6 ; =============== S U B R O U T I N E ======================================= sub_5824A: ; CODE XREF: OS1:00028C56p movem.l d0/a0-a1,-(sp) move.w (XPRS_STEADY_STATE_KE_SS_DISABLE_ADAPT_TIME).l,(word_FFFFB01C).w ; Amount of time an adapt cell update will be delayed after a previous adapt update. ; Seconds movea.l #unk_FF8C3E,a0 moveq #$10,d0 jsr sub_2654C cmp.w (word_FFFF8C4E).w,d0 beq.s loc_5827A lea (unk_FFFF8C3E).w,a1 moveq #7,d0 loc_58270: ; CODE XREF: sub_5824A+28j clr.w (a1)+ dbf d0,loc_58270 clr.w (word_FFFF8C4E).w loc_5827A: ; CODE XREF: sub_5824A+1Ej movea.l #unk_FF8C50,a1 movea.l a1,a0 moveq #$10,d0 jsr sub_2654C cmp.w (word_FFFF8C60).w,d0 beq.s loc_582AA lea (unk_FFFF8C50).w,a0 moveq #7,d0 loc_58296: ; CODE XREF: sub_5824A+4Ej clr.w (a0)+ dbf d0,loc_58296 movea.l a1,a0 moveq #$10,d0 jsr sub_2654C move.w d0,(word_FFFF8C60).w loc_582AA: ; CODE XREF: sub_5824A+44j movem.l (sp)+,d0/a0-a1 rts ; End of function sub_5824A ; =============== S U B R O U T I N E ======================================= sub_582B0: ; CODE XREF: sub_86CBE+3Ep movem.l d0-d2,-(sp) btst #4,(byte_FFFFA4FD).w beq.s loc_58308 move.b (byte_FFFFB394).w,(byte_FFFFB395).w clr.b (byte_FFFFB394).w bclr #6,(byte_FFFFB38C).w bclr #5,(byte_FFFFB38C).w clr.w (word_FFFFB38E).w move.w (word_FFFF95DA).w,d3 cmp.w (XSEM_ABUSE_TORQUE_KE_VEHICLE_SPEED_THRESHOLD).l,d3 ; Vehicle speed threshold used to determine abuse mode ; MPH bcc.s loc_58300 move.b (byte_FFFF95DC).w,d3 beq.s loc_582EE cmpi.b #1,d3 bne.s loc_58300 loc_582EE: ; CODE XREF: sub_582B0+36j bset #7,(byte_FFFFB38C).w clr.w (word_FFFFB390).w move.b (byte_FFFFA4F9).w,(byte_FFFFB396).w bra.s loc_5831E ; --------------------------------------------------------------------------- loc_58300: ; CODE XREF: sub_582B0+30j ; sub_582B0+3Cj bclr #7,(byte_FFFFB38C).w bra.s loc_5831E ; --------------------------------------------------------------------------- loc_58308: ; CODE XREF: sub_582B0+Aj movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB38E).w,d3 add.w $A(a2),d3 bcc.s loc_5831A move.w #$FFFF,d3 loc_5831A: ; CODE XREF: sub_582B0+64j move.w d3,(word_FFFFB38E).w loc_5831E: ; CODE XREF: sub_582B0+4Ej ; sub_582B0+56j btst #7,(byte_FFFFB38C).w beq.w loc_5854E move.w (word_FFFF9590).w,d4 addi.b #$36,d4 ; '6' move.b (byte_FFFFB396).w,d0 clr.l d2 move.b d0,d2 movea.l dword_89A46(d2.w*4),a2 movea.w #$10EF,a3 andi.w #$FF,d4 asl.w #4,d4 tblu.w (a2),d4 tst.b (byte_FFFFB394).w bne.s loc_5839C move.w (word_FFFF95B6).w,d3 cmp.w (XSEM_ABUSE_TORQUE_KE_SEM_ENGINE_SPD_ABUSE_LIMIT).l,d3 ; Engine speed limit for detecting abuse conditions ; RPM bhi.s loc_5836C move.w (word_FFFF9582).w,d3 cmp.w (XSEM_ABUSE_TORQUE_KE_SEM_THROTTLE_ABUSE_LIMIT).l,d3 ; Percent throttle limit for detecting abuse conditions ; Percent bls.s loc_5839C loc_5836C: ; CODE XREF: sub_582B0+AEj move.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l,d3 ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_58384 tst.b d3 beq.s loc_5839C move.w (word_FFFF95B0).w,d3 cmp.w (XSEM_ABUSE_TORQUE_KE_SEM_INPUT_SPEED_LIMIT).l,d3 ; Minimum input speed limit used to determine garage shiftinformation ; RPM bcs.s loc_5839C loc_58384: ; CODE XREF: sub_582B0+C2j cmp.w (word_FFFFB38E).w,d4 bls.s loc_5839C moveq #1,d2 move.b d2,(byte_FFFFB394).w tst.b (byte_FFFFB395).w bne.s loc_5839C bset #4,(byte_FFFFB38C).w loc_5839C: ; CODE XREF: sub_582B0+A2j ; sub_582B0+BAj ... tst.b (byte_FFFFB394).w beq.w loc_5852C tst.b d0 beq.w loc_5852C move.w (word_FFFF95B6).w,d3 clr.w d5 cmpi.w #$6A40,d3 bcc.s loc_583C4 andi.l #$FFFF,d3 asl.l #2,d3 divu.w #$19,d3 bra.s loc_583C8 ; --------------------------------------------------------------------------- loc_583C4: ; CODE XREF: sub_582B0+104j move.w #$1100,d3 loc_583C8: ; CODE XREF: sub_582B0+112j tblu.w (XSEM_ABUSE_TORQUE_KV_ABUSE_TORQUE_REDUCTION).l,d3 ; Amount of abuse torque reduction as function of engine speed ; Percent move.w d3,d1 btst #5,(byte_FFFFB38C).w beq.s loc_583E2 btst #6,(byte_FFFFB38C).w beq.s loc_5842E loc_583E2: ; CODE XREF: sub_582B0+128j tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_5842E move.w (word_FFFF95B0).w,d3 cmp.w (XSEM_ABUSE_TORQUE_KE_SEM_INPUT_SPEED_LIMIT).l,d3 ; Minimum input speed limit used to determine garage shiftinformation ; RPM bcc.s loc_5842E bset #6,(byte_FFFFB38C).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB390).w,d3 add.w $A(a2),d3 bcc.s loc_5840E move.w #$FFFF,d3 loc_5840E: ; CODE XREF: sub_582B0+158j move.w d3,(word_FFFFB390).w tst.w (XSEM_ABUSE_TORQUE_KE_SPEED_RAMP_OUT_TIME).l ; Amount of time to ramp the torque reduction to stall torquereduction when input speed becomes less thanKE_SEM_Input_Speed_Limit ; Seconds beq.w loc_584CC clr.l d3 move.w (word_FFFFB390).w,d3 asl.l #8,d3 asl.l #7,d3 divu.w (XSEM_ABUSE_TORQUE_KE_SPEED_RAMP_OUT_TIME).l,d3 ; Amount of time to ramp the torque reduction to stall torquereduction when input speed becomes less thanKE_SEM_Input_Speed_Limit ; Seconds loc_5842C: ; CODE XREF: sub_582B0+230j bra.s loc_58476 ; --------------------------------------------------------------------------- loc_5842E: ; CODE XREF: sub_582B0+130j ; sub_582B0+138j ... cmpi.b #3,d0 beq.s loc_5843A cmpi.b #1,d0 bne.s loc_58496 loc_5843A: ; CODE XREF: sub_582B0+182j cmp.w (word_FFFFB38E).w,d4 bhi.w loc_584E4 bset #5,(byte_FFFFB38C).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB390).w,d3 add.w $A(a2),d3 bcc.s loc_5845A move.w #$FFFF,d3 loc_5845A: ; CODE XREF: sub_582B0+1A4j move.w d3,(word_FFFFB390).w tst.w (XSEM_ABUSE_TORQUE_KE_DRIVE_RAMP_OUT_TIME).l ; Amount of time to ramp the torque reduction to stall torquereduction when range = Drive ; Seconds beq.s loc_584CC clr.l d3 move.w (word_FFFFB390).w,d3 asl.l #8,d3 asl.l #7,d3 divu.w (XSEM_ABUSE_TORQUE_KE_DRIVE_RAMP_OUT_TIME).l,d3 ; Amount of time to ramp the torque reduction to stall torquereduction when range = Drive ; Seconds loc_58476: ; CODE XREF: sub_582B0:loc_5842Cj bvc.s loc_5847C move.w #$FFFF,d3 loc_5847C: ; CODE XREF: sub_582B0:loc_58476j move.w #$8000,d4 cmp.w d3,d4 bcc.s loc_58486 move.l d4,d3 loc_58486: ; CODE XREF: sub_582B0+1D2j sub.w d3,d4 move.w d4,d3 loc_5848A: ; CODE XREF: sub_582B0+21Ej mulu.w d1,d3 lsr.l #8,d3 lsr.l #7,d3 move.w d3,(word_FFFFB30E).w bra.s loc_584E8 ; --------------------------------------------------------------------------- loc_58496: ; CODE XREF: sub_582B0+188j cmpi.b #4,d0 beq.s loc_584A2 cmpi.b #2,d0 bne.s loc_584E8 loc_584A2: ; CODE XREF: sub_582B0+1EAj cmp.w (word_FFFFB38E).w,d4 bhi.s loc_584E4 bset #5,(byte_FFFFB38C).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB390).w,d3 add.w $A(a2),d3 bcc.s loc_584C0 move.w #$FFFF,d3 loc_584C0: ; CODE XREF: sub_582B0+20Aj move.w d3,(word_FFFFB390).w tst.w (XSEM_ABUSE_TORQUE_KE_REVERSE_RAMP_OUT_TIME).l ; Amount of time to ramp the torque reduction to stall torquereduction when range = Reverse ; Seconds bne.s loc_584D0 loc_584CC: ; CODE XREF: sub_582B0+168j ; sub_582B0+1B4j move.l d5,d3 bra.s loc_5848A ; --------------------------------------------------------------------------- loc_584D0: ; CODE XREF: sub_582B0+21Aj clr.l d3 move.w (word_FFFFB390).w,d3 asl.l #8,d3 asl.l #7,d3 divu.w (XSEM_ABUSE_TORQUE_KE_REVERSE_RAMP_OUT_TIME).l,d3 ; Amount of time to ramp the torque reduction to stall torquereduction when range = Reverse ; Seconds bra.w loc_5842C ; --------------------------------------------------------------------------- loc_584E4: ; CODE XREF: sub_582B0+18Ej ; sub_582B0+1F6j move.w d1,(word_FFFFB30E).w loc_584E8: ; CODE XREF: sub_582B0+1E4j ; sub_582B0+1F0j btst #6,(byte_FFFFB38C).w bne.s loc_584F8 btst #5,(byte_FFFFB38C).w beq.s loc_58556 loc_584F8: ; CODE XREF: sub_582B0+23Ej move.w (word_FFFFB30E).w,d3 cmp.w (word_FFFFB310).w,d3 bhi.s loc_58556 clr.b (byte_FFFFB396).w move.w (X_SEM_KE_SEM_NO_REDUCTION).l,(word_FFFFB30E).w ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent clr.b (byte_FFFFB394).w bclr #7,(byte_FFFFB38C).w bclr #4,(byte_FFFFB38C).w bclr #6,(byte_FFFFB38C).w bclr #5,(byte_FFFFB38C).w bra.s loc_58556 ; --------------------------------------------------------------------------- loc_5852C: ; CODE XREF: sub_582B0+F0j ; sub_582B0+F6j move.w (X_SEM_KE_SEM_NO_REDUCTION).l,(word_FFFFB30E).w ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent cmp.w (word_FFFFB38E).w,d4 bls.s loc_58542 btst #6,(byte_FFFFA4FC).w beq.s loc_58556 loc_58542: ; CODE XREF: sub_582B0+288j clr.b (byte_FFFFB396).w bclr #7,(byte_FFFFB38C).w bra.s loc_58556 ; --------------------------------------------------------------------------- loc_5854E: ; CODE XREF: sub_582B0+74j move.w (X_SEM_KE_SEM_NO_REDUCTION).l,(word_FFFFB30E).w ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent loc_58556: ; CODE XREF: sub_582B0+246j ; sub_582B0+250j ... movem.l (sp)+,d0-d2 rts ; End of function sub_582B0 ; =============== S U B R O U T I N E ======================================= sub_5855C: ; CODE XREF: sub_86CBE+44p btst #4,(byte_FFFFB38C).w beq.w loc_585E6 btst #3,(byte_FFFFB38C).w bne.s loc_585B4 bset #2,(byte_FFFFB38C).w move.w (word_FFFF9590).w,d3 addi.b #$36,d3 ; '6' cmpi.b #$E0,d3 bcc.s loc_5858A andi.w #$FF,d3 asl.w #3,d3 bra.s loc_5858E ; --------------------------------------------------------------------------- loc_5858A: ; CODE XREF: sub_5855C+24j move.w #$700,d3 loc_5858E: ; CODE XREF: sub_5855C+2Cj tblu.w (XSEM_ABUSE_TORQUE_KV_ABUSE_RAMP_TIME).l,d3 ; Duration of the abuse ramp for the Torque_Signal_Pressure for the initial occurance of the abuse mode. ; Seconds move.w d3,(word_FFFFB38A).w clr.w (word_FFFFB392).w tst.w (word_FFFFB38A).w bne.s loc_585AC bclr #4,(byte_FFFFB38C).w bra.s loc_585BA ; --------------------------------------------------------------------------- loc_585AC: ; CODE XREF: sub_5855C+46j bset #3,(byte_FFFFB38C).w bra.s loc_585BA ; --------------------------------------------------------------------------- loc_585B4: ; CODE XREF: sub_5855C+10j bclr #2,(byte_FFFFB38C).w loc_585BA: ; CODE XREF: sub_5855C+4Ej ; sub_5855C+56j move.w (word_FFFFB392).w,d3 cmp.w (word_FFFFB38A).w,d3 bhi.s loc_585D8 movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_585D2 move.w #$FFFF,d3 loc_585D2: ; CODE XREF: sub_5855C+70j move.w d3,(word_FFFFB392).w bra.s locret_585F2 ; --------------------------------------------------------------------------- loc_585D8: ; CODE XREF: sub_5855C+66j bclr #4,(byte_FFFFB38C).w bclr #3,(byte_FFFFB38C).w bra.s locret_585F2 ; --------------------------------------------------------------------------- loc_585E6: ; CODE XREF: sub_5855C+6j bclr #3,(byte_FFFFB38C).w bclr #2,(byte_FFFFB38C).w locret_585F2: ; CODE XREF: sub_5855C+7Aj ; sub_5855C+88j rts ; End of function sub_5855C ; =============== S U B R O U T I N E ======================================= sub_585F4: ; CODE XREF: sub_86CBE+5Cp movem.l d0-d2/d6/a1,-(sp) movea.l a0,a1 btst #1,(byte_FFFFA8FE).w beq.s loc_58616 bclr #7,(byte_FFFFB30B).w bclr #6,(byte_FFFFB30B).w clr.b (byte_FFFFB309).w bra.w loc_58908 ; --------------------------------------------------------------------------- loc_58616: ; CODE XREF: sub_585F4+Cj btst #4,(byte_FFFFA8FE).w beq.s loc_58638 clr.b (byte_FFFFB309).w move.w (X_SEM_KE_SEM_NO_REDUCTION).l,(a1) ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent bclr #7,(byte_FFFFB30B).w bclr #6,(byte_FFFFB30B).w bra.w loc_5890E ; --------------------------------------------------------------------------- loc_58638: ; CODE XREF: sub_585F4+28j clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFF95DA).w,d4 cmp.w XSEM_SHIFT_TORQUE_KV_DNSHFT_SEM_MPH_SPEED_DISABLE(d3.w*2),d4 ; The vehicle speed limits to disable downshift torque management. ; MPH bcc.s loc_5865A clr.b (byte_FFFFB309).w bset #7,(byte_FFFFB30B).w bra.w loc_58908 ; --------------------------------------------------------------------------- loc_5865A: ; CODE XREF: sub_585F4+56j btst #6,(byte_FFFFA8FE).w beq.s loc_58688 bclr #7,(byte_FFFFB30B).w btst #6,(byte_FFFFB30B).w bne.s loc_5867A bset #6,(byte_FFFFB30B).w bra.w loc_5890E ; --------------------------------------------------------------------------- loc_5867A: ; CODE XREF: sub_585F4+7Aj move.w (X_SEM_KE_SEM_NO_REDUCTION).l,(a1) ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent clr.b (byte_FFFFB309).w bra.w loc_5890E ; --------------------------------------------------------------------------- loc_58688: ; CODE XREF: sub_585F4+6Cj btst #7,(byte_FFFFA8FF).w beq.w loc_58908 btst #7,(byte_FFFFB30B).w bne.w loc_58908 tst.b (byte_FFFFB309).w bne.w loc_5872C clr.w (word_FFFFB4C8).w move.b #2,(byte_FFFFB309).w move.w (X_SEM_KE_SEM_NO_REDUCTION).l,(a1) ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent move.w (word_FFFF95CE).w,(word_FFFFB2FE).w move.w (word_FFFFA906).w,d0 move.w d0,(word_FFFFB4CA).w move.b (byte_FFFF95E9).w,d3 moveq #4,d2 cmp.b d3,d2 bcc.s loc_586D8 move.w (word_FFFF9582).w,d1 cmp.w (XSEM_SHIFT_TORQUE_KE_SEM_PN_DISABLE_TPS).l,d1 ; Defines the highest throttle pedal position allowed forsetting the percent of reduction torque equal to zero. ; Percent bcs.s loc_586DC loc_586D8: ; CODE XREF: sub_585F4+D6j cmp.b d3,d2 bne.s loc_586E2 loc_586DC: ; CODE XREF: sub_585F4+E2j clr.w (word_FFFFB302).w bra.s loc_586FA ; --------------------------------------------------------------------------- loc_586E2: ; CODE XREF: sub_585F4+E6j clr.w d3 move.b (byte_FFFF95DC).w,d3 movea.l off_89A7A(d3.w*4),a0 jsr sub_877F8 move.w d0,(word_FFFFB302).w loc_586FA: ; CODE XREF: sub_585F4+ECj tst.w (word_FFFFB2FE).w bne.s loc_58706 loc_58700: ; CODE XREF: sub_585F4+120j move.w #$FFFF,d3 bra.s loc_58716 ; --------------------------------------------------------------------------- loc_58706: ; CODE XREF: sub_585F4+10Aj clr.l d3 move.w (word_FFFFB4CA).w,d3 asl.l #8,d3 asl.l #7,d3 divu.w (word_FFFFB2FE).w,d3 bvs.s loc_58700 loc_58716: ; CODE XREF: sub_585F4+110j mulu.w (word_FFFFB302).w,d3 lsr.l #8,d3 lsr.l #7,d3 cmpi.w #$7FFF,d3 bls.s loc_58728 move.w #$7FFF,d3 loc_58728: ; CODE XREF: sub_585F4+12Ej move.w d3,(word_FFFFB300).w loc_5872C: ; CODE XREF: sub_585F4+ACj move.b (byte_FFFFB309).w,d1 cmpi.b #3,d1 bhi.w loc_5885C beq.w loc_5881A cmpi.b #1,d1 bls.w loc_5885C clr.w d0 move.b (byte_FFFF95DC).w,d0 moveq #$22,d1 ; '"' mulu.w d1,d0 lea XSEM_RATIO_KA_DNSHIFT_SEM_RAMP_IN_END_RATIO(d0.l),a0 move.w (word_FFFFB4CA).w,d0 jsr sub_58C94 cmp.w (word_FFFF95D4).w,d0 bhi.s loc_58774 move.b #3,(byte_FFFFB309).w loc_5876C: ; CODE XREF: sub_585F4+25Aj ; sub_585F4+264j move.w (word_FFFFB300).w,(a1) bra.w loc_5890E ; --------------------------------------------------------------------------- loc_58774: ; CODE XREF: sub_585F4+170j clr.w d0 move.b (byte_FFFF95DC).w,d0 mulu.w d1,d0 lea XSEM_RATIO_KA_DWN_SEM_STRT_RAMP_IN_RATIO(d0.l),a0 ; Ramp in start ratio limit used to determine when downshifttorque reduction ramping up should be begin ; Ratio move.w (word_FFFFB4CA).w,d0 jsr sub_58C94 cmp.w (word_FFFF95D4).w,d0 bhi.w loc_5890E clr.w d0 move.b (byte_FFFF95DC).w,d0 mulu.w d1,d0 lea XSEM_RATIO_KA_DWN_SEM_STRT_RAMP_IN_RATIO(d0.l),a0 ; Ramp in start ratio limit used to determine when downshifttorque reduction ramping up should be begin ; Ratio move.w (word_FFFFB4CA).w,d0 jsr sub_58C94 move.w (word_FFFF95D4).w,d1 sub.w d0,d1 bcc.s loc_587BA clr.w d1 loc_587BA: ; CODE XREF: sub_585F4+1C2j clr.w d0 move.b (byte_FFFF95DC).w,d0 moveq #$22,d6 ; '"' mulu.w d6,d0 lea XSEM_RATIO_KA_DWN_SEM_STRT_RAMP_IN_RATIO(d0.l),a0 ; Ramp in start ratio limit used to determine when downshifttorque reduction ramping up should be begin ; Ratio move.w (word_FFFFB4CA).w,d0 jsr sub_58C94 move.w d0,d2 clr.w d0 move.b (byte_FFFF95DC).w,d0 mulu.w d6,d0 lea XSEM_RATIO_KA_DNSHIFT_SEM_RAMP_IN_END_RATIO(d0.l),a0 move.w (word_FFFFB4CA).w,d0 jsr sub_58C94 sub.w d2,d0 bcc.s loc_587F8 clr.w d0 loc_587F8: ; CODE XREF: sub_585F4+200j tst.w d0 beq.w loc_588F2 clr.l d3 move.w d1,d3 asl.l #8,d3 asl.l #8,d3 divu.w d0,d3 loc_58808: ; CODE XREF: sub_585F4+310j bvs.w loc_588F2 loc_5880C: ; CODE XREF: sub_585F4+302j mulu.w (word_FFFFB300).w,d3 lsr.l #8,d3 lsr.l #8,d3 move.w d3,(a1) bra.w loc_5890E ; --------------------------------------------------------------------------- loc_5881A: ; CODE XREF: sub_585F4+144j movea.l (dword_FFFFB5DE).w,a0 move.w (word_FFFFB4C8).w,d1 add.w $A(a0),d1 bcc.s loc_5882C move.w #$FFFF,d1 loc_5882C: ; CODE XREF: sub_585F4+232j move.w d1,(word_FFFFB4C8).w clr.w d0 move.b (byte_FFFF95DC).w,d0 mulu.w #$22,d0 ; '"' lea XSEM_RATIO_KA_DNSHFT_SEM_RAMP_OUT_STRT_TIME(d0.l),a0 ; Ramp out begin time used to determine when maximum torquereduction should end and begin ramping from maximum to zero ; Seconds move.w (word_FFFFB4CA).w,d0 jsr sub_58CCE cmp.w d1,d0 bhi.w loc_5876C move.b #4,(byte_FFFFB309).w bra.w loc_5876C ; --------------------------------------------------------------------------- loc_5885C: ; CODE XREF: sub_585F4+140j ; sub_585F4+14Cj clr.w d0 move.b (byte_FFFF95DC).w,d0 moveq #$22,d1 ; '"' mulu.w d1,d0 lea XSEM_RATIO_KA_SEM_END_TIME_THRESHOLD(d0.l),a0 ; End time threshold table used to end ratio-based torque management for a downshift. ; Seconds move.w (word_FFFFB4CA).w,d0 jsr sub_58CCE cmp.w (word_FFFFB4C8).w,d0 bhi.s loc_58890 clr.b (byte_FFFFB309).w move.w (X_SEM_KE_SEM_NO_REDUCTION).l,(a1) ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent bset #7,(byte_FFFFB30B).w bra.s loc_5890E ; --------------------------------------------------------------------------- loc_58890: ; CODE XREF: sub_585F4+288j movea.l (dword_FFFFB5DE).w,a0 move.w (word_FFFFB4C8).w,d3 add.w $A(a0),d3 bcc.s loc_588A2 move.w #$FFFF,d3 loc_588A2: ; CODE XREF: sub_585F4+2A8j move.w d3,(word_FFFFB4C8).w clr.w d0 move.b (byte_FFFF95DC).w,d0 mulu.w d1,d0 lea XSEM_RATIO_KA_SEM_END_TIME_THRESHOLD(d0.l),a0 ; End time threshold table used to end ratio-based torque management for a downshift. ; Seconds move.w (word_FFFFB4CA).w,d0 jsr sub_58CCE move.w d0,d1 move.l d0,d2 sub.w (word_FFFFB4C8).w,d2 bcc.s loc_588CC clr.w d2 loc_588CC: ; CODE XREF: sub_585F4+2D4j clr.w d0 move.b (byte_FFFF95DC).w,d0 mulu.w #$22,d0 ; '"' lea XSEM_RATIO_KA_DNSHFT_SEM_RAMP_OUT_STRT_TIME(d0.l),a0 ; Ramp out begin time used to determine when maximum torquereduction should end and begin ramping from maximum to zero ; Seconds move.w (word_FFFFB4CA).w,d0 jsr sub_58CCE sub.w d0,d1 bcc.s loc_588EE clr.w d1 loc_588EE: ; CODE XREF: sub_585F4+2F6j tst.w d1 bne.s loc_588FA loc_588F2: ; CODE XREF: sub_585F4+206j ; sub_585F4:loc_58808j move.w #$FFFF,d3 bra.w loc_5880C ; --------------------------------------------------------------------------- loc_588FA: ; CODE XREF: sub_585F4+2FCj clr.l d3 move.w d2,d3 asl.l #8,d3 asl.l #8,d3 divu.w d1,d3 bra.w loc_58808 ; --------------------------------------------------------------------------- loc_58908: ; CODE XREF: sub_585F4+1Ej ; sub_585F4+62j ... move.w (X_SEM_KE_SEM_NO_REDUCTION).l,(a1) ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent loc_5890E: ; CODE XREF: sub_585F4+40j ; sub_585F4+82j ... movem.l (sp)+,d0-d2/d6/a1 rts ; End of function sub_585F4 ; =============== S U B R O U T I N E ======================================= sub_58914: ; CODE XREF: sub_86CBE+50p var_4CFE = -$4CFE movem.l d0-d2/a1,-(sp) movea.l a0,a1 btst #1,(byte_FFFFA8FE).w beq.s loc_58930 bclr #5,(byte_FFFFB30B).w clr.b (byte_FFFFB30A).w bra.w loc_58B46 ; --------------------------------------------------------------------------- loc_58930: ; CODE XREF: sub_58914+Cj btst #3,(byte_FFFFA8FE).w beq.s loc_5894C clr.b (byte_FFFFB30A).w move.w (X_SEM_KE_SEM_NO_REDUCTION).l,(a1) ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent bclr #5,(byte_FFFFB30B).w bra.w loc_58B4C ; --------------------------------------------------------------------------- loc_5894C: ; CODE XREF: sub_58914+22j btst #7,(byte_FFFFA8FE).w beq.s loc_58974 btst #5,(byte_FFFFB30B).w beq.s loc_5896A move.w (X_SEM_KE_SEM_NO_REDUCTION).l,(a1) ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent clr.b (byte_FFFFB30A).w bra.w loc_58B4C ; --------------------------------------------------------------------------- loc_5896A: ; CODE XREF: sub_58914+46j bset #5,(byte_FFFFB30B).w bra.w loc_58B4C ; --------------------------------------------------------------------------- loc_58974: ; CODE XREF: sub_58914+3Ej btst #7,(byte_FFFFA8FF).w beq.w loc_58B46 clr.w d0 move.b (byte_FFFFB30A).w,d0 cmpi.w #5,d0 bhi.w loc_58B46 movea.l off_8A6F8(d0.w*4),a0 jmp (a0) ; --------------------------------------------------------------------------- loc_58996: ; DATA XREF: OS4:off_8A6F8o move.w (word_FFFF95CE).w,(word_FFFFB2FE).w move.w (word_FFFFA906).w,d0 move.w d0,(word_FFFFB4CC).w moveq #3,d4 move.b d4,(byte_FFFFB30A).w move.w (X_SEM_KE_SEM_NO_REDUCTION).l,(a1) ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent move.b (byte_FFFF95E9).w,d3 moveq #4,d5 cmp.b d3,d5 bcc.s loc_589C6 move.w (word_FFFF9582).w,d1 cmp.w (XSEM_SHIFT_TORQUE_KE_SEM_PN_DISABLE_TPS).l,d1 ; Defines the highest throttle pedal position allowed forsetting the percent of reduction torque equal to zero. ; Percent bcs.s loc_589CA loc_589C6: ; CODE XREF: sub_58914+A4j cmp.b d3,d5 bne.s loc_589D0 loc_589CA: ; CODE XREF: sub_58914+B0j clr.w (word_FFFFB302).w bra.s loc_589F2 ; --------------------------------------------------------------------------- loc_589D0: ; CODE XREF: sub_58914+B4j clr.w d3 move.b (byte_FFFF95F3).w,d3 mulu.w d4,d3 add.b (byte_FFFF95DC).w,d3 andi.w #$FF,d3 movea.l off_89A5E(d3.w*4),a0 jsr sub_877F8 move.w d0,(word_FFFFB302).w loc_589F2: ; CODE XREF: sub_58914+BAj clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFFB302).w,$10+var_4CFE(d3.w*2) tst.w (word_FFFFB2FE).w bne.s loc_58A0C loc_58A06: ; CODE XREF: sub_58914+106j move.w #$FFFF,d3 bra.s loc_58A1C ; --------------------------------------------------------------------------- loc_58A0C: ; CODE XREF: sub_58914+F0j clr.l d3 move.w (word_FFFFB4CC).w,d3 asl.l #8,d3 asl.l #3,d3 divu.w (word_FFFFB2FE).w,d3 bvs.s loc_58A06 loc_58A1C: ; CODE XREF: sub_58914+F6j mulu.w (word_FFFFB302).w,d3 divu.w #$800,d3 bvs.s loc_58A2C cmpi.w #$7FFF,d3 bls.s loc_58A30 loc_58A2C: ; CODE XREF: sub_58914+110j move.w #$7FFF,d3 loc_58A30: ; CODE XREF: sub_58914+116j move.w d3,(word_FFFFB300).w bra.w loc_58B4C ; --------------------------------------------------------------------------- loc_58A38: ; DATA XREF: OS4:0008A704o clr.w d0 move.b (byte_FFFF95DC).w,d0 moveq #$22,d2 ; '"' mulu.w d2,d0 lea unk_1C4F0(d0.l),a0 move.w (word_FFFFB4CC).w,d0 jsr sub_58C94 move.w d0,d1 clr.w d0 move.b (byte_FFFF95DC).w,d0 mulu.w d2,d0 lea unk_1C48A(d0.l),a0 move.w (word_FFFFB4CC).w,d0 jsr sub_58C94 move.w d0,d4 cmp.w (word_FFFF95D4).w,d1 bcs.s loc_58A86 move.b #4,(byte_FFFFB30A).w loc_58A7E: ; CODE XREF: sub_58914+1C6j ; sub_58914+1CEj move.w (word_FFFFB300).w,(a1) bra.w loc_58B4C ; --------------------------------------------------------------------------- loc_58A86: ; CODE XREF: sub_58914+162j move.l d4,d3 sub.w (word_FFFF95D4).w,d3 bcc.s loc_58A90 clr.w d3 loc_58A90: ; CODE XREF: sub_58914+178j sub.w d1,d4 bcc.s loc_58A96 clr.w d4 loc_58A96: ; CODE XREF: sub_58914+17Ej tst.w d4 beq.w loc_58B3A loc_58A9C: ; CODE XREF: sub_58914:loc_58B42j andi.l #$FFFF,d3 asl.l #8,d3 asl.l #8,d3 divu.w d4,d3 bvs.w loc_58B3A loc_58AAC: ; CODE XREF: sub_58914+22Aj mulu.w (word_FFFFB300).w,d3 lsr.l #8,d3 lsr.l #8,d3 move.w d3,(a1) bra.w loc_58B4C ; --------------------------------------------------------------------------- loc_58ABA: ; DATA XREF: OS4:0008A708o clr.w d0 move.b (byte_FFFF95DC).w,d0 mulu.w #$22,d0 ; '"' lea unk_1C3BE(d0.l),a0 move.w (word_FFFFB4CC).w,d0 jsr sub_58C94 cmp.w (word_FFFF95D4).w,d0 bcs.s loc_58A7E move.b #5,(byte_FFFFB30A).w bra.s loc_58A7E ; --------------------------------------------------------------------------- loc_58AE4: ; DATA XREF: OS4:off_8A70Co clr.w d0 move.b (byte_FFFF95DC).w,d0 moveq #$22,d2 ; '"' mulu.w d2,d0 lea unk_1C424(d0.l),a0 move.w (word_FFFFB4CC).w,d0 jsr sub_58C94 move.w d0,d1 clr.w d0 move.b (byte_FFFF95DC).w,d0 mulu.w d2,d0 lea unk_1C3BE(d0.l),a0 move.w (word_FFFFB4CC).w,d0 jsr sub_58C94 move.w d0,d4 move.w (word_FFFF95D4).w,d3 cmp.w d1,d3 bhi.s loc_58B34 move.w (X_SEM_KE_SEM_NO_REDUCTION).l,(a1) ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent move.b #6,(byte_FFFFB30A).w bra.s loc_58B4C ; --------------------------------------------------------------------------- loc_58B34: ; CODE XREF: sub_58914+210j sub.w d1,d3 sub.w d1,d4 bne.s loc_58B42 loc_58B3A: ; CODE XREF: sub_58914+184j ; sub_58914+194j move.w #$FFFF,d3 bra.w loc_58AAC ; --------------------------------------------------------------------------- loc_58B42: ; CODE XREF: sub_58914+224j bra.w loc_58A9C ; --------------------------------------------------------------------------- loc_58B46: ; CODE XREF: sub_58914+18j ; sub_58914+66j ... move.w (X_SEM_KE_SEM_NO_REDUCTION).l,(a1) ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent loc_58B4C: ; CODE XREF: sub_58914+34j ; sub_58914+52j ... movem.l (sp)+,d0-d2/a1 rts ; End of function sub_58914 ; =============== S U B R O U T I N E ======================================= sub_58B52: ; CODE XREF: sub_86CBE+62p btst #6,(byte_FFFFA8FE).w beq.s loc_58B80 move.w (word_FFFF95BC).w,d3 cmp.w (XPRS_BRAKING_PRESSURE_KE_BRAKING_SLIP).l,d3 ; Slip accross Torque Converter used to determine if engine braking present torque being transmitted from transmission to engine. ; RPM_s ble.s loc_58B72 move.w (word_FFFF9582).w,d3 cmp.w (XPRS_BRAKING_PRESSURE_KE_BRAKING_PRESSURE_TPS_LIMIT).l,d3 ; Braking Pressure Throttle position opening for use in determining a coast or power-on shift. ; Percent bhi.s loc_58B7A loc_58B72: ; CODE XREF: sub_58B52+12j bset #4,(byte_FFFFB30B).w bra.s loc_58B80 ; --------------------------------------------------------------------------- loc_58B7A: ; CODE XREF: sub_58B52+1Ej bclr #4,(byte_FFFFB30B).w loc_58B80: ; CODE XREF: sub_58B52+6j ; sub_58B52+26j btst #6,(byte_FFFFA8FE).w beq.s loc_58BAA clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFF95B6).w,d4 cmp.w XSEM_RATIO_KV_BRK_TRQ_MGT_MIN_ENGINE_SPEED(d3.w*2),d4 ; Minimum engine speed to enable brake torque management. ; RPM bcs.s loc_58BAA btst #7,(byte_FFFFB011).w beq.s loc_58BAA bset #1,(byte_FFFFB30B).w loc_58BAA: ; CODE XREF: sub_58B52+34j ; sub_58B52+48j ... btst #4,(byte_FFFFB30B).w beq.w loc_58C6E btst #1,(byte_FFFFB30B).w beq.w loc_58C6E btst #3,(byte_FFFFA8FE).w beq.s loc_58BFE clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFF95D4).w,d4 cmp.w XSEM_RATIO_KV_BRK_TRQ_MGT_UNDERLAP_RATIO_A(d3.w*2),d4 ; Ratio value to start requesting brake torque management for an underlap manual downshift. ; Ratio bcs.s loc_58BE4 cmp.w XSEM_RATIO_KV_BRK_TRQ_MGT_RATIO_A(d3.w*2),d4 ; Ratio value to start requesting brake torque management for a regular manual downshift. ; Ratio bls.s loc_58BFE loc_58BE4: ; CODE XREF: sub_58B52+86j clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFF95D4).w,d4 cmp.w XSEM_RATIO_KV_BRK_TRQ_MGT_RATIO_B(d3.w*2),d4 ; Ratio value to finish requesting brake torque management for a regular manual downshift. ; Ratio bhi.s loc_58BFE bset #3,(byte_FFFFB30B).w loc_58BFE: ; CODE XREF: sub_58B52+72j ; sub_58B52+90j ... btst #3,(byte_FFFFA8FE).w beq.s loc_58C28 clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFF95D4).w,d4 cmp.w XSEM_RATIO_KV_BRK_TRQ_MGT_RATIO_B(d3.w*2),d4 ; Ratio value to finish requesting brake torque management for a regular manual downshift. ; Ratio bls.s loc_58C34 move.w (word_FFFFB4CE).w,d4 cmp.w XSEM_RATIO_KV_BRK_TRQ_MGT_END_TIME(d3.w*2),d4 ; Amount of time to continue brake torque management after a ratio reaches KV_Brk_Trq_Mgt_Ratio_B for a manual downshift. ; Seconds bls.s loc_58C34 loc_58C28: ; CODE XREF: sub_58B52+B2j bclr #3,(byte_FFFFB30B).w bclr #1,(byte_FFFFB30B).w loc_58C34: ; CODE XREF: sub_58B52+C6j ; sub_58B52+D4j clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFF95D4).w,d4 cmp.w XSEM_RATIO_KV_BRK_TRQ_MGT_RATIO_B(d3.w*2),d4 ; Ratio value to finish requesting brake torque management for a regular manual downshift. ; Ratio bls.s loc_58C68 btst #3,(byte_FFFFB30B).w beq.s loc_58C68 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB4CE).w,d3 add.w $A(a2),d3 bcc.s loc_58C62 move.w #$FFFF,d3 loc_58C62: ; CODE XREF: sub_58B52+10Aj move.w d3,(word_FFFFB4CE).w bra.s loc_58C7E ; --------------------------------------------------------------------------- loc_58C68: ; CODE XREF: sub_58B52+F4j ; sub_58B52+FCj clr.w (word_FFFFB4CE).w bra.s loc_58C7E ; --------------------------------------------------------------------------- loc_58C6E: ; CODE XREF: sub_58B52+5Ej ; sub_58B52+68j clr.w (word_FFFFB4CE).w bclr #3,(byte_FFFFB30B).w bclr #1,(byte_FFFFB30B).w loc_58C7E: ; CODE XREF: sub_58B52+114j ; sub_58B52+11Aj bclr #2,(byte_FFFFB30B).w btst #3,(byte_FFFFB30B).w beq.s locret_58C92 bset #2,(byte_FFFFB30B).w locret_58C92: ; CODE XREF: sub_58B52+138j rts ; End of function sub_58B52 ; =============== S U B R O U T I N E ======================================= sub_58C94: ; CODE XREF: sub_585F4+166p ; sub_585F4+194p ... clr.l d3 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_58CAC cmpi.w #$1770,d3 bls.s loc_58CB0 loc_58CAC: ; CODE XREF: sub_58C94+10j move.w #$1770,d3 loc_58CB0: ; CODE XREF: sub_58C94+16j cmp.w d3,d0 bls.s loc_58CB6 move.l d3,d0 loc_58CB6: ; CODE XREF: sub_58C94+1Ej move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb add.w d3,d3 andi.l #$FFFF,d0 asl.l #8,d0 divu.w d3,d0 tblu.w (a0),d0 rts ; End of function sub_58C94 ; =============== S U B R O U T I N E ======================================= sub_58CCE: ; CODE XREF: sub_585F4+252p ; sub_585F4+27Ep ... clr.l d3 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_58CE6 cmpi.w #$1770,d3 bls.s loc_58CEA loc_58CE6: ; CODE XREF: sub_58CCE+10j move.w #$1770,d3 loc_58CEA: ; CODE XREF: sub_58CCE+16j cmp.w d3,d0 bls.s loc_58CF0 move.l d3,d0 loc_58CF0: ; CODE XREF: sub_58CCE+1Ej move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb add.w d3,d3 andi.l #$FFFF,d0 asl.l #8,d0 divu.w d3,d0 tblu.w (a0),d0 rts ; End of function sub_58CCE ; =============== S U B R O U T I N E ======================================= sub_58D08: ; CODE XREF: sub_8797C+Ep movea.w (X_SEM_KE_SEM_NO_REDUCTION).l,a2 ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent move.w a2,(word_FFFFB306).w move.w a2,(word_FFFFB304).w rts ; End of function sub_58D08 ; =============== S U B R O U T I N E ======================================= sub_58D18: ; CODE XREF: sub_86CBE+38p btst #0,(byte_FFFFA8FE).w beq.s loc_58D58 moveq #4,d4 cmp.b (byte_FFFF95E9).w,d4 bcs.s loc_58D58 move.w (word_FFFF95B6).w,d3 cmp.w (XSEM_STALL_TORQUE_KE_SEM_STALL_ENGINE_SPEED_HIGH).l,d3 ; Engine speed limit above which stall could be selected ; RPM bls.s loc_58D58 move.w (word_FFFF9582).w,d3 cmp.w (XSEM_STALL_TORQUE_KE_SEM_STALL_THROTTLE_HIGH).l,d3 ; Throttle limit above which stall could be selected ; Percent bls.s loc_58D58 move.b #1,(byte_FFFF9D9F).w tst.w (word_FFFF95CE).w bne.s loc_58D92 loc_58D4C: ; CODE XREF: sub_58D18+78j ; sub_58D18+92j move.w #$8000,d3 bra.s loc_58DAC ; --------------------------------------------------------------------------- loc_58D52: ; CODE XREF: sub_58D18+AAj move.w d3,(word_FFFFB310).w bra.s locret_58DCC ; --------------------------------------------------------------------------- loc_58D58: ; CODE XREF: sub_58D18+6j sub_58D18+Ej ... btst #0,(byte_FFFFA8FE).w beq.s loc_58D80 cmpi.b #4,(byte_FFFF95E9).w bhi.s loc_58D80 move.w (word_FFFF95B6).w,d3 cmp.w (XSEM_STALL_TORQUE_KE_SEM_STALL_ENGINE_SPEED_LOW).l,d3 ; Engine speed below which stall will not be selected ; RPM bcs.s loc_58D80 move.w (word_FFFF9582).w,d3 cmp.w (XSEM_STALL_TORQUE_KE_SEM_STALL_THROTTLE_LOW).l,d3 ; Throttle below which stall will not be selected ; Percent bcc.s loc_58D86 loc_58D80: ; CODE XREF: sub_58D18+46j ; sub_58D18+4Ej ... clr.b (byte_FFFF9D9F).w bra.s loc_58DC4 ; --------------------------------------------------------------------------- loc_58D86: ; CODE XREF: sub_58D18+66j tst.b (byte_FFFF9D9F).w beq.s loc_58DC4 tst.w (word_FFFF95CE).w beq.s loc_58D4C loc_58D92: ; CODE XREF: sub_58D18+32j clr.l d3 move.w (word_FFFF95D2).w,d3 asl.l #8,d3 asl.l #7,d3 divu.w (word_FFFF95CE).w,d3 bvc.s loc_58DA6 move.w #$FFFF,d3 loc_58DA6: ; CODE XREF: sub_58D18+88j cmpi.w #$8000,d3 bhi.s loc_58D4C loc_58DAC: ; CODE XREF: sub_58D18+38j move.w #$7FFF,d4 mulu.w d4,d3 lsr.l #8,d3 lsr.l #7,d3 cmpi.w #$7FFF,d3 bls.s loc_58DBE move.l d4,d3 loc_58DBE: ; CODE XREF: sub_58D18+A2j sub.w d3,d4 move.w d4,d3 bra.s loc_58D52 ; --------------------------------------------------------------------------- loc_58DC4: ; CODE XREF: sub_58D18+6Cj ; sub_58D18+72j move.w (X_SEM_KE_SEM_NO_REDUCTION).l,(word_FFFFB310).w ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent locret_58DCC: ; CODE XREF: sub_58D18+3Ej rts ; End of function sub_58D18 ; =============== S U B R O U T I N E ======================================= sub_58DCE: ; CODE XREF: sub_59626+A2p tst.b (byte_FFFFAC58).w beq.s loc_58DDA move.b #1,(a0) bra.s locret_58E0A ; --------------------------------------------------------------------------- loc_58DDA: ; CODE XREF: sub_58DCE+4j tst.b (byte_FFFFAC59).w beq.s locret_58E0A move.b (a0),d3 cmp.b d0,d3 bls.s loc_58DF0 cmpi.b #1,d3 bls.s locret_58E0A loc_58DEC: ; CODE XREF: sub_58DCE+2Aj ; sub_58DCE+3Aj move.b d0,(a0) bra.s locret_58E0A ; --------------------------------------------------------------------------- loc_58DF0: ; CODE XREF: sub_58DCE+16j cmp.b d0,d3 bcc.s locret_58E0A moveq #1,d4 cmp.b d3,d4 bhi.s loc_58DEC cmp.b d3,d4 bne.s locret_58E0A move.w (word_FFFF95B6).w,d3 cmp.w (XSHFT_3RD_GEAR_DEFAULT_KE_ENGINE_SPEED_DEFAULT_LIMIT).l,d3 ; When soft landing is in affect and desired gear is second gear and engine speed is greater than this, don't allow shifts. ; RPM bhi.s loc_58DEC locret_58E0A: ; CODE XREF: sub_58DCE+Aj ; sub_58DCE+10j ... rts ; End of function sub_58DCE ; =============== S U B R O U T I N E ======================================= sub_58E0C: ; CODE XREF: sub_58E3A:loc_58E4Ep move.b d0,d3 move.w (word_FFFF9590).w,d0 addi.b #$36,d0 ; '6' andi.w #$FF,d3 mulu.w #$C,d3 lea -$743E(d3.l),a2 andi.w #$FF,d0 asl.w #8,d0 andi.l #$FFFF,d0 divu.w #$33,d0 ; '3' tbls.w (a2),d0 rts ; End of function sub_58E0C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_58E3A: ; CODE XREF: sub_4D8A8+2Ep ; sub_4DD5C:loc_4E50Ep var_4 = -4 link a6,#-4 movem.l d1-d2,-(sp) move.b (byte_FFFF95DC).w,d0 cmpi.b #3,d0 bcc.s loc_58E4E addq.b #1,d0 loc_58E4E: ; CODE XREF: sub_58E3A+10j jsr sub_58E0C move.w d0,d2 move.w (word_FFFF9590).w,d0 addi.b #$36,d0 ; '6' move.b (byte_FFFF95DC).w,d1 clr.l d4 move.b d1,d4 movea.l off_8951A(d4.w*4),a3 clr.w d3 cmpi.b #$10,d0 bcc.s loc_58E7A move.l d3,d0 bra.s loc_58E96 ; --------------------------------------------------------------------------- loc_58E7A: ; CODE XREF: sub_58E3A+3Aj cmpi.b #$F0,d0 bcc.s loc_58E92 andi.w #$FF,d0 subi.w #$10,d0 asl.w #6,d0 ext.l d0 divs.w #7,d0 bra.s loc_58E96 ; --------------------------------------------------------------------------- loc_58E92: ; CODE XREF: sub_58E3A+44j move.w #$800,d0 loc_58E96: ; CODE XREF: sub_58E3A+3Ej ; sub_58E3A+56j tblu.w (a3),d0 movea.l off_89526(d4.w*4),a2 move.l a2,d4 bne.s loc_58EAA clr.w d3 bra.s loc_58ED2 ; --------------------------------------------------------------------------- loc_58EAA: ; CODE XREF: sub_58E3A+6Aj move.l a2,var_4(a6) move.w (word_FFFFB18E).w,d3 cmpi.w #$1400,d3 bcc.s loc_58EC6 andi.l #$FFFF,d3 add.l d3,d3 divu.w #5,d3 bra.s loc_58ECA ; --------------------------------------------------------------------------- loc_58EC6: ; CODE XREF: sub_58E3A+7Cj move.w #$800,d3 loc_58ECA: ; CODE XREF: sub_58E3A+8Aj movea.l var_4(a6),a2 tblu.w (a2),d3 loc_58ED2: ; CODE XREF: sub_58E3A+6Ej andi.l #$FFFF,d3 andi.l #$FFFF,d0 add.l d3,d0 ext.l d2 add.l d2,d0 tst.l d0 blt.s loc_58EF6 cmpi.l #$FFFF,d0 bls.s loc_58EF8 move.w #$FFFF,d0 bra.s loc_58EF8 ; --------------------------------------------------------------------------- loc_58EF6: ; CODE XREF: sub_58E3A+ACj clr.w d0 loc_58EF8: ; CODE XREF: sub_58E3A+B4j ; sub_58E3A+BAj muls.w (word_FFFF95BA).w,d0 cmpi.l #$7FFFFFFF,d0 bhi.s loc_58F16 divu.w #$A0,d0 ; '?' bvs.s loc_58F10 cmpi.w #$7FFF,d0 bls.s loc_58F18 loc_58F10: ; CODE XREF: sub_58E3A+CEj move.w #$7FFF,d0 bra.s loc_58F18 ; --------------------------------------------------------------------------- loc_58F16: ; CODE XREF: sub_58E3A+C8j clr.w d0 loc_58F18: ; CODE XREF: sub_58E3A+D4j ; sub_58E3A+DAj add.w (word_FFFF95B6).w,d0 cmpi.w #$7FFF,d0 bls.s loc_58F26 move.w #$7FFF,d0 loc_58F26: ; CODE XREF: sub_58E3A+E6j move.w d0,(word_FFFFB190).w movem.l (sp)+,d1-d2 unlk a6 rts ; End of function sub_58E3A ; =============== S U B R O U T I N E ======================================= sub_58F32: ; CODE XREF: sub_4DB5C:loc_4DB9Ap ; sub_4DC04:loc_4DCD0p ... andi.w #$FF,d0 movea.l off_8950A(d0.w*4),a2 move.w (word_FFFFB18C).w,d0 cmp.w (a2),d0 shi d0 neg.b d0 rts ; End of function sub_58F32 ; =============== S U B R O U T I N E ======================================= sub_58F4A: ; CODE XREF: sub_59064+7Cp clr.w d0 move.b (byte_FFFF95DC).w,d0 movea.l off_89502(d0.w*4),a2 move.w (word_FFFFB18A).w,d0 cmp.w (a2),d0 shi d0 neg.b d0 rts ; End of function sub_58F4A ; =============== S U B R O U T I N E ======================================= sub_58F64: ; CODE XREF: sub_5923E+2p var_4E80 = -$4E80 btst #7,(byte_FFFF95E5).w beq.w loc_59030 btst #7,(byte_FFFF9BBA).w beq.s loc_58FEE bset #2,(byte_FFFF9BBA).w clr.w (word_FFFFB18C).w movea.w (word_FFFF95B6).w,a2 move.w a2,(word_FFFFB180).w clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w a2,var_4E80(d3.w*2) move.w (word_FFFF95BA).w,(word_FFFFB188).w btst #1,(byte_FFFF9BBD).w beq.s loc_58FAA move.w (word_FFFF9BCC).w,(word_FFFFB192).w bra.s loc_58FB0 ; --------------------------------------------------------------------------- loc_58FAA: ; CODE XREF: sub_58F64+3Cj bclr #2,(byte_FFFF9BBA).w loc_58FB0: ; CODE XREF: sub_58F64+44j tst.b (byte_FFFFA7F9).w beq.s loc_58FBC bclr #2,(byte_FFFF9BBA).w loc_58FBC: ; CODE XREF: sub_58F64+50j clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFF9BCA).w,d4 cmp.w word_1C696(d3.w*2),d4 ble.s loc_58FDA cmp.w word_1C69C(d3.w*2),d4 blt.s loc_58FE8 loc_58FDA: ; CODE XREF: sub_58F64+6Aj move.b #1,(byte_FFFFB194).w bclr #2,(byte_FFFF9BBA).w bra.s locret_5903C ; --------------------------------------------------------------------------- loc_58FE8: ; CODE XREF: sub_58F64+74j clr.b (byte_FFFFB194).w bra.s locret_5903C ; --------------------------------------------------------------------------- loc_58FEE: ; CODE XREF: sub_58F64+10j btst #6,(byte_FFFF9BBA).w beq.s loc_58FFC clr.w (word_FFFFB18C).w bra.s locret_5903C ; --------------------------------------------------------------------------- loc_58FFC: ; CODE XREF: sub_58F64+90j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB18C).w,d3 add.w $A(a2),d3 bcc.s loc_5900E move.w #$FFFF,d3 loc_5900E: ; CODE XREF: sub_58F64+A4j move.w d3,(word_FFFFB18C).w move.w (word_FFFF95B6).w,d3 cmp.w (word_FFFFB180).w,d3 bls.s loc_59020 move.w d3,(word_FFFFB180).w loc_59020: ; CODE XREF: sub_58F64+B6j clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFFB180).w,var_4E80(d3.w*2) bra.s locret_5903C ; --------------------------------------------------------------------------- loc_59030: ; CODE XREF: sub_58F64+6j bclr #2,(byte_FFFF9BBA).w move.w #$FFFF,(word_FFFFB18C).w locret_5903C: ; CODE XREF: sub_58F64+82j ; sub_58F64+88j ... rts ; End of function sub_58F64 ; =============== S U B R O U T I N E ======================================= sub_5903E: ; CODE XREF: sub_5923E+8p btst #6,(byte_FFFF9BBA).w beq.s loc_5904C clr.w (word_FFFFB18A).w bra.s locret_59062 ; --------------------------------------------------------------------------- loc_5904C: ; CODE XREF: sub_5903E+6j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB18A).w,d3 add.w $A(a2),d3 bcc.s loc_5905E move.w #$FFFF,d3 loc_5905E: ; CODE XREF: sub_5903E+1Aj move.w d3,(word_FFFFB18A).w locret_59062: ; CODE XREF: sub_5903E+Cj rts ; End of function sub_5903E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_59064: ; CODE XREF: sub_5923E+5Cp var_7458 = -$7458 var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a0,-(sp) btst #2,(byte_FFFF9BBA).w beq.s loc_590C0 jsr sub_4B5C8 tst.b d0 bne.s loc_590BA btst #6,(byte_FFFF9BBA).w bne.s loc_590BA btst #2,(unk_FFFFB4C3).w bne.s loc_590BA clr.w d0 move.b (byte_FFFF95DC).w,d0 movea.l off_894B6(d0.w*4),a2 move.w (word_FFFF9590).w,d0 cmp.w (a2),d0 blt.s loc_590BA clr.w d0 move.b (byte_FFFF95DC).w,d0 movea.l off_894C2(d0.w*4),a2 move.w (word_FFFF9590).w,d0 cmp.w (a2),d0 ble.s loc_590C0 loc_590BA: ; CODE XREF: sub_59064+18j ; sub_59064+20j ... bclr #2,(byte_FFFF9BBA).w loc_590C0: ; CODE XREF: sub_59064+Ej ; sub_59064+54j btst #2,(byte_FFFF9BBA).w beq.w loc_59236 move.b (byte_FFFF95DC).w,d0 jsr sub_58F32 tst.b d0 beq.w loc_59236 bclr #2,(byte_FFFF9BBA).w jsr sub_58F4A tst.b d0 beq.w loc_59236 move.w (word_FFFFB180).w,d3 sub.w (word_FFFFB192).w,d3 tst.w (word_FFFFB188).w beq.s loc_59112 muls.w #$A0,d3 ; '?' move.w (word_FFFFB188).w,d4 divs.w d4,d3 bvc.s loc_59116 swap d3 eor.w d4,d3 bpl.s loc_59112 move.w #$8000,d3 bra.s loc_59116 ; --------------------------------------------------------------------------- loc_59112: ; CODE XREF: sub_59064+94j ; sub_59064+A6j move.w #$7FFF,d3 loc_59116: ; CODE XREF: sub_59064+A0j ; sub_59064+ACj movea.w #$800,a2 clr.w d4 cmpi.w #$FFC0,d3 blt.s loc_59138 cmpi.w #$40,d3 ; '@' bge.s loc_59134 move.l d3,d5 ext.l d5 moveq #$40,d4 ; '@' add.l d5,d4 asl.l #4,d4 bra.s loc_59138 ; --------------------------------------------------------------------------- loc_59134: ; CODE XREF: sub_59064+C2j move.w #$800,d4 loc_59138: ; CODE XREF: sub_59064+BCj ; sub_59064+CEj tblu.w (XSHFT_ADAPT_KV_DETENT_ADAPT_ERROR).l,d4 ; ; move.w d4,d7 tst.w d3 bge.s loc_5914C clr.w d5 sub.w d7,d5 move.w d5,d7 loc_5914C: ; CODE XREF: sub_59064+E0j clr.w d6 move.b (byte_FFFF95DC).w,d6 movea.l off_894F2(d6.w*4),a0 move.l d7,d5 tst.w d5 bge.s loc_59162 neg.w d5 loc_59162: ; CODE XREF: sub_59064+FAj cmp.w (a0),d5 bcs.w loc_59236 move.w (word_FFFF9590).w,d5 addi.w #$36,d5 ; '6' asl.w #8,d5 andi.l #$FFFF,d5 divu.w #$33,d5 ; '3' lsr.w #8,d5 move.b d5,var_2(a6) moveq #$FFFFFFFF,d6 loc_59184: ; CODE XREF: sub_59064+1BCj move.l d6,d1 add.b var_2(a6),d1 cmpi.b #$7F,d1 ; '' bhi.s loc_5919A cmpi.b #5,d1 bls.s loc_5919C moveq #5,d1 bra.s loc_5919C ; --------------------------------------------------------------------------- loc_5919A: ; CODE XREF: sub_59064+12Aj clr.b d1 loc_5919C: ; CODE XREF: sub_59064+130j ; sub_59064+134j clr.w d2 move.b (byte_FFFF95DC).w,d2 mulu.w #6,d2 add.b d1,d2 andi.w #$FF,d2 move.l d6,d3 ext.w d3 movea.l off_894D6(d3.w*4),a0 clr.w d0 move.b (a0),d0 muls.w d7,d0 bpl.s loc_591C6 addi.l #$FF,d0 loc_591C6: ; CODE XREF: sub_59064+15Aj asr.l #8,d0 add.w unk_FFFF8BC2(d2.w*2),d0 bvc.s loc_591DC bpl.s loc_591D8 move.w #$7FFF,d0 bra.s loc_591DC ; --------------------------------------------------------------------------- loc_591D8: ; CODE XREF: sub_59064+16Cj move.w #$8000,d0 loc_591DC: ; CODE XREF: sub_59064+16Aj ; sub_59064+172j clr.w d2 move.b (byte_FFFF95DC).w,d2 movea.l off_894DA(d2.w*4),a0 move.w (a0),d4 cmp.w d4,d0 ble.s loc_591F2 move.w d4,d0 loc_591F2: ; CODE XREF: sub_59064+18Aj movea.l off_894E6(d2.w*4),a0 move.w (a0),d3 cmp.w d3,d0 bge.s loc_59202 move.w d3,d0 loc_59202: ; CODE XREF: sub_59064+19Aj btst #1,(byte_FFFFA2A1).w bne.s loc_5921A mulu.w #6,d2 add.b d1,d2 andi.w #$FF,d2 move.w d0,$1A+var_7458(d2.w*2) loc_5921A: ; CODE XREF: sub_59064+1A4j addq.b #1,d6 cmpi.b #1,d6 ble.w loc_59184 movea.l #unk_FF8BCE,a0 moveq #$24,d0 ; '$' jsr sub_2654C move.w d0,(word_FFFF8BF2).w loc_59236: ; CODE XREF: sub_59064+62j ; sub_59064+72j ... movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_59064 ; =============== S U B R O U T I N E ======================================= sub_5923E: ; CODE XREF: sub_4DD5C+FE8p move.l d0,-(sp) jsr sub_58F64 jsr sub_5903E move.b (byte_FFFF95DC).w,d3 bne.s loc_5925A btst #6,(byte_FFFF9BBA).w bne.s loc_5926C loc_5925A: ; CODE XREF: sub_5923E+12j moveq #3,d0 cmp.b (byte_FFFF95E9).w,d0 bcc.s loc_59272 tst.b d3 beq.s loc_59272 cmp.b (byte_FFFFB195).w,d0 bcs.s loc_59272 loc_5926C: ; CODE XREF: sub_5923E+1Aj clr.w (word_FFFFB18E).w bra.s loc_59294 ; --------------------------------------------------------------------------- loc_59272: ; CODE XREF: sub_5923E+22j ; sub_5923E+26j ... tst.b d3 beq.s loc_5927E cmpi.b #3,(byte_FFFF95E9).w bls.s loc_59294 loc_5927E: ; CODE XREF: sub_5923E+36j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB18E).w,d3 add.w $A(a2),d3 bcc.s loc_59290 move.w #$FFFF,d3 loc_59290: ; CODE XREF: sub_5923E+4Cj move.w d3,(word_FFFFB18E).w loc_59294: ; CODE XREF: sub_5923E+32j ; sub_5923E+3Ej move.b (byte_FFFF95E9).w,(byte_FFFFB195).w jsr sub_59064 move.l (sp)+,d0 rts ; End of function sub_5923E ; =============== S U B R O U T I N E ======================================= sub_592A4: ; CODE XREF: OS1:00028C6Ep movem.l d0/a0-a1,-(sp) move.b (byte_FFFF95E9).w,(byte_FFFFB195).w movea.l #unk_FF8BCE,a1 movea.l a1,a0 moveq #$24,d0 ; '$' jsr sub_2654C cmp.w (word_FFFF8BF2).w,d0 beq.s loc_592E4 lea (unk_89532).l,a0 lea (unk_FFFF8BCE).w,a2 moveq #$11,d0 loc_592D0: ; CODE XREF: sub_592A4+2Ej move.w (a0)+,(a2)+ dbf d0,loc_592D0 movea.l a1,a0 moveq #$24,d0 ; '$' jsr sub_2654C move.w d0,(word_FFFF8BF2).w loc_592E4: ; CODE XREF: sub_592A4+1Ej movem.l (sp)+,d0/a0-a1 rts ; End of function sub_592A4 ; =============== S U B R O U T I N E ======================================= sub_592EA: ; CODE XREF: sub_4DD5C:loc_4EA32p tst.b (byte_FFFF95DC).w bne.s loc_592F6 clr.w (word_FFFFB346).w bra.s loc_5932C ; --------------------------------------------------------------------------- loc_592F6: ; CODE XREF: sub_592EA+4j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB346).w,d3 add.w $A(a2),d3 bcc.s loc_59308 move.w #$FFFF,d3 loc_59308: ; CODE XREF: sub_592EA+18j move.w d3,(word_FFFFB346).w cmpi.b #1,(byte_FFFF95DC).w beq.s loc_5932C movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB348).w,d3 add.w $A(a2),d3 bcc.s loc_59326 move.w #$FFFF,d3 loc_59326: ; CODE XREF: sub_592EA+36j move.w d3,(word_FFFFB348).w bra.s locret_59330 ; --------------------------------------------------------------------------- loc_5932C: ; CODE XREF: sub_592EA+Aj ; sub_592EA+28j clr.w (word_FFFFB348).w locret_59330: ; CODE XREF: sub_592EA+40j rts ; End of function sub_592EA ; =============== S U B R O U T I N E ======================================= sub_59332: ; CODE XREF: sub_4DD5C+CECp cmpi.b #2,(a0) bne.s loc_59346 move.w (word_FFFFB346).w,d3 cmp.w (XSHFT_MODIFICATIONS_KE_1_3_UPSHIFT_SEQUENCING_TIME).l,d3 ; Total time required to be in second gear before allowing a shift to third. ; Seconds bcc.s loc_59346 move.b d0,(a0) loc_59346: ; CODE XREF: sub_59332+4j ; sub_59332+10j cmpi.b #3,(a0) bne.s locret_59366 move.w (word_FFFFB346).w,d3 cmp.w (XSHFT_MODIFICATIONS_KE_1_4_UPSHIFT_SEQUENCING_TIME).l,d3 ; Total time required to be in second and third gear before allowing a shift to fourth. ; Seconds bcs.s loc_59364 move.w (word_FFFFB348).w,d3 cmp.w (XSHFT_MODIFICATIONS_KE_2_4_UPSHIFT_SEQUENCING_TIME).l,d3 ; Total time required to be in third gear before allowing a shift to fourth. ; Seconds bcc.s locret_59366 loc_59364: ; CODE XREF: sub_59332+24j move.b d0,(a0) locret_59366: ; CODE XREF: sub_59332+18j ; sub_59332+30j rts ; End of function sub_59332 ; =============== S U B R O U T I N E ======================================= sub_59368: ; CODE XREF: sub_4DD5C+D1Ep move.l d2,-(sp) move.b d0,d2 cmpi.b #2,d2 bne.w loc_594D0 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB34A).w,d3 add.w $A(a2),d3 bcc.s loc_59386 move.w #$FFFF,d3 loc_59386: ; CODE XREF: sub_59368+18j move.w d3,(word_FFFFB34A).w btst #3,(byte_FFFF9BBA).w bne.s loc_593A2 bset #3,(byte_FFFF9BBA).w clr.w (word_FFFFB34A).w bclr #6,(byte_FFFFB344).w loc_593A2: ; CODE XREF: sub_59368+28j btst #3,(byte_FFFF9BBA).w beq.w loc_594C8 move.w (word_FFFFA91A).w,d3 cmp.w (XSHFT_MODIFICATIONS_KE_DOWNSHIFT_42_LOW_TIME).l,d3 ; Delay a 3-2 downshift when the gear change time is greater than this low window time and less than the high window time. ; Seconds bls.s loc_593C6 cmp.w (XSHFT_MODIFICATIONS_KE_DOWNSHIFT_42_HIGH_TIME).l,d3 ; Delay a 3-2 downshift when the gear change time is less thanthis high window time and greater than the low window time. ; Seconds bcc.s loc_593C6 bset #6,(byte_FFFFB344).w loc_593C6: ; CODE XREF: sub_59368+4Ej ; sub_59368+56j btst #6,(byte_FFFFB344).w beq.w loc_594B0 btst #5,(byte_FFFFB344).w bne.w loc_594A2 bset #5,(byte_FFFFB344).w move.b (byte_FFFF95E9).w,d3 cmpi.b #1,d3 beq.s loc_593EE tst.b d3 bne.s loc_59428 loc_593EE: ; CODE XREF: sub_59368+80j move.w (word_FFFF95DA).w,d3 move.l #$1E00,d4 cmp.w d3,d4 bls.s loc_59400 clr.w d3 bra.s loc_5941A ; --------------------------------------------------------------------------- loc_59400: ; CODE XREF: sub_59368+92j cmpi.w #$5000,d3 bcc.s loc_59416 andi.l #$FFFF,d3 sub.l d4,d3 add.l d3,d3 divs.w #$19,d3 bra.s loc_5941A ; --------------------------------------------------------------------------- loc_59416: ; CODE XREF: sub_59368+9Cj move.w #$400,d3 loc_5941A: ; CODE XREF: sub_59368+96j ; sub_59368+ACj tblu.w (XSHFT_MODIFICATIONS_KV_MANUAL_DWNSHFT_42_DELAY_TIME).l,d3 ; Total time required to be in third gear before allowing a shift to fourth. ; Seconds loc_59422: ; CODE XREF: sub_59368+12Cj ; sub_59368+130j move.w d3,(word_FFFFB34C).w bra.s loc_594A2 ; --------------------------------------------------------------------------- loc_59428: ; CODE XREF: sub_59368+84j move.w (XSHFT_MODIFICATIONS_KE_DOWNSHIFT_DELAY_LO_MPH_THRESH).l,d4 ; Vehicle speed high threshold used to determine the downshiftdelay time used with the 4-3-2 downshift sequencing delay ; MPH move.w (word_FFFF95DA).w,d0 cmp.w d4,d0 bhi.s loc_59440 move.w (XSHFT_MODIFICATIONS_KE_DOWNSHIFT_SEQ_DELAY_MAX_TIME).l,(word_FFFFB34C).w ; The maximum downshift delay used with the 4-3-2 downshiftsequencing delay ; Seconds bra.s loc_594A2 ; --------------------------------------------------------------------------- loc_59440: ; CODE XREF: sub_59368+CCj move.w (XSHFT_MODIFICATIONS_KE_DOWNSHIFT_DELAY_HI_MPH_THRESH).l,d3 ; Vehicle speed low threshold used to determine the downshiftdelay time used with the 4-3-2 downshift sequencing delay ; MPH cmp.w d3,d0 bcc.s loc_5949A clr.l d5 move.w d4,d5 andi.l #$FFFF,d3 sub.l d5,d3 beq.s loc_5949A andi.l #$FFFF,d0 sub.l d5,d0 muls.l #unk_10000,d4:d0 divs.l d3,d4:d0 clr.l d3 move.w (XSHFT_MODIFICATIONS_KE_DOWNSHIFT_SEQ_DELAY_MIN_TIME).l,d3 ; The minimum downshift delay used with the 4-3-2 downshiftsequencing delay ; Seconds clr.l d4 move.w (XSHFT_MODIFICATIONS_KE_DOWNSHIFT_SEQ_DELAY_MAX_TIME).l,d4 ; The maximum downshift delay used with the 4-3-2 downshiftsequencing delay ; Seconds sub.l d3,d4 andi.l #$FFFF,d0 muls.l d0,d4 lsr.l #8,d4 lsr.l #8,d4 move.w (XSHFT_MODIFICATIONS_KE_DOWNSHIFT_SEQ_DELAY_MAX_TIME).l,d3 ; The maximum downshift delay used with the 4-3-2 downshiftsequencing delay ; Seconds sub.w d4,d3 bcc.s loc_59422 clr.w d3 bra.s loc_59422 ; --------------------------------------------------------------------------- loc_5949A: ; CODE XREF: sub_59368+E0j ; sub_59368+EEj move.w (XSHFT_MODIFICATIONS_KE_DOWNSHIFT_SEQ_DELAY_MIN_TIME).l,(word_FFFFB34C).w ; The minimum downshift delay used with the 4-3-2 downshiftsequencing delay ; Seconds loc_594A2: ; CODE XREF: sub_59368+6Ej ; sub_59368+BEj ... move.w (word_FFFFB34A).w,d3 cmp.w (word_FFFFB34C).w,d3 bcc.s loc_594B0 move.b d2,(a0) loc_594AE: ; CODE XREF: sub_59368+15Ej bra.s loc_594F0 ; --------------------------------------------------------------------------- loc_594B0: ; CODE XREF: sub_59368+64j ; sub_59368+142j bclr #6,(byte_FFFFB344).w bclr #3,(byte_FFFF9BBA).w clr.w (word_FFFFB34A).w loc_594C0: ; CODE XREF: sub_59368+166j bclr #5,(byte_FFFFB344).w bra.s loc_594AE ; --------------------------------------------------------------------------- loc_594C8: ; CODE XREF: sub_59368+40j bclr #6,(byte_FFFFB344).w bra.s loc_594C0 ; --------------------------------------------------------------------------- loc_594D0: ; CODE XREF: sub_59368+8j btst #6,(byte_FFFF9BBA).w beq.s loc_594E6 cmpi.b #1,d2 bne.s loc_594E6 bset #3,(byte_FFFF9BBA).w bra.s loc_594F0 ; --------------------------------------------------------------------------- loc_594E6: ; CODE XREF: sub_59368+16Ej ; sub_59368+174j bclr #3,(byte_FFFF9BBA).w clr.w (word_FFFFB34A).w loc_594F0: ; CODE XREF: sub_59368:loc_594AEj ; sub_59368+17Cj move.l (sp)+,d2 rts ; End of function sub_59368 ; =============== S U B R O U T I N E ======================================= sub_594F4: ; CODE XREF: sub_4DD5C+D28p btst #7,(byte_FFFFB344).w beq.s loc_59526 move.w (word_FFFFA404).w,d3 cmp.w (XSHFT_MODIFICATIONS_KE_DOWNSHIFT_TCC_DELAY_TIME).l,d3 ; Delay a downshift until TCC has been off for this amount of time. ; Seconds bcc.s loc_5951E move.w (word_FFFF95BC).w,d3 cmp.w (XSHFT_MODIFICATIONS_KE_DOWNSHIFT_DELAY_SLIP_THRESH).l,d3 ; Delay a downshift until TCC slip is less than this RPM threshold. ; RPM_s bge.s loc_5951E tst.b (byte_FFFF95DD).w bne.s loc_5951E move.b d0,(a0) bra.s locret_5955C ; --------------------------------------------------------------------------- loc_5951E: ; CODE XREF: sub_594F4+12j ; sub_594F4+1Ej ... bclr #7,(byte_FFFFB344).w bra.s locret_5955C ; --------------------------------------------------------------------------- loc_59526: ; CODE XREF: sub_594F4+6j move.w (word_FFFFA404).w,d3 cmp.w (XSHFT_MODIFICATIONS_KE_DOWNSHIFT_TCC_DELAY_TIME).l,d3 ; Delay a downshift until TCC has been off for this amount of time. ; Seconds bcc.s locret_5955C move.w (word_FFFF95BC).w,d3 cmp.w (XSHFT_MODIFICATIONS_KE_DOWNSHIFT_DELAY_SLIP_THRESH).l,d3 ; Delay a downshift until TCC slip is less than this RPM threshold. ; RPM_s bge.s locret_5955C move.b (byte_FFFF95DD).w,d3 beq.s loc_5954A cmpi.b #3,d3 bne.s loc_5954E loc_5954A: ; CODE XREF: sub_594F4+4Ej moveq #1,d3 bra.s loc_59550 ; --------------------------------------------------------------------------- loc_5954E: ; CODE XREF: sub_594F4+54j clr.b d3 loc_59550: ; CODE XREF: sub_594F4+58j tst.b d3 bne.s locret_5955C move.b d0,(a0) bset #7,(byte_FFFFB344).w locret_5955C: ; CODE XREF: sub_594F4+28j ; sub_594F4+30j ... rts ; End of function sub_594F4 ; =============== S U B R O U T I N E ======================================= sub_5955E: ; CODE XREF: sub_4DD5C+D32p moveq #1,d4 cmp.b d0,d4 bne.s loc_59596 move.w (word_FFFF95DA).w,d3 cmp.w (XSHFT_MODIFICATIONS_KE_2_1_INHIBIT_MIN_MPH).l,d3 bcs.s loc_59596 move.w (word_FFFF9582).w,d3 cmp.w (XSHFT_MODIFICATIONS_KE_2_1_INHIBIT_THR_THRESHOLD).l,d3 bhi.s loc_59596 move.w (word_FFFF9BC8).w,d3 cmp.w (XSHFT_MODIFICATIONS_KE_2_1_INHIBIT_ACC_THRESH_HI).l,d3 ; If the filtered vehicle acceleration is above this value,the 2-1 downshift inhibit is enabled. ; MPH_per_Second_S blt.s loc_5958E move.b d4,(byte_FFFFB34E).w bra.s loc_5959A ; --------------------------------------------------------------------------- loc_5958E: ; CODE XREF: sub_5955E+28j cmp.w (XSHFT_MODIFICATIONS_KE_2_1_INHIBIT_ACC_THRESH_LO).l,d3 ; If the vehicle acceleration falls below this value,the 2-1 downshift inhibit is disabled. ; MPH_per_Second_S bgt.s loc_5959A loc_59596: ; CODE XREF: sub_5955E+4j ; sub_5955E+10j ... clr.b (byte_FFFFB34E).w loc_5959A: ; CODE XREF: sub_5955E+2Ej ; sub_5955E+36j tst.b (byte_FFFFB34E).w beq.s loc_595BA move.b (byte_FFFF958A).w,d3 bne.s loc_595B6 tst.b d3 bne.s loc_595BA move.w (word_FFFF9584).w,d3 cmp.w (XSHFT_MODIFICATIONS_KE_2_1_INHIBIT_POS_DELTA_THR).l,d3 ; Used in comparison with Positive_Delta_Throttle toinhibit a 2-1 downshift. ; Percent bhi.s loc_595BA loc_595B6: ; CODE XREF: sub_5955E+46j move.b d0,(a0) bra.s locret_595BE ; --------------------------------------------------------------------------- loc_595BA: ; CODE XREF: sub_5955E+40j ; sub_5955E+4Aj ... clr.b (byte_FFFFB34E).w locret_595BE: ; CODE XREF: sub_5955E+5Aj rts ; End of function sub_5955E ; =============== S U B R O U T I N E ======================================= sub_595C0: ; CODE XREF: sub_4DD5C+D4Ap tst.b d0 bne.s loc_595DE cmpi.b #1,(a0) bne.s loc_595DE move.w (word_FFFF95DA).w,d3 cmp.w (XSHFT_MODIFICATIONS_KE_INHIBIT_2_1_SINCE_1ST_MPH_THR).l,d3 ; Inhibit a 2-1 downshift after a 1-2 upshift only if vehicle speed is greater than this value. ; MPH bcs.s loc_595DE move.w (XSHFT_MODIFICATIONS_KE_INHIBIT_2_1_SINCE_1ST_GEAR).l,(word_FFFFB350).w loc_595DE: ; CODE XREF: sub_595C0+2j sub_595C0+8j ... movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB350).w,d3 sub.w $A(a2),d3 bcc.s loc_595EE clr.w d3 loc_595EE: ; CODE XREF: sub_595C0+2Aj move.w d3,(word_FFFFB350).w btst #7,(byte_FFFF95E2).w bne.s loc_5960A move.b (byte_FFFF95E9).w,d3 cmpi.b #2,d3 bcs.s loc_5960A cmpi.b #3,d3 bls.s loc_5960E loc_5960A: ; CODE XREF: sub_595C0+38j ; sub_595C0+42j clr.w (word_FFFFB350).w loc_5960E: ; CODE XREF: sub_595C0+48j tst.w (word_FFFFB350).w beq.s locret_59624 btst #4,(byte_FFFF9BBA).w beq.s locret_59624 cmpi.b #1,d0 bne.s locret_59624 move.b d0,(a0) locret_59624: ; CODE XREF: sub_595C0+52j ; sub_595C0+5Aj ... rts ; End of function sub_595C0 ; =============== S U B R O U T I N E ======================================= sub_59626: ; CODE XREF: sub_4DD5C+D54p movem.l d1/a1,-(sp) movea.l a0,a1 tst.b (byte_FFFFAC66).w beq.s loc_5964E cmpi.b #2,d0 bne.s loc_5964E cmpi.b #1,(a1) bne.s loc_5964E move.w (word_FFFF95DA).w,d3 cmp.w (XSHFT_MODIFICATIONS_KE_INHIBIT_DOWN_TO_SECOND_MPH).l,d3 ; Used to determine if the downshift to second should beinhibited if the diagnostic malf has occurred. ; MPH bcs.s loc_5964E move.b d0,(a1) bra.s loc_596C0 ; --------------------------------------------------------------------------- loc_5964E: ; CODE XREF: sub_59626+Aj ; sub_59626+10j ... btst #4,(byte_FFFF95E4).w beq.s loc_59660 cmpi.b #3,(a1) bcs.s loc_59660 move.b #2,(a1) loc_59660: ; CODE XREF: sub_59626+2Ej ; sub_59626+34j tst.b (byte_FFFFAC63).w beq.s loc_59674 cmpi.b #3,d0 beq.s loc_59674 moveq #2,d3 cmp.b (a1),d3 bcc.s loc_59674 move.b d3,(a1) loc_59674: ; CODE XREF: sub_59626+3Ej ; sub_59626+44j ... moveq #3,d3 tst.b (byte_FFFFAC64).w beq.s loc_59680 loc_5967C: ; CODE XREF: sub_59626+66j moveq #2,d3 bra.s loc_5968E ; --------------------------------------------------------------------------- loc_59680: ; CODE XREF: sub_59626+54j tst.b (byte_FFFFAC65).w beq.s loc_59694 btst #7,(byte_FFFFAF98).w bne.s loc_5967C loc_5968E: ; CODE XREF: sub_59626+58j cmp.b (a1),d3 bcc.s loc_59694 move.b d3,(a1) loc_59694: ; CODE XREF: sub_59626+5Ej ; sub_59626+6Aj tst.b (byte_FFFFAC62).w beq.s loc_596B4 move.b (TCM_OPTIONS_K_DEFAULT_GEAR).l,d3 ; Default hydraulic gear for the transmission. ; Gear cmp.b d3,d0 bcc.s loc_596AA cmp.b (a1),d0 bls.s loc_596B4 bra.s loc_596B2 ; --------------------------------------------------------------------------- loc_596AA: ; CODE XREF: sub_59626+7Cj cmp.b d3,d0 bls.s loc_596B2 cmp.b (a1),d0 bcc.s loc_596B4 loc_596B2: ; CODE XREF: sub_59626+82j ; sub_59626+86j move.b d0,(a1) loc_596B4: ; CODE XREF: sub_59626+72j ; sub_59626+80j ... tst.b (byte_FFFFAC61).w beq.s loc_596C0 move.b (TCM_OPTIONS_K_DEFAULT_GEAR).l,(a1) ; Default hydraulic gear for the transmission. ; Gear loc_596C0: ; CODE XREF: sub_59626+26j ; sub_59626+92j tst.b (TCM_OPTIONS_K_TRANS_HAS_THIRD_GEAR_DEFAULT).l ; If TRUE, then the transmission will assume third gear when the wiring harness is disabled; otherwise, second gear. ; BOOLEAN beq.s loc_596CE jsr sub_58DCE loc_596CE: ; CODE XREF: sub_59626+A0j tst.b (byte_FFFFA2A0).w beq.s loc_596E2 move.b (byte_FFFFA2A0).w,d3 subq.b #1,d3 bcc.s loc_596DE clr.b d3 loc_596DE: ; CODE XREF: sub_59626+B4j move.b d3,(a1) bra.s loc_596EA ; --------------------------------------------------------------------------- loc_596E2: ; CODE XREF: sub_59626+ACj movea.l a1,a0 jsr sub_596F0 loc_596EA: ; CODE XREF: sub_59626+BAj movem.l (sp)+,d1/a1 rts ; End of function sub_59626 ; =============== S U B R O U T I N E ======================================= sub_596F0: ; CODE XREF: sub_59626+BEp btst #7,(byte_FFFF95E3).w bne.s locret_596FE move.b (TCM_OPTIONS_K_DEFAULT_GEAR).l,(a0) ; Default hydraulic gear for the transmission. ; Gear locret_596FE: ; CODE XREF: sub_596F0+6j rts ; End of function sub_596F0 ; =============== S U B R O U T I N E ======================================= sub_59700: ; CODE XREF: sub_59CD8+B8p move.b d0,d3 move.w d1,d4 move.l d4,d0 cmpi.b #1,(byte_FFFF95E9).w bls.s locret_5973A tst.b (byte_FFFFABDA).w beq.s loc_59722 andi.w #$FF,d3 move.w T_SHIFT_TABLES_KV_UPSHFT_COOLANT_DUMP_LIMIT(d3.w*2),d3 bra.s loc_59734 ; --------------------------------------------------------------------------- loc_59722: ; CODE XREF: sub_59700+12j tst.b (byte_FFFFA93E).w beq.s locret_5973A andi.w #$FF,d3 move.w T_SHIFT_TABLES_KV_UPSHFT_COLD_ENG_STRT_LIMIT(d3.w*2),d3 loc_59734: ; CODE XREF: sub_59700+20j cmp.w d3,d4 bls.s locret_5973A move.l d3,d0 locret_5973A: ; CODE XREF: sub_59700+Cj ; sub_59700+26j ... rts ; End of function sub_59700 ; =============== S U B R O U T I N E ======================================= sub_5973C: ; CODE XREF: sub_59D9E+58p movem.l d2/d6,-(sp) move.b d0,d3 move.l d1,d0 move.b (byte_FFFF95E9).w,d4 moveq #1,d5 cmp.b d4,d5 bcc.s loc_5978C tst.b (byte_FFFFABDA).w beq.s loc_5978C bset #7,(byte_FFFFB520).w moveq #3,d2 cmp.b d3,d2 bls.s loc_59766 move.l d3,d4 addq.b #1,d4 bra.s loc_59768 ; --------------------------------------------------------------------------- loc_59766: ; CODE XREF: sub_5973C+22j move.b d3,d4 loc_59768: ; CODE XREF: sub_5973C+28j clr.l d6 move.b d4,d6 cmp.w word_1A656(d6.w*2),d1 bls.w loc_59806 cmp.b d3,d2 bls.s loc_5977E addq.b #1,d3 loc_5977E: ; CODE XREF: sub_5973C+3Ej andi.w #$FF,d3 move.w word_1A656(d3.w*2),d0 bra.s loc_59806 ; --------------------------------------------------------------------------- loc_5978C: ; CODE XREF: sub_5973C+10j ; sub_5973C+16j cmp.b d4,d5 bcc.s loc_597CC tst.b (byte_FFFFA93E).w beq.s loc_597CC bset #6,(byte_FFFFB520).w moveq #3,d2 cmp.b d3,d2 bls.s loc_597A8 move.l d3,d4 addq.b #1,d4 bra.s loc_597AA ; --------------------------------------------------------------------------- loc_597A8: ; CODE XREF: sub_5973C+64j move.b d3,d4 loc_597AA: ; CODE XREF: sub_5973C+6Aj clr.l d6 move.b d4,d6 cmp.w Flag_0x01_D3601___Performance_Mode_Pressure_Adjust_Disable_?+1(d6.w*2),d1 bls.s loc_59806 cmp.b d3,d2 bls.s loc_597BE addq.b #1,d3 loc_597BE: ; CODE XREF: sub_5973C+7Ej andi.w #$FF,d3 move.w Flag_0x01_D3601___Performance_Mode_Pressure_Adjust_Disable_?+1(d3.w*2),d0 bra.s loc_59806 ; --------------------------------------------------------------------------- loc_597CC: ; CODE XREF: sub_5973C+52j ; sub_5973C+58j btst #7,(byte_FFFF9BBA).w bne.s loc_597DC btst #6,(byte_FFFF9BBA).w beq.s loc_59806 loc_597DC: ; CODE XREF: sub_5973C+96j tst.b (byte_FFFFABDA).w bne.s loc_597F2 btst #7,(byte_FFFFB520).w beq.s loc_597F2 bclr #7,(byte_FFFFB520).w bra.s loc_59806 ; --------------------------------------------------------------------------- loc_597F2: ; CODE XREF: sub_5973C+A4j ; sub_5973C+ACj tst.b (byte_FFFFA93E).w bne.s loc_59806 btst #6,(byte_FFFFB520).w beq.s loc_59806 bclr #6,(byte_FFFFB520).w loc_59806: ; CODE XREF: sub_5973C+38j ; sub_5973C+4Ej ... movem.l (sp)+,d2/d6 rts ; End of function sub_5973C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5980C: ; CODE XREF: sub_598D4+4Ap ; sub_59C84+38p var_2 = -2 link a6,#-2 tst.l 2(a0) beq.s loc_59834 move.b #1,var_2(a6) tst.b (a0) beq.s loc_5982C movea.l 2(a0),a2 lsr.w #3,d0 tblu.w (a2),d0 bra.s loc_5983A ; --------------------------------------------------------------------------- loc_5982C: ; CODE XREF: sub_5980C+12j movea.l 2(a0),a2 move.w (a2),d0 bra.s loc_5983A ; --------------------------------------------------------------------------- loc_59834: ; CODE XREF: sub_5980C+8j clr.b var_2(a6) clr.w d0 loc_5983A: ; CODE XREF: sub_5980C+1Ej ; sub_5980C+26j unlk a6 rts ; End of function sub_5980C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5983E: ; CODE XREF: sub_598D4+94p var_2 = -2 link a6,#-2 tst.l 2(a0) beq.s loc_59866 move.b #1,var_2(a6) tst.b (a0) beq.s loc_5985E movea.l 2(a0),a2 lsr.w #3,d0 tbls.w (a2),d0 bra.s loc_5986C ; --------------------------------------------------------------------------- loc_5985E: ; CODE XREF: sub_5983E+12j movea.l 2(a0),a2 move.w (a2),d0 bra.s loc_5986C ; --------------------------------------------------------------------------- loc_59866: ; CODE XREF: sub_5983E+8j clr.b var_2(a6) clr.w d0 loc_5986C: ; CODE XREF: sub_5983E+1Ej ; sub_5983E+26j unlk a6 rts ; End of function sub_5983E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_59870: ; CODE XREF: sub_59B02+46p var_2 = -2 link a6,#-2 tst.l 2(a0) beq.s loc_59898 move.b #1,var_2(a6) tst.b (a0) beq.s loc_59890 movea.l 2(a0),a2 lsr.w #3,d0 tblu.w (a2),d0 bra.s loc_5989E ; --------------------------------------------------------------------------- loc_59890: ; CODE XREF: sub_59870+12j movea.l 2(a0),a2 move.w (a2),d0 bra.s loc_5989E ; --------------------------------------------------------------------------- loc_59898: ; CODE XREF: sub_59870+8j clr.b var_2(a6) clr.w d0 loc_5989E: ; CODE XREF: sub_59870+1Ej ; sub_59870+26j unlk a6 rts ; End of function sub_59870 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_598A2: ; CODE XREF: sub_59B02+80p var_2 = -2 link a6,#-2 tst.l 2(a0) beq.s loc_598CA move.b #1,var_2(a6) tst.b (a0) beq.s loc_598C2 movea.l 2(a0),a2 lsr.w #3,d0 tbls.w (a2),d0 bra.s loc_598D0 ; --------------------------------------------------------------------------- loc_598C2: ; CODE XREF: sub_598A2+12j movea.l 2(a0),a2 move.w (a2),d0 bra.s loc_598D0 ; --------------------------------------------------------------------------- loc_598CA: ; CODE XREF: sub_598A2+8j clr.b var_2(a6) clr.w d0 loc_598D0: ; CODE XREF: sub_598A2+1Ej ; sub_598A2+26j unlk a6 rts ; End of function sub_598A2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_598D4: ; CODE XREF: sub_59CD8+44p ; sub_59D9E+42p var_C = -$C var_8 = -8 var_6 = -6 var_2 = -2 arg_0 = 8 link a6,#-8 move.l a1,-(sp) movem.l d1-d2/d6-d7/a4-a5,-(sp) move.b d0,d2 movea.l a0,a4 movea.l arg_0(a6),a1 movea.l (a4),a2 clr.l d6 move.b d0,d6 moveq #6,d7 mulu.w d7,d6 clr.w d0 move.b (byte_FFFF95F1).w,d0 mulu.w #$12,d0 add.b d6,d0 andi.w #$FF,d0 move.l 2(a2,d0.w),var_6(a6) move.w (a2,d0.w),var_8(a6) tst.l var_6(a6) beq.w loc_59AF4 move.w (word_FFFF958C).w,d0 lea var_8(a6),a5 movea.l a5,a0 jsr sub_5980C move.w d0,d1 move.w d1,(a1) cmpi.w #$FF00,d1 bcs.s loc_59936 loc_5992E: ; CODE XREF: sub_598D4+210j move.w #$FFFF,d1 bra.w loc_59AEA ; --------------------------------------------------------------------------- loc_59936: ; CODE XREF: sub_598D4+58j movea.l 4(a4),a2 clr.l d6 move.b d2,d6 mulu.w d7,d6 clr.w d0 move.b (byte_FFFF95F1).w,d0 mulu.w #$12,d0 add.b d6,d0 andi.w #$FF,d0 move.l 2(a2,d0.w),var_6(a6) move.w (a2,d0.w),var_8(a6) tst.l var_6(a6) beq.s loc_5999E move.w (word_FFFF958C).w,d0 movea.l a5,a0 jsr sub_5983E clr.w d3 move.b (byte_FFFF95FC).w,d3 muls.w d0,d3 bpl.s loc_5997E addi.l #$FF,d3 loc_5997E: ; CODE XREF: sub_598D4+A2j asr.l #8,d3 ext.l d3 andi.l #$FFFF,d1 add.l d3,d1 tst.l d1 blt.s loc_5999C cmpi.l #$FFFF,d1 bls.s loc_5999E move.w #$FFFF,d1 bra.s loc_5999E ; --------------------------------------------------------------------------- loc_5999C: ; CODE XREF: sub_598D4+B8j clr.w d1 loc_5999E: ; CODE XREF: sub_598D4+8Cj ; sub_598D4+C0j ... movea.l 8(a4),a2 andi.w #$FF,d2 mulu.w d7,d2 clr.w d3 move.b (byte_FFFF95F1).w,d3 mulu.w #$12,d3 add.b d2,d3 andi.w #$FF,d3 move.l 2(a2,d3.w),var_6(a6) move.w (a2,d3.w),var_8(a6) tst.l var_6(a6) beq.w loc_59AEA move.b (byte_FFFF958E).w,d3 clr.w d4 moveq #$55,d2 ; 'U' cmp.b d3,d2 bls.s loc_599DC move.l d4,d3 bra.s loc_599FA ; --------------------------------------------------------------------------- loc_599DC: ; CODE XREF: sub_598D4+102j moveq #$79,d6 ; 'y' cmp.b d3,d6 bls.s loc_599F6 sub.b d2,d3 andi.w #$FF,d3 asl.w #8,d3 andi.l #$FFFF,d3 moveq #9,d0 divu.w d0,d3 bra.s loc_599FA ; --------------------------------------------------------------------------- loc_599F6: ; CODE XREF: sub_598D4+10Cj move.w #$400,d3 loc_599FA: ; CODE XREF: sub_598D4+106j ; sub_598D4+120j tblu.b (X_LIBRARY_KV_ALTITUDE_FACTOR).l,d3 ; Shift point altitude compensation gain factor ; Factor 0-1 andi.w #$FF,d3 move.w (word_FFFF958C).w,d5 move.l var_6(a6),d4 beq.s loc_59A38 moveq #1,d6 move.b d6,var_2(a6) tst.b var_8(a6) beq.s loc_59A30 movea.l d4,a2 movea.w #$10FE,a3 move.l d5,d4 lsr.w #3,d4 tbls.b (a2),d4 ext.w d4 asl.w #7,d4 bra.s loc_59A3E ; --------------------------------------------------------------------------- loc_59A30: ; CODE XREF: sub_598D4+146j movea.l var_6(a6),a2 move.w (a2),d4 bra.s loc_59A3E ; --------------------------------------------------------------------------- loc_59A38: ; CODE XREF: sub_598D4+13Aj clr.b var_2(a6) clr.w d4 loc_59A3E: ; CODE XREF: sub_598D4+15Aj ; sub_598D4+162j muls.w d4,d3 bpl.s loc_59A48 addi.l #$FF,d3 loc_59A48: ; CODE XREF: sub_598D4+16Cj asr.l #8,d3 move.w d3,(word_FFFFB522).w move.b (byte_FFFF958E).w,d3 movea.w #$400,a2 clr.w d4 cmp.b d3,d2 bls.s loc_59A60 move.l d4,d3 bra.s loc_59A7E ; --------------------------------------------------------------------------- loc_59A60: ; CODE XREF: sub_598D4+186j cmpi.b #$79,d3 ; 'y' bcc.s loc_59A7A sub.b d2,d3 andi.w #$FF,d3 asl.w #8,d3 andi.l #$FFFF,d3 divu.w #9,d3 bra.s loc_59A7E ; --------------------------------------------------------------------------- loc_59A7A: ; CODE XREF: sub_598D4+190j move.w #$400,d3 loc_59A7E: ; CODE XREF: sub_598D4+18Aj ; sub_598D4+1A4j tblu.b (X_LIBRARY_KV_ALTITUDE_FACTOR).l,d3 ; Shift point altitude compensation gain factor ; Factor 0-1 andi.w #$FF,d3 move.w (word_FFFF958C).w,d5 tst.l var_6(a6) beq.s loc_59ABE move.b #1,var_2(a6) tst.b var_8(a6) beq.s loc_59AB6 movea.l var_6(a6),a2 movea.w #$10FE,a3 move.l d5,d4 lsr.w #3,d4 tbls.b (a2),d4 ext.w d4 asl.w #7,d4 bra.s loc_59AC2 ; --------------------------------------------------------------------------- loc_59AB6: ; CODE XREF: sub_598D4+1CAj movea.l var_6(a6),a2 move.w (a2),d4 bra.s loc_59AC2 ; --------------------------------------------------------------------------- loc_59ABE: ; CODE XREF: sub_598D4+1BEj clr.b var_2(a6) loc_59AC2: ; CODE XREF: sub_598D4+1E0j ; sub_598D4+1E8j muls.w d4,d3 bpl.s loc_59ACC addi.l #$FF,d3 loc_59ACC: ; CODE XREF: sub_598D4+1F0j asr.l #8,d3 ext.l d3 andi.l #$FFFF,d1 add.l d3,d1 tst.l d1 blt.s loc_59AE8 cmpi.l #$FFFF,d1 bls.s loc_59AEA bra.w loc_5992E ; --------------------------------------------------------------------------- loc_59AE8: ; CODE XREF: sub_598D4+206j clr.w d1 loc_59AEA: ; CODE XREF: sub_598D4+5Ej ; sub_598D4+F4j ... movea.l var_C(a6),a2 move.w d1,(a2) moveq #1,d0 bra.s loc_59AF8 ; --------------------------------------------------------------------------- loc_59AF4: ; CODE XREF: sub_598D4+3Cj clr.w (a1) clr.b d0 loc_59AF8: ; CODE XREF: sub_598D4+21Ej movem.l (sp)+,d1-d2/d6-d7/a4-a5 unlk a6 rtd #4 ; End of function sub_598D4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_59B02: ; CODE XREF: sub_4DD5C+79Ap var_8 = -8 var_6 = -6 var_2 = -2 link a6,#-8 movem.l d1-d2/d6-d7/a4-a5,-(sp) move.b d0,d2 movea.l a0,a4 movea.l a1,a5 movea.l (a4),a2 clr.l d7 move.b d0,d7 moveq #6,d1 mulu.w d1,d7 clr.w d0 move.b (byte_FFFF95F1).w,d0 mulu.w #$12,d0 add.b d7,d0 andi.w #$FF,d0 move.l 2(a2,d0.w),var_6(a6) move.w (a2,d0.w),var_8(a6) tst.l var_6(a6) beq.w loc_59C7A move.w (word_FFFF958C).w,d0 lea var_8(a6),a1 movea.l a1,a0 jsr sub_59870 move.w d0,d6 movea.l 4(a4),a2 clr.l d7 move.b d2,d7 mulu.w d1,d7 clr.w d0 move.b (byte_FFFF95F1).w,d0 mulu.w #$12,d0 add.b d7,d0 andi.w #$FF,d0 move.l 2(a2,d0.w),var_6(a6) move.w (a2,d0.w),var_8(a6) tst.l var_6(a6) beq.s loc_59BB4 move.w (word_FFFF958C).w,d0 movea.l a1,a0 jsr sub_598A2 clr.w d3 move.b (byte_FFFF95FC).w,d3 muls.w d0,d3 bpl.s loc_59B98 addi.l #$FF,d3 loc_59B98: ; CODE XREF: sub_59B02+8Ej asr.l #8,d3 add.w d6,d3 bvc.s loc_59BA2 bmi.s loc_59BAA bra.s loc_59BB0 ; --------------------------------------------------------------------------- loc_59BA2: ; CODE XREF: sub_59B02+9Aj cmpi.w #$7FFF,d3 bhi.s loc_59BB0 bra.s loc_59BB2 ; --------------------------------------------------------------------------- loc_59BAA: ; CODE XREF: sub_59B02+9Cj move.w #$7FFF,d3 bra.s loc_59BB2 ; --------------------------------------------------------------------------- loc_59BB0: ; CODE XREF: sub_59B02+9Ej ; sub_59B02+A4j clr.w d3 loc_59BB2: ; CODE XREF: sub_59B02+A6j ; sub_59B02+ACj move.w d3,d6 loc_59BB4: ; CODE XREF: sub_59B02+78j movea.l 8(a4),a2 andi.w #$FF,d2 mulu.w d1,d2 clr.w d3 move.b (byte_FFFF95F1).w,d3 mulu.w #$12,d3 add.b d2,d3 andi.w #$FF,d3 move.l 2(a2,d3.w),var_6(a6) move.w (a2,d3.w),var_8(a6) tst.l var_6(a6) beq.w loc_59C74 move.b (byte_FFFF958E).w,d1 clr.w d3 cmpi.b #$55,d1 ; 'U' bcc.s loc_59BF2 move.l d3,d1 bra.s loc_59C12 ; --------------------------------------------------------------------------- loc_59BF2: ; CODE XREF: sub_59B02+EAj cmpi.b #$79,d1 ; 'y' bcc.s loc_59C0E subi.b #$55,d1 ; 'U' andi.w #$FF,d1 asl.w #8,d1 andi.l #$FFFF,d1 divu.w #9,d1 bra.s loc_59C12 ; --------------------------------------------------------------------------- loc_59C0E: ; CODE XREF: sub_59B02+F4j move.w #$400,d1 loc_59C12: ; CODE XREF: sub_59B02+EEj ; sub_59B02+10Aj tblu.b (X_LIBRARY_KV_ALTITUDE_FACTOR).l,d1 ; Shift point altitude compensation gain factor ; Factor 0-1 andi.w #$FF,d1 move.w (word_FFFF958C).w,d3 tst.l var_6(a6) beq.s loc_59C48 move.b #1,var_2(a6) tst.b var_8(a6) beq.s loc_59C40 movea.l var_6(a6),a2 lsr.w #3,d3 tbls.w (a2),d3 bra.s loc_59C4E ; --------------------------------------------------------------------------- loc_59C40: ; CODE XREF: sub_59B02+130j movea.l var_6(a6),a2 move.w (a2),d3 bra.s loc_59C4E ; --------------------------------------------------------------------------- loc_59C48: ; CODE XREF: sub_59B02+124j clr.b var_2(a6) clr.w d3 loc_59C4E: ; CODE XREF: sub_59B02+13Cj ; sub_59B02+144j muls.w d3,d1 bpl.s loc_59C58 addi.l #$FF,d1 loc_59C58: ; CODE XREF: sub_59B02+14Ej asr.l #8,d1 add.w d6,d1 bvc.s loc_59C62 bmi.s loc_59C6A bra.s loc_59C70 ; --------------------------------------------------------------------------- loc_59C62: ; CODE XREF: sub_59B02+15Aj cmpi.w #$7FFF,d1 bhi.s loc_59C70 bra.s loc_59C72 ; --------------------------------------------------------------------------- loc_59C6A: ; CODE XREF: sub_59B02+15Cj move.w #$7FFF,d1 bra.s loc_59C72 ; --------------------------------------------------------------------------- loc_59C70: ; CODE XREF: sub_59B02+15Ej ; sub_59B02+164j clr.w d1 loc_59C72: ; CODE XREF: sub_59B02+166j ; sub_59B02+16Cj move.w d1,d6 loc_59C74: ; CODE XREF: sub_59B02+DCj move.w d6,(a5) moveq #1,d0 bra.s loc_59C7C ; --------------------------------------------------------------------------- loc_59C7A: ; CODE XREF: sub_59B02+38j clr.b d0 loc_59C7C: ; CODE XREF: sub_59B02+176j movem.l (sp)+,d1-d2/d6-d7/a4-a5 unlk a6 rts ; End of function sub_59B02 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_59C84: ; CODE XREF: sub_59CD8+22p ; sub_59D9E+20p var_6 = -6 var_4 = -4 link a6,#-6 movea.l (a0),a2 andi.w #$FF,d0 mulu.w #6,d0 clr.w d3 move.b (byte_FFFF95F1).w,d3 mulu.w #$12,d3 add.b d0,d3 andi.w #$FF,d3 move.l 2(a2,d3.w),var_4(a6) move.w (a2,d3.w),var_6(a6) tst.l var_4(a6) beq.s loc_59CCE move.w (word_FFFF958C).w,d0 lea var_6(a6),a0 jsr sub_5980C move.w d0,(a1) cmpi.w #$FF00,d0 bcs.s loc_59CCE move.w #$FFFF,(a1) loc_59CCE: ; CODE XREF: sub_59C84+2Ej ; sub_59C84+44j tst.w (a1) sne d0 neg.b d0 unlk a6 rts ; End of function sub_59C84 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_59CD8: ; CODE XREF: sub_4DD5C+74Ap var_4 = -4 var_2 = -2 link a6,#-4 movem.l d1-d2/d6-d7/a1/a4-a5,-(sp) move.b d0,d7 movea.l a0,a4 clr.b (a4) clr.w var_4(a6) clr.w var_2(a6) lea var_4(a6),a5 movea.l a5,a1 movea.l #$2D0C,a0 jsr sub_59C84 tst.b d0 beq.s loc_59D0C movea.l a4,a2 bset #0,(a2) bra.s loc_59D2C ; --------------------------------------------------------------------------- loc_59D0C: ; CODE XREF: sub_59CD8+2Aj lea var_2(a6),a1 move.l a1,-(sp) movea.l a5,a1 movea.l #$2D24,a0 move.l d7,d0 jsr sub_598D4 tst.b d0 beq.s loc_59D2C movea.l a4,a2 bset #2,(a2) loc_59D2C: ; CODE XREF: sub_59CD8+32j ; sub_59CD8+4Cj clr.w d3 move.b (byte_FFFF95F1).w,d3 moveq #3,d4 mulu.w d4,d3 move.l d3,d1 move.l d4,d5 cmp.b d7,d5 bls.s loc_59D44 move.l d7,d6 addq.b #1,d6 bra.s loc_59D46 ; --------------------------------------------------------------------------- loc_59D44: ; CODE XREF: sub_59CD8+64j move.l d7,d6 loc_59D46: ; CODE XREF: sub_59CD8+6Aj add.b d6,d1 andi.w #$FF,d1 tst.l off_2D44.l(d1.w*4) beq.s loc_59D8A move.w (word_FFFF95DA).w,d0 cmp.b d7,d5 bls.s loc_59D64 move.l d7,d2 addq.b #1,d2 bra.s loc_59D66 ; --------------------------------------------------------------------------- loc_59D64: ; CODE XREF: sub_59CD8+84j move.l d7,d2 loc_59D66: ; CODE XREF: sub_59CD8+8Aj add.b d2,d3 andi.w #$FF,d3 movea.l off_2D44.l(d3.w*4),a2 cmpi.w #$8000,d0 bcc.s loc_59D7E lsr.w #3,d0 bra.s loc_59D82 ; --------------------------------------------------------------------------- loc_59D7E: ; CODE XREF: sub_59CD8+A0j move.w #$1000,d0 loc_59D82: ; CODE XREF: sub_59CD8+A4j tblu.w (a2),d0 move.w d0,(word_FFFFB51E).w loc_59D8A: ; CODE XREF: sub_59CD8+7Cj move.w var_4(a6),d1 move.l d7,d0 jsr sub_59700 movem.l (sp)+,d1-d2/d6-d7/a1/a4-a5 unlk a6 rts ; End of function sub_59CD8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_59D9E: ; CODE XREF: sub_4DD5C:loc_4E4D0p var_4 = -4 var_2 = -2 link a6,#-4 movem.l d1-d2/a1/a4-a5,-(sp) move.b d0,d2 movea.l a0,a4 clr.w var_4(a6) clr.w var_2(a6) lea var_4(a6),a5 movea.l a5,a1 movea.l #$2D18,a0 jsr sub_59C84 tst.b d0 beq.s loc_59DD0 movea.l a4,a2 bset #1,(a2) bra.s loc_59DF0 ; --------------------------------------------------------------------------- loc_59DD0: ; CODE XREF: sub_59D9E+28j lea var_2(a6),a1 move.l a1,-(sp) movea.l a5,a1 movea.l #$2D30,a0 move.l d2,d0 jsr sub_598D4 tst.b d0 beq.s loc_59DF0 movea.l a4,a2 bset #3,(a2) loc_59DF0: ; CODE XREF: sub_59D9E+30j ; sub_59D9E+4Aj move.w var_4(a6),d1 move.l d2,d0 jsr sub_5973C movem.l (sp)+,d1-d2/a1/a4-a5 unlk a6 rts ; End of function sub_59D9E ; =============== S U B R O U T I N E ======================================= sub_59E04: ; CODE XREF: sub_5A25C+Cp move.w (word_FFFF9590).w,d3 cmp.w (word_FFFFAF9A).w,d3 ble.s loc_59E16 bset #5,(byte_FFFFAF98).w bra.s loc_59E1C ; --------------------------------------------------------------------------- loc_59E16: ; CODE XREF: sub_59E04+8j bclr #5,(byte_FFFFAF98).w loc_59E1C: ; CODE XREF: sub_59E04+10j btst #5,(byte_FFFFAF98).w beq.s loc_59E2E move.w (XTEMP_STATUS_KE_TCC_TEMP_DIAG_LOW_THRESH).l,(word_FFFFAF9A).w ; When trans. temperature falls below this value, the TCC Off diagnostic override is cleared. ; Deg C bra.s locret_59E36 ; --------------------------------------------------------------------------- loc_59E2E: ; CODE XREF: sub_59E04+1Ej move.w (XTEMP_STATUS_KE_TCC_TEMP_DIAG_HIGH_THRESH).l,(word_FFFFAF9A).w ; When trans. temperature rises below this value, the TCC Off diagnostic override is set. ; Deg C locret_59E36: ; CODE XREF: sub_59E04+28j rts ; End of function sub_59E04 ; =============== S U B R O U T I N E ======================================= sub_59E38: ; CODE XREF: sub_5A294+6p move.l d0,-(sp) btst #7,(byte_FFFFAF99).w bne.w loc_59EF6 move.b (byte_FFFF95DF).w,d0 cmp.b (XTEMP_STATUS_KE_HOT_MODE_STATOR_SPD_RATIO_MIN).l,d0 ; Minimum TCC speed ratio value to enable hot mode stator temperature test. ; Factor bcc.s loc_59EBE move.w (word_FFFF9590).w,d0 cmp.w (XTEMP_STATUS_KE_HOT_MODE_STATOR_TEMP_MIN).l,d0 ; Minimum transmission sump temperature value to enable hot mode stator temperature test. ; Deg C ble.s loc_59EB8 tst.b (byte_FFFF95DC).w beq.s loc_59EB8 move.w (word_FFFF95DA).w,d3 cmp.w (XTEMP_STATUS_KE_HOT_MODE_STATOR_VEHSPD_MIN).l,d3 ; Minimum vehicle speed value to enable hot mode stator temperature test. ; MPH bls.s loc_59EB8 move.l d0,d3 addi.b #$36,d3 ; '6' andi.w #$FF,d3 asl.w #5,d3 tblu.w (XTEMP_STATUS_KV_HOT_MODE_STATOR_ENTRANCE).l,d3 cmp.w (word_FFFFAF9E).w,d3 bhi.s loc_59E9A bset #7,(byte_FFFFAF99).w move.w d0,(word_FFFFAFA4).w clr.w (word_FFFFAFA2).w bra.w loc_59F6E ; --------------------------------------------------------------------------- loc_59E9A: ; CODE XREF: sub_59E38+4Ej movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAF9E).w,d3 add.w $A(a2),d3 bcc.s loc_59EAC move.w #$FFFF,d3 loc_59EAC: ; CODE XREF: sub_59E38+6Ej move.w d3,(word_FFFFAF9E).w loc_59EB0: ; CODE XREF: sub_59E38+84j clr.w (word_FFFFAF9C).w bra.w loc_59F6E ; --------------------------------------------------------------------------- loc_59EB8: ; CODE XREF: sub_59E38+22j ; sub_59E38+28j ... clr.w (word_FFFFAF9E).w bra.s loc_59EB0 ; --------------------------------------------------------------------------- loc_59EBE: ; CODE XREF: sub_59E38+16j move.w (word_FFFFAF9C).w,d3 cmp.w (XTEMP_STATUS_KE_HOT_MODE_STATOR_DELAY_TIMER).l,d3 ; Maximum amount of time before Hot_Mode_Stator_Delay_Timer and Hot_Mode_Stator_Entrance_Timer are reset to zero. ; Seconds bls.s loc_59ED6 clr.w (word_FFFFAF9C).w loc_59ECE: ; CODE XREF: sub_59E38+BCj clr.w (word_FFFFAF9E).w bra.w loc_59F6E ; --------------------------------------------------------------------------- loc_59ED6: ; CODE XREF: sub_59E38+90j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_59EE4 move.w #$FFFF,d3 loc_59EE4: ; CODE XREF: sub_59E38+A6j move.w d3,(word_FFFFAF9C).w move.b (byte_FFFF95DF).w,d3 cmp.b (XTEMP_STATUS_KE_HOT_MODE_STATOR_SPD_RATIO_MAX).l,d3 ; TCC Speed ratio value at which Hot_Mode_Stator_Entrance_Timer gets reset to zero, in hot mode stator temperature test ; Factor bls.s loc_59F6E bra.s loc_59ECE ; --------------------------------------------------------------------------- loc_59EF6: ; CODE XREF: sub_59E38+8j move.w (word_FFFF9590).w,d3 cmp.w (word_FFFFAFA2).w,d3 ble.s loc_59F08 move.w d3,(word_FFFFAFA2).w clr.w (word_FFFFAFA0).w loc_59F08: ; CODE XREF: sub_59E38+C6j move.w (word_FFFFAFA0).w,d3 cmp.w (XTEMP_STATUS_KE_HOT_MODE_EXIT_TIMER).l,d3 bls.s loc_59F42 move.w (word_FFFFAFA4).w,d3 moveq #$58,d4 ; 'X' cmp.b d3,d4 bls.s loc_59F22 clr.w d3 bra.s loc_59F34 ; --------------------------------------------------------------------------- loc_59F22: ; CODE XREF: sub_59E38+E4j cmpi.b #$C8,d3 bcc.s loc_59F30 sub.b d4,d3 ext.w d3 asl.w #5,d3 bra.s loc_59F34 ; --------------------------------------------------------------------------- loc_59F30: ; CODE XREF: sub_59E38+EEj move.w #$E00,d3 loc_59F34: ; CODE XREF: sub_59E38+E8j ; sub_59E38+F6j tbls.w (XTEMP_STATUS_KV_HOT_MODE_EXIT_TEMP_TABLE).l,d3 ; Determine transmission fluid sump temperature threshold to exit hot mode return to normal mode. ; Deg C cmp.w (word_FFFF9590).w,d3 bge.s loc_59F4E loc_59F42: ; CODE XREF: sub_59E38+DAj move.w (word_FFFF9590).w,d3 cmp.w (XTEMP_STATUS_KE_HOT_MODE_STATOR_EXIT_TEMP).l,d3 ; Transmission sump temperature threshold value to exit hot mode stator temperature test (static). ; Deg C bgt.s loc_59F58 loc_59F4E: ; CODE XREF: sub_59E38+108j bclr #7,(byte_FFFFAF99).w bra.w loc_59EB8 ; --------------------------------------------------------------------------- loc_59F58: ; CODE XREF: sub_59E38+114j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAFA0).w,d3 add.w $A(a2),d3 bcc.s loc_59F6A move.w #$FFFF,d3 loc_59F6A: ; CODE XREF: sub_59E38+12Cj move.w d3,(word_FFFFAFA0).w loc_59F6E: ; CODE XREF: sub_59E38+5Ej ; sub_59E38+7Cj ... move.l (sp)+,d0 rts ; End of function sub_59E38 ; =============== S U B R O U T I N E ======================================= sub_59F72: ; CODE XREF: sub_5A294p var_734A = -$734A movem.l d0-d1/a0-a1,-(sp) jsr sub_5A12E move.w (word_FFFF9590).w,d3 move.l d3,d4 addi.w #$36,d4 ; '6' move.l d4,d1 cmp.b (XTEMP_STATUS_KE_HOT_MODE_SUMP_TEMP_MIN).l,d1 ; Minimum transmission sump temperature value to enable hot mode sump temperature test. ; Deg C bcs.w loc_5A070 btst #5,(byte_FFFFAF99).w bne.s loc_59FFA jsr sub_5A2C0 lsr.b #1,d0 move.w (word_FFFF9590).w,d3 moveq #$36,d1 ; '6' add.b d1,d3 clr.w d4 cmpi.b #$8E,d3 bcc.s loc_59FB6 move.l d4,d3 bra.s loc_59FCC ; --------------------------------------------------------------------------- loc_59FB6: ; CODE XREF: sub_59F72+3Ej cmpi.b #$FE,d3 bcc.s loc_59FC8 andi.w #$FF,d3 asl.w #5,d3 subi.w #$11C0,d3 bra.s loc_59FCC ; --------------------------------------------------------------------------- loc_59FC8: ; CODE XREF: sub_59F72+48j move.w #$E00,d3 loc_59FCC: ; CODE XREF: sub_59F72+42j ; sub_59F72+54j tblu.b (XTEMP_STATUS_KV_HOT_MODE_BASE_DELTA_TABLE).l,d3 ; Determine base transmission fluid temperature rate of change during normal mode in order to enter transmission hot mode ; DegC/Min add.b d0,d3 bcc.s loc_59FDC move.b #$FF,d3 loc_59FDC: ; CODE XREF: sub_59F72+64j andi.w #$FF,d3 cmp.w (word_FFFFAFB4).w,d3 bgt.w loc_5A076 bset #5,(byte_FFFFAF99).w move.w (word_FFFF9590).w,(word_FFFFAFAA).w move.b d1,(byte_FFFFAFAC).w bra.s loc_5A076 ; --------------------------------------------------------------------------- loc_59FFA: ; CODE XREF: sub_59F72+26j clr.w d0 move.b (byte_FFFFAFAC).w,d0 cmp.w d4,d0 bcc.s loc_5A010 addi.b #$36,d3 ; '6' move.b d3,(byte_FFFFAFAC).w clr.w (word_FFFFAFA8).w loc_5A010: ; CODE XREF: sub_59F72+90j move.w (word_FFFFAFA8).w,d3 cmp.w (XTEMP_STATUS_KE_HOT_MODE_EXIT_TIMER).l,d3 bls.s loc_5A058 move.w (word_FFFFAFAA).w,d3 moveq #$58,d1 ; 'X' cmp.b d3,d1 bls.s loc_5A02A clr.w d3 bra.s loc_5A03C ; --------------------------------------------------------------------------- loc_5A02A: ; CODE XREF: sub_59F72+B2j cmpi.b #$C8,d3 bcc.s loc_5A038 sub.b d1,d3 ext.w d3 asl.w #5,d3 bra.s loc_5A03C ; --------------------------------------------------------------------------- loc_5A038: ; CODE XREF: sub_59F72+BCj move.w #$E00,d3 loc_5A03C: ; CODE XREF: sub_59F72+B6j ; sub_59F72+C4j tbls.w (XTEMP_STATUS_KV_HOT_MODE_EXIT_TEMP_TABLE).l,d3 ; Determine transmission fluid sump temperature threshold to exit hot mode return to normal mode. ; Deg C cmp.w (word_FFFF9590).w,d3 blt.s loc_5A058 bclr #5,(byte_FFFFAF99).w bset #6,(byte_FFFFAF99).w bra.s loc_5A076 ; --------------------------------------------------------------------------- loc_5A058: ; CODE XREF: sub_59F72+A8j ; sub_59F72+D6j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAFA8).w,d3 add.w $A(a2),d3 bcc.s loc_5A06A move.w #$FFFF,d3 loc_5A06A: ; CODE XREF: sub_59F72+F2j move.w d3,(word_FFFFAFA8).w bra.s loc_5A076 ; --------------------------------------------------------------------------- loc_5A070: ; CODE XREF: sub_59F72+1Cj bclr #5,(byte_FFFFAF99).w loc_5A076: ; CODE XREF: sub_59F72+72j ; sub_59F72+86j ... tst.b (byte_FFFFA7F9).w beq.s loc_5A082 bclr #6,(byte_FFFFAF99).w loc_5A082: ; CODE XREF: sub_59F72+108j btst #6,(byte_FFFFAF99).w beq.w loc_5A128 bclr #6,(byte_FFFFAF99).w move.b (XTEMP_STATUS_KE_HOT_MODE_DESIRED_PEAK_TEMP).l,d3 ; Desired hot mod peak transmission fluid sump temperature ; Deg C sub.b (byte_FFFFAFAC).w,d3 addi.b #-$80,d3 clr.b d4 andi.w #$FF,d3 asl.w #4,d3 tbls.b (XTEMP_STATUS_KV_HOT_MODE_ADAPT_MOD_TABLE).l,d3 ; Hot mode adaptive outputs modifier table. ; DegC_per_Min_vs_DegC_Delta_Table move.b d3,(byte_FFFFAFAD).w btst #4,(byte_FFFFA2A1).w bne.s loc_5A128 move.w (word_FFFFAFAA).w,d3 cmp.w (word_8A80A).l,d3 blt.s loc_5A0E4 tst.w d3 blt.s loc_5A0E4 cmpi.w #$FF,d3 bhi.s loc_5A0E0 lsr.b #3,d3 subi.b #$B,d3 bcs.s loc_5A0E4 cmpi.b #$E,d3 bls.s loc_5A0E6 loc_5A0E0: ; CODE XREF: sub_59F72+15Ej moveq #$E,d3 bra.s loc_5A0E6 ; --------------------------------------------------------------------------- loc_5A0E4: ; CODE XREF: sub_59F72+154j ; sub_59F72+158j ... move.l d4,d3 loc_5A0E6: ; CODE XREF: sub_59F72+16Cj ; sub_59F72+170j move.b (byte_FFFFAFAD).w,d0 ext.w d0 clr.l d1 move.b d3,d1 clr.w d4 move.b -$733A(d1.w),d4 add.w d0,d4 tst.w d4 blt.s loc_5A10A cmpi.w #$FF,d4 bls.s loc_5A10C move.b #$FF,d4 bra.s loc_5A10C ; --------------------------------------------------------------------------- loc_5A10A: ; CODE XREF: sub_59F72+18Aj clr.b d4 loc_5A10C: ; CODE XREF: sub_59F72+190j ; sub_59F72+196j andi.w #$FF,d3 move.b d4,$10+var_734A(d3.w) movea.l #unk_FF8CC6,a0 moveq #$F,d0 jsr sub_2654C move.w d0,(word_FFFF8CC4).w loc_5A128: ; CODE XREF: sub_59F72+116j ; sub_59F72+148j movem.l (sp)+,d0-d1/a0-a1 rts ; End of function sub_59F72 ; =============== S U B R O U T I N E ======================================= sub_5A12E: ; CODE XREF: sub_59F72+4p move.l d0,-(sp) movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAFAE).w,d3 add.w $A(a2),d3 move.w d3,(word_FFFFAFAE).w cmp.w (word_8A810).l,d3 bcs.w loc_5A258 clr.w (word_FFFFAFAE).w btst #4,(byte_FFFFAF99).w bne.s loc_5A16C move.w (word_FFFF9596).w,d3 ext.l d3 asl.l #8,d3 move.l d3,(dword_FFFFAFB0).w bset #4,(byte_FFFFAF99).w bra.w loc_5A258 ; --------------------------------------------------------------------------- loc_5A16C: ; CODE XREF: sub_5A12E+26j move.w (word_FFFF9596).w,d0 ext.l d0 asl.l #8,d0 sub.l (dword_FFFFAFB0).w,d0 cmpi.l #$FFFF8000,d0 blt.s loc_5A194 cmpi.l #$7FFF,d0 bgt.s loc_5A18E cmpi.w #$7FFE,d0 ble.s loc_5A198 loc_5A18E: ; CODE XREF: sub_5A12E+58j move.w #$7FFE,d0 bra.s loc_5A198 ; --------------------------------------------------------------------------- loc_5A194: ; CODE XREF: sub_5A12E+50j move.w #$8000,d0 loc_5A198: ; CODE XREF: sub_5A12E+5Ej ; sub_5A12E+64j clr.l d3 move.w (XTEMP_STATUS_KE_KALMAN_TEMPERATURE_GAIN).l,d3 ; Kalman filter gain of transmission sump temperature. ; Gain move.l d0,d4 ext.l d4 muls.l d3,d4 moveq #5,d5 muls.l d4,d3:d5 divs.l #unk_10000,d3:d5 move.w (word_FFFFAFB4).w,d4 ext.l d4 muls.l #unk_11111,d4 bpl.s loc_5A1C8 addq.l #1,d4 loc_5A1C8: ; CODE XREF: sub_5A12E+96j asr.l #1,d4 clr.l d3 move.w (word_8A80E).l,d3 divs.l d3,d4 bvs.s loc_5A1FA add.l (dword_FFFFAFB0).w,d4 bvs.s loc_5A1E2 add.l d5,d4 bvc.s loc_5A1E6 loc_5A1E2: ; CODE XREF: sub_5A12E+AEj bmi.s loc_5A1FA bra.s loc_5A202 ; --------------------------------------------------------------------------- loc_5A1E6: ; CODE XREF: sub_5A12E+B2j cmpi.l #unk_19E50,d4 bgt.s loc_5A1FA cmpi.l #$FFFFCA00,d4 blt.s loc_5A202 move.l d4,d3 bra.s loc_5A208 ; --------------------------------------------------------------------------- loc_5A1FA: ; CODE XREF: sub_5A12E+A8j ; sub_5A12E:loc_5A1E2j ... move.l #unk_19E50,d3 bra.s loc_5A208 ; --------------------------------------------------------------------------- loc_5A202: ; CODE XREF: sub_5A12E+B6j ; sub_5A12E+C6j move.l #$FFFFCA00,d3 loc_5A208: ; CODE XREF: sub_5A12E+CAj ; sub_5A12E+D2j move.l d3,(dword_FFFFAFB0).w clr.l d3 move.w (XTEMP_STATUS_KE_KALMAN_RATE_OF_CHANGE_GAIN).l,d3 ; Kalman filter rate of change of transmission sump temperature. ; Inverse_Minute ext.l d0 muls.l d3,d0 divs.l #$8888,d0 cmpi.l #$FFFF8000,d0 blt.s loc_5A250 cmpi.l #$7FFF,d0 bgt.s loc_5A24A add.w (word_FFFFAFB4).w,d0 bvc.s loc_5A23C bmi.s loc_5A24A bra.s loc_5A250 ; --------------------------------------------------------------------------- loc_5A23C: ; CODE XREF: sub_5A12E+108j cmpi.w #$FF,d0 bgt.s loc_5A24A cmpi.w #$FF01,d0 blt.s loc_5A250 bra.s loc_5A254 ; --------------------------------------------------------------------------- loc_5A24A: ; CODE XREF: sub_5A12E+102j ; sub_5A12E+10Aj ... move.w #$FF,d0 bra.s loc_5A254 ; --------------------------------------------------------------------------- loc_5A250: ; CODE XREF: sub_5A12E+FAj ; sub_5A12E+10Cj ... move.w #$FF01,d0 loc_5A254: ; CODE XREF: sub_5A12E+11Aj ; sub_5A12E+120j move.w d0,(word_FFFFAFB4).w loc_5A258: ; CODE XREF: sub_5A12E+18j ; sub_5A12E+3Aj move.l (sp)+,d0 rts ; End of function sub_5A12E ; =============== S U B R O U T I N E ======================================= sub_5A25C: ; CODE XREF: DoLoopF+37Cp ; sub_842B2+180p jsr sub_5A294 jsr sub_5A270 jsr sub_59E04 rts ; End of function sub_5A25C ; =============== S U B R O U T I N E ======================================= sub_5A270: ; CODE XREF: sub_5A25C+6p move.w (word_FFFF9590).w,d3 cmp.w (XTEMP_STATUS_KE_COLD_TRANS_LOW_THRESHOLD).l,d3 ; When Transmission temperature falls below this value, the transmission cold indicator is set. ; Deg C bge.s loc_5A284 bset #6,(byte_FFFFAF98).w bra.s locret_5A292 ; --------------------------------------------------------------------------- loc_5A284: ; CODE XREF: sub_5A270+Aj cmp.w (XTEMP_STATUS_KE_COLD_TRANS_HIGH_THRESHOLD).l,d3 ; When Transmission temperature rises above this value, the transmission cold indicator is cleared. ; Deg C ble.s locret_5A292 bclr #6,(byte_FFFFAF98).w locret_5A292: ; CODE XREF: sub_5A270+12j ; sub_5A270+1Aj rts ; End of function sub_5A270 ; =============== S U B R O U T I N E ======================================= sub_5A294: ; CODE XREF: sub_5A25Cp jsr sub_59F72 jsr sub_59E38 btst #5,(byte_FFFFAF99).w bne.s loc_5A2B0 btst #7,(byte_FFFFAF99).w beq.s loc_5A2B8 loc_5A2B0: ; CODE XREF: sub_5A294+12j bset #7,(byte_FFFFAF98).w bra.s locret_5A2BE ; --------------------------------------------------------------------------- loc_5A2B8: ; CODE XREF: sub_5A294+1Aj bclr #7,(byte_FFFFAF98).w locret_5A2BE: ; CODE XREF: sub_5A294+22j rts ; End of function sub_5A294 ; =============== S U B R O U T I N E ======================================= sub_5A2C0: ; CODE XREF: sub_59F72+28p move.w (word_FFFF9590).w,d0 addi.b #$36,d0 ; '6' clr.w d3 cmpi.b #$8E,d0 bcc.s loc_5A2D4 move.l d3,d0 bra.s loc_5A2EA ; --------------------------------------------------------------------------- loc_5A2D4: ; CODE XREF: sub_5A2C0+Ej cmpi.b #$FE,d0 bcc.s loc_5A2E6 andi.w #$FF,d0 asl.w #5,d0 subi.w #$11C0,d0 bra.s loc_5A2EA ; --------------------------------------------------------------------------- loc_5A2E6: ; CODE XREF: sub_5A2C0+18j move.w #$E00,d0 loc_5A2EA: ; CODE XREF: sub_5A2C0+12j ; sub_5A2C0+24j tblu.b (byte_FFFF8CC6).w,d0 rts ; End of function sub_5A2C0 ; =============== S U B R O U T I N E ======================================= sub_5A2F2: ; CODE XREF: OS1:00028C62p movem.l d0/a0-a1,-(sp) move.w (XTEMP_STATUS_KE_TCC_TEMP_DIAG_HIGH_THRESH).l,(word_FFFFAF9A).w ; When trans. temperature rises below this value, the TCC Off diagnostic override is set. ; Deg C movea.l #unk_FF8CC6,a1 movea.l a1,a0 moveq #$F,d0 jsr sub_2654C cmp.w (word_FFFF8CC4).w,d0 beq.s loc_5A330 lea (byte_FFFF8CC6).w,a0 moveq #6,d0 loc_5A31A: ; CODE XREF: sub_5A2F2+2Aj clr.w (a0)+ dbf d0,loc_5A31A clr.b (a0) movea.l a1,a0 moveq #$F,d0 jsr sub_2654C move.w d0,(word_FFFF8CC4).w loc_5A330: ; CODE XREF: sub_5A2F2+20j movem.l (sp)+,d0/a0-a1 rts ; End of function sub_5A2F2 ; =============== S U B R O U T I N E ======================================= sub_5A336: ; CODE XREF: sub_4EE7Ap tst.b (byte_FFFF958A).w beq.w loc_5A3C4 move.b (byte_FFFF95DD).w,d3 cmpi.b #4,d3 beq.s loc_5A354 cmpi.b #2,d3 beq.s loc_5A354 cmpi.b #5,d3 bne.s loc_5A358 loc_5A354: ; CODE XREF: sub_5A336+10j ; sub_5A336+16j moveq #1,d3 bra.s loc_5A35A ; --------------------------------------------------------------------------- loc_5A358: ; CODE XREF: sub_5A336+1Cj clr.b d3 loc_5A35A: ; CODE XREF: sub_5A336+20j tst.b d3 beq.s loc_5A37E move.w (word_FFFF9584).w,d3 cmp.w (XTCC_CONTROL_KE_NEG_DELTA_ON_THROTTLE_THRESH).l,d3 bls.w loc_5A4C2 bset #4,(byte_FFFFAC06).w move.w (XTCC_CONTROL_KE_NEGDELTHR_OFF_TIME_FROM_ECCC).l,(word_FFFFAC0C).w ; Amount of time off mode is selected after negative delta throttle and previously TCC is On or applying. ; Sec bra.w loc_5A4C2 ; --------------------------------------------------------------------------- loc_5A37E: ; CODE XREF: sub_5A336+26j move.w (word_FFFF9584).w,d3 cmp.w (XTCC_CONTROL_KE_NEG_DELTA_OFF_THROTTLE_THRESH).l,d3 bls.w loc_5A4C2 move.w (XTCC_CONTROL_KE_NEGDELTHR_OFF_TIME_FROM_OFF).l,d3 ; Amount of time off mode is selected after negative delta throttle and previously TCC is Off or releasing. ; Sec move.w (word_FFFFAC0E).w,d4 cmp.w d3,d4 bls.s loc_5A3A0 move.w d4,(word_FFFFAC0C).w bra.s loc_5A3AA ; --------------------------------------------------------------------------- loc_5A3A0: ; CODE XREF: sub_5A336+62j cmp.w (word_FFFFAC0C).w,d3 bls.s loc_5A3AA move.w d3,(word_FFFFAC0C).w loc_5A3AA: ; CODE XREF: sub_5A336+68j ; sub_5A336+6Ej clr.w (word_FFFFAC0E).w bclr #3,(byte_FFFFAC06).w bclr #2,(byte_FFFFAC06).w bset #4,(byte_FFFFAC06).w bra.w loc_5A4C2 ; --------------------------------------------------------------------------- loc_5A3C4: ; CODE XREF: sub_5A336+4j tst.b (byte_FFFFAC08).w beq.s loc_5A42E move.b (byte_FFFF95DD).w,d3 cmpi.b #4,d3 beq.s loc_5A3E0 cmpi.b #2,d3 beq.s loc_5A3E0 cmpi.b #5,d3 bne.s loc_5A3E4 loc_5A3E0: ; CODE XREF: sub_5A336+9Cj ; sub_5A336+A2j moveq #1,d3 bra.s loc_5A3E6 ; --------------------------------------------------------------------------- loc_5A3E4: ; CODE XREF: sub_5A336+A8j clr.b d3 loc_5A3E6: ; CODE XREF: sub_5A336+ACj tst.b d3 beq.s loc_5A42E move.w (word_FFFF95DA).w,d3 cmp.w (XTCC_CONTROL_KE_POS_DELTA_THROT_SPEED).l,d3 bcs.s loc_5A40C move.w (word_FFFF9586).w,d3 cmp.w (XTCC_CONTROL_KE_POS_DEL_THR_ON_THRESH_HIMPH).l,d3 blt.s loc_5A42E move.w (XTCC_CONTROL_KE_POSDELTHR_HIMPH_OFF_TIME_ECCC).l,(word_FFFFAC0E).w bra.s loc_5A420 ; --------------------------------------------------------------------------- loc_5A40C: ; CODE XREF: sub_5A336+BEj move.w (word_FFFF9586).w,d3 cmp.w (XTCC_CONTROL_KE_POS_DEL_THR_ON_THRESH_LOMPH).l,d3 blt.s loc_5A42E move.w (XTCC_CONTROL_KE_POSDELTHR_LOMPH_OFF_TIME_ECCC).l,(word_FFFFAC0E).w loc_5A420: ; CODE XREF: sub_5A336+D4j move.w (XTCC_CONTROL_KE_POSDELTHR_RELEASE_TIME).l,(word_FFFFAC10).w ; Amount of release time after positive delta throttle condition has occurred and previously TCC is On or Releasing. ; Sec bset #2,(byte_FFFFAC06).w loc_5A42E: ; CODE XREF: sub_5A336+92j ; sub_5A336+B2j ... move.b (byte_FFFF95DD).w,d3 beq.s loc_5A440 cmpi.b #3,d3 beq.s loc_5A440 cmpi.b #1,d3 bne.s loc_5A444 loc_5A440: ; CODE XREF: sub_5A336+FCj ; sub_5A336+102j moveq #1,d3 bra.s loc_5A446 ; --------------------------------------------------------------------------- loc_5A444: ; CODE XREF: sub_5A336+108j clr.b d3 loc_5A446: ; CODE XREF: sub_5A336+10Cj tst.b d3 beq.s loc_5A4C2 move.w (word_FFFF95DA).w,d3 cmp.w (XTCC_CONTROL_KE_POS_DELTA_THROT_SPEED).l,d3 bcs.s loc_5A476 move.w (word_FFFF9586).w,d3 cmp.w (XTCC_CONTROL_KE_POS_DEL_THR_OFF_THRESH_HIMPH).l,d3 blt.s loc_5A4C2 move.w (XTCC_CONTROL_KE_POSDELTHR_HIMPH_OFF_TIME_OFF).l,d3 move.w (word_FFFFAC0C).w,d4 cmp.w d3,d4 bls.s loc_5A490 loc_5A470: ; CODE XREF: sub_5A336+158j move.w d4,(word_FFFFAC0E).w bra.s loc_5A4C2 ; --------------------------------------------------------------------------- loc_5A476: ; CODE XREF: sub_5A336+11Ej move.w (word_FFFF9586).w,d3 cmp.w (XTCC_CONTROL_KE_POS_DEL_THR_OFF_THRESH_LOMPH).l,d3 blt.s loc_5A4C2 move.w (XTCC_CONTROL_KE_POSDELTHR_LOMPH_OFF_TIME_OFF).l,d3 move.w (word_FFFFAC0C).w,d4 cmp.w d3,d4 bhi.s loc_5A470 loc_5A490: ; CODE XREF: sub_5A336+138j cmp.w (word_FFFFAC0E).w,d3 bls.s loc_5A49A move.w d3,(word_FFFFAC0E).w loc_5A49A: ; CODE XREF: sub_5A336+15Ej bclr #4,(byte_FFFFAC06).w clr.w (word_FFFFAC0C).w cmpi.b #1,(byte_FFFF95DD).w bne.s loc_5A4C2 btst #2,(byte_FFFFAC06).w bne.s loc_5A4C2 move.w (XTCC_CONTROL_KE_POSDELTHR_RELEASE_TIME).l,(word_FFFFAC10).w ; Amount of release time after positive delta throttle condition has occurred and previously TCC is On or Releasing. ; Sec bset #2,(byte_FFFFAC06).w loc_5A4C2: ; CODE XREF: sub_5A336+32j ; sub_5A336+44j ... movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAC0C).w,d3 sub.w $A(a2),d3 bcc.s loc_5A4D2 clr.w d3 loc_5A4D2: ; CODE XREF: sub_5A336+198j move.w d3,(word_FFFFAC0C).w tst.w d3 bne.s loc_5A4E0 bclr #4,(byte_FFFFAC06).w loc_5A4E0: ; CODE XREF: sub_5A336+1A2j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAC10).w,d3 sub.w $A(a2),d3 bcc.s loc_5A4F0 clr.w d3 loc_5A4F0: ; CODE XREF: sub_5A336+1B6j move.w d3,(word_FFFFAC10).w tst.w d3 beq.s loc_5A500 btst #4,(word_FFFFAD82).w beq.s loc_5A510 loc_5A500: ; CODE XREF: sub_5A336+1C0j clr.w (word_FFFFAC10).w bclr #2,(byte_FFFFAC06).w bset #3,(byte_FFFFAC06).w loc_5A510: ; CODE XREF: sub_5A336+1C8j tst.w (word_FFFFAC0E).w bne.s loc_5A51E bclr #3,(byte_FFFFAC06).w bra.s locret_5A53A ; --------------------------------------------------------------------------- loc_5A51E: ; CODE XREF: sub_5A336+1DEj btst #3,(byte_FFFFAC06).w beq.s locret_5A53A movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAC0E).w,d3 sub.w $A(a2),d3 bcc.s loc_5A536 clr.w d3 loc_5A536: ; CODE XREF: sub_5A336+1FCj move.w d3,(word_FFFFAC0E).w locret_5A53A: ; CODE XREF: sub_5A336+1E6j ; sub_5A336+1EEj rts ; End of function sub_5A336 ; =============== S U B R O U T I N E ======================================= sub_5A53C: ; CODE XREF: sub_5A582:loc_5A5DAp ; sub_5B542+4p move.w (word_FFFFA2C6).w,d0 bne.s locret_5A580 move.w (word_FFFF95AC).w,d0 clr.w d3 move.b (byte_FFFF95DC).w,d3 movea.l off_8A6E0(d3.w*4),a3 clr.w d3 cmpi.w #$7D0,d0 bcc.s loc_5A560 move.l d3,d0 bra.s loc_5A57C ; --------------------------------------------------------------------------- loc_5A560: ; CODE XREF: sub_5A53C+1Ej cmpi.w #$2710,d0 bcc.s loc_5A578 andi.l #$FFFF,d0 asl.l #5,d0 divu.w #$7D,d0 ; '}' subi.w #$200,d0 bra.s loc_5A57C ; --------------------------------------------------------------------------- loc_5A578: ; CODE XREF: sub_5A53C+28j move.w #$800,d0 loc_5A57C: ; CODE XREF: sub_5A53C+22j ; sub_5A53C+3Aj tblu.w (a3),d0 locret_5A580: ; CODE XREF: sub_5A53C+4j rts ; End of function sub_5A53C ; =============== S U B R O U T I N E ======================================= sub_5A582: ; CODE XREF: sub_4EE7A+6p movem.l d0-d2,-(sp) move.b (byte_FFFF95E9).w,d3 cmpi.b #1,d3 bcs.s loc_5A5AC cmpi.b #3,d3 bhi.s loc_5A5AC asl.b #2,d3 add.b (byte_FFFF95DC).w,d3 andi.w #$FF,d3 move.b XTCC_CONTROL_KE_ALT_APPLY_DELAY_TIME(d3.w),(byte_FFFFAC12).w ; Extend apply delay by this at altitude. ; Seconds bra.s loc_5A5B0 ; --------------------------------------------------------------------------- loc_5A5AC: ; CODE XREF: sub_5A582+Cj ; sub_5A582+12j clr.b (byte_FFFFAC12).w loc_5A5B0: ; CODE XREF: sub_5A582+28j move.b (byte_FFFFAC12).w,d4 move.l d4,d2 and.b (XTCC_CONTROL_KE_COAST_MODE_ENABLE).l,d2 ; Enables the coast mode conditions. ; Boolean beq.s loc_5A628 move.w (word_FFFF9582).w,d1 cmp.w (XTCC_CONTROL_KE_TCC_COAST_THROTTLE_LOW).l,d1 ; Enter Coast Mode if Throttle < KE_Coast_Slip_Low and no Minimum Throttle. ; Percent bcc.s loc_5A628 btst #3,(byte_FFFFAC0B).w beq.s loc_5A628 move.w (word_FFFF95BC).w,d1 bge.s loc_5A5DA neg.w d1 loc_5A5DA: ; CODE XREF: sub_5A582+54j jsr sub_5A53C add.w (XTCC_CONTROL_KE_TCC_APPLY_SLIP_DIFFERENCE).l,d0 ; TCC apply is completed when KE_TCC_Apply_Slip_Difference + TCC_On_Reference_Slip >= Slip. ; RPM bvc.s loc_5A5EC move.w #$7FFF,d0 loc_5A5EC: ; CODE XREF: sub_5A582+64j cmp.w d0,d1 bgt.s loc_5A61A move.b (byte_FFFF95DD).w,d3 cmpi.b #4,d3 beq.s loc_5A600 cmpi.b #5,d3 bne.s loc_5A610 loc_5A600: ; CODE XREF: sub_5A582+76j bset #7,(byte_FFFFAC06).w bclr #6,(byte_FFFFAC06).w bra.w loc_5A69A ; --------------------------------------------------------------------------- loc_5A610: ; CODE XREF: sub_5A582+7Cj ; sub_5A582+E8j ... bclr #7,(byte_FFFFAC06).w bra.w loc_5A69A ; --------------------------------------------------------------------------- loc_5A61A: ; CODE XREF: sub_5A582+6Cj bclr #7,(byte_FFFFAC06).w bset #6,(byte_FFFFAC06).w bra.s loc_5A69A ; --------------------------------------------------------------------------- loc_5A628: ; CODE XREF: sub_5A582+3Aj ; sub_5A582+46j ... move.b (byte_FFFF95DD).w,d3 moveq #5,d5 cmp.b d3,d5 bne.s loc_5A64A move.w (word_FFFF9582).w,d0 cmp.w (XTCC_CONTROL_KE_TCC_COAST_THROTTLE_HIGH).l,d0 ; Exit Coast Mode if Throttle > KE_Coast_Slip_High. ; Percent bcc.s loc_5A666 tst.b d4 beq.s loc_5A666 btst #3,(byte_FFFFAC0B).w beq.s loc_5A666 loc_5A64A: ; CODE XREF: sub_5A582+AEj move.w (word_FFFF95BC).w,d4 cmp.w (XTCC_CONTROL_KE_COAST_SLIP_HIGH).l,d4 ; Maximum time in Coast Mode if Slip > KE_Coast_Slip_High. ; RPM_s blt.s loc_5A680 cmp.b d3,d5 bne.s loc_5A680 move.w (word_FFFFAC04).w,d3 cmp.w (XTCC_CONTROL_KE_COAST_STOP_TIME).l,d3 ; Maximum time in Coast Mode if Slip > KE_Coast_Slip_High. ; Seconds bcs.s loc_5A66C loc_5A666: ; CODE XREF: sub_5A582+BAj ; sub_5A582+BEj ... clr.w (word_FFFFAC04).w bra.s loc_5A610 ; --------------------------------------------------------------------------- loc_5A66C: ; CODE XREF: sub_5A582+E2j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_5A67A move.w #$FFFF,d3 loc_5A67A: ; CODE XREF: sub_5A582+F2j move.w d3,(word_FFFFAC04).w bra.s loc_5A69A ; --------------------------------------------------------------------------- loc_5A680: ; CODE XREF: sub_5A582+D2j ; sub_5A582+D6j clr.w (word_FFFFAC04).w bclr #6,(byte_FFFFAC06).w move.b (byte_FFFF95DD).w,d3 cmpi.b #4,d3 beq.s loc_5A69A cmp.b d3,d5 bne.w loc_5A610 loc_5A69A: ; CODE XREF: sub_5A582+8Aj ; sub_5A582+94j ... movem.l (sp)+,d0-d2 rts ; End of function sub_5A582 ; =============== S U B R O U T I N E ======================================= sub_5A6A0: ; CODE XREF: sub_4EE7A+12p move.l d0,-(sp) tst.b (byte_FFFFB3F3).w beq.s loc_5A6B0 bset #7,(dword_FFFFAD84+2).w bra.s loc_5A6B6 ; --------------------------------------------------------------------------- loc_5A6B0: ; CODE XREF: sub_5A6A0+6j bclr #7,(dword_FFFFAD84+2).w loc_5A6B6: ; CODE XREF: sub_5A6A0+Ej tst.b (byte_FFFF95DC).w bne.s loc_5A6C4 bset #2,(dword_FFFFAD84+3).w bra.s loc_5A6CA ; --------------------------------------------------------------------------- loc_5A6C4: ; CODE XREF: sub_5A6A0+1Aj bclr #2,(dword_FFFFAD84+3).w loc_5A6CA: ; CODE XREF: sub_5A6A0+22j tst.b (byte_FFFFA3B6).w beq.s loc_5A6F2 btst #7,(byte_FFFFAF98).w bne.s loc_5A6E4 bset #1,(dword_FFFFAD84+3).w clr.b (byte_FFFFAC07).w bra.s loc_5A6FC ; --------------------------------------------------------------------------- loc_5A6E4: ; CODE XREF: sub_5A6A0+36j bclr #1,(dword_FFFFAD84+3).w move.b #1,(byte_FFFFAC07).w bra.s loc_5A6FC ; --------------------------------------------------------------------------- loc_5A6F2: ; CODE XREF: sub_5A6A0+2Ej clr.b (byte_FFFFAC07).w bclr #1,(dword_FFFFAD84+3).w loc_5A6FC: ; CODE XREF: sub_5A6A0+42j ; sub_5A6A0+50j btst #7,(byte_FFFF95E3).w beq.s loc_5A70C bclr #0,(dword_FFFFAD84+3).w bra.s loc_5A712 ; --------------------------------------------------------------------------- loc_5A70C: ; CODE XREF: sub_5A6A0+62j bset #0,(dword_FFFFAD84+3).w loc_5A712: ; CODE XREF: sub_5A6A0+6Aj btst #6,(byte_FFFF95E4).w beq.s loc_5A722 bset #3,(dword_FFFFAD84+3).w bra.s loc_5A728 ; --------------------------------------------------------------------------- loc_5A722: ; CODE XREF: sub_5A6A0+78j bclr #3,(dword_FFFFAD84+3).w loc_5A728: ; CODE XREF: sub_5A6A0+80j btst #6,(byte_FFFFAF98).w beq.s loc_5A738 bset #4,(dword_FFFFAD84+3).w bra.s loc_5A73E ; --------------------------------------------------------------------------- loc_5A738: ; CODE XREF: sub_5A6A0+8Ej bclr #4,(dword_FFFFAD84+3).w loc_5A73E: ; CODE XREF: sub_5A6A0+96j move.b (byte_FFFFB02B).w,d3 moveq #1,d4 cmp.b d3,d4 beq.s loc_5A768 move.w (word_FFFF9582).w,d5 cmp.w (XTCC_CONTROL_KE_TCC_BRAKE_THROTTLE_HIGH).l,d5 bcs.s loc_5A768 move.w (word_FFFF95DA).w,d5 cmp.w (XTCC_CONTROL_KE_TCC_BRAKE_VEHICLE_SPEED_HIGH).l,d5 bcs.s loc_5A768 bclr #4,(byte_FFFFAC0B).w bra.s loc_5A78A ; --------------------------------------------------------------------------- loc_5A768: ; CODE XREF: sub_5A6A0+A6j ; sub_5A6A0+B2j ... cmp.b d3,d4 beq.s loc_5A784 move.w (word_FFFF9582).w,d3 cmp.w (XTCC_CONTROL_KE_TCC_BRAKE_THROTTLE_LOW).l,d3 bls.s loc_5A784 move.w (word_FFFF95DA).w,d3 cmp.w (XTCC_CONTROL_KE_TCC_BRAKE_VEHICLE_SPEED_LOW).l,d3 bhi.s loc_5A78A loc_5A784: ; CODE XREF: sub_5A6A0+CAj ; sub_5A6A0+D6j bset #4,(byte_FFFFAC0B).w loc_5A78A: ; CODE XREF: sub_5A6A0+C6j ; sub_5A6A0+E2j tst.b (byte_FFFFB3F2).w beq.s loc_5A798 bclr #5,(byte_FFFFAC06).w bra.s loc_5A7AC ; --------------------------------------------------------------------------- loc_5A798: ; CODE XREF: sub_5A6A0+EEj bclr #5,(byte_FFFFAC06).w btst #4,(byte_FFFFAC0B).w beq.s loc_5A7AC bset #5,(byte_FFFFAC06).w loc_5A7AC: ; CODE XREF: sub_5A6A0+F6j ; sub_5A6A0+104j btst #7,(byte_FFFF95E2).w beq.s loc_5A7D4 btst #5,(byte_FFFFAC06).w beq.s loc_5A7D4 cmpi.b #5,(byte_FFFF95DD).w bne.s loc_5A7CC tst.b (XTCC_CONTROL_KE_TCC_COAST_WHILE_BRAKE_ENGAGED).l bne.s loc_5A7D4 loc_5A7CC: ; CODE XREF: sub_5A6A0+122j bset #5,(dword_FFFFAD84+3).w bra.s loc_5A7DA ; --------------------------------------------------------------------------- loc_5A7D4: ; CODE XREF: sub_5A6A0+112j ; sub_5A6A0+11Aj ... bclr #5,(dword_FFFFAD84+3).w loc_5A7DA: ; CODE XREF: sub_5A6A0+132j tst.b (byte_FFFFAC69).w beq.s loc_5A7E8 bset #6,(dword_FFFFAD84+3).w bra.s loc_5A7EE ; --------------------------------------------------------------------------- loc_5A7E8: ; CODE XREF: sub_5A6A0+13Ej bclr #6,(dword_FFFFAD84+3).w loc_5A7EE: ; CODE XREF: sub_5A6A0+146j tst.b (byte_FFFFA664).w beq.s loc_5A800 bset #0,(dword_FFFFAD84+1).w clr.b (byte_FFFFA664).w bra.s loc_5A806 ; --------------------------------------------------------------------------- loc_5A800: ; CODE XREF: sub_5A6A0+152j bclr #0,(dword_FFFFAD84+1).w loc_5A806: ; CODE XREF: sub_5A6A0+15Ej btst #6,(byte_FFFF95E3).w beq.s loc_5A816 bset #7,(dword_FFFFAD84+3).w bra.s loc_5A81C ; --------------------------------------------------------------------------- loc_5A816: ; CODE XREF: sub_5A6A0+16Cj bclr #7,(dword_FFFFAD84+3).w loc_5A81C: ; CODE XREF: sub_5A6A0+174j bclr #6,(word_FFFFAD82).w move.w (word_FFFF95DA).w,d3 cmp.w (XTCC_CONTROL_KE_MIN_THROTTLE_SPEED_LOW).l,d3 ; When vehicle speed is less than this, use min throttle threshold 1. ; MPH bcc.s loc_5A836 bset #7,(byte_FFFFAC0A).w bra.s loc_5A844 ; --------------------------------------------------------------------------- loc_5A836: ; CODE XREF: sub_5A6A0+18Cj cmp.w (XTCC_CONTROL_KE_MIN_THROTTLE_SPEED_HIGH).l,d3 ; When vehicle speed is greater than this, use min throttle threshold 2. ; MPH bls.s loc_5A844 bclr #7,(byte_FFFFAC0A).w loc_5A844: ; CODE XREF: sub_5A6A0+194j ; sub_5A6A0+19Cj btst #7,(byte_FFFFAC0A).w beq.s loc_5A878 btst #6,(byte_FFFF95E5).w beq.s loc_5A86C move.w (word_FFFF9582).w,d3 cmp.w (XTCC_CONTROL_KE_MIN_THROTTLE_1_HIGH_THRESHOLD).l,d3 ; Exit minimum throttle mode when throttle is above this. ; Percent sls d3 neg.b d3 beq.s loc_5A89E loc_5A864: ; CODE XREF: sub_5A6A0+1FCj bset #6,(byte_FFFF95E5).w bra.s loc_5A8A4 ; --------------------------------------------------------------------------- loc_5A86C: ; CODE XREF: sub_5A6A0+1B2j move.w (word_FFFF9582).w,d3 cmp.w (XTCC_CONTROL_KE_MIN_THROTTLE_1_LOW_THRESHOLD).l,d3 ; Enter minimum throttle mode when throttle is below this. ; Percent bra.s loc_5A898 ; --------------------------------------------------------------------------- loc_5A878: ; CODE XREF: sub_5A6A0+1AAj btst #6,(byte_FFFF95E5).w beq.s loc_5A88E move.w (word_FFFF9582).w,d3 cmp.w (XTCC_CONTROL_KE_MIN_THROTTLE_2_HIGH_THRESHOLD).l,d3 ; Exit minimum throttle mode when throttle is above this. ; Percent sls d3 bra.s loc_5A89A ; --------------------------------------------------------------------------- loc_5A88E: ; CODE XREF: sub_5A6A0+1DEj move.w (word_FFFF9582).w,d3 cmp.w (XTCC_CONTROL_KE_MIN_THROTTLE_2_LOW_THRESHOLD).l,d3 ; Enter minimum throttle mode when throttle is below this. ; Percent loc_5A898: ; CODE XREF: sub_5A6A0+1D6j scs d3 loc_5A89A: ; CODE XREF: sub_5A6A0+1ECj neg.b d3 bne.s loc_5A864 loc_5A89E: ; CODE XREF: sub_5A6A0+1C2j bclr #6,(byte_FFFF95E5).w loc_5A8A4: ; CODE XREF: sub_5A6A0+1CAj move.w (word_FFFF95DA).w,d3 cmp.w (XTCC_CONTROL_KE_COAST_VEH_SPD_HIGH).l,d3 ; Output Speed must exceed this value to meet coast speed conditions. ; MPH bls.s loc_5A8B8 bset #3,(byte_FFFFAC0B).w bra.s loc_5A8C6 ; --------------------------------------------------------------------------- loc_5A8B8: ; CODE XREF: sub_5A6A0+20Ej cmp.w (XTCC_CONTROL_KE_COAST_VEH_SPD_LOW).l,d3 ; Minimum Output Speed to meet coast speed conditions. ; MPH bhi.s loc_5A8C6 bclr #3,(byte_FFFFAC0B).w loc_5A8C6: ; CODE XREF: sub_5A6A0+216j ; sub_5A6A0+21Ej move.b (byte_FFFF95DD).w,d3 beq.s loc_5A8EA cmpi.b #6,d3 beq.s loc_5A8EA tst.b (XTCC_CONTROL_KE_COAST_MODE_ENABLE).l ; Enables the coast mode conditions. ; Boolean beq.s loc_5A8EA btst #3,(byte_FFFFAC0B).w beq.s loc_5A8EA tst.b (byte_FFFFAC12).w bne.w loc_5A96C loc_5A8EA: ; CODE XREF: sub_5A6A0+22Aj ; sub_5A6A0+230j ... btst #6,(byte_FFFF95E5).w beq.s loc_5A960 bset #0,(dword_FFFFAD84+2).w btst #1,(byte_FFFFAC06).w bne.s loc_5A96C move.b (byte_FFFF95DD).w,d3 moveq #4,d5 cmp.b d3,d5 beq.s loc_5A916 cmpi.b #2,d3 beq.s loc_5A916 cmpi.b #5,d3 bne.s loc_5A91A loc_5A916: ; CODE XREF: sub_5A6A0+268j ; sub_5A6A0+26Ej move.l d4,d3 bra.s loc_5A91C ; --------------------------------------------------------------------------- loc_5A91A: ; CODE XREF: sub_5A6A0+274j clr.b d3 loc_5A91C: ; CODE XREF: sub_5A6A0+278j tst.b d3 bne.s loc_5A952 move.b (byte_FFFF95DD).w,d3 beq.s loc_5A92C cmpi.b #3,d3 bne.s loc_5A930 loc_5A92C: ; CODE XREF: sub_5A6A0+284j move.l d4,d3 bra.s loc_5A932 ; --------------------------------------------------------------------------- loc_5A930: ; CODE XREF: sub_5A6A0+28Aj clr.b d3 loc_5A932: ; CODE XREF: sub_5A6A0+28Ej tst.b d3 beq.s loc_5A96C btst #4,(byte_FFFFAC06).w beq.s loc_5A96C move.b (byte_FFFF95DE).w,d3 cmp.b d3,d5 beq.s loc_5A952 cmpi.b #2,d3 beq.s loc_5A952 cmpi.b #5,d3 bne.s loc_5A96C loc_5A952: ; CODE XREF: sub_5A6A0+27Ej ; sub_5A6A0+2A4j ... bset #6,(word_FFFFAD82).w bset #1,(byte_FFFFAC06).w bra.s loc_5A96C ; --------------------------------------------------------------------------- loc_5A960: ; CODE XREF: sub_5A6A0+250j bclr #0,(dword_FFFFAD84+2).w bclr #1,(byte_FFFFAC06).w loc_5A96C: ; CODE XREF: sub_5A6A0+246j ; sub_5A6A0+25Ej ... btst #4,(byte_FFFFAC06).w beq.s loc_5A97C bset #1,(dword_FFFFAD84+2).w bra.s loc_5A982 ; --------------------------------------------------------------------------- loc_5A97C: ; CODE XREF: sub_5A6A0+2D2j bclr #1,(dword_FFFFAD84+2).w loc_5A982: ; CODE XREF: sub_5A6A0+2DAj btst #3,(byte_FFFFAC06).w beq.s loc_5A992 bset #2,(dword_FFFFAD84+2).w bra.s loc_5A998 ; --------------------------------------------------------------------------- loc_5A992: ; CODE XREF: sub_5A6A0+2E8j bclr #2,(dword_FFFFAD84+2).w loc_5A998: ; CODE XREF: sub_5A6A0+2F0j btst #6,(byte_FFFFAC06).w beq.s loc_5A9A8 bset #6,(dword_FFFFAD84+2).w bra.s loc_5A9AE ; --------------------------------------------------------------------------- loc_5A9A8: ; CODE XREF: sub_5A6A0+2FEj bclr #6,(dword_FFFFAD84+2).w loc_5A9AE: ; CODE XREF: sub_5A6A0+306j moveq #2,d5 cmp.b (XTCC_CONTROL_KE_TCC_UPSHIFT_OFF).l,d5 bne.w loc_5AA3C bclr #3,(byte_FFFFAC0A).w btst #7,(byte_FFFF9BBA).w bne.s loc_5A9EC btst #5,(byte_FFFF9BBA).w beq.s loc_5AA08 clr.w d3 move.b (byte_FFFF95E9).w,d3 move.b (byte_FFFF95DC).w,d0 cmp.b X_SHIFT_KV_MAX_GEAR_TABLE(d3.w),d0 ; Maximum allowable gear based of range selector. ; Gear beq.s loc_5AA08 btst #3,(dword_FFFFAD84+2).w bne.s loc_5AA08 loc_5A9EC: ; CODE XREF: sub_5A6A0+326j clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w XTCC_CONTROL_KV_TCC_UPSHIFT_OFF_TIME(d3.w*2),d3 ; Specifies the amount of time that TCC will be turned off for when an upshift is desired. ; Seconds move.w d3,(word_FFFFAC02).w tst.w d3 beq.s loc_5AA08 bset #3,(dword_FFFFAD84+2).w loc_5AA08: ; CODE XREF: sub_5A6A0+32Ej ; sub_5A6A0+342j ... move.l (dword_FFFFAD84).w,d3 btst #$B,d3 beq.s loc_5AA3C tst.w (word_FFFFAC02).w bne.s loc_5AA28 move.l #$800,d0 not.l d0 and.l d3,d0 move.l d0,(dword_FFFFAD84).w bra.s loc_5AA3C ; --------------------------------------------------------------------------- loc_5AA28: ; CODE XREF: sub_5A6A0+376j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAC02).w,d3 sub.w $A(a2),d3 bcc.s loc_5AA38 clr.w d3 loc_5AA38: ; CODE XREF: sub_5A6A0+394j move.w d3,(word_FFFFAC02).w loc_5AA3C: ; CODE XREF: sub_5A6A0+316j ; sub_5A6A0+370j ... btst #6,(byte_FFFF9BBA).w bne.s loc_5AA54 btst #4,(byte_FFFF9BBA).w beq.s loc_5AA82 btst #4,(dword_FFFFAD84+2).w bne.s loc_5AA82 loc_5AA54: ; CODE XREF: sub_5A6A0+3A2j btst #1,(byte_FFFF9BBA).w beq.s loc_5AA6C cmpi.b #5,(byte_FFFF95DD).w bne.s loc_5AA6C tst.b (XTCC_CONTROL_KE_TCC_COAST_WHILE_MANUAL_DNSHFT).l ; If true, manual downshifts will continue to stay in coast mode if in coast mode at start of shift. ; T/F bne.s loc_5AA82 loc_5AA6C: ; CODE XREF: sub_5A6A0+3BAj ; sub_5A6A0+3C2j clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w XTCC_CONTROL_KV_TCC_DOWNSHIFT_OFF_TIME(d3.w*2),(word_FFFFAC02).w ; Specifies the amount of time that TCC will be turned off for when a downshift is desired. ; Seconds bset #4,(dword_FFFFAD84+2).w loc_5AA82: ; CODE XREF: sub_5A6A0+3AAj ; sub_5A6A0+3B2j ... move.l (dword_FFFFAD84).w,d3 btst #$C,d3 beq.s loc_5AAB6 tst.w (word_FFFFAC02).w bne.s loc_5AAA2 move.l #$1000,d0 not.l d0 and.l d3,d0 move.l d0,(dword_FFFFAD84).w bra.s loc_5AAB6 ; --------------------------------------------------------------------------- loc_5AAA2: ; CODE XREF: sub_5A6A0+3F0j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAC02).w,d3 sub.w $A(a2),d3 bcc.s loc_5AAB2 clr.w d3 loc_5AAB2: ; CODE XREF: sub_5A6A0+40Ej move.w d3,(word_FFFFAC02).w loc_5AAB6: ; CODE XREF: sub_5A6A0+3EAj ; sub_5A6A0+400j btst #7,(byte_FFFFAF98).w bne.s loc_5AB00 move.b (byte_FFFF95E9).w,d3 cmp.b d3,d4 beq.s loc_5AACA tst.b d3 bne.s loc_5AAD2 loc_5AACA: ; CODE XREF: sub_5A6A0+424j tst.b (XTCC_CONTROL_KE_TCC_LO_DRIVE2_OFF).l ; Enables Drive 2 Range Check. ; Boolean bne.s loc_5AAF8 loc_5AAD2: ; CODE XREF: sub_5A6A0+428j cmp.b d3,d5 bne.s loc_5AAE4 tst.b (XTCC_CONTROL_KE_TCC_DRIVE3_OFF).l ; Enables Drive 3 Range Check. ; Boolean beq.s loc_5AAE4 cmp.b (byte_FFFF95DC).w,d5 beq.s loc_5AAF8 loc_5AAE4: ; CODE XREF: sub_5A6A0+434j ; sub_5A6A0+43Cj cmpi.b #3,d3 bne.s loc_5AB00 tst.b (XTCC_CONTROL_KE_TCC_DRIVE4_OFF).l ; Enables Drive 4 Range Check. ; Boolean beq.s loc_5AB00 cmp.b (byte_FFFF95DC).w,d5 bne.s loc_5AB00 loc_5AAF8: ; CODE XREF: sub_5A6A0+430j ; sub_5A6A0+442j bset #5,(dword_FFFFAD84+2).w bra.s loc_5AB06 ; --------------------------------------------------------------------------- loc_5AB00: ; CODE XREF: sub_5A6A0+41Cj ; sub_5A6A0+448j ... bclr #5,(dword_FFFFAD84+2).w loc_5AB06: ; CODE XREF: sub_5A6A0+45Ej clr.l d3 move.l (dword_FFFFAD84).w,d0 eor.l d3,d0 andi.l #$1FFFF,d0 beq.s loc_5AB1E bset #7,(word_FFFFAD82).w bra.s loc_5AB24 ; --------------------------------------------------------------------------- loc_5AB1E: ; CODE XREF: sub_5A6A0+474j bclr #7,(word_FFFFAD82).w loc_5AB24: ; CODE XREF: sub_5A6A0+47Cj btst #7,(word_FFFFAD82).w beq.s loc_5AB3C btst #0,(dword_FFFFAD84+2).w bne.s loc_5AB3C bset #3,(word_FFFFAD82).w bra.s loc_5AB42 ; --------------------------------------------------------------------------- loc_5AB3C: ; CODE XREF: sub_5A6A0+48Aj ; sub_5A6A0+492j bclr #3,(word_FFFFAD82).w loc_5AB42: ; CODE XREF: sub_5A6A0+49Aj move.l (sp)+,d0 rts ; End of function sub_5A6A0 ; =============== S U B R O U T I N E ======================================= sub_5AB46: ; CODE XREF: sub_4EE7A+18p move.b (byte_FFFFA2BC).w,d3 bne.s loc_5AB54 andi.b #$F9,(word_FFFFAD82).w bra.s locret_5AB82 ; --------------------------------------------------------------------------- loc_5AB54: ; CODE XREF: sub_5AB46+4j cmpi.b #$C8,d3 bcc.s loc_5AB62 ori.b #6,(word_FFFFAD82).w bra.s locret_5AB82 ; --------------------------------------------------------------------------- loc_5AB62: ; CODE XREF: sub_5AB46+12j cmpi.b #$E2,d3 bcc.s loc_5AB76 andi.b #$F9,(word_FFFFAD82).w ori.b #4,(word_FFFFAD82).w bra.s locret_5AB82 ; --------------------------------------------------------------------------- loc_5AB76: ; CODE XREF: sub_5AB46+20j andi.b #$F9,(word_FFFFAD82).w ori.b #2,(word_FFFFAD82).w locret_5AB82: ; CODE XREF: sub_5AB46+Cj ; sub_5AB46+1Aj ... rts ; End of function sub_5AB46 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5AB84: ; CODE XREF: sub_4EE7A+1Ep var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d2/a0,-(sp) jsr sub_5B062 move.b (byte_FFFFB525).w,d3 beq.s loc_5ABA0 bset #4,(byte_FFFFAC0A).w bra.s loc_5ABA6 ; --------------------------------------------------------------------------- loc_5ABA0: ; CODE XREF: sub_5AB84+12j bclr #4,(byte_FFFFAC0A).w loc_5ABA6: ; CODE XREF: sub_5AB84+1Aj tst.b d3 beq.s loc_5ABB2 jsr sub_5B12A bra.s loc_5ABD0 ; --------------------------------------------------------------------------- loc_5ABB2: ; CODE XREF: sub_5AB84+24j btst #7,(byte_FFFFAF98).w bne.s loc_5ABCA btst #6,(byte_FFFF95E2).w beq.s loc_5ABCA jsr sub_5B14C bra.s loc_5ABD0 ; --------------------------------------------------------------------------- loc_5ABCA: ; CODE XREF: sub_5AB84+34j ; sub_5AB84+3Cj jsr sub_5B1D0 loc_5ABD0: ; CODE XREF: sub_5AB84+2Cj ; sub_5AB84+44j clr.w var_2(a6) tst.b (byte_FFFF95DC).w beq.w loc_5AD84 lea var_2(a6),a0 jsr sub_5CE76 tst.b d0 beq.w loc_5AC76 moveq #2,d0 cmp.b (byte_FFFF95DC).w,d0 bne.s loc_5AC24 btst #5,(byte_FFFFAC0A).w beq.s loc_5AC24 move.w (XTCC_CONTROL_KE_TCC_ALT_RELEASE_OFFSET).l,d5 ; TCC Release point offset during third gear and baro pressure below a threshold. ; MPH_s ext.l d5 clr.l d3 move.w var_2(a6),d3 add.l d5,d3 tst.l d3 blt.s loc_5AC1E cmpi.l #$FFFF,d3 bls.s loc_5AC20 move.w #$FFFF,d3 bra.s loc_5AC20 ; --------------------------------------------------------------------------- loc_5AC1E: ; CODE XREF: sub_5AB84+8Aj clr.w d3 loc_5AC20: ; CODE XREF: sub_5AB84+92j ; sub_5AB84+98j move.w d3,var_2(a6) loc_5AC24: ; CODE XREF: sub_5AB84+6Ej ; sub_5AB84+76j tst.w var_2(a6) bls.s loc_5AC68 move.w (word_FFFF95DA).w,d3 cmp.w var_2(a6),d3 bcc.s loc_5AC68 move.b (byte_FFFF95DD).w,d3 cmpi.b #4,d3 beq.s loc_5AC48 cmp.b d3,d0 beq.s loc_5AC48 cmpi.b #5,d3 bne.s loc_5AC4C loc_5AC48: ; CODE XREF: sub_5AB84+B8j ; sub_5AB84+BCj moveq #1,d3 bra.s loc_5AC4E ; --------------------------------------------------------------------------- loc_5AC4C: ; CODE XREF: sub_5AB84+C2j clr.b d3 loc_5AC4E: ; CODE XREF: sub_5AB84+C6j tst.b d3 beq.s loc_5AC5A bset #2,(byte_FFFFAC0A).w bra.s loc_5AC60 ; --------------------------------------------------------------------------- loc_5AC5A: ; CODE XREF: sub_5AB84+CCj bclr #2,(byte_FFFFAC0A).w loc_5AC60: ; CODE XREF: sub_5AB84+D4j bset #0,(byte_FFFFAD88).w bra.s loc_5AC7C ; --------------------------------------------------------------------------- loc_5AC68: ; CODE XREF: sub_5AB84+A4j ; sub_5AB84+AEj bclr #0,(byte_FFFFAD88).w bclr #2,(byte_FFFFAC0A).w bra.s loc_5AC7C ; --------------------------------------------------------------------------- loc_5AC76: ; CODE XREF: sub_5AB84+64j bclr #0,(byte_FFFFAD88).w loc_5AC7C: ; CODE XREF: sub_5AB84+E2j ; sub_5AB84+F0j btst #2,(byte_FFFFAC06).w beq.s loc_5AC8C bset #1,(byte_FFFFAD88).w bra.s loc_5AC92 ; --------------------------------------------------------------------------- loc_5AC8C: ; CODE XREF: sub_5AB84+FEj bclr #1,(byte_FFFFAD88).w loc_5AC92: ; CODE XREF: sub_5AB84+106j btst #6,(byte_FFFF95E2).w beq.s loc_5ACDA btst #7,(byte_FFFFAF98).w bne.s loc_5ACDA tst.b (byte_FFFF95DC).w beq.s loc_5ACDA move.b (byte_FFFF95DD).w,d3 beq.s loc_5ACB4 cmpi.b #3,d3 bne.s loc_5ACB8 loc_5ACB4: ; CODE XREF: sub_5AB84+128j moveq #1,d3 bra.s loc_5ACBA ; --------------------------------------------------------------------------- loc_5ACB8: ; CODE XREF: sub_5AB84+12Ej clr.b d3 loc_5ACBA: ; CODE XREF: sub_5AB84+132j tst.b d3 bne.s loc_5ACDA clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFF95DA).w,d4 cmp.w word_1C7F0(d3.w*2),d4 bcc.s loc_5ACDA bset #2,(byte_FFFFAD88).w bra.s loc_5ACE0 ; --------------------------------------------------------------------------- loc_5ACDA: ; CODE XREF: sub_5AB84+114j ; sub_5AB84+11Cj ... bclr #2,(byte_FFFFAD88).w loc_5ACE0: ; CODE XREF: sub_5AB84+154j tst.b (XTCC_CONTROL_KE_TCC_UPSHIFT_OFF).l bne.s loc_5AD2C btst #7,(byte_FFFF9BBA).w beq.s loc_5AD2C move.b (byte_FFFF95DD).w,d3 cmpi.b #4,d3 beq.s loc_5AD06 cmpi.b #2,d3 beq.s loc_5AD06 cmpi.b #5,d3 bne.s loc_5AD0A loc_5AD06: ; CODE XREF: sub_5AB84+174j ; sub_5AB84+17Aj moveq #1,d3 bra.s loc_5AD0C ; --------------------------------------------------------------------------- loc_5AD0A: ; CODE XREF: sub_5AB84+180j clr.b d3 loc_5AD0C: ; CODE XREF: sub_5AB84+184j tst.b d3 beq.s loc_5AD2C bclr #3,(byte_FFFFAC0A).w bset #3,(byte_FFFFAD88).w clr.w d4 move.b (byte_FFFF95DC).w,d4 move.w XTCC_CONTROL_KV_TCC_UPSHIFT_OFF_TIME(d4.w*2),(word_FFFFAC2C).w ; Specifies the amount of time that TCC will be turned off for when an upshift is desired. ; Seconds loc_5AD2C: ; CODE XREF: sub_5AB84+162j ; sub_5AB84+16Aj ... move.b (byte_FFFFAD88).w,d4 btst #3,d4 beq.s loc_5AD68 tst.w (word_FFFFAC2C).w bne.s loc_5AD52 moveq #8,d3 not.b d3 and.b d4,d3 move.b d3,(byte_FFFFAD88).w btst #0,d3 bne.s loc_5AD52 bset #3,(byte_FFFFAC0A).w loc_5AD52: ; CODE XREF: sub_5AB84+1B6j ; sub_5AB84+1C6j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAC2C).w,d3 sub.w $A(a2),d3 bcc.s loc_5AD62 clr.w d3 loc_5AD62: ; CODE XREF: sub_5AB84+1DAj move.w d3,(word_FFFFAC2C).w bra.s loc_5AD6E ; --------------------------------------------------------------------------- loc_5AD68: ; CODE XREF: sub_5AB84+1B0j bclr #3,(byte_FFFFAC0A).w loc_5AD6E: ; CODE XREF: sub_5AB84+1E2j clr.b d3 move.b (byte_FFFFAD88).w,d4 eor.b d3,d4 andi.b #$F,d4 beq.s loc_5AD84 move.b #1,var_4(a6) bra.s loc_5AD88 ; --------------------------------------------------------------------------- loc_5AD84: ; CODE XREF: sub_5AB84+54j ; sub_5AB84+1F6j clr.b var_4(a6) loc_5AD88: ; CODE XREF: sub_5AB84+1FEj btst #6,(byte_FFFFAC0A).w sne d3 neg.b d3 add.b d3,d3 add.b var_4(a6),d3 andi.w #$FF,d3 move.b off_8A6F0(d3.w),d3 lsl.w #7,d3 andi.w #$180,d3 andi.w #$FE7F,(word_FFFFAD82).w or.w d3,(word_FFFFAD82).w btst #6,(word_FFFFAD82).w bne.s loc_5ADC6 btst #2,(byte_FFFFAC0A).w beq.w loc_5AEA2 loc_5ADC6: ; CODE XREF: sub_5AB84+236j tst.l (dword_FFFFAC14).w bne.s loc_5AE12 tst.w (word_FFFFAC24).w bne.w loc_5AE82 btst #6,(word_FFFFAD82).w beq.s loc_5ADFC move.w (word_FFFFAC1E).w,d3 move.w (XTCC_CONTROL_KE_MIN_THROTTLE_DELAY_TIME).l,d4 ; Base Re-apply delay time after a minimum throttle release. ; Seconds cmp.w d3,d4 bcs.s loc_5ADEC move.l d4,d3 loc_5ADEC: ; CODE XREF: sub_5AB84+264j move.w d3,(word_FFFFAC18).w move.w d3,(word_FFFFAC1E).w clr.b (byte_FFFFAC27).w bra.w loc_5AE82 ; --------------------------------------------------------------------------- loc_5ADFC: ; CODE XREF: sub_5AB84+256j movea.w (XTCC_CONTROL_KE_SCHEDULED_RELEASE_DELAY).l,a2 ; Re-apply delay for scheduled release. ; Seconds move.w a2,(word_FFFFAC1A).w move.w a2,(word_FFFFAC20).w move.b #1,(byte_FFFFAC27).w bra.s loc_5AE82 ; --------------------------------------------------------------------------- loc_5AE12: ; CODE XREF: sub_5AB84+246j tst.w (word_FFFFAC24).w bne.s loc_5AE82 btst #6,(word_FFFFAD82).w beq.s loc_5AE50 move.w (word_FFFFAC1E).w,d3 move.w d3,(word_FFFFAC18).w move.w (XTCC_CONTROL_KE_MIN_THROTTLE_DELAY_TIME).l,d4 ; Base Re-apply delay time after a minimum throttle release. ; Seconds cmp.w d4,d3 bcc.s loc_5AE34 move.l d4,d3 loc_5AE34: ; CODE XREF: sub_5AB84+2ACj move.w d3,(word_FFFFAC18).w add.w (XTCC_CONTROL_KE_INC_BUSYNESS_DELAY).l,d3 ; Amount of time a TCC minimum throttle release re-applyshould be incremented due to busyness. ; Seconds bcc.s loc_5AE44 move.w #$FFFF,d3 loc_5AE44: ; CODE XREF: sub_5AB84+2BAj move.w d3,(word_FFFFAC18).w move.w d3,(word_FFFFAC1E).w moveq #2,d0 bra.s loc_5AE7E ; --------------------------------------------------------------------------- loc_5AE50: ; CODE XREF: sub_5AB84+29Aj move.w (XTCC_CONTROL_KE_SCHEDULED_RELEASE_DELAY).l,d3 ; Re-apply delay for scheduled release. ; Seconds add.w (XTCC_CONTROL_KE_SCH_REL_BUSY_DELAY_TIME).l,d3 ; Business added re-apply delay for scheduled release. ; Seconds bcc.s loc_5AE62 move.w #$FFFF,d3 loc_5AE62: ; CODE XREF: sub_5AB84+2D8j move.w d3,(word_FFFFAC1A).w move.w (XTCC_CONTROL_KE_SCHEDULED_RELEASE_DELAY).l,d3 ; Re-apply delay for scheduled release. ; Seconds add.w (XTCC_CONTROL_KE_SCH_REL_BUSY_DELAY_TIME).l,d3 ; Business added re-apply delay for scheduled release. ; Seconds bcc.s loc_5AE78 move.w #$FFFF,d3 loc_5AE78: ; CODE XREF: sub_5AB84+2EEj move.w d3,(word_FFFFAC20).w moveq #3,d0 loc_5AE7E: ; CODE XREF: sub_5AB84+2CAj move.b d0,(byte_FFFFAC27).w loc_5AE82: ; CODE XREF: sub_5AB84+24Cj ; sub_5AB84+274j ... btst #6,(word_FFFFAD82).w beq.s loc_5AE94 move.l (XTCC_CONTROL_KE_BUSYNESS_DETECTION_TIME).l,(dword_FFFFAC14).w ; Amount of time after a minimum throttle release to detect throttle busyness ; Seconds bra.s loc_5AF0E ; --------------------------------------------------------------------------- loc_5AE94: ; CODE XREF: sub_5AB84+304j clr.l d3 move.w (XTCC_CONTROL_KE_SCH_REL_BUSY_DETECT_TIME).l,d3 ; Re-apply delay for scheduled release. ; Seconds move.l d3,(dword_FFFFAC14).w bra.s loc_5AF0E ; --------------------------------------------------------------------------- loc_5AEA2: ; CODE XREF: sub_5AB84+23Ej movea.l (dword_FFFFB5DE).w,a2 clr.l d5 move.w $A(a2),d5 move.l (dword_FFFFAC14).w,d3 sub.l d5,d3 bcc.s loc_5AEB6 clr.l d3 loc_5AEB6: ; CODE XREF: sub_5AB84+32Ej move.l d3,(dword_FFFFAC14).w btst #6,(byte_FFFF95E5).w bne.s loc_5AEEE move.b (byte_FFFF95DD).w,d3 beq.s loc_5AECE cmpi.b #3,d3 bne.s loc_5AED2 loc_5AECE: ; CODE XREF: sub_5AB84+342j moveq #1,d3 bra.s loc_5AED4 ; --------------------------------------------------------------------------- loc_5AED2: ; CODE XREF: sub_5AB84+348j clr.b d3 loc_5AED4: ; CODE XREF: sub_5AB84+34Cj tst.b d3 beq.s loc_5AEEE movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAC18).w,d3 sub.w $A(a2),d3 bcc.s loc_5AEE8 clr.w d3 loc_5AEE8: ; CODE XREF: sub_5AB84+360j move.w d3,(word_FFFFAC18).w bra.s loc_5AF0E ; --------------------------------------------------------------------------- loc_5AEEE: ; CODE XREF: sub_5AB84+33Cj ; sub_5AB84+352j btst #6,(byte_FFFF95E5).w beq.s loc_5AF0E tst.w (word_FFFFAC24).w bne.s loc_5AF0E tst.w (word_FFFFAC18).w beq.s loc_5AF0E move.w (word_FFFFAC1E).w,(word_FFFFAC18).w move.b #4,(byte_FFFFAC27).w loc_5AF0E: ; CODE XREF: sub_5AB84+30Ej ; sub_5AB84+31Cj ... tst.w (word_FFFFAC1A).w beq.s loc_5AF5A move.w (word_FFFFAD82).w,d3 lsr.w #7,d3 andi.b #3,d3 cmpi.b #2,d3 bne.s loc_5AF32 tst.b (byte_FFFFAC26).w bne.s loc_5AF36 move.b #1,(byte_FFFFAC26).w bra.s loc_5AF36 ; --------------------------------------------------------------------------- loc_5AF32: ; CODE XREF: sub_5AB84+39Ej clr.b (byte_FFFFAC26).w loc_5AF36: ; CODE XREF: sub_5AB84+3A4j ; sub_5AB84+3ACj tst.b (byte_FFFFAC26).w beq.s loc_5AF52 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAC1A).w,d3 sub.w $A(a2),d3 bcc.s loc_5AF4C clr.w d3 loc_5AF4C: ; CODE XREF: sub_5AB84+3C4j move.w d3,(word_FFFFAC1A).w bra.s loc_5AF5E ; --------------------------------------------------------------------------- loc_5AF52: ; CODE XREF: sub_5AB84+3B6j move.w (word_FFFFAC20).w,(word_FFFFAC1A).w bra.s loc_5AF5E ; --------------------------------------------------------------------------- loc_5AF5A: ; CODE XREF: sub_5AB84+38Ej clr.b (byte_FFFFAC26).w loc_5AF5E: ; CODE XREF: sub_5AB84+3CCj ; sub_5AB84+3D4j move.b (byte_FFFF95DD).w,d3 cmpi.b #4,d3 beq.s loc_5AF6E cmpi.b #2,d3 bne.s loc_5AF72 loc_5AF6E: ; CODE XREF: sub_5AB84+3E2j moveq #1,d3 bra.s loc_5AF74 ; --------------------------------------------------------------------------- loc_5AF72: ; CODE XREF: sub_5AB84+3E8j clr.b d3 loc_5AF74: ; CODE XREF: sub_5AB84+3ECj tst.b d3 beq.s loc_5AFD2 move.b (byte_FFFFAC1C).w,d3 addq.b #1,d3 bcc.s loc_5AF84 move.b #$FF,d3 loc_5AF84: ; CODE XREF: sub_5AB84+3FAj move.b d3,(byte_FFFFAC1C).w move.w (XTCC_CONTROL_KE_MIN_THROTTLE_DELAY_TIME).l,d4 ; Base Re-apply delay time after a minimum throttle release. ; Seconds move.w (word_FFFFAC1E).w,d5 cmp.w d4,d5 bcs.s loc_5AF98 move.l d5,d4 loc_5AF98: ; CODE XREF: sub_5AB84+410j move.w d4,(word_FFFFAC22).w cmp.b (XTCC_CONTROL_KE_APPLY_COUNTER_STEP).l,d3 ; Amount of steps the apply counter must increment in orderfor the lock delay to be decremented by cal. value. ; SHORTCARD bcs.s loc_5AFCA move.w (word_FFFFAC22).w,d3 sub.w (XTCC_CONTROL_KE_DEC_BUSYNESS_DELAY).l,d3 ; Amount of time a TCC minimum throttle release re-applyshould be decremented due to busyness. ; Seconds bcc.s loc_5AFB2 clr.w d3 loc_5AFB2: ; CODE XREF: sub_5AB84+42Aj move.w d3,(word_FFFFAC22).w move.w (XTCC_CONTROL_KE_MIN_THROTTLE_DELAY_TIME).l,d4 ; Base Re-apply delay time after a minimum throttle release. ; Seconds cmp.w d4,d3 bcc.s loc_5AFC2 move.l d4,d3 loc_5AFC2: ; CODE XREF: sub_5AB84+43Aj move.w d3,(word_FFFFAC22).w clr.b (byte_FFFFAC1C).w loc_5AFCA: ; CODE XREF: sub_5AB84+41Ej move.w (word_FFFFAC22).w,(word_FFFFAC1E).w bra.s loc_5AFD6 ; --------------------------------------------------------------------------- loc_5AFD2: ; CODE XREF: sub_5AB84+3F2j clr.b (byte_FFFFAC1C).w loc_5AFD6: ; CODE XREF: sub_5AB84+44Cj btst #7,(byte_FFFFAF98).w bne.s loc_5B02C tst.w (word_FFFFAC24).w bne.s loc_5B016 move.b (byte_FFFF958E).w,d3 cmp.b (XTCC_CONTROL_KE_TCC_LOW_BARO_DELAY_ENABLE).l,d3 ; Apply_Delay_Timer is set to a cal if Barometric Pressure is less than this. ; KPA bcc.s loc_5B006 movea.w (XTCC_CONTROL_KE_ALT_APPLY_DELAY_TIME).l,a2 ; Extend apply delay by this at altitude. ; Seconds move.w a2,(word_FFFFAC24).w move.w a2,(word_FFFFAC18).w move.b #5,(byte_FFFFAC27).w bra.s loc_5B030 ; --------------------------------------------------------------------------- loc_5B006: ; CODE XREF: sub_5AB84+46Aj cmp.b (XTCC_CONTROL_KE_TCC_HIGH_BARO_DELAY_DISABLE).l,d3 ; Apply_Delay_Timer is set to Reapply_Delay_Timer if Barometric Pressure is greater than this. ; KPA bls.s loc_5B030 move.w (word_FFFFAC18).w,(word_FFFFAC24).w bra.s loc_5B030 ; --------------------------------------------------------------------------- loc_5B016: ; CODE XREF: sub_5AB84+45Ej movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAC24).w,d3 sub.w $A(a2),d3 bcc.s loc_5B026 clr.w d3 loc_5B026: ; CODE XREF: sub_5AB84+49Ej move.w d3,(word_FFFFAC24).w bra.s loc_5B030 ; --------------------------------------------------------------------------- loc_5B02C: ; CODE XREF: sub_5AB84+458j clr.w (word_FFFFAC24).w loc_5B030: ; CODE XREF: sub_5AB84+480j ; sub_5AB84+488j ... move.w (word_FFFFAD82).w,d3 lsr.w #7,d3 andi.b #3,d3 cmpi.b #2,d3 bne.s loc_5B05A tst.w (word_FFFFAC18).w bne.s loc_5B054 tst.w (word_FFFFAC1A).w bne.s loc_5B054 move.b #6,(byte_FFFFAC27).w bra.s loc_5B05A ; --------------------------------------------------------------------------- loc_5B054: ; CODE XREF: sub_5AB84+4C0j ; sub_5AB84+4C6j andi.w #$FE7F,(word_FFFFAD82).w loc_5B05A: ; CODE XREF: sub_5AB84+4BAj ; sub_5AB84+4CEj movem.l (sp)+,d0-d2/a0 unlk a6 rts ; End of function sub_5AB84 ; =============== S U B R O U T I N E ======================================= sub_5B062: ; CODE XREF: sub_5AB84+8p movem.l d0-d2/a0,-(sp) move.b (byte_FFFF958E).w,d3 cmp.b (XTCC_CONTROL_KE_TCC_BARO_APPLY_LOW).l,d3 ; Lower baro pressure threshold below which TCC will not apply. ; KPa bhi.s loc_5B080 bset #7,(byte_FFFFAC0B).w bclr #6,(byte_FFFFAC0B).w bra.s loc_5B094 ; --------------------------------------------------------------------------- loc_5B080: ; CODE XREF: sub_5B062+Ej cmp.b (XTCC_CONTROL_KE_TCC_BARO_APPLY_HIGH).l,d3 ; Upper baro pressure threshold above which TCC will apply. ; KPa bcs.s loc_5B094 bclr #7,(byte_FFFFAC0B).w bset #6,(byte_FFFFAC0B).w loc_5B094: ; CODE XREF: sub_5B062+1Cj ; sub_5B062+24j move.b (byte_FFFF95DC).w,d3 moveq #1,d1 cmp.b d3,d1 bhi.s loc_5B0C2 cmpi.b #2,d3 bhi.s loc_5B0C2 btst #7,(byte_FFFFAC0B).w beq.s loc_5B0B8 move.b d1,(byte_FFFFAC28).w bset #5,(byte_FFFFAC0A).w bra.s loc_5B0D2 ; --------------------------------------------------------------------------- loc_5B0B8: ; CODE XREF: sub_5B062+48j btst #6,(byte_FFFFAC0B).w beq.s loc_5B0D2 bra.s loc_5B0C8 ; --------------------------------------------------------------------------- loc_5B0C2: ; CODE XREF: sub_5B062+3Aj ; sub_5B062+40j cmpi.b #3,d3 bne.s loc_5B0D2 loc_5B0C8: ; CODE XREF: sub_5B062+5Ej clr.b (byte_FFFFAC28).w bclr #5,(byte_FFFFAC0A).w loc_5B0D2: ; CODE XREF: sub_5B062+54j ; sub_5B062+5Cj ... tst.b d3 beq.s loc_5B124 movea.l #unk_FFAC2A,a0 jsr sub_5CE2E tst.b d0 beq.s loc_5B124 tst.b (byte_FFFFB525).w bne.s loc_5B124 btst #5,(byte_FFFFAC0A).w beq.s loc_5B124 cmpi.b #2,(byte_FFFF95DC).w bne.s loc_5B124 move.w (XTCC_CONTROL_KE_TCC_ALT_APPLY_OFFSET).l,d5 ; TCC Apply point offset during third gear and baro pressure below a threshold. ; MPH_s ext.l d5 clr.l d3 move.w (word_FFFFAC2A).w,d3 add.l d5,d3 tst.l d3 blt.s loc_5B11E cmpi.l #$FFFF,d3 bls.s loc_5B120 move.w #$FFFF,d3 bra.s loc_5B120 ; --------------------------------------------------------------------------- loc_5B11E: ; CODE XREF: sub_5B062+ACj clr.w d3 loc_5B120: ; CODE XREF: sub_5B062+B4j ; sub_5B062+BAj move.w d3,(word_FFFFAC2A).w loc_5B124: ; CODE XREF: sub_5B062+72j ; sub_5B062+82j ... movem.l (sp)+,d0-d2/a0 rts ; End of function sub_5B062 ; =============== S U B R O U T I N E ======================================= sub_5B12A: ; CODE XREF: sub_5AB84+26p move.w (word_FFFF95DA).w,d3 cmp.w (word_FFFFAC2A).w,d3 bhi.s loc_5B13C btst #3,(byte_FFFFAC0A).w beq.s loc_5B144 loc_5B13C: ; CODE XREF: sub_5B12A+8j bset #6,(byte_FFFFAC0A).w bra.s locret_5B14A ; --------------------------------------------------------------------------- loc_5B144: ; CODE XREF: sub_5B12A+10j bclr #6,(byte_FFFFAC0A).w locret_5B14A: ; CODE XREF: sub_5B12A+18j rts ; End of function sub_5B12A ; =============== S U B R O U T I N E ======================================= sub_5B14C: ; CODE XREF: sub_5AB84+3Ep bclr #5,(byte_FFFFAC0B).w move.b (byte_FFFF95DC).w,d3 beq.s loc_5B1C0 cmpi.w #$FFFF,(word_FFFFAC2A).w beq.s loc_5B1C0 tst.b (byte_FFFFAC28).w beq.s loc_5B16C cmpi.b #1,d3 beq.s loc_5B1C0 loc_5B16C: ; CODE XREF: sub_5B14C+18j btst #3,(byte_FFFFAC0A).w bne.s loc_5B1C8 andi.w #$FF,d3 move.w (word_FFFF95DA).w,d4 cmp.w word_1C7EA(d3.w*2),d4 bls.s loc_5B1C0 cmp.w (word_FFFFAC2A).w,d4 bls.s loc_5B1C0 move.b (byte_FFFF95F2).w,d3 cmpi.b #2,d3 beq.s loc_5B1A2 cmpi.b #1,d3 beq.s loc_5B1A2 cmpi.b #3,d3 bne.s loc_5B1C8 loc_5B1A2: ; CODE XREF: sub_5B14C+48j ; sub_5B14C+4Ej move.w (word_FFFF9BC2).w,d3 cmp.w (word_FFFF9BC0).w,d3 bhi.s loc_5B1C8 tst.b (XTCC_CONTROL_KE_SHIFT_STABILIZATION_ENABLE).l ; Boolean calibration to show if the shift stabilization is enabled or disabled. ; BOOLEAN beq.s loc_5B1C8 tst.b (byte_FFFF9BC6).w bne.s loc_5B1C8 bset #5,(byte_FFFFAC0B).w loc_5B1C0: ; CODE XREF: sub_5B14C+Aj ; sub_5B14C+12j ... bclr #6,(byte_FFFFAC0A).w bra.s locret_5B1CE ; --------------------------------------------------------------------------- loc_5B1C8: ; CODE XREF: sub_5B14C+26j ; sub_5B14C+54j ... bset #6,(byte_FFFFAC0A).w locret_5B1CE: ; CODE XREF: sub_5B14C+7Aj rts ; End of function sub_5B14C ; =============== S U B R O U T I N E ======================================= sub_5B1D0: ; CODE XREF: sub_5AB84:loc_5ABCAp bclr #5,(byte_FFFFAC0B).w move.b (byte_FFFF95DC).w,d3 beq.s loc_5B236 cmpi.w #$FFFF,(word_FFFFAC2A).w beq.s loc_5B236 tst.b (byte_FFFFAC28).w beq.s loc_5B1F0 cmpi.b #1,d3 beq.s loc_5B236 loc_5B1F0: ; CODE XREF: sub_5B1D0+18j btst #3,(byte_FFFFAC0A).w bne.s loc_5B23E move.w (word_FFFF95DA).w,d3 cmp.w (word_FFFFAC2A).w,d3 bls.s loc_5B236 move.b (byte_FFFF95F2).w,d3 cmpi.b #2,d3 beq.s loc_5B218 cmpi.b #1,d3 beq.s loc_5B218 cmpi.b #3,d3 bne.s loc_5B23E loc_5B218: ; CODE XREF: sub_5B1D0+3Aj ; sub_5B1D0+40j move.w (word_FFFF9BC2).w,d3 cmp.w (word_FFFF9BC0).w,d3 bhi.s loc_5B23E tst.b (XTCC_CONTROL_KE_SHIFT_STABILIZATION_ENABLE).l ; Boolean calibration to show if the shift stabilization is enabled or disabled. ; BOOLEAN beq.s loc_5B23E tst.b (byte_FFFF9BC6).w bne.s loc_5B23E bset #5,(byte_FFFFAC0B).w loc_5B236: ; CODE XREF: sub_5B1D0+Aj ; sub_5B1D0+12j ... bclr #6,(byte_FFFFAC0A).w bra.s locret_5B244 ; --------------------------------------------------------------------------- loc_5B23E: ; CODE XREF: sub_5B1D0+26j ; sub_5B1D0+46j ... bset #6,(byte_FFFFAC0A).w locret_5B244: ; CODE XREF: sub_5B1D0+6Cj rts ; End of function sub_5B1D0 ; =============== S U B R O U T I N E ======================================= sub_5B246: ; CODE XREF: sub_4EE7A+Cp tst.b (byte_FFFFAC67).w beq.s loc_5B254 btst #5,(byte_FFFFAF98).w beq.s loc_5B25C loc_5B254: ; CODE XREF: sub_5B246+4j btst #4,(byte_FFFFAFD4).w beq.s loc_5B264 loc_5B25C: ; CODE XREF: sub_5B246+Cj move.b #3,(byte_FFFFAD89).w bra.s locret_5B2B4 ; --------------------------------------------------------------------------- loc_5B264: ; CODE XREF: sub_5B246+14j move.b (byte_FFFF95DC).w,d3 cmpi.b #3,d3 bne.s loc_5B28C tst.b (byte_FFFFAC68).w beq.s loc_5B28C btst #5,(dword_FFFFAD84+3).w bne.s loc_5B28C btst #4,(dword_FFFFAD84+2).w bne.s loc_5B28C loc_5B284: ; CODE XREF: sub_5B246+68j move.b #1,(byte_FFFFAD89).w bra.s locret_5B2B4 ; --------------------------------------------------------------------------- loc_5B28C: ; CODE XREF: sub_5B246+26j ; sub_5B246+2Cj ... tst.b (byte_FFFFAC6A).w beq.s loc_5B2B0 cmpi.b #2,d3 bcs.s loc_5B2B0 btst #7,(byte_FFFFAF98).w beq.s loc_5B2B0 btst #5,(dword_FFFFAD84+3).w bne.s loc_5B2B0 btst #4,(dword_FFFFAD84+2).w beq.s loc_5B284 loc_5B2B0: ; CODE XREF: sub_5B246+4Aj ; sub_5B246+50j ... clr.b (byte_FFFFAD89).w locret_5B2B4: ; CODE XREF: sub_5B246+1Cj ; sub_5B246+44j rts ; End of function sub_5B246 ; =============== S U B R O U T I N E ======================================= sub_5B2B6: ; CODE XREF: OS1:00028C50p bset #6,(byte_FFFFAC0B).w bset #5,(byte_FFFFAC06).w bset #4,(byte_FFFFAC0B).w rts ; End of function sub_5B2B6 ; =============== S U B R O U T I N E ======================================= sub_5B2CA: ; CODE XREF: sub_4EEA0p move.l d0,-(sp) move.b (word_FFFFAD82).w,d3 lsr.b #1,d3 moveq #3,d4 and.b d4,d3 cmp.b d3,d4 bne.s loc_5B2E4 move.b #6,(byte_FFFFAD80).w bra.w loc_5B3AE ; --------------------------------------------------------------------------- loc_5B2E4: ; CODE XREF: sub_5B2CA+Ej moveq #2,d5 cmp.b d3,d5 bne.s loc_5B318 btst #5,(word_FFFFAD82).w beq.s loc_5B30E btst #7,(byte_FFFFAC06).w beq.s loc_5B304 loc_5B2FA: ; CODE XREF: sub_5B2CA+86j move.b #5,(byte_FFFFAD80).w bra.w loc_5B3AE ; --------------------------------------------------------------------------- loc_5B304: ; CODE XREF: sub_5B2CA+2Ej ; sub_5B2CA+88j move.b #4,(byte_FFFFAD80).w bra.w loc_5B3AE ; --------------------------------------------------------------------------- loc_5B30E: ; CODE XREF: sub_5B2CA+26j move.b #7,(byte_FFFFAD80).w bra.w loc_5B3AE ; --------------------------------------------------------------------------- loc_5B318: ; CODE XREF: sub_5B2CA+1Ej moveq #1,d0 cmp.b d3,d0 bne.s loc_5B336 btst #4,(word_FFFFAD82).w beq.s loc_5B32E loc_5B326: ; CODE XREF: sub_5B2CA+72j ; sub_5B2CA+9Aj ... clr.b (byte_FFFFAD80).w bra.w loc_5B3AE ; --------------------------------------------------------------------------- loc_5B32E: ; CODE XREF: sub_5B2CA+5Aj move.b #8,(byte_FFFFAD80).w bra.s loc_5B3AE ; --------------------------------------------------------------------------- loc_5B336: ; CODE XREF: sub_5B2CA+52j move.b (byte_FFFFAD89).w,d3 cmp.b d3,d4 beq.s loc_5B326 cmp.b d3,d0 bne.s loc_5B35A loc_5B342: ; CODE XREF: sub_5B2CA+BAj btst #5,(word_FFFFAD82).w beq.s loc_5B354 loc_5B34A: ; CODE XREF: sub_5B2CA+D4j btst #7,(byte_FFFFAC06).w bne.s loc_5B2FA bra.s loc_5B304 ; --------------------------------------------------------------------------- loc_5B354: ; CODE XREF: sub_5B2CA+7Ej move.b d5,(byte_FFFFAD80).w bra.s loc_5B3AE ; --------------------------------------------------------------------------- loc_5B35A: ; CODE XREF: sub_5B2CA+76j cmp.b d3,d5 bne.s loc_5B36C btst #4,(word_FFFFAD82).w bne.s loc_5B326 loc_5B366: ; CODE XREF: sub_5B2CA+C6j move.b d0,(byte_FFFFAD80).w bra.s loc_5B3AE ; --------------------------------------------------------------------------- loc_5B36C: ; CODE XREF: sub_5B2CA+92j btst #7,(word_FFFFAD82).w bne.s loc_5B326 tst.b (byte_FFFF95DC).w beq.s loc_5B326 move.w (word_FFFFAD82).w,d3 lsr.w #7,d3 and.b d4,d3 cmp.b d3,d5 beq.s loc_5B342 cmp.b d3,d0 bne.s loc_5B398 btst #4,(word_FFFFAD82).w beq.s loc_5B366 loc_5B392: ; CODE XREF: sub_5B2CA+DCj move.b d4,(byte_FFFFAD80).w bra.s loc_5B3AE ; --------------------------------------------------------------------------- loc_5B398: ; CODE XREF: sub_5B2CA+BEj btst #5,(word_FFFFAD82).w bne.s loc_5B34A btst #4,(word_FFFFAD82).w bne.s loc_5B392 move.b #9,(byte_FFFFAD80).w loc_5B3AE: ; CODE XREF: sub_5B2CA+16j ; sub_5B2CA+36j ... move.l (sp)+,d0 rts ; End of function sub_5B2CA ; =============== S U B R O U T I N E ======================================= sub_5B3B2: ; CODE XREF: sub_4EEA0+6p move.b (word_FFFFAD7C).w,(byte_FFFF95DE).w clr.w d3 move.b (byte_FFFF95DD).w,d3 mulu.w #$A,d3 clr.w d4 move.b (byte_FFFFAD80).w,d4 add.w d4,d3 move.b unk_3EDE.l(d3.w*4),(byte_FFFFAD7E).w move.w unk_3EDC.l(d3.w*4),(word_FFFFAD7C).w bclr #4,(byte_FFFFA400).w tst.b (byte_FFFFAD7E).w beq.s loc_5B3F0 bset #4,(byte_FFFFA400).w loc_5B3F0: ; CODE XREF: sub_5B3B2+36j move.b (word_FFFFAD7C+1).w,(byte_FFFF95DD).w rts ; End of function sub_5B3B2 ; =============== S U B R O U T I N E ======================================= sub_5B3F8: ; CODE XREF: sub_4EEA0+Cp move.w (word_FFFFB452).w,d3 clr.b d4 add.w d3,d3 andi.l #$FFFF,d3 divu.w #3,d3 tblu.w (XTCC_EXECUTION_KV_TCC_MAXIMUM_PRESSURE).l,d3 ; Used to find TCC_PSI Pressure from Pressure. ; PSI move.w d3,(word_FFFFA418).w clr.w d3 move.b (byte_FFFF95DD).w,d3 movea.l off_8A68C(d3.w*4),a2 jmp (a2) ; End of function sub_5B3F8 ; --------------------------------------------------------------------------- loc_5B426: ; DATA XREF: OS4:0008A6A4o jsr sub_5B4C8 bra.s loc_5B45E ; --------------------------------------------------------------------------- loc_5B42E: ; DATA XREF: OS4:off_8A68Co bclr #5,(word_FFFFAD82).w bset #4,(word_FFFFAD82).w loc_5B43A: ; DATA XREF: OS4:0008A698o jsr sub_5B4EE bra.s loc_5B45E ; --------------------------------------------------------------------------- loc_5B442: ; DATA XREF: OS4:0008A694o bclr #4,(word_FFFFAD82).w nop loc_5B44A: ; DATA XREF: OS4:0008A69Co ; OS4:0008A6A0o jsr sub_5B472 bra.s loc_5B45E ; --------------------------------------------------------------------------- loc_5B452: ; DATA XREF: OS4:0008A690o bclr #5,(word_FFFFAD82).w jsr sub_5C340 loc_5B45E: ; CODE XREF: OS2:0005B42Cj ; OS2:0005B440j ... jsr sub_5C78E jsr sub_5C4CC jsr sub_5C510 rts ; =============== S U B R O U T I N E ======================================= sub_5B472: ; CODE XREF: OS2:loc_5B44Ap jsr sub_5B744 tst.b (TCM_OPTIONS_K_TRANS_HAS_ECCC).l ; If TRUE, Transmission has ECCC ; BOOLEAN beq.s locret_5B4C6 move.b (byte_FFFF95DD).w,d3 cmpi.b #5,d3 bne.s loc_5B49E jsr sub_5B874 jsr sub_5BA2E jsr sub_5C1FE bra.s locret_5B4C6 ; --------------------------------------------------------------------------- loc_5B49E: ; CODE XREF: sub_5B472+16j cmpi.b #4,d3 beq.s loc_5B4AA cmpi.b #2,d3 bne.s loc_5B4AE loc_5B4AA: ; CODE XREF: sub_5B472+30j moveq #1,d3 bra.s loc_5B4B0 ; --------------------------------------------------------------------------- loc_5B4AE: ; CODE XREF: sub_5B472+36j clr.b d3 loc_5B4B0: ; CODE XREF: sub_5B472+3Aj tst.b d3 beq.s locret_5B4C6 jsr sub_5B874 jsr sub_5BA2E jsr sub_5BDC8 locret_5B4C6: ; CODE XREF: sub_5B472+Cj ; sub_5B472+2Aj ... rts ; End of function sub_5B472 ; =============== S U B R O U T I N E ======================================= sub_5B4C8: ; CODE XREF: OS2:loc_5B426p move.b (byte_FFFFA2BC).w,d3 beq.s locret_5B4EC cmpi.b #$80,d3 bhi.s loc_5B4E0 andi.w #$FF,d3 asl.w #7,d3 move.w d3,(word_FFFFA40A).w bra.s loc_5B4E6 ; --------------------------------------------------------------------------- loc_5B4E0: ; CODE XREF: sub_5B4C8+Aj move.w #$4000,(word_FFFFA40A).w loc_5B4E6: ; CODE XREF: sub_5B4C8+16j move.b #1,(byte_FFFFA40E).w locret_5B4EC: ; CODE XREF: sub_5B4C8+4j rts ; End of function sub_5B4C8 ; =============== S U B R O U T I N E ======================================= sub_5B4EE: ; CODE XREF: OS2:loc_5B43Ap clr.b (byte_FFFFA40E).w bclr #5,(byte_FFFFA402).w tst.b (byte_FFFFAC69).w beq.s loc_5B504 clr.w (word_FFFFA40A).w bra.s loc_5B52A ; --------------------------------------------------------------------------- loc_5B504: ; CODE XREF: sub_5B4EE+Ej move.w (word_FFFF95DA).w,d3 cmp.w (XTCC_CONTROL_KE_TCC_HIGH_FAILSAFE_THRESHOLD).l,d3 bls.s loc_5B51A move.w (XTCC_EXECUTION_KE_TCC_MAX_ALLOWED_PRESSURE).l,(word_FFFFA40A).w ; Maximum TCC pressure. ; PSI bra.s loc_5B52A ; --------------------------------------------------------------------------- loc_5B51A: ; CODE XREF: sub_5B4EE+20j cmp.w (XTCC_CONTROL_KE_TCC_LOW_FAILSAFE_THRESHOLD).l,d3 bhi.s loc_5B52A move.w (XTCC_EXECUTION_KE_TCC_MINIMUM_PRESSURE).l,(word_FFFFA40A).w ; TCC pressure set to this in off mode. ; PSI loc_5B52A: ; CODE XREF: sub_5B4EE+14j ; sub_5B4EE+2Aj ... movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA404).w,d3 add.w $A(a2),d3 bcc.s loc_5B53C move.w #$FFFF,d3 loc_5B53C: ; CODE XREF: sub_5B4EE+48j move.w d3,(word_FFFFA404).w rts ; End of function sub_5B4EE ; =============== S U B R O U T I N E ======================================= sub_5B542: ; CODE XREF: sub_5B744:loc_5B7C4p movem.l d0-d1,-(sp) jsr sub_5A53C move.w d0,(word_FFFFAD7A).w move.w (word_FFFF95BC).w,d3 bge.s loc_5B55A neg.w d3 bvs.s loc_5B562 loc_5B55A: ; CODE XREF: sub_5B542+12j sub.w (word_FFFFAD7A).w,d3 bvc.s loc_5B56C bpl.s loc_5B568 loc_5B562: ; CODE XREF: sub_5B542+16j move.w #$7FFF,d3 bra.s loc_5B56C ; --------------------------------------------------------------------------- loc_5B568: ; CODE XREF: sub_5B542+1Ej move.w #$8000,d3 loc_5B56C: ; CODE XREF: sub_5B542+1Cj ; sub_5B542+24j move.w d3,(word_FFFFAD78).w move.w (word_FFFF95C8).w,d3 mulu.w (XTCC_EXECUTION_KE_TCC_APPLY_PRESSURE_GAIN).l,d3 ; Used to find Torque based Apply Operating Point. ; PSI/FtLB divu.w #$80,d3 ; '?' bvs.s loc_5B58A tst.w d3 blt.s loc_5B58A cmpi.w #$1800,d3 ble.s loc_5B58E loc_5B58A: ; CODE XREF: sub_5B542+3Cj ; sub_5B542+40j move.w #$1800,d3 loc_5B58E: ; CODE XREF: sub_5B542+46j move.w (word_FFFF95AC).w,d5 move.w #$C80,d0 cmp.w d5,d0 bls.s loc_5B59E clr.w d5 bra.s loc_5B5B4 ; --------------------------------------------------------------------------- loc_5B59E: ; CODE XREF: sub_5B542+56j cmpi.w #$6400,d5 bcc.s loc_5B5B0 sub.w d0,d5 ext.l d5 asl.l #5,d5 divs.w #$AF,d5 ; '?' bra.s loc_5B5B4 ; --------------------------------------------------------------------------- loc_5B5B0: ; CODE XREF: sub_5B542+60j move.w #$1000,d5 loc_5B5B4: ; CODE XREF: sub_5B542+5Aj ; sub_5B542+6Cj tbls.w (XTCC_EXECUTION_KV_TCC_APPLY_PRESSURE_OFFSET).l,d5 ; Used to find Torque based Apply Operating Point. ; PSI_s add.w d5,d3 cmpi.w #$7FFF,d3 bhi.s loc_5B5C8 add.w d3,d3 bra.s loc_5B5CA ; --------------------------------------------------------------------------- loc_5B5C8: ; CODE XREF: sub_5B542+80j clr.w d3 loc_5B5CA: ; CODE XREF: sub_5B542+84j move.w d3,(word_FFFFA416).w move.w (word_FFFFA406).w,d3 cmp.w (XTCC_CONTROL_KE_TCC_ENABLE_ON_DELAY_TIME).l,d3 ; TCC Enable is turned on after this amount of time has elapsed from the start of an apply. ; Seconds bcs.s loc_5B630 moveq #1,d5 move.b d5,(byte_FFFFA40E).w move.b (byte_FFFF95DE).w,d3 cmp.b d3,d5 beq.s loc_5B5F2 cmpi.b #3,d3 beq.s loc_5B5F2 tst.b d3 bne.s loc_5B5F8 loc_5B5F2: ; CODE XREF: sub_5B542+A4j ; sub_5B542+AAj bclr #7,(byte_FFFFA401).w loc_5B5F8: ; CODE XREF: sub_5B542+AEj move.w (XTCC_CONTROL_KE_TCC_ENABLE_ON_DELAY_TIME).l,d3 ; TCC Enable is turned on after this amount of time has elapsed from the start of an apply. ; Seconds add.w (XTCC_CONTROL_KE_TCC_APPLY_RAMP_DELAY_TIME).l,d3 ; TCC apply ramping begins after this amount of time has elapsed from when TCC Enable was turned on. ; Seconds bcc.s loc_5B60A move.w #$FFFF,d3 loc_5B60A: ; CODE XREF: sub_5B542+C2j cmp.w (word_FFFFA406).w,d3 bls.s loc_5B622 btst #5,(word_FFFFAD82).w bne.s loc_5B622 move.w (XTCC_EXECUTION_KE_TCC_MINIMUM_PRESSURE).l,(word_FFFFA41A).w ; TCC pressure set to this in off mode. ; PSI bra.s loc_5B656 ; --------------------------------------------------------------------------- loc_5B622: ; CODE XREF: sub_5B542+CCj ; sub_5B542+D4j bset #7,(byte_FFFFA401).w move.w (word_FFFFA416).w,(word_FFFFA41A).w bra.s loc_5B656 ; --------------------------------------------------------------------------- loc_5B630: ; CODE XREF: sub_5B542+96j clr.b (byte_FFFFA40E).w move.w (XTCC_EXECUTION_KE_TCC_MINIMUM_PRESSURE).l,(word_FFFFA41A).w ; TCC pressure set to this in off mode. ; PSI move.b (byte_FFFF95DE).w,d3 moveq #1,d5 cmp.b d3,d5 beq.s loc_5B650 cmpi.b #3,d3 beq.s loc_5B650 tst.b d3 bne.s loc_5B656 loc_5B650: ; CODE XREF: sub_5B542+102j ; sub_5B542+108j bclr #7,(byte_FFFFA401).w loc_5B656: ; CODE XREF: sub_5B542+DEj ; sub_5B542+ECj ... move.b (byte_FFFF95DE).w,d3 cmp.b d3,d5 beq.s loc_5B668 cmpi.b #3,d3 beq.s loc_5B668 tst.b d3 bne.s loc_5B66C loc_5B668: ; CODE XREF: sub_5B542+11Aj ; sub_5B542+120j clr.w (word_FFFFAD66).w loc_5B66C: ; CODE XREF: sub_5B542+124j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAD66).w,d3 add.w $A(a2),d3 bcc.s loc_5B67E move.w #$FFFF,d3 loc_5B67E: ; CODE XREF: sub_5B542+136j move.w d3,(word_FFFFAD66).w cmp.w (XTCC_CONTROL_KE_TCC_APPLY_CROWD_DELAY_TIME).l,d3 bcs.s loc_5B690 move.b d5,(byte_FFFFAC08).w bra.s loc_5B694 ; --------------------------------------------------------------------------- loc_5B690: ; CODE XREF: sub_5B542+146j clr.b (byte_FFFFAC08).w loc_5B694: ; CODE XREF: sub_5B542+14Cj move.w (word_FFFFA434).w,(word_FFFFA436).w move.w (word_FFFFA428).w,(word_FFFFA42A).w move.w (word_FFFF95C8).w,d4 move.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_SIZE).l,d3 ; Spacing value of the ECCC adapt and confidence factor cells. ; Ft_Lb mulu.w #$FFFF,d3 lsr.l #8,d3 lsr.l #6,d3 cmpi.w #$1770,d3 bls.s loc_5B6BC move.w #$1770,d3 loc_5B6BC: ; CODE XREF: sub_5B542+174j add.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_OFFSET).l,d3 ; Offset for the ECCC adapt and confidence factor cells. ; Ft_Lb cmpi.w #$1770,d3 bls.s loc_5B6CC move.w #$1770,d3 loc_5B6CC: ; CODE XREF: sub_5B542+184j cmp.w d3,d4 bls.s loc_5B6DE move.w (word_FFFF8C88).w,(word_FFFFA434).w move.w (dword_FFFF8C92+2).w,(word_FFFFA428).w bra.s loc_5B724 ; --------------------------------------------------------------------------- loc_5B6DE: ; CODE XREF: sub_5B542+18Cj cmp.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_OFFSET).l,d4 ; Offset for the ECCC adapt and confidence factor cells. ; Ft_Lb bcc.s loc_5B6F4 move.w (word_FFFF8C80).w,(word_FFFFA434).w move.w (word_FFFF8C8C).w,(word_FFFFA428).w bra.s loc_5B724 ; --------------------------------------------------------------------------- loc_5B6F4: ; CODE XREF: sub_5B542+1A2j move.l d4,d3 sub.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_OFFSET).l,d3 ; Offset for the ECCC adapt and confidence factor cells. ; Ft_Lb bcc.s loc_5B700 clr.w d3 loc_5B700: ; CODE XREF: sub_5B542+1BAj andi.l #$FFFF,d3 asl.l #8,d3 divu.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_SIZE).l,d3 ; Spacing value of the ECCC adapt and confidence factor cells. ; Ft_Lb move.l d3,d4 tbls.w (word_FFFF8C80).w,d4 move.w d4,(word_FFFFA434).w tblu.w (word_FFFF8C8C).w,d3 move.w d3,(word_FFFFA428).w loc_5B724: ; CODE XREF: sub_5B542+19Aj ; sub_5B542+1B0j move.w (word_FFFFA41A).w,d3 add.w (word_FFFFA434).w,d3 bvc.s loc_5B73A bpl.s loc_5B736 move.w #$7FFF,d3 bra.s loc_5B73A ; --------------------------------------------------------------------------- loc_5B736: ; CODE XREF: sub_5B542+1ECj move.w #$8000,d3 loc_5B73A: ; CODE XREF: sub_5B542+1EAj ; sub_5B542+1F2j move.w d3,(word_FFFFA43A).w movem.l (sp)+,d0-d1 rts ; End of function sub_5B542 ; =============== S U B R O U T I N E ======================================= sub_5B744: ; CODE XREF: sub_5B472p move.l d0,-(sp) btst #4,(byte_FFFFA400).w beq.s loc_5B7A6 cmpi.b #2,(byte_FFFF95DD).w bne.s loc_5B7A6 clr.w (word_FFFFA404).w moveq #1,d0 cmp.b (byte_FFFF95DE).w,d0 bne.s loc_5B7A0 move.b (byte_FFFFA40F).w,d3 bne.s loc_5B786 move.w (XTCC_CONTROL_KE_TCC_ENABLE_ON_DELAY_TIME).l,d3 ; TCC Enable is turned on after this amount of time has elapsed from the start of an apply. ; Seconds add.w (XTCC_CONTROL_KE_TCC_APPLY_RAMP_DELAY_TIME).l,d3 ; TCC apply ramping begins after this amount of time has elapsed from when TCC Enable was turned on. ; Seconds bcc.s loc_5B77A move.w #$FFFF,d3 loc_5B77A: ; CODE XREF: sub_5B744+30j move.w d3,(word_FFFFA406).w bclr #6,(byte_FFFFA402).w bra.s loc_5B7C4 ; --------------------------------------------------------------------------- loc_5B786: ; CODE XREF: sub_5B744+22j cmp.b d3,d0 bne.s loc_5B794 move.w (XTCC_CONTROL_KE_TCC_ENABLE_ON_DELAY_TIME).l,(word_FFFFA406).w ; TCC Enable is turned on after this amount of time has elapsed from the start of an apply. ; Seconds bra.s loc_5B798 ; --------------------------------------------------------------------------- loc_5B794: ; CODE XREF: sub_5B744+44j clr.w (word_FFFFA406).w loc_5B798: ; CODE XREF: sub_5B744+4Ej bset #6,(byte_FFFFA402).w bra.s loc_5B7C4 ; --------------------------------------------------------------------------- loc_5B7A0: ; CODE XREF: sub_5B744+1Cj clr.w (word_FFFFA406).w bra.s loc_5B7C4 ; --------------------------------------------------------------------------- loc_5B7A6: ; CODE XREF: sub_5B744+8j ; sub_5B744+10j btst #5,(word_FFFFAD82).w bne.s loc_5B7C4 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA406).w,d3 add.w $A(a2),d3 bcc.s loc_5B7C0 move.w #$FFFF,d3 loc_5B7C0: ; CODE XREF: sub_5B744+76j move.w d3,(word_FFFFA406).w loc_5B7C4: ; CODE XREF: sub_5B744+40j ; sub_5B744+5Aj ... jsr sub_5B542 cmpi.b #2,(byte_FFFF95DD).w bne.w loc_5B870 btst #7,(byte_FFFFA401).w beq.s loc_5B810 move.w (word_FFFF95BC).w,d5 bge.s loc_5B7E4 neg.w d5 loc_5B7E4: ; CODE XREF: sub_5B744+9Cj move.w (word_FFFFAD7A).w,d3 add.w (XTCC_CONTROL_KE_TCC_APPLY_SLIP_DIFFERENCE).l,d3 ; TCC apply is completed when KE_TCC_Apply_Slip_Difference + TCC_On_Reference_Slip >= Slip. ; RPM bvc.s loc_5B7F4 bmi.s loc_5B802 bra.s loc_5B808 ; --------------------------------------------------------------------------- loc_5B7F4: ; CODE XREF: sub_5B744+AAj cmpi.w #$3E8,d3 bgt.s loc_5B802 cmpi.w #$FC18,d3 blt.s loc_5B808 bra.s loc_5B80C ; --------------------------------------------------------------------------- loc_5B802: ; CODE XREF: sub_5B744+ACj ; sub_5B744+B4j move.w #$3E8,d3 bra.s loc_5B80C ; --------------------------------------------------------------------------- loc_5B808: ; CODE XREF: sub_5B744+AEj ; sub_5B744+BAj move.w #$FC18,d3 loc_5B80C: ; CODE XREF: sub_5B744+BCj ; sub_5B744+C2j cmp.w d3,d5 ble.s loc_5B824 loc_5B810: ; CODE XREF: sub_5B744+96j move.w (word_FFFFA40A).w,d4 cmp.w (XTCC_EXECUTION_KE_TCC_MAX_ALLOWED_PRESSURE).l,d4 ; Maximum TCC pressure. ; PSI bcc.s loc_5B824 btst #1,(byte_FFFFA400).w beq.s loc_5B85C loc_5B824: ; CODE XREF: sub_5B744+CAj ; sub_5B744+D6j move.b (byte_FFFF95DE).w,d3 cmpi.b #3,d3 beq.s loc_5B832 tst.b d3 bne.s loc_5B83C loc_5B832: ; CODE XREF: sub_5B744+E8j move.w (XTCC_EXECUTION_KE_TCC_MINIMUM_PRESSURE).l,(word_FFFFA40A).w ; TCC pressure set to this in off mode. ; PSI bra.s loc_5B85C ; --------------------------------------------------------------------------- loc_5B83C: ; CODE XREF: sub_5B744+ECj moveq #1,d4 move.w (word_FFFFA406).w,d3 sub.w (XTCC_CONTROL_KE_TCC_ENABLE_ON_DELAY_TIME).l,d3 ; TCC Enable is turned on after this amount of time has elapsed from the start of an apply. ; Seconds bcc.s loc_5B84C clr.w d3 loc_5B84C: ; CODE XREF: sub_5B744+104j sub.w (XTCC_CONTROL_KE_TCC_APPLY_RAMP_DELAY_TIME).l,d3 ; TCC apply ramping begins after this amount of time has elapsed from when TCC Enable was turned on. ; Seconds bcc.s loc_5B856 clr.w d3 loc_5B856: ; CODE XREF: sub_5B744+10Ej move.w d3,(word_FFFFAD70).w bra.s loc_5B85E ; --------------------------------------------------------------------------- loc_5B85C: ; CODE XREF: sub_5B744+DEj ; sub_5B744+F6j clr.b d4 loc_5B85E: ; CODE XREF: sub_5B744+116j tst.b d4 beq.s loc_5B86A bset #5,(word_FFFFAD82).w bra.s loc_5B870 ; --------------------------------------------------------------------------- loc_5B86A: ; CODE XREF: sub_5B744+11Cj bclr #5,(word_FFFFAD82).w loc_5B870: ; CODE XREF: sub_5B744+8Cj ; sub_5B744+124j move.l (sp)+,d0 rts ; End of function sub_5B744 ; =============== S U B R O U T I N E ======================================= sub_5B874: ; CODE XREF: sub_5B472+18p ; sub_5B472+42p cmpi.b #4,(byte_FFFF95DD).w bne.w loc_5BA10 cmpi.b #5,(byte_FFFF95DE).w beq.w loc_5BA10 move.w (word_FFFF95BC).w,d4 move.w (word_FFFFAD7A).w,d3 add.w (XTCC_CONTROL_KE_LOCKED_OFF_SLIP_OFFSET).l,d3 ; Offset KV_TCC_On_Reference_Slip in TCC Full Lockup Select Logic. ; RPM_s bvc.s loc_5B8A4 bpl.s loc_5B8A0 move.w #$7FFF,d3 bra.s loc_5B8A4 ; --------------------------------------------------------------------------- loc_5B8A0: ; CODE XREF: sub_5B874+24j move.w #$8000,d3 loc_5B8A4: ; CODE XREF: sub_5B874+22j ; sub_5B874+2Aj cmp.w d3,d4 sge d5 neg.b d5 move.w (word_FFFFAD7A).w,d3 add.w (XTCC_CONTROL_KE_LOCKED_ON_SLIP_OFFSET).l,d3 ; Offset KV_TCC_On_Reference_Slip in TCC Full Lockup Select Logic. ; RPM_s bvc.s loc_5B8C2 bpl.s loc_5B8BE move.w #$7FFF,d3 bra.s loc_5B8C2 ; --------------------------------------------------------------------------- loc_5B8BE: ; CODE XREF: sub_5B874+42j move.w #$8000,d3 loc_5B8C2: ; CODE XREF: sub_5B874+40j ; sub_5B874+48j cmp.w d3,d4 slt d3 neg.b d3 btst #7,(byte_FFFFA400).w beq.w loc_5B96E move.w (word_FFFF95DA).w,d3 cmp.w (XTCC_CONTROL_KE_LOCK_LOW_VEHICLE_SPEED).l,d3 ; Enable Full Lockup if Vehicle Speed > this cal. ; MPH bcc.s loc_5B8FA move.w (word_FFFF95C8).w,d3 cmp.w (XTCC_CONTROL_KE_SHIFT_STABILIZATION_ENABLE+2).l,d3 ; Boolean calibration to show if the shift stabilization is enabled or disabled. ; BOOLEAN bcc.s loc_5B8FA btst #7,(byte_FFFFAF98).w beq.s loc_5B90A tst.b (XTCC_CONTROL_KE_HOT_MODE_FULL_LOCK_ENABLE).l ; Flag that indicates whether to allow ECCC full lockup inHot Mode. ; BOOLEAN beq.s loc_5B90A loc_5B8FA: ; CODE XREF: sub_5B874+68j ; sub_5B874+74j btst #4,(byte_FFFFA8FE).w beq.s loc_5B922 tst.b (XTCC_CONTROL_KE_SHIFT_STABILIZATION_ENABLE+1).l ; Boolean calibration to show if the shift stabilization is enabled or disabled. ; BOOLEAN bne.s loc_5B922 loc_5B90A: ; CODE XREF: sub_5B874+7Cj ; sub_5B874+84j bclr #7,(byte_FFFFA400).w move.b #1,(byte_FFFFAD7F).w clr.w (word_FFFFAD68).w clr.w (word_FFFFAD6A).w bra.w loc_5BA22 ; --------------------------------------------------------------------------- loc_5B922: ; CODE XREF: sub_5B874+8Cj ; sub_5B874+94j tst.b d5 beq.s loc_5B966 clr.w (word_FFFFAD6A).w move.w (word_FFFFAD68).w,d3 cmp.w (XTCC_CONTROL_KE_LOCKED_OFF_TIME).l,d3 ; Time-Out for Locked_Off_Timer. ; Seconds bcs.s loc_5B950 move.b #1,(byte_FFFFAD7F).w bclr #7,(byte_FFFFA400).w clr.w (word_FFFFAD68).w bset #2,(byte_FFFFA402).w bra.w locret_5BA2C ; --------------------------------------------------------------------------- loc_5B950: ; CODE XREF: sub_5B874+C0j movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_5B95E move.w #$FFFF,d3 loc_5B95E: ; CODE XREF: sub_5B874+E4j move.w d3,(word_FFFFAD68).w bra.w locret_5BA2C ; --------------------------------------------------------------------------- loc_5B966: ; CODE XREF: sub_5B874+B0j clr.w (word_FFFFAD68).w bra.w locret_5BA2C ; --------------------------------------------------------------------------- loc_5B96E: ; CODE XREF: sub_5B874+5Aj move.w (word_FFFF95DA).w,d4 cmp.w (XTCC_CONTROL_KE_LOCK_HIGH_VEHICLE_SPEED).l,d4 ; Reenable Full Lockup possible when Vehicle Speed > this cal. ; MPH bcc.s loc_5B996 move.w (word_FFFF95C8).w,d4 cmp.w (XTCC_CONTROL_KE_LOCK_ENGINE_TORQUE_HIGH).l,d4 ; One contingencies that must be met before entering ECCC full lockup is that Engine Torque must be greater than this cal. ; FtLb bcc.s loc_5B996 btst #7,(byte_FFFFAF98).w beq.s loc_5B9DC tst.b (XTCC_CONTROL_KE_HOT_MODE_FULL_LOCK_ENABLE).l ; Flag that indicates whether to allow ECCC full lockup inHot Mode. ; BOOLEAN beq.s loc_5B9DC loc_5B996: ; CODE XREF: sub_5B874+104j ; sub_5B874+110j tst.b d3 beq.s loc_5B9DC tst.b (byte_FFFFAD7F).w bne.s loc_5B9DC btst #4,(byte_FFFFA8FE).w beq.s loc_5B9B0 tst.b (XTCC_CONTROL_KE_SHIFT_STABILIZATION_ENABLE+1).l ; Boolean calibration to show if the shift stabilization is enabled or disabled. ; BOOLEAN beq.s loc_5B9DC loc_5B9B0: ; CODE XREF: sub_5B874+132j clr.w (word_FFFFAD68).w move.w (word_FFFFAD6A).w,d3 cmp.w (XTCC_CONTROL_KE_LOCKED_ON_TIME).l,d3 ; Time-Out for Locked_On_Timer. ; Seconds bcs.s loc_5B9C8 bset #7,(byte_FFFFA400).w bra.s loc_5B9DC ; --------------------------------------------------------------------------- loc_5B9C8: ; CODE XREF: sub_5B874+14Aj movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_5B9D6 move.w #$FFFF,d3 loc_5B9D6: ; CODE XREF: sub_5B874+15Cj move.w d3,(word_FFFFAD6A).w bra.s loc_5B9E0 ; --------------------------------------------------------------------------- loc_5B9DC: ; CODE XREF: sub_5B874+118j ; sub_5B874+120j ... clr.w (word_FFFFAD6A).w loc_5B9E0: ; CODE XREF: sub_5B874+166j tst.b (byte_FFFFAD7F).w beq.s locret_5BA2C move.w (word_FFFFAD72).w,d3 cmp.w (XTCC_CONTROL_KE_LOCK_REENABLE_TIME).l,d3 ; Time-Out for TCC_Lock_Reenable_Timer. ; Seconds bcs.s loc_5B9FC clr.b (byte_FFFFAD7F).w clr.w (word_FFFFAD72).w bra.s locret_5BA2C ; --------------------------------------------------------------------------- loc_5B9FC: ; CODE XREF: sub_5B874+17Cj movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_5BA0A move.w #$FFFF,d3 loc_5BA0A: ; CODE XREF: sub_5B874+190j move.w d3,(word_FFFFAD72).w bra.s locret_5BA2C ; --------------------------------------------------------------------------- loc_5BA10: ; CODE XREF: sub_5B874+6j ; sub_5B874+10j bclr #7,(byte_FFFFA400).w clr.b (byte_FFFFAD7F).w clr.w (word_FFFFAD6A).w clr.w (word_FFFFAD68).w loc_5BA22: ; CODE XREF: sub_5B874+AAj clr.w (word_FFFFAD72).w bclr #2,(byte_FFFFA402).w locret_5BA2C: ; CODE XREF: sub_5B874+D8j ; sub_5B874+EEj ... rts ; End of function sub_5B874 ; =============== S U B R O U T I N E ======================================= sub_5BA2E: ; CODE XREF: sub_5B472+1Ep ; sub_5B472+48p movem.l d0-d2/d6/a0,-(sp) move.b (byte_FFFF95DE).w,d3 moveq #1,d4 cmp.b d3,d4 beq.s loc_5BA46 cmpi.b #3,d3 beq.s loc_5BA46 tst.b d3 bne.s loc_5BA52 loc_5BA46: ; CODE XREF: sub_5BA2E+Cj ; sub_5BA2E+12j bclr #4,(byte_FFFFA401).w bclr #7,(byte_FFFFA402).w loc_5BA52: ; CODE XREF: sub_5BA2E+16j btst #7,(byte_FFFFA8FE).w beq.s loc_5BA60 bclr #4,(byte_FFFFA401).w loc_5BA60: ; CODE XREF: sub_5BA2E+2Aj btst #7,(byte_FFFFA8FF).w beq.s loc_5BA8A btst #4,(byte_FFFFA401).w bne.s loc_5BA8A btst #4,(byte_FFFFA8FE).w beq.s loc_5BA8A bset #7,(byte_FFFFA402).w clr.w (word_FFFFAD76).w bset #4,(byte_FFFFA401).w bra.s loc_5BAFE ; --------------------------------------------------------------------------- loc_5BA8A: ; CODE XREF: sub_5BA2E+38j ; sub_5BA2E+40j ... btst #7,(byte_FFFFA402).w beq.s loc_5BAFE tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_5BAC0 move.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l,d3 ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.s loc_5BAAE tst.b d3 beq.s loc_5BAC0 cmpi.b #2,(byte_FFFF95DC).w bhi.s loc_5BAC0 loc_5BAAE: ; CODE XREF: sub_5BA2E+72j move.w (word_FFFF95BC).w,d3 cmp.w (XTCC_CONTROL_KE_TCC_UPSHIFT_SLIP_MIN).l,d3 bgt.s loc_5BAC0 bclr #7,(byte_FFFFA402).w loc_5BAC0: ; CODE XREF: sub_5BA2E+6Aj ; sub_5BA2E+76j ... btst #4,(byte_FFFFA8FF).w beq.s loc_5BAD0 loc_5BAC8: ; CODE XREF: sub_5BA2E+CEj bclr #7,(byte_FFFFA402).w bra.s loc_5BAFE ; --------------------------------------------------------------------------- loc_5BAD0: ; CODE XREF: sub_5BA2E+98j btst #0,(byte_FFFFA8FE).w beq.s loc_5BAFE movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAD76).w,d3 add.w $A(a2),d3 bcc.s loc_5BAEA move.w #$FFFF,d3 loc_5BAEA: ; CODE XREF: sub_5BA2E+B6j move.w d3,(word_FFFFAD76).w clr.w d5 move.b (byte_FFFF95DC).w,d5 cmp.w word_1C7B0(d5.w*2),d3 bcc.s loc_5BAC8 loc_5BAFE: ; CODE XREF: sub_5BA2E+5Aj ; sub_5BA2E+62j ... move.b (byte_FFFF95DD).w,d3 moveq #4,d5 cmp.b d3,d5 bne.s loc_5BB10 btst #7,(byte_FFFFA400).w beq.s loc_5BB16 loc_5BB10: ; CODE XREF: sub_5BA2E+D8j cmpi.b #2,d3 bne.s loc_5BB1E loc_5BB16: ; CODE XREF: sub_5BA2E+E0j bset #5,(byte_FFFFA402).w bra.s loc_5BB24 ; --------------------------------------------------------------------------- loc_5BB1E: ; CODE XREF: sub_5BA2E+E6j bclr #5,(byte_FFFFA402).w loc_5BB24: ; CODE XREF: sub_5BA2E+EEj btst #7,(byte_FFFFA400).w bne.s loc_5BB34 btst #4,(byte_FFFFA400).w beq.s loc_5BB3A loc_5BB34: ; CODE XREF: sub_5BA2E+FCj bclr #3,(byte_FFFFA402).w loc_5BB3A: ; CODE XREF: sub_5BA2E+104j btst #5,(byte_FFFFA402).w beq.w loc_5BD48 btst #3,(byte_FFFFA402).w bne.w loc_5BD48 move.b (byte_FFFF95DE).w,d3 cmp.b d3,d4 bne.s loc_5BB92 bset #3,(byte_FFFFA402).w move.w (word_FFFFA43A).w,d3 sub.w (word_FFFFA426).w,d3 bvc.s loc_5BB72 bpl.s loc_5BB6E move.w #$7FFF,d3 bra.s loc_5BB72 ; --------------------------------------------------------------------------- loc_5BB6E: ; CODE XREF: sub_5BA2E+138j move.w #$8000,d3 loc_5BB72: ; CODE XREF: sub_5BA2E+136j ; sub_5BA2E+13Ej cmp.w (word_FFFFA40A).w,d3 bge.s loc_5BB84 move.w (word_FFFFA40A).w,d3 sub.w (word_FFFFA43A).w,d3 bra.w loc_5BD16 ; --------------------------------------------------------------------------- loc_5BB84: ; CODE XREF: sub_5BA2E+148j move.w (word_FFFFA426).w,d3 neg.w d3 loc_5BB8A: ; CODE XREF: sub_5BA2E:loc_5BD16j ; sub_5BA2E+2F2j ... move.w d3,(word_FFFFA414).w bra.w loc_5BDA4 ; --------------------------------------------------------------------------- loc_5BB92: ; CODE XREF: sub_5BA2E+126j btst #7,(byte_FFFFA401).w beq.w loc_5BCD6 cmpi.b #2,(byte_FFFF95DD).w bne.w loc_5BCD6 bset #3,(byte_FFFFA402).w clr.w (word_FFFFAD6C).w bset #6,(byte_FFFFA402).w move.w (word_FFFF95DA).w,d0 move.w (word_FFFF95C8).w,d1 move.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_SIZE).l,d3 ; Spacing value of the ECCC adapt and confidence factor cells. ; Ft_Lb move.w #$FFFF,d6 mulu.w d6,d3 lsr.l #8,d3 lsr.l #6,d3 cmpi.w #$1770,d3 bls.s loc_5BBD8 move.w #$1770,d3 loc_5BBD8: ; CODE XREF: sub_5BA2E+1A4j add.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_OFFSET).l,d3 ; Offset for the ECCC adapt and confidence factor cells. ; Ft_Lb cmpi.w #$1770,d3 bls.s loc_5BBE8 move.w #$1770,d3 loc_5BBE8: ; CODE XREF: sub_5BA2E+1B4j cmp.w d3,d1 bls.s loc_5BC04 move.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_SIZE).l,d1 ; Spacing value of the ECCC adapt and confidence factor cells. ; Ft_Lb mulu.w d6,d1 lsr.l #8,d1 lsr.l #6,d1 cmpi.w #$1770,d1 bls.s loc_5BC16 move.w #$1770,d1 bra.s loc_5BC16 ; --------------------------------------------------------------------------- loc_5BC04: ; CODE XREF: sub_5BA2E+1BCj cmp.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_OFFSET).l,d1 ; Offset for the ECCC adapt and confidence factor cells. ; Ft_Lb bcc.s loc_5BC10 clr.w d1 bra.s loc_5BC16 ; --------------------------------------------------------------------------- loc_5BC10: ; CODE XREF: sub_5BA2E+1DCj sub.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_OFFSET).l,d1 ; Offset for the ECCC adapt and confidence factor cells. ; Ft_Lb loc_5BC16: ; CODE XREF: sub_5BA2E+1CEj ; sub_5BA2E+1D4j ... cmpi.w #$8000,d0 bcc.s loc_5BC20 lsr.w #4,d0 bra.s loc_5BC24 ; --------------------------------------------------------------------------- loc_5BC20: ; CODE XREF: sub_5BA2E+1ECj move.w #$800,d0 loc_5BC24: ; CODE XREF: sub_5BA2E+1F0j clr.w d2 move.b (byte_FFFF95DC).w,d2 movea.l unk_3ECC.l(d2.w*4),a0 andi.l #$FFFF,d1 asl.l #8,d1 divu.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_SIZE).l,d1 ; Spacing value of the ECCC adapt and confidence factor cells. ; Ft_Lb moveq #$12,d2 jsr (sub_16D6).l move.w d0,d3 move.w (word_FFFF9590).w,d5 moveq #$36,d1 ; '6' add.b d1,d5 clr.w d0 cmp.b d5,d1 bls.s loc_5BC5C move.l d0,d5 bra.s loc_5BC76 ; --------------------------------------------------------------------------- loc_5BC5C: ; CODE XREF: sub_5BA2E+228j cmpi.b #$E6,d5 bcc.s loc_5BC72 andi.w #$FF,d5 sub.w d1,d5 asl.w #7,d5 ext.l d5 divs.w #$B,d5 bra.s loc_5BC76 ; --------------------------------------------------------------------------- loc_5BC72: ; CODE XREF: sub_5BA2E+232j move.w #$800,d5 loc_5BC76: ; CODE XREF: sub_5BA2E+22Cj ; sub_5BA2E+242j tbls.w (XTCC_EXECUTION_KV_TCC_APPLY_TEMP_OFFSET).l,d5 ; TCC Apply Temperature based offset used in determining TCC_Apply_Init_Offset. ; PSI add.w d5,d3 bvc.s loc_5BC8E bpl.s loc_5BC8A move.w #$7FFF,d3 bra.s loc_5BC8E ; --------------------------------------------------------------------------- loc_5BC8A: ; CODE XREF: sub_5BA2E+254j move.w #$8000,d3 loc_5BC8E: ; CODE XREF: sub_5BA2E+252j ; sub_5BA2E+25Aj move.w (word_FFFFA428).w,d5 lsr.w #5,d5 tbls.w (XTCC_EXECUTION_KV_TCC_APPLY_CONF_OFFSET).l,d5 ; TCC Apply Confidence Factor based offset used in determining TCC_Apply_Init_Offset. ; PSI add.w d5,d3 bvc.s loc_5BCA4 bmi.s loc_5BCAC bra.s loc_5BCB2 ; --------------------------------------------------------------------------- loc_5BCA4: ; CODE XREF: sub_5BA2E+270j cmpi.w #$7FFF,d3 bhi.s loc_5BCB2 bra.s loc_5BCB4 ; --------------------------------------------------------------------------- loc_5BCAC: ; CODE XREF: sub_5BA2E+272j move.w #$7FFF,d3 bra.s loc_5BCB4 ; --------------------------------------------------------------------------- loc_5BCB2: ; CODE XREF: sub_5BA2E+274j ; sub_5BA2E+27Aj move.l d0,d3 loc_5BCB4: ; CODE XREF: sub_5BA2E+27Cj ; sub_5BA2E+282j move.w d3,(word_FFFFA426).w move.w d3,d0 move.w (word_FFFFA43A).w,d4 cmp.w d0,d4 bge.s loc_5BCCC neg.w d4 move.w d4,(word_FFFFA414).w bra.w loc_5BDA4 ; --------------------------------------------------------------------------- loc_5BCCC: ; CODE XREF: sub_5BA2E+292j neg.w d0 move.w d0,(word_FFFFA414).w bra.w loc_5BDA4 ; --------------------------------------------------------------------------- loc_5BCD6: ; CODE XREF: sub_5BA2E+16Aj ; sub_5BA2E+174j cmpi.b #5,d3 bne.s loc_5BCF2 bset #3,(byte_FFFFA402).w move.w (word_FFFFA41E).w,(word_FFFFA414).w loc_5BCE8: ; CODE XREF: sub_5BA2E+350j ; sub_5BA2E+372j bclr #6,(byte_FFFFA402).w bra.w loc_5BDA4 ; --------------------------------------------------------------------------- loc_5BCF2: ; CODE XREF: sub_5BA2E+2ACj cmp.b d3,d5 bne.s loc_5BD34 bset #3,(byte_FFFFA402).w bclr #6,(byte_FFFFA402).w btst #2,(byte_FFFFA402).w beq.s loc_5BD2C move.w (XTCC_EXECUTION_KE_TCC_FULL_LOCKUP_OFFSET_TRQ).l,d3 ; Used to find Torque based Locked Point. ; PSI_s add.w d3,d3 add.w (word_FFFFA41C).w,d3 loc_5BD16: ; CODE XREF: sub_5BA2E+152j bvc.w loc_5BB8A bpl.s loc_5BD24 move.w #$7FFF,d3 bra.w loc_5BB8A ; --------------------------------------------------------------------------- loc_5BD24: ; CODE XREF: sub_5BA2E+2ECj move.w #$8000,d3 bra.w loc_5BB8A ; --------------------------------------------------------------------------- loc_5BD2C: ; CODE XREF: sub_5BA2E+2DAj move.w (word_FFFFA41C).w,(word_FFFFA414).w bra.s loc_5BDA4 ; --------------------------------------------------------------------------- loc_5BD34: ; CODE XREF: sub_5BA2E+2C6j cmp.b (byte_FFFF95DD).w,d5 bne.s loc_5BDA4 cmpi.b #2,d3 bne.s loc_5BDA4 bset #3,(byte_FFFFA402).w bra.s loc_5BDA4 ; --------------------------------------------------------------------------- loc_5BD48: ; CODE XREF: sub_5BA2E+112j ; sub_5BA2E+11Cj btst #6,(byte_FFFFA402).w beq.s loc_5BDA4 btst #7,(byte_FFFFA401).w beq.s loc_5BDA4 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAD6C).w,d3 add.w $A(a2),d3 bcc.s loc_5BD6A move.w #$FFFF,d3 loc_5BD6A: ; CODE XREF: sub_5BA2E+336j move.w d3,(word_FFFFAD6C).w move.b (byte_FFFF95DC).w,d0 clr.l d1 move.b d0,d1 cmp.w XTCC_CONTROL_KE_TCC_UPSHIFT_SLIP_MIN(d1.w*2),d3 bcc.w loc_5BCE8 tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_5BDA4 move.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l,d3 ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.s loc_5BD9C tst.b d3 beq.s loc_5BDA4 cmpi.b #2,d0 bhi.s loc_5BDA4 loc_5BD9C: ; CODE XREF: sub_5BA2E+362j tst.w (word_FFFFAD78).w blt.w loc_5BCE8 loc_5BDA4: ; CODE XREF: sub_5BA2E+160j ; sub_5BA2E+29Aj ... btst #6,(byte_FFFFA402).w bne.s loc_5BDB4 btst #7,(byte_FFFFA402).w beq.s loc_5BDBC loc_5BDB4: ; CODE XREF: sub_5BA2E+37Cj bset #5,(byte_FFFFA401).w bra.s loc_5BDC2 ; --------------------------------------------------------------------------- loc_5BDBC: ; CODE XREF: sub_5BA2E+384j bclr #5,(byte_FFFFA401).w loc_5BDC2: ; CODE XREF: sub_5BA2E+38Cj movem.l (sp)+,d0-d2/d6/a0 rts ; End of function sub_5BA2E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5BDC8: ; CODE XREF: sub_5B472+4Ep var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a1,-(sp) bclr #4,(word_FFFFAD82).w tst.b (byte_FFFFA438).w beq.s loc_5BDFA move.w (word_FFFFA40A).w,d3 sub.w (word_FFFFA43A).w,d3 bvc.s loc_5BDF2 bpl.s loc_5BDEE move.w #$7FFF,d3 bra.s loc_5BDF2 ; --------------------------------------------------------------------------- loc_5BDEE: ; CODE XREF: sub_5BDC8+1Ej move.w #$8000,d3 loc_5BDF2: ; CODE XREF: sub_5BDC8+1Cj ; sub_5BDC8+24j move.w d3,(word_FFFFA414).w clr.b (byte_FFFFA438).w loc_5BDFA: ; CODE XREF: sub_5BDC8+12j btst #7,(byte_FFFFA401).w beq.w loc_5C1E2 btst #7,(byte_FFFFA400).w beq.s loc_5BE72 btst #6,(byte_FFFFA401).w bne.s loc_5BE20 bset #6,(byte_FFFFA401).w move.w (word_FFFFA414).w,(word_FFFFA41C).w loc_5BE20: ; CODE XREF: sub_5BDC8+4Aj move.w (XTCC_EXECUTION_KE_TCC_FULL_LOCKUP_OFFSET_TRQ).l,d3 ; Used to find Torque based Locked Point. ; PSI_s add.w d3,d3 add.w (word_FFFFA43A).w,d3 bvc.s loc_5BE32 bmi.s loc_5BE3A bra.s loc_5BE40 ; --------------------------------------------------------------------------- loc_5BE32: ; CODE XREF: sub_5BDC8+64j cmpi.w #$7FFF,d3 bhi.s loc_5BE40 bra.s loc_5BE42 ; --------------------------------------------------------------------------- loc_5BE3A: ; CODE XREF: sub_5BDC8+66j move.w #$7FFF,d3 bra.s loc_5BE42 ; --------------------------------------------------------------------------- loc_5BE40: ; CODE XREF: sub_5BDC8+68j ; sub_5BDC8+6Ej clr.w d3 loc_5BE42: ; CODE XREF: sub_5BDC8+70j ; sub_5BDC8+76j add.w (word_FFFFA41C).w,d3 bvc.s loc_5BE4C bmi.s loc_5BE54 bra.s loc_5BE5A ; --------------------------------------------------------------------------- loc_5BE4C: ; CODE XREF: sub_5BDC8+7Ej cmpi.w #$7FFF,d3 bhi.s loc_5BE5A bra.s loc_5BE5C ; --------------------------------------------------------------------------- loc_5BE54: ; CODE XREF: sub_5BDC8+80j move.w #$7FFF,d3 bra.s loc_5BE5C ; --------------------------------------------------------------------------- loc_5BE5A: ; CODE XREF: sub_5BDC8+82j ; sub_5BDC8+88j clr.w d3 loc_5BE5C: ; CODE XREF: sub_5BDC8+8Aj ; sub_5BDC8+90j move.w d3,(word_FFFFA40A).w move.w (word_FFFFA418).w,d4 cmp.w d4,d3 bls.w loc_5C1F6 move.w d4,(word_FFFFA40A).w bra.w loc_5C1F6 ; --------------------------------------------------------------------------- loc_5BE72: ; CODE XREF: sub_5BDC8+42j bclr #6,(byte_FFFFA401).w btst #5,(byte_FFFFA401).w bne.w loc_5C194 move.w (word_FFFF95BC).w,d3 cmp.w (XTCC_CONTROL_KE_LOCK_ENGINE_TORQUE_HIGH+2).l,d3 ; One contingencies that must be met before entering ECCC full lockup is that Engine Torque must be greater than this cal. ; FtLb bge.s loc_5BE9A move.w (word_FFFFAD7A).w,d3 cmp.w (XTCC_CONTROL_KE_TCC_ON_MIN_REF_SLIP).l,d3 blt.s loc_5BED8 loc_5BE9A: ; CODE XREF: sub_5BDC8+C4j move.w (word_FFFFAD78).w,d3 cmpi.w #$FEC0,d3 bge.s loc_5BEA8 clr.w d3 bra.s loc_5BECA ; --------------------------------------------------------------------------- loc_5BEA8: ; CODE XREF: sub_5BDC8+DAj cmpi.w #$3C0,d3 bge.s loc_5BEC6 addi.w #$140,d3 ext.l d3 asl.l #4,d3 bmi.s loc_5BEC2 divu.l #5,d3 bra.s loc_5BECA ; --------------------------------------------------------------------------- loc_5BEC2: ; CODE XREF: sub_5BDC8+EEj clr.l d3 bra.s loc_5BECA ; --------------------------------------------------------------------------- loc_5BEC6: ; CODE XREF: sub_5BDC8+E4j move.w #$1000,d3 loc_5BECA: ; CODE XREF: sub_5BDC8+DEj ; sub_5BDC8+F8j ... tblu.w (XTCC_EXECUTION_KV_TCC_ON_RATE_TRQ).l,d3 ; TCC On mode pressure ramp rate. ; PSI/Sec move.w d3,(word_FFFFA412).w bra.s loc_5BEE0 ; --------------------------------------------------------------------------- loc_5BED8: ; CODE XREF: sub_5BDC8+D0j move.w (XTCC_EXECUTION_KE_TCC_LOW_SLIP_RATE_TRQ).l,(word_FFFFA412).w loc_5BEE0: ; CODE XREF: sub_5BDC8+10Ej move.w (word_FFFF95BC).w,d6 bge.s loc_5BEE8 neg.w d6 loc_5BEE8: ; CODE XREF: sub_5BDC8+11Cj cmp.w (word_FFFFAD7A).w,d6 blt.s loc_5BF18 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA412).w,d6 mulu.w $A(a2),d6 moveq #$40,d4 ; '@' divu.w d4,d6 bvs.s loc_5BF06 cmpi.w #$7FFF,d6 bls.s loc_5BF0A loc_5BF06: ; CODE XREF: sub_5BDC8+136j move.w #$7FFF,d6 loc_5BF0A: ; CODE XREF: sub_5BDC8+13Cj add.w (word_FFFFA414).w,d6 bvc.s loc_5BF42 bpl.s loc_5BF3E loc_5BF12: ; CODE XREF: sub_5BDC8+174j move.w #$7FFF,d6 bra.s loc_5BF42 ; --------------------------------------------------------------------------- loc_5BF18: ; CODE XREF: sub_5BDC8+124j move.w (word_FFFFA414).w,d6 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA412).w,d3 mulu.w $A(a2),d3 moveq #$40,d7 ; '@' divu.w d7,d3 bvs.s loc_5BF34 cmpi.w #$7FFF,d3 bls.s loc_5BF38 loc_5BF34: ; CODE XREF: sub_5BDC8+164j move.w #$7FFF,d3 loc_5BF38: ; CODE XREF: sub_5BDC8+16Aj sub.w d3,d6 bvc.s loc_5BF42 bmi.s loc_5BF12 loc_5BF3E: ; CODE XREF: sub_5BDC8+148j move.w #$8000,d6 loc_5BF42: ; CODE XREF: sub_5BDC8+146j ; sub_5BDC8+14Ej ... move.w d6,var_2(a6) move.w (XTCC_EXECUTION_KE_ADAPT_COMPLETE_CONF).l,d3 move.w (word_FFFFA428).w,d0 cmp.w d3,d0 bls.s loc_5BF5C cmp.w (word_FFFFA42A).w,d3 bcs.w loc_5C15A loc_5BF5C: ; CODE XREF: sub_5BDC8+18Aj move.w (word_FFFFA40A).w,d6 sub.w (word_FFFFA42E).w,d6 move.w (word_FFFF95C6).w,d3 muls.w (XTCC_EXECUTION_KE_ECCC_ANTI_LOCK_GAIN).l,d3 ; Used in determining changes in TCC_Ramp value when there is a significant ECCC engien torque increase over the previous loop. ; PSI/Ft_Lb cmpi.l #$7FFFFFFF,d3 bhi.s loc_5BF88 divu.w #$40,d3 ; '@' bvs.s loc_5BF82 cmpi.w #$7FFF,d3 bls.s loc_5BF8A loc_5BF82: ; CODE XREF: sub_5BDC8+1B2j move.w #$7FFF,d3 bra.s loc_5BF8A ; --------------------------------------------------------------------------- loc_5BF88: ; CODE XREF: sub_5BDC8+1ACj clr.w d3 loc_5BF8A: ; CODE XREF: sub_5BDC8+1B8j ; sub_5BDC8+1BEj sub.w d3,d6 bvc.s loc_5BF9A bpl.s loc_5BF96 move.w #$7FFF,d6 bra.s loc_5BF9A ; --------------------------------------------------------------------------- loc_5BF96: ; CODE XREF: sub_5BDC8+1C6j move.w #$8000,d6 loc_5BF9A: ; CODE XREF: sub_5BDC8+1C4j ; sub_5BDC8+1CCj move.w d6,(word_FFFFA42C).w move.w (XTCC_EXECUTION_KE_ANTI_LOCK_TORQUE_STEP).l,d2 ; Used to determine if there is a significant increase or decrease in ECCC engine torque over the previous loop ; Ft_Lb move.l d2,d1 move.w (word_FFFF95C6).w,d3 cmp.w d1,d3 ble.w loc_5C08C tst.w d6 ble.w loc_5C08C move.w (word_FFFF95C4).w,d7 move.l d1,d3 mulu.w #$FFFF,d3 lsr.l #8,d3 lsr.l #6,d3 cmpi.w #$1770,d3 bls.s loc_5BFCE move.w #$1770,d3 loc_5BFCE: ; CODE XREF: sub_5BDC8+200j cmp.w d3,d7 ble.s loc_5BFDA move.w (word_1CB68).l,d7 bra.s loc_5BFF6 ; --------------------------------------------------------------------------- loc_5BFDA: ; CODE XREF: sub_5BDC8+208j andi.l #$FFFF,d2 ext.l d7 asl.l #8,d7 bmi.s loc_5BFEC divu.l d2,d7 bra.s loc_5BFEE ; --------------------------------------------------------------------------- loc_5BFEC: ; CODE XREF: sub_5BDC8+21Cj clr.l d7 loc_5BFEE: ; CODE XREF: sub_5BDC8+222j tblu.w (XTCC_EXECUTION_KV_ECCC_POS_ANTI_LOCK_FACTOR).l,d7 ; Used in determining changes in TCC_Ramp value when there is a significant change in engine torque. ; Factor loc_5BFF6: ; CODE XREF: sub_5BDC8+210j andi.l #$FFFF,d7 clr.w d3 move.w #$3333,d4 cmp.w d0,d4 bls.s loc_5C00A move.l d3,d0 bra.s loc_5C018 ; --------------------------------------------------------------------------- loc_5C00A: ; CODE XREF: sub_5BDC8+23Cj subi.w #$3333,d0 ext.l d0 asl.l #7,d0 move.w #$CCD,d5 divs.w d5,d0 loc_5C018: ; CODE XREF: sub_5BDC8+240j move.w (word_FFFFA42A).w,d1 cmp.w d1,d4 bls.s loc_5C024 move.l d3,d1 bra.s loc_5C030 ; --------------------------------------------------------------------------- loc_5C024: ; CODE XREF: sub_5BDC8+256j subi.w #$3333,d1 ext.l d1 asl.l #7,d1 divs.w #$CCD,d1 loc_5C030: ; CODE XREF: sub_5BDC8+25Aj lea (XTCC_EXECUTION_KA_TCC_LESS_CONF_FACTOR).l,a0 ; Used in determining changes in TCC_Ramp value when there is a significant change in engine torque. ; Factor moveq #8,d2 jsr (sub_16D6).l andi.l #$FFFF,d0 move.l d6,d3 ext.l d3 muls.l d0,d3 bpl.s loc_5C054 addi.l #$FFFF,d3 loc_5C054: ; CODE XREF: sub_5BDC8+284j asr.l #8,d3 asr.l #8,d3 ext.l d3 muls.l d7,d3 bpl.s loc_5C066 addi.l #$FFFF,d3 loc_5C066: ; CODE XREF: sub_5BDC8+296j asr.l #8,d3 asr.l #8,d3 move.w d3,(word_FFFFA430).w move.w var_2(a6),d6 sub.w (word_FFFFA430).w,d6 bvc.s loc_5C084 bpl.s loc_5C080 move.w #$7FFF,d6 bra.s loc_5C084 ; --------------------------------------------------------------------------- loc_5C080: ; CODE XREF: sub_5BDC8+2B0j ; sub_5BDC8+388j move.w #$8000,d6 loc_5C084: ; CODE XREF: sub_5BDC8+2AEj ; sub_5BDC8+2B6j ... move.w d6,var_2(a6) bra.w loc_5C15A ; --------------------------------------------------------------------------- loc_5C08C: ; CODE XREF: sub_5BDC8+1E4j ; sub_5BDC8+1EAj neg.w d1 cmp.w d3,d1 ble.w loc_5C15A andi.l #$FFFF,d0 asl.l #8,d0 asl.l #8,d0 move.w #$7FFF,d1 divu.w d1,d0 bvc.s loc_5C0AA move.w #$FFFF,d0 loc_5C0AA: ; CODE XREF: sub_5BDC8+2DCj clr.l d3 move.w (word_FFFFA42A).w,d3 asl.l #8,d3 asl.l #8,d3 divu.w d1,d3 bvc.s loc_5C0BC move.w #$FFFF,d3 loc_5C0BC: ; CODE XREF: sub_5BDC8+2EEj mulu.w d3,d0 lsr.l #8,d0 lsr.l #8,d0 move.w d0,(word_FFFFA432).w move.w (word_FFFF95C4).w,d4 bge.s loc_5C0CE neg.w d4 loc_5C0CE: ; CODE XREF: sub_5BDC8+302j move.l d2,d3 mulu.w #$FFFF,d3 lsr.l #8,d3 lsr.l #6,d3 cmpi.w #$1770,d3 bls.s loc_5C0E2 move.w #$1770,d3 loc_5C0E2: ; CODE XREF: sub_5BDC8+314j cmp.w d3,d4 bls.s loc_5C0EE move.w (word_1CB72).l,d4 bra.s loc_5C100 ; --------------------------------------------------------------------------- loc_5C0EE: ; CODE XREF: sub_5BDC8+31Cj andi.l #$FFFF,d4 asl.l #8,d4 divu.w d2,d4 tblu.w (XTCC_EXECUTION_KV_ECCC_NEG_ANTI_LOCK_FACTOR).l,d4 ; Used in determining changes in TCC_Ramp value when there is a significant change in engine torque. ; Factor loc_5C100: ; CODE XREF: sub_5BDC8+324j movea.w #$4FE,a2 lsr.w #6,d0 tblu.w (XTCC_EXECUTION_KV_NEG_TORQ_CONF_FACTOR).l,d0 ; Used in determining changes in TCC_Ramp value when there is a significant change in engine torque. ; Factor mulu.w d4,d0 lsr.l #8,d0 lsr.l #8,d0 andi.l #$FFFF,d0 move.w (word_FFFFA434).w,d3 sub.w (word_FFFFA436).w,d3 bvc.s loc_5C12E bpl.s loc_5C12A move.l d1,d3 bra.s loc_5C12E ; --------------------------------------------------------------------------- loc_5C12A: ; CODE XREF: sub_5BDC8+35Cj move.w #$8000,d3 loc_5C12E: ; CODE XREF: sub_5BDC8+35Aj ; sub_5BDC8+360j ext.l d3 muls.l d0,d3 bpl.s loc_5C13C addi.l #$FFFF,d3 loc_5C13C: ; CODE XREF: sub_5BDC8+36Cj asr.l #8,d3 asr.l #8,d3 move.w d3,(word_FFFFA430).w move.w var_2(a6),d6 sub.w (word_FFFFA430).w,d6 bvc.w loc_5C084 bpl.w loc_5C080 move.l d1,d6 bra.w loc_5C084 ; --------------------------------------------------------------------------- loc_5C15A: ; CODE XREF: sub_5BDC8+190j ; sub_5BDC8+2C0j ... btst #5,(byte_FFFFA400).w beq.s loc_5C172 move.w var_2(a6),d5 cmp.w (word_FFFFA414).w,d5 ble.s loc_5C194 loc_5C16C: ; CODE XREF: sub_5BDC8+3C4j move.w d5,(word_FFFFA414).w bra.s loc_5C194 ; --------------------------------------------------------------------------- loc_5C172: ; CODE XREF: sub_5BDC8+398j btst #6,(byte_FFFFA400).w bne.s loc_5C182 btst #1,(byte_FFFFA400).w beq.s loc_5C18E loc_5C182: ; CODE XREF: sub_5BDC8+3B0j move.w var_2(a6),d5 cmp.w (word_FFFFA414).w,d5 bge.s loc_5C194 bra.s loc_5C16C ; --------------------------------------------------------------------------- loc_5C18E: ; CODE XREF: sub_5BDC8+3B8j move.w var_2(a6),(word_FFFFA414).w loc_5C194: ; CODE XREF: sub_5BDC8+B6j ; sub_5BDC8+3A2j ... move.w (word_FFFFA40A).w,(word_FFFFA42E).w move.w (word_FFFFA414).w,d3 add.w (word_FFFFA43A).w,d3 bvc.s loc_5C1A8 bmi.s loc_5C1B0 bra.s loc_5C1B6 ; --------------------------------------------------------------------------- loc_5C1A8: ; CODE XREF: sub_5BDC8+3DAj cmpi.w #$7FFF,d3 bhi.s loc_5C1B6 bra.s loc_5C1B8 ; --------------------------------------------------------------------------- loc_5C1B0: ; CODE XREF: sub_5BDC8+3DCj move.w #$7FFF,d3 bra.s loc_5C1B8 ; --------------------------------------------------------------------------- loc_5C1B6: ; CODE XREF: sub_5BDC8+3DEj ; sub_5BDC8+3E4j clr.w d3 loc_5C1B8: ; CODE XREF: sub_5BDC8+3E6j ; sub_5BDC8+3ECj move.w d3,(word_FFFFA40A).w move.w (word_FFFFA418).w,d4 cmp.w d4,d3 bls.s loc_5C1F6 move.w d4,(word_FFFFA40A).w move.l d4,d3 sub.w (word_FFFFA43A).w,d3 bvc.s loc_5C1DC bpl.s loc_5C1D8 move.w #$7FFF,d3 bra.s loc_5C1DC ; --------------------------------------------------------------------------- loc_5C1D8: ; CODE XREF: sub_5BDC8+408j move.w #$8000,d3 loc_5C1DC: ; CODE XREF: sub_5BDC8+406j ; sub_5BDC8+40Ej move.w d3,(word_FFFFA414).w bra.s loc_5C1F6 ; --------------------------------------------------------------------------- loc_5C1E2: ; CODE XREF: sub_5BDC8+38j move.w (word_FFFFA41A).w,d4 move.w d4,(word_FFFFA40A).w move.w (word_FFFFA418).w,d3 cmp.w d3,d4 bls.s loc_5C1F6 move.w d3,(word_FFFFA40A).w loc_5C1F6: ; CODE XREF: sub_5BDC8+9Ej ; sub_5BDC8+A6j ... movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_5BDC8 ; =============== S U B R O U T I N E ======================================= sub_5C1FE: ; CODE XREF: sub_5B472+24p move.l d1,-(sp) btst #4,(byte_FFFFA400).w beq.s loc_5C212 clr.w (word_FFFFA43C).w move.w (word_FFFFA414).w,(word_FFFFA41E).w loc_5C212: ; CODE XREF: sub_5C1FE+8j move.w (word_FFFF95AC).w,d3 clr.w d4 cmpi.w #$4000,d3 bcc.s loc_5C222 lsr.w #2,d3 bra.s loc_5C226 ; --------------------------------------------------------------------------- loc_5C222: ; CODE XREF: sub_5C1FE+1Ej move.w #$1000,d3 loc_5C226: ; CODE XREF: sub_5C1FE+22j tblu.w (XTCC_EXECUTION_KV_COAST_PRESS_OP_PT).l,d3 ; Used during Coast mode to set initial operating point. ; PSI_vs_RPM move.w d3,d1 move.w (word_FFFFAD78).w,d3 cmpi.w #$FEC0,d3 bge.s loc_5C23E move.l d4,d3 bra.s loc_5C260 ; --------------------------------------------------------------------------- loc_5C23E: ; CODE XREF: sub_5C1FE+3Aj cmpi.w #$3C0,d3 bge.s loc_5C25C addi.w #$140,d3 ext.l d3 asl.l #4,d3 bmi.s loc_5C258 divu.l #5,d3 bra.s loc_5C260 ; --------------------------------------------------------------------------- loc_5C258: ; CODE XREF: sub_5C1FE+4Ej clr.l d3 bra.s loc_5C260 ; --------------------------------------------------------------------------- loc_5C25C: ; CODE XREF: sub_5C1FE+44j move.w #$1000,d3 loc_5C260: ; CODE XREF: sub_5C1FE+3Ej ; sub_5C1FE+58j ... tblu.w (XTCC_EXECUTION_KV_TCC_ON_RATE_TRQ).l,d3 ; TCC On mode pressure ramp rate. ; PSI/Sec move.w d3,d5 move.w (word_FFFF95BC).w,d3 bge.s loc_5C272 neg.w d3 loc_5C272: ; CODE XREF: sub_5C1FE+70j cmp.w (word_FFFFAD7A).w,d3 blt.s loc_5C29E movea.l (dword_FFFFB5DE).w,a2 move.l d5,d3 mulu.w $A(a2),d3 divu.w #$40,d3 ; '@' bvs.s loc_5C28C tst.w d3 bge.s loc_5C290 loc_5C28C: ; CODE XREF: sub_5C1FE+88j move.w #$7FFF,d3 loc_5C290: ; CODE XREF: sub_5C1FE+8Cj add.w (word_FFFFA43C).w,d3 bvc.s loc_5C2C2 bpl.s loc_5C2BE loc_5C298: ; CODE XREF: sub_5C1FE+BEj move.w #$7FFF,d3 bra.s loc_5C2C2 ; --------------------------------------------------------------------------- loc_5C29E: ; CODE XREF: sub_5C1FE+78j move.w (word_FFFFA43C).w,d3 movea.l (dword_FFFFB5DE).w,a2 mulu.w $A(a2),d5 divu.w #$40,d5 ; '@' bvs.s loc_5C2B4 tst.w d5 bge.s loc_5C2B8 loc_5C2B4: ; CODE XREF: sub_5C1FE+B0j move.w #$7FFF,d5 loc_5C2B8: ; CODE XREF: sub_5C1FE+B4j sub.w d5,d3 bvc.s loc_5C2C2 bmi.s loc_5C298 loc_5C2BE: ; CODE XREF: sub_5C1FE+98j move.w #$8000,d3 loc_5C2C2: ; CODE XREF: sub_5C1FE+96j ; sub_5C1FE+9Ej ... move.w d3,(word_FFFFA43C).w btst #5,(byte_FFFFA400).w beq.s loc_5C2E6 move.w (word_FFFFA414).w,d4 move.w (word_FFFFA43C).w,d3 cmp.w d4,d3 ble.s loc_5C2E0 loc_5C2DA: ; CODE XREF: sub_5C1FE+102j move.w d3,(word_FFFFA414).w bra.s loc_5C30A ; --------------------------------------------------------------------------- loc_5C2E0: ; CODE XREF: sub_5C1FE+DAj ; sub_5C1FE+104j move.w d4,(word_FFFFA43C).w bra.s loc_5C30A ; --------------------------------------------------------------------------- loc_5C2E6: ; CODE XREF: sub_5C1FE+CEj btst #6,(byte_FFFFA400).w bne.s loc_5C2F6 btst #1,(byte_FFFFA400).w beq.s loc_5C304 loc_5C2F6: ; CODE XREF: sub_5C1FE+EEj move.w (word_FFFFA414).w,d4 move.w (word_FFFFA43C).w,d3 cmp.w d4,d3 blt.s loc_5C2DA bra.s loc_5C2E0 ; --------------------------------------------------------------------------- loc_5C304: ; CODE XREF: sub_5C1FE+F6j move.w (word_FFFFA43C).w,(word_FFFFA414).w loc_5C30A: ; CODE XREF: sub_5C1FE+E0j ; sub_5C1FE+E6j move.l d1,d5 add.w (word_FFFFA414).w,d5 bvc.s loc_5C316 bmi.s loc_5C31E bra.s loc_5C324 ; --------------------------------------------------------------------------- loc_5C316: ; CODE XREF: sub_5C1FE+112j cmpi.w #$7FFF,d5 bhi.s loc_5C324 bra.s loc_5C326 ; --------------------------------------------------------------------------- loc_5C31E: ; CODE XREF: sub_5C1FE+114j move.w #$7FFF,d5 bra.s loc_5C326 ; --------------------------------------------------------------------------- loc_5C324: ; CODE XREF: sub_5C1FE+116j ; sub_5C1FE+11Cj clr.w d5 loc_5C326: ; CODE XREF: sub_5C1FE+11Ej ; sub_5C1FE+124j move.w d5,(word_FFFFA40A).w move.w (word_FFFFA418).w,d3 cmp.w d3,d5 bls.s loc_5C33C move.w d3,(word_FFFFA40A).w sub.w d1,d3 move.w d3,(word_FFFFA414).w loc_5C33C: ; CODE XREF: sub_5C1FE+132j move.l (sp)+,d1 rts ; End of function sub_5C1FE ; =============== S U B R O U T I N E ======================================= sub_5C340: ; CODE XREF: OS2:0005B458p bclr #5,(byte_FFFFA402).w btst #4,(byte_FFFFA400).w beq.s loc_5C35E bclr #2,(byte_FFFFA400).w clr.w (word_FFFFA408).w clr.b (byte_FFFFA40F).w bra.s loc_5C374 ; --------------------------------------------------------------------------- loc_5C35E: ; CODE XREF: sub_5C340+Cj movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA408).w,d3 add.w $A(a2),d3 bcc.s loc_5C370 move.w #$FFFF,d3 loc_5C370: ; CODE XREF: sub_5C340+2Aj move.w d3,(word_FFFFA408).w loc_5C374: ; CODE XREF: sub_5C340+1Cj move.b (byte_FFFFA40F).w,d3 cmpi.b #1,d3 bhi.w loc_5C494 beq.w loc_5C46E clr.b (byte_FFFFA40F).w cmpi.b #2,(byte_FFFF95DE).w bne.s loc_5C396 bclr #4,(word_FFFFAD82).w loc_5C396: ; CODE XREF: sub_5C340+4Ej bclr #5,(word_FFFFAD82).w tst.w (word_FFFFA408).w bne.s loc_5C3C4 btst #2,(byte_FFFFAC06).w beq.s loc_5C3B4 move.w (XTCC_EXECUTION_KE_TCC_TRQ_POS_TPS_RELEASE_RATE).l,(word_FFFFA420).w ; Rate off TCC release when Pos. Delta Throttle. ; PSI/Sec bra.s loc_5C3BC ; --------------------------------------------------------------------------- loc_5C3B4: ; CODE XREF: sub_5C340+68j move.w (XTCC_EXECUTION_KE_TCC_RELEASE_RAMP_RATE).l,(word_FFFFA420).w ; Ramp rate for Release mode. ; PSI/Sec loc_5C3BC: ; CODE XREF: sub_5C340+72j bclr #2,(byte_FFFFA400).w bra.s loc_5C3F0 ; --------------------------------------------------------------------------- loc_5C3C4: ; CODE XREF: sub_5C340+60j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA420).w,d5 mulu.w $A(a2),d5 divu.w #$40,d5 ; '@' bvs.s loc_5C3DE move.w (word_FFFFA40A).w,d3 sub.w d5,d3 bcc.s loc_5C3E0 loc_5C3DE: ; CODE XREF: sub_5C340+94j clr.w d3 loc_5C3E0: ; CODE XREF: sub_5C340+9Cj move.w (XTCC_EXECUTION_KE_TCC_MINIMUM_PRESSURE).l,d4 ; TCC pressure set to this in off mode. ; PSI cmp.w d4,d3 bcc.s loc_5C3EC move.l d4,d3 loc_5C3EC: ; CODE XREF: sub_5C340+A8j move.w d3,(word_FFFFA40A).w loc_5C3F0: ; CODE XREF: sub_5C340+82j btst #2,(byte_FFFFA400).w bne.s loc_5C410 move.w (word_FFFF95BC).w,d3 cmp.w (XTCC_CONTROL_KE_TCC_RELEASE_SLIP_THRESHOLD).l,d3 ; TCC release complete when Slip > KE_TCC_Release_Slip_Threshold ; RPM ble.s loc_5C410 move.w (word_FFFFA408).w,(word_FFFFAD74).w bset #2,(byte_FFFFA400).w loc_5C410: ; CODE XREF: sub_5C340+B6j ; sub_5C340+C2j btst #2,(byte_FFFFA400).w bne.s loc_5C442 move.w (word_FFFFA408).w,d3 cmp.w (XTCC_CONTROL_KE_TCC_MAX_RELEASE_DELAY).l,d3 ; TCC release is completed when release time exceeds this amount of time. ; Seconds bcs.s loc_5C442 move.w (word_FFFFA408).w,(word_FFFFAD74).w loc_5C42A: ; CODE XREF: sub_5C340+11Ej ; sub_5C340+12Cj move.w (word_FFFFA408).w,(word_FFFFAD6E).w move.b #1,(byte_FFFFA40F).w move.w (XTCC_EXECUTION_KE_TCC_MINIMUM_PRESSURE).l,(word_FFFFA40A).w ; TCC pressure set to this in off mode. ; PSI bra.w locret_5C4CA ; --------------------------------------------------------------------------- loc_5C442: ; CODE XREF: sub_5C340+D6j ; sub_5C340+E2j btst #2,(byte_FFFFA400).w beq.s loc_5C460 move.w (XTCC_CONTROL_KE_TCC_MAX_RAMP_OFF_TIME).l,d3 ; TCC release is completed when release time exceeds this amount of time. ; Seconds add.w (word_FFFFAD74).w,d3 bcc.s loc_5C45A move.w #$FFFF,d3 loc_5C45A: ; CODE XREF: sub_5C340+114j cmp.w (word_FFFFA408).w,d3 bls.s loc_5C42A loc_5C460: ; CODE XREF: sub_5C340+108j move.w (word_FFFFA40A).w,d3 cmp.w (XTCC_EXECUTION_KE_TCC_MINIMUM_PRESSURE).l,d3 ; TCC pressure set to this in off mode. ; PSI bne.s locret_5C4CA bra.s loc_5C42A ; --------------------------------------------------------------------------- loc_5C46E: ; CODE XREF: sub_5C340+40j move.w (XTCC_EXECUTION_KE_TCC_MINIMUM_PRESSURE).l,(word_FFFFA40A).w ; TCC pressure set to this in off mode. ; PSI move.w (word_FFFFAD6E).w,d3 add.w (XTCC_CONTROL_KE_TCC_ENABLE_OFF_DELAY_TIME).l,d3 ; Used by release logic to help enable Failsafe Delay Phase. ; Seconds bcc.s loc_5C486 move.w #$FFFF,d3 loc_5C486: ; CODE XREF: sub_5C340+140j cmp.w (word_FFFFA408).w,d3 bcc.s locret_5C4CA move.b #2,(byte_FFFFA40F).w bra.s locret_5C4CA ; --------------------------------------------------------------------------- loc_5C494: ; CODE XREF: sub_5C340+3Cj clr.b (byte_FFFFA40E).w clr.l d5 move.w (XTCC_CONTROL_KE_TCC_ENABLE_OFF_DELAY_TIME).l,d5 ; Used by release logic to help enable Failsafe Delay Phase. ; Seconds clr.l d3 move.w (word_FFFFAD6E).w,d3 add.l d5,d3 clr.l d5 move.w (XTCC_CONTROL_KE_TCC_FAILSAFE_DELAY_TIME).l,d5 ; Maximum time that the Release Failsafe Phase is in affect. ; Seconds add.l d5,d3 cmpi.l #$FFFF,d3 bls.s loc_5C4BE move.w #$FFFF,d3 loc_5C4BE: ; CODE XREF: sub_5C340+178j cmp.w (word_FFFFA408).w,d3 bcc.s locret_5C4CA bset #4,(word_FFFFAD82).w locret_5C4CA: ; CODE XREF: sub_5C340+FEj ; sub_5C340+12Aj ... rts ; End of function sub_5C340 ; =============== S U B R O U T I N E ======================================= sub_5C4CC: ; CODE XREF: OS2:0005B464p move.w (XTCC_EXECUTION_KE_TCC_MINIMUM_PRESSURE).l,d3 ; TCC pressure set to this in off mode. ; PSI cmp.w (word_FFFFA40A).w,d3 bcs.s loc_5C4EA move.w d3,(word_FFFFA40A).w bclr #6,(byte_FFFFA400).w bset #5,(byte_FFFFA400).w bra.s locret_5C50E ; --------------------------------------------------------------------------- loc_5C4EA: ; CODE XREF: sub_5C4CC+Aj bclr #5,(byte_FFFFA400).w move.w (XTCC_EXECUTION_KE_TCC_MAX_ALLOWED_PRESSURE).l,d3 ; Maximum TCC pressure. ; PSI cmp.w (word_FFFFA40A).w,d3 bhi.s loc_5C508 move.w d3,(word_FFFFA40A).w bset #6,(byte_FFFFA400).w bra.s locret_5C50E ; --------------------------------------------------------------------------- loc_5C508: ; CODE XREF: sub_5C4CC+2Ej bclr #6,(byte_FFFFA400).w locret_5C50E: ; CODE XREF: sub_5C4CC+1Cj ; sub_5C4CC+3Aj rts ; End of function sub_5C4CC ; =============== S U B R O U T I N E ======================================= sub_5C510: ; CODE XREF: OS2:0005B46Ap movem.l d0-d2/d6-a1/a4,-(sp) movea.w (word_FFFFB452).w,a4 move.l a4,d0 movea.w (word_FFFF9590).w,a1 move.l a1,d1 clr.w d3 tst.w d1 bge.s loc_5C52A move.l d3,d1 bra.s loc_5C53E ; --------------------------------------------------------------------------- loc_5C52A: ; CODE XREF: sub_5C510+14j cmpi.w #$B0,d1 ; '?' bge.s loc_5C53A asl.w #6,d1 ext.l d1 moveq #$B,d7 divs.w d7,d1 bra.s loc_5C53E ; --------------------------------------------------------------------------- loc_5C53A: ; CODE XREF: sub_5C510+1Ej move.w #$400,d1 loc_5C53E: ; CODE XREF: sub_5C510+18j ; sub_5C510+28j add.w d0,d0 andi.l #$FFFF,d0 moveq #3,d6 divu.w d6,d0 lea (XTCC_EXECUTION_KA_TCC_MINIMUM_CAPACITY).l,a0 ; Used to find minimum duty cycle for Control TCC Solenoids. ; Percent moveq #$22,d2 ; '"' jsr (sub_16D6).l move.w d0,(word_FFFFA422).w move.l a4,d0 move.l a1,d1 clr.w d3 tst.w d1 bge.s loc_5C56A move.l d3,d1 bra.s loc_5C57E ; --------------------------------------------------------------------------- loc_5C56A: ; CODE XREF: sub_5C510+54j cmpi.w #$B0,d1 ; '?' bge.s loc_5C57A asl.w #6,d1 ext.l d1 divs.w #$B,d1 bra.s loc_5C57E ; --------------------------------------------------------------------------- loc_5C57A: ; CODE XREF: sub_5C510+5Ej move.w #$400,d1 loc_5C57E: ; CODE XREF: sub_5C510+58j ; sub_5C510+68j add.w d0,d0 andi.l #$FFFF,d0 divu.w d6,d0 lea (XTCC_EXECUTION_KA_TCC_MAXIMUM_CAPACITY).l,a0 ; Sets maximum duty cycle for Control TCC Solenoids. ; Capacity moveq #$22,d2 ; '"' jsr (sub_16D6).l move.w d0,d7 move.w d7,(word_FFFFA424).w move.b (byte_FFFFB3F7).w,d3 bne.w loc_5C66A tst.b (byte_FFFFB3F8).w bne.w loc_5C66A move.w (word_FFFFA2CE).w,d3 bne.w loc_5C664 btst #6,(byte_FFFF89EE).w beq.s loc_5C5D6 tst.b (TCM_OPTIONS_KE_TRANS_HAS_TCC_RELEASE_SWITCH).l ; Trans has TCC Release Switch. Used with 4T65E transmissions. ; BOOLEAN beq.s loc_5C5D6 btst #6,(byte_FFFF88C0).w bne.s loc_5C5D6 move.w #$7FFF,(word_FFFFA40C).w bra.w loc_5C69A ; --------------------------------------------------------------------------- loc_5C5D6: ; CODE XREF: sub_5C510+AAj ; sub_5C510+B2j ... move.b (byte_FFFF95DD).w,d3 beq.s loc_5C5E0 cmp.b d3,d6 bne.s loc_5C5E4 loc_5C5E0: ; CODE XREF: sub_5C510+CAj moveq #1,d3 bra.s loc_5C5E6 ; --------------------------------------------------------------------------- loc_5C5E4: ; CODE XREF: sub_5C510+CEj clr.b d3 loc_5C5E6: ; CODE XREF: sub_5C510+D2j tst.b d3 bne.s loc_5C5F2 cmpi.b #6,(byte_FFFF95DD).w bne.s loc_5C606 loc_5C5F2: ; CODE XREF: sub_5C510+D8j move.w (word_FFFFA40A).w,d2 cmp.w (XTCC_EXECUTION_KE_TCC_MINIMUM_PRESSURE).l,d2 ; TCC pressure set to this in off mode. ; PSI bne.s loc_5C606 clr.w (word_FFFFA40C).w bra.w loc_5C69A ; --------------------------------------------------------------------------- loc_5C606: ; CODE XREF: sub_5C510+E0j ; sub_5C510+ECj tst.w (word_FFFFA418).w beq.s loc_5C62C clr.l d3 move.w (word_FFFFA40A).w,d3 asl.l #8,d3 asl.l #7,d3 divu.w (word_FFFFA418).w,d3 bvs.s loc_5C622 cmpi.w #$8000,d3 bls.s loc_5C626 loc_5C622: ; CODE XREF: sub_5C510+10Aj move.w #$8000,d3 loc_5C626: ; CODE XREF: sub_5C510+110j move.w d3,(word_FFFFA410).w bra.s loc_5C632 ; --------------------------------------------------------------------------- loc_5C62C: ; CODE XREF: sub_5C510+FAj move.w #$8000,(word_FFFFA410).w loc_5C632: ; CODE XREF: sub_5C510+11Aj clr.l d2 move.w (word_FFFFA410).w,d2 move.w (word_FFFFA424).w,d3 sub.w (word_FFFFA422).w,d3 ext.l d3 muls.l d2,d3 cmpi.l #$7FFFFFFF,d3 bhi.s loc_5C654 lsr.l #8,d3 lsr.l #7,d3 bra.s loc_5C656 ; --------------------------------------------------------------------------- loc_5C654: ; CODE XREF: sub_5C510+13Cj clr.w d3 loc_5C656: ; CODE XREF: sub_5C510+142j add.w (word_FFFFA422).w,d3 cmpi.w #$7FFF,d3 bls.s loc_5C664 move.w #$7FFF,d3 loc_5C664: ; CODE XREF: sub_5C510+A0j ; sub_5C510+14Ej move.w d3,(word_FFFFA40C).w bra.s loc_5C69A ; --------------------------------------------------------------------------- loc_5C66A: ; CODE XREF: sub_5C510+90j ; sub_5C510+98j moveq #1,d4 cmp.b d3,d4 bne.s loc_5C678 move.w #$7FFF,(word_FFFFA40C).w bra.s loc_5C682 ; --------------------------------------------------------------------------- loc_5C678: ; CODE XREF: sub_5C510+15Ej cmpi.b #2,d3 bne.s loc_5C682 clr.w (word_FFFFA40C).w loc_5C682: ; CODE XREF: sub_5C510+166j ; sub_5C510+16Cj move.b (byte_FFFFB3F8).w,d3 cmp.b d3,d4 bne.s loc_5C690 move.b d4,(byte_FFFFA40E).w bra.s loc_5C69A ; --------------------------------------------------------------------------- loc_5C690: ; CODE XREF: sub_5C510+178j cmpi.b #2,d3 bne.s loc_5C69A clr.b (byte_FFFFA40E).w loc_5C69A: ; CODE XREF: sub_5C510+C2j ; sub_5C510+F2j ... move.w (word_FFFFA40C).w,d2 move.b (byte_FFFFA40E).w,d6 btst #0,(byte_FFFFA7E0).w bne.s loc_5C6AE clr.b d3 bra.s loc_5C6BA ; --------------------------------------------------------------------------- loc_5C6AE: ; CODE XREF: sub_5C510+198j tst.b (byte_FFFFA7F4).w bne.s loc_5C6B8 moveq #1,d3 bra.s loc_5C6BA ; --------------------------------------------------------------------------- loc_5C6B8: ; CODE XREF: sub_5C510+1A2j moveq #2,d3 loc_5C6BA: ; CODE XREF: sub_5C510+19Cj ; sub_5C510+1A6j tst.b d3 beq.s loc_5C702 btst #0,(byte_FFFFA7E0).w bne.s loc_5C6CA clr.b d3 bra.s loc_5C6D6 ; --------------------------------------------------------------------------- loc_5C6CA: ; CODE XREF: sub_5C510+1B4j tst.b (byte_FFFFA7F4).w bne.s loc_5C6D4 moveq #1,d3 bra.s loc_5C6D6 ; --------------------------------------------------------------------------- loc_5C6D4: ; CODE XREF: sub_5C510+1BEj moveq #2,d3 loc_5C6D6: ; CODE XREF: sub_5C510+1B8j ; sub_5C510+1C2j cmpi.b #2,d3 bne.s loc_5C6E2 move.w #$7FFF,d2 bra.s loc_5C702 ; --------------------------------------------------------------------------- loc_5C6E2: ; CODE XREF: sub_5C510+1CAj btst #0,(byte_FFFFA7E0).w bne.s loc_5C6EE clr.b d3 bra.s loc_5C6FA ; --------------------------------------------------------------------------- loc_5C6EE: ; CODE XREF: sub_5C510+1D8j tst.b (byte_FFFFA7F4).w bne.s loc_5C6F8 moveq #1,d3 bra.s loc_5C6FA ; --------------------------------------------------------------------------- loc_5C6F8: ; CODE XREF: sub_5C510+1E2j moveq #2,d3 loc_5C6FA: ; CODE XREF: sub_5C510+1DCj ; sub_5C510+1E6j cmpi.b #1,d3 bne.s loc_5C702 clr.w d2 loc_5C702: ; CODE XREF: sub_5C510+1ACj ; sub_5C510+1D0j ... move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d1 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type cmpi.b #1,d1 bhi.s loc_5C72E mulu.w #5,d2 lsr.l #5,d2 clr.l d0 move.w (TCM_OPTIONS_KE_TCC_CONTROL_OPERATING_FREQ).l,d0 ; Used to tune the TCC control solenoid operating frequency ; Hertz move.l #(loc_7E478+1),d1 divu.l d0,d1 moveq #$30,d0 ; '0' jsr (sub_16FA).l loc_5C72E: ; CODE XREF: sub_5C510+1FCj jsr sub_4B04E lsl.b #6,d0 andi.b #$C0,d0 andi.b #$3F,(byte_FFFF95E7).w ; '?' or.b d0,(byte_FFFF95E7).w tst.b (TCM_OPTIONS_K_TCC_ENABLE_SOLENOID_PRESENT).l ; Indicates whether the transmission has a TCC enable solenoid. ; BOOLEAN beq.s loc_5C76C move.l d6,d0 jsr sub_4B054 jsr sub_4B048 lsl.b #4,d0 andi.b #$30,d0 ; '0' andi.b #$CF,(byte_FFFF95E7).w or.b d0,(byte_FFFF95E7).w bra.s loc_5C774 ; --------------------------------------------------------------------------- loc_5C76C: ; CODE XREF: sub_5C510+23Aj moveq #1,d0 jsr sub_4B054 loc_5C774: ; CODE XREF: sub_5C510+25Aj cmp.w (word_FFFFA40C).w,d7 bhi.s loc_5C782 bset #1,(byte_FFFFA400).w bra.s loc_5C788 ; --------------------------------------------------------------------------- loc_5C782: ; CODE XREF: sub_5C510+268j bclr #1,(byte_FFFFA400).w loc_5C788: ; CODE XREF: sub_5C510+270j movem.l (sp)+,d0-d2/d6-a1/a4 rts ; End of function sub_5C510 ; =============== S U B R O U T I N E ======================================= sub_5C78E: ; CODE XREF: OS2:loc_5B45Ep tst.b (XTCC_EXECUTION_KE_TCC_ADAPT_CONTROL).l ; Select which ECCC adapt algorithms will run. ; ENUM beq.s loc_5C7A2 jsr sub_5C7B4 jsr sub_5C900 loc_5C7A2: ; CODE XREF: sub_5C78E+6j cmpi.b #2,(XTCC_EXECUTION_KE_TCC_ADAPT_CONTROL).l ; Select which ECCC adapt algorithms will run. ; ENUM bne.s locret_5C7B2 jsr sub_5CA68 locret_5C7B2: ; CODE XREF: sub_5C78E+1Cj rts ; End of function sub_5C78E ; =============== S U B R O U T I N E ======================================= sub_5C7B4: ; CODE XREF: sub_5C78E+8p movem.l d0-d2/d6-d7,-(sp) move.w (XTCC_EXECUTION_KE_TCC_STABLE_RAMP_FILT).l,d0 ; Filter coefficient used in determining TCC_On_Ramp_Avg. ; Coeff move.w (word_FFFFA414).w,d1 move.w (word_FFFFA444).w,d2 jsr loc_26610 move.w d0,(word_FFFFA444).w move.w (word_FFFFA414).w,d6 sub.w (word_FFFFA444).w,d6 bvc.s loc_5C7E6 bpl.s loc_5C7E2 move.w #$7FFF,d6 bra.s loc_5C7E6 ; --------------------------------------------------------------------------- loc_5C7E2: ; CODE XREF: sub_5C7B4+26j move.w #$8000,d6 loc_5C7E6: ; CODE XREF: sub_5C7B4+24j ; sub_5C7B4+2Cj move.w d6,(word_FFFFA44A).w move.w (XTCC_EXECUTION_KE_TCC_STABLE_TORQUE_FILT).l,d0 ; Filter coefficient used in determining TCC_Eng_Torque_Avg. ; Coeff move.w (word_FFFF95C8).w,d1 move.w (word_FFFFA446).w,d2 jsr loc_26610 move.w d0,(word_FFFFA446).w move.w (word_FFFF95C8).w,d7 sub.w d0,d7 move.w d7,(word_FFFFA44C).w move.w (XTCC_EXECUTION_KE_TCC_STABLE_THROTTLE_FILT).l,d0 ; Filter coefficient used in determining TCC_Throttle_Avg. ; Coeff move.w (word_FFFF9582).w,d1 move.w (word_FFFFA448).w,d2 jsr loc_26610 move.w d0,(word_FFFFA448).w move.w (word_FFFF9582).w,d3 sub.w d0,d3 move.w d3,(word_FFFFA44E).w tst.w d6 bge.s loc_5C834 neg.w d6 loc_5C834: ; CODE XREF: sub_5C7B4+7Cj cmp.w (XTCC_EXECUTION_KE_TCC_RAMP_STABILITY_LOW).l,d6 ; Reset ramp stability variables if Ramp_Stability is above this. ; PSI bhi.s loc_5C844 move.b #1,(byte_FFFFA43F).w bra.s loc_5C84E ; --------------------------------------------------------------------------- loc_5C844: ; CODE XREF: sub_5C7B4+86j clr.b (byte_FFFFA43F).w move.w (word_FFFFA414).w,(word_FFFFA444).w loc_5C84E: ; CODE XREF: sub_5C7B4+8Ej tst.w d7 bge.s loc_5C854 neg.w d7 loc_5C854: ; CODE XREF: sub_5C7B4+9Cj cmp.w (XTCC_EXECUTION_KE_TCC_TORQUE_STABILITY_LOW).l,d7 ; Reset torque stability variables if Torque_Stability is above this. ; Ft_Lb bhi.s loc_5C864 move.b #1,(byte_FFFFA440).w bra.s loc_5C86E ; --------------------------------------------------------------------------- loc_5C864: ; CODE XREF: sub_5C7B4+A6j clr.b (byte_FFFFA440).w move.w (word_FFFF95C8).w,(word_FFFFA446).w loc_5C86E: ; CODE XREF: sub_5C7B4+AEj tst.w d3 bge.s loc_5C874 neg.w d3 loc_5C874: ; CODE XREF: sub_5C7B4+BCj cmp.w (XTCC_EXECUTION_KE_TCC_THROTTLE_STABILITY_LOW).l,d3 ; Reset throttle stability variables if Throttle_Stability is above this. ; % bhi.s loc_5C884 move.b #1,(byte_FFFFA441).w bra.s loc_5C88E ; --------------------------------------------------------------------------- loc_5C884: ; CODE XREF: sub_5C7B4+C6j clr.b (byte_FFFFA441).w move.w (word_FFFF9582).w,(word_FFFFA448).w loc_5C88E: ; CODE XREF: sub_5C7B4+CEj move.b (byte_FFFFA43F).w,d3 and.b (byte_FFFFA440).w,d3 beq.s loc_5C8DE tst.b (byte_FFFFA441).w beq.s loc_5C8DE move.w (word_FFFFAD78).w,d3 bge.s loc_5C8A6 neg.w d3 loc_5C8A6: ; CODE XREF: sub_5C7B4+EEj cmp.w (XTCC_EXECUTION_KE_TCC_SLIPERR_STABILITY_LOW).l,d3 ; Reset TCC_Stability_Timer if abs ( slip_error ) is above this. ; RPM bhi.s loc_5C8DE btst #5,(byte_FFFFA402).w beq.s loc_5C8DE btst #4,(byte_FFFFA8FE).w bne.s loc_5C8DE btst #3,(byte_FFFFA8FE).w bne.s loc_5C8DE movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA442).w,d3 add.w $A(a2),d3 bcc.s loc_5C8D8 move.w #$FFFF,d3 loc_5C8D8: ; CODE XREF: sub_5C7B4+11Ej move.w d3,(word_FFFFA442).w bra.s loc_5C8E2 ; --------------------------------------------------------------------------- loc_5C8DE: ; CODE XREF: sub_5C7B4+E2j ; sub_5C7B4+E8j ... clr.w (word_FFFFA442).w loc_5C8E2: ; CODE XREF: sub_5C7B4+128j move.w (word_FFFFA442).w,d3 cmp.w (XTCC_EXECUTION_KE_TCC_STABLE_TIME).l,d3 ; ECCC must be stable this long before updating ECCC adapts. ; Seconds bls.s loc_5C8F6 move.b #1,(byte_FFFFA43E).w bra.s loc_5C8FA ; --------------------------------------------------------------------------- loc_5C8F6: ; CODE XREF: sub_5C7B4+138j clr.b (byte_FFFFA43E).w loc_5C8FA: ; CODE XREF: sub_5C7B4+140j movem.l (sp)+,d0-d2/d6-d7 rts ; End of function sub_5C7B4 ; =============== S U B R O U T I N E ======================================= sub_5C900: ; CODE XREF: sub_5C78E+Ep tst.b (byte_FFFFA43E).w bne.s loc_5C90E bset #0,(word_FFFFA450+1).w bra.s loc_5C914 ; --------------------------------------------------------------------------- loc_5C90E: ; CODE XREF: sub_5C900+4j bclr #0,(word_FFFFA450+1).w loc_5C914: ; CODE XREF: sub_5C900+Cj move.w (word_FFFF9590).w,d3 addi.w #$36,d3 ; '6' clr.w d4 move.b (XTCC_EXECUTION_KE_TCC_ADAPT_TEMP_LOW).l,d4 cmp.w d3,d4 bcc.s loc_5C934 clr.w d4 move.b (XTCC_EXECUTION_KE_TCC_ADAPT_TEMP_HIGH).l,d4 cmp.w d3,d4 bhi.s loc_5C93C loc_5C934: ; CODE XREF: sub_5C900+26j bset #1,(word_FFFFA450+1).w bra.s loc_5C942 ; --------------------------------------------------------------------------- loc_5C93C: ; CODE XREF: sub_5C900+32j bclr #1,(word_FFFFA450+1).w loc_5C942: ; CODE XREF: sub_5C900+3Aj tst.b (byte_FFFFAC6B).w beq.s loc_5C950 bset #2,(word_FFFFA450+1).w bra.s loc_5C956 ; --------------------------------------------------------------------------- loc_5C950: ; CODE XREF: sub_5C900+46j bclr #2,(word_FFFFA450+1).w loc_5C956: ; CODE XREF: sub_5C900+4Ej move.b (byte_FFFF95E9).w,d3 cmpi.b #3,d3 bhi.s loc_5C988 tst.b (byte_FFFF95DC).w beq.s loc_5C988 asl.b #2,d3 add.b (byte_FFFF95DC).w,d3 andi.w #$FF,d3 tst.b byte_1CB1D(d3.w) bne.s loc_5C982 bset #3,(word_FFFFA450+1).w bra.s loc_5C988 ; --------------------------------------------------------------------------- loc_5C982: ; CODE XREF: sub_5C900+78j bclr #3,(word_FFFFA450+1).w loc_5C988: ; CODE XREF: sub_5C900+5Ej ; sub_5C900+64j ... clr.w d3 move.b (byte_FFFFB010).w,d3 move.w unk_FFFF8C50(d3.w*2),d3 cmp.w (XTCC_EXECUTION_KE_TCC_ADAPT_SS_ADAPT_LOW).l,d3 ; When the steady state adapts in the current mode is above this, the ECCC adapts are disabled. ; PSI bcs.s loc_5C9A4 bset #4,(word_FFFFA450+1).w bra.s loc_5C9AA ; --------------------------------------------------------------------------- loc_5C9A4: ; CODE XREF: sub_5C900+9Aj bclr #4,(word_FFFFA450+1).w loc_5C9AA: ; CODE XREF: sub_5C900+A2j move.w (word_FFFF9582).w,d3 cmp.w (XTCC_EXECUTION_KE_TCC_ADAPT_TPS_LOW).l,d3 ; When throttle is below this value, the ECCC adapts are disabled. ; % bls.s loc_5C9BE cmp.w (XTCC_EXECUTION_KE_TCC_ADAPT_TPS_HIGH).l,d3 ; When throttle is below this value, the ECCC adapts are disabled. ; % bcs.s loc_5C9C6 loc_5C9BE: ; CODE XREF: sub_5C900+B4j bset #5,(word_FFFFA450+1).w bra.s loc_5C9CC ; --------------------------------------------------------------------------- loc_5C9C6: ; CODE XREF: sub_5C900+BCj bclr #5,(word_FFFFA450+1).w loc_5C9CC: ; CODE XREF: sub_5C900+C4j move.w (word_FFFF95C8).w,d3 cmp.w (XTCC_EXECUTION_KE_TCC_ADAPT_TORQUE_LOW).l,d3 ; ECCC adapts are disabled if ECCC engine torque is below this. ; Ft_Lb bls.s loc_5C9E0 cmp.w (XTCC_EXECUTION_KE_TCC_ADAPT_TORQUE_HIGH).l,d3 ; ECCC adapts are disabled if ECCC engine torque is above this. ; Ft_Lb bcs.s loc_5C9E8 loc_5C9E0: ; CODE XREF: sub_5C900+D6j bset #6,(word_FFFFA450+1).w bra.s loc_5C9EE ; --------------------------------------------------------------------------- loc_5C9E8: ; CODE XREF: sub_5C900+DEj bclr #6,(word_FFFFA450+1).w loc_5C9EE: ; CODE XREF: sub_5C900+E6j move.w (word_FFFF95DA).w,d3 cmp.w (XTCC_EXECUTION_KE_TCC_ADAPT_VSPD_LOW).l,d3 ; ECCC adapts are disabled if MPH Output speed is below this. ; MPH bls.s loc_5CA02 cmp.w (XTCC_EXECUTION_KE_TCC_ADAPT_VSPD_HIGH).l,d3 ; ECCC adapts are disabled if MPH Output speed is above this. ; MPH bcs.s loc_5CA0A loc_5CA02: ; CODE XREF: sub_5C900+F8j bset #7,(word_FFFFA450+1).w bra.s loc_5CA10 ; --------------------------------------------------------------------------- loc_5CA0A: ; CODE XREF: sub_5C900+100j bclr #7,(word_FFFFA450+1).w loc_5CA10: ; CODE XREF: sub_5C900+108j tst.b (byte_FFFFA7F9).w beq.s loc_5CA1E bset #0,(word_FFFFA450).w bra.s loc_5CA24 ; --------------------------------------------------------------------------- loc_5CA1E: ; CODE XREF: sub_5C900+114j bclr #0,(word_FFFFA450).w loc_5CA24: ; CODE XREF: sub_5C900+11Cj clr.w d3 move.w (word_FFFFA450).w,d4 eor.w d3,d4 andi.w #$1FF,d4 beq.s loc_5CA3C clr.b (byte_FFFFA454).w loc_5CA36: ; CODE XREF: sub_5C900+160j clr.w (word_FFFFA452).w bra.s locret_5CA66 ; --------------------------------------------------------------------------- loc_5CA3C: ; CODE XREF: sub_5C900+130j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA452).w,d3 add.w $A(a2),d3 bcc.s loc_5CA4E move.w #$FFFF,d3 loc_5CA4E: ; CODE XREF: sub_5C900+148j move.w d3,(word_FFFFA452).w cmp.w (XTCC_EXECUTION_KE_TCC_ADAPT_UPDATE_TIME).l,d3 ; Conditions must be valid for this long before ECCC adapts are allowed. ; Seconds bls.s loc_5CA62 move.b #1,(byte_FFFFA454).w bra.s loc_5CA36 ; --------------------------------------------------------------------------- loc_5CA62: ; CODE XREF: sub_5C900+158j clr.b (byte_FFFFA454).w locret_5CA66: ; CODE XREF: sub_5C900+13Aj rts ; End of function sub_5C900 ; =============== S U B R O U T I N E ======================================= sub_5CA68: ; CODE XREF: sub_5C78E+1Ep tst.b (byte_FFFFA454).w beq.s locret_5CA7A jsr sub_5CA7C jsr sub_5CC7E locret_5CA7A: ; CODE XREF: sub_5CA68+4j rts ; End of function sub_5CA68 ; =============== S U B R O U T I N E ======================================= sub_5CA7C: ; CODE XREF: sub_5CA68+6p var_738C = -$738C movem.l d0-d2/d6-a0,-(sp) move.w (word_FFFF95C8).w,d4 move.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_SIZE).l,d3 ; Spacing value of the ECCC adapt and confidence factor cells. ; Ft_Lb mulu.w #$FFFF,d3 lsr.l #8,d3 lsr.l #6,d3 cmpi.w #$1770,d3 bls.s loc_5CA9C move.w #$1770,d3 loc_5CA9C: ; CODE XREF: sub_5CA7C+1Aj add.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_OFFSET).l,d3 ; Offset for the ECCC adapt and confidence factor cells. ; Ft_Lb cmpi.w #$1770,d3 bls.s loc_5CAAC move.w #$1770,d3 loc_5CAAC: ; CODE XREF: sub_5CA7C+2Aj cmp.w d3,d4 bls.s loc_5CAB4 moveq #4,d0 bra.s loc_5CAE8 ; --------------------------------------------------------------------------- loc_5CAB4: ; CODE XREF: sub_5CA7C+32j cmp.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_OFFSET).l,d4 ; Offset for the ECCC adapt and confidence factor cells. ; Ft_Lb bcc.s loc_5CAC0 clr.b d0 bra.s loc_5CAE8 ; --------------------------------------------------------------------------- loc_5CAC0: ; CODE XREF: sub_5CA7C+3Ej move.l d4,d0 sub.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_OFFSET).l,d0 ; Offset for the ECCC adapt and confidence factor cells. ; Ft_Lb bcc.s loc_5CACC clr.w d0 loc_5CACC: ; CODE XREF: sub_5CA7C+4Cj asl.w #2,d0 andi.l #$FFFF,d0 divu.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_SIZE).l,d0 ; Spacing value of the ECCC adapt and confidence factor cells. ; Ft_Lb bvs.s loc_5CAE2 cmpi.w #$1770,d0 bls.s loc_5CAE6 loc_5CAE2: ; CODE XREF: sub_5CA7C+5Ej move.w #$1770,d0 loc_5CAE6: ; CODE XREF: sub_5CA7C+64j lsr.b #2,d0 loc_5CAE8: ; CODE XREF: sub_5CA7C+36j ; sub_5CA7C+42j clr.l d2 move.b d0,d2 move.l d2,d6 mulu.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_SIZE).l,d6 ; Spacing value of the ECCC adapt and confidence factor cells. ; Ft_Lb add.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_OFFSET).l,d6 ; Offset for the ECCC adapt and confidence factor cells. ; Ft_Lb move.l d6,d4 add.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_SIZE).l,d4 ; Spacing value of the ECCC adapt and confidence factor cells. ; Ft_Lb cmpi.w #$1770,d4 bls.s loc_5CB0C move.w #$1770,d4 loc_5CB0C: ; CODE XREF: sub_5CA7C+8Aj sub.w (word_FFFFA446).w,d4 bcc.s loc_5CB14 clr.w d4 loc_5CB14: ; CODE XREF: sub_5CA7C+94j andi.l #$FFFF,d4 asl.l #8,d4 asl.l #6,d4 divu.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_SIZE).l,d4 ; Spacing value of the ECCC adapt and confidence factor cells. ; Ft_Lb bvc.s loc_5CB2A move.w #$FFFF,d4 loc_5CB2A: ; CODE XREF: sub_5CA7C+A8j move.l d4,d3 mulu.w (XTCC_EXECUTION_KE_TCC_CONF_FACT_INC).l,d3 ; Percentage used in calculating the increased value for the neighboring cellswhen updating TCC_Adapt_Conf_Factor cells ; % move.w #$4000,d7 divu.w d7,d3 bvs.s loc_5CB3E tst.w d3 bge.s loc_5CB42 loc_5CB3E: ; CODE XREF: sub_5CA7C+BCj move.w #$7FFF,d3 loc_5CB42: ; CODE XREF: sub_5CA7C+C0j move.w (word_FFFFA444).w,d1 bge.s loc_5CB4A neg.w d1 loc_5CB4A: ; CODE XREF: sub_5CA7C+CAj clr.w d5 tst.w d1 bge.s loc_5CB54 move.l d5,d1 bra.s loc_5CB68 ; --------------------------------------------------------------------------- loc_5CB54: ; CODE XREF: sub_5CA7C+D2j cmpi.w #$800,d1 bge.s loc_5CB64 tst.w d1 bpl.s loc_5CB60 addq.w #1,d1 loc_5CB60: ; CODE XREF: sub_5CA7C+E0j asr.w #1,d1 bra.s loc_5CB68 ; --------------------------------------------------------------------------- loc_5CB64: ; CODE XREF: sub_5CA7C+DCj move.w #$400,d1 loc_5CB68: ; CODE XREF: sub_5CA7C+D6j ; sub_5CA7C+E6j tblu.w (XTCC_EXECUTION_KV_TCC_CONF_FACT_DEC).l,d1 ; Used in calculating the decreased value of the neighboring cells when updating TCC_Adapt_Conf_Factor cells. ; % mulu.w d4,d1 divu.w d7,d1 bvs.s loc_5CB7A tst.w d1 bge.s loc_5CB7E loc_5CB7A: ; CODE XREF: sub_5CA7C+F8j move.w #$7FFF,d1 loc_5CB7E: ; CODE XREF: sub_5CA7C+FCj sub.w d1,d3 bvc.s loc_5CB8E bpl.s loc_5CB8A move.w #$7FFF,d3 bra.s loc_5CB8E ; --------------------------------------------------------------------------- loc_5CB8A: ; CODE XREF: sub_5CA7C+106j move.w #$8000,d3 loc_5CB8E: ; CODE XREF: sub_5CA7C+104j ; sub_5CA7C+10Cj clr.l d1 move.b d0,d1 add.w word_FFFF8C8C(d1.w*2),d3 bvc.s loc_5CB9E bmi.s loc_5CBA6 bra.s loc_5CBAC ; --------------------------------------------------------------------------- loc_5CB9E: ; CODE XREF: sub_5CA7C+11Cj cmpi.w #$7FFF,d3 bhi.s loc_5CBAC bra.s loc_5CBAE ; --------------------------------------------------------------------------- loc_5CBA6: ; CODE XREF: sub_5CA7C+11Ej move.w #$7FFF,d3 bra.s loc_5CBAE ; --------------------------------------------------------------------------- loc_5CBAC: ; CODE XREF: sub_5CA7C+120j ; sub_5CA7C+126j move.l d5,d3 loc_5CBAE: ; CODE XREF: sub_5CA7C+128j ; sub_5CA7C+12Ej move.w d3,$18+var_738C(d2.w*2) cmpi.b #4,d0 bcc.w loc_5CC66 move.w (word_FFFFA446).w,d4 sub.w d6,d4 bcc.s loc_5CBC6 move.l d5,d4 loc_5CBC6: ; CODE XREF: sub_5CA7C+146j andi.l #$FFFF,d4 asl.l #8,d4 asl.l #6,d4 divu.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_SIZE).l,d4 ; Spacing value of the ECCC adapt and confidence factor cells. ; Ft_Lb bvc.s loc_5CBDC move.w #$FFFF,d4 loc_5CBDC: ; CODE XREF: sub_5CA7C+15Aj move.l d4,d3 mulu.w (XTCC_EXECUTION_KE_TCC_CONF_FACT_INC).l,d3 ; Percentage used in calculating the increased value for the neighboring cellswhen updating TCC_Adapt_Conf_Factor cells ; % divu.w d7,d3 bvs.s loc_5CBEC tst.w d3 bge.s loc_5CBF0 loc_5CBEC: ; CODE XREF: sub_5CA7C+16Aj move.w #$7FFF,d3 loc_5CBF0: ; CODE XREF: sub_5CA7C+16Ej move.w (word_FFFFA444).w,d1 bge.s loc_5CBF8 neg.w d1 loc_5CBF8: ; CODE XREF: sub_5CA7C+178j tst.w d1 bge.s loc_5CC00 move.l d5,d1 bra.s loc_5CC14 ; --------------------------------------------------------------------------- loc_5CC00: ; CODE XREF: sub_5CA7C+17Ej cmpi.w #$800,d1 bge.s loc_5CC10 tst.w d1 bpl.s loc_5CC0C addq.w #1,d1 loc_5CC0C: ; CODE XREF: sub_5CA7C+18Cj asr.w #1,d1 bra.s loc_5CC14 ; --------------------------------------------------------------------------- loc_5CC10: ; CODE XREF: sub_5CA7C+188j move.w #$400,d1 loc_5CC14: ; CODE XREF: sub_5CA7C+182j ; sub_5CA7C+192j tblu.w (XTCC_EXECUTION_KV_TCC_CONF_FACT_DEC).l,d1 ; Used in calculating the decreased value of the neighboring cells when updating TCC_Adapt_Conf_Factor cells. ; % mulu.w d4,d1 divu.w d7,d1 bvs.s loc_5CC26 tst.w d1 bge.s loc_5CC2A loc_5CC26: ; CODE XREF: sub_5CA7C+1A4j move.w #$7FFF,d1 loc_5CC2A: ; CODE XREF: sub_5CA7C+1A8j sub.w d1,d3 bvc.s loc_5CC3A bpl.s loc_5CC36 move.w #$7FFF,d3 bra.s loc_5CC3A ; --------------------------------------------------------------------------- loc_5CC36: ; CODE XREF: sub_5CA7C+1B2j move.w #$8000,d3 loc_5CC3A: ; CODE XREF: sub_5CA7C+1B0j ; sub_5CA7C+1B8j addq.b #1,d2 clr.l d1 move.b d2,d1 andi.w #$FF,d2 add.w word_FFFF8C8C(d2.w*2),d3 bvc.s loc_5CC50 bmi.s loc_5CC58 bra.s loc_5CC5E ; --------------------------------------------------------------------------- loc_5CC50: ; CODE XREF: sub_5CA7C+1CEj cmpi.w #$7FFF,d3 bhi.s loc_5CC5E bra.s loc_5CC60 ; --------------------------------------------------------------------------- loc_5CC58: ; CODE XREF: sub_5CA7C+1D0j move.w #$7FFF,d3 bra.s loc_5CC60 ; --------------------------------------------------------------------------- loc_5CC5E: ; CODE XREF: sub_5CA7C+1D2j ; sub_5CA7C+1D8j move.l d5,d3 loc_5CC60: ; CODE XREF: sub_5CA7C+1DAj ; sub_5CA7C+1E0j move.w d3,$18+var_738C(d1.w*2) loc_5CC66: ; CODE XREF: sub_5CA7C+13Cj movea.l #unk_FF8C8C,a0 moveq #$A,d0 jsr sub_2654C move.w d0,(word_FFFF8C96).w movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_5CA7C ; =============== S U B R O U T I N E ======================================= sub_5CC7E: ; CODE XREF: sub_5CA68+Cp var_7398 = -$7398 movem.l d0-d2/d6-a0,-(sp) clr.w d7 loc_5CC84: ; CODE XREF: sub_5CC7E+134j move.w (word_FFFFA446).w,d1 move.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_SIZE).l,d3 ; Spacing value of the ECCC adapt and confidence factor cells. ; Ft_Lb move.w #$FFFF,d2 mulu.w d2,d3 lsr.l #8,d3 lsr.l #6,d3 cmpi.w #$1770,d3 bls.s loc_5CCA2 move.w #$1770,d3 loc_5CCA2: ; CODE XREF: sub_5CC7E+1Ej add.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_OFFSET).l,d3 ; Offset for the ECCC adapt and confidence factor cells. ; Ft_Lb cmpi.w #$1770,d3 bls.s loc_5CCB2 move.w #$1770,d3 loc_5CCB2: ; CODE XREF: sub_5CC7E+2Ej cmp.w d3,d1 bls.s loc_5CCCE move.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_SIZE).l,d1 ; Spacing value of the ECCC adapt and confidence factor cells. ; Ft_Lb mulu.w d2,d1 lsr.l #8,d1 lsr.l #6,d1 cmpi.w #$1770,d1 bls.s loc_5CCDE move.w #$1770,d1 bra.s loc_5CCDE ; --------------------------------------------------------------------------- loc_5CCCE: ; CODE XREF: sub_5CC7E+36j move.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_OFFSET).l,d3 ; Offset for the ECCC adapt and confidence factor cells. ; Ft_Lb cmp.w d3,d1 bcc.s loc_5CCDC clr.w d1 bra.s loc_5CCDE ; --------------------------------------------------------------------------- loc_5CCDC: ; CODE XREF: sub_5CC7E+58j sub.w d3,d1 loc_5CCDE: ; CODE XREF: sub_5CC7E+48j ; sub_5CC7E+4Ej ... clr.l d4 move.b d7,d4 move.l d4,d5 mulu.w #$A,d5 andi.l #$FFFF,d1 asl.l #8,d1 divu.w (XTCC_EXECUTION_KE_TCC_TORQUE_STEP_SIZE).l,d1 ; Spacing value of the ECCC adapt and confidence factor cells. ; Ft_Lb tblu.w XTCC_EXECUTION_KA_TCC_ADAPT_MEMBERSHIP(d5.l),d1 ; Membership variable for each cell used as an index into KV_TCC_Adapt_Cell_Weight. ; Factor clr.l d4 move.b d7,d4 move.w word_FFFF8C8C(d4.w*2),d0 move.l d1,d6 lsr.w #6,d6 tblu.w (XTCC_EXECUTION_KV_TCC_ADAPT_CELL_WEIGHT).l,d6 ; Adapt Cell Weight value used in the calculations of each of the TCC Adapt Cells. ; Factor lsr.w #6,d1 lsr.w #4,d0 lea (XTCC_EXECUTION_KA_TCC_ADAPT_CONF_FACT_GAIN).l,a0 ; Adapt confidence factor gain used in the calculations of each of the TCC Adapt Cells. ; Factor moveq #$12,d2 jsr (sub_16D6).l mulu.w d0,d6 lsr.l #8,d6 lsr.l #8,d6 andi.l #$FFFF,d6 move.w (word_FFFFA444).w,d3 ext.l d3 muls.l d6,d3 bpl.s loc_5CD46 addi.l #$FFFF,d3 loc_5CD46: ; CODE XREF: sub_5CC7E+C0j asr.l #8,d3 asr.l #8,d3 move.l d3,d1 tst.w d1 bge.s loc_5CD52 neg.w d1 loc_5CD52: ; CODE XREF: sub_5CC7E+D0j cmp.w (XTCC_EXECUTION_KE_TCC_ADAPT_DEADBAND).l,d1 ; If the ECCC adapt modification value for a cell is BELOW this threshold, then no adapting is performed on that particular cell. ; PSI blt.s loc_5CDAC clr.l d1 move.b d7,d1 add.w word_FFFF8C80(d1.w*2),d3 bvc.s loc_5CD72 bpl.s loc_5CD6E move.w #$7FFF,d3 bra.s loc_5CD72 ; --------------------------------------------------------------------------- loc_5CD6E: ; CODE XREF: sub_5CC7E+E8j move.w #$8000,d3 loc_5CD72: ; CODE XREF: sub_5CC7E+E6j ; sub_5CC7E+EEj move.w (XTCC_EXECUTION_KE_TCC_ADAPT_MIN).l,d4 ; Each individual adapt cell is limited to this minimum value. ; PSI cmp.w d4,d3 bge.s loc_5CD80 loc_5CD7C: ; CODE XREF: sub_5CC7E+10Aj move.l d4,d3 bra.s loc_5CD8A ; --------------------------------------------------------------------------- loc_5CD80: ; CODE XREF: sub_5CC7E+FCj move.w (XTCC_EXECUTION_KE_TCC_ADAPT_MAX).l,d4 ; Each individual adapt cell is limited to this maximum value. ; PSI cmp.w d4,d3 bgt.s loc_5CD7C loc_5CD8A: ; CODE XREF: sub_5CC7E+100j clr.l d1 move.b d7,d1 move.w d3,$18+var_7398(d1.w*2) movea.l #unk_FF8C80,a0 moveq #$A,d0 jsr sub_2654C move.w d0,(word_FFFF8C8A).w move.b #1,(byte_FFFFA438).w loc_5CDAC: ; CODE XREF: sub_5CC7E+DAj addq.b #1,d7 cmpi.b #4,d7 bls.w loc_5CC84 movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_5CC7E ; =============== S U B R O U T I N E ======================================= sub_5CDBC: ; CODE XREF: OS1:00028C80p movem.l d0/a0-a1,-(sp) movea.l #unk_FF8C80,a1 movea.l a1,a0 moveq #$A,d0 jsr sub_2654C cmp.w (word_FFFF8C8A).w,d0 beq.s loc_5CDF8 clr.w (word_FFFF8C80).w clr.w (word_FFFF8C82).w clr.w (word_FFFF8C84).w clr.w (word_FFFF8C86).w clr.w (word_FFFF8C88).w movea.l a1,a0 moveq #$A,d0 jsr sub_2654C move.w d0,(word_FFFF8C8A).w loc_5CDF8: ; CODE XREF: sub_5CDBC+18j movea.l #unk_FF8C8C,a1 movea.l a1,a0 moveq #$A,d0 jsr sub_2654C cmp.w (word_FFFF8C96).w,d0 beq.s loc_5CE28 clr.l (dword_FFFF8C92).w clr.l (dword_FFFF8C8E).w clr.w (word_FFFF8C8C).w movea.l a1,a0 moveq #$A,d0 jsr sub_2654C move.w d0,(word_FFFF8C96).w loc_5CE28: ; CODE XREF: sub_5CDBC+50j movem.l (sp)+,d0/a0-a1 rts ; End of function sub_5CDBC ; =============== S U B R O U T I N E ======================================= sub_5CE2E: ; CODE XREF: sub_5B062+7Ap move.l a1,-(sp) move.b (byte_FFFF95DC).w,d4 clr.l d5 move.b d4,d5 movea.l unk_2148(d5.w*4),a2 move.w (a2),d3 beq.s loc_5CE4E move.w d3,(a0) moveq #1,d0 move.b #1,(byte_FFFFB525).w bra.s loc_5CE72 ; --------------------------------------------------------------------------- loc_5CE4E: ; CODE XREF: sub_5CE2E+12j move.b d4,(byte_FFFFB524).w move.w #$FFFF,(a0) clr.b (byte_FFFFB525).w move.l #unk_888F4,-(sp) move.l #unk_88984,-(sp) movea.l #unk_88864,a1 jsr sub_5CEB4 loc_5CE72: ; CODE XREF: sub_5CE2E+1Ej movea.l (sp)+,a1 rts ; End of function sub_5CE2E ; =============== S U B R O U T I N E ======================================= sub_5CE76: ; CODE XREF: sub_5AB84+5Cp move.l a1,-(sp) move.b (byte_FFFF95DC).w,d4 clr.l d5 move.b d4,d5 movea.l off_2154(d5.w*4),a2 move.w (a2),d3 beq.s loc_5CE90 move.w d3,(a0) moveq #1,d0 bra.s loc_5CEB0 ; --------------------------------------------------------------------------- loc_5CE90: ; CODE XREF: sub_5CE76+12j move.b d4,(byte_FFFFB524).w move.w #$FFFF,(a0) move.l #unk_8893C,-(sp) move.l #unk_889CC,-(sp) movea.l #unk_888AC,a1 jsr sub_5CEB4 loc_5CEB0: ; CODE XREF: sub_5CE76+18j movea.l (sp)+,a1 rts ; End of function sub_5CE76 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5CEB4: ; CODE XREF: sub_5CE2E+3Ep ; sub_5CE76+34p var_14 = -$14 var_12 = -$12 var_10 = -$10 var_C = -$C var_A = -$A var_6 = -6 arg_0 = 8 arg_4 = $C link a6,#-$14 movem.l d1-d2/d6-d7/a4-a5,-(sp) movea.l a0,a4 movea.l arg_0(a6),a0 movea.l arg_4(a6),a5 move.w (word_FFFF958C).w,d3 lea var_6(a6),a2 clr.w d0 move.b (byte_FFFFB524).w,d0 moveq #6,d1 mulu.w d1,d0 clr.w d4 move.b (byte_FFFF95F2).w,d4 moveq #$12,d2 mulu.w d2,d4 add.b d0,d4 andi.w #$FF,d4 move.l -4(a1,d4.w),2(a2) move.w -6(a1,d4.w),(a2) move.l 2(a2),var_A(a6) move.w (a2),var_C(a6) tst.l var_A(a6) beq.s loc_5CF22 move.b #1,var_14(a6) tst.b var_C(a6) beq.s loc_5CF1A movea.l var_A(a6),a2 lsr.w #3,d3 tblu.w (a2),d3 bra.s loc_5CF28 ; --------------------------------------------------------------------------- loc_5CF1A: ; CODE XREF: sub_5CEB4+58j movea.l var_A(a6),a2 move.w (a2),d3 bra.s loc_5CF28 ; --------------------------------------------------------------------------- loc_5CF22: ; CODE XREF: sub_5CEB4+4Cj clr.b var_14(a6) clr.w d3 loc_5CF28: ; CODE XREF: sub_5CEB4+64j ; sub_5CEB4+6Cj tst.b var_14(a6) beq.w loc_5D116 cmpi.w #$FF00,d3 bcs.s loc_5CF3E move.w #$FFFF,(a4) bra.w loc_5D116 ; --------------------------------------------------------------------------- loc_5CF3E: ; CODE XREF: sub_5CEB4+80j lea var_C(a6),a2 clr.w d0 move.b (byte_FFFFB524).w,d0 mulu.w d1,d0 clr.w d4 move.b (byte_FFFF95F2).w,d4 mulu.w d2,d4 add.b d0,d4 andi.w #$FF,d4 move.l -4(a0,d4.w),2(a2) move.w -6(a0,d4.w),(a2) move.l 2(a2),var_10(a6) move.w (a2),var_12(a6) clr.w d0 move.b (byte_FFFF95FC).w,d0 move.w (word_FFFF958C).w,d5 tst.l var_10(a6) beq.s loc_5CF9E move.b #1,var_C(a6) tst.b var_12(a6) beq.s loc_5CF96 movea.l var_10(a6),a2 move.l d5,d4 lsr.w #3,d4 tbls.w (a2),d4 bra.s loc_5CFA4 ; --------------------------------------------------------------------------- loc_5CF96: ; CODE XREF: sub_5CEB4+D2j movea.l var_10(a6),a2 move.w (a2),d4 bra.s loc_5CFA4 ; --------------------------------------------------------------------------- loc_5CF9E: ; CODE XREF: sub_5CEB4+C6j clr.b var_C(a6) clr.w d4 loc_5CFA4: ; CODE XREF: sub_5CEB4+E0j ; sub_5CEB4+E8j muls.w d4,d0 bpl.s loc_5CFAE addi.l #$FF,d0 loc_5CFAE: ; CODE XREF: sub_5CEB4+F2j asr.l #8,d0 ext.l d0 andi.l #$FFFF,d3 add.l d0,d3 tst.l d3 blt.s loc_5CFCC cmpi.l #$FFFF,d3 bls.s loc_5CFCE move.w #$FFFF,d3 bra.s loc_5CFCE ; --------------------------------------------------------------------------- loc_5CFCC: ; CODE XREF: sub_5CEB4+108j clr.w d3 loc_5CFCE: ; CODE XREF: sub_5CEB4+110j ; sub_5CEB4+116j lea var_C(a6),a2 clr.w d0 move.b (byte_FFFFB524).w,d0 mulu.w d1,d0 clr.w d4 move.b (byte_FFFF95F2).w,d4 mulu.w d2,d4 add.b d0,d4 andi.w #$FF,d4 move.l -4(a5,d4.w),2(a2) move.w -6(a5,d4.w),(a2) move.l 2(a2),var_10(a6) move.w (a2),var_12(a6) move.b (byte_FFFF958E).w,d0 clr.w d4 moveq #$55,d6 ; 'U' cmp.b d0,d6 bls.s loc_5D00C move.l d4,d0 bra.s loc_5D02A ; --------------------------------------------------------------------------- loc_5D00C: ; CODE XREF: sub_5CEB4+152j cmpi.b #$79,d0 ; 'y' bcc.s loc_5D026 sub.b d6,d0 andi.w #$FF,d0 asl.w #8,d0 andi.l #$FFFF,d0 divu.w #9,d0 bra.s loc_5D02A ; --------------------------------------------------------------------------- loc_5D026: ; CODE XREF: sub_5CEB4+15Cj move.w #$400,d0 loc_5D02A: ; CODE XREF: sub_5CEB4+156j ; sub_5CEB4+170j tblu.b (X_LIBRARY_KV_ALTITUDE_FACTOR).l,d0 ; Shift point altitude compensation gain factor ; Factor 0-1 andi.w #$FF,d0 move.w (word_FFFF958C).w,d5 move.l var_10(a6),d4 beq.s loc_5D064 move.b #1,var_C(a6) tst.b var_12(a6) beq.s loc_5D05C movea.l d4,a2 move.l d5,d4 lsr.w #3,d4 tbls.b (a2),d4 ext.w d4 asl.w #7,d4 bra.s loc_5D06A ; --------------------------------------------------------------------------- loc_5D05C: ; CODE XREF: sub_5CEB4+196j movea.l var_10(a6),a2 move.w (a2),d4 bra.s loc_5D06A ; --------------------------------------------------------------------------- loc_5D064: ; CODE XREF: sub_5CEB4+18Aj clr.b var_C(a6) clr.w d4 loc_5D06A: ; CODE XREF: sub_5CEB4+1A6j ; sub_5CEB4+1AEj muls.w d4,d0 bpl.s loc_5D074 addi.l #$FF,d0 loc_5D074: ; CODE XREF: sub_5CEB4+1B8j asr.l #8,d0 move.w d0,(word_FFFFB528).w move.b (byte_FFFF958E).w,d4 clr.w d5 cmp.b d4,d6 bls.s loc_5D088 move.l d5,d4 bra.s loc_5D0A6 ; --------------------------------------------------------------------------- loc_5D088: ; CODE XREF: sub_5CEB4+1CEj cmpi.b #$79,d4 ; 'y' bcc.s loc_5D0A2 sub.b d6,d4 andi.w #$FF,d4 asl.w #8,d4 andi.l #$FFFF,d4 divu.w #9,d4 bra.s loc_5D0A6 ; --------------------------------------------------------------------------- loc_5D0A2: ; CODE XREF: sub_5CEB4+1D8j move.w #$400,d4 loc_5D0A6: ; CODE XREF: sub_5CEB4+1D2j ; sub_5CEB4+1ECj tblu.b (X_LIBRARY_KV_ALTITUDE_FACTOR).l,d4 ; Shift point altitude compensation gain factor ; Factor 0-1 andi.w #$FF,d4 move.w d4,d0 move.w (word_FFFF958C).w,d5 tst.l var_10(a6) beq.s loc_5D0E4 move.b #1,var_C(a6) tst.b var_12(a6) beq.s loc_5D0DC movea.l var_10(a6),a2 move.l d5,d4 lsr.w #3,d4 tbls.b (a2),d4 ext.w d4 asl.w #7,d4 bra.s loc_5D0EA ; --------------------------------------------------------------------------- loc_5D0DC: ; CODE XREF: sub_5CEB4+214j movea.l var_10(a6),a2 move.w (a2),d4 bra.s loc_5D0EA ; --------------------------------------------------------------------------- loc_5D0E4: ; CODE XREF: sub_5CEB4+208j clr.b var_C(a6) clr.w d4 loc_5D0EA: ; CODE XREF: sub_5CEB4+226j ; sub_5CEB4+22Ej muls.w d4,d0 bpl.s loc_5D0F4 addi.l #$FF,d0 loc_5D0F4: ; CODE XREF: sub_5CEB4+238j asr.l #8,d0 ext.l d0 andi.l #$FFFF,d3 add.l d0,d3 tst.l d3 blt.s loc_5D112 cmpi.l #$FFFF,d3 bls.s loc_5D114 move.w #$FFFF,d3 bra.s loc_5D114 ; --------------------------------------------------------------------------- loc_5D112: ; CODE XREF: sub_5CEB4+24Ej clr.w d3 loc_5D114: ; CODE XREF: sub_5CEB4+256j ; sub_5CEB4+25Cj move.w d3,(a4) loc_5D116: ; CODE XREF: sub_5CEB4+78j ; sub_5CEB4+86j clr.w d4 move.b (byte_FFFF95F2).w,d4 mulu.w #3,d4 add.b (byte_FFFF95DC).w,d4 andi.w #$FF,d4 movea.l off_88830(d4.w*4),a3 move.l a3,d5 beq.s loc_5D14E move.w (word_FFFF95DA).w,d3 cmpi.w #$8000,d3 bcc.s loc_5D142 lsr.w #3,d3 bra.s loc_5D146 ; --------------------------------------------------------------------------- loc_5D142: ; CODE XREF: sub_5CEB4+288j move.w #$1000,d3 loc_5D146: ; CODE XREF: sub_5CEB4+28Cj tblu.w (a3),d3 move.w d3,(word_FFFFB526).w loc_5D14E: ; CODE XREF: sub_5CEB4+27Ej move.b var_14(a6),d0 movem.l (sp)+,d1-d2/d6-d7/a4-a5 unlk a6 rtd #8 ; End of function sub_5CEB4 ; =============== S U B R O U T I N E ======================================= sub_5D15C: ; CODE XREF: sub_4CB7A+10p movem.l d0/a0,-(sp) move.b (byte_FFFFA2DA).w,d3 cmpi.b #1,d3 bne.s loc_5D17E lea (XTIM_ADAPT_KA_ADAPTIVE_CELL_PRELOADS).l,a0 ; These define preloadable values for the Adaptive_Cells; There are 17 cells per shift. ; PSI_s lea (unk_FFFF8B96).w,a2 moveq #$1A,d0 loc_5D176: ; CODE XREF: sub_5D15C+1Cj move.w (a0)+,(a2)+ dbf d0,loc_5D176 bra.s loc_5D1F4 ; --------------------------------------------------------------------------- loc_5D17E: ; CODE XREF: sub_5D15C+Cj cmpi.b #3,d3 bne.s loc_5D192 lea (unk_FFFF8B96).w,a0 moveq #$1A,d0 loc_5D18A: ; CODE XREF: sub_5D15C+30j clr.w (a0)+ dbf d0,loc_5D18A bra.s loc_5D1F4 ; --------------------------------------------------------------------------- loc_5D192: ; CODE XREF: sub_5D15C+26j cmpi.b #2,d3 bne.s loc_5D1A2 move.w (XTIM_ADAPT_KE_ADAPTIVE_PRELOAD_CHECKSUM).l,(word_FFFF8BCC).w ; Preload Checksum value for Shift Adaptive Cells. ; Cardinal bra.s loc_5D206 ; --------------------------------------------------------------------------- loc_5D1A2: ; CODE XREF: sub_5D15C+3Aj cmpi.b #4,d3 bne.s loc_5D1BE lea (XTIM_ADAPT_KA_ADAPTIVE_CELL_PRELOADS).l,a0 ; These define preloadable values for the Adaptive_Cells; There are 17 cells per shift. ; PSI_s lea (unk_FFFF8B96).w,a2 moveq #7,d0 loc_5D1B4: ; CODE XREF: sub_5D15C+5Aj move.w (a0)+,(a2)+ dbf d0,loc_5D1B4 move.b (a0)+,(a2)+ bra.s loc_5D1F4 ; --------------------------------------------------------------------------- loc_5D1BE: ; CODE XREF: sub_5D15C+4Aj cmpi.b #5,d3 bne.s loc_5D1DA lea (unk_1CDD8).l,a0 lea (unk_FFFF8BA8).w,a2 moveq #7,d0 loc_5D1D0: ; CODE XREF: sub_5D15C+76j move.w (a0)+,(a2)+ dbf d0,loc_5D1D0 move.b (a0)+,(a2)+ bra.s loc_5D1F4 ; --------------------------------------------------------------------------- loc_5D1DA: ; CODE XREF: sub_5D15C+66j cmpi.b #6,d3 bne.s loc_5D206 lea (unk_1CDEA).l,a0 lea (unk_FFFF8BBA).w,a2 moveq #7,d0 loc_5D1EC: ; CODE XREF: sub_5D15C+92j move.w (a0)+,(a2)+ dbf d0,loc_5D1EC move.b (a0)+,(a2)+ loc_5D1F4: ; CODE XREF: sub_5D15C+20j ; sub_5D15C+34j ... movea.l #unk_FF8B96,a0 moveq #$36,d0 ; '6' jsr sub_2654C move.w d0,(word_FFFF8BCC).w loc_5D206: ; CODE XREF: sub_5D15C+44j ; sub_5D15C+82j movem.l (sp)+,d0/a0 rts ; End of function sub_5D15C ; =============== S U B R O U T I N E ======================================= sub_5D20C: ; CODE XREF: sub_56EDC:loc_56F16p move.l a0,-(sp) andi.w #$FF,d0 mulu.w #$12,d0 lea -$747C(d0.l),a0 move.w (word_FFFFA902).w,d0 jsr sub_8774A movea.l (sp)+,a0 rts ; End of function sub_5D20C ; =============== S U B R O U T I N E ======================================= sub_5D22A: ; CODE XREF: sub_4EFF2+4C6p var_5104 = -$5104 var_50FE = -$50FE movea.w (word_FFFFB412).w,a2 move.w (word_FFFFA90E).w,d3 sub.w a2,d3 clr.w d4 move.b (byte_FFFF95DC).w,d4 move.w a2,var_5104(d4.w*2) clr.w d4 move.b (byte_FFFF95DC).w,d4 move.w d3,var_50FE(d4.w*2) clr.b (byte_FFFFAF0B).w rts ; End of function sub_5D22A ; =============== S U B R O U T I N E ======================================= sub_5D252: ; CODE XREF: sub_5D45C+4p movem.l d0-d2/a0-a1,-(sp) move.w (XTIM_ADAPT_KE_FACTOR_TEMP_RISE).l,d1 sub.w (XTIM_ADAPT_KE_FACTOR_MIN_TEMP_RISE).l,d1 ; Low limit transmission temperature rise used to determineshift adapt factor due to temperature rise ; Degree C beq.s loc_5D2A4 move.w (XTIM_ADAPT_KE_FACTOR_TEMP_RISE).l,d3 sub.w (XTIM_ADAPT_KE_FACTOR_MIN_TEMP_RISE).l,d3 ; Low limit transmission temperature rise used to determineshift adapt factor due to temperature rise ; Degree C move.w (word_FFFF9590).w,d1 sub.w (word_FFFF9592).w,d1 sub.w (XTIM_ADAPT_KE_FACTOR_MIN_TEMP_RISE).l,d1 ; Low limit transmission temperature rise used to determineshift adapt factor due to temperature rise ; Degree C ext.l d1 asl.l #7,d1 divs.w d3,d1 bvc.s loc_5D28E swap d1 eor.w d3,d1 bmi.s loc_5D2A0 bra.s loc_5D2A4 ; --------------------------------------------------------------------------- loc_5D28E: ; CODE XREF: sub_5D252+32j tst.w d1 blt.s loc_5D2A0 cmpi.w #$FF,d1 bhi.s loc_5D2A4 cmpi.b #$80,d1 bls.s loc_5D2A8 bra.s loc_5D2A4 ; --------------------------------------------------------------------------- loc_5D2A0: ; CODE XREF: sub_5D252+38j ; sub_5D252+3Ej clr.b d1 bra.s loc_5D2A8 ; --------------------------------------------------------------------------- loc_5D2A4: ; CODE XREF: sub_5D252+10j ; sub_5D252+3Aj ... move.b #$80,d1 loc_5D2A8: ; CODE XREF: sub_5D252+4Aj ; sub_5D252+50j move.w (XTIM_ADAPT_KE_FACTOR_WARM_TEMPERATURE).l,d3 sub.w (XTIM_VALIDATION_KE_TRANSMISSION_TEMP_LOW_VALID).l,d3 ; The lowest transmission temperature to be considered valid. ; Degrees_C beq.s loc_5D2F2 move.w (XTIM_ADAPT_KE_FACTOR_WARM_TEMPERATURE).l,d0 sub.w (XTIM_VALIDATION_KE_TRANSMISSION_TEMP_LOW_VALID).l,d0 ; The lowest transmission temperature to be considered valid. ; Degrees_C move.w (word_FFFF9590).w,d3 sub.w (XTIM_VALIDATION_KE_TRANSMISSION_TEMP_LOW_VALID).l,d3 ; The lowest transmission temperature to be considered valid. ; Degrees_C ext.l d3 asl.l #7,d3 divs.w d0,d3 bvc.s loc_5D2DC swap d3 eor.w d0,d3 bmi.s loc_5D2EE bra.s loc_5D2F2 ; --------------------------------------------------------------------------- loc_5D2DC: ; CODE XREF: sub_5D252+80j tst.w d3 blt.s loc_5D2EE cmpi.w #$FF,d3 bhi.s loc_5D2F2 cmpi.b #$80,d3 bls.s loc_5D2F6 bra.s loc_5D2F2 ; --------------------------------------------------------------------------- loc_5D2EE: ; CODE XREF: sub_5D252+86j ; sub_5D252+8Cj clr.b d3 bra.s loc_5D2F6 ; --------------------------------------------------------------------------- loc_5D2F2: ; CODE XREF: sub_5D252+62j ; sub_5D252+88j ... move.b #$80,d3 loc_5D2F6: ; CODE XREF: sub_5D252+98j ; sub_5D252+9Ej andi.w #$FF,d3 andi.w #$FF,d1 mulu.w d3,d1 lsr.w #7,d1 move.b d1,(byte_FFFFAF17).w move.w (word_FFFF9590).w,d3 cmp.w (XTIM_ADAPT_KE_FACTOR_WARM_TEMP_C).l,d3 bgt.s loc_5D342 move.w (XTIM_ADAPT_KE_FACTOR_WARM_TEMP_B).l,d0 sub.w (XTIM_ADAPT_KE_FACTOR_WARM_TEMP_A).l,d0 ; Lower limit transmission temperature in warm state for shiftadapt factor rising point A ; Degree C sub.w (XTIM_ADAPT_KE_FACTOR_WARM_TEMP_A).l,d3 ; Lower limit transmission temperature in warm state for shiftadapt factor rising point A ; Degree C ext.l d3 asl.l #7,d3 divs.w d0,d3 bvs.s loc_5D360 loc_5D32C: ; CODE XREF: sub_5D252+10Cj tst.w d3 blt.s loc_5D366 cmpi.w #$FF,d3 bhi.s loc_5D33C cmpi.b #$80,d3 bls.s loc_5D368 loc_5D33C: ; CODE XREF: sub_5D252+E2j ; sub_5D252+112j move.b #$80,d3 bra.s loc_5D368 ; --------------------------------------------------------------------------- loc_5D342: ; CODE XREF: sub_5D252+BEj move.w (XTIM_VALIDATION_KE_TRANSMISSION_TEMP_HIGH_VALID).l,d0 ; The highest transmission temperature to be considered valid. ; Degrees_C sub.w (XTIM_ADAPT_KE_FACTOR_WARM_TEMP_C).l,d0 move.w (XTIM_VALIDATION_KE_TRANSMISSION_TEMP_HIGH_VALID).l,d3 ; The highest transmission temperature to be considered valid. ; Degrees_C sub.w (word_FFFF9590).w,d3 ext.l d3 asl.l #7,d3 divs.w d0,d3 bvc.s loc_5D32C loc_5D360: ; CODE XREF: sub_5D252+D8j swap d3 eor.w d0,d3 bpl.s loc_5D33C loc_5D366: ; CODE XREF: sub_5D252+DCj clr.b d3 loc_5D368: ; CODE XREF: sub_5D252+E8j ; sub_5D252+EEj move.b d3,(byte_FFFFAF19).w move.w (word_FFFFA902).w,d0 movea.l #XTIM_VALIDATION_KV_THROTTLE_VARIATION_LIMIT,a0 jsr sub_877BE move.b (XTIM_ADAPT_KE_FACTOR_TPS_1_MINUS_PERCENT).l,d3 ; Limit shift throttle deviation for shift adapt factorfalling down ; Factor not.b d3 andi.w #$FF,d3 mulu.w d0,d3 lsr.l #8,d3 cmp.w (word_FFFFB4C6).w,d3 bls.s loc_5D39A move.b #$80,(byte_FFFFAF18).w bra.s loc_5D3F2 ; --------------------------------------------------------------------------- loc_5D39A: ; CODE XREF: sub_5D252+13Ej move.w (word_FFFFA902).w,d0 movea.l #XTIM_VALIDATION_KV_THROTTLE_VARIATION_LIMIT,a1 movea.l a1,a0 jsr sub_877BE move.w d0,d2 sub.w (word_FFFFB4C6).w,d2 bcc.s loc_5D3B6 clr.w d2 loc_5D3B6: ; CODE XREF: sub_5D252+160j move.w (word_FFFFA902).w,d0 movea.l a1,a0 jsr sub_877BE move.w d0,d4 clr.w d3 move.b (XTIM_ADAPT_KE_FACTOR_TPS_1_MINUS_PERCENT).l,d3 ; Limit shift throttle deviation for shift adapt factorfalling down ; Factor mulu.w d4,d3 lsr.l #8,d3 move.w d3,d4 andi.l #$FFFF,d2 asl.l #7,d2 divu.w d4,d2 bvs.s loc_5D3EA cmpi.w #$FF,d2 bhi.s loc_5D3EA cmpi.b #$80,d2 bls.s loc_5D3EE loc_5D3EA: ; CODE XREF: sub_5D252+18Aj ; sub_5D252+190j move.b #$80,d2 loc_5D3EE: ; CODE XREF: sub_5D252+196j move.b d2,(byte_FFFFAF18).w loc_5D3F2: ; CODE XREF: sub_5D252+146j clr.w d3 move.b (XTIM_ADAPT_KE_SHIFT_ADAPT_TEMP_RISE_WEIGHT).l,d3 ; Weight factor for shift adapt factor due to transmissiontemperature rise ; Factor andi.w #$FF,d1 mulu.w d3,d1 lsr.w #8,d1 clr.w d5 move.b (XTIM_ADAPT_KE_SHIFT_ADAPT_WARM_TEMP_WEIGHT).l,d5 ; Weight factor for shift adapt factor due to transmissiontemperature in warm state ; Factor clr.w d3 move.b (byte_FFFFAF19).w,d3 mulu.w d5,d3 lsr.w #8,d3 add.b d1,d3 bcs.s loc_5D41E cmpi.b #$80,d3 bls.s loc_5D422 loc_5D41E: ; CODE XREF: sub_5D252+1C4j move.b #$80,d3 loc_5D422: ; CODE XREF: sub_5D252+1CAj cmpi.b #$40,d3 ; '@' bcs.s loc_5D430 move.b #$80,(byte_FFFFAF16).w bra.s loc_5D442 ; --------------------------------------------------------------------------- loc_5D430: ; CODE XREF: sub_5D252+1D4j add.b d3,d3 bcs.s loc_5D43A cmpi.b #$80,d3 bls.s loc_5D43E loc_5D43A: ; CODE XREF: sub_5D252+1E0j move.b #$80,d3 loc_5D43E: ; CODE XREF: sub_5D252+1E6j move.b d3,(byte_FFFFAF16).w loc_5D442: ; CODE XREF: sub_5D252+1DCj clr.w d5 move.b (byte_FFFFAF18).w,d5 clr.w d3 move.b (byte_FFFFAF16).w,d3 mulu.w d5,d3 lsr.w #7,d3 move.b d3,(byte_FFFFAF16).w movem.l (sp)+,d0-d2/a0-a1 rts ; End of function sub_5D252 ; =============== S U B R O U T I N E ======================================= sub_5D45C: ; CODE XREF: sub_4EFF2+4D4p var_7498 = -$7498 var_5112 = -$5112 movem.l d0-d2/d6-a1,-(sp) jsr sub_5D252 clr.b (byte_FFFFAF0A).w clr.w d0 move.b (byte_FFFF95DC).w,d0 move.w word_FFFFB408(d0.w*2),d3 move.l d0,d1 moveq #$12,d6 mulu.w d6,d1 lea unk_1CD34(d1.l),a3 movea.w #$800,a2 move.w byte_FFFFAEFC(d0.w*2),d5 move.w #$80,d7 ; '?' cmp.w d5,d7 bls.s loc_5D4A0 andi.l #$FFFF,d5 asl.l #4,d5 bra.s loc_5D4A4 ; --------------------------------------------------------------------------- loc_5D4A0: ; CODE XREF: sub_5D45C+38j move.w #$800,d5 loc_5D4A4: ; CODE XREF: sub_5D45C+42j tblu.w (a3),d5 sub.w d5,d3 move.w d3,$1C+var_5112(d0.w*2) tst.w d3 bgt.s loc_5D4BC loc_5D4B4: ; CODE XREF: sub_5D45C+E0j clr.w (word_FFFFAF12).w bra.w loc_5D54C ; --------------------------------------------------------------------------- loc_5D4BC: ; CODE XREF: sub_5D45C+56j lea unk_1CCE0(d1.l),a3 move.w d3,d4 cmp.w d4,d7 bls.s loc_5D4D4 andi.l #$FFFF,d4 asl.l #4,d4 bra.s loc_5D4D8 ; --------------------------------------------------------------------------- loc_5D4D4: ; CODE XREF: sub_5D45C+6Cj move.w #$800,d4 loc_5D4D8: ; CODE XREF: sub_5D45C+76j tblu.w (a3),d4 move.w d4,d1 move.w d1,(word_FFFFAF14).w move.w (word_FFFFA902).w,d4 mulu.w #$A,d0 lea unk_1CD1E(d0.l),a2 clr.l d3 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_5D50A cmpi.w #$1770,d3 bls.s loc_5D50E loc_5D50A: ; CODE XREF: sub_5D45C+A6j move.w #$1770,d3 loc_5D50E: ; CODE XREF: sub_5D45C+ACj cmp.w d3,d4 bls.s loc_5D514 move.w d3,d4 loc_5D514: ; CODE XREF: sub_5D45C+B4j move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.w #2,d3 andi.l #$FFFF,d4 asl.l #8,d4 divu.w d3,d4 tblu.b (a2),d4 andi.w #$FF,d4 mulu.w d1,d4 lsr.l #7,d4 move.w d4,(word_FFFFAF12).w cmp.w (XTIM_ADAPT_KE_SHIFT_DELAY_MOD_HYSTERESIS).l,d4 ; This is the maximum long shift delay time allowedin using the long shift delay modifier. ; PSI bcs.w loc_5D4B4 moveq #1,d5 move.b d5,(byte_FFFFAF0A).w lsr.w #4,d4 move.b d4,(byte_FFFFAF0B).w loc_5D54C: ; CODE XREF: sub_5D45C+5Cj tst.w (word_FFFFAF12).w bne.w loc_5D66E btst #2,(byte_FFFFA8FE).w beq.w loc_5D66E clr.w d3 move.b (byte_FFFF95DC).w,d3 movea.l d3,a1 move.b (byte_FFFF95DC).w,d4 move.w word_FFFFAF02(d3.w*2),d3 cmp.w word_1CCB0(a1.w*2),d3 bge.s loc_5D594 moveq #2,d5 move.b d5,(byte_FFFFAF0A).w clr.w d2 move.b (byte_FFFF95DC).w,d2 move.b byte_1CCED(d2.w),(byte_FFFFAF0B).w bra.w loc_5D66E ; --------------------------------------------------------------------------- loc_5D594: ; CODE XREF: sub_5D45C+11Cj move.b #3,(byte_FFFFAF0A).w move.w (word_FFFFA902).w,d0 clr.w d3 move.b (byte_FFFF95DC).w,d3 mulu.w d6,d3 lea XTIM_ADAPT_KE_SHIFT_DELAY_MOD_HYSTERESIS(d3.l),a2 ; This is the maximum long shift delay time allowedin using the long shift delay modifier. ; PSI clr.l d3 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_5D5C6 cmpi.w #$1770,d3 bls.s loc_5D5CA loc_5D5C6: ; CODE XREF: sub_5D45C+162j move.w #$1770,d3 loc_5D5CA: ; CODE XREF: sub_5D45C+168j cmp.w d3,d0 bls.s loc_5D5D0 move.w d3,d0 loc_5D5D0: ; CODE XREF: sub_5D45C+170j move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb add.w d3,d3 andi.l #$FFFF,d0 asl.l #8,d0 divu.w d3,d0 tblu.b (a2),d0 andi.w #$FF,d0 clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w word_FFFFAF02(d3.w*2),d3 clr.w d4 move.b (byte_FFFF95DC).w,d4 mulu.w d6,d4 lea unk_1CCA6(d4.l),a3 movea.w #$1000,a2 clr.w d4 cmpi.w #$FFD8,d3 bge.s loc_5D616 move.l d4,d3 bra.s loc_5D63A ; --------------------------------------------------------------------------- loc_5D616: ; CODE XREF: sub_5D45C+1B4j cmpi.w #$28,d3 ; '(' bge.s loc_5D636 move.l d3,d5 ext.l d5 moveq #$28,d3 ; '(' add.l d5,d3 asl.l #8,d3 bmi.s loc_5D632 divu.l #5,d3 bra.s loc_5D63A ; --------------------------------------------------------------------------- loc_5D632: ; CODE XREF: sub_5D45C+1CAj clr.l d3 bra.s loc_5D63A ; --------------------------------------------------------------------------- loc_5D636: ; CODE XREF: sub_5D45C+1BEj move.w #$1000,d3 loc_5D63A: ; CODE XREF: sub_5D45C+1B8j ; sub_5D45C+1D4j ... tbls.b (a3),d3 ext.w d3 muls.w d0,d3 bpl.s loc_5D648 addi.w #$7F,d3 ; '' loc_5D648: ; CODE XREF: sub_5D45C+1E6j asr.w #7,d3 cmpi.w #$FF80,d3 blt.s loc_5D668 cmpi.w #$7F,d3 ; '' bgt.s loc_5D664 cmpi.b #$77,d3 ; 'w' bgt.s loc_5D664 cmpi.b #$88,d3 blt.s loc_5D668 bra.s loc_5D66A ; --------------------------------------------------------------------------- loc_5D664: ; CODE XREF: sub_5D45C+1F8j ; sub_5D45C+1FEj moveq #$77,d3 ; 'w' bra.s loc_5D66A ; --------------------------------------------------------------------------- loc_5D668: ; CODE XREF: sub_5D45C+1F2j ; sub_5D45C+204j moveq #$FFFFFF88,d3 loc_5D66A: ; CODE XREF: sub_5D45C+206j ; sub_5D45C+20Aj move.b d3,(byte_FFFFAF0B).w loc_5D66E: ; CODE XREF: sub_5D45C+F4j ; sub_5D45C+FEj ... tst.b (byte_FFFFAF0A).w beq.w loc_5D7F0 moveq #$FFFFFFFE,d2 loc_5D678: ; CODE XREF: sub_5D45C+37Ej move.l d2,d1 add.b (byte_FFFFAEFB).w,d1 bvc.s loc_5D684 bmi.s loc_5D694 bra.s loc_5D698 ; --------------------------------------------------------------------------- loc_5D684: ; CODE XREF: sub_5D45C+222j cmpi.b #$7F,d1 ; '' bhi.s loc_5D698 cmpi.b #$10,d1 bhi.s loc_5D694 clr.b d3 bra.s loc_5D69C ; --------------------------------------------------------------------------- loc_5D694: ; CODE XREF: sub_5D45C+224j ; sub_5D45C+232j moveq #$10,d1 bra.s loc_5D69A ; --------------------------------------------------------------------------- loc_5D698: ; CODE XREF: sub_5D45C+226j ; sub_5D45C+22Cj clr.b d1 loc_5D69A: ; CODE XREF: sub_5D45C+23Aj moveq #1,d3 loc_5D69C: ; CODE XREF: sub_5D45C+236j tst.b d3 bne.w loc_5D7D4 move.l d2,d5 ext.w d5 clr.w d0 move.b byte_1CCAE(d5.w),d0 move.b (byte_FFFFAF0B).w,d3 ext.w d3 muls.w d0,d3 bpl.s loc_5D6BE addi.w #$7F,d3 ; '' loc_5D6BE: ; CODE XREF: sub_5D45C+25Cj asr.w #7,d3 clr.w d0 move.b (byte_FFFFAF16).w,d0 ext.w d3 muls.w d0,d3 bpl.s loc_5D6D0 addi.w #$7F,d3 ; '' loc_5D6D0: ; CODE XREF: sub_5D45C+26Ej asr.w #7,d3 blt.s loc_5D70C move.w (XMSN_IO_KE_MAX_PRESSURE).l,d4 ; Max allowable force motor pressure used for limitingcalculations. ; PSI sub.w (word_FFFFB452).w,d4 bpl.s loc_5D6E4 addi.w #$F,d4 loc_5D6E4: ; CODE XREF: sub_5D45C+282j asr.w #4,d4 cmpi.w #$FF80,d4 blt.s loc_5D704 cmpi.w #$7F,d4 ; '' bgt.s loc_5D700 cmpi.b #$77,d4 ; 'w' bgt.s loc_5D700 cmpi.b #$88,d4 blt.s loc_5D704 bra.s loc_5D706 ; --------------------------------------------------------------------------- loc_5D700: ; CODE XREF: sub_5D45C+294j ; sub_5D45C+29Aj moveq #$77,d4 ; 'w' bra.s loc_5D706 ; --------------------------------------------------------------------------- loc_5D704: ; CODE XREF: sub_5D45C+28Ej ; sub_5D45C+2A0j moveq #$FFFFFF88,d4 loc_5D706: ; CODE XREF: sub_5D45C+2A2j ; sub_5D45C+2A6j cmp.b d4,d3 ble.s loc_5D73A bra.s loc_5D738 ; --------------------------------------------------------------------------- loc_5D70C: ; CODE XREF: sub_5D45C+276j move.w (word_FFFFB452).w,d4 neg.w d4 bpl.s loc_5D718 addi.w #$F,d4 loc_5D718: ; CODE XREF: sub_5D45C+2B6j asr.w #4,d4 cmpi.w #$FF80,d4 blt.s loc_5D732 cmpi.w #$7F,d4 ; '' bgt.s loc_5D72E cmpi.b #$88,d4 blt.s loc_5D732 bra.s loc_5D734 ; --------------------------------------------------------------------------- loc_5D72E: ; CODE XREF: sub_5D45C+2C8j moveq #$77,d4 ; 'w' bra.s loc_5D734 ; --------------------------------------------------------------------------- loc_5D732: ; CODE XREF: sub_5D45C+2C2j ; sub_5D45C+2CEj moveq #$FFFFFF88,d4 loc_5D734: ; CODE XREF: sub_5D45C+2D0j ; sub_5D45C+2D4j cmp.b d4,d3 bge.s loc_5D73A loc_5D738: ; CODE XREF: sub_5D45C+2AEj move.l d4,d3 loc_5D73A: ; CODE XREF: sub_5D45C+2ACj ; sub_5D45C+2DAj clr.w d0 move.b (byte_FFFF95DC).w,d0 mulu.w d6,d0 add.b d1,d0 andi.w #$FF,d0 add.b -$747C(d0.w),d3 bvc.s loc_5D754 bmi.s loc_5D762 bra.s loc_5D766 ; --------------------------------------------------------------------------- loc_5D754: ; CODE XREF: sub_5D45C+2F2j cmpi.b #$77,d3 ; 'w' bgt.s loc_5D762 cmpi.b #$88,d3 blt.s loc_5D766 bra.s loc_5D768 ; --------------------------------------------------------------------------- loc_5D762: ; CODE XREF: sub_5D45C+2F4j ; sub_5D45C+2FCj moveq #$77,d3 ; 'w' bra.s loc_5D768 ; --------------------------------------------------------------------------- loc_5D766: ; CODE XREF: sub_5D45C+2F6j ; sub_5D45C+302j moveq #$FFFFFF88,d3 loc_5D768: ; CODE XREF: sub_5D45C+304j ; sub_5D45C+308j move.b d3,(byte_FFFFAEFC).w move.w (word_FFFFA902).w,d0 movea.l #T_TIMING_TABLES_KV_PRESS_HIGH_ADAPT_LIMIT,a0 ; Adaptive pressure high limit. ; PSI jsr sub_8774A clr.l d3 move.b d1,d3 move.b (byte_FFFF95DC).w,d4 asl.b #2,d4 andi.w #$FF,d4 movea.l off_8998E(d4.w),a0 move.b (a0,d3.w),d3 cmp.b (byte_FFFFAEFC).w,d0 bge.s loc_5D7AC move.b d0,(byte_FFFFAEFC).w tst.b d2 bne.s loc_5D7BE move.b #1,(byte_FFFFAEFA).w bra.s loc_5D7BE ; --------------------------------------------------------------------------- loc_5D7AC: ; CODE XREF: sub_5D45C+33Ej tst.b d2 bne.s loc_5D7B4 clr.b (byte_FFFFAEFA).w loc_5D7B4: ; CODE XREF: sub_5D45C+352j cmp.b (byte_FFFFAEFC).w,d3 ble.s loc_5D7BE move.b d3,(byte_FFFFAEFC).w loc_5D7BE: ; CODE XREF: sub_5D45C+346j ; sub_5D45C+34Ej ... clr.w d0 move.b (byte_FFFF95DC).w,d0 mulu.w d6,d0 add.b d1,d0 andi.w #$FF,d0 move.b (byte_FFFFAEFC).w,$1C+var_7498(d0.w) loc_5D7D4: ; CODE XREF: sub_5D45C+242j addq.b #1,d2 cmpi.b #2,d2 ble.w loc_5D678 movea.l #unk_FF8B96,a0 moveq #$36,d0 ; '6' jsr sub_2654C move.w d0,(word_FFFF8BCC).w loc_5D7F0: ; CODE XREF: sub_5D45C+216j movem.l (sp)+,d0-d2/d6-a1 rts ; End of function sub_5D45C ; =============== S U B R O U T I N E ======================================= sub_5D7F6: ; CODE XREF: sub_4EFF2+496p clr.b (byte_FFFFAEFB).w move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb cmp.w (word_FFFFA902).w,d3 loc_5D804: ; CODE XREF: sub_5D7F6+30j bcc.s locret_5D828 move.b (byte_FFFFAEFB).w,d4 addq.b #1,d4 move.b d4,(byte_FFFFAEFB).w cmpi.b #$10,d4 bcc.s locret_5D828 move.l d3,d5 add.w d5,d5 andi.w #$FF,d4 mulu.w d5,d4 add.w d3,d4 cmp.w (word_FFFFA902).w,d4 bra.s loc_5D804 ; --------------------------------------------------------------------------- locret_5D828: ; CODE XREF: sub_5D7F6:loc_5D804j ; sub_5D7F6+1Ej rts ; End of function sub_5D7F6 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5D82A: ; CODE XREF: sub_55544+9Ap var_36 = -$36 link a6,#-$36 movem.l d0/a0-a1/a4-a5,-(sp) movea.l #unk_FF8B96,a4 movea.l a4,a0 moveq #$36,d0 ; '6' jsr sub_2654C cmp.w (word_FFFF8BCC).w,d0 beq.s loc_5D874 lea (unk_FFFF8B96).w,a1 lea var_36(a6),a0 lea (unk_FFFF8096).w,a2 movea.l a0,a5 moveq #$1A,d0 loc_5D858: ; CODE XREF: sub_5D82A+30j move.w (a2)+,(a5)+ dbf d0,loc_5D858 moveq #$1A,d0 loc_5D860: ; CODE XREF: sub_5D82A+38j move.w (a0)+,(a1)+ dbf d0,loc_5D860 movea.l a4,a0 moveq #$36,d0 ; '6' jsr sub_2654C move.w d0,(word_FFFF8BCC).w loc_5D874: ; CODE XREF: sub_5D82A+1Cj movem.l (sp)+,d0/a0-a1/a4-a5 unlk a6 rts ; End of function sub_5D82A ; =============== S U B R O U T I N E ======================================= sub_5D87C: ; CODE XREF: OS1:00028C7Ap movem.l d0/a0-a1,-(sp) movea.l #unk_FF8B96,a1 movea.l a1,a0 moveq #$36,d0 ; '6' jsr sub_2654C cmp.w (word_FFFF8BCC).w,d0 beq.s loc_5D8B6 lea (unk_89ABE).l,a0 lea (unk_FFFF8B96).w,a2 moveq #$1A,d0 loc_5D8A2: ; CODE XREF: sub_5D87C+28j move.w (a0)+,(a2)+ dbf d0,loc_5D8A2 movea.l a1,a0 moveq #$36,d0 ; '6' jsr sub_2654C move.w d0,(word_FFFF8BCC).w loc_5D8B6: ; CODE XREF: sub_5D87C+18j movem.l (sp)+,d0/a0-a1 rts ; End of function sub_5D87C ; =============== S U B R O U T I N E ======================================= sub_5D8BC: ; CODE XREF: sub_4EFF2+514p jsr sub_5DA34 rts ; End of function sub_5D8BC ; =============== S U B R O U T I N E ======================================= sub_5D8C4: ; CODE XREF: sub_5DB98p var_4BFC = -$4BFC move.l d0,-(sp) move.b (byte_FFFFB414).w,d3 cmpi.b #1,d3 bhi.w loc_5D96A beq.s loc_5D902 clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w word_1CE02(d3.w*2),(word_FFFFB3A6).w move.w word_1CE08(d3.w*2),(word_FFFFB3A8).w clr.w word_FFFFB408(d3.w*2) clr.w (word_FFFFB412).w loc_5D8F8: ; CODE XREF: sub_5D8C4+B6j move.b #1,(byte_FFFFB414).w bra.w loc_5D9E8 ; --------------------------------------------------------------------------- loc_5D902: ; CODE XREF: sub_5D8C4+Ej move.w (word_FFFF95D4).w,d3 cmp.w (word_FFFFB3A6).w,d3 bhi.s loc_5D95A bset #7,(byte_FFFFA8FF).w btst #4,(byte_FFFF9BBB).w bne.s loc_5D942 btst #3,(byte_FFFF9BBB).w beq.s loc_5D942 clr.w d5 move.b (byte_FFFF95DC).w,d5 move.w (word_FFFFA90C).w,d3 sub.w (word_FFFF9BD0).w,d3 bcc.s loc_5D934 clr.w d3 loc_5D934: ; CODE XREF: sub_5D8C4+6Cj move.w d3,4+var_4BFC(d5.w*2) bclr #3,(byte_FFFF9BBB).w bra.s loc_5D950 ; --------------------------------------------------------------------------- loc_5D942: ; CODE XREF: sub_5D8C4+54j ; sub_5D8C4+5Cj clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFFA90C).w,4+var_4BFC(d3.w*2) loc_5D950: ; CODE XREF: sub_5D8C4+7Cj move.b #2,(byte_FFFFB414).w bra.w loc_5D9E8 ; --------------------------------------------------------------------------- loc_5D95A: ; CODE XREF: sub_5D8C4+46j clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFFA90C).w,4+var_4BFC(d3.w*2) bra.s loc_5D9E8 ; --------------------------------------------------------------------------- loc_5D96A: ; CODE XREF: sub_5D8C4+Aj move.w (word_FFFF95D4).w,d3 cmp.w (word_FFFFB3A6).w,d3 bls.s loc_5D97E bclr #7,(byte_FFFFA8FF).w bra.w loc_5D8F8 ; --------------------------------------------------------------------------- loc_5D97E: ; CODE XREF: sub_5D8C4+AEj cmp.w (word_FFFFB3A8).w,d3 bhi.s loc_5D9E8 btst #0,(byte_FFFFA8FE).w beq.s loc_5D9C6 clr.w d0 move.b (byte_FFFF95DC).w,d0 clr.l d3 move.w word_FFFFB408(d0.w*2),d3 clr.l d4 move.w (word_FFFFA90C).w,d4 sub.l d3,d4 clr.l d3 move.w (word_FFFFB412).w,d3 sub.l d3,d4 clr.l d3 move.w word_1CE2C(d0.w*2),d3 cmp.l d3,d4 ble.s loc_5D9E8 bset #1,(byte_FFFFA8FE).w bclr #4,(byte_FFFFA8FE).w bra.s loc_5D9E8 ; --------------------------------------------------------------------------- loc_5D9C6: ; CODE XREF: sub_5D8C4+C6j bset #0,(byte_FFFFA8FE).w bclr #4,(byte_FFFFA8FF).w move.w (word_FFFFA90C).w,d4 clr.w d3 move.b (byte_FFFF95DC).w,d3 movea.w word_FFFFB408(d3.w*2),a2 sub.w a2,d4 move.w d4,(word_FFFFB412).w loc_5D9E8: ; CODE XREF: sub_5D8C4+3Aj ; sub_5D8C4+92j ... clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFFA90C).w,d4 cmp.w word_1CE26(d3.w*2),d4 bcs.s loc_5DA30 bset #1,(byte_FFFFA8FE).w bset #0,(byte_FFFFA8FE).w bset #7,(byte_FFFFA8FF).w bset #4,(byte_FFFFA8FF).w bclr #4,(byte_FFFFA8FE).w move.w (word_FFFFA90C).w,d4 clr.w d3 move.b (byte_FFFF95DC).w,d3 movea.w word_FFFFB408(d3.w*2),a2 sub.w a2,d4 move.w d4,(word_FFFFB412).w loc_5DA30: ; CODE XREF: sub_5D8C4+136j move.l (sp)+,d0 rts ; End of function sub_5D8C4 ; =============== S U B R O U T I N E ======================================= sub_5DA34: ; CODE XREF: sub_5D8BCp var_4C56 = -$4C56 var_4AEE = -$4AEE btst #0,(byte_FFFFA8FE).w beq.s loc_5DAA0 clr.w d5 move.b (byte_FFFF95DC).w,d5 clr.w d3 move.b (byte_FFFF95DC).w,d3 clr.l d4 move.w unk_FFFFB512(d3.w*2),d4 clr.l d3 move.w (word_FFFFA90C).w,d3 sub.l d4,d3 clr.w d4 move.b (byte_FFFF95DC).w,d4 move.w unk_FFFFB3AA(d4.w*2),d4 andi.l #$FFFF,d4 sub.l d4,d3 tst.l d3 blt.s loc_5DA7E cmpi.l #$FFFF,d3 bls.s loc_5DA80 move.w #$FFFF,d3 bra.s loc_5DA80 ; --------------------------------------------------------------------------- loc_5DA7E: ; CODE XREF: sub_5DA34+3Aj clr.w d3 loc_5DA80: ; CODE XREF: sub_5DA34+42j ; sub_5DA34+48j cmp.w XTIM_RATIO_KV_DS_END_OF_SHIFT_TIME(d5.w*2),d3 ; Time used to determine if end of downshift reached. ; Seconds bcs.s loc_5DAA0 bset #1,(byte_FFFFA8FE).w bclr #3,(byte_FFFFA8FE).w loc_5DA96: ; CODE XREF: sub_5DA34+112j bclr #3,(byte_FFFFA900).w bra.w locret_5DB96 ; --------------------------------------------------------------------------- loc_5DAA0: ; CODE XREF: sub_5DA34+6j ; sub_5DA34+54j btst #7,(byte_FFFFA8FF).w bne.s loc_5DAF4 clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFF95D4).w,d4 cmp.w XTIM_RATIO_KV_DOWNSHIFT_START_RATIO(d3.w*2),d4 ; Ratio used to start timing the downshift time. ; Ratio bhi.s loc_5DAC8 move.w (word_FFFFA90C).w,d3 cmp.w (XTIM_DOWNSHIFT_KE_DOWNSHIFT_DELAY_TIME_LIMIT).l,d3 ; Maximum delay time period to wait for starting engine speed acceleration to be reached. ; Seconds bcs.s loc_5DAF4 loc_5DAC8: ; CODE XREF: sub_5DA34+86j bset #7,(byte_FFFFA8FF).w clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFFA90C).w,var_4AEE(d3.w*2) move.w (word_FFFFA90C).w,d3 cmp.w (XTIM_DOWNSHIFT_KE_DOWNSHIFT_DELAY_TIME_LIMIT).l,d3 ; Maximum delay time period to wait for starting engine speed acceleration to be reached. ; Seconds bcs.w locret_5DB96 bset #7,(byte_FFFFA900).w bra.w locret_5DB96 ; --------------------------------------------------------------------------- loc_5DAF4: ; CODE XREF: sub_5DA34+72j ; sub_5DA34+92j clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFFA90C).w,d4 cmp.w XTIM_RATIO_KV_DOWNSHIFT_MAX_TIME(d3.w*2),d4 ; End of downshift time. If exceeded, this timer will always end the current downshift. ; Seconds bcs.s loc_5DB4A bset #1,(byte_FFFFA8FE).w bset #0,(byte_FFFFA8FE).w bset #7,(byte_FFFFA8FF).w bclr #3,(byte_FFFFA8FE).w bset #6,(byte_FFFFA900).w clr.w d5 move.b (byte_FFFF95DC).w,d5 clr.w d4 move.b (byte_FFFF95DC).w,d4 move.w (word_FFFFA90C).w,d3 sub.w unk_FFFFB512(d4.w*2),d3 bcc.s loc_5DB40 clr.w d3 loc_5DB40: ; CODE XREF: sub_5DA34+108j move.w d3,var_4C56(d5.w*2) bra.w loc_5DA96 ; --------------------------------------------------------------------------- loc_5DB4A: ; CODE XREF: sub_5DA34+D2j btst #5,(byte_FFFFA900).w bne.s locret_5DB96 move.w (word_FFFF95D4).w,d4 cmp.w XTIM_RATIO_KV_DOWNSHIFT_END_RATIO(d3.w*2),d4 ; Ratio used to determine if a new gear is reached. ; Ratio bls.s locret_5DB96 bset #0,(byte_FFFFA8FE).w clr.w d5 move.b (byte_FFFF95DC).w,d5 move.w (word_FFFFA90C).w,d3 sub.w unk_FFFFB512(d5.w*2),d3 bcc.s loc_5DB7A clr.w d3 loc_5DB7A: ; CODE XREF: sub_5DA34+142j move.w d3,(word_FFFFB3B0).w move.b (byte_FFFF95DC).w,d4 move.b d4,(byte_FFFFB3B2).w andi.w #$FF,d4 move.w d3,var_4C56(d4.w*2) bset #5,(byte_FFFFA900).w locret_5DB96: ; CODE XREF: sub_5DA34+68j ; sub_5DA34+B2j ... rts ; End of function sub_5DA34 ; =============== S U B R O U T I N E ======================================= sub_5DB98: ; CODE XREF: sub_4EFF2:loc_4F422p jsr sub_5D8C4 rts ; End of function sub_5DB98 ; =============== S U B R O U T I N E ======================================= sub_5DBA0: ; CODE XREF: sub_4EFF2+4A4p clr.l (byte_FFFFB4C2).w clr.w (word_FFFFB4C6).w move.b (byte_FFFF95DC).w,d3 asl.b #2,d3 add.b (byte_FFFF95E9).w,d3 andi.w #$FF,d3 tst.b byte_1CE74(d3.w) bne.s loc_5DBC6 bset #0,(byte_FFFFB4C5).w loc_5DBC6: ; CODE XREF: sub_5DBA0+1Ej moveq #2,d4 cmp.b (byte_FFFF95F3).w,d4 bne.s loc_5DBD4 bset #1,(byte_FFFFB4C5).w loc_5DBD4: ; CODE XREF: sub_5DBA0+2Cj tst.b (XTIM_VALIDATION_KE_INHIBIT_PERFORMANCE_ADAPT).l ; When TRUE, performance mode adapts are NOT allowed. ; True/False beq.s loc_5DBEE tst.b (byte_FFFF95F3).w beq.s loc_5DBEE cmp.b (byte_FFFF95F3).w,d4 beq.s loc_5DBEE bset #2,(byte_FFFFB4C5).w loc_5DBEE: ; CODE XREF: sub_5DBA0+3Aj ; sub_5DBA0+40j ... move.w (word_FFFF9BB4).w,d3 cmp.w (XTIM_VALIDATION_KE_GEAR_CHANGE_TIME_VALID).l,d3 ; Time for between-gear change to be a valid Upshift. ; Seconds bcc.s loc_5DC00 bset #3,(byte_FFFFB4C5).w loc_5DC00: ; CODE XREF: sub_5DBA0+58j ; DATA XREF: Calibration:F_TANK_KE_FUEL_LEVEL_RATIONALITY_TIME_Lo move.w (word_FFFF95F6).w,d3 cmp.w (XTIM_VALIDATION_KE_RANGE_CHANGE_TIME_VALID).l,d3 ; Time for between-range change to be a valid Upshift. ; Seconds bcc.s loc_5DC12 bset #4,(byte_FFFFB4C5).w loc_5DC12: ; CODE XREF: sub_5DBA0+6Aj tst.b (XTIM_VALIDATION_KE_HOT_MODE_ADAPT_VALID).l ; Allow adapts when transmission is in hot mode if this is true. ; T/F bne.s loc_5DC28 btst #7,(byte_FFFFAF98).w beq.s loc_5DC28 bset #5,(byte_FFFFB4C5).w loc_5DC28: ; CODE XREF: sub_5DBA0+78j ; sub_5DBA0+80j move.w (word_FFFF9590).w,d3 cmp.w (XTIM_VALIDATION_KE_TRANSMISSION_TEMP_LOW_VALID).l,d3 ; The lowest transmission temperature to be considered valid. ; Degrees_C blt.s loc_5DC3C cmp.w (XTIM_VALIDATION_KE_TRANSMISSION_TEMP_HIGH_VALID).l,d3 ; The highest transmission temperature to be considered valid. ; Degrees_C ble.s loc_5DC42 loc_5DC3C: ; CODE XREF: sub_5DBA0+92j bset #6,(byte_FFFFB4C5).w loc_5DC42: ; CODE XREF: sub_5DBA0+9Aj move.l (byte_FFFFB4C2).w,d3 btst #$12,d3 beq.s loc_5DC56 ori.l #unk_40000,d3 move.l d3,(byte_FFFFB4C2).w loc_5DC56: ; CODE XREF: sub_5DBA0+AAj tst.b (byte_FFFFA93E).w beq.s loc_5DC62 bset #0,(byte_FFFFB4C4).w loc_5DC62: ; CODE XREF: sub_5DBA0+BAj tst.b (byte_FFFFABDA).w beq.s locret_5DC6E bset #1,(byte_FFFFB4C4).w locret_5DC6E: ; CODE XREF: sub_5DBA0+C6j rts ; End of function sub_5DBA0 ; =============== S U B R O U T I N E ======================================= sub_5DC70: ; CODE XREF: sub_4EFF2:loc_4F49Ep move.l d0,-(sp) move.w (word_FFFF9582).w,d3 sub.w (word_FFFFA912).w,d3 bcc.s loc_5DC7E neg.w d3 loc_5DC7E: ; CODE XREF: sub_5DC70+Aj move.w d3,(word_FFFFB4C6).w cmpi.b #7,(byte_FFFFB454).w beq.s loc_5DC90 bset #2,(byte_FFFFB4C4).w loc_5DC90: ; CODE XREF: sub_5DC70+18j move.w (word_FFFFA902).w,d3 cmp.w (XTIM_VALIDATION_KE_ADAPTIVE_TORQUE_LIMIT_LOW).l,d3 ; The lower limit of shift torque for a shift to be considered valid. ; Ft_lb bcs.s loc_5DCA4 cmp.w (XTIM_VALIDATION_KE_ADAPTIVE_TORQUE_LIMIT_HIGH).l,d3 ; The upper limit of shift torque for a shift to be considered valid. ; Ft_lb bls.s loc_5DCAA loc_5DCA4: ; CODE XREF: sub_5DC70+2Aj bset #7,(byte_FFFFB4C5).w loc_5DCAA: ; CODE XREF: sub_5DC70+32j clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFF9582).w,d4 cmp.w XTIM_VALIDATION_KE_ADAPTIVE_TORQUE_LIMIT_HIGH(d3.w*2),d4 ; The upper limit of shift torque for a shift to be considered valid. ; Ft_lb bcc.s loc_5DCC4 bset #3,(byte_FFFFB4C4).w loc_5DCC4: ; CODE XREF: sub_5DC70+4Cj tst.b (byte_FFFFAC5B).w bne.s loc_5DCD2 btst #5,(byte_FFFFAFD4).w beq.s loc_5DCD8 loc_5DCD2: ; CODE XREF: sub_5DC70+58j bset #4,(byte_FFFFB4C4).w loc_5DCD8: ; CODE XREF: sub_5DC70+60j clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFF95DA).w,d4 sub.w (word_FFFF9BD2).w,d4 bcc.s loc_5DCEA neg.w d4 loc_5DCEA: ; CODE XREF: sub_5DC70+76j cmp.w word_1CE62(d3.w*2),d4 bls.s loc_5DCFA bset #5,(byte_FFFFB4C4).w loc_5DCFA: ; CODE XREF: sub_5DC70+82j btst #0,(byte_FFFFA2A1).w beq.s loc_5DD08 bset #1,(unk_FFFFB4C3).w loc_5DD08: ; CODE XREF: sub_5DC70+90j tst.b (TCM_OPTIONS_K_FOUR_WHEEL_DRIVE_AVAILABLE).l ; If TRUE, vehicle has four wheel drive. ; BOOLEAN beq.s loc_5DD20 jsr sub_4B5C8 tst.b d0 beq.s loc_5DD20 bset #0,(unk_FFFFB4C3).w loc_5DD20: ; CODE XREF: sub_5DC70+9Ej ; sub_5DC70+A8j tst.b (TCM_OPTIONS_K_INPUT_SPEED_PRESENT).l ; If TRUE, a transmission input speed sensor is present. ; BOOLEAN beq.s loc_5DD38 tst.b (TCM_OPTIONS_K_INP_SPD_SENSOR_AFTER_OVERDRV).l ; If TRUE, a transmission input speed sensor after overdrive is present. ; BOOLEAN beq.s loc_5DD4E cmpi.b #3,(byte_FFFF95DC).w bne.s loc_5DD4E loc_5DD38: ; CODE XREF: sub_5DC70+B6j move.b (byte_FFFF95DD).w,d3 cmpi.b #2,d3 beq.s loc_5DD48 cmpi.b #1,d3 bne.s loc_5DD4E loc_5DD48: ; CODE XREF: sub_5DC70+D0j bset #4,(unk_FFFFB4C3).w loc_5DD4E: ; CODE XREF: sub_5DC70+BEj ; sub_5DC70+C6j ... clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFF9BCA).w,d4 cmp.w XTIM_VALIDATION_KE_TRANSMISSION_TEMP_HIGH_VALID(d3.w*2),d4 ; The highest transmission temperature to be considered valid. ; Degrees_C bgt.s loc_5DD6C cmp.w word_1CE46(d3.w*2),d4 bge.s loc_5DD78 loc_5DD6C: ; CODE XREF: sub_5DC70+F0j move.b #1,(byte_FFFFB4C0).w bset #6,(byte_FFFFB4C4).w loc_5DD78: ; CODE XREF: sub_5DC70+FAj btst #6,(byte_FFFF9BBB).w beq.s loc_5DD86 bset #3,(unk_FFFFB4C3).w loc_5DD86: ; CODE XREF: sub_5DC70+10Ej move.l (sp)+,d0 rts ; End of function sub_5DC70 ; =============== S U B R O U T I N E ======================================= sub_5DD8A: ; CODE XREF: sub_4EFF2+4BAp movem.l d0/a0,-(sp) move.w (word_FFFFA902).w,d0 movea.l #XTIM_VALIDATION_KV_THROTTLE_VARIATION_LIMIT,a0 jsr sub_877BE cmp.w (word_FFFFB4C6).w,d0 bcc.s loc_5DDAA bset #7,(byte_FFFFB4C4).w loc_5DDAA: ; CODE XREF: sub_5DD8A+18j clr.w d3 move.b (byte_FFFF95DC).w,d3 movea.l d3,a2 move.w word_FFFFB408(d3.w*2),d3 cmp.w word_1CE4C(a2.w*2),d3 bls.s loc_5DDC8 bset #6,(unk_FFFFB4C3).w loc_5DDC8: ; CODE XREF: sub_5DD8A+36j clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w word_FFFFB408(d3.w*2),d3 cmp.w (XTIM_VALIDATION_KE_INITIAL_UPSHIFT_TIME).l,d3 ; The minimum time allowed before the ratio or engine acceleration reaches the starting point. ; Seconds bhi.s loc_5DDE2 bset #7,(unk_FFFFB4C3).w loc_5DDE2: ; CODE XREF: sub_5DD8A+50j clr.w d3 move.b (byte_FFFF95DC).w,d3 move.w (word_FFFFB412).w,d4 cmp.w XTIM_VALIDATION_KE_INITIAL_UPSHIFT_TIME(d3.w*2),d4 ; The minimum time allowed before the ratio or engine acceleration reaches the starting point. ; Seconds bcs.s loc_5DE00 cmp.w word_1CE68(d3.w*2),d4 bls.s loc_5DE06 loc_5DE00: ; CODE XREF: sub_5DD8A+6Aj bset #5,(unk_FFFFB4C3).w loc_5DE06: ; CODE XREF: sub_5DD8A+74j tst.b (byte_FFFFA7F9).w beq.s loc_5DE12 bset #0,(byte_FFFFB4C2).w loc_5DE12: ; CODE XREF: sub_5DD8A+80j clr.l d3 move.l (byte_FFFFB4C2).w,d4 eor.l d3,d4 andi.l #$1FFFFFF,d4 beq.s loc_5DE2A bclr #2,(byte_FFFFA8FE).w bra.s loc_5DE30 ; --------------------------------------------------------------------------- loc_5DE2A: ; CODE XREF: sub_5DD8A+96j bset #2,(byte_FFFFA8FE).w loc_5DE30: ; CODE XREF: sub_5DD8A+9Ej movem.l (sp)+,d0/a0 rts ; End of function sub_5DD8A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5DE36: ; CODE XREF: sub_5F110+1Ap var_795A = -$795A var_7958 = -$7958 var_7954 = -$7954 var_7952 = -$7952 var_7950 = -$7950 var_794E = -$794E var_7908 = -$7908 var_2 = -2 link a6,#-2 movem.l d1-d2/d6-a0,-(sp) move.w d0,d6 tst.b (byte_FFFF8256).w beq.s loc_5DE54 btst #2,(byte_FFFF9A16).w beq.s loc_5DE54 tst.b (byte_FFFFB473).w beq.s loc_5DE5C loc_5DE54: ; CODE XREF: sub_5DE36+Ej ; sub_5DE36+16j cmpi.w #$7D,d6 ; '}' bne.w loc_5DFB4 loc_5DE5C: ; CODE XREF: sub_5DE36+1Cj cmpi.b #3,DM_TYPES_KV_DM_FAULT_TYPE(d6.w) ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type beq.w loc_5DFB4 btst #6,byte_FFFF88C0(d6.w*2) bne.w loc_5DF94 clr.b d0 moveq #1,d3 loc_5DE7A: ; CODE XREF: sub_5DE36+78j tst.b d0 bne.s loc_5DEA8 clr.l d5 move.b d3,d5 moveq #$56,d4 ; 'V' mulu.w d4,d5 cmp.w -$7944(d5.l),d6 bne.s loc_5DEA8 clr.l d4 move.b d3,d4 mulu.w #$56,d4 ; 'V' move.w -$793C(d4.l),d1 cmp.w (word_87F70).l,d1 beq.s loc_5DEA8 move.b d3,d2 moveq #1,d0 loc_5DEA8: ; CODE XREF: sub_5DE36+46j ; sub_5DE36+56j ... addq.b #1,d3 cmpi.b #5,d3 bls.s loc_5DE7A tst.b d0 bne.s loc_5DEFC move.b (byte_FFFF8ACB).w,d1 move.b d1,d2 cmpi.b #5,d1 bne.s loc_5DEC8 move.b #1,(byte_FFFF8ACB).w bra.s loc_5DECE ; --------------------------------------------------------------------------- loc_5DEC8: ; CODE XREF: sub_5DE36+88j addq.b #1,d1 move.b d1,(byte_FFFF8ACB).w loc_5DECE: ; CODE XREF: sub_5DE36+90j clr.l d0 move.b d2,d0 moveq #$56,d3 ; 'V' mulu.w d3,d0 move.w (word_FFFFAACC).w,$16+var_7950(d0.l) clr.b -$7941(d0.l) clr.b -$793F(d0.l) clr.b -$7940(d0.l) move.b DM_TYPES_KV_DM_FAULT_TYPE(d6.w),$16+var_7958(d0.l) ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type loc_5DEFC: ; CODE XREF: sub_5DE36+7Cj andi.w #$FF,d2 move.w d2,var_2(a6) mulu.w #$56,d2 ; 'V' move.w (word_FFFFAACC).w,$16+var_794E(d2.l) move.w word_87F70(d6.w*4),$16+var_7952(d2.l) move.w d6,$16+var_795A(d2.l) moveq #1,d1 loc_5DF24: ; CODE XREF: sub_5DE36+116j clr.l d7 move.b d1,d7 move.w word_89050(d7.w*2),d0 jsr sub_5F380 move.w var_2(a6),d5 mulu.w #$2B,d5 ; '+' add.w d7,d5 move.w d0,$16+var_794E(d5.w*2) addq.b #1,d1 cmpi.b #$23,d1 ; '#' bls.s loc_5DF24 move.b DM_EXECUTIVE_KV_DGDM_DTC_DEP_FR_LIST_ID(d6.w),$16+var_7954(d2.l) ; Defines the relationship between a DTC identifier and the DTC dependent PID list used in a Failure Record. ; Enumeration moveq #1,d1 loc_5DF5C: ; CODE XREF: sub_5DE36+15Cj move.w var_2(a6),d7 mulu.w #$2B,d7 ; '+' clr.l d4 move.b d1,d4 add.w d4,d7 movea.w d7,a0 move.b -$793E(d2.l),d3 add.b d1,d3 andi.w #$FF,d3 move.w word_89044(d3.w*2),d0 jsr sub_5F380 move.w d0,$16+var_7908(a0.w*2) addq.b #1,d1 cmpi.b #1,d1 bls.s loc_5DF5C loc_5DF94: ; CODE XREF: sub_5DE36+3Cj bset #1,byte_FFFF88C0(d6.w*2) bset #3,byte_FFFF88C0(d6.w*2) bset #6,byte_FFFF88C0(d6.w*2) move.l d6,d0 jsr sub_5EA4A loc_5DFB4: ; CODE XREF: sub_5DE36+22j ; sub_5DE36+30j movem.l (sp)+,d1-d2/d6-a0 unlk a6 rts ; End of function sub_5DE36 ; =============== S U B R O U T I N E ======================================= sub_5DFBC: ; CODE XREF: sub_5F0BE+1Ap bclr #1,byte_FFFF88C0(d0.w*2) bclr #2,byte_FFFF88C0(d0.w*2) bset #5,byte_FFFF88C0(d0.w*2) jsr sub_5EA4A rts ; End of function sub_5DFBC ; =============== S U B R O U T I N E ======================================= sub_5DFDC: ; CODE XREF: sub_5EF12+AEp movem.l d0-d2/d6-d7,-(sp) clr.b d2 loc_5DFE2: ; CODE XREF: sub_5DFDC+A4j clr.b d0 moveq #1,d7 clr.l d6 move.b d2,d6 move.b byte_87F54(d6.w),d4 move.w (DM_TYPES_KV_NON_CONTINUOUS_TEST_SUPPORTED).l,d3 ; This calibration indicates what non-continuous diagnostics are supported by the diagnostic executive. ; BOOLEAN andi.w #$FFFF,d3 btst d4,d3 bne.s loc_5E004 move.l d7,d0 bra.s loc_5E060 ; --------------------------------------------------------------------------- loc_5E004: ; CODE XREF: sub_5DFDC+22j tst.b off_890A2(d6.w) bls.s loc_5E060 clr.l d5 move.b d2,d5 move.b off_890A2(d5.w),d1 subq.b #1,d1 bcc.s loc_5E020 move.l d0,d1 loc_5E020: ; CODE XREF: sub_5DFDC+40j move.l d0,d3 tst.b d1 bra.s loc_5E05E ; --------------------------------------------------------------------------- loc_5E026: ; CODE XREF: sub_5DFDC:loc_5E05Ej tst.b d0 bne.s loc_5E058 move.l d6,d5 mulu.w #$A,d5 add.b d3,d5 andi.w #$FF,d5 movea.w word_890AE(d5.w*2),a2 btst #7,byte_FFFF88C0(a2.w*2) beq.s loc_5E04C moveq #1,d0 bra.s loc_5E058 ; --------------------------------------------------------------------------- loc_5E04C: ; CODE XREF: sub_5DFDC+6Aj btst #2,byte_FFFF88C0(a2.w*2) beq.s loc_5E058 clr.b d7 loc_5E058: ; CODE XREF: sub_5DFDC+4Cj ; sub_5DFDC+6Ej ... addq.b #1,d3 bcs.s loc_5E060 cmp.b d3,d1 loc_5E05E: ; CODE XREF: sub_5DFDC+48j bcc.s loc_5E026 loc_5E060: ; CODE XREF: sub_5DFDC+26j ; sub_5DFDC+30j ... or.b d7,d0 beq.s loc_5E06E move.l d4,d3 move.w (word_FFFFB4A8).w,d4 bset d3,d4 bra.s loc_5E076 ; --------------------------------------------------------------------------- loc_5E06E: ; CODE XREF: sub_5DFDC+86j move.l d4,d3 move.w (word_FFFFB4A8).w,d4 bclr d3,d4 loc_5E076: ; CODE XREF: sub_5DFDC+90j move.w d4,(word_FFFFB4A8).w addq.b #1,d2 cmpi.b #$A,d2 bls.w loc_5DFE2 movem.l (sp)+,d0-d2/d6-d7 rts ; End of function sub_5DFDC ; =============== S U B R O U T I N E ======================================= sub_5E08A: ; CODE XREF: sub_5EDDA:loc_5EE72p movem.l d0-d1,-(sp) move.w (CoolantTemperatureOrDefault).w,d3 btst #4,(byte_FFFFB4AA).w beq.s loc_5E116 move.w (DM_DATA_MANAGER_KE_DGDM_MAX_LOW_COOLANT).l,d4 cmp.w d4,d3 bgt.s loc_5E0AA cmp.w (word_FFFF8AE2).w,d4 bge.s loc_5E0BA loc_5E0AA: ; CODE XREF: sub_5E08A+18j move.w (DM_DATA_MANAGER_KE_DGDM_MIN_HIGH_COOLANT).l,d4 cmp.w d4,d3 blt.s loc_5E116 cmp.w (word_FFFF8AE2).w,d4 bgt.s loc_5E116 loc_5E0BA: ; CODE XREF: sub_5E08A+1Ej move.w (word_FFFFA0E2).w,d3 move.w (EngineRPM_PID_000C___).w,d4 move.w (word_FFFF8AE4).w,d0 cmp.w d0,d3 bls.s loc_5E0CE sub.w d0,d3 bra.s loc_5E0D2 ; --------------------------------------------------------------------------- loc_5E0CE: ; CODE XREF: sub_5E08A+3Ej sub.w d3,d0 move.w d0,d3 loc_5E0D2: ; CODE XREF: sub_5E08A+42j move.w (word_FFFF8AE6).w,d0 cmp.w d0,d4 bls.s loc_5E0DE sub.w d0,d4 bra.s loc_5E0E2 ; --------------------------------------------------------------------------- loc_5E0DE: ; CODE XREF: sub_5E08A+4Ej sub.w d4,d0 move.w d0,d4 loc_5E0E2: ; CODE XREF: sub_5E08A+52j cmpi.w #$400,d3 bhi.s loc_5E116 cmpi.w #$780,d4 bhi.s loc_5E116 move.w (word_FFFFB4AE).w,d3 addq.w #1,d3 cmpi.w #$190,d3 bls.s loc_5E0FE move.w #$190,d3 loc_5E0FE: ; CODE XREF: sub_5E08A+6Ej move.w d3,(word_FFFFB4AE).w cmp.w (DM_DATA_MANAGER_KE_DGDM_MISFIRE_CONDS_LIMIT).l,d3 bcs.s loc_5E116 bset #2,(byte_FFFFB4AA).w bclr #4,(byte_FFFFB4AA).w loc_5E116: ; CODE XREF: sub_5E08A+Ej ; sub_5E08A+28j ... move.w (CoolantTemperatureOrDefault).w,d3 btst #7,(byte_FFFFB4AA).w beq.s loc_5E19E move.w (DM_DATA_MANAGER_KE_DGDM_MAX_LOW_COOLANT).l,d4 cmp.w d4,d3 bgt.s loc_5E132 cmp.w (word_FFFF8ADC).w,d4 bge.s loc_5E142 loc_5E132: ; CODE XREF: sub_5E08A+A0j move.w (DM_DATA_MANAGER_KE_DGDM_MIN_HIGH_COOLANT).l,d4 cmp.w d4,d3 blt.s loc_5E19E cmp.w (word_FFFF8ADC).w,d4 bgt.s loc_5E19E loc_5E142: ; CODE XREF: sub_5E08A+A6j move.w (word_FFFFA0E2).w,d3 move.w (EngineRPM_PID_000C___).w,d4 move.w (word_FFFF8ADE).w,d0 cmp.w d0,d3 bls.s loc_5E156 sub.w d0,d3 bra.s loc_5E15A ; --------------------------------------------------------------------------- loc_5E156: ; CODE XREF: sub_5E08A+C6j sub.w d3,d0 move.w d0,d3 loc_5E15A: ; CODE XREF: sub_5E08A+CAj move.w (word_FFFF8AE0).w,d0 cmp.w d0,d4 bls.s loc_5E166 sub.w d0,d4 bra.s loc_5E16A ; --------------------------------------------------------------------------- loc_5E166: ; CODE XREF: sub_5E08A+D6j sub.w d4,d0 move.w d0,d4 loc_5E16A: ; CODE XREF: sub_5E08A+DAj cmpi.w #$400,d3 bhi.s loc_5E19E cmpi.w #$780,d4 bhi.s loc_5E19E move.w (word_FFFFB4AC).w,d3 addq.w #1,d3 cmpi.w #$190,d3 bls.s loc_5E186 move.w #$190,d3 loc_5E186: ; CODE XREF: sub_5E08A+F6j move.w d3,(word_FFFFB4AC).w cmp.w (DM_DATA_MANAGER_KE_DGDM_FUEL_SYS_CONDS_LIMIT).l,d3 bcs.s loc_5E19E bset #5,(byte_FFFFB4AA).w bclr #7,(byte_FFFFB4AA).w loc_5E19E: ; CODE XREF: sub_5E08A+96j ; sub_5E08A+B0j ... movem.l (sp)+,d0-d1 rts ; End of function sub_5E08A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5E1A4: ; CODE XREF: sub_5EE7E:loc_5EF08p var_2 = -2 link a6,#-2 movem.l d0-d2/d6-d7,-(sp) jsr sub_5F2CC tst.b d0 beq.s loc_5E1BA moveq #2,d0 bra.s loc_5E1E2 ; --------------------------------------------------------------------------- loc_5E1BA: ; CODE XREF: sub_5E1A4+10j clr.b d0 moveq #1,d3 loc_5E1BE: ; CODE XREF: sub_5E1A4+3Cj btst #7,byte_FFFF88C0(d3.w*2) beq.s loc_5E1DA move.b DM_TYPES_KV_DM_FAULT_TYPE(d3.w),d4 ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type beq.s loc_5E1D8 cmpi.b #1,d4 bne.s loc_5E1DA loc_5E1D8: ; CODE XREF: sub_5E1A4+2Cj moveq #1,d0 loc_5E1DA: ; CODE XREF: sub_5E1A4+22j ; sub_5E1A4+32j addq.w #1,d3 cmpi.w #$104,d3 bls.s loc_5E1BE loc_5E1E2: ; CODE XREF: sub_5E1A4+14j lsl.b #4,d0 andi.b #$30,d0 ; '0' andi.b #$CF,(byte_FFFF8ACC).w or.b d0,(byte_FFFF8ACC).w move.b (byte_FFFF8ACC).w,d2 lsr.b #6,d2 cmpi.b #2,d2 beq.w loc_5E374 moveq #1,d2 loc_5E202: ; CODE XREF: sub_5E1A4+1CCj btst #4,byte_FFFF88C0(d2.w*2) beq.w loc_5E36A move.b DM_TYPES_KV_DM_FAULT_TYPE(d2.w),d3 ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type beq.s loc_5E220 moveq #1,d4 cmp.b d3,d4 bne.w loc_5E36A loc_5E220: ; CODE XREF: sub_5E1A4+72j clr.b d7 loc_5E222: ; CODE XREF: sub_5E1A4+F0j clr.l d3 move.b d7,d3 cmp.w word_890A0(d3.w*2),d2 bne.s loc_5E290 move.w word_87F70(d2.w*4),d6 clr.b d3 move.b d3,var_2(a6) moveq #1,d1 loc_5E240: ; CODE XREF: sub_5E1A4+C6j tst.b var_2(a6) bne.s loc_5E264 clr.l d3 move.b d1,d3 mulu.w #$56,d3 ; 'V' cmp.w -$793C(d3.l),d6 bne.s loc_5E264 move.b #1,var_2(a6) move.l d1,d0 jsr sub_5ED42 loc_5E264: ; CODE XREF: sub_5E1A4+A0j ; sub_5E1A4+B0j addq.b #1,d1 cmpi.b #5,d1 bls.s loc_5E240 tst.b var_2(a6) bne.s loc_5E284 move.b (byte_FFFF8ACB).w,d0 jsr sub_5ED42 move.w d6,(word_FFFF86C4).w move.w d2,(word_FFFF86BC).w loc_5E284: ; CODE XREF: sub_5E1A4+CCj andi.b #$3F,(byte_FFFF8ACC).w ; '?' ori.b #$80,(byte_FFFF8ACC).w loc_5E290: ; CODE XREF: sub_5E1A4+8Aj addq.b #1,d7 tst.b d7 bls.s loc_5E222 clr.b d7 loc_5E298: ; CODE XREF: sub_5E1A4+168j clr.l d3 move.b d7,d3 cmp.w word_89098(d3.w*2),d2 bne.s loc_5E306 move.w word_87F70(d2.w*4),d6 clr.b d3 move.b d3,var_2(a6) moveq #1,d1 loc_5E2B6: ; CODE XREF: sub_5E1A4+13Cj tst.b var_2(a6) bne.s loc_5E2DA clr.l d3 move.b d1,d3 mulu.w #$56,d3 ; 'V' cmp.w -$793C(d3.l),d6 bne.s loc_5E2DA move.b #1,var_2(a6) move.l d1,d0 jsr sub_5ED42 loc_5E2DA: ; CODE XREF: sub_5E1A4+116j ; sub_5E1A4+126j addq.b #1,d1 cmpi.b #5,d1 bls.s loc_5E2B6 tst.b var_2(a6) bne.s loc_5E2FA move.b (byte_FFFF8ACB).w,d0 jsr sub_5ED42 move.w d6,(word_FFFF86C4).w move.w d2,(word_FFFF86BC).w loc_5E2FA: ; CODE XREF: sub_5E1A4+142j andi.b #$3F,(byte_FFFF8ACC).w ; '?' ori.b #$80,(byte_FFFF8ACC).w loc_5E306: ; CODE XREF: sub_5E1A4+100j addq.b #1,d7 cmpi.b #3,d7 bls.s loc_5E298 move.b (byte_FFFF8ACC).w,d6 lsr.b #6,d6 bne.s loc_5E36A move.w word_87F70(d2.w*4),d6 clr.b d7 moveq #1,d1 loc_5E322: ; CODE XREF: sub_5E1A4+1A2j tst.b d7 bne.s loc_5E340 clr.l d3 move.b d1,d3 mulu.w #$56,d3 ; 'V' cmp.w -$793C(d3.l),d6 bne.s loc_5E340 moveq #1,d7 move.l d1,d0 jsr sub_5ED42 loc_5E340: ; CODE XREF: sub_5E1A4+180j ; sub_5E1A4+190j addq.b #1,d1 cmpi.b #5,d1 bls.s loc_5E322 tst.b d7 bne.s loc_5E35E move.b (byte_FFFF8ACB).w,d0 jsr sub_5ED42 move.w d6,(word_FFFF86C4).w move.w d2,(word_FFFF86BC).w loc_5E35E: ; CODE XREF: sub_5E1A4+1A6j andi.b #$3F,(byte_FFFF8ACC).w ; '?' ori.b #$40,(byte_FFFF8ACC).w ; '@' loc_5E36A: ; CODE XREF: sub_5E1A4+66j ; sub_5E1A4+78j ... addq.w #1,d2 cmpi.w #$104,d2 bls.w loc_5E202 loc_5E374: ; CODE XREF: sub_5E1A4+58j movem.l (sp)+,d0-d2/d6-d7 unlk a6 rts ; End of function sub_5E1A4 ; =============== S U B R O U T I N E ======================================= nullsub_4: ; CODE XREF: DoLoopC+2FAp rts ; End of function nullsub_4 ; =============== S U B R O U T I N E ======================================= sub_5E37E: ; CODE XREF: sub_5EFCC+Cp ; sub_5EFCC:loc_5F0B4p var_794D = -$794D var_794C = -$794C var_794B = -$794B var_7948 = -$7948 var_774C = -$774C var_774B = -$774B movem.l d1-d2/d6,-(sp) cmpi.b #4,d0 beq.w loc_5E542 cmpi.b #2,d0 bne.w loc_5E9A8 clr.w (word_FFFFB4AC).w clr.w (word_FFFFB4AE).w clr.w (word_FFFFB4A8).w moveq #1,d3 loc_5E3A0: ; CODE XREF: sub_5E37E+44j move.b DM_TYPES_KV_DM_FAULT_TYPE(d3.w),d4 ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type cmpi.b #2,d4 beq.s loc_5E3B4 cmpi.b #3,d4 bne.s loc_5E3BC loc_5E3B4: ; CODE XREF: sub_5E37E+2Ej bclr #7,byte_FFFF88C0(d3.w*2) loc_5E3BC: ; CODE XREF: sub_5E37E+34j addq.w #1,d3 cmpi.w #$104,d3 bls.s loc_5E3A0 tst.b (byte_FFFFB54A).w bne.w loc_5E4B6 clr.b (byte_FFFF8ACA).w moveq #1,d4 move.b d4,(byte_FFFF8ACB).w clr.w (word_FFFF86BC).w clr.b (byte_FFFF86BF).w clr.w (word_FFFF86C6).w movea.w (word_87F70).l,a2 move.w a2,(word_FFFF86C4).w clr.w (word_FFFF86C8).w clr.b (byte_FFFF86C0).w clr.b (byte_FFFF86C1).w movea.w #$FC00,a3 move.w a3,(word_FFFF8AD0).w clr.w (word_FFFF8AD2).w clr.w (word_FFFF8AD4).w move.w a3,(word_FFFF8AD6).w clr.w (word_FFFF8AD8).w clr.w (word_FFFF8ADA).w andi.b #$3F,(byte_FFFF8ACC).w ; '?' clr.b (byte_FFFF8ACD).w clr.b (byte_FFFF8ACF).w clr.b (byte_FFFF8ACE).w move.l d4,d0 loc_5E428: ; CODE XREF: sub_5E37E+104j move.l d4,d3 loc_5E42A: ; CODE XREF: sub_5E37E+C4j clr.l d5 move.b d0,d5 mulu.w #$2B,d5 ; '+' clr.l d1 move.b d3,d1 add.w d1,d5 clr.w unk_FFFF870E(d5.w*2) addq.b #1,d3 cmp.b d3,d4 bcc.s loc_5E42A clr.l d3 move.b d0,d3 mulu.w #$56,d3 ; 'V' clr.b -$793E(d3.l) clr.w -$7944(d3.l) clr.b -$7941(d3.l) clr.w -$793A(d3.l) move.w a2,$C+var_7948(d3.l) clr.w -$7938(d3.l) clr.b -$7940(d3.l) clr.b -$793F(d3.l) addq.b #1,d0 cmpi.b #5,d0 bls.s loc_5E428 move.l d4,d3 loc_5E486: ; CODE XREF: sub_5E37E+136j clr.b unk_FFFF88C1(d3.w*2) cmpi.b #3,DM_TYPES_KV_DM_FAULT_TYPE(d3.w) ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type bne.s loc_5E4A4 move.b (byte_8A82F).l,$C+var_774C(d3.w*2) bra.s loc_5E4AE ; --------------------------------------------------------------------------- loc_5E4A4: ; CODE XREF: sub_5E37E+118j move.b (byte_8A82E).l,$C+var_774C(d3.w*2) loc_5E4AE: ; CODE XREF: sub_5E37E+124j addq.w #1,d3 cmpi.w #$104,d3 bls.s loc_5E486 loc_5E4B6: ; CODE XREF: sub_5E37E+4Aj move.w (word_FFFF8AD0).w,(word_FFFF8ADC).w move.w (word_FFFF8AD2).w,(word_FFFF8ADE).w move.w (word_FFFF8AD4).w,(word_FFFF8AE0).w move.w (word_FFFF8AD6).w,(word_FFFF8AE2).w move.w (word_FFFF8AD8).w,(word_FFFF8AE4).w move.w (word_FFFF8ADA).w,(word_FFFF8AE6).w clr.b (byte_FFFFB4AA).w clr.b d3 loc_5E4E0: ; CODE XREF: sub_5E37E+180j clr.l d4 move.b d3,d4 movea.w word_890A0(d4.w*2),a2 tst.b unk_FFFF88C1(a2.w*2) bls.s loc_5E4FA bset #4,(byte_FFFFB4AA).w loc_5E4FA: ; CODE XREF: sub_5E37E+174j addq.b #1,d3 tst.b d3 bls.s loc_5E4E0 tst.b (byte_FFFF8ACE).w bls.s loc_5E50C bset #4,(byte_FFFFB4AA).w loc_5E50C: ; CODE XREF: sub_5E37E+186j clr.b d3 loc_5E50E: ; CODE XREF: sub_5E37E+1B0j clr.l d4 move.b d3,d4 movea.w word_89098(d4.w*2),a2 tst.b unk_FFFF88C1(a2.w*2) bls.s loc_5E528 bset #7,(byte_FFFFB4AA).w loc_5E528: ; CODE XREF: sub_5E37E+1A2j addq.b #1,d3 cmpi.b #3,d3 bls.s loc_5E50E tst.b (byte_FFFF8ACF).w bls.w loc_5E9A8 bset #7,(byte_FFFFB4AA).w bra.w loc_5E9A8 ; --------------------------------------------------------------------------- loc_5E542: ; CODE XREF: sub_5E37E+8j moveq #1,d3 loc_5E544: ; CODE XREF: sub_5E37E+2FAj btst #5,byte_FFFF88C0(d3.w*2) bne.s loc_5E558 btst #6,byte_FFFF88C0(d3.w*2) beq.s loc_5E574 loc_5E558: ; CODE XREF: sub_5E37E+1CEj lea word_FFFF86BC(d3.w*2),a2 bclr #0,$204(a2) btst #6,byte_FFFF88C0(d3.w*2) beq.s loc_5E574 bset #0,$204(a2) loc_5E574: ; CODE XREF: sub_5E37E+1D8j ; sub_5E37E+1EEj move.b DM_TYPES_KV_DM_FAULT_TYPE(d3.w),d4 ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type beq.s loc_5E586 moveq #1,d5 cmp.b d4,d5 bne.w loc_5E672 loc_5E586: ; CODE XREF: sub_5E37E+1FEj btst #7,byte_FFFF88C0(d3.w*2) beq.s loc_5E5A6 btst #6,byte_FFFF88C0(d3.w*2) beq.s loc_5E5A6 move.b #3,$C+var_774B(d3.w*2) bra.w loc_5E672 ; --------------------------------------------------------------------------- loc_5E5A6: ; CODE XREF: sub_5E37E+210j ; sub_5E37E+21Aj btst #5,byte_FFFF88C0(d3.w*2) beq.w loc_5E672 btst #7,(byte_FFFFAAD0).w beq.w loc_5E672 btst #7,byte_FFFF88C0(d3.w*2) beq.s loc_5E5D8 btst #6,byte_FFFF88C0(d3.w*2) bne.s loc_5E5D8 tst.b unk_FFFF88C1(d3.w*2) bhi.s loc_5E5F0 loc_5E5D8: ; CODE XREF: sub_5E37E+246j ; sub_5E37E+250j btst #7,byte_FFFF88C0(d3.w*2) bne.w loc_5E672 cmpi.b #1,unk_FFFF88C1(d3.w*2) bne.w loc_5E672 loc_5E5F0: ; CODE XREF: sub_5E37E+258j clr.b d1 move.l d1,d0 loc_5E5F4: ; CODE XREF: sub_5E37E+29Ej clr.l d5 move.b d0,d5 cmp.w word_890A0(d5.w*2),d3 bne.s loc_5E618 bclr #1,(byte_FFFFB4AA).w btst #2,(byte_FFFFB4AA).w beq.s loc_5E616 bset #1,(byte_FFFFB4AA).w loc_5E616: ; CODE XREF: sub_5E37E+290j moveq #1,d1 loc_5E618: ; CODE XREF: sub_5E37E+282j addq.b #1,d0 tst.b d0 bls.s loc_5E5F4 clr.b d0 loc_5E620: ; CODE XREF: sub_5E37E+2CCj clr.l d5 move.b d0,d5 cmp.w word_89098(d5.w*2),d3 bne.s loc_5E644 bclr #1,(byte_FFFFB4AA).w btst #5,(byte_FFFFB4AA).w beq.s loc_5E642 bset #1,(byte_FFFFB4AA).w loc_5E642: ; CODE XREF: sub_5E37E+2BCj moveq #1,d1 loc_5E644: ; CODE XREF: sub_5E37E+2AEj addq.b #1,d0 cmpi.b #3,d0 bls.s loc_5E620 tst.b d1 bne.s loc_5E656 bset #1,(byte_FFFFB4AA).w loc_5E656: ; CODE XREF: sub_5E37E+2D0j btst #1,(byte_FFFFB4AA).w beq.s loc_5E672 movea.l d3,a3 move.b unk_FFFF88C1(d3.w*2),d4 subq.b #1,d4 bcc.s loc_5E66C clr.b d4 loc_5E66C: ; CODE XREF: sub_5E37E+2EAj move.b d4,$C+var_774B(a3.w*2) loc_5E672: ; CODE XREF: sub_5E37E+204j ; sub_5E37E+224j ... addq.w #1,d3 cmpi.w #$104,d3 bls.w loc_5E544 clr.b d1 move.l d1,d0 moveq #1,d2 move.l d0,d4 loc_5E684: ; CODE XREF: sub_5E37E+344j clr.l d5 move.b d4,d5 movea.w word_890A0(d5.w*2),a2 move.b unk_FFFF88C1(a2.w*2),d3 bls.s loc_5E69A move.b d3,d1 loc_5E69A: ; CODE XREF: sub_5E37E+318j btst #6,byte_FFFF88C0(a2.w*2) beq.s loc_5E6A6 moveq #1,d0 loc_5E6A6: ; CODE XREF: sub_5E37E+324j btst #5,byte_FFFF88C0(a2.w*2) bne.s loc_5E6BE cmpi.b #3,DM_TYPES_KV_DM_FAULT_TYPE(a2.w) ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type beq.s loc_5E6BE clr.b d2 loc_5E6BE: ; CODE XREF: sub_5E37E+330j ; sub_5E37E+33Cj addq.b #1,d4 tst.b d4 bls.s loc_5E684 tst.b d1 bhi.s loc_5E6E2 tst.b d0 bne.s loc_5E6E8 tst.b (byte_FFFF8ACE).w bls.s loc_5E6E8 btst #2,(byte_FFFFB4AA).w beq.s loc_5E6E8 btst #3,(byte_FFFFAE60).w beq.s loc_5E6E8 loc_5E6E2: ; CODE XREF: sub_5E37E+348j ; sub_5E37E+38Aj clr.b (byte_FFFF8ACE).w bra.s loc_5E70A ; --------------------------------------------------------------------------- loc_5E6E8: ; CODE XREF: sub_5E37E+34Cj ; sub_5E37E+352j ... tst.b d0 beq.s loc_5E6F4 move.b #1,(byte_FFFF8ACE).w bra.s loc_5E70A ; --------------------------------------------------------------------------- loc_5E6F4: ; CODE XREF: sub_5E37E+36Cj move.b (byte_FFFF8ACE).w,d3 bls.s loc_5E70A tst.b d2 beq.s loc_5E70A addq.b #1,d3 move.b d3,(byte_FFFF8ACE).w moveq #$50,d5 ; 'P' cmp.b d3,d5 bls.s loc_5E6E2 loc_5E70A: ; CODE XREF: sub_5E37E+368j ; sub_5E37E+374j ... clr.b d1 move.l d1,d0 moveq #1,d2 move.l d0,d4 loc_5E712: ; CODE XREF: sub_5E37E+3D4j clr.l d5 move.b d4,d5 movea.w word_89098(d5.w*2),a2 move.b unk_FFFF88C1(a2.w*2),d3 bls.s loc_5E728 move.b d3,d1 loc_5E728: ; CODE XREF: sub_5E37E+3A6j btst #6,byte_FFFF88C0(a2.w*2) beq.s loc_5E734 moveq #1,d0 loc_5E734: ; CODE XREF: sub_5E37E+3B2j btst #5,byte_FFFF88C0(a2.w*2) bne.s loc_5E74C moveq #3,d6 cmp.b DM_TYPES_KV_DM_FAULT_TYPE(a2.w),d6 ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type beq.s loc_5E74C clr.b d2 loc_5E74C: ; CODE XREF: sub_5E37E+3BEj ; sub_5E37E+3CAj addq.b #1,d4 cmpi.b #3,d4 bls.s loc_5E712 tst.b d1 bhi.s loc_5E76A tst.b d0 bne.s loc_5E770 tst.b (byte_FFFF8ACF).w bls.s loc_5E770 btst #5,(byte_FFFFB4AA).w beq.s loc_5E770 loc_5E76A: ; CODE XREF: sub_5E37E+3D8j ; sub_5E37E+412j clr.b (byte_FFFF8ACF).w bra.s loc_5E792 ; --------------------------------------------------------------------------- loc_5E770: ; CODE XREF: sub_5E37E+3DCj ; sub_5E37E+3E2j ... tst.b d0 beq.s loc_5E77C moveq #1,d5 move.b d5,(byte_FFFF8ACF).w bra.s loc_5E792 ; --------------------------------------------------------------------------- loc_5E77C: ; CODE XREF: sub_5E37E+3F4j move.b (byte_FFFF8ACF).w,d3 bls.s loc_5E792 tst.b d2 beq.s loc_5E792 addq.b #1,d3 move.b d3,(byte_FFFF8ACF).w cmpi.b #$50,d3 ; 'P' bcc.s loc_5E76A loc_5E792: ; CODE XREF: sub_5E37E+3F0j ; sub_5E37E+3FCj ... moveq #1,d0 loc_5E794: ; CODE XREF: sub_5E37E+492j clr.l d3 move.b d0,d3 moveq #$56,d2 ; 'V' mulu.w d2,d3 move.w -$7944(d3.l),d4 beq.s loc_5E7F0 btst #6,byte_FFFF88C0(d4.w*2) beq.s loc_5E7CA clr.l d6 move.b d0,d6 mulu.w d2,d6 move.b -$7941(d6.l),d4 addq.b #1,d4 bcc.s loc_5E7C2 move.b #$FF,d4 loc_5E7C2: ; CODE XREF: sub_5E37E+43Ej move.b d4,$C+var_794D(d3.l) bra.s loc_5E80A ; --------------------------------------------------------------------------- loc_5E7CA: ; CODE XREF: sub_5E37E+42Ej btst #5,byte_FFFF88C0(d4.w*2) beq.s loc_5E7F0 clr.l d6 move.b d0,d6 mulu.w d2,d6 move.b -$793F(d6.l),d4 addq.b #1,d4 bcc.s loc_5E7E8 move.b #$FF,d4 loc_5E7E8: ; CODE XREF: sub_5E37E+464j move.b d4,$C+var_794B(d3.l) bra.s loc_5E80A ; --------------------------------------------------------------------------- loc_5E7F0: ; CODE XREF: sub_5E37E+424j ; sub_5E37E+454j clr.l d6 move.b d0,d6 mulu.w d2,d6 move.b -$7940(d6.l),d4 addq.b #1,d4 bcc.s loc_5E804 move.b #$FF,d4 loc_5E804: ; CODE XREF: sub_5E37E+480j move.b d4,$C+var_794C(d3.l) loc_5E80A: ; CODE XREF: sub_5E37E+44Aj ; sub_5E37E+470j addq.b #1,d0 cmpi.b #5,d0 bls.s loc_5E794 clr.b d0 move.l d0,d1 moveq #1,d3 loc_5E818: ; CODE XREF: sub_5E37E+4E8j tst.b d0 bne.s loc_5E844 move.b DM_TYPES_KV_DM_FAULT_TYPE(d3.w),d4 ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type beq.s loc_5E82C cmpi.b #1,d4 bne.s loc_5E844 loc_5E82C: ; CODE XREF: sub_5E37E+4A6j btst #6,byte_FFFF88C0(d3.w*2) bne.s loc_5E840 btst #7,byte_FFFF88C0(d3.w*2) beq.s loc_5E844 loc_5E840: ; CODE XREF: sub_5E37E+4B6j moveq #1,d0 bra.s loc_5E860 ; --------------------------------------------------------------------------- loc_5E844: ; CODE XREF: sub_5E37E+49Cj ; sub_5E37E+4ACj ... tst.b d1 bne.s loc_5E860 cmpi.b #2,DM_TYPES_KV_DM_FAULT_TYPE(d3.w) ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type bne.s loc_5E860 btst #6,byte_FFFF88C0(d3.w*2) beq.s loc_5E860 moveq #1,d1 loc_5E860: ; CODE XREF: sub_5E37E+4C4j ; sub_5E37E+4C8j ... addq.w #1,d3 cmpi.w #$104,d3 bls.s loc_5E818 tst.b d0 beq.s loc_5E872 clr.b (byte_FFFF8ACA).w bra.s loc_5E88A ; --------------------------------------------------------------------------- loc_5E872: ; CODE XREF: sub_5E37E+4ECj btst #5,(byte_FFFFAAD0).w beq.s loc_5E88A move.b (byte_FFFF8ACA).w,d3 addq.b #1,d3 bcc.s loc_5E886 move.b #$FF,d3 loc_5E886: ; CODE XREF: sub_5E37E+502j move.b d3,(byte_FFFF8ACA).w loc_5E88A: ; CODE XREF: sub_5E37E+4F2j ; sub_5E37E+4FAj tst.b d1 beq.s loc_5E894 clr.b (byte_FFFF8ACD).w bra.s loc_5E8AC ; --------------------------------------------------------------------------- loc_5E894: ; CODE XREF: sub_5E37E+50Ej btst #5,(byte_FFFFAAD0).w beq.s loc_5E8AC move.b (byte_FFFF8ACD).w,d3 addq.b #1,d3 bcc.s loc_5E8A8 move.b #$FF,d3 loc_5E8A8: ; CODE XREF: sub_5E37E+524j move.b d3,(byte_FFFF8ACD).w loc_5E8AC: ; CODE XREF: sub_5E37E+514j ; sub_5E37E+51Cj moveq #$28,d5 ; '(' cmp.b (byte_FFFF8ACA).w,d5 bhi.s loc_5E928 movea.w (word_87F70).l,a2 move.w a2,(word_FFFF86C4).w andi.b #$3F,(byte_FFFF8ACC).w ; '?' moveq #1,d3 loc_5E8C6: ; CODE XREF: sub_5E37E+584j move.b DM_TYPES_KV_DM_FAULT_TYPE(d3.w),d4 ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type beq.s loc_5E8D6 cmpi.b #1,d4 bne.s loc_5E8FC loc_5E8D6: ; CODE XREF: sub_5E37E+550j bclr #4,byte_FFFF88C0(d3.w*2) bclr #3,byte_FFFF88C0(d3.w*2) bclr #7,byte_FFFF88C0(d3.w*2) bclr #1,byte_FFFF88C0(d3.w*2) clr.b unk_FFFF88C1(d3.w*2) loc_5E8FC: ; CODE XREF: sub_5E37E+556j addq.w #1,d3 cmpi.w #$104,d3 bls.s loc_5E8C6 moveq #1,d3 loc_5E906: ; CODE XREF: sub_5E37E+5A8j clr.l d0 move.b d3,d0 mulu.w d2,d0 move.b -$7942(d0.l),d4 beq.s loc_5E91A cmpi.b #1,d4 bne.s loc_5E920 loc_5E91A: ; CODE XREF: sub_5E37E+594j move.w a2,$C+var_7948(d0.l) loc_5E920: ; CODE XREF: sub_5E37E+59Aj addq.b #1,d3 cmpi.b #5,d3 bls.s loc_5E906 loc_5E928: ; CODE XREF: sub_5E37E+534j cmp.b (byte_FFFF8ACD).w,d5 bhi.s loc_5E98E moveq #1,d3 loc_5E930: ; CODE XREF: sub_5E37E+5EAj cmpi.b #2,DM_TYPES_KV_DM_FAULT_TYPE(d3.w) ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type bne.s loc_5E962 bclr #4,byte_FFFF88C0(d3.w*2) bclr #3,byte_FFFF88C0(d3.w*2) bclr #7,byte_FFFF88C0(d3.w*2) bclr #1,byte_FFFF88C0(d3.w*2) clr.b unk_FFFF88C1(d3.w*2) loc_5E962: ; CODE XREF: sub_5E37E+5BCj addq.w #1,d3 cmpi.w #$104,d3 bls.s loc_5E930 moveq #1,d3 loc_5E96C: ; CODE XREF: sub_5E37E+60Ej clr.l d4 move.b d3,d4 mulu.w d2,d4 cmpi.b #2,-$7942(d4.l) bne.s loc_5E986 move.w (word_87F70).l,$C+var_7948(d4.l) loc_5E986: ; CODE XREF: sub_5E37E+5FCj addq.b #1,d3 cmpi.b #5,d3 bls.s loc_5E96C loc_5E98E: ; CODE XREF: sub_5E37E+5AEj moveq #1,d3 loc_5E990: ; CODE XREF: sub_5E37E+628j bclr #6,byte_FFFF88C0(d3.w*2) bclr #5,byte_FFFF88C0(d3.w*2) addq.w #1,d3 cmpi.w #$104,d3 bls.s loc_5E990 loc_5E9A8: ; CODE XREF: sub_5E37E+10j ; sub_5E37E+1B6j ... movem.l (sp)+,d1-d2/d6 rts ; End of function sub_5E37E ; =============== S U B R O U T I N E ======================================= sub_5E9AE: ; CODE XREF: sub_5EDDA+10p var_793C = -$793C var_7740 = -$7740 clr.b (byte_FFFF8ACA).w move.b #1,(byte_FFFF8ACB).w bclr #7,(byte_FFFFB4AA).w bclr #6,(byte_FFFFB4AA).w bclr #5,(byte_FFFFB4AA).w bclr #4,(byte_FFFFB4AA).w bclr #3,(byte_FFFFB4AA).w bclr #2,(byte_FFFFB4AA).w movea.w (word_87F70).l,a2 move.w a2,(word_FFFF86C4).w clr.w (word_FFFFB4AC).w clr.w (word_FFFFB4AE).w clr.b (byte_FFFF8ACD).w clr.b (byte_FFFF8ACF).w clr.b (byte_FFFF8ACE).w moveq #1,d3 loc_5E9FC: ; CODE XREF: sub_5E9AE+62j clr.l d4 move.b d3,d4 mulu.w #$56,d4 ; 'V' move.w a2,var_793C(d4.l) addq.b #1,d3 cmpi.b #5,d3 bls.s loc_5E9FC moveq #1,d3 loc_5EA14: ; CODE XREF: sub_5E9AE+94j clr.b unk_FFFF88C1(d3.w*2) cmpi.b #3,DM_TYPES_KV_DM_FAULT_TYPE(d3.w) ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type bne.s loc_5EA32 move.b (byte_8A82F).l,var_7740(d3.w*2) bra.s loc_5EA3C ; --------------------------------------------------------------------------- loc_5EA32: ; CODE XREF: sub_5E9AE+76j move.b (byte_8A82E).l,var_7740(d3.w*2) loc_5EA3C: ; CODE XREF: sub_5E9AE+82j addq.w #1,d3 cmpi.w #$104,d3 bls.s loc_5EA14 clr.b (byte_FFFF8ACC).w rts ; End of function sub_5E9AE ; =============== S U B R O U T I N E ======================================= sub_5EA4A: ; CODE XREF: sub_5DE36+178p ; sub_5DFBC+18p movem.l d1-d2/d6,-(sp) move.b DM_TYPES_KV_DM_FAULT_TYPE(d0.w),d3 ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type beq.s loc_5EA60 cmpi.b #1,d3 bne.w loc_5ECFC loc_5EA60: ; CODE XREF: sub_5EA4A+Cj btst #1,byte_FFFF88C0(d0.w*2) beq.s loc_5EAA4 tst.b d3 beq.s loc_5EA7E cmpi.b #1,d3 bne.s loc_5EAA4 btst #0,byte_FFFF88C0(d0.w*2) beq.s loc_5EAA4 loc_5EA7E: ; CODE XREF: sub_5EA4A+22j lea word_FFFF86BC(d0.w*2),a2 tst.b DM_TYPES_KV_DM_LIGHT_ENABLE(d0.w) ; This calibration enables or disables the telltale lamp for any fault code. ; BOOLEAN beq.s loc_5EA96 bset #7,$204(a2) bra.s loc_5EA9C ; --------------------------------------------------------------------------- loc_5EA96: ; CODE XREF: sub_5EA4A+42j bclr #7,$204(a2) loc_5EA9C: ; CODE XREF: sub_5EA4A+4Aj bset #4,byte_FFFF88C0(d0.w*2) loc_5EAA4: ; CODE XREF: sub_5EA4A+1Ej ; sub_5EA4A+28j ... moveq #1,d1 clr.w d3 loc_5EAA8: ; CODE XREF: sub_5EA4A+140j clr.l d5 move.b d3,d5 cmp.w word_890A0(d5.w*2),d0 bne.w loc_5EB86 btst #1,byte_FFFF88C0(d0.w*2) beq.s loc_5EB32 move.w (CoolantTemperatureOrDefault).w,d4 move.w d4,(word_FFFF8AD6).w move.w (word_FFFFA0E2).w,d1 move.w d1,(word_FFFF8AD8).w move.w (EngineRPM_PID_000C___).w,d2 move.w d2,(word_FFFF8ADA).w move.w (word_FFFF8AE4).w,d6 cmp.w d6,d1 bls.s loc_5EAE6 sub.w d6,d1 bra.s loc_5EAEA ; --------------------------------------------------------------------------- loc_5EAE6: ; CODE XREF: sub_5EA4A+96j sub.w d1,d6 move.w d6,d1 loc_5EAEA: ; CODE XREF: sub_5EA4A+9Aj move.w (word_FFFF8AE6).w,d6 cmp.w d6,d2 bls.s loc_5EAF6 sub.w d6,d2 bra.s loc_5EAFA ; --------------------------------------------------------------------------- loc_5EAF6: ; CODE XREF: sub_5EA4A+A6j sub.w d2,d6 move.w d6,d2 loc_5EAFA: ; CODE XREF: sub_5EA4A+AAj tst.b (byte_FFFF8ACE).w bls.s loc_5EB32 cmpi.w #$400,d1 bhi.s loc_5EB32 cmpi.w #$780,d2 bhi.s loc_5EB32 move.w (DM_DATA_MANAGER_KE_DGDM_MAX_LOW_COOLANT).l,d1 cmp.w d1,d4 bgt.s loc_5EB1C cmp.w (word_FFFF8AE2).w,d1 bge.s loc_5EB2C loc_5EB1C: ; CODE XREF: sub_5EA4A+CAj move.w (DM_DATA_MANAGER_KE_DGDM_MIN_HIGH_COOLANT).l,d1 cmp.w d1,d4 blt.s loc_5EB32 cmp.w (word_FFFF8AE2).w,d1 bgt.s loc_5EB32 loc_5EB2C: ; CODE XREF: sub_5EA4A+D0j bset #3,(byte_FFFFB4AA).w loc_5EB32: ; CODE XREF: sub_5EA4A+76j ; sub_5EA4A+B4j ... btst #3,(byte_FFFFB4AA).w beq.s loc_5EB60 btst #1,byte_FFFF88C0(d0.w*2) beq.s loc_5EB60 bset #4,byte_FFFF88C0(d0.w*2) tst.b DM_TYPES_KV_DM_LIGHT_ENABLE(d0.w) ; This calibration enables or disables the telltale lamp for any fault code. ; BOOLEAN beq.s loc_5EB84 bset #7,byte_FFFF88C0(d0.w*2) bra.s loc_5EB84 ; --------------------------------------------------------------------------- loc_5EB60: ; CODE XREF: sub_5EA4A+EEj ; sub_5EA4A+F8j cmpi.b #1,unk_FFFF88C1(d0.w*2) bhi.s loc_5EB84 btst #6,byte_FFFF88C0(d0.w*2) bne.s loc_5EB84 btst #2,(byte_FFFFB4AA).w beq.s loc_5EB84 bclr #7,byte_FFFF88C0(d0.w*2) loc_5EB84: ; CODE XREF: sub_5EA4A+10Aj ; sub_5EA4A+114j ... clr.b d1 loc_5EB86: ; CODE XREF: sub_5EA4A+6Aj addq.b #1,d3 tst.b d3 bls.w loc_5EAA8 tst.b d1 beq.w loc_5EC7E clr.w d3 loc_5EB96: ; CODE XREF: sub_5EA4A+230j clr.l d5 move.b d3,d5 cmp.w word_89098(d5.w*2),d0 bne.w loc_5EC74 btst #1,byte_FFFF88C0(d0.w*2) beq.s loc_5EC20 move.w (CoolantTemperatureOrDefault).w,d4 move.w d4,(word_FFFF8AD0).w move.w (word_FFFFA0E2).w,d1 move.w d1,(word_FFFF8AD2).w move.w (EngineRPM_PID_000C___).w,d2 move.w d2,(word_FFFF8AD4).w move.w (word_FFFF8ADE).w,d6 cmp.w d6,d1 bls.s loc_5EBD4 sub.w d6,d1 bra.s loc_5EBD8 ; --------------------------------------------------------------------------- loc_5EBD4: ; CODE XREF: sub_5EA4A+184j sub.w d1,d6 move.w d6,d1 loc_5EBD8: ; CODE XREF: sub_5EA4A+188j move.w (word_FFFF8AE0).w,d6 cmp.w d6,d2 bls.s loc_5EBE4 sub.w d6,d2 bra.s loc_5EBE8 ; --------------------------------------------------------------------------- loc_5EBE4: ; CODE XREF: sub_5EA4A+194j sub.w d2,d6 move.w d6,d2 loc_5EBE8: ; CODE XREF: sub_5EA4A+198j tst.b (byte_FFFF8ACF).w bls.s loc_5EC20 cmpi.w #$400,d1 bhi.s loc_5EC20 cmpi.w #$780,d2 bhi.s loc_5EC20 move.w (DM_DATA_MANAGER_KE_DGDM_MAX_LOW_COOLANT).l,d1 cmp.w d1,d4 bgt.s loc_5EC0A cmp.w (word_FFFF8ADC).w,d1 bge.s loc_5EC1A loc_5EC0A: ; CODE XREF: sub_5EA4A+1B8j move.w (DM_DATA_MANAGER_KE_DGDM_MIN_HIGH_COOLANT).l,d1 cmp.w d1,d4 blt.s loc_5EC20 cmp.w (word_FFFF8ADC).w,d1 bgt.s loc_5EC20 loc_5EC1A: ; CODE XREF: sub_5EA4A+1BEj bset #6,(byte_FFFFB4AA).w loc_5EC20: ; CODE XREF: sub_5EA4A+164j ; sub_5EA4A+1A2j ... btst #6,(byte_FFFFB4AA).w beq.s loc_5EC4E btst #1,byte_FFFF88C0(d0.w*2) beq.s loc_5EC4E bset #4,byte_FFFF88C0(d0.w*2) tst.b DM_TYPES_KV_DM_LIGHT_ENABLE(d0.w) ; This calibration enables or disables the telltale lamp for any fault code. ; BOOLEAN beq.s loc_5EC72 bset #7,byte_FFFF88C0(d0.w*2) bra.s loc_5EC72 ; --------------------------------------------------------------------------- loc_5EC4E: ; CODE XREF: sub_5EA4A+1DCj ; sub_5EA4A+1E6j cmpi.b #1,unk_FFFF88C1(d0.w*2) bhi.s loc_5EC72 btst #6,byte_FFFF88C0(d0.w*2) bne.s loc_5EC72 btst #5,(byte_FFFFB4AA).w beq.s loc_5EC72 bclr #7,byte_FFFF88C0(d0.w*2) loc_5EC72: ; CODE XREF: sub_5EA4A+1F8j ; sub_5EA4A+202j ... clr.b d1 loc_5EC74: ; CODE XREF: sub_5EA4A+158j addq.b #1,d3 cmpi.b #3,d3 bls.w loc_5EB96 loc_5EC7E: ; CODE XREF: sub_5EA4A+146j tst.b d1 beq.s loc_5ECE2 clr.b d3 loc_5EC84: ; CODE XREF: sub_5EA4A+296j clr.l d5 move.b d3,d5 cmp.w word_89042(d5.w*2),d0 bne.s loc_5ECDA btst #7,byte_FFFF88C0(d0.w*2) beq.s loc_5ECD8 btst #5,byte_FFFF88C0(d0.w*2) beq.s loc_5ECD8 bclr #4,byte_FFFF88C0(d0.w*2) bclr #7,byte_FFFF88C0(d0.w*2) clr.b unk_FFFF88C1(d0.w*2) move.w (word_FFFF86C4).w,d1 cmp.w word_87F70(d0.w*4),d1 bne.s loc_5ECD8 move.w (word_87F70).l,(word_FFFF86C4).w andi.b #$3F,(byte_FFFF8ACC).w ; '?' loc_5ECD8: ; CODE XREF: sub_5EA4A+250j ; sub_5EA4A+25Aj ... clr.b d1 loc_5ECDA: ; CODE XREF: sub_5EA4A+246j addq.b #1,d3 cmpi.b #1,d3 bls.s loc_5EC84 loc_5ECE2: ; CODE XREF: sub_5EA4A+236j tst.b d1 beq.s loc_5ED3C cmpi.b #1,unk_FFFF88C1(d0.w*2) bhi.s loc_5ED3C btst #6,byte_FFFF88C0(d0.w*2) bne.s loc_5ED3C bra.s loc_5ED34 ; --------------------------------------------------------------------------- loc_5ECFC: ; CODE XREF: sub_5EA4A+12j cmpi.b #2,d3 bne.s loc_5ED3C btst #1,byte_FFFF88C0(d0.w*2) beq.s loc_5ED34 bset #4,byte_FFFF88C0(d0.w*2) lea word_FFFF86BC(d0.w*2),a2 tst.b DM_TYPES_KV_DM_LIGHT_ENABLE(d0.w) ; This calibration enables or disables the telltale lamp for any fault code. ; BOOLEAN beq.s loc_5ED2C bset #7,$204(a2) bra.s loc_5ED3C ; --------------------------------------------------------------------------- loc_5ED2C: ; CODE XREF: sub_5EA4A+2D8j bclr #7,$204(a2) bra.s loc_5ED3C ; --------------------------------------------------------------------------- loc_5ED34: ; CODE XREF: sub_5EA4A+2B0j ; sub_5EA4A+2C0j bclr #7,byte_FFFF88C0(d0.w*2) loc_5ED3C: ; CODE XREF: sub_5EA4A+29Aj ; sub_5EA4A+2A4j ... movem.l (sp)+,d1-d2/d6 rts ; End of function sub_5EA4A ; =============== S U B R O U T I N E ======================================= sub_5ED42: ; CODE XREF: sub_5E1A4+BAp ; sub_5E1A4+D2p ... var_793C = -$793C var_78F6 = -$78F6 move.l d1,-(sp) clr.w d1 move.b d0,d1 move.l d1,d3 mulu.w #$56,d3 ; 'V' move.w -$7944(d3.l),(word_FFFF86BC).w move.b -$7942(d3.l),(byte_FFFF86BE).w move.b -$793E(d3.l),(byte_FFFF86C2).w move.w -$793C(d3.l),(word_FFFF86C4).w move.w -$793A(d3.l),(word_FFFF86C6).w move.w -$7938(d3.l),(word_FFFF86C8).w move.b -$793F(d3.l),(byte_FFFF86C1).w move.b -$7941(d3.l),(byte_FFFF86BF).w move.b -$7940(d3.l),(byte_FFFF86C0).w moveq #1,d3 loc_5ED98: ; CODE XREF: sub_5ED42+72j move.l d1,d5 mulu.w #$2B,d5 ; '+' clr.l d0 move.b d3,d0 add.w d0,d5 move.w word_FFFF86C8(d5.w*2),4+var_793C(d0.w*2) addq.b #1,d3 cmpi.b #$23,d3 ; '#' bls.s loc_5ED98 moveq #1,d3 loc_5EDB8: ; CODE XREF: sub_5ED42+92j move.l d1,d5 mulu.w #$2B,d5 ; '+' clr.l d0 move.b d3,d0 add.w d0,d5 move.w unk_FFFF870E(d5.w*2),4+var_78F6(d0.w*2) addq.b #1,d3 cmpi.b #1,d3 bls.s loc_5EDB8 move.l (sp)+,d1 rts ; End of function sub_5ED42 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5EDDA: ; CODE XREF: DoLoopD:loc_2A798p var_4 = -4 link a6,#-4 move.l d0,-(sp) btst #4,(byte_FFFFAAD0).w beq.w loc_5EE72 jsr sub_5E9AE clr.l (dword_FFFF8258).w clr.l (dword_FFFF825C).w bclr #6,(byte_FFFFAAD0).w lea (unk_FFFFAAD2).w,a2 moveq #$F,d3 loc_5EE04: ; CODE XREF: sub_5EDDA+2Cj clr.w (a2)+ dbf d3,loc_5EE04 clr.l (byte_FFFF8252).w clr.l var_4(a6) moveq #1,d3 loc_5EE14: ; CODE XREF: sub_5EDDA+8Aj btst #1,byte_FFFF88C0(d3.w*2) beq.s loc_5EE40 move.b byte_87F72(d3.w*4),d4 clr.l d0 move.b d4,d0 lea -$5538(d0.w),a2 addq.b #1,$A(a2) move.l d4,d0 move.l (byte_FFFF8252).w,d4 bset d0,d4 move.l d4,(byte_FFFF8252).w loc_5EE40: ; CODE XREF: sub_5EDDA+42j btst #6,byte_FFFF88C0(d3.w*2) beq.s loc_5EE5E move.b byte_87F72(d3.w*4),d4 move.l d4,d0 move.l var_4(a6),d4 bset d0,d4 move.l d4,var_4(a6) loc_5EE5E: ; CODE XREF: sub_5EDDA+6Ej addq.w #1,d3 cmpi.w #$104,d3 bls.s loc_5EE14 move.l var_4(a6),(dword_FFFFAAC8).w bclr #4,(byte_FFFFAAD0).w loc_5EE72: ; CODE XREF: sub_5EDDA+Cj jsr sub_5E08A move.l (sp)+,d0 unlk a6 rts ; End of function sub_5EDDA ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5EE7E: ; CODE XREF: DoLoopG+B8p var_2 = -2 link a6,#-2 clr.w d4 move.l d4,d3 loc_5EE86: ; CODE XREF: sub_5EE7E+2Aj addq.w #1,d3 btst #7,byte_FFFF88C0(d3.w*2) beq.s loc_5EEA0 cmpi.b #2,DM_TYPES_KV_DM_FAULT_TYPE(d3.w) ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type bne.s loc_5EEA0 moveq #1,d4 loc_5EEA0: ; CODE XREF: sub_5EE7E+12j ; sub_5EE7E+1Ej tst.b d4 bne.s loc_5EEAA cmpi.w #$104,d3 bcs.s loc_5EE86 loc_5EEAA: ; CODE XREF: sub_5EE7E+24j tst.b d4 beq.s loc_5EEBC bset #6,(byte_FFFFAAD0).w move.w (GlobalClock).w,(word_FFFFAAF4).w bra.s loc_5EEE0 ; --------------------------------------------------------------------------- loc_5EEBC: ; CODE XREF: sub_5EE7E+2Ej btst #6,(byte_FFFFAAD0).w beq.s loc_5EEE0 move.w (word_FFFFAAF4).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (DM_EXECUTIVE_KE_DGDM_SVS_ON_MIN_DURATION).l,d3 bcs.s loc_5EEE0 bclr #6,(byte_FFFFAAD0).w loc_5EEE0: ; CODE XREF: sub_5EE7E+3Cj ; sub_5EE7E+44j ... tst.b (byte_FFFF8256).w bne.s loc_5EEF6 move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$80,d3 ; '?' bls.s loc_5EEF6 move.b #1,(byte_FFFF8256).w loc_5EEF6: ; CODE XREF: sub_5EE7E+66j ; sub_5EE7E+70j move.l (EngineRunTime).w,d3 cmpi.l #$A0,d3 ; '?' bcs.s loc_5EF08 bset #7,(byte_FFFFAAD0).w loc_5EF08: ; CODE XREF: sub_5EE7E+82j jsr sub_5E1A4 unlk a6 rts ; End of function sub_5EE7E ; =============== S U B R O U T I N E ======================================= sub_5EF12: ; CODE XREF: DoLoopG:loc_2B364p movem.l d0-d2,-(sp) clr.w d3 move.b (DM_EXECUTIVE_KE_DGDM_ODO_SINCE_CC_SCALE_FACT).l,d3 ; Multiplier factor for determining proper DGDM_Odo_Since_CC scaling. ; KPS/MPH move.w (word_FFFFAEBC).w,d4 mulu.w d4,d3 divu.w #$1312,d3 andi.l #$FFFF,d3 add.l (dword_FFFF8258).w,d3 cmpi.l #unk_FFFF0000,d3 bls.s loc_5EF40 move.l #unk_FFFF0000,d3 loc_5EF40: ; CODE XREF: sub_5EF12+26j move.l d3,(dword_FFFF8258).w lsr.l #8,d3 lsr.l #8,d3 move.w d3,(word_FFFFAACC).w moveq #1,d2 move.l d2,d1 clr.b d0 jsr sub_5F22C tst.b d0 bne.s loc_5EF62 loc_5EF5C: ; CODE XREF: sub_5EF12+68j clr.l (dword_FFFF825C).w bra.s loc_5EFAC ; --------------------------------------------------------------------------- loc_5EF62: ; CODE XREF: sub_5EF12+48j move.b (byte_FFFF8ACC).w,d3 lsr.b #4,d3 moveq #3,d0 and.b d0,d3 beq.s loc_5EFAC btst #7,(byte_FFFF8252).w bne.s loc_5EFAC tst.b (byte_FFFFAAF2).w beq.s loc_5EF5C clr.w d3 move.b (DM_EXECUTIVE_KE_DGDM_ODO_WITH_MIL_ON_SCALE_FA).l,d3 ; Multiplier factor for determining proper DGDM_Odo_With_MIL_On scaling. ; KPS/MPH move.w (word_FFFFAEBC).w,d4 mulu.w d4,d3 add.l d3,d3 divu.w #$7A1,d3 andi.l #$FFFF,d3 add.l (dword_FFFF825C).w,d3 cmpi.l #unk_FFFF0000,d3 bls.s loc_5EFA8 move.l #unk_FFFF0000,d3 loc_5EFA8: ; CODE XREF: sub_5EF12+8Ej move.l d3,(dword_FFFF825C).w loc_5EFAC: ; CODE XREF: sub_5EF12+4Ej ; sub_5EF12+5Aj ... move.w (dword_FFFF825C).w,(word_FFFFAACE).w move.b (byte_FFFF8ACC).w,d3 lsr.b #4,d3 andi.b #3,d3 move.b d3,(byte_FFFFAAF2).w jsr sub_5DFDC movem.l (sp)+,d0-d2 rts ; End of function sub_5EF12 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5EFCC: ; CODE XREF: OS1:00029290p var_4 = -4 link a6,#-4 cmpi.b #2,d0 bne.w loc_5F08A jsr sub_5E37E move.w (dword_FFFF8258).w,(word_FFFFAACC).w move.w (dword_FFFF825C).w,(word_FFFFAACE).w move.b (byte_FFFF8ACC).w,d3 lsr.b #4,d3 andi.b #3,d3 move.b d3,(byte_FFFFAAF2).w move.w (word_FFFFB290).w,d3 lsr.w #8,d3 cmp.b (DM_EXECUTIVE_KE_DGDM_MAP_RAIL).l,d3 ; This calibration is intended to represent the supply voltage to which an open manifold pressure sensor input would float. ; Counts bhi.s loc_5F014 move.w (word_FFFFADAE).w,d3 lsr.w #8,d3 cmp.b (DM_EXECUTIVE_KE_DGDM_COOLANT_RAIL).l,d3 ; This calibration is intended to represent the supply voltage to which an open coolant sensor input would float. ; Counts bcc.s loc_5F01A loc_5F014: ; CODE XREF: sub_5EFCC+38j move.b #1,(byte_FFFF8256).w loc_5F01A: ; CODE XREF: sub_5EFCC+46j lea (unk_FFFFAAD2).w,a2 moveq #$F,d3 loc_5F020: ; CODE XREF: sub_5EFCC+56j clr.w (a2)+ dbf d3,loc_5F020 clr.l (byte_FFFF8252).w clr.l var_4(a6) moveq #1,d3 loc_5F030: ; CODE XREF: sub_5EFCC+B4j btst #1,byte_FFFF88C0(d3.w*2) beq.s loc_5F05C move.b byte_87F72(d3.w*4),d4 clr.l d5 move.b d4,d5 lea -$5538(d5.w),a2 addq.b #1,$A(a2) move.l d4,d5 move.l (byte_FFFF8252).w,d4 bset d5,d4 move.l d4,(byte_FFFF8252).w loc_5F05C: ; CODE XREF: sub_5EFCC+6Cj btst #6,byte_FFFF88C0(d3.w*2) beq.s loc_5F07A move.b byte_87F72(d3.w*4),d4 move.l d4,d5 move.l var_4(a6),d4 bset d5,d4 move.l d4,var_4(a6) loc_5F07A: ; CODE XREF: sub_5EFCC+98j addq.w #1,d3 cmpi.w #$104,d3 bls.s loc_5F030 move.l var_4(a6),(dword_FFFFAAC8).w bra.s loc_5F0BA ; --------------------------------------------------------------------------- loc_5F08A: ; CODE XREF: sub_5EFCC+8j cmpi.b #4,d0 bne.s loc_5F0BA move.w (CoolantTemperatureOrDefault).w,d3 cmpi.w #$71A,d3 blt.s loc_5F0AE movea.w (word_FFFFADB4).w,a2 sub.w a2,d3 cmpi.w #$226,d3 ble.s loc_5F0AE bset #5,(byte_FFFFAAD0).w bra.s loc_5F0B4 ; --------------------------------------------------------------------------- loc_5F0AE: ; CODE XREF: sub_5EFCC+CCj ; sub_5EFCC+D8j bclr #5,(byte_FFFFAAD0).w loc_5F0B4: ; CODE XREF: sub_5EFCC+E0j jsr sub_5E37E loc_5F0BA: ; CODE XREF: sub_5EFCC+BCj ; sub_5EFCC+C2j unlk a6 rts ; End of function sub_5EFCC ; =============== S U B R O U T I N E ======================================= sub_5F0BE: ; CODE XREF: sub_20644+18p ; sub_20644+32p ... movem.l d1-d2,-(sp) move.w d0,d1 btst #4,(byte_FFFFAAD0).w bne.s loc_5F10A btst #1,byte_FFFF88C0(d1.w*2) sne d2 neg.b d2 jsr sub_5DFBC tst.b d2 beq.s loc_5F10A move.b byte_87F72(d1.w*4),d3 clr.l d4 move.b d3,d4 lea -$5538(d4.w),a2 subq.b #1,$A(a2) tst.b -$552E(d4.w) bne.s loc_5F10A move.l (byte_FFFF8252).w,d4 bclr d3,d4 move.l d4,(byte_FFFF8252).w loc_5F10A: ; CODE XREF: sub_5F0BE+Cj ; sub_5F0BE+22j ... movem.l (sp)+,d1-d2 rts ; End of function sub_5F0BE ; =============== S U B R O U T I N E ======================================= sub_5F110: ; CODE XREF: sub_20000+6Ap ; sub_200DE+520p ... movem.l d1-d2,-(sp) move.w d0,d1 btst #4,(byte_FFFFAAD0).w bne.s loc_5F17A btst #1,byte_FFFF88C0(d1.w*2) sne d2 neg.b d2 jsr sub_5DE36 tst.b d2 bne.s loc_5F17A cmpi.b #3,DM_TYPES_KV_DM_FAULT_TYPE(d1.w) ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type beq.s loc_5F17A tst.b (byte_FFFF8256).w beq.s loc_5F154 btst #2,(byte_FFFF9A16).w beq.s loc_5F154 tst.b (byte_FFFFB473).w beq.s loc_5F15A loc_5F154: ; CODE XREF: sub_5F110+34j ; sub_5F110+3Cj cmpi.w #$7D,d1 ; '}' bne.s loc_5F17A loc_5F15A: ; CODE XREF: sub_5F110+42j move.b byte_87F72(d1.w*4),d3 clr.l d4 move.b d3,d4 lea -$5538(d4.w),a2 addq.b #1,$A(a2) move.l (byte_FFFF8252).w,d4 bset d3,d4 move.l d4,(byte_FFFF8252).w loc_5F17A: ; CODE XREF: sub_5F110+Cj ; sub_5F110+22j ... movem.l (sp)+,d1-d2 rts ; End of function sub_5F110 ; =============== S U B R O U T I N E ======================================= sub_5F180: ; CODE XREF: sub_26672+26p ; sub_40044+4p movem.l d2/d6,-(sp) move.w d0,d6 clr.w d2 move.w #$104,d5 loc_5F18C: ; CODE XREF: sub_5F180+34j move.l d5,d3 add.w d2,d3 bpl.s loc_5F194 addq.w #1,d3 loc_5F194: ; CODE XREF: sub_5F180+10j asr.w #1,d3 move.l d3,d0 move.w word_87F70(d0.w*4),d4 cmp.w d4,d6 beq.s loc_5F1B8 cmp.w d4,d6 bls.s loc_5F1AE addq.w #1,d3 move.w d3,d2 bra.s loc_5F1B2 ; --------------------------------------------------------------------------- loc_5F1AE: ; CODE XREF: sub_5F180+26j subq.w #1,d3 move.w d3,d5 loc_5F1B2: ; CODE XREF: sub_5F180+2Cj cmp.w d5,d2 ble.s loc_5F18C clr.w d0 loc_5F1B8: ; CODE XREF: sub_5F180+22j movem.l (sp)+,d2/d6 rts ; End of function sub_5F180 ; =============== S U B R O U T I N E ======================================= sub_5F1BE: ; CODE XREF: sub_26672+3Ap ; sub_3E928+2Ap ... movem.l d6-d7,-(sp) move.b d0,d6 move.w (a0),d3 clr.b d0 move.w #$104,d4 loc_5F1CC: ; CODE XREF: sub_5F1BE+5Cj cmp.w d3,d4 bls.s loc_5F21C addq.w #1,d3 move.l d6,d7 and.b byte_FFFF88C0(d3.w*2),d7 bne.s loc_5F1E0 tst.b d6 bne.s loc_5F218 loc_5F1E0: ; CODE XREF: sub_5F1BE+1Cj tst.b d1 beq.s loc_5F1EE cmp.b byte_87F73(d3.w*4),d1 bne.s loc_5F218 loc_5F1EE: ; CODE XREF: sub_5F1BE+24j cmpi.b #2,d2 beq.s loc_5F216 tst.b d2 bne.s loc_5F204 moveq #1,d7 cmp.b DM_TYPES_KV_DM_FAULT_TYPE(d3.w),d7 ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type bcs.s loc_5F216 loc_5F204: ; CODE XREF: sub_5F1BE+38j moveq #1,d5 cmp.b d2,d5 bne.s loc_5F218 cmpi.b #1,DM_TYPES_KV_DM_FAULT_TYPE(d3.w) ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type bhi.s loc_5F218 loc_5F216: ; CODE XREF: sub_5F1BE+34j ; sub_5F1BE+44j moveq #1,d0 loc_5F218: ; CODE XREF: sub_5F1BE+20j ; sub_5F1BE+2Ej ... tst.b d0 beq.s loc_5F1CC loc_5F21C: ; CODE XREF: sub_5F1BE+10j tst.b d0 beq.s loc_5F224 move.w d3,(a0) bra.s loc_5F226 ; --------------------------------------------------------------------------- loc_5F224: ; CODE XREF: sub_5F1BE+60j clr.w (a0) loc_5F226: ; CODE XREF: sub_5F1BE+64j movem.l (sp)+,d6-d7 rts ; End of function sub_5F1BE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5F22C: ; CODE XREF: OS2:00049EEEp ; sub_5EF12+40p var_4 = -4 link a6,#-4 clr.l var_4(a6) moveq #1,d3 loc_5F236: ; CODE XREF: sub_5F22C+90j tst.b d0 beq.s loc_5F244 cmp.b byte_87F73(d3.w*4),d0 bne.s loc_5F2B6 loc_5F244: ; CODE XREF: sub_5F22C+Cj cmpi.b #2,d1 beq.s loc_5F26A tst.b d1 bne.s loc_5F25A moveq #1,d4 cmp.b DM_TYPES_KV_DM_FAULT_TYPE(d3.w),d4 ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type bcs.s loc_5F26A loc_5F25A: ; CODE XREF: sub_5F22C+20j moveq #1,d4 cmp.b d1,d4 bne.s loc_5F2B6 cmp.b DM_TYPES_KV_DM_FAULT_TYPE(d3.w),d4 ; A = 1 trip SES On, 3 trips SES Off; B = 2 trips SES On, 3 trips SES Off; C = SVS On; X = no reporting ; Fault Type bcs.s loc_5F2B6 loc_5F26A: ; CODE XREF: sub_5F22C+1Cj ; sub_5F22C+2Cj btst #1,byte_FFFF88C0(d3.w*2) beq.s loc_5F278 addq.b #1,var_4(a6) loc_5F278: ; CODE XREF: sub_5F22C+46j btst #4,byte_FFFF88C0(d3.w*2) beq.s loc_5F286 addq.b #1,var_4+1(a6) loc_5F286: ; CODE XREF: sub_5F22C+54j btst #7,byte_FFFF88C0(d3.w*2) beq.s loc_5F294 addq.b #1,var_4+2(a6) loc_5F294: ; CODE XREF: sub_5F22C+62j btst #1,byte_FFFF88C0(d3.w*2) bne.s loc_5F2B2 btst #4,byte_FFFF88C0(d3.w*2) bne.s loc_5F2B2 btst #7,byte_FFFF88C0(d3.w*2) beq.s loc_5F2B6 loc_5F2B2: ; CODE XREF: sub_5F22C+70j ; sub_5F22C+7Aj addq.b #1,var_4+3(a6) loc_5F2B6: ; CODE XREF: sub_5F22C+16j ; sub_5F22C+32j ... addq.w #1,d3 cmpi.w #$104,d3 bls.w loc_5F236 andi.w #$FF,d2 move.b var_4(a6,d2.w),d0 unlk a6 rts ; End of function sub_5F22C ; =============== S U B R O U T I N E ======================================= sub_5F2CC: ; CODE XREF: sub_5E1A4+8p btst #6,(byte_FFFFAE61).w sne d0 neg.b d0 rts ; End of function sub_5F2CC ; =============== S U B R O U T I N E ======================================= sub_5F2D8: ; CODE XREF: OS1:0003FF18p ; OS1:0003FFF4p ... clr.w d0 move.b (byte_FFFF8ACB).w,d0 cmpi.w #1,d0 bne.s loc_5F2E8 moveq #5,d0 bra.s locret_5F2EA ; --------------------------------------------------------------------------- loc_5F2E8: ; CODE XREF: sub_5F2D8+Aj subq.w #1,d0 locret_5F2EA: ; CODE XREF: sub_5F2D8+Ej rts ; End of function sub_5F2D8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5F2EC: ; CODE XREF: OS2:00049696p ; OS2:000496B0p ... var_2 = -2 link a6,#-2 movem.l d2/d6-d7,-(sp) move.w d0,d7 move.w d1,d6 clr.b d2 moveq #1,d1 moveq #$23,d0 ; '#' loc_5F2FE: ; CODE XREF: sub_5F2EC+44j move.l d0,d3 add.w d1,d3 bpl.s loc_5F306 addq.w #1,d3 loc_5F306: ; CODE XREF: sub_5F2EC+16j asr.w #1,d3 clr.l d5 move.b d3,d5 move.w word_89050(d5.w*2),d4 cmp.w d6,d4 bne.s loc_5F31C moveq #1,d2 bra.s loc_5F32A ; --------------------------------------------------------------------------- loc_5F31C: ; CODE XREF: sub_5F2EC+2Aj cmp.w d6,d4 bcc.s loc_5F326 move.l d3,d1 addq.w #1,d1 bra.s loc_5F32A ; --------------------------------------------------------------------------- loc_5F326: ; CODE XREF: sub_5F2EC+32j move.l d3,d0 subq.w #1,d0 loc_5F32A: ; CODE XREF: sub_5F2EC+2Ej ; sub_5F2EC+38j tst.b d2 bne.s loc_5F332 cmp.w d0,d1 ble.s loc_5F2FE loc_5F332: ; CODE XREF: sub_5F2EC+40j tst.b d2 beq.s loc_5F33C move.b d3,var_2(a6) bra.s loc_5F342 ; --------------------------------------------------------------------------- loc_5F33C: ; CODE XREF: sub_5F2EC+48j move.b #1,var_2(a6) loc_5F342: ; CODE XREF: sub_5F2EC+4Ej tst.b d2 beq.s loc_5F376 tst.w d7 bne.s loc_5F358 clr.w d0 move.b var_2(a6),d0 move.w word_FFFF86C8(d0.w*2),d0 bra.s loc_5F378 ; --------------------------------------------------------------------------- loc_5F358: ; CODE XREF: sub_5F2EC+5Cj cmpi.w #5,d7 bhi.s loc_5F376 andi.w #$FF,d7 mulu.w #$2B,d7 ; '+' clr.w d0 move.b var_2(a6),d0 add.w d0,d7 move.w word_FFFF86C8(d7.w*2),d0 bra.s loc_5F378 ; --------------------------------------------------------------------------- loc_5F376: ; CODE XREF: sub_5F2EC+58j ; sub_5F2EC+70j clr.w d0 loc_5F378: ; CODE XREF: sub_5F2EC+6Aj ; sub_5F2EC+88j movem.l (sp)+,d2/d6-d7 unlk a6 rts ; End of function sub_5F2EC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5F380: ; CODE XREF: sub_5DE36+FAp ; sub_5DE36+14Ap var_A = -$A var_9 = -9 var_8 = -8 var_4 = -4 link a6,#-$A movem.l a0-a1,-(sp) lea var_9(a6),a1 lea var_A(a6),a0 jsr sub_42E3C move.l d0,var_8(a6) move.b var_9(a6),d3 bne.s loc_5F3AC clr.b var_4(a6) move.b var_8(a6),var_4+1(a6) bra.s loc_5F3C0 ; --------------------------------------------------------------------------- loc_5F3AC: ; CODE XREF: sub_5F380+1Ej cmpi.b #1,d3 bne.s loc_5F3BA move.w var_8(a6),var_4(a6) bra.s loc_5F3C0 ; --------------------------------------------------------------------------- loc_5F3BA: ; CODE XREF: sub_5F380+30j move.l var_8(a6),var_4(a6) loc_5F3C0: ; CODE XREF: sub_5F380+2Aj ; sub_5F380+38j move.w var_4(a6),d0 movem.l (sp)+,a0-a1 unlk a6 rts ; End of function sub_5F380 ; =============== S U B R O U T I N E ======================================= sub_5F3CC: ; CODE XREF: sub_72688+5Ap move.b (byte_FFFFA7F9).w,d0 rts ; End of function sub_5F3CC ; =============== S U B R O U T I N E ======================================= sub_5F3D2: ; CODE XREF: sub_6B156+1F6p ; sub_6B156+210p ... tst.b d0 beq.s loc_5F3E6 cmpi.b #2,(DI_ICAT_KE_CAT_NUM_CATALYST_TO_DIAGNOSE).l ; The number of catalytic converters to diagnose. ; Unitless bne.s loc_5F3E6 move.w (word_FFFF9F08).w,d0 bra.s locret_5F3EA ; --------------------------------------------------------------------------- loc_5F3E6: ; CODE XREF: sub_5F3D2+2j sub_5F3D2+Cj move.w (word_FFFF9F02).w,d0 locret_5F3EA: ; CODE XREF: sub_5F3D2+12j rts ; End of function sub_5F3D2 ; =============== S U B R O U T I N E ======================================= sub_5F3EC: ; CODE XREF: OS1:00028CC0p ; sub_755FA+BAp clr.w (word_FFFFB2B8).w clr.w (word_FFFFB2BA).w andi.w #$FF,d0 movea.l off_8A134(d0.w*4),a2 jmp (a2) ; End of function sub_5F3EC ; --------------------------------------------------------------------------- loc_5F402: ; DATA XREF: OS4:0008A13Co bclr #5,(byte_FFFFAD8B).w movea.w (4294946190).w,a2 move.w a2,(word_FFFFB2B4).w move.w a2,(word_FFFFB2B6).w bra.s aB8Pb8B8B8Nu+$10 ; --------------------------------------------------------------------------- loc_5F416: ; DATA XREF: OS4:0008A140o ; OS4:0008A14Co bclr #7,(byte_FFFFB2AE).w bra.s aB8Pb8B8B8Nu ; "B8??B8??B8??B8??Nu/" ; --------------------------------------------------------------------------- loc_5F41E: ; DATA XREF: OS4:0008A154o bclr #7,(byte_FFFFB2AE).w bra.s aB8Pb8B8B8Nu+$10 ; --------------------------------------------------------------------------- aB8Pb8B8B8Nu: dc.b 'B8??B8??B8??B8??Nu/',0 ; CODE XREF: OS2:0005F41Cj ; DATA XREF: OS4:off_8A134o ... ; --------------------------------------------------------------------------- btst #6,(byte_FFFFAD8B).w beq.s loc_5F4A2 move.w (word_FFFFF2DE).w,d3 lsr.w #2,d3 cmp.b (DG_AC_KV_AC_PRES_AD_CNT).l,d3 ; When AC pressure is outside the window, then it is considered invalid. ; Counts bhi.s loc_5F458 cmp.b (byte_1653B).l,d3 bcc.s loc_5F472 loc_5F458: ; CODE XREF: OS2:0005F44Ej bset #7,(byte_FFFFB2AE).w move.w (word_FFFFB2BC).w,d3 addi.w #$10,d3 bcc.s loc_5F46C move.w #$FFFF,d3 loc_5F46C: ; CODE XREF: OS2:0005F466j move.w d3,(word_FFFFB2BC).w bra.s loc_5F47C ; --------------------------------------------------------------------------- loc_5F472: ; CODE XREF: OS2:0005F456j bclr #7,(byte_FFFFB2AE).w clr.w (word_FFFFB2BC).w loc_5F47C: ; CODE XREF: OS2:0005F470j btst #7,(byte_FFFFB2AE).w beq.s loc_5F49A move.w (word_FFFFB2BC).w,d0 cmp.w (DG_AC_KE_AC_PRESSURE_IN_FLT_TMR).l,d0 ; The time that a failure must exsist to cause a fault to be displayed for AC pressure. ; Seconds bcs.s loc_5F49A moveq #$74,d0 ; 't' jsr sub_5F110 bra.s loc_5F4A2 ; --------------------------------------------------------------------------- loc_5F49A: ; CODE XREF: OS2:0005F482j ; OS2:0005F48Ej moveq #$74,d0 ; 't' jsr sub_5F0BE loc_5F4A2: ; CODE XREF: OS2:0005F440j ; OS2:0005F498j move.l (sp)+,d0 rts ; =============== S U B R O U T I N E ======================================= sub_5F4A6: ; CODE XREF: sub_5F566+13Cp move.l d0,-(sp) btst #1,(byte_FFFFAD8B).w bne.s loc_5F508 move.b (byte_FFFFB2B0).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFB2B0).w btst #5,(byte_FFFFAD8B).w beq.s loc_5F4EA move.b (byte_FFFFB2AF).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFB2AF).w cmp.b (DG_AC_KE_AC_CLUTCH_HIGH_FAIL_THRESHOLD).l,d3 ; The number of failures required to set P1539 ; Counts bls.w loc_5F562 move.w #$C3,d0 ; '?' jsr sub_5F110 clr.b (byte_FFFFB2B0).w clr.b (byte_FFFFB2AF).w bra.s loc_5F562 ; --------------------------------------------------------------------------- loc_5F4EA: ; CODE XREF: sub_5F4A6+1Aj cmp.b (DG_AC_KE_AC_CLUTCH_HIGH_PASS_THRESHOLD).l,d3 ; The number of passes required to pass P1539 ; Counts bls.s loc_5F562 clr.b (byte_FFFFB2B0).w clr.b (byte_FFFFB2AF).w btst #1,(byte_FFFF8A46).w beq.s loc_5F562 move.w #$C3,d0 ; '?' bra.s loc_5F55C ; --------------------------------------------------------------------------- loc_5F508: ; CODE XREF: sub_5F4A6+8j move.b (byte_FFFFB2B2).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFB2B2).w btst #5,(byte_FFFFAD8B).w bne.s loc_5F540 move.b (byte_FFFFB2B1).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFB2B1).w cmp.b (DG_AC_KE_AC_CLUTCH_LOW_FAIL_THRESHOLD).l,d3 ; The number of failures required to set P1546 ; Counts bls.s loc_5F562 move.w #$C4,d0 ; '?' jsr sub_5F110 clr.b (byte_FFFFB2B2).w clr.b (byte_FFFFB2B1).w bra.s loc_5F562 ; --------------------------------------------------------------------------- loc_5F540: ; CODE XREF: sub_5F4A6+72j cmp.b (DG_AC_KE_AC_CLUTCH_LOW_PASS_THRESHOLD).l,d3 ; The number of passes required to pass P1546 ; Counts bls.s loc_5F562 clr.b (byte_FFFFB2B2).w clr.b (byte_FFFFB2B1).w btst #1,(byte_FFFF8A48).w beq.s loc_5F562 move.w #$C4,d0 ; '?' loc_5F55C: ; CODE XREF: sub_5F4A6+60j jsr sub_5F0BE loc_5F562: ; CODE XREF: sub_5F4A6+2Cj ; sub_5F4A6+42j ... move.l (sp)+,d0 rts ; End of function sub_5F4A6 ; =============== S U B R O U T I N E ======================================= sub_5F566: ; CODE XREF: DoLoopF+3C8p move.l d0,-(sp) tst.b (byte_FFFFA18E).w beq.s loc_5F57C cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_5F57C jsr aB8Pb8B8B8Nu+$12 loc_5F57C: ; CODE XREF: sub_5F566+6j sub_5F566+Ej tst.b (byte_FFFFA18F).w beq.w loc_5F69C btst #6,(byte_FFFFB2AE).w bne.w loc_5F69C movea.w (word_FFFFAD8E).w,a2 move.w (word_FFFFB2B6).w,d0 sub.w a2,d0 bcc.s loc_5F59C neg.w d0 loc_5F59C: ; CODE XREF: sub_5F566+32j cmp.w (DG_AC_KE_P0531_STARTUP_AC_PRESS_DELTA).l,d0 bcs.s loc_5F5B0 moveq #$75,d0 ; 'u' jsr sub_5F0BE bra.w loc_5F69C ; --------------------------------------------------------------------------- loc_5F5B0: ; CODE XREF: sub_5F566+3Cj btst #5,(byte_FFFFAD8B).w beq.w loc_5F644 clr.w (word_FFFFB2B8).w bset #4,(byte_FFFFB2AE).w move.w (word_FFFFAD8E).w,d4 cmp.w (DG_AC_KE_P0531_AC_PRESS_ENABLE_TEST).l,d4 ; When AC pressure is greater than this or when KE_P0531_IAT_Enable_Test is met, allow P0531 test to run. ; PSI bhi.s loc_5F5EC btst #3,(byte_FFFFB487).w bne.s loc_5F63C btst #2,(byte_FFFFB487).w bne.s loc_5F63C move.w (word_FFFFB3EA).w,d0 cmp.w (DG_AC_KE_P0531_IAT_ENABLE_TEST).l,d0 ; When IAT is greater than this or when KE_P0531_AC_Press_Enable_Test is met, allow P0531 test to run ; Degrees_C ble.s loc_5F63C loc_5F5EC: ; CODE XREF: sub_5F566+68j btst #5,(byte_FFFFB2AE).w beq.w loc_5F69C sub.w (word_FFFFB2B4).w,d4 bcc.s loc_5F5FE neg.w d4 loc_5F5FE: ; CODE XREF: sub_5F566+94j cmp.w (DG_AC_KE_P0531_AC_PRESSURE_DELTA).l,d4 ; The amount of PSI rise after AC compressor engagement, at all ambient temperatures, that indicates the sensor is not stuck. ; PSI bls.s loc_5F618 moveq #$75,d0 ; 'u' jsr sub_5F0BE loc_5F60E: ; CODE XREF: sub_5F566+D4j bset #6,(byte_FFFFB2AE).w bra.w loc_5F69C ; --------------------------------------------------------------------------- loc_5F618: ; CODE XREF: sub_5F566+9Ej move.w (word_FFFFB2BA).w,d3 addi.w #$10,d3 bcc.s loc_5F626 move.w #$FFFF,d3 loc_5F626: ; CODE XREF: sub_5F566+BAj move.w d3,(word_FFFFB2BA).w cmp.w (DG_AC_KE_P0531_AC_ON_TIME).l,d3 ; The amount of time allowed for the AC pressure to rise the required delta before failing the P0531 diagnostic. ; Seconds bcs.s loc_5F69C moveq #$75,d0 ; 'u' jsr sub_5F110 bra.s loc_5F60E ; --------------------------------------------------------------------------- loc_5F63C: ; CODE XREF: sub_5F566+70j ; sub_5F566+78j ... bclr #5,(byte_FFFFB2AE).w bra.s loc_5F69C ; --------------------------------------------------------------------------- loc_5F644: ; CODE XREF: sub_5F566+50j move.w a2,(word_FFFFB2B4).w clr.w (word_FFFFB2BA).w move.w (word_FFFFB2B8).w,d3 addi.w #$10,d3 bcc.s loc_5F65A move.w #$FFFF,d3 loc_5F65A: ; CODE XREF: sub_5F566+EEj move.w d3,(word_FFFFB2B8).w move.w (DG_AC_KE_P0531_AC_OFF_TIME).l,d4 ; The delay time after the clutch is turned off before the diagnostic is enabled. This allows the pressure to decay. ; Seconds cmp.w d4,d3 bcs.s loc_5F670 bset #5,(byte_FFFFB2AE).w bra.s loc_5F676 ; --------------------------------------------------------------------------- loc_5F670: ; CODE XREF: sub_5F566+100j bclr #5,(byte_FFFFB2AE).w loc_5F676: ; CODE XREF: sub_5F566+108j btst #4,(byte_FFFFB2AE).w beq.s loc_5F696 move.w (word_FFFFB3EA).w,d5 cmp.w (DG_AC_KE_P0531_AC_HOLD_OFF_IAT).l,d5 ; Hold AC compressor off for KE_P0531_AC_Off_Time when compressor turns off when IAT less than this. ; Degrees_C bge.s loc_5F696 cmp.w d4,d3 bcc.s loc_5F696 bset #3,(byte_FFFFB2AE).w bra.s loc_5F69C ; --------------------------------------------------------------------------- loc_5F696: ; CODE XREF: sub_5F566+116j ; sub_5F566+122j ... bclr #3,(byte_FFFFB2AE).w loc_5F69C: ; CODE XREF: sub_5F566+1Aj ; sub_5F566+24j ... tst.b (byte_FFFFA190).w beq.s loc_5F6A8 jsr sub_5F4A6 loc_5F6A8: ; CODE XREF: sub_5F566+13Aj move.l (sp)+,d0 rts ; End of function sub_5F566 ; =============== S U B R O U T I N E ======================================= sub_5F6AC: ; CODE XREF: DoLoopC+29Cp clr.b (byte_FFFFAA45).w bclr #4,(byte_FFFFAA3E).w clr.b (byte_FFFFAA4A).w rts ; End of function sub_5F6AC ; =============== S U B R O U T I N E ======================================= sub_5F6BC: ; CODE XREF: OS1:000291ECp ; sub_755FA+2Ep var_55B8 = -$55B8 var_55A4 = -$55A4 move.l d1,-(sp) cmpi.b #6,d0 beq.s loc_5F6D4 cmpi.b #3,d0 bhi.w loc_5F798 cmpi.b #1,d0 bls.w loc_5F798 loc_5F6D4: ; CODE XREF: sub_5F6BC+6j clr.b (byte_FFFFAA40).w clr.l (byte_FFFFAA3C).w clr.w (word_FFFFAA56).w clr.w (word_FFFFAA5C).w clr.l (dword_FFFFAA58).w clr.l (dword_FFFFAA5E).w clr.w (word_FFFFAA3A).w clr.w (word_FFFFAA66).w clr.w (word_FFFFAA4C).w move.b (DI_AIR_KE_AIRD_NUMBER_OF_O2_MONITORS).l,d0 ; The number of O2 sensors that independently receive air injection from the secondary AIR system. ; Unitless move.b d0,d1 moveq #1,d3 move.l d3,d5 cmp.b d1,d5 bhi.s loc_5F742 loc_5F708: ; CODE XREF: sub_5F6BC+84j clr.l d4 move.b d3,d4 bclr #7,-$55C5(d4.w) bclr #4,-$55C5(d4.w) bclr #6,-$55C5(d4.w) bclr #5,-$55C5(d4.w) bclr #3,-$55C5(d4.w) bclr #2,-$55C5(d4.w) addq.b #1,d3 cmp.b d3,d1 bcc.s loc_5F708 loc_5F742: ; CODE XREF: sub_5F6BC+4Aj move.l d5,d3 cmp.b d0,d5 bhi.s loc_5F762 loc_5F748: ; CODE XREF: sub_5F6BC+A4j clr.l d4 move.b d3,d4 movea.w #$FF38,a2 move.w a2,4+var_55B8(d4.w*2) move.w a2,4+var_55A4(d4.w*2) addq.b #1,d3 cmp.b d3,d0 bcc.s loc_5F748 loc_5F762: ; CODE XREF: sub_5F6BC+8Aj clr.w (word_FFFFAA52).w clr.b (byte_FFFFAA46).w clr.b (byte_FFFFAA44).w clr.b (byte_FFFFAA49).w clr.b (byte_FFFFAA42).w clr.b (byte_FFFFAA47).w clr.b (byte_FFFFAA48).w clr.w (word_FFFFAA54).w clr.b (byte_FFFFAA45).w clr.b (byte_FFFFAA4A).w clr.b (byte_FFFFAA41).w clr.b (byte_FFFFAA38).w move.b (byte_FFFFAB2C).w,(byte_FFFFAA43).w loc_5F798: ; CODE XREF: sub_5F6BC+Cj ; sub_5F6BC+14j move.l (sp)+,d1 rts ; End of function sub_5F6BC ; --------------------------------------------------------------------------- loc_5F79C: ; CODE XREF: DoLoopF+F8p movem.l d0-d2/d6-d7,-(sp) btst #4,(byte_FFFFAB2F).w beq.s loc_5F820 clr.w d3 move.b (byte_FFFFAA38).w,d3 movea.l off_8A790(d3.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_5F7B8: ; DATA XREF: OS4:off_8A790o move.l (EngineRunTime).w,d3 cmpi.l #$FFFF,d3 bhi.s loc_5F7CA cmpi.w #$9F60,d3 bls.s loc_5F7CE loc_5F7CA: ; CODE XREF: OS2:0005F7C2j move.w #$9F60,d3 loc_5F7CE: ; CODE XREF: OS2:0005F7C8j cmp.w (DG_AIR_KE_AIRD_ENGINE_RUN_TIME_MIN).l,d3 ; The minimum engine run time required to start the AIR diagnostic ; Seconds bcs.s loc_5F826 move.b #1,(byte_FFFFAA38).w bra.s loc_5F826 ; --------------------------------------------------------------------------- loc_5F7DE: ; DATA XREF: OS4:0008A794o btst #7,(byte_FFFFAA40).w beq.s loc_5F7EE loc_5F7E6: ; CODE XREF: OS2:0005F80Ej move.b #3,(byte_FFFFAA38).w bra.s loc_5F826 ; --------------------------------------------------------------------------- loc_5F7EE: ; CODE XREF: OS2:0005F7E4j btst #7,(byte_FFFFAA3F).w bne.s loc_5F7FE btst #3,(byte_FFFFAA3F).w beq.s loc_5F826 loc_5F7FE: ; CODE XREF: OS2:0005F7F4j move.b #2,(byte_FFFFAA38).w bra.s loc_5F826 ; --------------------------------------------------------------------------- loc_5F806: ; DATA XREF: OS4:0008A798o btst #7,(byte_FFFFAA3E).w beq.s loc_5F826 bra.s loc_5F7E6 ; --------------------------------------------------------------------------- loc_5F810: ; DATA XREF: OS4:0008A79Co btst #0,(byte_FFFFAB2F).w beq.s loc_5F81E move.b #4,(byte_FFFFAA38).w loc_5F81E: ; CODE XREF: OS2:0005F816j ; DATA XREF: OS4:0008A7A0o bra.s loc_5F826 ; --------------------------------------------------------------------------- loc_5F820: ; CODE XREF: OS2:0005F7A6j move.b #4,(byte_FFFFAA38).w loc_5F826: ; CODE XREF: OS2:0005F7D4j ; OS2:0005F7DCj ... cmpi.b #6,(byte_FFFFAB44).w beq.s loc_5F87A move.w (word_FFFFAB30).w,d3 cmp.w (DG_AIR_KE_AIRD_PASV_EXH_BACKPRES_MAX).l,d3 ; Maximum engine load allowed during the passive test. ; Percent bcc.s loc_5F87A move.w (word_FFFFAB42).w,d3 cmp.w (DG_AIR_KE_AIRD_PASV_TPS_DELTA_MAX).l,d3 ; The maximum change in TPS values over 100ms interval allowed during the passive test. ; Percent bhi.s loc_5F87A move.w (word_FFFFA0DC).w,d3 cmp.w (DG_AIR_KE_AIRD_PASV_ENG_AIRFLOW_MAX).l,d3 ; Maximum engine airflow allowed during the passive test. ; Grams bcc.s loc_5F87A move.w (word_FFFFB298).w,d3 asl.w #2,d3 cmp.w (DG_AIR_KE_AIRD_ENGINE_VACUUM_MIN).l,d3 ; The minimum engine vacuum threshold to enable the passive and active tests. ; Kilopascals bcs.s loc_5F87A move.w (word_FFFFA1E8).w,d3 mulu.w #5,d3 lsr.l #1,d3 cmp.w (DG_AIR_KE_AIRD_PASV_AIRFUEL_RATIO_MIN).l,d3 ; The commanded engine air/fuel control ratio shall be above this value for the passive test to run. ; Ratio bcs.s loc_5F87A bset #4,(byte_FFFFAA3F).w bra.s loc_5F880 ; --------------------------------------------------------------------------- loc_5F87A: ; CODE XREF: OS2:0005F82Cj ; OS2:0005F838j ... bclr #4,(byte_FFFFAA3F).w loc_5F880: ; CODE XREF: OS2:0005F878j moveq #1,d6 cmp.b (byte_FFFFAA38).w,d6 bne.w loc_5F982 btst #5,(byte_FFFFAA40).w beq.s loc_5F8E4 bclr #1,(byte_FFFFAA3F).w btst #0,(byte_FFFFAA3F).w beq.s loc_5F8AA bset #7,(byte_FFFFAA40).w bra.w loc_5F98E ; --------------------------------------------------------------------------- loc_5F8AA: ; CODE XREF: OS2:0005F89Ej bset #7,(byte_FFFFAA3F).w move.b (DI_AIR_KE_AIRD_NUMBER_OF_O2_MONITORS).l,d0 ; The number of O2 sensors that independently receive air injection from the secondary AIR system. ; Unitless move.l d6,d3 cmp.b d0,d6 bhi.w loc_5F98E loc_5F8BE: ; CODE XREF: OS2:0005F8DEj clr.l d7 move.b d3,d7 clr.l d2 move.b d3,d2 move.b -$55C7(d2.w),d4 addq.b #1,d4 bcc.s loc_5F8D4 move.b #$FF,d4 loc_5F8D4: ; CODE XREF: OS2:0005F8CEj move.b d4,-$55C7(d7.w) addq.b #1,d3 cmp.b d3,d0 bcc.s loc_5F8BE bra.w loc_5F98E ; --------------------------------------------------------------------------- loc_5F8E4: ; CODE XREF: OS2:0005F890j btst #1,(byte_FFFFAA3F).w bne.w loc_5F98E btst #6,(byte_FFFFAA40).w beq.w loc_5F97A bclr #2,(byte_FFFFAA3F).w move.b (DI_AIR_KE_AIRD_NUMBER_OF_O2_MONITORS).l,d1 ; The number of O2 sensors that independently receive air injection from the secondary AIR system. ; Unitless move.l d1,d0 move.l d6,d3 cmp.b d0,d6 bhi.s loc_5F95C loc_5F90C: ; CODE XREF: OS2:0005F95Aj clr.l d4 move.b d3,d4 btst #3,-$55C5(d4.w) beq.s loc_5F93C bset #7,(byte_FFFFAA3F).w movea.l d4,a2 clr.l d7 move.b d3,d7 move.b -$55C7(d7.w),d4 addq.b #1,d4 bcc.s loc_5F934 move.b #$FF,d4 loc_5F934: ; CODE XREF: OS2:0005F92Ej move.b d4,-$55C7(a2.w) bra.s loc_5F956 ; --------------------------------------------------------------------------- loc_5F93C: ; CODE XREF: OS2:0005F918j btst #2,-$55C5(d4.w) beq.s loc_5F956 move.b (byte_FFFFAA47).w,d4 addq.b #1,d4 bcc.s loc_5F952 move.b #$FF,d4 loc_5F952: ; CODE XREF: OS2:0005F94Cj move.b d4,(byte_FFFFAA47).w loc_5F956: ; CODE XREF: OS2:0005F93Aj ; OS2:0005F944j addq.b #1,d3 cmp.b d3,d0 bcc.s loc_5F90C loc_5F95C: ; CODE XREF: OS2:0005F90Aj cmp.b (byte_FFFFAA47).w,d1 bne.s loc_5F96A bset #1,(byte_FFFFAA3F).w bra.s loc_5F98E ; --------------------------------------------------------------------------- loc_5F96A: ; CODE XREF: OS2:0005F960j btst #7,(byte_FFFFAA3F).w bne.s loc_5F98E bset #3,(byte_FFFFAA3F).w bra.s loc_5F98E ; --------------------------------------------------------------------------- loc_5F97A: ; CODE XREF: OS2:0005F8F4j bset #2,(byte_FFFFAA3F).w bra.s loc_5F98E ; --------------------------------------------------------------------------- loc_5F982: ; CODE XREF: OS2:0005F886j bclr #2,(byte_FFFFAA3F).w bclr #1,(byte_FFFFAA3F).w loc_5F98E: ; CODE XREF: OS2:0005F8A6j ; OS2:0005F8BAj ... move.b (byte_FFFFAB44).w,d4 move.b (byte_FFFFAB2E).w,d3 btst #2,(byte_FFFFAA3F).w beq.s loc_5F9D6 btst #5,(byte_FFFFAA3F).w beq.s loc_5F9AE bset #6,(byte_FFFFAA40).w bra.s loc_5F9E2 ; --------------------------------------------------------------------------- loc_5F9AE: ; CODE XREF: OS2:0005F9A4j tst.b d3 beq.s loc_5F9C6 tst.b d4 beq.s loc_5F9C6 btst #4,(byte_FFFFAA3F).w beq.s loc_5F9DC bset #6,(byte_FFFFAA3F).w bra.s loc_5F9E2 ; --------------------------------------------------------------------------- loc_5F9C6: ; CODE XREF: OS2:0005F9B0j ; OS2:0005F9B4j tst.b d3 bne.s loc_5F9DC tst.b d4 bne.s loc_5F9DC bset #0,(byte_FFFFAA3E).w bra.s loc_5F9DC ; --------------------------------------------------------------------------- loc_5F9D6: ; CODE XREF: OS2:0005F99Cj bclr #0,(byte_FFFFAA3E).w loc_5F9DC: ; CODE XREF: OS2:0005F9BCj ; OS2:0005F9C8j ... bclr #6,(byte_FFFFAA3F).w loc_5F9E2: ; CODE XREF: OS2:0005F9ACj ; OS2:0005F9C4j btst #6,(byte_FFFFAA3F).w beq.w loc_5FB8E move.w (word_FFFFAA52).w,d1 addq.w #1,d1 bcc.s loc_5F9F8 move.w #$FFFF,d1 loc_5F9F8: ; CODE XREF: OS2:0005F9F2j move.w d1,(word_FFFFAA52).w move.w (word_FFFFADB4).w,d3 cmp.w (DG_AIR_KE_AIRD_PASV_TEMP_THRESHOLD).l,d3 ; Threshold to determine whether to use the cold or hot passive test logic. ; Degrees bge.w loc_5FACE move.b (DI_AIR_KE_AIRD_NUMBER_OF_O2_MONITORS).l,d2 ; The number of O2 sensors that independently receive air injection from the secondary AIR system. ; Unitless move.l d6,d3 cmp.b d2,d6 bhi.w loc_5FB8E loc_5FA18: ; CODE XREF: OS2:0005FAC6j clr.l d0 move.b d3,d0 move.w word_FFFFAB38(d0.w*2),d4 cmp.w word_16D5C(d0.w*2),d4 bhi.s loc_5FA46 clr.l d7 move.b d3,d7 move.w word_FFFFAA56(d7.w*2),d4 addq.w #1,d4 bcc.s loc_5FA3E move.w #$FFFF,d4 loc_5FA3E: ; CODE XREF: OS2:0005FA38j move.w d4,word_FFFFAA56(d0.w*2) bra.s loc_5FA68 ; --------------------------------------------------------------------------- loc_5FA46: ; CODE XREF: OS2:0005FA2Aj cmp.w word_16D68(d0.w*2),d4 bcs.s loc_5FA68 clr.l d7 move.b d3,d7 move.w word_FFFFAA5C(d7.w*2),d4 addq.w #1,d4 bcc.s loc_5FA62 move.w #$FFFF,d4 loc_5FA62: ; CODE XREF: OS2:0005FA5Cj move.w d4,word_FFFFAA5C(d0.w*2) loc_5FA68: ; CODE XREF: OS2:0005FA44j ; OS2:0005FA4Ej cmp.w word_16D60(d0.w*2),d1 bls.s loc_5FAC2 clr.l d7 move.b d3,d7 move.w word_FFFFAA56(d7.w*2),d4 move.w #$C8,d7 ; '?' mulu.w d7,d4 divu.w (word_FFFFAA52).w,d4 bvs.s loc_5FA94 cmpi.w #$FF,d4 bhi.s loc_5FA94 cmpi.b #$C8,d4 bls.s loc_5FA96 loc_5FA94: ; CODE XREF: OS2:0005FA86j ; OS2:0005FA8Cj move.l d7,d4 loc_5FA96: ; CODE XREF: OS2:0005FA92j move.b d4,-$55AB(d0.w) clr.l d4 move.b d3,d4 move.w word_FFFFAA5C(d4.w*2),d4 mulu.w d7,d4 divu.w (word_FFFFAA52).w,d4 bvs.s loc_5FABA cmpi.w #$FF,d4 bhi.s loc_5FABA cmpi.b #$C8,d4 bls.s loc_5FABC loc_5FABA: ; CODE XREF: OS2:0005FAACj ; OS2:0005FAB2j move.l d7,d4 loc_5FABC: ; CODE XREF: OS2:0005FAB8j move.b d4,-$55A5(d0.w) loc_5FAC2: ; CODE XREF: OS2:0005FA70j addq.b #1,d3 cmp.b d3,d2 bcc.w loc_5FA18 bra.w loc_5FB8E ; --------------------------------------------------------------------------- loc_5FACE: ; CODE XREF: OS2:0005FA06j move.b (DI_AIR_KE_AIRD_NUMBER_OF_O2_MONITORS).l,d2 ; The number of O2 sensors that independently receive air injection from the secondary AIR system. ; Unitless move.l d6,d3 cmp.b d2,d6 bhi.w loc_5FB8E loc_5FADC: ; CODE XREF: OS2:0005FB8Aj clr.l d0 move.b d3,d0 move.w word_FFFFAB38(d0.w*2),d4 cmp.w word_16D70(d0.w*2),d4 bhi.s loc_5FB0A clr.l d7 move.b d3,d7 move.w word_FFFFAA56(d7.w*2),d4 addq.w #1,d4 bcc.s loc_5FB02 move.w #$FFFF,d4 loc_5FB02: ; CODE XREF: OS2:0005FAFCj move.w d4,word_FFFFAA56(d0.w*2) bra.s loc_5FB2C ; --------------------------------------------------------------------------- loc_5FB0A: ; CODE XREF: OS2:0005FAEEj cmp.w word_16D7C(d0.w*2),d4 bcs.s loc_5FB2C clr.l d7 move.b d3,d7 move.w word_FFFFAA5C(d7.w*2),d4 addq.w #1,d4 bcc.s loc_5FB26 move.w #$FFFF,d4 loc_5FB26: ; CODE XREF: OS2:0005FB20j move.w d4,word_FFFFAA5C(d0.w*2) loc_5FB2C: ; CODE XREF: OS2:0005FB08j ; OS2:0005FB12j cmp.w word_16D74(d0.w*2),d1 bls.s loc_5FB86 clr.l d7 move.b d3,d7 move.w word_FFFFAA56(d7.w*2),d4 move.w #$C8,d7 ; '?' mulu.w d7,d4 divu.w (word_FFFFAA52).w,d4 bvs.s loc_5FB58 cmpi.w #$FF,d4 bhi.s loc_5FB58 cmpi.b #$C8,d4 bls.s loc_5FB5A loc_5FB58: ; CODE XREF: OS2:0005FB4Aj ; OS2:0005FB50j move.l d7,d4 loc_5FB5A: ; CODE XREF: OS2:0005FB56j move.b d4,-$55AB(d0.w) clr.l d4 move.b d3,d4 move.w word_FFFFAA5C(d4.w*2),d4 mulu.w d7,d4 divu.w (word_FFFFAA52).w,d4 bvs.s loc_5FB7E cmpi.w #$FF,d4 bhi.s loc_5FB7E cmpi.b #$C8,d4 bls.s loc_5FB80 loc_5FB7E: ; CODE XREF: OS2:0005FB70j ; OS2:0005FB76j move.l d7,d4 loc_5FB80: ; CODE XREF: OS2:0005FB7Cj move.b d4,-$55A5(d0.w) loc_5FB86: ; CODE XREF: OS2:0005FB34j addq.b #1,d3 cmp.b d3,d2 bcc.w loc_5FADC loc_5FB8E: ; CODE XREF: OS2:0005F9E8j ; OS2:0005FA14j ... btst #0,(byte_FFFFAA3E).w beq.w loc_5FC4E move.b (DI_AIR_KE_AIRD_NUMBER_OF_O2_MONITORS).l,d2 ; The number of O2 sensors that independently receive air injection from the secondary AIR system. ; Unitless move.l d6,d1 cmp.b d2,d6 bhi.w loc_5FC48 loc_5FBA6: ; CODE XREF: OS2:0005FC44j move.w (word_FFFFADB4).w,d3 cmp.w (DG_AIR_KE_AIRD_PASV_COLD_START_TEMP_LIM).l,d3 ; Determines the powerup coolant temperature below which the passive test will be considered a cold start passive test. ; Degrees bge.s loc_5FBFA clr.l d0 move.b d1,d0 movea.l d0,a2 move.w DI_AIR_KE_AIRD_NUMBER_OF_O2_MONITORS(d0.w*2),d3 ; The number of O2 sensors that independently receive air injection from the secondary AIR system. ; Unitless moveq #$15,d7 mulu.w d7,d3 divu.w #$D7,d3 ; '?' cmp.b -$55AB(a2.w),d3 bcc.s loc_5FBDA bset #2,-$55C5(d0.w) bra.s loc_5FC40 ; --------------------------------------------------------------------------- loc_5FBDA: ; CODE XREF: OS2:0005FBCEj move.w word_16D64(d0.w*2),d3 mulu.w d7,d3 divu.w #$D7,d3 ; '?' cmp.b -$55A5(a2.w),d3 bcc.s loc_5FC40 bset #3,-$55C5(d0.w) bra.s loc_5FC40 ; --------------------------------------------------------------------------- loc_5FBFA: ; CODE XREF: OS2:0005FBB0j clr.l d3 move.b d1,d3 movea.l d3,a2 move.w word_16D6C(d3.w*2),d4 moveq #$15,d7 mulu.w d7,d4 move.w #$D7,d0 ; '?' divu.w d0,d4 cmp.b -$55AB(a2.w),d4 bcc.s loc_5FC24 bset #2,-$55C5(d3.w) bra.s loc_5FC40 ; --------------------------------------------------------------------------- loc_5FC24: ; CODE XREF: OS2:0005FC18j move.w word_16D78(d3.w*2),d4 mulu.w d7,d4 divu.w d0,d4 cmp.b -$55A5(a2.w),d4 bcc.s loc_5FC40 bset #3,-$55C5(d3.w) loc_5FC40: ; CODE XREF: OS2:0005FBD8j ; OS2:0005FBEEj ... addq.b #1,d1 cmp.b d1,d2 bcc.w loc_5FBA6 loc_5FC48: ; CODE XREF: OS2:0005FBA2j bset #5,(byte_FFFFAA3F).w loc_5FC4E: ; CODE XREF: OS2:0005FB94j btst #1,(byte_FFFFAA3F).w beq.s loc_5FCC4 clr.b d0 move.b (DI_AIR_KE_AIRD_NUMBER_OF_O2_MONITORS).l,d4 ; The number of O2 sensors that independently receive air injection from the secondary AIR system. ; Unitless move.l d6,d3 cmp.b d4,d6 bhi.s loc_5FC7E loc_5FC64: ; CODE XREF: OS2:0005FC7Cj clr.l d7 move.b d3,d7 move.w word_FFFFAB38(d7.w*2),d2 cmp.w (DG_AIR_KE_AIRD_PASV_PART2_RICH_VOLT_MIN).l,d2 ; Minimum O2 sensor voltage during part 2 of the passive test to consider the O2 sensor sample rich. ; Millivolts bcs.s loc_5FC78 move.l d6,d0 loc_5FC78: ; CODE XREF: OS2:0005FC74j addq.b #1,d3 cmp.b d3,d4 bcc.s loc_5FC64 loc_5FC7E: ; CODE XREF: OS2:0005FC62j tst.b d0 beq.s loc_5FCA2 move.b (byte_FFFFAA48).w,d3 addq.b #1,d3 bcc.s loc_5FC8E move.b #$FF,d3 loc_5FC8E: ; CODE XREF: OS2:0005FC88j move.b d3,(byte_FFFFAA48).w cmp.b (DG_AIR_KE_AIRD_PASV_PART2_RICH_SAMP_MIN).l,d3 ; Minimum number of rich samples required to pass part 2 of the passive test. ; Count bcs.s loc_5FCB4 bset #0,(byte_FFFFAA3F).w bra.s loc_5FCAE ; --------------------------------------------------------------------------- loc_5FCA2: ; CODE XREF: OS2:0005FC80j move.w (word_FFFFAA54).w,d3 cmp.w (DG_AIR_KE_AIRD_PASV_PART2_TIME_MIN).l,d3 ; Minimum amount of time required for passive test part 2 to complete. ; Seconds bcs.s loc_5FCB4 loc_5FCAE: ; CODE XREF: OS2:0005FCA0j bset #5,(byte_FFFFAA40).w loc_5FCB4: ; CODE XREF: OS2:0005FC98j ; OS2:0005FCACj move.w (word_FFFFAA54).w,d3 addq.w #1,d3 bcc.s loc_5FCC0 move.w #$FFFF,d3 loc_5FCC0: ; CODE XREF: OS2:0005FCBAj move.w d3,(word_FFFFAA54).w loc_5FCC4: ; CODE XREF: OS2:0005FC54j btst #7,(byte_FFFFAB2F).w beq.w loc_5FD7C tst.b (byte_FFFFAB44).w beq.s loc_5FCDE btst #1,(byte_FFFFAA3E).w beq.w loc_5FD7C loc_5FCDE: ; CODE XREF: OS2:0005FCD2j move.w (word_FFFFAB30).w,d3 cmp.w (DG_AIR_KE_AIRD_ACTIVE_ENGINE_LOAD_MAX).l,d3 ; The maximum engine load allowed during the active test. ; Percent bcc.w loc_5FD7C move.w (word_FFFFA0DC).w,d3 cmp.w (DG_AIR_KE_AIRD_ACTIVE_ENG_AIRFLOW_MAX).l,d3 ; The maximum amount of engine airflow allowed during the active test. ; Grams bcc.w loc_5FD7C move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DG_AIR_KE_AIRD_ACTIVE_ENGINE_SPEED_MIN).l,d3 ; The minimum engine speed required to run the active test. ; Speed bls.s loc_5FD7C move.w (word_FFFFAEBC).w,d3 cmp.w (DG_AIR_KE_AIRD_ACTIVE_VEH_SPEED_MIN).l,d3 ; The minimum vehicle speed required to run the active test. ; Miles per Hour bcs.s loc_5FD7C move.w (word_FFFFB298).w,d3 asl.w #2,d3 cmp.w (DG_AIR_KE_AIRD_ENGINE_VACUUM_MIN).l,d3 ; The minimum engine vacuum threshold to enable the passive and active tests. ; Kilopascals bcs.s loc_5FD7C btst #1,(byte_FFFFAB2F).w bne.s loc_5FD7C btst #1,(byte_FFFFAA3E).w beq.s loc_5FD56 tst.b (byte_FFFFAB2D).w beq.s loc_5FD3C tst.b (byte_FFFFAB32).w bne.s loc_5FD56 loc_5FD3C: ; CODE XREF: OS2:0005FD34j move.b (byte_FFFFAA4A).w,d3 cmp.b (DG_AIR_KE_AIRD_ACTIVE_CONTROL_WAIT_TIME).l,d3 ; Minimum length of time before stopping the air induction request. ; Seconds bcc.s loc_5FD7C addq.b #1,d3 bcc.s loc_5FD50 move.b #$FF,d3 loc_5FD50: ; CODE XREF: OS2:0005FD4Aj move.b d3,(byte_FFFFAA4A).w bra.s loc_5FD8A ; --------------------------------------------------------------------------- loc_5FD56: ; CODE XREF: OS2:0005FD2Ej ; OS2:0005FD3Aj clr.b (byte_FFFFAA4A).w move.b (byte_FFFFAA45).w,d3 cmp.b (DG_AIR_KE_AIRD_ACTIVE_ENABLE_TIME_MIN).l,d3 ; Minimum length of time the enable conditions for the active test shall be met. ; Seconds bcs.s loc_5FD6E bset #4,(byte_FFFFAA3E).w bra.s loc_5FD8A ; --------------------------------------------------------------------------- loc_5FD6E: ; CODE XREF: OS2:0005FD64j addq.b #1,d3 bcc.s loc_5FD76 move.b #$FF,d3 loc_5FD76: ; CODE XREF: OS2:0005FD70j move.b d3,(byte_FFFFAA45).w bra.s loc_5FD8A ; --------------------------------------------------------------------------- loc_5FD7C: ; CODE XREF: OS2:0005FCCAj ; OS2:0005FCDAj ... clr.b (byte_FFFFAA45).w bclr #4,(byte_FFFFAA3E).w clr.b (byte_FFFFAA4A).w loc_5FD8A: ; CODE XREF: OS2:0005FD54j ; OS2:0005FD6Cj ... move.b (byte_FFFFAB2C).w,d3 btst #4,(byte_FFFFAA3E).w beq.w loc_5FE7A cmpi.b #2,(byte_FFFFAA38).w bne.w loc_5FE7A btst #3,(byte_FFFFAA3E).w beq.w loc_5FE46 bclr #1,(byte_FFFFAA3E).w bclr #2,(byte_FFFFAA3E).w move.b (DI_AIR_KE_AIRD_NUMBER_OF_O2_MONITORS).l,d2 ; The number of O2 sensors that independently receive air injection from the secondary AIR system. ; Unitless move.l d2,d1 move.l d6,d0 cmp.b d1,d6 bhi.s loc_5FE2C loc_5FDC6: ; CODE XREF: OS2:0005FE2Aj clr.l d3 move.b d0,d3 btst #5,-$55C5(d3.w) beq.s loc_5FDEE move.b (byte_FFFFAA44).w,d4 addq.b #1,d4 bcc.s loc_5FDE0 move.b #$FF,d4 loc_5FDE0: ; CODE XREF: OS2:0005FDDAj move.b d4,(byte_FFFFAA44).w bset #4,-$55C5(d3.w) bra.s loc_5FE26 ; --------------------------------------------------------------------------- loc_5FDEE: ; CODE XREF: OS2:0005FDD2j btst #6,-$55C5(d3.w) beq.s loc_5FE26 clr.l d7 move.b d0,d7 move.b -$55C7(d7.w),d4 addq.b #1,d4 bcc.s loc_5FE0A move.b #$FF,d4 loc_5FE0A: ; CODE XREF: OS2:0005FE04j move.b d4,-$55C7(d3.w) cmp.b (DI_AIR_KE_AIRD_FAILED_TEST_MAX).l,d4 ; The maximum number of AIR diagnostic test failures required to fail the AIR diagnostic. ; unitless bne.s loc_5FE26 bset #7,-$55C5(d3.w) bset #7,(byte_FFFFAA3E).w loc_5FE26: ; CODE XREF: OS2:0005FDECj ; OS2:0005FDF6j ... addq.b #1,d0 cmp.b d0,d1 bcc.s loc_5FDC6 loc_5FE2C: ; CODE XREF: OS2:0005FDC4j cmp.b (byte_FFFFAA44).w,d2 bne.s loc_5FE3A bset #7,(byte_FFFFAA3E).w bra.s loc_5FE8C ; --------------------------------------------------------------------------- loc_5FE3A: ; CODE XREF: OS2:0005FE30j clr.b (byte_FFFFAA44).w bset #5,(byte_FFFFAA3E).w bra.s loc_5FE8C ; --------------------------------------------------------------------------- loc_5FE46: ; CODE XREF: OS2:0005FDA8j btst #2,(byte_FFFFAA3E).w bne.s loc_5FE74 btst #6,(byte_FFFFAA3E).w beq.s loc_5FE6A bclr #5,(byte_FFFFAA3E).w bset #2,(byte_FFFFAA3E).w bset #1,(byte_FFFFAA3E).w bra.s loc_5FE74 ; --------------------------------------------------------------------------- loc_5FE6A: ; CODE XREF: OS2:0005FE54j bset #5,(byte_FFFFAA3E).w move.b d3,(byte_FFFFAA43).w loc_5FE74: ; CODE XREF: OS2:0005FE4Cj ; OS2:0005FE68j cmp.b (byte_FFFFAA43).w,d3 beq.s loc_5FE8C loc_5FE7A: ; CODE XREF: OS2:0005FD94j ; OS2:0005FD9Ej bclr #5,(byte_FFFFAA3E).w bclr #2,(byte_FFFFAA3E).w bclr #1,(byte_FFFFAA3E).w loc_5FE8C: ; CODE XREF: OS2:0005FE38j ; OS2:0005FE44j ... btst #5,(byte_FFFFAA3E).w beq.w loc_5FF40 move.b (DI_AIR_KE_AIRD_NUMBER_OF_O2_MONITORS).l,d0 ; The number of O2 sensors that independently receive air injection from the secondary AIR system. ; Unitless move.b d0,d1 move.l d6,d3 cmp.b d1,d6 bhi.s loc_5FEDC loc_5FEA4: ; CODE XREF: OS2:0005FEDAj clr.l d7 move.b d3,d7 move.w unk_FFFFAB3C(d7.w*2),d4 mulu.w #$17,d4 divu.w #$1D7,d4 cmp.b (DG_AIR_KE_AIRD_PRETEST_FUEL_TRIM_MIN).l,d4 ; The short term fuel trim variable shall be above this value to start the active test. ; Unitless bcs.s loc_5FED6 cmp.b (DG_AIR_KE_AIRD_PRETEST_FUEL_TRIM_MAX).l,d4 ; The short term fuel trim variable shall be below this value to start the active test. ; Value bhi.s loc_5FED6 move.b (byte_FFFFAA49).w,d4 addq.b #1,d4 bcc.s loc_5FED2 move.b #$FF,d4 loc_5FED2: ; CODE XREF: OS2:0005FECCj move.b d4,(byte_FFFFAA49).w loc_5FED6: ; CODE XREF: OS2:0005FEBCj ; OS2:0005FEC4j addq.b #1,d3 cmp.b d3,d1 bcc.s loc_5FEA4 loc_5FEDC: ; CODE XREF: OS2:0005FEA2j cmp.b (byte_FFFFAA49).w,d0 bne.s loc_5FF36 move.b (byte_FFFFAA42).w,d3 cmp.b (DG_AIR_KE_AIRD_PRETEST_DELAY_TIME).l,d3 ; Amount of time necessary to complete the pretest delay. ; Seconds bcs.s loc_5FF28 bset #6,(byte_FFFFAA3E).w move.l d6,d3 cmp.b d0,d6 bhi.s loc_5FF3A loc_5FEFA: ; CODE XREF: OS2:0005FF24j clr.l d4 move.b d3,d4 move.w unk_FFFFAB3C(d4.w*2),d2 mulu.w #$17,d2 divu.w #$1D7,d2 move.b d2,-$559B(d4.w) clr.b -$55B5(d4.w) move.w #$FF38,dword_FFFFAA5E+2(d4.w*2) addq.b #1,d3 cmp.b d3,d0 bcc.s loc_5FEFA bra.s loc_5FF3A ; --------------------------------------------------------------------------- loc_5FF28: ; CODE XREF: OS2:0005FEECj addq.b #1,d3 bcc.s loc_5FF30 move.b #$FF,d3 loc_5FF30: ; CODE XREF: OS2:0005FF2Aj move.b d3,(byte_FFFFAA42).w bra.s loc_5FF3A ; --------------------------------------------------------------------------- loc_5FF36: ; CODE XREF: OS2:0005FEE0j clr.b (byte_FFFFAA42).w loc_5FF3A: ; CODE XREF: OS2:0005FEF8j ; OS2:0005FF26j ... clr.b (byte_FFFFAA49).w bra.s loc_5FF4A ; --------------------------------------------------------------------------- loc_5FF40: ; CODE XREF: OS2:0005FE92j clr.b (byte_FFFFAA42).w bclr #6,(byte_FFFFAA3E).w loc_5FF4A: ; CODE XREF: OS2:0005FF3Ej btst #2,(byte_FFFFAA3E).w beq.w loc_60072 move.b (byte_FFFFAA46).w,d2 cmp.b (DG_AIR_KE_AIRD_ACTIVE_TEST_TIME_LIMIT).l,d2 ; Maximum amount of time allowed in the active test. ; Seconds bcc.w loc_60042 move.b (DI_AIR_KE_AIRD_NUMBER_OF_O2_MONITORS).l,d2 ; The number of O2 sensors that independently receive air injection from the secondary AIR system. ; Unitless move.l d2,d1 move.l d6,d3 cmp.b d1,d6 bhi.w loc_6001E loc_5FF72: ; CODE XREF: OS3:0006001Aj clr.l d0 move.b d3,d0 move.w word_FFFFAB38(d0.w*2),d4 cmp.w (DG_AIR_KE_AIRD_ACTIVE_LEAN_VOLT_MAX).l,d4 ; Maximum O2 sensor voltage to update the lean timer during the active test. ; Millivolts bhi.s loc_5FF9C clr.l d7 move.b d3,d7 move.b -$55B5(d7.w),d4 addq.b #1,d4 bcc.s loc_5FF96 move.b #$FF,d4 loc_5FF96: ; CODE XREF: OS2:0005FF90j move.b d4,-$55B5(d0.w) loc_5FF9C: ; CODE XREF: OS2:0005FF82j clr.l d7 move.b d3,d7 clr.l d4 move.b d3,d4 move.w unk_FFFFAB3C(d4.w*2),d4 mulu.w #$17,d4 divu.w #$1D7,d4 sub.b -$559B(d7.w),d4 bcc.s loc_5FFBC clr.b d4 loc_5FFBC: ; CODE XREF: OS2:0005FFB8j andi.w #$FF,d4 move.w d4,word_FFFFAA4C(d0.w*2) cmp.w dword_FFFFAA5E+2(d0.w*2),d4 ble.s loc_5FFD4 move.w d4,dword_FFFFAA5E+2(d0.w*2) loc_5FFD4: ; CODE XREF: OS2:0005FFCCj move.w byte_FFFFAB24(d0.w*2),d5 mulu.w #$17,d5 divu.w #$1D7,d5 cmp.w d5,d4 bge.s loc_5FFF4 move.b -$55B5(d0.w),d4 cmp.b -$54D7(d0.w),d4 bcs.s unk_5FFFC loc_5FFF4: ; CODE XREF: OS2:0005FFE4j bset #5,-$55C5(d0.w) ; --------------------------------------------------------------------------- unk_5FFFC: dc.b 8 ; CODE XREF: OS2:0005FFF2j dc.b $30 ; 0 dc.b 0 ; end of 'OS2' dc.b 5 ; --------------------------------------------------------------------------- ; =========================================================================== ; Segment type: Regular ; segment "OS3" loc_60000: ; DATA XREF: OS4:000884E2o bclr d0,-(a0) _AddComp beq.s loc_60016 loc_60006: ; DATA XREF: Calibration:SPARK_ADVANCE_KV_RDSC_DELTA_RPM_TIMEo ; Calibration:0001312Ao ... move.b (byte_FFFFAA41).w,d4 addq.b #1,d4 bcc.s loc_60012 move.b #$FF,d4 loc_60012: ; CODE XREF: OS3:0006000Cj move.b d4,(byte_FFFFAA41).w loc_60016: ; CODE XREF: OS3:00060004j addq.b #1,d3 cmp.b d3,d1 bcc.w loc_5FF72 loc_6001E: ; CODE XREF: OS2:0005FF6Ej cmp.b (byte_FFFFAA41).w,d2 bne.s loc_6002C loc_60024: ; DATA XREF: Calibration:DG_MAF_KE_MAFD_FREQ_LOW_FAIL_LIMo bset #3,(byte_FFFFAA3E).w bra.s loc_60030 ; --------------------------------------------------------------------------- loc_6002C: ; CODE XREF: OS3:00060022j clr.b (byte_FFFFAA41).w loc_60030: ; CODE XREF: OS3:0006002Aj move.b (byte_FFFFAA46).w,d3 addq.b #1,d3 bcc.s loc_6003C move.b #$FF,d3 loc_6003C: ; CODE XREF: OS3:00060036j move.b d3,(byte_FFFFAA46).w bra.s loc_600A2 ; --------------------------------------------------------------------------- loc_60042: ; CODE XREF: OS2:0005FF5Ej bset #3,(byte_FFFFAA3E).w move.b (DI_AIR_KE_AIRD_NUMBER_OF_O2_MONITORS).l,d4 ; The number of O2 sensors that independently receive air injection from the secondary AIR system. ; Unitless move.l d6,d3 cmp.b d4,d6 bhi.s loc_600A2 loc_60054: ; CODE XREF: OS3:0006006Ej clr.l d0 move.b d3,d0 btst #5,-$55C5(d0.w) bne.s loc_6006A bset #6,-$55C5(d0.w) loc_6006A: ; CODE XREF: OS3:00060060j addq.b #1,d3 cmp.b d3,d4 bcc.s loc_60054 bra.s loc_600A2 ; --------------------------------------------------------------------------- loc_60072: ; CODE XREF: OS2:0005FF50j clr.b (byte_FFFFAA46).w bclr #3,(byte_FFFFAA3E).w move.b (DI_AIR_KE_AIRD_NUMBER_OF_O2_MONITORS).l,d4 ; The number of O2 sensors that independently receive air injection from the secondary AIR system. ; Unitless move.l d6,d3 cmp.b d4,d6 bhi.s loc_600A2 loc_60088: ; CODE XREF: OS3:000600A0j clr.l d0 move.b d3,d0 bclr #6,-$55C5(d0.w) bclr #5,-$55C5(d0.w) addq.b #1,d3 cmp.b d3,d4 bcc.s loc_60088 loc_600A2: ; CODE XREF: OS3:00060040j ; OS3:00060052j ... movem.l (sp)+,d0-d2/d6-d7 rts ; =============== S U B R O U T I N E ======================================= sub_600A8: ; CODE XREF: sub_60178+8p tst.b (byte_FFFFA93A).w beq.s loc_600B6 move.b #6,(byte_FFFFAB44).w bra.s locret_60108 ; --------------------------------------------------------------------------- loc_600B6: ; CODE XREF: sub_600A8+4j moveq #1,d4 cmp.b (byte_FFFFB2EF).w,d4 bne.s loc_600E2 move.w (word_FFFFA1EE).w,d3 move.w #$400,d5 cmp.w d3,d5 bne.s loc_600D0 clr.b (byte_FFFFAB44).w bra.s locret_60108 ; --------------------------------------------------------------------------- loc_600D0: ; CODE XREF: sub_600A8+20j cmp.w d3,d5 bcc.s loc_600DC move.b #2,(byte_FFFFAB44).w bra.s locret_60108 ; --------------------------------------------------------------------------- loc_600DC: ; CODE XREF: sub_600A8+2Aj move.b d4,(byte_FFFFAB44).w bra.s locret_60108 ; --------------------------------------------------------------------------- loc_600E2: ; CODE XREF: sub_600A8+14j move.w (word_FFFFA1EE).w,d3 move.w #$400,d5 cmp.w d3,d5 bne.s loc_600F6 move.b #3,(byte_FFFFAB44).w bra.s locret_60108 ; --------------------------------------------------------------------------- loc_600F6: ; CODE XREF: sub_600A8+44j cmp.w d3,d5 bcc.s loc_60102 move.b #5,(byte_FFFFAB44).w bra.s locret_60108 ; --------------------------------------------------------------------------- loc_60102: ; CODE XREF: sub_600A8+50j move.b #4,(byte_FFFFAB44).w locret_60108: ; CODE XREF: sub_600A8+Cj ; sub_600A8+26j ... rts ; End of function sub_600A8 ; =============== S U B R O U T I N E ======================================= sub_6010A: ; CODE XREF: DoLoopC+296p ; sub_607C2:loc_607D6p var_54CE = -$54CE bset #4,(byte_FFFFAB2F).w clr.b (byte_FFFFAB50).w bclr #2,(byte_FFFFAB2F).w clr.w (word_FFFFAB38).w bclr #5,(byte_FFFFAB2F).w bclr #3,(byte_FFFFAB2F).w bclr #7,(byte_FFFFAB2F).w clr.b (byte_FFFFAB24).w moveq #1,d3 loc_60136: ; CODE XREF: sub_6010A+4Cj clr.l d4 move.b d3,d4 clr.b -$54D7(d4.w) clr.w byte_FFFFAB24(d4.w*2) move.w (word_4FE).l,var_54CE(d4.w*2) addq.b #1,d3 cmpi.b #2,d3 bls.s loc_60136 rts ; End of function sub_6010A ; =============== S U B R O U T I N E ======================================= sub_6015A: ; CODE XREF: sub_607C2+40p ; sub_75370+13Ap clr.b (byte_FFFF82AC).w clr.b (byte_FFFF82B0).w moveq #1,d3 loc_60164: ; CODE XREF: sub_6015A+1Aj clr.l d4 move.b d3,d4 clr.b -$7D53(d4.w) addq.b #1,d3 cmpi.b #2,d3 bls.s loc_60164 rts ; End of function sub_6015A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60178: ; CODE XREF: DoLoopF:loc_2AC2Ap var_54F2 = -$54F2 var_54ED = -$54ED var_54E4 = -$54E4 var_54DE = -$54DE var_54DA = -$54DA var_54D1 = -$54D1 var_2 = -2 var_1 = -1 link a6,#-2 movem.l d0-d2/d6-d7,-(sp) jsr sub_600A8 move.b (byte_FFFF98DA).w,(byte_FFFFAB2C).w move.w (word_FFFFA0E2).w,(word_FFFFAB30).w move.b (DI_AIR_KE_AIRD_NUMBER_OF_O2_MONITORS).l,d7 ; The number of O2 sensors that independently receive air injection from the secondary AIR system. ; Unitless move.b d7,var_2(a6) moveq #1,d3 move.l d3,d5 cmp.b d7,d5 bhi.s loc_601DA loc_601A4: ; CODE XREF: sub_60178+60j clr.l d0 move.b d3,d0 movea.w d0,a3 move.l d3,d4 subq.b #1,d4 bne.s loc_601B6 movea.w (word_FFFF9F00).w,a2 bra.s loc_601BA ; --------------------------------------------------------------------------- loc_601B6: ; CODE XREF: sub_60178+36j movea.w (word_FFFF9F06).w,a2 loc_601BA: ; CODE XREF: sub_60178+3Cj move.w a2,$16+var_54DE(a3.w*2) move.l d3,d4 subq.b #1,d4 andi.w #$FF,d4 movea.w word_FFFFA89E(d4.w*2),a2 move.w a2,$16+var_54DA(d0.w*2) addq.b #1,d3 cmp.b d3,d7 bcc.s loc_601A4 loc_601DA: ; CODE XREF: sub_60178+2Aj move.b (byte_FFFFB3C2).w,(byte_FFFFAB2E).w move.b (byte_FFFFAB24).w,(byte_FFFFAB2D).w move.b (byte_FFFFAB24).w,(byte_FFFFAB32).w move.w (word_FFFFAB66).w,d3 movea.w (word_FFFFAB60).w,a2 sub.w a2,d3 tst.w d3 bge.s loc_601FE neg.w d3 bvs.s loc_6020A loc_601FE: ; CODE XREF: sub_60178+80j cmpi.w #$7FFF,d3 bhi.s loc_60210 cmpi.w #$1400,d3 bls.s loc_60212 loc_6020A: ; CODE XREF: sub_60178+84j move.w #$1400,d3 bra.s loc_60212 ; --------------------------------------------------------------------------- loc_60210: ; CODE XREF: sub_60178+8Aj clr.w d3 loc_60212: ; CODE XREF: sub_60178+90j ; sub_60178+96j move.w d3,(word_FFFFAB42).w bclr #6,(byte_FFFFAB2F).w tst.b (byte_FFFF98E0).w beq.s loc_60228 bset #6,(byte_FFFFAB2F).w loc_60228: ; CODE XREF: sub_60178+A8j move.b (byte_FFFFAEAC).w,d3 or.b (byte_FFFFACAA).w,d3 bne.s loc_60244 tst.b (byte_FFFFA89A).w bne.s loc_60244 tst.b (byte_FFFFA89B).w bne.s loc_60244 tst.b (byte_FFFFA1F6).w beq.s loc_6024C loc_60244: ; CODE XREF: sub_60178+B8j ; sub_60178+BEj ... bset #1,(byte_FFFFAB2F).w bra.s loc_60252 ; --------------------------------------------------------------------------- loc_6024C: ; CODE XREF: sub_60178+CAj bclr #1,(byte_FFFFAB2F).w loc_60252: ; CODE XREF: sub_60178+D2j bclr #7,(byte_FFFFAB2F).w clr.b d3 move.l d5,d1 loc_6025C: ; CODE XREF: sub_60178+138j move.l d1,d0 clr.l d2 move.b d0,d2 move.b (byte_FFFFAB2C).w,d6 cmp.b DI_AIR_KE_AIRD_VOLTAGE_LOW_TIME(d2.w),d6 ; Length of time the voltage must stay below the minimum voltage to disable the diagnostic. ; Seconds bne.s loc_602A6 btst #6,(byte_FFFFAB2F).w beq.s loc_60290 clr.l d4 move.b d0,d4 move.b -$54BB(d4.w),d3 addq.b #1,d3 bcc.s loc_6028A move.b #$FF,d3 loc_6028A: ; CODE XREF: sub_60178+10Cj move.b d3,$16+var_54D1(d2.w) loc_60290: ; CODE XREF: sub_60178+FEj move.b -$54BB(d2.w),d3 cmp.b (DI_AIR_KE_AIRD_ADAPTIVE_LEARN_TIME_MIN).l,d3 bcs.s loc_602A4 bset #7,(byte_FFFFAB2F).w loc_602A4: ; CODE XREF: sub_60178+124j move.l d5,d3 loc_602A6: ; CODE XREF: sub_60178+F6j addq.b #1,d1 cmpi.b #$A,d1 bhi.s loc_602B2 tst.b d3 beq.s loc_6025C loc_602B2: ; CODE XREF: sub_60178+134j move.l (EngineRunTime).w,d3 cmpi.l #$FFFF,d3 bhi.s loc_602C4 cmpi.w #$9F60,d3 bls.s loc_602C8 loc_602C4: ; CODE XREF: sub_60178+144j move.w #$9F60,d3 loc_602C8: ; CODE XREF: sub_60178+14Aj cmp.w (DG_AIR_KE_AIRD_ENGINE_RUN_TIME_MIN).l,d3 ; The minimum engine run time required to start the AIR diagnostic ; Seconds bcs.w loc_60574 move.b (byte_FFFFA191).w,d3 or.b (byte_FFFFA192).w,d3 beq.w loc_6056C btst #1,(byte_FFFF8980).w bne.w loc_6056C btst #1,(byte_FFFF8974).w bne.w loc_6056C btst #1,(byte_FFFF8978).w bne.w loc_6056C btst #1,(byte_FFFF8996).w bne.w loc_6056C btst #1,(byte_FFFF88DA).w bne.w loc_6056C btst #1,(byte_FFFF88DC).w bne.w loc_6056C btst #1,(byte_FFFF88E6).w bne.w loc_6056C btst #1,(byte_FFFF891A).w bne.w loc_6056C btst #1,(byte_FFFF891C).w bne.w loc_6056C btst #1,(byte_FFFF8920).w bne.w loc_6056C btst #1,(byte_FFFF8922).w bne.w loc_6056C btst #1,(byte_FFFF899E).w bne.w loc_6056C btst #1,(byte_FFFF89A0).w bne.w loc_6056C btst #1,(byte_FFFF88CC).w bne.w loc_6056C btst #1,(byte_FFFF88CE).w bne.w loc_6056C btst #1,(byte_FFFF88D0).w bne.w loc_6056C btst #1,(byte_FFFF88C6).w bne.w loc_6056C btst #1,(byte_FFFF88C8).w bne.w loc_6056C btst #1,(byte_FFFF88CA).w bne.w loc_6056C btst #1,(byte_FFFF88D4).w bne.w loc_6056C btst #1,(byte_FFFF88D6).w bne.w loc_6056C btst #1,(byte_FFFF88EA).w bne.w loc_6056C btst #1,(byte_FFFF88EC).w bne.w loc_6056C btst #1,(byte_FFFF88EE).w bne.w loc_6056C btst #1,(byte_FFFF88F0).w bne.w loc_6056C btst #1,(byte_FFFF88F2).w bne.w loc_6056C btst #1,(byte_FFFF88F6).w bne.w loc_6056C btst #1,(byte_FFFF88F8).w bne.w loc_6056C btst #1,(byte_FFFF88FA).w bne.w loc_6056C btst #1,(byte_FFFF88FC).w bne.w loc_6056C btst #1,(byte_FFFF8900).w bne.w loc_6056C btst #1,(byte_FFFF8902).w bne.w loc_6056C btst #1,(byte_FFFF8904).w bne.w loc_6056C btst #1,(byte_FFFF8906).w bne.w loc_6056C btst #1,(byte_FFFF8908).w bne.w loc_6056C btst #1,(byte_FFFF890C).w bne.w loc_6056C btst #1,(byte_FFFF890E).w bne.w loc_6056C btst #1,(byte_FFFF8910).w bne.w loc_6056C btst #1,(byte_FFFF8912).w bne.w loc_6056C btst #1,(byte_FFFF8A22).w bne.w loc_6056C btst #1,(byte_FFFF8A24).w bne.w loc_6056C btst #1,(byte_FFFF88E2).w bne.w loc_6056C btst #1,(byte_FFFF88E4).w bne.w loc_6056C btst #1,(byte_FFFF88E0).w bne.w loc_6056C btst #1,(byte_FFFF893A).w bne.w loc_6056C move.w (word_FFFF82D2).w,d3 asl.w #2,d3 cmp.w (DI_AIR_KE_AIRD_BARO_MIN).l,d3 ; Minimum amount of barometric pressure allowed to enable the diagnostic. ; kPa bcs.w loc_6056C move.w (word_FFFFA0DC).w,d3 cmp.w (DI_AIR_KE_AIRD_AIRFLOW_MIN).l,d3 ; Minimum amount of airflow allowed to enable the diagnostic. ; grams per second bcs.w loc_6056C move.w (word_FFFFA0E2).w,d3 cmp.w (DI_AIR_KE_AIRD_ENGINE_LOAD_MIN).l,d3 ; Minimum engine load threshold to enable the diagnostic. ; Percent bcs.w loc_6056C move.w (word_FFFFADB4).w,d3 cmp.w (DI_AIR_KE_AIRD_PU_COOLANT_TEMP_MAX).l,d3 ; Maximum powerup coolant temperature threshold to enable the diagnostic. ; Degrees_C bgt.w loc_6056C move.w (word_FFFFB3E8).w,d3 cmp.w (DI_AIR_KE_AIRD_INTAKE_AIR_TEMP_MIN).l,d3 ; Minimum intake air temperature threshold to enable the diagnostic. ; Degrees_C ble.w loc_6056C move.w (word_FFFFB3E8).w,d3 cmp.w (DI_AIR_KE_AIRD_INTAKE_AIR_TEMP_MAX).l,d3 ; Maximum intake air temperature threshold to enable the diagnostic. ; Degrees_C bge.s loc_6056C move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DI_AIR_KE_AIRD_COOLANT_TEMP_MIN).l,d3 ; Minimum coolant temperature threshold to enable the diagnostic. ; Degrees_C ble.s loc_6056C move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DI_AIR_KE_AIRD_COOLANT_TEMP_MAX).l,d3 ; ; Degrees_C bge.s loc_6056C moveq #5,d4 cmp.b (ThrottleControlMode2?).w,d4 bne.s loc_6051E move.w (word_FFFFB4A6).w,d3 mulu.w d4,d3 lsr.w #7,d3 bra.s loc_60538 ; --------------------------------------------------------------------------- loc_6051E: ; CODE XREF: sub_60178+39Aj move.w (word_FFFFB4A2).w,d3 mulu.w d4,d3 cmpi.l #$FFFF,d3 bhi.s loc_60534 lsr.w #7,d3 cmpi.w #$FF,d3 bls.s loc_60538 loc_60534: ; CODE XREF: sub_60178+3B2j move.b #$FF,d3 loc_60538: ; CODE XREF: sub_60178+3A4j ; sub_60178+3BAj cmp.b (DI_AIR_KE_AIRD_SYSTEM_VOLTAGE_MIN).l,d3 ; Minimum system voltage threshold to enable the diagnostic. ; Volts bhi.s loc_60560 move.b (byte_FFFFAB50).w,d3 cmp.b (DI_AIR_KE_AIRD_VOLTAGE_LOW_TIME).l,d3 ; Length of time the voltage must stay below the minimum voltage to disable the diagnostic. ; Seconds bcs.s loc_60552 bclr #4,(byte_FFFFAB2F).w loc_60552: ; CODE XREF: sub_60178+3D2j addq.b #1,d3 bcc.s loc_6055A move.b #$FF,d3 loc_6055A: ; CODE XREF: sub_60178+3DCj move.b d3,(byte_FFFFAB50).w bra.s loc_6057A ; --------------------------------------------------------------------------- loc_60560: ; CODE XREF: sub_60178+3C6j bset #4,(byte_FFFFAB2F).w clr.b (byte_FFFFAB50).w bra.s loc_6057A ; --------------------------------------------------------------------------- loc_6056C: ; CODE XREF: sub_60178+162j ; sub_60178+16Cj ... bclr #4,(byte_FFFFAB2F).w bra.s loc_6057A ; --------------------------------------------------------------------------- loc_60574: ; CODE XREF: sub_60178+156j bset #4,(byte_FFFFAB2F).w loc_6057A: ; CODE XREF: sub_60178+3E6j ; sub_60178+3F2j ... move.b var_2(a6),d4 move.b d4,var_1(a6) move.l d5,d1 cmp.b d4,d5 bhi.s loc_605EC loc_60588: ; CODE XREF: sub_60178+472j clr.b d3 moveq #1,d0 move.l d3,d6 movea.w #0,a2 loc_60592: ; CODE XREF: sub_60178+458j move.b d0,d2 clr.l d5 move.b d0,d5 move.b (byte_FFFFAB2C).w,d4 cmp.b DI_AIR_KE_AIRD_VOLTAGE_LOW_TIME(d5.w),d4 ; Length of time the voltage must stay below the minimum voltage to disable the diagnostic. ; Seconds bne.s loc_605C6 clr.l d3 move.b d1,d3 moveq #$A,d4 mulu.w d4,d3 add.b d2,d3 andi.w #$FF,d3 movea.w DI_AIR_KV_AIRD_PASV_HOT_LEAN_RATIO(d3.w*2),a2 ; Minimum value for the O2 lean ratio, to pass part 1 of the passive test, during a hot start. ; Ratio move.b byte_16DA1(d3.w),d6 moveq #1,d3 loc_605C6: ; CODE XREF: sub_60178+42Cj addq.b #1,d0 cmpi.b #$A,d0 bhi.s loc_605D2 tst.b d3 beq.s loc_60592 loc_605D2: ; CODE XREF: sub_60178+454j clr.l d3 move.b d1,d3 move.b d6,$16+var_54ED(d3.w) move.w a2,$16+var_54F2(d3.w*2) addq.b #1,d1 move.b var_1(a6),d2 cmp.b d1,d2 bcc.s loc_60588 loc_605EC: ; CODE XREF: sub_60178+40Ej btst #1,(byte_FFFFAA3E).w beq.s loc_60632 bset #5,(byte_FFFFAB2F).w bset #2,(byte_FFFFAB2F).w move.w (DI_AIR_KE_AIRD_FUEL_TRIM_UPDATE_RATE).l,(word_FFFFAB38).w ; The fixed integrator update rate during the Active AIR Injection test. ; Seconds bset #3,(byte_FFFFAB2F).w move.b var_2(a6),d1 moveq #1,d3 move.l d3,d2 cmp.b d1,d2 bhi.s loc_60664 loc_6061A: ; CODE XREF: sub_60178+4B6j clr.l d5 move.b d3,d5 move.w word_16DD8(d5.w*2),$16+var_54E4(d5.w*2) addq.b #1,d3 cmp.b d3,d1 bcc.s loc_6061A bra.s loc_60664 ; --------------------------------------------------------------------------- loc_60632: ; CODE XREF: sub_60178+47Aj bclr #2,(byte_FFFFAB2F).w bclr #5,(byte_FFFFAB2F).w bclr #3,(byte_FFFFAB2F).w move.b var_2(a6),d7 moveq #1,d3 move.l d3,d1 cmp.b d7,d1 bhi.s loc_60664 loc_60650: ; CODE XREF: sub_60178+4EAj clr.l d1 move.b d3,d1 move.w (word_4FE).l,$16+var_54E4(d1.w*2) addq.b #1,d3 cmp.b d3,d7 bcc.s loc_60650 loc_60664: ; CODE XREF: sub_60178+4A0j ; sub_60178+4B8j ... clr.b d3 btst #5,(byte_FFFFAB2F).w beq.s loc_60680 btst #2,(byte_FFFFAB2F).w beq.s loc_60680 btst #3,(byte_FFFFAB2F).w beq.s loc_60680 addq.b #1,d3 loc_60680: ; CODE XREF: sub_60178+4F4j ; sub_60178+4FCj ... move.b d3,(byte_FFFFAB24).w moveq #3,d1 cmp.b (byte_FFFFAA38).w,d1 bne.w loc_607BA move.b (DI_AIR_KE_AIRD_FAILED_TEST_MAX).l,(byte_FFFF82AC).w ; The maximum number of AIR diagnostic test failures required to fail the AIR diagnostic. ; unitless moveq #2,d2 cmp.b var_2(a6),d2 bne.w loc_6078A move.b (word_FFFFAA3A).w,(byte_FFFF82AE).w move.b (word_FFFFAA3A+1).w,(byte_FFFF82AF).w btst #7,(byte_FFFFAA40).w bne.s loc_606C4 btst #4,(byte_FFFFAA3C).w beq.s loc_606E4 btst #4,(byte_FFFFAA3D).w beq.s loc_606E4 loc_606C4: ; CODE XREF: sub_60178+53Aj moveq #$55,d0 ; 'U' jsr sub_5F0BE moveq #$67,d0 ; 'g' jsr sub_5F0BE moveq #$68,d0 ; 'h' loc_606D6: ; CODE XREF: sub_60178+62Aj jsr sub_5F0BE clr.b (byte_FFFF82B0).w bra.w loc_607B4 ; --------------------------------------------------------------------------- loc_606E4: ; CODE XREF: sub_60178+542j ; sub_60178+54Aj btst #7,(byte_FFFFAA3C).w beq.s loc_60708 cmpi.b #1,(word_FFFFAA3A+1).w bhi.s loc_60708 move.b (byte_FFFF82B0).w,d3 cmp.b d3,d1 beq.s loc_6072C moveq #1,d6 cmp.b d3,d6 beq.s loc_6072C move.b d2,(byte_FFFF82B0).w bra.s loc_60732 ; --------------------------------------------------------------------------- loc_60708: ; CODE XREF: sub_60178+572j ; sub_60178+57Aj btst #7,(byte_FFFFAA3D).w beq.s loc_6072C cmpi.b #1,(word_FFFFAA3A).w bhi.s loc_6072C move.b (byte_FFFF82B0).w,d3 cmp.b d3,d2 beq.s loc_6072C moveq #1,d6 cmp.b d3,d6 beq.s loc_6072C move.b d1,(byte_FFFF82B0).w bra.s loc_60732 ; --------------------------------------------------------------------------- loc_6072C: ; CODE XREF: sub_60178+582j ; sub_60178+588j ... moveq #1,d6 move.b d6,(byte_FFFF82B0).w loc_60732: ; CODE XREF: sub_60178+58Ej ; sub_60178+5B2j move.b (byte_FFFF82B0).w,d3 cmpi.b #1,d3 bne.s loc_60756 moveq #$55,d0 ; 'U' jsr sub_5F110 moveq #$67,d0 ; 'g' jsr sub_5F0BE loc_6074C: ; CODE XREF: sub_60178+5F2j moveq #$68,d0 ; 'h' jsr sub_5F0BE bra.s loc_607B4 ; --------------------------------------------------------------------------- loc_60756: ; CODE XREF: sub_60178+5C2j cmp.b d3,d2 bne.s loc_6076C moveq #$55,d0 ; 'U' jsr sub_5F0BE moveq #$67,d0 ; 'g' jsr sub_5F110 bra.s loc_6074C ; --------------------------------------------------------------------------- loc_6076C: ; CODE XREF: sub_60178+5E0j cmp.b d3,d1 bne.s loc_607B4 moveq #$55,d0 ; 'U' jsr sub_5F0BE moveq #$67,d0 ; 'g' jsr sub_5F0BE moveq #$68,d0 ; 'h' jsr sub_5F110 bra.s loc_607B4 ; --------------------------------------------------------------------------- loc_6078A: ; CODE XREF: sub_60178+524j move.b (word_FFFFAA3A).w,(byte_FFFF82AE).w btst #7,(byte_FFFFAA40).w bne.s loc_607A0 btst #4,(byte_FFFFAA3C).w beq.s loc_607A6 loc_607A0: ; CODE XREF: sub_60178+61Ej moveq #$55,d0 ; 'U' bra.w loc_606D6 ; --------------------------------------------------------------------------- loc_607A6: ; CODE XREF: sub_60178+626j moveq #$55,d0 ; 'U' jsr sub_5F110 move.b #1,(byte_FFFF82B0).w loc_607B4: ; CODE XREF: sub_60178+568j ; sub_60178+5DCj ... bset #0,(byte_FFFFAB2F).w loc_607BA: ; CODE XREF: sub_60178+512j movem.l (sp)+,d0-d2/d6-d7 unlk a6 rts ; End of function sub_60178 ; =============== S U B R O U T I N E ======================================= sub_607C2: ; CODE XREF: OS1:000291E4p ; sub_755FA+26p move.l d1,-(sp) cmpi.b #6,d0 beq.s loc_607D6 cmpi.b #3,d0 bhi.s loc_60808 cmpi.b #1,d0 bls.s loc_60808 loc_607D6: ; CODE XREF: sub_607C2+6j jsr sub_6010A bclr #0,(byte_FFFFAB2F).w moveq #1,d3 loc_607E4: ; CODE XREF: sub_607C2+32j clr.l d1 move.b d3,d1 clr.b -$54BB(d1.w) addq.b #1,d3 cmpi.b #$A,d3 bls.s loc_607E4 cmpi.b #2,d0 bne.s loc_60808 tst.b (byte_FFFFB54A).w bne.s loc_60808 jsr sub_6015A loc_60808: ; CODE XREF: sub_607C2+Cj ; sub_607C2+12j ... move.l (sp)+,d1 rts ; End of function sub_607C2 ; =============== S U B R O U T I N E ======================================= sub_6080C: ; CODE XREF: DoLoopG+1FAp move.l d0,-(sp) tst.b (byte_FFFFB37A).w beq.s loc_6087C cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_6087C tst.b (byte_FFFFAE14).w beq.s loc_60834 move.b (byte_FFFFB002).w,d3 addq.b #1,d3 bcc.s loc_6082E move.b #$FF,d3 loc_6082E: ; CODE XREF: sub_6080C+1Cj move.b d3,(byte_FFFFB002).w bra.s loc_60844 ; --------------------------------------------------------------------------- loc_60834: ; CODE XREF: sub_6080C+14j move.b (byte_FFFFB003).w,d3 addq.b #1,d3 bcc.s loc_60840 move.b #$FF,d3 loc_60840: ; CODE XREF: sub_6080C+2Ej move.b d3,(byte_FFFFB003).w loc_60844: ; CODE XREF: sub_6080C+26j move.b (byte_FFFFB002).w,d0 cmp.b (DG_CAM_KE_CAM_MISSING_SAMPLES).l,d0 ; This many seconds of CAM transitions must be seen before reporting a Pass for the missing CAM signal diagnostic. Gen 1E only. ; Samples bcs.s loc_60860 moveq #$44,d0 ; 'D' jsr sub_5F0BE clr.b (byte_FFFFB002).w clr.b (byte_FFFFB003).w loc_60860: ; CODE XREF: sub_6080C+42j move.b (byte_FFFFB003).w,d0 cmp.b (DG_CAM_KE_CAM_MISSING_FAIL_LIMIT).l,d0 ; If no CAM transitions are detected for this many seconds, report a Fail for the missing CAM signal diagnostic. Gen 1E only. ; Counts bcs.s loc_6087C moveq #$44,d0 ; 'D' jsr sub_5F110 clr.b (byte_FFFFB002).w clr.b (byte_FFFFB003).w loc_6087C: ; CODE XREF: sub_6080C+6j sub_6080C+Ej ... move.l (sp)+,d0 rts ; End of function sub_6080C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60880: ; CODE XREF: DoLoopA+432p var_2 = -2 link a6,#-2 movem.l d0-d2/d6-d7,-(sp) tst.b (byte_FFFFB37A).w beq.w loc_609F0 moveq #3,d1 cmp.b (ThrottleControlMode2?).w,d1 bne.w loc_6091A btst #1,(byte_FFFF8944).w bne.s loc_6091A move.b (byte_FFFFB008).w,d3 addq.b #1,d3 bcc.s loc_608AE move.b #$FF,d3 loc_608AE: ; CODE XREF: sub_60880+28j move.b d3,(byte_FFFFB008).w tst.b (byte_FFFFAC43).w beq.s loc_60926 tst.b (byte_FFFFAC42).w beq.s loc_60926 move.w (word_FFFFB004).w,d3 addq.w #1,d3 bcc.s loc_608CA move.w #$FFFF,d3 loc_608CA: ; CODE XREF: sub_60880+44j move.w d3,(word_FFFFB004).w move.b (byte_FFFFB008).w,d0 cmp.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d0 ; Number of cylinders for this engine application. ; SHORTCARD bne.s loc_608EC cmp.w (DG_CAM_KE_CAM_SYNC_SAMPLE_LIMIT).l,d3 ; The number of tests that make up a sample size for the cam sync test. Gen 1E only. ; Samples bcs.s loc_60914 moveq #$44,d0 ; 'D' jsr sub_5F0BE bra.s loc_6090C ; --------------------------------------------------------------------------- loc_608EC: ; CODE XREF: sub_60880+58j move.w (word_FFFFB006).w,d3 addq.w #1,d3 bcc.s loc_608F8 move.w #$FFFF,d3 loc_608F8: ; CODE XREF: sub_60880+72j move.w d3,(word_FFFFB006).w cmp.w (DG_CAM_KE_CAM_SYNC_FAILURE_LIMIT).l,d3 ; The number of failed tests within a sample size that will report a failure for the cam sync test. Gen 1E only. ; Failures bcs.s loc_60914 moveq #$44,d0 ; 'D' jsr sub_5F110 loc_6090C: ; CODE XREF: sub_60880+6Aj clr.w (word_FFFFB004).w clr.w (word_FFFFB006).w loc_60914: ; CODE XREF: sub_60880+60j ; sub_60880+82j clr.b (byte_FFFFB008).w bra.s loc_60926 ; --------------------------------------------------------------------------- loc_6091A: ; CODE XREF: sub_60880+16j ; sub_60880+20j clr.b (byte_FFFFB008).w clr.w (word_FFFFB004).w clr.w (word_FFFFB006).w loc_60926: ; CODE XREF: sub_60880+36j ; sub_60880+3Cj ... cmp.b (ThrottleControlMode2?).w,d1 bne.w loc_60BDA tst.b (byte_FFFFAC43).w beq.w loc_60BDA tst.b (byte_FFFFAC42).w beq.w loc_60BDA move.b (byte_FFFFB009).w,d4 cmp.b (DG_CAM_KE_CAM_MAX_TEST_COUNTER).l,d4 ; The number of times (engine cycles) to run the position test after the engine running flag is active. Gen 1E only. ; Counts bhi.w loc_60BDA btst #5,(byte_FFFFAA92).w beq.w loc_60BDA btst #1,(byte_FFFF8944).w bne.w loc_60BDA move.w (word_FFFFE1E2).w,d4 sub.w (word_FFFFAC32).w,d4 bcc.s loc_6096C neg.w d4 loc_6096C: ; CODE XREF: sub_60880+E8j move.w d4,(word_FFFFB00C).w move.w (word_FFFFE1CC).w,d4 move.w (word_FFFFB00C).w,d3 add.w d3,d3 bcc.s loc_60980 move.w #$FFFF,d3 loc_60980: ; CODE XREF: sub_60880+FAj move.l d3,d5 mulu.w (DG_CAM_KE_CAM_POSITION_ERROR_MAX).l,d5 ; Lower boundry multiplier for crank-cam pulse timing window. Gen 1E only. ; 0_to_4 move.w #$1000,d2 divu.w d2,d5 bvc.s loc_60994 move.w #$FFFF,d5 loc_60994: ; CODE XREF: sub_60880+10Ej cmp.w d5,d4 bcc.s loc_609B8 mulu.w (DG_CAM_KE_CAM_POSITION_ERROR_MIN).l,d3 ; Upper boundry multiplier for crank-cam pulse timing window. Gen 1E only. ; 0_to_4 divu.w d2,d3 bvc.s loc_609A6 move.w #$FFFF,d3 loc_609A6: ; CODE XREF: sub_60880+120j cmp.w d3,d4 bls.s loc_609B8 moveq #1,d0 jsr sub_5F0BE clr.b (byte_FFFFB00A).w bra.s loc_609C8 ; --------------------------------------------------------------------------- loc_609B8: ; CODE XREF: sub_60880+116j ; sub_60880+128j move.b (byte_FFFFB00A).w,d3 addq.b #1,d3 bcc.s loc_609C4 move.b #$FF,d3 loc_609C4: ; CODE XREF: sub_60880+13Ej move.b d3,(byte_FFFFB00A).w loc_609C8: ; CODE XREF: sub_60880+136j move.b (byte_FFFFB00A).w,d0 cmp.b (DG_CAM_KE_CAM_POSITION_MAX_DIAG_COUNT).l,d0 ; The number of continuous position errors to qualify as a fault. Gen 1E only. ; Counts bcs.s loc_609DC moveq #1,d0 jsr sub_5F110 loc_609DC: ; CODE XREF: sub_60880+152j move.b (byte_FFFFB009).w,d3 addq.b #1,d3 bcc.s loc_609E8 move.b #$FF,d3 loc_609E8: ; CODE XREF: sub_60880+162j move.b d3,(byte_FFFFB009).w bra.w loc_60BDA ; --------------------------------------------------------------------------- loc_609F0: ; CODE XREF: sub_60880+Cj move.w (word_FFFFAC36).w,d1 tst.b (byte_FFFFAA93).w bne.w loc_60BD6 jsr sub_7C358 cmp.w (word_FFFFAFF2).w,d1 beq.s loc_60A28 clr.w (word_FFFFAFF6).w clr.w (word_FFFFAFF8).w clr.w (word_FFFFAFFA).w clr.w (word_FFFFAFFC).w clr.b (byte_FFFFAFFE).w clr.b (byte_FFFFAFFF).w clr.b (byte_FFFFB000).w clr.b (byte_FFFFB001).w loc_60A28: ; CODE XREF: sub_60880+186j move.w (word_FFFFE040).w,var_2(a6) moveq #1,d2 cmp.b (byte_FFFFAC47).w,d2 bne.s loc_60A78 tst.b (byte_FFFFAFFE).w beq.s loc_60A78 tst.b (byte_FFFFB00B).w beq.s loc_60A78 move.w (word_FFFFAC3E).w,d3 cmp.w d3,d2 bne.s loc_60A50 move.b d2,(byte_FFFFB000).w bra.s loc_60A78 ; --------------------------------------------------------------------------- loc_60A50: ; CODE XREF: sub_60880+1C8j tst.w d3 bne.s loc_60A6E move.b #2,(byte_FFFFB000).w btst #0,var_2+1(a6) bne.s loc_60A68 addq.w #1,(word_FFFFAFF6).w bra.s loc_60A78 ; --------------------------------------------------------------------------- loc_60A68: ; CODE XREF: sub_60880+1E0j addq.w #1,(word_FFFFAFF8).w bra.s loc_60A78 ; --------------------------------------------------------------------------- loc_60A6E: ; CODE XREF: sub_60880+1D2j move.b #3,(byte_FFFFB000).w addq.w #1,(word_FFFFAFFA).w loc_60A78: ; CODE XREF: sub_60880+1B4j ; sub_60880+1BAj ... moveq #5,d6 cmp.b (byte_FFFFAC47).w,d6 bne.s loc_60AC2 tst.b (byte_FFFFAFFF).w beq.s loc_60AC2 tst.b (byte_FFFFB00B).w beq.s loc_60AC2 move.w (word_FFFFAC40).w,d3 cmp.w d3,d2 bne.s loc_60A9A move.b d2,(byte_FFFFB001).w bra.s loc_60AC2 ; --------------------------------------------------------------------------- loc_60A9A: ; CODE XREF: sub_60880+212j tst.w d3 bne.s loc_60AB8 move.b #2,(byte_FFFFB001).w btst #0,var_2+1(a6) bne.s loc_60AB2 addq.w #1,(word_FFFFAFF6).w bra.s loc_60AC2 ; --------------------------------------------------------------------------- loc_60AB2: ; CODE XREF: sub_60880+22Aj addq.w #1,(word_FFFFAFF8).w bra.s loc_60AC2 ; --------------------------------------------------------------------------- loc_60AB8: ; CODE XREF: sub_60880+21Cj move.b #3,(byte_FFFFB001).w addq.w #1,(word_FFFFAFFA).w loc_60AC2: ; CODE XREF: sub_60880+1FEj ; sub_60880+204j ... move.w (word_FFFFAFF8).w,d3 cmp.w (DG_CAM_KE_CAM_X_SHORTED_HIGH_CRANK).l,d3 ; Limit of allowable high transitions when a hightransition should not have occured during crank state. ; NONE 0-255 bcc.s loc_60ADE moveq #3,d7 cmp.b (ThrottleControlMode2?).w,d7 bne.s loc_60B0A cmp.w (DG_CAM_KE_CAM_X_SHORTED_HIGH_RUN).l,d3 ; Limit of allowable high transitions when a hightransition should not have occured during engine run. ; NONE 0-255 bcs.s loc_60B0A loc_60ADE: ; CODE XREF: sub_60880+24Cj moveq #$45,d0 ; 'E' jsr sub_5F0BE moveq #$44,d0 ; 'D' jsr sub_5F0BE moveq #$46,d0 ; 'F' jsr sub_5F110 loc_60AF6: ; CODE XREF: sub_60880:loc_60B3Ej clr.w (word_FFFFAFF8).w clr.w (word_FFFFAFF6).w clr.w (word_FFFFAFFA).w clr.w (word_FFFFAFFC).w bra.w loc_60BB8 ; --------------------------------------------------------------------------- loc_60B0A: ; CODE XREF: sub_60880+254j ; sub_60880+25Cj move.w (word_FFFFAFF6).w,d3 cmp.w (DG_CAM_KE_CAM_X_SHORTED_LOW_CRANK).l,d3 ; Limit of allowable low transitions when a lowtransition should not have occured during crank state. ; NONE 0-255 bcc.s loc_60B26 moveq #3,d7 cmp.b (ThrottleControlMode2?).w,d7 bne.s loc_60B40 cmp.w (DG_CAM_KE_CAM_X_SHORTED_LOW_RUN).l,d3 ; Limit of allowable low transitions when a lowtransition should not have occured during engine run. ; NONE 0-255 bcs.s loc_60B40 loc_60B26: ; CODE XREF: sub_60880+294j moveq #$46,d0 ; 'F' jsr sub_5F0BE moveq #$44,d0 ; 'D' jsr sub_5F0BE moveq #$45,d0 ; 'E' loc_60B38: ; CODE XREF: sub_60880+2EEj jsr sub_5F110 loc_60B3E: ; CODE XREF: sub_60880+324j bra.s loc_60AF6 ; --------------------------------------------------------------------------- loc_60B40: ; CODE XREF: sub_60880+29Cj ; sub_60880+2A4j move.w (word_FFFFAFFA).w,d3 cmp.w (DG_CAM_KE_CAM_X_PERFORMANCE_CRANK).l,d3 ; Limit of number of too many transitions occuringwhen only one transition should have occured duringcrank state. ; NONE 0-255 bcc.s loc_60B5C moveq #3,d7 cmp.b (ThrottleControlMode2?).w,d7 bne.s loc_60B70 cmp.w (DG_CAM_KE_CAM_X_PERFORMANCE_RUN).l,d3 ; Limit of number of too many transitions occuringwhen only one transition should have occured. ; NONE 0-255 bcs.s loc_60B70 loc_60B5C: ; CODE XREF: sub_60880+2CAj moveq #$46,d0 ; 'F' jsr sub_5F0BE moveq #$45,d0 ; 'E' jsr sub_5F0BE moveq #$44,d0 ; 'D' bra.s loc_60B38 ; --------------------------------------------------------------------------- loc_60B70: ; CODE XREF: sub_60880+2D2j ; sub_60880+2DAj move.w (word_FFFFAFFC).w,d3 cmp.w (DG_CAM_KE_CAM_X_SAMPLES_CRANK).l,d3 ; Limit of number of samples for cranking. ; NONE 0-255 bcc.s loc_60B8C cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_60BA6 cmp.w (DG_CAM_KE_CAM_X_SAMPLES_RUN).l,d3 ; Limit of number of samples for engine run. ; NONE 0-255 bcs.s loc_60BA6 loc_60B8C: ; CODE XREF: sub_60880+2FAj moveq #$46,d0 ; 'F' jsr sub_5F0BE moveq #$45,d0 ; 'E' jsr sub_5F0BE moveq #$44,d0 ; 'D' jsr sub_5F0BE bra.s loc_60B3E ; --------------------------------------------------------------------------- loc_60BA6: ; CODE XREF: sub_60880+302j ; sub_60880+30Aj cmp.b (byte_FFFFAC47).w,d6 bne.s loc_60BB8 tst.b (byte_FFFFB00B).w beq.s loc_60BB8 addq.w #1,d3 move.w d3,(word_FFFFAFFC).w loc_60BB8: ; CODE XREF: sub_60880+286j ; sub_60880+32Aj ... cmp.b (byte_FFFFAC47).w,d2 bne.s loc_60BC2 move.b d2,(byte_FFFFAFFE).w loc_60BC2: ; CODE XREF: sub_60880+33Cj cmp.b (byte_FFFFAC47).w,d6 bne.s loc_60BCC move.b d2,(byte_FFFFAFFF).w loc_60BCC: ; CODE XREF: sub_60880+346j move.w d1,(word_FFFFAFF2).w move.b d2,(byte_FFFFB00B).w bra.s loc_60BDA ; --------------------------------------------------------------------------- loc_60BD6: ; CODE XREF: sub_60880+178j clr.b (byte_FFFFB00B).w loc_60BDA: ; CODE XREF: sub_60880+AAj ; sub_60880+B2j ... movem.l (sp)+,d0-d2/d6-d7 unlk a6 rts ; End of function sub_60880 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60BE2: ; CODE XREF: sub_7C71C:loc_7C78Ep var_A = -$A var_8 = -8 var_7 = -7 var_6 = -6 var_5 = -5 var_4 = -4 var_2 = -2 link a6,#-$A movem.l d0-d2,-(sp) move.w (word_FFFFE040).w,var_A(a6) move.b (byte_FFFFAC46).w,d3 cmp.b (ENG_CONSTANTS_KE_TYPE_OF_KNOCK_SENSORS+1).l,d3 ; Identifies whether the engine is equipped with resonant( 0 ) or flat response( 1 ) knock sensors. ; Knock_Sensor_Type bcs.w loc_60D24 cmp.b (ENG_CONSTANTS_KE_TYPE_OF_KNOCK_SENSORS+2).l,d3 ; Identifies whether the engine is equipped with resonant( 0 ) or flat response( 1 ) knock sensors. ; Knock_Sensor_Type bhi.w loc_60D24 btst #4,var_A+1(a6) beq.w loc_60CA2 andi.w #$FF,d3 mulu.w #6,d3 lea DG_CAM_KV_CAM_INITIAL_FIRST_CYCLE(d3.l),a2 move.w (word_FFFFE040).w,var_2(a6) btst #0,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_8(a6) btst #1,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_7(a6) btst #2,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_6(a6) btst #3,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_5(a6) btst #4,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_4(a6) moveq #1,d1 clr.b d0 loc_60C72: ; CODE XREF: sub_60BE2+ACj clr.l d2 move.b d0,d2 move.b (a2,d2.w),d3 cmpi.b #2,d3 beq.s loc_60C88 cmp.b var_8(a6,d2.w),d3 beq.s loc_60C88 clr.b d1 loc_60C88: ; CODE XREF: sub_60BE2+9Cj ; sub_60BE2+A2j addq.b #1,d0 cmpi.b #4,d0 bls.s loc_60C72 loc_60C90: ; CODE XREF: sub_60BE2+13Ej ; sub_60BE2+1CAj ... tst.b d1 beq.w loc_60E32 moveq #$44,d0 ; 'D' jsr sub_5F0BE bra.w loc_60E3A ; --------------------------------------------------------------------------- loc_60CA2: ; CODE XREF: sub_60BE2+2Cj andi.w #$FF,d3 mulu.w #6,d3 lea DG_CAM_KV_CAM_INITIAL_SECOND_CYCLE(d3.l),a2 move.w (word_FFFFE040).w,var_2(a6) btst #0,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_8(a6) btst #1,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_7(a6) btst #2,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_6(a6) btst #3,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_5(a6) btst #4,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_4(a6) moveq #1,d1 clr.b d0 loc_60D02: ; CODE XREF: sub_60BE2+13Cj clr.l d2 move.b d0,d2 move.b (a2,d2.w),d3 cmpi.b #2,d3 beq.s loc_60D18 cmp.b var_8(a6,d2.w),d3 beq.s loc_60D18 clr.b d1 loc_60D18: ; CODE XREF: sub_60BE2+12Cj ; sub_60BE2+132j addq.b #1,d0 cmpi.b #4,d0 bls.s loc_60D02 bra.w loc_60C90 ; --------------------------------------------------------------------------- loc_60D24: ; CODE XREF: sub_60BE2+18j ; sub_60BE2+22j btst #0,var_A+1(a6) bne.w loc_60DB0 andi.w #$FF,d3 mulu.w #6,d3 lea DG_CAM_KV_CAM_INITIAL_FIRST_CYCLE(d3.l),a2 move.w (word_FFFFE040).w,var_2(a6) btst #0,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_8(a6) btst #1,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_7(a6) btst #2,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_6(a6) btst #3,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_5(a6) btst #4,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_4(a6) moveq #1,d1 clr.b d0 loc_60D8E: ; CODE XREF: sub_60BE2+1C8j clr.l d2 move.b d0,d2 move.b (a2,d2.w),d3 cmpi.b #2,d3 beq.s loc_60DA4 cmp.b var_8(a6,d2.w),d3 beq.s loc_60DA4 clr.b d1 loc_60DA4: ; CODE XREF: sub_60BE2+1B8j ; sub_60BE2+1BEj addq.b #1,d0 cmpi.b #4,d0 bls.s loc_60D8E bra.w loc_60C90 ; --------------------------------------------------------------------------- loc_60DB0: ; CODE XREF: sub_60BE2+148j andi.w #$FF,d3 mulu.w #6,d3 lea DG_CAM_KV_CAM_INITIAL_SECOND_CYCLE(d3.l),a2 move.w (word_FFFFE040).w,var_2(a6) btst #0,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_8(a6) btst #1,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_7(a6) btst #2,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_6(a6) btst #3,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_5(a6) btst #4,var_2+1(a6) sne d1 neg.b d1 move.b d1,var_4(a6) moveq #1,d1 clr.b d0 loc_60E10: ; CODE XREF: sub_60BE2+24Aj clr.l d2 move.b d0,d2 move.b (a2,d2.w),d3 cmpi.b #2,d3 beq.s loc_60E26 cmp.b var_8(a6,d2.w),d3 beq.s loc_60E26 clr.b d1 loc_60E26: ; CODE XREF: sub_60BE2+23Aj ; sub_60BE2+240j addq.b #1,d0 cmpi.b #4,d0 bls.s loc_60E10 bra.w loc_60C90 ; --------------------------------------------------------------------------- loc_60E32: ; CODE XREF: sub_60BE2+B0j moveq #$44,d0 ; 'D' jsr sub_5F110 loc_60E3A: ; CODE XREF: sub_60BE2+BCj movem.l (sp)+,d0-d2 unlk a6 rts ; End of function sub_60BE2 ; =============== S U B R O U T I N E ======================================= sub_60E42: ; CODE XREF: DoLoopA+3D0p move.w (EngineRPM_PID_000C___).w,d4 tst.b (byte_FFFFA196).w beq.w loc_60F8C btst #3,(byte_FFFFA7DE).w beq.w loc_60F8C cmpi.b #8,(byte_FFFFA3B8).w bne.w loc_60F8C btst #7,(byte_FFFFA6C0).w bne.w loc_60F8C btst #2,(byte_FFFFB1C2).w bne.w loc_60F8C move.b (byte_FFFFA6BE).w,d3 cmp.b (DI_CASE_KE_CASE_ATTEMPTS_TO_LEARN_MAX).l,d3 ; Maximum number of times the system will attempt to learn the crank errors in one key cycle. ; Counts bhi.w loc_60F8C move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DI_CASE_KE_CASE_COOLANT_TEMP_ENABLE).l,d3 ; Minimum coolant temperature to allow learning of Crank Angle Sensing Error. ; Degrees_ blt.w loc_60F8C move.b (byte_FFFFAF3B).w,d3 or.b (byte_FFFFA80F).w,d3 beq.w loc_60F8C btst #1,(byte_FFFF8944).w bne.w loc_60F8C btst #1,(byte_FFFF8946).w bne.w loc_60F8C btst #1,(byte_FFFF8948).w bne.w loc_60F8C btst #1,(byte_FFFF894A).w bne.w loc_60F8C btst #1,(byte_FFFF894C).w bne.w loc_60F8C btst #1,(byte_FFFF88DA).w bne.w loc_60F8C btst #1,(byte_FFFF88DC).w bne.w loc_60F8C btst #1,(byte_FFFF89CC).w bne.w loc_60F8C btst #1,(byte_FFFF8A46).w bne.w loc_60F8C btst #1,(byte_FFFF8A48).w bne.w loc_60F8C btst #1,(byte_FFFF89D6).w bne.w loc_60F8C btst #1,(byte_FFFF89D8).w bne.s loc_60F8C btst #1,(byte_FFFF8A6E).w bne.s loc_60F8C btst #1,(byte_FFFF8A7C).w bne.s loc_60F8C moveq #1,d5 move.b d5,(byte_FFFFB423).w tst.b (byte_FFFFA937).w beq.s loc_60F86 cmp.w (DI_CASE_KE_CASE_FUEL_CUTOFF_THRESHOLD).l,d4 ; Threshold above which fuel will be cut off to all cylinders. ; RPM bls.s loc_60F40 move.b d5,(byte_FFFFB422).w move.b d5,(byte_FFFFB424).w loc_60F40: ; CODE XREF: sub_60E42+F4j tst.b (byte_FFFFB426).w bne.s loc_60F86 move.b (byte_FFFFB427).w,d3 cmp.b (DG_CASE_KE_CASE_COLLECT_CAM_DATA).l,d3 bhi.s loc_60F86 tst.b (byte_FFFFB422).w beq.s loc_60F86 cmp.w (DI_CASE_KE_CASE_LOWER_RPM_THRESHOLD).l,d4 ; Engine speed below which crank error data collection and intrusive fuel control are disabled. ; RPM bls.s loc_60F86 cmp.w (DI_CASE_KE_CASE_UPPER_RPM_THRESHOLD).l,d4 ; Engine speed at which to begin the crank error calculation. ; RPM bhi.s loc_60FA0 move.w (word_FFFFB428).w,d3 add.w (DI_CASE_KE_CASE_ENGINE_SPEED_HYSTERESIS).l,d3 ; Engine speed hysteresis for enabling crank error learning. ; RPM bcc.s loc_60F78 move.w #$FFFF,d3 loc_60F78: ; CODE XREF: sub_60E42+130j cmp.w d3,d4 bhi.s loc_60F86 move.b d5,(byte_FFFFB425).w addq.b #1,(byte_FFFFB427).w bra.s loc_60FA0 ; --------------------------------------------------------------------------- loc_60F86: ; CODE XREF: sub_60E42+ECj ; sub_60E42+102j ... clr.b (byte_FFFFB425).w bra.s loc_60F98 ; --------------------------------------------------------------------------- loc_60F8C: ; CODE XREF: sub_60E42+8j ; sub_60E42+12j ... clr.b (byte_FFFFB425).w clr.b (byte_FFFFB424).w clr.b (byte_FFFFB423).w loc_60F98: ; CODE XREF: sub_60E42+148j clr.b (byte_FFFFB422).w clr.b (byte_FFFFB427).w loc_60FA0: ; CODE XREF: sub_60E42+124j ; sub_60E42+142j move.w d4,(word_FFFFB428).w rts ; End of function sub_60E42 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60FA6: ; CODE XREF: OS1:0002901Cp var_8 = -8 var_4 = -4 link a6,#-8 cmpi.b #8,d0 bhi.s loc_60FC4 tst.b d0 beq.s loc_60FE8 cmpi.b #2,d0 bhi.s loc_60FE8 bne.s loc_60FC4 move.w (EngineRPM_PID_000C___).w,(word_FFFFB428).w bra.s loc_60FE8 ; --------------------------------------------------------------------------- loc_60FC4: ; CODE XREF: sub_60FA6+8j ; sub_60FA6+14j move.w (dword_FFFF8D22).w,var_8(a6) move.w (dword_FFFF8D22+2).w,var_8+2(a6) move.w (dword_FFFF8D26).w,var_4(a6) move.w (dword_FFFF8D26+2).w,var_4+2(a6) move.l var_4(a6),(dword_FFFF8042).w move.l var_8(a6),(dword_FFFF803E).w loc_60FE8: ; CODE XREF: sub_60FA6+Cj ; sub_60FA6+12j ... unlk a6 rts ; End of function sub_60FA6 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60FEC: ; CODE XREF: OS1:00029024p ; sub_755FA+C6p var_5954 = -$5954 var_8 = -8 link a6,#-8 cmpi.b #6,d0 beq.w loc_61080 cmpi.b #3,d0 bhi.w loc_61084 beq.s loc_61080 cmpi.b #1,d0 bls.s loc_61084 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d4 ; Number of cylinders for this engine application. ; SHORTCARD clr.l d3 move.b d4,d3 move.l d3,d5 mulu.w d3,d5 move.b d5,(byte_FFFFA6C2).w tst.b (byte_FFFFB54A).w bne.s loc_61038 lea var_8(a6),a2 move.l (dword_FFFF8042).w,4(a2) move.l (dword_FFFF803E).w,(a2) move.l 4(a2),(dword_FFFF8D26).w move.l (a2),(dword_FFFF8D22).w loc_61038: ; CODE XREF: sub_60FEC+32j clr.b (byte_FFFFA6BE).w clr.b (byte_FFFFA6BF).w clr.b (byte_FFFFA6C1).w clr.b (byte_FFFFA6C0).w lea (unk_FFFFA6C6).w,a2 moveq #$F,d3 loc_6104E: ; CODE XREF: sub_60FEC+64j clr.w (a2)+ dbf d3,loc_6104E lea (unk_FFFFA6A6).w,a2 moveq #7,d3 loc_6105A: ; CODE XREF: sub_60FEC+70j clr.w (a2)+ dbf d3,loc_6105A lsr.b #1,d4 moveq #1,d3 cmpi.b #1,d4 bra.s loc_6107C ; --------------------------------------------------------------------------- loc_6106A: ; CODE XREF: sub_60FEC:loc_6107Cj clr.l d5 move.b d3,d5 move.w #$FFFF,8+var_5954(d5.w*2) addq.b #1,d3 bcs.s loc_61084 cmp.b d3,d4 loc_6107C: ; CODE XREF: sub_60FEC+7Cj bcc.s loc_6106A bra.s loc_61084 ; --------------------------------------------------------------------------- loc_61080: ; CODE XREF: sub_60FEC+8j ; sub_60FEC+14j clr.b (byte_FFFFA6BF).w loc_61084: ; CODE XREF: sub_60FEC+10j ; sub_60FEC+1Aj ... unlk a6 rts ; End of function sub_60FEC ; =============== S U B R O U T I N E ======================================= sub_61088: ; CODE XREF: DoLoopA+3D6p var_5974 = -$5974 var_5964 = -$5964 movem.l d0-d2/d6-a0,-(sp) bclr #6,(byte_FFFFA6C0).w tst.b (byte_FFFFB425).w beq.s loc_6109E bset #6,(byte_FFFFA6C0).w loc_6109E: ; CODE XREF: sub_61088+Ej move.b (byte_FFFFB426).w,d3 bne.s loc_610AC btst #4,(byte_FFFFA6C1).w beq.s loc_610C4 loc_610AC: ; CODE XREF: sub_61088+1Aj tst.b d3 beq.s loc_610B8 bset #0,(byte_FFFFA6C0).w bra.s loc_610BE ; --------------------------------------------------------------------------- loc_610B8: ; CODE XREF: sub_61088+26j bclr #0,(byte_FFFFA6C0).w loc_610BE: ; CODE XREF: sub_61088+2Ej bclr #4,(byte_FFFFA6C1).w loc_610C4: ; CODE XREF: sub_61088+22j moveq #1,d5 cmp.b (byte_FFFFB427).w,d5 bne.s loc_61134 lea (unk_FFFFA6C6).w,a2 moveq #$F,d4 loc_610D2: ; CODE XREF: sub_61088+4Cj clr.w (a2)+ dbf d4,loc_610D2 lea (unk_FFFFA6A6).w,a2 moveq #7,d4 loc_610DE: ; CODE XREF: sub_61088+58j clr.w (a2)+ dbf d4,loc_610DE move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d4 ; Number of cylinders for this engine application. ; SHORTCARD lsr.b #1,d4 move.l d5,d3 cmp.b d4,d5 bhi.s loc_61106 loc_610F2: ; CODE XREF: sub_61088+7Cj clr.l d6 move.b d3,d6 move.w #$FFFF,$18+var_5964(d6.w*2) addq.b #1,d3 bcs.s loc_61106 cmp.b d3,d4 bcc.s loc_610F2 loc_61106: ; CODE XREF: sub_61088+68j ; sub_61088+78j move.b (byte_FFFFA6BE).w,d3 addq.b #1,d3 bcc.s loc_61112 move.b #$FF,d3 loc_61112: ; CODE XREF: sub_61088+84j move.b d3,(byte_FFFFA6BE).w bclr #7,(byte_FFFFA6C0).w bclr #3,(byte_FFFFA6C0).w bclr #2,(byte_FFFFA6C0).w bclr #1,(byte_FFFFA6C0).w bset #4,(byte_FFFFA6C1).w loc_61134: ; CODE XREF: sub_61088+42j btst #5,(byte_FFFFA6C1).w beq.w loc_612BC move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d7 ; Number of cylinders for this engine application. ; SHORTCARD move.l d7,d2 move.l d5,d0 cmp.b d2,d5 bhi.s loc_611C6 loc_6114C: ; CODE XREF: sub_61088+13Cj clr.l d1 move.b d0,d1 tst.l byte_FFFFA6C2(d1.w*4) bne.s loc_61162 move.w #$FFFF,$18+var_5974(d1.w*2) bra.s loc_611A2 ; --------------------------------------------------------------------------- loc_61162: ; CODE XREF: sub_61088+CEj movea.w d1,a2 clr.l d4 move.b d0,d4 move.b (DG_CASE_KE_CASE_COLLECT_CAM_DATA).l,d3 subq.b #1,d3 andi.w #$FF,d3 andi.l #$FFFF,d3 asl.l #8,d3 asl.l #7,d3 mulu.l #$8000,d6:d3 divu.l byte_FFFFA6C2(d4.w*4),d6:d3 bvs.s loc_61198 cmpi.l #$FFFF,d3 bls.s loc_6119C loc_61198: ; CODE XREF: sub_61088+106j move.w #$FFFF,d3 loc_6119C: ; CODE XREF: sub_61088+10Ej move.w d3,$18+var_5974(a2.w*2) loc_611A2: ; CODE XREF: sub_61088+D8j move.w word_FFFFA6A4(d1.w*2),d3 cmp.w (DG_CASE_KE_CASE_FACTOR_MAX).l,d3 ; Defines the threshold above which a cylinder compensation factor is considered to be too large. ; unitless bhi.s loc_611B8 cmp.w (DG_CASE_KE_CASE_FACTOR_MIN).l,d3 ; Defines the threshold below which a cylinder compensation factor is considered out of range. ; unitless bcc.s loc_611BE loc_611B8: ; CODE XREF: sub_61088+126j bset #3,(byte_FFFFA6C0).w loc_611BE: ; CODE XREF: sub_61088+12Ej addq.b #1,d0 bcs.s loc_611C6 cmp.b d0,d2 bcc.s loc_6114C loc_611C6: ; CODE XREF: sub_61088+C2j ; sub_61088+138j move.l d7,d6 lsr.b #1,d6 move.l d6,d1 move.l d5,d4 cmp.b d1,d5 bhi.s loc_61216 loc_611D2: ; CODE XREF: sub_61088+18Cj clr.l d2 move.b d4,d2 move.w word_FFFFA6A4(d2.w*2),d0 move.l d4,d2 add.b d6,d2 andi.w #$FF,d2 move.w word_FFFFA6A4(d2.w*2),d3 cmp.w d3,d0 bls.s loc_611F6 sub.w d3,d0 bcs.s loc_611FA move.w d0,d3 bra.s loc_611FC ; --------------------------------------------------------------------------- loc_611F6: ; CODE XREF: sub_61088+164j sub.w d0,d3 bcc.s loc_611FC loc_611FA: ; CODE XREF: sub_61088+168j clr.w d3 loc_611FC: ; CODE XREF: sub_61088+16Cj ; sub_61088+170j clr.w d0 move.b (DG_CASE_KE_CASE_OPP_CYL_DIFF_MAX).l,d0 ; Defines the threshold above which the opposing cylinder factors are considered to be too far apart. ; unitless cmp.w d3,d0 bcc.s loc_6120E bset #2,(byte_FFFFA6C0).w loc_6120E: ; CODE XREF: sub_61088+17Ej addq.b #1,d4 bcs.s loc_61216 cmp.b d4,d1 bcc.s loc_611D2 loc_61216: ; CODE XREF: sub_61088+148j ; sub_61088+188j btst #2,(byte_FFFFA6C0).w bne.s loc_61226 btst #3,(byte_FFFFA6C0).w beq.s loc_61230 loc_61226: ; CODE XREF: sub_61088+194j bclr #3,(byte_FFFFA6C1).w bra.w loc_612BC ; --------------------------------------------------------------------------- loc_61230: ; CODE XREF: sub_61088+19Cj move.l d7,d1 lsr.b #1,d1 move.b d1,d2 move.l d5,d0 cmp.b d2,d5 bhi.s loc_6126C loc_6123C: ; CODE XREF: sub_61088+1E2j clr.l d5 move.b d0,d5 move.l d0,d6 add.b d1,d6 andi.w #$FF,d6 clr.l d4 move.w word_FFFFA6A4(d6.w*2),d4 movea.l d5,a0 clr.l d3 move.w word_FFFFA6A4(a0.w*2),d3 add.l d4,d3 lsr.l #1,d3 move.w d3,$18+var_5964(d5.w*2) addq.b #1,d0 bcs.s loc_6126C cmp.b d0,d2 bcc.s loc_6123C loc_6126C: ; CODE XREF: sub_61088+1B2j ; sub_61088+1DEj bset #3,(byte_FFFFA6C1).w clr.l d4 moveq #1,d3 cmpi.b #1,d1 bra.s loc_61296 ; --------------------------------------------------------------------------- loc_6127C: ; CODE XREF: sub_61088:loc_61296j clr.l d0 move.b d3,d0 move.w unk_FFFFA6B4(d0.w*2),d0 andi.l #$FFFF,d0 add.l d4,d0 move.l d0,d4 addq.b #1,d3 bcs.s loc_61298 cmp.b d3,d1 loc_61296: ; CODE XREF: sub_61088+1F2j bcc.s loc_6127C loc_61298: ; CODE XREF: sub_61088+20Aj cmp.l (DG_CASE_KE_CASE_FACTOR_SUM_MIN).l,d4 ; Defines the threshold below which the sum of the opposing cylinder pair compensation factors is considered to be out of range. ; unitless bls.s loc_612B6 cmp.l (DG_CASE_KE_CASE_FACTOR_SUM_MAX).l,d4 ; Defines the threshold beyond which the sum of the opposing cylinder pair compensation factors is considered to be out of range. ; unitless bcc.s loc_612B6 jsr sub_612C2 bset #7,(byte_FFFFA6C0).w bra.s loc_612BC ; --------------------------------------------------------------------------- loc_612B6: ; CODE XREF: sub_61088+216j ; sub_61088+21Ej bset #1,(byte_FFFFA6C0).w loc_612BC: ; CODE XREF: sub_61088+B2j ; sub_61088+1A4j ... movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_61088 ; =============== S U B R O U T I N E ======================================= sub_612C2: ; CODE XREF: sub_61088+220p move sr,-(sp) ori #$700,sr move.l (dword_FFFFA6BA).w,(dword_FFFF8D26).w move.l (dword_FFFFA6B6).w,(dword_FFFF8D22).w move (sp)+,sr rts ; End of function sub_612C2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_612D8: ; CODE XREF: DoLoopA:loc_29E38p var_5956 = -$5956 var_4 = -4 var_3 = -3 var_2 = -2 link a6,#-4 movem.l d0-d2/d6-d7,-(sp) tst.b (byte_FFFFB425).w beq.w loc_61452 move.b (byte_FFFFB427).w,d4 move.b d4,var_4(a6) move.b d4,var_4(a6) move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d5 ; Number of cylinders for this engine application. ; SHORTCARD lsr.b #1,d5 subq.b #1,d5 move.b d5,var_3(a6) move.b (byte_FFFFAC47).w,d3 move.b d3,var_2(a6) moveq #1,d6 cmp.b d4,d6 bne.s loc_61318 move.b var_3(a6),d0 cmp.b d0,d3 bcc.s loc_6133A loc_61318: ; CODE XREF: sub_612D8+36j cmp.b d4,d6 bcc.s loc_61324 cmp.b (DG_CASE_KE_CASE_COLLECT_CAM_DATA).l,d4 bcs.s loc_6133A loc_61324: ; CODE XREF: sub_612D8+42j cmp.b (DG_CASE_KE_CASE_COLLECT_CAM_DATA).l,d4 bne.w loc_61458 move.l d3,d4 move.b var_3(a6),d3 cmp.b d3,d4 bcc.w loc_61458 loc_6133A: ; CODE XREF: sub_612D8+3Ej ; sub_612D8+4Aj clr.l d2 move.l d2,d1 tst.b d5 bra.s loc_6138E ; --------------------------------------------------------------------------- loc_61342: ; CODE XREF: sub_612D8:loc_6138Ej move.b var_3(a6),d7 clr.b d0 tst.b d7 bra.s loc_61386 ; --------------------------------------------------------------------------- loc_6134C: ; CODE XREF: sub_612D8:loc_61386j move.l d1,d6 add.b d0,d6 clr.w d3 move.b d6,d3 move.w word_FFFF96E4(d3.w*2),d3 addq.b #1,d6 andi.w #$FF,d6 movea.w word_FFFF96E4(d6.w*2),a2 sub.w a2,d3 andi.l #$FFFF,d3 add.l d2,d3 cmpi.l #unk_EA600,d3 bls.s loc_6137E move.l #unk_EA600,d3 loc_6137E: ; CODE XREF: sub_612D8+9Ej move.l d3,d2 addq.b #1,d0 bcs.s loc_61388 cmp.b d0,d7 loc_61386: ; CODE XREF: sub_612D8+72j bcc.s loc_6134C loc_61388: ; CODE XREF: sub_612D8+AAj addq.b #1,d1 bcs.s loc_61390 cmp.b d1,d5 loc_6138E: ; CODE XREF: sub_612D8+68j bcc.s loc_61342 loc_61390: ; CODE XREF: sub_612D8+B2j tst.l d2 bne.s loc_6139C move.w #$FFFF,(word_FFFFA6C4).w bra.s loc_613F6 ; --------------------------------------------------------------------------- loc_6139C: ; CODE XREF: sub_612D8+BAj clr.w d4 move.b var_3(a6),d4 move.w word_FFFF96E4(d4.w*2),d3 move.b var_3(a6),d4 addq.b #1,d4 andi.w #$FF,d4 movea.w word_FFFF96E4(d4.w*2),a2 sub.w a2,d3 move.b (byte_FFFFA6C2).w,d4 lsr.b #2,d4 andi.w #$FF,d4 mulu.w d3,d4 cmpi.l #unk_EA600,d4 bhi.s loc_613D2 move.l d4,d3 bra.s loc_613D8 ; --------------------------------------------------------------------------- loc_613D2: ; CODE XREF: sub_612D8+F4j move.l #unk_EA600,d3 loc_613D8: ; CODE XREF: sub_612D8+F8j mulu.l #$8000,d1:d3 divu.l d2,d1:d3 bvs.s loc_613EE cmpi.l #$FFFF,d3 bls.s loc_613F2 loc_613EE: ; CODE XREF: sub_612D8+10Cj move.w #$FFFF,d3 loc_613F2: ; CODE XREF: sub_612D8+114j move.w d3,(word_FFFFA6C4).w loc_613F6: ; CODE XREF: sub_612D8+C2j move.b var_2(a6),d4 move.b var_3(a6),d0 cmp.b d0,d4 bhi.s loc_6140C move.l d4,d1 add.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d1 ; Number of cylinders for this engine application. ; SHORTCARD bra.s loc_6140E ; --------------------------------------------------------------------------- loc_6140C: ; CODE XREF: sub_612D8+128j move.l d4,d1 loc_6140E: ; CODE XREF: sub_612D8+132j sub.b d0,d1 clr.l d2 move.b d1,d2 andi.w #$FF,d1 clr.l d3 move.w (word_FFFFA6C4).w,d3 add.l byte_FFFFA6C2(d1.w*4),d3 cmpi.l #$FA0000,d3 bls.s loc_61432 move.l #$FA0000,d3 loc_61432: ; CODE XREF: sub_612D8+152j move.l d3,$18+var_5956(d2.w*4) move.b var_4(a6),d3 cmp.b (DG_CASE_KE_CASE_COLLECT_CAM_DATA).l,d3 bne.s loc_61458 subq.b #1,d0 cmp.b d4,d0 bne.s loc_61458 bset #5,(byte_FFFFA6C1).w bra.s loc_61458 ; --------------------------------------------------------------------------- loc_61452: ; CODE XREF: sub_612D8+Cj bclr #5,(byte_FFFFA6C1).w loc_61458: ; CODE XREF: sub_612D8+52j ; sub_612D8+5Ej ... movem.l (sp)+,d0-d2/d6-d7 unlk a6 rts ; End of function sub_612D8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_61460: ; CODE XREF: DoLoopF:loc_2ABD0p var_12 = -$12 var_10 = -$10 var_C = -$C var_8 = -8 link a6,#-$10 movem.l d0-d2/d6,-(sp) lea var_8(a6),a2 move.l (dword_FFFF8042).w,4(a2) move.l (dword_FFFF803E).w,(a2) move.l 4(a2),var_C(a6) move.l (a2),var_10(a6) clr.l d0 move.l d0,d4 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d1 ; Number of cylinders for this engine application. ; SHORTCARD lsr.b #1,d1 moveq #1,d3 cmpi.b #1,d1 bra.s loc_614B8 ; --------------------------------------------------------------------------- loc_61494: ; CODE XREF: sub_61460:loc_614B8j clr.l d2 move.b d3,d2 clr.l d6 move.w byte_FFFF8D20(d2.w*2),d6 add.l d4,d6 move.l d6,d4 move.w var_12(a6,d2.w*2),d2 andi.l #$FFFF,d2 add.l d0,d2 move.l d2,d0 addq.b #1,d3 bcs.s loc_614BA cmp.b d3,d1 loc_614B8: ; CODE XREF: sub_61460+32j bcc.s loc_61494 loc_614BA: ; CODE XREF: sub_61460+54j move.l (DG_CASE_KE_CASE_FACTOR_SUM_MIN).l,d3 ; Defines the threshold below which the sum of the opposing cylinder pair compensation factors is considered to be out of range. ; unitless cmp.l d3,d4 bls.s loc_614D4 cmp.l (DG_CASE_KE_CASE_FACTOR_SUM_MAX).l,d4 ; Defines the threshold beyond which the sum of the opposing cylinder pair compensation factors is considered to be out of range. ; unitless bcc.s loc_614D4 bset #6,(byte_FFFFA6C1).w bra.s loc_614DA ; --------------------------------------------------------------------------- loc_614D4: ; CODE XREF: sub_61460+62j ; sub_61460+6Aj bclr #6,(byte_FFFFA6C1).w loc_614DA: ; CODE XREF: sub_61460+72j cmp.l d3,d0 bls.s loc_614EE cmp.l (DG_CASE_KE_CASE_FACTOR_SUM_MAX).l,d0 ; Defines the threshold beyond which the sum of the opposing cylinder pair compensation factors is considered to be out of range. ; unitless bcc.s loc_614EE bset #7,(byte_FFFFA6C1).w bra.s loc_614F4 ; --------------------------------------------------------------------------- loc_614EE: ; CODE XREF: sub_61460+7Cj ; sub_61460+84j bclr #7,(byte_FFFFA6C1).w loc_614F4: ; CODE XREF: sub_61460+8Cj jsr sub_61502 movem.l (sp)+,d0-d2/d6 unlk a6 rts ; End of function sub_61460 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_61502: ; CODE XREF: sub_61460:loc_614F4p var_72F2 = -$72F2 var_8 = -8 link a6,#-8 movem.l d0-d1,-(sp) move sr,-(sp) ori #$700,sr btst #6,(byte_FFFFA6C1).w beq.s loc_6152E loc_61518: ; CODE XREF: sub_61502+4Cj moveq #$3E,d0 ; '>' jsr sub_5F0BE bset #3,(byte_FFFFB484).w clr.b (byte_FFFFA6BF).w bra.w loc_615B2 ; --------------------------------------------------------------------------- loc_6152E: ; CODE XREF: sub_61502+14j btst #7,(byte_FFFFA6C1).w beq.s loc_61550 lea var_8(a6),a2 move.l (dword_FFFF8042).w,4(a2) move.l (dword_FFFF803E).w,(a2) move.l 4(a2),(dword_FFFF8D26).w move.l (a2),(dword_FFFF8D22).w bra.s loc_61518 ; --------------------------------------------------------------------------- loc_61550: ; CODE XREF: sub_61502+32j move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d4 ; Number of cylinders for this engine application. ; SHORTCARD lsr.b #1,d4 moveq #1,d3 cmpi.b #1,d4 bra.s loc_61574 ; --------------------------------------------------------------------------- loc_61560: ; CODE XREF: sub_61502:loc_61574j clr.l d1 move.b d3,d1 movea.w #$FFFF,a2 move.w a2,$12+var_72F2(d1.w*2) addq.b #1,d3 bcs.s loc_61576 cmp.b d3,d4 loc_61574: ; CODE XREF: sub_61502+5Cj bcc.s loc_61560 loc_61576: ; CODE XREF: sub_61502+6Ej move.b (byte_FFFFA6BF).w,d3 addq.b #1,d3 bcc.s loc_61582 move.b #$FF,d3 loc_61582: ; CODE XREF: sub_61502+7Aj move.b d3,(byte_FFFFA6BF).w cmp.b (DG_CASE_KE_CASE_FAIL_TIMER_MAX).l,d3 ; Defines the diagnostic failure threshold according to the activation rate specified herein for the owner process. ; seconds bcs.s loc_615B2 clr.b (byte_FFFFA6BF).w jsr sub_2749A tst.b d0 beq.s loc_615A4 tst.b (DG_CASE_KE_DSBL_MFR_ENBL_CTR_FOR_CASE).l beq.s loc_615B2 loc_615A4: ; CODE XREF: sub_61502+98j moveq #$3E,d0 ; '>' jsr sub_5F110 bset #3,(byte_FFFFB484).w loc_615B2: ; CODE XREF: sub_61502+28j ; sub_61502+8Aj ... move (sp)+,sr movem.l (sp)+,d0-d1 unlk a6 rts ; End of function sub_61502 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_615BC: ; CODE XREF: sub_6955E+56p ; sub_695C0+56p ... var_4 = -4 arg_0 = 8 arg_4 = $C arg_8 = $10 arg_C = $14 link a6,#0 move.l a0,-(sp) movem.l a4-a5,-(sp) movea.l a1,a5 movea.l arg_0(a6),a0 movea.l arg_4(a6),a1 movea.l arg_C(a6),a4 movea.l a0,a3 move.w (a0),d3 addq.w #1,d3 bcc.s loc_615E0 move.w #$FFFF,d3 loc_615E0: ; CODE XREF: sub_615BC+1Ej move.w d3,(a3) tst.b d0 beq.s loc_615F4 movea.l a1,a3 move.w (a1),d3 addq.w #1,d3 bcc.s loc_615F2 move.w #$FFFF,d3 loc_615F2: ; CODE XREF: sub_615BC+30j move.w d3,(a3) loc_615F4: ; CODE XREF: sub_615BC+28j move.w (a1),d3 cmp.w (a5),d3 bcs.s loc_61616 movea.l arg_8(a6),a4 move.w (a4),d3 beq.s loc_61606 cmp.w (a0),d3 bls.s loc_61608 loc_61606: ; CODE XREF: sub_615BC+44j move.w (a0),(a4) loc_61608: ; CODE XREF: sub_615BC+48j move.l d1,d0 jsr sub_5F110 loc_61610: ; CODE XREF: sub_615BC+72j clr.w (a0) clr.w (a1) bra.s loc_61630 ; --------------------------------------------------------------------------- loc_61616: ; CODE XREF: sub_615BC+3Cj movea.l var_4(a6),a5 move.w (a0),d0 cmp.w (a5),d0 bcs.s loc_61630 cmp.w (a4),d3 bls.s loc_61626 move.w d3,(a4) loc_61626: ; CODE XREF: sub_615BC+66j move.l d1,d0 jsr sub_5F0BE bra.s loc_61610 ; --------------------------------------------------------------------------- loc_61630: ; CODE XREF: sub_615BC+58j ; sub_615BC+62j movem.l (sp)+,a4-a5 unlk a6 rtd #$10 ; End of function sub_615BC ; =============== S U B R O U T I N E ======================================= sub_6163A: ; CODE XREF: DoLoopE+18Ep movem.l d0-d2,-(sp) move.w (word_FFFFAC36).w,d0 move.w (word_FFFFAA90).w,d1 move.b (ThrottleControlMode2?).w,d3 cmpi.b #3,d3 beq.s loc_61656 cmpi.b #1,d3 bne.s loc_616D2 loc_61656: ; CODE XREF: sub_6163A+14j move.l d0,d3 sub.w (word_FFFFAE18).w,d3 bcc.s loc_61660 clr.w d3 loc_61660: ; CODE XREF: sub_6163A+22j move.w d3,(word_FFFFAE16).w move.l d1,d2 sub.w (word_FFFFAE1C).w,d2 move.w d2,(word_FFFFAE1A).w tst.w d2 beq.s loc_6168A clr.l d4 move.w (word_FFFFAE16).w,d4 asl.l #8,d4 asl.l #8,d4 divu.w (word_FFFFAE1A).w,d4 bvc.s loc_61686 move.w #$FFFF,d4 loc_61686: ; CODE XREF: sub_6163A+46j move.w d4,(word_FFFFAE1E).w loc_6168A: ; CODE XREF: sub_6163A+36j cmp.w (DG_CRANK_KE_LOSS_OF_MATCH_FAIL_LIMIT).l,d3 ; Number of Loss of Match events required to report a Crank Sync Lost failure. ; Match Loss bcs.s loc_616A4 loc_61692: ; CODE XREF: sub_6163A+7Ej move.w d0,(word_FFFFAE18).w move.w d1,(word_FFFFAE1C).w moveq #$43,d0 ; 'C' jsr sub_5F110 bra.s loc_616D2 ; --------------------------------------------------------------------------- loc_616A4: ; CODE XREF: sub_6163A+56j cmp.w (DG_CRANK_KE_LOW_RES_REF_LOM_THRESHOLD).l,d2 ; Number of low res ref pulses that must occur before Loss Of Match density is evaluated. ; Lo-Res Ref bcs.s loc_616D2 move.w (word_FFFFAE1E).w,d3 cmp.w (DG_CRANK_KE_CRANK_SYNC_LOST_RATIO_LIMIT).l,d3 ; Loss Of Match density (ratio of Loss OF Match events to low res ref pulses) that will report a Crank Sync Lost failure. ; NONE 0-1 bcs.s loc_616BA bra.s loc_61692 ; --------------------------------------------------------------------------- loc_616BA: ; CODE XREF: sub_6163A+7Cj move.w d0,(word_FFFFAE18).w move.w d1,(word_FFFFAE1C).w moveq #$43,d0 ; 'C' jsr sub_5F0BE moveq #$42,d0 ; 'B' jsr sub_5F0BE loc_616D2: ; CODE XREF: sub_6163A+1Aj ; sub_6163A+68j ... movem.l (sp)+,d0-d2 rts ; End of function sub_6163A ; =============== S U B R O U T I N E ======================================= sub_616D8: ; CODE XREF: DoLoopF+466p movem.l d0-d2,-(sp) move.w (word_FFFFAC34).w,d1 move.b (byte_FFFFAC49).w,d2 move.b (ThrottleControlMode2?).w,d3 cmpi.b #1,d3 beq.s loc_616F6 cmpi.b #2,d3 bne.w loc_617F8 loc_616F6: ; CODE XREF: sub_616D8+14j tst.b (byte_FFFFAE14).w beq.w loc_617F8 move.w (word_FFFFAC88).w,d3 cmp.w (DG_CRANK_KE_MIN_CRANKING_MASS_AIRFLOW).l,d3 ; Level of airflow when engine is cranking. ; gm/S bcs.w loc_617F8 btst #1,(byte_FFFF88C8).w bne.w loc_617F8 btst #1,(byte_FFFF88CA).w bne.w loc_617F8 btst #3,(byte_FFFF8255).w bne.w loc_617F8 tst.b (byte_FFFFB37A).w beq.s loc_61788 move.b (byte_FFFFAE20).w,d3 addq.b #1,d3 bcc.s loc_6173C move.b #$FF,d3 loc_6173C: ; CODE XREF: sub_616D8+5Ej move.b d3,(byte_FFFFAE20).w tst.w (EngineRPM_PID_000C___).w bne.s loc_61756 move.b (byte_FFFFAE21).w,d4 addq.b #1,d4 bcc.s loc_61752 move.b #$FF,d4 loc_61752: ; CODE XREF: sub_616D8+74j move.b d4,(byte_FFFFAE21).w loc_61756: ; CODE XREF: sub_616D8+6Cj move.b (byte_FFFFAE21).w,d0 cmp.b (DG_CRANK_KE_START_CRANK_FAILURE_LIMIT).l,d0 bcs.s loc_61776 moveq #$42,d0 ; 'B' jsr sub_5F110 loc_6176A: ; CODE XREF: sub_616D8+AEj clr.b (byte_FFFFAE20).w clr.b (byte_FFFFAE21).w bra.w loc_617F8 ; --------------------------------------------------------------------------- loc_61776: ; CODE XREF: sub_616D8+88j cmp.b (DG_CRANK_KE_START_CRANK_SAMPLE_SIZE).l,d3 bcs.s loc_617F8 moveq #$42,d0 ; 'B' jsr sub_5F0BE bra.s loc_6176A ; --------------------------------------------------------------------------- loc_61788: ; CODE XREF: sub_616D8+56j move.b (byte_FFFFAE22).w,d4 addq.b #1,d4 bcc.s loc_61794 move.b #$FF,d4 loc_61794: ; CODE XREF: sub_616D8+B6j move.b d4,(byte_FFFFAE22).w move.l d1,d0 sub.w (word_FFFFAE24).w,d0 bcc.s loc_617A2 clr.w d0 loc_617A2: ; CODE XREF: sub_616D8+C6j cmp.w (DG_CRANK_KE_MATCH_HAS_OCCURRED_THRESHOLD).l,d0 ; This many matches in a single sample register as one crank synch not achieved failure. ; matches bcc.s loc_617AE tst.b d2 bne.s loc_617C2 loc_617AE: ; CODE XREF: sub_616D8+D0j move.b (byte_FFFFAE23).w,d3 addq.b #1,d3 bcc.s loc_617BA move.b #$FF,d3 loc_617BA: ; CODE XREF: sub_616D8+DCj move.b d3,(byte_FFFFAE23).w move.w d1,(word_FFFFAE24).w loc_617C2: ; CODE XREF: sub_616D8+D4j move.b (byte_FFFFAE23).w,d0 cmp.b (DG_CRANK_KE_CRANK_SYNC_TEST_FAIL_LIMIT).l,d0 ; Number of crank synch not achieved failures within a sample sample size required to report a crank synch not achieved failure. ; Failures bcs.s loc_617E0 clr.b (byte_FFFFAE22).w clr.b (byte_FFFFAE23).w moveq #$42,d0 ; 'B' jsr sub_5F110 bra.s loc_617F8 ; --------------------------------------------------------------------------- loc_617E0: ; CODE XREF: sub_616D8+F4j cmp.b (DG_CRANK_KE_CRANK_SYNC_TEST_SAMPLE_LIMIT).l,d4 ; Number of crank synch not achieved samples required to report test passed. ; Samples bcs.s loc_617F8 clr.b (byte_FFFFAE22).w clr.b (byte_FFFFAE23).w moveq #$42,d0 ; 'B' jsr sub_5F0BE loc_617F8: ; CODE XREF: sub_616D8+1Aj ; sub_616D8+22j ... movem.l (sp)+,d0-d2 rts ; End of function sub_616D8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_617FE: ; CODE XREF: DoLoopG+1EEp var_10 = -$10 var_8 = -8 link a6,#-$10 movem.l d0/a0,-(sp) lea var_10(a6),a0 moveq #$64,d0 ; 'd' jsr sub_82046 move.l var_10(a6),d5 move.l var_8(a6),d3 add.w d5,d3 move.w d3,(word_FFFFAE26).w cmp.w (word_FFFFAE28).w,d3 beq.s loc_61832 move.b #1,(byte_FFFFAE14).w move.w d3,(word_FFFFAE28).w bra.s loc_61836 ; --------------------------------------------------------------------------- loc_61832: ; CODE XREF: sub_617FE+26j clr.b (byte_FFFFAE14).w loc_61836: ; CODE XREF: sub_617FE+32j movem.l (sp)+,d0/a0 unlk a6 rts ; End of function sub_617FE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6183E: ; CODE XREF: DoLoopC+34Ep var_10 = -$10 var_8 = -8 link a6,#-$10 movem.l d0-d2/d6-a0,-(sp) tst.b (byte_FFFFB37A).w beq.w loc_6195A move.b (ThrottleControlMode2?).w,d3 cmpi.b #2,d3 beq.s loc_61866 cmpi.b #1,d3 beq.s loc_61866 cmpi.b #3,d3 bne.w loc_6195A loc_61866: ; CODE XREF: sub_6183E+18j ; sub_6183E+1Ej move.w (EngineRPM_PID_000C___).w,d6 move.w d6,d7 move.l d6,d1 sub.w (word_FFFFAE2A).w,d1 bcc.s loc_61876 clr.w d1 loc_61876: ; CODE XREF: sub_6183E+34j move.w d7,(word_FFFFAE2A).w move.w (word_FFFFAE30).w,d2 addq.w #1,d2 bcc.s loc_61886 move.w #$FFFF,d2 loc_61886: ; CODE XREF: sub_6183E+42j move.w d2,(word_FFFFAE30).w cmp.w (DG_CRANK_KE_ACCELERATION_LIMIT_VALUE).l,d1 ; RPM changes greater than this value over a 12.5ms interval must be faulty. Gen 1E only. ; RPM bcs.s loc_618A2 move.w (word_FFFFAE2C).w,d3 addq.w #1,d3 bcc.s loc_6189E move.w #$FFFF,d3 loc_6189E: ; CODE XREF: sub_6183E+5Aj move.w d3,(word_FFFFAE2C).w loc_618A2: ; CODE XREF: sub_6183E+52j tst.w d6 bne.s loc_61900 move.w (word_FFFFAC88).w,d0 cmp.w (DG_CRANK_KE_MIN_RUNNING_MASS_AIRFLOW).l,d0 ; Minimum airflow that indicates the engine is rotating and should be running. Gen 1E only. ; Grams_Per_Second bcs.s loc_61900 lea var_10(a6),a0 moveq #$64,d0 ; 'd' jsr sub_82046 move.l var_10(a6),d3 move.l var_8(a6),d4 add.w d3,d4 cmp.w (word_FFFFAE32).w,d4 beq.s loc_618DE move.w (word_FFFFAE34).w,d3 addq.w #1,d3 bcc.s loc_618DA move.w #$FFFF,d3 loc_618DA: ; CODE XREF: sub_6183E+96j move.w d3,(word_FFFFAE34).w loc_618DE: ; CODE XREF: sub_6183E+8Ej move.w d4,(word_FFFFAE32).w move.w (word_FFFFAE34).w,d3 cmp.w (DG_CRANK_KE_MIN_CAM_EDGES_AFTER_CRK_LOSS).l,d3 ; If the crank sensor fails on a running engine, atleast this many cam edges must occur before setting a code. Gen IE only. ; Counts bls.s loc_61908 move.w (word_FFFFAE2E).w,d3 addq.w #1,d3 bcc.s loc_618FA move.w #$FFFF,d3 loc_618FA: ; CODE XREF: sub_6183E+B6j move.w d3,(word_FFFFAE2E).w bra.s loc_61908 ; --------------------------------------------------------------------------- loc_61900: ; CODE XREF: sub_6183E+66j ; sub_6183E+72j clr.w (word_FFFFAE2E).w clr.w (word_FFFFAE34).w loc_61908: ; CODE XREF: sub_6183E+AEj ; sub_6183E+C0j move.w (word_FFFFAE2C).w,d0 cmp.w (DG_CRANK_KE_CRANK_INTERMITTENT_FAIL_LIMIT).l,d0 ; Number of failed crank sensor tests for high acceleration out of a sample size that will report a failure. Gen 1E only. ; Failures bcs.s loc_61926 moveq #$42,d0 ; 'B' jsr sub_5F110 clr.w (word_FFFFAE2C).w loc_61920: ; CODE XREF: sub_6183E+11Aj clr.w (word_FFFFAE30).w bra.s loc_6195A ; --------------------------------------------------------------------------- loc_61926: ; CODE XREF: sub_6183E+D4j move.w (word_FFFFAE2E).w,d0 cmp.w (DG_CRANK_KE_LONG_INTERMITTENT_FAIL_LIMIT).l,d0 bcs.s loc_6193C moveq #$42,d0 ; 'B' jsr sub_5F110 bra.s loc_61954 ; --------------------------------------------------------------------------- loc_6193C: ; CODE XREF: sub_6183E+F2j cmp.w (DG_CRANK_KE_CRANK_INTERMITTENT_SAMPLES_LI).l,d2 ; Number of samples that make up a sample size for the crank sensor test. Gen 1E only. ; Samples bcs.s loc_6195A tst.w d7 beq.s loc_6195A moveq #$42,d0 ; 'B' jsr sub_5F0BE clr.w (word_FFFFAE2C).w loc_61954: ; CODE XREF: sub_6183E+FCj clr.w (word_FFFFAE2E).w bra.s loc_61920 ; --------------------------------------------------------------------------- loc_6195A: ; CODE XREF: sub_6183E+Cj ; sub_6183E+24j ... movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_6183E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_61962: ; CODE XREF: OS1:0002902Cp ; sub_755FA+D2p link a6,#-$10 move.l a0,-(sp) andi.w #$FF,d0 movea.l off_8A15C(d0.w*4),a2 jmp (a2) ; End of function sub_61962 ; --------------------------------------------------------------------------- loc_61976: ; DATA XREF: OS4:0008A174o clr.w (word_FFFFAE18).w clr.w (word_FFFFAE1C).w clr.b (byte_FFFFAE21).w clr.b (byte_FFFFAE20).w bra.s loc_619D6 ; --------------------------------------------------------------------------- loc_61988: ; DATA XREF: OS4:off_8A15Co clr.w (word_FFFFAE18).w clr.w (word_FFFFAE1C).w bra.s loc_619D6 ; --------------------------------------------------------------------------- loc_61992: ; DATA XREF: OS4:0008A164o bra.s loc_619F8 ; --------------------------------------------------------------------------- loc_61994: ; DATA XREF: OS4:0008A168o clr.w (word_FFFFAE18).w clr.w (word_FFFFAE1C).w clr.b (byte_FFFFAE22).w clr.b (byte_FFFFAE23).w clr.w (word_FFFFAE24).w clr.w (word_FFFFAE30).w clr.w (word_FFFFAE2C).w clr.w (word_FFFFAE2E).w clr.w (word_FFFFAE2A).w clr.b (byte_FFFFAE21).w clr.b (byte_FFFFAE20).w clr.w (word_FFFFAE34).w clr.w (word_FFFFAE32).w bra.s loc_619F8 ; --------------------------------------------------------------------------- loc_619CA: ; DATA XREF: OS4:0008A180o clr.b (4294946338).w clr.b (byte_FFFFAE23).w clr.w (word_FFFFAE24).w loc_619D6: ; CODE XREF: OS3:00061986j ; OS3:00061990j clr.b (byte_FFFFAE14).w lea -$10(a6),a0 moveq #$64,d0 ; 'd' jsr sub_82046 move.l -$10(a6),d5 move.l -8(a6),d3 add.w d5,d3 move.w d3,(word_FFFFAE26).w move.w d3,(word_FFFFAE28).w loc_619F8: ; CODE XREF: OS3:loc_61992j ; OS3:000619C8j ; DATA XREF: ... movea.l (sp)+,a0 unlk a6 rts ; =============== S U B R O U T I N E ======================================= sub_619FE: ; CODE XREF: OS1:00028F30p cmpi.b #6,d0 beq.s loc_61A30 cmpi.b #3,d0 bhi.s locret_61A3C beq.s loc_61A30 cmpi.b #1,d0 bls.s locret_61A3C tst.b (byte_FFFFB54A).w bne.s loc_61A28 clr.l (dword_FFFF8CD6).w clr.l (dword_FFFF8CDA).w clr.l (dword_FFFF8CDE).w clr.l (dword_FFFF8CE2).w loc_61A28: ; CODE XREF: sub_619FE+18j move.w #$F32,(word_FFFFB1AC).w bra.s locret_61A3C ; --------------------------------------------------------------------------- loc_61A30: ; CODE XREF: sub_619FE+4j sub_619FE+Cj clr.l (dword_FFFFB1BE).w clr.w (word_FFFFB1AE).w clr.w (word_FFFFB1B0).w locret_61A3C: ; CODE XREF: sub_619FE+Aj ; sub_619FE+12j ... rts ; End of function sub_619FE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_61A3E: ; CODE XREF: DoLoopG+1E2p var_7348 = -$7348 var_7344 = -$7344 var_7340 = -$7340 var_733C = -$733C var_4E6C = -$4E6C var_4E6B = -$4E6B var_4E6A = -$4E6A var_4E69 = -$4E69 var_4E60 = -$4E60 var_4 = -4 var_2 = -2 var_1 = -1 link a6,#-4 movem.l d0-d2/d6-a0,-(sp) move.w (word_FFFFB3E8).w,d3 cmp.w (word_FFFFB1AC).w,d3 bge.s loc_61A64 move.w (DG_ECTR_KE_ECTR_MAX_AMBIENT_TEMP).l,d4 ; The maximum value that can be assigned to OBD_Intake_Air_ Temperature to represent ambient temperature. ; Degrees_C cmp.w d4,d3 bge.s loc_61A60 move.w d3,(word_FFFFB1AC).w bra.s loc_61A64 ; --------------------------------------------------------------------------- loc_61A60: ; CODE XREF: sub_61A3E+1Aj move.w d4,(word_FFFFB1AC).w loc_61A64: ; CODE XREF: sub_61A3E+10j ; sub_61A3E+20j move.l (EngineRunTime).w,d3 bls.w loc_61E44 move.l (EngineRunTime).w,d3 tst.b (byte_FFFFB29E).w bne.s loc_61A9E move.w (word_FFFFB1AC).w,d5 cmp.w (DG_ECTR_KE_ECTR_MIN_REQUIRED_IAT).l,d5 ; Minimum intake air temperature value to enable the rationality test(s). ; Degrees_C blt.s loc_61A9E move.w (DG_ECTR_KE_ECTR_MAX_ENGINE_RUN_TIME).l,d5 ; Maximum engine run time that will enable the test. ; Seconds move.w #$A0,d2 ; '?' mulu.w d2,d5 cmp.l d5,d3 bhi.s loc_61A9E move.w (word_FFFF8242).w,d1 cmp.w (DG_ECTR_KE_ECTR_MAX_ETH_PERCENT).l,d1 ; The maximum fuel ethanol composition allowed to enable the test. ; Percent bls.s loc_61AA2 loc_61A9E: ; CODE XREF: sub_61A3E+36j ; sub_61A3E+42j ... moveq #1,d1 bra.s loc_61AA4 ; --------------------------------------------------------------------------- loc_61AA2: ; CODE XREF: sub_61A3E+5Ej clr.b d1 loc_61AA4: ; CODE XREF: sub_61A3E+62j tst.b (byte_FFFFB29F).w bne.s loc_61ABE move.w (DG_ECTR_KE_ECTR_MIN_ENGINE_RUN_TIME).l,d5 ; Minimum engine run time that will enable the test. ; Seconds move.w #$A0,d2 ; '?' mulu.w d2,d5 cmp.l d5,d3 bcs.s loc_61ABE moveq #1,d0 bra.s loc_61AC0 ; --------------------------------------------------------------------------- loc_61ABE: ; CODE XREF: sub_61A3E+6Aj ; sub_61A3E+7Aj clr.b d0 loc_61AC0: ; CODE XREF: sub_61A3E+7Ej move.b (DI_ECTR_KE_ECTR_NUM_OF_TEMP_TESTS).l,d5 ; The number of rationality tests or stabilized engine coolant temperature levels that will be checked. ; Unitless move.b d5,var_2(a6) move.b d5,d7 moveq #1,d3 move.l d3,d2 cmp.b d7,d2 bhi.s loc_61B44 loc_61AD4: ; CODE XREF: sub_61A3E+104j tst.b d1 bne.s loc_61AFA clr.l d2 move.b d3,d2 move.w (word_FFFFADB4).w,d4 cmp.w DI_ECTR_KV_ECTR_HEAT_LOSS_COEF(d2.w*2),d4 ; Used to calculate the heat loss portion of the minimum total air threshold. ; GramsOfAir bgt.s loc_61AFA move.l d3,d4 asl.b #2,d4 andi.w #$FF,d4 tst.b -$4E4E(d4.w) beq.s loc_61B0A loc_61AFA: ; CODE XREF: sub_61A3E+98j ; sub_61A3E+AAj move.l d3,d4 asl.b #2,d4 andi.w #$FF,d4 moveq #1,d2 move.b d2,$1C+var_4E6B(d4.w) loc_61B0A: ; CODE XREF: sub_61A3E+BAj tst.b d0 beq.s loc_61B30 move.l d3,d4 asl.b #2,d4 andi.w #$FF,d4 tst.b -$4E4F(d4.w) bne.s loc_61B30 move.l d3,d4 asl.b #2,d4 andi.w #$FF,d4 move.b #1,$1C+var_4E69(d4.w) bra.s loc_61B3E ; --------------------------------------------------------------------------- loc_61B30: ; CODE XREF: sub_61A3E+CEj ; sub_61A3E+DEj move.l d3,d4 asl.b #2,d4 andi.w #$FF,d4 clr.b -$4E4D(d4.w) loc_61B3E: ; CODE XREF: sub_61A3E+F0j addq.b #1,d3 cmp.b d3,d7 bcc.s loc_61AD4 loc_61B44: ; CODE XREF: sub_61A3E+94j move.w (word_FFFFAEBC).w,d3 cmp.w (DG_ECTR_KE_ECTR_MIN_VEHICLE_SPEED).l,d3 ; Minimum vehicle speed value to update the distance measurement. ; MPH bcs.s loc_61B6C mulu.w #9,d3 divu.w #$47F,d3 add.w (word_FFFFB1AE).w,d3 bcs.s loc_61B64 cmpi.w #$FFF0,d3 bls.s loc_61B68 loc_61B64: ; CODE XREF: sub_61A3E+11Ej move.w #$FFF0,d3 loc_61B68: ; CODE XREF: sub_61A3E+124j move.w d3,(word_FFFFB1AE).w loc_61B6C: ; CODE XREF: sub_61A3E+110j movea.w #0,a0 move.w a0,var_4(a6) move.w (word_FFFFAEF8).w,d6 tblu.w (DI_ECTR_KV_ECTR_ETH_COMPENSATION).l,d6 ; Modifies the total air threshold for variations in the ethanol composition. ; Mult_0to2 lsr.w #5,d6 cmpi.w #$FF,d6 bls.s loc_61B8C move.b #$FF,d6 loc_61B8C: ; CODE XREF: sub_61A3E+148j move.b d5,var_1(a6) moveq #1,d2 move.l d2,d1 cmp.b d5,d1 bhi.w loc_61C76 loc_61B9A: ; CODE XREF: sub_61A3E+234j move.w (word_FFFFADB4).w,d3 clr.l d7 move.b d2,d7 move.l d7,d1 mulu.w #$16,d1 lea DI_CASE_KE_CASE_ATTEMPTS_TO_LEARN_MAX(d1.l),a2 ; Maximum number of times the system will attempt to learn the crank errors in one key cycle. ; Counts movea.w #$A00,a3 cmpi.w #$800,d3 bge.s loc_61BC8 addi.w #$400,d3 muls.w #5,d3 divs.w #6,d3 bra.s loc_61BCC ; --------------------------------------------------------------------------- loc_61BC8: ; CODE XREF: sub_61A3E+17Aj move.w #$A00,d3 loc_61BCC: ; CODE XREF: sub_61A3E+188j tblu.w (a2),d3 clr.l d1 move.b d2,d1 clr.l d0 move.b byte_174E9(d1.w),d0 clr.l d1 move.b d2,d1 move.w DI_ECTR_KE_ECTR_NUM_OF_TEMP_TESTS(d1.w*2),d4 ; The number of rationality tests or stabilized engine coolant temperature levels that will be checked. ; Unitless sub.w (word_FFFFB1AC).w,d4 cmpi.w #$7FFF,d4 bhi.s loc_61BFA mulu.w #$14,d4 bra.s loc_61BFC ; --------------------------------------------------------------------------- loc_61BFA: ; CODE XREF: sub_61A3E+1B4j clr.l d4 loc_61BFC: ; CODE XREF: sub_61A3E+1BAj mulu.l d4,d1:d0 divu.l #$200,d1:d0 move.l (EngineRunTime).w,d5 mulu.l d5,d1:d0 divu.l #$A0,d1:d0 ; '?' bvs.s loc_61C22 cmpi.l #$FFFFFE00,d0 bls.s loc_61C28 loc_61C22: ; CODE XREF: sub_61A3E+1DAj move.l #$FFFFFE00,d0 loc_61C28: ; CODE XREF: sub_61A3E+1E2j clr.l d1 move.b d6,d1 andi.l #$FFFF,d3 asl.l #8,d3 add.l d3,d3 add.l d0,d3 bcs.s loc_61C42 cmpi.l #$FFFFFE00,d3 bls.s loc_61C48 loc_61C42: ; CODE XREF: sub_61A3E+1FAj move.l #$FFFFFE00,d3 loc_61C48: ; CODE XREF: sub_61A3E+202j mulu.l d3,d1 bvs.s loc_61C54 lsr.l #8,d1 lsr.l #8,d1 bra.s loc_61C58 ; --------------------------------------------------------------------------- loc_61C54: ; CODE XREF: sub_61A3E+20Ej move.w #$FFFF,d1 loc_61C58: ; CODE XREF: sub_61A3E+214j move.w d1,$1C+var_4E60(d7.w*2) move.w var_4(a6),d7 cmp.w d7,d1 bls.s loc_61C6A move.w d1,var_4(a6) loc_61C6A: ; CODE XREF: sub_61A3E+226j addq.b #1,d2 move.b var_1(a6),d7 cmp.b d2,d7 bcc.w loc_61B9A loc_61C76: ; CODE XREF: sub_61A3E+158j tst.b (byte_FFFFA93A).w beq.s loc_61C8E move.w (word_FFFFB1B0).w,d3 move.w (word_FFFFA0DC).w,d5 lsr.w #7,d5 sub.w d5,d3 bcc.s loc_61CD2 clr.w d3 bra.s loc_61CD2 ; --------------------------------------------------------------------------- loc_61C8E: ; CODE XREF: sub_61A3E+23Cj move.w (word_FFFFA0DC).w,d3 move.w (DG_ECTR_KE_ECTR_ENGINE_AIRFLOW_MAX).l,d4 ; Limit the value of engine airflow at this maximum. ; GmsPerSec cmp.w d4,d3 bcs.s loc_61CA2 move.w d4,(word_FFFFB1BC).w bra.s loc_61CB4 ; --------------------------------------------------------------------------- loc_61CA2: ; CODE XREF: sub_61A3E+25Cj cmp.w (DG_ECTR_KE_ECTR_ENGINE_AIRFLOW_MIN).l,d3 ; Airflow is set to zero, so that no airflow is accumulated below the mimimum. ; GmsPerSec bcc.s loc_61CB0 clr.w (word_FFFFB1BC).w bra.s loc_61CB4 ; --------------------------------------------------------------------------- loc_61CB0: ; CODE XREF: sub_61A3E+26Aj move.w d3,(word_FFFFB1BC).w loc_61CB4: ; CODE XREF: sub_61A3E+262j ; sub_61A3E+270j move.w (word_FFFFB1BC).w,d3 lsr.w #7,d3 add.w (word_FFFFB1B0).w,d3 bcc.s loc_61CC4 move.w #$FFFF,d3 loc_61CC4: ; CODE XREF: sub_61A3E+280j move.w var_4(a6),d7 cmp.w d3,d7 bcc.s loc_61CD2 move.w d7,(word_FFFFB1B0).w bra.s loc_61CD6 ; --------------------------------------------------------------------------- loc_61CD2: ; CODE XREF: sub_61A3E+24Aj ; sub_61A3E+24Ej ... move.w d3,(word_FFFFB1B0).w loc_61CD6: ; CODE XREF: sub_61A3E+292j move.b var_2(a6),d7 moveq #1,d1 move.l d1,d4 cmp.b d7,d4 bhi.s loc_61D46 loc_61CE2: ; CODE XREF: sub_61A3E+306j clr.l d0 move.b d1,d0 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w DI_ECTR_KE_ECTR_NUM_OF_TEMP_TESTS(d0.w*2),d3 ; The number of rationality tests or stabilized engine coolant temperature levels that will be checked. ; Unitless bge.s loc_61D40 move.l (EngineRunTime).w,d3 divu.w #$A0,d3 ; '?' bvc.s loc_61D02 move.w #$FFFF,d3 loc_61D02: ; CODE XREF: sub_61A3E+2BEj move.w d3,$1C+var_7340(d0.w*2) move.w (word_FFFFB1B0).w,$1C+var_733C(d0.w*2) move.w (word_FFFFB1AE).w,$1C+var_7344(d0.w*2) move.w (word_FFFFB1B0).w,d4 mulu.w #$5000,d4 move.l (EngineRunTime).w,d3 divu.l d3,d4 bvs.s loc_61D36 cmpi.l #$FFFF,d4 bhi.s loc_61D36 move.w d4,d3 bra.s loc_61D3A ; --------------------------------------------------------------------------- loc_61D36: ; CODE XREF: sub_61A3E+2EAj ; sub_61A3E+2F2j move.w #$FFFF,d3 loc_61D3A: ; CODE XREF: sub_61A3E+2F6j move.w d3,$1C+var_7348(d0.w*2) loc_61D40: ; CODE XREF: sub_61A3E+2B4j addq.b #1,d1 cmp.b d1,d7 bcc.s loc_61CE2 loc_61D46: ; CODE XREF: sub_61A3E+2A2j move.b var_2(a6),d4 move.b d4,var_4+1(a6) moveq #1,d6 move.l d6,d5 cmp.b d4,d5 bhi.w loc_61E44 loc_61D58: ; CODE XREF: sub_61A3E+402j move.l d6,d2 asl.b #2,d2 andi.w #$FF,d2 tst.b -$4E4D(d2.w) beq.w loc_61E2E clr.l d1 move.b d6,d1 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w DI_ECTR_KE_ECTR_NUM_OF_TEMP_TESTS(d1.w*2),d3 ; The number of rationality tests or stabilized engine coolant temperature levels that will be checked. ; Unitless blt.s loc_61DA4 move.w word_174B4(d1.w*2),d0 move.w d0,d3 cmpi.w #$14,d3 bne.s loc_61D94 bclr #2,(byte_FFFFB484).w bra.s loc_61D9A ; --------------------------------------------------------------------------- loc_61D94: ; CODE XREF: sub_61A3E+34Cj bclr #5,(byte_FFFFB485).w loc_61D9A: ; CODE XREF: sub_61A3E+354j jsr sub_5F0BE bra.w loc_61E24 ; --------------------------------------------------------------------------- loc_61DA4: ; CODE XREF: sub_61A3E+33Cj move.w (word_FFFFB1B0).w,d3 cmp.w word_FFFFB1BC(d1.w*2),d3 bcs.w loc_61E38 move.w word_174E4(d1.w*2),d3 cmp.w (word_FFFFB1AE).w,d3 bhi.s loc_61E24 move.w unk_FFFF8CD4(d1.w*2),d3 cmp.w word_174EE(d1.w*2),d3 bcs.s loc_61E24 clr.l d5 move.b d6,d5 move.b -$4E4F(d5.w),d3 addq.b #1,d3 bcc.s loc_61DE2 move.b #$FF,d3 loc_61DE2: ; CODE XREF: sub_61A3E+39Ej move.b d3,$1C+var_4E6B(d1.w) move.w word_174B4(d1.w*2),d0 move.w d0,d4 cmpi.w #$14,d4 bne.s loc_61E00 bset #2,(byte_FFFFB484).w bra.s loc_61E06 ; --------------------------------------------------------------------------- loc_61E00: ; CODE XREF: sub_61A3E+3B8j bset #5,(byte_FFFFB485).w loc_61E06: ; CODE XREF: sub_61A3E+3C0j cmp.b (DG_ECTR_KE_ECTR_TEST_FAIL_LIM).l,d3 ; Number of consecutive failures without a pass to report a failed rationality test. ; Failures bcs.s loc_61E38 jsr sub_5F110 moveq #1,d3 move.b d3,$1C+var_4E6A(d2.w) move.b d3,$1C+var_4E6C(d2.w) bra.s loc_61E38 ; --------------------------------------------------------------------------- loc_61E24: ; CODE XREF: sub_61A3E+362j ; sub_61A3E+380j ... move.b #1,$1C+var_4E6A(d2.w) bra.s loc_61E38 ; --------------------------------------------------------------------------- loc_61E2E: ; CODE XREF: sub_61A3E+328j clr.l d3 move.b d6,d3 clr.b -$4E4F(d3.w) loc_61E38: ; CODE XREF: sub_61A3E+370j ; sub_61A3E+3CEj ... addq.b #1,d6 move.b var_4+1(a6),d3 cmp.b d6,d3 bcc.w loc_61D58 loc_61E44: ; CODE XREF: sub_61A3E+2Aj ; sub_61A3E+316j movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_61A3E ; =============== S U B R O U T I N E ======================================= sub_61E4C: ; CODE XREF: DoLoopG+1DCp move.b (byte_FFFFB461).w,d3 or.b (byte_FFFFB462).w,d3 move.b d3,(byte_FFFFB29F).w btst #1,(byte_FFFF88C6).w bne.s loc_61EC0 btst #1,(byte_FFFF88C8).w bne.s loc_61EC0 btst #1,(byte_FFFF88CA).w bne.s loc_61EC0 btst #1,(byte_FFFF88D4).w bne.s loc_61EC0 btst #1,(byte_FFFF88D6).w bne.s loc_61EC0 btst #1,(byte_FFFF88DA).w bne.s loc_61EC0 btst #1,(byte_FFFF88DC).w bne.s loc_61EC0 btst #1,(byte_FFFF8998).w bne.s loc_61EC0 btst #1,(byte_FFFF899A).w bne.s loc_61EC0 btst #1,(byte_FFFF899C).w bne.s loc_61EC0 btst #1,(byte_FFFF88D8).w bne.s loc_61EC0 btst #1,(byte_FFFF8926).w bne.s loc_61EC0 btst #1,(byte_FFFF8928).w beq.s locret_61EC6 loc_61EC0: ; CODE XREF: sub_61E4C+12j ; sub_61E4C+1Aj ... move.b #1,(byte_FFFFB29E).w locret_61EC6: ; CODE XREF: sub_61E4C+72j rts ; End of function sub_61E4C ; =============== S U B R O U T I N E ======================================= sub_61EC8: ; CODE XREF: OS1:00028F28p cmpi.b #2,d0 rts ; End of function sub_61EC8 ; =============== S U B R O U T I N E ======================================= sub_61ECE: ; CODE XREF: DoLoopG+1D6p var_4D60 = -$4D60 var_4D5C = -$4D5C var_4D58 = -$4D58 moveq #1,d4 loc_61ED0: ; CODE XREF: sub_61ECE+2Aj clr.l d3 move.b d4,d3 move.w dword_FFFF8CDE+2(d3.w*2),var_4D60(d3.w*2) move.w dword_FFFF8CD6+2(d3.w*2),var_4D5C(d3.w*2) move.w dword_FFFF8CDA+2(d3.w*2),var_4D58(d3.w*2) addq.b #1,d4 cmpi.b #2,d4 bls.s loc_61ED0 move.w (word_FFFFB1AC).w,(word_FFFFB2A0).w rts ; End of function sub_61ECE ; =============== S U B R O U T I N E ======================================= sub_61F02: ; CODE XREF: sub_621D6+28p movem.l d0-d1,-(sp) clr.w d3 move.b (byte_FFFFB460).w,d3 move.w (word_FFFFB45E).w,d0 cmp.w DG_ECTS_KV_ECTS_SHORTED_LOW_THRESH(d3.w*2),d0 ; The threshold below which the coolant sensor is considered opened or shorted to ground. ; Percent bcc.s loc_61F8A bset #4,(byte_FFFFB200).w move.l (EngineRunTime).w,d3 move.w #$A0,d1 ; '?' divu.w d1,d3 bvs.s loc_61F32 cmpi.w #$FF,d3 bls.s loc_61F36 loc_61F32: ; CODE XREF: sub_61F02+28j move.b #$FF,d3 loc_61F36: ; CODE XREF: sub_61F02+2Ej cmp.b (DG_ECTS_KE_ECTS_ENG_RUN_TIME_LOW_MIN).l,d3 ; Minimum engine run time threshold to record a short to low fault. ; Seconds bhi.s loc_61F4A move.w (word_FFFFB45C).w,d3 cmp.w (DG_ECTS_KE_ECTS_SHORTED_LOW_IAT_MAX).l,d3 ; Maximum IAT to enable an ECT shorted low failure prior to achieving sufficient engine run time. ; Degrees C bgt.s loc_61FBE loc_61F4A: ; CODE XREF: sub_61F02+3Aj bset #7,(byte_FFFFB485).w move.w (word_FFFFB20E).w,d3 addq.w #1,d3 bcc.s loc_61F5C move.w #$FFFF,d3 loc_61F5C: ; CODE XREF: sub_61F02+54j move.w d3,(word_FFFFB20E).w move.w (word_FFFFB210).w,d3 addq.w #1,d3 bcc.s loc_61F6C move.w #$FFFF,d3 loc_61F6C: ; CODE XREF: sub_61F02+64j move.w d3,(word_FFFFB210).w btst #6,(byte_FFFFB200).w bne.s loc_61FBE move.w (word_FFFFB206).w,d3 addq.w #1,d3 bcc.s loc_61F84 move.w #$FFFF,d3 loc_61F84: ; CODE XREF: sub_61F02+7Cj move.w d3,(word_FFFFB206).w bra.s loc_61FAE ; --------------------------------------------------------------------------- loc_61F8A: ; CODE XREF: sub_61F02+16j bclr #7,(byte_FFFFB485).w bclr #4,(byte_FFFFB200).w move.w (word_FFFFB210).w,d3 addq.w #1,d3 bcc.s loc_61FA2 move.w #$FFFF,d3 loc_61FA2: ; CODE XREF: sub_61F02+9Aj move.w d3,(word_FFFFB210).w btst #6,(byte_FFFFB200).w bne.s loc_61FBE loc_61FAE: ; CODE XREF: sub_61F02+86j move.w (word_FFFFB208).w,d3 addq.w #1,d3 bcc.s loc_61FBA move.w #$FFFF,d3 loc_61FBA: ; CODE XREF: sub_61F02+B2j move.w d3,(word_FFFFB208).w loc_61FBE: ; CODE XREF: sub_61F02+46j ; sub_61F02+74j ... btst #6,(byte_FFFFB200).w bne.s loc_61FFE move.w (word_FFFFB206).w,d0 cmp.w (DG_ECTS_KE_ECTS_INT_SHORT_LOW_FAIL_LIM).l,d0 ; Number of failed intermittent short to low tests that will report an intermittent failure. ; Failures bcs.s loc_61FE6 move.w #$AC,d0 ; '?' jsr sub_5F110 loc_61FDC: ; CODE XREF: sub_61F02+FAj clr.w (word_FFFFB208).w clr.w (word_FFFFB206).w bra.s loc_61FFE ; --------------------------------------------------------------------------- loc_61FE6: ; CODE XREF: sub_61F02+CEj move.w (word_FFFFB208).w,d0 cmp.w (DG_ECTS_KE_ECTS_INT_SHORT_LOW_SMPL_LIM).l,d0 ; Number of intermittent short low tests that make up a sample size. ; Samples bcs.s loc_61FFE move.w #$AC,d0 ; '?' jsr sub_5F0BE bra.s loc_61FDC ; --------------------------------------------------------------------------- loc_61FFE: ; CODE XREF: sub_61F02+C2j ; sub_61F02+E2j ... move.w (word_FFFFB20E).w,d3 cmp.w (DG_ECTS_KE_ECTS_SHORT_LOW_FAIL_LIM).l,d3 ; Number of failed short to low tests that will report a failure. ; Failures bcs.s loc_62046 move.w (word_FFFF8D30).w,d3 beq.s loc_62016 cmp.w (word_FFFFB210).w,d3 bls.s loc_6201C loc_62016: ; CODE XREF: sub_61F02+10Cj move.w (word_FFFFB210).w,(word_FFFF8D30).w loc_6201C: ; CODE XREF: sub_61F02+112j moveq #$D,d0 jsr sub_5F110 move.w #$AC,d0 ; '?' jsr sub_5F0BE bset #6,(byte_FFFFB200).w clr.w (word_FFFFB208).w clr.w (word_FFFFB206).w loc_6203C: ; CODE XREF: sub_61F02+168j clr.w (word_FFFFB210).w clr.w (word_FFFFB20E).w bra.s loc_6206C ; --------------------------------------------------------------------------- loc_62046: ; CODE XREF: sub_61F02+106j move.w (word_FFFFB210).w,d0 cmp.w (DG_ECTS_KE_ECTS_SHORT_LOW_SMPL_LIM).l,d0 ; Number of short low tests that make up a sample size. ; Samples bcs.s loc_6206C cmp.w (word_FFFF8D2C).w,d3 bls.s loc_6205C move.w d3,(word_FFFF8D2C).w loc_6205C: ; CODE XREF: sub_61F02+154j moveq #$D,d0 jsr sub_5F0BE bclr #6,(byte_FFFFB200).w bra.s loc_6203C ; --------------------------------------------------------------------------- loc_6206C: ; CODE XREF: sub_61F02+142j ; sub_61F02+14Ej clr.w d3 move.b (byte_FFFFB460).w,d3 move.w (word_FFFFB45E).w,d0 cmp.w DG_ECTS_KV_ECTS_SHORTED_HIGH_THRESH(d3.w*2),d0 ; The threshold above which the coolant sensor is considered shorted to a positive voltage. ; Percent bls.s loc_620EE bset #5,(byte_FFFFB200).w move.l (EngineRunTime).w,d3 divu.w #$A0,d3 ; '?' bvs.s loc_62096 cmpi.w #$FF,d3 bls.s loc_6209A loc_62096: ; CODE XREF: sub_61F02+18Cj move.b #$FF,d3 loc_6209A: ; CODE XREF: sub_61F02+192j cmp.b (DG_ECTS_KE_ECTS_ENG_RUN_TIME_HIGH_MIN).l,d3 ; Minimum engine run time threshold to record a short to high fault. ; Seconds bhi.s loc_620AE move.w (word_FFFFB45C).w,d3 cmp.w (DG_ECTS_KE_ECTS_SHORTED_HIGH_IAT_MIN).l,d3 ; Minimum IAT to enable an ECT shorted high failure prior to achieving sufficient engine run time. ; Degrees C blt.s loc_62122 loc_620AE: ; CODE XREF: sub_61F02+19Ej bset #1,(byte_FFFFB484).w move.w (word_FFFFB20A).w,d3 addq.w #1,d3 bcc.s loc_620C0 move.w #$FFFF,d3 loc_620C0: ; CODE XREF: sub_61F02+1B8j move.w d3,(word_FFFFB20A).w move.w (word_FFFFB20C).w,d3 addq.w #1,d3 bcc.s loc_620D0 move.w #$FFFF,d3 loc_620D0: ; CODE XREF: sub_61F02+1C8j move.w d3,(word_FFFFB20C).w btst #7,(byte_FFFFB200).w bne.s loc_62122 move.w (word_FFFFB202).w,d3 addq.w #1,d3 bcc.s loc_620E8 move.w #$FFFF,d3 loc_620E8: ; CODE XREF: sub_61F02+1E0j move.w d3,(word_FFFFB202).w bra.s loc_62112 ; --------------------------------------------------------------------------- loc_620EE: ; CODE XREF: sub_61F02+17Cj bclr #1,(byte_FFFFB484).w bclr #5,(byte_FFFFB200).w move.w (word_FFFFB20C).w,d3 addq.w #1,d3 bcc.s loc_62106 move.w #$FFFF,d3 loc_62106: ; CODE XREF: sub_61F02+1FEj move.w d3,(word_FFFFB20C).w btst #7,(byte_FFFFB200).w bne.s loc_62122 loc_62112: ; CODE XREF: sub_61F02+1EAj move.w (word_FFFFB204).w,d3 addq.w #1,d3 bcc.s loc_6211E move.w #$FFFF,d3 loc_6211E: ; CODE XREF: sub_61F02+216j move.w d3,(word_FFFFB204).w loc_62122: ; CODE XREF: sub_61F02+1AAj ; sub_61F02+1D8j ... btst #7,(byte_FFFFB200).w bne.s loc_62162 move.w (word_FFFFB202).w,d0 cmp.w (DG_ECTS_KE_ECTS_INT_SHORT_HIGH_FAIL_LIM).l,d0 ; Number of failed intermittent short to high tests that will report an intermittent failure. ; Failures bcs.s loc_6214A move.w #$AD,d0 ; '?' jsr sub_5F110 loc_62140: ; CODE XREF: sub_61F02+25Ej clr.w (word_FFFFB204).w clr.w (word_FFFFB202).w bra.s loc_62162 ; --------------------------------------------------------------------------- loc_6214A: ; CODE XREF: sub_61F02+232j move.w (word_FFFFB204).w,d0 cmp.w (DG_ECTS_KE_ECTS_INT_SHORT_HIGH_SMPL_LIM).l,d0 ; Number of intermittent short high tests that make up a sample size. ; Samples bcs.s loc_62162 move.w #$AD,d0 ; '?' jsr sub_5F0BE bra.s loc_62140 ; --------------------------------------------------------------------------- loc_62162: ; CODE XREF: sub_61F02+226j ; sub_61F02+246j ... move.w (word_FFFFB20A).w,d3 cmp.w (DG_ECTS_KE_ECTS_SHORT_HIGH_FAIL_LIM).l,d3 ; Number of failed short to high tests that will report a failure. ; Failures bcs.s loc_621AA move.w (word_FFFF8D2E).w,d3 beq.s loc_6217A cmp.w (word_FFFFB20C).w,d3 bls.s loc_62180 loc_6217A: ; CODE XREF: sub_61F02+270j move.w (word_FFFFB20C).w,(word_FFFF8D2E).w loc_62180: ; CODE XREF: sub_61F02+276j moveq #$E,d0 jsr sub_5F110 move.w #$AD,d0 ; '?' jsr sub_5F0BE bset #7,(byte_FFFFB200).w clr.w (word_FFFFB204).w clr.w (word_FFFFB202).w loc_621A0: ; CODE XREF: sub_61F02+2CCj clr.w (word_FFFFB20C).w clr.w (word_FFFFB20A).w bra.s loc_621D0 ; --------------------------------------------------------------------------- loc_621AA: ; CODE XREF: sub_61F02+26Aj move.w (word_FFFFB20C).w,d0 cmp.w (DG_ECTS_KE_ECTS_SHORT_HIGH_SMPL_LIM).l,d0 ; Number of short high tests that make up a sample size. ; Samples bcs.s loc_621D0 cmp.w (word_FFFF8D2A).w,d3 bls.s loc_621C0 move.w d3,(word_FFFF8D2A).w loc_621C0: ; CODE XREF: sub_61F02+2B8j moveq #$E,d0 jsr sub_5F0BE bclr #7,(byte_FFFFB200).w bra.s loc_621A0 ; --------------------------------------------------------------------------- loc_621D0: ; CODE XREF: sub_61F02+2A6j ; sub_61F02+2B2j movem.l (sp)+,d0-d1 rts ; End of function sub_61F02 ; =============== S U B R O U T I N E ======================================= sub_621D6: ; CODE XREF: OS3:0007B820p ; GetCoolantTemperature+3Ep moveq #1,d3 btst #0,(byte_FFFFBF33).w bne.s loc_621E6 clr.b (byte_FFFFB460).w bra.s loc_621EA ; --------------------------------------------------------------------------- loc_621E6: ; CODE XREF: sub_621D6+8j move.b d3,(byte_FFFFB460).w loc_621EA: ; CODE XREF: sub_621D6+Ej move.w (word_FFFFADAE).w,d3 mulu.w #5,d3 lsr.l #6,d3 move.w d3,(word_FFFFB45E).w move.w (word_FFFFB2A0).w,(word_FFFFB45C).w jsr sub_61F02 move.b #1,(byte_FFFFB463).w btst #5,(byte_FFFFB200).w sne d3 neg.b d3 move.b d3,(byte_FFFFB461).w btst #4,(byte_FFFFB200).w sne d3 neg.b d3 move.b d3,(byte_FFFFB462).w rts ; End of function sub_621D6 ; =============== S U B R O U T I N E ======================================= sub_62228: ; CODE XREF: OS1:000290D4p ; sub_755FA+42p cmpi.b #6,d0 beq.s loc_622A6 cmpi.b #3,d0 bhi.w locret_622DC beq.s loc_622A6 cmpi.b #1,d0 bls.w locret_622DC tst.b (byte_FFFFB54A).w bne.s loc_62270 clr.b (byte_FFFF8CFB).w clr.b (byte_FFFF8CF8).w clr.b (byte_FFFF8CF9).w clr.w (word_FFFF8CFC).w clr.b (byte_FFFF8CFA).w move.w #$DC00,(word_FFFF8CF4).w clr.b (byte_FFFF8CF7).w clr.b (byte_FFFF8CF6).w move.w (DG_EGRQ_KE_EGRF_EWMA_NONFAIL_THRESH).l,(word_FFFF8CF2).w ; Threshold above which the diagnostic is considered failing if the diagnostic is currently not indicating a failure. ; kPa loc_62270: ; CODE XREF: sub_62228+1Cj move.w (DG_EGRQ_KE_EGRF_COMPLETE_INTERVAL).l,(word_FFFFAA14).w ; Interval between test control assertions, when the previous test was completed. ; Seconds move.b (DG_EGRQ_KE_EGRF_BASE_ON_TIME_COUNTER).l,(byte_FFFFAA0C).w ; Initial number of execution loops that the valve will be commanded open, after a powerup or a non-volatile init. ; Counts move.w #$5400,(word_FFFFAA28).w clr.w (word_FFFFAA22).w move.w #$F800,(word_FFFFAA20).w clr.w (word_FFFFAA24).w move.w #$7FFF,(word_FFFFAA2A).w movea.w #$FFFF,a3 move.w a3,(word_FFFFAA2C).w move.w a3,(word_FFFFAA26).w loc_622A6: ; CODE XREF: sub_62228+4j sub_62228+Ej move.w (DI_EGRQ_KE_EGRF_RPM_OFFSET).l,d3 ; Used in defining the RPM range for KA_EGRF_StRPM_MAP_ Change_Thresh and KA_EGRF_MnRPM_MAP_Change_Thresh. ; RPM subi.w #$A00,d3 bcc.s loc_622B4 clr.w d3 loc_622B4: ; CODE XREF: sub_62228+88j move.w d3,(word_FFFFAA30).w move.w (DI_EGRQ_KE_EGRF_RPM_OFFSET).l,d3 ; Used in defining the RPM range for KA_EGRF_StRPM_MAP_ Change_Thresh and KA_EGRF_MnRPM_MAP_Change_Thresh. ; RPM addi.w #$2000,d3 bcc.s loc_622C8 move.w #$FFFF,d3 loc_622C8: ; CODE XREF: sub_62228+9Aj move.w d3,(word_FFFFAA36).w move.w #$1000,(word_FFFFAA34).w move.w #$2A00,d3 lsr.w #1,d3 move.w d3,(word_FFFFAA32).w locret_622DC: ; CODE XREF: sub_62228+Aj ; sub_62228+14j rts ; End of function sub_62228 ; =============== S U B R O U T I N E ======================================= sub_622DE: ; CODE XREF: DoLoopC+290p bset #2,(byte_FFFFAA08).w rts ; End of function sub_622DE ; =============== S U B R O U T I N E ======================================= sub_622E6: ; CODE XREF: sub_75370+18Cp bset #3,(byte_FFFFAA08).w rts ; End of function sub_622E6 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_622EE: ; CODE XREF: sub_62B70+330p var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d2/d6-a1/a4,-(sp) btst #3,(byte_FFFFAA08).w beq.s loc_6233A move.b (DG_EGRQ_KE_EGRF_CODE_CLEAR_ON_TIME_CTR).l,(byte_FFFFAA0C).w ; Initial number of execution loops that the valve will be commanded open, after an ALDL code clear. ; Counts clr.w (word_FFFF8CFC).w move.w #$DC00,(word_FFFF8CF4).w clr.b (byte_FFFF8CF7).w clr.b (byte_FFFF8CF8).w clr.b (byte_FFFF8CF9).w clr.b (byte_FFFFAA11).w move.w (DG_EGRQ_KE_EGRF_EWMA_NONFAIL_THRESH).l,(word_FFFF8CF2).w ; Threshold above which the diagnostic is considered failing if the diagnostic is currently not indicating a failure. ; kPa clr.b (byte_FFFF8CF6).w clr.b (byte_FFFF8CFB).w clr.b (byte_FFFF8CFA).w bclr #3,(byte_FFFFAA08).w loc_6233A: ; CODE XREF: sub_622EE+Ej tst.b (byte_FFFFB370).w beq.s loc_6234E cmpi.b #$A,(byte_FFFF9060).w bne.s loc_6234E move.w (word_FFFF9050).w,d3 bra.s loc_62352 ; --------------------------------------------------------------------------- loc_6234E: ; CODE XREF: sub_622EE+50j ; sub_622EE+58j move.w (word_FFFFAB66).w,d3 loc_62352: ; CODE XREF: sub_622EE+5Ej cmp.w (DG_EGRQ_KE_EGRF_MAXIMUM_TPS).l,d3 ; TPS must be below this value to enable the flow test. ; Percent bhi.s loc_6236C move.w (word_FFFFAA18).w,d3 addq.w #1,d3 bcc.s loc_62366 move.w #$FFFF,d3 loc_62366: ; CODE XREF: sub_622EE+72j move.w d3,(word_FFFFAA18).w bra.s loc_62370 ; --------------------------------------------------------------------------- loc_6236C: ; CODE XREF: sub_622EE+6Aj clr.w (word_FFFFAA18).w loc_62370: ; CODE XREF: sub_622EE+7Cj bclr #7,(byte_FFFFAA08).w move.w (word_FFFF82D2).w,d3 asl.w #2,d3 cmp.w (DG_EGRQ_KE_EGRF_BARO_MINIMUM).l,d3 ; Minimum barometric pressure below which test may is not run. ; kPa bcs.s loc_623F0 move.b (byte_FFFFAA09).w,d3 cmpi.b #6,d3 beq.s loc_623A6 cmpi.b #5,d3 beq.s loc_623A6 tst.b (byte_FFFFAEAB).w beq.s loc_623F0 move.w (word_FFFFAA18).w,d4 cmp.w (DG_EGRQ_KE_EGRF_TEST_ENABLE_DELAY).l,d4 ; Length of time the throttle must be virtually closed before a flow test is allowed. ; Seconds bcs.s loc_623F0 loc_623A6: ; CODE XREF: sub_622EE+9Ej ; sub_622EE+A4j move.b (DG_EGRQ_KE_EGRF_SAMPLES_AFTER_STEP).l,d4 cmp.b (byte_FFFF8CFB).w,d4 bhi.s loc_623BA clr.b (byte_FFFF8CF7).w clr.b (byte_FFFF8CFB).w loc_623BA: ; CODE XREF: sub_622EE+C2j move.b (byte_FFFF8CFA).w,d3 cmp.b (DG_EGRQ_KE_EGRF_SAMPLES_AFTER_RESET).l,d3 bcs.s loc_623EA move.b (byte_FFFFAA0B).w,d3 cmp.b (DG_EGRQ_KE_EGRF_SAMPLES_PER_TRIP).l,d3 ; Maximum number of samples per trip. ; Counts bcs.s loc_623EA tst.b (byte_FFFF8CF7).w beq.s loc_623F0 cmp.b (byte_FFFF8CFB).w,d4 bls.s loc_623F0 move.b (byte_FFFFAA11).w,d3 cmp.b (DG_EGRQ_KE_EGRF_STEP_SAMPLES_PER_TRIP).l,d3 ; Maximum number of samples per trip after a step change. ; Counts bcc.s loc_623F0 loc_623EA: ; CODE XREF: sub_622EE+D6j ; sub_622EE+E2j bset #7,(byte_FFFFAA08).w loc_623F0: ; CODE XREF: sub_622EE+94j ; sub_622EE+AAj ... move.b (byte_FFFFA93A).w,d3 btst #7,(byte_FFFFAA08).w beq.s loc_62416 cmpi.b #1,(DG_EGRQ_KE_EGRF_DFCO_ENABLE).l ; Condition for enabling flow mode test based on decel fuel cut off state. ; Enum bne.s loc_6240A tst.b d3 beq.s loc_62416 loc_6240A: ; CODE XREF: sub_622EE+116j tst.b (DG_EGRQ_KE_EGRF_DFCO_ENABLE).l ; Condition for enabling flow mode test based on decel fuel cut off state. ; Enum bne.s loc_6241E tst.b d3 beq.s loc_6241E loc_62416: ; CODE XREF: sub_622EE+10Cj ; sub_622EE+11Aj bclr #6,(byte_FFFFAA08).w bra.s loc_62424 ; --------------------------------------------------------------------------- loc_6241E: ; CODE XREF: sub_622EE+122j ; sub_622EE+126j bset #6,(byte_FFFFAA08).w loc_62424: ; CODE XREF: sub_622EE+12Ej move.b (byte_FFFFAA0D).w,d3 moveq #2,d7 cmp.b d3,d7 bne.s loc_6243C move.w (DG_EGRQ_KE_EGRF_COMPLETE_INTERVAL).l,(word_FFFFAA14).w ; Interval between test control assertions, when the previous test was completed. ; Seconds loc_62436: ; CODE XREF: sub_622EE+15Cj clr.w (word_FFFFAA1A).w bra.s loc_6244C ; --------------------------------------------------------------------------- loc_6243C: ; CODE XREF: sub_622EE+13Ej moveq #1,d6 cmp.b d3,d6 bne.s loc_6244C move.w (DG_EGRQ_KE_EGRF_ABORT_INTERVAL).l,(word_FFFFAA14).w ; Interval between test control assertions when the previous test was aborted during the intrusive period. ; Seconds bra.s loc_62436 ; --------------------------------------------------------------------------- loc_6244C: ; CODE XREF: sub_622EE+14Cj ; sub_622EE+152j move.w (word_FFFFAA1A).w,d3 cmp.w (word_FFFFAA14).w,d3 bcs.s loc_6245E bset #5,(byte_FFFFAA08).w bra.s loc_62470 ; --------------------------------------------------------------------------- loc_6245E: ; CODE XREF: sub_622EE+166j addq.w #1,d3 bcc.s loc_62466 move.w #$FFFF,d3 loc_62466: ; CODE XREF: sub_622EE+172j move.w d3,(word_FFFFAA1A).w bclr #5,(byte_FFFFAA08).w loc_62470: ; CODE XREF: sub_622EE+16Ej clr.b (byte_FFFFAA0D).w move.b (byte_FFFFAEAA).w,d3 btst #5,(byte_FFFFAA08).w beq.s loc_624C0 btst #4,(byte_FFFFAA08).w beq.s loc_6249C tst.b d3 beq.s loc_62494 btst #6,(byte_FFFFAA08).w bne.s loc_624C4 loc_62494: ; CODE XREF: sub_622EE+19Cj ; sub_622EE+1C0j move.b #7,(byte_FFFFAA09).w bra.s loc_624C4 ; --------------------------------------------------------------------------- loc_6249C: ; CODE XREF: sub_622EE+198j tst.b d3 beq.s loc_624A8 btst #6,(byte_FFFFAA08).w bne.s loc_624B2 loc_624A8: ; CODE XREF: sub_622EE+1B0j cmpi.b #4,(byte_FFFFAA09).w beq.s loc_62494 bra.s loc_624C0 ; --------------------------------------------------------------------------- loc_624B2: ; CODE XREF: sub_622EE+1B8j tst.b (byte_FFFFAA09).w bne.s loc_624C4 move.b #1,(byte_FFFFAA09).w bra.s loc_624C4 ; --------------------------------------------------------------------------- loc_624C0: ; CODE XREF: sub_622EE+190j ; sub_622EE+1C2j clr.b (byte_FFFFAA09).w loc_624C4: ; CODE XREF: sub_622EE+1A4j ; sub_622EE+1ACj ... moveq #1,d6 cmp.b (byte_FFFFAA09).w,d6 bne.s loc_6250C move.w #$5400,(word_FFFFAA28).w clr.w (word_FFFFAA22).w movea.w #$FFFF,a4 move.w a4,(word_FFFFAA2C).w move.w a4,(word_FFFFAA26).w move.w #$F800,(word_FFFFAA20).w clr.w (word_FFFFAA24).w move.w #$7FFF,(word_FFFFAA2A).w clr.b (byte_FFFFAA10).w clr.b (byte_FFFFAA0F).w clr.b (byte_FFFFAA0A).w clr.w (word_FFFFAA2E).w bclr #2,(byte_FFFFAA08).w move.b d7,(byte_FFFFAA09).w loc_6250C: ; CODE XREF: sub_622EE+1DCj cmp.b (byte_FFFFAA09).w,d7 bne.w loc_625F4 move.b (byte_FFFFAA10).w,d3 cmp.b (DI_EGRQ_KE_EGRF_STARTED_TIME).l,d3 ; Amount of time the test is in the TEST_STARTED mode. ; Seconds bcc.s loc_6252E addq.b #1,d3 bcc.s loc_62528 move.b #$FF,d3 loc_62528: ; CODE XREF: sub_622EE+234j move.b d3,(byte_FFFFAA10).w bra.s loc_6253A ; --------------------------------------------------------------------------- loc_6252E: ; CODE XREF: sub_622EE+230j move.b #3,(byte_FFFFAA09).w bset #4,(byte_FFFFAA08).w loc_6253A: ; CODE XREF: sub_622EE+23Ej move.w (word_FFFFB294).w,d3 asl.w #2,d3 cmp.w (word_FFFFAA28).w,d3 bcc.s loc_6254A move.w d3,(word_FFFFAA28).w loc_6254A: ; CODE XREF: sub_622EE+256j cmp.w (word_FFFFAA22).w,d3 bls.s loc_62554 move.w d3,(word_FFFFAA22).w loc_62554: ; CODE XREF: sub_622EE+260j move.w (word_FFFFAA22).w,d0 sub.w (word_FFFFAA28).w,d0 bcc.s loc_62560 clr.w d0 loc_62560: ; CODE XREF: sub_622EE+26Ej move.w (EngineRPM_PID_000C___).w,d1 cmp.w (word_FFFFAA2C).w,d1 bcc.s loc_6256E move.w d1,(word_FFFFAA2C).w loc_6256E: ; CODE XREF: sub_622EE+27Aj move.w (word_FFFFB294).w,d3 asl.w #2,d3 move.l #$2799800,d4 move.w (word_FFFF82D2).w,d5 asl.w #2,d5 divu.w d5,d4 bvs.s loc_6258A cmpi.w #$1000,d4 bls.s loc_6258E loc_6258A: ; CODE XREF: sub_622EE+294j move.w #$1000,d4 loc_6258E: ; CODE XREF: sub_622EE+29Aj mulu.w d4,d3 lsr.l #8,d3 lsr.l #3,d3 cmpi.w #$5400,d3 bls.s loc_6259E move.w #$5400,d3 loc_6259E: ; CODE XREF: sub_622EE+2AAj move.w d3,(word_FFFFAE9A).w clr.b d4 clr.b d2 cmp.b d2,d4 clr.b d4 move.w (word_FFFFA258).w,d5 cmp.w (DG_EGRQ_KE_EGRF_START_MAX_POSITION).l,d5 ; Maximum EGR starting position below which the valve is considered closed. ; Percent bhi.s loc_625E6 cmp.w (DG_EGRQ_KE_EGRF_MINIMUM_RPM).l,d1 ; Low limit of engine speed range to enable the flow test. ; RPM bcs.s loc_625E6 cmp.w (DG_EGRQ_KE_EGRF_MAXIMUM_RPM).l,d1 ; High limit of engine speed range to enable the flow test. ; RPM bhi.s loc_625E6 cmp.w (DG_EGRQ_KE_EGRF_MAX_DELTA_MAP).l,d0 ; Maximum range that MAP can fluctuate during test start period. ; kPa bhi.s loc_625E6 cmp.b (DG_EGRQ_KE_EGRF_AIRFLOW_DIFFERENCE).l,d4 ; Maximum allowable difference between commanded and actual airflow during the TEST_STARTED mode. ; Grams/Sec bhi.s loc_625E6 cmp.w (DG_EGRQ_KE_EGRF_ALTITUDE_COMP_MAP_LOW).l,d3 ; Lower limit of range below which flow test is not run. ; kPa bcs.s loc_625E6 cmp.w (DG_EGRQ_KE_EGRF_ALTITUDE_COMP_MAP_HIGH).l,d3 ; Upper limit of range above which flow test is not run. ; kPa bls.s loc_625F4 loc_625E6: ; CODE XREF: sub_622EE+2C6j ; sub_622EE+2CEj ... clr.b (byte_FFFFAA09).w clr.b (byte_FFFFAA0D).w bclr #4,(byte_FFFFAA08).w loc_625F4: ; CODE XREF: sub_622EE+222j ; sub_622EE+2F6j moveq #3,d2 cmp.b (byte_FFFFAA09).w,d2 bne.s loc_62620 move.b (byte_FFFFAA0A).w,d3 cmp.b (byte_FFFFAA0C).w,d3 bcc.s loc_62614 addq.b #1,d3 bcc.s loc_6260E move.b #$FF,d3 loc_6260E: ; CODE XREF: sub_622EE+31Aj move.b d3,(byte_FFFFAA0A).w bra.s loc_62620 ; --------------------------------------------------------------------------- loc_62614: ; CODE XREF: sub_622EE+316j bclr #4,(byte_FFFFAA08).w move.b #4,(byte_FFFFAA09).w loc_62620: ; CODE XREF: sub_622EE+30Cj ; sub_622EE+324j move.w (word_FFFFAE9C).w,d0 move.b (byte_FFFFAA09).w,d3 cmpi.b #4,d3 beq.s loc_62634 cmp.b d3,d2 bne.w loc_627DA loc_62634: ; CODE XREF: sub_622EE+33Ej move.w (word_FFFFB294).w,d3 asl.w #2,d3 sub.w (word_FFFFAA22).w,d3 cmpi.w #$2400,d3 bgt.s loc_6264C cmpi.w #$DC00,d3 blt.s loc_62652 bra.s loc_62656 ; --------------------------------------------------------------------------- loc_6264C: ; CODE XREF: sub_622EE+354j move.w #$2400,d3 bra.s loc_62656 ; --------------------------------------------------------------------------- loc_62652: ; CODE XREF: sub_622EE+35Aj move.w #$DC00,d3 loc_62656: ; CODE XREF: sub_622EE+35Cj ; sub_622EE+362j cmp.w (word_FFFFAA20).w,d3 ble.s loc_62660 move.w d3,(word_FFFFAA20).w loc_62660: ; CODE XREF: sub_622EE+36Cj move.w (word_FFFFAEBE).w,d3 cmp.w (word_FFFFAA24).w,d3 bls.s loc_6266E move.w d3,(word_FFFFAA24).w loc_6266E: ; CODE XREF: sub_622EE+37Aj cmp.w (word_FFFFAA2A).w,d3 bcc.s loc_62678 move.w d3,(word_FFFFAA2A).w loc_62678: ; CODE XREF: sub_622EE+384j move.w (EngineRPM_PID_000C___).w,d3 cmp.w (word_FFFFAA26).w,d3 bcc.s loc_62686 move.w d3,(word_FFFFAA26).w loc_62686: ; CODE XREF: sub_622EE+392j move.w (word_FFFFAA2C).w,d4 sub.w (word_FFFFAA26).w,d4 bcc.s loc_62692 clr.w d4 loc_62692: ; CODE XREF: sub_622EE+3A0j cmp.w (word_FFFFAA2E).w,d4 bls.s loc_6269C move.w d4,(word_FFFFAA2E).w loc_6269C: ; CODE XREF: sub_622EE+3A8j move.w (word_FFFFAA24).w,d4 sub.w (word_FFFFAA2A).w,d4 bcc.s loc_626A8 clr.w d4 loc_626A8: ; CODE XREF: sub_622EE+3B6j sub.w (word_FFFFAA2C).w,d3 bcc.s loc_626B0 clr.w d3 loc_626B0: ; CODE XREF: sub_622EE+3BEj cmp.w (DG_EGRQ_KE_EGRF_MAX_DELTA_MPH).l,d4 ; Max range that vehicle speed can fluctuate during the intrusive portions of the test ; MPH bhi.s loc_626CC cmp.w (DG_EGRQ_KE_EGRF_MAX_POS_RPM_CHANGE).l,d3 ; Max positive change in engine speed allowed during the intrusive portions of the test ; RPM bhi.s loc_626CC move.w (word_FFFFAA2E).w,d3 cmp.w (DG_EGRQ_KE_EGRF_MAX_NEG_RPM_CHANGE).l,d3 ; Max negative change in engine speed allowed during the intrusive portions of the test. ; RPM bls.s loc_626D2 loc_626CC: ; CODE XREF: sub_622EE+3C8j ; sub_622EE+3D0j move.b #7,(byte_FFFFAA09).w loc_626D2: ; CODE XREF: sub_622EE+3DCj move.b (byte_FFFFAA0F).w,d3 cmp.b (DG_EGRQ_KE_EGRF_SAMPLE_TIME).l,d3 ; Amount of time the test is in the SAMPLE_CALCULATION mode. ; Seconds bcc.s loc_626EE addq.b #1,d3 bcc.s loc_626E6 move.b #$FF,d3 loc_626E6: ; CODE XREF: sub_622EE+3F2j move.b d3,(byte_FFFFAA0F).w bra.w loc_627DA ; --------------------------------------------------------------------------- loc_626EE: ; CODE XREF: sub_622EE+3EEj cmp.w (DG_EGRQ_KE_EGRF_OVERSHOOT_POSITION).l,d0 ; Position above which the test will decrement the duty cycle on-time. ; Percent bls.s loc_62734 move.b (byte_FFFFAA0E).w,d3 addq.b #1,d3 bcc.s loc_62702 move.b #$FF,d3 loc_62702: ; CODE XREF: sub_622EE+40Ej move.b d3,(byte_FFFFAA0E).w cmp.b (DG_EGRQ_KE_EGRF_OVER_UNDER_COUNT).l,d3 ; Number of consecutive overshoot or undershoot events necessary to modify the duty cycle on-time. ; Counts bcs.s loc_6272C move.b (byte_FFFFAA0C).w,d3 cmp.b (DG_EGRQ_KE_EGRF_MIN_ON_TIME_COUNTER).l,d3 ; Minimum number of execution loops that the valve will be commanded open, ; Counts bls.s loc_6272C move.b (byte_FFFFAA0C).w,d3 subq.b #1,d3 bcc.s loc_62724 clr.b d3 loc_62724: ; CODE XREF: sub_622EE+432j move.b d3,(byte_FFFFAA0C).w clr.b (byte_FFFFAA0E).w loc_6272C: ; CODE XREF: sub_622EE+41Ej ; sub_622EE+42Aj move.b #7,(byte_FFFFAA09).w bra.s loc_62738 ; --------------------------------------------------------------------------- loc_62734: ; CODE XREF: sub_622EE+406j clr.b (byte_FFFFAA0E).w loc_62738: ; CODE XREF: sub_622EE+444j cmp.w (DG_EGRQ_KE_EGRF_UNDERSHOOT_POSITION).l,d0 ; Position below which the test will increment the duty cycle on-time. ; Percent bcc.s loc_62780 move.b (byte_FFFFAA12).w,d3 addq.b #1,d3 bcc.s loc_6274C move.b #$FF,d3 loc_6274C: ; CODE XREF: sub_622EE+458j move.b d3,(byte_FFFFAA12).w cmp.b (DG_EGRQ_KE_EGRF_OVER_UNDER_COUNT).l,d3 ; Number of consecutive overshoot or undershoot events necessary to modify the duty cycle on-time. ; Counts bcs.s loc_62778 move.b (byte_FFFFAA0C).w,d3 cmp.b (DG_EGRQ_KE_EGRF_MAX_ON_TIME_COUNTER).l,d3 ; Maximum number of execution loops the valve will be commanded open. ; Counts bcc.s loc_62778 move.b (byte_FFFFAA0C).w,d3 addq.b #1,d3 bcc.s loc_62770 move.b #$FF,d3 loc_62770: ; CODE XREF: sub_622EE+47Cj move.b d3,(byte_FFFFAA0C).w clr.b (byte_FFFFAA12).w loc_62778: ; CODE XREF: sub_622EE+468j ; sub_622EE+474j move.b #7,(byte_FFFFAA09).w bra.s loc_62784 ; --------------------------------------------------------------------------- loc_62780: ; CODE XREF: sub_622EE+450j clr.b (byte_FFFFAA12).w loc_62784: ; CODE XREF: sub_622EE+490j cmpi.b #7,(byte_FFFFAA09).w beq.s loc_627DA tst.b (byte_FFFFA80F).w bne.s loc_627D0 btst #2,(byte_FFFF9A16).w beq.s loc_627D0 tst.b (byte_FFFFB473).w bne.s loc_627D0 btst #2,(byte_FFFFAA08).w bne.s loc_627D0 move.b (byte_FFFFAA0B).w,d3 addq.b #1,d3 bcc.s loc_627B4 move.b #$FF,d3 loc_627B4: ; CODE XREF: sub_622EE+4C0j move.b d3,(byte_FFFFAA0B).w move.b (byte_FFFF8CFA).w,d3 addq.b #1,d3 bcc.s loc_627C4 move.b #$FF,d3 loc_627C4: ; CODE XREF: sub_622EE+4D0j move.b d3,(byte_FFFF8CFA).w move.b #5,(byte_FFFFAA09).w bra.s loc_627DA ; --------------------------------------------------------------------------- loc_627D0: ; CODE XREF: sub_622EE+4A2j ; sub_622EE+4AAj ... move.b #6,(byte_FFFFAA09).w move.b d7,(byte_FFFFAA0D).w loc_627DA: ; CODE XREF: sub_622EE+342j ; sub_622EE+3FCj ... cmpi.b #7,(byte_FFFFAA09).w bne.s loc_627F0 move.b d6,(byte_FFFFAA0D).w bclr #4,(byte_FFFFAA08).w clr.b (byte_FFFFAA09).w loc_627F0: ; CODE XREF: sub_622EE+4F2j moveq #5,d1 cmp.b (byte_FFFFAA09).w,d1 bne.w loc_62B24 move.b (DG_EGRQ_KE_EGRF_MIN_ON_TIME_COUNTER).l,d4 ; Minimum number of execution loops that the valve will be commanded open, ; Counts move.b (byte_FFFFAA0C).w,d3 sub.b d4,d3 bcc.s loc_6280A clr.b d3 loc_6280A: ; CODE XREF: sub_622EE+518j cmpi.b #$10,d3 bcc.s loc_62818 andi.w #$FF,d3 asl.w #8,d3 bra.s loc_6281C ; --------------------------------------------------------------------------- loc_62818: ; CODE XREF: sub_622EE+520j move.w #$1000,d3 loc_6281C: ; CODE XREF: sub_622EE+528j tblu.b (DG_EGRQ_KV_EGRF_ON_TIME_COMPENSATION).l,d3 ; Compensation factor to reduce the delta MAP for long on-times. ; Unitless move.w (word_FFFFAE9C).w,d4 clr.w d5 cmpi.w #$A00,d4 bcc.s loc_62834 move.l d5,d4 bra.s loc_6283C ; --------------------------------------------------------------------------- loc_62834: ; CODE XREF: sub_622EE+540j mulu.w d1,d4 lsr.w #1,d4 subi.w #$1900,d4 loc_6283C: ; CODE XREF: sub_622EE+544j tblu.b (DG_EGRQ_KV_EGRF_ACHIEVED_POS_COMP).l,d4 ; Compensation factor to reduce the delta MAP for high achieved positions. ; Unitless move.w (word_FFFF8CFC).w,d5 clr.w d0 cmpi.w #$FE66,d5 bge.s loc_62854 move.l d0,d5 bra.s loc_6286C ; --------------------------------------------------------------------------- loc_62854: ; CODE XREF: sub_622EE+560j move.w #$19A,d0 cmp.w d5,d0 ble.s loc_62868 add.w d0,d5 muls.w d1,d5 bpl.s loc_62864 addq.l #1,d5 loc_62864: ; CODE XREF: sub_622EE+572j asr.l #1,d5 bra.s loc_6286C ; --------------------------------------------------------------------------- loc_62868: ; CODE XREF: sub_622EE+56Cj move.w #$802,d5 loc_6286C: ; CODE XREF: sub_622EE+564j ; sub_622EE+578j tblu.b (DG_EGRQ_KV_EGRF_EWMA_COMPENSATION).l,d5 ; Compensation factor to reduce the delta MAP for various restriction amounts. ; Unitless andi.w #$FF,d5 andi.w #$FF,d4 andi.w #$FF,d3 muls.w (word_FFFFAA20).w,d3 bpl.s loc_6288C addi.l #$7F,d3 ; '' loc_6288C: ; CODE XREF: sub_622EE+596j asr.l #7,d3 cmpi.w #$2400,d3 bgt.s loc_6289C cmpi.w #$DC00,d3 blt.s loc_628A2 bra.s loc_628A6 ; --------------------------------------------------------------------------- loc_6289C: ; CODE XREF: sub_622EE+5A4j move.w #$2400,d3 bra.s loc_628A6 ; --------------------------------------------------------------------------- loc_628A2: ; CODE XREF: sub_622EE+5AAj move.w #$DC00,d3 loc_628A6: ; CODE XREF: sub_622EE+5ACj ; sub_622EE+5B2j muls.w d3,d4 bpl.s loc_628B0 addi.l #$7F,d4 ; '' loc_628B0: ; CODE XREF: sub_622EE+5BAj asr.l #7,d4 cmpi.w #$2400,d4 bgt.s loc_628C0 cmpi.w #$DC00,d4 blt.s loc_628C6 bra.s loc_628CA ; --------------------------------------------------------------------------- loc_628C0: ; CODE XREF: sub_622EE+5C8j move.w #$2400,d4 bra.s loc_628CA ; --------------------------------------------------------------------------- loc_628C6: ; CODE XREF: sub_622EE+5CEj move.w #$DC00,d4 loc_628CA: ; CODE XREF: sub_622EE+5D0j ; sub_622EE+5D6j muls.w d4,d5 bpl.s loc_628D4 addi.l #$7F,d5 ; '' loc_628D4: ; CODE XREF: sub_622EE+5DEj asr.l #7,d5 cmpi.w #$2400,d5 bgt.s loc_628E6 cmpi.w #$DC00,d5 blt.s loc_628EC move.w d5,d3 bra.s loc_628F0 ; --------------------------------------------------------------------------- loc_628E6: ; CODE XREF: sub_622EE+5ECj move.w #$2400,d3 bra.s loc_628F0 ; --------------------------------------------------------------------------- loc_628EC: ; CODE XREF: sub_622EE+5F2j move.w #$DC00,d3 loc_628F0: ; CODE XREF: sub_622EE+5F6j ; sub_622EE+5FCj move.w d3,(word_FFFFAA16).w move.w (word_FFFF82D2).w,d0 asl.w #2,d0 cmpi.w #$5400,d0 bcs.s loc_62906 move.w #$1FF,d0 bra.s loc_62916 ; --------------------------------------------------------------------------- loc_62906: ; CODE XREF: sub_622EE+610j cmpi.w #$3400,d0 bls.s loc_62914 lsr.w #4,d0 subi.w #$340,d0 bcc.s loc_62916 loc_62914: ; CODE XREF: sub_622EE+61Cj clr.w d0 loc_62916: ; CODE XREF: sub_622EE+616j ; sub_622EE+624j tst.b (DG_EGRQ_KE_EGRF_RPM_COMPENSATION).l ; Used to choose desired RPM compensation method. START_RPM = Starting RPM, MINIMUM_RPM = Minimum RPM during test ; ENUM bne.s loc_62976 move.w (word_FFFFAA2C).w,d1 cmp.w (word_FFFFAA36).w,d1 bcs.s loc_62930 move.w (word_FFFFAA34).w,d1 subq.w #1,d1 bra.s loc_62948 ; --------------------------------------------------------------------------- loc_62930: ; CODE XREF: sub_622EE+638j cmp.w (DI_EGRQ_KE_EGRF_RPM_OFFSET).l,d1 ; Used in defining the RPM range for KA_EGRF_StRPM_MAP_ Change_Thresh and KA_EGRF_MnRPM_MAP_Change_Thresh. ; RPM bls.s loc_62946 sub.w (DI_EGRQ_KE_EGRF_RPM_OFFSET).l,d1 ; Used in defining the RPM range for KA_EGRF_StRPM_MAP_ Change_Thresh and KA_EGRF_MnRPM_MAP_Change_Thresh. ; RPM bcc.s loc_62942 clr.w d1 loc_62942: ; CODE XREF: sub_622EE+650j lsr.w #1,d1 bra.s loc_62948 ; --------------------------------------------------------------------------- loc_62946: ; CODE XREF: sub_622EE+648j clr.w d1 loc_62948: ; CODE XREF: sub_622EE+640j ; sub_622EE+656j move.w #$1000,d3 subq.w #1,d3 clr.b d4 lsr.w #8,d3 cmpi.b #$F,d3 beq.s loc_6295A moveq #$64,d4 ; 'd' loc_6295A: ; CODE XREF: sub_622EE+668j clr.l d3 move.b d4,d3 mulu.w d3,d3 move.w (word_FFFFAEF8).w,d3 tblu.w (DI_EGRQ_KV_EGRF_ETH_COMP_MULTIPLIER).l,d3 ; Compensation factor to modify the expected MAP change based on ethanol content. ; Mult_0to2 move.w d3,d6 lea (DI_EGRQ_KA_EGRF_STRPM_MAP_CHANGE_THRESH).l,a0 bra.s loc_629EA ; --------------------------------------------------------------------------- loc_62976: ; CODE XREF: sub_622EE+62Ej move.w (word_FFFFAA26).w,d1 cmp.w (word_FFFFAA36).w,d1 bcs.s loc_6298A move.w (word_FFFFAA32).w,d1 subq.w #1,d1 bcc.s loc_629C0 bra.s loc_629BE ; --------------------------------------------------------------------------- loc_6298A: ; CODE XREF: sub_622EE+690j cmp.w (word_FFFFAA30).w,d1 bls.s loc_629BE clr.l d3 move.w (DI_EGRQ_KE_EGRF_RPM_OFFSET).l,d3 ; Used in defining the RPM range for KA_EGRF_StRPM_MAP_ Change_Thresh and KA_EGRF_MnRPM_MAP_Change_Thresh. ; RPM andi.l #$FFFF,d1 sub.l d3,d1 addi.l #$A00,d1 tst.l d1 blt.s loc_629B8 cmpi.l #$FFFF,d1 bls.s loc_629BA move.w #$FFFF,d1 bra.s loc_629BA ; --------------------------------------------------------------------------- loc_629B8: ; CODE XREF: sub_622EE+6BAj clr.w d1 loc_629BA: ; CODE XREF: sub_622EE+6C2j ; sub_622EE+6C8j lsr.w #1,d1 bra.s loc_629C0 ; --------------------------------------------------------------------------- loc_629BE: ; CODE XREF: sub_622EE+69Aj ; sub_622EE+6A0j clr.w d1 loc_629C0: ; CODE XREF: sub_622EE+698j ; sub_622EE+6CEj clr.b d3 move.w (word_FFFFAA32).w,d4 lsr.w #8,d4 cmpi.b #$14,d4 beq.s loc_629D0 moveq #$64,d3 ; 'd' loc_629D0: ; CODE XREF: sub_622EE+6DEj clr.l d4 move.b d3,d4 mulu.w d4,d4 move.w (word_FFFFAEF8).w,d3 tblu.w (DI_EGRQ_KV_EGRF_ETH_COMP_MULTIPLIER).l,d3 ; Compensation factor to modify the expected MAP change based on ethanol content. ; Mult_0to2 move.w d3,d6 lea (DI_EGRQ_KA_EGRF_MNRPM_MAP_CHANGE_THRESH).l,a0 loc_629EA: ; CODE XREF: sub_622EE+686j moveq #6,d2 jsr (sub_16D6).l mulu.w d6,d0 lsr.l #8,d0 lsr.l #4,d0 cmpi.w #$37AF,d0 bls.s loc_62A02 move.w #$37AF,d0 loc_62A02: ; CODE XREF: sub_622EE+70Ej move.w d0,(word_FFFFAA1C).w move.w d0,d3 sub.w (word_FFFFAA16).w,d3 cmpi.w #$2400,d3 ble.s loc_62A16 move.w #$2400,d3 loc_62A16: ; CODE XREF: sub_622EE+722j move.w d3,(word_FFFFAA1E).w cmp.w (word_FFFF8CF2).w,d3 blt.s loc_62A28 bset #4,(byte_FFFFB485).w bra.s loc_62A2E ; --------------------------------------------------------------------------- loc_62A28: ; CODE XREF: sub_622EE+730j bclr #4,(byte_FFFFB485).w loc_62A2E: ; CODE XREF: sub_622EE+738j tst.b (byte_FFFF8CF7).w bne.s loc_62A60 move.w (word_FFFFAA1E).w,d4 sub.w (word_FFFF8CFC).w,d4 cmpi.w #$7FFF,d4 bls.s loc_62A44 clr.w d4 loc_62A44: ; CODE XREF: sub_622EE+752j tst.w d4 bge.s loc_62A4A clr.w d4 loc_62A4A: ; CODE XREF: sub_622EE+758j cmp.w (DG_EGRQ_KE_EGRF_STEP_DELTA).l,d4 ; Minimum difference between MAPDIFF and EWMA to trigger multiple tests for step change ; kPa blt.s loc_62A60 cmp.w (DG_EGRQ_KE_EGRF_STEP_MAPDIFF).l,d3 ; Minimum value of MAPDIFF to trigger multiple tests for step change ; kPa blt.s loc_62A60 move.b #1,(byte_FFFF8CF7).w loc_62A60: ; CODE XREF: sub_622EE+744j ; sub_622EE+762j ... cmp.b (byte_FFFF8CF6).w,d7 bne.s loc_62A76 move.w (DG_EGRQ_KE_EGRF_EWMA_FAIL_THRESHOLD).l,(word_FFFF8CF2).w ; Threshold above which the diagnostic is considered failing,if the diagnostic is currently indicating a failure. ; kPa move.w (DG_EGRQ_KE_EGRF_EWMA_FAIL_COEF).l,d4 ; Filter coefficient for EWMA calculation when test is indicating a failure. ; Coef bra.s loc_62A84 ; --------------------------------------------------------------------------- loc_62A76: ; CODE XREF: sub_622EE+776j move.w (DG_EGRQ_KE_EGRF_EWMA_NONFAIL_THRESH).l,(word_FFFF8CF2).w ; Threshold above which the diagnostic is considered failing if the diagnostic is currently not indicating a failure. ; kPa move.w (DG_EGRQ_KE_EGRF_EWMA_NONFAIL_COEF).l,d4 ; Filter coefficient for EWMA calculation when test is not indicating a failure. ; Coef loc_62A84: ; CODE XREF: sub_622EE+786j move.w (word_FFFF8CFC).w,var_4(a6) move.w d3,var_2(a6) tbls.w var_4(a6),d4 move.w d4,(word_FFFF8CFC).w cmp.w (word_FFFF8CF2).w,d4 blt.s loc_62AC0 move.b d7,(byte_FFFF8CF6).w move.b (byte_FFFF8CF8).w,d3 addq.b #1,d3 bcc.s loc_62AAE move.b #$FF,d3 loc_62AAE: ; CODE XREF: sub_622EE+7BAj move.b d3,(byte_FFFF8CF8).w move.w d4,(word_FFFF8CF4).w moveq #$50,d0 ; 'P' jsr sub_5F110 bra.s loc_62AF4 ; --------------------------------------------------------------------------- loc_62AC0: ; CODE XREF: sub_622EE+7AEj move.b (byte_FFFF8CFA).w,d3 cmp.b (DG_EGRQ_KE_EGRF_EWMA_PASS_SAMPLES).l,d3 ; Number of test samples required before the diagnostic can be considered passing. ; Counts bcs.s loc_62AF0 move.b #1,(byte_FFFF8CF6).w move.b (byte_FFFF8CF9).w,d3 addq.b #1,d3 bcc.s loc_62ADE move.b #$FF,d3 loc_62ADE: ; CODE XREF: sub_622EE+7EAj move.b d3,(byte_FFFF8CF9).w move.w d4,(word_FFFF8CF4).w moveq #$50,d0 ; 'P' jsr sub_5F0BE bra.s loc_62AF4 ; --------------------------------------------------------------------------- loc_62AF0: ; CODE XREF: sub_622EE+7DCj clr.b (byte_FFFF8CF6).w loc_62AF4: ; CODE XREF: sub_622EE+7D0j ; sub_622EE+800j move.b #6,(byte_FFFFAA09).w move.b d7,(byte_FFFFAA0D).w tst.b (byte_FFFF8CF7).w beq.s loc_62B24 move.b (byte_FFFFAA11).w,d3 addq.b #1,d3 bcc.s loc_62B10 move.b #$FF,d3 loc_62B10: ; CODE XREF: sub_622EE+81Cj move.b d3,(byte_FFFFAA11).w move.b (byte_FFFF8CFB).w,d3 addq.b #1,d3 bcc.s loc_62B20 move.b #$FF,d3 loc_62B20: ; CODE XREF: sub_622EE+82Cj move.b d3,(byte_FFFF8CFB).w loc_62B24: ; CODE XREF: sub_622EE+508j ; sub_622EE+814j move.b (byte_FFFF8CFA).w,d3 cmp.b (DG_EGRQ_KE_EGRF_SAMPLES_AFTER_RESET).l,d3 bcs.s loc_62B62 move.b (byte_FFFFAA0B).w,d3 cmp.b (DG_EGRQ_KE_EGRF_SAMPLES_PER_TRIP).l,d3 ; Maximum number of samples per trip. ; Counts bcs.s loc_62B62 tst.b (byte_FFFF8CF7).w beq.s loc_62B5A move.b (byte_FFFF8CFB).w,d3 cmp.b (DG_EGRQ_KE_EGRF_SAMPLES_AFTER_STEP).l,d3 bcc.s loc_62B5A move.b (byte_FFFFAA11).w,d3 cmp.b (DG_EGRQ_KE_EGRF_STEP_SAMPLES_PER_TRIP).l,d3 ; Maximum number of samples per trip after a step change. ; Counts bcs.s loc_62B62 loc_62B5A: ; CODE XREF: sub_622EE+852j ; sub_622EE+85Ej bset #1,(byte_FFFFAA08).w bra.s loc_62B68 ; --------------------------------------------------------------------------- loc_62B62: ; CODE XREF: sub_622EE+840j ; sub_622EE+84Cj ... bclr #1,(byte_FFFFAA08).w loc_62B68: ; CODE XREF: sub_622EE+872j movem.l (sp)+,d0-d2/d6-a1/a4 unlk a6 rts ; End of function sub_622EE ; =============== S U B R O U T I N E ======================================= sub_62B70: ; CODE XREF: sub_2D9E4:loc_2DA04p movem.l d0-d1/a0,-(sp) move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$3C00,d3 bcc.w loc_62EF8 btst #5,(byte_FFFFAD8B).w sne d3 neg.b d3 cmp.b (byte_FFFFAEB6).w,d3 seq d3 neg.b d3 move.b d3,(byte_FFFFAEA8).w clr.b d3 move.b (byte_FFFFA3B8).w,d0 cmp.b (byte_FFFFAEB8).w,d0 bne.s loc_62BCC cmpi.b #6,(byte_FFFFA3AF).w beq.s loc_62BCC cmpi.b #4,(byte_FFFFA3AF).w beq.s loc_62BCC cmpi.b #5,(byte_FFFFA3AF).w beq.s loc_62BCC tst.b (byte_FFFFA3AC).w bne.s loc_62BCC move.b (byte_FFFFA3B5).w,d0 cmp.b (byte_FFFFAEB7).w,d0 bne.s loc_62BCC addq.b #1,d3 loc_62BCC: ; CODE XREF: sub_62B70+30j ; sub_62B70+38j ... move.b d3,(byte_FFFFAEA9).w move.b (byte_FFFF9854).w,d3 beq.s loc_62BDC and.b (byte_FFFFA93A).w,d3 beq.s loc_62C08 loc_62BDC: ; CODE XREF: sub_62B70+64j tst.b (byte_FFFFAEAE).w beq.s loc_62BFA move.w (DI_EGRQ_KE_EGRF_DFCO_STABLE_TIME).l,d0 ; Minimum amount of time since a DFCO change before EGR considers DFCO stable. ; Seconds movea.l #unk_FFAEB0,a0 jsr sub_276D4 move.b d0,(byte_FFFFAEAB).w bra.s loc_62C10 ; --------------------------------------------------------------------------- loc_62BFA: ; CODE XREF: sub_62B70+70j move.w (GlobalClock).w,(word_FFFFAEB0).w move.b #1,(byte_FFFFAEAE).w bra.s loc_62C10 ; --------------------------------------------------------------------------- loc_62C08: ; CODE XREF: sub_62B70+6Aj clr.b (byte_FFFFAEAB).w clr.b (byte_FFFFAEAE).w loc_62C10: ; CODE XREF: sub_62B70+88j ; sub_62B70+96j btst #5,(byte_FFFFAD8B).w sne d0 neg.b d0 move.b d0,(byte_FFFFAEB6).w move.b (byte_FFFFA3B8).w,(byte_FFFFAEB8).w move.b (byte_FFFFA3B5).w,(byte_FFFFAEB7).w clr.w d0 tst.b (byte_FFFFA19D).w beq.w loc_62DC6 btst #5,(byte_FFFF8252).w bne.w loc_62DC6 btst #1,(byte_FFFF88C6).w bne.w loc_62DC6 btst #1,(byte_FFFF88C8).w bne.w loc_62DC6 btst #1,(byte_FFFF88CA).w bne.w loc_62DC6 btst #4,(byte_FFFF8253).w bne.w loc_62DC6 btst #5,(byte_FFFF8253).w bne.w loc_62DC6 btst #7,(byte_FFFF8252).w bne.w loc_62DC6 btst #6,(byte_FFFF8255).w bne.w loc_62DC6 btst #2,(byte_FFFF8253).w bne.w loc_62DC6 btst #1,(byte_FFFF8916).w bne.w loc_62DC6 btst #1,(byte_FFFF8926).w bne.w loc_62DC6 btst #1,(byte_FFFF8928).w bne.w loc_62DC6 btst #1,(byte_FFFF8924).w bne.w loc_62DC6 btst #1,(byte_FFFF893A).w bne.w loc_62DC6 btst #1,(byte_FFFF8964).w bne.w loc_62DC6 btst #1,(byte_FFFF8966).w bne.w loc_62DC6 btst #1,(byte_FFFF8A3A).w bne.w loc_62DC6 btst #1,(byte_FFFF88E2).w bne.w loc_62DC6 btst #1,(byte_FFFF88E4).w bne.w loc_62DC6 btst #1,(byte_FFFF88DE).w bne.w loc_62DC6 btst #1,(byte_FFFF8934).w bne.w loc_62DC6 btst #1,(byte_FFFF8A9E).w bne.w loc_62DC6 btst #1,(byte_FFFF8A90).w bne.w loc_62DC6 btst #1,(byte_FFFF8AAA).w bne.w loc_62DC6 btst #1,(byte_FFFF89CA).w bne.w loc_62DC6 btst #1,(byte_FFFF89D0).w bne.w loc_62DC6 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DI_EGRQ_KE_EGRF_COOLANT_TEMP_MAXIMUM).l,d3 ; Maximum coolant temperature allowed to run test. ; Degrees C bgt.w loc_62DC6 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DI_EGRQ_KE_EGRF_COOLANT_TEMP_MINIMUM).l,d3 ; Minimum coolant temperature allowed to run test. ; Degrees C blt.s loc_62DC6 move.w (word_FFFFAEBC).w,d3 cmp.w (DI_EGRQ_KE_EGRF_VEHICLE_SPEED_MAXIMUM).l,d3 ; Maximum vehicle speed allowed to run test. ; MPH bhi.s loc_62DC6 move.w (word_FFFFAEBC).w,d3 cmp.w (DI_EGRQ_KE_EGRF_VEHICLE_SPEED_MINIMUM).l,d3 ; Minimum vehicle speed allowed to run test. ; MPH bcs.s loc_62DC6 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DI_EGRQ_KE_EGRF_ENGINE_STALL_RPM).l,d3 ; Minimum engine speed allowed to run test. ; RPM bcs.s loc_62DC6 move.w (word_FFFFB3E8).w,d3 cmp.w (DI_EGRQ_KE_EGRF_IAT_MAXIMUM).l,d3 ; Maximum vehicle manifold air temperature allowed to run test ; Degrees C bgt.s loc_62DC6 move.w (word_FFFFB3E8).w,d3 cmp.w (DI_EGRQ_KE_EGRF_IAT_MINIMUM).l,d3 ; Minimum vehicle manifold air temperature allowed to run test ; Degrees C blt.s loc_62DC6 move.w (word_FFFF8242).w,d4 cmp.w (DI_EGRQ_KE_EGRF_ETHANOL_DISABLE_PERCENT).l,d4 ; The ethanol percentage at which the EGR diagnostic will be disabled. ; Percent bhi.s loc_62DC6 move.w (word_FFFFB4A2).w,d4 cmp.w (DI_EGRQ_KE_EGRF_IGNITION_VOLTAGE_MAX).l,d4 ; Maximum ignition voltage allowed to run test. ; Volts bhi.s loc_62DC6 move.w (word_FFFFB4A2).w,d4 cmp.w (DI_EGRQ_KE_EGRF_IGNITION_VOLTAGE_MIN).l,d4 ; Minimum ignition voltage allowed to run test. ; Volts bcs.s loc_62DC6 tst.b (byte_FFFF82D4).w bne.s loc_62DC6 tst.b (byte_FFFFAEAF).w bne.s loc_62DC6 tst.b (byte_FFFFAEB9).w bne.s loc_62DC6 addq.b #1,d0 loc_62DC6: ; CODE XREF: sub_62B70+C0j ; sub_62B70+CAj ... clr.b d4 move.b (byte_FFFFAA09).w,d3 cmpi.b #7,d3 beq.s loc_62DDE cmpi.b #5,d3 beq.s loc_62DDE cmpi.b #6,d3 bne.s loc_62DE0 loc_62DDE: ; CODE XREF: sub_62B70+260j ; sub_62B70+266j addq.b #1,d4 loc_62DE0: ; CODE XREF: sub_62B70+26Cj clr.b d3 move.w (word_FFFFAEB4).w,d5 cmp.w (DI_EGRQ_KE_EGRF_IAC_POSITION_DELTA_MAX).l,d5 ; Maximum changes of IAC steps allowed while common enableconditions are met. ; Steps bhi.s loc_62E66 move.w (word_FFFFAEB2).w,d5 cmp.w (DI_EGRQ_KE_EGRF_IDLE_AREA_DELTA_MAX).l,d5 ; Maximum changes of IAC area for ETC allowed while common enableconditions are met. ; Millimeters_Squared bhi.s loc_62E66 tst.b (byte_FFFFAEA8).w beq.s loc_62E66 tst.b (byte_FFFFAEA9).w beq.s loc_62E66 tst.b (byte_FFFFAB24).w bne.s loc_62E66 btst #1,(word_FFFFA7DC+1).w bne.s loc_62E66 btst #7,(byte_FFFFA7DE).w bne.s loc_62E66 btst #6,(byte_FFFFA7E0).w bne.s loc_62E66 btst #4,(word_FFFFA7DC+1).w bne.s loc_62E66 btst #0,(word_FFFFA7DC+1).w bne.s loc_62E66 btst #7,(byte_FFFFA7E0).w bne.s loc_62E66 btst #1,(word_FFFFA7DC).w bne.s loc_62E66 btst #6,(byte_FFFFA7E0).w bne.s loc_62E66 btst #2,(word_FFFFA7DC+1).w bne.s loc_62E66 btst #0,(word_FFFFA7DC).w bne.s loc_62E66 btst #4,(byte_FFFFA7DE).w bne.s loc_62E66 addq.b #1,d3 loc_62E66: ; CODE XREF: sub_62B70+27Cj ; sub_62B70+288j ... or.b d3,d4 and.b d0,d4 move.b d4,(byte_FFFFAEAA).w move.b (byte_FFFFAA09).w,d3 cmpi.b #4,d3 beq.s loc_62E7E cmpi.b #3,d3 bne.s loc_62E90 loc_62E7E: ; CODE XREF: sub_62B70+306j move.w (word_FFFFA258).w,d3 cmp.w (word_FFFFAE9C).w,d3 bls.s loc_62E9A move.w (word_FFFFA258).w,(word_FFFFAE9C).w bra.s loc_62E9A ; --------------------------------------------------------------------------- loc_62E90: ; CODE XREF: sub_62B70+30Cj cmpi.b #2,d3 bne.s loc_62E9A clr.w (word_FFFFAE9C).w loc_62E9A: ; CODE XREF: sub_62B70+316j ; sub_62B70+31Ej ... tst.b (byte_FFFFA19D).w beq.s loc_62EA6 jsr sub_622EE loc_62EA6: ; CODE XREF: sub_62B70+32Ej btst #4,(byte_FFFFAA08).w beq.s loc_62EF0 tst.b (byte_FFFFAEAC).w beq.s loc_62EC2 cmpi.b #3,(byte_FFFFA246).w beq.s loc_62EC2 move.b #1,(byte_FFFFAEB9).w loc_62EC2: ; CODE XREF: sub_62B70+342j ; sub_62B70+34Aj move.b #1,(byte_FFFFAEAC).w move.b (byte_FFFFAA0A).w,d3 cmpi.b #$10,d3 bhi.s loc_62EDA cmpi.b #1,d3 bcs.s loc_62EDE bra.s loc_62EE0 ; --------------------------------------------------------------------------- loc_62EDA: ; CODE XREF: sub_62B70+360j moveq #$10,d3 bra.s loc_62EE0 ; --------------------------------------------------------------------------- loc_62EDE: ; CODE XREF: sub_62B70+366j moveq #1,d3 loc_62EE0: ; CODE XREF: sub_62B70+368j ; sub_62B70+36Cj andi.w #$FF,d3 move.w DI_EGRQ_KE_EGRF_PURGE_FREEZE(d3.w*2),(word_FFFFAE9E).w ; Indication of desire to freeze the purge duty cycle duringcertain test intervals. ; TRUE/FALSE bra.s loc_62EF8 ; --------------------------------------------------------------------------- loc_62EF0: ; CODE XREF: sub_62B70+33Cj clr.b (byte_FFFFAEAC).w clr.b (byte_FFFFAEB9).w loc_62EF8: ; CODE XREF: sub_62B70+Cj ; sub_62B70+37Ej movem.l (sp)+,d0-d1/a0 rts ; End of function sub_62B70 ; =============== S U B R O U T I N E ======================================= sub_62EFE: ; CODE XREF: DoLoopC+378p move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$3C00,d3 bcc.w locret_62F90 move.b (byte_FFFFAA09).w,d3 cmpi.b #2,d3 beq.s loc_62F20 cmpi.b #3,d3 beq.s loc_62F20 cmpi.b #4,d3 bne.s loc_62F5C loc_62F20: ; CODE XREF: sub_62EFE+14j ; sub_62EFE+1Aj tst.b (byte_FFFFB370).w beq.s loc_62F40 move.w (DesiredIdleThrottleArea).w,d3 cmp.w (word_FFFFAEA0).w,d3 bls.s loc_62F34 move.w d3,(word_FFFFAEA0).w loc_62F34: ; CODE XREF: sub_62EFE+30j cmp.w (word_FFFFAEA2).w,d3 bcc.s loc_62F70 move.w d3,(word_FFFFAEA2).w bra.s loc_62F70 ; --------------------------------------------------------------------------- loc_62F40: ; CODE XREF: sub_62EFE+26j move.w (word_FF86AE).l,d3 cmp.w (word_FFFFAEA4).w,d3 bls.s loc_62F50 move.w d3,(word_FFFFAEA4).w loc_62F50: ; CODE XREF: sub_62EFE+4Cj cmp.w (word_FFFFAEA6).w,d3 bcc.s loc_62F70 move.w d3,(word_FFFFAEA6).w bra.s loc_62F70 ; --------------------------------------------------------------------------- loc_62F5C: ; CODE XREF: sub_62EFE+20j clr.w (word_FFFFAEA0).w move.w #$FFFF,(word_FFFFAEA2).w clr.w (word_FFFFAEA4).w move.w #$190,(word_FFFFAEA6).w loc_62F70: ; CODE XREF: sub_62EFE+3Aj ; sub_62EFE+40j ... move.w (word_FFFFAEA0).w,d3 sub.w (word_FFFFAEA2).w,d3 bcc.s loc_62F7C clr.w d3 loc_62F7C: ; CODE XREF: sub_62EFE+7Aj move.w d3,(word_FFFFAEB2).w move.w (word_FFFFAEA4).w,d3 sub.w (word_FFFFAEA6).w,d3 bcc.s loc_62F8C clr.w d3 loc_62F8C: ; CODE XREF: sub_62EFE+8Aj move.w d3,(word_FFFFAEB4).w locret_62F90: ; CODE XREF: sub_62EFE+8j rts ; End of function sub_62EFE ; =============== S U B R O U T I N E ======================================= sub_62F92: ; CODE XREF: DoLoopF+146p move.l d0,-(sp) move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$3C00,d3 bcc.s loc_6301A tst.b (byte_FFFFAEAA).w beq.s loc_62FDE move.b (byte_FFFFAA09).w,d3 cmpi.b #2,d3 beq.s loc_62FBA cmpi.b #3,d3 beq.s loc_62FBA cmpi.b #4,d3 bne.s loc_62FDE loc_62FBA: ; CODE XREF: sub_62F92+1Aj ; sub_62F92+20j tst.b (DI_EGRQ_KE_EGRF_PURGE_FREEZE).l ; Indication of desire to freeze the purge duty cycle duringcertain test intervals. ; TRUE/FALSE beq.s loc_62FE6 tst.b (byte_FFFFAEAD).w beq.s loc_62FD6 cmpi.b #4,(byte_FFFFB2EB).w beq.s loc_62FD6 move.b #1,(byte_FFFFAEAF).w loc_62FD6: ; CODE XREF: sub_62F92+34j ; sub_62F92+3Cj move.b #1,(byte_FFFFAEAD).w bra.s loc_62FE6 ; --------------------------------------------------------------------------- loc_62FDE: ; CODE XREF: sub_62F92+10j ; sub_62F92+26j clr.b (byte_FFFFAEAD).w clr.b (byte_FFFFAEAF).w loc_62FE6: ; CODE XREF: sub_62F92+2Ej ; sub_62F92+4Aj move.w (word_FFFFB294).w,d3 asl.w #2,d3 move.l #$2799800,d4 move.w (word_FFFF82D2).w,d5 asl.w #2,d5 divu.w d5,d4 bvs.s loc_63002 cmpi.w #$1000,d4 bls.s loc_63006 loc_63002: ; CODE XREF: sub_62F92+68j move.w #$1000,d4 loc_63006: ; CODE XREF: sub_62F92+6Ej mulu.w d4,d3 lsr.l #8,d3 lsr.l #3,d3 cmpi.w #$5400,d3 bls.s loc_63016 move.w #$5400,d3 loc_63016: ; CODE XREF: sub_62F92+7Ej move.w d3,(word_FFFFAE9A).w loc_6301A: ; CODE XREF: sub_62F92+Aj move.l (sp)+,d0 rts ; End of function sub_62F92 ; =============== S U B R O U T I N E ======================================= sub_6301E: ; CODE XREF: OS1:0002913Ap cmpi.b #2,d0 bne.s locret_63036 jsr sub_6457C tst.b (byte_FFFFB54A).w bne.s locret_63036 jsr sub_63154 locret_63036: ; CODE XREF: sub_6301E+4j ; sub_6301E+10j rts ; End of function sub_6301E ; =============== S U B R O U T I N E ======================================= sub_63038: ; CODE XREF: sub_75370+198p jsr sub_63056 jsr sub_63154 rts ; End of function sub_63038 ; =============== S U B R O U T I N E ======================================= sub_63046: ; CODE XREF: sub_64762p jsr sub_63056 clr.w (word_FFFFACE8).w clr.w (word_FFFFACEA).w rts ; End of function sub_63046 ; =============== S U B R O U T I N E ======================================= sub_63056: ; CODE XREF: sub_63038p sub_63046p clr.w (word_FF8D62).l clr.w (word_FF8D68).l clr.w (word_FF8D6A).l clr.w (word_FF8D6C).l clr.w (word_FF8D6E).l clr.w (word_FF8D70).l clr.w (word_FF8D72).l clr.w (word_FF8D74).l clr.w (word_FF8D76).l clr.w (word_FF8D78).l clr.w (word_FF8D7A).l clr.w (word_FF8D7C).l clr.w (word_FF8D7E).l clr.w (word_FF8D80).l clr.w (word_FF8D82).l clr.w (word_FF8D84).l clr.w (word_FF8D86).l clr.w (word_FF8D88).l clr.b (byte_FF8D61).l clr.w (word_FF8D8A).l clr.w (word_FF8D8C).l clr.w (word_FF8D94).l clr.w (word_FF8D8E).l clr.w (word_FF8D96).l clr.w (word_FF8D90).l clr.b (byte_FF8D60).l bclr #6,(byte_FF8D5F).l bclr #5,(byte_FF8D5F).l move.w (DG_EONV_KE_EONV_EWMA_NONFAIL_THRESHOLD).l,(word_FFFFACD2).w ; The EWMA threshold value that will be used when the system is passing. ; Unitless clr.w (word_FFFFACDA).w clr.w (word_FFFFACDC).w clr.w (word_FFFFACDE).w clr.w (word_FFFFACE0).w clr.w (word_FFFFACE2).w clr.w (word_FFFFACEE).w clr.w (word_FFFFACF0).w clr.w (word_FFFFACF2).w clr.b (byte_FFFFACF4).w clr.w (word_FFFFACF6).w clr.b (byte_FFFFACD6).w clr.b (byte_FFFFACF5).w clr.l (dword_FFFFACE4).w clr.b (byte_FFFFACD7).w clr.b (byte_FF8D5E).l clr.l (dword_FF8D64).l clr.w (word_FFFFACD4).w rts ; End of function sub_63056 ; =============== S U B R O U T I N E ======================================= sub_63154: ; CODE XREF: sub_6301E+12p ; sub_63038+6p clr.b (byte_FF8D92).l clr.w (word_FF8D5C).l bclr #7,(byte_FF8D5F).l move.b #2,(byte_FF8D93).l rts ; End of function sub_63154 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_63172: ; CODE XREF: DoLoopF+5E0p link a6,#-4 movem.l d0-d2/d6/a0,-(sp) move.w (word_FFFFA4B4).w,d3 bpl.s loc_63182 addq.w #7,d3 loc_63182: ; CODE XREF: sub_63172+Cj asr.w #3,d3 move.w d3,(word_FFFFACEC).w move.w (word_FFFFA4AE).w,(word_FFFFACD8).w move.b (byte_FFFFACD6).w,d3 beq.w loc_63264 moveq #5,d0 cmp.b d3,d0 beq.w loc_63264 moveq #6,d0 cmp.b d3,d0 beq.w loc_63264 moveq #7,d0 cmp.b d3,d0 beq.w loc_63264 tst.b (byte_FFFF8236).w beq.s loc_631C2 move.b #1,(byte_FF8D5E).l jsr sub_63E1C loc_631C2: ; CODE XREF: sub_63172+40j tst.b (byte_FFFF8237).w beq.s loc_631DC tst.b (byte_FFFFA4AA).w beq.s loc_631DC move.b #2,(byte_FF8D5E).l jsr sub_63E1C loc_631DC: ; CODE XREF: sub_63172+54j ; sub_63172+5Aj tst.b (byte_FFFFA4B2).w beq.s loc_631F2 bset #0,(word_FFFFACD4).w clr.b (byte_FFFFACD7).w move.b #6,(byte_FFFFACD6).w loc_631F2: ; CODE XREF: sub_63172+6Ej moveq #5,d0 cmp.b (ThrottleControlMode2?).w,d0 bne.s loc_63204 move.w (word_FFFFB4A6).w,d3 mulu.w d0,d3 lsr.w #7,d3 bra.s loc_6321E ; --------------------------------------------------------------------------- loc_63204: ; CODE XREF: sub_63172+86j move.w (word_FFFFB4A2).w,d3 mulu.w d0,d3 cmpi.l #$FFFF,d3 bhi.s loc_6321A lsr.w #7,d3 cmpi.w #$FF,d3 bls.s loc_6321E loc_6321A: ; CODE XREF: sub_63172+9Ej move.b #$FF,d3 loc_6321E: ; CODE XREF: sub_63172+90j ; sub_63172+A6j cmp.b (DI_EONV_KE_EONV_SYSTEM_VOLTAGE_MIN).l,d3 ; Minimum allowed system voltage below which system voltage will be considered too low. ; Volts bhi.s loc_63234 move.b #4,(byte_FF8D5E).l jsr sub_63E1C loc_63234: ; CODE XREF: sub_63172+B2j move.w (word_FFFFACD8).w,d3 cmp.w (DI_EONV_KE_EONV_FUEL_VAP_TEMP_MAX).l,d3 ; Upper fuel vapor temperature boundary for enabling EONV diagnostic. ; Degrees_C blt.s loc_6324C move.b d0,(byte_FF8D5E).l jsr sub_63E1C loc_6324C: ; CODE XREF: sub_63172+CCj moveq #2,d1 cmp.b (byte_FF8D60).l,d1 bne.s loc_63264 moveq #6,d2 move.b d2,(byte_FF8D5E).l jsr sub_63E1C loc_63264: ; CODE XREF: sub_63172+20j ; sub_63172+28j ... clr.w d3 move.b (byte_FFFFACD6).w,d3 movea.l off_8A51C(d3.w*4),a2 jmp (a2) ; End of function sub_63172 ; --------------------------------------------------------------------------- loc_63274: ; DATA XREF: OS4:off_8A51Co jsr sub_64058 move.b (byte_FFFF8234).w,d3 bne.s loc_6328A loc_63280: ; CODE XREF: OS3:00063BE6j move.b #7,(byte_FFFFACD6).w bra.w loc_63E14 ; --------------------------------------------------------------------------- loc_6328A: ; CODE XREF: OS3:0006327Ej cmpi.b #2,d3 bne.s loc_6329A loc_63290: ; CODE XREF: OS3:000637B0j ; OS3:00063ABEj ... move.b #5,(byte_FFFFACD6).w bra.w loc_63E14 ; --------------------------------------------------------------------------- loc_6329A: ; CODE XREF: OS3:0006328Ej moveq #1,d4 cmp.b d3,d4 bne.w loc_63E14 move.b d4,(byte_FFFFACD6).w bra.w loc_63E14 ; --------------------------------------------------------------------------- loc_632AA: ; DATA XREF: OS4:0008A520o jsr sub_63E2E cmpi.b #6,(byte_FFFFACD6).w beq.w loc_63E14 move.w (word_FFFF8232).w,d3 clr.w d4 cmpi.w #$FF00,d3 bge.s loc_632CA move.l d4,d3 bra.s loc_632E2 ; --------------------------------------------------------------------------- loc_632CA: ; CODE XREF: OS3:000632C4j cmpi.w #$800,d3 bge.s loc_632DE addi.w #$100,d3 ext.l d3 asl.l #4,d3 divs.w #9,d3 bra.s loc_632E2 ; --------------------------------------------------------------------------- loc_632DE: ; CODE XREF: OS3:000632CEj move.w #$1000,d3 loc_632E2: ; CODE XREF: OS3:000632C8j ; OS3:000632DCj tblu.w (DG_EONV_KV_EONV_VOLATILITY_TIME_MAX).l,d3 ; Calibrated amount of time allocated for the volatility check. ; Seconds cmp.w (word_FFFFACF2).w,d3 bls.s loc_63328 move.w (word_FFFFACF2).w,d3 addq.w #1,d3 bcc.s loc_632FC move.w #$FFFF,d3 loc_632FC: ; CODE XREF: OS3:000632F6j move.w d3,(word_FFFFACF2).w move.w (word_FFFFA4B6).w,d3 bpl.s loc_63308 addq.w #7,d3 loc_63308: ; CODE XREF: OS3:00063304j asr.w #3,d3 ext.l d3 add.l (dword_FFFFACE4).w,d3 bvc.s loc_63322 bpl.s loc_6331C move.l #$7FFFFFFF,d3 bra.s loc_63322 ; --------------------------------------------------------------------------- loc_6331C: ; CODE XREF: OS3:00063312j move.l #$80000000,d3 loc_63322: ; CODE XREF: OS3:00063310j ; OS3:0006331Aj move.l d3,(dword_FFFFACE4).w bra.s loc_6338A ; --------------------------------------------------------------------------- loc_63328: ; CODE XREF: OS3:000632EEj clr.l d0 move.w d3,d0 moveq #$A,d1 muls.l (dword_FFFFACE4).w,d3:d1 divs.l d0,d3:d1 bvc.s loc_63342 move.l d0,d3 eor.l d1,d3 bmi.s loc_6334E bra.s loc_63346 ; --------------------------------------------------------------------------- loc_63342: ; CODE XREF: OS3:00063338j move.l d1,d3 bra.s loc_63354 ; --------------------------------------------------------------------------- loc_63346: ; CODE XREF: OS3:00063340j move.l #$7FFFFFFF,d3 bra.s loc_63354 ; --------------------------------------------------------------------------- loc_6334E: ; CODE XREF: OS3:0006333Ej move.l #$80000000,d3 loc_63354: ; CODE XREF: OS3:00063344j ; OS3:0006334Cj move.l d3,(dword_FF8D64).l cmp.l (DG_EONV_KE_EONV_PRESS_HIGH_VOLATILITY).l,d3 ; Defines the integration limit for high volatility fuels. ; InH2O/Sec bge.s loc_6336C move.b #2,(byte_FF8D60).l bra.s loc_6338A ; --------------------------------------------------------------------------- loc_6336C: ; CODE XREF: OS3:00063360j cmp.l (DG_EONV_KE_EONV_PRESS_MOD_VOLATILITY).l,d3 ; Defines the integration limit for moderate volatility fuels. ; InH2O/Sec bge.s loc_6337E move.b #1,(byte_FF8D60).l bra.s loc_63384 ; --------------------------------------------------------------------------- loc_6337E: ; CODE XREF: OS3:00063372j clr.b (byte_FF8D60).l loc_63384: ; CODE XREF: OS3:0006337Cj bset #7,(word_FFFFACD4+1).w loc_6338A: ; CODE XREF: OS3:00063326j ; OS3:0006336Aj btst #7,(word_FFFFACD4+1).w beq.w loc_63E14 bset #0,(word_FFFFACD4).w move.b #1,(byte_FFFFACD7).w move.w (word_FFFFACEC).w,(word_FF8D76).l jsr sub_644B0 move.w (word_FFFFACD8).w,(word_FF8D78).l move.b #2,(byte_FFFFACD6).w bra.w loc_63E14 ; --------------------------------------------------------------------------- loc_633C0: ; DATA XREF: OS4:0008A524o jsr sub_63E2E cmpi.b #6,(byte_FFFFACD6).w beq.w loc_63E14 move.w (word_FFFFACDC).w,d3 cmp.w (DG_EONV_KE_EONV_PHASE1_TIME_LIMIT).l,d3 ; The maximum amount of time allowed to execute the pressure monitoring portions of the EONV Diagnostic. ; Seconds bcc.s loc_633F6 move.w (word_FFFF8230).w,d4 cmp.w (DG_EONV_KE_EONV_TOTAL_TIME).l,d4 ; The elapsed time allowed to execute the EONV Diagnostic. If this time is exceeded, the test enters the analysis phase. ; Seconds bcc.s loc_633F6 addq.w #1,d3 bcc.s loc_633F0 move.w #$FFFF,d3 loc_633F0: ; CODE XREF: OS3:000633EAj move.w d3,(word_FFFFACDC).w bra.s loc_6344E ; --------------------------------------------------------------------------- loc_633F6: ; CODE XREF: OS3:000633DAj ; OS3:000633E6j tst.b (byte_FFFFACF5).w bne.s loc_6344E movea.w (word_FFFFACD8).w,a2 move.w a2,(word_FF8D6C).l move.w (word_FFFFACEC).w,(word_FF8D6A).l move.w d3,(word_FF8D6E).l move.w a2,(word_FF8D72).l move.w (word_FF8D8A).l,(word_FF8D70).l move.w d3,(word_FF8D74).l move.w (word_FFFF8230).w,d3 cmp.w (DG_EONV_KE_EONV_TOTAL_TIME).l,d3 ; The elapsed time allowed to execute the EONV Diagnostic. If this time is exceeded, the test enters the analysis phase. ; Seconds bcc.s loc_6343E bset #5,(word_FFFFACD4).w bra.s loc_6344E ; --------------------------------------------------------------------------- loc_6343E: ; CODE XREF: OS3:00063434j move.w (word_FF8D8A).l,(word_FF8D68).l bset #2,(word_FFFFACD4).w loc_6344E: ; CODE XREF: OS3:000633F4j ; OS3:000633FAj ... move.b (byte_FFFFACF5).w,d3 bne.w loc_63656 move.w (word_FFFF8232).w,d3 move.w (word_FFFFA4AC).w,d4 mulu.w #$A,d4 clr.w d5 andi.l #$FFFF,d4 add.l d4,d4 divu.w #$19,d4 cmpi.w #$FF00,d3 bge.s loc_6347A move.l d5,d3 bra.s loc_63492 ; --------------------------------------------------------------------------- loc_6347A: ; CODE XREF: OS3:00063474j cmpi.w #$800,d3 bge.s loc_6348E addi.w #$100,d3 ext.l d3 asl.l #4,d3 divs.w #9,d3 bra.s loc_63492 ; --------------------------------------------------------------------------- loc_6348E: ; CODE XREF: OS3:0006347Ej move.w #$1000,d3 loc_63492: ; CODE XREF: OS3:00063478j ; OS3:0006348Cj lea (DI_EONV_KA_EONV_PRESSURE_THRESHOLD).l,a0 ; Pressure threshold attainable only by a system with a total leak less than 0.020 inch. ; InchOfWat move.l d3,d0 move.l d4,d1 moveq #$22,d2 ; '"' jsr sub_878FA move.w (word_FFFFACEC).w,d3 cmp.w d0,d3 bgt.s loc_634E8 movea.w (word_FFFFACD8).w,a3 move.w a3,(word_FF8D6C).l move.w d3,(word_FF8D6A).l movea.w (word_FFFFACDC).w,a2 move.w a2,(word_FF8D6E).l move.w a3,(word_FF8D72).l move.w d3,(word_FF8D70).l move.w a2,(word_FF8D74).l move.w (word_FF8D70).l,(word_FF8D68).l bset #2,(word_FFFFACD4).w loc_634E8: ; CODE XREF: OS3:000634AAj cmp.w (word_FF8D8A).l,d3 bge.s loc_63506 move.w d3,(word_FF8D8A).l move.w (word_FFFFACD8).w,(word_FF8D8C).l move.w (word_FFFFACDC).w,(word_FF8D8E).l loc_63506: ; CODE XREF: OS3:000634EEj move.l d3,d5 ext.l d5 move.w (word_FF8D8A).l,d4 ext.l d4 sub.l d5,d4 move.w (DG_EONV_KE_EONV_DELTA_FROM_PRESSURE_PEAK).l,d5 ; Decrease in pressure after a peak needed to identify it as a pressure peak. ; InchOfWat ext.l d5 cmp.l d5,d4 bgt.s loc_6355E tst.w d3 bgt.s loc_6355E move.w d3,(word_FF8D6A).l move.w (word_FFFFACD8).w,(word_FF8D6C).l move.w (word_FFFFACDC).w,(word_FF8D6E).l move.w (word_FF8D8A).l,(word_FF8D70).l move.w (word_FF8D8C).l,(word_FF8D72).l move.w (word_FF8D8E).l,(word_FF8D74).l bset #5,(word_FFFFACD4).w loc_6355E: ; CODE XREF: OS3:0006351Ej ; OS3:00063522j cmp.w (DG_EONV_KE_EONV_PHASE1ZEROPRESSURE).l,d3 ; Boundary at which pressure is considered zero in Phase 1. ; InchOfWat blt.s loc_63580 cmp.w (DG_EONV_KE_EONV_PHASE1ZEROVACUUM).l,d3 ; Boundary at which vacuum is considered zero in Phase 1. ; InchOfWat bgt.s loc_63580 move.w (word_FFFFACDA).w,d4 addq.w #1,d4 bcc.s loc_6357A move.w #$FFFF,d4 loc_6357A: ; CODE XREF: OS3:00063574j move.w d4,(word_FFFFACDA).w bra.s loc_63584 ; --------------------------------------------------------------------------- loc_63580: ; CODE XREF: OS3:00063564j ; OS3:0006356Cj clr.w (word_FFFFACDA).w loc_63584: ; CODE XREF: OS3:0006357Ej move.w (word_FFFFACDA).w,d4 cmp.w (DG_EONV_KE_EONV_PH1_COUNTS_AT_ZERO_MAX).l,d4 ; Number of counts needed to indicate the Phase 1 pressure build has stabilized at zero. ; Unitless bcs.s loc_635C6 movea.w (word_FFFFACD8).w,a3 move.w a3,(word_FF8D6C).l move.w d3,(word_FF8D6A).l movea.w (word_FFFFACDC).w,a2 move.w a2,(word_FF8D6E).l move.w a3,(word_FF8D72).l move.w (word_FF8D8A).l,(word_FF8D70).l move.w a2,(word_FF8D74).l bset #5,(word_FFFFACD4).w loc_635C6: ; CODE XREF: OS3:0006358Ej cmp.w (DG_EONV_KE_EONV_PHASE1VACUUMALLOWED).l,d3 ; Lower boundary at which vacuum is considered to be building. ; InchOfWat blt.s loc_635E0 move.w (word_FFFFACDE).w,d4 addq.w #1,d4 bcc.s loc_635DA move.w #$FFFF,d4 loc_635DA: ; CODE XREF: OS3:000635D4j move.w d4,(word_FFFFACDE).w bra.s loc_635E4 ; --------------------------------------------------------------------------- loc_635E0: ; CODE XREF: OS3:000635CCj clr.w (word_FFFFACDE).w loc_635E4: ; CODE XREF: OS3:000635DEj move.w (word_FFFFACDE).w,d4 cmp.w (DG_EONV_KE_EONV_PHASE1_VAC_COUNTS_MAX).l,d4 ; Number of counts needed to indicate the Phase 1 vacuum build. ; Unitless bcs.s loc_63636 movea.w (word_FFFFACD8).w,a3 move.w a3,(word_FF8D6C).l move.w d3,(word_FF8D6A).l movea.w (word_FFFFACDC).w,a2 move.w a2,(word_FF8D6E).l move.w a3,(word_FF8D72).l move.w d3,(word_FF8D70).l move.w a2,(word_FF8D74).l bset #1,(word_FFFFACD4).w bset #6,(byte_FF8D5F).l move.w (word_FF8D8A).l,(word_FF8D68).l bra.s loc_6363E ; --------------------------------------------------------------------------- loc_63636: ; CODE XREF: OS3:000635EEj bclr #6,(byte_FF8D5F).l loc_6363E: ; CODE XREF: OS3:00063634j btst #5,(word_FFFFACD4).w beq.w loc_6379E clr.b (byte_FFFFACD7).w moveq #1,d3 move.b d3,(byte_FFFFACF5).w bra.w loc_6379E ; --------------------------------------------------------------------------- loc_63656: ; CODE XREF: OS3:00063452j moveq #$33,d3 ; '3' move.l d3,d0 move.w (word_FF8D78).l,d3 add.w (word_FF8D72).l,d3 ext.l d3 asl.l #7,d3 divs.l #5,d3 divs.w d0,d3 bvc.s loc_6367E swap d3 eor.w d0,d3 bmi.s loc_63692 bra.s loc_6368C ; --------------------------------------------------------------------------- loc_6367E: ; CODE XREF: OS3:00063674j cmpi.w #$F32,d3 bgt.s loc_6368C cmpi.w #$FC00,d3 blt.s loc_63692 bra.s loc_63696 ; --------------------------------------------------------------------------- loc_6368C: ; CODE XREF: OS3:0006367Cj ; OS3:00063682j move.w #$F32,d3 bra.s loc_63696 ; --------------------------------------------------------------------------- loc_63692: ; CODE XREF: OS3:0006367Aj ; OS3:00063688j move.w #$FC00,d3 loc_63696: ; CODE XREF: OS3:0006368Aj ; OS3:00063690j move.w (word_FF8D72).l,d4 sub.w (word_FF8D78).l,d4 cmpi.w #$F32,d4 bgt.s loc_636B0 cmpi.w #$FC00,d4 blt.s loc_636B6 bra.s loc_636BA ; --------------------------------------------------------------------------- loc_636B0: ; CODE XREF: OS3:000636A6j move.w #$F32,d4 bra.s loc_636BA ; --------------------------------------------------------------------------- loc_636B6: ; CODE XREF: OS3:000636ACj move.w #$FC00,d4 loc_636BA: ; CODE XREF: OS3:000636AEj ; OS3:000636B4j moveq #1,d0 cmp.b (byte_FF8D60).l,d0 bne.s loc_636CE move.b (DG_EONV_KE_EONV_MOD_VOLATILITY_MULT).l,(byte_FFFFACF4).w ; Correction factor based on moderate fuel volatility. ; Unitless bra.s loc_636D6 ; --------------------------------------------------------------------------- loc_636CE: ; CODE XREF: OS3:000636C2j move.b #$80,d1 move.b d1,(byte_FFFFACF4).w loc_636D6: ; CODE XREF: OS3:000636CCj movea.w #$1000,a2 clr.w d5 cmpi.w #$FF00,d3 bge.s loc_636E6 move.l d5,d3 bra.s loc_63700 ; --------------------------------------------------------------------------- loc_636E6: ; CODE XREF: OS3:000636E0j cmpi.w #$800,d3 bge.s loc_636FC movea.w #$100,a3 add.w a3,d3 ext.l d3 asl.l #4,d3 divs.w #9,d3 bra.s loc_63700 ; --------------------------------------------------------------------------- loc_636FC: ; CODE XREF: OS3:000636EAj move.w #$1000,d3 loc_63700: ; CODE XREF: OS3:000636E4j ; OS3:000636FAj tblu.b (DG_EONV_KV_EONV_AVG_PH1_VAP_TEMP_MULT).l,d3 ; Correction factor based on average vapor temperature in Phase 1. ; Unitless tst.w d4 bge.s loc_63710 move.l d5,d4 bra.s loc_63720 ; --------------------------------------------------------------------------- loc_63710: ; CODE XREF: OS3:0006370Aj cmpi.w #$100,d4 bge.s loc_6371C ext.l d4 asl.l #4,d4 bra.s loc_63720 ; --------------------------------------------------------------------------- loc_6371C: ; CODE XREF: OS3:00063714j move.w #$1000,d4 loc_63720: ; CODE XREF: OS3:0006370Ej ; OS3:0006371Aj tblu.b (DG_EONV_KV_EONV_DELTA_VAP_TEMP_MULT).l,d4 ; Correction factor based on delta vapor temperature in Phase 1. ; Unitless clr.l d5 move.b d4,d5 andi.w #$FF,d3 mulu.w d5,d3 lsr.w #7,d3 cmpi.w #$FF,d3 bls.s loc_6373E move.b #$FF,d3 loc_6373E: ; CODE XREF: OS3:00063738j clr.w d5 move.b (byte_FFFFACF4).w,d5 andi.w #$FF,d3 mulu.w d5,d3 lsr.w #7,d3 cmpi.w #$FF,d3 bls.s loc_63756 move.b #$FF,d3 loc_63756: ; CODE XREF: OS3:00063750j andi.w #$FF,d3 muls.w (word_FF8D70).l,d3 move.w #$80,d4 ; '?' divs.w d4,d3 bvc.s loc_63778 swap d3 eor.w d4,d3 bmi.s loc_63774 move.w #$7FFF,d3 bra.s loc_63778 ; --------------------------------------------------------------------------- loc_63774: ; CODE XREF: OS3:0006376Cj move.w #$8000,d3 loc_63778: ; CODE XREF: OS3:00063766j ; OS3:00063772j move.w d3,(word_FF8D68).l move.w (word_FFFFACEE).w,d3 cmp.w (DG_EONV_KE_EONV_TIME_BETWEEN_PHASE).l,d3 ; The minimum time to wait between Phase 1 and Phase 2. ; Seconds bls.s loc_63792 bset #1,(word_FFFFACD4).w bra.s loc_6379E ; --------------------------------------------------------------------------- loc_63792: ; CODE XREF: OS3:00063788j addq.w #1,d3 bcc.s loc_6379A move.w #$FFFF,d3 loc_6379A: ; CODE XREF: OS3:00063794j move.w d3,(word_FFFFACEE).w loc_6379E: ; CODE XREF: OS3:00063644j ; OS3:00063652j ... btst #2,(word_FFFFACD4).w beq.s loc_637B4 bset #0,(word_FFFFACD4).w loc_637AC: ; CODE XREF: OS3:000639E8j clr.b (byte_FFFFACD7).w bra.w loc_63290 ; --------------------------------------------------------------------------- loc_637B4: ; CODE XREF: OS3:000637A4j btst #1,(word_FFFFACD4).w beq.s loc_637F2 btst #6,(byte_FF8D5F).l bne.s loc_637F2 move.w (word_FFFFACEC).w,(word_FF8D88).l jsr sub_644B0 bset #0,(word_FFFFACD4).w move.b #1,(byte_FFFFACD7).w loc_637E0: ; CODE XREF: OS3:0006381Cj move.w (word_FFFFACD8).w,(word_FF8D86).l loc_637E8: ; CODE XREF: OS3:00063AF0j move.b #3,(byte_FFFFACD6).w bra.w loc_63E14 ; --------------------------------------------------------------------------- loc_637F2: ; CODE XREF: OS3:000637BAj ; OS3:000637C4j btst #1,(word_FFFFACD4).w beq.w loc_63E14 btst #6,(byte_FF8D5F).l beq.w loc_63E14 bset #0,(word_FFFFACD4).w move.b #1,(byte_FFFFACD7).w move.w (word_FFFFACEC).w,(word_FF8D88).l bra.s loc_637E0 ; --------------------------------------------------------------------------- loc_6381E: ; DATA XREF: OS4:0008A528o jsr sub_63E2E cmpi.b #6,(4294946006).w beq.w loc_63E14 move.w (word_FFFFACE2).w,d6 addq.w #1,d6 bcc.s loc_6383A move.w #$FFFF,d6 loc_6383A: ; CODE XREF: OS3:00063834j move.w d6,(word_FFFFACE2).w move.w (word_FFFF8232).w,d0 move.w (word_FFFFA4AC).w,d1 mulu.w #$A,d1 clr.w d3 andi.l #$FFFF,d1 add.l d1,d1 divu.w #$19,d1 cmpi.w #$FF00,d0 bge.s loc_63862 move.l d3,d0 bra.s loc_6387A ; --------------------------------------------------------------------------- loc_63862: ; CODE XREF: OS3:0006385Cj cmpi.w #$800,d0 bge.s loc_63876 addi.w #$100,d0 ext.l d0 asl.l #4,d0 divs.w #9,d0 bra.s loc_6387A ; --------------------------------------------------------------------------- loc_63876: ; CODE XREF: OS3:00063866j move.w #$1000,d0 loc_6387A: ; CODE XREF: OS3:00063860j ; OS3:00063874j lea (DI_EONV_KA_EONV_PRESSURE_THRESHOLD).l,a0 ; Pressure threshold attainable only by a system with a total leak less than 0.020 inch. ; InchOfWat moveq #$22,d2 ; '"' jsr sub_878FA move.l d0,d3 sub.w (word_FF8D68).l,d3 bvc.s loc_6389E bpl.s loc_6389A move.w #$7FFF,d3 bra.s loc_6389E ; --------------------------------------------------------------------------- loc_6389A: ; CODE XREF: OS3:00063892j move.w #$8000,d3 loc_6389E: ; CODE XREF: OS3:00063890j ; OS3:00063898j tst.w d3 bge.s loc_638A4 neg.w d3 loc_638A4: ; CODE XREF: OS3:000638A0j move.w d3,(word_FFFFACF0).w move.w (DG_EONV_KE_EONV_VACUUM_THRESHOLD_MIN).l,d4 ; The minimum desired Phase 2 vacuum threshold. ; InchOfWat cmp.w d4,d3 bge.s loc_638B6 move.w d4,(word_FFFFACF0).w loc_638B6: ; CODE XREF: OS3:000638B0j move.w (word_FFFFACEC).w,d3 cmp.w (word_FFFFACF0).w,d3 blt.s loc_638EE movea.w (word_FFFFACD8).w,a2 move.w a2,(word_FF8D7A).l move.w d6,(word_FF8D7C).l move.w d3,(word_FF8D7E).l move.w d3,(word_FF8D84).l move.w a2,(word_FF8D80).l move.w d6,(word_FF8D82).l bset #2,(word_FFFFACD4).w loc_638EE: ; CODE XREF: OS3:000638BEj cmp.w (word_FF8D90).l,d3 ble.s loc_6390A move.w d3,(word_FF8D90).l move.w (word_FFFFACD8).w,(word_FF8D94).l move.w d6,(word_FF8D96).l loc_6390A: ; CODE XREF: OS3:000638F4j move.l d3,d5 ext.l d5 move.w (word_FF8D90).l,d0 move.l d0,d1 ext.l d1 sub.l d5,d1 move.w (DG_EONV_KE_EONV_DELTA_FROM_VACUUM_PEAK).l,d5 ext.l d5 cmp.l d5,d1 blt.s loc_6392E cmp.w (DG_EONV_KE_EONV_PHASE2ZEROVACUUM).l,d0 ; Boundary at which vacuum is considered zero in Phase 2. ; InchOfWat bge.s loc_6393A loc_6392E: ; CODE XREF: OS3:00063924j move.w (word_FFFF8230).w,d4 cmp.w (DG_EONV_KE_EONV_TOTAL_TIME).l,d4 ; The elapsed time allowed to execute the EONV Diagnostic. If this time is exceeded, the test enters the analysis phase. ; Seconds bcs.s loc_63972 loc_6393A: ; CODE XREF: OS3:0006392Cj move.w (word_FFFFACD8).w,(word_FF8D7A).l move.w d6,(word_FF8D7C).l move.w d3,(word_FF8D7E).l move.w (word_FF8D94).l,(word_FF8D80).l move.w (word_FF8D96).l,(word_FF8D82).l move.w (word_FF8D90).l,(word_FF8D84).l bset #2,(word_FFFFACD4).w loc_63972: ; CODE XREF: OS3:00063938j cmp.w (DG_EONV_KE_EONV_PHASE2ZEROPRESSURE).l,d3 ; Boundary at which pressure is considered zero in Phase 2. ; InchOfWat blt.s loc_63994 cmp.w (DG_EONV_KE_EONV_PHASE2ZEROVACUUM).l,d3 ; Boundary at which vacuum is considered zero in Phase 2. ; InchOfWat bgt.s loc_63994 move.w (word_FFFFACE0).w,d4 addq.w #1,d4 bcc.s loc_6398E move.w #$FFFF,d4 loc_6398E: ; CODE XREF: OS3:00063988j move.w d4,(word_FFFFACE0).w bra.s loc_63998 ; --------------------------------------------------------------------------- loc_63994: ; CODE XREF: OS3:00063978j ; OS3:00063980j clr.w (word_FFFFACE0).w loc_63998: ; CODE XREF: OS3:00063992j move.w (word_FFFFACE0).w,d4 cmp.w (DG_EONV_KE_EONV_PH2_COUNTS_AT_ZERO_MAX).l,d4 ; Number of counts needed to indicate the Phase 2 vacuum build has stabilized at zero. ; Unitless bcs.s loc_639E2 movea.w (word_FFFFACD8).w,a2 move.w a2,(word_FF8D7A).l move.w d6,(word_FF8D7C).l move.w d3,(word_FF8D7E).l move.w (word_FF8D90).l,d4 ble.s loc_639CA move.w d4,(word_FF8D84).l bra.s loc_639D0 ; --------------------------------------------------------------------------- loc_639CA: ; CODE XREF: OS3:000639C0j clr.w (word_FF8D84).l loc_639D0: ; CODE XREF: OS3:000639C8j move.w a2,(word_FF8D80).l move.w d6,(word_FF8D82).l bset #2,(word_FFFFACD4).w loc_639E2: ; CODE XREF: OS3:000639A2j btst #2,(word_FFFFACD4).w bne.w loc_637AC cmp.w (DG_EONV_KE_EONV_PHASE2PRESSUREALLOWED).l,d3 ; Lower boundary at which pressure is considered essentially zero. ; InchOfWat bgt.w loc_63E14 clr.b (byte_FFFFACD7).w bclr #6,(word_FFFFACD4+1).w move.b (byte_FF8D61).l,d3 addq.b #1,d3 bcc.s loc_63A0E move.b #$FF,d3 loc_63A0E: ; CODE XREF: OS3:00063A08j move.b d3,(byte_FF8D61).l move.b #4,(byte_FFFFACD6).w bra.w loc_63E14 ; --------------------------------------------------------------------------- loc_63A1E: ; DATA XREF: OS4:0008A52Co jsr sub_63E2E cmpi.b #6,(byte_FFFFACD6).w beq.w loc_63E14 move.w (word_FFFFACE2).w,d3 addq.w #1,d3 bcc.s loc_63A3A move.w #$FFFF,d3 loc_63A3A: ; CODE XREF: OS3:00063A34j move.w d3,(word_FFFFACE2).w move.w (word_FFFFACF6).w,d4 addq.w #1,d4 bcc.s loc_63A4A move.w #$FFFF,d4 loc_63A4A: ; CODE XREF: OS3:00063A44j move.w d4,(word_FFFFACF6).w move.b (byte_FF8D61).l,d5 cmp.b (DG_EONV_KE_EONV_PRESSWAIT_ATTEMPTS_MAX).l,d5 ; Maximum number of times this process can be activated without exiting Phase 2. ; Unitless bhi.s loc_63A68 move.w (word_FFFF8230).w,d5 cmp.w (DG_EONV_KE_EONV_TOTAL_TIME).l,d5 ; The elapsed time allowed to execute the EONV Diagnostic. If this time is exceeded, the test enters the analysis phase. ; Seconds bcs.s loc_63AAA loc_63A68: ; CODE XREF: OS3:00063A5Aj movea.w (word_FFFFACD8).w,a2 move.w a2,(word_FF8D7A).l move.w d3,(word_FF8D7C).l move.w (word_FFFFACEC).w,(word_FF8D7E).l move.w (word_FF8D90).l,d4 ble.s loc_63A90 move.w d4,(word_FF8D84).l bra.s loc_63A96 ; --------------------------------------------------------------------------- loc_63A90: ; CODE XREF: OS3:00063A86j clr.w (word_FF8D84).l loc_63A96: ; CODE XREF: OS3:00063A8Ej move.w a2,(word_FF8D80).l move.w d3,(word_FF8D82).l bset #2,(word_FFFFACD4).w bra.s loc_63AB8 ; --------------------------------------------------------------------------- loc_63AAA: ; CODE XREF: OS3:00063A66j cmp.w (DG_EONV_KE_EONV_WAITAFTERPRESSBUILDTIME).l,d4 bcs.s loc_63AB8 bset #6,(word_FFFFACD4+1).w loc_63AB8: ; CODE XREF: OS3:00063AA8j ; OS3:00063AB0j btst #2,(word_FFFFACD4).w bne.w loc_63290 btst #6,(word_FFFFACD4+1).w beq.w loc_63E14 move.w (word_FFFFACEC).w,(word_FF8D88).l jsr sub_644B0 move.b #1,(byte_FFFFACD7).w move.w (word_FFFFACD8).w,(word_FF8D86).l clr.w (word_FFFFACE0).w clr.w (word_FFFFACF6).w bra.w loc_637E8 ; --------------------------------------------------------------------------- loc_63AF4: ; DATA XREF: OS4:0008A534o move.w (word_FFFFACEA).w,d3 cmp.w (DG_EONV_KE_EONV_RATIONALITYWAITTIME).l,d3 ; The amount of time that the rationality check will wait for the KE_EONV_RationalityTime to be met. ; Seconds bls.s loc_63B3A tst.b (byte_FFFFA4B8).w beq.s loc_63B0E move.b #$C,(byte_FF8D5E).l loc_63B0E: ; CODE XREF: OS3:00063B04j tst.b (byte_FFFFA4B9).w beq.s loc_63B1C move.b #8,(byte_FF8D5E).l loc_63B1C: ; CODE XREF: OS3:00063B12j tst.b (byte_FFFFA4B2).w beq.s loc_63B2A move.b #$A,(byte_FF8D5E).l loc_63B2A: ; CODE XREF: OS3:00063B20j bset #6,(word_FFFFACD4).w bset #2,(word_FFFFACD4).w bra.w loc_63BD2 ; --------------------------------------------------------------------------- loc_63B3A: ; CODE XREF: OS3:00063AFEj move.w (word_FFFFA4AC).w,d3 moveq #$A,d4 mulu.w d4,d3 move.w (word_FFFFA4B0).w,d0 move.l d4,d1 mulu.w d1,d0 cmp.w d3,d0 bls.s loc_63B5A move.w (word_FFFFA4AC).w,d5 mulu.w d4,d5 move.w (word_FFFFA4B0).w,d3 bra.s loc_63B64 ; --------------------------------------------------------------------------- loc_63B5A: ; CODE XREF: OS3:00063B4Cj move.w (word_FFFFA4B0).w,d5 mulu.w d4,d5 move.w (word_FFFFA4AC).w,d3 loc_63B64: ; CODE XREF: OS3:00063B58j mulu.w d1,d3 sub.w d5,d3 bcc.s loc_63B6C clr.w d3 loc_63B6C: ; CODE XREF: OS3:00063B68j cmp.w (DI_EONV_KE_EONV_REFUELINGDELTALVLMAX).l,d3 ; The minimum change in fuel level that must occur to indicate a refueling event. ; Percent bls.s loc_63BBE move.w (word_FFFFACE8).w,d3 addq.w #1,d3 bcc.s loc_63B80 move.w #$FFFF,d3 loc_63B80: ; CODE XREF: OS3:00063B7Aj move.w d3,(word_FFFFACE8).w cmp.w (DG_EONV_KE_EONV_RATIONALITYTIME).l,d3 bls.s loc_63BC2 tst.b (byte_FFFFA4B9).w beq.s loc_63B9A move.b #7,(byte_FF8D5E).l loc_63B9A: ; CODE XREF: OS3:00063B90j tst.b (byte_FFFFA4B8).w beq.s loc_63BA8 move.b #9,(byte_FF8D5E).l loc_63BA8: ; CODE XREF: OS3:00063B9Ej tst.b (byte_FFFFA4B2).w beq.s loc_63BB6 move.b #$B,(byte_FF8D5E).l loc_63BB6: ; CODE XREF: OS3:00063BACj bset #7,(word_FFFFACD4).w bra.s loc_63BC2 ; --------------------------------------------------------------------------- loc_63BBE: ; CODE XREF: OS3:00063B72j clr.w (word_FFFFACE8).w loc_63BC2: ; CODE XREF: OS3:00063B8Aj ; OS3:00063BBCj move.w (word_FFFFACEA).w,d3 addq.w #1,d3 bcc.s loc_63BCE move.w #$FFFF,d3 loc_63BCE: ; CODE XREF: OS3:00063BC8j move.w d3,(word_FFFFACEA).w loc_63BD2: ; CODE XREF: OS3:00063B36j btst #2,(word_FFFFACD4).w bne.w loc_63290 btst #7,(word_FFFFACD4).w beq.w loc_63E14 bra.w loc_63280 ; --------------------------------------------------------------------------- loc_63BEA: ; DATA XREF: OS4:0008A530o move.w (word_FFFF8232).w,d0 move.w (word_FFFFA4AC).w,d1 mulu.w #$A,d1 clr.w d3 andi.l #$FFFF,d1 add.l d1,d1 divu.w #$19,d1 cmpi.w #$FF00,d0 bge.s loc_63C0E move.l d3,d0 bra.s loc_63C26 ; --------------------------------------------------------------------------- loc_63C0E: ; CODE XREF: OS3:00063C08j cmpi.w #$800,d0 bge.s loc_63C22 addi.w #$100,d0 ext.l d0 asl.l #4,d0 divs.w #9,d0 bra.s loc_63C26 ; --------------------------------------------------------------------------- loc_63C22: ; CODE XREF: OS3:00063C12j move.w #$1000,d0 loc_63C26: ; CODE XREF: OS3:00063C0Cj ; OS3:00063C20j lea (DI_EONV_KA_EONV_PRESSURE_THRESHOLD).l,a0 ; Pressure threshold attainable only by a system with a total leak less than 0.020 inch. ; InchOfWat moveq #$22,d2 ; '"' jsr sub_878FA moveq #1,d2 cmp.b (byte_FF8D93).l,d2 bne.s loc_63C4E move.w (DG_EONV_KE_EONV_EWMA_FAIL_THRESHOLD).l,(word_FFFFACD2).w ; The fail threshold value that will set the MIL for P0442 once it is exceeded by EWMA. ; Unitless move.w (DG_EONV_KE_EONV_EWMA_FAIL_COEF).l,d1 ; This filter coefficient is used for the 0.020 inch EWMA calculation when the 0.020 inch EWMA is currently in the failing state. ; Unitless bra.s loc_63C5C ; --------------------------------------------------------------------------- loc_63C4E: ; CODE XREF: OS3:00063C3Cj move.w (DG_EONV_KE_EONV_EWMA_NONFAIL_THRESHOLD).l,(word_FFFFACD2).w ; The EWMA threshold value that will be used when the system is passing. ; Unitless move.w (DG_EONV_KE_EONV_EWMA_NONFAIL_COEF).l,d1 ; This filter coefficient is used for the 0.020 inch EWMA calculation when the 0.020 inch EWMA is currently in the passing state. ; Unitless loc_63C5C: ; CODE XREF: OS3:00063C4Cj tst.b (byte_FFFF8235).w beq.s loc_63C66 clr.b d3 bra.s loc_63C68 ; --------------------------------------------------------------------------- loc_63C66: ; CODE XREF: OS3:00063C60j moveq #2,d3 loc_63C68: ; CODE XREF: OS3:00063C64j tst.b d3 bne.s loc_63C74 clr.w (word_FF8D62).l bra.s loc_63CE6 ; --------------------------------------------------------------------------- loc_63C74: ; CODE XREF: OS3:00063C6Aj btst #6,(word_FFFFACD4).w beq.s loc_63C86 move.w #$4000,(word_FF8D62).l bra.s loc_63CE6 ; --------------------------------------------------------------------------- loc_63C86: ; CODE XREF: OS3:00063C7Aj move.w (word_FF8D84).l,d3 sub.w (word_FF8D68).l,d3 bvc.s loc_63CA0 bpl.s loc_63C9C move.w #$7FFF,d3 bra.s loc_63CA0 ; --------------------------------------------------------------------------- loc_63C9C: ; CODE XREF: OS3:00063C94j move.w #$8000,d3 loc_63CA0: ; CODE XREF: OS3:00063C92j ; OS3:00063C9Aj ext.l d3 asl.l #7,d3 divs.w d0,d3 bvc.s loc_63CB8 swap d3 eor.w d0,d3 bmi.s loc_63CB4 move.w #$7FFF,d3 bra.s loc_63CB8 ; --------------------------------------------------------------------------- loc_63CB4: ; CODE XREF: OS3:00063CACj move.w #$8000,d3 loc_63CB8: ; CODE XREF: OS3:00063CA6j ; OS3:00063CB2j addi.w #$80,d3 ; '?' bvc.s loc_63CC2 bmi.s loc_63CD8 bra.s loc_63CDE ; --------------------------------------------------------------------------- loc_63CC2: ; CODE XREF: OS3:00063CBCj cmpi.w #$7FFF,d3 bhi.s loc_63CDE andi.l #$FFFF,d3 asl.l #7,d3 cmpi.l #$FFFF,d3 bls.s loc_63CE0 loc_63CD8: ; CODE XREF: OS3:00063CBEj move.w #$FFFF,d3 bra.s loc_63CE0 ; --------------------------------------------------------------------------- loc_63CDE: ; CODE XREF: OS3:00063CC0j ; OS3:00063CC6j clr.w d3 loc_63CE0: ; CODE XREF: OS3:00063CD6j ; OS3:00063CDCj move.w d3,(word_FF8D62).l loc_63CE6: ; CODE XREF: OS3:00063C72j ; OS3:00063C84j move.w (word_FF8D86).l,d3 sub.w (word_FF8D80).l,d3 cmpi.w #$F32,d3 bgt.s loc_63D00 cmpi.w #$FC00,d3 blt.s loc_63D06 bra.s loc_63D0A ; --------------------------------------------------------------------------- loc_63D00: ; CODE XREF: OS3:00063CF6j move.w #$F32,d3 bra.s loc_63D0A ; --------------------------------------------------------------------------- loc_63D06: ; CODE XREF: OS3:00063CFCj move.w #$FC00,d3 loc_63D0A: ; CODE XREF: OS3:00063CFEj ; OS3:00063D04j tst.w d3 bge.s loc_63D10 neg.w d3 loc_63D10: ; CODE XREF: OS3:00063D0Cj move.w (word_FF8D78).l,d4 sub.w (word_FF8D72).l,d4 cmpi.w #$F32,d4 bgt.s loc_63D2A cmpi.w #$FC00,d4 blt.s loc_63D30 bra.s loc_63D34 ; --------------------------------------------------------------------------- loc_63D2A: ; CODE XREF: OS3:00063D20j move.w #$F32,d4 bra.s loc_63D34 ; --------------------------------------------------------------------------- loc_63D30: ; CODE XREF: OS3:00063D26j move.w #$FC00,d4 loc_63D34: ; CODE XREF: OS3:00063D28j ; OS3:00063D2Ej tst.w d4 bge.s loc_63D3A neg.w d4 loc_63D3A: ; CODE XREF: OS3:00063D36j move.w (word_FFFFACD2).w,d5 cmp.w (word_FF8D62).l,d5 bhi.s loc_63D70 tst.b (DG_EONV_KE_EONV_VEHICLE_HAS_TEMP_SENSOR).l ; Indicates whether or not the vehicle has a temperature sensor. ; BOOLEAN beq.s loc_63D70 cmp.w (DG_EONV_KE_EONV_PHASE2_TEMP_DELTA_MIN).l,d3 ; Minimum temperature change required to report a failed test. ; Degrees_C blt.s loc_63D68 btst #6,(byte_FF8D5F).l bne.s loc_63D70 cmp.w (DG_EONV_KE_EONV_PHASE1_TEMP_DELTA_MIN).l,d4 ; Minimum temperature change required to report a failed test. ; Degrees_C bge.s loc_63D70 loc_63D68: ; CODE XREF: OS3:00063D54j bset #4,(word_FFFFACD4).w bra.s loc_63D76 ; --------------------------------------------------------------------------- loc_63D70: ; CODE XREF: OS3:00063D44j ; OS3:00063D4Cj ... bclr #4,(word_FFFFACD4).w loc_63D76: ; CODE XREF: OS3:00063D6Ej btst #4,(word_FFFFACD4).w bne.s loc_63DFC move.w (word_FF8D5C).l,-4(a6) move.w (word_FF8D62).l,-2(a6) move.l d1,d4 tblu.w -4(a6),d4 move.w d4,(word_FF8D5C).l move.b (byte_FF8D92).l,d3 addq.b #1,d3 bcc.s loc_63DAA move.b #$FF,d3 loc_63DAA: ; CODE XREF: OS3:00063DA4j move.b d3,(byte_FF8D92).l cmp.w (word_FFFFACD2).w,d4 bls.s loc_63DD4 moveq #$5A,d0 ; 'Z' jsr sub_5F110 move.b d2,(byte_FF8D93).l bclr #7,(byte_FF8D5F).l loc_63DCC: ; CODE XREF: OS3:00063DF2j jsr sub_646DE bra.s loc_63DF4 ; --------------------------------------------------------------------------- loc_63DD4: ; CODE XREF: OS3:00063DB4j cmp.b (DG_EONV_KE_EONV_EWMATESTSAMPLESTOPASS).l,d3 ; The number of EWMA test samples required before the diagnostic is allowed to report a pass. ; Unitless bcs.s loc_63DF4 moveq #$5A,d0 ; 'Z' jsr sub_5F0BE clr.b (byte_FF8D93).l bset #7,(byte_FF8D5F).l bra.s loc_63DCC ; --------------------------------------------------------------------------- loc_63DF4: ; CODE XREF: OS3:00063DD2j ; OS3:00063DDAj bset #5,(byte_FF8D5F).l loc_63DFC: ; CODE XREF: OS3:00063D7Cj btst #5,(byte_FF8D5F).l bne.s loc_63E0E btst #4,(word_FFFFACD4).w beq.s loc_63E14 loc_63E0E: ; CODE XREF: OS3:00063E04j move.b #7,(byte_FFFFACD6).w loc_63E14: ; CODE XREF: OS3:00063286j ; OS3:00063296j ... movem.l (sp)+,d0-d2/d6/a0 unlk a6 rts ; =============== S U B R O U T I N E ======================================= sub_63E1C: ; CODE XREF: sub_63172+4Ap ; sub_63172+64p ... bset #0,(word_FFFFACD4).w clr.b (byte_FFFFACD7).w move.b #7,(byte_FFFFACD6).w rts ; End of function sub_63E1C ; =============== S U B R O U T I N E ======================================= sub_63E2E: ; CODE XREF: OS3:loc_632AAp ; OS3:loc_633C0p ... move.b (byte_FFFFA4B9).w,d3 or.b (byte_FFFFA4B8).w,d3 beq.s locret_63E48 bset #0,(word_FFFFACD4).w clr.b (byte_FFFFACD7).w move.b #6,(byte_FFFFACD6).w locret_63E48: ; CODE XREF: sub_63E2E+8j rts ; End of function sub_63E2E ; =============== S U B R O U T I N E ======================================= sub_63E4A: ; CODE XREF: DoLoopG+248p move.b (byte_FFFFA4F7).w,d3 bne.s loc_63E5E jsr sub_64276 move.b #9,(byte_FFFFA4F7).w bra.s loc_63E64 ; --------------------------------------------------------------------------- loc_63E5E: ; CODE XREF: sub_63E4A+4j subq.b #1,d3 move.b d3,(byte_FFFFA4F7).w loc_63E64: ; CODE XREF: sub_63E4A+12j jsr sub_641DA rts ; End of function sub_63E4A ; =============== S U B R O U T I N E ======================================= sub_63E6C: ; CODE XREF: DoLoopF+12Ep DoLoopF+5DAp jsr sub_63E94 jsr sub_64216 rts ; End of function sub_63E6C ; =============== S U B R O U T I N E ======================================= sub_63E7A: ; CODE XREF: DoLoopC+39Ep jsr sub_80338 jsr sub_643EE jsr sub_645B0 jsr sub_64642 rts ; End of function sub_63E7A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_63E94: ; CODE XREF: sub_63E6Cp sub_646F6p ... var_10 = -$10 var_E = -$E var_A = -$A var_8 = -8 link a6,#-$10 movem.l d0-d2/d6-a0,-(sp) move.w (word_FFFFA4E2).w,d2 move.w (word_FFFF9B4E).w,d1 movea.w (DI_EONV_KE_FUEL_LVL_VOLUME_FILT_COEF).l,a0 ; Filter coefficient for fuel level variable used by slosh detection. ; 0-1 move.l a0,d0 jsr sub_26608 move.w d0,d6 move.w d6,(word_FFFFA4E2).w move.w (word_FFFFA4E4).w,d2 move.w (word_FFFF9B4C).w,d1 move.l a0,d0 jsr sub_26608 move.w d0,(word_FFFFA4E4).w move.w (word_FFFFA4DC).w,d2 move.w (word_FFFF9B4E).w,d1 move.w (DI_EONV_KE_FUEL_LVL_FILT_COEF_SLOSH_PRI).l,d0 ; Filter coefficient for fuel level variable used by slosh detection. ; 0-1 jsr sub_26608 move.w d0,d7 move.w d7,(word_FFFFA4DC).w move.w (word_FFFFA4DE).w,d2 move.w (word_FFFF9B4C).w,d1 move.w (DI_EONV_KE_FUEL_LVL_FILT_COEF_SLOSH_SEC).l,d0 ; Filter coefficient for fuel level variable used by slosh detection. ; 0-1 jsr sub_26608 move.w d0,(word_FFFFA4DE).w move.w (DI_EONV_KE_EONV_FL_SLOSH_PERIOD).l,d2 ; To determine the sample period for fuel level slosh. ; Counts cmp.w (word_FFFFA4D2).w,d2 bhi.s loc_63F1E move.w d7,(word_FFFFA4D4).w move.w d0,(word_FFFFA4D6).w clr.w (word_FFFFA4D2).w clr.w (word_FFFFA4D8).w clr.w (word_FFFFA4DA).w loc_63F1E: ; CODE XREF: sub_63E94+74j move.w (word_FFFFA4D2).w,d4 addq.w #1,d4 bcc.s loc_63F2A move.w #$FFFF,d4 loc_63F2A: ; CODE XREF: sub_63E94+90j move.w d4,(word_FFFFA4D2).w sub.w (word_FFFFA4D4).w,d7 bcc.s loc_63F36 neg.w d7 loc_63F36: ; CODE XREF: sub_63E94+9Ej move.w d7,(word_FFFFA4CA).w sub.w (word_FFFFA4D6).w,d0 bcc.s loc_63F42 neg.w d0 loc_63F42: ; CODE XREF: sub_63E94+AAj move.w d0,(word_FFFFA4CC).w move.w #$4B00,d5 cmp.w d6,d5 bls.s loc_63F5C andi.l #$FFFF,d6 add.l d6,d6 divu.w #5,d6 bra.s loc_63F60 ; --------------------------------------------------------------------------- loc_63F5C: ; CODE XREF: sub_63E94+B8j move.w #$1E00,d6 loc_63F60: ; CODE XREF: sub_63E94+C6j movea.l #DI_EONV_KV_EONV_FUEL_LEVEL_SLOSH_PRIM,a2 ; Threshold for the determination of detected slosh if the fuel level delta is too high. ; Liters tblu.w (a2),d6 move.w d6,d1 cmp.w (word_FFFFA4E4).w,d5 bls.s loc_63F80 clr.l d6 move.w (word_FFFFA4E4).w,d6 add.l d6,d6 divu.w #5,d6 bra.s loc_63F84 ; --------------------------------------------------------------------------- loc_63F80: ; CODE XREF: sub_63E94+DCj move.w #$1E00,d6 loc_63F84: ; CODE XREF: sub_63E94+EAj movea.l #DI_EONV_KV_EONV_FUEL_LEVEL_SLOSH_SEC,a2 ; Threshold for the determination of detected slosh if the fuel level delta is too high. ; Liters tblu.w (a2),d6 cmp.w d1,d7 bls.s loc_63FA2 move.w (word_FFFFA4D8).w,d3 addq.w #1,d3 bcc.s loc_63F9E move.w #$FFFF,d3 loc_63F9E: ; CODE XREF: sub_63E94+104j move.w d3,(word_FFFFA4D8).w loc_63FA2: ; CODE XREF: sub_63E94+FCj cmp.w d6,d0 bls.s loc_63FB6 move.w (word_FFFFA4DA).w,d3 addq.w #1,d3 bcc.s loc_63FB2 move.w #$FFFF,d3 loc_63FB2: ; CODE XREF: sub_63E94+118j move.w d3,(word_FFFFA4DA).w loc_63FB6: ; CODE XREF: sub_63E94+110j move.w (word_FFFFA4D8).w,d3 cmp.w (DI_EONV_KE_EONV_FL_SLOSH_PERIOD_PRIM).l,d3 ; To determine unacceptable liquid slosh period in the secondary fuel tank. ; Counts bcc.s loc_63FCE move.w (word_FFFFA4DA).w,d3 cmp.w (DI_EONV_KE_EONV_FL_SLOSH_PERIOD_SEC).l,d3 ; ; Counts bcs.s loc_63FD6 loc_63FCE: ; CODE XREF: sub_63E94+12Cj move.b #1,(byte_FFFF8236).w bra.s loc_63FDE ; --------------------------------------------------------------------------- loc_63FD6: ; CODE XREF: sub_63E94+138j cmp.w d2,d4 bcs.s loc_63FDE clr.b (byte_FFFF8236).w loc_63FDE: ; CODE XREF: sub_63E94+140j ; sub_63E94+144j lea var_8(a6),a2 move.b (byte_FFFF9E90).w,6(a2) move.l (byte_FFFF9E8C).w,2(a2) move.w (word_FFFF9E8A).w,(a2) move.b 6(a2),var_A(a6) move.l 2(a2),var_E(a6) move.w (a2),var_10(a6) btst #6,var_E(a6) sne d3 neg.b d3 move.b d3,(byte_FFFF8235).w btst #7,(byte_FFFF9B2E).w beq.s loc_64020 move.w (word_FFFF9B50).w,(word_FFFFA4AC).w bra.s loc_64028 ; --------------------------------------------------------------------------- loc_64020: ; CODE XREF: sub_63E94+182j move.w (DI_EONV_KE_EONV_DEFAULT_FUEL_LEVEL).l,(word_FFFFA4AC).w loc_64028: ; CODE XREF: sub_63E94+18Aj move.l (dword_FFFFAD34).w,d3 lsr.l #4,d3 move.w d3,(word_FFFF8230).w move.w (word_FFFFA4B0).w,d3 sub.w (word_FFFFA4AC).w,d3 bcc.s loc_6403E neg.w d3 loc_6403E: ; CODE XREF: sub_63E94+1A6j mulu.w #$A,d3 cmp.w (DI_EONV_KE_EONV_REFUELINGDELTALVLMAX).l,d3 ; The minimum change in fuel level that must occur to indicate a refueling event. ; Percent bls.s loc_64050 move.b #1,(byte_FFFFA4B8).w loc_64050: ; CODE XREF: sub_63E94+1B4j movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_63E94 ; =============== S U B R O U T I N E ======================================= sub_64058: ; CODE XREF: OS3:loc_63274p btst #7,(byte_FF8D5F).l beq.s loc_6406C move.w (DI_EONV_KE_EONV_TIME_BETWEEN_TESTS_MAX).l,(word_FFFF823A).w ; Maximum time to wait between completed EONV tests. ; Hours bra.s loc_64074 ; --------------------------------------------------------------------------- loc_6406C: ; CODE XREF: sub_64058+8j move.w (DI_EONV_KE_EONV_TIME_BETWEEN_TESTS_MIN).l,(word_FFFF823A).w ; Minimum time to wait between completed EONV tests. ; Hours loc_64074: ; CODE XREF: sub_64058+12j tst.b (byte_FFFF8235).w beq.s loc_64084 move.b #2,(byte_FFFF8234).w bra.w locret_641D8 ; --------------------------------------------------------------------------- loc_64084: ; CODE XREF: sub_64058+20j moveq #1,d4 cmp.b (byte_FFFFA9DA).w,d4 beq.s loc_640DA move.w (word_FFFF8238).w,d3 cmp.w (word_FFFF823A).w,d3 bcs.w loc_641D4 btst #0,(byte_FFFFA9D6).w beq.w loc_641D4 move.l (dword_FFFFAD30).w,d3 cmp.l (DI_EONV_KE_EONV_ENGINE_RUN_TIME_MIN).l,d3 ; To execute EONV, the engine run time must exceed this value. ; Seconds bcs.w loc_641D4 move.w (word_FFFF82EA).w,d3 cmp.w (DI_EONV_KE_EONV_TSTAT_TARGET_TEMP).l,d3 ; Coolant temperature must exceed this value in order to execute EONV diagnostic. ; Degrees_C blt.w loc_641D4 move.w (word_FFFF8232).w,d3 cmp.w (DI_EONV_KE_EONV_AMBIENTAIRTEMP_LOWER_LIM).l,d3 ; Lower boundary of the ambient air temperature window to enable EONV. ; Degrees_C blt.w loc_641D4 move.w (word_FFFF8232).w,d3 cmp.w (DI_EONV_KE_EONV_AMBIENTAIRTEMP_UPPER_LIM).l,d3 ; Upper boundary of the ambient air temperature window to enable EONV. ; Degrees_C bgt.w loc_641D4 loc_640DA: ; CODE XREF: sub_64058+32j tst.b (byte_FFFFA19F).w beq.w loc_641D4 cmpi.b #5,(ThrottleControlMode2?).w bne.s loc_640F6 move.w (word_FFFFB4A6).w,d3 mulu.w #5,d3 lsr.w #7,d3 bra.s loc_64112 ; --------------------------------------------------------------------------- loc_640F6: ; CODE XREF: sub_64058+90j move.w (word_FFFFB4A2).w,d3 mulu.w #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_6410E lsr.w #7,d3 cmpi.w #$FF,d3 bls.s loc_64112 loc_6410E: ; CODE XREF: sub_64058+ACj move.b #$FF,d3 loc_64112: ; CODE XREF: sub_64058+9Cj ; sub_64058+B4j cmp.b (DI_EONV_KE_EONV_SYSTEM_VOLTAGE_MIN).l,d3 ; Minimum allowed system voltage below which system voltage will be considered too low. ; Volts bcs.w loc_641D4 move.w (word_FFFFA4AE).w,d3 cmp.w (DI_EONV_KE_EONV_FUEL_VAP_TEMP_MIN).l,d3 ; Lower fuel vapor temperature boundary for enabling EONV diagnostic. ; Degrees_C blt.w loc_641D4 move.w (word_FFFFA4AE).w,d3 cmp.w (DI_EONV_KE_EONV_FUEL_VAP_TEMP_MAX).l,d3 ; Upper fuel vapor temperature boundary for enabling EONV diagnostic. ; Degrees_C bgt.w loc_641D4 move.w (word_FFFFA4AC).w,d3 cmp.w (DI_EONV_KE_EONV_FUEL_LEVEL_MIN).l,d3 ; Lower fuel level boundary for enabling EONV diagnostic. ; Percent bcs.w loc_641D4 move.w (word_FFFFA4AC).w,d3 cmp.w (DI_EONV_KE_EONV_FUEL_LEVEL_MAX).l,d3 ; Upper fuel level boundary for enabling EONV diagnostic. ; Percent bhi.w loc_641D4 move.l (dword_FFFF808E).w,d3 cmp.l (DI_EONV_KE_EONV_TOTALVEHICLEMILEAGEMIN).l,d3 ; Mileage at which the EONV diagnostic can begin running. To prevent a dead battery at the assembly plant. ; Miles bcs.s loc_641D4 btst #1,(byte_FFFF88D4).w bne.s loc_641D4 btst #1,(byte_FFFF88D6).w bne.s loc_641D4 btst #1,(byte_FFFF88D8).w bne.s loc_641D4 btst #1,(byte_FFFF88DC).w bne.s loc_641D4 btst #1,(byte_FFFF88E6).w bne.s loc_641D4 btst #1,(byte_FFFF8980).w bne.s loc_641D4 btst #1,(byte_FFFF8978).w bne.s loc_641D4 btst #7,(byte_FFFF8252).w bne.s loc_641D4 btst #1,(byte_FFFF8996).w bne.s loc_641D4 btst #1,(byte_FFFF8AA2).w bne.s loc_641D4 btst #1,(byte_FFFF8A80).w bne.s loc_641D4 btst #1,(byte_FFFF8A82).w bne.s loc_641D4 btst #1,(byte_FFFF8A84).w bne.s loc_641D4 tst.b (byte_FFFFA4C8).w beq.s loc_641D4 move.b d4,(byte_FFFF8234).w bra.s locret_641D8 ; --------------------------------------------------------------------------- loc_641D4: ; CODE XREF: sub_64058+3Cj ; sub_64058+46j ... clr.b (byte_FFFF8234).w locret_641D8: ; CODE XREF: sub_64058+28j ; sub_64058+17Aj rts ; End of function sub_64058 ; =============== S U B R O U T I N E ======================================= sub_641DA: ; CODE XREF: sub_63E4A:loc_63E64p move.w (word_FFFFAEBC).w,d3 cmp.w (DI_EONV_KE_EONV_MIN_VEHICLE_SPEED).l,d3 ; Minimum vehicle speed to start calculation of distance. ; MPH bcs.s loc_64202 mulu.w #9,d3 divu.w #$47F,d3 add.w (word_FFFFA4C6).w,d3 bcs.s loc_641FA cmpi.w #$FFF0,d3 bls.s loc_641FE loc_641FA: ; CODE XREF: sub_641DA+18j move.w #$FFF0,d3 loc_641FE: ; CODE XREF: sub_641DA+1Ej move.w d3,(word_FFFFA4C6).w loc_64202: ; CODE XREF: sub_641DA+Aj move.w (word_FFFFA4C6).w,d3 cmp.w (DI_EONV_KE_EONV_MIN_TRIP_DISTANCE).l,d3 ; Minimum distance traveled to enable the EONV diagnostic. ; Miles bcs.s locret_64214 move.b #1,(byte_FFFFA4C8).w locret_64214: ; CODE XREF: sub_641DA+32j rts ; End of function sub_641DA ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_64216: ; CODE XREF: sub_63E6C+6p var_2 = -2 link a6,#-2 movem.l d0-d2/a0-a1,-(sp) move.w (word_FFFFA4B4).w,d2 move.w (word_FFFFA4B6).w,d1 move.w (DI_EONV_KE_EONV_TANK_VACUUM_FILT_COEF).l,d0 ; Filter coefficient for the tank vacuum variable. ; 0-1 lea var_2(a6),a1 movea.l a1,a0 jsr loc_265D6 move.w d0,(word_FFFFA4B4).w move.w (word_FFFF9B56).w,d1 move.w (word_FFFFA4AE).w,d2 move.w (DI_EONV_KE_EONV_FUEL_VAPORTEMP_FILT_COEF).l,d0 ; Filter coefficient for the fuel vapor temperature variable. ; 0-1 jsr loc_26610 move.w d0,(word_FFFFA4AE).w move.w (word_FFFFA4EE).w,d2 move.w (word_FFFFA4B6).w,d1 move.w (DI_EONV_KE_EONV_TANK_VAC_FILTCOEF_REFUEL).l,d0 ; Filter coefficient for the refueling tank vacuum variable. ; 0-1 movea.l a1,a0 jsr loc_265D6 move.w d0,(word_FFFFA4EE).w movem.l (sp)+,d0-d2/a0-a1 unlk a6 rts ; End of function sub_64216 ; =============== S U B R O U T I N E ======================================= sub_64276: ; CODE XREF: sub_63E4A+6p movem.l d0-d2/d6-a0,-(sp) move.w (word_FFFFAEBC).w,d1 move.w (word_FFFFA0DC).w,d7 move.w (word_FFFFB3E8).w,d6 cmp.w (DI_EONV_KE_EONV_AMBAIR_VEHSPD).l,d1 ; Calibrated amount of vehicle speed needed to update minimum intake air temperature and the ambient air temperature estimate. ; MPH bcc.s loc_642AE cmp.w (DI_EONV_KE_EONV_AMBAIR_AIRFLOW).l,d7 ; Calibrated amount of airflow needed to prevent the idle counter from increasing. ; Grams_Per_Second bcc.s loc_642AE move.w (word_FFFFA4BE).w,d3 cmp.w (DI_EONV_KE_EONV_AMBAIR_IDLE_COUNTER_MAX).l,d3 ; Maximum count for the EONV_AmbAir_Idle_Counter. ; Counts bcc.s loc_642D8 addi.w #$A,d3 bcc.s loc_642D4 move.w #$FFFF,d3 bra.s loc_642D4 ; --------------------------------------------------------------------------- loc_642AE: ; CODE XREF: sub_64276+16j ; sub_64276+1Ej cmpi.w #$4000,d7 bcc.s loc_642BA move.l d7,d3 lsr.w #2,d3 bra.s loc_642BE ; --------------------------------------------------------------------------- loc_642BA: ; CODE XREF: sub_64276+3Cj move.w #$1000,d3 loc_642BE: ; CODE XREF: sub_64276+42j movea.l #DI_EONV_KV_EONV_AMBAIR_IDLE_DECREMENTER,a2 ; Decrement the estimated ambient air idle counter based on air flow at idle. ; Counter tblu.w (a2),d3 movea.w d3,a2 move.w (word_FFFFA4BE).w,d3 sub.w a2,d3 bcc.s loc_642D4 clr.w d3 loc_642D4: ; CODE XREF: sub_64276+30j ; sub_64276+36j ... move.w d3,(word_FFFFA4BE).w loc_642D8: ; CODE XREF: sub_64276+2Aj move.l (DI_EONV_KE_EONV_AMBAIRTIME).l,d0 ; Delays the update of calculated estimated ambient air temperature. ; Seconds movea.l #unk_FFA4C0,a0 jsr sub_276B4 tst.b d0 beq.w loc_643D2 cmp.w (word_FFFFA4BC).w,d6 bge.s loc_642FA move.w d6,(word_FFFFA4BC).w loc_642FA: ; CODE XREF: sub_64276+7Ej tst.w (word_FFFFA4BE).w bne.w loc_643E8 cmpi.w #$3200,d1 bcc.s loc_64314 andi.l #$FFFF,d1 divu.w #5,d1 bra.s loc_64318 ; --------------------------------------------------------------------------- loc_64314: ; CODE XREF: sub_64276+90j move.w #$A00,d1 loc_64318: ; CODE XREF: sub_64276+9Cj cmpi.w #$4000,d7 bcc.s loc_64324 move.l d7,d0 lsr.w #2,d0 bra.s loc_64328 ; --------------------------------------------------------------------------- loc_64324: ; CODE XREF: sub_64276+A6j move.w #$1000,d0 loc_64328: ; CODE XREF: sub_64276+ACj moveq #$11,d2 movea.l #DI_EONV_KA_EONV_ESTAMBAIR_OFFSET,a0 ; Offset the estimated ambient air temperature from the intake air temperature using vehicle speed and engine airflow. ; Degrees_C jsr SurfaceTableLookup sub.w d0,d6 bvc.s loc_6433E bmi.s loc_6434C bra.s loc_64352 ; --------------------------------------------------------------------------- loc_6433E: ; CODE XREF: sub_64276+C2j cmpi.w #$F32,d6 bgt.s loc_6434C cmpi.w #$FC00,d6 blt.s loc_64352 bra.s loc_64356 ; --------------------------------------------------------------------------- loc_6434C: ; CODE XREF: sub_64276+C4j ; sub_64276+CCj move.w #$F32,d6 bra.s loc_64356 ; --------------------------------------------------------------------------- loc_64352: ; CODE XREF: sub_64276+C6j ; sub_64276+D2j move.w #$FC00,d6 loc_64356: ; CODE XREF: sub_64276+D4j ; sub_64276+DAj move.w d6,(word_FFFFA4BA).w move.w (word_FFFFA4BC).w,d3 cmp.w d6,d3 bge.s loc_64398 cmpi.w #$4000,d7 bcc.s loc_6436E move.l d7,d3 lsr.w #2,d3 bra.s loc_64372 ; --------------------------------------------------------------------------- loc_6436E: ; CODE XREF: sub_64276+F0j move.w #$1000,d3 loc_64372: ; CODE XREF: sub_64276+F6j movea.l #DI_EONV_KV_EONV_AMBAIRTEMP_FILT_STEP,a2 ; Change the estimated ambient air temperature based on air flow. ; Degrees_C tblu.w (a2),d3 add.w (word_FFFFA4BC).w,d3 bvs.s loc_643BA cmpi.w #$F32,d3 bgt.s loc_643CC cmpi.w #$FC00,d3 bge.s loc_64392 loc_6438E: ; CODE XREF: sub_64276+146j ; sub_64276+152j move.w #$FC00,d3 loc_64392: ; CODE XREF: sub_64276+116j ; sub_64276+154j ... move.w d3,(word_FFFFA4BC).w bra.s loc_643E8 ; --------------------------------------------------------------------------- loc_64398: ; CODE XREF: sub_64276+EAj cmp.w d6,d3 ble.s loc_643E8 clr.b d5 cmpi.w #$4000,d7 bcc.s loc_643A8 lsr.w #2,d7 bra.s loc_643AC ; --------------------------------------------------------------------------- loc_643A8: ; CODE XREF: sub_64276+12Cj move.w #$1000,d7 loc_643AC: ; CODE XREF: sub_64276+130j movea.l #DI_EONV_KV_EONV_AMBAIRTEMP_FILT_STEP,a2 ; Change the estimated ambient air temperature based on air flow. ; Degrees_C tblu.w (a2),d7 sub.w d7,d3 bvc.s loc_643BE loc_643BA: ; CODE XREF: sub_64276+10Aj bmi.s loc_643CC bra.s loc_6438E ; --------------------------------------------------------------------------- loc_643BE: ; CODE XREF: sub_64276+142j cmpi.w #$F32,d3 bgt.s loc_643CC cmpi.w #$FC00,d3 blt.s loc_6438E bra.s loc_64392 ; --------------------------------------------------------------------------- loc_643CC: ; CODE XREF: sub_64276+110j ; sub_64276:loc_643BAj ... move.w #$F32,d3 bra.s loc_64392 ; --------------------------------------------------------------------------- loc_643D2: ; CODE XREF: sub_64276+76j cmp.w (word_FFFFA4C4).w,d6 bge.s loc_643DC move.w d6,(word_FFFFA4C4).w loc_643DC: ; CODE XREF: sub_64276+160j movea.w (word_FFFFA4C4).w,a2 move.w a2,(word_FFFFA4BA).w move.w a2,(word_FFFFA4BC).w loc_643E8: ; CODE XREF: sub_64276+88j ; sub_64276+120j ... movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_64276 ; =============== S U B R O U T I N E ======================================= sub_643EE: ; CODE XREF: sub_63E7A+6p movem.l d0-d1/a0,-(sp) btst #0,(word_FFFFACD4).w beq.s loc_64478 tst.b (byte_FFFFA4F6).w bne.s loc_64416 move.b (byte_FFFFACD7).w,(byte_FFFFA4CE).w tst.b (byte_FFFFA4E6).w bne.w loc_64490 move.b #1,(byte_FFFFA4F6).w bra.s loc_64484 ; --------------------------------------------------------------------------- loc_64416: ; CODE XREF: sub_643EE+10j tst.b (byte_FFFFA4E7).w beq.s loc_6443A move.w (DI_EONV_KE_EONV_VENT_VLV_STRIKE_ON_TMR).l,d0 ; The limit of time that the vent valve will be commanded closed during the cleaning cycle period. ; Seconds movea.l #unk_FFA4EA,a0 jsr sub_276D4 tst.b d0 bne.s loc_6443A move.b #1,(byte_FFFFA4CE).w bra.s loc_6443E ; --------------------------------------------------------------------------- loc_6443A: ; CODE XREF: sub_643EE+2Cj ; sub_643EE+42j clr.b (byte_FFFFA4CE).w loc_6443E: ; CODE XREF: sub_643EE+4Aj move.w (DI_EONV_KE_EONV_VENT_VLV_STRIKE_PERIOD).l,d0 ; Determines the limit of the vent valve cleaning cycle period. ; Seconds movea.l #unk_FFA4EC,a0 jsr sub_276D4 tst.b d0 beq.s loc_64490 move.b #1,(byte_FFFFA4CE).w move.b (byte_FFFFA4E6).w,d3 addq.b #1,d3 bcc.s loc_64466 move.b #$FF,d3 loc_64466: ; CODE XREF: sub_643EE+72j move.b d3,(byte_FFFFA4E6).w cmp.b (DI_EONV_KE_EONV_VENT_VLV_STRIKE_LIM).l,d3 ; Determines the number of vent valve strike cycles used by the cleaning process. ; Counts bcs.s loc_64484 clr.b (byte_FFFFA4F6).w bra.s loc_64490 ; --------------------------------------------------------------------------- loc_64478: ; CODE XREF: sub_643EE+Aj clr.b (byte_FFFFA4CE).w clr.b (byte_FFFFA4F6).w clr.b (byte_FFFFA4E6).w loc_64484: ; CODE XREF: sub_643EE+26j ; sub_643EE+82j move.w (GlobalClock).w,(word_FFFFA4EC).w move.w (GlobalClock).w,(word_FFFFA4EA).w loc_64490: ; CODE XREF: sub_643EE+1Cj ; sub_643EE+64j ... move.b (byte_FFFFA4CE).w,d3 move.b d3,(byte_FFFFA4E7).w btst #0,(word_FFFFACD4).w beq.s loc_644A6 move.b d3,(byte_FFFFA4AA).w bra.s loc_644AA ; --------------------------------------------------------------------------- loc_644A6: ; CODE XREF: sub_643EE+B0j clr.b (byte_FFFFA4AA).w loc_644AA: ; CODE XREF: sub_643EE+B6j movem.l (sp)+,d0-d1/a0 rts ; End of function sub_643EE ; =============== S U B R O U T I N E ======================================= sub_644B0: ; CODE XREF: OS3:000633A8p ; OS3:000637CEp ... movem.l d0-d2,-(sp) move.w (word_FFFF8182).w,d3 moveq #$19,d1 muls.w d1,d3 divs.w (DI_EONV_KE_EONV_VAC_SENSOR_SCALE_SLOPE).l,d3 ; Slope used to rescale tank vacuum sensor voltage to inches of water. ; Inches_H2O/Volts move.l d3,d5 ext.l d5 clr.l d0 move.w (DI_EONV_KE_EONV_TANK_VACUUM_REZERO_MIN).l,d0 ; Tank vacuum sensor voltage below which the tank vacuum variable will not be rezeroed. ; Volts add.l d5,d0 cmpi.l #$FFFF8000,d0 blt.s loc_644E6 cmpi.l #$7FFF,d0 ble.s loc_644EA move.w #$7FFF,d0 bra.s loc_644EA ; --------------------------------------------------------------------------- loc_644E6: ; CODE XREF: sub_644B0+26j move.w #$8000,d0 loc_644EA: ; CODE XREF: sub_644B0+2Ej ; sub_644B0+34j ext.l d3 clr.l d2 move.w (DI_EONV_KE_EONV_TANK_VACUUM_REZERO_MAX).l,d2 ; Tank vacuum sensor voltage above which the tank vacuum variable will not be rezeroed. ; Volts add.l d3,d2 cmpi.l #$FFFF8000,d2 blt.s loc_64510 cmpi.l #$7FFF,d2 bgt.s loc_6450A move.w d2,d3 bra.s loc_64514 ; --------------------------------------------------------------------------- loc_6450A: ; CODE XREF: sub_644B0+54j move.w #$7FFF,d3 bra.s loc_64514 ; --------------------------------------------------------------------------- loc_64510: ; CODE XREF: sub_644B0+4Cj move.w #$8000,d3 loc_64514: ; CODE XREF: sub_644B0+58j ; sub_644B0+5Ej clr.l d4 move.w (word_FFFFA4E0).w,d4 ext.l d0 cmp.l d4,d0 bgt.s loc_64570 ext.l d3 cmp.l d4,d3 blt.s loc_64570 clr.l d0 move.w (word_FFFFA4E0).w,d0 move.w (DI_EONV_KE_EONV_FUEL_TANK_VACUUM_OFFSET).l,d3 ; The fuel tank vacuum offset for EONV. ; Inches H2O muls.w d1,d3 divs.w (DI_EONV_KE_EONV_VAC_SENSOR_SCALE_SLOPE).l,d3 ; Slope used to rescale tank vacuum sensor voltage to inches of water. ; Inches_H2O/Volts ext.l d3 add.l d0,d3 cmpi.l #$FFFF8000,d3 blt.s loc_64554 cmpi.l #$7FFF,d3 ble.s loc_64558 move.w #$7FFF,d3 bra.s loc_64558 ; --------------------------------------------------------------------------- loc_64554: ; CODE XREF: sub_644B0+94j move.w #$8000,d3 loc_64558: ; CODE XREF: sub_644B0+9Cj ; sub_644B0+A2j move.w d3,(word_FFFF823C).w clr.w (word_FFFFA4B4).w clr.w (word_FFFFA4EE).w move.b #1,(byte_FFFFA4E8).w clr.b (byte_FFFFA4B2).w bra.s loc_64576 ; --------------------------------------------------------------------------- loc_64570: ; CODE XREF: sub_644B0+6Ej ; sub_644B0+74j move.b #1,(byte_FFFFA4B2).w loc_64576: ; CODE XREF: sub_644B0+BEj movem.l (sp)+,d0-d2 rts ; End of function sub_644B0 ; =============== S U B R O U T I N E ======================================= sub_6457C: ; CODE XREF: sub_6301E+6p tst.b (byte_FFFF8234).w beq.s locret_645AE btst #5,(byte_FF8D5F).l beq.s loc_64596 loc_6458C: ; CODE XREF: sub_6457C+30j clr.w (word_FFFF8238).w clr.b (byte_FFFF823E).w bra.s locret_645AE ; --------------------------------------------------------------------------- loc_64596: ; CODE XREF: sub_6457C+Ej move.b (byte_FFFF823E).w,d3 addq.b #1,d3 bcc.s loc_645A2 move.b #$FF,d3 loc_645A2: ; CODE XREF: sub_6457C+20j move.b d3,(byte_FFFF823E).w cmp.b (DI_EONV_KE_EONV_ATTEMPTS_MAX).l,d3 ; Maximum number of attempts that the diagnostic is allowed to enable in a given time frame. ; Counts bcc.s loc_6458C locret_645AE: ; CODE XREF: sub_6457C+4j ; sub_6457C+18j rts ; End of function sub_6457C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_645B0: ; CODE XREF: sub_63E7A+Cp var_2 = -2 link a6,#-2 movem.l d0-d2/a0,-(sp) move.w (word_FFFF9B2C).w,d3 asl.w #6,d3 mulu.w #5,d3 lsr.l #8,d3 move.w d3,(word_FFFFA4E0).w move.w (word_FFFF823C).w,d3 ext.l d3 clr.l d1 move.w (word_FFFFA4E0).w,d1 sub.l d3,d1 tst.l d1 blt.s loc_645E8 cmpi.l #$FFFF,d1 bls.s loc_645EA move.w #$FFFF,d1 bra.s loc_645EA ; --------------------------------------------------------------------------- loc_645E8: ; CODE XREF: sub_645B0+28j clr.w d1 loc_645EA: ; CODE XREF: sub_645B0+30j ; sub_645B0+36j mulu.w (DI_EONV_KE_EONV_VAC_SENSOR_SCALE_SLOPE).l,d1 ; Slope used to rescale tank vacuum sensor voltage to inches of water. ; Inches_H2O/Volts divu.w #$19,d1 bvs.s loc_645FA tst.w d1 bge.s loc_645FE loc_645FA: ; CODE XREF: sub_645B0+44j move.w #$7FFF,d1 loc_645FE: ; CODE XREF: sub_645B0+48j add.w (DI_EONV_KE_EONV_FUEL_TANK_VACUUM_OFFSET).l,d1 ; The fuel tank vacuum offset for EONV. ; Inches H2O bvc.s loc_64612 bpl.s loc_6460E move.w #$7FFF,d1 bra.s loc_64612 ; --------------------------------------------------------------------------- loc_6460E: ; CODE XREF: sub_645B0+56j move.w #$8000,d1 loc_64612: ; CODE XREF: sub_645B0+54j ; sub_645B0+5Cj move.w d1,(word_FFFFA4B6).w tst.b (byte_FFFFA4E8).w beq.s loc_64622 move.w d1,(word_FFFFA4F2).w bra.s loc_6463A ; --------------------------------------------------------------------------- loc_64622: ; CODE XREF: sub_645B0+6Aj move.w (word_FFFFA4F2).w,d2 move.w (DI_EONV_KE_EONV_SLOSH_TANKVAC_FILT_COEF).l,d0 ; Filtered coefficient for vacuum slosh. ; 0-1 lea var_2(a6),a0 jsr loc_265D6 move.w d0,(word_FFFFA4F2).w loc_6463A: ; CODE XREF: sub_645B0+70j movem.l (sp)+,d0-d2/a0 unlk a6 rts ; End of function sub_645B0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_64642: ; CODE XREF: sub_63E7A+12p var_2 = -2 link a6,#-2 move.l d1,-(sp) move.w (word_FFFFA4B6).w,d5 sub.w (word_FFFFA4F0).w,d5 tst.w d5 bge.s loc_64656 neg.w d5 loc_64656: ; CODE XREF: sub_64642+10j move.w (word_FFFFA4D0).w,var_2(a6) move.w (GlobalClock).w,d1 sub.w var_2(a6),d1 cmp.w (DI_EONV_KE_EONV_SNAPSHOT_DELAY_MAX).l,d1 ; The time delta at which the current vacuum is compared to a previous vacuum in order to detect a refueling event. ; Seconds bcc.s loc_64678 tst.b (byte_FFFFA4E8).w bne.s loc_64678 tst.b (byte_FFFFA4AA).w bne.s loc_64688 loc_64678: ; CODE XREF: sub_64642+28j ; sub_64642+2Ej move.w (GlobalClock).w,(word_FFFFA4D0).w move.w (word_FFFFA4EE).w,(word_FFFFA4F4).w clr.b (byte_FFFFA4E8).w loc_64688: ; CODE XREF: sub_64642+34j move.w (word_FFFFA4EE).w,d1 move.l d1,d4 sub.w (word_FFFFA4F4).w,d4 tst.w d4 bge.s loc_64698 neg.w d4 loc_64698: ; CODE XREF: sub_64642+52j move.w (word_FFFFA4AC).w,d3 asl.w #2,d3 andi.l #$FFFF,d3 divu.w #5,d3 movea.l #DI_EONV_KV_EONV_DELTA_VACUUM_RISE_MAX,a2 ; Change in vacuum over time above this level will indicate that a refuelevent has occurred. ; Inches H2O tbls.w (a2),d3 cmp.w d3,d4 bgt.s loc_646BE cmp.w (DI_EONV_KE_EONV_TANK_PRESSURE_MAX).l,d1 ; Maximum allowable pressure in the fuel tank. If exceeded, the diagnostic will consider a refueling event to have occurred. ; Inches H2O bgt.s loc_646D2 loc_646BE: ; CODE XREF: sub_64642+72j cmp.w (DI_EONV_KE_EONV_DELTA_VAC_REFUELING_MAX).l,d5 ; Upper boundary on delta vacuum used to detect refueling to prevent intermittence from looking like a refueling event. ; Inches H2O bge.s loc_646D2 tst.b (byte_FFFFA4AA).w beq.s loc_646D2 move.b #1,(byte_FFFFA4B9).w loc_646D2: ; CODE XREF: sub_64642+7Aj ; sub_64642+82j ... move.w (word_FFFFA4B6).w,(word_FFFFA4F0).w move.l (sp)+,d1 unlk a6 rts ; End of function sub_64642 ; =============== S U B R O U T I N E ======================================= sub_646DE: ; CODE XREF: OS3:loc_63DCCp move.w (word_FF8D5C).l,d3 lsr.w #4,d3 move.w d3,(word_FFFF822E).w move.w (word_FFFFACD2).w,d3 lsr.w #4,d3 move.w d3,(word_FFFF822C).w rts ; End of function sub_646DE ; =============== S U B R O U T I N E ======================================= sub_646F6: ; CODE XREF: sub_75370+19Ep jsr sub_63E94 clr.b (byte_FFFF8234).w clr.w (word_FFFF8238).w move.w (DI_EONV_KE_EONV_TIME_BETWEEN_TESTS_MIN).l,(word_FFFF823A).w ; Minimum time to wait between completed EONV tests. ; Hours move.w (word_FFFF9B56).w,(word_FFFFA4AE).w move.w (word_FFFFA4B6).w,(word_FFFFA4B4).w move.w (word_FFFFA4B6).w,(word_FFFFA4EE).w move.w (word_FFFFB3E8).w,(word_FFFF8232).w movea.w #$8000,a2 move.w a2,(word_FFFF822C).w move.w a2,(word_FFFF822E).w move.w #$180,(word_FFFF823C).w clr.b (byte_FFFFA4CE).w clr.b (byte_FFFFA4E7).w clr.b (byte_FFFFA4AA).w clr.b (byte_FFFFA4E6).w move.w (GlobalClock).w,(word_FFFFA4EA).w move.w (GlobalClock).w,(word_FFFFA4EC).w move.l (unk_FFFFB542).w,(dword_FFFFA4C0).w clr.b (byte_FFFFA4F6).w clr.b (byte_FFFF823E).w rts ; End of function sub_646F6 ; =============== S U B R O U T I N E ======================================= sub_64762: ; CODE XREF: sub_647EE:loc_6489Cp jsr sub_63046 jsr sub_63E94 move.w (word_FFFFA4AC).w,(word_FFFFA4B0).w clr.b (byte_FFFFA4B8).w move.w (word_FFFFA4DC).w,(word_FFFFA4D4).w move.w (word_FFFFA4DE).w,(word_FFFFA4D6).w clr.b (byte_FFFF8234).w move.w (word_FFFF9B56).w,(word_FFFFA4AE).w move.w (word_FFFFA4B6).w,(word_FFFFA4B4).w movea.w (word_FFFFA4B6).w,a2 move.w a2,(word_FFFFA4EE).w move.w (word_FFFF8182).w,d3 muls.w #$19,d3 divs.w (DI_EONV_KE_EONV_VAC_SENSOR_SCALE_SLOPE).l,d3 ; Slope used to rescale tank vacuum sensor voltage to inches of water. ; Inches_H2O/Volts move.w d3,(word_FFFF823C).w clr.b (byte_FFFFA4CE).w clr.b (byte_FFFFA4E7).w clr.b (byte_FFFFA4AA).w clr.b (byte_FFFFA4E6).w move.w (GlobalClock).w,(word_FFFFA4EA).w move.w (GlobalClock).w,(word_FFFFA4EC).w clr.b (byte_FFFFA4F6).w move.w (word_FFFFA4BC).w,(word_FFFF8232).w clr.b (byte_FFFFA4E8).w move.w a2,(word_FFFFA4F4).w move.w (GlobalClock).w,(word_FFFFA4D0).w move.w (word_FFFFA4B6).w,(word_FFFFA4F0).w clr.b (byte_FFFFA4B9).w rts ; End of function sub_64762 ; =============== S U B R O U T I N E ======================================= sub_647EE: ; CODE XREF: OS1:00029142p andi.w #$FF,d0 cmpi.w #2,d0 bcs.w locret_648CA cmpi.w #8,d0 bhi.w locret_648CA movea.l dword_8A6BC(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_6480C: ; DATA XREF: OS4:0008A6C4o tst.b (byte_FFFFB54A).w bne.s loc_64830 clr.w (word_FFFF8238).w move.w (DI_EONV_KE_EONV_TIME_BETWEEN_TESTS_MIN).l,(word_FFFF823A).w ; Minimum time to wait between completed EONV tests. ; Hours movea.w #$8000,a3 move.w a3,(word_FFFF822C).w move.w a3,(word_FFFF822E).w clr.b (byte_FFFF823E).w bra.s loc_64858 ; --------------------------------------------------------------------------- loc_64830: ; CODE XREF: sub_647EE+22j move.l (dword_FFFFBF12).w,d3 divu.w #$3C0,d3 bvs.s loc_64840 cmpi.w #$A8C0,d3 bls.s loc_64844 loc_64840: ; CODE XREF: sub_647EE+4Aj move.w #$A8C0,d3 loc_64844: ; CODE XREF: sub_647EE+50j add.w (word_FFFF8238).w,d3 bcs.s loc_64850 cmpi.w #$A8C0,d3 bls.s loc_64854 loc_64850: ; CODE XREF: sub_647EE+5Aj move.w #$A8C0,d3 loc_64854: ; CODE XREF: sub_647EE+60j move.w d3,(word_FFFF8238).w loc_64858: ; CODE XREF: sub_647EE+40j move.w (word_FFFF9B2C).w,d3 asl.w #6,d3 mulu.w #5,d3 lsr.l #8,d3 move.w d3,(word_FFFFA4E0).w move.l (unk_FFFFB542).w,(dword_FFFFA4C0).w move.w (word_FFFFB3E8).w,(word_FFFFA4BA).w move.w (word_FFFFB3E8).w,(word_FFFFA4BC).w move.w (word_FFFFB3E8).w,(word_FFFFA4C4).w bra.s locret_648CA ; --------------------------------------------------------------------------- loc_64882: ; DATA XREF: OS4:0008A6DCo move.l (unk_FFFFB542).w,(dword_FFFFA4C0).w bra.s locret_648CA ; --------------------------------------------------------------------------- loc_6488A: ; DATA XREF: OS4:0008A6C8o ; OS4:0008A6D4o move.w (word_FFFF9B2C).w,d3 asl.w #6,d3 mulu.w #5,d3 lsr.l #8,d3 move.w d3,(word_FFFFA4E0).w bra.s locret_648CA ; --------------------------------------------------------------------------- loc_6489C: ; DATA XREF: OS4:0008A6CCo jsr sub_64762 move.l (dword_FFFFAD28).w,d3 divu.w #$3C0,d3 bvs.s loc_648B2 cmpi.w #$A8C0,d3 bls.s loc_648B6 loc_648B2: ; CODE XREF: sub_647EE+BCj move.w #$A8C0,d3 loc_648B6: ; CODE XREF: sub_647EE+C2j add.w (word_FFFF8238).w,d3 bcs.s loc_648C2 cmpi.w #$A8C0,d3 bls.s loc_648C6 loc_648C2: ; CODE XREF: sub_647EE+CCj move.w #$A8C0,d3 loc_648C6: ; CODE XREF: sub_647EE+D2j move.w d3,(word_FFFF8238).w locret_648CA: ; CODE XREF: sub_647EE+8j ; sub_647EE+10j ... rts ; End of function sub_647EE ; =============== S U B R O U T I N E ======================================= sub_648CC: ; CODE XREF: sub_64C06p move.b (byte_FFFFB13B).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFB13B).w move.w (word_FFFFF2FE).w,d4 lsr.w #2,d4 cmp.b (DG_ESC_KE_IR_INSTANT_MAX).l,d4 ; Any IR instant knock exceeding this threshold is considered too long. ; A/D Counts bcs.s loc_648E8 addq.b #1,(byte_FFFFB13A).w loc_648E8: ; CODE XREF: sub_648CC+16j move.b (byte_FFFFB13A).w,d4 cmp.b (DG_ESC_KE_IR_KNOCK_MAX).l,d4 ; Number of fail samples needed to report a fail in a sample period less than KE_IR_Test_Max. ; Counts bcs.s loc_64902 cmp.b (DG_ESC_KE_IR_TEST_MAX).l,d3 ; Number of samples needed before the IR counters will be reset for the next test cycle. ; Counts bcs.s loc_64902 move.b #1,(byte_FFFFB13C).w loc_64902: ; CODE XREF: sub_648CC+26j ; sub_648CC+2Ej cmp.b (DG_ESC_KE_IR_TEST_MAX).l,d3 ; Number of samples needed before the IR counters will be reset for the next test cycle. ; Counts bcs.s locret_64912 clr.b (byte_FFFFB13B).w clr.b (byte_FFFFB13A).w locret_64912: ; CODE XREF: sub_648CC+3Cj rts ; End of function sub_648CC ; =============== S U B R O U T I N E ======================================= sub_64914: ; CODE XREF: sub_64BF8+6p move.l d0,-(sp) move.b (byte_FFFF9D2D).w,d0 move.w (EngineRPM_PID_000C___).w,d3 tst.b (byte_FFFF9D2C).w beq.w loc_64B16 move.w (CoolantTemperatureOrDefault).w,d4 cmp.w (DG_ESC_KE_ESC_COOLANT_TEMP_MIN).l,d4 ; Minimum coolant temperature required to learn minimum noise. ; Degrees C blt.w loc_64B16 cmp.w (DG_ESC_KE_ESC_NOISE_RPM_LOW).l,d3 ; One condition to run the diagnostic is that engine speed be greater than this cal. ; RPM bcs.w loc_64B16 cmp.w (DG_ESC_KE_ESC_NOISE_RPM_HIGH).l,d3 ; One condition to run the diagnostic is that engine speed be less than this cal. ; RPM bhi.w loc_64B16 tst.b (byte_FFFFB370).w beq.s loc_6495C cmpi.b #$A,(byte_FFFF9060).w bne.s loc_6495C move.w (word_FFFF9050).w,d3 bra.s loc_64960 ; --------------------------------------------------------------------------- loc_6495C: ; CODE XREF: sub_64914+38j ; sub_64914+40j move.w (word_FFFFAB66).w,d3 loc_64960: ; CODE XREF: sub_64914+46j cmp.w (DG_ESC_KE_ESC_NOISE_TPS_MIN).l,d3 ; One condition to run the diagnostic is that Throttle position be greater than this cal. ; Percent bcs.w loc_64B16 clr.l d5 move.w (DG_ESC_KE_ESC_NOISE_ENGINE_RUN_TIME).l,d5 ; Minimum engine run time before test can be enabled. ; Seconds move.l (EngineRunTime).w,d3 cmp.l d3,d5 bhi.w loc_64B16 move.w (word_FFFFB4A2).w,d3 cmp.w (DG_ESC_KE_ESC_SYSTEM_VOLTAGE_MIN).l,d3 ; Minimum system voltage required to enable the circuit test. ; Volts bcs.w loc_64B16 tst.b (byte_FFFFB128).w beq.w loc_64B16 tst.b (byte_FFFFB129).w beq.w loc_64B16 btst #1,(byte_FFFF88E6).w bne.w loc_64B16 btst #1,(byte_FFFF88DC).w bne.w loc_64B16 btst #1,(byte_FFFF88DA).w bne.w loc_64B16 btst #1,(byte_FFFF88E4).w bne.w loc_64B16 btst #1,(byte_FFFF88E2).w bne.w loc_64B16 moveq #1,d4 move.b d4,(byte_FFFFB12D).w tst.b d0 beq.s loc_649DE cmp.b (SPARK_KNOCK_KE_NUMBER_OF_SENSORS).l,d4 ; This is the number of ESC sensors used to determine if ESC sensors should be multiplexed in diagnostics. ; Number bne.s loc_64A52 loc_649DE: ; CODE XREF: sub_64914+C0j addq.b #1,(byte_FFFFB132).w addq.b #1,(byte_FFFFB134).w move.b (byte_FFFFB12E).w,d3 sub.b (byte_FFFFB136).w,d3 bcc.s loc_649F2 clr.b d3 loc_649F2: ; CODE XREF: sub_64914+DAj move.b d3,(byte_FFFFB126).w cmp.b (DG_ESC_KE_ESC_NOISE_HIGH_LEVEL).l,d3 ; High noise level threshold which must be exceeded a calibratable number of times to report a failure. ; A/D Counts bcs.s loc_64A0E addq.b #1,(byte_FFFFB130).w clr.b (byte_FFFFB134).w clr.b (byte_FFFFB138).w bra.w loc_64AC6 ; --------------------------------------------------------------------------- loc_64A0E: ; CODE XREF: sub_64914+E8j cmp.b (DG_ESC_KE_ESC_NOISE_LOW_LEVEL).l,d3 ; Low noise level threshold which must be exceeded a calibratable number of times to report a fail. ; A/D Counts bhi.s loc_64A38 move.b (byte_FFFFB138).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFB138).w cmp.b (DG_ESC_KE_ESC_NOISE_LOW_COUNT).l,d3 ; Number of successive low noise level conditions necessary to report a fail condition. ; Counts bcs.s loc_64A38 moveq #$40,d0 ; '@' jsr sub_5F110 clr.b (byte_FFFFB138).w clr.b (byte_FFFFB134).w loc_64A38: ; CODE XREF: sub_64914+100j ; sub_64914+112j move.b (byte_FFFFB134).w,d0 cmp.b (DG_ESC_KE_ESC_NOISE_LOW_SAMPLE_COUNT).l,d0 ; Number of samples before a low noise pass can be reported. ; Counts bcs.w loc_64AC6 clr.b (byte_FFFFB138).w clr.b (byte_FFFFB134).w moveq #$40,d0 ; '@' bra.s loc_64AC0 ; --------------------------------------------------------------------------- loc_64A52: ; CODE XREF: sub_64914+C8j addq.b #1,(byte_FFFFB133).w addq.b #1,(byte_FFFFB135).w move.b (byte_FFFFB12E).w,d3 sub.b (byte_FFFFB137).w,d3 bcc.s loc_64A66 clr.b d3 loc_64A66: ; CODE XREF: sub_64914+14Ej move.b d3,(byte_FFFFB127).w cmp.b (DG_ESC_KE_ESC_NOISE_HIGH_LEVEL).l,d3 ; High noise level threshold which must be exceeded a calibratable number of times to report a failure. ; A/D Counts bcs.s loc_64A80 addq.b #1,(byte_FFFFB131).w clr.b (byte_FFFFB135).w clr.b (byte_FFFFB139).w bra.s loc_64AC6 ; --------------------------------------------------------------------------- loc_64A80: ; CODE XREF: sub_64914+15Cj cmp.b (DG_ESC_KE_ESC_NOISE_LOW_LEVEL).l,d3 ; Low noise level threshold which must be exceeded a calibratable number of times to report a fail. ; A/D Counts bhi.s loc_64AAA move.b (byte_FFFFB139).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFB139).w cmp.b (DG_ESC_KE_ESC_NOISE_LOW_COUNT).l,d3 ; Number of successive low noise level conditions necessary to report a fail condition. ; Counts bcs.s loc_64AAA moveq #$41,d0 ; 'A' jsr sub_5F110 clr.b (byte_FFFFB139).w clr.b (byte_FFFFB135).w loc_64AAA: ; CODE XREF: sub_64914+172j ; sub_64914+184j move.b (byte_FFFFB135).w,d0 cmp.b (DG_ESC_KE_ESC_NOISE_LOW_SAMPLE_COUNT).l,d0 ; Number of samples before a low noise pass can be reported. ; Counts bcs.s loc_64AC6 clr.b (byte_FFFFB139).w clr.b (byte_FFFFB135).w moveq #$41,d0 ; 'A' loc_64AC0: ; CODE XREF: sub_64914+13Cj jsr sub_5F0BE loc_64AC6: ; CODE XREF: sub_64914+F6j ; sub_64914+12Ej ... move.b (DG_ESC_KE_ESC_NOISE_HIGH_COUNT).l,d3 ; Number of high noise level conditions per sample size necessary to report a fail condition. ; Counts cmp.b (byte_FFFFB130).w,d3 bls.s loc_64AD8 cmp.b (byte_FFFFB131).w,d3 bhi.s loc_64AEE loc_64AD8: ; CODE XREF: sub_64914+1BCj move.b #1,(byte_FFFFB12F).w clr.b (byte_FFFFB130).w clr.b (byte_FFFFB131).w clr.b (byte_FFFFB132).w clr.b (byte_FFFFB133).w loc_64AEE: ; CODE XREF: sub_64914+1C2j move.b (DG_ESC_KE_ESC_NOISE_HIGH_SAMPLE_COUNT).l,d3 ; Number of passes needed before a high noise pass can be reported. ; Counts cmp.b (byte_FFFFB132).w,d3 bls.s loc_64B00 cmp.b (byte_FFFFB133).w,d3 bhi.s loc_64B3A loc_64B00: ; CODE XREF: sub_64914+1E4j clr.b (byte_FFFFB12F).w clr.b (byte_FFFFB130).w clr.b (byte_FFFFB131).w clr.b (byte_FFFFB132).w clr.b (byte_FFFFB133).w bra.s loc_64B3A ; --------------------------------------------------------------------------- loc_64B16: ; CODE XREF: sub_64914+Ej ; sub_64914+1Cj ... clr.b (byte_FFFFB12D).w clr.b (byte_FFFFB130).w clr.b (byte_FFFFB131).w clr.b (byte_FFFFB132).w clr.b (byte_FFFFB133).w clr.b (byte_FFFFB138).w clr.b (byte_FFFFB139).w clr.b (byte_FFFFB134).w clr.b (byte_FFFFB135).w loc_64B3A: ; CODE XREF: sub_64914+1EAj ; sub_64914+200j move.l (sp)+,d0 rts ; End of function sub_64914 ; =============== S U B R O U T I N E ======================================= sub_64B3E: ; CODE XREF: sub_64C06+6p clr.l d5 move.w (DG_ESC_KE_ESC_CIRCUIT_ENG_RUN_TIME).l,d5 ; If the engine run time is less than this value, then the test is to be bypassed. ; Seconds move.l (EngineRunTime).w,d3 cmp.l d3,d5 bhi.s locret_64B9C move.w (word_FFFFB4A2).w,d3 cmp.w (DG_ESC_KE_ESC_SYSTEM_VOLTAGE_MIN).l,d3 ; Minimum system voltage required to enable the circuit test. ; Volts bcs.s locret_64B9C tst.b (byte_FFFFB13C).w beq.s loc_64B68 addq.b #1,(byte_FFFFB12A).w clr.b (byte_FFFFB13C).w loc_64B68: ; CODE XREF: sub_64B3E+20j move.b (byte_FFFFB12B).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFB12B).w move.b (byte_FFFFB12A).w,d4 cmp.b (DG_ESC_KE_ESC_CIRCUIT_FAIL_SAMPLES).l,d4 ; Number of fail samples needed to report a fail in a sample period less than KE_ESC_Samples total. ; Counts bcs.s loc_64B8E move.b #1,(byte_FFFFB12C).w loc_64B84: ; CODE XREF: sub_64B3E+5Cj clr.b (byte_FFFFB12A).w clr.b (byte_FFFFB12B).w bra.s locret_64B9C ; --------------------------------------------------------------------------- loc_64B8E: ; CODE XREF: sub_64B3E+3Ej cmp.b (DG_ESC_KE_ESC_CIRCUIT_SAMPLES).l,d3 ; Number of samples needed before a pass can be reported. ; Counts bcs.s locret_64B9C clr.b (byte_FFFFB12C).w bra.s loc_64B84 ; --------------------------------------------------------------------------- locret_64B9C: ; CODE XREF: sub_64B3E+Ej ; sub_64B3E+1Aj ... rts ; End of function sub_64B3E ; =============== S U B R O U T I N E ======================================= sub_64B9E: ; CODE XREF: DoLoopA+3A2p move.w (word_FFFFF2FE).w,d4 lsr.w #2,d4 cmp.b (byte_FFFFB12E).w,d4 bcs.s loc_64BCE move.l d4,d3 sub.b (byte_FFFFB12E).w,d3 bcc.s loc_64BB4 clr.b d3 loc_64BB4: ; CODE XREF: sub_64B9E+12j andi.w #$FF,d3 mulu.w (DG_ESC_KE_ESC_FILTER_COEFF).l,d3 ; Lag filter coefficient used in filtering the ESC noise channel. ; Scaler_0_to_1 lsr.l #8,d3 lsr.l #3,d3 add.b (byte_FFFFB12E).w,d3 bcc.s loc_64BF0 move.b #$FF,d3 bra.s loc_64BF0 ; --------------------------------------------------------------------------- loc_64BCE: ; CODE XREF: sub_64B9E+Aj move.b (byte_FFFFB12E).w,d3 sub.b d4,d3 bcc.s loc_64BD8 clr.b d3 loc_64BD8: ; CODE XREF: sub_64B9E+36j clr.l d5 move.b d3,d5 mulu.w (DG_ESC_KE_ESC_FILTER_COEFF).l,d5 ; Lag filter coefficient used in filtering the ESC noise channel. ; Scaler_0_to_1 lsr.l #8,d5 lsr.l #3,d5 move.b (byte_FFFFB12E).w,d3 sub.b d5,d3 bcc.s loc_64BF0 clr.b d3 loc_64BF0: ; CODE XREF: sub_64B9E+28j ; sub_64B9E+2Ej ... move.b d3,(byte_FFFFB12E).w rts ; End of function sub_64B9E ; =============== S U B R O U T I N E ======================================= nullsub_5: ; CODE XREF: DoLoopC+31Ep rts ; End of function nullsub_5 ; =============== S U B R O U T I N E ======================================= sub_64BF8: ; CODE XREF: sub_3C1EE+F6p jsr sub_64C70 jsr sub_64914 rts ; End of function sub_64BF8 ; =============== S U B R O U T I N E ======================================= sub_64C06: ; CODE XREF: DoLoopG+94p jsr sub_648CC jsr sub_64B3E rts ; End of function sub_64C06 ; =============== S U B R O U T I N E ======================================= sub_64C14: ; CODE XREF: DoLoopG+1CAp jsr sub_64C1C rts ; End of function sub_64C14 ; =============== S U B R O U T I N E ======================================= sub_64C1C: ; CODE XREF: sub_64C14p movem.l d0-d1,-(sp) move.b (byte_FFFFB12C).w,d3 bne.s loc_64C40 tst.b (byte_FFFFB12F).w bne.s loc_64C40 moveq #$3F,d0 ; '?' jsr sub_5F0BE moveq #2,d3 move.b d3,(byte_FFFFB12C).w move.b d3,(byte_FFFFB12F).w bra.s loc_64C6A ; --------------------------------------------------------------------------- loc_64C40: ; CODE XREF: sub_64C1C+8j sub_64C1C+Ej moveq #1,d1 cmp.b d3,d1 bne.s loc_64C56 moveq #$3F,d0 ; '?' jsr sub_5F110 move.b #2,(byte_FFFFB12C).w bra.s loc_64C6A ; --------------------------------------------------------------------------- loc_64C56: ; CODE XREF: sub_64C1C+28j cmp.b (byte_FFFFB12F).w,d1 bne.s loc_64C6A moveq #$3F,d0 ; '?' jsr sub_5F110 move.b #2,(byte_FFFFB12F).w loc_64C6A: ; CODE XREF: sub_64C1C+22j ; sub_64C1C+38j ... movem.l (sp)+,d0-d1 rts ; End of function sub_64C1C ; =============== S U B R O U T I N E ======================================= sub_64C70: ; CODE XREF: sub_64BF8p move.w (EngineRPM_PID_000C___).w,d4 move.w (word_FFFFB4A2).w,d3 cmp.w (DG_ESC_KE_ESC_SYSTEM_VOLTAGE_MIN).l,d3 ; Minimum system voltage required to enable the circuit test. ; Volts bcs.s locret_64CDC move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DG_ESC_KE_ESC_COOLANT_TEMP_MIN).l,d3 ; Minimum coolant temperature required to learn minimum noise. ; Degrees C blt.s locret_64CDC clr.l d5 move.w (DG_ESC_KE_ESC_RUN_TIME_MIN).l,d5 ; Minimum engine run time to enable minimum noise learning. ; Seconds move.l (EngineRunTime).w,d3 cmp.l d3,d5 bhi.s locret_64CDC cmp.w (DG_ESC_KE_ESC_RPM_MIN).l,d4 ; Minimum engine speed to enable minimum noise learning. ; RPM bcs.s locret_64CDC cmp.w (DG_ESC_KE_ESC_RPM_MAX).l,d4 ; Maximum engine speed to enable minimum noise learning. ; RPM bhi.s locret_64CDC tst.b (byte_FFFF9D2D).w bne.s loc_64CC8 move.b (byte_FFFFB12E).w,d3 cmp.b (byte_FFFFB136).w,d3 bcc.s locret_64CDC move.b d3,(byte_FFFFB136).w move.b #1,(byte_FFFFB128).w bra.s locret_64CDC ; --------------------------------------------------------------------------- loc_64CC8: ; CODE XREF: sub_64C70+40j move.b (byte_FFFFB12E).w,d3 cmp.b (byte_FFFFB137).w,d3 bcc.s locret_64CDC move.b d3,(byte_FFFFB137).w move.b #1,(byte_FFFFB129).w locret_64CDC: ; CODE XREF: sub_64C70+Ej ; sub_64C70+1Aj ... rts ; End of function sub_64C70 ; =============== S U B R O U T I N E ======================================= sub_64CDE: ; CODE XREF: OS1:00028CC8p ; sub_755FA+DEp andi.w #$FF,d0 movea.l off_8A184(d0.w*4),a2 jmp (a2) ; End of function sub_64CDE ; --------------------------------------------------------------------------- loc_64CEC: ; DATA XREF: OS4:off_8A184o ; OS4:0008A188o bra.s locret_64D6A ; --------------------------------------------------------------------------- loc_64CEE: ; DATA XREF: OS4:0008A18Co ; OS4:0008A190o ... clr.b (byte_FFFFB12A).w clr.b (4294947117).w clr.b (4294947119).w clr.b (byte_FFFFB130).w clr.b (byte_FFFFB131).w clr.b (byte_FFFFB132).w clr.b (byte_FFFFB133).w move.b #2,(byte_FFFFB12C).w clr.b (byte_FFFFB12B).w move.b (DG_ESC_KE_ESC_INITIAL_NOISE).l,(byte_FFFFB12E).w ; An initial startup value for filter purposes. ; A/D Counts clr.b (byte_FFFFB126).w move.b (DG_ESC_KE_ESC_SENSOR_INITIAL_NOISE).l,d3 move.b d3,(byte_FFFFB136).w clr.b (byte_FFFFB128).w clr.b (byte_FFFFB138).w clr.b (byte_FFFFB127).w move.b d3,(byte_FFFFB137).w clr.b (byte_FFFFB139).w clr.b (byte_FFFFB134).w clr.b (byte_FFFFB135).w clr.b (byte_FFFFB13A).w clr.b (byte_FFFFB13B).w clr.b (byte_FFFFB13C).w moveq #1,d3 cmp.b (SPARK_KNOCK_KE_NUMBER_OF_SENSORS).l,d3 ; This is the number of ESC sensors used to determine if ESC sensors should be multiplexed in diagnostics. ; Number bne.s loc_64D62 move.b d3,(byte_FFFFB129).w bra.s locret_64D6A ; --------------------------------------------------------------------------- loc_64D62: ; CODE XREF: OS3:00064D5Aj clr.b (byte_FFFFB129).w bra.s locret_64D6A ; --------------------------------------------------------------------------- loc_64D68: ; DATA XREF: OS4:0008A194o ; OS4:0008A1A0o nop locret_64D6A: ; CODE XREF: OS3:loc_64CECj ; OS3:00064D60j ... rts ; =============== S U B R O U T I N E ======================================= sub_64D6C: ; CODE XREF: sub_64EFC+82Ep ; sub_64EFC+8F8p ... tst.w d1 bls.s loc_64DB6 movea.w (word_FFFF9B4A).w,a2 sub.w a2,d0 bvc.s loc_64D84 bpl.s loc_64D80 move.w #$7FFF,d0 bra.s loc_64D84 ; --------------------------------------------------------------------------- loc_64D80: ; CODE XREF: sub_64D6C+Cj move.w #$8000,d0 loc_64D84: ; CODE XREF: sub_64D6C+Aj ; sub_64D6C+12j muls.w #5,d0 bpl.s loc_64D8C addq.l #1,d0 loc_64D8C: ; CODE XREF: sub_64D6C+1Cj asr.l #1,d0 andi.l #$FFFF,d1 divs.l d1,d0 bvs.s loc_64DAA cmpi.l #$FFFF8000,d0 blt.s loc_64DB0 cmpi.l #$7FFF,d0 ble.s locret_64DB8 loc_64DAA: ; CODE XREF: sub_64D6C+2Cj move.w #$7FFF,d0 bra.s locret_64DB8 ; --------------------------------------------------------------------------- loc_64DB0: ; CODE XREF: sub_64D6C+34j move.w #$8000,d0 bra.s locret_64DB8 ; --------------------------------------------------------------------------- loc_64DB6: ; CODE XREF: sub_64D6C+2j clr.w d0 locret_64DB8: ; CODE XREF: sub_64D6C+3Cj ; sub_64D6C+42j ... rts ; End of function sub_64D6C ; =============== S U B R O U T I N E ======================================= sub_64DBA: ; CODE XREF: OS1:000291B8p ; OS1:000291CAp clr.b (byte_FFFF9E90).w clr.l (byte_FFFF9E8C).w clr.w (word_FFFF9E8A).w bclr #7,(byte_FFFF9E90).w bclr #6,(byte_FFFF9E90).w bclr #5,(byte_FFFF9E90).w bclr #4,(byte_FFFF9E90).w bclr #4,(byte_FFFF9E90).w bclr #3,(byte_FFFF9E90).w bclr #2,(byte_FFFF9E90).w clr.b (byte_FFFF9E97).w clr.b (byte_FFFF9E91).w clr.b (byte_FFFF9E92).w clr.b (byte_FFFF9E93).w clr.b (byte_FFFF9E94).w clr.b (byte_FFFF9E95).w clr.b (byte_FFFF9E96).w clr.b (byte_FFFF9E9B).w clr.w (word_FFFF9E9E).w clr.w (word_FFFF9E82).w clr.w (word_FFFF9E84).w clr.w (word_FFFF9EA0).w clr.w (word_FFFF9EA2).w clr.l (dword_FFFF9EA4).w clr.w (word_FFFF9EA8).w clr.b (byte_FFFF9E98).w clr.w (word_FFFF9EAC).w moveq #1,d3 move.b d3,(byte_FFFF9E99).w clr.w (word_FFFF9EAA).w clr.w (word_FFFF9EAE).w clr.w (word_FFFF9EB0).w clr.w (word_FFFF8B92).w move.b d3,(byte_FFFF9E9A).w clr.w (word_FFFF9EB2).w clr.w (word_FFFF9EB4).w clr.w (word_FFFF9EB6).w clr.w (word_FFFF9EB8).w clr.w (word_FFFF9EBC).w clr.w (word_FFFF8B94).w clr.w (word_FFFF9EBE).w clr.w (word_FFFF9EC0).w clr.b (byte_FFFF9E9C).w clr.w (word_FFFF9E86).w clr.w (word_FFFF9EC2).w clr.w (word_FFFF9EC4).w clr.w (word_FFFF9EC6).w clr.l (dword_FFFF9EC8).w clr.w (word_FFFF9ECC).w clr.w (word_FFFF9ECE).w clr.w (word_FFFF9E88).w clr.w (word_FFFF9ED0).w clr.w (word_FFFF9ED2).w clr.w (word_FFFF9ED4).w clr.b (byte_FFFF9E9D).w clr.w (word_FFFF9ED6).w clr.w (word_FFFF9ED8).w clr.w (word_FFFF9EDA).w clr.w (word_FFFF9EDC).w clr.l (dword_FFFF9EDE).w clr.w (word_FFFF9EE2).w clr.w (word_FFFF9EE4).w clr.w (word_FFFF9EE6).w clr.w (word_FFFF9EE8).w rts ; End of function sub_64DBA ; =============== S U B R O U T I N E ======================================= sub_64EC8: ; CODE XREF: sub_64EFC+BCAp ; sub_64EFC+FECp ... move.l d0,d3 move.w (word_FFFFA9D8).w,d0 ext.l d0 asl.l #4,d0 divs.w #5,d0 ext.l d0 add.l d3,d0 bvc.s loc_64EE0 bmi.s loc_64EF0 bra.s loc_64EF8 ; --------------------------------------------------------------------------- loc_64EE0: ; CODE XREF: sub_64EC8+12j cmpi.l #$7FFFFFFF,d0 bhi.s loc_64EF8 cmpi.l #$7FFF0000,d0 bls.s locret_64EFA loc_64EF0: ; CODE XREF: sub_64EC8+14j move.l #$7FFF0000,d0 bra.s locret_64EFA ; --------------------------------------------------------------------------- loc_64EF8: ; CODE XREF: sub_64EC8+16j ; sub_64EC8+1Ej clr.l d0 locret_64EFA: ; CODE XREF: sub_64EC8+26j ; sub_64EC8+2Ej rts ; End of function sub_64EC8 ; =============== S U B R O U T I N E ======================================= sub_64EFC: ; CODE XREF: DoLoopF+84p movem.l d0-d2/d6-a0,-(sp) btst #3,(byte_FFFFA9D6).w sne d2 neg.b d2 btst #3,(byte_FFFF9E90).w bne.s loc_64F24 tst.b (byte_FFFFB54A).w bne.w loc_64FA8 btst #7,(byte_FFFF9E97).w bne.w loc_64FA8 loc_64F24: ; CODE XREF: sub_64EFC+14j clr.w (word_FFFF8B56).w clr.w (word_FFFF8B58).w clr.w (word_FFFF8B5A).w clr.w (word_FFFF8B5C).w clr.w (word_FFFF8B5E).w clr.w (word_FFFF8B60).w clr.l (dword_FFFF8B62).w clr.l (dword_FFFF8B66).w clr.b (byte_FFFF8B8E).w clr.w (word_FFFF8B6A).w clr.w (word_FFFF8B6C).w clr.w (word_FFFF8B6E).w clr.w (word_FFFF8B70).w clr.w (word_FFFF8B72).w clr.w (word_FFFF8B74).w clr.w (word_FFFF8B76).w clr.w (word_FFFF8B78).w clr.l (dword_FFFF8B7A).w clr.l (dword_FFFF8B7E).w clr.w (word_FFFF8B82).w clr.w (word_FFFF8B84).w clr.w (word_FFFF8B86).w clr.w (word_FFFF8B88).w clr.w (word_FFFF8B8A).w clr.w (word_FFFF8B8C).w clr.b (byte_FFFF8B90).w clr.b (byte_FFFF8B91).w bclr #7,(byte_FFFF8B8F).w bclr #6,(byte_FFFF8B8F).w bset #7,(byte_FFFF9E97).w bclr #3,(byte_FFFF9E90).w loc_64FA8: ; CODE XREF: sub_64EFC+1Aj ; sub_64EFC+24j move.w (word_FFFF9B2C).w,d3 asl.w #6,d3 moveq #5,d6 mulu.w d6,d3 lsr.l #8,d3 mulu.w #$11,d3 divu.w #$57,d3 ; 'W' cmpi.w #$FF,d3 bls.s loc_64FC6 move.b #$FF,d3 loc_64FC6: ; CODE XREF: sub_64EFC+C4j cmp.b (DG_EVAP_KE_TANK_VACUUM_RAW_MAX).l,d3 ; Maximum allowed voltage for the tank vacuum signal. ; Volts bls.s loc_65000 moveq #$5E,d0 ; '^' jsr sub_5F0BE clr.w (word_FFFF9ECE).w move.w (word_FFFF9ECC).w,d0 cmp.w (DG_EVAP_KE_VAC_SENSOR_HIGH_FAIL_TIME).l,d0 ; Maximum amount of time the sensor is allowed to be out of range high. ; Seconds bls.s loc_64FEE moveq #$5F,d0 ; '_' jsr sub_5F110 loc_64FEE: ; CODE XREF: sub_64EFC+E8j move.w (word_FFFF9ECC).w,d3 addq.w #1,d3 bcc.s loc_64FFA move.w #$FFFF,d3 loc_64FFA: ; CODE XREF: sub_64EFC+F8j move.w d3,(word_FFFF9ECC).w bra.s loc_65052 ; --------------------------------------------------------------------------- loc_65000: ; CODE XREF: sub_64EFC+D0j cmp.b (DG_EVAP_KE_TANK_VACUUM_RAW_MIN).l,d3 ; Minimum allowed voltage for the tank vacuum signal. ; Volts bcc.s loc_6503A moveq #$5F,d0 ; '_' jsr sub_5F0BE clr.w (word_FFFF9ECC).w move.w (word_FFFF9ECE).w,d0 cmp.w (DG_EVAP_KE_VAC_SENSOR_LOW_FAIL_TIME).l,d0 ; Maximum amount of time the sensor is allowed to be out of range low. ; Seconds bls.s loc_65028 moveq #$5E,d0 ; '^' jsr sub_5F110 loc_65028: ; CODE XREF: sub_64EFC+122j move.w (word_FFFF9ECE).w,d3 addq.w #1,d3 bcc.s loc_65034 move.w #$FFFF,d3 loc_65034: ; CODE XREF: sub_64EFC+132j move.w d3,(word_FFFF9ECE).w bra.s loc_65052 ; --------------------------------------------------------------------------- loc_6503A: ; CODE XREF: sub_64EFC+10Aj moveq #$5E,d0 ; '^' jsr sub_5F0BE moveq #$5F,d0 ; '_' jsr sub_5F0BE clr.w (word_FFFF9ECC).w clr.w (word_FFFF9ECE).w loc_65052: ; CODE XREF: sub_64EFC+102j ; sub_64EFC+13Cj moveq #3,d7 cmp.b (ThrottleControlMode2?).w,d7 bne.w loc_65152 move.w (word_FFFFAEBC).w,d3 cmp.w (DG_EVAP_KE_EVAP_VEHICLE_REST_VSS_MAX).l,d3 ; Maximum vehicle speed at which vehicle will be considered at rest. ; MPH bhi.w loc_65152 tst.b (byte_FFFFB370).w beq.s loc_6507E cmpi.b #$A,(byte_FFFF9060).w bne.s loc_6507E move.w (word_FFFF9050).w,d3 bra.s loc_65082 ; --------------------------------------------------------------------------- loc_6507E: ; CODE XREF: sub_64EFC+172j ; sub_64EFC+17Aj move.w (word_FFFFAB66).w,d3 loc_65082: ; CODE XREF: sub_64EFC+180j cmp.w (DG_EVAP_KE_EVAP_VEHICLE_REST_TPS_MAX).l,d3 ; Maximum throttle position at which vehicle will be considered at rest. ; Percent bhi.w loc_65152 move.w (word_FFFF9ED8).w,d3 cmp.w (DG_EVAP_KE_EVAP_VEHICLE_REST_TIME_MIN).l,d3 ; Minimum amount of time that the vehicle at rest conditions must be met before the vehicle will be considered at rest. ; Seconds bcs.w loc_65144 btst #2,(byte_FFFFA9D7).w beq.s loc_650B2 clr.w (word_FFFF8B92).w bset #7,(byte_FFFF8B8F).w clr.b (byte_FFFF8B90).w bra.s loc_650EE ; --------------------------------------------------------------------------- loc_650B2: ; CODE XREF: sub_64EFC+1A4j move.w (word_FFFF8B92).w,d3 cmp.w (DG_EVAP_KE_EVAP_SLOSH_RAT_PASS_TIME_MIN).l,d3 ; Minimum amount of time that the slosh rationality test must be passing for a slosh rationality test to be considered passed. ; Seconds bcs.s loc_650E2 move.b (byte_FFFF8B90).w,d3 addq.b #1,d3 bcc.s loc_650CA move.b #$FF,d3 loc_650CA: ; CODE XREF: sub_64EFC+1C8j move.b d3,(byte_FFFF8B90).w clr.w (word_FFFF8B92).w cmp.b (DG_EVAP_KE_EVAP_SLOSH_RAT_PASS_TESTS_MIN).l,d3 bcs.s loc_650EE bclr #7,(byte_FFFF8B8F).w bra.s loc_650EE ; --------------------------------------------------------------------------- loc_650E2: ; CODE XREF: sub_64EFC+1C0j addq.w #1,d3 bcc.s loc_650EA move.w #$FFFF,d3 loc_650EA: ; CODE XREF: sub_64EFC+1E8j move.w d3,(word_FFFF8B92).w loc_650EE: ; CODE XREF: sub_64EFC+1B4j ; sub_64EFC+1DCj ... btst #1,(byte_FFFFA9D7).w beq.s loc_65106 clr.w (word_FFFF8B94).w bset #6,(byte_FFFF8B8F).w clr.b (byte_FFFF8B91).w bra.s loc_6515E ; --------------------------------------------------------------------------- loc_65106: ; CODE XREF: sub_64EFC+1F8j move.w (word_FFFF8B94).w,d3 cmp.w (DG_EVAP_KE_EVAP_SLOSH_RAT_PASS_TIME_MIN).l,d3 ; Minimum amount of time that the slosh rationality test must be passing for a slosh rationality test to be considered passed. ; Seconds bcs.s loc_65136 move.b (byte_FFFF8B91).w,d3 addq.b #1,d3 bcc.s loc_6511E move.b #$FF,d3 loc_6511E: ; CODE XREF: sub_64EFC+21Cj move.b d3,(byte_FFFF8B91).w clr.w (word_FFFF8B94).w cmp.b (DG_EVAP_KE_EVAP_SLOSH_RAT_PASS_TESTS_MIN).l,d3 bcs.s loc_6515E bclr #6,(byte_FFFF8B8F).w bra.s loc_6515E ; --------------------------------------------------------------------------- loc_65136: ; CODE XREF: sub_64EFC+214j addq.w #1,d3 bcc.s loc_6513E move.w #$FFFF,d3 loc_6513E: ; CODE XREF: sub_64EFC+23Cj move.w d3,(word_FFFF8B94).w bra.s loc_6515E ; --------------------------------------------------------------------------- loc_65144: ; CODE XREF: sub_64EFC+19Aj addq.w #1,d3 bcc.s loc_6514C move.w #$FFFF,d3 loc_6514C: ; CODE XREF: sub_64EFC+24Aj move.w d3,(word_FFFF9ED8).w bra.s loc_6515E ; --------------------------------------------------------------------------- loc_65152: ; CODE XREF: sub_64EFC+15Cj ; sub_64EFC+16Aj ... clr.w (word_FFFF9ED8).w clr.w (word_FFFF8B92).w clr.w (word_FFFF8B94).w loc_6515E: ; CODE XREF: sub_64EFC+208j ; sub_64EFC+230j ... tst.b (DG_EVAP_KE_EVAP_PURGE_ENABLE_COLD_TIME).l ; Setting this option to 'TRUE' causes the timer to start updating on 'purge enabled.' instead of 'engine run'. ; Flag beq.s loc_65186 tst.w (word_FFFF9E80).w bhi.s loc_6518C tst.b (byte_FFFFA620).w beq.s loc_6519C move.w (word_FFFFAEBE).w,d3 cmp.w (DI_EVAP_KE_EVAP_PURGE_ENABLED_MIN_SPEED).l,d3 ; The minimum necessary at the onset of purge being enabled to allow the Evap test to start. ; MPH bcc.s loc_6518C cmpi.b #1,(byte_FFFFA9DA).w bra.s loc_6518A ; --------------------------------------------------------------------------- loc_65186: ; CODE XREF: sub_64EFC+268j cmp.b (ThrottleControlMode2?).w,d7 loc_6518A: ; CODE XREF: sub_64EFC+288j bne.s loc_6519C loc_6518C: ; CODE XREF: sub_64EFC+26Ej ; sub_64EFC+280j move.w (word_FFFF9E80).w,d3 addq.w #1,d3 bcc.s loc_65198 move.w #$FFFF,d3 loc_65198: ; CODE XREF: sub_64EFC+296j move.w d3,(word_FFFF9E80).w loc_6519C: ; CODE XREF: sub_64EFC+274j ; sub_64EFC:loc_6518Aj move.w (word_FFFF9E80).w,d3 cmp.w (DG_EVAP_KE_EVAP_COLD_TEST_TIMER_LIMIT).l,d3 ; The maximum amount of time allowed to execute the cold fuel tank portions of the Evap Diagnostic. ; Seconds bls.s loc_651AE bset #5,(word_FFFF9E8A).w loc_651AE: ; CODE XREF: sub_64EFC+2AAj move.b (ThrottleControlMode2?).w,d3 cmp.b d3,d7 beq.s loc_651BE moveq #4,d5 cmp.b d3,d5 bne.w loc_65432 loc_651BE: ; CODE XREF: sub_64EFC+2B8j move.b (byte_FFFF9E95).w,d0 move.l d0,d3 moveq #7,d5 cmp.b d0,d5 beq.w loc_653E8 btst #7,(byte_FFFFA9D7).w beq.s loc_651E8 move.w (word_FFFF9B4A).w,d4 cmp.w (DG_EVAP_KE_EVAP_OVERPRESSURE_THRESH).l,d4 ; Fuel tank pressure above which the Evap Diagnostic_will be aborted. ; In. of H2O bgt.s loc_651F4 btst #5,(byte_FFFF9E90).w beq.s loc_651F4 loc_651E8: ; CODE XREF: sub_64EFC+2D6j move.l d5,d3 moveq #1,d1 loc_651EC: ; CODE XREF: sub_64EFC+374j move.b d1,(byte_FFFF9E92).w bra.w loc_653E8 ; --------------------------------------------------------------------------- loc_651F4: ; CODE XREF: sub_64EFC+2E2j ; sub_64EFC+2EAj btst #5,(byte_FFFFA9D7).w beq.s loc_6520C btst #3,(byte_FFFFA9D7).w beq.s loc_6520C btst #7,(byte_FFFF8B8F).w beq.s loc_65224 loc_6520C: ; CODE XREF: sub_64EFC+2FEj ; sub_64EFC+306j btst #4,(byte_FFFFA9D7).w beq.s loc_6522A btst #3,(byte_FFFFA9D7).w beq.s loc_6522A btst #6,(byte_FFFF8B8F).w bne.s loc_6522A loc_65224: ; CODE XREF: sub_64EFC+30Ej ; sub_64EFC+3A0j ... move.l d5,d3 bra.w loc_653E8 ; --------------------------------------------------------------------------- loc_6522A: ; CODE XREF: sub_64EFC+316j ; sub_64EFC+31Ej ... move.b (byte_FFFFA9DA).w,d1 moveq #1,d5 cmp.b d1,d5 bne.s loc_6524A move.w (word_FFFFAEBC).w,d4 cmp.w (DG_EVAP_KE_EVAP_SERVICE_TEST_VSS_MAX).l,d4 ; Maximum vehicle speed value to run the service bay test. ; MPH bls.s loc_6524A moveq #7,d3 move.b d7,(byte_FFFF9E92).w bra.w loc_653E8 ; --------------------------------------------------------------------------- loc_6524A: ; CODE XREF: sub_64EFC+336j ; sub_64EFC+342j btst #3,(byte_FFFF9E8E).w bne.s loc_65274 btst #5,(word_FFFF9E8A).w bne.s loc_65262 btst #0,(byte_FFFFA9D6).w bne.s loc_65274 loc_65262: ; CODE XREF: sub_64EFC+35Cj moveq #6,d3 btst #5,(word_FFFF9E8A).w beq.w loc_653E8 moveq #2,d1 bra.w loc_651EC ; --------------------------------------------------------------------------- loc_65274: ; CODE XREF: sub_64EFC+354j ; sub_64EFC+364j andi.w #$FF,d0 cmpi.w #6,d0 bhi.w loc_653E8 movea.l off_89876(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_6528A: ; DATA XREF: OS4:off_89876o tst.b (byte_FFFFA620).w beq.w loc_653E8 move.w (word_FFFFAEBE).w,d4 cmp.w (DI_EVAP_KE_EVAP_PURGE_ENABLED_MIN_SPEED).l,d4 ; The minimum necessary at the onset of purge being enabled to allow the Evap test to start. ; MPH bcc.s loc_65224 cmp.b d1,d5 bne.w loc_653E8 bra.w loc_65224 ; --------------------------------------------------------------------------- loc_652A8: ; DATA XREF: OS4:0008987Ao btst #5,(byte_FFFFA9D6).w bne.w loc_653E6 btst #3,(word_FFFF9E8A).w bne.w loc_653E6 btst #1,(word_FFFF9E8A).w beq.w loc_653E8 moveq #2,d3 bra.w loc_653E8 ; --------------------------------------------------------------------------- loc_652CC: ; DATA XREF: OS4:0008987Eo btst #2,(byte_FFFF9E8F).w bne.s loc_652E4 btst #7,(byte_FFFFA9D6).w beq.s loc_652EA btst #3,(byte_FFFFA9D7).w beq.s loc_652EA loc_652E4: ; CODE XREF: sub_64EFC+3D6j ; sub_64EFC+4AAj ... moveq #6,d3 bra.w loc_653E8 ; --------------------------------------------------------------------------- loc_652EA: ; CODE XREF: sub_64EFC+3DEj ; sub_64EFC+3E6j btst #1,(byte_FFFF9E8F).w beq.w loc_653E8 tst.b (DI_EONV_KE_EONV_DO_NOT_USE_FAST_PASS).l ; Used to bypass the small leak test. ; BOOLEAN beq.s loc_65308 bclr #6,(byte_FFFF9E8C).w loc_65302: ; CODE XREF: sub_64EFC+4B4j ; sub_64EFC+4C0j move.l d6,d3 bra.w loc_653E8 ; --------------------------------------------------------------------------- loc_65308: ; CODE XREF: sub_64EFC+3FEj move.l d7,d3 bra.w loc_653E8 ; --------------------------------------------------------------------------- loc_6530E: ; DATA XREF: OS4:00089882o cmp.b (4294942358).w,d6 bne.w loc_653E8 moveq #4,d3 bra.w loc_653E8 ; --------------------------------------------------------------------------- loc_6531C: ; DATA XREF: OS4:00089886o btst #4,(unk_FFFF9E8D).w bne.s loc_65334 btst #7,(unk_FFFF9E8D).w bne.s loc_65334 btst #6,(word_FFFF9E8A).w beq.s loc_6534E loc_65334: ; CODE XREF: sub_64EFC+426j ; sub_64EFC+42Ej bset #6,(byte_FFFF9E8C).w loc_6533A: ; CODE XREF: sub_64EFC+484j bclr #7,(byte_FFFF9E8C).w bclr #5,(byte_FFFF9E8C).w loc_65346: ; CODE XREF: sub_64EFC+474j move.w (word_FFFF9EB0).w,(word_FFFF8B76).w bra.s loc_65394 ; --------------------------------------------------------------------------- loc_6534E: ; CODE XREF: sub_64EFC+436j btst #7,(word_FFFF9E8A).w bne.s loc_6535E btst #6,(byte_FFFF9E8E).w beq.s loc_65372 loc_6535E: ; CODE XREF: sub_64EFC+458j bclr #6,(byte_FFFF9E8C).w bset #7,(byte_FFFF9E8C).w bset #5,(byte_FFFF9E8C).w bra.s loc_65346 ; --------------------------------------------------------------------------- loc_65372: ; CODE XREF: sub_64EFC+460j btst #0,(unk_FFFF9E8D).w beq.s loc_65382 bclr #6,(byte_FFFF9E8C).w bra.s loc_6533A ; --------------------------------------------------------------------------- loc_65382: ; CODE XREF: sub_64EFC+47Cj bclr #7,(byte_FFFF9E8C).w bclr #6,(byte_FFFF9E8C).w bset #5,(byte_FFFF9E8C).w loc_65394: ; CODE XREF: sub_64EFC+450j tst.b (byte_FFFFA9E0).w bne.s loc_653A0 bset #2,(byte_FFFF9E90).w loc_653A0: ; CODE XREF: sub_64EFC+49Cj btst #5,(byte_FFFF9E8C).w bne.w loc_652E4 btst #6,(byte_FFFF9E8C).w bne.w loc_65302 btst #0,(unk_FFFF9E8D).w beq.s loc_653E8 bra.w loc_65302 ; --------------------------------------------------------------------------- loc_653C0: ; DATA XREF: OS4:0008988Ao btst #3,(word_FFFF9E8A).w bne.s loc_653E6 btst #0,(word_FFFF9E8A).w bne.w loc_652E4 btst #2,(word_FFFF9E8A).w beq.s loc_653E8 bra.w loc_652E4 ; --------------------------------------------------------------------------- loc_653DE: ; DATA XREF: OS4:0008988Eo btst #3,(byte_FFFF9E8E).w beq.s loc_653E8 loc_653E6: ; CODE XREF: sub_64EFC+3B2j ; sub_64EFC+3BCj ... moveq #7,d3 loc_653E8: ; CODE XREF: sub_64EFC+2CCj ; sub_64EFC+2F4j ... cmp.b (byte_FFFF9E96).w,d7 beq.s loc_653F2 cmp.b d3,d7 beq.s loc_653F8 loc_653F2: ; CODE XREF: sub_64EFC+4F0j moveq #4,d5 cmp.b d3,d5 bne.s loc_65402 loc_653F8: ; CODE XREF: sub_64EFC+4F4j clr.w (word_FFFF9E84).w clr.w (word_FFFF9E82).w bra.s loc_65412 ; --------------------------------------------------------------------------- loc_65402: ; CODE XREF: sub_64EFC+4FAj move.w (DG_EVAP_KE_EVAP_SERVICE_TPS_MIN).l,(word_FFFF9E84).w move.w (DG_EVAP_KE_EVAP_SERVICE_TPS_MAX).l,(word_FFFF9E82).w loc_65412: ; CODE XREF: sub_64EFC+504j btst #4,(word_FFFF9E8A).w beq.s loc_6541E moveq #2,d5 bra.s loc_6542A ; --------------------------------------------------------------------------- loc_6541E: ; CODE XREF: sub_64EFC+51Cj tst.b d3 bne.s loc_65428 clr.b (byte_FFFF9E94).w bra.s loc_6542E ; --------------------------------------------------------------------------- loc_65428: ; CODE XREF: sub_64EFC+524j moveq #1,d5 loc_6542A: ; CODE XREF: sub_64EFC+520j move.b d5,(byte_FFFF9E94).w loc_6542E: ; CODE XREF: sub_64EFC+52Aj move.b d3,(byte_FFFF9E95).w loc_65432: ; CODE XREF: sub_64EFC+2BEj tst.b (byte_FFFFB370).w beq.s loc_65446 moveq #$A,d5 cmp.b (byte_FFFF9060).w,d5 bne.s loc_65446 move.w (word_FFFF9050).w,d3 bra.s loc_6544A ; --------------------------------------------------------------------------- loc_65446: ; CODE XREF: sub_64EFC+53Aj ; sub_64EFC+542j move.w (word_FFFFAB66).w,d3 loc_6544A: ; CODE XREF: sub_64EFC+548j cmp.w (DG_EVAP_KE_VAC_DECAY_TPS_HIGH_LMT).l,d3 ; The Vacuum Decay test will restart if throttle position is > this calibration. ; Percent bhi.s loc_65466 move.w (word_FFFFAEBC).w,d3 cmp.w (DG_EVAP_KE_VAC_DECAY_VEH_SPEED_HIGH_LMT).l,d3 ; The Vacuum Decay test will restart if vehicle speed is > this calibration. ; MPH bhi.s loc_65466 btst #0,(byte_FFFF9E8C).w beq.s loc_6546E loc_65466: ; CODE XREF: sub_64EFC+554j ; sub_64EFC+560j bset #0,(word_FFFF9E8A+1).w bra.s loc_65474 ; --------------------------------------------------------------------------- loc_6546E: ; CODE XREF: sub_64EFC+568j bclr #0,(word_FFFF9E8A+1).w loc_65474: ; CODE XREF: sub_64EFC+570j move.b (byte_FFFF9E96).w,d4 move.l d4,d3 tst.b d4 beq.s loc_65494 btst #7,(byte_FFFFA9D6).w beq.s loc_6548E btst #3,(byte_FFFFA9D7).w bne.s loc_654C0 loc_6548E: ; CODE XREF: sub_64EFC+588j cmp.b (byte_FFFF9E95).w,d7 bne.s loc_654C0 loc_65494: ; CODE XREF: sub_64EFC+580j andi.w #$FF,d4 cmpi.w #4,d4 bhi.s loc_65516 movea.l off_89892(d4.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_654A8: ; DATA XREF: OS4:off_89892o cmp.b (byte_FFFF9E95).w,d7 bne.s loc_65516 bra.s loc_654F0 ; --------------------------------------------------------------------------- loc_654B0: ; DATA XREF: OS4:00089896o cmpi.b #4,(byte_FFFF9E9B).w bne.s loc_65516 btst #4,(unk_FFFF9E8D).w beq.s loc_654C4 loc_654C0: ; CODE XREF: sub_64EFC+590j ; sub_64EFC+596j ... move.l d6,d3 bra.s loc_65516 ; --------------------------------------------------------------------------- loc_654C4: ; CODE XREF: sub_64EFC+5C2j moveq #2,d3 bra.s loc_65516 ; --------------------------------------------------------------------------- loc_654C8: ; DATA XREF: OS4:0008989Ao btst #7,(unk_FFFF9E8D).w bne.s loc_654C0 btst #1,(byte_FFFF9E8C).w beq.s loc_654DC moveq #4,d3 bra.s loc_65516 ; --------------------------------------------------------------------------- loc_654DC: ; CODE XREF: sub_64EFC+5DAj btst #0,(word_FFFF9E8A+1).w beq.s loc_65516 move.l d7,d3 bra.s loc_65516 ; --------------------------------------------------------------------------- loc_654E8: ; DATA XREF: OS4:0008989Eo btst #6,(unk_FFFF9E8D).w beq.s loc_654F4 loc_654F0: ; CODE XREF: sub_64EFC+5B2j moveq #1,d3 bra.s loc_65516 ; --------------------------------------------------------------------------- loc_654F4: ; CODE XREF: sub_64EFC+5F2j btst #5,(unk_FFFF9E8D).w beq.s loc_65516 bra.s loc_654C0 ; --------------------------------------------------------------------------- loc_654FE: ; DATA XREF: OS4:000898A2o btst #0,(unk_FFFF9E8D).w bne.s loc_654C0 btst #7,(byte_FFFF9E8E).w bne.s loc_654C0 btst #6,(byte_FFFF9E8E).w bne.s loc_654C0 loc_65516: ; CODE XREF: sub_64EFC+5A0j ; sub_64EFC+5B0j ... move.b d3,(byte_FFFF9E96).w move.b (byte_FFFF9E9B).w,d0 move.l d0,d3 move.w (word_FFFF9B4A).w,d4 move.b (byte_FFFF9E96).w,d1 moveq #1,d5 cmp.b d1,d5 beq.s loc_65536 tst.b d0 beq.s loc_65536 loc_65532: ; CODE XREF: sub_64EFC+69Ej ; sub_64EFC+6A8j moveq #4,d3 bra.s loc_655B0 ; --------------------------------------------------------------------------- loc_65536: ; CODE XREF: sub_64EFC+630j ; sub_64EFC+634j andi.w #$FF,d0 movea.l off_898A6(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_65544: ; DATA XREF: OS4:off_898A6o cmp.b d1,d5 bne.s loc_655B0 bra.s loc_655AE ; --------------------------------------------------------------------------- loc_6554A: ; DATA XREF: OS4:000898AAo btst #3,(byte_FFFF9E8C).w beq.s loc_655B0 cmp.w (DG_EVAP_KE_VENT_ON_VACUUM_LEVEL_1).l,d4 ; If the tank vacuum level is above this calibration, the canister vent will be on for the amount of time KE_Vent_On_Timer_1. ; In. of H2O blt.s loc_65582 tst.w (DG_EVAP_KE_VENT_ON_TIME_3).l ; At the tank vacuum level KE_Vent_On_Vacuum_Level_3, the canister will be on for this amount of time. ; Seconds beq.s loc_65582 cmp.w (DG_EVAP_KE_VENT_ON_VACUUM_LEVEL_3).l,d4 ; If the tank vacuum level is above this calibration, the canister vent will be on for the amount of time KE_Vent_On_Timer_3. ; In. of H2O bge.s loc_65572 tst.w (DG_EVAP_KE_VENT_ON_TIME_2).l ; At the tank vacuum level KE_Vent_On_Vacuum_Level_2, the canister will be on for this amount of time. ; Seconds beq.s loc_65582 loc_65572: ; CODE XREF: sub_64EFC+66Cj cmp.w (DG_EVAP_KE_VENT_ON_VACUUM_LEVEL_2).l,d4 ; If the tank vacuum level is above this calibration, the canister vent will be on for the amount of time KE_Vent_On_Timer_2. ; In. of H2O bge.s loc_65586 tst.w (DG_EVAP_KE_VENT_ON_TIME_1).l ; At the tank vacuum level KE_Vent_On_Vacuum_Level_1, the canister will be on for this amount of time. ; Seconds bne.s loc_65586 loc_65582: ; CODE XREF: sub_64EFC+65Cj ; sub_64EFC+664j ... move.l d7,d3 bra.s loc_655B0 ; --------------------------------------------------------------------------- loc_65586: ; CODE XREF: sub_64EFC+67Cj ; sub_64EFC+684j moveq #2,d3 bra.s loc_655B0 ; --------------------------------------------------------------------------- loc_6558A: ; DATA XREF: OS4:000898AEo btst #2,(byte_FFFF9E8C).w bne.s loc_65582 bra.s loc_6559C ; --------------------------------------------------------------------------- loc_65594: ; DATA XREF: OS4:000898B2o btst #4,(unk_FFFF9E8D).w bne.s loc_65532 loc_6559C: ; CODE XREF: sub_64EFC+696j cmp.w (DG_EVAP_KE_VACUUM_DECAY_START_VAC_LEVEL).l,d4 ; If tank vacuum level is > this calibration, then immediately proceed to the vacuum decay test. ; In. of H2O bge.s loc_655B0 bra.s loc_65532 ; --------------------------------------------------------------------------- loc_655A6: ; DATA XREF: OS4:off_898B6o btst #6,(unk_FFFF9E8D).w beq.s loc_655B0 loc_655AE: ; CODE XREF: sub_64EFC+64Cj move.l d5,d3 loc_655B0: ; CODE XREF: sub_64EFC+638j ; sub_64EFC+64Aj ... move.b d3,(byte_FFFF9E9B).w cmp.b d1,d5 beq.s loc_655CA bclr #3,(byte_FFFF9E8C).w clr.w (word_FFFF9EBC).w clr.w (word_FFFF9EDC).w bra.w loc_656D2 ; --------------------------------------------------------------------------- loc_655CA: ; CODE XREF: sub_64EFC+6BAj tst.b (byte_FFFFA9E0).w beq.s loc_655EA move.w (word_FFFF9B52).w,d3 cmpi.w #$1400,d3 bls.s loc_655DE move.w #$1400,d3 loc_655DE: ; CODE XREF: sub_64EFC+6DCj lsr.w #1,d3 tblu.w (DG_EVAP_KV_STABILIZ_PERIOD_LIM_SLOSH).l,d3 ; The maximum amount of time that is required for the stabilization period when Evap_040_Level_Slosh_Detected is TRUE. ; Seconds bra.s loc_65602 ; --------------------------------------------------------------------------- loc_655EA: ; CODE XREF: sub_64EFC+6D2j move.w (word_FFFF9B52).w,d3 cmpi.w #$1400,d3 bls.s loc_655F8 move.w #$1400,d3 loc_655F8: ; CODE XREF: sub_64EFC+6F6j lsr.w #1,d3 tblu.w (DG_EVAP_KV_STABILIZ_PERIOD_LIM_NO_SLOSH).l,d3 ; The maximum amount of time that is required for the stabilization period when Evap_040_Level_Slosh_Detected is FALSE. ; Seconds loc_65602: ; CODE XREF: sub_64EFC+6ECj move.w d3,(word_FFFF9EBA).w move.w (word_FFFF9EBC).w,d3 cmp.w (word_FFFF9EBA).w,d3 bcs.s loc_6561C clr.w (word_FFFF8B78).w bset #4,(unk_FFFF9E8D).w bra.s loc_6563C ; --------------------------------------------------------------------------- loc_6561C: ; CODE XREF: sub_64EFC+712j bclr #4,(unk_FFFF9E8D).w move.w (word_FFFF9EBC).w,d3 cmp.w (DG_EVAP_KE_SYSTEM_VENTING_TIME_DELAY).l,d3 ; The minimum amount of time delay before the tank vacuum is checked to start the vent pulse. ; Seconds bcs.s loc_65636 bset #3,(byte_FFFF9E8C).w bra.s loc_6563C ; --------------------------------------------------------------------------- loc_65636: ; CODE XREF: sub_64EFC+730j bclr #3,(byte_FFFF9E8C).w loc_6563C: ; CODE XREF: sub_64EFC+71Ej ; sub_64EFC+738j move.w (word_FFFF9EBC).w,d3 addq.w #1,d3 bcc.s loc_65648 move.w #$FFFF,d3 loc_65648: ; CODE XREF: sub_64EFC+746j move.w d3,(word_FFFF9EBC).w move.w (word_FFFF9B4A).w,d3 btst #3,(byte_FFFF9E8C).w beq.s loc_656A2 btst #4,(byte_FFFF9E8E).w bne.s loc_656AC bset #4,(byte_FFFF9E8E).w cmp.w (DG_EVAP_KE_VENT_ON_VACUUM_LEVEL_3).l,d3 ; If the tank vacuum level is above this calibration, the canister vent will be on for the amount of time KE_Vent_On_Timer_3. ; In. of H2O blt.s loc_65678 move.w (DG_EVAP_KE_VENT_ON_TIME_3).l,(word_FFFF9EDC).w ; At the tank vacuum level KE_Vent_On_Vacuum_Level_3, the canister will be on for this amount of time. ; Seconds bra.s loc_656AC ; --------------------------------------------------------------------------- loc_65678: ; CODE XREF: sub_64EFC+770j cmp.w (DG_EVAP_KE_VENT_ON_VACUUM_LEVEL_2).l,d3 ; If the tank vacuum level is above this calibration, the canister vent will be on for the amount of time KE_Vent_On_Timer_2. ; In. of H2O blt.s loc_6568A move.w (DG_EVAP_KE_VENT_ON_TIME_2).l,(word_FFFF9EDC).w ; At the tank vacuum level KE_Vent_On_Vacuum_Level_2, the canister will be on for this amount of time. ; Seconds bra.s loc_656AC ; --------------------------------------------------------------------------- loc_6568A: ; CODE XREF: sub_64EFC+782j cmp.w (DG_EVAP_KE_VENT_ON_VACUUM_LEVEL_1).l,d3 ; If the tank vacuum level is above this calibration, the canister vent will be on for the amount of time KE_Vent_On_Timer_1. ; In. of H2O blt.s loc_6569C move.w (DG_EVAP_KE_VENT_ON_TIME_1).l,(word_FFFF9EDC).w ; At the tank vacuum level KE_Vent_On_Vacuum_Level_1, the canister will be on for this amount of time. ; Seconds bra.s loc_656AC ; --------------------------------------------------------------------------- loc_6569C: ; CODE XREF: sub_64EFC+794j clr.w (word_FFFF9EDC).w bra.s loc_656AC ; --------------------------------------------------------------------------- loc_656A2: ; CODE XREF: sub_64EFC+75Aj clr.w (word_FFFF9EDC).w bclr #4,(byte_FFFF9E8E).w loc_656AC: ; CODE XREF: sub_64EFC+762j ; sub_64EFC+77Aj ... cmpi.b #2,(byte_FFFF9E9B).w bne.s loc_656D2 move.w (word_FFFF9EDA).w,d3 addq.w #1,d3 bcc.s loc_656C0 move.w #$FFFF,d3 loc_656C0: ; CODE XREF: sub_64EFC+7BEj move.w d3,(word_FFFF9EDA).w cmp.w (word_FFFF9EDC).w,d3 bcs.s loc_656DC bset #2,(byte_FFFF9E8C).w bra.s loc_656DC ; --------------------------------------------------------------------------- loc_656D2: ; CODE XREF: sub_64EFC+6CAj ; sub_64EFC+7B6j clr.w (word_FFFF9EDA).w bclr #2,(byte_FFFF9E8C).w loc_656DC: ; CODE XREF: sub_64EFC+7CCj ; sub_64EFC+7D4j cmpi.b #2,(byte_FFFF9E96).w beq.s loc_656F8 bclr #7,(word_FFFF9E8A+1).w clr.w (word_FFFF9EC2).w bclr #0,(byte_FFFF9E8C).w bra.w loc_6587A ; --------------------------------------------------------------------------- loc_656F8: ; CODE XREF: sub_64EFC+7E6j move.w (word_FFFF9EC2).w,d1 bne.s loc_65710 movea.w (word_FFFF9B4A).w,a2 move.w a2,(word_FFFF9EC4).w move.w a2,(word_FFFF9EC0).w loc_6570A: ; CODE XREF: sub_64EFC+8EAj move.l d1,d3 bra.w loc_6586E ; --------------------------------------------------------------------------- loc_65710: ; CODE XREF: sub_64EFC+800j cmp.w (DG_EVAP_KE_VAC_DECAY_SLOPE_TIME).l,d1 ; This calibration limits how long a vacuum decay may run. ; Seconds bcc.s loc_65726 move.w (word_FFFF9B4A).w,d3 cmp.w (DG_EVAP_KE_VAC_DECAY_VACUUM_MIN).l,d3 ; If the tank vacuum goes below this cal., the vacuum decay slope will be calculated. ; In. of H2O bge.w loc_657BE loc_65726: ; CODE XREF: sub_64EFC+81Aj move.w (word_FFFF9EC4).w,d0 jsr sub_64D6C move.w d0,(word_FFFF9E86).w btst #7,(word_FFFF9E8A+1).w beq.s loc_65764 move.w #$100,d1 move.w (word_FFFFA9DC).w,d3 muls.w (DG_EVAP_KE_FINAL_SLOPE_MULTIPLIER).l,d3 ; Adjusts the slope threshold used for the total slope of the final iteration. ; Unitless divs.w d1,d3 bvc.s loc_6575E swap d3 eor.w d1,d3 bmi.s loc_6575A move.w #$7FFF,d3 bra.s loc_6575E ; --------------------------------------------------------------------------- loc_6575A: ; CODE XREF: sub_64EFC+856j move.w #$8000,d3 loc_6575E: ; CODE XREF: sub_64EFC+850j ; sub_64EFC+85Cj move.w d3,(word_FFFF9EB0).w bra.s loc_6576C ; --------------------------------------------------------------------------- loc_65764: ; CODE XREF: sub_64EFC+83Ej movea.w (word_FFFFA9DC).w,a2 move.w a2,(word_FFFF9EB0).w loc_6576C: ; CODE XREF: sub_64EFC+866j cmp.w (word_FFFF9EB0).w,d0 bgt.s loc_65786 move.w d0,(word_FFFF8B78).w bset #1,(byte_FFFF9E8C).w bset #7,(unk_FFFF9E8D).w bra.w loc_6587A ; --------------------------------------------------------------------------- loc_65786: ; CODE XREF: sub_64EFC+874j btst #6,(word_FFFF9E8A+1).w beq.s loc_657B4 move.b (DG_EVAP_KE_FINAL_ITERATION_TRIP_MAX).l,d3 ; Limits the number of final iteration vacuum decays per trip. ; Counts subq.b #1,d3 cmp.b (byte_FFFF9E98).w,d3 bls.s loc_657B4 addq.b #1,(byte_FFFF9E98).w bset #0,(byte_FFFF9E8C).w clr.w (word_FFFF9EC2).w bclr #7,(word_FFFF9E8A+1).w bra.w loc_6587A ; --------------------------------------------------------------------------- loc_657B4: ; CODE XREF: sub_64EFC+890j ; sub_64EFC+89Ej bset #1,(byte_FFFF9E8C).w bra.w loc_6587A ; --------------------------------------------------------------------------- loc_657BE: ; CODE XREF: sub_64EFC+826j move.b (byte_FFFF9E9C).w,d3 cmp.b (DG_EVAP_KE_VAC_DECAY_ITERATION_LIMIT).l,d3 ; If the number of vacuum decay iterations is >= this cal., each segment of the vacuum decay will be monitored. ; Count bcc.w loc_65864 clr.w d3 move.b (byte_FFFF9E9A).w,d3 mulu.w (DG_EVAP_KE_VAC_DECAY_ITERATION_TIME).l,d3 ; This calibration limits how long each vacuum decay iteration will run until its slope is tested for passing or failing. ; Seconds cmpi.l #$FFFF,d3 bls.s loc_657E4 move.w #$FFFF,d3 loc_657E4: ; CODE XREF: sub_64EFC+8E2j cmp.w d3,d1 bcs.w loc_6570A move.w (DG_EVAP_KE_VAC_DECAY_ITERATION_TIME).l,d1 ; This calibration limits how long each vacuum decay iteration will run until its slope is tested for passing or failing. ; Seconds move.w (word_FFFF9EC0).w,d0 jsr sub_64D6C move.w d0,(word_FFFF9E86).w clr.w d3 move.b (byte_FFFF9E9A).w,d3 move.b byte_1ED1F(d3.w),d3 andi.w #$FF,d3 muls.w (word_FFFFA9DC).w,d3 moveq #$20,d1 ; ' ' divs.w d1,d3 bvc.s loc_6582A swap d3 eor.w d1,d3 bmi.s loc_65826 move.w #$7FFF,d3 bra.s loc_6582A ; --------------------------------------------------------------------------- loc_65826: ; CODE XREF: sub_64EFC+922j move.w #$8000,d3 loc_6582A: ; CODE XREF: sub_64EFC+91Cj ; sub_64EFC+928j move.w d3,(word_FFFF9EBE).w cmp.w d3,d0 bgt.s loc_6584E move.b (byte_FFFF9E9A).w,d3 addq.b #1,d3 cmpi.b #$A,d3 bls.s loc_65840 moveq #$A,d3 loc_65840: ; CODE XREF: sub_64EFC+940j move.b d3,(byte_FFFF9E9A).w movea.w (word_FFFF9B4A).w,a2 move.w a2,(word_FFFF9EC0).w bra.s loc_6586A ; --------------------------------------------------------------------------- loc_6584E: ; CODE XREF: sub_64EFC+934j move.b #1,(byte_FFFF9E9A).w bset #0,(byte_FFFF9E8C).w clr.w (word_FFFF9EC2).w addq.b #1,(byte_FFFF9E9C).w bra.s loc_6587A ; --------------------------------------------------------------------------- loc_65864: ; CODE XREF: sub_64EFC+8CCj bset #7,(word_FFFF9E8A+1).w loc_6586A: ; CODE XREF: sub_64EFC+950j move.w (word_FFFF9EC2).w,d3 loc_6586E: ; CODE XREF: sub_64EFC+810j addq.w #1,d3 bcc.s loc_65876 move.w #$FFFF,d3 loc_65876: ; CODE XREF: sub_64EFC+974j move.w d3,(word_FFFF9EC2).w loc_6587A: ; CODE XREF: sub_64EFC+7F8j ; sub_64EFC+886j ... btst #7,(word_FFFF9E8A+1).w bne.s loc_65896 move.b #1,(byte_FFFF9E99).w clr.w (word_FFFF9EAE).w bclr #6,(word_FFFF9E8A+1).w bra.w loc_6591A ; --------------------------------------------------------------------------- loc_65896: ; CODE XREF: sub_64EFC+984j move.w (word_FFFF9EAE).w,d1 bne.s loc_658A4 movea.w (word_FFFF9B4A).w,a2 move.w a2,(word_FFFF9EAC).w loc_658A4: ; CODE XREF: sub_64EFC+99Ej cmp.w (DG_EVAP_KE_FINAL_ITERATION_SEGMENT_TIME).l,d1 ; This calibration limits how long each segment will run until its slope is tested for passing or failing. ; Seconds bcs.s loc_6590C move.w (word_FFFF9EAC).w,d0 jsr sub_64D6C move.w d0,(word_FFFF9EAA).w clr.w d3 move.b (byte_FFFF9E99).w,d3 move.b byte_1ED29(d3.w),d3 andi.w #$FF,d3 muls.w (word_FFFFA9DE).w,d3 moveq #$20,d1 ; ' ' divs.w d1,d3 bvc.s loc_658E6 swap d3 eor.w d1,d3 bmi.s loc_658E2 move.w #$7FFF,d3 bra.s loc_658E6 ; --------------------------------------------------------------------------- loc_658E2: ; CODE XREF: sub_64EFC+9DEj move.w #$8000,d3 loc_658E6: ; CODE XREF: sub_64EFC+9D8j ; sub_64EFC+9E4j move.w d3,(word_FFFF9EB8).w cmp.w d3,d0 bge.s loc_658F4 bset #6,(word_FFFF9E8A+1).w loc_658F4: ; CODE XREF: sub_64EFC+9F0j move.b (byte_FFFF9E99).w,d3 addq.b #1,d3 cmpi.b #5,d3 bls.s loc_65902 move.l d6,d3 loc_65902: ; CODE XREF: sub_64EFC+A02j move.b d3,(byte_FFFF9E99).w clr.w (word_FFFF9EAE).w bra.s loc_6591A ; --------------------------------------------------------------------------- loc_6590C: ; CODE XREF: sub_64EFC+9AEj move.l d1,d3 addq.w #1,d3 bcc.s loc_65916 move.w #$FFFF,d3 loc_65916: ; CODE XREF: sub_64EFC+A14j move.w d3,(word_FFFF9EAE).w loc_6591A: ; CODE XREF: sub_64EFC+996j ; sub_64EFC+A0Ej moveq #4,d4 cmp.b (byte_FFFF9E96).w,d4 bne.s loc_6598E btst #1,(unk_FFFF9E8D).w bne.s loc_6598E move.w (word_FFFF9B4A).w,d3 cmp.w (DG_EVAP_KE_VAPOR_PRESSURE_VACUUM_LEVEL).l,d3 ; The tank vacuum must be <= this value in order to start the vapor pressure test. ; In. of H2O ble.s loc_65968 move.w (word_FFFF9ED6).w,d3 cmp.w (DG_EVAP_KE_VAPOR_PRESSURE_WAIT_TIMER_LMT).l,d3 ; Limits how long to wait before bypassing the vapor pressure build test. ; Seconds bls.s loc_65950 bset #0,(unk_FFFF9E8D).w bclr #2,(unk_FFFF9E8D).w bra.s loc_65956 ; --------------------------------------------------------------------------- loc_65950: ; CODE XREF: sub_64EFC+A44j bset #2,(unk_FFFF9E8D).w loc_65956: ; CODE XREF: sub_64EFC+A52j move.w (word_FFFF9ED6).w,d3 addq.w #1,d3 bcc.s loc_65962 move.w #$FFFF,d3 loc_65962: ; CODE XREF: sub_64EFC+A60j move.w d3,(word_FFFF9ED6).w bra.s loc_65994 ; --------------------------------------------------------------------------- loc_65968: ; CODE XREF: sub_64EFC+A38j move.b (byte_FFFF9E9D).w,d3 cmp.b (DG_EVAP_KE_VAPOR_PRESSURE_VENT_DELAY).l,d3 ; Determines how long the evap system should vent after it has reached its vented vacuum level. ; Seconds bls.s loc_65980 bset #1,(unk_FFFF9E8D).w bclr #2,(unk_FFFF9E8D).w loc_65980: ; CODE XREF: sub_64EFC+A76j addq.b #1,d3 bcc.s loc_65988 move.b #$FF,d3 loc_65988: ; CODE XREF: sub_64EFC+A86j move.b d3,(byte_FFFF9E9D).w bra.s loc_65994 ; --------------------------------------------------------------------------- loc_6598E: ; CODE XREF: sub_64EFC+A24j ; sub_64EFC+A2Cj bclr #2,(unk_FFFF9E8D).w loc_65994: ; CODE XREF: sub_64EFC+A6Aj ; sub_64EFC+A90j cmp.b (byte_FFFF9E96).w,d4 bne.w loc_65A44 btst #1,(unk_FFFF9E8D).w beq.w loc_65A44 bset #3,(unk_FFFF9E8D).w btst #5,(byte_FFFF9E8E).w beq.s loc_65A02 move.w (word_FFFF9ED0).w,d1 bne.s loc_659C2 movea.w (word_FFFF9B4A).w,a2 move.w a2,(word_FFFF9ED2).w loc_659C2: ; CODE XREF: sub_64EFC+ABCj cmp.w (DG_EVAP_KE_VAPOR_PRESSURE_SLOPE_TIMER).l,d1 ; This calibration limits how long to wait before calculating the Vapor_Pressure_Slope. ; Seconds bcs.s loc_659F0 move.w (word_FFFF9ED2).w,d0 jsr sub_64D6C tst.w d0 bge.s loc_659DA clr.w d0 loc_659DA: ; CODE XREF: sub_64EFC+ADAj move.w d0,(word_FFFF9E88).w bset #7,(byte_FFFF9E8E).w bclr #3,(unk_FFFF9E8D).w bclr #5,(byte_FFFF9E8E).w loc_659F0: ; CODE XREF: sub_64EFC+ACCj move.w (word_FFFF9ED0).w,d3 addq.w #1,d3 bcc.s loc_659FC move.w #$FFFF,d3 loc_659FC: ; CODE XREF: sub_64EFC+AFAj move.w d3,(word_FFFF9ED0).w bra.s loc_65A50 ; --------------------------------------------------------------------------- loc_65A02: ; CODE XREF: sub_64EFC+AB6j move.w (word_FFFF9B4A).w,d3 cmp.w (DG_EVAP_KE_VAPOR_PRESSURE_TEST_MIN_PRESS).l,d3 ; This is the minimum pressure required to start the vapor pressure build monitoring. ; In. of H2O bge.s loc_65A16 bset #5,(byte_FFFF9E8E).w bra.s loc_65A50 ; --------------------------------------------------------------------------- loc_65A16: ; CODE XREF: sub_64EFC+B10j move.w (word_FFFF9ED4).w,d3 cmp.w (DG_EVAP_KE_VAPOR_PRESSURE_TEST_TIMER).l,d3 bcs.s loc_65A36 move.w (word_FFFF9E86).w,(word_FFFF8B78).w bclr #3,(unk_FFFF9E8D).w bset #6,(byte_FFFF9E8E).w bra.s loc_65A4A ; --------------------------------------------------------------------------- loc_65A36: ; CODE XREF: sub_64EFC+B24j addq.w #1,d3 bcc.s loc_65A3E move.w #$FFFF,d3 loc_65A3E: ; CODE XREF: sub_64EFC+B3Cj move.w d3,(word_FFFF9ED4).w bra.s loc_65A50 ; --------------------------------------------------------------------------- loc_65A44: ; CODE XREF: sub_64EFC+A9Cj ; sub_64EFC+AA6j bclr #3,(unk_FFFF9E8D).w loc_65A4A: ; CODE XREF: sub_64EFC+B38j bclr #5,(byte_FFFF9E8E).w loc_65A50: ; CODE XREF: sub_64EFC+B04j ; sub_64EFC+B18j ... btst #7,(byte_FFFF9E8E).w beq.s loc_65AB0 move.w (word_FFFF9E86).w,d3 clr.w d1 move.b (DG_EVAP_KE_VAPOR_PRESSURE_MULTIPLIER).l,d1 ; Multiplier correction for the Vapor_Pressure_Slope. ; Multiplier muls.w (word_FFFF9E88).w,d1 moveq #$20,d4 ; ' ' divs.w d4,d1 bvc.s loc_65A76 swap d1 eor.w d4,d1 bmi.s loc_65A80 bra.s loc_65A7A ; --------------------------------------------------------------------------- loc_65A76: ; CODE XREF: sub_64EFC+B70j move.w d1,d4 bra.s loc_65A84 ; --------------------------------------------------------------------------- loc_65A7A: ; CODE XREF: sub_64EFC+B78j move.w #$7FFF,d4 bra.s loc_65A84 ; --------------------------------------------------------------------------- loc_65A80: ; CODE XREF: sub_64EFC+B76j move.w #$8000,d4 loc_65A84: ; CODE XREF: sub_64EFC+B7Cj ; sub_64EFC+B82j sub.w d4,d3 bvc.s loc_65A94 bpl.s loc_65A90 move.w #$7FFF,d3 bra.s loc_65A94 ; --------------------------------------------------------------------------- loc_65A90: ; CODE XREF: sub_64EFC+B8Cj move.w #$8000,d3 loc_65A94: ; CODE XREF: sub_64EFC+B8Aj ; sub_64EFC+B92j move.w d3,(word_FFFF9E9E).w move.w d3,(word_FFFF8B78).w cmp.w (word_FFFF9EB0).w,d3 bgt.s loc_65AAA bset #6,(word_FFFF9E8A).w bra.s loc_65AB0 ; --------------------------------------------------------------------------- loc_65AAA: ; CODE XREF: sub_64EFC+BA4j bset #7,(word_FFFF9E8A).w loc_65AB0: ; CODE XREF: sub_64EFC+B5Aj ; sub_64EFC+BACj cmp.b (byte_FFFF9E96).w,d7 beq.s loc_65AC2 bclr #6,(unk_FFFF9E8D).w loc_65ABC: ; CODE XREF: sub_64EFC+BF6j clr.l (dword_FFFF9EC8).w bra.s loc_65AFA ; --------------------------------------------------------------------------- loc_65AC2: ; CODE XREF: sub_64EFC+BB8j move.l (dword_FFFF9EC8).w,d0 jsr sub_64EC8 move.l d0,(dword_FFFF9EC8).w cmp.l (DG_EVAP_KE_VACUUM_PULLDOWN_INTEGRAL_LIM).l,d0 ; This calibration limits high the Vacuum_Pulldown_Integral can get before the vacuum pulldown expires. ; Seconds blt.s loc_65AE0 bset #5,(unk_FFFF9E8D).w bra.s loc_65AFA ; --------------------------------------------------------------------------- loc_65AE0: ; CODE XREF: sub_64EFC+BDAj move.w (word_FFFF9B4A).w,d3 cmp.w (DG_EVAP_KE_VACUUM_PULLDOWN_VACUUM_LEVEL).l,d3 ; If tank vacuum is >= this calibration, the tank vacuum Pulldown is complete. ; In. of H2O blt.s loc_65AF4 bset #6,(unk_FFFF9E8D).w bra.s loc_65ABC ; --------------------------------------------------------------------------- loc_65AF4: ; CODE XREF: sub_64EFC+BEEj bclr #6,(unk_FFFF9E8D).w loc_65AFA: ; CODE XREF: sub_64EFC+BC4j ; sub_64EFC+BE2j moveq #6,d1 cmp.b (byte_FFFF9E95).w,d1 beq.s loc_65B10 bclr #2,(word_FFFF9E8A+1).w bclr #0,(byte_FFFF9E8F).w bra.s loc_65B66 ; --------------------------------------------------------------------------- loc_65B10: ; CODE XREF: sub_64EFC+C04j btst #1,(word_FFFF9E8A+1).w bne.s loc_65B60 btst #7,(byte_FFFF9E90).w bne.s loc_65B60 btst #4,(word_FFFF9E8A+1).w bne.s loc_65B60 btst #5,(word_FFFF9E8A+1).w bne.s loc_65B60 btst #1,(byte_FFFF9E8F).w bne.s loc_65B48 moveq #4,d5 cmp.b (byte_FFFF8B8E).w,d5 bne.s loc_65B48 bset #0,(byte_FFFF9E8F).w bra.s loc_65B66 ; --------------------------------------------------------------------------- loc_65B48: ; CODE XREF: sub_64EFC+C3Aj ; sub_64EFC+C42j btst #2,(byte_FFFF9E8F).w bne.s loc_65B60 btst #0,(byte_FFFFA9D6).w beq.s loc_65B60 bset #2,(word_FFFF9E8A+1).w bra.s loc_65B66 ; --------------------------------------------------------------------------- loc_65B60: ; CODE XREF: sub_64EFC+C1Aj ; sub_64EFC+C22j ... bset #3,(byte_FFFF9E8E).w loc_65B66: ; CODE XREF: sub_64EFC+C12j ; sub_64EFC+C4Aj ... btst #0,(byte_FFFF9E8F).w beq.w loc_65C04 btst #4,(byte_FFFF9E8F).w beq.s loc_65B80 btst #5,(byte_FFFF9E8F).w bne.s loc_65B90 loc_65B80: ; CODE XREF: sub_64EFC+C7Aj btst #7,(byte_FFFF9E8F).w beq.s loc_65BA4 btst #0,(byte_FFFF9E8E).w beq.s loc_65BA4 loc_65B90: ; CODE XREF: sub_64EFC+C82j bset #1,(byte_FFFF9E8F).w loc_65B96: ; CODE XREF: sub_64EFC+CCEj bset #7,(byte_FFFF9E90).w bclr #6,(byte_FFFF9E8F).w bra.s loc_65BFE ; --------------------------------------------------------------------------- loc_65BA4: ; CODE XREF: sub_64EFC+C8Aj ; sub_64EFC+C92j btst #4,(byte_FFFF9E8F).w bne.s loc_65C04 btst #7,(byte_FFFF9E8F).w bne.s loc_65C04 btst #5,(byte_FFFF9E8F).w beq.s loc_65BCC btst #0,(byte_FFFF9E8E).w beq.s loc_65BCC bclr #1,(byte_FFFF9E8F).w bra.s loc_65B96 ; --------------------------------------------------------------------------- loc_65BCC: ; CODE XREF: sub_64EFC+CBEj ; sub_64EFC+CC6j bclr #1,(byte_FFFF9E8F).w bclr #7,(byte_FFFF9E90).w btst #5,(byte_FFFF9E8F).w bne.s loc_65BE8 bset #6,(byte_FFFF9E8F).w bra.s loc_65BEE ; --------------------------------------------------------------------------- loc_65BE8: ; CODE XREF: sub_64EFC+CE2j bclr #6,(byte_FFFF9E8F).w loc_65BEE: ; CODE XREF: sub_64EFC+CEAj btst #0,(byte_FFFF9E8E).w bne.s loc_65BFE bset #1,(byte_FFFF9E8E).w bra.s loc_65C04 ; --------------------------------------------------------------------------- loc_65BFE: ; CODE XREF: sub_64EFC+CA6j ; sub_64EFC+CF8j bclr #1,(byte_FFFF9E8E).w loc_65C04: ; CODE XREF: sub_64EFC+C70j ; sub_64EFC+CAEj ... btst #2,(word_FFFF9E8A+1).w beq.w loc_65D60 move.w (word_FFFF9B4A).w,d3 move.w (word_FFFF9EB4).w,d4 cmp.w (DG_EVAP_KE_PURGE_VALVE_LEAK_TEST_TIME).l,d4 ; The maximum amount of time the Purge Valve Leak Test will be allowed to run. ; Seconds bcs.s loc_65C26 bset #1,(word_FFFF9E8A+1).w bra.s loc_65C44 ; --------------------------------------------------------------------------- loc_65C26: ; CODE XREF: sub_64EFC+D20j cmp.w (DG_EVAP_KE_PURGE_VALVE_LEAK_TEST_DELAY).l,d4 ; This calibration determines how long to delay the Purge Valve Leak Test pass/fail determination. ; Seconds bcs.s loc_65C34 bset #3,(word_FFFF9E8A+1).w loc_65C34: ; CODE XREF: sub_64EFC+D30j move.w (word_FFFF9EB4).w,d4 addq.w #1,d4 bcc.s loc_65C40 move.w #$FFFF,d4 loc_65C40: ; CODE XREF: sub_64EFC+D3Ej move.w d4,(word_FFFF9EB4).w loc_65C44: ; CODE XREF: sub_64EFC+D28j btst #3,(word_FFFF9E8A+1).w beq.w loc_65D30 tst.b (byte_FFFFB370).w beq.s loc_65C62 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_65C62 movea.w (word_FFFF9050).w,a2 bra.s loc_65C66 ; --------------------------------------------------------------------------- loc_65C62: ; CODE XREF: sub_64EFC+D56j ; sub_64EFC+D5Ej movea.w (word_FFFFAB66).w,a2 loc_65C66: ; CODE XREF: sub_64EFC+D64j move.w a2,d0 move.w (word_FFFFB298).w,d4 asl.w #2,d4 cmp.w (DG_EVAP_KE_PURGE_VALVE_TEST_VAC_MIN).l,d4 ; The intake manifold vacuum must be > this value to ensure that there is enough vacuum source being applied to the evap system. ; kPa bcs.s loc_65C96 cmp.w (DG_EVAP_KE_PURGE_LEAK_TEST_TPS_MIN).l,d0 ; The TPS must be >= this cal. to uncover the port on a ported purge system (manifold purge could use 0. ; Percent bcs.s loc_65C96 cmp.w (DG_EVAP_KE_PURGE_LEAK_TEST_TPS_MAX).l,d0 ; The TPS must be <= this cal. to uncover the port on a ported purge system (manifold purge could use 100. ; Percent bhi.s loc_65C96 move.w (word_FFFF9EB6).w,d4 addq.w #1,d4 bcc.s loc_65C92 move.w #$FFFF,d4 loc_65C92: ; CODE XREF: sub_64EFC+D90j move.w d4,(word_FFFF9EB6).w loc_65C96: ; CODE XREF: sub_64EFC+D78j ; sub_64EFC+D80j ... btst #7,(byte_FFFFA9D6).w beq.s loc_65CC0 btst #3,(byte_FFFFA9D7).w beq.s loc_65CC0 move.w (word_FFFF9EB2).w,d4 cmp.w (DG_EVAP_KE_PURGE_VALVE_LEAK_VAPOR_TIME).l,d4 ; If purge vapors are present for this amount of time or longer, the Purge Valve Leak Test fails and ends. ; Seconds bcs.s loc_65CC0 bset #5,(word_FFFF9E8A+1).w loc_65CB8: ; CODE XREF: sub_64EFC+E0Cj bset #6,(byte_FFFF9E97).w bra.s loc_65D0A ; --------------------------------------------------------------------------- loc_65CC0: ; CODE XREF: sub_64EFC+DA0j ; sub_64EFC+DA8j ... cmp.w (DG_EVAP_KE_PURGE_VALVE_LEAK_VACUUM_LEVEL).l,d3 ; If tank vacuum is greater than this value, the Purge Valve Leak Test fails and ends. ; In. of H2O blt.s loc_65CF2 move.w (word_FFFF9EC6).w,d4 cmp.w (DG_EVAP_KE_PURGE_VALVE_HIGH_VAC_TIME).l,d4 ; Maximum time allowed for tank vacuum to stay above a high vacuum threshold before failing the Purge Valve Leak Test. ; Seconds bls.s loc_65CE0 bset #5,(word_FFFF9E8A+1).w bset #6,(byte_FFFF9E97).w loc_65CE0: ; CODE XREF: sub_64EFC+DD6j move.w (word_FFFF9EC6).w,d4 addq.w #1,d4 bcc.s loc_65CEC move.w #$FFFF,d4 loc_65CEC: ; CODE XREF: sub_64EFC+DEAj move.w d4,(word_FFFF9EC6).w bra.s loc_65D0A ; --------------------------------------------------------------------------- loc_65CF2: ; CODE XREF: sub_64EFC+DCAj clr.w (word_FFFF9EC6).w move.w (word_FFFF9EB6).w,d4 cmp.w (DG_EVAP_KE_PURGE_VALVE_LEAK_VAC_TIME_MIN).l,d4 ; If the Purge_Valve_Leak_Vac_Timer is >= this cal., proper conditions for the test have been achieved. ; Seconds bcs.s loc_65D0A bset #4,(word_FFFF9E8A+1).w bra.s loc_65CB8 ; --------------------------------------------------------------------------- loc_65D0A: ; CODE XREF: sub_64EFC+DC2j ; sub_64EFC+DF4j ... btst #7,(byte_FFFFA9D6).w beq.s loc_65D2C btst #3,(byte_FFFFA9D7).w beq.s loc_65D2C move.w (word_FFFF9EB2).w,d4 addq.w #1,d4 bcc.s loc_65D26 move.w #$FFFF,d4 loc_65D26: ; CODE XREF: sub_64EFC+E24j move.w d4,(word_FFFF9EB2).w bra.s loc_65D30 ; --------------------------------------------------------------------------- loc_65D2C: ; CODE XREF: sub_64EFC+E14j ; sub_64EFC+E1Cj clr.w (word_FFFF9EB2).w loc_65D30: ; CODE XREF: sub_64EFC+D4Ej ; sub_64EFC+E2Ej btst #6,(byte_FFFF9E97).w beq.s loc_65D60 move.w (word_FFFF9EB6).w,(word_FFFF8B6C).w move.w (DG_EVAP_KE_PURGE_VALVE_LEAK_VAC_TIME_MIN).l,(word_FFFF8B6A).w ; If the Purge_Valve_Leak_Vac_Timer is >= this cal., proper conditions for the test have been achieved. ; Seconds move.w (DG_EVAP_KE_PURGE_VALVE_LEAK_VACUUM_LEVEL).l,(word_FFFF8B6E).w ; If tank vacuum is greater than this value, the Purge Valve Leak Test fails and ends. ; In. of H2O move.w d3,(word_FFFF8B70).w move.w (DG_EVAP_KE_PURGE_VALVE_LEAK_VAPOR_TIME).l,(word_FFFF8B72).w ; If purge vapors are present for this amount of time or longer, the Purge Valve Leak Test fails and ends. ; Seconds move.w (word_FFFF9EB2).w,(word_FFFF8B74).w loc_65D60: ; CODE XREF: sub_64EFC+D0Ej ; sub_64EFC+E3Aj btst #1,(byte_FFFF9E8E).w bne.s loc_65D70 btst #7,(byte_FFFF8980).w beq.s loc_65DE6 loc_65D70: ; CODE XREF: sub_64EFC+E6Aj move.w (word_FFFF9EE2).w,d3 cmp.w (DG_EVAP_KE_WEAK_VAC_STAGE2_VAC_TEST).l,d3 ; This calibration limits how long the vacuum monitor portion of stage2 of the Weak Vacuum Test may run. ; Seconds bcs.s loc_65D84 btst #7,(byte_FFFF8980).w beq.s loc_65DD0 loc_65D84: ; CODE XREF: sub_64EFC+E7Ej move.w (word_FFFF9B4A).w,d3 cmp.w (DG_EVAP_KE_WEAK_VAC_STAGE2_VAC_LEVEL).l,d3 ; This calibration determines how high tank vacuum must be before it is considered to be passing stage2 of the Weak Vacuum Test. ; In. of H2O blt.s loc_65DCA move.w (word_FFFF9EE4).w,d3 addq.w #1,d3 bcc.s loc_65D9C move.w #$FFFF,d3 loc_65D9C: ; CODE XREF: sub_64EFC+E9Aj move.w d3,(word_FFFF9EE4).w move.w (DG_EVAP_KE_WEAK_VAC_STAGE2_VAC_TIME).l,d4 ; This calibration determines how long the vacuum must be passing before stage2 of the Weak Vacuum Test passes. ; Seconds cmp.w d4,d3 bcs.s loc_65DD6 btst #7,(byte_FFFF8980).w beq.s loc_65DB8 bset #2,(byte_FFFF9E8E).w loc_65DB8: ; CODE XREF: sub_64EFC+EB4j move.w (word_FFFF9EE4).w,(word_FFFF8B88).w move.w d4,(word_FFFF8B86).w bset #7,(byte_FFFF9E8F).w bra.s loc_65DD0 ; --------------------------------------------------------------------------- loc_65DCA: ; CODE XREF: sub_64EFC+E92j clr.w (word_FFFF9EE4).w bra.s loc_65DD6 ; --------------------------------------------------------------------------- loc_65DD0: ; CODE XREF: sub_64EFC+E86j ; sub_64EFC+ECCj bset #0,(byte_FFFF9E8E).w loc_65DD6: ; CODE XREF: sub_64EFC+EACj ; sub_64EFC+ED2j move.w (word_FFFF9EE2).w,d3 addq.w #1,d3 bcc.s loc_65DE2 move.w #$FFFF,d3 loc_65DE2: ; CODE XREF: sub_64EFC+EE0j move.w d3,(word_FFFF9EE2).w loc_65DE6: ; CODE XREF: sub_64EFC+E72j btst #6,(byte_FFFF9E8F).w bne.s loc_65DF6 btst #7,(byte_FFFF8980).w beq.s loc_65E70 loc_65DF6: ; CODE XREF: sub_64EFC+EF0j move.w (word_FFFF9EE8).w,d3 cmp.w (DG_EVAP_KE_WEAK_VAC_STAGE2_VAPOR_TEST).l,d3 ; This calibration limits how long the purge vapor monitor portion of stage2 of the Weak Vacuum Test may run. ; Seconds bcs.s loc_65E0A btst #7,(byte_FFFF8980).w beq.s loc_65E5A loc_65E0A: ; CODE XREF: sub_64EFC+F04j btst #7,(byte_FFFFA9D6).w beq.s loc_65E54 btst #3,(byte_FFFFA9D7).w beq.s loc_65E54 move.w (word_FFFF9EE6).w,d3 addq.w #1,d3 bcc.s loc_65E26 move.w #$FFFF,d3 loc_65E26: ; CODE XREF: sub_64EFC+F24j move.w d3,(word_FFFF9EE6).w move.w (DG_EVAP_KE_WEAK_VAC_STAGE2_VAPOR_TIME).l,d4 ; This calibration determines how long purge vapors must be detected before stage2 of the Weak Vacuum Test passes. ; Seconds cmp.w d4,d3 bcs.s loc_65E60 btst #7,(byte_FFFF8980).w beq.s loc_65E42 bset #3,(byte_FFFF9E8F).w loc_65E42: ; CODE XREF: sub_64EFC+F3Ej move.w (word_FFFF9EE6).w,(word_FFFF8B8C).w move.w d4,(word_FFFF8B8A).w bset #4,(byte_FFFF9E8F).w bra.s loc_65E5A ; --------------------------------------------------------------------------- loc_65E54: ; CODE XREF: sub_64EFC+F14j ; sub_64EFC+F1Cj clr.w (word_FFFF9EE6).w bra.s loc_65E60 ; --------------------------------------------------------------------------- loc_65E5A: ; CODE XREF: sub_64EFC+F0Cj ; sub_64EFC+F56j bset #5,(byte_FFFF9E8F).w loc_65E60: ; CODE XREF: sub_64EFC+F36j ; sub_64EFC+F5Cj move.w (word_FFFF9EE8).w,d3 addq.w #1,d3 bcc.s loc_65E6C move.w #$FFFF,d3 loc_65E6C: ; CODE XREF: sub_64EFC+F6Aj move.w d3,(word_FFFF9EE8).w loc_65E70: ; CODE XREF: sub_64EFC+EF8j clr.w d4 move.b (byte_FFFF9E95).w,d4 cmpi.w #1,d4 bcs.w loc_662B6 movea.l off_898B6(d4.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_65E88: ; DATA XREF: OS4:000898BAo move.w (word_FFFF9B4A).w,d3 move.w (DG_EVAP_KE_EXCESS_VACUUM_LEVEL_STAGE1).l,d4 ; If the tank vacuum is above this calibration, Excess Vacuum Test Stage1 is failed. ; In. of H2O cmp.w d4,d3 ble.s loc_65EC4 move.w (word_FFFF9EA8).w,d0 cmp.w (DG_EVAP_KE_EXCESS_VACUUM_TIME_STAGE1).l,d0 ; Maximum time allowed for tank vacuum to stay above an excess vacuum threshold before failing Excess Vacuum Test Stage1. ; Seconds bls.s loc_65EB0 move.w d3,(word_FFFF8B5C).w move.w d4,(word_FFFF8B5A).w bset #3,(word_FFFF9E8A).w loc_65EB0: ; CODE XREF: sub_64EFC+FA4j move.w (word_FFFF9EA8).w,d3 addq.w #1,d3 bcc.s loc_65EBC move.w #$FFFF,d3 loc_65EBC: ; CODE XREF: sub_64EFC+FBAj move.w d3,(word_FFFF9EA8).w bra.w loc_662B6 ; --------------------------------------------------------------------------- loc_65EC4: ; CODE XREF: sub_64EFC+F98j clr.w (word_FFFF9EA8).w btst #4,(byte_FFFFA9D6).w beq.w loc_662B6 move.w d3,(word_FFFF8B5C).w move.w d4,(word_FFFF8B5A).w bset #1,(word_FFFF9E8A).w bra.w loc_662B6 ; --------------------------------------------------------------------------- loc_65EE4: ; DATA XREF: OS4:000898BEo move.l (4294942430).w,d0 jsr sub_64EC8 move.l d0,(dword_FFFF9EDE).w move.w (word_FFFF9B4A).w,d3 move.w (DG_EVAP_KE_VACUUM_DECAY_ENABLE_VACUUM).l,d1 ; This is the level of tank vacuum needed to end stage1 of the Weak Vacuum Test and start the Small Leak Test. ; In. of H2O cmp.w d1,d3 blt.s loc_65F1E move.l d0,(dword_FFFF8B7E).w move.l (DG_EVAP_KE_WEAK_VACUUM_INTEGRAL_MIN).l,(dword_FFFF8B7A).w move.w d3,(word_FFFF8B84).w move.w d1,(word_FFFF8B82).w bset #1,(byte_FFFF9E8F).w bra.w loc_662B6 ; --------------------------------------------------------------------------- loc_65F1E: ; CODE XREF: sub_64EFC+1002j move.l (DG_EVAP_KE_WEAK_VACUUM_INTEGRAL_MIN).l,d4 cmp.l d4,d0 blt.w loc_662B6 move.l d0,(dword_FFFF8B7E).w move.l d4,(dword_FFFF8B7A).w move.w d3,(word_FFFF8B84).w move.w d1,(word_FFFF8B82).w bset #2,(byte_FFFF9E8F).w bra.w loc_662B6 ; --------------------------------------------------------------------------- loc_65F44: ; DATA XREF: OS4:000898CAo move.w (4294942370).w,d0 cmp.w (DG_EVAP_KE_EXCESS_VAC_STAGE2_DELAY_LIMIT).l,d0 ; This calibration determines how long to delay before starting to monitor Tank_Vacuum_Filtered and Evap_System_Vacuum_Index. ; Seconds bcs.w loc_65FE0 move.l (dword_FFFF9EA4).w,d0 jsr sub_64EC8 move.l d0,(dword_FFFF9EA4).w move.w (word_FFFF9EA2).w,d3 cmp.w (DG_EVAP_KE_EXCESS_VAC_STAGE2_TEST_LIMIT).l,d3 ; This calibration limits how long Stage2 of the Excess Vacuum test can run. ; Seconds bcs.s loc_65F74 bset #0,(word_FFFF9E8A).w bra.s loc_65FE0 ; --------------------------------------------------------------------------- loc_65F74: ; CODE XREF: sub_64EFC+106Ej move.w (word_FFFF9B4A).w,d3 cmp.w (DG_EVAP_KE_EXCESS_VAC_STAGE2_VAC_LEVEL).l,d3 ; If Tank_Vacuum_Filtered is >= this calibration, Excess_Vac_Stage2_Fail_Timer will be incremented. ; In. of H2O blt.s loc_65F92 move.w (word_FFFF9EA0).w,d3 addq.w #1,d3 bcc.s loc_65F8C move.w #$FFFF,d3 loc_65F8C: ; CODE XREF: sub_64EFC+108Aj move.w d3,(word_FFFF9EA0).w bra.s loc_65F96 ; --------------------------------------------------------------------------- loc_65F92: ; CODE XREF: sub_64EFC+1082j clr.w (word_FFFF9EA0).w loc_65F96: ; CODE XREF: sub_64EFC+1094j move.w (DG_EVAP_KE_EXCESS_VAC_STAGE2_FAIL_TIME).l,d3 ; If Excess_Vac_Stage2_Fail_Timer is >= this calibration, Stage2 of the Excess Vacuum test is failed and completed. ; Seconds move.w (word_FFFF9EA0).w,d4 cmp.w d3,d4 bcs.s loc_65FC0 move.w d4,(word_FFFF8B60).w move.w d3,(word_FFFF8B5E).w move.l d0,(dword_FFFF8B66).w move.l (DG_EVAP_KE_EXCESS_VAC_STAGE2_INTEGRAL).l,(dword_FFFF8B62).w bset #3,(word_FFFF9E8A).w bra.s loc_65FE0 ; --------------------------------------------------------------------------- loc_65FC0: ; CODE XREF: sub_64EFC+10A6j move.l (DG_EVAP_KE_EXCESS_VAC_STAGE2_INTEGRAL).l,d1 cmp.l d1,d0 blt.s loc_65FE0 move.w d4,(word_FFFF8B60).w move.w d3,(word_FFFF8B5E).w move.l d0,(dword_FFFF8B66).w move.l d1,(dword_FFFF8B62).w bset #2,(word_FFFF9E8A).w loc_65FE0: ; CODE XREF: sub_64EFC+1052j ; sub_64EFC+1076j ... move.w (word_FFFF9EA2).w,d3 addq.w #1,d3 bcc.s loc_65FEC move.w #$FFFF,d3 loc_65FEC: ; CODE XREF: sub_64EFC+10EAj move.w d3,(word_FFFF9EA2).w bra.w loc_662B6 ; --------------------------------------------------------------------------- loc_65FF4: ; DATA XREF: OS4:000898D2o tst.b d2 beq.w loc_662B6 btst #4,(word_FFFF9E8A).w bne.w loc_662B6 btst #2,(byte_FFFFA9D6).w sne d4 neg.b d4 btst #5,(byte_FFFFA9D6).w bne.s loc_6605E btst #2,(word_FFFF9E8A).w beq.s loc_6607A btst #3,(word_FFFF9E8A).w bne.s loc_6607A tst.b (DI_EONV_KE_EONV_DO_NOT_USE_FAST_PASS).l ; Used to bypass the small leak test. ; BOOLEAN bne.s loc_66036 btst #6,(byte_FFFF9E8C).w beq.s loc_6607A loc_66036: ; CODE XREF: sub_64EFC+1130j btst #7,(byte_FFFF9E8C).w bne.s loc_6607A btst #1,(byte_FFFF9E8F).w beq.s loc_6607A btst #2,(byte_FFFF9E8F).w bne.s loc_6607A btst #4,(word_FFFF9E8A+1).w beq.s loc_6607A btst #5,(word_FFFF9E8A+1).w bne.s loc_6607A loc_6605E: ; CODE XREF: sub_64EFC+1118j moveq #$60,d0 ; '`' jsr sub_5F0BE moveq #$5C,d0 ; '\' jsr sub_5F0BE loc_6606E: ; CODE XREF: sub_64EFC+124Aj moveq #$6B,d0 ; 'k' loc_66070: ; CODE XREF: sub_64EFC+11B4j jsr sub_5F0BE bra.w loc_661B4 ; --------------------------------------------------------------------------- loc_6607A: ; CODE XREF: sub_64EFC+1120j ; sub_64EFC+1128j ... tst.b d4 beq.s loc_6608E btst #3,(word_FFFF9E8A).w beq.s loc_6608E btst #2,(word_FFFF9E8A).w beq.s loc_66094 loc_6608E: ; CODE XREF: sub_64EFC+1180j ; sub_64EFC+1188j tst.b (byte_FFFF9B54).w beq.s loc_660B2 loc_66094: ; CODE XREF: sub_64EFC+1190j moveq #1,d3 cmp.b (byte_FFFF8B8E).w,d3 bne.s loc_660B2 moveq #$5C,d0 ; '\' jsr sub_5F110 loc_660A4: ; CODE XREF: sub_64EFC+11E4j ; sub_64EFC+11EEj btst #1,(byte_FFFF9E8F).w beq.w loc_661B4 loc_660AE: ; CODE XREF: sub_64EFC+12B4j moveq #$60,d0 ; '`' bra.s loc_66070 ; --------------------------------------------------------------------------- loc_660B2: ; CODE XREF: sub_64EFC+1196j ; sub_64EFC+119Ej btst #5,(word_FFFF9E8A+1).w beq.s loc_660EC btst #4,(word_FFFF9E8A+1).w bne.s loc_660EC btst #3,(word_FFFF9E8A).w bne.s loc_660EC btst #2,(byte_FFFF9E8F).w bne.s loc_660EC moveq #$6B,d0 ; 'k' jsr sub_5F110 btst #2,(word_FFFF9E8A).w beq.s loc_660A4 moveq #$5C,d0 ; '\' jsr sub_5F0BE bra.s loc_660A4 ; --------------------------------------------------------------------------- loc_660EC: ; CODE XREF: sub_64EFC+11BCj ; sub_64EFC+11C4j ... btst #7,(byte_FFFF9E8C).w beq.s loc_6614A btst #6,(byte_FFFF9E8C).w bne.s loc_6614A btst #2,(word_FFFF9E8A).w bne.s loc_6614A btst #3,(word_FFFF9E8A).w bne.s loc_6614A btst #2,(byte_FFFF9E8F).w bne.s loc_6614A btst #5,(word_FFFF9E8A+1).w bne.s loc_6614A move.b (byte_FFFF8B8E).w,d3 cmp.b d3,d6 beq.s loc_6612E cmp.b d3,d7 beq.s loc_6612E moveq #4,d5 cmp.b d3,d5 bne.s loc_6614A loc_6612E: ; CODE XREF: sub_64EFC+1226j ; sub_64EFC+122Aj btst #1,(byte_FFFF9E8F).w beq.s loc_6613E moveq #$60,d0 ; '`' jsr sub_5F0BE loc_6613E: ; CODE XREF: sub_64EFC+1238j btst #4,(word_FFFF9E8A+1).w beq.s loc_661B4 bra.w loc_6606E ; --------------------------------------------------------------------------- loc_6614A: ; CODE XREF: sub_64EFC+11F6j ; sub_64EFC+11FEj ... btst #2,(word_FFFF9E8A).w bne.s loc_661B4 btst #3,(word_FFFF9E8A).w bne.s loc_661B4 btst #6,(byte_FFFF9E8C).w bne.s loc_661B4 btst #7,(byte_FFFF9E8C).w bne.s loc_661B4 btst #2,(4294942351).w beq.s loc_6619A btst #1,(byte_FFFF9E8F).w bne.s loc_6619A move.b (byte_FFFF8B8E).w,d3 cmpi.b #4,d3 bne.s loc_66192 tst.b d4 beq.s loc_66192 moveq #$60,d0 ; '`' jsr sub_5F110 bra.s loc_661B4 ; --------------------------------------------------------------------------- loc_66192: ; CODE XREF: sub_64EFC+1286j ; sub_64EFC+128Aj cmp.b d3,d6 beq.s loc_661B4 cmp.b d3,d7 bra.s loc_661B4 ; --------------------------------------------------------------------------- loc_6619A: ; CODE XREF: sub_64EFC+1274j ; sub_64EFC+127Cj btst #1,(byte_FFFF9E8F).w beq.s loc_661B4 btst #4,(word_FFFF9E8A+1).w bne.s loc_661B4 btst #5,(word_FFFF9E8A+1).w beq.w loc_660AE loc_661B4: ; CODE XREF: sub_64EFC+117Aj ; sub_64EFC+11AEj ... btst #3,(word_FFFF9E8A).w bne.s loc_661C2 tst.b (byte_FFFF9B54).w beq.s loc_661D0 loc_661C2: ; CODE XREF: sub_64EFC+12BEj move.b #1,(byte_FFFF8B8E).w move.b d6,(byte_FFFF9E93).w bra.w loc_6629A ; --------------------------------------------------------------------------- loc_661D0: ; CODE XREF: sub_64EFC+12C4j btst #2,(byte_FFFF9E8F).w beq.s loc_661EE btst #1,(byte_FFFF9E8F).w bne.s loc_661EE move.b #4,(byte_FFFF8B8E).w move.b d7,(byte_FFFF9E93).w bra.w loc_6629A ; --------------------------------------------------------------------------- loc_661EE: ; CODE XREF: sub_64EFC+12DAj ; sub_64EFC+12E2j btst #5,(word_FFFF9E8A+1).w beq.s loc_66204 move.b #2,(byte_FFFF8B8E).w move.b d1,(byte_FFFF9E93).w bra.w loc_6629A ; --------------------------------------------------------------------------- loc_66204: ; CODE XREF: sub_64EFC+12F8j btst #7,(byte_FFFF9E8C).w beq.s loc_66226 btst #2,(byte_FFFF9E90).w beq.s loc_6621A move.b d6,(byte_FFFF8B8E).w bra.s loc_6621E ; --------------------------------------------------------------------------- loc_6621A: ; CODE XREF: sub_64EFC+1316j move.b d7,(byte_FFFF8B8E).w loc_6621E: ; CODE XREF: sub_64EFC+131Cj move.b #4,(byte_FFFF9E93).w bra.s loc_6629A ; --------------------------------------------------------------------------- loc_66226: ; CODE XREF: sub_64EFC+130Ej btst #1,(byte_FFFF9E8F).w beq.s loc_6625C btst #2,(word_FFFF9E8A).w beq.s loc_6625C tst.b (DI_EONV_KE_EONV_DO_NOT_USE_FAST_PASS).l ; Used to bypass the small leak test. ; BOOLEAN bne.s loc_66254 btst #6,(byte_FFFF9E8C).w beq.s loc_6625C btst #2,(byte_FFFF9E90).w bne.s loc_66254 cmp.b (byte_FFFF8B8E).w,d6 beq.s loc_6625C loc_66254: ; CODE XREF: sub_64EFC+1340j ; sub_64EFC+1350j btst #4,(word_FFFF9E8A+1).w bne.s loc_6628C loc_6625C: ; CODE XREF: sub_64EFC+1330j ; sub_64EFC+1338j ... btst #1,(byte_FFFF9E8F).w beq.s loc_6626C btst #2,(byte_FFFF9E8F).w bne.s loc_6628C loc_6626C: ; CODE XREF: sub_64EFC+1366j btst #0,(byte_FFFFA9D6).w bne.s loc_66284 btst #1,(byte_FFFF9E8F).w beq.s loc_66284 cmpi.b #4,(byte_FFFF8B8E).w beq.s loc_6628C loc_66284: ; CODE XREF: sub_64EFC+1376j ; sub_64EFC+137Ej btst #5,(byte_FFFFA9D6).w beq.s loc_66294 loc_6628C: ; CODE XREF: sub_64EFC+135Ej ; sub_64EFC+136Ej ... clr.b (byte_FFFF8B8E).w moveq #1,d3 bra.s loc_66296 ; --------------------------------------------------------------------------- loc_66294: ; CODE XREF: sub_64EFC+138Ej moveq #2,d3 loc_66296: ; CODE XREF: sub_64EFC+1396j move.b d3,(byte_FFFF9E93).w loc_6629A: ; CODE XREF: sub_64EFC+12D0j ; sub_64EFC+12EEj ... btst #5,(byte_FFFFA9D6).w beq.s loc_662B0 move.w #$100,(word_FFFF8B58).w movea.w #1,a0 move.w a0,(word_FFFF8B56).w loc_662B0: ; CODE XREF: sub_64EFC+13A4j bset #4,(word_FFFF9E8A).w loc_662B6: ; CODE XREF: sub_64EFC+F7Ej ; sub_64EFC+FC4j ... cmpi.b #7,(byte_FFFF9E95).w bne.s loc_662CA tst.b d2 beq.s loc_662CA btst #4,(word_FFFF9E8A).w beq.s loc_662F4 loc_662CA: ; CODE XREF: sub_64EFC+13C0j ; sub_64EFC+13C4j btst #2,(byte_FFFF9E8E).w bne.s loc_662DA btst #3,(byte_FFFF9E8F).w beq.s loc_662F4 loc_662DA: ; CODE XREF: sub_64EFC+13D4j btst #4,(byte_FFFF9E8C).w bne.s loc_662F4 clr.b (byte_FFFF8B8E).w bset #4,(byte_FFFF9E8C).w moveq #$60,d0 ; '`' jsr sub_5F0BE loc_662F4: ; CODE XREF: sub_64EFC+13CCj ; sub_64EFC+13DCj ... btst #6,(byte_FFFF9E90).w sne d1 neg.b d1 btst #4,(byte_FFFF9E90).w sne d0 neg.b d0 move.b (byte_FFFF9E91).w,d4 btst #5,(byte_FFFF9E90).w sne d3 neg.b d3 move.b (byte_FFFF9E95).w,d5 cmpi.b #7,d5 bne.s loc_66340 btst #7,(byte_FFFF8980).w beq.s loc_66334 loc_66328: ; CODE XREF: sub_64EFC+14A2j moveq #1,d1 move.l d1,d0 move.l d0,d4 loc_6632E: ; CODE XREF: sub_64EFC+147Ej ; sub_64EFC+14C2j ... move.l d4,d3 bra.w loc_663D4 ; --------------------------------------------------------------------------- loc_66334: ; CODE XREF: sub_64EFC+142Aj clr.b d1 move.l d1,d0 move.l d0,d4 moveq #1,d3 bra.w loc_663D4 ; --------------------------------------------------------------------------- loc_66340: ; CODE XREF: sub_64EFC+1422j btst #3,(unk_FFFF9E8D).w bne.s loc_6635E cmp.b (byte_FFFF9E9B).w,d7 beq.s loc_6635E cmpi.b #1,(byte_FFFF9E9B).w beq.s loc_6635E cmpi.b #2,(byte_FFFF9E96).w bne.s loc_66364 loc_6635E: ; CODE XREF: sub_64EFC+144Aj ; sub_64EFC+1450j ... moveq #1,d1 move.l d1,d0 bra.s loc_66390 ; --------------------------------------------------------------------------- loc_66364: ; CODE XREF: sub_64EFC+1460j btst #2,(unk_FFFF9E8D).w bne.s loc_66374 moveq #2,d2 cmp.b (byte_FFFF9E9B).w,d2 bne.s loc_6637C loc_66374: ; CODE XREF: sub_64EFC+146Ej moveq #1,d1 move.l d1,d0 clr.b d4 bra.s loc_6632E ; --------------------------------------------------------------------------- loc_6637C: ; CODE XREF: sub_64EFC+1476j btst #2,(word_FFFF9E8A+1).w beq.s loc_6639A moveq #1,d1 move.l d1,d0 btst #3,(word_FFFF9E8A+1).w beq.s loc_66396 loc_66390: ; CODE XREF: sub_64EFC+1466j clr.b d4 move.l d0,d3 bra.s loc_663D4 ; --------------------------------------------------------------------------- loc_66396: ; CODE XREF: sub_64EFC+1492j moveq #2,d4 bra.s loc_663C2 ; --------------------------------------------------------------------------- loc_6639A: ; CODE XREF: sub_64EFC+1486j cmpi.b #2,d5 beq.s loc_66328 cmp.b (byte_FFFF9E96).w,d7 beq.s loc_663AE btst #0,(byte_FFFF9E8F).w beq.s loc_663C6 loc_663AE: ; CODE XREF: sub_64EFC+14A8j moveq #1,d1 move.l d1,d0 move.l d0,d4 move.w (word_FFFFA62A).w,d3 cmp.w (DG_EVAP_KE_VAC_PULLDOWN_PURGEDC_MIN).l,d3 bcc.w loc_6632E loc_663C2: ; CODE XREF: sub_64EFC+149Cj clr.b d3 bra.s loc_663D4 ; --------------------------------------------------------------------------- loc_663C6: ; CODE XREF: sub_64EFC+14B0j cmp.b d5,d6 bne.s loc_663D4 clr.b d1 moveq #1,d0 move.l d1,d4 bra.w loc_6632E ; --------------------------------------------------------------------------- loc_663D4: ; CODE XREF: sub_64EFC+1434j ; sub_64EFC+1440j ... tst.b d1 beq.s loc_663E0 bset #6,(byte_FFFF9E90).w bra.s loc_663E6 ; --------------------------------------------------------------------------- loc_663E0: ; CODE XREF: sub_64EFC+14DAj bclr #6,(byte_FFFF9E90).w loc_663E6: ; CODE XREF: sub_64EFC+14E2j tst.b d0 beq.s loc_663F2 bset #4,(byte_FFFF9E90).w bra.s loc_663F8 ; --------------------------------------------------------------------------- loc_663F2: ; CODE XREF: sub_64EFC+14ECj bclr #4,(byte_FFFF9E90).w loc_663F8: ; CODE XREF: sub_64EFC+14F4j move.b d4,(byte_FFFF9E91).w tst.b d3 beq.s loc_66408 bset #5,(byte_FFFF9E90).w bra.s loc_6640E ; --------------------------------------------------------------------------- loc_66408: ; CODE XREF: sub_64EFC+1502j bclr #5,(byte_FFFF9E90).w loc_6640E: ; CODE XREF: sub_64EFC+150Aj movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_64EFC ; =============== S U B R O U T I N E ======================================= sub_66414: ; CODE XREF: sub_6653A:loc_66B8Cp ; sub_7F4CA:loc_7F514p ... move.w (word_FFFFADB6).w,d3 move.w (word_FFFFB3F0).w,d4 cmp.w d4,d3 ble.s loc_66444 move.l d3,d5 sub.w d4,d5 cmpi.w #$DFF,d5 bgt.s loc_66432 cmpi.w #$FC00,d5 blt.s loc_66438 bra.s loc_6643C ; --------------------------------------------------------------------------- loc_66432: ; CODE XREF: sub_66414+14j move.w #$DFF,d5 bra.s loc_6643C ; --------------------------------------------------------------------------- loc_66438: ; CODE XREF: sub_66414+1Aj move.w #$FC00,d5 loc_6643C: ; CODE XREF: sub_66414+1Cj ; sub_66414+22j cmp.w (DI_EVAP_KV_COLD_DELTA_TEMP_LIMIT).l,d5 ; Upper limit on difference between powerup coolant temperature and powerup induction air temperature for cold start conditions. ; Degrees C bra.s loc_66466 ; --------------------------------------------------------------------------- loc_66444: ; CODE XREF: sub_66414+Aj move.l d4,d5 sub.w d3,d5 cmpi.w #$DFF,d5 bgt.s loc_66456 cmpi.w #$FC00,d5 blt.s loc_6645C bra.s loc_66460 ; --------------------------------------------------------------------------- loc_66456: ; CODE XREF: sub_66414+38j move.w #$DFF,d5 bra.s loc_66460 ; --------------------------------------------------------------------------- loc_6645C: ; CODE XREF: sub_66414+3Ej move.w #$FC00,d5 loc_66460: ; CODE XREF: sub_66414+40j ; sub_66414+46j cmp.w (word_1F668).l,d5 loc_66466: ; CODE XREF: sub_66414+2Ej sle d5 neg.b d5 clr.w d0 tst.b d5 beq.s locret_6649E cmp.w (DI_EVAP_KE_COLD_COOLANT_TEMP_LOW_LIMIT).l,d3 ; Lower limit on powerup coolant temperature for cold start conditions. ; Degrees C ble.s locret_6649E cmp.w (DI_EVAP_KE_COLD_COOLANT_TEMP_HIGH_LIMIT).l,d3 ; Upper limit on powerup coolant temperature for cold start conditions. ; Degrees C bge.s locret_6649E cmp.w (DI_EVAP_KE_COLD_MAN_AIR_TEMP_LOW_LIMIT).l,d4 ; Lower limit on powerup induction air temperature for cold start conditions. ; Degrees C ble.s locret_6649E cmp.w (DI_EVAP_KE_COLD_MAN_AIR_TEMP_HIGH_LIMIT).l,d4 ; Upper limit on powerup induction air temperature for cold start conditions. ; Degrees C bge.s locret_6649E move.w (word_FFFF82D2).w,d3 cmp.w (DI_EVAP_KE_COLD_BAROMETRIC_PRESSURE_LIMI).l,d3 ; Lower limit on barometric pressure for cold start conditions. ; kPa bls.s locret_6649E addq.b #1,d0 locret_6649E: ; CODE XREF: sub_66414+5Aj ; sub_66414+62j ... rts ; End of function sub_66414 ; =============== S U B R O U T I N E ======================================= sub_664A0: ; CODE XREF: sub_3D7B0+46p ; sub_6653A:loc_66BA2p btst #6,(byte_FFFFA9D7).w bne.w locret_66538 btst #4,(word_FFFFA7DC).w beq.s loc_6652C tst.b (DI_EVAP_KE_EVAP_SERVICE_TEST_ENABLED).l ; Used to calibrate out the service bay test. ; Flag bne.s loc_664C4 clr.b (byte_FFFFA9DA).w clr.b (byte_FFFFA9DB).w bra.s loc_66524 ; --------------------------------------------------------------------------- loc_664C4: ; CODE XREF: sub_664A0+18j cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_664D8 clr.b (byte_FFFFA9DA).w move.b #2,(byte_FFFFA9DB).w bra.s loc_66524 ; --------------------------------------------------------------------------- loc_664D8: ; CODE XREF: sub_664A0+2Aj move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DI_EVAP_KE_EVAP_SERVICE_TEST_COOLANT_MAX).l,d3 ; Maximum coolant temperature value to run the service bay test. ; Degrees Celsius blt.s loc_664F0 clr.b (byte_FFFFA9DA).w move.b #3,(byte_FFFFA9DB).w bra.s loc_66524 ; --------------------------------------------------------------------------- loc_664F0: ; CODE XREF: sub_664A0+42j btst #7,(byte_FFFFA9D7).w bne.s loc_66504 clr.b (byte_FFFFA9DA).w move.b #4,(byte_FFFFA9DB).w bra.s loc_66524 ; --------------------------------------------------------------------------- loc_66504: ; CODE XREF: sub_664A0+56j cmpi.b #7,(byte_FFFF9E95).w bne.s loc_66518 clr.b (byte_FFFFA9DA).w move.b #1,(byte_FFFFA9DB).w bra.s loc_66524 ; --------------------------------------------------------------------------- loc_66518: ; CODE XREF: sub_664A0+6Aj move.b #1,(byte_FFFFA9DA).w move.b #5,(byte_FFFFA9DB).w loc_66524: ; CODE XREF: sub_664A0+22j ; sub_664A0+36j ... bset #6,(byte_FFFFA9D7).w bra.s locret_66538 ; --------------------------------------------------------------------------- loc_6652C: ; CODE XREF: sub_664A0+10j move.b #2,(byte_FFFFA9DA).w move.b #5,(byte_FFFFA9DB).w locret_66538: ; CODE XREF: sub_664A0+6j ; sub_664A0+8Aj rts ; End of function sub_664A0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6653A: ; CODE XREF: DoLoopF+78p var_10 = -$10 var_E = -$E var_A = -$A var_8 = -8 link a6,#-$10 movem.l d0-d2/d6-a1/a4,-(sp) move.w (word_FFFFB298).w,d3 cmpi.w #$E00,d3 bls.s loc_66552 move.w #$E00,d3 bra.s loc_6655C ; --------------------------------------------------------------------------- loc_66552: ; CODE XREF: sub_6653A+10j move.w #$100,d5 cmp.w d3,d5 bls.s loc_6655C move.l d5,d3 loc_6655C: ; CODE XREF: sub_6653A+16j ; sub_6653A+1Ej subi.w #$100,d3 tblu.w (DI_EVAP_KV_ENGINE_VACUUM_MODIFIER).l,d3 ; Engine Vacuum contribution to Evap_System_Vacuum_Index. ; NONE 0-1 move.w (word_FFFFA62A).w,d4 tblu.w (DI_EVAP_KV_PURGE_MODIFIER).l,d4 ; Purge contribution to Evap_System_Vacuum_Index. ; NONE 0-1 move.w d4,d0 move.w (word_FFFFB3E8).w,d4 cmpi.w #$A00,d4 ble.s loc_66586 move.w #$A00,d4 bra.s loc_66590 ; --------------------------------------------------------------------------- loc_66586: ; CODE XREF: sub_6653A+44j move.w #$200,d5 cmp.w d4,d5 ble.s loc_66590 move.l d5,d4 loc_66590: ; CODE XREF: sub_6653A+4Aj ; sub_6653A+52j movea.w #$200,a1 sub.w a1,d4 tblu.w (DI_EVAP_KV_VACUUM_LOSS_OFFSET).l,d4 ; Vapor generation and porosity contribution TO Evap_System_Vacuum_Index. ; NONE 0-1 mulu.w d0,d3 lsr.l #8,d3 lsr.l #3,d3 sub.w d4,d3 move.w d3,(word_FFFFA9D8).w cmpi.b #1,(byte_FFFFA9DA).w bne.s loc_665C8 bclr #7,(byte_FFFFA9D6).w bclr #5,(byte_FFFFA9D6).w bset #4,(byte_FFFFA9D6).w bra.w loc_66666 ; --------------------------------------------------------------------------- loc_665C8: ; CODE XREF: sub_6653A+76j btst #4,(byte_FFFFA9D6).w bne.s loc_6662E tst.b (byte_FFFFA620).w beq.s loc_6662E move.w (word_FFFFA624).w,d4 cmp.w (DI_EVAP_KE_CCP_PURGE_RAMP_O2_ADJUST).l,d4 ; This calibration value defines the purge oxygen adjust multiplier at which the Purge_Ramp_Timer will stop. ; Unitless bcs.s loc_665FA bset #4,(byte_FFFFA9D6).w move.w (word_FFFFA9EC).w,d4 cmp.w (word_FFFFA9EA).w,d4 bcc.s loc_66628 bclr #5,(byte_FFFFA9D6).w bra.s loc_6662E ; --------------------------------------------------------------------------- loc_665FA: ; CODE XREF: sub_6653A+A6j move.b (byte_FFFFA622).w,d3 and.b (byte_FFFFA621).w,d3 beq.s loc_6662E movea.l (dword_FFFFB5DE).w,a0 move.w (word_FFFFA9EC).w,d3 add.w $A(a0),d3 bcc.s loc_66616 move.w #$FFFF,d3 loc_66616: ; CODE XREF: sub_6653A+D6j move.w d3,(word_FFFFA9EC).w cmp.w (DI_EVAP_KE_PURGE_RAMP_TIMER_LIMIT).l,d3 ; Purge ramp timer >= this indicates HC vapor present in canister. ; Seconds bcs.s loc_6662E bset #4,(byte_FFFFA9D6).w loc_66628: ; CODE XREF: sub_6653A+B6j bset #5,(byte_FFFFA9D6).w loc_6662E: ; CODE XREF: sub_6653A+94j ; sub_6653A+9Aj ... move.w (DI_EVAP_KE_CCP_PURGE_VAPOR_PLM).l,d4 ; Closed loop fuel control Purge_Learn_Multiplier < KE_CCP_Purge_Vapor_PLM indicates closed loop HC vapor present. ; NONE 0-2 move.w (word_FFFF9944).w,d3 cmpi.w #$800,d3 bls.s loc_66642 move.w #$800,d3 loc_66642: ; CODE XREF: sub_6653A+102j cmp.w d4,d3 bcs.s loc_66658 move.w (word_FFFF9946).w,d3 cmpi.w #$800,d3 bls.s loc_66654 move.w #$800,d3 loc_66654: ; CODE XREF: sub_6653A+114j cmp.w d4,d3 bcc.s loc_66660 loc_66658: ; CODE XREF: sub_6653A+10Aj bset #7,(byte_FFFFA9D6).w bra.s loc_66666 ; --------------------------------------------------------------------------- loc_66660: ; CODE XREF: sub_6653A+11Cj bclr #7,(byte_FFFFA9D6).w loc_66666: ; CODE XREF: sub_6653A+8Aj ; sub_6653A+124j move.w (word_FFFFB3F0).w,d3 cmpi.w #$380,d3 ble.s loc_66676 move.w #$380,d3 bra.s loc_66680 ; --------------------------------------------------------------------------- loc_66676: ; CODE XREF: sub_6653A+134j move.w #$200,d4 cmp.w d3,d4 ble.s loc_66680 move.l d4,d3 loc_66680: ; CODE XREF: sub_6653A+13Aj ; sub_6653A+142j sub.w a1,d3 btst #7,(byte_FFFF9B2E).w bne.s loc_666A8 move.w (DI_EVAP_KE_FUEL_LEVEL_PERCENT_DEFAULT).l,d0 add.w d0,d0 andi.l #$FFFF,d0 divu.w #5,d0 mulu.w (DI_EVAP_KE_FUEL_TANK_RATED_CAPACITY).l,d0 ; Rated capacity of the fuel tank as determined by GMUTS. ; Liters lsr.l #8,d0 lsr.l #3,d0 bra.s loc_666B0 ; --------------------------------------------------------------------------- loc_666A8: ; CODE XREF: sub_6653A+14Ej move.l (dword_FFFF9B30).w,d0 lsr.l #8,d0 lsr.l #8,d0 loc_666B0: ; CODE XREF: sub_6653A+16Cj clr.l d7 move.w (DI_EVAP_KE_FUEL_TANK_UNUSABLE_VOLUME).l,d7 ; Amount of fuel in tank crevices which cannot be reached by the fuel pump. ; Liters clr.l d6 move.w (DI_EVAP_KE_FUEL_TANK_TOTAL_VAPOR_SPACE).l,d6 ; Total volume of fuel tank and lines. Determined BY platform. ; Liters sub.l d7,d6 andi.l #$FFFF,d0 sub.l d0,d6 tst.l d6 blt.s loc_666DC cmpi.l #$FFFF,d6 bls.s loc_666DE move.w #$FFFF,d6 bra.s loc_666DE ; --------------------------------------------------------------------------- loc_666DC: ; CODE XREF: sub_6653A+192j clr.w d6 loc_666DE: ; CODE XREF: sub_6653A+19Aj ; sub_6653A+1A0j tst.b (byte_FFFFA9E0).w beq.s loc_666EE movea.w #$1000,a4 move.w a4,(word_FFFFA9E8).w bra.s loc_666F6 ; --------------------------------------------------------------------------- loc_666EE: ; CODE XREF: sub_6653A+1A8j move.w (DI_EVAP_KE_EVPD_020_SLOPE_MULTIPLIER).l,(word_FFFFA9E8).w ; The existing 040 calibration threshold tables are multiplied this calibration to find the effective, 0.020 slope threshold. ; Unitless loc_666F6: ; CODE XREF: sub_6653A+1B2j cmpi.w #$4C00,d6 bls.s loc_66700 move.w #$4C00,d6 loc_66700: ; CODE XREF: sub_6653A+1C0j lea (DI_EVAP_KA_VACUUM_DECAY_SLOPE).l,a0 ; Pass/Fail threshold for vacuum decay slope for applications with fuel level input. ; In H2O/Sec andi.l #$FFFF,d3 asl.l #8,d3 divu.w #$4D,d3 ; 'M' move.w d3,d7 move.l d7,d0 move.l d6,d1 moveq #$C,d2 jsr sub_878FA muls.w (word_FFFFA9E8).w,d0 bpl.s loc_6672C addi.l #$FFF,d0 loc_6672C: ; CODE XREF: sub_6653A+1EAj asr.l #8,d0 asr.l #4,d0 move.w d0,(word_FFFFA9DC).w lea (DI_EVAP_KA_VACUUM_DECAY_SLOPE_SEG).l,a0 ; Pass/Fail threshold for vacuum decay slope for applications with fuel level input (for segments of final iteration). ; In H2O/Sec move.l d7,d0 move.l d6,d1 moveq #$C,d2 jsr sub_878FA muls.w (word_FFFFA9E8).w,d0 bpl.s loc_66752 addi.l #$FFF,d0 loc_66752: ; CODE XREF: sub_6653A+210j asr.l #8,d0 asr.l #4,d0 move.w d0,(word_FFFFA9DE).w cmpi.b #3,(byte_FFFF9E95).w bne.s loc_6676A bset #3,(byte_FFFFA9D7).w bra.s loc_66770 ; --------------------------------------------------------------------------- loc_6676A: ; CODE XREF: sub_6653A+226j bclr #3,(byte_FFFFA9D7).w loc_66770: ; CODE XREF: sub_6653A+22Ej clr.l d2 move.w (DI_EVAP_KE_EVPD_FUEL_LEVEL_READ_DELAY).l,d2 ; Engine run delay before the slosh detection algorithm to operable. ; Seconds cmp.l (EngineRunTime).w,d2 bhi.s loc_6679C tst.b (byte_FFFFAA05).w bne.s loc_6679C moveq #1,d1 move.b d1,(byte_FFFFAA05).w move.w (word_FFFF9B48).w,(word_FFFFA9E6).w move.w (dword_FFFF9B38).w,(word_FFFFA9E2).w move.w (dword_FFFF9B3C).w,(word_FFFFA9E4).w loc_6679C: ; CODE XREF: sub_6653A+242j ; sub_6653A+248j move.b (byte_FFFFAA05).w,d2 beq.w loc_668F4 moveq #1,d1 cmp.b (byte_FFFFA9DA).w,d1 bne.s loc_667BA bclr #5,(byte_FFFFA9D7).w clr.b (byte_FFFFAA06).w bra.w loc_668F4 ; --------------------------------------------------------------------------- loc_667BA: ; CODE XREF: sub_6653A+270j clr.l d5 move.w (word_FFFFA9E2).w,d5 move.l (dword_FFFF9B38).w,d3 lsr.l #8,d3 lsr.l #8,d3 sub.l d5,d3 tst.l d3 bge.s loc_667D0 neg.l d3 loc_667D0: ; CODE XREF: sub_6653A+292j move.w d3,(word_FFFFA9FC).w move.w (dword_FFFF9B38).w,(word_FFFFA9E2).w clr.l d5 move.w (word_FFFFA9E4).w,d5 move.l (dword_FFFF9B3C).w,d0 lsr.l #8,d0 lsr.l #8,d0 sub.l d5,d0 tst.l d0 bge.s loc_667F0 neg.l d0 loc_667F0: ; CODE XREF: sub_6653A+2B2j move.w d0,(word_FFFFA9FE).w move.w (dword_FFFF9B3C).w,(word_FFFFA9E4).w btst #7,(byte_FFFF9B2E).w beq.w loc_668F4 move.l (dword_FFFF9B40).w,d5 lsr.l #8,d5 lsr.l #8,d5 clr.w d1 move.w #$4B00,d6 cmp.w d5,d6 bls.s loc_66824 andi.l #$FFFF,d5 add.l d5,d5 moveq #5,d7 divu.w d7,d5 bra.s loc_66828 ; --------------------------------------------------------------------------- loc_66824: ; CODE XREF: sub_6653A+2DAj move.w #$1E00,d5 loc_66828: ; CODE XREF: sub_6653A+2E8j movea.l #DI_EVAP_KV_DELTA_FUEL_LEVEL_SLOSH_PRIMAR,a2 ; Delta fuel level >= this indicates sloshing in fuel tank. ; Liters tblu.w (a2),d5 cmp.w d5,d3 bhi.s loc_66862 move.l (dword_FFFF9B44).w,d5 lsr.l #8,d5 lsr.l #8,d5 cmp.w d5,d6 bls.s loc_66850 andi.l #$FFFF,d5 add.l d5,d5 moveq #5,d1 divu.w d1,d5 bra.s loc_66854 ; --------------------------------------------------------------------------- loc_66850: ; CODE XREF: sub_6653A+306j move.w #$1E00,d5 loc_66854: ; CODE XREF: sub_6653A+314j movea.l #DI_EVAP_KV_DELTA_FUEL_LEVEL_SLOSH_SECOND,a2 ; Delta fuel level >= this indicates sloshing in fuel tank. ; Liters tblu.w (a2),d5 cmp.w d5,d0 bls.s loc_6686A loc_66862: ; CODE XREF: sub_6653A+2FAj bset #5,(byte_FFFFA9D7).w bra.s loc_668D6 ; --------------------------------------------------------------------------- loc_6686A: ; CODE XREF: sub_6653A+326j bclr #5,(byte_FFFFA9D7).w move.l (dword_FFFF9B40).w,d5 lsr.l #8,d5 lsr.l #8,d5 clr.w d1 cmp.w d5,d6 bls.s loc_6688C andi.l #$FFFF,d5 add.l d5,d5 moveq #5,d7 divu.w d7,d5 bra.s loc_66890 ; --------------------------------------------------------------------------- loc_6688C: ; CODE XREF: sub_6653A+342j move.w #$1E00,d5 loc_66890: ; CODE XREF: sub_6653A+350j movea.l #DI_EVAP_KV_EVPD_DELTA_FUEL_040_SLOSH_PRI,a2 ; Delta fuel level >= this indicates sloshing in fuel tank. ; Liters tblu.w (a2),d5 cmp.w d5,d3 bhi.s loc_668CA move.l (dword_FFFF9B44).w,d5 lsr.l #8,d5 lsr.l #8,d5 cmp.w d5,d6 bls.s loc_668B8 andi.l #$FFFF,d5 add.l d5,d5 divu.w #5,d5 bra.s loc_668BC ; --------------------------------------------------------------------------- loc_668B8: ; CODE XREF: sub_6653A+36Ej move.w #$1E00,d5 loc_668BC: ; CODE XREF: sub_6653A+37Cj movea.l #DI_EVAP_KV_EVPD_DELTA_FUEL_040_SLOSH_SEC,a2 ; Delta fuel level >= this indicates sloshing in fuel tank. ; Liters tblu.w (a2),d5 cmp.w d5,d0 bls.s loc_668D2 loc_668CA: ; CODE XREF: sub_6653A+362j moveq #1,d1 move.b d1,(byte_FFFFAA06).w bra.s loc_668D6 ; --------------------------------------------------------------------------- loc_668D2: ; CODE XREF: sub_6653A+38Ej clr.b (byte_FFFFAA06).w loc_668D6: ; CODE XREF: sub_6653A+32Ej ; sub_6653A+396j cmp.w (DI_EVAP_KE_PRI_DELTA_FUEL_SLOSH_FORSRT).l,d3 bhi.s loc_668E6 cmp.w (DI_EVAP_KE_SEC_DELTA_FUEL_SLOSH_FORSRT).l,d0 bls.s loc_668EE loc_668E6: ; CODE XREF: sub_6653A+3A2j bset #2,(byte_FFFFA9D7).w bra.s loc_668F4 ; --------------------------------------------------------------------------- loc_668EE: ; CODE XREF: sub_6653A+3AAj bclr #2,(byte_FFFFA9D7).w loc_668F4: ; CODE XREF: sub_6653A+266j ; sub_6653A+27Cj ... clr.b d4 move.l d4,d3 btst #5,(byte_FFFF9E90).w bne.s loc_66902 addq.b #1,d3 loc_66902: ; CODE XREF: sub_6653A+3C4j cmp.b (byte_FFFFAA03).w,d3 bne.s loc_66912 move.b (byte_FFFFAA02).w,d5 cmp.b (byte_FFFF9E91).w,d5 beq.s loc_66914 loc_66912: ; CODE XREF: sub_6653A+3CCj addq.b #1,d4 loc_66914: ; CODE XREF: sub_6653A+3D6j move.b d3,(byte_FFFFAA03).w move.b (byte_FFFF9E91).w,(byte_FFFFAA02).w tst.b d4 beq.s loc_66926 clr.w (word_FFFFAA00).w loc_66926: ; CODE XREF: sub_6653A+3E6j or.b (byte_FFFFAA04).w,d4 beq.s loc_66974 move.w (word_FFFF9B52).w,d3 cmpi.w #$1400,d3 bls.s loc_6693A move.w #$1400,d3 loc_6693A: ; CODE XREF: sub_6653A+3FAj lsr.w #1,d3 movea.l #DI_EVAP_KV_SOLENOID_EVENT_SLOSH_DELAY,a2 ; This is the minimum amount of time after a solenoid event whichwill mask out the slosh detection algorithm. ; Seconds tblu.w (a2),d3 cmp.w (word_FFFFAA00).w,d3 bls.s loc_6696A move.b #1,(byte_FFFFAA04).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAA00).w,d3 add.w $A(a2),d3 bcc.s loc_66964 move.w #$FFFF,d3 loc_66964: ; CODE XREF: sub_6653A+424j move.w d3,(word_FFFFAA00).w bra.s loc_6697C ; --------------------------------------------------------------------------- loc_6696A: ; CODE XREF: sub_6653A+410j clr.b (byte_FFFFAA04).w clr.w (word_FFFFAA00).w bra.s loc_6697C ; --------------------------------------------------------------------------- loc_66974: ; CODE XREF: sub_6653A+3F0j clr.w (word_FFFFAA00).w clr.b (byte_FFFFAA04).w loc_6697C: ; CODE XREF: sub_6653A+42Ej ; sub_6653A+438j tst.b d2 beq.w loc_66A4C tst.b (byte_FFFFAA04).w bne.w loc_66A4C cmpi.b #1,(byte_FFFFA9DA).w bne.s loc_669A0 bclr #4,(byte_FFFFA9D7).w clr.b (byte_FFFFAA07).w bra.w loc_66A4C ; --------------------------------------------------------------------------- loc_669A0: ; CODE XREF: sub_6653A+456j move.w (word_FFFF9B52).w,d0 cmpi.w #$1400,d0 bls.s loc_669AE move.w #$1400,d0 loc_669AE: ; CODE XREF: sub_6653A+46Ej move.w (word_FFFF9B48).w,d3 sub.w (word_FFFFA9E6).w,d3 bvc.s loc_669BC bmi.s loc_669C4 bra.s loc_669CA ; --------------------------------------------------------------------------- loc_669BC: ; CODE XREF: sub_6653A+47Cj tst.w d3 bge.s loc_669CE neg.w d3 bvc.s loc_669CE loc_669C4: ; CODE XREF: sub_6653A+47Ej move.w #$7FFF,d3 bra.s loc_669CE ; --------------------------------------------------------------------------- loc_669CA: ; CODE XREF: sub_6653A+480j move.w #$8000,d3 loc_669CE: ; CODE XREF: sub_6653A+484j ; sub_6653A+488j ... move.w d3,(word_FFFFA9FA).w btst #4,(byte_FFFF9B2E).w beq.s loc_66A4C btst #7,(byte_FFFF9B2E).w bne.s loc_669E8 move.w (DI_EVAP_KE_FUEL_LEVEL_PERCENT_DEFAULT).l,d0 loc_669E8: ; CODE XREF: sub_6653A+4A6j move.l d0,d5 lsr.w #1,d5 movea.l #DI_EVAP_KV_DELTA_VACUUM_SLOSH,a2 ; Delta fuel tank vacuum >= this indicates sloshing in fuel tank. ; Inches H2O tbls.w (a2),d5 cmp.w d5,d3 ble.s loc_66A02 bset #4,(byte_FFFFA9D7).w bra.s loc_66A36 ; --------------------------------------------------------------------------- loc_66A02: ; CODE XREF: sub_6653A+4BEj bclr #4,(byte_FFFFA9D7).w lsr.w #1,d0 movea.l #DI_EVAP_KV_EVPD_DELTA_VAC_040_SLOSH,a2 ; Delta fuel tank vacuum >= this indicates sloshing in fuel tank. ; Inches H2O tbls.w (a2),d0 cmp.w d0,d3 ble.s loc_66A32 btst #7,(byte_FFFF9B2E).w bne.s loc_66A2A cmpi.w #$1000,(DI_EVAP_KE_EVPD_020_SLOPE_MULTIPLIER).l ; The existing 040 calibration threshold tables are multiplied this calibration to find the effective, 0.020 slope threshold. ; Unitless bne.s loc_66A32 loc_66A2A: ; CODE XREF: sub_6653A+4E4j move.b #1,(byte_FFFFAA07).w bra.s loc_66A36 ; --------------------------------------------------------------------------- loc_66A32: ; CODE XREF: sub_6653A+4DCj ; sub_6653A+4EEj clr.b (byte_FFFFAA07).w loc_66A36: ; CODE XREF: sub_6653A+4C6j ; sub_6653A+4F6j cmp.w (DI_EVAP_KE_DELTA_VAC_SLOSH_FORSRT).l,d3 ; Amount of tank vacuum used to determine if irrational slosh has been present during the slosh rationality test. ; Inches Of Water ble.s loc_66A46 bset #1,(byte_FFFFA9D7).w bra.s loc_66A4C ; --------------------------------------------------------------------------- loc_66A46: ; CODE XREF: sub_6653A+502j bclr #1,(byte_FFFFA9D7).w loc_66A4C: ; CODE XREF: sub_6653A+444j ; sub_6653A+44Cj ... move.w (word_FFFF9B48).w,(word_FFFFA9E6).w move.b (byte_FFFFAA07).w,d3 or.b (byte_FFFFAA06).w,d3 beq.s loc_66A6A cmpi.b #3,(byte_FFFF9E95).w bne.s loc_66A6A move.b #1,(byte_FFFFA9E0).w loc_66A6A: ; CODE XREF: sub_6653A+520j ; sub_6653A+528j btst #5,(byte_FFFFA9D7).w bne.s loc_66A7A btst #4,(byte_FFFFA9D7).w beq.s loc_66A88 loc_66A7A: ; CODE XREF: sub_6653A+536j cmpi.b #3,(byte_FFFF9E95).w bne.s loc_66A88 bset #6,(byte_FFFFA9D6).w loc_66A88: ; CODE XREF: sub_6653A+53Ej ; sub_6653A+546j moveq #1,d0 cmp.b (byte_FFFFA9DA).w,d0 bne.s loc_66A9A bset #3,(byte_FFFFA9D6).w bra.w loc_66B44 ; --------------------------------------------------------------------------- loc_66A9A: ; CODE XREF: sub_6653A+554j move.l (dword_FFFF808E).w,d3 btst #7,(byte_FFFF9B2E).w beq.s loc_66AD8 move.w (word_FFFF9B52).w,d4 cmp.w (DI_EVAP_KE_FAIL_REPORT_HIGH_FUEL_LEVEL).l,d4 ; Fuel level values > this indicate fuel tank is over-filled. ; Percent bls.s loc_66AD8 move.l d3,d4 sub.l (dword_FFFF8274).w,d4 bcc.s loc_66ABC clr.l d4 loc_66ABC: ; CODE XREF: sub_6653A+57Ej move.l d4,(dword_FFFFA9EE).w cmp.l (DI_EVAP_KE_FAIL_REPORT_MIN_MILES).l,d4 ; When fuel tank is over-filled, this many miles must be accumulated in this trip to enable general failure reporting. ; Miles bcs.s loc_66AD0 bset #3,(byte_FFFFA9D6).w bra.s loc_66AE6 ; --------------------------------------------------------------------------- loc_66AD0: ; CODE XREF: sub_6653A+58Cj bclr #3,(byte_FFFFA9D6).w bra.s loc_66AE6 ; --------------------------------------------------------------------------- loc_66AD8: ; CODE XREF: sub_6653A+56Aj ; sub_6653A+576j bset #3,(byte_FFFFA9D6).w move.l d3,(dword_FFFF8274).w clr.l (dword_FFFFA9EE).w loc_66AE6: ; CODE XREF: sub_6653A+594j ; sub_6653A+59Cj lea var_8(a6),a2 move.b (byte_FFFF9E90).w,6(a2) move.l (byte_FFFF9E8C).w,2(a2) move.w (word_FFFF9E8A).w,(a2) move.b 6(a2),var_A(a6) move.l 2(a2),var_E(a6) move.w (a2),var_10(a6) btst #2,var_E+3(a6) beq.s loc_66B1A btst #1,var_E+3(a6) beq.s loc_66B22 loc_66B1A: ; CODE XREF: sub_6653A+5D6j btst #3,var_10(a6) beq.s loc_66B54 loc_66B22: ; CODE XREF: sub_6653A+5DEj tst.b (byte_FFFF827C).w bne.s loc_66B30 move.b d0,(byte_FFFF827C).w move.l d3,(dword_FFFF8278).w loc_66B30: ; CODE XREF: sub_6653A+5ECj sub.l (dword_FFFF8278).w,d3 bcc.s loc_66B38 clr.l d3 loc_66B38: ; CODE XREF: sub_6653A+5FAj move.l d3,(dword_FFFFA9F2).w cmp.l (DI_EVAP_KE_VAC_PROBLEM_FAIL_MIN_MILES).l,d3 bcs.s loc_66B4C loc_66B44: ; CODE XREF: sub_6653A+55Cj bset #2,(byte_FFFFA9D6).w bra.s loc_66B76 ; --------------------------------------------------------------------------- loc_66B4C: ; CODE XREF: sub_6653A+608j bclr #2,(byte_FFFFA9D6).w bra.s loc_66B76 ; --------------------------------------------------------------------------- loc_66B54: ; CODE XREF: sub_6653A+5E6j btst #1,var_E+3(a6) beq.s loc_66B76 btst #2,var_10(a6) beq.s loc_66B76 bset #2,(byte_FFFFA9D6).w move.l d3,(dword_FFFF8278).w clr.l (dword_FFFFA9F2).w clr.b (byte_FFFF827C).w loc_66B76: ; CODE XREF: sub_6653A+610j ; sub_6653A+618j ... cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_66BA2 cmp.b (byte_FFFFA9DA).w,d0 bne.s loc_66B8C loc_66B84: ; CODE XREF: sub_6653A+65Aj bset #0,(byte_FFFFA9D6).w bra.s loc_66B9C ; --------------------------------------------------------------------------- loc_66B8C: ; CODE XREF: sub_6653A+648j jsr sub_66414 tst.b d0 bne.s loc_66B84 bclr #0,(byte_FFFFA9D6).w loc_66B9C: ; CODE XREF: sub_6653A+650j bset #1,(byte_FFFFA9D6).w loc_66BA2: ; CODE XREF: sub_6653A+642j jsr sub_664A0 clr.b d3 tst.b (byte_FFFFA1A3).w beq.s loc_66BDE move.l (DI_EVAP_KE_EVAP_DIAG_INHIBITING_FAULTS).l,d4 ; Disable Evap diagnostic tests if any faults in the groups marked TRUE are active. ; BOOLEAN and.l (byte_FFFF8252).w,d4 bne.s loc_66BDE tst.b (byte_FFFFB2E8).w beq.s loc_66BDE move.b (byte_FFFFB2EB).w,d4 beq.s loc_66BD4 cmpi.b #2,d4 beq.s loc_66BD4 cmpi.b #4,d4 bne.s loc_66BDE loc_66BD4: ; CODE XREF: sub_6653A+68Cj ; sub_6653A+692j cmpi.b #4,(ThrottleControlMode2?).w beq.s loc_66BDE addq.b #1,d3 loc_66BDE: ; CODE XREF: sub_6653A+674j ; sub_6653A+680j ... move.w (word_FFFFB4A2).w,d4 cmp.w (DI_EVAP_KE_IGNITION_VOLTAGE_MIN).l,d4 ; Minimum ignition voltage which permits execution of the EVAP diagnostic. ; Volts bls.s loc_66BFC cmp.w (DI_EVAP_KE_IGNITION_VOLTAGE_MAX).l,d4 ; Maximum ignition voltage which permits execution of the EVAP diagnostic. ; Volts bcc.s loc_66BFC move.w (DI_EVAP_KE_IGNITION_VOLTAGE_EXCURSION_TI).l,(word_FFFFA9F8).w ; Determine how long the ignition voltage must be outside of it's enable window in order to disable the evap diagnostic. ; Seconds bra.s loc_66C16 ; --------------------------------------------------------------------------- loc_66BFC: ; CODE XREF: sub_6653A+6AEj ; sub_6653A+6B6j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA9F8).w,d4 sub.w $A(a2),d4 bcc.s loc_66C0C clr.w d4 loc_66C0C: ; CODE XREF: sub_6653A+6CEj move.w d4,(word_FFFFA9F8).w tst.w d4 bhi.s loc_66C16 clr.b d3 loc_66C16: ; CODE XREF: sub_6653A+6C0j ; sub_6653A+6D8j btst #7,(byte_FFFF9B2E).w beq.s loc_66C5E btst #6,(byte_FFFF9B2E).w beq.s loc_66C5E move.w (word_FFFF9B52).w,d4 cmp.w (DI_EVAP_KE_FUEL_LEVEL_ENABLE_MIN).l,d4 ; Fuel level must be < this TO enable Evap diagnostic system. ; Percent bcs.s loc_66C44 cmp.w (DI_EVAP_KE_FUEL_LEVEL_ENABLE_MAX).l,d4 ; Fuel level must be <= this TO enable Evap diagnostic system. ; Percent bhi.s loc_66C44 move.w (DI_EVAP_KE_FUEL_LEVEL_OUT_OF_RANGE_TIME).l,(word_FFFFA9F6).w ; Determine how long the fuel level must be outside of it's enable window in order to disable the evap diagnostic. ; Seconds bra.s loc_66C5E ; --------------------------------------------------------------------------- loc_66C44: ; CODE XREF: sub_6653A+6F6j ; sub_6653A+6FEj movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA9F6).w,d4 sub.w $A(a2),d4 bcc.s loc_66C54 clr.w d4 loc_66C54: ; CODE XREF: sub_6653A+716j move.w d4,(word_FFFFA9F6).w tst.w d4 bhi.s loc_66C5E clr.b d3 loc_66C5E: ; CODE XREF: sub_6653A+6E2j ; sub_6653A+6EAj ... tst.b d3 beq.s loc_66C6A bset #7,(byte_FFFFA9D7).w bra.s loc_66C70 ; --------------------------------------------------------------------------- loc_66C6A: ; CODE XREF: sub_6653A+726j bclr #7,(byte_FFFFA9D7).w loc_66C70: ; CODE XREF: sub_6653A+72Ej movem.l (sp)+,d0-d2/d6-a1/a4 unlk a6 rts ; End of function sub_6653A ; =============== S U B R O U T I N E ======================================= sub_66C78: ; CODE XREF: OS1:0002919Ap andi.w #$FF,d0 cmpi.w #8,d0 bhi.w locret_66E46 movea.l off_0+$41C.l(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_66C8E: ; DATA XREF: Boot:off_0o move.w (DI_EVAP_KE_IGNITION_VOLTAGE_EXCURSION_TI).l,(word_FFFFA9F8).w ; Determine how long the ignition voltage must be outside of it's enable window in order to disable the evap diagnostic. ; Seconds move.w (DI_EVAP_KE_FUEL_LEVEL_OUT_OF_RANGE_TIME).l,(word_FFFFA9F6).w ; Determine how long the fuel level must be outside of it's enable window in order to disable the evap diagnostic. ; Seconds move.w (word_FFFFADB6).w,d3 cmpi.w #$E00,d3 ble.s loc_66CAE move.w #$E00,d3 bra.s loc_66CB8 ; --------------------------------------------------------------------------- loc_66CAE: ; CODE XREF: sub_66C78+2Ej cmpi.w #$FC00,d3 bge.s loc_66CB8 move.w #$FC00,d3 loc_66CB8: ; CODE XREF: sub_66C78+34j ; sub_66C78+3Aj addi.w #$400,d3 tblu.w (DI_EVAP_KV_CCP_COLD_TEST_RAMP_TIMER_LMT).l,d3 ; Indicates what a 'normal' CCP ducty cycle ramp up time is. ; Seconds move.w d3,(word_FFFFA9EA).w tst.b (byte_FFFFB54A).w bne.s loc_66CE6 clr.l (dword_FFFFA9F2).w movea.l (dword_FFFF808E).w,a2 move.l a2,(dword_FFFF8278).w clr.l (dword_FFFFA9EE).w move.l a2,(dword_FFFF8274).w clr.b (byte_FFFF827C).w loc_66CE6: ; CODE XREF: sub_66C78+54j bset #0,(byte_FFFFA9D6).w move.b #2,(byte_FFFFA9DA).w move.b #5,(byte_FFFFA9DB).w bra.w loc_66E02 ; --------------------------------------------------------------------------- loc_66CFC: ; DATA XREF: Boot:off_0o move.w (DI_EVAP_KE_IGNITION_VOLTAGE_EXCURSION_TI).l,(word_FFFFA9F8).w ; Determine how long the ignition voltage must be outside of it's enable window in order to disable the evap diagnostic. ; Seconds move.w (128660).l,(word_FFFFA9F6).w ; Determine how long the fuel level must be outside of it's enable window in order to disable the evap diagnostic. ; Seconds clr.w (word_FFFFA9D8).w clr.w (word_FFFFA9EC).w bclr #4,(byte_FFFFA9D6).w bclr #5,(byte_FFFFA9D6).w bclr #7,(byte_FFFFA9D6).w bclr #2,(byte_FFFFA9D7).w bclr #1,(byte_FFFFA9D7).w move.w (word_FFFFADB6).w,d3 cmpi.w #$E00,d3 ble.s loc_66D82 loc_66D3C: ; CODE XREF: sub_66C78+108j move.w #$E00,d3 bra.s loc_66D8C ; --------------------------------------------------------------------------- loc_66D42: ; DATA XREF: Boot:off_0o move.w (DI_EVAP_KE_IGNITION_VOLTAGE_EXCURSION_TI).l,(word_FFFFA9F8).w ; Determine how long the ignition voltage must be outside of it's enable window in order to disable the evap diagnostic. ; Seconds move.w (128660).l,(word_FFFFA9F6).w ; Determine how long the fuel level must be outside of it's enable window in order to disable the evap diagnostic. ; Seconds clr.w (4294945240).w clr.w (word_FFFFA9EC).w bclr #4,(byte_FFFFA9D6).w bclr #5,(byte_FFFFA9D6).w bclr #7,(byte_FFFFA9D6).w bclr #2,(byte_FFFFA9D7).w bclr #1,(byte_FFFFA9D7).w move.w (word_FFFFADB6).w,d3 cmpi.w #$E00,d3 bgt.s loc_66D3C loc_66D82: ; CODE XREF: sub_66C78+C2j cmpi.w #$FC00,d3 bge.s loc_66D8C move.w #$FC00,d3 loc_66D8C: ; CODE XREF: sub_66C78+C8j ; sub_66C78+10Ej addi.w #$400,d3 tblu.w (DI_EVAP_KV_CCP_COLD_TEST_RAMP_TIMER_LMT).l,d3 ; Indicates what a 'normal' CCP ducty cycle ramp up time is. ; Seconds move.w d3,(word_FFFFA9EA).w bclr #6,(byte_FFFFA9D6).w clr.b (byte_FFFFAA05).w move.w (word_FFFF9B4E).w,(word_FFFFA9E2).w move.w (word_FFFF9B4C).w,(word_FFFFA9E4).w bclr #4,(byte_FFFFA9D7).w clr.b (byte_FFFFA9E0).w clr.b (byte_FFFFAA06).w clr.b (byte_FFFFAA07).w bclr #5,(byte_FFFFA9D7).w bclr #3,(byte_FFFFA9D6).w bclr #2,(byte_FFFFA9D6).w bset #0,(byte_FFFFA9D6).w bclr #1,(byte_FFFFA9D6).w bclr #7,(byte_FFFFA9D7).w bclr #6,(byte_FFFFA9D7).w move.b #2,(byte_FFFFA9DA).w move.b #5,(byte_FFFFA9DB).w clr.w (word_FFFFAA00).w clr.b (byte_FFFFAA04).w loc_66E02: ; CODE XREF: sub_66C78+80j clr.b d3 btst #5,(byte_FFFF9E90).w bne.s loc_66E0E addq.b #1,d3 loc_66E0E: ; CODE XREF: sub_66C78+192j move.b d3,(byte_FFFFAA03).w move.b (byte_FFFF9E91).w,(byte_FFFFAA02).w bra.s locret_66E46 ; --------------------------------------------------------------------------- loc_66E1A: ; DATA XREF: Boot:0000043Co move.w (word_FFFFADB6).w,d3 cmpi.w #$E00,d3 ble.s loc_66E2A move.w #$E00,d3 bra.s loc_66E34 ; --------------------------------------------------------------------------- loc_66E2A: ; CODE XREF: sub_66C78+1AAj cmpi.w #$FC00,d3 bge.s loc_66E34 move.w #$FC00,d3 loc_66E34: ; CODE XREF: sub_66C78+1B0j ; sub_66C78+1B6j addi.w #$400,d3 tblu.w (DI_EVAP_KV_CCP_COLD_TEST_RAMP_TIMER_LMT).l,d3 ; Indicates what a 'normal' CCP ducty cycle ramp up time is. ; Seconds move.w d3,(word_FFFFA9EA).w loc_66E44: ; DATA XREF: Boot:off_0o nop locret_66E46: ; CODE XREF: sub_66C78+8j ; sub_66C78+1A0j ; DATA XREF: ... rts ; End of function sub_66C78 ; =============== S U B R O U T I N E ======================================= sub_66E48: ; CODE XREF: sub_66E8Ap bclr #7,(byte_FFFFB0AE).w clr.w (word_FFFFB0B4).w clr.w (word_FFFFB0B6).w clr.w (word_FFFFB0B8).w clr.w (word_FFFFB0BA).w clr.w (word_FFFFB0BC).w clr.w (word_FFFFB0BE).w clr.w (word_FFFFB0C2).w clr.w (word_FFFFB0C4).w rts ; End of function sub_66E48 ; =============== S U B R O U T I N E ======================================= sub_66E70: ; CODE XREF: sub_66E8A+6p sub_66E98+Cp clr.w (word_FFFF8CE6).w clr.w (word_FFFF8CE8).w clr.w (word_FFFF8CEA).w clr.w (word_FFFF8CEC).w clr.w (word_FFFF8CEE).w clr.w (word_FFFF8CF0).w rts ; End of function sub_66E70 ; =============== S U B R O U T I N E ======================================= sub_66E8A: ; CODE XREF: sub_75370+246p jsr sub_66E48 jsr sub_66E70 rts ; End of function sub_66E8A ; =============== S U B R O U T I N E ======================================= sub_66E98: ; CODE XREF: OS1:000291F4p cmpi.b #2,d0 bne.s locret_66EB0 tst.b (byte_FFFFB54A).w bne.s loc_66EAA jsr sub_66E70 loc_66EAA: ; CODE XREF: sub_66E98+Aj move.w #$FFFF,(word_FFFFB0B2).w locret_66EB0: ; CODE XREF: sub_66E98+4j rts ; End of function sub_66E98 ; =============== S U B R O U T I N E ======================================= sub_66EB2: ; CODE XREF: DoLoopF+122p jsr sub_66ED2 jsr sub_66F48 jsr sub_67010 jsr sub_670C2 jsr sub_6716E rts ; End of function sub_66EB2 ; =============== S U B R O U T I N E ======================================= sub_66ED2: ; CODE XREF: sub_66EB2p move.w (EngineRPM_PID_000C___).w,d3 cmp.w (word_FFFFB0B0).w,d3 bls.s loc_66EE0 move.w d3,(word_FFFFB0B0).w loc_66EE0: ; CODE XREF: sub_66ED2+8j cmp.w (word_FFFFB0B2).w,d3 bcc.s loc_66EEA move.w d3,(word_FFFFB0B2).w loc_66EEA: ; CODE XREF: sub_66ED2+12j clr.l d5 move.w (word_FFFFB0B2).w,d5 clr.l d4 move.w (word_FFFFB0B0).w,d4 sub.l d5,d4 clr.l d5 move.w (DG_FAN_KE_FAND_ENGINE_SPEED_DELTA_MAX).l,d5 ; Maximum allowable change in the engine speed to enable the performance test. ; RPM cmp.l d5,d4 bge.s loc_66F0C cmp.w (DG_FAN_KE_FAND_SYSPERF_RPM_MAX).l,d3 ; Maximum allowable engine speed to enable the system performance test. ; RPM bls.s loc_66F22 loc_66F0C: ; CODE XREF: sub_66ED2+30j bclr #6,(byte_FFFFB0AE).w clr.w (word_FFFFB0B0).w move.w #$FFFF,(word_FFFFB0B2).w clr.b (byte_FFFFB0C0).w bra.s locret_66F46 ; --------------------------------------------------------------------------- loc_66F22: ; CODE XREF: sub_66ED2+38j move.b (byte_FFFFB0C0).w,d3 cmp.b (DG_FAN_KE_FAND_STABLE_SPEED_TIME).l,d3 ; Amount of time that the speed command must remain stable to perform the system performance test. ; Seconds bcs.s loc_66F36 bset #6,(byte_FFFFB0AE).w bra.s locret_66F46 ; --------------------------------------------------------------------------- loc_66F36: ; CODE XREF: sub_66ED2+5Aj add.b (byte_80D).l,d3 bcc.s loc_66F42 move.b #$FF,d3 loc_66F42: ; CODE XREF: sub_66ED2+6Aj move.b d3,(byte_FFFFB0C0).w locret_66F46: ; CODE XREF: sub_66ED2+4Ej ; sub_66ED2+62j rts ; End of function sub_66ED2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_66F48: ; CODE XREF: sub_66EB2+6p var_4 = -4 var_2 = -2 link a6,#-4 move.l d0,-(sp) btst #3,(byte_FFFFB4F4).w beq.w loc_67004 btst #6,(byte_FFFFB0AE).w beq.w loc_67004 move.w (word_FFFF9DB0).w,d3 beq.w loc_67004 move.w (word_FFFFB0C4).w,d3 addq.w #1,d3 bcc.s loc_66F76 move.w #$FFFF,d3 loc_66F76: ; CODE XREF: sub_66F48+28j move.w d3,(word_FFFFB0C4).w movea.w (word_FFFF9DB2).w,a2 move.w (word_FFFFB4F6).w,var_4(a6) move.w a2,var_2(a6) move.w (DI_FAN_KE_FAND_DELTA_FAN_SPEED_COEF).l,d3 ; The filter coefficient for the delta fan speed variable used by the system performance test. ; 0-1 tblu.w var_4(a6),d3 move.w d3,(word_FFFFB4F6).w cmp.w (DG_FAN_KE_FAND_DELTA_FAN_SPEED_LIM).l,d3 ; Maximum error allowed before incrementing the fail counter. ; RPM bcs.s loc_66FB0 move.w (word_FFFFB0C2).w,d3 addq.w #1,d3 bcc.s loc_66FAC move.w #$FFFF,d3 loc_66FAC: ; CODE XREF: sub_66F48+5Ej move.w d3,(word_FFFFB0C2).w loc_66FB0: ; CODE XREF: sub_66F48+56j move.w (word_FFFFB0C2).w,d0 cmp.w (DG_FAN_KE_FAND_SYSPERF_FAIL_LIM).l,d0 ; Number of fails counts required to fail the system performance test. ; Unitless bcs.s loc_66FE0 moveq #$66,d0 ; 'f' jsr sub_5F110 move.w (word_FFFF8CF0).w,d3 beq.s loc_66FD0 cmp.w (word_FFFFB0C4).w,d3 bls.s loc_66FD6 loc_66FD0: ; CODE XREF: sub_66F48+80j move.w (word_FFFFB0C4).w,(word_FFFF8CF0).w loc_66FD6: ; CODE XREF: sub_66F48+86j ; sub_66F48+B4j ... clr.w (word_FFFFB0C2).w clr.w (word_FFFFB0C4).w bra.s loc_67004 ; --------------------------------------------------------------------------- loc_66FE0: ; CODE XREF: sub_66F48+72j move.w (word_FFFFB0C4).w,d0 cmp.w (DG_FAN_KE_FAND_SYS_SMPL_LIM).l,d0 ; Number of samples required to pass the system performance test. ; Unitless bcs.s loc_6700A moveq #$66,d0 ; 'f' jsr sub_5F0BE move.w (word_FFFFB0C2).w,d3 cmp.w (word_FFFF8CEE).w,d3 bls.s loc_66FD6 move.w d3,(word_FFFF8CEE).w bra.s loc_66FD6 ; --------------------------------------------------------------------------- loc_67004: ; CODE XREF: sub_66F48+Cj ; sub_66F48+16j ... move.w (word_FFFF9DB2).w,(word_FFFFB4F6).w loc_6700A: ; CODE XREF: sub_66F48+A2j move.l (sp)+,d0 unlk a6 rts ; End of function sub_66F48 ; =============== S U B R O U T I N E ======================================= sub_67010: ; CODE XREF: sub_66EB2+Cp move.l d0,-(sp) move.w (EngineRPM_PID_000C___).w,d3 btst #7,(byte_FFFFB4F4).w beq.w loc_670BE btst #4,(byte_FFFFB4F4).w beq.w loc_670BE cmp.w (DG_FAN_KE_FAND_SPEEDHI_RPM_MIN).l,d3 ; Minimum engine speed that will allow evaluation of the fan speed. ; RPM bcs.w loc_670BE cmp.w (DG_FAN_KE_FAND_SPEEDHI_RPM_MAX).l,d3 ; Maximum engine speed that will allow evaluation of the fan speed. ; RPM bhi.w loc_670BE move.w (word_FFFFB0BE).w,d3 addq.w #1,d3 bcc.s loc_6704A move.w #$FFFF,d3 loc_6704A: ; CODE XREF: sub_67010+34j move.w d3,(word_FFFFB0BE).w move.w (word_FFFF9DAC).w,d3 cmp.w (DG_FAN_KE_FAND_FAN_SPEED_MAX).l,d3 ; Threshold of fan speed above which is considered high. ; RPM bls.s loc_6706A move.w (word_FFFFB0BC).w,d3 addq.w #1,d3 bcc.s loc_67066 move.w #$FFFF,d3 loc_67066: ; CODE XREF: sub_67010+50j move.w d3,(word_FFFFB0BC).w loc_6706A: ; CODE XREF: sub_67010+48j move.w (word_FFFFB0BC).w,d0 cmp.w (DG_FAN_KE_FAND_SPEEDHI_FAIL_LIM).l,d0 ; Number of fail counts required to fail the test. ; Unitless bcs.s loc_6709A moveq #$6A,d0 ; 'j' jsr sub_5F110 move.w (word_FFFF8CEC).w,d3 beq.s loc_6708A cmp.w (word_FFFFB0BE).w,d3 bls.s loc_67090 loc_6708A: ; CODE XREF: sub_67010+72j move.w (word_FFFFB0BE).w,(word_FFFF8CEC).w loc_67090: ; CODE XREF: sub_67010+78j ; sub_67010+A6j ... clr.w (word_FFFFB0BC).w clr.w (word_FFFFB0BE).w bra.s loc_670BE ; --------------------------------------------------------------------------- loc_6709A: ; CODE XREF: sub_67010+64j move.w (word_FFFFB0BE).w,d0 cmp.w (DG_FAN_KE_FAND_SPEEDHI_SMPL_LIM).l,d0 ; Number of samples required to pass the fan speed too high test. ; Unitless bcs.s loc_670BE moveq #$6A,d0 ; 'j' jsr sub_5F0BE move.w (word_FFFFB0BC).w,d3 cmp.w (word_FFFF8CEA).w,d3 bls.s loc_67090 move.w d3,(word_FFFF8CEA).w bra.s loc_67090 ; --------------------------------------------------------------------------- loc_670BE: ; CODE XREF: sub_67010+Cj ; sub_67010+16j ... move.l (sp)+,d0 rts ; End of function sub_67010 ; =============== S U B R O U T I N E ======================================= sub_670C2: ; CODE XREF: sub_66EB2+12p move.l d0,-(sp) btst #5,(byte_FFFFB4F4).w beq.w loc_67162 move.w (word_FFFFB0BA).w,d3 addq.w #1,d3 bcc.s loc_670DA move.w #$FFFF,d3 loc_670DA: ; CODE XREF: sub_670C2+12j move.w d3,(word_FFFFB0BA).w move.w (word_FFFF9DB4).w,d3 mulu.w #$15,d3 divu.w #$2B,d3 ; '+' cmpi.w #$320,d3 bhi.s loc_670F8 cmpi.w #1,d3 bcs.s loc_670FE bra.s loc_67100 ; --------------------------------------------------------------------------- loc_670F8: ; CODE XREF: sub_670C2+2Cj move.w #$320,d3 bra.s loc_67100 ; --------------------------------------------------------------------------- loc_670FE: ; CODE XREF: sub_670C2+32j moveq #1,d3 loc_67100: ; CODE XREF: sub_670C2+34j ; sub_670C2+3Aj cmp.w (DG_FAN_KE_FAND_SENSOR_FREQ_MIN).l,d3 ; Minimum fan speed frequency below which the speed input is considered missing. ; Hertz bhi.s loc_67118 move.w (word_FFFFB0B8).w,d3 addq.w #1,d3 bcc.s loc_67114 move.w #$FFFF,d3 loc_67114: ; CODE XREF: sub_670C2+4Cj move.w d3,(word_FFFFB0B8).w loc_67118: ; CODE XREF: sub_670C2+44j move.w (word_FFFFB0B8).w,d0 cmp.w (DG_FAN_KE_FAND_SENSOR_FAIL_LIM).l,d0 ; Number of fails counts required to fail the fan speed sensor circuit test. ; Unitless bcs.s loc_67140 moveq #$73,d0 ; 's' jsr sub_5F110 move.w (word_FFFF8CE8).w,d3 beq.s loc_67138 cmp.w (word_FFFFB0BA).w,d3 bls.s loc_67162 loc_67138: ; CODE XREF: sub_670C2+6Ej move.w (word_FFFFB0BA).w,(word_FFFF8CE8).w bra.s loc_67162 ; --------------------------------------------------------------------------- loc_67140: ; CODE XREF: sub_670C2+60j move.w (word_FFFFB0BA).w,d0 cmp.w (DG_FAN_KE_FAND_SENSOR_SMPL_LIM).l,d0 ; Number of samples required to pass the fan speed sensor circuit test. ; Unitless bcs.s loc_6716A moveq #$73,d0 ; 's' jsr sub_5F0BE move.w (word_FFFFB0B8).w,d3 cmp.w (word_FFFF8CE6).w,d3 bls.s loc_67162 move.w d3,(word_FFFF8CE6).w loc_67162: ; CODE XREF: sub_670C2+8j ; sub_670C2+74j ... clr.w (word_FFFFB0B8).w clr.w (word_FFFFB0BA).w loc_6716A: ; CODE XREF: sub_670C2+88j move.l (sp)+,d0 rts ; End of function sub_670C2 ; =============== S U B R O U T I N E ======================================= sub_6716E: ; CODE XREF: sub_66EB2+18p move.l d0,-(sp) btst #6,(byte_FFFFB4F4).w beq.w loc_6720A move.w (word_FFFFB0B6).w,d3 addq.w #1,d3 bcc.s loc_67186 move.w #$FFFF,d3 loc_67186: ; CODE XREF: sub_6716E+12j move.w d3,(word_FFFFB0B6).w move.w (word_FFFF9DB4).w,d3 mulu.w #$15,d3 divu.w #$2B,d3 ; '+' cmpi.w #$320,d3 bhi.s loc_671A4 cmpi.w #1,d3 bcs.s loc_671AA bra.s loc_671AC ; --------------------------------------------------------------------------- loc_671A4: ; CODE XREF: sub_6716E+2Cj move.w #$320,d3 bra.s loc_671AC ; --------------------------------------------------------------------------- loc_671AA: ; CODE XREF: sub_6716E+32j moveq #1,d3 loc_671AC: ; CODE XREF: sub_6716E+34j ; sub_6716E+3Aj cmp.w (DG_FAN_KE_FAND_OVERSPEED_THRESHOLD).l,d3 ; Threshold of fan speed above which is unsafe. ; Hertz bls.s loc_671C4 move.w (word_FFFFB0B4).w,d3 addq.w #1,d3 bcc.s loc_671C0 move.w #$FFFF,d3 loc_671C0: ; CODE XREF: sub_6716E+4Cj move.w d3,(word_FFFFB0B4).w loc_671C4: ; CODE XREF: sub_6716E+44j move.w (word_FFFFB0B4).w,d0 cmp.w (DG_FAN_KE_FAND_OVERSPEED_FAIL_LIM).l,d0 ; Number of fails counts required to fail the overspeed test. ; Unitless bcs.s loc_671E8 moveq #$69,d0 ; 'i' jsr sub_5F110 clr.w (word_FFFFB0B4).w clr.w (word_FFFFB0B6).w bset #7,(byte_FFFFB0AE).w bra.s loc_6720A ; --------------------------------------------------------------------------- loc_671E8: ; CODE XREF: sub_6716E+60j move.w (word_FFFFB0B6).w,d0 cmp.w (DG_FAN_KE_FAND_OVERSPEED_SMPL_LIM).l,d0 ; Number of samples required to pass the overspeed test. ; Unitless bcs.s loc_6720A moveq #$69,d0 ; 'i' jsr sub_5F0BE clr.w (word_FFFFB0B4).w clr.w (word_FFFFB0B6).w bclr #7,(byte_FFFFB0AE).w loc_6720A: ; CODE XREF: sub_6716E+8j ; sub_6716E+78j ... move.l (sp)+,d0 rts ; End of function sub_6716E ; =============== S U B R O U T I N E ======================================= sub_6720E: ; CODE XREF: DoLoopF:loc_2AC54p movem.l d0-d1/a0,-(sp) bclr #6,(byte_FFFFB4F4).w tst.b (byte_FFFFA1A4).w beq.s loc_67224 bset #6,(byte_FFFFB4F4).w loc_67224: ; CODE XREF: sub_6720E+Ej tst.b (byte_FFFFA362).w bne.w loc_672FE btst #2,(byte_FFFF9A16).w beq.w loc_672FE tst.b (byte_FFFFB473).w bne.w loc_672FE cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_672FE tst.b (byte_FFFF9035).w bne.w loc_672FE moveq #5,d1 cmp.b (ThrottleControlMode2?).w,d1 bne.s loc_67262 move.w (word_FFFFB4A6).w,d3 mulu.w d1,d3 lsr.w #7,d3 bra.s loc_6727C ; --------------------------------------------------------------------------- loc_67262: ; CODE XREF: sub_6720E+48j move.w (word_FFFFB4A2).w,d3 mulu.w d1,d3 cmpi.l #$FFFF,d3 bhi.s loc_67278 lsr.w #7,d3 cmpi.w #$FF,d3 bls.s loc_6727C loc_67278: ; CODE XREF: sub_6720E+60j move.b #$FF,d3 loc_6727C: ; CODE XREF: sub_6720E+52j ; sub_6720E+68j cmp.b (DI_FAN_KE_FAND_SYS_VOLTAGE_MIN).l,d3 ; The minimum allowable system voltage to enable the tests. ; Volts bcs.s loc_672FE move.w (word_FFFFB3E8).w,d3 cmp.w (DI_FAN_KE_FAND_IAT_MIN).l,d3 ; The minimum allowable intake air temperature to enable the tests. ; Degrees C blt.s loc_672DE btst #1,(byte_FFFF88D4).w bne.s loc_672DE btst #1,(byte_FFFF88D6).w bne.s loc_672DE btst #1,(byte_FFFF89A6).w bne.s loc_672DE btst #1,(byte_FFFF8988).w bne.s loc_672DE btst #1,(byte_FFFF8AA2).w bne.s loc_672DE bclr #3,(byte_FFFFB4F4).w tst.b (byte_FFFFA1A7).w beq.s loc_672CA bset #3,(byte_FFFFB4F4).w loc_672CA: ; CODE XREF: sub_6720E+B4j bclr #4,(byte_FFFFB4F4).w tst.b (byte_FFFFA1A6).w beq.s loc_672EA bset #4,(byte_FFFFB4F4).w bra.s loc_672EA ; --------------------------------------------------------------------------- loc_672DE: ; CODE XREF: sub_6720E+80j ; sub_6720E+88j ... bclr #3,(byte_FFFFB4F4).w bclr #4,(byte_FFFFB4F4).w loc_672EA: ; CODE XREF: sub_6720E+C6j ; sub_6720E+CEj bclr #5,(byte_FFFFB4F4).w tst.b (byte_FFFFA1A5).w beq.s loc_67310 bset #5,(byte_FFFFB4F4).w bra.s loc_67310 ; --------------------------------------------------------------------------- loc_672FE: ; CODE XREF: sub_6720E+1Aj ; sub_6720E+24j ... bclr #5,(byte_FFFFB4F4).w bclr #3,(byte_FFFFB4F4).w bclr #4,(byte_FFFFB4F4).w loc_67310: ; CODE XREF: sub_6720E+E6j ; sub_6720E+EEj move.w (word_FFFF9DB0).w,d3 bne.s loc_6734E move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DI_FAN_KE_FAND_PUMP_OUT_RPM_MIN).l,d3 ; The minimum RPM required to pump oil out of the working chamber. ; RPM bls.s loc_67340 move.w (DI_FAN_KE_FAND_PUMP_OUT_TIME).l,d0 ; Length of time above which the fan clutch oil should have completed being pumped out. ; Seconds movea.l #unk_FFB4F8,a0 jsr sub_276D4 tst.b d0 beq.s loc_6735A bset #7,(byte_FFFFB4F4).w bra.s loc_6735A ; --------------------------------------------------------------------------- loc_67340: ; CODE XREF: sub_6720E+112j movea.l (dword_FFFFB5DE).w,a2 move.w $A(a2),d3 add.w d3,(word_FFFFB4F8).w bra.s loc_6735A ; --------------------------------------------------------------------------- loc_6734E: ; CODE XREF: sub_6720E+106j move.w (GlobalClock).w,(word_FFFFB4F8).w bclr #7,(byte_FFFFB4F4).w loc_6735A: ; CODE XREF: sub_6720E+128j ; sub_6720E+130j ... movem.l (sp)+,d0-d1/a0 rts ; End of function sub_6720E ; =============== S U B R O U T I N E ======================================= sub_67360: ; CODE XREF: OS1:00029234p var_6CEA = -$6CEA var_6CE6 = -$6CE6 var_6CDE = -$6CDE var_6C66 = -$6C66 var_6C5E = -$6C5E var_6C5A = -$6C5A var_6C54 = -$6C54 var_6C50 = -$6C50 cmpi.b #2,d0 bne.w locret_6740E moveq #1,d4 loc_6736A: ; CODE XREF: sub_67360+88j movea.w (DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL).l,a2 ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless clr.l d3 move.b d4,d3 move.w a2,var_6CEA(d3.w*2) move.w a2,var_6C54(d3.w*2) move.w a2,var_6C50(d3.w*2) bset #5,byte_FFFF92FC(d3.w*2) bset #7,unk_FFFF92FD(d3.w*2) clr.b -$6CF5(d3.w) clr.b -$6CF3(d3.w) movea.w #2,a3 move.w a3,var_6CDE(d3.w*2) move.w a3,var_6C5E(d3.w*2) move.w (DG_FASD_KEFADD_CNT_STALENONPURGEMAX).l,var_6C5A(d3.w*2) move.w (DG_FASD_KEFADD_CNT_FASD_STALEACCUMMAX).l,var_6C66(d3.w*2) move.w a2,var_6CE6(d3.w*2) tst.b (byte_FFFFB54A).w bne.s loc_673E2 move.w a2,word_FF8DA2(d3.w*2) move.w a2,word_FF8DA6(d3.w*2) loc_673E2: ; CODE XREF: sub_67360+70j addq.b #1,d4 cmpi.b #2,d4 bls.s loc_6736A bset #7,(byte_FFFF9306).w clr.b (byte_FFFF9321).w move.w (DG_FASD_KEFADD_K_FASD_FUELCTRLOVERRIDE).l,(word_FFFF9322).w move.w (word_FFFFA62A).w,d3 lsr.w #1,d3 tblu.w (DG_FASD_KTFADD_PCT_FASD_VALVERAMPSTEP).l,d3 ; Step size, based on the starting valve position, used while closing the purge valve during the intrusive test. ; Percent move.w d3,(word_FFFF93D8).w locret_6740E: ; CODE XREF: sub_67360+4j rts ; End of function sub_67360 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_67410: ; CODE XREF: DoLoopF+CEp var_6D19 = -$6D19 var_6D17 = -$6D17 var_6D15 = -$6D15 var_6D13 = -$6D13 var_6D12 = -$6D12 var_6D0F = -$6D0F var_6D0E = -$6D0E var_6D0A = -$6D0A var_6D02 = -$6D02 var_6CFE = -$6CFE var_6CFA = -$6CFA var_6CF6 = -$6CF6 var_6CF2 = -$6CF2 var_6CED = -$6CED var_6CEB = -$6CEB var_6CEA = -$6CEA var_6C8A = -$6C8A var_6C86 = -$6C86 var_6C82 = -$6C82 var_6C7E = -$6C7E var_6C79 = -$6C79 var_6C78 = -$6C78 var_6C74 = -$6C74 var_6C70 = -$6C70 var_6C6C = -$6C6C var_8 = -8 var_6 = -6 var_4 = -4 var_3 = -3 var_2 = -2 link a6,#-8 movem.l d0-d2/d6-a1,-(sp) move.b (byte_FFFF98DA).w,d7 move.b d7,var_4(a6) move.b d7,(byte_FFFF93E5).w tst.b (DG_FASD_KEFADD_B_FASD_DIAGNOSTICENABLED).l ; Global Diagnostic Enabling flag. ; BOOLEAN beq.s loc_6743C cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_6743C bset #6,(byte_FFFF9303).w bra.s loc_67442 ; --------------------------------------------------------------------------- loc_6743C: ; CODE XREF: sub_67410+1Aj ; sub_67410+22j bclr #6,(byte_FFFF9303).w loc_67442: ; CODE XREF: sub_67410+2Aj move.w (EngineRPM_PID_000C___).w,d3 move.w (word_FFFFA0DC).w,d4 move.w (word_FFFFB294).w,d0 asl.w #2,d0 move.w (CoolantTemperatureOrDefault).w,d1 move.b (byte_FFFF9954).w,d5 bne.s loc_6745E clr.b d5 bra.s loc_6746A ; --------------------------------------------------------------------------- loc_6745E: ; CODE XREF: sub_67410+48j cmpi.b #3,d5 bne.s loc_67468 moveq #2,d5 bra.s loc_6746A ; --------------------------------------------------------------------------- loc_67468: ; CODE XREF: sub_67410+52j moveq #1,d5 loc_6746A: ; CODE XREF: sub_67410+4Cj ; sub_67410+56j move.b d5,d6 move.w (word_FFFFB3E8).w,d2 tst.b (byte_FFFFB215).w beq.w loc_67518 cmp.w (DG_FASD_KEFADD_T_FASD_COOLANTTEMPLOW).l,d1 ; Data will be discarded if the coolant temperature is below this threshold. ; Deg C ble.w loc_67518 cmp.w (DG_FASD_KEFADD_T_FASD_COOLANTTEMPHIGH).l,d1 ; Data will be discarded if the coolant temperature is above this threshold. ; Deg C bge.w loc_67518 cmp.w (DG_FASD_KEFADD_N_FASD_RPM_LOW).l,d3 ; Data will be discarded if the engine speed is below this threshold. ; RPM bls.w loc_67518 cmp.w (DG_FASD_KEFADD_N_FASD_RPM_HIGH).l,d3 ; Data will be discarded if the engine speed is above this threshold. ; RPM bcc.s loc_67518 move.w (word_FFFF82D2).w,d3 asl.w #2,d3 cmp.w (DG_FASD_KEFADD_P_FASD_BAROMETERLOW).l,d3 ; Data will be discarded if the barometric pressure is below this threshold. ; kPa bls.s loc_67518 cmp.w (DG_FASD_KEFADD_DM_FASD_ENGAIRFLOWLOW).l,d4 ; Data will be discarded if the air flow is below this threshold. ; Grams/Sec bls.s loc_67518 cmp.w (DG_FASD_KEFADD_DM_FASD_ENGAIRFLOWHIGH).l,d4 ; Data will be discarded if the air flow is above this threshold. ; Grams/Sec bcc.s loc_67518 cmp.w (DG_FASD_KEFADD_T_FASD_IAT_LOW).l,d2 ; Data will be discarded if the intake air temperature is below this threshold. ; Deg C ble.s loc_67518 cmp.w (DG_FASD_KEFADD_T_FASD_IAT_HIGH).l,d2 ; Data will be discarded if the intake air temperature is above this threshold. ; Deg C bge.s loc_67518 move.w (word_FFFFB21A).w,d3 cmp.w (DI_FASD_KEFADD_T_FASD_MINIATENABLE).l,d3 ; FASD will be disabled if the min IAT is below this threshold. ; Degrees C blt.s loc_67518 move.w (word_FFFFAEBC).w,d3 cmp.w (DG_FASD_KEFADD_V_FASD_VEHSPEEDHIGH).l,d3 ; Data will be discarded if the vehicle speed is above this threshold. ; MPH bcc.s loc_67518 cmp.w (DG_FASD_KEFADD_P_MANIFOLDPRESSURELOW).l,d0 ; Data will be discarded if the manifold pressure is below this threshold. ; kPa bls.s loc_67518 cmp.w (DG_FASD_KEFADD_P_MANIFOLDPRESSUREHIGH).l,d0 ; Data will be discarded if the manifold pressure is above this threshold. ; kPa bcc.s loc_67518 move.w (word_FFFFA62A).w,d3 cmp.w (DG_FASD_KEFADD_PCT_FASD_PURGEOPENMIN).l,d3 ; Data will be discarded if the purge valve is open above this threshold and the vent valve is closed. ; Percent bls.s loc_67510 jsr sub_2F512 tst.b d0 bne.s loc_67510 tst.b (byte_FFFFB212).w beq.s loc_67518 loc_67510: ; CODE XREF: sub_67410+EEj ; sub_67410+F8j bset #7,(byte_FFFF9302).w bra.s loc_6751E ; --------------------------------------------------------------------------- loc_67518: ; CODE XREF: sub_67410+64j ; sub_67410+6Ej ... bclr #7,(byte_FFFF9302).w loc_6751E: ; CODE XREF: sub_67410+106j move.b (DI_FASD_KE_FASD_NUMBER_OF_BANKS).l,d5 ; The number of engineBanks that have independant fuel control. ; Unitless move.b d5,var_3(a6) moveq #1,d3 move.l d3,d1 cmp.b d5,d1 bhi.s loc_675A0 loc_67530: ; CODE XREF: sub_67410+18Ej tst.b (byte_FFFF98E0).w bne.s loc_6753E cmpi.b #3,(byte_FFFF9954).w bne.s loc_67564 loc_6753E: ; CODE XREF: sub_67410+124j cmpi.b #1,d3 bne.s loc_67548 clr.b d4 bra.s loc_6754A ; --------------------------------------------------------------------------- loc_67548: ; CODE XREF: sub_67410+132j moveq #1,d4 loc_6754A: ; CODE XREF: sub_67410+136j andi.w #$FF,d4 tst.b -$5766(d4.w) bne.s loc_67564 clr.l d1 move.b d3,d1 bset #6,-$6D0B(d1.w) bra.s loc_67570 ; --------------------------------------------------------------------------- loc_67564: ; CODE XREF: sub_67410+12Cj ; sub_67410+144j clr.l d1 move.b d3,d1 bclr #6,-$6D0B(d1.w) loc_67570: ; CODE XREF: sub_67410+152j clr.l d4 move.b d3,d4 btst #6,-$6D0B(d4.w) beq.s loc_67592 cmpi.b #2,d6 beq.s loc_67588 tst.b d6 bne.s loc_67592 loc_67588: ; CODE XREF: sub_67410+172j bset #7,-$6D0B(d4.w) bra.s loc_6759A ; --------------------------------------------------------------------------- loc_67592: ; CODE XREF: sub_67410+16Cj ; sub_67410+176j bclr #7,-$6D0B(d4.w) loc_6759A: ; CODE XREF: sub_67410+180j addq.b #1,d3 cmp.b d3,d5 bcc.s loc_67530 loc_675A0: ; CODE XREF: sub_67410+11Ej clr.w d4 btst #6,(byte_FFFF9303).w beq.w loc_6768C clr.w d3 move.b var_4(a6),d3 tst.b DI_FASD_KAFADD_B_FASD_INTRUSIVECELLSET(d3.w) ; An intrusive test will not be enabled if the table is FALSE for that cell. ; BOOLEAN beq.s loc_675C4 bset #4,(byte_FFFF9303).w bra.s loc_675CA ; --------------------------------------------------------------------------- loc_675C4: ; CODE XREF: sub_67410+1AAj bclr #4,(byte_FFFF9303).w loc_675CA: ; CODE XREF: sub_67410+1B2j move.b DI_FASD_KAFADD_E_FASD_SELECTCELLSET(d3.w),d3 ; Use of thecell in the FASD diagnostic. 0 = Not Selected, 1 = Selected Purge Cell 2 = Selected Non Purge Cell ; 0_1_2 cmpi.b #2,d3 bne.s loc_67648 bclr #3,(byte_FFFF9303).w bset #5,(byte_FFFF9303).w move.w (word_FFFFA62A).w,d3 cmp.w (DG_FASD_KEFADD_PCT_FASD_PURGEOPENMIN).l,d3 ; Data will be discarded if the purge valve is open above this threshold and the vent valve is closed. ; Percent bhi.s loc_675F2 moveq #1,d4 loc_675F2: ; CODE XREF: sub_67410+1DEj move.b var_4(a6),d2 cmp.b (byte_FFFF93C5).w,d2 bne.s loc_6760E move.b (byte_FFFF93C0).w,d3 addq.b #1,d3 bcc.s loc_67608 move.b #$FF,d3 loc_67608: ; CODE XREF: sub_67410+1F2j move.b d3,(byte_FFFF93C0).w bra.s loc_67612 ; --------------------------------------------------------------------------- loc_6760E: ; CODE XREF: sub_67410+1EAj clr.b (byte_FFFF93C0).w loc_67612: ; CODE XREF: sub_67410+1FCj tst.b (byte_FFFFB213).w beq.s loc_67640 btst #7,(byte_FFFF9302).w beq.s loc_67640 tst.b d4 beq.s loc_67640 move.b (byte_FFFF93C0).w,d3 cmp.b (DG_FASD_KEFADD_CNT_STABILITYSAMPLMIN).l,d3 ; Calibration used to record the number of samples since the fuel trim cell number has changed. ; Unitless bcs.s loc_67640 bset #7,(byte_FFFF9303).w move.b (DG_FASD_KEFADD_CNT_STABILITYSAMPLMIN).l,(byte_FFFF93C0).w ; Calibration used to record the number of samples since the fuel trim cell number has changed. ; Unitless bra.s loc_676A8 ; --------------------------------------------------------------------------- loc_67640: ; CODE XREF: sub_67410+206j ; sub_67410+20Ej ... bclr #7,(byte_FFFF9303).w bra.s loc_676A8 ; --------------------------------------------------------------------------- loc_67648: ; CODE XREF: sub_67410+1C6j moveq #1,d2 cmp.b d3,d2 bne.s loc_67672 bset #3,(byte_FFFF9303).w bclr #5,(byte_FFFF9303).w move.l d2,d4 tst.b (byte_FFFFB213).w beq.s loc_67640 btst #7,(byte_FFFF9302).w beq.s loc_67640 bset #7,(byte_FFFF9303).w bra.s loc_676A8 ; --------------------------------------------------------------------------- loc_67672: ; CODE XREF: sub_67410+23Cj bclr #7,(byte_FFFF9303).w bclr #3,(byte_FFFF9303).w bclr #5,(byte_FFFF9303).w bclr #4,(byte_FFFF9303).w bra.s loc_676A8 ; --------------------------------------------------------------------------- loc_6768C: ; CODE XREF: sub_67410+198j bclr #7,(byte_FFFF9303).w bclr #3,(byte_FFFF9303).w bclr #5,(byte_FFFF9303).w bclr #4,(byte_FFFF9303).w clr.b (byte_FFFF93C0).w loc_676A8: ; CODE XREF: sub_67410+22Ej ; sub_67410+236j ... move.b d7,(byte_FFFF93C5).w move.b var_3(a6),d1 moveq #1,d3 move.l d3,d2 cmp.b d1,d2 bhi.s loc_676FA loc_676B8: ; CODE XREF: sub_67410+2E8j btst #6,(byte_FFFF9303).w beq.s loc_676E8 clr.l d2 move.b d3,d2 tst.b -$4DE9(d2.w) beq.s loc_676E8 clr.l d2 move.b d3,d2 btst #7,-$6D0B(d2.w) beq.s loc_676E8 clr.l d2 move.b d3,d2 bset #7,-$6D09(d2.w) bra.s loc_676F4 ; --------------------------------------------------------------------------- loc_676E8: ; CODE XREF: sub_67410+2AEj ; sub_67410+2BAj ... clr.l d2 move.b d3,d2 bclr #7,-$6D09(d2.w) loc_676F4: ; CODE XREF: sub_67410+2D6j addq.b #1,d3 cmp.b d3,d1 bcc.s loc_676B8 loc_676FA: ; CODE XREF: sub_67410+2A6j move.w (word_FFFF8242).w,d3 move.l d3,d4 lsr.w #1,d4 tblu.w (DG_FASD_KTFADD_K_FASD_NONPURGERICHLIM).l,d4 ; Vector table for the rich failure threshold for non-purging cells relative to the fuel ethanol percentage. ; Unitless move.w d4,(word_FFFF93D0).w move.l d3,d4 lsr.w #1,d4 tblu.w (DG_FASD_KTFADD_K_FASD_LONGTERMTRIMRICH).l,d4 ; Vector table for the rich threshold to run a vapor test relative to the fuel ethanol percentage. ; Unitless move.w d4,(word_FFFF93CC).w lsr.w #1,d3 tblu.w (DG_FASD_KTFADD_K_FASD_LONGTERMTRIMLEAN).l,d3 ; Vector table for the lean failure threshold relative to the fuel ethanol percentage. ; Unitless move.w d3,(word_FFFF93CA).w move.w d3,d6 add.w (DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL).l,d6 ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless bcc.s loc_6773A move.w #$FFFF,d6 loc_6773A: ; CODE XREF: sub_67410+324j lsr.w #1,d6 move.w d6,(word_FFFF93CE).w move.w (word_FFFFB298).w,d3 asl.w #2,d3 cmpi.w #$4000,d3 bcc.s loc_67750 lsr.w #3,d3 bra.s loc_67754 ; --------------------------------------------------------------------------- loc_67750: ; CODE XREF: sub_67410+33Aj move.w #$800,d3 loc_67754: ; CODE XREF: sub_67410+33Ej tblu.b (DG_FASD_KTFADD_DM_FASD_MAXPURGEFLOW).l,d3 andi.l #$FF,d3 move.w (word_FFFFA62A).w,d4 mulu.w #$271,d4 lsr.l #5,d4 mulu.l d4,d7:d3 divu.l #$64,d7:d3 ; 'd' bvc.s loc_6777C moveq #$FFFFFFFF,d3 loc_6777C: ; CODE XREF: sub_67410+368j move.l d3,(dword_FFFF93C6).w move.w (word_FFFFB3E8).w,d7 muls.w #5,d7 bpl.s loc_6778C addq.w #3,d7 loc_6778C: ; CODE XREF: sub_67410+378j asr.w #2,d7 movea.w #$F00,a2 clr.w d3 cmpi.w #$12E8,d7 bge.s loc_677AC addi.w #$500,d7 andi.l #$FFFF,d7 asl.l #5,d7 divu.w #$33,d7 ; '3' bra.s loc_677B0 ; --------------------------------------------------------------------------- loc_677AC: ; CODE XREF: sub_67410+388j move.w #$F00,d7 loc_677B0: ; CODE XREF: sub_67410+39Aj tblu.b (DG_FASD_KTFADD_K_FASD_THRESHLDTEMPMULT).l,d7 ; Used to compensate the accumulated purge flow threshold for the variation of excess purge vapor generation due to temperature. ; Unitless andi.l #$FF,d7 mulu.l (DG_FASD_KEFADD_M_FASD_ACCUMPURGETHRSHLD).l,d0:d7 ; Threshold of accumulated purge flow required to reduce the excess purge vapor condition before continuing intrusive testing. ; Grams divu.l #$F4240,d0:d7 cmpi.l #$FFFF,d7 bls.s loc_677DA move.w #$FFFF,d7 loc_677DA: ; CODE XREF: sub_67410+3C4j move.w d7,(word_FFFF93D2).w btst #6,(byte_FFFF9303).w beq.w loc_6798C move.b var_3(a6),d7 move.b d7,var_2(a6) moveq #1,d0 cmpi.b #1,d7 bra.w loc_67986 ; --------------------------------------------------------------------------- loc_677FA: ; CODE XREF: sub_67410:loc_67986j clr.l d3 move.b d0,d3 lea unk_FFFF92F6(d3.w*2),a2 move.l d0,d4 subq.b #1,d4 andi.w #$FF,d4 move.w word_FFFF98DC(d4.w*2),d2 asl.w #3,d2 btst #7,(byte_FFFF9303).w beq.w loc_67966 btst #7,-$6D09(d3.w) beq.w loc_67966 move.l d3,d1 moveq #$17,d4 mulu.w d4,d1 move.b var_4(a6),d7 add.b d7,d1 andi.w #$FF,d1 movea.w d1,a3 clr.l d7 move.b d0,d7 mulu.w #$17,d7 add.b (byte_FFFF93E5).w,d7 andi.w #$FF,d7 move.w unk_FFFF9312(d7.w*2),d4 addq.w #1,d4 bcc.s loc_6785A move.w #$FFFF,d4 loc_6785A: ; CODE XREF: sub_67410+444j move.w d4,$24+var_6D12(a3.w*2) clr.w d7 move.b var_4(a6),d7 cmp.w DI_FASD_KAFADD_CNT_FASD_MINSMPLSINSTART(d7.w*2),d4 ; Number of samples required to ensure the fuel trim value represents the current conditions for that cell. ; Counts bcs.w loc_67966 bset #5,2(a2) move.w (DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL).l,d1 ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless move.w d1,$24+var_6C78(d3.w*2) movea.w d3,a2 cmpi.b #1,d0 bne.s loc_67890 clr.b d4 bra.s loc_67892 ; --------------------------------------------------------------------------- loc_67890: ; CODE XREF: sub_67410+47Aj moveq #1,d4 loc_67892: ; CODE XREF: sub_67410+47Ej andi.w #$FF,d4 move.w word_FFFFA89E(d4.w*2),d4 andi.l #$FFFF,d4 asl.l #4,d4 cmpi.l #$FFFF,d4 bhi.s loc_678B8 andi.l #$FFFF,d4 divu.w #$101,d4 bra.s loc_678BC ; --------------------------------------------------------------------------- loc_678B8: ; CODE XREF: sub_67410+49Aj move.b #$FF,d4 loc_678BC: ; CODE XREF: sub_67410+4A6j andi.w #$FF,d4 mulu.w #$7EFF,d4 divu.w #$FD,d4 ; '?' move.w d4,$24+var_6C74(a2.w*2) cmp.w d1,d2 bls.s loc_67924 clr.l d7 move.b d0,d7 mulu.w #$17,d7 add.b (byte_FFFF93E5).w,d7 andi.w #$FF,d7 move.l d2,d4 sub.w (DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL).l,d4 ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless bcc.s loc_678EE clr.w d4 loc_678EE: ; CODE XREF: sub_67410+4DAj mulu.w word_168F0(d7.w*2),d4 divu.w #$4000,d4 bvc.s loc_67900 move.w #$FFFF,d4 loc_67900: ; CODE XREF: sub_67410+4EAj add.w (DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL).l,d4 ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless bcc.s loc_6790C move.w #$FFFF,d4 loc_6790C: ; CODE XREF: sub_67410+4F6j move.w d4,$24+var_6C78(d3.w*2) tst.b (byte_FFFFB214).w beq.s loc_6797E cmp.w d6,d4 bls.s loc_6797E move.w d6,$24+var_6C78(d3.w*2) bra.s loc_6797E ; --------------------------------------------------------------------------- loc_67924: ; CODE XREF: sub_67410+4C0j cmp.w d1,d2 bcc.s loc_6797E movea.w d3,a2 clr.l d7 move.b d0,d7 mulu.w #$17,d7 add.b (byte_FFFF93E5).w,d7 andi.w #$FF,d7 move.l d1,d3 sub.w d2,d3 bcc.s loc_67942 clr.w d3 loc_67942: ; CODE XREF: sub_67410+52Ej mulu.w word_1694C(d7.w*2),d3 divu.w #$4000,d3 bvc.s loc_67954 move.w #$FFFF,d3 loc_67954: ; CODE XREF: sub_67410+53Ej sub.w d3,d1 bcs.s loc_6795C move.w d1,d3 bra.s loc_6795E ; --------------------------------------------------------------------------- loc_6795C: ; CODE XREF: sub_67410+546j clr.w d3 loc_6795E: ; CODE XREF: sub_67410+54Aj move.w d3,$24+var_6C78(a2.w*2) bra.s loc_6797E ; --------------------------------------------------------------------------- loc_67966: ; CODE XREF: sub_67410+40Aj ; sub_67410+416j ... movea.w (DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL).l,a3 ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless move.w a3,$24+var_6C78(d3.w*2) move.w a3,$24+var_6C74(d3.w*2) bclr #5,2(a2) loc_6797E: ; CODE XREF: sub_67410+506j ; sub_67410+50Aj ... addq.b #1,d0 move.b var_2(a6),d7 cmp.b d0,d7 loc_67986: ; CODE XREF: sub_67410+3E6j bcc.w loc_677FA bra.s loc_679C8 ; --------------------------------------------------------------------------- loc_6798C: ; CODE XREF: sub_67410+3D4j lea (unk_FFFF9340).w,a2 moveq #$2D,d0 ; '-' loc_67992: ; CODE XREF: sub_67410+584j clr.w (a2)+ dbf d0,loc_67992 move.b var_3(a6),d7 moveq #1,d0 move.l d0,d6 cmp.b d7,d6 bhi.s loc_679C8 loc_679A4: ; CODE XREF: sub_67410+5B6j movea.w (DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL).l,a2 ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless clr.l d3 move.b d0,d3 move.w a2,$24+var_6C78(d3.w*2) move.w a2,$24+var_6C74(d3.w*2) bclr #5,unk_FFFF92F8(d3.w*2) addq.b #1,d0 cmp.b d0,d7 bcc.s loc_679A4 loc_679C8: ; CODE XREF: sub_67410+57Aj ; sub_67410+592j move.w (word_FFFFA0DC).w,d3 move.w (word_FFFFB294).w,d4 asl.w #2,d4 move.b (byte_FFFFB2EB).w,d5 bne.s loc_679DC clr.b d5 bra.s loc_679E8 ; --------------------------------------------------------------------------- loc_679DC: ; CODE XREF: sub_67410+5C6j moveq #7,d7 cmp.b d5,d7 bne.s loc_679E6 moveq #2,d5 bra.s loc_679E8 ; --------------------------------------------------------------------------- loc_679E6: ; CODE XREF: sub_67410+5D0j moveq #1,d5 loc_679E8: ; CODE XREF: sub_67410+5CAj ; sub_67410+5D4j btst #6,(byte_FFFF9303).w beq.w loc_67A7C tst.b (byte_FFFFB216).w beq.w loc_67A7C tst.b (byte_FFFFB213).w beq.s loc_67A7C btst #7,(byte_FFFF9302).w beq.s loc_67A7C tst.b d5 beq.s loc_67A12 moveq #2,d7 cmp.b d5,d7 bne.s loc_67A7C loc_67A12: ; CODE XREF: sub_67410+5FAj move.w (EngineRPM_PID_000C___).w,d5 cmp.w (DG_FASD_KEFADD_N_FASD_PURGERPMMIN).l,d5 ; An engine speed value below this threshold will cause the intrusive diagnostic to be disabled. ; RPM bls.s loc_67A7C cmp.w (DG_FASD_KEFADD_DM_PURGENGAIRFLOWLOW).l,d3 ; An airflow value below this threshold will cause the intrusive diagnostic to be disabled. ; Grams/Sec bls.s loc_67A7C cmp.w (DG_FASD_KEFADD_DM_FASD_PGENGAIRFLOWHIGH).l,d3 ; An airflow value above this threshold will cause the intrusive diagnostic to be disabled. ; Grams/Sec bcc.s loc_67A7C cmp.w (DG_FASD_KEFADD_P_FASD_PURGE_MAP_LOW).l,d4 ; An manifold pressure value below this threshold will cause the intrusive diagnostic to be disabled. ; kPa bls.s loc_67A7C cmp.w (DG_FASD_KEFADD_P_FASD_PURGE_MAP_HIGH).l,d4 ; An manifold pressure value above this threshold will cause the intrusive diagnostic to be disabled. ; kPa bcc.s loc_67A7C bset #6,(byte_FFFF9302).w move.b var_3(a6),d7 moveq #1,d3 move.l d3,d6 cmp.b d7,d6 bhi.s loc_67A82 loc_67A50: ; CODE XREF: sub_67410+668j clr.l d4 move.b d3,d4 cmp.b -$6CF1(d4.w),d6 bne.s loc_67A74 tst.b -$4DE9(d4.w) beq.s loc_67A6E btst #7,-$6D0B(d4.w) bne.s loc_67A74 loc_67A6E: ; CODE XREF: sub_67410+652j bclr #6,(byte_FFFF9302).w loc_67A74: ; CODE XREF: sub_67410+64Aj ; sub_67410+65Cj addq.b #1,d3 cmp.b d3,d7 bcc.s loc_67A50 bra.s loc_67A82 ; --------------------------------------------------------------------------- loc_67A7C: ; CODE XREF: sub_67410+5DEj ; sub_67410+5E6j ... bclr #6,(byte_FFFF9302).w loc_67A82: ; CODE XREF: sub_67410+63Ej ; sub_67410+66Aj btst #7,(byte_FFFF9308).w bne.s loc_67A92 btst #5,(byte_FFFF9306).w beq.s loc_67ABA loc_67A92: ; CODE XREF: sub_67410+678j btst #0,(byte_FFFF9305).w bne.s loc_67ABA moveq #4,d7 cmp.b (byte_FFFF9321).w,d7 beq.s loc_67ABA moveq #6,d7 cmp.b (byte_FFFF9321).w,d7 beq.s loc_67ABA tst.b (byte_FFFF9321).w beq.s loc_67ABA loc_67AB0: ; CODE XREF: sub_67410+726j ; sub_67410+732j move.b #4,(byte_FFFF9321).w bra.w loc_67BB4 ; --------------------------------------------------------------------------- loc_67ABA: ; CODE XREF: sub_67410+680j ; sub_67410+688j ... clr.w d0 move.b (byte_FFFF9321).w,d0 movea.l off_8A61C(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_67ACA: ; DATA XREF: OS4:off_8A61Co btst #6,(byte_FFFF9302).w beq.w loc_67BB4 btst #3,(byte_FFFF9306).w beq.w loc_67BB4 btst #7,(byte_FFFF9303).w beq.w loc_67BB4 btst #4,(byte_FFFF9303).w beq.w loc_67BB4 move.b #1,(byte_FFFF9321).w bra.w loc_67BB4 ; --------------------------------------------------------------------------- loc_67AFC: ; DATA XREF: OS4:0008A620o btst #2,(byte_FFFF9305).w beq.s loc_67B0E moveq #4,d7 loc_67B06: ; CODE XREF: sub_67410+70Aj ; sub_67410+758j ... move.b d7,(byte_FFFF9321).w bra.w loc_67BB4 ; --------------------------------------------------------------------------- loc_67B0E: ; CODE XREF: sub_67410+6F2j btst #1,(byte_FFFF9304).w beq.w loc_67BB4 moveq #2,d7 bra.s loc_67B06 ; --------------------------------------------------------------------------- loc_67B1C: ; DATA XREF: OS4:0008A624o btst #7,(byte_FFFF9307).w beq.w loc_67BB4 move.b #3,(byte_FFFF9321).w bra.w loc_67BB4 ; --------------------------------------------------------------------------- loc_67B30: ; DATA XREF: OS4:0008A628o btst #5,(byte_FFFF9305).w bne.w loc_67AB0 btst #0,(byte_FFFF9305).w beq.s loc_67BB4 bra.w loc_67AB0 ; --------------------------------------------------------------------------- loc_67B46: ; DATA XREF: OS4:0008A62Co btst #7,(byte_FFFF9306).w beq.s loc_67B6A btst #0,(byte_FFFF9305).w bne.s loc_67B66 btst #7,(byte_FFFF9308).w bne.s loc_67B66 btst #2,(byte_FFFF9305).w beq.s loc_67B6A loc_67B66: ; CODE XREF: sub_67410+744j ; sub_67410+74Cj moveq #6,d7 bra.s loc_67B06 ; --------------------------------------------------------------------------- loc_67B6A: ; CODE XREF: sub_67410+73Cj ; sub_67410+754j btst #7,(byte_FFFF9306).w beq.s loc_67BB4 btst #3,(byte_FFFF9306).w beq.s loc_67BB4 btst #0,(byte_FFFF9305).w beq.s loc_67B8A btst #5,(byte_FFFF9306).w beq.s loc_67BB4 loc_67B8A: ; CODE XREF: sub_67410+770j moveq #5,d7 bra.w loc_67B06 ; --------------------------------------------------------------------------- loc_67B90: ; DATA XREF: OS4:0008A630o btst #7,(byte_FFFF9308).w beq.s loc_67BA0 move.b #6,(byte_FFFF9321).w bra.s loc_67BB4 ; --------------------------------------------------------------------------- loc_67BA0: ; CODE XREF: sub_67410+786j btst #6,(byte_FFFF9308).w bra.s loc_67BAE ; --------------------------------------------------------------------------- loc_67BA8: ; DATA XREF: OS4:0008A634o btst #7,(byte_FFFF9305).w loc_67BAE: ; CODE XREF: sub_67410+796j beq.s loc_67BB4 clr.b (byte_FFFF9321).w loc_67BB4: ; CODE XREF: sub_67410+6A6j ; sub_67410+6C0j ... move.b var_3(a6),d7 moveq #1,d0 move.l d0,d6 cmp.b d7,d6 bhi.w loc_67CBE loc_67BC2: ; CODE XREF: sub_67410+8AAj clr.l d3 move.b d0,d3 lea unk_FFFF92F6(d3.w*2),a2 btst #5,3(a2) bne.s loc_67C12 btst #0,(byte_FFFF9305).w beq.s loc_67BE4 moveq #3,d6 cmp.b (byte_FFFF9320).w,d6 beq.s loc_67BF8 loc_67BE4: ; CODE XREF: sub_67410+7CAj cmpi.b #1,-$6CF3(d3.w) beq.s loc_67BF8 moveq #2,d6 cmp.b -$6CF3(d3.w),d6 bne.s loc_67C12 loc_67BF8: ; CODE XREF: sub_67410+7D2j ; sub_67410+7DCj bclr #7,3(a2) bset #5,3(a2) clr.w unk_FFFF932E(d3.w*2) clr.w unk_FFFF939E(d3.w*2) bra.s loc_67C7C ; --------------------------------------------------------------------------- loc_67C12: ; CODE XREF: sub_67410+7C2j ; sub_67410+7E6j move.b (byte_FFFF9321).w,d4 beq.s loc_67C1E cmpi.b #6,d4 bne.s loc_67C8C loc_67C1E: ; CODE XREF: sub_67410+806j btst #3,(byte_FFFF9306).w bne.s loc_67C8C btst #4,(byte_FFFF9305).w bne.s loc_67C8C move.b -$6CF3(d3.w),d4 cmpi.b #2,d4 beq.s loc_67C40 moveq #3,d6 cmp.b d4,d6 bne.s loc_67C8C loc_67C40: ; CODE XREF: sub_67410+828j clr.l d6 move.b d0,d6 move.w unk_FFFF932E(d6.w*2),d4 addq.w #1,d4 bcc.s loc_67C52 move.w #$FFFF,d4 loc_67C52: ; CODE XREF: sub_67410+83Cj move.w d4,$24+var_6CF6(d3.w*2) move.w (CoolantTemperatureOrDefault).w,d4 cmp.w (DG_FASD_KEFADD_T_FASD_COOLANTTEMPMIN).l,d4 ; A calibrated number of samples above this minimum are required before a passive vapor test is allowed. ; Deg C blt.s loc_67C7C clr.l d6 move.b d0,d6 move.w unk_FFFF939E(d6.w*2),d4 addq.w #1,d4 bcc.s loc_67C76 move.w #$FFFF,d4 loc_67C76: ; CODE XREF: sub_67410+860j move.w d4,$24+var_6C86(d3.w*2) loc_67C7C: ; CODE XREF: sub_67410+800j ; sub_67410+852j cmpi.b #3,-$6CF3(d3.w) bne.s loc_67C8C bclr #5,3(a2) loc_67C8C: ; CODE XREF: sub_67410+80Cj ; sub_67410+814j ... move.w unk_FFFF932E(d3.w*2),d4 cmp.w (DG_FASD_KEFADD_CNT_OVERALLSAMPLESMIN).l,d4 ; The number of samples required (after the minimum cell learning) before a passive result can be used. ; Unitless bcs.s loc_67CB0 move.w unk_FFFF939E(d3.w*2),d3 cmp.w (DG_FASD_KEFADD_CNT_WARMCOOLSAMPLEMIN).l,d3 bcs.s loc_67CB0 bset #7,3(a2) bra.s loc_67CB6 ; --------------------------------------------------------------------------- loc_67CB0: ; CODE XREF: sub_67410+888j ; sub_67410+896j bclr #7,3(a2) loc_67CB6: ; CODE XREF: sub_67410+89Ej addq.b #1,d0 cmp.b d0,d7 bcc.w loc_67BC2 loc_67CBE: ; CODE XREF: sub_67410+7AEj btst #6,(byte_FFFF9303).w bne.s loc_67D28 bclr #0,(byte_FFFF9305).w bclr #4,(byte_FFFF9305).w bclr #3,(byte_FFFF9306).w bclr #2,(byte_FFFF9306).w clr.b (byte_FFFF93C1).w move.b var_3(a6),d6 moveq #1,d3 move.l d3,d1 cmp.b d6,d1 bhi.w loc_67FB4 loc_67CF0: ; CODE XREF: sub_67410+912j clr.l d4 move.b d3,d4 lea unk_FFFF92F6(d4.w*2),a2 bclr #2,2(a2) bclr #6,3(a2) clr.b -$6C55(d4.w) clr.b -$6CED(d4.w) clr.b -$6CC9(d4.w) clr.b -$6CC7(d4.w) addq.b #1,d3 cmp.b d3,d6 bcc.s loc_67CF0 bra.w loc_67FB4 ; --------------------------------------------------------------------------- loc_67D28: ; CODE XREF: sub_67410+8B4j clr.b d1 move.l d1,d7 btst #3,(byte_FFFF9308).w beq.s loc_67D58 btst #7,(byte_FFFF9308).w beq.s loc_67D58 bset #0,(byte_FFFF9305).w loc_67D42: ; CODE XREF: sub_67410+96Aj bclr #3,(byte_FFFF9306).w bclr #2,(byte_FFFF9306).w loc_67D4E: ; CODE XREF: sub_67410+962j bclr #4,(byte_FFFF9305).w bra.w loc_67FB4 ; --------------------------------------------------------------------------- loc_67D58: ; CODE XREF: sub_67410+922j ; sub_67410+92Aj btst #3,(byte_FFFF9308).w bne.s loc_67D74 bclr #0,(byte_FFFF9305).w bclr #3,(byte_FFFF9306).w bset #2,(byte_FFFF9306).w bra.s loc_67D4E ; --------------------------------------------------------------------------- loc_67D74: ; CODE XREF: sub_67410+94Ej btst #0,(byte_FFFF9305).w bne.s loc_67D42 btst #3,(byte_FFFF9308).w beq.w loc_67ED8 btst #4,(byte_FFFF9305).w beq.w loc_67ED8 bclr #2,(byte_FFFF9306).w btst #5,(byte_FFFF9305).w beq.w loc_67F7A move.b (byte_FFFF93C1).w,d2 addq.b #1,d2 bcc.s loc_67DAC move.b #$FF,d2 loc_67DAC: ; CODE XREF: sub_67410+996j move.b d2,(byte_FFFF93C1).w bclr #3,(byte_FFFF9306).w move.b var_3(a6),d5 moveq #1,d3 move.l d3,d6 cmp.b d5,d6 bhi.s loc_67E28 loc_67DC2: ; CODE XREF: sub_67410+A16j clr.l d0 move.b d3,d0 lea unk_FFFF92F6(d0.w*2),a2 btst #6,2(a2) beq.s loc_67E22 move.w (word_FFFF93D0).w,d6 cmp.w word_FF8DA6(d0.w*2),d6 bcs.s loc_67E0A move.w unk_FFFF931A(d0.w*2),d4 cmp.w (DG_FASD_KEFADD_K_FASD_SHRTNONPRGRICHLIM).l,d4 ; Short term accumulator threshold, while intrusive purge activity is occurring, to determine if excess vapor test is failing. ; Unitless bhi.s loc_67E0A clr.l d6 move.b d3,d6 move.b -$6CC9(d6.w),d4 addq.b #1,d4 bcc.s loc_67E02 move.b #$FF,d4 loc_67E02: ; CODE XREF: sub_67410+9ECj move.b d4,$24+var_6CED(d0.w) bra.s loc_67E22 ; --------------------------------------------------------------------------- loc_67E0A: ; CODE XREF: sub_67410+9D0j ; sub_67410+9DEj clr.l d6 move.b d3,d6 move.b -$6CC7(d6.w),d4 addq.b #1,d4 bcc.s loc_67E1C move.b #$FF,d4 loc_67E1C: ; CODE XREF: sub_67410+A06j move.b d4,$24+var_6CEB(d0.w) loc_67E22: ; CODE XREF: sub_67410+9C2j ; sub_67410+9F8j addq.b #1,d3 cmp.b d3,d5 bcc.s loc_67DC2 loc_67E28: ; CODE XREF: sub_67410+9B0j move.b var_3(a6),d0 move.b d0,var_2(a6) moveq #1,d3 cmpi.b #1,d0 bra.w loc_67ED0 ; --------------------------------------------------------------------------- loc_67E3A: ; CODE XREF: sub_67410:loc_67ED0j clr.l d4 move.b d3,d4 lea unk_FFFF92F6(d4.w*2),a2 move.b (DG_FASD_KEFADD_CNT_FASD_MAXSEGMENTFAILS).l,d6 ; An intrusive test failure is reported if the number of failing segments reaches this threshold. ; Unitless move.b -$6CC9(d4.w),d0 cmp.b d6,d0 bcc.s loc_67E5C cmp.b (DG_FASD_KEFADD_CNT_FASD_MAXTESTSEGMENTS).l,d0 ; The intrusive test is stopped if this number of segments occurs without a passing or failing result. ; Unitless bcs.s loc_67E6E loc_67E5C: ; CODE XREF: sub_67410+A42j move.b #2,$24+var_6D12+1(d4.w) loc_67E64: ; CODE XREF: sub_67410+A82j bset #2,2(a2) loc_67E6A: ; CODE XREF: sub_67410+A92j addq.b #1,d1 bra.s loc_67EC8 ; --------------------------------------------------------------------------- loc_67E6E: ; CODE XREF: sub_67410+A4Aj move.b -$6CC7(d4.w),d5 cmp.b (DG_FASD_KEFADD_CNT_MAXSEGMENTPASSES).l,d5 bcs.s loc_67E94 move.b (DG_FASD_KEFADD_CNT_FASD_MAXTESTSEGMENTS).l,d5 ; The intrusive test is stopped if this number of segments occurs without a passing or failing result. ; Unitless sub.b d2,d5 add.b d0,d5 cmp.b d6,d5 bcc.s loc_67E94 move.b #1,$24+var_6D12+1(d4.w) bra.s loc_67E64 ; --------------------------------------------------------------------------- loc_67E94: ; CODE XREF: sub_67410+A6Aj ; sub_67410+A78j cmp.b (DG_FASD_KEFADD_CNT_FASD_MAXTESTSEGMENTS).l,d2 ; The intrusive test is stopped if this number of segments occurs without a passing or failing result. ; Unitless bcs.s loc_67EA4 clr.b -$6CED(d4.w) bra.s loc_67E6A ; --------------------------------------------------------------------------- loc_67EA4: ; CODE XREF: sub_67410+A8Aj btst #6,2(a2) bne.s loc_67EC2 move.b -$6C55(d4.w),d0 move.b d0,$24+var_6D12+1(d4.w) addq.b #1,d1 tst.b d0 bne.s loc_67EC8 addq.b #1,d7 bra.s loc_67EC8 ; --------------------------------------------------------------------------- loc_67EC2: ; CODE XREF: sub_67410+A9Aj clr.b -$6CED(d4.w) loc_67EC8: ; CODE XREF: sub_67410+A5Cj ; sub_67410+AACj ... addq.b #1,d3 move.b var_2(a6),d6 cmp.b d3,d6 loc_67ED0: ; CODE XREF: sub_67410+A26j bcc.w loc_67E3A bra.w loc_67F7A ; --------------------------------------------------------------------------- loc_67ED8: ; CODE XREF: sub_67410+972j ; sub_67410+97Cj clr.b (byte_FFFF93C1).w move.b var_3(a6),d6 moveq #1,d3 move.l d3,d2 cmp.b d6,d2 bhi.w loc_67F7A loc_67EEA: ; CODE XREF: sub_67410+B66j clr.l d0 move.b d3,d0 lea unk_FFFF92F6(d0.w*2),a2 btst #7,3(a2) bne.s loc_67F22 bclr #2,2(a2) bclr #6,3(a2) clr.b -$6C55(d0.w) clr.b -$6CED(d0.w) cmpi.b #1,-$6CF1(d0.w) beq.s loc_67F66 addq.b #1,d1 bra.s loc_67F66 ; --------------------------------------------------------------------------- loc_67F22: ; CODE XREF: sub_67410+AEAj addq.b #1,d1 btst #6,3(a2) bne.s loc_67F66 bclr #2,2(a2) bset #6,3(a2) move.w (word_FFFF93D0).w,d2 cmp.w word_FF8DA6(d0.w*2),d2 bcs.s loc_67F58 move.w unk_FFFF931A(d0.w*2),d4 cmp.w (DG_FASD_KEFADD_K_FASD_SHRTNONPRGRICHLIM).l,d4 ; Short term accumulator threshold, while intrusive purge activity is occurring, to determine if excess vapor test is failing. ; Unitless bhi.s loc_67F58 moveq #2,d2 bra.s loc_67F5A ; --------------------------------------------------------------------------- loc_67F58: ; CODE XREF: sub_67410+B34j ; sub_67410+B42j moveq #1,d2 loc_67F5A: ; CODE XREF: sub_67410+B46j move.b d2,$24+var_6C79(d0.w) move.b d2,$24+var_6D12+1(d0.w) loc_67F66: ; CODE XREF: sub_67410+B0Cj ; sub_67410+B10j ... clr.b -$6CC9(d0.w) clr.b -$6CC7(d0.w) addq.b #1,d3 cmp.b d3,d6 bcc.w loc_67EEA loc_67F7A: ; CODE XREF: sub_67410+98Cj ; sub_67410+AC4j ... move.b var_3(a6),d6 cmp.b d6,d1 bcc.s loc_67F8A btst #2,(byte_FFFF9305).w beq.s loc_67F8E loc_67F8A: ; CODE XREF: sub_67410+B70j cmp.b d6,d7 bcs.s loc_67FA2 loc_67F8E: ; CODE XREF: sub_67410+B78j bset #4,(byte_FFFF9305).w bclr #0,(byte_FFFF9305).w bset #3,(byte_FFFF9306).w bra.s loc_67FB4 ; --------------------------------------------------------------------------- loc_67FA2: ; CODE XREF: sub_67410+B7Cj bclr #4,(byte_FFFF9305).w bset #0,(byte_FFFF9305).w bclr #3,(byte_FFFF9306).w loc_67FB4: ; CODE XREF: sub_67410+8DCj ; sub_67410+914j ... move.b (byte_FFFFB2EB).w,d3 bne.s loc_67FBE clr.b d3 bra.s loc_67FCA ; --------------------------------------------------------------------------- loc_67FBE: ; CODE XREF: sub_67410+BA8j cmpi.b #7,d3 bne.s loc_67FC8 moveq #2,d3 bra.s loc_67FCA ; --------------------------------------------------------------------------- loc_67FC8: ; CODE XREF: sub_67410+BB2j moveq #1,d3 loc_67FCA: ; CODE XREF: sub_67410+BACj ; sub_67410+BB6j move.b d3,d0 move.b (byte_FFFF9321).w,d3 beq.s loc_67FDE cmpi.b #5,d3 beq.s loc_67FDE cmpi.b #6,d3 bne.s loc_67FE4 loc_67FDE: ; CODE XREF: sub_67410+BC0j ; sub_67410+BC6j bclr #5,(byte_FFFF9306).w loc_67FE4: ; CODE XREF: sub_67410+BCCj btst #7,(byte_FFFF9305).w beq.s loc_67FF6 clr.b (byte_FFFF93C4).w bclr #2,(byte_FFFF9305).w loc_67FF6: ; CODE XREF: sub_67410+BDAj clr.b d4 move.b (byte_FFFF9321).w,d3 moveq #1,d7 cmp.b d3,d7 beq.s loc_68010 cmpi.b #2,d3 beq.s loc_68010 cmpi.b #3,d3 bne.w loc_68126 loc_68010: ; CODE XREF: sub_67410+BF0j ; sub_67410+BF6j btst #5,(byte_FFFF9306).w bne.w loc_68126 btst #6,(byte_FFFF9302).w beq.w loc_68120 cmp.b d3,d7 bne.s loc_6803E move.b (byte_FFFF93C4).w,d3 cmp.b (DG_FASD_KEFADD_CNT_MAXINTRUSVATTEMPT).l,d3 ; Data will be discarded if the the purge valve is open above this threshold and the vent valve is closed. ; Unitless bcs.s loc_6803E bset #2,(byte_FFFF9305).w bra.w loc_68126 ; --------------------------------------------------------------------------- loc_6803E: ; CODE XREF: sub_67410+C16j ; sub_67410+C22j move.b var_3(a6),d6 move.l d7,d3 cmp.b d6,d7 bhi.s loc_680B0 loc_68048: ; CODE XREF: sub_67410+C9Ej clr.l d1 move.b d3,d1 lea unk_FFFF92F6(d1.w*2),a2 btst #7,(byte_FFFF9306).w beq.s loc_68078 btst #3,2(a2) beq.s loc_68078 btst #7,2(a2) bne.s loc_68078 bset #7,2(a2) bset #6,(byte_FFFF9305).w bra.s loc_680AA ; --------------------------------------------------------------------------- loc_68078: ; CODE XREF: sub_67410+C48j ; sub_67410+C50j ... btst #3,2(a2) bne.s loc_68096 btst #7,2(a2) beq.s loc_68096 bset #5,(byte_FFFF9306).w bclr #6,(byte_FFFF9305).w bra.s loc_680AA ; --------------------------------------------------------------------------- loc_68096: ; CODE XREF: sub_67410+C6Ej ; sub_67410+C76j cmp.b (byte_FFFF9321).w,d7 bne.s loc_680AA bset #4,2(a2) move.w (DG_FASD_KEFADD_K_FASD_FUELCTRLOVERRIDE).l,(word_FFFF9322).w loc_680AA: ; CODE XREF: sub_67410+C66j ; sub_67410+C84j ... addq.b #1,d3 cmp.b d3,d6 bcc.s loc_68048 loc_680B0: ; CODE XREF: sub_67410+C36j btst #7,(byte_FFFF9306).w beq.s loc_680C4 moveq #2,d1 cmp.b d0,d1 bne.s loc_680C4 bset #1,(byte_FFFF9305).w loc_680C4: ; CODE XREF: sub_67410+CA6j ; sub_67410+CACj btst #5,(byte_FFFF9306).w bne.s loc_68120 btst #0,(byte_FFFF9304).w bne.s loc_68120 btst #1,(byte_FFFF9306).w bne.s loc_68120 btst #7,(byte_FFFF9308).w bne.s loc_68120 moveq #2,d1 cmp.b d0,d1 beq.s loc_680F2 btst #1,(byte_FFFF9305).w bne.s loc_68120 loc_680F2: ; CODE XREF: sub_67410+CD8j btst #1,(byte_FFFF9305).w beq.s loc_6810A btst #6,(byte_FFFF9305).w beq.s loc_6810A bset #1,(byte_FFFF9304).w bra.s loc_68128 ; --------------------------------------------------------------------------- loc_6810A: ; CODE XREF: sub_67410+CE8j ; sub_67410+CF0j btst #7,(byte_FFFF9306).w beq.s loc_68128 cmp.b (byte_FFFF9321).w,d7 bne.s loc_68128 bset #6,(byte_FFFF9306).w bra.s loc_68128 ; --------------------------------------------------------------------------- loc_68120: ; CODE XREF: sub_67410+C10j ; sub_67410+CBAj ... bset #5,(byte_FFFF9306).w loc_68126: ; CODE XREF: sub_67410+BFCj ; sub_67410+C06j ... move.l d7,d4 loc_68128: ; CODE XREF: sub_67410+CF8j ; sub_67410+D00j ... tst.b d4 beq.s loc_68190 move.b var_3(a6),d6 move.l d7,d3 cmp.b d6,d7 bhi.s loc_68178 loc_68136: ; CODE XREF: sub_67410+D66j move.b (byte_FFFF9321).w,d4 cmpi.b #3,d4 beq.s loc_68166 cmpi.b #4,d4 beq.s loc_68166 move.w (word_FFFFA62A).w,d4 cmp.w (DG_FASD_KEFADD_PCT_FASD_PURGEOPENMIN).l,d4 ; Data will be discarded if the purge valve is open above this threshold and the vent valve is closed. ; Percent bcc.s loc_6815A btst #6,(byte_FFFF9304).w beq.s loc_68166 loc_6815A: ; CODE XREF: sub_67410+D40j clr.l d1 move.b d3,d1 bclr #4,unk_FFFF92F8(d1.w*2) loc_68166: ; CODE XREF: sub_67410+D2Ej ; sub_67410+D34j ... clr.l d1 move.b d3,d1 bclr #7,unk_FFFF92F8(d1.w*2) addq.b #1,d3 cmp.b d3,d6 bcc.s loc_68136 loc_68178: ; CODE XREF: sub_67410+D24j bclr #1,(byte_FFFF9305).w bclr #6,(byte_FFFF9306).w bclr #6,(byte_FFFF9305).w bclr #1,(byte_FFFF9304).w loc_68190: ; CODE XREF: sub_67410+D1Aj move.b (byte_FFFF9321).w,d3 moveq #2,d6 cmp.b d3,d6 bne.w loc_68240 btst #6,(byte_FFFF9307).w bne.s loc_681DC move.b (byte_FFFF93C4).w,d3 addq.b #1,d3 bcc.s loc_681B0 move.b #$FF,d3 loc_681B0: ; CODE XREF: sub_67410+D9Aj move.b d3,(byte_FFFF93C4).w bset #6,(byte_FFFF9307).w move.w (word_FFFFA62A).w,(word_FFFF93DA).w move.w (word_FFFFA62A).w,d3 movea.w #$AFF,a2 lsr.w #1,d3 tblu.w (DG_FASD_KTFADD_PCT_FASD_VALVERAMPSTEP).l,d3 ; Step size, based on the starting valve position, used while closing the purge valve during the intrusive test. ; Percent move.w d3,(word_FFFF93D8).w bclr #7,(byte_FFFF9306).w loc_681DC: ; CODE XREF: sub_67410+D92j move.w (word_FFFF93D8).w,d4 move.w (word_FFFF93DA).w,d3 cmp.w d4,d3 bcs.s loc_681F0 sub.w d4,d3 move.w d3,(word_FFFF93DA).w bra.s loc_681F4 ; --------------------------------------------------------------------------- loc_681F0: ; CODE XREF: sub_67410+DD6j clr.w (word_FFFF93DA).w loc_681F4: ; CODE XREF: sub_67410+DDEj move.w (DG_FASD_KEFADD_PCT_PGOVERRIDEMINLIM).l,d3 ; During intrusive test, purge valve is closed to less than or equal to this limit. ; Percent cmp.w (word_FFFF93DA).w,d3 bcs.s loc_68212 move.w d3,(word_FFFF93DA).w btst #5,(byte_FFFF9303).w beq.s loc_68212 bset #0,(byte_FFFF9306).w loc_68212: ; CODE XREF: sub_67410+DEEj ; sub_67410+DFAj move.w (word_FFFF93DA).w,(word_FFFF930A).w btst #0,(byte_FFFF9306).w beq.s loc_68230 btst #7,(byte_FFFF9304).w beq.s loc_68230 bset #7,(byte_FFFF9307).w bra.s loc_6826E ; --------------------------------------------------------------------------- loc_68230: ; CODE XREF: sub_67410+E0Ej ; sub_67410+E16j btst #5,(byte_FFFF9307).w beq.s loc_6826E bset #5,(byte_FFFF9306).w bra.s loc_6826E ; --------------------------------------------------------------------------- loc_68240: ; CODE XREF: sub_67410+D88j cmpi.b #3,d3 beq.s loc_6826E bclr #7,(byte_FFFF9307).w bset #7,(byte_FFFF9306).w bclr #6,(byte_FFFF9307).w bclr #0,(byte_FFFF9306).w clr.w (word_FFFF93D8).w movea.w (word_FFFFA62A).w,a2 move.w a2,(word_FFFF93DA).w move.w a2,(word_FFFF930A).w loc_6826E: ; CODE XREF: sub_67410+E1Ej ; sub_67410+E26j ... move.b (byte_FFFF9321).w,d3 moveq #3,d1 cmp.b d3,d1 bne.w loc_6832C btst #7,(byte_FFFF9303).w beq.w loc_6832C btst #4,(byte_FFFF9303).w beq.w loc_6832C btst #5,(byte_FFFF9303).w beq.w loc_6832C btst #5,(byte_FFFF9306).w bne.w loc_6832C move.l d7,d0 move.b var_3(a6),d2 move.l d0,d3 cmp.b d2,d7 bhi.w loc_68382 loc_682B0: ; CODE XREF: sub_67410+F18j clr.l d5 move.b d3,d5 lea unk_FFFF92F6(d5.w*2),a2 cmp.b -$6CF3(d5.w),d1 bne.s loc_682DA clr.l d4 move.b d3,d4 move.w unk_FFFF933A(d4.w*2),d4 addq.w #1,d4 bcc.s loc_682D4 move.w #$FFFF,d4 loc_682D4: ; CODE XREF: sub_67410+EBEj move.w d4,$24+var_6CEA(d5.w*2) loc_682DA: ; CODE XREF: sub_67410+EB0j move.w (DG_FASD_KEFADD_CNT_SEGMENTSMPLCNTMIN).l,d4 ; This number of accumulated samples is required before the intrusive segment is considered complete. ; Unitless cmp.w unk_FFFF933A(d5.w*2),d4 bhi.s loc_68300 btst #7,2(a2) beq.s loc_68300 bset #6,2(a2) move.w d4,$24+var_6CEA(d5.w*2) loc_682FC: ; CODE XREF: sub_67410+EFCj addq.b #1,d0 bra.s loc_6830E ; --------------------------------------------------------------------------- loc_68300: ; CODE XREF: sub_67410+ED6j ; sub_67410+EDEj bclr #6,2(a2) btst #7,2(a2) beq.s loc_682FC loc_6830E: ; CODE XREF: sub_67410+EEEj move.b var_3(a6),d4 cmp.b d4,d0 bcs.s loc_6831E bset #5,(byte_FFFF9305).w bra.s loc_68324 ; --------------------------------------------------------------------------- loc_6831E: ; CODE XREF: sub_67410+F04j bclr #5,(byte_FFFF9305).w loc_68324: ; CODE XREF: sub_67410+F0Cj addq.b #1,d3 cmp.b d3,d2 bcc.s loc_682B0 bra.s loc_68382 ; --------------------------------------------------------------------------- loc_6832C: ; CODE XREF: sub_67410+E66j ; sub_67410+E70j ... cmp.b d3,d1 bne.s loc_6833E btst #3,(byte_FFFF9305).w beq.s loc_6833E bset #5,(byte_FFFF9306).w loc_6833E: ; CODE XREF: sub_67410+F1Ej ; sub_67410+F26j moveq #4,d5 cmp.b (byte_FFFF9321).w,d5 beq.s loc_6834E btst #5,(byte_FFFF9306).w beq.s loc_68354 loc_6834E: ; CODE XREF: sub_67410+F34j bclr #5,(byte_FFFF9305).w loc_68354: ; CODE XREF: sub_67410+F3Cj tst.b (byte_FFFF9321).w bne.s loc_68382 bclr #5,(byte_FFFF9305).w move.b var_3(a6),d0 move.l d7,d3 cmp.b d0,d7 bhi.s loc_68382 loc_6836A: ; CODE XREF: sub_67410+F70j clr.l d4 move.b d3,d4 clr.w unk_FFFF933A(d4.w*2) bclr #6,unk_FFFF92F8(d4.w*2) addq.b #1,d3 cmp.b d3,d0 bcc.s loc_6836A loc_68382: ; CODE XREF: sub_67410+E9Cj ; sub_67410+F1Aj ... move.b (DG_FASD_KEFADD_T_FASD_DECIMALTIMESTEP).l,d3 ; The minor time increment used by the timers. Equals the execution loop time interval. ; Seconds btst #6,(byte_FFFF9303).w beq.s loc_68396 tst.b (byte_FFFF9321).w bne.s loc_683DC loc_68396: ; CODE XREF: sub_67410+F7Ej bclr #7,(byte_FFFF9304).w bclr #6,(byte_FFFF9304).w bclr #0,(byte_FFFF9304).w bclr #7,(byte_FFFF9305).w bclr #3,(byte_FFFF9305).w bclr #1,(byte_FFFF9306).w bclr #5,(byte_FFFF9307).w clr.b (byte_FFFF93DC).w clr.b (byte_FFFF93DD).w clr.b (byte_FFFF93DE).w clr.w (word_FFFF93E0).w clr.b (byte_FFFF93DF).w clr.w (word_FFFF93E2).w clr.b (byte_FFFF93E4).w loc_683DC: ; CODE XREF: sub_67410+F84j cmp.b (byte_FFFF9321).w,d7 bne.s loc_6841C btst #0,(byte_FFFF9304).w bne.s loc_6841C btst #3,(byte_FFFF9304).w beq.s loc_68404 move.l d3,d4 add.b (byte_FFFF93DE).w,d4 bcc.s loc_683FE move.b #$FF,d4 loc_683FE: ; CODE XREF: sub_67410+FE8j move.b d4,(byte_FFFF93DE).w bra.s loc_6840A ; --------------------------------------------------------------------------- loc_68404: ; CODE XREF: sub_67410+FE0j bset #3,(byte_FFFF9304).w loc_6840A: ; CODE XREF: sub_67410+FF2j move.b (byte_FFFF93DE).w,d4 cmp.b (DG_FASD_KEFADD_T_FASD_CTLREQDURATIONMAX).l,d4 bcs.s loc_68422 bset #0,(byte_FFFF9304).w loc_6841C: ; CODE XREF: sub_67410+FD0j ; sub_67410+FD8j bclr #3,(byte_FFFF9304).w loc_68422: ; CODE XREF: sub_67410+1004j cmp.b (byte_FFFF9321).w,d6 bne.s loc_68470 btst #0,(byte_FFFF9306).w bne.s loc_68470 btst #5,(byte_FFFF9307).w bne.s loc_68470 btst #2,(byte_FFFF9307).w beq.s loc_68452 move.l d3,d4 add.b (byte_FFFF93E4).w,d4 bcc.s loc_6844C move.b #$FF,d4 loc_6844C: ; CODE XREF: sub_67410+1036j move.b d4,(byte_FFFF93E4).w bra.s loc_68458 ; --------------------------------------------------------------------------- loc_68452: ; CODE XREF: sub_67410+102Ej bset #2,(byte_FFFF9307).w loc_68458: ; CODE XREF: sub_67410+1040j move.b (byte_FFFF93E4).w,d4 cmp.b (DG_FASD_KEFADD_T_FASD_VALVCLSDDURATION).l,d4 ; The intrusive segment will abort if this threshold is reached before the purge valve closes to a non-purging level. ; Seconds bcs.s loc_68470 bset #5,(byte_FFFF9307).w bclr #2,(byte_FFFF9307).w loc_68470: ; CODE XREF: sub_67410+1016j ; sub_67410+101Ej ... cmp.b (byte_FFFF9321).w,d6 bne.s loc_684B8 btst #0,(byte_FFFF9306).w beq.s loc_684B8 btst #7,(byte_FFFF9304).w bne.s loc_684B8 btst #4,(byte_FFFF9304).w beq.s loc_684A0 move.l d3,d4 add.b (byte_FFFF93DD).w,d4 bcc.s loc_6849A move.b #$FF,d4 loc_6849A: ; CODE XREF: sub_67410+1084j move.b d4,(byte_FFFF93DD).w bra.s loc_684A6 ; --------------------------------------------------------------------------- loc_684A0: ; CODE XREF: sub_67410+107Cj bset #4,(byte_FFFF9304).w loc_684A6: ; CODE XREF: sub_67410+108Ej move.b (byte_FFFF93DD).w,d4 cmp.b (DG_FASD_KEFADD_T_FASD_BLENDDURATIONMAX).l,d4 bcs.s loc_684BE bset #7,(byte_FFFF9304).w loc_684B8: ; CODE XREF: sub_67410+1064j ; sub_67410+106Cj ... bclr #4,(byte_FFFF9304).w loc_684BE: ; CODE XREF: sub_67410+10A0j cmp.b (byte_FFFF9321).w,d1 bne.s loc_68500 btst #1,(byte_FFFF9306).w bne.s loc_68500 btst #3,(byte_FFFF9307).w beq.s loc_684E8 clr.l d4 move.b d3,d4 add.w (word_FFFF93E2).w,d4 bcc.s loc_684E2 move.w #$FFFF,d4 loc_684E2: ; CODE XREF: sub_67410+10CCj move.w d4,(word_FFFF93E2).w bra.s loc_684EE ; --------------------------------------------------------------------------- loc_684E8: ; CODE XREF: sub_67410+10C2j bset #3,(byte_FFFF9307).w loc_684EE: ; CODE XREF: sub_67410+10D6j move.w (word_FFFF93E2).w,d4 cmp.w (DG_FASD_KEFADD_T_FASD_SEGMNTDURATIONMAX).l,d4 ; The maximum time allowed for an intrusive segment. The intrusive segment will abort if this threshold is reached. ; Seconds bcs.s loc_68506 bset #1,(byte_FFFF9306).w loc_68500: ; CODE XREF: sub_67410+10B2j ; sub_67410+10BAj bclr #3,(byte_FFFF9307).w loc_68506: ; CODE XREF: sub_67410+10E8j cmp.b (byte_FFFF9321).w,d1 bne.s loc_68564 btst #3,(byte_FFFF9305).w bne.s loc_68560 btst #5,(byte_FFFF9303).w beq.s loc_6852C btst #4,(byte_FFFF9303).w beq.s loc_6852C btst #7,(byte_FFFF9303).w bne.s loc_68560 loc_6852C: ; CODE XREF: sub_67410+110Aj ; sub_67410+1112j btst #4,(byte_FFFF9307).w beq.s loc_68546 move.l d3,d4 add.b (byte_FFFF93DF).w,d4 bcc.s loc_68540 move.b #$FF,d4 loc_68540: ; CODE XREF: sub_67410+112Aj move.b d4,(byte_FFFF93DF).w bra.s loc_6854C ; --------------------------------------------------------------------------- loc_68546: ; CODE XREF: sub_67410+1122j bset #4,(byte_FFFF9307).w loc_6854C: ; CODE XREF: sub_67410+1134j move.b (byte_FFFF93DF).w,d4 cmp.b (DG_FASD_KEFADD_T_FASD_NONSELDURATIONMAX).l,d4 bcs.s loc_6856A bset #3,(byte_FFFF9305).w bra.s loc_68564 ; --------------------------------------------------------------------------- loc_68560: ; CODE XREF: sub_67410+1102j ; sub_67410+111Aj clr.b (byte_FFFF93DF).w loc_68564: ; CODE XREF: sub_67410+10FAj ; sub_67410+114Ej bclr #4,(byte_FFFF9307).w loc_6856A: ; CODE XREF: sub_67410+1146j btst #6,(byte_FFFF9304).w bne.s loc_685BA move.b (byte_FFFF9321).w,d4 cmpi.b #4,d4 beq.s loc_68588 moveq #5,d0 cmp.b d4,d0 beq.s loc_68588 moveq #6,d0 cmp.b d4,d0 bne.s loc_685BA loc_68588: ; CODE XREF: sub_67410+116Aj ; sub_67410+1170j btst #5,(byte_FFFF9304).w beq.s loc_685A2 move.l d3,d4 add.b (byte_FFFF93DC).w,d4 bcc.s loc_6859C move.b #$FF,d4 loc_6859C: ; CODE XREF: sub_67410+1186j move.b d4,(byte_FFFF93DC).w bra.s loc_685A8 ; --------------------------------------------------------------------------- loc_685A2: ; CODE XREF: sub_67410+117Ej bset #5,(byte_FFFF9304).w loc_685A8: ; CODE XREF: sub_67410+1190j move.b (byte_FFFF93DC).w,d2 cmp.b (DG_FASD_KEFADD_T_BLENDINGOPENMAX).l,d2 bcs.s loc_685C0 bset #6,(byte_FFFF9304).w loc_685BA: ; CODE XREF: sub_67410+1160j ; sub_67410+1176j bclr #5,(byte_FFFF9304).w loc_685C0: ; CODE XREF: sub_67410+11A2j btst #7,(byte_FFFF9305).w bne.s loc_68618 cmpi.b #6,(byte_FFFF9321).w bne.s loc_68618 btst #2,(byte_FFFF9304).w beq.s loc_685EC andi.w #$FF,d3 add.w (word_FFFF93E0).w,d3 bcc.s loc_685E6 move.w #$FFFF,d3 loc_685E6: ; CODE XREF: sub_67410+11D0j move.w d3,(word_FFFF93E0).w bra.s loc_685F2 ; --------------------------------------------------------------------------- loc_685EC: ; CODE XREF: sub_67410+11C6j bset #2,(byte_FFFF9304).w loc_685F2: ; CODE XREF: sub_67410+11DAj tst.b (byte_FFFF93C1).w bls.s loc_6860C move.w (word_FFFF93E0).w,d2 cmp.w (DG_FASD_KEFADD_T_FASD_EXTENDPGDURATION).l,d2 loc_68602: ; CODE XREF: sub_67410+1206j bcs.s loc_6861E bset #7,(byte_FFFF9305).w bra.s loc_68618 ; --------------------------------------------------------------------------- loc_6860C: ; CODE XREF: sub_67410+11E6j move.w (word_FFFF93E0).w,d2 cmp.w (DG_FASD_KEFADD_T_FASD_PASSVONLYDURATION).l,d2 ; The amount of time the diagnostic will remain in the extended purging state after a passive only vapor test has occurred. ; Seconds bra.s loc_68602 ; --------------------------------------------------------------------------- loc_68618: ; CODE XREF: sub_67410+11B6j ; sub_67410+11BEj ... bclr #2,(byte_FFFF9304).w loc_6861E: ; CODE XREF: sub_67410:loc_68602j clr.w d5 move.b var_4(a6),d5 move.b DI_FASD_KAFADD_I_FASD_MATCHNONPURGE(d5.w),d2 ; Translate from the current cell number to the cell number after the purge valve is closed. ; SHORTCARD move.b var_3(a6),d5 move.b d5,var_4(a6) move.l d7,d1 cmp.b d5,d7 bhi.w loc_68746 loc_6863C: ; CODE XREF: sub_67410+1332j clr.l d3 move.b d1,d3 lea unk_FFFF92F6(d3.w*2),a2 bclr #1,2(a2) btst #0,byte_FFFF92FC(d3.w*2) beq.s loc_6865C bset #1,2(a2) loc_6865C: ; CODE XREF: sub_67410+1244j btst #0,byte_FFFF92FC(d3.w*2) beq.w loc_68730 move.w (DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL).l,d0 ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless move.w word_FF8DA6(d3.w*2),d4 cmp.w d0,d4 bcc.s loc_686D0 clr.l d5 move.b d1,d5 sub.w word_FF8DA6(d5.w*2),d0 bcc.s loc_6868A clr.w d0 loc_6868A: ; CODE XREF: sub_67410+1276j move.l d3,d5 mulu.w #$17,d5 add.b d2,d5 andi.w #$FF,d5 move.w word_1694C(d5.w*2),$24+var_6C70(d3.w*2) clr.l d5 move.b d1,d5 andi.l #$FFFF,d0 asl.l #8,d0 asl.l #6,d0 divu.w unk_FFFF93B4(d5.w*2),d0 bvc.s loc_686BC move.w #$FFFF,d0 loc_686BC: ; CODE XREF: sub_67410+12A6j move.w (DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL).l,d4 ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless sub.w d0,d4 bcc.s loc_686C8 clr.w d4 loc_686C8: ; CODE XREF: sub_67410+12B4j move.w d4,$24+var_6D0E(d3.w*2) bra.s loc_6873A ; --------------------------------------------------------------------------- loc_686D0: ; CODE XREF: sub_67410+1268j cmp.w d0,d4 bls.s loc_6873A clr.l d4 move.b d1,d4 move.w word_FF8DA6(d4.w*2),d0 sub.w (DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL).l,d0 ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless bcc.s loc_686EA clr.w d0 loc_686EA: ; CODE XREF: sub_67410+12D6j move.l d3,d5 mulu.w #$17,d5 add.b d2,d5 andi.w #$FF,d5 move.w word_168F0(d5.w*2),$24+var_6C6C(d3.w*2) clr.l d5 move.b d1,d5 andi.l #$FFFF,d0 asl.l #8,d0 asl.l #6,d0 divu.w unk_FFFF93B8(d5.w*2),d0 bvc.s loc_6871C move.w #$FFFF,d0 loc_6871C: ; CODE XREF: sub_67410+1306j add.w (DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL).l,d0 ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless bcc.s loc_68728 move.w #$FFFF,d0 loc_68728: ; CODE XREF: sub_67410+1312j move.w d0,$24+var_6D0E(d3.w*2) bra.s loc_6873A ; --------------------------------------------------------------------------- loc_68730: ; CODE XREF: sub_67410+1254j move.w (DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL).l,$24+var_6D0E(d3.w*2) ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless loc_6873A: ; CODE XREF: sub_67410+12BEj ; sub_67410+12C2j ... addq.b #1,d1 move.b var_4(a6),d5 cmp.b d1,d5 bcc.w loc_6863C loc_68746: ; CODE XREF: sub_67410+1228j move.b (byte_FFFF9321).w,d0 move.b var_3(a6),d1 move.l d7,d4 cmp.b d1,d7 bhi.w loc_687DA loc_68756: ; CODE XREF: sub_67410+13C6j clr.l d3 move.b d4,d3 lea unk_FFFF92F6(d3.w*2),a2 btst #7,(byte_FFFF9303).w beq.s loc_687CC btst #5,unk_FFFF92F8(d3.w*2) beq.s loc_687CC btst #7,-$6D09(d3.w) beq.s loc_687CC tst.b d0 beq.s loc_687C4 cmpi.b #5,d0 bne.s loc_68796 btst #3,(byte_FFFF9303).w beq.s loc_68796 btst #6,(byte_FFFF9304).w bne.s loc_687C4 loc_68796: ; CODE XREF: sub_67410+1374j ; sub_67410+137Cj cmpi.b #6,d0 bne.s loc_687A4 btst #6,(byte_FFFF9304).w bne.s loc_687C4 loc_687A4: ; CODE XREF: sub_67410+138Aj cmpi.b #3,d0 bne.s loc_687CC btst #7,unk_FFFF92F8(d3.w*2) beq.s loc_687CC btst #4,(byte_FFFF9303).w beq.s loc_687CC btst #5,(byte_FFFF9306).w bne.s loc_687CC loc_687C4: ; CODE XREF: sub_67410+136Ej ; sub_67410+1384j ... bset #4,7(a2) bra.s loc_687D2 ; --------------------------------------------------------------------------- loc_687CC: ; CODE XREF: sub_67410+1356j ; sub_67410+1360j ... bclr #4,7(a2) loc_687D2: ; CODE XREF: sub_67410+13BAj addq.b #1,d4 cmp.b d4,d1 bcc.w loc_68756 loc_687DA: ; CODE XREF: sub_67410+1342j btst #6,(byte_FFFF9303).w bne.s loc_687E8 clr.b (byte_FFFF9320).w bra.s loc_6884C ; --------------------------------------------------------------------------- loc_687E8: ; CODE XREF: sub_67410+13D0j move.b (byte_FFFF9320).w,d3 cmpi.b #2,d3 bhi.s loc_68808 beq.s loc_68824 tst.b d3 beq.s loc_6881E btst #4,(byte_FFFF9308).w beq.s loc_6884C loc_68800: ; CODE XREF: sub_67410+1422j moveq #3,d0 move.b d0,(byte_FFFF9320).w bra.s loc_6884C ; --------------------------------------------------------------------------- loc_68808: ; CODE XREF: sub_67410+13E0j btst #3,(byte_FFFF9308).w beq.s loc_68816 move.b d6,(byte_FFFF9320).w bra.s loc_6884C ; --------------------------------------------------------------------------- loc_68816: ; CODE XREF: sub_67410+13FEj btst #5,(byte_FFFF9308).w beq.s loc_6884C loc_6881E: ; CODE XREF: sub_67410+13E6j ; sub_67410+1432j ... move.b d7,(byte_FFFF9320).w bra.s loc_6884C ; --------------------------------------------------------------------------- loc_68824: ; CODE XREF: sub_67410+13E2j btst #5,(byte_FFFF9306).w bne.s loc_68834 btst #0,(byte_FFFF9305).w bne.s loc_68800 loc_68834: ; CODE XREF: sub_67410+141Aj btst #3,(byte_FFFF9308).w bne.s loc_68844 btst #0,(byte_FFFF9305).w beq.s loc_6881E loc_68844: ; CODE XREF: sub_67410+142Aj btst #5,(byte_FFFF9306).w bne.s loc_6881E loc_6884C: ; CODE XREF: sub_67410+13D6j ; sub_67410+13EEj ... move.b (byte_FFFF9321).w,d3 cmpi.b #5,d3 bhi.s loc_688C8 beq.s loc_6886E cmpi.b #3,d3 bls.s loc_688C8 bclr #6,(byte_FFFF9308).w clr.l (dword_FFFF93D4).w clr.w (word_FFFF93C2).w bra.s loc_688C8 ; --------------------------------------------------------------------------- loc_6886E: ; CODE XREF: sub_67410+1446j move.w (word_FFFF93C2).w,d3 cmp.w (DG_FASD_KEFADD_CNT_FASD_WAITTIMEMAX).l,d3 ; Maximum number of samples between intrusive test segments when a normal completion of a test segment occurs. ; Unitless bcc.s loc_6888A move.w (word_FFFF93D2).w,d6 mulu.w #$3D09,d6 lsr.l #1,d6 cmp.l (dword_FFFF93D4).w,d6 bhi.s loc_6889A loc_6888A: ; CODE XREF: sub_67410+1468j btst #5,(byte_FFFF9306).w beq.s loc_688C2 cmp.w (DG_FASD_KEFADD_CNT_FASD_ABORTTIMEMAX).l,d3 ; Maximum number of samples between intrusive test segments when an abort of a test segment occurs. ; Unitless bcc.s loc_688C2 loc_6889A: ; CODE XREF: sub_67410+1478j move.l (dword_FFFF93D4).w,d3 add.l (dword_FFFF93C6).w,d3 bcc.s loc_688A6 moveq #$FFFFFFFF,d3 loc_688A6: ; CODE XREF: sub_67410+1492j move.l d3,(dword_FFFF93D4).w move.w (word_FFFF93C2).w,d3 addq.w #1,d3 bcc.s loc_688B6 move.w #$FFFF,d3 loc_688B6: ; CODE XREF: sub_67410+14A0j move.w d3,(word_FFFF93C2).w bclr #6,(byte_FFFF9308).w bra.s loc_688C8 ; --------------------------------------------------------------------------- loc_688C2: ; CODE XREF: sub_67410+1480j ; sub_67410+1488j bset #6,(byte_FFFF9308).w loc_688C8: ; CODE XREF: sub_67410+1444j ; sub_67410+144Cj ... move.b var_3(a6),d6 move.l d7,d4 cmp.b d6,d7 bhi.w loc_6896E loc_688D4: ; CODE XREF: sub_67410+155Aj clr.l d3 move.b d4,d3 lea unk_FFFF92F6(d3.w*2),a2 btst #3,6(a2) beq.s loc_688EE move.b d7,$24+var_6D19(d3.w) bra.s loc_68924 ; --------------------------------------------------------------------------- loc_688EE: ; CODE XREF: sub_67410+14D4j btst #4,7(a2) beq.s loc_6891E btst #7,6(a2) bne.s loc_68908 moveq #2,d0 loc_68900: ; CODE XREF: sub_67410+1502j move.b d0,$24+var_6D19(d3.w) bra.s loc_68924 ; --------------------------------------------------------------------------- loc_68908: ; CODE XREF: sub_67410+14ECj btst #7,(byte_FFFF9306).w beq.s loc_68914 moveq #3,d0 bra.s loc_68900 ; --------------------------------------------------------------------------- loc_68914: ; CODE XREF: sub_67410+14FEj move.b #4,$24+var_6D19(d3.w) bra.s loc_68924 ; --------------------------------------------------------------------------- loc_6891E: ; CODE XREF: sub_67410+14E4j clr.b -$6CF5(d3.w) loc_68924: ; CODE XREF: sub_67410+14DCj ; sub_67410+14F6j ... btst #5,7(a2) beq.s loc_68934 move.b d7,$24+var_6D17(d3.w) bra.s loc_68966 ; --------------------------------------------------------------------------- loc_68934: ; CODE XREF: sub_67410+151Aj btst #4,7(a2) beq.s loc_68960 btst #5,(byte_FFFF9303).w beq.s loc_68960 btst #0,6(a2) bne.s loc_68956 move.b #2,$24+var_6D17(d3.w) bra.s loc_68966 ; --------------------------------------------------------------------------- loc_68956: ; CODE XREF: sub_67410+153Aj move.b #3,$24+var_6D17(d3.w) bra.s loc_68966 ; --------------------------------------------------------------------------- loc_68960: ; CODE XREF: sub_67410+152Aj ; sub_67410+1532j clr.b -$6CF3(d3.w) loc_68966: ; CODE XREF: sub_67410+1522j ; sub_67410+1544j ... addq.b #1,d4 cmp.b d4,d6 bcc.w loc_688D4 loc_6896E: ; CODE XREF: sub_67410+14C0j move.b var_3(a6),d4 move.b d4,var_4(a6) move.l d7,d2 cmp.b d4,d7 bhi.w loc_68C4A loc_6897E: ; CODE XREF: sub_67410+1836j clr.l d0 move.b d2,d0 lea unk_FFFF92F6(d0.w*2),a2 move.b -$6CF5(d0.w),d3 beq.w loc_68AAA cmpi.b #2,d3 beq.s loc_689CE bls.w loc_68A76 movea.w (DG_FASD_KEFADD_K_FASD_ACTIVEACCUMGAIN).l,a0 ; EWMA gain used to filter the currently active long term fuel trim cell data. ; Unitless move.w a0,var_8(a6) movea.w (DG_FASD_KEFADD_K_FASD_SHORTTERMGAIN).l,a1 ; EWMA gain used to filter the short term integrator data. ; Unitless move.w a1,var_6(a6) move.w (DG_FASD_KEFADD_CNT_FASD_STALEACCUMDEC).l,d4 ; Amount the active accumulator stale data counter is decremented if a sample is used (not discarded). ; Unitless move.w unk_FFFF939A(d0.w*2),d3 cmp.w d4,d3 bcs.w loc_68AA2 sub.w d4,d3 move.w d3,$24+var_6C8A(d0.w*2) bra.w loc_68B0A ; --------------------------------------------------------------------------- loc_689CE: ; CODE XREF: sub_67410+1586j bclr #4,6(a2) btst #6,6(a2) beq.s loc_689F6 clr.l d4 move.b d2,d4 move.w word_FFFF9322(d4.w*2),d3 addq.w #1,d3 bcc.s loc_689EE move.w #$FFFF,d3 loc_689EE: ; CODE XREF: sub_67410+15D8j move.w d3,$24+var_6D02(d0.w*2) bra.s loc_68A12 ; --------------------------------------------------------------------------- loc_689F6: ; CODE XREF: sub_67410+15CAj bset #6,6(a2) bclr #7,6(a2) movea.w #2,a0 move.w a0,$24+var_6D02(d0.w*2) clr.w unk_FFFF939A(d0.w*2) loc_68A12: ; CODE XREF: sub_67410+15E4j move.w word_FFFF9322(d0.w*2),d3 move.l #$4000,d7 divu.w d3,d7 bvc.s loc_68A26 move.w #$FFFF,d7 loc_68A26: ; CODE XREF: sub_67410+1610j move.w d7,var_8(a6) move.w d7,var_6(a6) cmp.w (DG_FASD_KEFADD_K_FASD_SHORTTERMGAIN).l,d7 ; EWMA gain used to filter the short term integrator data. ; Unitless bhi.s loc_68A40 movea.w (DG_FASD_KEFADD_K_FASD_SHORTTERMGAIN).l,a0 ; EWMA gain used to filter the short term integrator data. ; Unitless move.w a0,var_6(a6) loc_68A40: ; CODE XREF: sub_67410+1624j move.w var_8(a6),d4 cmp.w (DG_FASD_KEFADD_K_FASD_ACTIVEACCUMGAIN).l,d4 ; EWMA gain used to filter the currently active long term fuel trim cell data. ; Unitless bhi.w loc_68B0A movea.w (DG_FASD_KEFADD_K_FASD_ACTIVEACCUMGAIN).l,a0 ; EWMA gain used to filter the currently active long term fuel trim cell data. ; Unitless move.w a0,var_8(a6) movea.w (DG_FASD_KEFADD_K_FASD_SHORTTERMGAIN).l,a1 ; EWMA gain used to filter the short term integrator data. ; Unitless move.w a1,var_6(a6) bclr #6,6(a2) bset #7,6(a2) bclr #5,6(a2) bra.s loc_68AA2 ; --------------------------------------------------------------------------- loc_68A76: ; CODE XREF: sub_67410+1588j movea.w (DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL).l,a3 ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless move.w a3,word_FF8DA2(d0.w*2) move.w a3,$24+var_6D0A(d0.w*2) bset #4,6(a2) bclr #6,6(a2) bclr #7,6(a2) bset #5,6(a2) loc_68AA2: ; CODE XREF: sub_67410+15AEj ; sub_67410+1664j clr.w unk_FFFF939A(d0.w*2) bra.s loc_68B0A ; --------------------------------------------------------------------------- loc_68AAA: ; CODE XREF: sub_67410+157Ej clr.l d7 move.b d2,d7 move.w unk_FFFF939A(d7.w*2),d3 addq.w #1,d3 bcc.s loc_68ABC move.w #$FFFF,d3 loc_68ABC: ; CODE XREF: sub_67410+16A6j move.w d3,$24+var_6C8A(d0.w*2) move.w (DG_FASD_KEFADD_CNT_FASD_STALEACCUMMAX).l,d4 cmp.w d4,d3 bcc.s loc_68ADC cmp.w (DG_FASD_KEFADD_CNT_STALEACCUMINITMAX).l,d3 bcs.s loc_68AF4 btst #6,6(a2) beq.s loc_68AF4 loc_68ADC: ; CODE XREF: sub_67410+16BAj bclr #6,6(a2) bclr #7,6(a2) bset #5,6(a2) move.w d4,$24+var_6C8A(d0.w*2) loc_68AF4: ; CODE XREF: sub_67410+16C2j ; sub_67410+16CAj tst.w word_FF8DA2(d0.w*2) bhi.s loc_68B0A move.w (DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL).l,word_FF8DA2(d0.w*2) ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless loc_68B0A: ; CODE XREF: sub_67410+15BAj ; sub_67410+163Aj ... move.b -$6CF5(d0.w),d3 cmpi.b #3,d3 beq.s loc_68B24 moveq #4,d4 cmp.b d3,d4 beq.s loc_68B24 cmpi.b #2,d3 bne.w loc_68C3E loc_68B24: ; CODE XREF: sub_67410+1704j ; sub_67410+170Aj movea.w d0,a2 clr.l d4 move.b d2,d4 clr.l d6 move.w unk_FFFF931A(d4.w*2),d6 clr.l d7 move.b d2,d7 clr.l d3 move.w unk_FFFF93B0(d7.w*2),d3 sub.l d6,d3 cmpi.l #$FFFF8000,d3 blt.s loc_68B56 cmpi.l #$7FFF,d3 ble.s loc_68B5A move.w #$7FFF,d3 bra.s loc_68B5A ; --------------------------------------------------------------------------- loc_68B56: ; CODE XREF: sub_67410+1736j move.w #$8000,d3 loc_68B5A: ; CODE XREF: sub_67410+173Ej ; sub_67410+1744j ext.l d3 clr.l d6 move.w var_6(a6),d6 muls.l d3,d6 move.w #$4000,d3 divs.w d3,d6 bvc.s loc_68B7E swap d6 eor.w d3,d6 bmi.s loc_68B7A move.w #$7FFF,d6 bra.s loc_68B7E ; --------------------------------------------------------------------------- loc_68B7A: ; CODE XREF: sub_67410+1762j move.w #$8000,d6 loc_68B7E: ; CODE XREF: sub_67410+175Cj ; sub_67410+1768j ext.l d6 clr.l d4 move.b d2,d4 clr.l d3 move.w unk_FFFF931A(d4.w*2),d3 add.l d6,d3 tst.l d3 blt.s loc_68BA0 cmpi.l #$FFFF,d3 bls.s loc_68BA2 move.w #$FFFF,d3 bra.s loc_68BA2 ; --------------------------------------------------------------------------- loc_68BA0: ; CODE XREF: sub_67410+1780j clr.w d3 loc_68BA2: ; CODE XREF: sub_67410+1788j ; sub_67410+178Ej move.w d3,$24+var_6D0A(a2.w*2) cmpi.b #4,-$6CF5(d0.w) beq.w loc_68C3E movea.w d0,a2 clr.l d4 move.b d2,d4 clr.l d7 move.w word_FF8DA2(d4.w*2),d7 clr.l d0 move.b d2,d0 clr.l d3 move.w unk_FFFF93AC(d0.w*2),d3 sub.l d7,d3 cmpi.l #$FFFF8000,d3 blt.s loc_68BE8 cmpi.l #$7FFF,d3 ble.s loc_68BEC move.w #$7FFF,d3 bra.s loc_68BEC ; --------------------------------------------------------------------------- loc_68BE8: ; CODE XREF: sub_67410+17C8j move.w #$8000,d3 loc_68BEC: ; CODE XREF: sub_67410+17D0j ; sub_67410+17D6j ext.l d3 clr.l d7 move.w var_8(a6),d7 muls.l d3,d7 move.w #$4000,d3 divs.w d3,d7 bvc.s loc_68C10 swap d7 eor.w d3,d7 bmi.s loc_68C0C move.w #$7FFF,d7 bra.s loc_68C10 ; --------------------------------------------------------------------------- loc_68C0C: ; CODE XREF: sub_67410+17F4j move.w #$8000,d7 loc_68C10: ; CODE XREF: sub_67410+17EEj ; sub_67410+17FAj ext.l d7 clr.l d4 move.b d2,d4 clr.l d3 move.w word_FF8DA2(d4.w*2),d3 add.l d7,d3 tst.l d3 blt.s loc_68C34 cmpi.l #$FFFF,d3 bls.s loc_68C36 move.w #$FFFF,d3 bra.s loc_68C36 ; --------------------------------------------------------------------------- loc_68C34: ; CODE XREF: sub_67410+1814j clr.w d3 loc_68C36: ; CODE XREF: sub_67410+181Cj ; sub_67410+1822j move.w d3,word_FF8DA2(a2.w*2) loc_68C3E: ; CODE XREF: sub_67410+1710j ; sub_67410+17A0j addq.b #1,d2 move.b var_4(a6),d7 cmp.b d2,d7 bcc.w loc_6897E loc_68C4A: ; CODE XREF: sub_67410+156Aj move.b var_3(a6),d7 move.b d7,var_6+1(a6) moveq #1,d2 move.l d2,d4 cmp.b d7,d4 bhi.w loc_68E5C loc_68C5C: ; CODE XREF: sub_67410+1A48j clr.l d1 move.b d2,d1 lea unk_FFFF92F6(d1.w*2),a2 move.b -$6CF3(d1.w),d3 beq.w loc_68D52 cmpi.b #2,d3 beq.s loc_68CA2 bls.w loc_68D26 movea.w (DG_FASD_KEFADD_K_FASD_NONPURGEACCUMGAIN).l,a0 ; EWMA gain used to filter the non-purge long term fuel trim cell data during both the passive and intrusive vapor tests. ; Unitless move.w a0,var_8(a6) move.w (DG_FASD_KEFADD_CNT_STALENONPURGEDEC).l,d4 ; Amount the non-purge accumulator stale data counter is decremented if a sample is used (not discarded). ; Unitless move.w unk_FFFF93A6(d1.w*2),d3 cmp.w d4,d3 bcs.w loc_68D4A sub.w d4,d3 move.w d3,$24+var_6C7E(d1.w*2) bra.w loc_68DB2 ; --------------------------------------------------------------------------- loc_68CA2: ; CODE XREF: sub_67410+1864j bclr #6,7(a2) btst #1,6(a2) beq.s loc_68CCA clr.l d4 move.b d2,d4 move.w unk_FFFF93A2(d4.w*2),d3 addq.w #1,d3 bcc.s loc_68CC2 move.w #$FFFF,d3 loc_68CC2: ; CODE XREF: sub_67410+18ACj move.w d3,$24+var_6C82(d1.w*2) bra.s loc_68CE6 ; --------------------------------------------------------------------------- loc_68CCA: ; CODE XREF: sub_67410+189Ej bset #1,6(a2) bclr #0,6(a2) clr.w unk_FFFF93A6(d1.w*2) movea.w #2,a0 move.w a0,$24+var_6C82(d1.w*2) loc_68CE6: ; CODE XREF: sub_67410+18B8j move.w unk_FFFF93A2(d1.w*2),d3 move.l #$4000,d7 divu.w d3,d7 bvc.s loc_68CFA move.w #$FFFF,d7 loc_68CFA: ; CODE XREF: sub_67410+18E4j move.w d7,var_8(a6) cmp.w (DG_FASD_KEFADD_K_FASD_NONPURGEACCUMGAIN).l,d7 ; EWMA gain used to filter the non-purge long term fuel trim cell data during both the passive and intrusive vapor tests. ; Unitless bhi.w loc_68DB2 movea.w (DG_FASD_KEFADD_K_FASD_NONPURGEACCUMGAIN).l,a0 ; EWMA gain used to filter the non-purge long term fuel trim cell data during both the passive and intrusive vapor tests. ; Unitless move.w a0,var_8(a6) bclr #1,6(a2) bset #0,6(a2) bclr #7,7(a2) bra.s loc_68D4A ; --------------------------------------------------------------------------- loc_68D26: ; CODE XREF: sub_67410+1866j move.w (DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL).l,word_FF8DA6(d1.w*2) ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless bset #6,7(a2) bclr #1,6(a2) bclr #0,6(a2) bset #7,7(a2) loc_68D4A: ; CODE XREF: sub_67410+1882j ; sub_67410+1914j clr.w unk_FFFF93A6(d1.w*2) bra.s loc_68DB2 ; --------------------------------------------------------------------------- loc_68D52: ; CODE XREF: sub_67410+185Cj clr.l d7 move.b d2,d7 move.w unk_FFFF93A6(d7.w*2),d3 addq.w #1,d3 bcc.s loc_68D64 move.w #$FFFF,d3 loc_68D64: ; CODE XREF: sub_67410+194Ej move.w d3,$24+var_6C7E(d1.w*2) move.w (DG_FASD_KEFADD_CNT_STALENONPURGEMAX).l,d4 cmp.w d4,d3 bcc.s loc_68D84 cmp.w (DG_FASD_KEFADD_CNT_STALENONPGINITMAX).l,d3 bcs.s loc_68D9C btst #1,6(a2) beq.s loc_68D9C loc_68D84: ; CODE XREF: sub_67410+1962j bclr #1,6(a2) bclr #0,6(a2) bset #7,7(a2) move.w d4,$24+var_6C7E(d1.w*2) loc_68D9C: ; CODE XREF: sub_67410+196Aj ; sub_67410+1972j tst.w word_FF8DA6(d1.w*2) bhi.s loc_68DB2 move.w (DG_FASD_KEFADD_K_FASD_ACCUMNOMINAL).l,word_FF8DA6(d1.w*2) ; The center or nominal value of the accumulator that is not rich and not lean. ; Unitless loc_68DB2: ; CODE XREF: sub_67410+188Ej ; sub_67410+18F4j ... move.b -$6CF3(d1.w),d3 cmpi.b #3,d3 beq.s loc_68DC6 cmpi.b #2,d3 bne.w loc_68E50 loc_68DC6: ; CODE XREF: sub_67410+19ACj movea.w d1,a2 clr.l d7 move.b d2,d7 clr.l d6 move.w word_FF8DA6(d7.w*2),d6 clr.l d7 move.b d2,d7 clr.l d3 move.w unk_FFFF93AC(d7.w*2),d3 sub.l d6,d3 cmpi.l #$FFFF8000,d3 blt.s loc_68DFA cmpi.l #$7FFF,d3 ble.s loc_68DFE move.w #$7FFF,d3 bra.s loc_68DFE ; --------------------------------------------------------------------------- loc_68DFA: ; CODE XREF: sub_67410+19DAj move.w #$8000,d3 loc_68DFE: ; CODE XREF: sub_67410+19E2j ; sub_67410+19E8j ext.l d3 clr.l d6 move.w var_8(a6),d6 muls.l d3,d6 move.w #$4000,d3 divs.w d3,d6 bvc.s loc_68E22 swap d6 eor.w d3,d6 bmi.s loc_68E1E move.w #$7FFF,d6 bra.s loc_68E22 ; --------------------------------------------------------------------------- loc_68E1E: ; CODE XREF: sub_67410+1A06j move.w #$8000,d6 loc_68E22: ; CODE XREF: sub_67410+1A00j ; sub_67410+1A0Cj ext.l d6 clr.l d7 move.b d2,d7 clr.l d3 move.w word_FF8DA6(d7.w*2),d3 add.l d6,d3 tst.l d3 blt.s loc_68E46 cmpi.l #$FFFF,d3 bls.s loc_68E48 move.w #$FFFF,d3 bra.s loc_68E48 ; --------------------------------------------------------------------------- loc_68E46: ; CODE XREF: sub_67410+1A26j clr.w d3 loc_68E48: ; CODE XREF: sub_67410+1A2Ej ; sub_67410+1A34j move.w d3,word_FF8DA6(a2.w*2) loc_68E50: ; CODE XREF: sub_67410+19B2j addq.b #1,d2 move.b var_6+1(a6),d6 cmp.b d2,d6 bcc.w loc_68C5C loc_68E5C: ; CODE XREF: sub_67410+1848j moveq #2,d6 cmp.b (byte_FFFF9320).w,d6 bne.s loc_68E9E clr.l (dword_FFFF9334).w move.w (word_FFFF93BE).w,d3 addq.w #1,d3 bcc.s loc_68E74 move.w #$FFFF,d3 loc_68E74: ; CODE XREF: sub_67410+1A5Ej move.w d3,(word_FFFF93BE).w cmp.w (DG_FASD_KEFADD_CNT_FASD_MAXPURGECOUNT).l,d3 bcs.s loc_68E94 bclr #3,(byte_FFFF9308).w bset #7,(byte_FFFF9308).w clr.w (word_FFFF93BE).w bra.w loc_6913C ; --------------------------------------------------------------------------- loc_68E94: ; CODE XREF: sub_67410+1A6Ej bclr #7,(byte_FFFF9308).w bra.w loc_6913C ; --------------------------------------------------------------------------- loc_68E9E: ; CODE XREF: sub_67410+1A52j move.b var_3(a6),d7 moveq #1,d0 move.l d0,d1 cmp.b d7,d1 bhi.w loc_69128 loc_68EAC: ; CODE XREF: sub_67410+1D14j clr.l d3 move.b d0,d3 lea unk_FFFF92F6(d3.w*2),a2 move.b (byte_FFFF9320).w,d4 cmpi.b #1,d4 beq.w loc_69086 cmpi.b #3,d4 bne.w loc_69114 clr.w d4 move.b (DG_FASD_KEFADD_CNT_FASD_READYTOREPORTMIN).l,d4 ; The number of continuously accumulated sample counts required before allowing a report to the data manager. ; Unitless cmp.w unk_FFFF9332(d3.w*2),d4 bhi.w loc_69010 move.w unk_FFFF9326(d3.w*2),d4 cmp.w (DG_FASD_KEFADD_CNT_FASD_ACCUMLEARNMIN).l,d4 ; Min data count of accumulator learning before first report is allowed to prevent premature first report. ; Unitless bcs.w loc_69010 btst #4,(byte_FFFF9305).w bne.w loc_69010 btst #3,(byte_FFFF9308).w bne.w loc_69010 btst #0,(byte_FFFF9305).w bne.w loc_69010 move.b (byte_FFFF9321).w,d4 beq.s loc_68F1E cmpi.b #5,d4 beq.s loc_68F1E moveq #6,d1 cmp.b d4,d1 bne.w loc_69010 loc_68F1E: ; CODE XREF: sub_67410+1AFEj ; sub_67410+1B04j move.w word_FF8DA2(d3.w*2),d4 cmp.w (word_FFFF93CA).w,d4 bcs.s loc_68F58 move.w unk_FFFF931A(d3.w*2),d2 cmp.w (DG_FASD_KEFADD_K_FASD_SHORTTERMLEANLIM).l,d2 ; Failure threshold for the short term accumulator while non-intrusive purge activity is occurring. ; Unitless bcs.s loc_68F58 move.b d6,$24+var_6D13(d3.w) move.b #1,$24+var_6D0F(d3.w) clr.w unk_FFFF932A(d3.w*2) move.b d6,$24+var_6D15(d3.w) bra.w loc_6911A ; --------------------------------------------------------------------------- loc_68F58: ; CODE XREF: sub_67410+1B1Aj ; sub_67410+1B28j cmp.w (word_FFFF93CC).w,d4 bhi.s loc_68FC0 move.w unk_FFFF931A(d3.w*2),d4 cmp.w (DG_FASD_KEFADD_K_FASD_SHORTTERMRICHLIM).l,d4 ; Short term accumulator threshold, while non-intrusive purge activity is occurring, to determine an excess vapor test is needed. ; Unitless bhi.s loc_68FC0 moveq #1,d1 move.b d1,$24+var_6D13(d3.w) clr.b -$6CEB(d3.w) clr.w unk_FFFF932A(d3.w*2) move.b d1,$24+var_6D15(d3.w) bset #2,6(a2) move.b (byte_FFFF9321).w,d4 cmpi.b #6,d4 bne.s loc_68FB0 bclr #3,(byte_FFFF9308).w cmp.b -$6CED(d3.w),d6 bne.w loc_6911A move.b d6,$24+var_6D0F(d3.w) bra.w loc_6911A ; --------------------------------------------------------------------------- loc_68FB0: ; CODE XREF: sub_67410+1B84j tst.b d4 bne.w loc_6911A bset #3,(byte_FFFF9308).w bra.w loc_6911A ; --------------------------------------------------------------------------- loc_68FC0: ; CODE XREF: sub_67410+1B4Cj ; sub_67410+1B5Aj clr.b -$6CF1(d3.w) cmpi.b #6,(byte_FFFF9321).w bne.s loc_68FDC move.w unk_FFFF932A(d3.w*2),d2 cmp.w (DG_FASD_KEFADD_CNT_EXTENDPASSCNTMIN).l,d2 ; Number of continuous passing report attempts required before allowing an actual pass report during the extended purging period. ; Unitless bcs.s loc_68FEE loc_68FDC: ; CODE XREF: sub_67410+1BBCj moveq #1,d4 move.b d4,$24+var_6D13(d3.w) move.b d4,$24+var_6D0F(d3.w) bra.w loc_6911A ; --------------------------------------------------------------------------- loc_68FEE: ; CODE XREF: sub_67410+1BCAj move.b #1,$24+var_6D13(d3.w) clr.b -$6CEB(d3.w) move.l d2,d4 addq.w #1,d4 bcc.s loc_69006 move.w #$FFFF,d4 loc_69006: ; CODE XREF: sub_67410+1BF0j move.w d4,$24+var_6CFA(d3.w*2) bra.w loc_6911A ; --------------------------------------------------------------------------- loc_69010: ; CODE XREF: sub_67410+1AC8j ; sub_67410+1AD8j ... btst #4,(byte_FFFF9305).w beq.s loc_69030 btst #0,(byte_FFFF9305).w bne.s loc_69030 bset #3,(byte_FFFF9308).w loc_69026: ; CODE XREF: sub_67410+1C4Ej clr.w unk_FFFF932A(d3.w*2) bra.w loc_6911A ; --------------------------------------------------------------------------- loc_69030: ; CODE XREF: sub_67410+1C06j ; sub_67410+1C0Ej btst #0,(byte_FFFF9305).w beq.s loc_69076 bclr #3,(byte_FFFF9308).w clr.w (word_FFFF93BE).w cmp.b -$6CED(d3.w),d6 bne.s loc_69060 move.b #1,$24+var_6D13(d3.w) move.b d6,$24+var_6D0F(d3.w) bset #2,6(a2) bra.s loc_69026 ; --------------------------------------------------------------------------- loc_69060: ; CODE XREF: sub_67410+1C38j move.b #1,$24+var_6D13(d3.w) move.b -$6CED(d3.w),$24+var_6D0F(d3.w) bra.w loc_6911A ; --------------------------------------------------------------------------- loc_69076: ; CODE XREF: sub_67410+1C26j clr.b -$6CEF(d3.w) clr.b -$6CEB(d3.w) bra.w loc_6911A ; --------------------------------------------------------------------------- loc_69086: ; CODE XREF: sub_67410+1AAEj cmpi.b #3,-$6CF5(d3.w) bne.s loc_690C2 clr.l d1 move.b d0,d1 move.w unk_FFFF9332(d1.w*2),d4 addq.w #1,d4 bcc.s loc_690A2 move.w #$FFFF,d4 loc_690A2: ; CODE XREF: sub_67410+1C8Cj move.w d4,$24+var_6CF2(d3.w*2) clr.l d1 move.b d0,d1 move.w unk_FFFF9326(d1.w*2),d4 addq.w #1,d4 bcc.s loc_690BA move.w #$FFFF,d4 loc_690BA: ; CODE XREF: sub_67410+1CA4j move.w d4,$24+var_6CFE(d3.w*2) bra.s loc_690C8 ; --------------------------------------------------------------------------- loc_690C2: ; CODE XREF: sub_67410+1C7Ej clr.w unk_FFFF9332(d3.w*2) loc_690C8: ; CODE XREF: sub_67410+1CB0j clr.w d2 move.b (DG_FASD_KEFADD_CNT_FASD_READYTOREPORTMIN).l,d2 ; The number of continuously accumulated sample counts required before allowing a report to the data manager. ; Unitless cmp.w unk_FFFF9332(d3.w*2),d2 bhi.s loc_69120 move.w unk_FFFF9326(d3.w*2),d2 cmp.w (DG_FASD_KEFADD_CNT_FASD_ACCUMLEARNMIN).l,d2 ; Min data count of accumulator learning before first report is allowed to prevent premature first report. ; Unitless bcs.s loc_69120 bset #4,(byte_FFFF9308).w bclr #5,(byte_FFFF9308).w move.w (DG_FASD_KEFADD_CNT_FASD_ACCUMLEARNMIN).l,$24+var_6CFE(d3.w*2) ; Min data count of accumulator learning before first report is allowed to prevent premature first report. ; Unitless move.b (byte_FFFF9321).w,d3 cmpi.b #6,d3 beq.s loc_69120 cmpi.b #4,d3 beq.s loc_69120 bclr #7,(byte_FFFF9308).w bra.s loc_69120 ; --------------------------------------------------------------------------- loc_69114: ; CODE XREF: sub_67410+1AB6j bclr #4,(byte_FFFF9308).w loc_6911A: ; CODE XREF: sub_67410+1B44j ; sub_67410+1B92j ... clr.w unk_FFFF9332(d3.w*2) loc_69120: ; CODE XREF: sub_67410+1CC6j ; sub_67410+1CD4j ... addq.b #1,d0 cmp.b d0,d7 bcc.w loc_68EAC loc_69128: ; CODE XREF: sub_67410+1A98j cmpi.b #3,(byte_FFFF9320).w bne.s loc_6913C bclr #4,(byte_FFFF9308).w bset #5,(byte_FFFF9308).w loc_6913C: ; CODE XREF: sub_67410+1A80j ; sub_67410+1A8Aj ... btst #2,(byte_FFFF9308).w bne.s loc_691BE btst #5,(byte_FFFF9308).w beq.s loc_691BE move.b var_3(a6),d7 moveq #1,d2 move.l d2,d4 cmp.b d7,d4 bhi.s loc_691BE loc_69158: ; CODE XREF: sub_67410+1DACj clr.l d1 move.b d2,d1 move.b -$6CEF(d1.w),d3 moveq #1,d4 cmp.b d3,d4 bne.s loc_69178 move.w word_8A800(d1.w*2),d0 jsr sub_5F0BE bra.s loc_6918A ; --------------------------------------------------------------------------- loc_69178: ; CODE XREF: sub_67410+1D56j cmp.b d3,d6 bne.s loc_6918A move.w word_8A800(d1.w*2),d0 jsr sub_5F110 loc_6918A: ; CODE XREF: sub_67410+1D66j ; sub_67410+1D6Aj move.b -$6CEB(d1.w),d3 cmpi.b #1,d3 bne.s loc_691A6 move.w word_8A804(d1.w*2),d0 jsr sub_5F0BE bra.s loc_691B8 ; --------------------------------------------------------------------------- loc_691A6: ; CODE XREF: sub_67410+1D84j cmp.b d3,d6 bne.s loc_691B8 move.w word_8A804(d1.w*2),d0 jsr sub_5F110 loc_691B8: ; CODE XREF: sub_67410+1D94j ; sub_67410+1D98j addq.b #1,d2 cmp.b d2,d7 bcc.s loc_69158 loc_691BE: ; CODE XREF: sub_67410+1D32j ; sub_67410+1D3Aj ... bclr #2,(byte_FFFF9308).w btst #5,(byte_FFFF9308).w beq.s loc_691D2 bset #2,(byte_FFFF9308).w loc_691D2: ; CODE XREF: sub_67410+1DBAj movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_67410 ; =============== S U B R O U T I N E ======================================= sub_691DA: ; CODE XREF: DoLoopC+36Cp movem.l d0-d2,-(sp) moveq #1,d0 move.b (byte_FFFF9954).w,d3 bne.s loc_691EA clr.b d4 bra.s loc_691F6 ; --------------------------------------------------------------------------- loc_691EA: ; CODE XREF: sub_691DA+Aj cmpi.b #3,d3 bne.s loc_691F4 moveq #2,d4 bra.s loc_691F6 ; --------------------------------------------------------------------------- loc_691F4: ; CODE XREF: sub_691DA+14j move.l d0,d4 loc_691F6: ; CODE XREF: sub_691DA+Ej ; sub_691DA+18j move.b (DI_FASD_KE_FASD_NUMBER_OF_BANKS).l,d2 ; The number of engineBanks that have independant fuel control. ; Unitless move.l d2,d1 move.l d0,d3 cmpi.b #1,d1 bra.w loc_692D6 ; --------------------------------------------------------------------------- loc_69208: ; CODE XREF: sub_691DA:loc_692D6j clr.l d5 move.b d3,d5 lea unk_FFFF92F6(d5.w*2),a2 btst #4,2(a2) beq.w loc_692AC tst.b (byte_FFFF9321).w beq.w loc_692AC btst #4,(byte_FFFF9306).w bne.s loc_69248 btst #4,3(a2) bne.s loc_69248 bset #0,2(a2) moveq #2,d5 cmp.b d4,d5 bne.s loc_69290 loc_69240: ; CODE XREF: sub_691DA+8Aj bset #3,2(a2) bra.s loc_69296 ; --------------------------------------------------------------------------- loc_69248: ; CODE XREF: sub_691DA+50j ; sub_691DA+58j btst #4,(byte_FFFF9306).w bne.s loc_69266 btst #4,3(a2) beq.s loc_69266 moveq #2,d5 cmp.b d4,d5 bne.s loc_69266 bset #0,2(a2) bra.s loc_69240 ; --------------------------------------------------------------------------- loc_69266: ; CODE XREF: sub_691DA+74j ; sub_691DA+7Cj ... btst #4,(byte_FFFF9306).w bne.s loc_6927C btst #4,3(a2) beq.s loc_6927C moveq #2,d5 cmp.b d4,d5 bne.s loc_69284 loc_6927C: ; CODE XREF: sub_691DA+92j ; sub_691DA+9Aj btst #4,(byte_FFFF9306).w beq.s loc_69296 loc_69284: ; CODE XREF: sub_691DA+A0j bset #4,(byte_FFFF9306).w bclr #0,2(a2) loc_69290: ; CODE XREF: sub_691DA+64j bclr #3,2(a2) loc_69296: ; CODE XREF: sub_691DA+6Cj ; sub_691DA+A8j cmpi.b #2,d4 bne.s loc_692A4 bset #4,3(a2) bra.s loc_692D2 ; --------------------------------------------------------------------------- loc_692A4: ; CODE XREF: sub_691DA+C0j bclr #4,3(a2) bra.s loc_692D2 ; --------------------------------------------------------------------------- loc_692AC: ; CODE XREF: sub_691DA+3Ej ; sub_691DA+46j bclr #0,2(a2) bclr #3,2(a2) bclr #4,3(a2) btst #4,2(a2) bne.s loc_692D2 addq.b #1,d0 cmp.b d2,d0 bcs.s loc_692D2 bclr #4,(byte_FFFF9306).w loc_692D2: ; CODE XREF: sub_691DA+C8j ; sub_691DA+D0j ... addq.b #1,d3 cmp.b d3,d1 loc_692D6: ; CODE XREF: sub_691DA+2Aj bcc.w loc_69208 movem.l (sp)+,d0-d2 rts ; End of function sub_691DA ; =============== S U B R O U T I N E ======================================= sub_692E0: ; CODE XREF: DoLoopF+C8p var_4DF5 = -$4DF5 movem.l d0-d1/a0,-(sp) clr.b d4 move.l (byte_FFFF8252).w,d3 btst #$12,d3 bne.s loc_69334 btst #$14,d3 bne.s loc_69334 btst #2,d3 bne.s loc_69334 btst #1,d3 bne.s loc_69334 btst #$1B,d3 bne.s loc_69334 btst #$1A,d3 bne.s loc_69334 btst #$C,d3 bne.s loc_69334 btst #$16,d3 bne.s loc_69334 btst #7,d3 bne.s loc_69334 btst #8,d3 bne.s loc_69334 btst #$B,d3 bne.s loc_69334 btst #$F,d3 bne.s loc_69334 addq.b #1,d4 loc_69334: ; CODE XREF: sub_692E0+Ej ; sub_692E0+14j ... move.b d4,(byte_FFFFB213).w move.b (DI_FASD_KE_FASD_NUMBER_OF_BANKS).l,d0 ; The number of engineBanks that have independant fuel control. ; Unitless moveq #1,d3 move.l d3,d1 cmp.b d0,d1 bhi.s loc_69362 loc_69346: ; CODE XREF: sub_692E0+80j clr.b d4 btst #0,(byte_FFFF8252).w bne.s loc_69352 addq.b #1,d4 loc_69352: ; CODE XREF: sub_692E0+6Ej clr.l d1 move.b d3,d1 move.b d4,$C+var_4DF5(d1.w) addq.b #1,d3 cmp.b d3,d0 bcc.s loc_69346 loc_69362: ; CODE XREF: sub_692E0+64j move.w (word_FFFF9B50).w,d3 cmpi.w #$1400,d3 bls.s loc_69370 move.w #$1400,d3 loc_69370: ; CODE XREF: sub_692E0+8Aj cmp.w (DI_FASD_KEFADD_FASD_FUELLEVELMIN).l,d3 ; Minimum fuel level at which the FASD will allow lean system diagnostic to continue. ; Percent bcc.s loc_693AE btst #3,(byte_FFFF9B2E).w beq.s loc_693AE btst #5,(byte_FFFF8984).w beq.s loc_693AE btst #5,(byte_FFFF8986).w beq.s loc_693AE move.w (DI_FASD_KEFADD_FUELLEVELLOWTIME).l,d0 ; Determines how long the fuel level has to be below its minimum threshold before the diagnostic will be disabled. ; Seconds movea.l #unk_FFB21C,a0 jsr sub_276D4 tst.b d0 beq.s loc_693B8 move.b #1,(byte_FFFFB214).w bra.s loc_693B8 ; --------------------------------------------------------------------------- loc_693AE: ; CODE XREF: sub_692E0+96j ; sub_692E0+9Ej ... move.w (GlobalClock).w,(word_FFFFB21C).w clr.b (byte_FFFFB214).w loc_693B8: ; CODE XREF: sub_692E0+C4j ; sub_692E0+CCj move.w (word_FFFFB3E8).w,d3 move.w (word_FFFFB21A).w,d0 move.w (word_FFFFB222).w,d4 sub.w d3,d4 tst.w d4 bge.s loc_693CC neg.w d4 loc_693CC: ; CODE XREF: sub_692E0+E8j cmpi.w #$F32,d4 bls.s loc_693D6 move.w #$F32,d4 loc_693D6: ; CODE XREF: sub_692E0+F0j cmp.w (DI_FASD_KEFADD_IAT_RATE_LIMIT).l,d4 ; Max amount that raw IAT is allowed to change per 100msec. for use in min IAT. ; Degrees_C bls.s loc_6940E cmp.w (word_FFFFB222).w,d3 bgt.s loc_693FA move.w (word_FFFFB222).w,d3 sub.w (DI_FASD_KEFADD_IAT_RATE_LIMIT).l,d3 ; Max amount that raw IAT is allowed to change per 100msec. for use in min IAT. ; Degrees_C cmpi.w #$FC00,d3 bge.s loc_6940E move.w #$FC00,d3 bra.s loc_6940E ; --------------------------------------------------------------------------- loc_693FA: ; CODE XREF: sub_692E0+102j move.w (word_FFFFB222).w,d3 add.w (DI_FASD_KEFADD_IAT_RATE_LIMIT).l,d3 ; Max amount that raw IAT is allowed to change per 100msec. for use in min IAT. ; Degrees_C cmpi.w #$F32,d3 ble.s loc_6940E move.w #$F32,d3 loc_6940E: ; CODE XREF: sub_692E0+FCj ; sub_692E0+112j ... move.w d3,(word_FFFFB222).w move.l (dword_FFFFAD28).w,d3 cmp.l (DI_FASD_KEFADD_TIME_SINCE_PWRUP_MAX).l,d3 ; Time since PCM powerup must be less than or equal to this to initialize FASD min IAT. ; Seconds bhi.s loc_6943E move.l (dword_FFFFBF12).w,d0 cmp.l (DI_FASD_KEFADD_LONG_SOAK_TIME_MIN).l,d0 ; Soak time less than this will intialize FASD min IAT to NVMEM min IAT from previous trip. ; Seconds bls.s loc_69436 move.w (word_FFFFB222).w,d0 move.b #1,(byte_FFFFB220).w bra.s loc_6943E ; --------------------------------------------------------------------------- loc_69436: ; CODE XREF: sub_692E0+148j move.w (word_FFFF8D58).w,d0 clr.b (byte_FFFFB220).w loc_6943E: ; CODE XREF: sub_692E0+13Cj ; sub_692E0+154j tst.b (byte_FFFFB220).w bne.s loc_69478 move.w (word_FFFFA0DC).w,d3 cmp.w (DI_FASD_KEFADD_MAF_TO_UPDATE_MINIAT).l,d3 ; Min IAT will be updated when MAF is greater than this threshold and Long Soak is FALSE. ; Grams/Sec bls.s loc_6945E move.w (word_FFFFB21E).w,d3 addq.w #1,d3 bcc.s loc_69468 move.w #$FFFF,d3 bra.s loc_69468 ; --------------------------------------------------------------------------- loc_6945E: ; CODE XREF: sub_692E0+16Ej move.w (word_FFFFB21E).w,d3 subq.w #1,d3 bcc.s loc_69468 clr.w d3 loc_69468: ; CODE XREF: sub_692E0+176j ; sub_692E0+17Cj ... move.w d3,(word_FFFFB21E).w cmp.w (DI_FASD_KEFADD_MINIAT_MAF_CTR_MIN).l,d3 ; MAF must be greater than KeFADD_MAF_To_Update_MinIAT for at least this many 100msec samples for Min IAT to update. ; Counts bls.s loc_69478 move.w (word_FFFFB222).w,d0 loc_69478: ; CODE XREF: sub_692E0+162j ; sub_692E0+192j move.w (word_FFFFB222).w,d3 cmp.w d0,d3 bge.s loc_69482 move.l d3,d0 loc_69482: ; CODE XREF: sub_692E0+19Ej move.w d0,(word_FFFFB21A).w move.w d0,(word_FFFF8D58).w movem.l (sp)+,d0-d1/a0 rts ; End of function sub_692E0 ; =============== S U B R O U T I N E ======================================= sub_69490: ; CODE XREF: OS1:0002923Cp cmpi.b #6,d0 beq.s loc_694C8 cmpi.b #3,d0 bhi.s locret_694D0 beq.s loc_694C8 cmpi.b #1,d0 bls.s locret_694D0 move.w (GlobalClock).w,(word_FFFFB21C).w moveq #1,d3 move.b d3,(byte_FFFFB216).w move.b d3,(byte_FFFFB215).w move.w (word_FFFFB3E8).w,(word_FFFFB222).w tst.b (byte_FFFFB54A).w bne.s locret_694D0 move.w #$F32,(word_FFFF8D58).w bra.s locret_694D0 ; --------------------------------------------------------------------------- loc_694C8: ; CODE XREF: sub_69490+4j sub_69490+Cj clr.b (byte_FFFFB213).w clr.w (word_FFFFB218).w locret_694D0: ; CODE XREF: sub_69490+Aj ; sub_69490+12j ... rts ; End of function sub_69490 ; =============== S U B R O U T I N E ======================================= sub_694D2: ; CODE XREF: sub_6953A+4p sub_6954C+4p ... clr.w (word_FFFFB238).w clr.w (word_FFFFB23A).w clr.w (word_FFFFB23C).w clr.w (word_FFFFB23E).w clr.w (word_FFFFB240).w clr.w (word_FFFFB242).w clr.w (word_FFFFB244).w clr.w (word_FFFFB246).w rts ; End of function sub_694D2 ; =============== S U B R O U T I N E ======================================= sub_694F4: ; CODE XREF: sub_6953A+Ap sub_6954C+Ap ... clr.w (word_FFFF8C62).w clr.w (word_FFFF8C6C).w clr.w (word_FFFF8C64).w clr.w (word_FFFF8C68).w clr.w (word_FFFF8C66).w clr.w (word_FFFF8C6A).w moveq #1,d3 move.b d3,(byte_FFFF8C6E).w move.b d3,(byte_FFFF8C6F).w clr.w (word_FFFF8C70).w clr.w (word_FFFF8C72).w clr.w (word_FFFF8C74).w move.w #$FC00,(word_FFFF8C76).w clr.w (word_FFFF8C78).w clr.w (word_FFFF8C7C).w clr.w (word_FFFF8C7A).w clr.w (word_FFFF8C7E).w rts ; End of function sub_694F4 ; =============== S U B R O U T I N E ======================================= sub_6953A: ; CODE XREF: sub_75370+24Cp clr.b (byte_FFFFB236).w jsr sub_694D2 jsr sub_694F4 rts ; End of function sub_6953A ; =============== S U B R O U T I N E ======================================= sub_6954C: ; CODE XREF: DoLoopC+300p clr.b (byte_FFFFB236).w jsr sub_694D2 jsr sub_694F4 rts ; End of function sub_6954C ; =============== S U B R O U T I N E ======================================= sub_6955E: ; CODE XREF: sub_6983E+1D4p movem.l d0-d1/a0-a1,-(sp) move.w (word_FFFF9FC2).w,d3 mulu.w #$15,d3 divu.w #$2B,d3 ; '+' cmpi.w #$FF,d3 bhi.s loc_6957C cmpi.b #1,d3 bcs.s loc_69582 bra.s loc_69584 ; --------------------------------------------------------------------------- loc_6957C: ; CODE XREF: sub_6955E+14j move.b #$FF,d3 bra.s loc_69584 ; --------------------------------------------------------------------------- loc_69582: ; CODE XREF: sub_6955E+1Aj moveq #1,d3 loc_69584: ; CODE XREF: sub_6955E+1Cj ; sub_6955E+22j cmp.b (DG_FFS_KE_FFSD_COMP_SHORTED_HI_THRESH).l,d3 ; The threshold above which the flex fuel composition sensor frequency is considered out of range high. ; Hertz shi d0 neg.b d0 move.l #unk_FF8C64,-(sp) move.l #unk_FF8C68,-(sp) move.l #unk_FFB238,-(sp) move.l #unk_FFB23A,-(sp) movea.l #DG_FFS_KE_FFSD_COMP_SHRTHI_FAIL_LIM,a1 ; Number of failed out of range high tests within a sample size that will report a failure. ; Unitless movea.l #DG_FFS_KE_FFSD_COMP_SHRTHI_SMPL_LIM,a0 ; Number of out of range high tests that make up a sample size. ; Unitless moveq #$34,d1 ; '4' jsr sub_615BC movem.l (sp)+,d0-d1/a0-a1 rts ; End of function sub_6955E ; =============== S U B R O U T I N E ======================================= sub_695C0: ; CODE XREF: sub_6983E+1DAp movem.l d0-d1/a0-a1,-(sp) move.w (word_FFFF9FC2).w,d3 mulu.w #$15,d3 divu.w #$2B,d3 ; '+' cmpi.w #$FF,d3 bhi.s loc_695DE cmpi.b #1,d3 bcs.s loc_695E4 bra.s loc_695E6 ; --------------------------------------------------------------------------- loc_695DE: ; CODE XREF: sub_695C0+14j move.b #$FF,d3 bra.s loc_695E6 ; --------------------------------------------------------------------------- loc_695E4: ; CODE XREF: sub_695C0+1Aj moveq #1,d3 loc_695E6: ; CODE XREF: sub_695C0+1Cj ; sub_695C0+22j cmp.b (DG_FFS_KE_FFSD_COMP_SHORTED_LO_THRESH).l,d3 ; The threshold below which the flex fuel composition sensor frequency is considered out of range low. ; Hertz scs d0 neg.b d0 move.l #unk_FF8C66,-(sp) move.l #unk_FF8C6A,-(sp) move.l #unk_FFB23C,-(sp) move.l #unk_FFB23E,-(sp) movea.l #DG_FFS_KE_FFSD_COMP_SHRTLO_FAIL_LIM,a1 ; Number of failed out of range low tests within a sample size that will report a failure. ; Unitless movea.l #DG_FFS_KE_FFSD_COMP_SHRTLO_SMPL_LIM,a0 ; Number of out of range low tests that make up a sample size. ; Unitless moveq #$33,d1 ; '3' jsr sub_615BC movem.l (sp)+,d0-d1/a0-a1 rts ; End of function sub_695C0 ; =============== S U B R O U T I N E ======================================= sub_69622: ; CODE XREF: sub_6983E+1C2p movem.l d0-d1/a0-a1,-(sp) move.w (word_FFFF9FC0).w,d3 mulu.w #$89,d3 ; '?' divu.w #$AD,d3 ; '?' cmpi.w #$1E00,d3 bls.s loc_6963C move.w #$1E00,d3 loc_6963C: ; CODE XREF: sub_69622+14j cmpi.w #$C7F,d3 bls.s loc_69646 move.w #$C7F,d3 loc_69646: ; CODE XREF: sub_69622+1Ej cmp.w (DG_FFS_KE_FFSD_TEMP_SHORTED_HI_THRESH).l,d3 ; The threshold above which the flex fuel temperature sensor active time is considered out of range high. ; Milliseconds shi d0 neg.b d0 move.l #unk_FF8C78,-(sp) move.l #unk_FF8C7C,-(sp) move.l #unk_FFB240,-(sp) move.l #unk_FFB242,-(sp) movea.l #DG_FFS_KE_FFSD_TEMP_SHRTHI_FAIL_LIM,a1 ; Number of failed out of range high tests within a sample size that will report a failure. ; Unitless movea.l #DG_FFS_KE_FFSD_TEMP_SHRTHI_SMPL_LIM,a0 ; Number of out of range high tests that make up a sample size. ; Unitless moveq #$37,d1 ; '7' jsr sub_615BC movem.l (sp)+,d0-d1/a0-a1 rts ; End of function sub_69622 ; =============== S U B R O U T I N E ======================================= sub_69682: ; CODE XREF: sub_6983E+1C8p movem.l d0-d1/a0-a1,-(sp) move.w (word_FFFF9FC0).w,d3 mulu.w #$89,d3 ; '?' divu.w #$AD,d3 ; '?' cmpi.w #$1E00,d3 bls.s loc_6969C move.w #$1E00,d3 loc_6969C: ; CODE XREF: sub_69682+14j cmpi.w #$C7F,d3 bls.s loc_696A6 move.w #$C7F,d3 loc_696A6: ; CODE XREF: sub_69682+1Ej cmp.w (DG_FFS_KE_FFSD_TEMP_SHORTED_LO_THRESH).l,d3 ; The threshold below which the flex fuel temperature sensor active time is considered out of range low. ; Milliseconds scs d0 neg.b d0 move.l #unk_FF8C7A,-(sp) move.l #unk_FF8C7E,-(sp) move.l #unk_FFB244,-(sp) move.l #unk_FFB246,-(sp) movea.l #DG_FFS_KE_FFSD_TEMP_SHRTLO_FAIL_LIM,a1 ; Number of failed out of range low tests within a sample size that will report a failure. ; Unitless movea.l #DG_FFS_KE_FFSD_TEMP_SHRTLO_SMPL_LIM,a0 ; Number of out of range low tests that make up a sample size. ; Unitless moveq #$36,d1 ; '6' jsr sub_615BC movem.l (sp)+,d0-d1/a0-a1 rts ; End of function sub_69682 ; =============== S U B R O U T I N E ======================================= sub_696E2: ; CODE XREF: sub_6983E+1B0p move.l d0,-(sp) tst.b (byte_FFFFB4D0).w beq.w loc_697C8 clr.w d3 move.w (word_FFFFB4D2).w,d0 move.l d0,d4 addi.w #$3CD,d4 cmpi.w #$7FFF,d4 bhi.s loc_69712 mulu.w #5,d4 divu.w #3,d4 cmpi.w #$1EFF,d4 bls.s loc_69714 move.w #$1EFF,d4 bra.s loc_69714 ; --------------------------------------------------------------------------- loc_69712: ; CODE XREF: sub_696E2+1Aj move.l d3,d4 loc_69714: ; CODE XREF: sub_696E2+28j ; sub_696E2+2Ej tblu.b (DG_FFS_KV_FFSD_FUEL_COMPOSITION).l,d4 ; The maximum upper limit allowed for the flex fuel sensor frequency value based on intake air temperature. ; Hertz move.w (word_FFFF9FC2).w,d3 mulu.w #$15,d3 divu.w #$2B,d3 ; '+' cmpi.w #$FF,d3 bhi.s loc_69736 cmpi.b #1,d3 bcs.s loc_6973C bra.s loc_6973E ; --------------------------------------------------------------------------- loc_69736: ; CODE XREF: sub_696E2+4Aj move.b #$FF,d3 bra.s loc_6973E ; --------------------------------------------------------------------------- loc_6973C: ; CODE XREF: sub_696E2+50j moveq #1,d3 loc_6973E: ; CODE XREF: sub_696E2+52j ; sub_696E2+58j tst.w (word_FFFF8C6C).w bne.s loc_69750 move.b d4,(byte_FFFF8C6E).w move.b d3,(byte_FFFF8C6F).w move.w d0,(word_FFFF8C70).w loc_69750: ; CODE XREF: sub_696E2+60j move.w (word_FFFF8C6C).w,d5 addq.w #1,d5 bcc.s loc_6975C move.w #$FFFF,d5 loc_6975C: ; CODE XREF: sub_696E2+74j move.w d5,(word_FFFF8C6C).w cmp.b d4,d3 bcs.s loc_69786 tst.w (word_FFFF8C62).w beq.s loc_69770 cmp.b (byte_FFFF8C6F).w,d3 bcc.s loc_69774 loc_69770: ; CODE XREF: sub_696E2+86j move.b d3,(byte_FFFF8C6F).w loc_69774: ; CODE XREF: sub_696E2+8Cj move.w (word_FFFF8C62).w,d3 addq.w #1,d3 bcc.s loc_69780 move.w #$FFFF,d3 loc_69780: ; CODE XREF: sub_696E2+98j ; DATA XREF: Calibration:000091F8o move.w d3,(word_FFFF8C62).w bra.s loc_69796 ; --------------------------------------------------------------------------- loc_69786: ; CODE XREF: sub_696E2+80j tst.w (word_FFFF8C62).w bne.s loc_69796 cmp.b (byte_FFFF8C6F).w,d3 bls.s loc_69796 move.b d3,(byte_FFFF8C6F).w loc_69796: ; CODE XREF: sub_696E2+A2j ; sub_696E2+A8j ... move.w (word_FFFF8C62).w,d0 cmp.w (DG_FFS_KE_FFSD_COMP_FAIL_LIM).l,d0 ; Maximum number of failure counts required to fail the test. ; Unitless bcs.s loc_697B2 moveq #$2B,d0 ; '+' jsr sub_5F110 loc_697AA: ; CODE XREF: sub_696E2+E4j bset #7,(byte_FFFFB236).w bra.s loc_697C8 ; --------------------------------------------------------------------------- loc_697B2: ; CODE XREF: sub_696E2+BEj move.w (word_FFFF8C6C).w,d0 cmp.w (DG_FFS_KE_FFSD_COMP_SMPL_LIM).l,d0 ; Total number of sample counts required to pass the composition test. ; Unitless bcs.s loc_697C8 moveq #$2B,d0 ; '+' jsr sub_5F0BE bra.s loc_697AA ; --------------------------------------------------------------------------- loc_697C8: ; CODE XREF: sub_696E2+6j ; sub_696E2+CEj ... move.l (sp)+,d0 rts ; End of function sub_696E2 ; =============== S U B R O U T I N E ======================================= sub_697CC: ; CODE XREF: sub_6983E+1A4p movem.l d0-d1,-(sp) tst.b (byte_FFFFB4D6).w beq.s loc_6980E move.w (word_FFFFB4D4).w,d1 move.w d1,(word_FFFF8C74).w move.w (word_FFFFADB4).w,(word_FFFF8C76).w cmp.w (DG_FFS_KE_FFSD_RAT_TEMP_DIFF).l,d1 ; Maximum temperature difference allowed for enabling the FFSD rationality test. ; Degrees bls.s loc_697F6 moveq #$35,d0 ; '5' jsr sub_5F110 bra.s loc_69808 ; --------------------------------------------------------------------------- loc_697F6: ; CODE XREF: sub_697CC+1Ej moveq #$35,d0 ; '5' jsr sub_5F0BE cmp.w (word_FFFF8C72).w,d1 bls.s loc_69808 move.w d1,(word_FFFF8C72).w loc_69808: ; CODE XREF: sub_697CC+28j ; sub_697CC+36j bset #6,(byte_FFFFB236).w loc_6980E: ; CODE XREF: sub_697CC+8j movem.l (sp)+,d0-d1 rts ; End of function sub_697CC ; =============== S U B R O U T I N E ======================================= sub_69814: ; CODE XREF: OS1:0002920Cp cmpi.b #6,d0 beq.s loc_69836 cmpi.b #3,d0 bhi.s locret_6983C beq.s loc_69836 cmpi.b #1,d0 bls.s locret_6983C tst.b (byte_FFFFB54A).w bne.s locret_6983C jsr sub_694F4 bra.s locret_6983C ; --------------------------------------------------------------------------- loc_69836: ; CODE XREF: sub_69814+4j sub_69814+Cj jsr sub_694D2 locret_6983C: ; CODE XREF: sub_69814+Aj ; sub_69814+12j ... rts ; End of function sub_69814 ; =============== S U B R O U T I N E ======================================= sub_6983E: ; CODE XREF: DoLoopG:loc_2B1ECp movem.l d0-d2,-(sp) moveq #5,d1 cmp.b (ThrottleControlMode2?).w,d1 bne.s loc_69854 move.w (word_FFFFB4A6).w,d3 mulu.w d1,d3 lsr.w #7,d3 bra.s loc_6986E ; --------------------------------------------------------------------------- loc_69854: ; CODE XREF: sub_6983E+Aj move.w (word_FFFFB4A2).w,d3 mulu.w d1,d3 cmpi.l #$FFFF,d3 bhi.s loc_6986A lsr.w #7,d3 cmpi.w #$FF,d3 bls.s loc_6986E loc_6986A: ; CODE XREF: sub_6983E+22j move.b #$FF,d3 loc_6986E: ; CODE XREF: sub_6983E+14j ; sub_6983E+2Aj move.b d3,d4 clr.l d0 move.l (EngineRunTime).w,d3 cmp.l (DI_FFS_KE_FFSD_MIN_ENG_RUN_TIME).l,d3 ; Minimum amount of time that the engine must be running before the FFSD will be enabled. ; Seconds bcs.s loc_69890 cmp.b (DI_FFS_KE_FFSD_SYSTEM_VOLT_MIN).l,d4 ; Lower limit for the system voltage below which the FFSD is not enabled. ; Volts bcs.s loc_69890 cmp.b (DI_FFS_KE_FFSD_SYSTEM_VOLT_MAX).l,d4 ; Upper limit for the system voltage above which the FFSD is not enabled. ; Volts bhi.s loc_69890 addq.b #1,d0 loc_69890: ; CODE XREF: sub_6983E+3Ej ; sub_6983E+46j ... move.b d0,(byte_FFFFB4D1).w tst.b (byte_FFFF9FBA).w beq.w loc_699F4 tst.b d0 beq.w loc_6998C btst #6,(byte_FFFFB236).w bne.s loc_69906 tst.b (byte_FFFFA1AB).w beq.s loc_69906 btst #1,(byte_FFFF88DA).w bne.s loc_69906 btst #1,(byte_FFFF88DC).w bne.s loc_69906 btst #1,(byte_FFFF892C).w bne.s loc_69906 btst #1,(byte_FFFF892E).w bne.s loc_69906 btst #1,(byte_FFFF8AA2).w bne.s loc_69906 move.l (dword_FFFFBF12).w,d3 move.l #$A0,d0 ; '?' divu.l d0,d3 moveq #$3C,d2 ; '<' divu.w d2,d3 bvs.s loc_698F2 cmpi.w #$5A0,d3 bls.s loc_698F6 loc_698F2: ; CODE XREF: sub_6983E+ACj move.w #$5A0,d3 loc_698F6: ; CODE XREF: sub_6983E+B2j cmp.w (DI_FFS_KE_FFSD_TIME_SINCE_ENG_RUN).l,d3 bls.s loc_69906 move.b #1,(byte_FFFFB4D6).w bra.s loc_6990A ; --------------------------------------------------------------------------- loc_69906: ; CODE XREF: sub_6983E+6Aj ; sub_6983E+70j ... clr.b (byte_FFFFB4D6).w loc_6990A: ; CODE XREF: sub_6983E+C6j btst #7,(byte_FFFFB236).w bne.s loc_6997C tst.b (byte_FFFFA1A9).w beq.s loc_6997C btst #1,(byte_FFFF88D4).w bne.s loc_6997C btst #1,(byte_FFFF88D6).w bne.s loc_6997C btst #1,(byte_FFFF8926).w bne.s loc_6997C btst #1,(byte_FFFF8928).w bne.s loc_6997C btst #1,(byte_FFFF8AA2).w bne.s loc_6997C move.l (dword_FFFFBF12).w,d3 move.l #$A0,d0 ; '?' divu.l d0,d3 moveq #$3C,d2 ; '<' divu.w d2,d3 bvs.s loc_6995A cmpi.w #$5A0,d3 bls.s loc_6995E loc_6995A: ; CODE XREF: sub_6983E+114j move.w #$5A0,d3 loc_6995E: ; CODE XREF: sub_6983E+11Aj cmp.w (DI_FFS_KE_FFSD_TIME_SINCE_ENG_RUN).l,d3 bls.s loc_6997C tst.b (byte_FFFFB4D0).w bne.s loc_6998C clr.w (word_FFFF8C62).w clr.w (word_FFFF8C6C).w move.b #1,(byte_FFFFB4D0).w bra.s loc_6998C ; --------------------------------------------------------------------------- loc_6997C: ; CODE XREF: sub_6983E+D2j ; sub_6983E+D8j ... tst.b (byte_FFFFB4D0).w beq.s loc_6998C bset #7,(byte_FFFFB236).w clr.b (byte_FFFFB4D0).w loc_6998C: ; CODE XREF: sub_6983E+60j ; sub_6983E+12Cj ... tst.b (byte_FFFFB4D0).w beq.s loc_69998 tst.w (word_FFFF8C6C).w beq.s loc_6999E loc_69998: ; CODE XREF: sub_6983E+152j tst.b (byte_FFFFB4D6).w beq.s loc_699DC loc_6999E: ; CODE XREF: sub_6983E+158j move.w (word_FFFF9FBE).w,d3 move.w d3,(word_FFFF82C6).w movea.w (word_FFFFADB4).w,a2 sub.w a2,d3 tst.w d3 bge.s loc_699B2 neg.w d3 loc_699B2: ; CODE XREF: sub_6983E+170j move.w d3,(word_FFFFB4D4).w move.l (dword_FFFFBF12).w,d3 divu.l #$A0,d3 ; '?' divu.w #$3C,d3 ; '<' bvs.s loc_699CE cmpi.w #$5A0,d3 bls.s loc_699D2 loc_699CE: ; CODE XREF: sub_6983E+188j move.w #$5A0,d3 loc_699D2: ; CODE XREF: sub_6983E+18Ej move.w d3,(word_FFFF82C8).w move.w (word_FFFFB3EE).w,(word_FFFFB4D2).w loc_699DC: ; CODE XREF: sub_6983E+15Ej tst.b (byte_FFFFB4D6).w beq.s loc_699E8 jsr sub_697CC loc_699E8: ; CODE XREF: sub_6983E+1A2j tst.b (byte_FFFFB4D0).w beq.s loc_699F4 jsr sub_696E2 loc_699F4: ; CODE XREF: sub_6983E+5Aj ; sub_6983E+1AEj tst.b (byte_FFFFB4D1).w beq.s loc_69A1E tst.b (byte_FFFFA1AC).w beq.s loc_69A0C jsr sub_69622 jsr sub_69682 loc_69A0C: ; CODE XREF: sub_6983E+1C0j tst.b (byte_FFFFA1AA).w beq.s loc_69A1E jsr sub_6955E jsr sub_695C0 loc_69A1E: ; CODE XREF: sub_6983E+1BAj ; sub_6983E+1D2j movem.l (sp)+,d0-d2 rts ; End of function sub_6983E ; =============== S U B R O U T I N E ======================================= sub_69A24: ; CODE XREF: OS1:00029214p cmpi.b #6,d0 beq.s loc_69A4E cmpi.b #3,d0 bhi.s locret_69A56 beq.s loc_69A4E cmpi.b #1,d0 bls.s locret_69A56 move.w #$FC00,(word_FFFFB4D2).w tst.b (byte_FFFFB54A).w bne.s locret_69A56 clr.w (word_FFFF82C6).w clr.w (word_FFFF82C8).w bra.s locret_69A56 ; --------------------------------------------------------------------------- loc_69A4E: ; CODE XREF: sub_69A24+4j sub_69A24+Cj clr.b (byte_FFFFB4D6).w clr.b (byte_FFFFB4D0).w locret_69A56: ; CODE XREF: sub_69A24+Aj ; sub_69A24+12j ... rts ; End of function sub_69A24 ; =============== S U B R O U T I N E ======================================= sub_69A58: ; CODE XREF: DoLoopC+306p ; sub_75370+258p clr.w (word_FFFF82C6).w clr.w (word_FFFF82C8).w rts ; End of function sub_69A58 ; =============== S U B R O U T I N E ======================================= sub_69A62: ; CODE XREF: OS1:loc_29280p ; DoLoopC+22Cp ... var_5193 = -$5193 var_518F = -$518F var_5184 = -$5184 movem.l d1-d2/d6-d7,-(sp) clr.b (byte_FFFFAE8C).w clr.b (byte_FFFFAE7A).w bset #2,(byte_FFFFAE7A).w clr.l (dword_FFFFAE96).w clr.l (dword_FFFFAE92).w clr.w (word_FFFFAE7C).w clr.w (word_FFFFAE80).w clr.l (dword_FFFFAE84).w clr.w (word_FFFFAE8A).w clr.b (byte_FFFFAE89).w clr.b (byte_FFFFAE88).w moveq #1,d1 loc_69A96: ; CODE XREF: sub_69A62+A0j clr.l d2 move.b d1,d2 move.b #$80,d4 move.b d4,$10+var_518F(d2.w) move.b d4,$10+var_5193(d2.w) movea.l d2,a2 clr.w d3 move.b byte_17629(d2.w),d3 move.w d3,$10+var_5184(a2.w*2) move.b (DI_FUEL_TRIM_KE_FTRM_NUMBER_OF_OFF_IDLE_CELLS).l,d6 ; Number of 'Off Idle' cells used in this diagnostic. ; Cells moveq #1,d5 cmpi.b #1,d6 bra.s loc_69AFA ; --------------------------------------------------------------------------- loc_69ACA: ; CODE XREF: sub_69A62:loc_69AFAj clr.l d7 move.b d1,d7 move.l d1,d3 asl.b #4,d3 add.b d5,d3 andi.w #$FF,d3 move.b byte_1761B(d3.w),d3 andi.w #$FF,d3 add.w byte_FFFFAE8C(d7.w*2),d3 bcc.s loc_69AF0 move.w #$FFFF,d3 loc_69AF0: ; CODE XREF: sub_69A62+88j move.w d3,$10+var_5184(d2.w*2) addq.b #1,d5 cmp.b d5,d6 loc_69AFA: ; CODE XREF: sub_69A62+66j bcc.s loc_69ACA addq.b #1,d1 cmpi.b #2,d1 bls.s loc_69A96 movem.l (sp)+,d1-d2/d6-d7 rts ; End of function sub_69A62 ; =============== S U B R O U T I N E ======================================= sub_69B0A: ; CODE XREF: DoLoopF+BCp movem.l d0-d2/d6-d7,-(sp) btst #4,(byte_FFFFA068).w bne.s loc_69B1A clr.b (byte_FFFFAE8C).w loc_69B1A: ; CODE XREF: sub_69B0A+Aj clr.w d2 move.b (byte_FFFFAE8C).w,d2 movea.l off_8A740(d2.w*4),a2 jmp (a2) ; End of function sub_69B0A ; --------------------------------------------------------------------------- loc_69B2A: ; DATA XREF: OS4:off_8A740o bclr #2,(byte_FFFFAE7A).w clr.l (dword_FFFFAE96).w clr.b (byte_FFFFAE89).w bclr #6,(4294946426).w bclr #3,(byte_FFFFAE7A).w bclr #7,(byte_FFFFAE7A).w bclr #4,(byte_FFFFAE7A).w btst #0,(byte_FFFFA068).w beq.s loc_69BC8 move.w (word_FFFFAE8A).w,d3 cmp.w (DG_FUEL_TRIM_KE_FTRM_WAIT_TIME_MAX).l,d3 ; Maximum time the diagnostic will wait before executing after excess purge has been detected. ; Seconds bcc.s loc_69BC8 clr.l d3 move.w (word_FFFFA06E).w,d3 asl.l #8,d3 asl.l #5,d3 cmpi.l #$1F400000,d3 bls.s loc_69B7C move.l #$1F400000,d3 loc_69B7C: ; CODE XREF: OS3:00069B74j cmp.l (dword_FFFFAE84).w,d3 bls.s loc_69BC8 bclr #2,(byte_FFFFAE7A).w move.w (word_FFFFAE8A).w,d3 addq.w #1,d3 bcc.s loc_69B94 move.w #$FFFF,d3 loc_69B94: ; CODE XREF: OS3:00069B8Ej move.w d3,(word_FFFFAE8A).w clr.l d3 move.w (word_FFFFA06C).w,d3 asl.l #8,d3 asl.l #5,d3 cmpi.l #$1F400000,d3 bls.s loc_69BB0 move.l #$1F400000,d3 loc_69BB0: ; CODE XREF: OS3:00069BA8j add.l (dword_FFFFAE84).w,d3 cmpi.l #$1F400000,d3 bls.s loc_69BC2 move.l #$1F400000,d3 loc_69BC2: ; CODE XREF: OS3:00069BBAj move.l d3,(dword_FFFFAE84).w bra.s loc_69BCE ; --------------------------------------------------------------------------- loc_69BC8: ; CODE XREF: OS3:00069B56j ; OS3:00069B62j ... bset #2,(byte_FFFFAE7A).w loc_69BCE: ; CODE XREF: OS3:00069BC6j btst #2,(byte_FFFFAE7A).w beq.w loc_6A15C clr.w (word_FFFFAE8A).w clr.l (dword_FFFFAE84).w move.b #1,(byte_FFFFAE8C).w bra.w loc_6A15C ; --------------------------------------------------------------------------- loc_69BEA: ; DATA XREF: OS4:0008A744o move.b (4294946441).w,d3 cmp.b (DG_FUEL_TRIM_KE_FTRM_SHORT_TERM_SAMPLE_COUNT).l,d3 ; Determines how many samples will be collected and used in the short term fuel trim average calculations. ; Unitless bcs.s loc_69C3A bset #6,(byte_FFFFAE7A).w moveq #1,d0 loc_69BFE: ; CODE XREF: OS3:00069C2Ej clr.l d5 move.b d0,d5 clr.w d4 move.b (byte_FFFFAE89).w,d4 clr.l d1 move.b d0,d1 clr.l d3 move.w dword_FFFFAE92+2(d1.w*2),d3 divu.w d4,d3 bvs.s loc_69C1E cmpi.w #$FF,d3 bls.s loc_69C22 loc_69C1E: ; CODE XREF: OS3:00069C16j move.b #$FF,d3 loc_69C22: ; CODE XREF: OS3:00069C1Cj move.b d3,-$517F(d5.w) addq.b #1,d0 cmpi.b #2,d0 bls.s loc_69BFE clr.l (dword_FFFFAE96).w clr.b (byte_FFFFAE89).w bra.s loc_69C84 ; --------------------------------------------------------------------------- loc_69C3A: ; CODE XREF: OS3:00069BF4j addq.b #1,d3 move.b d3,(byte_FFFFAE89).w moveq #1,d0 loc_69C42: ; CODE XREF: OS3:00069C82j clr.l d4 move.b d0,d4 movea.w d4,a2 clr.l d4 move.b d0,d4 move.l d0,d3 subq.b #1,d3 andi.w #$FF,d3 move.w word_FFFFA89E(d3.w*2),d3 lsr.w #4,d3 cmpi.w #$FF,d3 bls.s loc_69C66 move.b #$FF,d3 loc_69C66: ; CODE XREF: OS3:00069C60j andi.w #$FF,d3 add.w dword_FFFFAE92+2(d4.w*2),d3 bcc.s loc_69C76 move.w #$FFFF,d3 loc_69C76: ; CODE XREF: OS3:00069C70j move.w d3,dword_FFFFAE92+2(a2.w*2) addq.b #1,d0 cmpi.b #2,d0 bls.s loc_69C42 loc_69C84: ; CODE XREF: OS3:00069C38j btst #6,(byte_FFFFAE7A).w beq.w loc_6A15C move.b #2,(byte_FFFFAE8C).w bra.w loc_6A15C ; --------------------------------------------------------------------------- loc_69C98: ; DATA XREF: OS4:0008A748o moveq #1,d0 loc_69C9A: ; CODE XREF: OS3:00069E1Aj clr.l d6 move.b d0,d6 clr.w unk_FFFFAE90(d6.w*2) move.b (DI_FUEL_TRIM_KE_FTRM_NUMBER_OF_OFF_IDLE_CELLS).l,d7 ; Number of 'Off Idle' cells used in this diagnostic. ; Cells moveq #1,d1 cmpi.b #1,d7 bra.w loc_69D60 ; --------------------------------------------------------------------------- loc_69CB4: ; CODE XREF: OS3:loc_69D60j movea.w d6,a3 clr.l d5 move.b d0,d5 movea.w d5,a2 move.l d0,d4 subq.b #1,d4 clr.l d5 move.b d1,d5 move.b byte_1764D(d5.w),d2 add.b d2,d2 add.b d4,d2 andi.w #$FF,d2 move.w unk_FFFF98E6(d2.w*2),d2 lsr.w #4,d2 cmpi.w #$FF,d2 bls.s loc_69CE6 move.b #$FF,d2 loc_69CE6: ; CODE XREF: OS3:00069CE0j clr.l d5 move.b d1,d5 cmpi.b #$14,byte_1764D(d5.w) bcc.s loc_69D2E move.w #$800,d4 move.l d0,d3 subq.b #1,d3 andi.w #$FF,d3 move.w word_FFFF9944(d3.w*2),d3 cmpi.w #$800,d3 bls.s loc_69D10 move.l d4,d3 loc_69D10: ; CODE XREF: OS3:00069D0Cj sub.w d3,d4 mulu.w (DI_FUEL_TRIM_KE_FTRM_ENABLE_PLM_MODIFIER).l,d4 ; Used as a modifier to the PLM multiplier for FTRM diagnostics. ; 0_to_1 lsr.l #8,d4 lsr.l #3,d4 move.w #$800,d5 sub.w d4,d5 move.w d5,d4 andi.w #$FF,d2 mulu.w d4,d2 lsr.l #8,d2 lsr.l #3,d2 loc_69D2E: ; CODE XREF: OS3:00069CF4j andi.w #$FF,d2 move.l d0,d4 asl.b #4,d4 add.b d1,d4 andi.w #$FF,d4 clr.w d3 move.b byte_1761B(d4.w),d3 mulu.w d2,d3 lsr.w #7,d3 add.w unk_FFFFAE90(a2.w*2),d3 bcc.s loc_69D56 move.w #$FFFF,d3 loc_69D56: ; CODE XREF: OS3:00069D50j move.w d3,unk_FFFFAE90(a3.w*2) addq.b #1,d1 cmp.b d1,d7 loc_69D60: ; CODE XREF: OS3:00069CB0j bcc.w loc_69CB4 tst.w byte_FFFFAE8C(d6.w*2) bls.s loc_69DC2 clr.l d5 move.b d0,d5 clr.l d4 move.b d0,d4 move.b -$5FA5(d4.w),d4 andi.w #$FF,d4 clr.l d1 move.b d0,d1 clr.w d3 move.b byte_17629(d1.w),d3 mulu.w d4,d3 lsr.w #7,d3 add.w unk_FFFFAE90(d5.w*2),d3 bcc.s loc_69D9C move.w #$FFFF,d3 loc_69D9C: ; CODE XREF: OS3:00069D96j clr.l d4 move.b d0,d4 andi.l #$FFFF,d3 asl.l #7,d3 divu.w byte_FFFFAE8C(d4.w*2),d3 bvs.s loc_69DB6 cmpi.w #$FF,d3 bls.s loc_69DBA loc_69DB6: ; CODE XREF: OS3:00069DAEj move.b #$FF,d3 loc_69DBA: ; CODE XREF: OS3:00069DB4j move.b d3,-$5183(d6.w) bra.s loc_69DCA ; --------------------------------------------------------------------------- loc_69DC2: ; CODE XREF: OS3:00069D6Aj move.b #$80,-$5183(d6.w) loc_69DCA: ; CODE XREF: OS3:00069DC0j move.w (word_FFFFA066).w,d3 lsr.w #5,d3 cmpi.w #$FF,d3 bls.s loc_69DDA move.b #$FF,d3 loc_69DDA: ; CODE XREF: OS3:00069DD4j cmp.b -$5183(d6.w),d3 bcs.s loc_69E14 move.b (byte_FFFFA061).w,d3 cmp.b (DG_FUEL_TRIM_KE_FTRM_NORMAL_PURGE_PRESENT_LIM).l,d3 ; Limits the number of purge tests per trip by limiting the number of tests that have indicated normal amounts of purge. ; Unitless bcc.s loc_69E14 move.b (byte_FFFFAE88).w,d3 cmp.b (DG_FUEL_TRIM_KE_FTRM_PURGE_TEST_REQUEST_LIM).l,d3 ; Limits the number of purge tests per trip by limiting the number of purge test requests. ; Unitless bcc.s loc_69E0E move.b (byte_FFFFA060).w,d3 cmp.b (DG_FUEL_TRIM_KE_FTRM_EXCESS_PURGE_PRESENT_LIM).l,d3 ; Limits the number of purge tests per trip by limiting the number of tests that have indicated an excess amount of purge. ; Unitless bcc.s loc_69E0E bset #3,(byte_FFFFAE7A).w bra.s loc_69E14 ; --------------------------------------------------------------------------- loc_69E0E: ; CODE XREF: OS3:00069DF8j ; OS3:00069E04j bset #5,(byte_FFFFAE7A).w loc_69E14: ; CODE XREF: OS3:00069DE0j ; OS3:00069DECj ... addq.b #1,d0 cmpi.b #2,d0 bls.w loc_69C9A btst #3,(byte_FFFFAE7A).w beq.s loc_69E38 move.b (byte_FFFFAE88).w,d3 addq.b #1,d3 bcc.s loc_69E32 move.b #$FF,d3 loc_69E32: ; CODE XREF: OS3:00069E2Cj move.b d3,(byte_FFFFAE88).w bra.s loc_69E3E ; --------------------------------------------------------------------------- loc_69E38: ; CODE XREF: OS3:00069E24j bset #7,(byte_FFFFAE7A).w loc_69E3E: ; CODE XREF: OS3:00069E36j btst #3,(byte_FFFFAE7A).w beq.s loc_69E50 move.b #3,(byte_FFFFAE8C).w bra.w loc_6A15C ; --------------------------------------------------------------------------- loc_69E50: ; CODE XREF: OS3:00069E44j btst #7,(byte_FFFFAE7A).w beq.w loc_6A15C move.b #4,(byte_FFFFAE8C).w bra.w loc_6A15C ; --------------------------------------------------------------------------- loc_69E64: ; DATA XREF: OS4:0008A74Co btst #7,(byte_FFFFA069).w beq.w loc_6A15C move.b #4,(byte_FFFFAE8C).w bclr #3,(byte_FFFFAE7A).w bra.w loc_6A15C ; --------------------------------------------------------------------------- loc_69E7E: ; DATA XREF: OS4:0008A750o moveq #1,d2 loc_69E80: ; CODE XREF: OS3:0006A14Ej clr.l d1 move.b d2,d1 tst.b -$5FA3(d1.w) beq.w loc_6A13C move.b -$5183(d1.w),d4 move.w (word_FFFFA064).w,d3 lsr.w #5,d3 cmpi.w #$FF,d3 bls.s loc_69EA4 move.b #$FF,d3 loc_69EA4: ; CODE XREF: OS3:00069E9Ej cmp.b d3,d4 bcs.w loc_69FC6 move.b -$517F(d1.w),d3 cmp.b (DG_FUEL_TRIM_KE_FTRM_SHORT_TERM_TRIM_LEAN).l,d3 ; Determines at what point the short term fuel trim average is considered to be lean. ; Unitless bcs.w loc_69FC6 btst #4,(byte_FFFFA069).w beq.w loc_69FC6 move.b -$5185(d1.w),d3 addq.b #1,d3 move.b d3,-$5185(d1.w) cmp.b (DG_FUEL_TRIM_KE_FTRM_LEAN_TEST_FAIL_LIMIT).l,d3 ; Determines how long the system can be lean before a lean failure is reported to the Diagnostic Executive. ; Unitless bcs.w loc_6A148 clr.b -$5185(d1.w) clr.b -$5181(d1.w) cmpi.b #1,d2 bne.s loc_69EFA moveq #$2D,d0 ; '-' jsr sub_5F110 moveq #$2E,d0 ; '.' bra.s loc_69F04 ; --------------------------------------------------------------------------- loc_69EFA: ; CODE XREF: OS3:00069EECj moveq #$30,d0 ; '0' jsr sub_5F110 moveq #$31,d0 ; '1' loc_69F04: ; CODE XREF: OS3:00069EF8j jsr sub_5F0BE move.l d1,d6 mulu.w #$12,d6 move.b -$5FA5(d1.w),d3 move.b d3,-$73F8(d6.l) move.b (DI_FUEL_TRIM_KE_FTRM_NUMBER_OF_OFF_IDLE_CELLS).l,d7 ; Number of 'Off Idle' cells used in this diagnostic. ; Cells addq.b #1,d7 moveq #2,d0 move.l d0,d4 cmp.b d7,d4 bhi.w loc_6A148 loc_69F2E: ; CODE XREF: OS3:00069FBEj move.l d6,d4 add.b d0,d4 andi.w #$FF,d4 movea.w d4,a2 move.l d0,d3 subq.b #1,d3 move.l d2,d5 subq.b #1,d5 clr.l d4 move.b d3,d4 move.b byte_1764D(d4.w),d1 add.b d1,d1 add.b d5,d1 andi.w #$FF,d1 move.w unk_FFFF98E6(d1.w*2),d1 lsr.w #4,d1 cmpi.w #$FF,d1 bls.s loc_69F66 move.b #$FF,d1 loc_69F66: ; CODE XREF: OS3:00069F60j andi.w #$FF,d3 cmpi.b #$14,byte_1764D(d3.w) bcc.s loc_69FAE move.w #$800,d3 move.l d2,d4 subq.b #1,d4 andi.w #$FF,d4 move.w word_FFFF9944(d4.w*2),d4 cmpi.w #$800,d4 bls.s loc_69F90 move.l d3,d4 loc_69F90: ; CODE XREF: OS3:00069F8Cj sub.w d4,d3 mulu.w (DI_FUEL_TRIM_KE_FTRM_ENABLE_PLM_MODIFIER).l,d3 ; Used as a modifier to the PLM multiplier for FTRM diagnostics. ; 0_to_1 lsr.l #8,d3 lsr.l #3,d3 move.w #$800,d4 sub.w d3,d4 move.w d4,d3 andi.w #$FF,d1 mulu.w d3,d1 lsr.l #8,d1 lsr.l #3,d1 loc_69FAE: ; CODE XREF: OS3:00069F74j move.l d1,d3 move.b d3,-$73F9(a2.w) addq.b #1,d0 bcs.w loc_6A148 cmp.b d0,d7 bcc.w loc_69F2E bra.w loc_6A148 ; --------------------------------------------------------------------------- loc_69FC6: ; CODE XREF: OS3:00069EA6j ; OS3:00069EB6j ... move.w (word_FFFFA066).w,d3 lsr.w #5,d3 cmpi.w #$FF,d3 bls.s loc_69FD6 move.b #$FF,d3 loc_69FD6: ; CODE XREF: OS3:00069FD0j cmp.b d3,d4 bhi.w loc_6A0F4 move.b -$517F(d1.w),d3 cmp.b (DG_FUEL_TRIM_KE_FTRM_SHORT_TERM_TRIM_RICH).l,d3 ; Determines at what point the short term fuel trim average is considered to be rich. ; Unitless bhi.w loc_6A0F4 btst #0,(byte_FFFFA068).w bne.w loc_6A0F4 move.b -$5181(d1.w),d3 addq.b #1,d3 move.b d3,-$5181(d1.w) cmp.b (DG_FUEL_TRIM_KE_FTRM_RICH_TEST_FAIL_LIMIT).l,d3 ; Determines how long the system can be rich before a rich failure is reported to the Diagnostic Executive. ; Unitless bcs.w loc_6A148 clr.b -$5185(d1.w) clr.b -$5181(d1.w) cmpi.b #1,d2 bne.s loc_6A02C moveq #$2D,d0 ; '-' jsr sub_5F0BE moveq #$2E,d0 ; '.' bra.s loc_6A036 ; --------------------------------------------------------------------------- loc_6A02C: ; CODE XREF: OS3:0006A01Ej moveq #$30,d0 ; '0' jsr sub_5F0BE moveq #$31,d0 ; '1' loc_6A036: ; CODE XREF: OS3:0006A02Aj jsr sub_5F110 move.l d1,d6 mulu.w #$12,d6 move.b -$5FA5(d1.w),d3 move.b d3,-$73F8(d6.l) move.b (DI_FUEL_TRIM_KE_FTRM_NUMBER_OF_OFF_IDLE_CELLS).l,d7 ; Number of 'Off Idle' cells used in this diagnostic. ; Cells addq.b #1,d7 moveq #2,d0 move.l d0,d4 cmp.b d7,d4 bhi.w loc_6A148 loc_6A060: ; CODE XREF: OS3:0006A0EEj move.l d6,d4 add.b d0,d4 andi.w #$FF,d4 movea.w d4,a2 move.l d0,d3 subq.b #1,d3 move.l d2,d5 subq.b #1,d5 clr.l d4 move.b d3,d4 move.b byte_1764D(d4.w),d1 add.b d1,d1 add.b d5,d1 andi.w #$FF,d1 move.w unk_FFFF98E6(d1.w*2),d1 lsr.w #4,d1 cmpi.w #$FF,d1 bls.s loc_6A098 move.b #$FF,d1 loc_6A098: ; CODE XREF: OS3:0006A092j andi.w #$FF,d3 cmpi.b #$14,byte_1764D(d3.w) bcc.s loc_6A0E0 move.w #$800,d3 move.l d2,d4 subq.b #1,d4 andi.w #$FF,d4 move.w word_FFFF9944(d4.w*2),d4 cmpi.w #$800,d4 bls.s loc_6A0C2 move.l d3,d4 loc_6A0C2: ; CODE XREF: OS3:0006A0BEj sub.w d4,d3 mulu.w (DI_FUEL_TRIM_KE_FTRM_ENABLE_PLM_MODIFIER).l,d3 ; Used as a modifier to the PLM multiplier for FTRM diagnostics. ; 0_to_1 lsr.l #8,d3 lsr.l #3,d3 move.w #$800,d4 sub.w d3,d4 move.w d4,d3 andi.w #$FF,d1 mulu.w d3,d1 lsr.l #8,d1 lsr.l #3,d1 loc_6A0E0: ; CODE XREF: OS3:0006A0A6j move.l d1,d3 move.b d3,-$73F9(a2.w) addq.b #1,d0 bcs.s loc_6A148 cmp.b d0,d7 bcc.w loc_6A060 bra.s loc_6A148 ; --------------------------------------------------------------------------- loc_6A0F4: ; CODE XREF: OS3:00069FD8j ; OS3:00069FE8j ... clr.b -$5185(d1.w) clr.b -$5181(d1.w) btst #7,(byte_FFFFA068).w beq.s loc_6A148 btst #0,(byte_FFFFA068).w bne.s loc_6A148 btst #5,(byte_FFFFAE7A).w bne.s loc_6A148 cmpi.b #1,d2 bne.s loc_6A12A moveq #$2D,d0 ; '-' jsr sub_5F0BE moveq #$2E,d0 ; '.' bra.s loc_6A134 ; --------------------------------------------------------------------------- loc_6A12A: ; CODE XREF: OS3:0006A11Cj moveq #$30,d0 ; '0' jsr sub_5F0BE moveq #$31,d0 ; '1' loc_6A134: ; CODE XREF: OS3:0006A128j jsr sub_5F0BE bra.s loc_6A148 ; --------------------------------------------------------------------------- loc_6A13C: ; CODE XREF: OS3:00069E8Aj clr.b -$5185(d1.w) clr.b -$5181(d1.w) loc_6A148: ; CODE XREF: OS3:00069ED8j ; OS3:00069F2Aj ... addq.b #1,d2 cmpi.b #2,d2 bls.w loc_69E80 bset #4,(byte_FFFFAE7A).w clr.b (byte_FFFFAE8C).w loc_6A15C: ; CODE XREF: OS3:00069BD4j ; OS3:00069BE6j ... movem.l (sp)+,d0-d2/d6-d7 rts ; =============== S U B R O U T I N E ======================================= sub_6A162: ; CODE XREF: DoLoopC+232p bset #5,(byte_FFFFA068).w rts ; End of function sub_6A162 ; =============== S U B R O U T I N E ======================================= sub_6A16A: ; CODE XREF: sub_75370+1B0p bset #6,(byte_FFFFA068).w rts ; End of function sub_6A16A ; =============== S U B R O U T I N E ======================================= sub_6A172: ; CODE XREF: OS1:00029288p cmpi.b #6,d0 beq.s loc_6A1A4 cmpi.b #3,d0 bhi.s locret_6A1F4 beq.s loc_6A1A4 cmpi.b #1,d0 bls.s locret_6A1F4 jsr sub_6A1F6 jsr sub_6A21C jsr sub_6A2E8 clr.w (word_FFFFA06C).w move.w #$FFFF,(word_FFFFA06E).w bra.s locret_6A1F4 ; --------------------------------------------------------------------------- loc_6A1A4: ; CODE XREF: sub_6A172+4j sub_6A172+Cj jsr sub_6A1F6 jsr sub_6A21C jsr sub_6A2E8 lea (unk_FFFFA0AC).w,a2 moveq #7,d3 loc_6A1BC: ; CODE XREF: sub_6A172+4Cj clr.w (a2)+ dbf d3,loc_6A1BC clr.b (byte_FFFFA06A).w clr.w (word_FFFFA06C).w move.w #$FFFF,(word_FFFFA06E).w bclr #6,(byte_FFFFA069).w lea (unk_FFFFA08C).w,a2 moveq #$F,d3 loc_6A1DC: ; CODE XREF: sub_6A172+6Cj clr.w (a2)+ dbf d3,loc_6A1DC bclr #7,(byte_FFFFA068).w bclr #6,(byte_FFFFA068).w bclr #5,(byte_FFFFA068).w locret_6A1F4: ; CODE XREF: sub_6A172+Aj ; sub_6A172+12j ... rts ; End of function sub_6A172 ; =============== S U B R O U T I N E ======================================= sub_6A1F6: ; CODE XREF: sub_6A172+14p ; sub_6A172:loc_6A1A4p ... clr.b (byte_FFFFA05E).w clr.b (byte_FFFFA05F).w bclr #5,(byte_FFFFA069).w bclr #3,(byte_FFFFA068).w bclr #4,(byte_FFFFA068).w bset #4,(byte_FFFFA069).w clr.w (word_FFFFA084).w rts ; End of function sub_6A1F6 ; =============== S U B R O U T I N E ======================================= sub_6A21C: ; CODE XREF: sub_6A172+1Ap ; sub_6A172+38p ... clr.w (word_FFFFA062).w clr.b (byte_FFFFA082).w clr.w (word_FFFFA088).w bclr #0,(byte_FFFFA068).w clr.b (byte_FFFFA060).w clr.b (byte_FFFFA061).w bclr #6,(byte_FFFFA069).w bclr #7,(byte_FFFFA069).w jsr sub_6AA44 clr.w (word_FFFFA074).w clr.w (word_FFFFA072).w rts ; End of function sub_6A21C ; =============== S U B R O U T I N E ======================================= sub_6A252: ; CODE XREF: DoLoopF+B6p jsr sub_6A296 jsr sub_6A2AE jsr sub_6A2E8 jsr sub_6A3EC jsr sub_6A442 jsr sub_6A556 jsr sub_6A418 jsr sub_6A576 jsr sub_6A5D2 jsr sub_6A694 jsr sub_6AA60 rts ; End of function sub_6A252 ; =============== S U B R O U T I N E ======================================= sub_6A296: ; CODE XREF: sub_6A252p move sr,-(sp) ori #$700,sr btst #6,(byte_FFFFA068).w beq.s loc_6A2AA bclr #6,(byte_FFFFA068).w loc_6A2AA: ; CODE XREF: sub_6A296+Cj move (sp)+,sr rts ; End of function sub_6A296 ; =============== S U B R O U T I N E ======================================= sub_6A2AE: ; CODE XREF: sub_6A252+6p move sr,-(sp) ori #$700,sr btst #5,(byte_FFFFA068).w beq.s loc_6A2E4 jsr sub_6A1F6 jsr sub_6A21C jsr sub_6A2E8 lea (unk_FFFFA0AC).w,a2 moveq #7,d3 loc_6A2D4: ; CODE XREF: sub_6A2AE+28j clr.w (a2)+ dbf d3,loc_6A2D4 clr.b (byte_FFFFA06A).w bclr #5,(byte_FFFFA068).w loc_6A2E4: ; CODE XREF: sub_6A2AE+Cj move (sp)+,sr rts ; End of function sub_6A2AE ; =============== S U B R O U T I N E ======================================= sub_6A2E8: ; CODE XREF: sub_6A172+20p ; sub_6A172+3Ep ... var_5FB9 = -$5FB9 movem.l d0-d2/d6-d7,-(sp) move.w (word_FFFFAEF8).w,d3 tblu.w (DI_FUEL_TRIM_KV_FTRM_LONG_TERM_TRIM_LEAN).l,d3 ; Threshold where the long term fuel trim average is failing due to lean fueling at a given level of ethanol in the fuel. ; NONE 0-2 move.w d3,(word_FFFFA064).w move.w (word_FFFFAEF8).w,d3 tblu.w (DI_FUEL_TRIM_KV_FTRM_LONG_TERM_TRIM_RICH).l,d3 ; Threshold where the long term fuel trim average is failing due to rich fueling at a given level of ethanol in the fuel. ; NONE 0-2 move.w d3,(word_FFFFA066).w move.b (DI_FUEL_TRIM_KE_FTRM_NUMBER_OF_IDLE_CELLS).l,d7 ; Number of Idle Cells the system is calibrated to use FOR this diagnostic. ; Cells moveq #1,d6 cmpi.b #1,d7 bra.w loc_6A3E2 ; --------------------------------------------------------------------------- loc_6A31C: ; CODE XREF: sub_6A2E8:loc_6A3E2j clr.l d1 move.b d6,d1 move.b (byte_FFFF98DA).w,d3 cmp.b byte_17661(d1.w),d3 bne.w loc_6A3DE moveq #1,d3 loc_6A332: ; CODE XREF: sub_6A2E8+F2j move.l d3,d0 subq.b #1,d0 move.b (byte_FFFF98DA).w,d4 add.b d4,d4 add.b d0,d4 andi.w #$FF,d4 move.w unk_FFFF98E6(d4.w*2),d0 lsr.w #4,d0 cmpi.w #$FF,d0 bls.s loc_6A354 move.b #$FF,d0 loc_6A354: ; CODE XREF: sub_6A2E8+66j clr.l d2 move.b d3,d2 move.b d0,$14+var_5FB9(d2.w) cmpi.b #$14,(byte_FFFF98DA).w bcc.s loc_6A3A4 move.w #$800,d4 move.l d3,d5 subq.b #1,d5 andi.w #$FF,d5 move.w word_FFFF9944(d5.w*2),d5 cmpi.w #$800,d5 bls.s loc_6A380 move.l d4,d5 loc_6A380: ; CODE XREF: sub_6A2E8+94j sub.w d5,d4 mulu.w (DI_FUEL_TRIM_KE_FTRM_ENABLE_PLM_MODIFIER).l,d4 ; Used as a modifier to the PLM multiplier for FTRM diagnostics. ; 0_to_1 lsr.l #8,d4 lsr.l #3,d4 move.w #$800,d5 sub.w d4,d5 move.w d5,d4 andi.w #$FF,d0 mulu.w d4,d0 lsr.l #8,d0 lsr.l #3,d0 move.b d0,$14+var_5FB9(d2.w) loc_6A3A4: ; CODE XREF: sub_6A2E8+7Cj tst.b (byte_FFFF98E0).w beq.s loc_6A3BE lea unk_FFFFA0AA(d1.w*2),a2 movea.l a2,a3 move.w (a2),d4 addq.w #1,d4 bcc.s loc_6A3BC move.w #$FFFF,d4 loc_6A3BC: ; CODE XREF: sub_6A2E8+CEj move.w d4,(a3) loc_6A3BE: ; CODE XREF: sub_6A2E8+C0j move.w unk_FFFFA0AA(d1.w*2),d4 cmp.w word_17728(d1.w*2),d4 scc d4 neg.b d4 move.b d4,(byte_FFFFA06A).w addq.b #1,d3 cmpi.b #2,d3 bls.w loc_6A332 loc_6A3DE: ; CODE XREF: sub_6A2E8+44j addq.b #1,d6 cmp.b d6,d7 loc_6A3E2: ; CODE XREF: sub_6A2E8+30j bcc.w loc_6A31C movem.l (sp)+,d0-d2/d6-d7 rts ; End of function sub_6A2E8 ; =============== S U B R O U T I N E ======================================= sub_6A3EC: ; CODE XREF: sub_6A252+12p move.l (DI_FUEL_TRIM_KE_FTRM_DIAG_INHIBITING_FAULTS).l,d3 ; If TRUE is specified for the indexed fault group, then any active fault within that group will inhibit FTRM diagnostic. ; Boolean and.l (byte_FFFF8252).w,d3 bne.s loc_6A410 btst #1,(byte_FFFF8926).w bne.s loc_6A410 btst #1,(byte_FFFF8928).w bne.s loc_6A410 bset #5,(byte_FFFFA069).w bra.s locret_6A416 ; --------------------------------------------------------------------------- loc_6A410: ; CODE XREF: sub_6A3EC+Aj ; sub_6A3EC+12j ... bclr #5,(byte_FFFFA069).w locret_6A416: ; CODE XREF: sub_6A3EC+22j rts ; End of function sub_6A3EC ; =============== S U B R O U T I N E ======================================= sub_6A418: ; CODE XREF: sub_6A252+24p btst #5,(byte_FFFFA069).w beq.s locret_6A440 clr.b d3 btst #0,(byte_FFFF8252).w bne.s loc_6A42C addq.b #1,d3 loc_6A42C: ; CODE XREF: sub_6A418+10j move.b d3,(byte_FFFFA05E).w clr.b d3 btst #0,(byte_FFFF8252).w bne.s loc_6A43C addq.b #1,d3 loc_6A43C: ; CODE XREF: sub_6A418+20j move.b d3,(byte_FFFFA05F).w locret_6A440: ; CODE XREF: sub_6A418+6j rts ; End of function sub_6A418 ; =============== S U B R O U T I N E ======================================= sub_6A442: ; CODE XREF: sub_6A252+18p move.b (byte_FFFFB2EF).w,d4 cmpi.b #1,d4 bhi.s loc_6A452 beq.s loc_6A452 clr.b d3 bra.s loc_6A454 ; --------------------------------------------------------------------------- loc_6A452: ; CODE XREF: sub_6A442+8j sub_6A442+Aj moveq #1,d3 loc_6A454: ; CODE XREF: sub_6A442+Ej tst.b d3 beq.w loc_6A54E tst.b (byte_FFFFA89A).w bne.w loc_6A54E tst.b (byte_FFFFA89B).w bne.w loc_6A54E tst.b (byte_FFFFA45A).w bne.w loc_6A54E btst #7,(byte_FFFFA7E0).w bne.w loc_6A54E tst.b (byte_FFFF98E0).w bne.s loc_6A48C btst #2,(byte_FFFFA068).w beq.w loc_6A54E loc_6A48C: ; CODE XREF: sub_6A442+3Ej move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_COOLANT_TEMP_LOW).l,d3 ; Coolant temperature must be > this to enable diagnostic. ; Degrees_C ble.w loc_6A54E move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_COOLANT_TEMP_HIGH).l,d3 ; Coolant temperature must be < this to enable diagnostic. ; Degrees_C bge.w loc_6A54E move.w (word_FFFFB3E8).w,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_MAT_LOW).l,d3 ; Manifold air temperature must be > this to enable diagnostic. ; Degrees_C ble.w loc_6A54E move.w (word_FFFFB3E8).w,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_MAT_HIGH).l,d3 ; Manifold air temperature must be < this to enable diagnostic. ; Degrees_C bge.w loc_6A54E move.w (word_FFFFB294).w,d3 asl.w #2,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_MAP_LOW).l,d3 ; Manifold absolute pressure must be > this to enable diagnostic. ; kPa bls.s loc_6A54E move.w (word_FFFFB294).w,d3 asl.w #2,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_MAP_HIGH).l,d3 ; Manifold absolute pressure must be < this to enable diagnostic. ; kPa bcc.s loc_6A54E move.w (word_FFFFA0DC).w,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_ENGINE_AIR_FLOW_LOW).l,d3 ; Engine air flow must be > this to enable diagnostic. ; gm/s bls.s loc_6A54E move.w (word_FFFFA0DC).w,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_ENGINE_AIR_FLOW_HIGH).l,d3 ; Engine air flow must be < this to enable diagnostic. ; gm/s bcc.s loc_6A54E move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_RPM_LOW).l,d3 ; Engine speed must be > this to enable diagnostic. ; RPM bls.s loc_6A54E move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_RPM_HIGH).l,d3 ; Engine speed must be < this to enable diagnostic. ; RPM bcc.s loc_6A54E move.w (word_FFFFAEBC).w,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_VEHICLE_SPEED_HIGH).l,d3 ; Vehicle speed must be < this to enable diagnostic. ; MPH bcc.s loc_6A54E move.w (word_FFFFA62A).w,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_PURGE_OPEN_MIN).l,d3 ; Minimum purge duty cycle value to begin the excess purge test and where purge valve is considered open. ; Percent bls.s loc_6A538 clr.b d3 btst #5,(byte_FFFF9E90).w bne.s loc_6A534 addq.b #1,d3 loc_6A534: ; CODE XREF: sub_6A442+EEj tst.b d3 beq.s loc_6A54E loc_6A538: ; CODE XREF: sub_6A442+E4j move.w (word_FFFF82D2).w,d3 asl.w #2,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_BAROMETER_LOW).l,d3 ; Barometric pressure must be > this to enable diagnostic. ; kPa bls.s loc_6A54E bset #3,(byte_FFFFA068).w bra.s locret_6A554 ; --------------------------------------------------------------------------- loc_6A54E: ; CODE XREF: sub_6A442+14j ; sub_6A442+1Cj ... bclr #3,(byte_FFFFA068).w locret_6A554: ; CODE XREF: sub_6A442+10Aj rts ; End of function sub_6A442 ; =============== S U B R O U T I N E ======================================= sub_6A556: ; CODE XREF: sub_6A252+1Ep btst #5,(byte_FFFFA069).w beq.s loc_6A56E btst #3,(byte_FFFFA068).w beq.s loc_6A56E bset #4,(byte_FFFFA068).w bra.s locret_6A574 ; --------------------------------------------------------------------------- loc_6A56E: ; CODE XREF: sub_6A556+6j sub_6A556+Ej bclr #4,(byte_FFFFA068).w locret_6A574: ; CODE XREF: sub_6A556+16j rts ; End of function sub_6A556 ; =============== S U B R O U T I N E ======================================= sub_6A576: ; CODE XREF: sub_6A252+2Ap move.w (word_FFFF9B50).w,d3 cmpi.w #$1400,d3 bls.s loc_6A584 move.w #$1400,d3 loc_6A584: ; CODE XREF: sub_6A576+8j cmp.w (DI_FUEL_TRIM_KE_FTRM_FUEL_LEVEL_MIN).l,d3 bcc.s loc_6A5C6 btst #3,(byte_FFFF9B2E).w beq.s loc_6A5C6 btst #5,(byte_FFFF8984).w beq.s loc_6A5C6 btst #5,(byte_FFFF8986).w beq.s loc_6A5C6 move.w (word_FFFFA084).w,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_FUEL_LEVEL_LOW_TIME).l,d3 bcs.s loc_6A5B8 bclr #4,(byte_FFFFA069).w bra.s locret_6A5D0 ; --------------------------------------------------------------------------- loc_6A5B8: ; CODE XREF: sub_6A576+38j addq.w #1,d3 bcc.s loc_6A5C0 move.w #$FFFF,d3 loc_6A5C0: ; CODE XREF: sub_6A576+44j move.w d3,(word_FFFFA084).w bra.s locret_6A5D0 ; --------------------------------------------------------------------------- loc_6A5C6: ; CODE XREF: sub_6A576+14j ; sub_6A576+1Cj ... bset #4,(byte_FFFFA069).w clr.w (word_FFFFA084).w locret_6A5D0: ; CODE XREF: sub_6A576+40j ; sub_6A576+4Ej rts ; End of function sub_6A576 ; =============== S U B R O U T I N E ======================================= sub_6A5D2: ; CODE XREF: sub_6A252+30p movem.l d1-d2,-(sp) clr.w d2 bset #7,(byte_FFFFA068).w move.b (DI_FUEL_TRIM_KE_FTRM_NUMBER_OF_OFF_IDLE_CELLS).l,d1 ; Number of 'Off Idle' cells used in this diagnostic. ; Cells moveq #1,d5 cmpi.b #1,d1 bra.s loc_6A644 ; --------------------------------------------------------------------------- loc_6A5EC: ; CODE XREF: sub_6A5D2:loc_6A644j clr.l d3 move.b d5,d3 move.b (byte_FFFF98DA).w,d4 cmp.b byte_1764D(d3.w),d4 bne.s loc_6A62A tst.b (byte_FFFF98E0).w beq.s loc_6A618 lea word_FFFFA08A(d3.w*2),a2 movea.l a2,a3 move.w (a2),d4 addq.w #1,d4 bcc.s loc_6A616 move.w #$FFFF,d4 loc_6A616: ; CODE XREF: sub_6A5D2+3Ej move.w d4,(a3) loc_6A618: ; CODE XREF: sub_6A5D2+30j move.w word_FFFFA08A(d3.w*2),d4 cmp.w DI_FUEL_TRIM_KE_FTRM_ENG_AIRFLOW_HIGH(d3.w*2),d4 ; Engine Airflow < this to run the Excess Purge Test. ; gm/S bcs.s loc_6A62A moveq #1,d2 loc_6A62A: ; CODE XREF: sub_6A5D2+2Aj ; sub_6A5D2+54j move.w word_FFFFA08A(d3.w*2),d4 cmp.w word_176B4(d3.w*2),d4 bcc.s loc_6A640 bclr #7,(byte_FFFFA068).w loc_6A640: ; CODE XREF: sub_6A5D2+66j addq.b #1,d5 cmp.b d5,d1 loc_6A644: ; CODE XREF: sub_6A5D2+18j bcc.s loc_6A5EC tst.b d2 beq.s loc_6A67C move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_PURGE_RPM_MIN).l,d3 ; Engine Speed must be > this to run the Excess Purge Test. ; RPM bls.s loc_6A67C move.w (word_FFFFA0DC).w,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_ENG_AIRFLOW_LOW).l,d3 ; Engine Airflow must be > this to run the Excess Purge Test. ; gm/S bls.s loc_6A67C move.w (word_FFFFA0DC).w,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_ENG_AIRFLOW_HIGH).l,d3 ; Engine Airflow < this to run the Excess Purge Test. ; gm/S bcc.s loc_6A67C tst.b (byte_FFFFAB24).w bne.s loc_6A67C bset #6,(byte_FFFFA069).w bra.s loc_6A682 ; --------------------------------------------------------------------------- loc_6A67C: ; CODE XREF: sub_6A5D2+76j ; sub_6A5D2+82j ... bclr #6,(byte_FFFFA069).w loc_6A682: ; CODE XREF: sub_6A5D2+A8j tst.b (byte_FFFFA06A).w bne.s loc_6A68E bclr #7,(byte_FFFFA068).w loc_6A68E: ; CODE XREF: sub_6A5D2+B4j movem.l (sp)+,d1-d2 rts ; End of function sub_6A5D2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6A694: ; CODE XREF: sub_6A252+36p var_5FA1 = -$5FA1 var_5FA0 = -$5FA0 var_5F9B = -$5F9B var_5F9A = -$5F9A var_2 = -2 var_1 = -1 link a6,#-2 movem.l d0-d2/d6-d7,-(sp) btst #3,(byte_FFFFAE7A).w beq.w loc_6AA2C btst #6,(byte_FFFFA069).w beq.w loc_6AA22 cmpi.b #3,(byte_FFFFB2EB).w bne.s loc_6A6C0 move.b #1,(byte_FFFFA0C0).w bra.s loc_6A6C4 ; --------------------------------------------------------------------------- loc_6A6C0: ; CODE XREF: sub_6A694+22j clr.b (byte_FFFFA0C0).w loc_6A6C4: ; CODE XREF: sub_6A694+2Aj btst #3,(byte_FFFFA069).w beq.w loc_6A8B8 move.b (byte_FFFFA082).w,d3 cmp.b (byte_FFFF98DA).w,d3 bne.w loc_6A89A tst.b (byte_FFFFA0C0).w beq.w loc_6A89A clr.w d3 move.w (word_FFFFAEF8).w,d6 tblu.w (DI_FUEL_TRIM_KV_FTRM_PURGE_LONG_TERM_DELTA).l,d6 lsr.w #5,d6 cmpi.w #$FF,d6 bls.s loc_6A6FC move.b #$FF,d6 loc_6A6FC: ; CODE XREF: sub_6A694+62j move.b d6,var_2(a6) move.w (word_FFFFAEF8).w,d6 tblu.w (DI_FUEL_TRIM_KV_FTRM_PURGE_SHORT_TERM_DELTA).l,d6 lsr.w #5,d6 cmpi.w #$FF,d6 bls.s loc_6A718 move.b #$FF,d6 loc_6A718: ; CODE XREF: sub_6A694+7Ej move.b d6,var_1(a6) move.l d3,d7 move.w (word_FFFFA62A).w,d3 cmp.w (word_FFFFA0BC).w,d3 bhi.w loc_6AA3C move.w (word_FFFFA086).w,d6 addq.w #1,d6 bcc.s loc_6A736 move.w #$FFFF,d6 loc_6A736: ; CODE XREF: sub_6A694+9Cj move.w d6,(word_FFFFA086).w move.w d6,d5 cmp.w (DI_FUEL_TRIM_KE_FTRM_EXCESS_PURGE_DELTA_DELAY).l,d5 ; The amount of time to delay the delta calculation once the excess purge test timer begins incrementing. ; Seconds bcs.w loc_6AA3C moveq #1,d0 loc_6A748: ; CODE XREF: sub_6A694+1B0j clr.l d2 move.b d0,d2 movea.w d2,a2 clr.w d6 move.b -$5F8D(d2.w),d6 move.l d0,d4 subq.b #1,d4 move.b (byte_FFFF98DA).w,d3 add.b d3,d3 add.b d4,d3 andi.w #$FF,d3 move.w unk_FFFF98E6(d3.w*2),d1 lsr.w #4,d1 cmpi.w #$FF,d1 bls.s loc_6A778 move.b #$FF,d1 loc_6A778: ; CODE XREF: sub_6A694+DEj move.w #$800,d4 move.l d0,d3 subq.b #1,d3 andi.w #$FF,d3 move.w word_FFFF9944(d3.w*2),d3 cmpi.w #$800,d3 bls.s loc_6A792 move.l d4,d3 loc_6A792: ; CODE XREF: sub_6A694+FAj sub.w d3,d4 mulu.w (DI_FUEL_TRIM_KE_FTRM_ENABLE_PLM_MODIFIER).l,d4 ; Used as a modifier to the PLM multiplier for FTRM diagnostics. ; 0_to_1 lsr.l #8,d4 lsr.l #3,d4 move.w #$800,d5 sub.w d4,d5 move.w d5,d4 andi.w #$FF,d1 mulu.w d4,d1 lsr.l #8,d1 lsr.l #3,d1 clr.l d3 move.b d1,d3 sub.w d6,d3 move.w d3,$16+var_5FA0(a2.w*2) clr.l d4 move.b d0,d4 move.w unk_FFFFA076(d4.w*2),d1 blt.s loc_6A7D4 cmpi.w #$FF,d1 bls.s loc_6A7D6 move.b #$FF,d1 bra.s loc_6A7D6 ; --------------------------------------------------------------------------- loc_6A7D4: ; CODE XREF: sub_6A694+132j clr.b d1 loc_6A7D6: ; CODE XREF: sub_6A694+138j ; sub_6A694+13Ej move.b d1,$16+var_5FA1(d2.w) movea.w d2,a2 clr.w d4 move.b -$5F8F(d2.w),d4 move.l d0,d3 subq.b #1,d3 andi.w #$FF,d3 move.w word_FFFFA89E(d3.w*2),d3 lsr.w #4,d3 cmpi.w #$FF,d3 bls.s loc_6A800 move.b #$FF,d3 loc_6A800: ; CODE XREF: sub_6A694+166j andi.w #$FF,d3 sub.w d4,d3 move.w d3,$16+var_5F9A(a2.w*2) clr.l d4 move.b d0,d4 move.w unk_FFFFA07C(d4.w*2),d3 blt.s loc_6A824 cmpi.w #$FF,d3 bls.s loc_6A826 move.b #$FF,d3 bra.s loc_6A826 ; --------------------------------------------------------------------------- loc_6A824: ; CODE XREF: sub_6A694+182j clr.b d3 loc_6A826: ; CODE XREF: sub_6A694+188j ; sub_6A694+18Ej move.b d3,$16+var_5F9B(d2.w) move.b var_2(a6),d4 cmp.b d4,d1 bcc.s loc_6A83C move.b var_1(a6),d1 cmp.b d1,d3 bcs.s loc_6A83E loc_6A83C: ; CODE XREF: sub_6A694+19Ej moveq #1,d7 loc_6A83E: ; CODE XREF: sub_6A694+1A6j addq.b #1,d0 cmpi.b #2,d0 bls.w loc_6A748 tst.b d7 beq.s loc_6A86C bset #7,(byte_FFFFA069).w bset #0,(byte_FFFFA068).w move.b (byte_FFFFA060).w,d3 addq.b #1,d3 bcc.s loc_6A864 move.b #$FF,d3 loc_6A864: ; CODE XREF: sub_6A694+1CAj move.b d3,(byte_FFFFA060).w bra.w loc_6AA3C ; --------------------------------------------------------------------------- loc_6A86C: ; CODE XREF: sub_6A694+1B6j move.w (word_FFFFA086).w,d5 cmp.w (DI_FUEL_TRIM_KE_FTRM_EXCESS_PURGE_TEST_TIME).l,d5 ; Intrusive Excess Purge Test lasts this long. ; Seconds bcs.w loc_6AA3C bset #7,(byte_FFFFA069).w bclr #0,(byte_FFFFA068).w move.b (byte_FFFFA061).w,d3 addq.b #1,d3 bcc.s loc_6A892 move.b #$FF,d3 loc_6A892: ; CODE XREF: sub_6A694+1F8j move.b d3,(byte_FFFFA061).w bra.w loc_6AA3C ; --------------------------------------------------------------------------- loc_6A89A: ; CODE XREF: sub_6A694+42j ; sub_6A694+4Aj bclr #1,(byte_FFFFA068).w bclr #3,(byte_FFFFA069).w clr.w (word_FFFFA086).w loc_6A8AA: ; CODE XREF: sub_6A694+38Aj clr.w (word_FFFFA08A).w loc_6A8AE: ; CODE XREF: sub_6A694+36Aj ; sub_6A694+37Aj ... jsr sub_6AAE4 bra.w loc_6AA3C ; --------------------------------------------------------------------------- loc_6A8B8: ; CODE XREF: sub_6A694+36j move.w (word_FFFFA62A).w,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_PURGE_DUTY_CYCLE_MIN).l,d3 ; Purge Ducty Cycle must be >= this to make Excess Purge Test intrusive. ; Percent bcs.w loc_6AA12 move.w (word_FFFFA08A).w,d3 addq.w #1,d3 bcc.s loc_6A8D2 move.w #$FFFF,d3 loc_6A8D2: ; CODE XREF: sub_6A694+238j move.w d3,(word_FFFFA08A).w cmp.w (DI_FUEL_TRIM_KE_FTRM_PURGE_CNTRL_STABLE_WINDO).l,d3 ; Amount of time to wait for integrals to correct before enabling purge test. ; Seconds bcs.w loc_6AA02 bset #1,(byte_FFFFA068).w move.w (word_FFFFA62A).w,d3 asl.w #2,d3 andi.l #$FFFF,d3 divu.w #5,d3 movea.l #DI_FUEL_TRIM_KV_FTRM_CCP_SHUT_OFF_DUTY_CYCLE,a2 ; Purge Ducty Cycle is set to this to shut of CCP. ; Percent tblu.w (a2),d3 move.w d3,(word_FFFFA062).w move.b (byte_FFFF98DA).w,(byte_FFFFA082).w bset #3,(byte_FFFFA069).w move.b (byte_FFFF98DA).w,d3 add.b d3,d3 andi.w #$FF,d3 move.w unk_FFFF98E6(d3.w*2),d3 lsr.w #4,d3 cmpi.w #$FF,d3 bls.s loc_6A92C move.b #$FF,d3 loc_6A92C: ; CODE XREF: sub_6A694+292j move.w (DI_FUEL_TRIM_KE_FTRM_ENABLE_PLM_MODIFIER).l,d0 ; Used as a modifier to the PLM multiplier for FTRM diagnostics. ; 0_to_1 move.w #$800,d4 move.w (word_FFFF9944).w,d5 cmpi.w #$800,d5 bls.s loc_6A942 move.l d4,d5 loc_6A942: ; CODE XREF: sub_6A694+2AAj sub.w d5,d4 mulu.w d0,d4 lsr.l #8,d4 lsr.l #3,d4 move.w #$800,d1 sub.w d4,d1 move.w d1,d4 andi.w #$FF,d3 mulu.w d4,d3 lsr.l #8,d3 lsr.l #3,d3 move.b d3,(word_FFFFA074).w move.b (byte_FFFF98DA).w,d3 add.b d3,d3 andi.w #$FF,d3 move.w unk_FFFF98E8(d3.w*2),d3 lsr.w #4,d3 cmpi.w #$FF,d3 bls.s loc_6A97C move.b #$FF,d3 loc_6A97C: ; CODE XREF: sub_6A694+2E2j move.w #$800,d4 move.w (word_FFFF9946).w,d5 cmpi.w #$800,d5 bls.s loc_6A98C move.l d4,d5 loc_6A98C: ; CODE XREF: sub_6A694+2F4j sub.w d5,d4 mulu.w d0,d4 lsr.l #8,d4 lsr.l #3,d4 move.w #$800,d0 sub.w d4,d0 move.w d0,d4 andi.w #$FF,d3 mulu.w d4,d3 lsr.l #8,d3 lsr.l #3,d3 move.b d3,(word_FFFFA074+1).w move.w (word_FFFFA89E).w,d3 lsr.w #4,d3 cmpi.w #$FF,d3 bls.s loc_6A9BA move.b #$FF,d3 loc_6A9BA: ; CODE XREF: sub_6A694+320j move.b d3,(word_FFFFA072).w move.w (word_FFFFA8A0).w,d3 lsr.w #4,d3 cmpi.w #$FF,d3 bls.s loc_6A9CE move.b #$FF,d3 loc_6A9CE: ; CODE XREF: sub_6A694+334j move.b d3,(word_FFFFA072+1).w move.w (DI_FUEL_TRIM_KE_FTRM_FUEL_TRIM_UPDATE_RATE).l,(word_FFFFA070).w ; Integral delay value to be used for the short term learn when FTRM requests override. ; Seconds bset #2,(byte_FFFFA068).w move.w (word_FFFFA62A).w,(word_FFFFA0BE).w move.w (word_FFFFA062).w,d3 add.w (DI_FUEL_TRIM_KE_FTRM_PURGE_TEST_TMR_OFFSET_DC).l,d3 cmpi.w #$1400,d3 bls.s loc_6A9FA move.w #$1400,d3 loc_6A9FA: ; CODE XREF: sub_6A694+360j move.w d3,(word_FFFFA0BC).w bra.w loc_6A8AE ; --------------------------------------------------------------------------- loc_6AA02: ; CODE XREF: sub_6A694+248j bclr #2,(byte_FFFFA068).w bclr #1,(byte_FFFFA068).w bra.w loc_6A8AE ; --------------------------------------------------------------------------- loc_6AA12: ; CODE XREF: sub_6A694+22Ej bclr #2,(byte_FFFFA068).w bclr #1,(byte_FFFFA068).w bra.w loc_6A8AA ; --------------------------------------------------------------------------- loc_6AA22: ; CODE XREF: sub_6A694+18j jsr sub_6AA44 bra.w loc_6A8AE ; --------------------------------------------------------------------------- loc_6AA2C: ; CODE XREF: sub_6A694+Ej jsr sub_6AA44 bclr #7,(byte_FFFFA069).w clr.w (word_FFFFA088).w loc_6AA3C: ; CODE XREF: sub_6A694+92j ; sub_6A694+AEj ... movem.l (sp)+,d0-d2/d6-d7 unlk a6 rts ; End of function sub_6A694 ; =============== S U B R O U T I N E ======================================= sub_6AA44: ; CODE XREF: sub_6A21C+26p ; sub_6A694:loc_6AA22p ... bclr #2,(byte_FFFFA068).w bclr #1,(byte_FFFFA068).w bclr #3,(byte_FFFFA069).w clr.w (word_FFFFA08A).w clr.w (word_FFFFA086).w rts ; End of function sub_6AA44 ; =============== S U B R O U T I N E ======================================= sub_6AA60: ; CODE XREF: sub_6A252+3Cp move.l d0,-(sp) move.w (word_FFFFB298).w,d3 asl.w #2,d3 lsr.w #2,d3 clr.w d4 move.w #$1000,d5 cmp.w d3,d5 bhi.s loc_6AA76 move.l d5,d3 loc_6AA76: ; CODE XREF: sub_6AA60+12j movea.l #DI_FUEL_TRIM_KV_FTRM_MAX_PURGE_FLOW,a2 tblu.w (a2),d3 lsr.w #5,d3 move.l d3,d0 move.w (word_FFFFA62A).w,d3 mulu.w d3,d0 moveq #5,d3 mulu.l d0,d3 lsr.l #8,d3 lsr.l #5,d3 move.w d3,(word_FFFFA06C).w move.w (word_FFFFB3E8).w,d3 cmpi.w #$FC00,d3 bge.s loc_6AAA6 move.l d4,d3 bra.s loc_6AAC2 ; --------------------------------------------------------------------------- loc_6AAA6: ; CODE XREF: sub_6AA60+40j cmpi.w #$F32,d3 bge.s loc_6AABE ext.l d3 addi.l #$400,d3 muls.w #$28,d3 ; '(' divs.w #$33,d3 ; '3' bra.s loc_6AAC2 ; --------------------------------------------------------------------------- loc_6AABE: ; CODE XREF: sub_6AA60+4Aj move.w #$F0E,d3 loc_6AAC2: ; CODE XREF: sub_6AA60+44j ; sub_6AA60+5Cj movea.l #DI_FUEL_TRIM_KV_FTRM_THRESHOLD_TEMP_MULT,a2 ; Threshold multiplier to compensate for the variation of excess purge vapor generation due to temperature. ; Multiplier_0_to_2 tblu.w (a2),d3 mulu.w (DI_FUEL_TRIM_KE_FTRM_ACCUM_PURGE_THRESHOLD).l,d3 ; Threshold of accumulated purge flow required to reduce the excess purge vapor condition before continuing testing ; Grams divu.w #$1000,d3 bvc.s loc_6AADC move.w #$FFFF,d3 loc_6AADC: ; CODE XREF: sub_6AA60+76j move.w d3,(word_FFFFA06E).w move.l (sp)+,d0 rts ; End of function sub_6AA60 ; =============== S U B R O U T I N E ======================================= sub_6AAE4: ; CODE XREF: sub_6A694:loc_6A8AEp move.w (word_FFFFA088).w,d3 cmp.w (DI_FUEL_TRIM_KE_FTRM_PURGE_WAIT_LIMIT).l,d3 ; NON-Intrusive Excess Purge Test lasts this long. ; Seconds bcs.s loc_6AAFE bset #7,(byte_FFFFA069).w bclr #0,(byte_FFFFA068).w bra.s locret_6AB0A ; --------------------------------------------------------------------------- loc_6AAFE: ; CODE XREF: sub_6AAE4+Aj addq.w #1,d3 bcc.s loc_6AB06 move.w #$FFFF,d3 loc_6AB06: ; CODE XREF: sub_6AAE4+1Cj move.w d3,(word_FFFFA088).w locret_6AB0A: ; CODE XREF: sub_6AAE4+18j rts ; End of function sub_6AAE4 ; =============== S U B R O U T I N E ======================================= sub_6AB0C: ; CODE XREF: DoLoopG+23Cp movem.l d0-d1,-(sp) tst.b (byte_FFFFB53E).w beq.w loc_6ABAA move.w (word_FFFFADB4).w,d1 movea.w (word_FFFFB3EE).w,a2 sub.w a2,d1 cmpi.w #$F32,d1 bgt.s loc_6AB30 cmpi.w #$FC00,d1 blt.s loc_6AB36 bra.s loc_6AB3A ; --------------------------------------------------------------------------- loc_6AB30: ; CODE XREF: sub_6AB0C+1Aj move.w #$F32,d1 bra.s loc_6AB3A ; --------------------------------------------------------------------------- loc_6AB36: ; CODE XREF: sub_6AB0C+20j move.w #$FC00,d1 loc_6AB3A: ; CODE XREF: sub_6AB0C+22j ; sub_6AB0C+28j move.w d1,(word_FFFFB4EA).w cmp.w (DG_HSCR_KE_HSCR_STARTUP_TEMP_DIFF).l,d1 ble.s loc_6AB92 move.w (word_FFFFB3EE).w,d3 cmp.w (DG_HSCR_KE_HSCR_IAT_ENABLE).l,d3 ; The threshold above which the intake air temperature must be,to enable the HSCR diagnostic. ; Degrees_C ble.s loc_6AB8A move.w (word_FFFFAEBC).w,d3 cmp.w (DG_HSCR_KE_HSCR_VEHICLE_SPEED_MIN).l,d3 ; The threshold above which the vehicle speed must be to increment the HSCR vehicle speed time. ; MPH bls.s loc_6ABAA move.w (word_FFFFB4EC).w,d3 addq.w #1,d3 move.w d3,(word_FFFFB4EC).w cmp.w (DG_HSCR_KE_HSCR_VEHICLE_DRIVE_TIME_MIN).l,d3 ; The threshold above which the HSCR vehicle speed time must be to enable the comparison of powerup IAT with min IAT. ; Seconds bls.s loc_6ABAA move.w (word_FFFFB3EE).w,d3 sub.w (word_FFFFB1AC).w,d3 cmp.w (DG_HSCR_KE_HSCR_IAT_DROP_MAX).l,d3 bge.s loc_6AB8A moveq #$C,d0 jsr sub_5F110 bra.s loc_6AB9A ; --------------------------------------------------------------------------- loc_6AB8A: ; CODE XREF: sub_6AB0C+44j ; sub_6AB0C+72j move.b #1,(byte_FFFFB4E8).w bra.s loc_6ABAA ; --------------------------------------------------------------------------- loc_6AB92: ; CODE XREF: sub_6AB0C+38j moveq #$C,d0 jsr sub_5F0BE loc_6AB9A: ; CODE XREF: sub_6AB0C+7Cj move.b #1,(byte_FFFFB4E9).w move.w d1,(word_FFFF8D4E).w move.w (word_FFFFB540).w,(word_FFFF8D4C).w loc_6ABAA: ; CODE XREF: sub_6AB0C+8j ; sub_6AB0C+50j ... movem.l (sp)+,d0-d1 rts ; End of function sub_6AB0C ; =============== S U B R O U T I N E ======================================= sub_6ABB0: ; CODE XREF: sub_75370+270p clr.w (word_FFFF8D4C).w clr.w (word_FFFF8D4E).w clr.w (word_FFFFB4EC).w clr.b (byte_FFFFB4E9).w rts ; End of function sub_6ABB0 ; =============== S U B R O U T I N E ======================================= sub_6ABC2: ; CODE XREF: DoLoopC+30Cp clr.w (word_FFFF8D4C).w clr.w (word_FFFF8D4E).w clr.w (word_FFFFB4EC).w clr.b (byte_FFFFB4E9).w rts ; End of function sub_6ABC2 ; =============== S U B R O U T I N E ======================================= sub_6ABD4: ; CODE XREF: OS1:0002921Cp cmpi.b #2,d0 bne.s locret_6ABE8 tst.b (byte_FFFFB54A).w bne.s locret_6ABE8 clr.w (word_FFFF8D4C).w clr.w (word_FFFF8D4E).w locret_6ABE8: ; CODE XREF: sub_6ABD4+4j sub_6ABD4+Aj rts ; End of function sub_6ABD4 ; =============== S U B R O U T I N E ======================================= sub_6ABEA: ; CODE XREF: DoLoopG+236p clr.b d3 tst.b (byte_FFFFB4E8).w bne.s loc_6AC46 tst.b (byte_FFFFB4E9).w bne.s loc_6AC46 btst #1,(byte_FFFF8AA2).w bne.s loc_6AC46 btst #1,(byte_FFFF8998).w bne.s loc_6AC46 btst #1,(byte_FFFF899A).w bne.s loc_6AC46 btst #1,(byte_FFFF899C).w bne.s loc_6AC46 btst #1,(byte_FFFF88D4).w bne.s loc_6AC46 btst #1,(byte_FFFF88D6).w bne.s loc_6AC46 btst #1,(byte_FFFF88DA).w bne.s loc_6AC46 btst #1,(byte_FFFF88DC).w bne.s loc_6AC46 move.w (word_FFFFB540).w,d4 cmp.w (DI_HSCR_KE_HSCR_TIME_SINCE_ENG_RUN).l,d4 ; Minimum amount of time that has passed since the engine was last turned off. ; Minutes bls.s loc_6AC46 addq.b #1,d3 loc_6AC46: ; CODE XREF: sub_6ABEA+6j sub_6ABEA+Cj ... move.b d3,(byte_FFFFB53E).w rts ; End of function sub_6ABEA ; =============== S U B R O U T I N E ======================================= sub_6AC4C: ; CODE XREF: OS1:00029224p cmpi.b #5,d0 beq.s locret_6AC84 cmpi.b #2,d0 bne.s locret_6AC84 btst #1,(byte_FFFF8AA2).w bne.s loc_6AC80 move.l (dword_FFFFBF12).w,d3 divu.l #$A0,d3 ; '?' divu.w #$3C,d3 ; '<' bvs.s loc_6AC78 cmpi.w #$5A0,d3 bls.s loc_6AC7C loc_6AC78: ; CODE XREF: sub_6AC4C+24j move.w #$5A0,d3 loc_6AC7C: ; CODE XREF: sub_6AC4C+2Aj move.w d3,(word_FFFFB540).w loc_6AC80: ; CODE XREF: sub_6AC4C+12j clr.b (byte_FFFFB53E).w locret_6AC84: ; CODE XREF: sub_6AC4C+4j sub_6AC4C+Aj rts ; End of function sub_6AC4C ; =============== S U B R O U T I N E ======================================= sub_6AC86: ; CODE XREF: sub_6AF7C+A2p movem.l d0-d1,-(sp) move.w (word_FFFFB49A).w,d3 cmp.w (DG_IAT_KE_IATD_SHORTED_HIGH_THRESH).l,d3 ; The threshold above which the IAT sensor is considered shorted high ; Percent bls.s loc_6ACFA tst.b (byte_FFFFB49C).w beq.w loc_6AD2E bset #5,(byte_FFFFB224).w clr.w d0 move.b (DG_IAT_KE_IATD_ENG_RUN_TIME_HIGH_MIN).l,d0 ; Minimum engine run time threshold to record a short to high fault ; Seconds move.w #$A0,d1 ; '?' mulu.w d1,d0 move.l (EngineRunTime).w,d3 cmp.l d3,d0 bcc.s loc_6AD2E bset #2,(byte_FFFFB487).w move.w (word_FFFFB22E).w,d3 addq.w #1,d3 bcc.s loc_6ACCC move.w #$FFFF,d3 loc_6ACCC: ; CODE XREF: sub_6AC86+40j move.w d3,(word_FFFFB22E).w move.w (word_FFFFB230).w,d3 addq.w #1,d3 bcc.s loc_6ACDC move.w #$FFFF,d3 loc_6ACDC: ; CODE XREF: sub_6AC86+50j move.w d3,(word_FFFFB230).w btst #7,(byte_FFFFB224).w bne.s loc_6AD2E move.w (word_FFFFB226).w,d3 addq.w #1,d3 bcc.s loc_6ACF4 move.w #$FFFF,d3 loc_6ACF4: ; CODE XREF: sub_6AC86+68j move.w d3,(word_FFFFB226).w bra.s loc_6AD1E ; --------------------------------------------------------------------------- loc_6ACFA: ; CODE XREF: sub_6AC86+Ej bclr #2,(byte_FFFFB487).w bclr #5,(byte_FFFFB224).w move.w (word_FFFFB230).w,d3 addq.w #1,d3 bcc.s loc_6AD12 move.w #$FFFF,d3 loc_6AD12: ; CODE XREF: sub_6AC86+86j move.w d3,(word_FFFFB230).w btst #7,(byte_FFFFB224).w bne.s loc_6AD2E loc_6AD1E: ; CODE XREF: sub_6AC86+72j move.w (word_FFFFB228).w,d3 addq.w #1,d3 bcc.s loc_6AD2A move.w #$FFFF,d3 loc_6AD2A: ; CODE XREF: sub_6AC86+9Ej move.w d3,(word_FFFFB228).w loc_6AD2E: ; CODE XREF: sub_6AC86+14j ; sub_6AC86+32j ... btst #7,(byte_FFFFB224).w bne.s loc_6AD6E move.w (word_FFFFB226).w,d0 cmp.w (DG_IAT_KE_IATD_INT_SHORT_HIGH_FAIL_LIM).l,d0 ; Number of failed intermittent short to high tests that will report an intermittent failure ; Unitless bcs.s loc_6AD56 move.w #$AA,d0 ; '?' jsr sub_5F110 loc_6AD4C: ; CODE XREF: sub_6AC86+E6j clr.w (word_FFFFB228).w clr.w (word_FFFFB226).w bra.s loc_6AD6E ; --------------------------------------------------------------------------- loc_6AD56: ; CODE XREF: sub_6AC86+BAj move.w (word_FFFFB228).w,d0 cmp.w (DG_IAT_KE_IATD_INT_SHORT_HIGH_SMPL_LIM).l,d0 ; Number of intermittent short high tests that make up a sample size ; Unitless bcs.s loc_6AD6E move.w #$AA,d0 ; '?' jsr sub_5F0BE bra.s loc_6AD4C ; --------------------------------------------------------------------------- loc_6AD6E: ; CODE XREF: sub_6AC86+AEj ; sub_6AC86+CEj ... move.w (word_FFFFB22E).w,d3 cmp.w (DG_IAT_KE_IATD_SHORT_HIGH_FAIL_LIM).l,d3 ; Number of failed short to high tests within a sample size that will report a failure ; Unitless bcs.s loc_6ADB6 move.w (word_FFFF8D36).w,d3 beq.s loc_6AD86 cmp.w (word_FFFFB230).w,d3 bls.s loc_6AD8C loc_6AD86: ; CODE XREF: sub_6AC86+F8j move.w (word_FFFFB230).w,(word_FFFF8D36).w loc_6AD8C: ; CODE XREF: sub_6AC86+FEj moveq #$B,d0 jsr sub_5F110 move.w #$AA,d0 ; '?' jsr sub_5F0BE bset #7,(byte_FFFFB224).w clr.w (word_FFFFB230).w clr.w (word_FFFFB22E).w clr.w (word_FFFFB228).w clr.w (word_FFFFB226).w bra.s loc_6ADE2 ; --------------------------------------------------------------------------- loc_6ADB6: ; CODE XREF: sub_6AC86+F2j move.w (word_FFFFB230).w,d0 cmp.w (DG_IAT_KE_IATD_SHORT_HIGH_SMPL_LIM).l,d0 ; Number of IAT short high tests that make up a sample size ; Unitless bcs.s loc_6ADE2 cmp.w (word_FFFF8D32).w,d3 bls.s loc_6ADCC move.w d3,(word_FFFF8D32).w loc_6ADCC: ; CODE XREF: sub_6AC86+140j moveq #$B,d0 jsr sub_5F0BE bclr #7,(byte_FFFFB224).w clr.w (word_FFFFB230).w clr.w (word_FFFFB22E).w loc_6ADE2: ; CODE XREF: sub_6AC86+12Ej ; sub_6AC86+13Aj move.w (word_FFFFB49A).w,d3 cmp.w (DG_IAT_KE_IATD_SHORTED_LOW_THRESH).l,d3 ; The threshold below which the IAT sensor is considered opened or shorted to ground ; Percent bcc.s loc_6AE50 tst.b (byte_FFFFB49D).w beq.w loc_6AE84 bset #4,(byte_FFFFB224).w clr.w d0 move.b (DG_IAT_KE_IATD_ENG_RUN_TIME_LOW_MIN).l,d0 ; Minimum engine run time threshold to record a short to low fault ; Seconds mulu.w #$A0,d0 ; '?' move.l (EngineRunTime).w,d3 cmp.l d3,d0 bcc.s loc_6AE84 bset #3,(byte_FFFFB487).w move.w (word_FFFFB232).w,d3 addq.w #1,d3 bcc.s loc_6AE22 move.w #$FFFF,d3 loc_6AE22: ; CODE XREF: sub_6AC86+196j move.w d3,(word_FFFFB232).w move.w (word_FFFFB234).w,d3 addq.w #1,d3 bcc.s loc_6AE32 move.w #$FFFF,d3 loc_6AE32: ; CODE XREF: sub_6AC86+1A6j move.w d3,(word_FFFFB234).w btst #6,(byte_FFFFB224).w bne.s loc_6AE84 move.w (word_FFFFB22A).w,d3 addq.w #1,d3 bcc.s loc_6AE4A move.w #$FFFF,d3 loc_6AE4A: ; CODE XREF: sub_6AC86+1BEj move.w d3,(word_FFFFB22A).w bra.s loc_6AE74 ; --------------------------------------------------------------------------- loc_6AE50: ; CODE XREF: sub_6AC86+166j bclr #3,(byte_FFFFB487).w bclr #4,(byte_FFFFB224).w move.w (word_FFFFB234).w,d3 addq.w #1,d3 bcc.s loc_6AE68 move.w #$FFFF,d3 loc_6AE68: ; CODE XREF: sub_6AC86+1DCj move.w d3,(word_FFFFB234).w btst #6,(byte_FFFFB224).w bne.s loc_6AE84 loc_6AE74: ; CODE XREF: sub_6AC86+1C8j move.w (word_FFFFB22C).w,d3 addq.w #1,d3 bcc.s loc_6AE80 move.w #$FFFF,d3 loc_6AE80: ; CODE XREF: sub_6AC86+1F4j move.w d3,(word_FFFFB22C).w loc_6AE84: ; CODE XREF: sub_6AC86+16Cj ; sub_6AC86+188j ... btst #6,(byte_FFFFB224).w bne.s loc_6AEC4 move.w (word_FFFFB22A).w,d0 cmp.w (DG_IAT_KE_IATD_INT_SHORT_LOW_FAIL_LIM).l,d0 ; Number of failed intermittent short to low tests that will report an intermittent failure ; Unitless bcs.s loc_6AEAC move.w #$AB,d0 ; '?' jsr sub_5F110 loc_6AEA2: ; CODE XREF: sub_6AC86+23Cj clr.w (word_FFFFB22C).w clr.w (word_FFFFB22A).w bra.s loc_6AEC4 ; --------------------------------------------------------------------------- loc_6AEAC: ; CODE XREF: sub_6AC86+210j move.w (word_FFFFB22C).w,d0 cmp.w (DG_IAT_KE_IATD_INT_SHORT_LOW_SMPL_LIM).l,d0 ; Number of intermittent short low tests that make up a sample size ; Unitless bcs.s loc_6AEC4 move.w #$AB,d0 ; '?' jsr sub_5F0BE bra.s loc_6AEA2 ; --------------------------------------------------------------------------- loc_6AEC4: ; CODE XREF: sub_6AC86+204j ; sub_6AC86+224j ... move.w (word_FFFFB232).w,d3 cmp.w (DG_IAT_KE_IATD_SHORT_LOW_FAIL_LIM).l,d3 ; Number of failed short to low tests within a sample size that will report a failure ; Unitless bcs.s loc_6AF0C move.w (word_FFFF8D38).w,d3 beq.s loc_6AEDC cmp.w (word_FFFFB234).w,d3 bls.s loc_6AEE2 loc_6AEDC: ; CODE XREF: sub_6AC86+24Ej move.w (word_FFFFB234).w,(word_FFFF8D38).w loc_6AEE2: ; CODE XREF: sub_6AC86+254j moveq #$A,d0 jsr sub_5F110 move.w #$AB,d0 ; '?' jsr sub_5F0BE bset #6,(byte_FFFFB224).w clr.w (word_FFFFB234).w clr.w (word_FFFFB232).w clr.w (word_FFFFB22C).w clr.w (word_FFFFB22A).w bra.s loc_6AF38 ; --------------------------------------------------------------------------- loc_6AF0C: ; CODE XREF: sub_6AC86+248j move.w (word_FFFFB234).w,d0 cmp.w (DG_IAT_KE_IATD_SHORT_LOW_SMPL_LIM).l,d0 ; Number of IAT short low tests that make up a sample size ; Unitless bcs.s loc_6AF38 cmp.w (word_FFFF8D34).w,d3 bls.s loc_6AF22 move.w d3,(word_FFFF8D34).w loc_6AF22: ; CODE XREF: sub_6AC86+296j moveq #$A,d0 jsr sub_5F0BE bclr #6,(byte_FFFFB224).w clr.w (word_FFFFB234).w clr.w (word_FFFFB232).w loc_6AF38: ; CODE XREF: sub_6AC86+284j ; sub_6AC86+290j movem.l (sp)+,d0-d1 rts ; End of function sub_6AC86 ; =============== S U B R O U T I N E ======================================= sub_6AF3E: ; CODE XREF: sub_6AF7C+44p ; sub_6AF7C+7Ap clr.b d0 btst #1,(byte_FFFF88DA).w bne.s locret_6AF7A btst #1,(byte_FFFF88DC).w bne.s locret_6AF7A btst #7,(byte_FFFFB485).w bne.s locret_6AF7A btst #1,(byte_FFFFB484).w bne.s locret_6AF7A btst #1,(byte_FFFF8998).w bne.s locret_6AF7A btst #1,(byte_FFFF899A).w bne.s locret_6AF7A btst #1,(byte_FFFF899C).w bne.s locret_6AF7A addq.b #1,d0 locret_6AF7A: ; CODE XREF: sub_6AF3E+8j ; sub_6AF3E+10j ... rts ; End of function sub_6AF3E ; =============== S U B R O U T I N E ======================================= sub_6AF7C: ; CODE XREF: sub_7AAA8+1Cp ; OS3:0007AB76p movem.l d0-d1,-(sp) tst.b (byte_FFFFA1B7).w beq.w loc_6B048 move.w (word_FFFFB3E6).w,d3 mulu.w #5,d3 lsr.l #6,d3 move.w d3,(word_FFFFB49A).w clr.w d1 btst #1,(byte_FFFF88C6).w bne.s loc_6AFF0 btst #1,(byte_FFFF88C8).w bne.s loc_6AFF0 btst #1,(byte_FFFF88CA).w bne.s loc_6AFF0 btst #6,(byte_FFFFB484).w bne.s loc_6AFF0 btst #5,(byte_FFFFB484).w bne.s loc_6AFF0 jsr sub_6AF3E tst.b d0 beq.s loc_6AFF0 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DI_IAT_KE_IATD_SHORT_HIGH_ECT_MIN).l,d3 ; Minimum coolant temperature to fail the IAT short to high test. ; Degrees_C blt.s loc_6AFF0 move.w (word_FFFFA0DC).w,d3 cmp.w (DI_IAT_KE_IATD_SHORT_HIGH_MAF_MAX).l,d3 ; Maximum mass air flow threshold to fail the IAT short to high test. ; Grams/Second bcc.s loc_6AFF0 move.w (word_FFFFAEBC).w,d3 cmp.w (DI_IAT_KE_IATD_SHORT_HIGH_VSS_MAX).l,d3 ; Maximum vehicle speed threshold to fail the IAT short to high test. ; Miles/Hour bcc.s loc_6AFF0 addq.b #1,d1 loc_6AFF0: ; CODE XREF: sub_6AF7C+22j ; sub_6AF7C+2Aj ... move.b d1,(byte_FFFFB49C).w clr.w d1 jsr sub_6AF3E tst.b d0 beq.s loc_6B01A move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DI_IAT_KE_IATD_SHORT_LOW_ECT_MAX).l,d3 ; Maximum coolant temperature to fail the IAT short to low test. ; Degrees_C bge.s loc_6B01A move.w (word_FFFFAEBC).w,d3 cmp.w (DI_IAT_KE_IATD_SHORT_LOW_VSS_MIN).l,d3 ; Minimum vehicle speed threshold to fail the IAT short to low test. ; Miles/Hour bcs.s loc_6B01A addq.b #1,d1 loc_6B01A: ; CODE XREF: sub_6AF7C+82j ; sub_6AF7C+8Ej ... move.b d1,(byte_FFFFB49D).w jsr sub_6AC86 btst #5,(byte_FFFFB224).w sne d3 neg.b d3 move.b d3,(byte_FFFFB49E).w btst #4,(byte_FFFFB224).w sne d3 neg.b d3 move.b d3,(byte_FFFFB49F).w move.b #1,(byte_FFFFB498).w bra.s loc_6B04C ; --------------------------------------------------------------------------- loc_6B048: ; CODE XREF: sub_6AF7C+8j clr.b (byte_FFFFB498).w loc_6B04C: ; CODE XREF: sub_6AF7C+CAj movem.l (sp)+,d0-d1 rts ; End of function sub_6AF7C ; =============== S U B R O U T I N E ======================================= sub_6B052: ; CODE XREF: DoLoopC+2AEp ; sub_75370+1E0p clr.b (byte_FFFFB49C).w clr.b (byte_FFFFB49D).w rts ; End of function sub_6B052 ; =============== S U B R O U T I N E ======================================= sub_6B05C: ; CODE XREF: OS1:0002907Cp ; sub_755FA+68p cmpi.b #6,d0 beq.s loc_6B070 cmpi.b #3,d0 bhi.s locret_6B082 beq.s loc_6B070 cmpi.b #1,d0 bra.s locret_6B082 ; --------------------------------------------------------------------------- loc_6B070: ; CODE XREF: sub_6B05C+4j sub_6B05C+Cj cmpi.b #3,d0 bne.s loc_6B07A clr.b (byte_FFFFB498).w loc_6B07A: ; CODE XREF: sub_6B05C+18j clr.b (byte_FFFFB49C).w clr.b (byte_FFFFB49D).w locret_6B082: ; CODE XREF: sub_6B05C+Aj ; sub_6B05C+12j rts ; End of function sub_6B05C ; =============== S U B R O U T I N E ======================================= sub_6B084: ; CODE XREF: OS1:00029014p ; sub_755FA+112p var_734B = -$734B move.l d1,-(sp) move.b d0,d1 jsr sub_6BDFE cmpi.b #6,d1 beq.s loc_6B0A4 cmpi.b #3,d1 bhi.w loc_6B152 cmpi.b #1,d1 bls.w loc_6B152 loc_6B0A4: ; CODE XREF: sub_6B084+Ej clr.b (byte_FFFFAA98).w clr.w (word_FFFFAA9A).w clr.w (word_FFFFAA9C).w clr.b (byte_FFFFAAC6).w clr.w (word_FFFFAABA).w moveq #1,d4 loc_6B0BA: ; CODE XREF: sub_6B084+6Aj clr.l d3 move.b d4,d3 clr.w unk_FFFFAAB4(d3.w*2) clr.w word_FFFFAAA0(d3.w*2) clr.w unk_FFFFAAA4(d3.w*2) clr.w unk_FFFFAAA8(d3.w*2) clr.w unk_FFFFAAAC(d3.w*2) clr.w unk_FFFFAAB0(d3.w*2) clr.w unk_FFFFAABC(d3.w*2) addq.b #1,d4 cmpi.b #2,d4 bls.s loc_6B0BA moveq #1,d3 loc_6B0F2: ; CODE XREF: sub_6B084+8Aj clr.l d4 move.b d3,d4 clr.b -$5545(d4.w) clr.w word_FFFFAA9C(d4.w*2) clr.w unk_FFFFAAC0(d4.w*2) addq.b #1,d3 cmpi.b #2,d3 bls.s loc_6B0F2 moveq #2,d5 cmp.b d1,d5 bne.s loc_6B152 tst.b (byte_FFFFB54A).w bne.s loc_6B152 moveq #1,d3 loc_6B11E: ; CODE XREF: sub_6B084+CCj clr.l d4 move.b d3,d4 clr.w unk_FFFF8CB0(d4.w*2) clr.w unk_FFFF8CBE(d4.w*2) clr.w unk_FFFF8CBA(d4.w*2) clr.w word_FFFF8CB4(d4.w*2) bclr #7,-$7351(d4.w) move.b (DG_ICAT_KE_CAT_MAX_RSR_TESTS).l,4+var_734B(d4.w) ; The maximum number of tests to run once the rapid step response is activated. ; Unitless addq.b #1,d3 cmp.b d3,d5 bcc.s loc_6B11E loc_6B152: ; CODE XREF: sub_6B084+14j ; sub_6B084+1Cj ... move.l (sp)+,d1 rts ; End of function sub_6B084 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6B156: ; CODE XREF: DoLoopC+360p var_7371 = -$7371 var_558A = -$558A var_5586 = -$5586 var_5582 = -$5582 var_557E = -$557E var_557A = -$557A var_5576 = -$5576 var_6 = -6 var_4 = -4 var_2 = -2 var_1 = -1 link a6,#-6 movem.l d0-d2/d6-a1/a4-a5,-(sp) btst #7,(byte_FFFFAA98).w beq.s loc_6B1D0 bset #7,(byte_FFFFA35A).w move.b (DI_ICAT_KE_CAT_NUM_CATALYST_TO_DIAGNOSE).l,d4 ; The number of catalytic converters to diagnose. ; Unitless moveq #1,d3 move.l d3,d7 cmp.b d4,d7 bhi.s loc_6B18A loc_6B17A: ; CODE XREF: sub_6B156+32j clr.l d7 move.b d3,d7 clr.w byte_FFFFA35C(d7.w*2) addq.b #1,d3 cmp.b d3,d4 bcc.s loc_6B17A loc_6B18A: ; CODE XREF: sub_6B156+22j moveq #1,d4 loc_6B18C: ; CODE XREF: sub_6B156+72j clr.l d3 move.b d4,d3 clr.w unk_FFFF8CB0(d3.w*2) bclr #4,-$5565(d3.w) bclr #7,-$7351(d3.w) clr.w word_FFFF8CB4(d3.w*2) move.b (DG_ICAT_KE_CAT_MAX_RSR_TESTS).l,$2A+var_7371(d3.w) ; The maximum number of tests to run once the rapid step response is activated. ; Unitless clr.b -$5545(d3.w) clr.w unk_FFFF8CBE(d3.w*2) addq.b #1,d4 cmpi.b #2,d4 bls.s loc_6B18C bclr #7,(byte_FFFFAA98).w loc_6B1D0: ; CODE XREF: sub_6B156+Ej move.w (word_FFFFAABA).w,d3 addq.w #1,d3 bvc.s loc_6B1DC bmi.s loc_6B1E8 bra.s loc_6B1EE ; --------------------------------------------------------------------------- loc_6B1DC: ; CODE XREF: sub_6B156+80j cmpi.w #$7FFF,d3 bhi.s loc_6B1EE cmpi.w #$960,d3 bls.s loc_6B1F0 loc_6B1E8: ; CODE XREF: sub_6B156+82j move.w #$960,d3 bra.s loc_6B1F0 ; --------------------------------------------------------------------------- loc_6B1EE: ; CODE XREF: sub_6B156+84j ; sub_6B156+8Aj clr.w d3 loc_6B1F0: ; CODE XREF: sub_6B156+90j ; sub_6B156+96j move.w d3,(word_FFFFAABA).w tst.b (byte_FFFFB2EE).w beq.w loc_6B2F0 btst #2,(byte_FFFFA35A).w beq.w loc_6B2F0 move.b (byte_FFFFAAC6).w,d2 cmpi.b #2,d2 bhi.w loc_6B31E beq.w loc_6B2BC tst.b d2 bne.s loc_6B264 moveq #1,d7 move.b d7,(byte_FFFFAAC6).w clr.w (word_FFFFAABA).w bset #6,(byte_FFFFAA98).w move.b (DI_ICAT_KE_CAT_NUM_FUEL_CONTROL_BANKS).l,d0 ; The number of fuel control banks to loop during each process. ; Unitless move.l d7,d3 cmp.b d0,d7 bhi.w loc_6B31E loc_6B238: ; CODE XREF: sub_6B156+108j clr.l d4 move.b d3,d4 clr.w unk_FFFFAABC(d4.w*2) clr.w unk_FFFFAAA8(d4.w*2) clr.w unk_FFFFAAA4(d4.w*2) clr.w unk_FFFFAAB0(d4.w*2) clr.w unk_FFFFAAAC(d4.w*2) addq.b #1,d3 cmp.b d3,d0 bcc.s loc_6B238 bra.w loc_6B31E ; --------------------------------------------------------------------------- loc_6B264: ; CODE XREF: sub_6B156+C2j btst #3,(byte_FFFFAA98).w beq.s loc_6B29C move.b #3,(byte_FFFFAAC6).w bclr #6,(byte_FFFFAA98).w move.b (DI_ICAT_KE_CAT_NUM_FUEL_CONTROL_BANKS).l,d4 ; The number of fuel control banks to loop during each process. ; Unitless moveq #1,d3 move.l d3,d7 cmp.b d4,d7 bhi.w loc_6B31E loc_6B288: ; CODE XREF: sub_6B156+140j clr.l d7 move.b d3,d7 clr.w word_FFFFAAA0(d7.w*2) addq.b #1,d3 cmp.b d3,d4 bcc.s loc_6B288 bra.w loc_6B31E ; --------------------------------------------------------------------------- loc_6B29C: ; CODE XREF: sub_6B156+114j cmp.w (DG_ICAT_KE_CAT_AFT1_TRANSITION_TIME_MAX).l,d3 ; Maximum allowed duration for Air/Fuel transition 1. ; Seconds blt.s loc_6B31E move.b #2,(byte_FFFFAAC6).w clr.w (word_FFFFAABA).w bclr #6,(byte_FFFFAA98).w bset #5,(byte_FFFFAA98).w bra.s loc_6B31E ; --------------------------------------------------------------------------- loc_6B2BC: ; CODE XREF: sub_6B156+BCj btst #3,(byte_FFFFAA98).w beq.s loc_6B31E move.b #3,(byte_FFFFAAC6).w bclr #5,(byte_FFFFAA98).w move.b (DI_ICAT_KE_CAT_NUM_FUEL_CONTROL_BANKS).l,d4 ; The number of fuel control banks to loop during each process. ; Unitless moveq #1,d3 move.l d3,d7 cmp.b d4,d7 bhi.s loc_6B31E loc_6B2DE: ; CODE XREF: sub_6B156+196j clr.l d7 move.b d3,d7 clr.w word_FFFFAAA0(d7.w*2) addq.b #1,d3 cmp.b d3,d4 bcc.s loc_6B2DE bra.s loc_6B31E ; --------------------------------------------------------------------------- loc_6B2F0: ; CODE XREF: sub_6B156+A2j ; sub_6B156+ACj clr.b (byte_FFFFAAC6).w bclr #6,(byte_FFFFAA98).w bclr #5,(byte_FFFFAA98).w move.b (DI_ICAT_KE_CAT_NUM_FUEL_CONTROL_BANKS).l,d4 ; The number of fuel control banks to loop during each process. ; Unitless moveq #1,d3 move.l d3,d7 cmp.b d4,d7 bhi.s loc_6B31E loc_6B30E: ; CODE XREF: sub_6B156+1C6j clr.l d7 move.b d3,d7 clr.w word_FFFFAAA0(d7.w*2) addq.b #1,d3 cmp.b d3,d4 bcc.s loc_6B30E loc_6B31E: ; CODE XREF: sub_6B156+B8j ; sub_6B156+DEj ... move.b (DI_ICAT_KE_CAT_NUM_FUEL_CONTROL_BANKS).l,d7 ; The number of fuel control banks to loop during each process. ; Unitless move.b d7,var_2(a6) moveq #1,d2 move.l d2,d3 cmp.b d7,d3 bhi.w loc_6B3B2 loc_6B332: ; CODE XREF: sub_6B156+25Aj tst.b (byte_FFFFB2EE).w bne.s loc_6B390 clr.l d6 move.b d2,d6 lea -$5568(d6.w),a0 move.b byte_8A837(d6.w),d1 move.l d1,d0 jsr sub_5F3D2 move.w d0,d3 cmp.w (DG_ICAT_KE_CAT_POST_O2_RICH_VOLTAGE).l,d3 ; Minimum post O2 voltage to be considered rich. ; Millivolts bcs.s loc_6B364 loc_6B35C: ; CODE XREF: sub_6B156+232j bset #4,1(a0) bra.s loc_6B390 ; --------------------------------------------------------------------------- loc_6B364: ; CODE XREF: sub_6B156+204j move.l d1,d0 jsr sub_5F3D2 move.w d0,d3 cmp.w (DG_ICAT_KE_CAT_POST_O2_LEAN_VOLTAGE).l,d3 ; Maximum post O2 voltage to be considered lean. ; Millivolts bls.s loc_6B38A movea.w d6,a5 move.l d1,d0 jsr sub_5F3D2 move.w d0,d3 cmp.w unk_FFFFAAB4(a5.w*2),d3 bcc.s loc_6B35C loc_6B38A: ; CODE XREF: sub_6B156+21Ej bclr #4,1(a0) loc_6B390: ; CODE XREF: sub_6B156+1E0j ; sub_6B156+20Cj clr.l d3 move.b d2,d3 movea.w d3,a0 move.b byte_8A837(d3.w),d0 jsr sub_5F3D2 move.w d0,d3 move.w d3,$2A+var_5576(a0.w*2) addq.b #1,d2 cmp.b d2,d7 bcc.s loc_6B332 loc_6B3B2: ; CODE XREF: sub_6B156+1D8j btst #6,(byte_FFFFAA98).w beq.w loc_6B4A2 move.b var_2(a6),d4 move.b d4,var_1(a6) moveq #1,d6 move.l d6,d5 cmp.b d4,d5 bhi.w loc_6B4A2 loc_6B3CE: ; CODE XREF: sub_6B156+348j clr.l d2 move.b d6,d2 btst #4,-$5567(d2.w) beq.s loc_6B436 move.l d6,d1 movea.l #DI_ICAT_KA_CAT_AFT1_FUEL_OFFSET_RICH,a0 ; The percent change to the average Fuel during A/F transition period 1 to cause a rich state. ; Percent moveq #$43,d0 ; 'C' jsr sub_6BA78 move.w d0,$2A+var_558A(d2.w*2) move.b byte_8A837(d2.w),d3 bne.s loc_6B402 movea.w (word_FFFF9F00).w,a4 bra.s loc_6B40A ; --------------------------------------------------------------------------- loc_6B402: ; CODE XREF: sub_6B156+2A4j tst.b d3 beq.s loc_6B40A movea.w (word_FFFF9F06).w,a4 loc_6B40A: ; CODE XREF: sub_6B156+2AAj ; sub_6B156+2AEj move.w a4,d3 cmp.w (DG_ICAT_KE_CAT_PRE_O2_RICH_VOLT_MIN).l,d3 ; Minimum pre O2 voltage to be considered saturated rich while in AFT1. ; Millivolts bcc.s loc_6B41C move.w (word_FFFFAABA).w,$2A+var_5582(d2.w*2) loc_6B41C: ; CODE XREF: sub_6B156+2BCj move.b byte_8A837(d2.w),d0 jsr sub_5F3D2 move.w d0,d3 cmp.w (DG_ICAT_KE_CAT_POST_O2_RICH_VOLT_MIN).l,d3 ; Minimum post O2 voltage to be considered saturated rich while in AFT1. ; Millivolts bcc.s loc_6B496 bra.s loc_6B48E ; --------------------------------------------------------------------------- loc_6B436: ; CODE XREF: sub_6B156+284j move.l d6,d1 movea.l #DI_ICAT_KA_CAT_AFT1_FUEL_OFFSET_LEAN,a0 ; The percent change to the average Fuel during A/F transition period 1 to cause a lean state. ; Percent moveq #$43,d0 ; 'C' jsr sub_6BA78 move.w d0,$2A+var_558A(d2.w*2) move.b byte_8A837(d2.w),d3 bne.s loc_6B45C movea.w (word_FFFF9F00).w,a1 bra.s loc_6B464 ; --------------------------------------------------------------------------- loc_6B45C: ; CODE XREF: sub_6B156+2FEj tst.b d3 beq.s loc_6B464 movea.w (word_FFFF9F06).w,a1 loc_6B464: ; CODE XREF: sub_6B156+304j ; sub_6B156+308j move.w a1,d3 cmp.w (DG_ICAT_KE_CAT_PRE_O2_LEAN_VOLT_MAX).l,d3 ; Maximum pre O2 voltage to be considered saturated lean while in AFT1. ; Millivolts bls.s loc_6B476 move.w (word_FFFFAABA).w,$2A+var_5582(d2.w*2) loc_6B476: ; CODE XREF: sub_6B156+316j move.b byte_8A837(d2.w),d0 jsr sub_5F3D2 move.w d0,d3 cmp.w (DG_ICAT_KE_CAT_POST_O2_LEAN_VOLT_MAX).l,d3 ; Maximum post O2 voltage to be considered saturated lean while in AFT1. ; Millivolts bls.s loc_6B496 loc_6B48E: ; CODE XREF: sub_6B156+2DEj move.w (word_FFFFAABA).w,$2A+var_5586(d2.w*2) loc_6B496: ; CODE XREF: sub_6B156+2DCj ; sub_6B156+336j addq.b #1,d6 move.b var_1(a6),d4 cmp.b d6,d4 bcc.w loc_6B3CE loc_6B4A2: ; CODE XREF: sub_6B156+262j ; sub_6B156+274j btst #5,(byte_FFFFAA98).w beq.s loc_6B4EE move.b var_2(a6),d7 moveq #1,d2 move.l d2,d4 cmp.b d7,d4 bhi.s loc_6B4EE loc_6B4B6: ; CODE XREF: sub_6B156+396j clr.l d6 move.b d2,d6 lea -$5568(d6.w),a2 btst #4,1(a2) beq.s loc_6B4D2 move.l d2,d1 movea.l #DI_ICAT_KA_CAT_AFT2_FUEL_OFFSET_LEAN,a0 ; The percent change added to the average Fuel during A/F transition period 2 to cause a lean state. ; Percent bra.s loc_6B4DA ; --------------------------------------------------------------------------- loc_6B4D2: ; CODE XREF: sub_6B156+370j move.l d2,d1 movea.l #DI_ICAT_KA_CAT_AFT2_FUEL_OFFSET_RICH,a0 ; The percent change added to the average Fuel during A/F transition period 2 to cause a rich state. ; Percent loc_6B4DA: ; CODE XREF: sub_6B156+37Aj moveq #$43,d0 ; 'C' jsr sub_6BA78 move.w d0,$2A+var_558A(d6.w*2) addq.b #1,d2 cmp.b d2,d7 bcc.s loc_6B4B6 loc_6B4EE: ; CODE XREF: sub_6B156+352j ; sub_6B156+35Ej move.b var_2(a6),d3 move.b d3,var_2(a6) moveq #1,d6 cmpi.b #1,d3 bra.w loc_6B5F6 ; --------------------------------------------------------------------------- loc_6B500: ; CODE XREF: sub_6B156:loc_6B5F6j clr.l d2 move.b d6,d2 lea -$5568(d2.w),a0 btst #6,1(a0) bne.w loc_6B5EE btst #5,1(a0) bne.w loc_6B5EE btst #5,(byte_FFFFAA98).w beq.w loc_6B5E8 tst.w word_FFFFAAA0(d2.w*2) blt.s loc_6B594 move.w (DG_ICAT_KE_CAT_STOICH_REFERENCE_VOLT).l,d7 ; Theoretical O2 voltage for a stoichiometric A/F ratio. ; Millivolts move.b byte_8A837(d2.w),d1 move.l d1,d0 jsr sub_5F3D2 move.w d0,d3 cmp.w d7,d3 bcc.s loc_6B556 move.w (word_FFFFAABA).w,$2A+var_557E(d2.w*2) bra.s loc_6B55C ; --------------------------------------------------------------------------- loc_6B556: ; CODE XREF: sub_6B156+3F4j bset #6,1(a0) loc_6B55C: ; CODE XREF: sub_6B156+3FEj tst.b d1 bne.s loc_6B566 movea.w (word_FFFF9F00).w,a4 bra.s loc_6B56E ; --------------------------------------------------------------------------- loc_6B566: ; CODE XREF: sub_6B156+408j tst.b d1 beq.s loc_6B572 movea.w (word_FFFF9F06).w,a4 loc_6B56E: ; CODE XREF: sub_6B156+40Ej move.w a4,var_6(a6) loc_6B572: ; CODE XREF: sub_6B156+412j move.w var_6(a6),d3 cmp.w d7,d3 bcc.s loc_6B58C btst #3,1(a0) bne.s loc_6B58C loc_6B582: ; CODE XREF: sub_6B156+48Ej move.w (word_FFFFAABA).w,$2A+var_557A(d2.w*2) bra.s loc_6B5EE ; --------------------------------------------------------------------------- loc_6B58C: ; CODE XREF: sub_6B156+422j ; sub_6B156+42Aj ... bset #3,1(a0) bra.s loc_6B5EE ; --------------------------------------------------------------------------- loc_6B594: ; CODE XREF: sub_6B156+3D8j move.w (DG_ICAT_KE_CAT_STOICH_REFERENCE_VOLT).l,d7 ; Theoretical O2 voltage for a stoichiometric A/F ratio. ; Millivolts move.b byte_8A837(d2.w),d1 move.l d1,d0 jsr sub_5F3D2 move.w d0,d3 cmp.w d7,d3 bls.s loc_6B5BA move.w (word_FFFFAABA).w,$2A+var_557E(d2.w*2) bra.s loc_6B5C0 ; --------------------------------------------------------------------------- loc_6B5BA: ; CODE XREF: sub_6B156+458j bset #6,1(a0) loc_6B5C0: ; CODE XREF: sub_6B156+462j tst.b d1 bne.s loc_6B5CA movea.w (word_FFFF9F00).w,a1 bra.s loc_6B5D2 ; --------------------------------------------------------------------------- loc_6B5CA: ; CODE XREF: sub_6B156+46Cj tst.b d1 beq.s loc_6B5D6 movea.w (word_FFFF9F06).w,a1 loc_6B5D2: ; CODE XREF: sub_6B156+472j move.w a1,var_4(a6) loc_6B5D6: ; CODE XREF: sub_6B156+476j move.w var_4(a6),d3 cmp.w d7,d3 bls.s loc_6B58C btst #3,1(a0) beq.s loc_6B582 bra.s loc_6B58C ; --------------------------------------------------------------------------- loc_6B5E8: ; CODE XREF: sub_6B156+3CEj bclr #3,1(a0) loc_6B5EE: ; CODE XREF: sub_6B156+3BAj ; sub_6B156+3C4j ... addq.b #1,d6 move.b var_2(a6),d3 cmp.b d6,d3 loc_6B5F6: ; CODE XREF: sub_6B156+3A6j bcc.w loc_6B500 movem.l (sp)+,d0-d2/d6-a1/a4-a5 unlk a6 rts ; End of function sub_6B156 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6B602: ; CODE XREF: DoLoopF+10Ap var_7366 = -$7366 var_7362 = -$7362 var_735D = -$735D var_735C = -$735C var_7358 = -$7358 var_557A = -$557A var_555B = -$555B var_555A = -$555A var_5556 = -$5556 var_2 = -2 link a6,#-2 movem.l d0-d2/d6-d7,-(sp) tst.b (byte_FFFFAAC6).w beq.w loc_6B6DE move.b (DI_ICAT_KE_CAT_NUM_FUEL_CONTROL_BANKS).l,d6 ; The number of fuel control banks to loop during each process. ; Unitless move.l d6,d2 moveq #1,d0 move.l d0,d5 cmp.b d2,d5 bhi.w loc_6B6DE loc_6B624: ; CODE XREF: sub_6B602+D8j clr.l d3 move.b d0,d3 move.w unk_FFFFAAA8(d3.w*2),d1 cmp.w word_17894(d3.w*2),d1 bgt.w loc_6B6CE move.w unk_FFFFAAB0(d3.w*2),d1 cmp.w word_17898(d3.w*2),d1 bgt.w loc_6B6CE cmp.b (DI_ICAT_KE_CAT_NUM_CATALYST_TO_DIAGNOSE).l,d6 ; The number of catalytic converters to diagnose. ; Unitless bne.s loc_6B658 move.b d0,d1 bra.s loc_6B65A ; --------------------------------------------------------------------------- loc_6B658: ; CODE XREF: sub_6B602+50j moveq #1,d1 loc_6B65A: ; CODE XREF: sub_6B602+54j move.w unk_FFFFAAA4(d3.w*2),d4 cmp.w word_17890(d3.w*2),d4 bgt.s loc_6B678 move.w unk_FFFFAAAC(d3.w*2),d4 cmp.w (DG_ICAT_KE_CAT_AFT2_TRANSITION_TIME_MAX).l,d4 ; Maximum allowed duration for Air/Fuel transition 2. ; Seconds blt.s loc_6B6A0 loc_6B678: ; CODE XREF: sub_6B602+66j bset #6,-$5567(d3.w) bset #7,-$5567(d3.w) move.w (DG_ICAT_KE_CAT_HIGH_OSC_TIME_DEFAULT).l,$16+var_555A(d3.w*2) andi.w #$FF,d1 bset #7,-$5565(d1.w) bra.s loc_6B6D6 ; --------------------------------------------------------------------------- loc_6B6A0: ; CODE XREF: sub_6B602+74j btst #6,-$5567(d3.w) beq.s loc_6B6D6 move.w unk_FFFFAAB0(d3.w*2),d1 move.w unk_FFFFAAAC(d3.w*2),d4 cmp.w d1,d4 blt.s loc_6B6CE move.l d4,d5 sub.w d1,d5 move.w d5,$16+var_555A(d3.w*2) bset #7,-$5567(d3.w) bra.s loc_6B6D6 ; --------------------------------------------------------------------------- loc_6B6CE: ; CODE XREF: sub_6B602+34j ; sub_6B602+46j ... bset #5,-$5567(d3.w) loc_6B6D6: ; CODE XREF: sub_6B602+9Cj ; sub_6B602+A6j ... addq.b #1,d0 cmp.b d0,d2 bcc.w loc_6B624 loc_6B6DE: ; CODE XREF: sub_6B602+Cj ; sub_6B602+1Ej moveq #1,d6 clr.w d0 move.l d0,d2 move.b (DI_ICAT_KE_CAT_NUM_FUEL_CONTROL_BANKS).l,d5 ; The number of fuel control banks to loop during each process. ; Unitless move.l d6,d1 move.l d1,d7 cmp.b d5,d7 bhi.s loc_6B75A loc_6B6F2: ; CODE XREF: sub_6B602+156j clr.l d3 move.b d1,d3 btst #5,-$5567(d3.w) bne.s loc_6B754 btst #7,-$5567(d3.w) beq.s loc_6B752 cmp.b (DI_ICAT_KE_CAT_NUM_CATALYST_TO_DIAGNOSE).l,d5 ; The number of catalytic converters to diagnose. ; Unitless bne.s loc_6B728 move.b d1,d4 bset #6,-$5565(d3.w) move.w unk_FFFFAABC(d3.w*2),$16+var_5556(d3.w*2) bra.s loc_6B754 ; --------------------------------------------------------------------------- loc_6B728: ; CODE XREF: sub_6B602+10Ej addq.b #1,d0 bcc.s loc_6B730 move.b #$FF,d0 loc_6B730: ; CODE XREF: sub_6B602+128j add.w unk_FFFFAABC(d3.w*2),d2 cmpi.b #2,d0 bne.s loc_6B754 bset #6,(word_FFFFAA9C).w move.l d2,d7 tst.w d7 bpl.s loc_6B74A addq.w #1,d7 loc_6B74A: ; CODE XREF: sub_6B602+144j asr.w #1,d7 move.w d7,(word_FFFFAAC2).w bra.s loc_6B754 ; --------------------------------------------------------------------------- loc_6B752: ; CODE XREF: sub_6B602+106j clr.b d6 loc_6B754: ; CODE XREF: sub_6B602+FCj ; sub_6B602+124j ... addq.b #1,d1 cmp.b d1,d5 bcc.s loc_6B6F2 loc_6B75A: ; CODE XREF: sub_6B602+EEj tst.b d6 beq.s loc_6B764 bset #3,(byte_FFFFAA98).w loc_6B764: ; CODE XREF: sub_6B602+15Aj move.b (DI_ICAT_KE_CAT_NUM_CATALYST_TO_DIAGNOSE).l,d7 ; The number of catalytic converters to diagnose. ; Unitless move.b d7,var_2(a6) moveq #1,d6 move.l d6,d2 cmp.b d7,d2 bhi.w loc_6B9D4 loc_6B778: ; CODE XREF: sub_6B602+3CEj clr.l d1 move.b d6,d1 move.w word_1789C(d1.w*2),d0 btst #1,byte_FFFF88C0(d0.w*2) bne.s loc_6B79C move.w word_178A0(d1.w*2),$16+var_557A(d1.w*2) bra.s loc_6B7A2 ; --------------------------------------------------------------------------- loc_6B79C: ; CODE XREF: sub_6B602+18Aj clr.w word_FFFFAA9C(d1.w*2) loc_6B7A2: ; CODE XREF: sub_6B602+198j btst #6,-$5565(d1.w) beq.w loc_6B9C8 btst #5,-$5565(d1.w) bne.w loc_6B9C8 bset #5,-$5565(d1.w) btst #4,-$5565(d1.w) bne.w loc_6B9C8 btst #7,-$5565(d1.w) beq.s loc_6B7E8 move.w (DG_ICAT_KE_CAT_HIGH_OSC_TIME_DEFAULT).l,d3 neg.w d3 move.w d3,$16+var_735C(d1.w*2) bra.s loc_6B826 ; --------------------------------------------------------------------------- loc_6B7E8: ; CODE XREF: sub_6B602+1D4j move.w word_178B4(d1.w*2),d2 clr.l d7 move.b d6,d7 clr.l d3 move.b d6,d3 move.b -$5CAB(d3.w),d3 andi.w #$FF,d3 muls.w unk_FFFFAAC0(d7.w*2),d3 moveq #$64,d4 ; 'd' divs.w d4,d3 bvc.s loc_6B81E swap d3 eor.w d4,d3 bmi.s loc_6B81A move.w #$7FFF,d3 bra.s loc_6B81E ; --------------------------------------------------------------------------- loc_6B81A: ; CODE XREF: sub_6B602+210j move.w #$8000,d3 loc_6B81E: ; CODE XREF: sub_6B602+20Aj ; sub_6B602+216j sub.w d3,d2 move.w d2,$16+var_735C(d1.w*2) loc_6B826: ; CODE XREF: sub_6B602+1E4j clr.l d5 move.b d6,d5 move.w word_FFFF8CB4(d5.w*2),d3 addq.w #1,d3 bcc.s loc_6B838 move.w #$FFFF,d3 loc_6B838: ; CODE XREF: sub_6B602+230j move.w d3,$16+var_7362(d1.w*2) btst #7,-$7351(d1.w) bne.s loc_6B874 move.w unk_FFFF8CBA(d1.w*2),d4 cmp.w word_178B0(d1.w*2),d4 bge.s loc_6B86C clr.w d4 move.b (DG_ICAT_KE_CAT_MIN_SAMPLES_TO_RPT_PASS).l,d4 ; Minimum number of tests run before reporting a pass. ; Unitless cmp.w d4,d3 bcc.s loc_6B874 move.w d4,$16+var_7362(d1.w*2) bra.s loc_6B874 ; --------------------------------------------------------------------------- loc_6B86C: ; CODE XREF: sub_6B602+254j bset #7,-$7351(d1.w) loc_6B874: ; CODE XREF: sub_6B602+244j ; sub_6B602+260j ... clr.l d5 move.b d6,d5 move.b -$7347(d5.w),d3 addq.b #1,d3 bcc.s loc_6B886 move.b #$FF,d3 loc_6B886: ; CODE XREF: sub_6B602+27Ej move.b d3,$16+var_735D(d1.w) clr.l d7 move.b d6,d7 move.b -$5545(d7.w),d4 addq.b #1,d4 bcc.s loc_6B89E move.b #$FF,d4 loc_6B89E: ; CODE XREF: sub_6B602+296j move.b d4,$16+var_555B(d1.w) moveq #5,d7 clr.l d5 move.b d6,d5 move.w unk_FFFF8CBA(d5.w*2),d2 ext.l d2 asl.l #6,d2 divs.w d7,d2 bvc.s loc_6B8C0 swap d2 eor.w d7,d2 bmi.s loc_6B8D4 bra.s loc_6B8CE ; --------------------------------------------------------------------------- loc_6B8C0: ; CODE XREF: sub_6B602+2B4j cmpi.w #$6400,d2 bgt.s loc_6B8CE cmpi.w #$9C00,d2 blt.s loc_6B8D4 bra.s loc_6B8D8 ; --------------------------------------------------------------------------- loc_6B8CE: ; CODE XREF: sub_6B602+2BCj ; sub_6B602+2C2j move.w #$6400,d2 bra.s loc_6B8D8 ; --------------------------------------------------------------------------- loc_6B8D4: ; CODE XREF: sub_6B602+2BAj ; sub_6B602+2C8j move.w #$9C00,d2 loc_6B8D8: ; CODE XREF: sub_6B602+2CAj ; sub_6B602+2D0j move.w unk_FFFF8CBE(d1.w*2),d7 move.l d2,d5 sub.w d7,d5 cmp.w word_178A8(d1.w*2),d5 blt.s loc_6B924 move.w unk_FFFF8CBA(d1.w*2),d4 cmp.w word_178A4(d1.w*2),d4 blt.s loc_6B924 cmp.b (DG_ICAT_KE_CAT_MAX_RSR_TESTS).l,d3 ; The maximum number of tests to run once the rapid step response is activated. ; Unitless bls.s loc_6B924 moveq #1,d4 move.b d4,$16+var_735D(d1.w) move.b d4,$16+var_555B(d1.w) move.w word_178AC(d1.w*2),d3 cmp.w d3,d7 bge.s loc_6B924 move.w d3,$16+var_7358(d1.w*2) loc_6B924: ; CODE XREF: sub_6B602+2E8j ; sub_6B602+2F8j ... move.b -$7347(d1.w),d7 cmp.b (DG_ICAT_KE_CAT_MAX_RSR_TESTS).l,d7 ; The maximum number of tests to run once the rapid step response is activated. ; Unitless bcc.s loc_6B93A move.b (DG_ICAT_KE_CAT_MAX_TESTS_PER_TRIP).l,d7 ; The maximum number of tests to run each trip once the rapid step response is activated. ; Unitless bra.s loc_6B93C ; --------------------------------------------------------------------------- loc_6B93A: ; CODE XREF: sub_6B602+32Ej moveq #1,d7 loc_6B93C: ; CODE XREF: sub_6B602+336j clr.l d4 move.b d6,d4 move.l d2,d3 sub.w unk_FFFF8CBE(d4.w*2),d3 bvc.s loc_6B94E bmi.s loc_6B970 bra.s loc_6B976 ; --------------------------------------------------------------------------- loc_6B94E: ; CODE XREF: sub_6B602+346j clr.w d2 move.b (DG_ICAT_KE_CAT_EWMA_FILTER_COEF).l,d2 ; Exponentially weighted moving average filter coefficient. ; Coef muls.w d3,d2 bpl.s loc_6B960 addi.l #$FF,d2 loc_6B960: ; CODE XREF: sub_6B602+356j asr.l #8,d2 cmpi.w #$6400,d2 bgt.s loc_6B970 cmpi.w #$9C00,d2 blt.s loc_6B976 bra.s loc_6B97A ; --------------------------------------------------------------------------- loc_6B970: ; CODE XREF: sub_6B602+348j ; sub_6B602+364j move.w #$6400,d2 bra.s loc_6B97A ; --------------------------------------------------------------------------- loc_6B976: ; CODE XREF: sub_6B602+34Aj ; sub_6B602+36Aj move.w #$9C00,d2 loc_6B97A: ; CODE XREF: sub_6B602+36Cj ; sub_6B602+372j add.w unk_FFFF8CBE(d1.w*2),d2 move.w d2,$16+var_7358(d1.w*2) cmp.w word_FFFFAA9C(d1.w*2),d2 blt.s loc_6B9A4 jsr sub_5F110 move.w d2,$16+var_7366(d1.w*2) loc_6B99A: ; CODE XREF: sub_6B602+3C4j bset #4,-$5565(d1.w) bra.s loc_6B9C8 ; --------------------------------------------------------------------------- loc_6B9A4: ; CODE XREF: sub_6B602+38Aj clr.w d3 move.b (DG_ICAT_KE_CAT_MIN_SAMPLES_TO_RPT_PASS).l,d3 ; Minimum number of tests run before reporting a pass. ; Unitless cmp.w word_FFFF8CB4(d1.w*2),d3 bhi.s loc_6B9C8 jsr sub_5F0BE move.w d2,$16+var_7366(d1.w*2) cmp.b -$5545(d1.w),d7 bls.s loc_6B99A loc_6B9C8: ; CODE XREF: sub_6B602+1A8j ; sub_6B602+1B4j ... addq.b #1,d6 move.b var_2(a6),d5 cmp.b d6,d5 bcc.w loc_6B778 loc_6B9D4: ; CODE XREF: sub_6B602+172j btst #2,(byte_FFFFA35A).w bne.s loc_6BA42 move.b (DI_ICAT_KE_CAT_NUM_FUEL_CONTROL_BANKS).l,d5 ; The number of fuel control banks to loop during each process. ; Unitless moveq #1,d3 move.l d3,d0 cmp.b d5,d0 bhi.s loc_6BA0C loc_6B9EA: ; CODE XREF: sub_6B602+408j clr.l d4 move.b d3,d4 bclr #5,-$5567(d4.w) bclr #6,-$5567(d4.w) bclr #7,-$5567(d4.w) addq.b #1,d3 cmp.b d3,d5 bcc.s loc_6B9EA loc_6BA0C: ; CODE XREF: sub_6B602+3E6j move.b (DI_ICAT_KE_CAT_NUM_CATALYST_TO_DIAGNOSE).l,d0 ; The number of catalytic converters to diagnose. ; Unitless moveq #1,d3 move.l d3,d1 cmp.b d0,d1 bhi.s loc_6BA3C loc_6BA1A: ; CODE XREF: sub_6B602+438j clr.l d4 move.b d3,d4 bclr #6,-$5565(d4.w) bclr #5,-$5565(d4.w) bclr #7,-$5565(d4.w) addq.b #1,d3 cmp.b d3,d0 bcc.s loc_6BA1A loc_6BA3C: ; CODE XREF: sub_6B602+416j bclr #3,(byte_FFFFAA98).w loc_6BA42: ; CODE XREF: sub_6B602+3D8j btst #7,(byte_FFFFA35C).w beq.s loc_6BA70 move.b (DI_ICAT_KE_CAT_NUM_CATALYST_TO_DIAGNOSE).l,d4 ; The number of catalytic converters to diagnose. ; Unitless moveq #1,d3 cmpi.b #1,d4 bra.s loc_6BA68 ; --------------------------------------------------------------------------- loc_6BA58: ; CODE XREF: sub_6B602:loc_6BA68j clr.l d5 move.b d3,d5 bclr #4,-$5565(d5.w) addq.b #1,d3 cmp.b d3,d4 loc_6BA68: ; CODE XREF: sub_6B602+454j bcc.s loc_6BA58 bset #4,(byte_FFFFAA98).w loc_6BA70: ; CODE XREF: sub_6B602+446j movem.l (sp)+,d0-d2/d6-d7 unlk a6 rts ; End of function sub_6B602 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6BA78: ; CODE XREF: sub_6B156+290p ; sub_6B156+2EAp ... var_4 = -4 link a6,#0 move.l a0,-(sp) andi.w #$FF,d1 moveq #$22,d3 ; '"' mulu.w d3,d1 add.l var_4(a6),d1 sub.l d3,d1 move.w (word_FFFFA0DC).w,d0 add.w d0,d0 bcc.s loc_6BA98 move.w #$FFFF,d0 loc_6BA98: ; CODE XREF: sub_6BA78+1Aj cmpi.w #$1000,d0 bcs.s loc_6BAA2 move.w #$FFF,d0 loc_6BAA2: ; CODE XREF: sub_6BA78+24j movea.l d1,a2 tbls.w (a2),d0 unlk a6 rts ; End of function sub_6BA78 ; =============== S U B R O U T I N E ======================================= sub_6BAAC: ; CODE XREF: sub_6BF68:loc_6C22Ap tst.b (DI_ICAT_KE_CAT_CONTROLS_FAN1).l ; Enables the control of Fan1 Held-On feature to make conditions favorable for the Idle CAT Monitor Diagnostic to complete. ; BOOLEAN beq.s loc_6BAF0 btst #6,(byte_FFFFA35A).w beq.s loc_6BAE8 move.w (word_FFFFA390).w,d3 cmp.w (DI_ICAT_KE_FAN1_ON_EXTENDED_TIME_MAX).l,d3 ; Maximum time allowed to hold the Fan1 state on. ; Seconds bcc.s loc_6BAE2 move.b #1,(byte_FFFFA362).w movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_6BADC move.w #$FFFF,d3 loc_6BADC: ; CODE XREF: sub_6BAAC+2Aj move.w d3,(word_FFFFA390).w bra.s loc_6BAF0 ; --------------------------------------------------------------------------- loc_6BAE2: ; CODE XREF: sub_6BAAC+1Aj clr.b (byte_FFFFA362).w bra.s loc_6BAF0 ; --------------------------------------------------------------------------- loc_6BAE8: ; CODE XREF: sub_6BAAC+Ej clr.b (byte_FFFFA362).w clr.w (word_FFFFA390).w loc_6BAF0: ; CODE XREF: sub_6BAAC+6j ; sub_6BAAC+34j ... move.b (byte_FFFF9DA5).w,d4 cmp.b (byte_FFFFA396).w,d4 bne.s loc_6BB1C move.b (byte_FFFFA397).w,d3 cmp.b (byte_FFFF9DA6).w,d3 bne.s loc_6BB1C movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA392).w,d3 add.w $A(a2),d3 bcc.s loc_6BB16 move.w #$FFFF,d3 loc_6BB16: ; CODE XREF: sub_6BAAC+64j move.w d3,(word_FFFFA392).w bra.s loc_6BB20 ; --------------------------------------------------------------------------- loc_6BB1C: ; CODE XREF: sub_6BAAC+4Cj ; sub_6BAAC+56j clr.w (word_FFFFA392).w loc_6BB20: ; CODE XREF: sub_6BAAC+6Ej move.b d4,(byte_FFFFA396).w move.b (byte_FFFF9DA6).w,(byte_FFFFA397).w move.w (word_FFFFA392).w,d3 cmp.w (DI_ICAT_KE_CAT_FAN_STABLE_TIME).l,d3 ; Required time for Fan1 and Fan2 state to remain unchanged. ; Seconds bls.s loc_6BB3E move.b #1,(byte_FFFFA363).w bra.s locret_6BB42 ; --------------------------------------------------------------------------- loc_6BB3E: ; CODE XREF: sub_6BAAC+88j clr.b (byte_FFFFA363).w locret_6BB42: ; CODE XREF: sub_6BAAC+90j rts ; End of function sub_6BAAC ; =============== S U B R O U T I N E ======================================= sub_6BB44: ; CODE XREF: sub_6C362+2BEp ; sub_6C362+310p ... tst.b d0 bhi.s loc_6BB4C clr.w d0 bra.s locret_6BB66 ; --------------------------------------------------------------------------- loc_6BB4C: ; CODE XREF: sub_6BB44+2j andi.w #$FF,d0 asl.w #7,d0 andi.l #$FFFF,d0 divu.w #5,d0 cmpi.w #$1000,d0 bls.s locret_6BB66 move.w #$1000,d0 locret_6BB66: ; CODE XREF: sub_6BB44+6j ; sub_6BB44+1Cj rts ; End of function sub_6BB44 ; =============== S U B R O U T I N E ======================================= sub_6BB68: ; CODE XREF: sub_6C362+2B2p ; sub_6C362+304p ... tst.w d0 bgt.s loc_6BB70 clr.w d0 bra.s locret_6BB82 ; --------------------------------------------------------------------------- loc_6BB70: ; CODE XREF: sub_6BB68+2j ext.l d0 asl.l #7,d0 divs.w #$4F3,d0 cmpi.w #$800,d0 bls.s locret_6BB82 move.w #$800,d0 locret_6BB82: ; CODE XREF: sub_6BB68+6j ; sub_6BB68+14j rts ; End of function sub_6BB68 ; =============== S U B R O U T I N E ======================================= sub_6BB84: ; CODE XREF: sub_6BF68:loc_6C150p var_5C66 = -$5C66 var_5C64 = -$5C64 movem.l d2/d6-d7,-(sp) btst #2,(byte_FFFFA35A).w beq.s loc_6BBA8 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA3A2).w,d3 add.w $A(a2),d3 bcc.s loc_6BBA2 move.w #$FFFF,d3 loc_6BBA2: ; CODE XREF: sub_6BB84+18j move.w d3,(word_FFFFA3A2).w bra.s loc_6BBB4 ; --------------------------------------------------------------------------- loc_6BBA8: ; CODE XREF: sub_6BB84+Aj clr.w (word_FFFFA3A2).w clr.b (byte_FFFFA3A1).w clr.w (word_FFFFA3A4).w loc_6BBB4: ; CODE XREF: sub_6BB84+22j move.w (word_FFFFA3A2).w,d7 cmp.w (DI_ICAT_KE_ICAT_MAX_O2_SWITCH_TIME).l,d7 ; Maximum time to allow switch summing process ; Seconds bhi.s loc_6BC32 tst.b (byte_FFFFA3A1).w bne.s loc_6BC32 moveq #1,d2 move.b (DI_ICAT_KE_CAT_NUM_FUEL_CONTROL_BANKS).l,d6 ; The number of fuel control banks to loop during each process. ; Unitless subq.b #1,d6 clr.b d5 tst.b d6 bra.s loc_6BC24 ; --------------------------------------------------------------------------- loc_6BBD6: ; CODE XREF: sub_6BB84:loc_6BC24j tst.b d5 bne.s loc_6BBE0 move.w (word_FFFF9F00).w,d3 bra.s loc_6BBE4 ; --------------------------------------------------------------------------- loc_6BBE0: ; CODE XREF: sub_6BB84+54j move.w (word_FFFF9F06).w,d3 loc_6BBE4: ; CODE XREF: sub_6BB84+5Aj cmp.w (DI_ICAT_KE_ICAT_O2_VOLT_THRESHOLD).l,d3 ; Voltage level below which O2 output is considered to be leanfor switch summming ; Millivolts scc d3 neg.b d3 clr.l d4 move.b d5,d4 move.b d3,$C+var_5C66(d4.w) cmp.b -$5C58(d4.w),d3 beq.s loc_6BC0A lea -$5CAC(d4.w),a2 addq.b #1,$50(a2) loc_6BC0A: ; CODE XREF: sub_6BB84+7Aj move.b d3,$C+var_5C64(d4.w) move.b -$5C5C(d4.w),d3 cmp.b (DI_ICAT_KE_ICAT_MIN_NUM_O2_SWITCHES).l,d3 ; Minimum number of O2 sensor voltage switches to completesumming. ; Unitless bcc.s loc_6BC20 clr.b d2 loc_6BC20: ; CODE XREF: sub_6BB84+98j addq.b #1,d5 cmp.b d5,d6 loc_6BC24: ; CODE XREF: sub_6BB84+50j bcc.s loc_6BBD6 cmp.w (DI_ICAT_KE_ICAT_MIN_O2_SWITCH_TIME).l,d7 ; Used to allow a stable idle to be measured before fuel controlis requested ; Seconds bls.s loc_6BC32 move.b d2,(byte_FFFFA3A1).w loc_6BC32: ; CODE XREF: sub_6BB84+3Aj ; sub_6BB84+40j ... tst.b (byte_FFFFA3A1).w beq.s loc_6BC5C move.b (byte_FFFFB2EB).w,d3 cmpi.b #6,d3 bne.s loc_6BC50 tst.b (byte_FFFFB2EE).w bne.s loc_6BC66 bset #1,(byte_FFFFA35A).w bra.s loc_6BC66 ; --------------------------------------------------------------------------- loc_6BC50: ; CODE XREF: sub_6BB84+BCj tst.b d3 bne.s loc_6BC66 move.b #1,(byte_FFFFA364).w bra.s loc_6BC66 ; --------------------------------------------------------------------------- loc_6BC5C: ; CODE XREF: sub_6BB84+B2j bclr #1,(byte_FFFFA35A).w clr.b (byte_FFFFA364).w loc_6BC66: ; CODE XREF: sub_6BB84+C2j ; sub_6BB84+CAj ... movem.l (sp)+,d2/d6-d7 rts ; End of function sub_6BB84 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6BC6C: ; CODE XREF: sub_6C700:loc_6C7B4p var_5CBA = -$5CBA var_5CAB = -$5CAB var_5CA0 = -$5CA0 var_5C8C = -$5C8C var_2 = -2 link a6,#-2 movem.l d0-d2/d6-d7,-(sp) cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_6BDF6 move.b (DI_ICAT_KE_CAT_NUM_CATALYST_TO_DIAGNOSE).l,d5 ; The number of catalytic converters to diagnose. ; Unitless move.b d5,var_2(a6) moveq #1,d7 cmpi.b #1,d5 bra.w loc_6BDF2 ; --------------------------------------------------------------------------- loc_6BC92: ; CODE XREF: sub_6BC6C:loc_6BDF2j tst.b (byte_FFFFA93A).w bne.w loc_6BD8C clr.l d5 move.b d7,d5 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w word_17BAC(d5.w*2),d3 ble.w loc_6BD8C clr.l d2 move.b d7,d2 move.w byte_FFFFA35C(d2.w*2),d6 cmp.w word_17BD0(d2.w*2),d6 ble.s loc_6BCCC move.w word_17BCC(d2.w*2),d6 bra.s loc_6BCD4 ; --------------------------------------------------------------------------- loc_6BCCC: ; CODE XREF: sub_6BC6C+54j move.w word_17BC8(d2.w*2),d6 loc_6BCD4: ; CODE XREF: sub_6BC6C+5Ej move.w (DI_ICAT_KE_EGPT_RPM_HIGH).l,d0 ; Maximum engine speed to be used in steady state temperature calculations. ; Revolutions per minute move.w (EngineRPM_PID_000C___).w,d3 cmp.w d3,d0 bcs.s loc_6BCE6 move.w (EngineRPM_PID_000C___).w,d0 loc_6BCE6: ; CODE XREF: sub_6BC6C+74j move.w (DI_ICAT_KE_EGPT_ENG_AIRFLOW_HIGH).l,d1 ; Maximum engine air flow to be used in steady state temperature calculations. ; Grams_Air_Per_Second move.w (word_FFFFA0DC).w,d3 cmp.w d3,d1 bcs.s loc_6BCF8 move.w (word_FFFFA0DC).w,d1 loc_6BCF8: ; CODE XREF: sub_6BC6C+86j movea.w d2,a2 clr.l d5 move.b d7,d5 andi.l #$FFFF,d1 muls.l DI_ICAT_KV_EGPT_FILTER_COEF_INCREASING(d5.w*4),d4:d1 divs.l #loc_50000,d4:d1 cmpi.l #$FFFF8000,d1 blt.s loc_6BD2C cmpi.l #$7FFF,d1 ble.s loc_6BD30 move.w #$7FFF,d1 bra.s loc_6BD30 ; --------------------------------------------------------------------------- loc_6BD2C: ; CODE XREF: sub_6BC6C+B0j move.w #$8000,d1 loc_6BD30: ; CODE XREF: sub_6BC6C+B8j ; sub_6BC6C+BEj ext.l d1 clr.l d5 move.b d7,d5 mulu.w word_17BD4(d5.w*2),d0 moveq #5,d5 mulu.l d0,d5 divu.w #$1000,d5 bvs.s loc_6BD52 tst.w d5 blt.s loc_6BD52 move.w d5,d3 bra.s loc_6BD56 ; --------------------------------------------------------------------------- loc_6BD52: ; CODE XREF: sub_6BC6C+DCj ; sub_6BC6C+E0j move.w #$7FFF,d3 loc_6BD56: ; CODE XREF: sub_6BC6C+E4j ext.l d3 add.l d1,d3 ext.l d6 add.l d6,d3 move.w (word_FFFFAEF8).w,d4 tbls.w (DI_ICAT_KV_EGPT_SS_ETH_COMPENSATION).l,d4 ; Modifies the predicted steady state exhaust gas temperatureto account for variations caused by ethanol fuel. ; Degrees_Celsius move.l d4,d5 ext.l d5 sub.l d5,d3 cmpi.l #$FFFF8000,d3 blt.s loc_6BD80 cmpi.l #$7FFF,d3 ble.s loc_6BD84 loc_6BD80: ; CODE XREF: sub_6BC6C+10Aj move.w #$7FFF,d3 loc_6BD84: ; CODE XREF: sub_6BC6C+112j move.w d3,$16+var_5C8C(a2.w*2) bra.s loc_6BD9C ; --------------------------------------------------------------------------- loc_6BD8C: ; CODE XREF: sub_6BC6C+2Aj ; sub_6BC6C+3Ej clr.l d3 move.b d7,d3 move.w word_17BC4(d3.w*2),$16+var_5C8C(d3.w*2) loc_6BD9C: ; CODE XREF: sub_6BC6C+11Ej clr.l d6 move.b d7,d6 move.w byte_FFFFA35C(d6.w*2),d3 move.w byte_FFFFA38A(d6.w*2),d1 cmp.w d3,d1 bge.s loc_6BDBA move.w word_17BB4(d6.w*2),d0 bra.s loc_6BDC2 ; --------------------------------------------------------------------------- loc_6BDBA: ; CODE XREF: sub_6BC6C+142j move.w word_17BB8(d6.w*2),d0 loc_6BDC2: ; CODE XREF: sub_6BC6C+14Cj move.l d3,d2 jsr loc_26610 move.w d0,d3 move.w d3,$16+var_5CBA(d6.w*2) cmp.w word_17BB0(d6.w*2),d3 sgt d5 neg.b d5 move.b d5,$16+var_5CAB(d6.w) move.w d3,$16+var_5CA0(d6.w*2) addq.b #1,d7 move.b var_2(a6),d3 cmp.b d7,d3 loc_6BDF2: ; CODE XREF: sub_6BC6C+22j bcc.w loc_6BC92 loc_6BDF6: ; CODE XREF: sub_6BC6C+Ej movem.l (sp)+,d0-d2/d6-d7 unlk a6 rts ; End of function sub_6BC6C ; =============== S U B R O U T I N E ======================================= sub_6BDFE: ; CODE XREF: sub_6B084+4p var_5CAB = -$5CAB clr.l d3 move.b d0,d3 cmpi.w #1,d3 bcs.w locret_6BF34 movea.l off_8A3D8(d3.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_6BE14: ; DATA XREF: OS4:0008A3E0o ; OS4:0008A3E4o ... clr.l (dword_FFFFA39C).w clr.b (byte_FFFFA3A0).w clr.w (word_FFFFA3A2).w clr.w (word_FFFFA368).w clr.b (byte_FFFFA366).w cmpi.b #2,d0 bne.s loc_6BE3C tst.b (byte_FFFFB54A).w bne.s loc_6BE3C clr.l (dword_FFFF82B8).w clr.b (byte_FFFF82BC).w loc_6BE3C: ; CODE XREF: sub_6BDFE+2Ej ; sub_6BDFE+34j clr.b (byte_FFFFA38A).w clr.w (word_FFFFA374).w clr.w (word_FFFFA37C).w clr.w (word_FFFFA37E).w clr.w (word_FFFFA380).w clr.w (word_FFFFA382).w movea.w #$FFFF,a2 move.w a2,(word_FFFFA386).w clr.w (word_FFFFA384).w move.w a2,(word_FFFFA388).w clr.w (word_FFFFA398).w clr.w (word_FFFFA39A).w clr.b (byte_FFFFA364).w bclr #0,(byte_FFFFA35A).w bclr #2,(byte_FFFFA35A).w bclr #5,(byte_FFFFA35B).w bclr #1,(byte_FFFFA35A).w bclr #7,(byte_FFFFA35B).w bclr #5,(byte_FFFFA35A).w bclr #3,(byte_FFFFA35A).w bclr #6,(byte_FFFFA35B).w bset #7,(byte_FFFFA35A).w bclr #4,(byte_FFFFA35A).w bclr #6,(byte_FFFFA35A).w bclr #0,(byte_FFFFA35B).w bclr #4,(byte_FFFFA35B).w bclr #3,(byte_FFFFA35B).w bclr #7,(byte_FFFFA35C).w clr.w (word_FFFFA392).w clr.w (word_FFFFA390).w clr.b (byte_FFFFA396).w clr.b (byte_FFFFA397).w move.b (DI_ICAT_KE_CAT_NUM_CATALYST_TO_DIAGNOSE).l,d0 ; The number of catalytic converters to diagnose. ; Unitless moveq #1,d4 cmpi.b #1,d0 bra.s loc_6BF22 ; --------------------------------------------------------------------------- loc_6BEE8: ; CODE XREF: sub_6BDFE:loc_6BF22j clr.l d3 move.b d4,d3 clr.b -$5C8B(d3.w) clr.w unk_FFFFA36C(d3.w*2) clr.b -$5C8F(d3.w) move.b #$64,var_5CAB(d3.w) ; 'd' clr.b -$5C95(d3.w) clr.w byte_FFFFA35C(d3.w*2) clr.w byte_FFFFA38A(d3.w*2) clr.w unk_FFFFA376(d3.w*2) addq.b #1,d4 cmp.b d4,d0 loc_6BF22: ; CODE XREF: sub_6BDFE+E8j bcc.s loc_6BEE8 bra.s locret_6BF34 ; --------------------------------------------------------------------------- loc_6BF26: ; DATA XREF: OS4:0008A3DCo ; OS4:0008A3E8o ... clr.w (word_FFFFA368).w clr.b (byte_FFFFA366).w bclr #4,(byte_FFFFA35B).w locret_6BF34: ; CODE XREF: sub_6BDFE+8j ; sub_6BDFE+126j ; DATA XREF: ... rts ; End of function sub_6BDFE ; =============== S U B R O U T I N E ======================================= sub_6BF36: ; CODE XREF: sub_6BF68+1EEp btst #1,(byte_FFFFA35A).w beq.s locret_6BF66 tst.w (word_FFFFAAA2).w bne.s loc_6BF4C move.w #$400,(word_FFFFA358).w bra.s locret_6BF66 ; --------------------------------------------------------------------------- loc_6BF4C: ; CODE XREF: sub_6BF36+Cj move.w (word_FFFFAAA2).w,d3 ext.l d3 divs.w #5,d3 addi.w #$400,d3 cmpi.w #$7FFF,d3 bls.s loc_6BF62 clr.w d3 loc_6BF62: ; CODE XREF: sub_6BF36+28j move.w d3,(word_FFFFA358).w locret_6BF66: ; CODE XREF: sub_6BF36+6j ; sub_6BF36+14j rts ; End of function sub_6BF36 ; =============== S U B R O U T I N E ======================================= sub_6BF68: ; CODE XREF: DoLoopC+35Ap movem.l d0-d2/d6,-(sp) move.w (word_FFFFAEBE).w,d3 cmp.w (DI_ICAT_KE_CAT_IDLE_VEHICLE_SPEED_MAX).l,d3 ; Maximum vehicle speed value to consider the vehicle idling. ; MPH bhi.s loc_6BFBC tst.b (byte_FFFFB370).w beq.s loc_6BF8C cmpi.b #$A,(byte_FFFF9060).w bne.s loc_6BF8C move.w (word_FFFF9050).w,d3 bra.s loc_6BF90 ; --------------------------------------------------------------------------- loc_6BF8C: ; CODE XREF: sub_6BF68+14j ; sub_6BF68+1Cj move.w (word_FFFFAB66).w,d3 loc_6BF90: ; CODE XREF: sub_6BF68+22j cmp.w (DI_ICAT_KE_CAT_IDLE_TPS_MAX).l,d3 ; Maximum Throttle position value to consider the vehicle idling. ; Percent bhi.s loc_6BFBC move.l (EngineRunTime).w,d3 bls.s loc_6BFBC movea.l (dword_FFFFB5DE).w,a3 move.w (word_FFFFA374).w,d3 add.w $A(a3),d3 bcs.s loc_6BFB2 cmpi.w #$4B00,d3 bls.s loc_6BFB6 loc_6BFB2: ; CODE XREF: sub_6BF68+42j move.w #$4B00,d3 loc_6BFB6: ; CODE XREF: sub_6BF68+48j move.w d3,(word_FFFFA374).w bra.s loc_6BFC0 ; --------------------------------------------------------------------------- loc_6BFBC: ; CODE XREF: sub_6BF68+Ej ; sub_6BF68+2Ej ... clr.w (word_FFFFA374).w loc_6BFC0: ; CODE XREF: sub_6BF68+52j movea.w (DesiredIdleThrottleArea).w,a3 move.w (EngineRPM_PID_000C___).w,d3 move.w (word_FFFFA0DC).w,d0 mulu.w #5,d0 lsr.l #6,d0 move.w (DesiredIdleSpeed).w,d1 move.w (word_FFFFA378).w,d2 cmp.w (DI_ICAT_KE_CAT_CONVERTER_TEMP_MAX).l,d2 ; Maximum acceptable converter temperature value. ; Degrees_C sle d2 neg.b d2 clr.w d5 move.b (byte_FFFFB2EE).w,d5 move.w (word_FFFFA37C).w,d6 cmp.w DI_ICAT_KV_CAT_RPM_CHANGE_MAX(d5.w*2),d6 ; Used to set the maximum RPM change value based on whether or not fuel control mode is active. ; RPM bhi.s loc_6C052 clr.w d4 move.b (DI_ICAT_KE_CAT_IDLE_AIRFLOW_MIN).l,d4 ; Minimum airflow value for closed loop stability. ; gm_per_sec cmp.w d0,d4 bhi.s loc_6C052 clr.w d4 move.b (DI_ICAT_KE_CAT_IDLE_AIRFLOW_MAX).l,d4 ; Maximum airflow value for closed loop stability. ; gm_per_sec cmp.w d0,d4 bcs.s loc_6C052 move.w (word_FFFFA394).w,d4 sub.w a3,d4 bcc.s loc_6C01A neg.w d4 loc_6C01A: ; CODE XREF: sub_6BF68+AEj cmp.w (DI_ICAT_KE_CAT_IDLE_EFF_AREA_MAX).l,d4 ; Maximum change in desired idle effective area per 12.5 ms period. ; Millimeters_Squared bhi.s loc_6C052 move.l d3,d4 sub.w d1,d4 bcc.s loc_6C02A clr.w d4 loc_6C02A: ; CODE XREF: sub_6BF68+BEj cmp.w (DI_ICAT_KE_CAT_DESIRED_IDLE_RPM_GAIN_MAX).l,d4 bhi.s loc_6C052 sub.w d3,d1 bcc.s loc_6C038 clr.w d1 loc_6C038: ; CODE XREF: sub_6BF68+CCj cmp.w (DI_ICAT_KE_CAT_DESIRED_IDLE_RPM_DROP_MAX).l,d1 bhi.s loc_6C052 tst.b d2 beq.s loc_6C052 tst.b (byte_FFFFA3A0).w beq.s loc_6C052 bset #3,(byte_FFFFA35A).w bra.s loc_6C058 ; --------------------------------------------------------------------------- loc_6C052: ; CODE XREF: sub_6BF68+8Ej ; sub_6BF68+9Aj ... bclr #3,(byte_FFFFA35A).w loc_6C058: ; CODE XREF: sub_6BF68+E8j move.w a3,(word_FFFFA394).w btst #5,(byte_FFFFA35B).w beq.s loc_6C06C move.w (DI_ICAT_KE_CAT_STABILIZATION_TIME_MAX).l,d4 ; Maximum amount of stabilization time before enabling the catalyst diagnostic. ; Seconds bra.s loc_6C072 ; --------------------------------------------------------------------------- loc_6C06C: ; CODE XREF: sub_6BF68+FAj move.w (DI_ICAT_KE_CAT_STABILIZATION_TIME_MIN).l,d4 ; Minimum amount of stabilization time to enable the catalyst diagnostic. ; Seconds loc_6C072: ; CODE XREF: sub_6BF68+102j tst.b (byte_FFFFB2EE).w bne.s loc_6C082 btst #0,(byte_FFFFA35A).w bne.w loc_6C146 loc_6C082: ; CODE XREF: sub_6BF68+10Ej btst #5,(byte_FFFFA35A).w beq.w loc_6C146 cmp.w (word_FFFFA398).w,d4 bcs.s loc_6C0C0 move.w d3,(word_FFFFA382).w move.w d3,(word_FFFFA386).w move.w d3,(word_FFFFA384).w move.w d3,(word_FFFFA388).w bclr #2,(byte_FFFFA35A).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA398).w,d4 add.w $A(a2),d4 bcc.s loc_6C0BA move.w #$FFFF,d4 loc_6C0BA: ; CODE XREF: sub_6BF68+14Cj move.w d4,(word_FFFFA398).w bra.s loc_6C10C ; --------------------------------------------------------------------------- loc_6C0C0: ; CODE XREF: sub_6BF68+128j btst #3,(byte_FFFFA35A).w beq.s loc_6C102 move.w (word_FFFF8242).w,d4 cmp.w (DI_ICAT_KE_CAT_MAX_ETH_PERCENT).l,d4 ; Minimum fuel ethanol percent threshold to enable the catalyst test. ; Percent bhi.s loc_6C102 bset #2,(byte_FFFFA35A).w move.b (byte_FFFFB2EE).w,d4 beq.s loc_6C0F2 btst #0,(byte_FFFFA35A).w bne.s loc_6C0F2 move.w d3,(word_FFFFA382).w move.w d3,(word_FFFFA386).w bra.s loc_6C10C ; --------------------------------------------------------------------------- loc_6C0F2: ; CODE XREF: sub_6BF68+176j ; sub_6BF68+17Ej tst.b d4 beq.s loc_6C0FC move.w d6,(word_FFFFA380).w bra.s loc_6C10C ; --------------------------------------------------------------------------- loc_6C0FC: ; CODE XREF: sub_6BF68+18Cj move.w d6,(word_FFFFA37E).w bra.s loc_6C10C ; --------------------------------------------------------------------------- loc_6C102: ; CODE XREF: sub_6BF68+15Ej ; sub_6BF68+16Aj clr.w (word_FFFFA398).w bclr #2,(byte_FFFFA35A).w loc_6C10C: ; CODE XREF: sub_6BF68+156j ; sub_6BF68+188j ... cmp.w (word_FFFFA384).w,d3 bls.s loc_6C116 move.w d3,(word_FFFFA384).w loc_6C116: ; CODE XREF: sub_6BF68+1A8j cmp.w (word_FFFFA388).w,d3 bcc.s loc_6C120 move.w d3,(word_FFFFA388).w loc_6C120: ; CODE XREF: sub_6BF68+1B2j cmp.w (word_FFFFA382).w,d3 bls.s loc_6C12A move.w d3,(word_FFFFA382).w loc_6C12A: ; CODE XREF: sub_6BF68+1BCj cmp.w (word_FFFFA386).w,d3 bcc.s loc_6C134 move.w d3,(word_FFFFA386).w loc_6C134: ; CODE XREF: sub_6BF68+1C6j move.w (word_FFFFA382).w,d3 sub.w (word_FFFFA386).w,d3 bcc.s loc_6C140 clr.w d3 loc_6C140: ; CODE XREF: sub_6BF68+1D4j move.w d3,(word_FFFFA37C).w bra.s loc_6C150 ; --------------------------------------------------------------------------- loc_6C146: ; CODE XREF: sub_6BF68+116j ; sub_6BF68+120j clr.w (word_FFFFA398).w bclr #2,(byte_FFFFA35A).w loc_6C150: ; CODE XREF: sub_6BF68+1DCj jsr sub_6BB84 jsr sub_6BF36 btst #5,(byte_FFFFAD8B).w sne d3 neg.b d3 btst #4,(byte_FFFFA35B).w sne d4 neg.b d4 cmp.b d3,d4 bne.s loc_6C18C movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA368).w,d3 add.w $A(a2),d3 bcc.s loc_6C186 move.w #$FFFF,d3 loc_6C186: ; CODE XREF: sub_6BF68+218j move.w d3,(word_FFFFA368).w bra.s loc_6C190 ; --------------------------------------------------------------------------- loc_6C18C: ; CODE XREF: sub_6BF68+20Aj clr.w (word_FFFFA368).w loc_6C190: ; CODE XREF: sub_6BF68+222j move.w (word_FFFFA368).w,d3 cmp.w (DI_ICAT_KE_CAT_AC_CLUTCH_IS_STABLE_TIME).l,d3 ; Required time for AC clutch state to remain unchanged. ; Seconds shi d3 neg.b d3 move.b d3,(byte_FFFFA365).w bclr #4,(byte_FFFFA35B).w btst #5,(byte_FFFFAD8B).w beq.s loc_6C1B6 bset #4,(byte_FFFFA35B).w loc_6C1B6: ; CODE XREF: sub_6BF68+246j tst.b (DI_ICAT_KE_CAT_CONTROLS_AC).l beq.s loc_6C22A btst #5,(byte_FFFFAD8B).w beq.s loc_6C1E2 move.w (word_FFFFAEBE).w,d3 cmp.w (DI_ICAT_KE_CAT_AC_CLUTCH_HAS_BEEN_ON_VST).l,d3 ; Maximum vehicle speed threshold to allow AC_Clutch_Has_Been_Onset to TRUE. ; MPH scs d3 neg.b d3 move.b d3,(byte_FFFFA366).w clr.b (byte_FFFFA354).w clr.w (word_FFFFA36A).w bra.s loc_6C22A ; --------------------------------------------------------------------------- loc_6C1E2: ; CODE XREF: sub_6BF68+25Cj move.w (word_FFFFAEBE).w,d3 cmp.w (DI_ICAT_KE_CAT_AC_CLUTCH_HAS_BEEN_ON_VST).l,d3 ; Maximum vehicle speed threshold to allow AC_Clutch_Has_Been_Onset to TRUE. ; MPH bcs.s loc_6C1F2 clr.b (byte_FFFFA366).w loc_6C1F2: ; CODE XREF: sub_6BF68+284j btst #6,(byte_FFFFA35A).w beq.s loc_6C226 tst.b (byte_FFFFA366).w beq.s loc_6C226 move.w (word_FFFFA36A).w,d3 cmp.w (DI_ICAT_KE_CAT_AC_OFF_EXTEND_TIME_MAX).l,d3 ; Maximum time allowed to hold AC Clutch disengaged. ; Seconds bcc.s loc_6C226 move.b #1,(byte_FFFFA354).w movea.l (dword_FFFFB5DE).w,a2 add.w $A(a2),d3 bcc.s loc_6C220 move.w #$FFFF,d3 loc_6C220: ; CODE XREF: sub_6BF68+2B2j move.w d3,(word_FFFFA36A).w bra.s loc_6C22A ; --------------------------------------------------------------------------- loc_6C226: ; CODE XREF: sub_6BF68+290j ; sub_6BF68+296j ... clr.b (byte_FFFFA354).w loc_6C22A: ; CODE XREF: sub_6BF68+254j ; sub_6BF68+278j ... jsr sub_6BAAC movem.l (sp)+,d0-d2/d6 rts ; End of function sub_6BF68 ; =============== S U B R O U T I N E ======================================= sub_6C236: ; CODE XREF: DoLoopD+13Cp movem.l d0-d1,-(sp) cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_6C298 btst #1,(byte_FFFF89D6).w bne.s loc_6C298 btst #1,(byte_FFFF89D8).w bne.s loc_6C298 move.b (byte_FFFFA3AF).w,d3 cmpi.b #5,d3 bcc.s loc_6C264 cmpi.b #4,d3 bne.s loc_6C272 loc_6C264: ; CODE XREF: sub_6C236+26j bset #5,(byte_FFFFA35B).w bclr #4,(byte_FFFFA35A).w bra.s loc_6C2A4 ; --------------------------------------------------------------------------- loc_6C272: ; CODE XREF: sub_6C236+2Cj bset #4,(byte_FFFFA35A).w move.w (word_FFFFAEBE).w,d3 cmp.w (DI_ICAT_KE_CAT_IDLE_VEHICLE_SPEED_MAX).l,d3 ; Maximum vehicle speed value to consider the vehicle idling. ; MPH bls.s loc_6C2A4 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DI_ICAT_KE_CAT_RPM_TO_WARMUP_CATALYST).l,d3 ; Minimum RPM that must be maintained for the catalyst warmup timer to increment. ; RPM bls.s loc_6C2A4 bclr #5,(byte_FFFFA35B).w bra.s loc_6C2A4 ; --------------------------------------------------------------------------- loc_6C298: ; CODE XREF: sub_6C236+Cj ; sub_6C236+14j ... bclr #5,(byte_FFFFA35B).w bset #4,(byte_FFFFA35A).w loc_6C2A4: ; CODE XREF: sub_6C236+3Aj ; sub_6C236+4Cj ... move.w (CoolantTemperatureOrDefault).w,d0 btst #7,(byte_FFFFA35A).w beq.w loc_6C356 btst #6,(byte_FFFFA35A).w beq.w loc_6C356 moveq #1,d4 move.b (DI_ICAT_KE_CAT_NUM_CATALYST_TO_DIAGNOSE).l,d1 ; The number of catalytic converters to diagnose. ; Unitless move.l d4,d3 move.l d3,d5 cmp.b d1,d5 bhi.s loc_6C2DC loc_6C2CC: ; CODE XREF: sub_6C236+A4j clr.l d5 move.b d3,d5 and.b -$5C95(d5.w),d4 addq.b #1,d3 cmp.b d3,d1 bcc.s loc_6C2CC loc_6C2DC: ; CODE XREF: sub_6C236+94j tst.b d4 beq.s loc_6C356 tst.b (byte_FFFFA365).w beq.s loc_6C356 tst.b (byte_FFFFA363).w beq.s loc_6C356 cmpi.b #1,(byte_FFFFB2EF).w bne.s loc_6C2FA tst.b (byte_FFFF98E0).w bne.s loc_6C300 loc_6C2FA: ; CODE XREF: sub_6C236+BCj tst.b (byte_FFFFB2EE).w beq.s loc_6C356 loc_6C300: ; CODE XREF: sub_6C236+C2j move.w (word_FFFF82D2).w,d3 cmp.w (DI_ICAT_KE_CAT_BAROMETRIC_PRESSURE_MIN).l,d3 ; Minimum barometric pressure value to enable the catalyst test at idle. ; kPa bls.s loc_6C356 cmp.w (DI_ICAT_KE_CAT_COOLANT_TEMP_MIN).l,d0 ; Minimum coolant temperature value to enable the catalyst test at idle. ; Degrees_C blt.s loc_6C356 cmp.w (DI_ICAT_KE_CAT_COOLANT_TEMP_MAX).l,d0 ; Maximum coolant Temperature value to enable the catalyst test at idle. ; Degrees_C bgt.s loc_6C356 move.w (word_FFFFB4A2).w,d3 cmp.w (DI_ICAT_KE_CAT_VOLTAGE_MIN).l,d3 ; Minimum battery voltage threshold to enable the catalyst test at idle. ; Volts bls.s loc_6C356 tst.w (word_FFFFA374).w bls.s loc_6C356 move.w (word_FFFFA374).w,d3 cmp.w (DI_ICAT_KE_CAT_EXCESS_IDLE_TIME_LIMIT).l,d3 ; Maximum amount of idle time to enable the catalyst test at idle. A max value in this cal will never check the idle time limit, ; Seconds bhi.s loc_6C356 move.w (word_FFFFB3E8).w,d3 cmp.w (DI_ICAT_KE_CAT_INTAKE_AIR_TEMP_MAX).l,d3 ; Maximum intake air temperature threshold to continue to enable the catalyst test. ; Degrees_C bge.s loc_6C356 btst #4,(byte_FFFFA35A).w beq.s loc_6C356 bset #5,(byte_FFFFA35A).w bra.s loc_6C35C ; --------------------------------------------------------------------------- loc_6C356: ; CODE XREF: sub_6C236+78j ; sub_6C236+82j ... bclr #5,(byte_FFFFA35A).w loc_6C35C: ; CODE XREF: sub_6C236+11Ej movem.l (sp)+,d0-d1 rts ; End of function sub_6C236 ; =============== S U B R O U T I N E ======================================= sub_6C362: ; CODE XREF: DoLoopF+104p var_5CB0 = -$5CB0 var_5CAB = -$5CAB var_5C82 = -$5C82 movem.l d0-d2/d6-a1,-(sp) moveq #1,d0 move.b (DI_ICAT_KE_CAT_NUM_FUEL_CONTROL_BANKS).l,d1 ; The number of fuel control banks to loop during each process. ; Unitless move.l d0,d3 move.l d3,d6 cmp.b d1,d6 bhi.w loc_6C42E loc_6C378: ; CODE XREF: sub_6C362+C8j clr.l d6 move.b d3,d6 clr.w d4 move.b byte_8A837(d6.w),d4 move.w word_FFFFA89E(d4.w*2),d4 andi.l #$FFFF,d4 asl.l #4,d4 cmpi.l #$FFFF,d4 bhi.s loc_6C3AA andi.l #$FFFF,d4 move.w #$101,d6 divu.w d6,d4 bra.s loc_6C3AE ; --------------------------------------------------------------------------- loc_6C3AA: ; CODE XREF: sub_6C362+38j move.b #$FF,d4 loc_6C3AE: ; CODE XREF: sub_6C362+46j cmp.b (DI_ICAT_KE_CAT_INTEGRATOR_MIN).l,d4 ; Minimum integrator value to enable the catalyst diagnostic. ; Unitless bcs.s loc_6C41A clr.l d6 move.b d3,d6 clr.w d4 move.b byte_8A837(d6.w),d4 move.w word_FFFFA89E(d4.w*2),d4 andi.l #$FFFF,d4 asl.l #4,d4 cmpi.l #$FFFF,d4 bhi.s loc_6C3E6 andi.l #$FFFF,d4 divu.w #$101,d4 bra.s loc_6C3EA ; --------------------------------------------------------------------------- loc_6C3E6: ; CODE XREF: sub_6C362+76j move.b #$FF,d4 loc_6C3EA: ; CODE XREF: sub_6C362+82j cmp.b (DI_ICAT_KE_CAT_INTEGRATOR_MAX).l,d4 ; Maximum integrator value to enable the catalyst diagnostic. ; Unitless bhi.s loc_6C41A clr.l d4 move.b d3,d4 move.w word_FFFFA39A(d4.w*2),d7 cmp.w (DI_ICAT_KE_NUM_INTEGRATOR_SAMPLES).l,d7 ; Number of consecutive periods that all integrator values must remain within range to establish stability. ; Unitless bcc.s loc_6C426 clr.w d0 movea.l d4,a1 move.l d7,d4 addq.w #1,d4 bcc.s loc_6C412 move.w #$FFFF,d4 loc_6C412: ; CODE XREF: sub_6C362+AAj move.w d4,$1C+var_5C82(a1.w*2) bra.s loc_6C426 ; --------------------------------------------------------------------------- loc_6C41A: ; CODE XREF: sub_6C362+52j ; sub_6C362+8Ej clr.b d0 clr.l d6 move.b d3,d6 clr.w word_FFFFA39A(d6.w*2) loc_6C426: ; CODE XREF: sub_6C362+A0j ; sub_6C362+B6j addq.b #1,d3 cmp.b d3,d1 bcc.w loc_6C378 loc_6C42E: ; CODE XREF: sub_6C362+12j move.b d0,(byte_FFFFA3A0).w moveq #1,d4 move.b (DI_ICAT_KE_CAT_NUM_CATALYST_TO_DIAGNOSE).l,d7 ; The number of catalytic converters to diagnose. ; Unitless move.l d7,d1 move.l d4,d3 move.l d3,d6 cmp.b d1,d6 bhi.s loc_6C45A loc_6C444: ; CODE XREF: sub_6C362+F6j clr.l d6 move.b d3,d6 btst #4,-$5565(d6.w) bne.s loc_6C454 clr.b d4 loc_6C454: ; CODE XREF: sub_6C362+EEj addq.b #1,d3 cmp.b d3,d1 bcc.s loc_6C444 loc_6C45A: ; CODE XREF: sub_6C362+E0j tst.b d4 beq.s loc_6C466 bset #6,(byte_FFFFA35B).w bra.s loc_6C46C ; --------------------------------------------------------------------------- loc_6C466: ; CODE XREF: sub_6C362+FAj bclr #6,(byte_FFFFA35B).w loc_6C46C: ; CODE XREF: sub_6C362+102j btst #3,(byte_FFFFAA98).w bne.s loc_6C484 btst #0,(byte_FFFFA35A).w beq.s loc_6C4B0 btst #2,(byte_FFFFA35A).w bne.s loc_6C4B0 loc_6C484: ; CODE XREF: sub_6C362+110j bclr #2,(byte_FFFFA35A).w bclr #0,(byte_FFFFA35A).w bclr #6,(byte_FFFFA35A).w btst #4,(byte_FFFFAA98).w bne.s loc_6C4BC move.b (byte_FFFFA38A).w,d3 addq.b #1,d3 bcc.s loc_6C4AA move.b #$FF,d3 loc_6C4AA: ; CODE XREF: sub_6C362+142j move.b d3,(byte_FFFFA38A).w bra.s loc_6C4BC ; --------------------------------------------------------------------------- loc_6C4B0: ; CODE XREF: sub_6C362+118j ; sub_6C362+120j tst.b (byte_FFFFB2EE).w beq.s loc_6C4BC bset #0,(byte_FFFFA35A).w loc_6C4BC: ; CODE XREF: sub_6C362+13Aj ; sub_6C362+14Cj ... move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DI_ICAT_KE_CAT_RPM_TO_WARMUP_CATALYST).l,d3 ; Minimum RPM that must be maintained for the catalyst warmup timer to increment. ; RPM bcc.s loc_6C500 move.w (word_FFFFAEBE).w,d3 cmp.w (DI_ICAT_KE_CAT_IDLE_VEHICLE_SPEED_MAX).l,d3 ; Maximum vehicle speed value to consider the vehicle idling. ; MPH bhi.s loc_6C51C move.w (word_FFFFA39A).w,d3 cmp.w (DI_ICAT_KE_CAT_MIN_TIME_ABOVE_MIN_RPM).l,d3 ; Minimum time that the minimum RPM must be maintained prior to entering idle for stabilization conditions to be satisfied. ; Seconds bcs.s loc_6C4FA move.l (EngineRunTime).w,d3 cmp.l (DI_ICAT_KE_CAT_ENGINE_RUN_TIME_MIN).l,d3 ; Minimum time from engine start before stabilized conditions are met. ; Seconds bcs.s loc_6C4F4 bset #6,(byte_FFFFA35A).w bra.s loc_6C4FA ; --------------------------------------------------------------------------- loc_6C4F4: ; CODE XREF: sub_6C362+188j bclr #6,(byte_FFFFA35A).w loc_6C4FA: ; CODE XREF: sub_6C362+17Cj ; sub_6C362+190j clr.w (word_FFFFA39A).w bra.s loc_6C51C ; --------------------------------------------------------------------------- loc_6C500: ; CODE XREF: sub_6C362+164j bclr #6,(byte_FFFFA35A).w movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA39A).w,d3 add.w $A(a2),d3 bcc.s loc_6C518 move.w #$FFFF,d3 loc_6C518: ; CODE XREF: sub_6C362+1B0j move.w d3,(word_FFFFA39A).w loc_6C51C: ; CODE XREF: sub_6C362+170j ; sub_6C362+19Cj move.b (byte_FFFFB2EB).w,d3 beq.s loc_6C528 cmpi.b #6,d3 bne.s loc_6C53C loc_6C528: ; CODE XREF: sub_6C362+1BEj move.b (byte_FFFFA38A).w,d2 cmp.b (DI_ICAT_KE_CAT_ATTEMPTS_THIS_TRIP_MAX).l,d2 ; Maximum number of test attempts this trip. ; Unitless bcc.s loc_6C53C btst #6,(byte_FFFFA35B).w beq.s loc_6C542 loc_6C53C: ; CODE XREF: sub_6C362+1C4j ; sub_6C362+1D0j bclr #6,(byte_FFFFA35A).w loc_6C542: ; CODE XREF: sub_6C362+1D8j tst.b (byte_FFFFB3C2).w beq.s loc_6C552 bclr #6,(byte_FFFFA35A).w clr.w (word_FFFFA39A).w loc_6C552: ; CODE XREF: sub_6C362+1E4j move.l d7,d2 moveq #1,d0 move.l d0,d1 cmp.b d2,d1 bhi.w loc_6C5F4 loc_6C55E: ; CODE XREF: sub_6C362+28Ej btst #5,(byte_FFFFAA98).w beq.s loc_6C5DC clr.l d5 move.b d0,d5 btst #6,-$5565(d5.w) bne.s loc_6C5EC cmpi.b #$FF,-$5C8B(d5.w) bcc.s loc_6C5EC lea -$5CAC(d5.w),a2 addq.b #1,$21(a2) clr.l d1 move.b d0,d1 move.w (word_FFFFA0DC).w,d3 mulu.w #5,d3 lsr.l #6,d3 add.w unk_FFFFA36C(d1.w*2),d3 bcc.s loc_6C5A2 move.w #$FFFF,d3 loc_6C5A2: ; CODE XREF: sub_6C362+23Aj move.w d3,$1C+var_5CB0(d5.w*2) clr.l d1 move.b d0,d1 clr.w d6 move.b -$5C8B(d1.w),d6 clr.l d1 move.b d0,d1 clr.l d3 move.w unk_FFFFA36C(d1.w*2),d3 divu.w d6,d3 bvs.s loc_6C5D0 cmpi.w #$FF,d3 bhi.s loc_6C5D0 cmpi.b #$A0,d3 bls.s loc_6C5D4 loc_6C5D0: ; CODE XREF: sub_6C362+260j ; sub_6C362+266j move.b #$A0,d3 loc_6C5D4: ; CODE XREF: sub_6C362+26Cj move.b d3,$1C+var_5CAB(d5.w) bra.s loc_6C5EC ; --------------------------------------------------------------------------- loc_6C5DC: ; CODE XREF: sub_6C362+202j clr.l d3 move.b d0,d3 clr.b -$5C8B(d3.w) clr.w unk_FFFFA36C(d3.w*2) loc_6C5EC: ; CODE XREF: sub_6C362+210j ; sub_6C362+21Aj ... addq.b #1,d0 cmp.b d0,d2 bcc.w loc_6C55E loc_6C5F4: ; CODE XREF: sub_6C362+1F8j moveq #1,d6 move.l d6,d2 cmp.b d7,d2 bhi.w loc_6C6FA loc_6C5FE: ; CODE XREF: sub_6C362+394j clr.l d2 move.b d6,d2 tst.w word_FFFFAAA0(d2.w*2) bge.s loc_6C680 cmpi.b #1,d6 bne.s loc_6C662 move.w (word_FFFFA378).w,d0 jsr sub_6BB68 move.w d0,d1 move.b (byte_FFFFA372).w,d0 jsr sub_6BB44 lea (DI_ICAT_KA_CAT_1_COMP_RICH_TO_LEAN).l,a0 loc_6C62C: ; CODE XREF: sub_6C362+340j moveq #$12,d2 jsr sub_8791E clr.w d3 move.b d0,d3 move.w (word_FFFFAEF8).w,d4 tblu.w (DI_ICAT_KV_CAT_1_ETH_COMPENSATION_FACTOR).l,d4 mulu.w d4,d3 lsr.l #8,d3 lsr.l #4,d3 cmpi.w #$FF,d3 bhi.s loc_6C656 cmpi.b #$C8,d3 bls.s loc_6C65A loc_6C656: ; CODE XREF: sub_6C362+2ECj move.b #$C8,d3 loc_6C65A: ; CODE XREF: sub_6C362+2F2j move.b d3,(byte_FFFFA356).w bra.w loc_6C6F2 ; --------------------------------------------------------------------------- loc_6C662: ; CODE XREF: sub_6C362+2ACj move.w (word_FFFFA37A).w,d0 jsr sub_6BB68 move.w d0,d1 move.b (byte_FFFFA373).w,d0 jsr sub_6BB44 lea (DI_ICAT_KA_CAT_2_COMP_RICH_TO_LEAN).l,a0 bra.s loc_6C6C0 ; --------------------------------------------------------------------------- loc_6C680: ; CODE XREF: sub_6C362+2A6j cmpi.b #1,d6 bne.s loc_6C6A4 move.w (word_FFFFA378).w,d0 jsr sub_6BB68 move.w d0,d1 move.b (byte_FFFFA372).w,d0 jsr sub_6BB44 lea (DI_ICAT_KA_CAT_1_COMP_LEAN_TO_RICH).l,a0 bra.s loc_6C62C ; --------------------------------------------------------------------------- loc_6C6A4: ; CODE XREF: sub_6C362+322j move.w (word_FFFFA37A).w,d0 jsr sub_6BB68 move.w d0,d1 move.b (byte_FFFFA373).w,d0 jsr sub_6BB44 lea (DI_ICAT_KA_CAT_2_COMP_LEAN_TO_RICH).l,a0 loc_6C6C0: ; CODE XREF: sub_6C362+31Cj moveq #$12,d2 jsr sub_8791E clr.w d3 move.b d0,d3 move.w (word_FFFFAEF8).w,d4 tblu.w (DI_ICAT_KV_CAT_2_ETH_COMPENSATION_FACTOR).l,d4 mulu.w d4,d3 lsr.l #8,d3 lsr.l #4,d3 cmpi.w #$FF,d3 bhi.s loc_6C6EA cmpi.b #$C8,d3 bls.s loc_6C6EE loc_6C6EA: ; CODE XREF: sub_6C362+380j move.b #$C8,d3 loc_6C6EE: ; CODE XREF: sub_6C362+386j move.b d3,(byte_FFFFA357).w loc_6C6F2: ; CODE XREF: sub_6C362+2FCj addq.b #1,d6 cmp.b d6,d7 bcc.w loc_6C5FE loc_6C6FA: ; CODE XREF: sub_6C362+298j movem.l (sp)+,d0-d2/d6-a1 rts ; End of function sub_6C362 ; =============== S U B R O U T I N E ======================================= sub_6C700: ; CODE XREF: DoLoopG+218p movem.l d0-d2,-(sp) move.w (word_FFFFA378).w,d0 move.b (DI_ICAT_KE_CAT_NUM_CATALYST_TO_DIAGNOSE).l,d1 ; The number of catalytic converters to diagnose. ; Unitless moveq #1,d4 move.l d4,d2 cmp.b d1,d2 bhi.s loc_6C72C loc_6C716: ; CODE XREF: sub_6C700+2Aj clr.l d2 move.b d4,d2 move.w unk_FFFFA376(d2.w*2),d3 cmp.w d0,d3 bge.s loc_6C726 move.w d3,d0 loc_6C726: ; CODE XREF: sub_6C700+22j addq.b #1,d4 cmp.b d4,d1 bcc.s loc_6C716 loc_6C72C: ; CODE XREF: sub_6C700+14j cmp.w (DI_ICAT_KE_CAT_MAT_BURNOFF_TEMP_THRESH).l,d0 ; The minimum temperature required for the catalytic converter toburn off the material when it is 'green' ; Degrees C_S blt.s loc_6C75C cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_6C75C movea.l (dword_FFFFB5DE).w,a2 clr.l d3 move.w $A(a2),d3 add.l (dword_FFFF82B8).w,d3 cmpi.l #$7FFFFFFF,d3 bls.s loc_6C758 move.l #$7FFFFFFF,d3 loc_6C758: ; CODE XREF: sub_6C700+50j move.l d3,(dword_FFFF82B8).w loc_6C75C: ; CODE XREF: sub_6C700+32j ; sub_6C700+3Aj jsr sub_2749A tst.b d0 beq.s loc_6C77A move.l (dword_FFFF82B8).w,d3 cmp.l (DI_ICAT_KE_CAT_MATERIAL_BURNOFF_DELAY).l,d3 bcc.s loc_6C77A move.b #1,(byte_FFFF82BC).w bra.s loc_6C78A ; --------------------------------------------------------------------------- loc_6C77A: ; CODE XREF: sub_6C700+64j ; sub_6C700+70j move.l (dword_FFFF82B8).w,d3 cmp.l (DI_ICAT_KE_CAT_MATERIAL_BURNOFF_DELAY).l,d3 bcs.s loc_6C78A clr.b (byte_FFFF82BC).w loc_6C78A: ; CODE XREF: sub_6C700+78j ; sub_6C700+84j tst.b (byte_FFFFA1B3).w beq.s loc_6C7AE move.l (DI_ICAT_KV_CAT_DISABLE_IF_CODE_SET).l,d3 ; Disable diagnostic test if any malfunctions in the groups marked TRUE are active. ; BOOLEAN and.l (byte_FFFF8252).w,d3 bne.s loc_6C7AE move.w (word_FFFFB3E8).w,d3 cmp.w (DI_ICAT_KE_CAT_INTAKE_AIR_TEMP_MIN).l,d3 ; Minimum intake air temperature threshold to continue to enable the catalyst test. ; Degrees_C ble.s loc_6C7AE tst.b (byte_FFFF82BC).w beq.s loc_6C7B4 loc_6C7AE: ; CODE XREF: sub_6C700+8Ej ; sub_6C700+9Aj ... bclr #7,(byte_FFFFA35A).w loc_6C7B4: ; CODE XREF: sub_6C700+ACj jsr sub_6BC6C movem.l (sp)+,d0-d2 rts ; End of function sub_6C700 ; =============== S U B R O U T I N E ======================================= sub_6C7C0: ; CODE XREF: sub_6CA9E+52p move.b (byte_FFFFB439).w,d3 and.b (byte_FFFFB43A).w,d3 beq.w loc_6C868 move.w (word_FFFFA0DC).w,d3 cmp.w (DG_IDLE_KE_IAC_VALVE_TEST_AIRFLOW_MIN).l,d3 ; Lower threshold airflow value to disable the valve test. ; Grams/Sec bls.w loc_6C868 move.w (word_FFFFA0DC).w,d3 cmp.w (DG_IDLE_KE_IAC_VALVE_TEST_AIRFLOW_MAX).l,d3 ; Upper threshold airflow value to disable the valve test. ; Grams/Sec bcc.w loc_6C868 move.w (word_FFFFAEBC).w,d3 cmp.w (DG_IDLE_KE_IAC_VALVE_TEST_VEH_SPEED_MIN).l,d3 ; Lower threshold vehicle speed value to disable the valve test. ; MPH bls.s loc_6C868 move.w (word_FFFFAEBC).w,d3 cmp.w (DG_IDLE_KE_IAC_VALVE_TEST_VEH_SPEED_MAX).l,d3 ; Upper threshold vehicle speed value to disable the valve test. ; MPH bcc.s loc_6C868 tst.b (DG_IDLE_KE_IAC_INTRUSIVE_TEST_OPTION).l ; This calibration option determines whether or not the valvetest should be allowed to execute. ; BOOLEAN beq.s loc_6C868 btst #4,(byte_FFFFB07C).w beq.s loc_6C860 tst.b (byte_FFFFB370).w beq.s loc_6C824 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_6C824 move.w (word_FFFF9050).w,d3 bra.s loc_6C828 ; --------------------------------------------------------------------------- loc_6C824: ; CODE XREF: sub_6C7C0+54j ; sub_6C7C0+5Cj move.w (word_FFFFAB66).w,d3 loc_6C828: ; CODE XREF: sub_6C7C0+62j sub.w (word_FFFFB092).w,d3 tst.w d3 bge.s loc_6C832 neg.w d3 loc_6C832: ; CODE XREF: sub_6C7C0+6Ej move.w d3,(word_FFFFB08A).w move.w (EngineRPM_PID_000C___).w,d4 sub.w (word_FFFFB090).w,d4 bcc.s loc_6C842 neg.w d4 loc_6C842: ; CODE XREF: sub_6C7C0+7Ej move.w d4,(word_FFFFB088).w cmp.w (DG_IDLE_KE_IAC_TPS_DELTA_LIMIT).l,d3 ; TPS delta threshold to disable the valve test. ; Percent bcc.s loc_6C868 move.w (DG_IDLE_KE_IAC_RPM_DELTA_LIMIT).l,d3 ; RPM delta threshold to disable the valve test. ; RPM ext.l d3 andi.l #$FFFF,d4 cmp.l d3,d4 bge.s loc_6C868 loc_6C860: ; CODE XREF: sub_6C7C0+4Ej bset #6,(byte_FFFFB07C).w bra.s locret_6C86E ; --------------------------------------------------------------------------- loc_6C868: ; CODE XREF: sub_6C7C0+8j ; sub_6C7C0+16j ... bclr #6,(byte_FFFFB07C).w locret_6C86E: ; CODE XREF: sub_6C7C0+A6j rts ; End of function sub_6C7C0 ; =============== S U B R O U T I N E ======================================= sub_6C870: ; CODE XREF: OS1:00029046p ; sub_6CA9E+6p ... clr.w (word_FFFFB084).w clr.b (byte_FFFFB07C).w clr.w (word_FFFFB082).w clr.w (word_FFFFB08C).w clr.w (word_FFFFB090).w clr.w (word_FFFFB092).w clr.w (word_FFFFB088).w clr.w (word_FFFFB08A).w clr.b (byte_FFFFB08E).w clr.b (byte_FFFFB07F).w clr.b (byte_FFFFB07E).w clr.b (byte_FFFFB080).w clr.b (byte_FFFFB07D).w clr.w (word_FFFFB094).w clr.b (byte_FFFFB086).w rts ; End of function sub_6C870 ; =============== S U B R O U T I N E ======================================= sub_6C8AE: ; CODE XREF: sub_6CA9E+4Cp movem.l d0-d1,-(sp) move.b (byte_FFFFB07D).w,d0 btst #7,(byte_FFFFB07C).w beq.s loc_6C8CA moveq #8,d3 not.b d3 and.b d0,d3 move.b d3,d0 bra.w loc_6C9B6 ; --------------------------------------------------------------------------- loc_6C8CA: ; CODE XREF: sub_6C8AE+Ej clr.b d3 tst.b (byte_FFFFB436).w beq.s loc_6C8D6 ori.b #1,d3 loc_6C8D6: ; CODE XREF: sub_6C8AE+22j tst.b (byte_FFFFB435).w beq.s loc_6C8E0 ori.b #2,d3 loc_6C8E0: ; CODE XREF: sub_6C8AE+2Cj btst #1,(byte_FFFFB07C).w beq.s loc_6C8EC ori.b #4,d3 loc_6C8EC: ; CODE XREF: sub_6C8AE+38j btst #2,(byte_FFFFB07C).w beq.s loc_6C8F8 ori.b #8,d3 loc_6C8F8: ; CODE XREF: sub_6C8AE+44j tst.b (byte_FFFFB438).w beq.s loc_6C902 ori.b #$10,d3 loc_6C902: ; CODE XREF: sub_6C8AE+4Ej tst.b (byte_FFFFB437).w beq.s loc_6C90C ori.b #$20,d3 ; ' ' loc_6C90C: ; CODE XREF: sub_6C8AE+58j btst #0,(byte_FFFFB07C).w beq.s loc_6C918 ori.b #$40,d3 ; '@' loc_6C918: ; CODE XREF: sub_6C8AE+64j moveq #$40,d5 ; '@' move.l d3,d4 eor.b d5,d4 andi.b #$7F,d4 ; '' bne.s loc_6C92A moveq #$14,d0 bra.w loc_6C9B6 ; --------------------------------------------------------------------------- loc_6C92A: ; CODE XREF: sub_6C8AE+74j move.l d3,d5 andi.b #$1E,d5 moveq #8,d4 eor.b d4,d5 andi.b #$7F,d5 ; '' bne.s loc_6C93E loc_6C93A: ; CODE XREF: sub_6C8AE+9Ej moveq #$A,d0 bra.s loc_6C9B6 ; --------------------------------------------------------------------------- loc_6C93E: ; CODE XREF: sub_6C8AE+8Aj move.l d3,d5 andi.b #$1F,d5 moveq #1,d4 eor.b d4,d5 andi.b #$7F,d5 ; '' beq.s loc_6C93A move.l d3,d5 andi.b #$2D,d5 ; '-' moveq #4,d4 eor.b d4,d5 andi.b #$7F,d5 ; '' bne.s loc_6C962 loc_6C95E: ; CODE XREF: sub_6C8AE+C2j moveq #9,d0 bra.s loc_6C9B6 ; --------------------------------------------------------------------------- loc_6C962: ; CODE XREF: sub_6C8AE+AEj move.l d3,d5 andi.b #$2F,d5 ; '/' moveq #2,d4 eor.b d4,d5 andi.b #$7F,d5 ; '' beq.s loc_6C95E move.l d3,d5 moveq #$3F,d4 ; '?' and.b d4,d5 moveq #$22,d1 ; '"' eor.b d1,d5 andi.b #$7F,d5 ; '' bne.s loc_6C986 loc_6C982: ; CODE XREF: sub_6C8AE+E6j moveq #$11,d0 bra.s loc_6C9B6 ; --------------------------------------------------------------------------- loc_6C986: ; CODE XREF: sub_6C8AE+D2j move.l d3,d5 andi.b #$3D,d5 ; '=' moveq #$24,d1 ; '$' eor.b d1,d5 andi.b #$7F,d5 ; '' beq.s loc_6C982 move.l d3,d5 andi.b #$3E,d5 ; '>' moveq #$18,d1 eor.b d1,d5 andi.b #$7F,d5 ; '' bne.s loc_6C9AA loc_6C9A6: ; CODE XREF: sub_6C8AE+106j moveq #$12,d0 bra.s loc_6C9B6 ; --------------------------------------------------------------------------- loc_6C9AA: ; CODE XREF: sub_6C8AE+F6j and.b d4,d3 moveq #$11,d1 eor.b d1,d3 andi.b #$7F,d3 ; '' beq.s loc_6C9A6 loc_6C9B6: ; CODE XREF: sub_6C8AE+18j ; sub_6C8AE+78j ... move.b d0,(byte_FFFFB07D).w movem.l (sp)+,d0-d1 rts ; End of function sub_6C8AE ; =============== S U B R O U T I N E ======================================= sub_6C9C0: ; CODE XREF: sub_6CA9E+58p btst #6,(byte_FFFFB07C).w beq.w loc_6CA80 btst #3,(byte_FFFFB07D).w beq.w loc_6CA80 btst #4,(byte_FFFFB07C).w beq.s loc_6CA48 move.b (byte_FFFFB08E).w,d3 cmp.b (DG_IDLE_KE_IAC_VALVE_TEST_TIME_LIMIT).l,d3 ; This calibration limits how long the valve test will execute. ; Seconds bcs.s loc_6CA04 bset #5,(byte_FFFFB07C).w bclr #3,(byte_FFFFB07C).w bset #7,(byte_FFFFB07C).w bclr #4,(byte_FFFFB07C).w bra.w locret_6CA9C ; --------------------------------------------------------------------------- loc_6CA04: ; CODE XREF: sub_6C9C0+26j move.w (word_FFFFB08C).w,d3 movea.w (word_FFFFAC86).w,a2 sub.w a2,d3 bcc.s loc_6CA12 clr.w d3 loc_6CA12: ; CODE XREF: sub_6C9C0+4Ej move.w d3,(word_FFFFB082).w cmp.w (DG_IDLE_KE_IAC_AIRFLOW_RESPONSE_THRESH).l,d3 ; This calibration determines how much airflow decrease must occur in order to consider the valve functioning properly. ; Grams/Sec bcs.s loc_6CA36 bclr #5,(byte_FFFFB07C).w bset #3,(byte_FFFFB07C).w bset #7,(byte_FFFFB07C).w bclr #4,(byte_FFFFB07C).w loc_6CA36: ; CODE XREF: sub_6C9C0+5Cj move.b (byte_FFFFB08E).w,d3 addq.b #1,d3 bcc.s loc_6CA42 move.b #$FF,d3 loc_6CA42: ; CODE XREF: sub_6C9C0+7Cj move.b d3,(byte_FFFFB08E).w bra.s locret_6CA9C ; --------------------------------------------------------------------------- loc_6CA48: ; CODE XREF: sub_6C9C0+1Aj bset #4,(byte_FFFFB07C).w clr.b (byte_FFFFB08E).w move.w (word_FFFFAC86).w,(word_FFFFB08C).w clr.w (word_FFFFB082).w move.w (EngineRPM_PID_000C___).w,(word_FFFFB090).w tst.b (byte_FFFFB370).w beq.s loc_6CA76 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_6CA76 movea.w (word_FFFF9050).w,a2 bra.s loc_6CA7A ; --------------------------------------------------------------------------- loc_6CA76: ; CODE XREF: sub_6C9C0+A6j ; sub_6C9C0+AEj movea.w (word_FFFFAB66).w,a2 loc_6CA7A: ; CODE XREF: sub_6C9C0+B4j move.w a2,(word_FFFFB092).w bra.s locret_6CA9C ; --------------------------------------------------------------------------- loc_6CA80: ; CODE XREF: sub_6C9C0+6j ; sub_6C9C0+10j bclr #4,(byte_FFFFB07C).w clr.b (byte_FFFFB08E).w bclr #7,(byte_FFFFB07C).w bclr #3,(byte_FFFFB07C).w bclr #5,(byte_FFFFB07C).w locret_6CA9C: ; CODE XREF: sub_6C9C0+40j ; sub_6C9C0+86j ... rts ; End of function sub_6C9C0 ; =============== S U B R O U T I N E ======================================= sub_6CA9E: ; CODE XREF: DoLoopF+3CEp tst.b (byte_FFFFA7F9).w beq.s loc_6CAB2 jsr sub_6C870 jsr sub_6CD76 bra.s locret_6CB02 ; --------------------------------------------------------------------------- loc_6CAB2: ; CODE XREF: sub_6CA9E+4j move.w (EngineRpmError).w,d3 cmpi.w #$4000,d3 bgt.s loc_6CAC4 cmpi.w #$C000,d3 blt.s loc_6CACA bra.s loc_6CACE ; --------------------------------------------------------------------------- loc_6CAC4: ; CODE XREF: sub_6CA9E+1Cj move.w #$4000,d3 bra.s loc_6CACE ; --------------------------------------------------------------------------- loc_6CACA: ; CODE XREF: sub_6CA9E+22j move.w #$C000,d3 loc_6CACE: ; CODE XREF: sub_6CA9E+24j ; sub_6CA9E+2Aj move.w d3,(word_FFFFB094).w jsr sub_6CE22 jsr sub_6CDBA jsr sub_6CD00 jsr sub_6CC3C jsr sub_6C8AE jsr sub_6C7C0 jsr sub_6C9C0 jsr sub_6CB04 locret_6CB02: ; CODE XREF: sub_6CA9E+12j rts ; End of function sub_6CA9E ; =============== S U B R O U T I N E ======================================= sub_6CB04: ; CODE XREF: sub_6CA9E+5Ep movem.l d0-d2/d6-d7,-(sp) move.b (byte_FFFFB07D).w,d3 andi.b #$1F,d3 tst.b (DG_IDLE_KE_IAC_REPORT_IDLE_RESULTS).l beq.s loc_6CB1C ori.b #$80,d3 loc_6CB1C: ; CODE XREF: sub_6CB04+12j btst #3,(byte_FFFFB07C).w beq.s loc_6CB28 ori.b #$20,d3 ; ' ' loc_6CB28: ; CODE XREF: sub_6CB04+1Ej btst #5,(byte_FFFFB07C).w beq.s loc_6CB34 ori.b #$40,d3 ; '@' loc_6CB34: ; CODE XREF: sub_6CB04+2Aj move.l d3,d2 andi.b #$17,d2 cmpi.b #$14,d2 bne.s loc_6CB44 moveq #$F,d1 bra.s loc_6CBAE ; --------------------------------------------------------------------------- loc_6CB44: ; CODE XREF: sub_6CB04+3Aj move.l d3,d2 move.b #$F3,d6 and.b d6,d2 cmpi.b #$81,d2 bne.s loc_6CB56 loc_6CB52: ; CODE XREF: sub_6CB04+6Aj ; sub_6CB04+9Cj moveq #$1E,d1 bra.s loc_6CBAE ; --------------------------------------------------------------------------- loc_6CB56: ; CODE XREF: sub_6CB04+4Cj move.l d3,d2 and.b d6,d2 cmpi.b #$82,d2 bne.s loc_6CB64 loc_6CB60: ; CODE XREF: sub_6CB04+82j ; sub_6CB04+A4j moveq #$2D,d1 ; '-' bra.s loc_6CBAE ; --------------------------------------------------------------------------- loc_6CB64: ; CODE XREF: sub_6CB04+5Aj move.l d3,d2 moveq #$73,d7 ; 's' and.b d7,d2 cmpi.b #$21,d2 ; '!' beq.s loc_6CB52 move.l d3,d2 and.b d7,d2 cmpi.b #$41,d2 ; 'A' bne.s loc_6CB7E moveq #$4B,d1 ; 'K' bra.s loc_6CBAE ; --------------------------------------------------------------------------- loc_6CB7E: ; CODE XREF: sub_6CB04+74j move.l d3,d2 and.b d7,d2 cmpi.b #$22,d2 ; '"' beq.s loc_6CB60 move.l d3,d2 and.b d7,d2 cmpi.b #$42,d2 ; 'B' bne.s loc_6CB98 move.b #$87,d1 bra.s loc_6CBAE ; --------------------------------------------------------------------------- loc_6CB98: ; CODE XREF: sub_6CB04+8Cj move.l d3,d2 and.b d6,d2 cmpi.b #$91,d2 beq.s loc_6CB52 and.b d6,d3 cmpi.b #$92,d3 beq.s loc_6CB60 move.b (byte_FFFFB086).w,d1 loc_6CBAE: ; CODE XREF: sub_6CB04+3Ej ; sub_6CB04+50j ... cmp.b (byte_FFFFB086).w,d1 beq.s loc_6CC1C btst #0,d1 beq.s loc_6CBC4 moveq #$6F,d0 ; 'o' jsr sub_5F0BE bra.s loc_6CBCC ; --------------------------------------------------------------------------- loc_6CBC4: ; CODE XREF: sub_6CB04+B4j moveq #$6F,d0 ; 'o' jsr sub_5F110 loc_6CBCC: ; CODE XREF: sub_6CB04+BEj btst #1,d1 beq.s loc_6CBDC moveq #$70,d0 ; 'p' jsr sub_5F0BE bra.s loc_6CBE4 ; --------------------------------------------------------------------------- loc_6CBDC: ; CODE XREF: sub_6CB04+CCj moveq #$70,d0 ; 'p' jsr sub_5F110 loc_6CBE4: ; CODE XREF: sub_6CB04+D6j btst #2,d1 beq.s loc_6CBF6 move.w #$BF,d0 ; '?' jsr sub_5F0BE bra.s loc_6CC00 ; --------------------------------------------------------------------------- loc_6CBF6: ; CODE XREF: sub_6CB04+E4j move.w #$BF,d0 ; '?' jsr sub_5F110 loc_6CC00: ; CODE XREF: sub_6CB04+F0j btst #3,d1 beq.s loc_6CC12 move.w #$C0,d0 ; '?' jsr sub_5F0BE bra.s loc_6CC1C ; --------------------------------------------------------------------------- loc_6CC12: ; CODE XREF: sub_6CB04+100j move.w #$C0,d0 ; '?' jsr sub_5F110 loc_6CC1C: ; CODE XREF: sub_6CB04+AEj ; sub_6CB04+10Cj move.b d1,(byte_FFFFB086).w movem.l (sp)+,d0-d2/d6-d7 rts ; End of function sub_6CB04 ; =============== S U B R O U T I N E ======================================= sub_6CC26: ; CODE XREF: sub_6CC3C+12p ; sub_6CC3C+66p move.w (CoolantTemperatureOrDefault).w,d0 addi.w #$400,d0 mulu.w #5,d0 divu.w #6,d0 tbls.w (a0),d0 rts ; End of function sub_6CC26 ; =============== S U B R O U T I N E ======================================= sub_6CC3C: ; CODE XREF: sub_6CA9E+46p movem.l d0/a0,-(sp) tst.b (byte_FFFFB434).w beq.w loc_6CCE6 movea.l #DG_IDLE_KV_IAC_RPM_ERROR_HIGH_THRESHOLD,a0 ; Minimum RPM error used to determine if the OBD_Idle_RPM_Error is too high. ; RPM jsr sub_6CC26 cmp.w (word_FFFFB094).w,d0 bgt.s loc_6CC92 clr.b (byte_FFFFB07E).w bclr #1,(byte_FFFFB07C).w move.b (byte_FFFFB07F).w,d3 cmp.b (DG_IDLE_KE_IAC_RPM_HIGH_TIMER_LIMIT).l,d3 ; Minimum amount of time used to indicate that there is a high idle RPM problem. ; Seconds bcs.s loc_6CC7A bset #2,(byte_FFFFB07C).w bra.w loc_6CCFA ; --------------------------------------------------------------------------- loc_6CC7A: ; CODE XREF: sub_6CC3C+32j bclr #2,(byte_FFFFB07C).w move.b (byte_FFFFB07F).w,d3 addq.b #1,d3 bcc.s loc_6CC8C move.b #$FF,d3 loc_6CC8C: ; CODE XREF: sub_6CC3C+4Aj move.b d3,(byte_FFFFB07F).w bra.s loc_6CCFA ; --------------------------------------------------------------------------- loc_6CC92: ; CODE XREF: sub_6CC3C+1Cj bclr #2,(byte_FFFFB07C).w clr.b (byte_FFFFB07F).w movea.l #DG_IDLE_KV_IAC_RPM_ERROR_LOW_THRESHOLD,a0 ; Maximum RPM error used to determine if the OBD_Idle_RPM_Error is too low. ; RPM jsr sub_6CC26 cmp.w (word_FFFFB094).w,d0 blt.s loc_6CCDA move.b (byte_FFFFB07E).w,d3 cmp.b (DG_IDLE_KE_IAC_RPM_LOW_TIMER_LIMIT).l,d3 ; Minimum amount of time used to indicate that there is a low idle RPM error problem. ; Seconds bcs.s loc_6CCC2 bset #1,(byte_FFFFB07C).w bra.s loc_6CCFA ; --------------------------------------------------------------------------- loc_6CCC2: ; CODE XREF: sub_6CC3C+7Cj bclr #1,(byte_FFFFB07C).w move.b (byte_FFFFB07E).w,d3 addq.b #1,d3 bcc.s loc_6CCD4 move.b #$FF,d3 loc_6CCD4: ; CODE XREF: sub_6CC3C+92j move.b d3,(byte_FFFFB07E).w bra.s loc_6CCFA ; --------------------------------------------------------------------------- loc_6CCDA: ; CODE XREF: sub_6CC3C+70j bclr #1,(byte_FFFFB07C).w clr.b (byte_FFFFB07E).w bra.s loc_6CCFA ; --------------------------------------------------------------------------- loc_6CCE6: ; CODE XREF: sub_6CC3C+8j bclr #2,(byte_FFFFB07C).w clr.b (byte_FFFFB07F).w clr.b (byte_FFFFB07E).w bclr #1,(byte_FFFFB07C).w loc_6CCFA: ; CODE XREF: sub_6CC3C+3Aj ; sub_6CC3C+54j ... movem.l (sp)+,d0/a0 rts ; End of function sub_6CC3C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6CD00: ; CODE XREF: sub_6CA9E+40p var_4 = -4 var_2 = -2 link a6,#-4 tst.b (byte_FFFFB434).w beq.s loc_6CD66 move.w (word_FFFFB094).w,d4 blt.s loc_6CD14 move.l d4,d3 bra.s loc_6CD18 ; --------------------------------------------------------------------------- loc_6CD14: ; CODE XREF: sub_6CD00+Ej clr.w d3 sub.w d4,d3 loc_6CD18: ; CODE XREF: sub_6CD00+12j move.w (word_FFFFB084).w,var_4(a6) move.w d3,var_2(a6) move.w (DG_IDLE_KE_IAC_RPM_ERROR_FILTER_COEFF).l,d3 ; This is the coefficient for the first order lag filter of the error. ; Coef tblu.w var_4(a6),d3 move.w d3,(word_FFFFB084).w cmp.w (DG_IDLE_KE_IAC_FILTERED_RPM_ERROR_MAX).l,d3 ; Maximum value for the allowable filtered RPM error. ; RPM bhi.s loc_6CD66 move.b (byte_FFFFB080).w,d3 cmp.b (DG_IDLE_KE_IAC_TEST_PASS_TIME).l,d3 ; Minimum time duration for the RPM to be within its allowable filtered RPM error to report that the Idle RPM is passing. ; Seconds bcs.s loc_6CD4E bset #0,(byte_FFFFB07C).w bra.s loc_6CD70 ; --------------------------------------------------------------------------- loc_6CD4E: ; CODE XREF: sub_6CD00+44j bclr #0,(byte_FFFFB07C).w move.b (byte_FFFFB080).w,d3 addq.b #1,d3 bcc.s loc_6CD60 move.b #$FF,d3 loc_6CD60: ; CODE XREF: sub_6CD00+5Aj move.b d3,(byte_FFFFB080).w bra.s loc_6CD70 ; --------------------------------------------------------------------------- loc_6CD66: ; CODE XREF: sub_6CD00+8j ; sub_6CD00+38j bclr #0,(byte_FFFFB07C).w clr.b (byte_FFFFB080).w loc_6CD70: ; CODE XREF: sub_6CD00+4Cj ; sub_6CD00+64j unlk a6 rts ; End of function sub_6CD00 ; =============== S U B R O U T I N E ======================================= nullsub_7: ; CODE XREF: sub_75370+1B6p rts ; End of function nullsub_7 ; =============== S U B R O U T I N E ======================================= sub_6CD76: ; CODE XREF: sub_6CA9E+Cp ; sub_6CD94:loc_6CDACp clr.b (byte_FFFFB43A).w clr.b (byte_FFFFB439).w clr.b (byte_FFFFB437).w clr.b (byte_FFFFB438).w clr.b (byte_FFFFB434).w clr.b (byte_FFFFB435).w clr.b (byte_FFFFB436).w rts ; End of function sub_6CD76 ; =============== S U B R O U T I N E ======================================= sub_6CD94: ; CODE XREF: OS1:00029040p ; sub_755FA+100p cmpi.b #8,d0 beq.s loc_6CDB4 cmpi.b #6,d0 beq.s loc_6CDAC cmpi.b #3,d0 bhi.s locret_6CDB8 cmpi.b #1,d0 bls.s locret_6CDB8 loc_6CDAC: ; CODE XREF: sub_6CD94+Aj jsr sub_6CD76 bra.s locret_6CDB8 ; --------------------------------------------------------------------------- loc_6CDB4: ; CODE XREF: sub_6CD94+4j clr.b (byte_FFFFB439).w locret_6CDB8: ; CODE XREF: sub_6CD94+10j ; sub_6CD94+16j ... rts ; End of function sub_6CD94 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6CDBA: ; CODE XREF: sub_6CA9E+3Ap var_2 = -2 link a6,#-2 tst.b (byte_FFFFB439).w beq.s loc_6CE14 move.w (word_FFFFAEBE).w,d3 cmp.w (DI_IDLE_KE_IAC_IDLE_VEHICLE_SPEED_MAX).l,d3 ; Maximum vehicle speed threshold to allow idle conditions. ; MPH bcc.s loc_6CE14 tst.b (byte_FFFFB370).w beq.s loc_6CDE4 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_6CDE4 move.w (word_FFFF9050).w,d3 bra.s loc_6CDE8 ; --------------------------------------------------------------------------- loc_6CDE4: ; CODE XREF: sub_6CDBA+1Aj ; sub_6CDBA+22j move.w (word_FFFFAB66).w,d3 loc_6CDE8: ; CODE XREF: sub_6CDBA+28j cmp.w (DI_IDLE_KE_IAC_IDLE_THROTTLE_POS_MAX).l,d3 ; Maximum throttle position threshold to allow idle conditions. ; Percent bcc.s loc_6CE14 tst.b (byte_FFFF94D0).w bne.s loc_6CE14 move.w (word_FFFFB43C).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (DI_IDLE_KE_IAC_DIAG_STABLE_WINDOW_TIME).l,d3 ; Time for which the appropriate conditions must be stable before Idle Conditions Present flag can be SET. ; Seconds bcs.s loc_6CE1E move.b #1,(byte_FFFFB434).w bra.s loc_6CE1E ; --------------------------------------------------------------------------- loc_6CE14: ; CODE XREF: sub_6CDBA+8j ; sub_6CDBA+14j ... clr.b (byte_FFFFB434).w move.w (GlobalClock).w,(word_FFFFB43C).w loc_6CE1E: ; CODE XREF: sub_6CDBA+50j ; sub_6CDBA+58j unlk a6 rts ; End of function sub_6CDBA ; =============== S U B R O U T I N E ======================================= sub_6CE22: ; CODE XREF: sub_6CA9E+34p clr.b d3 move.b (byte_FFFFA1B2).w,d4 and.b (byte_FFFFB2EA).w,d4 beq.w loc_6CF18 tst.b (byte_FFFF94E5).w bne.w loc_6CF18 move.w (word_FFFF82D2).w,d4 cmp.w (DI_IDLE_KE_IAC_BAROMETRIC_PRESSURE_MIN).l,d4 ; Minimum barometric pressure threshold to enable the IAC diagnostic. ; kPa bls.w loc_6CF18 move.w (CoolantTemperatureOrDefault).w,d4 cmp.w (DI_IDLE_KE_IAC_COOL_TEMP_MIN).l,d4 ; Minimum coolant temperature threshold to enable the IAC diagnostic. ; Degrees_C ble.w loc_6CF18 clr.l d4 move.w (DI_IDLE_KE_IAC_ENGINE_RUN_TIME_MIN).l,d4 ; Minimum engine run time to enable the IAC diagnostic. ; Seconds cmp.l (EngineRunTime).w,d4 bhi.w loc_6CF18 move.w (DI_IDLE_KE_IAC_IGNITION_VOLTAGE_MIN).l,d4 ; Minimum ignition system voltage threshold to enable the IAC diagnostic. ; Volts cmp.w (word_FFFFB4A2).w,d4 bcc.w loc_6CF18 move.w (word_FFFFB4A2).w,d4 cmp.w (DI_IDLE_KE_IAC_IGNITION_VOLTAGE_MAX).l,d4 ; Maximum ignition system voltage threshold to enable the IAC diagnostic. ; Volts bcc.w loc_6CF18 move.w (word_FFFFB3E8).w,d4 cmp.w (DI_IDLE_KE_IAC_INTAKE_AIR_TEMP_MIN).l,d4 ; Minimum intake air temperature threshold to enable the IAC diagnostic. ; Degrees_C ble.w loc_6CF18 tst.b (byte_FFFFAB24).w bne.w loc_6CF18 btst #5,(byte_FFFF8252).w bne.s loc_6CF18 btst #7,(byte_FFFF8252).w bne.s loc_6CF18 btst #6,(byte_FFFF8255).w bne.s loc_6CF18 btst #7,(byte_FFFF8255).w bne.s loc_6CF18 btst #0,(byte_FFFF8254).w bne.s loc_6CF18 btst #0,(byte_FFFF8253).w bne.s loc_6CF18 btst #3,(byte_FFFF8252).w bne.s loc_6CF18 btst #2,(byte_FFFF8252).w bne.s loc_6CF18 btst #2,(byte_FFFF8255).w bne.s loc_6CF18 btst #4,(byte_FFFF8253).w bne.s loc_6CF18 btst #5,(byte_FFFF8253).w bne.s loc_6CF18 btst #4,(byte_FFFF8254).w bne.s loc_6CF18 btst #6,(byte_FFFF8253).w bne.s loc_6CF18 btst #0,(byte_FFFF9062).w bne.s loc_6CF18 move.b (byte_FFFF9060).w,d4 cmpi.b #$A,d4 beq.s loc_6CF18 cmpi.b #$B,d4 beq.s loc_6CF18 addq.b #1,d3 loc_6CF18: ; CODE XREF: sub_6CE22+Aj ; sub_6CE22+12j ... move.b d3,(byte_FFFFB439).w rts ; End of function sub_6CE22 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6CF1E: ; CODE XREF: DoLoopG+88p var_E = -$E var_C = -$C var_A = -$A var_6 = -6 var_4 = -4 link a6,#-$E movem.l d0/a0-a1,-(sp) move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DG_IGNITION_CONTROL_KE_IGN_CONTROL_COUNTER_RPM_THRES).l,d3 ; Samples and failures wih engine speed >= this are twice as significant as those with engine speed < this. ; RPM bcs.s loc_6CF3A move.b #2,var_E(a6) bra.s loc_6CF40 ; --------------------------------------------------------------------------- loc_6CF3A: ; CODE XREF: sub_6CF1E+12j move.b #1,var_E(a6) loc_6CF40: ; CODE XREF: sub_6CF1E+1Aj lea var_6(a6),a0 jsr sub_78220 move.l var_4(a6),var_A(a6) move.w var_6(a6),var_C(a6) clr.b d3 btst #5,var_C+1(a6) bne.s loc_6CF70 btst #4,var_C+1(a6) bne.s loc_6CF70 btst #3,var_C+1(a6) beq.s loc_6CF72 loc_6CF70: ; CODE XREF: sub_6CF1E+40j ; sub_6CF1E+48j addq.b #1,d3 loc_6CF72: ; CODE XREF: sub_6CF1E+50j move.b d3,(byte_FFFFB096).w clr.b d3 btst #0,var_C(a6) bne.s loc_6CF90 btst #7,var_C+1(a6) bne.s loc_6CF90 btst #6,var_C+1(a6) beq.s loc_6CF92 loc_6CF90: ; CODE XREF: sub_6CF1E+60j ; sub_6CF1E+68j addq.b #1,d3 loc_6CF92: ; CODE XREF: sub_6CF1E+70j move.b d3,(byte_FFFFB097).w btst #2,var_C+1(a6) sne d0 neg.b d0 move.b d0,(byte_FFFFB098).w btst #1,var_C+1(a6) sne d0 neg.b d0 move.b d0,(byte_FFFFB099).w btst #7,var_A(a6) sne d0 neg.b d0 move.b d0,(byte_FFFFB09A).w btst #6,var_A(a6) sne d0 neg.b d0 move.b d0,(byte_FFFFB09B).w btst #5,var_A(a6) sne d0 neg.b d0 move.b d0,(byte_FFFFB09C).w btst #4,var_A(a6) sne d0 neg.b d0 move.b d0,(byte_FFFFB09D).w clr.b d0 movea.l a6,a1 jsr sub_6D042 moveq #1,d0 movea.l a6,a1 jsr sub_6D042 moveq #2,d0 movea.l a6,a1 jsr sub_6D042 moveq #3,d0 movea.l a6,a1 jsr sub_6D042 moveq #4,d0 movea.l a6,a1 jsr sub_6D042 moveq #5,d0 movea.l a6,a1 jsr sub_6D042 moveq #6,d0 movea.l a6,a1 jsr sub_6D042 moveq #7,d0 movea.l a6,a1 jsr sub_6D042 movem.l (sp)+,d0/a0-a1 unlk a6 rts ; End of function sub_6CF1E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6D042: ; CODE XREF: sub_6CF1E+D0p ; sub_6CF1E+DAp ... var_4F6A = -$4F6A var_4F62 = -$4F62 var_4 = -4 link a6,#0 move.l a1,-(sp) move.l d1,-(sp) clr.l d1 move.b d0,d1 move.b -$4F5A(d1.w),d4 movea.l var_4(a6),a2 add.b -$E(a2),d4 bcc.s loc_6D062 move.b #$FF,d4 loc_6D062: ; CODE XREF: sub_6D042+1Aj clr.l d3 move.b d0,d3 move.b d4,8+var_4F62(d3.w) tst.b -$4F6A(d3.w) beq.s loc_6D0B6 andi.w #$FF,d0 move.b -$4F62(d0.w),d4 movea.l var_4(a6),a2 add.b -$E(a2),d4 bcc.s loc_6D08C move.b #$FF,d4 loc_6D08C: ; CODE XREF: sub_6D042+44j move.b d4,8+var_4F6A(d3.w) cmp.b (DG_IGNITION_CONTROL_KE_IGNITION_CONTROL_FAILURE_LIMI).l,d4 ; Number of failed tests within a sample set that will report an ignition control failure. ; NONE bcs.s loc_6D0D8 clr.b -$4F62(d3.w) clr.b -$4F5A(d3.w) move.w DG_IGNITION_CONTROL_KV_EST_TESTED_CYLINDER_XREF(d3.w*2),d0 ; Map EST channel to cylinder number. ; P_CODE jsr sub_5F110 bra.s loc_6D0D8 ; --------------------------------------------------------------------------- loc_6D0B6: ; CODE XREF: sub_6D042+30j cmp.b (DG_IGNITION_CONTROL_KE_IGNITION_CONTROL_SAMPLES_LIMI).l,d4 ; Number of tests in a sample SET. ; NONE bcs.s loc_6D0D8 clr.b -$4F62(d3.w) clr.b -$4F5A(d3.w) move.w DG_IGNITION_CONTROL_KV_EST_TESTED_CYLINDER_XREF(d3.w*2),d0 ; Map EST channel to cylinder number. ; P_CODE jsr sub_5F0BE loc_6D0D8: ; CODE XREF: sub_6D042+56j ; sub_6D042+72j ... move.l (sp)+,d1 unlk a6 rts ; End of function sub_6D042 ; =============== S U B R O U T I N E ======================================= sub_6D0DE: ; CODE XREF: sub_6D216:loc_6D222p move.l a0,-(sp) clr.b (byte_FFFFB548).w clr.b (byte_FFFFB549).w movea.l #unk_8A754,a0 jsr sub_78AAC move.w (word_FFFFBF18).w,d3 cmpi.w #$FF,d3 bls.s loc_6D102 move.b #$FF,d3 loc_6D102: ; CODE XREF: sub_6D0DE+1Ej move.b d3,(byte_FFFFB547).w move.b #1,(byte_FFFFB546).w movea.l (sp)+,a0 rts ; End of function sub_6D0DE ; =============== S U B R O U T I N E ======================================= sub_6D110: ; CODE XREF: sub_6D202+Cp movem.l d0-d2/a0,-(sp) tst.b (byte_FFFF9E7F).w beq.w loc_6D1EA movea.l #unk_8A754,a0 jsr sub_78AAC move.w (word_FFFFBF18).w,d3 cmpi.w #$FF,d3 bls.s loc_6D136 move.b #$FF,d3 loc_6D136: ; CODE XREF: sub_6D110+20j move.b d3,d1 cmp.b (DG_IOT_KE_IOTD_MIN_EXPECTED_TIME).l,d1 ; The minimum time the Ignition Off Timer is expected to be reporting after an ignition off period begins. ; Seconds bcs.w loc_6D1DC cmp.b (DG_IOT_KE_IOTD_MAX_EXPECTED_TIME).l,d1 ; The maximum time the Ignition Off Timer is expected to be reporting after an ignition off period begins. ; Seconds bhi.w loc_6D1DC move.b (byte_FFFFB547).w,d4 cmp.b d4,d1 bls.s loc_6D1B0 move.b (byte_FFFFB549).w,d3 addq.b #1,d3 bcc.s loc_6D160 move.b #$FF,d3 loc_6D160: ; CODE XREF: sub_6D110+4Aj move.b d3,(byte_FFFFB549).w cmp.b (DG_IOT_KE_IOTD_TRANSITION_THRESHOLD).l,d3 ; The number of Ingition Off Timer transitions above which the diagnostic may proceed. ; Counts bls.s loc_6D1A6 move.b (byte_FFFFB548).w,d3 cmp.b (DG_IOT_KE_IOTD_SAMPLE_COUNTER_MIN).l,d3 ; The minimum number of samples above which the Ignition Off Timer is expected to increment. ; Counts bcs.s loc_6D198 cmp.b (DG_IOT_KE_IOTD_SAMPLE_COUNTER_MAX).l,d3 ; The maximum number of samples below which the Ignition Off Timer is expected to increment. ; Counts bhi.s loc_6D198 move.l d1,d2 sub.b d4,d2 cmp.b (DG_IOT_KE_IOTD_IGNITION_OFF_DELTA).l,d2 ; The acceptable difference between the previous and current Ignition Off Timer values. ; Seconds bne.s loc_6D198 move.w #$F1,d0 ; '?' jsr sub_5F0BE bra.s loc_6D1A2 ; --------------------------------------------------------------------------- loc_6D198: ; CODE XREF: sub_6D110+66j ; sub_6D110+6Ej ... move.w #$F1,d0 ; '?' jsr sub_5F110 loc_6D1A2: ; CODE XREF: sub_6D110+86j clr.b (byte_FFFFB546).w loc_6D1A6: ; CODE XREF: sub_6D110+5Aj clr.b (byte_FFFFB548).w move.b d1,(byte_FFFFB547).w bra.s loc_6D1EA ; --------------------------------------------------------------------------- loc_6D1B0: ; CODE XREF: sub_6D110+42j cmp.b d4,d1 bne.s loc_6D1DC move.b (byte_FFFFB548).w,d3 addq.b #1,d3 bcc.s loc_6D1C0 move.b #$FF,d3 loc_6D1C0: ; CODE XREF: sub_6D110+AAj move.b d3,(byte_FFFFB548).w tst.b (byte_FFFFB549).w bne.s loc_6D1D4 cmp.b (DG_IOT_KE_IOTD_SMPLS_WITHOUT_CHANGE).l,d3 loc_6D1D0: ; CODE XREF: sub_6D110+CAj bls.s loc_6D1EA bra.s loc_6D1DC ; --------------------------------------------------------------------------- loc_6D1D4: ; CODE XREF: sub_6D110+B8j cmp.b (DG_IOT_KE_IOTD_SAMPLE_COUNTER_MAX).l,d3 ; The maximum number of samples below which the Ignition Off Timer is expected to increment. ; Counts bra.s loc_6D1D0 ; --------------------------------------------------------------------------- loc_6D1DC: ; CODE XREF: sub_6D110+2Ej ; sub_6D110+38j ... move.w #$F1,d0 ; '?' jsr sub_5F110 clr.b (byte_FFFFB546).w loc_6D1EA: ; CODE XREF: sub_6D110+8j ; sub_6D110+9Ej ... movem.l (sp)+,d0-d2/a0 rts ; End of function sub_6D110 ; =============== S U B R O U T I N E ======================================= sub_6D1F0: ; CODE XREF: sub_75370+1BCp clr.b (byte_FFFFB547).w clr.b (byte_FFFFB548).w clr.b (byte_FFFFB546).w clr.b (byte_FFFFB549).w rts ; End of function sub_6D1F0 ; =============== S U B R O U T I N E ======================================= sub_6D202: ; CODE XREF: DoLoopF+54p move.b (byte_FFFFBF16).w,d3 and.b (byte_FFFFB546).w,d3 move.b d3,(byte_FFFF9E7F).w jsr sub_6D110 rts ; End of function sub_6D202 ; =============== S U B R O U T I N E ======================================= sub_6D216: ; CODE XREF: OS1:0002922Cp cmpi.b #9,d0 beq.s loc_6D222 cmpi.b #6,d0 bne.s locret_6D228 loc_6D222: ; CODE XREF: sub_6D216+4j jsr sub_6D0DE locret_6D228: ; CODE XREF: sub_6D216+Aj rts ; End of function sub_6D216 ; =============== S U B R O U T I N E ======================================= sub_6D22A: ; CODE XREF: sub_75370+1C2p bset #5,(byte_FFFFB263).w rts ; End of function sub_6D22A ; =============== S U B R O U T I N E ======================================= sub_6D232: ; CODE XREF: DoLoopC+28Ap ; sub_755FA:loc_75656p clr.b (byte_FFFF823F).w jsr sub_6D2DE jsr sub_6D29E rts ; End of function sub_6D232 ; =============== S U B R O U T I N E ======================================= sub_6D244: ; CODE XREF: OS1:0002914Ap move.l d1,-(sp) move.b d0,d1 jsr sub_6D756 cmpi.b #2,d1 bne.s loc_6D29A jsr sub_6D29E tst.b (byte_FFFFB54A).w bne.s loc_6D282 bclr #7,(byte_FFFF8D4B).w clr.b (byte_FFFF8D4A).w movea.w #$1400,a2 move.w a2,(word_FFFF8D46).w move.w a2,(word_FFFF8D48).w bset #6,(byte_FFFF8D4B).w bclr #5,(byte_FFFF8D4B).w loc_6D282: ; CODE XREF: sub_6D244+1Aj btst #0,(byte_FFFF8A3A).w beq.s loc_6D29A bset #6,(byte_FFFF8D4B).w bclr #5,(byte_FFFF8D4B).w clr.b (byte_FFFF8D4A).w loc_6D29A: ; CODE XREF: sub_6D244+Ej ; sub_6D244+44j move.l (sp)+,d1 rts ; End of function sub_6D244 ; =============== S U B R O U T I N E ======================================= sub_6D29E: ; CODE XREF: sub_6D232+Ap ; sub_6D244+10p ... clr.b (byte_FFFFB25C).w clr.b (byte_FFFFB262).w clr.b (byte_FFFFB269).w clr.w (word_FFFFB25E).w move.w #$1400,(word_FFFFB260).w move.w (word_FFFFA254).w,(word_FFFFB266).w move.w (DG_LEGR_KE_EGRP_POSITION_ERROR_MAX2).l,(word_FFFFB264).w ; Threshold above which the error in EGR position is considered unaccptable ( Zone #2 - position error test. ) ; Percent clr.b (byte_FFFFB268).w clr.b (byte_FFFFB25D).w bclr #6,(byte_FFFFB263).w bclr #7,(byte_FFFFB263).w bclr #5,(byte_FFFFB263).w rts ; End of function sub_6D29E ; =============== S U B R O U T I N E ======================================= sub_6D2DE: ; CODE XREF: sub_6D232+4p ; sub_6D316+16p bclr #7,(byte_FFFFB263).w movea.w #$1400,a2 move.w a2,(word_FFFF8D46).w move.w a2,(word_FFFF8D48).w bset #6,(byte_FFFF8D4B).w bclr #5,(byte_FFFF8D4B).w rts ; End of function sub_6D2DE ; =============== S U B R O U T I N E ======================================= sub_6D2FE: ; CODE XREF: sub_6D316+10p bclr #7,(byte_FFFF8D4B).w clr.b (byte_FFFF8D4A).w movea.w #$1400,a2 move.w a2,(word_FFFF8D46).w move.w a2,(word_FFFF8D48).w rts ; End of function sub_6D2FE ; =============== S U B R O U T I N E ======================================= sub_6D316: ; CODE XREF: DoLoopF+116p movem.l d0-d2/d6,-(sp) btst #5,(byte_FFFFB263).w beq.s loc_6D338 clr.b (byte_FFFF823F).w jsr sub_6D2FE jsr sub_6D2DE jsr sub_6D29E loc_6D338: ; CODE XREF: sub_6D316+Aj jsr sub_6D636 move.w (word_FFFFA254).w,d1 move.w d1,(word_FFFFB25A).w move.w (word_FFFFA252).w,d2 moveq #5,d6 mulu.w d6,d2 lsr.l #6,d2 move.w d2,(word_FFFFB26A).w tst.b (byte_FFFFB52B).w beq.w loc_6D42E tst.w d1 beq.w loc_6D42E cmp.w (word_FFFFB25E).w,d1 bls.s loc_6D36C move.w d1,(word_FFFFB25E).w loc_6D36C: ; CODE XREF: sub_6D316+50j cmp.w (word_FFFFB260).w,d1 bcc.s loc_6D376 move.w d1,(word_FFFFB260).w loc_6D376: ; CODE XREF: sub_6D316+5Aj move.w (word_FFFFB25E).w,d3 sub.w (word_FFFFB260).w,d3 bcc.s loc_6D382 clr.w d3 loc_6D382: ; CODE XREF: sub_6D316+68j cmp.w (DG_LEGR_KE_EGRP_MAX_DESIRED_POS_DELTA).l,d3 ; The maximum allowable difference in desired position to enable the position error test. ; Percent bls.s loc_6D392 bset #6,(byte_FFFFB263).w bra.s loc_6D398 ; --------------------------------------------------------------------------- loc_6D392: ; CODE XREF: sub_6D316+72j bclr #6,(byte_FFFFB263).w loc_6D398: ; CODE XREF: sub_6D316+7Aj btst #6,(byte_FFFFB263).w bne.s loc_6D3CE move.w (DG_LEGR_KE_EGRP_POS_ERR_BOUNDARY_SELECT).l,d3 ; Threshold used to determine if EGR is in Zone 1 and should use KE..Max1 or Zone 2 and use KE..Max2 ( position error test ). ; Percent cmp.w d3,d1 bls.s loc_6D3BA move.w (DG_LEGR_KE_EGRP_POSITION_ERROR_MAX1).l,(word_FFFFB264).w ; Threshold above which the error in EGR position is considered unaccptable (Zone #1 - position error test.) ; Percent cmp.w (word_FFFFB266).w,d3 bcs.s loc_6D3CE bra.s loc_6D3C8 ; --------------------------------------------------------------------------- loc_6D3BA: ; CODE XREF: sub_6D316+92j move.w (DG_LEGR_KE_EGRP_POSITION_ERROR_MAX2).l,(word_FFFFB264).w ; Threshold above which the error in EGR position is considered unaccptable ( Zone #2 - position error test. ) ; Percent cmp.w (word_FFFFB266).w,d3 bcc.s loc_6D3CE loc_6D3C8: ; CODE XREF: sub_6D316+A2j bset #6,(byte_FFFFB263).w loc_6D3CE: ; CODE XREF: sub_6D316+88j ; sub_6D316+A0j ... btst #6,(byte_FFFFB263).w bne.s loc_6D42E move.w (word_FFFFA25E).w,d3 bge.s loc_6D3DE neg.w d3 loc_6D3DE: ; CODE XREF: sub_6D316+C4j cmp.w (word_FFFFB264).w,d3 bls.s loc_6D412 move.b (byte_FFFFB269).w,d3 addq.b #1,d3 bcc.s loc_6D3F0 move.b #$FF,d3 loc_6D3F0: ; CODE XREF: sub_6D316+D4j move.b d3,(byte_FFFFB269).w cmp.b (DG_LEGR_KE_EGRP_OPEN_VALVE_MAX_COUNT).l,d3 ; Maximum allowable times the EGR position error can exceed a failure threshold before reporting a failure. ; Counts bcs.s loc_6D42E bset #2,(byte_FFFFB485).w bset #6,(byte_FFFFB263).w moveq #$52,d0 ; 'R' jsr sub_5F110 bra.s loc_6D42E ; --------------------------------------------------------------------------- loc_6D412: ; CODE XREF: sub_6D316+CCj move.b (byte_FFFFB269).w,d3 subq.b #1,d3 bcc.s loc_6D41C clr.b d3 loc_6D41C: ; CODE XREF: sub_6D316+102j move.b d3,(byte_FFFFB269).w moveq #$52,d0 ; 'R' jsr sub_5F0BE bclr #2,(byte_FFFFB485).w loc_6D42E: ; CODE XREF: sub_6D316+42j ; sub_6D316+48j ... tst.b (byte_FFFFB52B).w bne.s loc_6D44A loc_6D434: ; CODE XREF: sub_6D316+13Aj ; sub_6D316+13Ej clr.w (word_FFFFB25E).w move.w #$1400,(word_FFFFB260).w clr.b (byte_FFFFB269).w bclr #6,(byte_FFFFB263).w bra.s loc_6D456 ; --------------------------------------------------------------------------- loc_6D44A: ; CODE XREF: sub_6D316+11Cj btst #6,(byte_FFFFB263).w bne.s loc_6D434 tst.w d1 beq.s loc_6D434 loc_6D456: ; CODE XREF: sub_6D316+132j move.w d1,(word_FFFFB266).w tst.b (byte_FFFFB52A).w beq.w loc_6D5C8 tst.w d1 bne.w loc_6D568 clr.b (byte_FFFFB25C).w btst #6,(byte_FFFF8D4B).w beq.s loc_6D4E2 move.w (word_FFFFB26A).w,d3 move.w (word_FFFF8280).w,d5 mulu.w d6,d5 lsr.l #6,d5 sub.w d5,d3 bcc.s loc_6D486 clr.w d3 loc_6D486: ; CODE XREF: sub_6D316+16Cj cmp.w (DG_LEGR_KE_EGRP_CV_POSITION_OFFSET).l,d3 bcs.s loc_6D4A6 bset #7,(byte_FFFFB263).w clr.b (byte_FFFFB25D).w bset #3,(byte_FFFFB485).w bset #7,(byte_FFFF8D4B).w bra.s loc_6D4E2 ; --------------------------------------------------------------------------- loc_6D4A6: ; CODE XREF: sub_6D316+176j move.b (byte_FFFFB25D).w,d3 add.b (byte_1369).l,d3 bcc.s loc_6D4B6 move.b #$FF,d3 loc_6D4B6: ; CODE XREF: sub_6D316+19Aj move.b d3,(byte_FFFFB25D).w bclr #3,(byte_FFFFB485).w bclr #7,(byte_FFFFB263).w cmp.b (DG_LEGR_KE_EGRP_TIME_TO_PASS_CV).l,d3 ; The minimum allowable time to elapse before a P1404 pass will be indicated. ; Seconds bcs.s loc_6D4E2 bclr #7,(byte_FFFF8D4B).w move.w #$BD,d0 ; '?' jsr sub_5F0BE clr.b (byte_FFFF8D4A).w loc_6D4E2: ; CODE XREF: sub_6D316+15Cj ; sub_6D316+18Ej ... btst #7,(byte_FFFFB263).w beq.w loc_6D5D6 btst #6,(byte_FFFF8D4B).w beq.w loc_6D5D6 move.b (byte_FFFFB262).w,d3 add.b (byte_1369).l,d3 bcc.s loc_6D506 move.b #$FF,d3 loc_6D506: ; CODE XREF: sub_6D316+1EAj move.b d3,(byte_FFFFB262).w cmp.b (DG_LEGR_KE_EGRP_CV_POSITION_TIME).l,d3 ; Maximun allowable time that a high position offset can exceed a threshold before logging a failure. ; Seconds bcs.w loc_6D5DA move.b (byte_FFFF8D4A).w,d3 addq.b #1,d3 bcc.s loc_6D520 move.b #$FF,d3 loc_6D520: ; CODE XREF: sub_6D316+204j move.b d3,(byte_FFFF8D4A).w clr.b (byte_FFFFB262).w cmpi.b #1,d3 bne.s loc_6D53E move.w d2,(word_FFFF8D46).w move.w (word_FFFF8280).w,d3 mulu.w d6,d3 lsr.l #6,d3 move.w d3,(word_FFFF8D48).w loc_6D53E: ; CODE XREF: sub_6D316+216j bclr #6,(byte_FFFF8D4B).w bset #5,(byte_FFFF8D4B).w move.b (byte_FFFF8D4A).w,d0 cmp.b (DG_LEGR_KE_EGRP_CLOSED_VALVE_FAIL_COUNT).l,d0 ; Maximum number of fail conditions before reporting a fail. ; Counts bcs.w loc_6D5DA move.w #$BD,d0 ; '?' jsr sub_5F110 clr.b (byte_FFFF8D4A).w bra.s loc_6D5DA ; --------------------------------------------------------------------------- loc_6D568: ; CODE XREF: sub_6D316+14Ej move.b (DG_LEGR_KE_EGRP_CV_DELAY_OPTION).l,d3 ; Option to delay closed valve testing for partial valve opening or pintle cleaning routine. ; Delay_Type beq.s loc_6D5A6 clr.b (byte_FFFFB262).w cmp.w (DG_LEGR_KE_EGRP_CV_OPEN_POSITION).l,d1 ; Minimum EGR position to achieve and sustain following a failed closed valve test and prior to the next test iteration. ; Percent bcs.s loc_6D5A0 move.b (byte_FFFFB25C).w,d3 add.b (byte_1369).l,d3 bcc.s loc_6D58C move.b #$FF,d3 loc_6D58C: ; CODE XREF: sub_6D316+270j move.b d3,(byte_FFFFB25C).w cmp.b (DG_LEGR_KE_EGRP_CLOSED_VALVE_OPEN_TIME).l,d3 ; Minimum time the EGR desired position must remain in a stable open position prior to the next closed valve test iteration. ; Seconds bcs.s loc_6D5DA bset #6,(byte_FFFF8D4B).w bra.s loc_6D5DA ; --------------------------------------------------------------------------- loc_6D5A0: ; CODE XREF: sub_6D316+264j clr.b (byte_FFFFB25C).w bra.s loc_6D5DA ; --------------------------------------------------------------------------- loc_6D5A6: ; CODE XREF: sub_6D316+258j tst.b d3 bne.s loc_6D5DA jsr sub_6D73A clr.b (byte_FFFFB262).w tst.b (byte_FFFF823F).w beq.s loc_6D5DA bset #6,(byte_FFFF8D4B).w bclr #5,(byte_FFFF8D4B).w bra.s loc_6D5DA ; --------------------------------------------------------------------------- loc_6D5C8: ; CODE XREF: sub_6D316+148j clr.b (byte_FFFFB25C).w bclr #7,(byte_FFFFB263).w clr.b (byte_FFFFB25D).w loc_6D5D6: ; CODE XREF: sub_6D316+1D2j ; sub_6D316+1DCj clr.b (byte_FFFFB262).w loc_6D5DA: ; CODE XREF: sub_6D316+1FAj ; sub_6D316+23Ej ... tst.b (byte_FFFFB52C).w beq.s loc_6D62C cmp.w (DG_LEGR_KE_EGRP_SIGNAL_LOW_POS_MAX).l,d2 ; Maximum valid EGR position below which is considered a low signal. ; Percent bcc.s loc_6D618 bset #1,(byte_FFFFB485).w move.b (byte_FFFFB268).w,d3 add.b (byte_1369).l,d3 bcc.s loc_6D5FE move.b #$FF,d3 loc_6D5FE: ; CODE XREF: sub_6D316+2E2j move.b d3,(byte_FFFFB268).w cmp.b (DG_LEGR_KE_EGRP_SIGNAL_LOW_TIME).l,d3 ; Minimum allowable time limit for a low signal to report a failure condition. ; Seconds bcs.s loc_6D630 clr.b (byte_FFFFB268).w moveq #$53,d0 ; 'S' jsr sub_5F110 bra.s loc_6D630 ; --------------------------------------------------------------------------- loc_6D618: ; CODE XREF: sub_6D316+2D0j clr.b (byte_FFFFB268).w bclr #1,(byte_FFFFB485).w moveq #$53,d0 ; 'S' jsr sub_5F0BE bra.s loc_6D630 ; --------------------------------------------------------------------------- loc_6D62C: ; CODE XREF: sub_6D316+2C8j clr.b (byte_FFFFB268).w loc_6D630: ; CODE XREF: sub_6D316+2F2j ; sub_6D316+300j ... movem.l (sp)+,d0-d2/d6 rts ; End of function sub_6D316 ; =============== S U B R O U T I N E ======================================= sub_6D636: ; CODE XREF: sub_6D316:loc_6D338p move.b (byte_FFFF8D4A).w,d3 bls.s loc_6D652 cmp.b (DG_LEGR_KE_EGRP_CLOSED_VALVE_FAIL_COUNT).l,d3 ; Maximum number of fail conditions before reporting a fail. ; Counts bcc.s loc_6D652 cmp.b (byte_FFFFB52D).w,d3 bls.s loc_6D656 move.b #1,(byte_FFFFA247).w bra.s loc_6D656 ; --------------------------------------------------------------------------- loc_6D652: ; CODE XREF: sub_6D636+4j sub_6D636+Cj clr.b (byte_FFFFA247).w loc_6D656: ; CODE XREF: sub_6D636+12j ; sub_6D636+1Aj cmpi.b #2,(byte_FFFFA247).w bne.s loc_6D664 move.b #1,(byte_FFFFB52E).w loc_6D664: ; CODE XREF: sub_6D636+26j move.b (byte_FFFF8D4A).w,(byte_FFFFB52D).w tst.b (byte_FFFFA19E).w beq.w loc_6D72C move.w (word_FFFFB4A2).w,d3 cmp.w (DI_LEGR_KE_EGRP_IGNITION_VOLTAGE_MIN).l,d3 ; Minimum ignition voltage required to enable the EGRP tests. ; Volts bcs.w loc_6D72C tst.b (byte_FFFFAB24).w bne.w loc_6D72C btst #1,(word_FFFFA7DC+1).w bne.w loc_6D72C btst #7,(byte_FFFFA7DE).w bne.w loc_6D72C btst #6,(byte_FFFFA7E0).w bne.w loc_6D72C btst #4,(word_FFFFA7DC+1).w bne.s loc_6D72C btst #0,(word_FFFFA7DC+1).w bne.s loc_6D72C btst #7,(byte_FFFFA7E0).w bne.s loc_6D72C btst #1,(word_FFFFA7DC).w bne.s loc_6D72C btst #6,(byte_FFFFA7E0).w bne.s loc_6D72C btst #2,(word_FFFFA7DC+1).w bne.s loc_6D72C btst #0,(word_FFFFA7DC).w bne.s loc_6D72C btst #4,(byte_FFFFA7DE).w bne.s loc_6D72C btst #2,(byte_FFFF9A16).w beq.s loc_6D72C tst.b (byte_FFFFB473).w bne.s loc_6D72C btst #1,(byte_FFFF89CA).w bne.s loc_6D72C btst #1,(byte_FFFF89D0).w bne.s loc_6D72C move.b (byte_FFFFA264).w,d3 eori.b #1,d3 move.b d3,(byte_FFFFB52C).w move.b (byte_FFFFA264).w,d3 eori.b #1,d3 move.b d3,(byte_FFFFB52A).w cmpi.b #3,(byte_FFFFA246).w sne d3 neg.b d3 move.b d3,(byte_FFFFB52B).w bra.s locret_6D738 ; --------------------------------------------------------------------------- loc_6D72C: ; CODE XREF: sub_6D636+38j ; sub_6D636+46j ... clr.b (byte_FFFFB52C).w clr.b (byte_FFFFB52A).w clr.b (byte_FFFFB52B).w locret_6D738: ; CODE XREF: sub_6D636+F4j rts ; End of function sub_6D636 ; =============== S U B R O U T I N E ======================================= sub_6D73A: ; CODE XREF: sub_6D316+294p tst.b (byte_FFFFB52E).w beq.s loc_6D748 move.b #1,(byte_FFFF823F).w bra.s locret_6D754 ; --------------------------------------------------------------------------- loc_6D748: ; CODE XREF: sub_6D73A+4j btst #6,(byte_FFFF8D4B).w beq.s locret_6D754 clr.b (byte_FFFF823F).w locret_6D754: ; CODE XREF: sub_6D73A+Cj ; sub_6D73A+14j rts ; End of function sub_6D73A ; =============== S U B R O U T I N E ======================================= sub_6D756: ; CODE XREF: sub_6D244+4p cmpi.b #6,d0 beq.s loc_6D78A cmpi.b #3,d0 bhi.s locret_6D796 beq.s loc_6D78A cmpi.b #1,d0 bls.s locret_6D796 clr.b (byte_FFFFB52A).w clr.b (byte_FFFFB52D).w clr.b (byte_FFFFA247).w clr.b (byte_FFFFB52B).w clr.b (byte_FFFFB52C).w tst.b (byte_FFFFB54A).w bne.s locret_6D796 clr.b (byte_FFFF823F).w bra.s locret_6D796 ; --------------------------------------------------------------------------- loc_6D78A: ; CODE XREF: sub_6D756+4j sub_6D756+Cj clr.b (byte_FFFFB52A).w clr.b (byte_FFFFB52B).w clr.b (byte_FFFFB52C).w locret_6D796: ; CODE XREF: sub_6D756+Aj ; sub_6D756+12j ... rts ; End of function sub_6D756 ; =============== S U B R O U T I N E ======================================= sub_6D798: ; CODE XREF: sub_6D7D8+6p sub_6D7E6+Cp ... clr.w (word_FFFFB360).w clr.w (word_FFFFB362).w clr.w (word_FFFFB364).w clr.w (word_FFFFB366).w clr.w (word_FFFFB368).w clr.w (word_FFFFB36A).w clr.b (byte_FFFFB36C).w rts ; End of function sub_6D798 ; =============== S U B R O U T I N E ======================================= sub_6D7B6: ; CODE XREF: sub_6D7D8p sub_6D7E6+6p ... clr.w (word_FFFF8D00).w clr.w (word_FFFF8CFE).w clr.w (word_FFFF8D06).w clr.w (word_FFFF8D04).w clr.w (word_FFFF8D02).w clr.w (word_FFFF8D08).w rts ; End of function sub_6D7B6 ; =============== S U B R O U T I N E ======================================= sub_6D7D0: ; CODE XREF: sub_75370+1C8p move.b #1,(byte_FFFFB36C).w rts ; End of function sub_6D7D0 ; =============== S U B R O U T I N E ======================================= sub_6D7D8: ; CODE XREF: DoLoopC+2A2p jsr sub_6D7B6 jsr sub_6D798 rts ; End of function sub_6D7D8 ; =============== S U B R O U T I N E ======================================= sub_6D7E6: ; CODE XREF: sub_6D7FC+6p sub_6D88A+8p move sr,-(sp) ori #$700,sr jsr sub_6D7B6 jsr sub_6D798 move (sp)+,sr rts ; End of function sub_6D7E6 ; =============== S U B R O U T I N E ======================================= sub_6D7FC: ; CODE XREF: sub_80A78+34p tst.b (byte_FFFFB36C).w beq.s loc_6D808 jsr sub_6D7E6 loc_6D808: ; CODE XREF: sub_6D7FC+4j move.w (word_FFFFAC84).w,d3 mulu.w #$7D,d3 ; '}' lsr.l #8,d3 move.w d3,(word_FFFFB0FC).w tst.b (byte_FFFFB0FE).w beq.s locret_6D888 cmp.w (DG_MAF_KE_MAFD_FREQ_HIGH_THRESH).l,d3 ; High frequency threshold above which represents a high frequency failure ; Cycles/Sec bcs.s loc_6D83C move.w (word_FFFFB360).w,d4 addq.w #1,d4 bcc.s loc_6D830 move.w #$FFFF,d4 loc_6D830: ; CODE XREF: sub_6D7FC+2Ej move.w d4,(word_FFFFB360).w bset #5,(byte_FFFFB484).w bra.s loc_6D842 ; --------------------------------------------------------------------------- loc_6D83C: ; CODE XREF: sub_6D7FC+26j bclr #5,(byte_FFFFB484).w loc_6D842: ; CODE XREF: sub_6D7FC+3Ej move.w (word_FFFFB362).w,d4 addq.w #1,d4 bcc.s loc_6D84E move.w #$FFFF,d4 loc_6D84E: ; CODE XREF: sub_6D7FC+4Cj move.w d4,(word_FFFFB362).w cmp.w (DG_MAF_KE_MAFD_FREQ_LOW_THRESH).l,d3 ; Low frequency threshold above which represents a low frequency failure ; Cycles/Sec bhi.s loc_6D872 move.w (word_FFFFB364).w,d3 addq.w #1,d3 bcc.s loc_6D866 move.w #$FFFF,d3 loc_6D866: ; CODE XREF: sub_6D7FC+64j move.w d3,(word_FFFFB364).w bset #6,(byte_FFFFB484).w bra.s loc_6D878 ; --------------------------------------------------------------------------- loc_6D872: ; CODE XREF: sub_6D7FC+5Cj bclr #6,(byte_FFFFB484).w loc_6D878: ; CODE XREF: sub_6D7FC+74j move.w (word_FFFFB366).w,d3 addq.w #1,d3 bcc.s loc_6D884 move.w #$FFFF,d3 loc_6D884: ; CODE XREF: sub_6D7FC+82j move.w d3,(word_FFFFB366).w locret_6D888: ; CODE XREF: sub_6D7FC+1Ej rts ; End of function sub_6D7FC ; =============== S U B R O U T I N E ======================================= sub_6D88A: ; CODE XREF: DoLoopF+60p move.l d0,-(sp) tst.b (byte_FFFFB36C).w beq.s loc_6D898 jsr sub_6D7E6 loc_6D898: ; CODE XREF: sub_6D88A+6j tst.b (byte_FFFFB0FE).w beq.w loc_6D940 move.w (word_FFFFB360).w,d3 cmp.w (DG_MAF_KE_MAFD_FREQ_HIGH_FAIL_LIM).l,d3 ; Number of failed high tests within a sample size that will report a high frequency failure ; Failures bcs.s loc_6D8D0 move.w (word_FFFF8D04).w,d3 beq.s loc_6D8B8 cmp.w (word_FFFFB362).w,d3 bls.s loc_6D8BE loc_6D8B8: ; CODE XREF: sub_6D88A+26j move.w (word_FFFFB362).w,(word_FFFF8D04).w loc_6D8BE: ; CODE XREF: sub_6D88A+2Cj moveq #5,d0 jsr sub_5F110 loc_6D8C6: ; CODE XREF: sub_6D88A+64j clr.w (word_FFFFB362).w clr.w (word_FFFFB360).w bra.s loc_6D8F0 ; --------------------------------------------------------------------------- loc_6D8D0: ; CODE XREF: sub_6D88A+20j move.w (word_FFFFB362).w,d0 cmp.w (DG_MAF_KE_MAFD_FREQ_HIGH_SMPL_LIM).l,d0 ; Minimum number of MAF high frequency tests required to report a pass. ; Samples bcs.s loc_6D8F0 cmp.w (word_FFFF8CFE).w,d3 bls.s loc_6D8E6 move.w d3,(word_FFFF8CFE).w loc_6D8E6: ; CODE XREF: sub_6D88A+56j moveq #5,d0 jsr sub_5F0BE bra.s loc_6D8C6 ; --------------------------------------------------------------------------- loc_6D8F0: ; CODE XREF: sub_6D88A+44j ; sub_6D88A+50j move.w (word_FFFFB364).w,d3 cmp.w (DG_MAF_KE_MAFD_FREQ_LOW_FAIL_LIM).l,d3 ; Number of failed low tests within a sample size that will report a low frequency failure ; Failures bcs.s loc_6D920 move.w (word_FFFF8D06).w,d3 beq.s loc_6D908 cmp.w (word_FFFFB366).w,d3 bls.s loc_6D90E loc_6D908: ; CODE XREF: sub_6D88A+76j move.w (word_FFFFB366).w,(word_FFFF8D06).w loc_6D90E: ; CODE XREF: sub_6D88A+7Cj moveq #4,d0 jsr sub_5F110 loc_6D916: ; CODE XREF: sub_6D88A+B4j clr.w (word_FFFFB366).w clr.w (word_FFFFB364).w bra.s loc_6D940 ; --------------------------------------------------------------------------- loc_6D920: ; CODE XREF: sub_6D88A+70j move.w (word_FFFFB366).w,d0 cmp.w (DG_MAF_KE_MAFD_FREQ_LOW_FAIL_LIM+2).l,d0 ; Number of failed low tests within a sample size that will report a low frequency failure ; Failures bcs.s loc_6D940 cmp.w (word_FFFF8D00).w,d3 bls.s loc_6D936 move.w d3,(word_FFFF8D00).w loc_6D936: ; CODE XREF: sub_6D88A+A6j moveq #4,d0 jsr sub_5F0BE bra.s loc_6D916 ; --------------------------------------------------------------------------- loc_6D940: ; CODE XREF: sub_6D88A+12j ; sub_6D88A+94j ... move.l (sp)+,d0 rts ; End of function sub_6D88A ; =============== S U B R O U T I N E ======================================= sub_6D944: ; CODE XREF: DoLoopF+6Cp movem.l d0-d1,-(sp) tst.b (byte_FFFFB0F6).w beq.w loc_6D9EC move.w (Airflow_Rationality_SD).w,d3 move.w (Airflow_Rationality_FilteredMAF).w,d4 cmp.w d4,d3 bls.s loc_6D964 move.l d3,d1 sub.w d4,d1 move.w d1,d4 bra.s loc_6D966 ; --------------------------------------------------------------------------- loc_6D964: ; CODE XREF: sub_6D944+16j sub.w d3,d4 loc_6D966: ; CODE XREF: sub_6D944+1Ej cmpi.w #$C800,d3 bcc.s loc_6D978 andi.l #$FFFF,d3 divu.w #$14,d3 bra.s loc_6D97C ; --------------------------------------------------------------------------- loc_6D978: ; CODE XREF: sub_6D944+26j move.w #$A00,d3 loc_6D97C: ; CODE XREF: sub_6D944+32j tblu.w (DG_MAF_KV_MAFD_PREDICTED_MAF_DELTA_MAX).l,d3 ; Maximum predicted mass air flow delta value based on a calculated mass air flow value for the MAF rationality test. ; GPS cmp.w d3,d4 bcs.s loc_6D994 addq.w #1,(word_FFFFB368).w bset #7,(byte_FFFFB484).w bra.s loc_6D99A ; --------------------------------------------------------------------------- loc_6D994: ; CODE XREF: sub_6D944+42j bclr #7,(byte_FFFFB484).w loc_6D99A: ; CODE XREF: sub_6D944+4Ej move.w (word_FFFFB36A).w,d3 addq.w #1,d3 move.w d3,(word_FFFFB36A).w move.w (word_FFFFB368).w,d4 cmp.w (DG_MAF_KE_MAFD_RAT_FAIL_LIM).l,d4 ; Number of failed tests within a sample size that will report a MAF Rationality failure ; Failures bcs.s loc_6D9D0 move.w (word_FFFF8D08).w,d4 beq.s loc_6D9BA cmp.w d4,d3 bcc.s loc_6D9BE loc_6D9BA: ; CODE XREF: sub_6D944+70j move.w d3,(word_FFFF8D08).w loc_6D9BE: ; CODE XREF: sub_6D944+74j moveq #3,d0 jsr sub_5F110 loc_6D9C6: ; CODE XREF: sub_6D944+A6j clr.w (word_FFFFB36A).w clr.w (word_FFFFB368).w bra.s loc_6D9EC ; --------------------------------------------------------------------------- loc_6D9D0: ; CODE XREF: sub_6D944+6Aj cmp.w (DG_MAF_KE_MAFD_RAT_SMPL_LIM).l,d3 ; Number of MAF Rationality tests that make up a sample size. ; Samples bcs.s loc_6D9EC cmp.w (word_FFFF8D02).w,d4 bls.s loc_6D9E2 move.w d4,(word_FFFF8D02).w loc_6D9E2: ; CODE XREF: sub_6D944+98j moveq #3,d0 jsr sub_5F0BE bra.s loc_6D9C6 ; --------------------------------------------------------------------------- loc_6D9EC: ; CODE XREF: sub_6D944+8j ; sub_6D944+8Aj ... movem.l (sp)+,d0-d1 rts ; End of function sub_6D944 ; =============== S U B R O U T I N E ======================================= sub_6D9F2: ; CODE XREF: OS1:0002924Cp ; sub_755FA+11Ep cmpi.b #6,d0 beq.s loc_6DA12 cmpi.b #3,d0 bhi.s locret_6DA18 beq.s loc_6DA12 cmpi.b #1,d0 bls.s locret_6DA18 tst.b (byte_FFFFB54A).w bne.s loc_6DA12 jsr sub_6D7B6 loc_6DA12: ; CODE XREF: sub_6D9F2+4j sub_6D9F2+Cj ... jsr sub_6D798 locret_6DA18: ; CODE XREF: sub_6D9F2+Aj ; sub_6D9F2+12j rts ; End of function sub_6D9F2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6DA1A: ; CODE XREF: DoLoopF+66p var_2 = -2 link a6,#-2 movem.l d0-d1,-(sp) move.w (word_FFFFAC86).w,d3 move.w d3,(word_FFFFB100).w move.w (word_FFFFA258).w,d4 cmp.w (DI_MAF_KE_MAFD_RAT_EGR_POS_MAX).l,d4 ; Maximum allowed EGR pintle position value to run the MAF rationality test. ; Percent sls d1 neg.b d1 move.b d1,(byte_FFFFB109).w move.w (word_FFFFB4A2).w,d4 cmp.w (DI_MAF_KE_MAFD_RAT_IGN_VOLT_MIN).l,d4 ; Minimum ignition voltage necessary to run the MAF rationality test. ; Volts bcs.s loc_6DA70 cmp.w (DI_MAF_KE_MAFD_RAT_IGN_VOLT_MAX).l,d4 ; Maximum ignition voltage necessary to run the MAF rationality test. ; Volts bhi.s loc_6DA70 cmp.w (DI_MAF_KE_MAFD_RAT_IGN_VOLT_LOW_THRESH).l,d4 ; Ignition voltage below which it is necessary to compare the mass airflow reading to a threshold. ; Volts bhi.s loc_6DA68 cmp.w (DI_MAF_KE_MAFD_RAT_LOW_VOLT_MAF_THRESH).l,d3 ; Threshold below which the MAF value must be to run the MAF rationality test. ; GPS sls d4 neg.b d4 move.b d4,(byte_FFFFB108).w bra.s loc_6DA74 ; --------------------------------------------------------------------------- loc_6DA68: ; CODE XREF: sub_6DA1A+3Cj move.b #1,(byte_FFFFB108).w bra.s loc_6DA74 ; --------------------------------------------------------------------------- loc_6DA70: ; CODE XREF: sub_6DA1A+2Cj ; sub_6DA1A+34j clr.b (byte_FFFFB108).w loc_6DA74: ; CODE XREF: sub_6DA1A+4Cj ; sub_6DA1A+54j clr.b d4 btst #1,(byte_FFFF88E4).w bne.w loc_6DB50 btst #1,(byte_FFFF88E2).w bne.w loc_6DB50 btst #1,(byte_FFFF88E0).w bne.w loc_6DB50 btst #2,(byte_FFFFB48B).w bne.w loc_6DB50 btst #0,(byte_FFFFB48B).w bne.w loc_6DB50 btst #1,(byte_FFFF88CC).w bne.w loc_6DB50 btst #1,(byte_FFFF88CE).w bne.w loc_6DB50 btst #1,(byte_FFFF88D0).w bne.w loc_6DB50 btst #3,(byte_FFFFB486).w bne.w loc_6DB50 btst #5,(byte_FFFFB486).w bne.s loc_6DB50 btst #1,(byte_FFFF88C8).w bne.s loc_6DB50 btst #1,(byte_FFFF88CA).w bne.s loc_6DB50 btst #6,(byte_FFFFB484).w bne.s loc_6DB50 btst #5,(byte_FFFFB484).w bne.s loc_6DB50 btst #1,(byte_FFFF8978).w bne.s loc_6DB50 btst #1,(byte_FFFF8980).w bne.s loc_6DB50 btst #1,(byte_FFFF8996).w bne.s loc_6DB50 btst #1,(byte_FFFF8974).w bne.s loc_6DB50 btst #1,(byte_FFFF8960).w bne.s loc_6DB50 btst #1,(byte_FFFF8964).w bne.s loc_6DB50 btst #1,(byte_FFFF8966).w bne.s loc_6DB50 btst #1,(byte_FFFF8A3A).w bne.s loc_6DB50 btst #4,(byte_FFFFB485).w bne.s loc_6DB50 btst #1,(byte_FFFFB485).w bne.s loc_6DB50 btst #3,(byte_FFFFB485).w beq.s loc_6DB52 loc_6DB50: ; CODE XREF: sub_6DA1A+62j ; sub_6DA1A+6Cj ... addq.b #1,d4 loc_6DB52: ; CODE XREF: sub_6DA1A+134j move.b d4,(byte_FFFFB10C).w move.w (word_FFFFB294).w,d0 moveq #3,d5 cmp.b (ThrottleControlMode2?).w,d5 bne.w loc_6DC2C tst.b (byte_FFFF93EA).w bne.w loc_6DC2C tst.b d4 bne.w loc_6DC2C tst.b d1 beq.w loc_6DC2C tst.b (byte_FFFFB108).w beq.w loc_6DC2C cmp.b (byte_FFFFA246).w,d5 beq.w loc_6DC2C move.w (word_FFFFA62A).w,d3 cmp.w (DI_MAF_KE_MAFD_RAT_PURGE_DC_MAX).l,d3 ; Maximum allowed canister purge duty cycle value to run the MAF rationality test. ; Percent bhi.w loc_6DC2C move.l d0,d4 sub.w (word_FFFFB106).w,d4 bcc.s loc_6DBA0 neg.w d4 loc_6DBA0: ; CODE XREF: sub_6DA1A+182j cmp.w (DI_MAF_KE_MAFD_RAT_MAP_DELTA_MAX).l,d4 ; Maximum allowed manifold pressure delta value to run MAF rationality test. ; kPa bhi.w loc_6DC2C move.w (word_FFFFAB66).w,d3 movea.w (word_FFFFAB60).w,a2 sub.w a2,d3 tst.w d3 bge.s loc_6DBBA neg.w d3 loc_6DBBA: ; CODE XREF: sub_6DA1A+19Cj cmp.w (DI_MAF_KE_MAFD_RAT_TPS_DELTA_MAX).l,d3 ; Maximum allowed throttle position delta to run the MAF rationality test. ; Percent bhi.s loc_6DC2C move.w (word_FFFFB298).w,d3 cmp.w (DI_MAF_KE_MAFD_RAT_ENG_VACUUM_MAX).l,d3 ; Maximum allowed engine vacuum value to run the MAF rationality test. ; kPa bhi.s loc_6DC2C tst.b (byte_FFFFB370).w beq.s loc_6DBE2 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_6DBE2 move.w (word_FFFF9050).w,d3 bra.s loc_6DBE6 ; --------------------------------------------------------------------------- loc_6DBE2: ; CODE XREF: sub_6DA1A+1B8j ; sub_6DA1A+1C0j move.w (word_FFFFAB66).w,d3 loc_6DBE6: ; CODE XREF: sub_6DA1A+1C6j cmp.w (DI_MAF_KE_MAFD_RAT_TPS_MAX).l,d3 ; Maximum allowed throttle position value to run the MAF rationality test. ; Percent bhi.s loc_6DC2C tst.b (byte_FFFFA93A).w bne.s loc_6DC2C tst.b (byte_FFFFB10B).w bne.s loc_6DC08 move.w (GlobalClock).w,(word_FFFFB104).w move.b #1,(byte_FFFFB10B).w bra.s loc_6DC34 ; --------------------------------------------------------------------------- loc_6DC08: ; CODE XREF: sub_6DA1A+1DEj tst.b (byte_FFFFB0F6).w bne.s loc_6DC34 move.w (word_FFFFB104).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (DI_MAF_KE_MAFD_RAT_STABLE_TIME_MIN).l,d3 ; Minimum stabilization time after conditions have been met to run the MAF rationality test. ; Seconds scc d3 neg.b d3 move.b d3,(byte_FFFFB0F6).w bra.s loc_6DC34 ; --------------------------------------------------------------------------- loc_6DC2C: ; CODE XREF: sub_6DA1A+146j ; sub_6DA1A+14Ej ... clr.b (byte_FFFFB10B).w clr.b (byte_FFFFB0F6).w loc_6DC34: ; CODE XREF: sub_6DA1A+1ECj ; sub_6DA1A+1F2j ... move.w d0,(word_FFFFB106).w movem.l (sp)+,d0-d1 unlk a6 rts ; End of function sub_6DA1A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6DC40: ; CODE XREF: sub_80A78+2Ep var_4 = -4 var_2 = -2 link a6,#-4 movea.w (word_FFFFAC86).w,a2 move.w a2,(word_FFFFB100).w move.w (Airflow_SD).w,(Airflow_Rationality_SD).w move.w (Airflow_Rationality_FilteredMAF).w,var_4(a6) move.w a2,var_2(a6) move.w (DI_MAF_KE_MAFD_RAT_MAF_FILT_COEFF).l,d3 ; Filter coefficient for the mass air flow rescaled in the MAF rationality test. ; 0-1 tblu.w var_4(a6),d3 move.w d3,(Airflow_Rationality_FilteredMAF).w move.l (EngineRunTime).w,d3 cmp.l (DI_MAF_KE_MAFD_FREQ_ENG_RUN_TIME_MIN).l,d3 ; Minimum engine run time necessary to run the MAF frequency test. ; Seconds bcs.s loc_6DCC8 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DI_MAF_KE_MAFD_FREQ_RPM_MIN).l,d3 ; Minimum engine speed necessary to run the MAF frequency test. ; RPM bcs.s loc_6DCC8 move.w (word_FFFFB4A2).w,d3 cmp.w (DI_MAF_KE_MAFD_FREQ_IGN_VOLT_MIN).l,d3 ; Minimum ignition voltage necessary to run the MAF frequency test. ; Volts bcs.s loc_6DCC8 tst.b (byte_FFFFB10A).w bne.s loc_6DCA4 move.w (GlobalClock).w,(word_FFFFB102).w move.b #1,(byte_FFFFB10A).w bra.s loc_6DCD0 ; --------------------------------------------------------------------------- loc_6DCA4: ; CODE XREF: sub_6DC40+54j tst.b (byte_FFFFB0FE).w bne.s loc_6DCD0 move.w (word_FFFFB102).w,var_4(a6) move.w (GlobalClock).w,d3 sub.w var_4(a6),d3 cmp.w (DI_MAF_KE_MAFD_FREQ_STABLE_TIME_MIN).l,d3 ; Minimum stabilization time after conditions have been met to run the MAF frequency test. ; Seconds scc d3 neg.b d3 move.b d3,(byte_FFFFB0FE).w bra.s loc_6DCD0 ; --------------------------------------------------------------------------- loc_6DCC8: ; CODE XREF: sub_6DC40+36j ; sub_6DC40+42j ... clr.b (byte_FFFFB10A).w clr.b (byte_FFFFB0FE).w loc_6DCD0: ; CODE XREF: sub_6DC40+62j ; sub_6DC40+68j ... unlk a6 rts ; End of function sub_6DC40 ; =============== S U B R O U T I N E ======================================= sub_6DCD4: ; CODE XREF: DoLoopC+2A8p ; sub_75370+1CEp clr.w (Airflow_Rationality_SD).w clr.w (Airflow_Rationality_FilteredMAF).w clr.b (byte_FFFFB10A).w clr.b (byte_FFFFB0FE).w clr.b (byte_FFFFB0F6).w clr.b (byte_FFFFB10B).w rts ; End of function sub_6DCD4 ; =============== S U B R O U T I N E ======================================= sub_6DCEE: ; CODE XREF: OS1:00029254p cmpi.b #6,d0 beq.s loc_6DD00 cmpi.b #3,d0 bhi.s locret_6DD24 cmpi.b #1,d0 bls.s locret_6DD24 loc_6DD00: ; CODE XREF: sub_6DCEE+4j clr.w (Airflow_Rationality_SD).w clr.w (Airflow_Rationality_FilteredMAF).w clr.b (byte_FFFFB0FE).w clr.b (byte_FFFFB10A).w clr.b (byte_FFFFB10C).w clr.b (byte_FFFFB109).w clr.b (byte_FFFFB108).w clr.b (byte_FFFFB0F6).w clr.b (byte_FFFFB10B).w locret_6DD24: ; CODE XREF: sub_6DCEE+Aj ; sub_6DCEE+10j rts ; End of function sub_6DCEE ; =============== S U B R O U T I N E ======================================= sub_6DD26: ; CODE XREF: OS1:loc_29074p ; DoLoopC+2EEp ... clr.w (word_FFFFB1A0).w clr.w (word_FFFFB1A2).w clr.w (word_FFFFB198).w clr.w (word_FFFFB19A).w clr.w (word_FFFFB1A8).w clr.w (word_FFFFB1AA).w clr.w (word_FFFFB1A4).w clr.w (word_FFFFB1A6).w clr.w (word_FFFFB19C).w clr.w (word_FFFFB19E).w clr.b (byte_FFFFB196).w rts ; End of function sub_6DD26 ; =============== S U B R O U T I N E ======================================= sub_6DD54: ; CODE XREF: OS1:0002906Ep ; DoLoopC+2F4p ... clr.w (word_FF8D98).l clr.w (word_FF8D9A).l clr.w (word_FF8D9C).l clr.w (word_FF8D9E).l clr.w (word_FF8DA0).l clr.w (word_FF8DA2).l rts ; End of function sub_6DD54 ; =============== S U B R O U T I N E ======================================= sub_6DD7A: ; CODE XREF: DoLoopG+224p movem.l d0-d2/d6-a0,-(sp) btst #5,(byte_FFFFB196).w beq.s loc_6DD92 jsr sub_6DD54 jsr sub_6DD26 loc_6DD92: ; CODE XREF: sub_6DD7A+Aj tst.b (byte_FFFFB1DB).w beq.w loc_6DED4 move.w (word_FFFFB1DC).w,d7 move.w (word_FFFFB1AA).w,d6 addq.w #1,d6 bcc.s loc_6DDAA move.w #$FFFF,d6 loc_6DDAA: ; CODE XREF: sub_6DD7A+2Aj move.w d6,(word_FFFFB1AA).w move.w d7,d6 move.w (EngineRPM_PID_000C___).w,d0 tst.b (byte_FFFFB370).w beq.s loc_6DDC8 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_6DDC8 move.w (word_FFFF9050).w,d1 bra.s loc_6DDCC ; --------------------------------------------------------------------------- loc_6DDC8: ; CODE XREF: sub_6DD7A+3Ej ; sub_6DD7A+46j move.w (word_FFFFAB66).w,d1 loc_6DDCC: ; CODE XREF: sub_6DD7A+4Cj cmpi.w #$13FF,d1 bls.s loc_6DDD8 move.w #$9FF,d1 bra.s loc_6DDDA ; --------------------------------------------------------------------------- loc_6DDD8: ; CODE XREF: sub_6DD7A+56j lsr.w #1,d1 loc_6DDDA: ; CODE XREF: sub_6DD7A+5Cj cmpi.w #$6FFF,d0 bcs.s loc_6DDE6 move.w #$6FF,d0 bra.s loc_6DDE8 ; --------------------------------------------------------------------------- loc_6DDE6: ; CODE XREF: sub_6DD7A+64j lsr.w #4,d0 loc_6DDE8: ; CODE XREF: sub_6DD7A+6Aj lea (DG_MAP_KA_MAPD_PREDICTED_MAP_MAX).l,a0 ; Upper threshold MAP readings ; Kilopascals moveq #$10,d2 jsr (sub_16D6).l cmp.w d0,d6 bhi.s loc_6DE44 move.w (EngineRPM_PID_000C___).w,d0 tst.b (byte_FFFFB370).w beq.s loc_6DE12 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_6DE12 move.w (word_FFFF9050).w,d1 bra.s loc_6DE16 ; --------------------------------------------------------------------------- loc_6DE12: ; CODE XREF: sub_6DD7A+88j ; sub_6DD7A+90j move.w (word_FFFFAB66).w,d1 loc_6DE16: ; CODE XREF: sub_6DD7A+96j cmpi.w #$13FF,d1 bls.s loc_6DE22 move.w #$9FF,d1 bra.s loc_6DE24 ; --------------------------------------------------------------------------- loc_6DE22: ; CODE XREF: sub_6DD7A+A0j lsr.w #1,d1 loc_6DE24: ; CODE XREF: sub_6DD7A+A6j cmpi.w #$6FFF,d0 bcs.s loc_6DE30 move.w #$6FF,d0 bra.s loc_6DE32 ; --------------------------------------------------------------------------- loc_6DE30: ; CODE XREF: sub_6DD7A+AEj lsr.w #4,d0 loc_6DE32: ; CODE XREF: sub_6DD7A+B4j lea (DG_MAP_KA_MAPD_PREDICTED_MAP_MIN).l,a0 ; Lower threshold MAP readings ; Kilopascals moveq #$10,d2 jsr (sub_16D6).l cmp.w d0,d7 bcc.s loc_6DE5C loc_6DE44: ; CODE XREF: sub_6DD7A+7Ej bset #1,(byte_FFFFB486).w move.w (word_FFFFB1A8).w,d3 addq.w #1,d3 bcc.s loc_6DE56 move.w #$FFFF,d3 loc_6DE56: ; CODE XREF: sub_6DD7A+D6j move.w d3,(word_FFFFB1A8).w bra.s loc_6DE62 ; --------------------------------------------------------------------------- loc_6DE5C: ; CODE XREF: sub_6DD7A+C8j bclr #1,(byte_FFFFB486).w loc_6DE62: ; CODE XREF: sub_6DD7A+E0j move.w (word_FFFFB1A8).w,d3 cmp.w (DG_MAP_KE_MAPD_RAT_FAIL_LIM).l,d3 ; Number of rationality failed tests within a sample size that will report a failure. ; Unitless bcs.s loc_6DEA8 move.w (word_FF8DA2).l,d3 bne.s loc_6DE80 move.w (word_FFFFB1AA).w,(word_FF8DA2).l bra.s loc_6DE96 ; --------------------------------------------------------------------------- loc_6DE80: ; CODE XREF: sub_6DD7A+FAj move.w (word_FFFFB1AA).w,d1 cmp.w d3,d1 bcc.s loc_6DE8E movea.w (word_FFFFB1AA).w,a2 bra.s loc_6DE90 ; --------------------------------------------------------------------------- loc_6DE8E: ; CODE XREF: sub_6DD7A+10Cj movea.l d3,a2 loc_6DE90: ; CODE XREF: sub_6DD7A+112j move.w a2,(word_FF8DA2).l loc_6DE96: ; CODE XREF: sub_6DD7A+104j moveq #6,d0 jsr sub_5F110 loc_6DE9E: ; CODE XREF: sub_6DD7A+158j clr.w (word_FFFFB1AA).w clr.w (word_FFFFB1A8).w bra.s loc_6DED4 ; --------------------------------------------------------------------------- loc_6DEA8: ; CODE XREF: sub_6DD7A+F2j move.w (word_FFFFB1AA).w,d1 cmp.w (DG_MAP_KE_MAPD_RAT_SMPL_LIM).l,d1 ; Number of rationality tests that make up a sample size. ; Unitless bcs.s loc_6DED4 move.w (word_FF8D9C).l,d4 cmp.w d4,d3 bls.s loc_6DEC2 movea.l d3,a2 bra.s loc_6DEC4 ; --------------------------------------------------------------------------- loc_6DEC2: ; CODE XREF: sub_6DD7A+142j movea.l d4,a2 loc_6DEC4: ; CODE XREF: sub_6DD7A+146j move.w a2,(word_FF8D9C).l moveq #6,d0 jsr sub_5F0BE bra.s loc_6DE9E ; --------------------------------------------------------------------------- loc_6DED4: ; CODE XREF: sub_6DD7A+1Cj ; sub_6DD7A+12Cj ... movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_6DD7A ; =============== S U B R O U T I N E ======================================= sub_6DEDA: ; CODE XREF: sub_6E41E:loc_6E4F6p movem.l d0-d2,-(sp) btst #5,(byte_FFFFB196).w beq.s loc_6DEF2 jsr sub_6DD54 jsr sub_6DD26 loc_6DEF2: ; CODE XREF: sub_6DEDA+Aj move.w (EngineRPM_PID_000C___).w,d3 tst.b (byte_FFFFB370).w beq.s loc_6DF0A moveq #$A,d2 cmp.b (byte_FFFF9060).w,d2 bne.s loc_6DF0A movea.w (word_FFFF9050).w,a2 bra.s loc_6DF0E ; --------------------------------------------------------------------------- loc_6DF0A: ; CODE XREF: sub_6DEDA+20j ; sub_6DEDA+28j movea.w (word_FFFFAB66).w,a2 loc_6DF0E: ; CODE XREF: sub_6DEDA+2Ej move.w a2,d4 btst #4,(byte_FFFFB1DA).w bne.w loc_6E066 cmp.w (DG_MAP_KE_MAPD_TPS_UNDER_RPM_THRESH_MIN).l,d4 bcs.s loc_6DF2A cmp.w (DG_MAP_KE_MAPD_SHORT_LOW_RPM).l,d3 bls.s loc_6DF3E loc_6DF2A: ; CODE XREF: sub_6DEDA+46j cmp.w (DG_MAP_KE_MAPD_TPS_OVER_RPM_THRESH_MIN).l,d4 bcs.w loc_6E066 cmp.w (DG_MAP_KE_MAPD_SHORT_LOW_RPM).l,d3 bls.w loc_6E066 loc_6DF3E: ; CODE XREF: sub_6DEDA+4Ej move.w (word_FFFFB1DE).w,d3 cmp.w (DG_MAP_KE_MAPD_SHORTED_LOW_THRESH).l,d3 ; The threshold below which the MAP sensor is considered opened or shorted to ground. ; Percent bcc.s loc_6DF80 bset #3,(byte_FFFFB486).w move.w (word_FFFFB19C).w,d3 addq.w #1,d3 bcc.s loc_6DF5C move.w #$FFFF,d3 loc_6DF5C: ; CODE XREF: sub_6DEDA+7Cj move.w d3,(word_FFFFB19C).w btst #7,(byte_FFFFB196).w bne.s loc_6DF8C bset #2,(byte_FFFFB486).w move.w (word_FFFFB198).w,d3 addq.w #1,d3 bcc.s loc_6DF7A move.w #$FFFF,d3 loc_6DF7A: ; CODE XREF: sub_6DEDA+9Aj move.w d3,(word_FFFFB198).w bra.s loc_6DF8C ; --------------------------------------------------------------------------- loc_6DF80: ; CODE XREF: sub_6DEDA+6Ej bclr #2,(byte_FFFFB486).w bclr #3,(byte_FFFFB486).w loc_6DF8C: ; CODE XREF: sub_6DEDA+8Cj ; sub_6DEDA+A4j move.w (word_FFFFB19E).w,d1 addq.w #1,d1 bcc.s loc_6DF98 move.w #$FFFF,d1 loc_6DF98: ; CODE XREF: sub_6DEDA+B8j move.w d1,(word_FFFFB19E).w btst #7,(byte_FFFFB196).w bne.s loc_6DFE8 move.w (word_FFFFB19A).w,d3 addq.w #1,d3 bcc.s loc_6DFB0 move.w #$FFFF,d3 loc_6DFB0: ; CODE XREF: sub_6DEDA+D0j move.w d3,(word_FFFFB19A).w move.w (word_FFFFB198).w,d0 cmp.w (DG_MAP_KE_MAPD_INT_SHORT_LOW_FAIL_LIM).l,d0 ; Number of failed intermittent short to low tests within a sample size that will report a failure. ; Unitless bcs.s loc_6DFD4 move.w #$A9,d0 ; '?' jsr sub_5F110 loc_6DFCA: ; CODE XREF: sub_6DEDA+10Cj clr.w (word_FFFFB198).w clr.w (word_FFFFB19A).w bra.s loc_6DFE8 ; --------------------------------------------------------------------------- loc_6DFD4: ; CODE XREF: sub_6DEDA+E4j cmp.w (DG_MAP_KE_MAPD_INT_SHORT_LOW_SMPL_LIM).l,d3 ; Number of intermittent short to low tests that make up a sample size. ; Unitless bcs.s loc_6DFE8 move.w #$A9,d0 ; '?' jsr sub_5F0BE bra.s loc_6DFCA ; --------------------------------------------------------------------------- loc_6DFE8: ; CODE XREF: sub_6DEDA+C8j ; sub_6DEDA+F8j ... move.w (word_FFFFB19C).w,d3 cmp.w (DG_MAP_KE_MAPD_SHORT_LOW_FAIL_LIM).l,d3 ; Number of failed short to low tests within a sample size that will report a failure. ; Unitless bcs.s loc_6E032 move.w (word_FF8DA0).l,d3 beq.s loc_6E002 cmp.w d3,d1 bcs.s loc_6E002 move.l d3,d1 loc_6E002: ; CODE XREF: sub_6DEDA+120j ; sub_6DEDA+124j move.w d1,(word_FF8DA0).l moveq #7,d0 jsr sub_5F110 move.w #$A9,d0 ; '?' jsr sub_5F0BE bset #7,(byte_FFFFB196).w clr.w (word_FFFFB19E).w clr.w (word_FFFFB19C).w clr.w (word_FFFFB198).w clr.w (word_FFFFB19A).w bra.s loc_6E066 ; --------------------------------------------------------------------------- loc_6E032: ; CODE XREF: sub_6DEDA+118j cmp.w (DG_MAP_KE_MAPD_SHORT_LOW_SMPL_LIM).l,d1 ; Number of short to low tests that make up a sample size. ; Unitless bcs.s loc_6E066 move.w (word_FF8D9A).l,d4 cmp.w d4,d3 bls.s loc_6E048 movea.l d3,a2 bra.s loc_6E04A ; --------------------------------------------------------------------------- loc_6E048: ; CODE XREF: sub_6DEDA+168j movea.l d4,a2 loc_6E04A: ; CODE XREF: sub_6DEDA+16Cj move.w a2,(word_FF8D9A).l moveq #7,d0 jsr sub_5F0BE bclr #7,(byte_FFFFB196).w clr.w (word_FFFFB19E).w clr.w (word_FFFFB19C).w loc_6E066: ; CODE XREF: sub_6DEDA+3Cj ; sub_6DEDA+56j ... move.w (EngineRPM_PID_000C___).w,d0 tst.b (byte_FFFFB370).w beq.s loc_6E07E cmpi.b #$A,(byte_FFFF9060).w bne.s loc_6E07E movea.w (word_FFFF9050).w,a2 bra.s loc_6E082 ; --------------------------------------------------------------------------- loc_6E07E: ; CODE XREF: sub_6DEDA+194j ; sub_6DEDA+19Cj movea.w (word_FFFFAB66).w,a2 loc_6E082: ; CODE XREF: sub_6DEDA+1A2j move.w a2,d1 btst #4,(byte_FFFFB1DA).w bne.w loc_6E1F4 cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_6E1F4 clr.l d5 move.w (word_FFFFB1D8).w,d5 move.l (EngineRunTime).w,d3 cmp.l d3,d5 bhi.w loc_6E1F4 cmp.w (DG_MAP_KE_MAPD_TPS_UNDER_RPM_THRESH_MAX).l,d1 bcc.s loc_6E0B8 cmp.w (DG_MAP_KE_MAPD_SHORT_HIGH_RPM).l,d0 bls.s loc_6E0CC loc_6E0B8: ; CODE XREF: sub_6DEDA+1D4j cmp.w (DG_MAP_KE_MAPD_TPS_OVER_RPM_THRESH_MAX).l,d1 bcc.w loc_6E1F4 cmp.w (DG_MAP_KE_MAPD_SHORT_HIGH_RPM).l,d0 bls.w loc_6E1F4 loc_6E0CC: ; CODE XREF: sub_6DEDA+1DCj move.w (word_FFFFB1DE).w,d3 cmp.w (DG_MAP_KE_MAPD_SHORTED_HIGH_THRESH).l,d3 ; The threshold above which the MAP sensor is considered shorted to a positive voltage. ; Percent bls.s loc_6E10E bset #5,(byte_FFFFB486).w move.w (word_FFFFB1A4).w,d3 addq.w #1,d3 bcc.s loc_6E0EA move.w #$FFFF,d3 loc_6E0EA: ; CODE XREF: sub_6DEDA+20Aj move.w d3,(word_FFFFB1A4).w btst #6,(byte_FFFFB196).w bne.s loc_6E11A bset #4,(byte_FFFFB486).w move.w (word_FFFFB1A0).w,d3 addq.w #1,d3 bcc.s loc_6E108 move.w #$FFFF,d3 loc_6E108: ; CODE XREF: sub_6DEDA+228j move.w d3,(word_FFFFB1A0).w bra.s loc_6E11A ; --------------------------------------------------------------------------- loc_6E10E: ; CODE XREF: sub_6DEDA+1FCj bclr #4,(byte_FFFFB486).w bclr #5,(byte_FFFFB486).w loc_6E11A: ; CODE XREF: sub_6DEDA+21Aj ; sub_6DEDA+232j move.w (word_FFFFB1A6).w,d1 addq.w #1,d1 bcc.s loc_6E126 move.w #$FFFF,d1 loc_6E126: ; CODE XREF: sub_6DEDA+246j move.w d1,(word_FFFFB1A6).w btst #6,(byte_FFFFB196).w bne.s loc_6E176 move.w (word_FFFFB1A2).w,d3 addq.w #1,d3 bcc.s loc_6E13E move.w #$FFFF,d3 loc_6E13E: ; CODE XREF: sub_6DEDA+25Ej move.w d3,(word_FFFFB1A2).w move.w (word_FFFFB1A0).w,d0 cmp.w (DG_MAP_KE_MAPD_INT_SHORT_HIGH_FAIL_LIM).l,d0 ; Number of failed intermittent short to high tests within a sample size that will report a failure. ; Unitless bcs.s loc_6E162 move.w #$A8,d0 ; '?' jsr sub_5F110 loc_6E158: ; CODE XREF: sub_6DEDA+29Aj clr.w (word_FFFFB1A2).w clr.w (word_FFFFB1A0).w bra.s loc_6E176 ; --------------------------------------------------------------------------- loc_6E162: ; CODE XREF: sub_6DEDA+272j cmp.w (DG_MAP_KE_MAPD_INT_SHORT_HIGH_SMPL_LIM).l,d3 ; Number of intermittent short to high tests that make up a sample size. ; Unitless bcs.s loc_6E176 move.w #$A8,d0 ; '?' jsr sub_5F0BE bra.s loc_6E158 ; --------------------------------------------------------------------------- loc_6E176: ; CODE XREF: sub_6DEDA+256j ; sub_6DEDA+286j ... move.w (word_FFFFB1A4).w,d3 cmp.w (DG_MAP_KE_MAPD_SHORT_HIGH_FAIL_LIM).l,d3 ; Number of failed short to high tests within a sample size that will report a failure. ; Unitless bcs.s loc_6E1C0 move.w (word_FF8D9E).l,d3 beq.s loc_6E190 cmp.w d3,d1 bcs.s loc_6E190 move.l d3,d1 loc_6E190: ; CODE XREF: sub_6DEDA+2AEj ; sub_6DEDA+2B2j move.w d1,(word_FF8D9E).l moveq #8,d0 jsr sub_5F110 move.w #$A8,d0 ; '?' jsr sub_5F0BE bset #6,(byte_FFFFB196).w clr.w (word_FFFFB1A6).w clr.w (word_FFFFB1A4).w clr.w (word_FFFFB1A2).w clr.w (word_FFFFB1A0).w bra.s loc_6E1F4 ; --------------------------------------------------------------------------- loc_6E1C0: ; CODE XREF: sub_6DEDA+2A6j cmp.w (DG_MAP_KE_MAPD_SHORT_HIGH_SMPL_LIM).l,d1 ; Number of short to high tests that make up a sample size. ; Unitless bcs.s loc_6E1F4 move.w (word_FF8D98).l,d4 cmp.w d4,d3 bls.s loc_6E1D6 movea.l d3,a2 bra.s loc_6E1D8 ; --------------------------------------------------------------------------- loc_6E1D6: ; CODE XREF: sub_6DEDA+2F6j movea.l d4,a2 loc_6E1D8: ; CODE XREF: sub_6DEDA+2FAj move.w a2,(word_FF8D98).l moveq #8,d0 jsr sub_5F0BE bclr #6,(byte_FFFFB196).w clr.w (word_FFFFB1A6).w clr.w (word_FFFFB1A4).w loc_6E1F4: ; CODE XREF: sub_6DEDA+1B0j ; sub_6DEDA+1BAj ... movem.l (sp)+,d0-d2 rts ; End of function sub_6DEDA ; =============== S U B R O U T I N E ======================================= sub_6E1FA: ; CODE XREF: sub_6E4FE+4Ep movem.l d0-d1,-(sp) btst #3,(byte_FFFFB1E0).w sne d3 neg.b d3 btst #5,(byte_FFFFAD8B).w sne d1 neg.b d1 cmp.b d3,d1 beq.s loc_6E21E bset #7,(byte_FFFFB1E0).w bra.s loc_6E224 ; --------------------------------------------------------------------------- loc_6E21E: ; CODE XREF: sub_6E1FA+1Aj bclr #7,(byte_FFFFB1E0).w loc_6E224: ; CODE XREF: sub_6E1FA+22j bclr #3,(byte_FFFFB1E0).w btst #5,(byte_FFFFAD8B).w beq.s loc_6E238 bset #3,(byte_FFFFB1E0).w loc_6E238: ; CODE XREF: sub_6E1FA+36j btst #2,(byte_FFFFB1E0).w sne d1 neg.b d1 move.b (byte_FFFFAF3B).w,d3 cmp.b d3,d1 beq.s loc_6E252 bset #6,(byte_FFFFB1E0).w bra.s loc_6E258 ; --------------------------------------------------------------------------- loc_6E252: ; CODE XREF: sub_6E1FA+4Ej bclr #6,(byte_FFFFB1E0).w loc_6E258: ; CODE XREF: sub_6E1FA+56j tst.b d3 beq.s loc_6E264 bset #2,(byte_FFFFB1E0).w bra.s loc_6E26A ; --------------------------------------------------------------------------- loc_6E264: ; CODE XREF: sub_6E1FA+60j bclr #2,(byte_FFFFB1E0).w loc_6E26A: ; CODE XREF: sub_6E1FA+68j btst #1,(byte_FFFFB1E0).w sne d1 neg.b d1 move.b (byte_FFFFA3AC).w,d3 cmp.b d3,d1 beq.s loc_6E284 bset #5,(byte_FFFFB1E0).w bra.s loc_6E28A ; --------------------------------------------------------------------------- loc_6E284: ; CODE XREF: sub_6E1FA+80j bclr #5,(byte_FFFFB1E0).w loc_6E28A: ; CODE XREF: sub_6E1FA+88j tst.b d3 beq.s loc_6E296 bset #1,(byte_FFFFB1E0).w bra.s loc_6E29C ; --------------------------------------------------------------------------- loc_6E296: ; CODE XREF: sub_6E1FA+92j bclr #1,(byte_FFFFB1E0).w loc_6E29C: ; CODE XREF: sub_6E1FA+9Aj btst #0,(byte_FFFFB1E0).w sne d1 neg.b d1 moveq #$76,d0 ; 'v' jsr sub_81B3C cmp.b d0,d1 beq.s loc_6E2BA bset #4,(byte_FFFFB1E0).w bra.s loc_6E2C0 ; --------------------------------------------------------------------------- loc_6E2BA: ; CODE XREF: sub_6E1FA+B6j bclr #4,(byte_FFFFB1E0).w loc_6E2C0: ; CODE XREF: sub_6E1FA+BEj bclr #0,(byte_FFFFB1E0).w btst #4,(byte_FFFFB1DA).w bne.w loc_6E3E2 btst #5,(byte_FFFFB1DA).w bne.w loc_6E3E2 btst #6,(byte_FFFFB1DA).w bne.w loc_6E3E2 btst #7,(byte_FFFFB1DA).w bne.w loc_6E3E2 cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_6E3E2 btst #7,(byte_FFFFB1E0).w bne.w loc_6E3E2 btst #6,(byte_FFFFB1E0).w bne.w loc_6E3E2 btst #5,(byte_FFFFB1E0).w bne.w loc_6E3E2 btst #4,(byte_FFFFB1E0).w bne.w loc_6E3E2 tst.b (byte_FFFF93EA).w bne.w loc_6E3E2 move.w (word_FFFFB1E8).w,d4 movea.w (EngineRPM_PID_000C___).w,a2 sub.w a2,d4 bcc.s loc_6E336 neg.w d4 loc_6E336: ; CODE XREF: sub_6E1FA+138j cmp.w (DI_MAP_KE_MAPD_RAT_DELTA_RPM_MAX).l,d4 ; Maximum engine speed change to still consider conditions stable for MAP rationality. ; Percent bhi.w loc_6E3E2 move.w (word_FFFFB1EA).w,d4 tst.b (byte_FFFFB370).w beq.s loc_6E358 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_6E358 movea.w (word_FFFF9050).w,a2 bra.s loc_6E35C ; --------------------------------------------------------------------------- loc_6E358: ; CODE XREF: sub_6E1FA+14Ej ; sub_6E1FA+156j movea.w (word_FFFFAB66).w,a2 loc_6E35C: ; CODE XREF: sub_6E1FA+15Cj sub.w a2,d4 bcc.s loc_6E362 neg.w d4 loc_6E362: ; CODE XREF: sub_6E1FA+164j cmp.w (DI_MAP_KE_MAPD_RAT_DELTA_TPS_MAX).l,d4 ; Maximum throttle position change to still consider conditions stable for MAP rationality. ; Percent bhi.s loc_6E3E2 move.w (word_FFFFB1E4).w,d4 movea.w (word_FFFFA258).w,a2 sub.w a2,d4 bcc.s loc_6E378 neg.w d4 loc_6E378: ; CODE XREF: sub_6E1FA+17Aj cmp.w (DI_MAP_KE_MAPD_RAT_DELTA_EGR_POS_MAX).l,d4 ; Maximum EGR flow rate change to still consider conditions stable for MAP rationality. ; Percent bhi.s loc_6E3E2 clr.l d3 move.w (DI_MAP_KE_MAPD_RAT_DELTA_IAC_IDLE_MAX).l,d3 ; Maximum idle air value change to still consider conditions stable for MAP rationality. ; Grams/Second move.w (word_FFFFB1E6).w,d4 sub.w (DesiredIdleAirflow_IncludingFeedback_Clamped).w,d4 andi.l #$FFFF,d4 cmp.l d3,d4 bhi.s loc_6E3E2 move.w (word_FFFFB1E2).w,d4 cmp.w (DI_MAP_KE_MAPD_RAT_STABLE_TIME_MIN).l,d4 ; Minimum stabilization time after the conditions have been met necessary to run the MAP rationality test. ; Seconds bcs.s loc_6E3C8 clr.w d4 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DI_MAP_KE_MAPD_RAT_RPM_LOW).l,d3 ; Minimum RPM value above which the MAP rationality test can proceed. ; RPM bcs.s loc_6E3C2 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DI_MAP_KE_MAPD_RAT_RPM_HIGH).l,d3 ; Maximum RPM threshold under which the MAP rationality test can proceed. ; RPM bhi.s loc_6E3C2 addq.b #1,d4 loc_6E3C2: ; CODE XREF: sub_6E1FA+1B8j ; sub_6E1FA+1C4j move.b d4,(byte_FFFFB1DB).w bra.s loc_6E418 ; --------------------------------------------------------------------------- loc_6E3C8: ; CODE XREF: sub_6E1FA+1AAj clr.b (byte_FFFFB1DB).w movea.w (word_FFFFB1E2).w,a2 addq.w #1,a2 cmpa.w #$320,a2 bls.s loc_6E3DC movea.w #$320,a2 loc_6E3DC: ; CODE XREF: sub_6E1FA+1DCj move.w a2,(word_FFFFB1E2).w bra.s loc_6E418 ; --------------------------------------------------------------------------- loc_6E3E2: ; CODE XREF: sub_6E1FA+D2j ; sub_6E1FA+DCj ... clr.b (byte_FFFFB1DB).w move.w (EngineRPM_PID_000C___).w,(word_FFFFB1E8).w tst.b (byte_FFFFB370).w beq.s loc_6E400 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_6E400 movea.w (word_FFFF9050).w,a2 bra.s loc_6E404 ; --------------------------------------------------------------------------- loc_6E400: ; CODE XREF: sub_6E1FA+1F6j ; sub_6E1FA+1FEj movea.w (word_FFFFAB66).w,a2 loc_6E404: ; CODE XREF: sub_6E1FA+204j move.w a2,(word_FFFFB1EA).w move.w (DesiredIdleAirflow_IncludingFeedback_Clamped).w,(word_FFFFB1E6).w move.w (word_FFFFA258).w,(word_FFFFB1E4).w clr.w (word_FFFFB1E2).w loc_6E418: ; CODE XREF: sub_6E1FA+1CCj ; sub_6E1FA+1E6j movem.l (sp)+,d0-d1 rts ; End of function sub_6E1FA ; =============== S U B R O U T I N E ======================================= sub_6E41E: ; CODE XREF: sub_807E0+110p ; sub_809E4+66p btst #1,(byte_FFFF899E).w bne.s loc_6E43E btst #1,(byte_FFFF89A0).w bne.s loc_6E43E btst #1,(byte_FFFF8A3E).w bne.s loc_6E43E btst #1,(byte_FFFF8A40).w beq.s loc_6E446 loc_6E43E: ; CODE XREF: sub_6E41E+6j sub_6E41E+Ej ... bset #6,(byte_FFFFB1DA).w bra.s loc_6E44C ; --------------------------------------------------------------------------- loc_6E446: ; CODE XREF: sub_6E41E+1Ej bclr #6,(byte_FFFFB1DA).w loc_6E44C: ; CODE XREF: sub_6E41E+26j btst #1,(byte_FFFF88CE).w bne.s loc_6E46C btst #1,(byte_FFFF88D0).w bne.s loc_6E46C btst #3,(byte_FFFFB486).w bne.s loc_6E46C btst #5,(byte_FFFFB486).w beq.s loc_6E474 loc_6E46C: ; CODE XREF: sub_6E41E+34j ; sub_6E41E+3Cj ... bset #5,(byte_FFFFB1DA).w bra.s loc_6E47A ; --------------------------------------------------------------------------- loc_6E474: ; CODE XREF: sub_6E41E+4Cj bclr #5,(byte_FFFFB1DA).w loc_6E47A: ; CODE XREF: sub_6E41E+54j btst #1,(byte_FFFF88E2).w bne.s loc_6E4A2 btst #1,(byte_FFFF88E4).w bne.s loc_6E4A2 btst #1,(byte_FFFF88E0).w bne.s loc_6E4A2 btst #0,(byte_FFFFB48B).w bne.s loc_6E4A2 btst #2,(byte_FFFFB48B).w beq.s loc_6E4AA loc_6E4A2: ; CODE XREF: sub_6E41E+62j ; sub_6E41E+6Aj ... bset #4,(byte_FFFFB1DA).w bra.s loc_6E4B0 ; --------------------------------------------------------------------------- loc_6E4AA: ; CODE XREF: sub_6E41E+82j bclr #4,(byte_FFFFB1DA).w loc_6E4B0: ; CODE XREF: sub_6E41E+8Aj btst #1,(byte_FFFF8964).w bne.s loc_6E4E8 btst #1,(byte_FFFF8966).w bne.s loc_6E4E8 btst #1,(byte_FFFF8A3A).w bne.s loc_6E4E8 btst #1,(byte_FFFF8960).w bne.s loc_6E4E8 btst #1,(byte_FFFFB485).w bne.s loc_6E4E8 btst #3,(byte_FFFFB485).w bne.s loc_6E4E8 btst #4,(byte_FFFFB485).w beq.s loc_6E4F0 loc_6E4E8: ; CODE XREF: sub_6E41E+98j ; sub_6E41E+A0j ... bset #7,(byte_FFFFB1DA).w bra.s loc_6E4F6 ; --------------------------------------------------------------------------- loc_6E4F0: ; CODE XREF: sub_6E41E+C8j bclr #7,(byte_FFFFB1DA).w loc_6E4F6: ; CODE XREF: sub_6E41E+D0j jsr sub_6DEDA rts ; End of function sub_6E41E ; =============== S U B R O U T I N E ======================================= sub_6E4FE: ; CODE XREF: DoLoopC+336p move.l d0,-(sp) move.w (word_FFFFB290).w,d3 mulu.w #5,d3 lsr.l #6,d3 move.w d3,(word_FFFFB1DE).w move.w (word_FFFFB296).w,d3 asl.w #2,d3 move.w d3,(word_FFFFB1DC).w move.w (word_FFFFADB4).w,d3 clr.w d4 cmpi.w #$FD00,d3 bge.s loc_6E528 move.l d4,d3 bra.s loc_6E540 ; --------------------------------------------------------------------------- loc_6E528: ; CODE XREF: sub_6E4FE+24j move.w #$300,d0 cmp.w d3,d0 ble.s loc_6E53C add.w d0,d3 add.w d3,d3 ext.l d3 divs.w #3,d3 bra.s loc_6E540 ; --------------------------------------------------------------------------- loc_6E53C: ; CODE XREF: sub_6E4FE+30j move.w #$400,d3 loc_6E540: ; CODE XREF: sub_6E4FE+28j ; sub_6E4FE+3Cj tblu.w (DI_MAP_KV_MAPD_COLD_START_RUN_TIME).l,d3 ; The MAP Short to High test will be disabled if the engine run time is less than this calibration. ; Seconds move.w d3,(word_FFFFB1D8).w jsr sub_6E1FA move.l (sp)+,d0 rts ; End of function sub_6E4FE ; =============== S U B R O U T I N E ======================================= sub_6E556: ; CODE XREF: OS1:0002904Ep ; sub_755FA+98p cmpi.b #6,d0 beq.s loc_6E568 cmpi.b #3,d0 bhi.s locret_6E586 cmpi.b #1,d0 bls.s locret_6E586 loc_6E568: ; CODE XREF: sub_6E556+4j bclr #7,(byte_FFFFB1DA).w bclr #6,(byte_FFFFB1DA).w bclr #5,(byte_FFFFB1DA).w bclr #4,(byte_FFFFB1DA).w jsr sub_6E588 locret_6E586: ; CODE XREF: sub_6E556+Aj ; sub_6E556+10j rts ; End of function sub_6E556 ; =============== S U B R O U T I N E ======================================= sub_6E588: ; CODE XREF: DoLoopC+2E8p ; sub_6E556+2Ap ... clr.w (word_FFFFB1E2).w clr.b (byte_FFFFB1DB).w move.w (word_FFFFA258).w,(word_FFFFB1E4).w move.w (DesiredIdleAirflow_IncludingFeedback_Clamped).w,(word_FFFFB1E6).w move.w (EngineRPM_PID_000C___).w,(word_FFFFB1E8).w tst.b (byte_FFFFB370).w beq.s loc_6E5B6 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_6E5B6 movea.w (word_FFFF9050).w,a2 bra.s loc_6E5BA ; --------------------------------------------------------------------------- loc_6E5B6: ; CODE XREF: sub_6E588+1Ej ; sub_6E588+26j movea.w (word_FFFFAB66).w,a2 loc_6E5BA: ; CODE XREF: sub_6E588+2Cj move.w a2,(word_FFFFB1EA).w rts ; End of function sub_6E588 ; =============== S U B R O U T I N E ======================================= sub_6E5C0: ; CODE XREF: sub_6EF00+20Ap btst #5,(byte_FFFF9776).w beq.s locret_6E5CE bset #7,(word_FFFFB170+1).w locret_6E5CE: ; CODE XREF: sub_6E5C0+6j rts ; End of function sub_6E5C0 ; =============== S U B R O U T I N E ======================================= sub_6E5D0: ; CODE XREF: sub_6F29A:loc_6F79Ep move.l (EngineRunTime).w,d3 cmpi.l #$FFFF,d3 bls.s loc_6E5E0 move.w #$FFFF,d3 loc_6E5E0: ; CODE XREF: sub_6E5D0+Aj cmp.w (DI_MISFIRE_KE_MISF_START_DELAY_DISABLE_TIME).l,d3 bcs.s loc_6E5F6 btst #3,(byte_FFFF8255).w beq.s loc_6E5F6 bset #5,(word_FFFFB170).w loc_6E5F6: ; CODE XREF: sub_6E5D0+16j ; sub_6E5D0+1Ej jsr sub_6EE46 clr.w d3 btst #3,(byte_FFFFB176).w beq.w loc_6E736 btst #6,(byte_FFFFB176).w beq.w loc_6E736 btst #4,(word_FFFFB170).w beq.s loc_6E628 tst.w (DI_MISFIRE_KE_MISF_AIR_CONDITIONER_DELAY).l ; Number of engine cycles to delay if the air conditioner clutch as changed state. ; Eng Cycles beq.s loc_6E628 move.w (DI_MISFIRE_KE_MISF_AIR_CONDITIONER_DELAY).l,d3 ; Number of engine cycles to delay if the air conditioner clutch as changed state. ; Eng Cycles loc_6E628: ; CODE XREF: sub_6E5D0+48j ; sub_6E5D0+50j btst #1,(word_FFFFB170).w beq.s loc_6E63E cmp.w (DI_MISFIRE_KE_MISF_AIR_TEST_DELAY).l,d3 ; Number of engine cycles to delay if the AIR test is intrusive. ; Eng Cycles bcc.s loc_6E63E move.w (DI_MISFIRE_KE_MISF_AIR_TEST_DELAY).l,d3 ; Number of engine cycles to delay if the AIR test is intrusive. ; Eng Cycles loc_6E63E: ; CODE XREF: sub_6E5D0+5Ej ; sub_6E5D0+66j btst #5,(word_FFFFB170).w beq.s loc_6E654 cmp.w (DI_MISFIRE_KE_MISF_CAM_MALFUNCTION_DELAY).l,d3 ; Number of engine cycles to delay on a cam malfunction. ; Eng Cycles bcc.s loc_6E654 move.w (DI_MISFIRE_KE_MISF_CAM_MALFUNCTION_DELAY).l,d3 ; Number of engine cycles to delay on a cam malfunction. ; Eng Cycles loc_6E654: ; CODE XREF: sub_6E5D0+74j ; sub_6E5D0+7Cj btst #0,(word_FFFFB170).w beq.s loc_6E66A cmp.w (DI_MISFIRE_KE_MISF_EGR_TEST_DELAY).l,d3 ; Number of engine cycles to delay if the EGR test is active. ; Eng Cycles bcc.s loc_6E66A move.w (DI_MISFIRE_KE_MISF_EGR_TEST_DELAY).l,d3 ; Number of engine cycles to delay if the EGR test is active. ; Eng Cycles loc_6E66A: ; CODE XREF: sub_6E5D0+8Aj ; sub_6E5D0+92j btst #5,(word_FFFFB170+1).w beq.s loc_6E680 cmp.w (DI_MISFIRE_KE_MISF_FUEL_DELAY).l,d3 ; Number of engine cycles to delay during periods of low fuel. ; Eng Cycles bcc.s loc_6E680 move.w (DI_MISFIRE_KE_MISF_FUEL_DELAY).l,d3 ; Number of engine cycles to delay during periods of low fuel. ; Eng Cycles loc_6E680: ; CODE XREF: sub_6E5D0+A0j ; sub_6E5D0+A8j btst #2,(word_FFFFB170).w beq.s loc_6E696 cmp.w (DI_MISFIRE_KE_MISF_GENERIC_DELAY).l,d3 ; Number of engine cycles to delay for the enable criteria not being met, decel fuel cutoff, fuel shut off, or torque reduction. ; Eng Cycles bcc.s loc_6E696 move.w (DI_MISFIRE_KE_MISF_GENERIC_DELAY).l,d3 ; Number of engine cycles to delay for the enable criteria not being met, decel fuel cutoff, fuel shut off, or torque reduction. ; Eng Cycles loc_6E696: ; CODE XREF: sub_6E5D0+B6j ; sub_6E5D0+BEj btst #3,(word_FFFFB170).w beq.s loc_6E6AC cmp.w (DI_MISFIRE_KE_MISF_AUTO_TRANS_SHIFT_DELAY).l,d3 ; Number of engine cycles to delay the diagnostic during automatic transmission shifts. ; Eng Cycles bcc.s loc_6E6AC move.w (DI_MISFIRE_KE_MISF_AUTO_TRANS_SHIFT_DELAY).l,d3 ; Number of engine cycles to delay the diagnostic during automatic transmission shifts. ; Eng Cycles loc_6E6AC: ; CODE XREF: sub_6E5D0+CCj ; sub_6E5D0+D4j btst #6,(word_FFFFB170).w beq.s loc_6E6C2 cmp.w (DI_MISFIRE_KE_MISF_TPS_DELTA_DELAY).l,d3 ; Number of engine cycles to delay on changes to the throttle position. ; Eng Cycles bcc.s loc_6E6C2 move.w (DI_MISFIRE_KE_MISF_TPS_DELTA_DELAY).l,d3 ; Number of engine cycles to delay on changes to the throttle position. ; Eng Cycles loc_6E6C2: ; CODE XREF: sub_6E5D0+E2j ; sub_6E5D0+EAj btst #6,(word_FFFFB170+1).w beq.s loc_6E6D8 cmp.w (DI_MISFIRE_KE_MISF_ABUSIVE_ENGINE_SPD_DELAY).l,d3 ; Number of engine cycles to delay if an abusive high engine speed occurs. ; Eng Cycles bcc.s loc_6E6D8 move.w (DI_MISFIRE_KE_MISF_ABUSIVE_ENGINE_SPD_DELAY).l,d3 ; Number of engine cycles to delay if an abusive high engine speed occurs. ; Eng Cycles loc_6E6D8: ; CODE XREF: sub_6E5D0+F8j ; sub_6E5D0+100j btst #7,(word_FFFFB170+1).w beq.s loc_6E6EE cmp.w (DI_MISFIRE_KE_MISF_EXCESS_ACCEL_DELAY).l,d3 ; Number of engine cycles to delay if excess acceleration is detected. ; Eng Cycles bcc.s loc_6E6EE move.w (DI_MISFIRE_KE_MISF_EXCESS_ACCEL_DELAY).l,d3 ; Number of engine cycles to delay if excess acceleration is detected. ; Eng Cycles loc_6E6EE: ; CODE XREF: sub_6E5D0+10Ej ; sub_6E5D0+116j btst #7,(word_FFFFB170).w beq.s loc_6E704 cmp.w (DI_MISFIRE_KE_MISF_GENERIC_DELAY).l,d3 ; Number of engine cycles to delay for the enable criteria not being met, decel fuel cutoff, fuel shut off, or torque reduction. ; Eng Cycles bcc.s loc_6E704 move.w (DI_MISFIRE_KE_MISF_GENERIC_DELAY).l,d3 ; Number of engine cycles to delay for the enable criteria not being met, decel fuel cutoff, fuel shut off, or torque reduction. ; Eng Cycles loc_6E704: ; CODE XREF: sub_6E5D0+124j ; sub_6E5D0+12Cj btst #0,(byte_FFFFA9AB).w beq.s loc_6E71A cmp.w (DI_MISFIRE_KE_MISF_UNDETECTABLE_DELAY).l,d3 bcc.s loc_6E71A move.w (DI_MISFIRE_KE_MISF_UNDETECTABLE_DELAY).l,d3 loc_6E71A: ; CODE XREF: sub_6E5D0+13Aj ; sub_6E5D0+142j btst #6,(byte_FFFF9776).w beq.s loc_6E730 cmp.w (DI_MISFIRE_KE_MISF_GENERIC_DELAY).l,d3 ; Number of engine cycles to delay for the enable criteria not being met, decel fuel cutoff, fuel shut off, or torque reduction. ; Eng Cycles bcc.s loc_6E730 move.w (DI_MISFIRE_KE_MISF_GENERIC_DELAY).l,d3 ; Number of engine cycles to delay for the enable criteria not being met, decel fuel cutoff, fuel shut off, or torque reduction. ; Eng Cycles loc_6E730: ; CODE XREF: sub_6E5D0+150j ; sub_6E5D0+158j clr.w (word_FFFFB170).w bra.s loc_6E73C ; --------------------------------------------------------------------------- loc_6E736: ; CODE XREF: sub_6E5D0+34j ; sub_6E5D0+3Ej move.w (DI_MISFIRE_KE_MISF_GENERIC_DELAY).l,d3 ; Number of engine cycles to delay for the enable criteria not being met, decel fuel cutoff, fuel shut off, or torque reduction. ; Eng Cycles loc_6E73C: ; CODE XREF: sub_6E5D0+164j move.w d3,(word_FFFFB172).w rts ; End of function sub_6E5D0 ; =============== S U B R O U T I N E ======================================= sub_6E742: ; CODE XREF: DoLoopC+342p btst #5,(byte_FFFFAD8B).w sne d4 neg.b d4 btst #1,(byte_FFFFB176).w sne d3 neg.b d3 cmp.b d4,d3 beq.s loc_6E780 btst #6,(byte_FFFFAD8B).w beq.s loc_6E780 move.l (EngineRunTime).w,d3 cmpi.l #$FFFF,d3 bls.s loc_6E772 move.w #$FFFF,d3 loc_6E772: ; CODE XREF: sub_6E742+2Aj cmp.w (DI_MISFIRE_KE_MISF_START_DELAY_DISABLE_TIME).l,d3 bcs.s loc_6E780 bset #4,(word_FFFFB170).w loc_6E780: ; CODE XREF: sub_6E742+16j ; sub_6E742+1Ej ... tst.b d4 beq.s loc_6E78C bset #1,(byte_FFFFB176).w bra.s loc_6E792 ; --------------------------------------------------------------------------- loc_6E78C: ; CODE XREF: sub_6E742+40j bclr #1,(byte_FFFFB176).w loc_6E792: ; CODE XREF: sub_6E742+48j move.b (byte_FFFFA93A).w,d3 or.b (byte_FFFFA93B).w,d3 bne.s loc_6E7B4 tst.w (word_FFFF9400).w bne.s loc_6E7B4 clr.w d3 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d3 ; Number of cylinders for this engine application. ; SHORTCARD asl.w #8,d3 asl.w #3,d3 cmp.w (word_FFFFB274).w,d3 beq.s loc_6E7D2 loc_6E7B4: ; CODE XREF: sub_6E742+58j ; sub_6E742+5Ej move.l (EngineRunTime).w,d3 cmpi.l #$FFFF,d3 bls.s loc_6E7C4 move.w #$FFFF,d3 loc_6E7C4: ; CODE XREF: sub_6E742+7Cj cmp.w (DI_MISFIRE_KE_MISF_START_DELAY_DISABLE_TIME).l,d3 bcs.s loc_6E7D2 bset #2,(word_FFFFB170).w loc_6E7D2: ; CODE XREF: sub_6E742+70j ; sub_6E742+88j move.b (byte_FFFFA3AC).w,d5 move.b (byte_FFFFA3B5).w,d4 move.l (EngineRunTime).w,d3 cmpi.l #$FFFF,d3 bls.s loc_6E7EA move.w #$FFFF,d3 loc_6E7EA: ; CODE XREF: sub_6E742+A2j cmp.w (DI_MISFIRE_KE_MISF_SHIFT_DELAY_DISABLE_TIME).l,d3 bcs.s loc_6E814 cmp.b (byte_FFFFB17E).w,d5 bne.s loc_6E80E cmp.b (byte_FFFFB17F).w,d4 bne.s loc_6E80E btst #4,(byte_FFFFA8FE).w bne.s loc_6E80E btst #3,(byte_FFFFA8FE).w beq.s loc_6E814 loc_6E80E: ; CODE XREF: sub_6E742+B4j ; sub_6E742+BAj ... bset #3,(word_FFFFB170).w loc_6E814: ; CODE XREF: sub_6E742+AEj ; sub_6E742+CAj move.b d5,(byte_FFFFB17E).w move.b d4,(byte_FFFFB17F).w rts ; End of function sub_6E742 ; =============== S U B R O U T I N E ======================================= sub_6E81E: ; CODE XREF: DoLoopF+A4p movem.l d0-d2/d6-d7,-(sp) tst.b (byte_FFFF90D7).w bne.s loc_6E838 bclr #5,(byte_FFFFB176).w move.b #1,(byte_FFFFB17A).w bra.w loc_6E8C2 ; --------------------------------------------------------------------------- loc_6E838: ; CODE XREF: sub_6E81E+8j tst.b (byte_FFFF90D4).w beq.s loc_6E84C bclr #5,(byte_FFFFB176).w move.b (byte_FFFF90EE).w,(byte_FFFFB17A).w bra.s loc_6E8C2 ; --------------------------------------------------------------------------- loc_6E84C: ; CODE XREF: sub_6E81E+1Ej move.b (byte_FFFF90EE).w,d1 move.b d1,(byte_FFFFB17A).w move.w (word_FFFFAEBE).w,d3 cmpi.w #$3C00,d3 bls.s loc_6E862 move.w #$3C00,d3 loc_6E862: ; CODE XREF: sub_6E81E+3Ej tst.b (byte_FFFF8202).w beq.s loc_6E87A clr.l d0 move.w d3,d0 divu.w #5,d0 tblu.b (DI_MISFIRE_KV_MISF_ABS_WITH_TCS_LIMIT).l,d0 bra.s loc_6E88A ; --------------------------------------------------------------------------- loc_6E87A: ; CODE XREF: sub_6E81E+48j clr.l d0 move.w d3,d0 divu.w #5,d0 tblu.b (DI_MISFIRE_KV_MISF_ABS_ONLY_LIMIT).l,d0 loc_6E88A: ; CODE XREF: sub_6E81E+5Aj move.w (word_FFFFA9B6).w,d4 cmp.w (DI_MISFIRE_KE_MISF_ABS_ENGINE_SPEED).l,d4 ; Disable ABS rough road detection above this engine speed. ; RPM bhi.s loc_6E8AE move.w (word_FFFFA0E2).w,d4 cmp.w (DI_MISFIRE_KE_MISF_ABS_ENGINE_LOAD).l,d4 ; Disable ABS rough road detection above this engine load. ; Percent bhi.s loc_6E8AE cmp.w (DI_MISFIRE_KE_MISF_ABS_VEHICLE_SPEED).l,d3 ; Disable Misfire-ABS rough road diagnostic below this vehicle speed. ; MPH bcs.s loc_6E8AE cmp.b d0,d1 bcc.s loc_6E8B4 loc_6E8AE: ; CODE XREF: sub_6E81E+76j ; sub_6E81E+82j ... tst.b (byte_FFFF90D5).w beq.s loc_6E8BC loc_6E8B4: ; CODE XREF: sub_6E81E+8Ej bset #5,(byte_FFFFB176).w bra.s loc_6E8C2 ; --------------------------------------------------------------------------- loc_6E8BC: ; CODE XREF: sub_6E81E+94j bclr #5,(byte_FFFFB176).w loc_6E8C2: ; CODE XREF: sub_6E81E+16j ; sub_6E81E+2Cj ... move.b (VEH_SYS_KE_PLATFORM).l,d2 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type moveq #1,d6 cmp.b d2,d6 beq.s loc_6E8D2 tst.b d2 bne.s loc_6E90A loc_6E8D2: ; CODE XREF: sub_6E81E+AEj tst.b (byte_FFFF90D2).w beq.s loc_6E90A tst.b (byte_FFFF90D1).w bne.s loc_6E90A tst.b (byte_FFFF90D3).w bne.s loc_6E90A move.w (word_FFFF90EA).w,d3 cmp.w (DI_MISFIRE_KE_MISF_WHEEL_SLIP_VEHICLE_SPEED).l,d3 bls.s loc_6E90A move.w (word_FFFF90EC).w,d3 sub.w (word_FFFF90EA).w,d3 bcc.s loc_6E8FC clr.w d3 loc_6E8FC: ; CODE XREF: sub_6E81E+DAj cmp.w (DI_MISFIRE_KE_MISF_WHEEL_SLIP_LIMIT).l,d3 ; Misfire diagnostic is disabled when the driven wheels are spinning faster than the non-drive wheels BY this threshold. ; MPH bcs.s loc_6E90A bset #4,(byte_FFFFB176).w loc_6E90A: ; CODE XREF: sub_6E81E+B2j ; sub_6E81E+B8j ... tst.b (byte_FFFFAB24).w beq.s loc_6E916 bset #1,(word_FFFFB170).w loc_6E916: ; CODE XREF: sub_6E81E+F0j btst #4,(byte_FFFFAA08).w beq.s loc_6E924 bset #0,(word_FFFFB170).w loc_6E924: ; CODE XREF: sub_6E81E+FEj move.l (EngineRunTime).w,d3 cmpi.l #$FFFF,d3 bls.s loc_6E934 move.w #$FFFF,d3 loc_6E934: ; CODE XREF: sub_6E81E+110j cmp.w (DI_MISFIRE_KE_MISF_FUEL_DELAY_DISABLE_TIME).l,d3 bcs.s loc_6E97A move.w (word_FFFF9B52).w,d3 cmp.w (DI_MISFIRE_KE_MISF_FUEL_LEVEL_MINIMUM).l,d3 ; If fuel level is below this value, misfire diagnostic will be delayed. ; Percent bcc.s loc_6E950 btst #5,(byte_FFFF8254).w beq.s loc_6E95C loc_6E950: ; CODE XREF: sub_6E81E+128j move.w (word_FFFF8242).w,d3 cmp.w (DI_MISFIRE_KE_MISF_ETHANOL_PERCENT).l,d3 ; The percent ethanol in the fuel which disables the Misfire diagnostic. ; Percent bls.s loc_6E97A loc_6E95C: ; CODE XREF: sub_6E81E+130j tst.b (byte_FFFFA80F).w bne.s loc_6E97A btst #7,(byte_FFFF893A).w bne.s loc_6E97A jsr sub_2749A tst.b d0 bne.s loc_6E97A bset #5,(word_FFFFB170+1).w loc_6E97A: ; CODE XREF: sub_6E81E+11Cj ; sub_6E81E+13Cj ... move.l (EngineRunTime).w,d3 cmpi.l #$FFFF,d3 bls.s loc_6E98A move.w #$FFFF,d3 loc_6E98A: ; CODE XREF: sub_6E81E+166j cmp.w (DI_MISFIRE_KE_MISF_START_DELAY_DISABLE_TIME).l,d3 bcs.s loc_6E9B0 move.w (word_FFFFAB66).w,d3 cmp.w (DI_MISFIRE_KE_MISF_TPS_LIMIT).l,d3 ; Maximum throttle position to delay the diagnostic. ; Percent bcc.s loc_6E9B0 move.w (word_FFFFAEBE).w,d3 cmp.w (DI_MISFIRE_KE_MISF_VEHICLE_SPEED_LIMIT).l,d3 ; Minimum vehicle speed to delay the diagnostic. ; MPH bls.s loc_6E9B0 bset #7,(word_FFFFB170).w loc_6E9B0: ; CODE XREF: sub_6E81E+172j ; sub_6E81E+17Ej ... move.w (word_FFFFAB66).w,d3 movea.w (word_FFFFAB60).w,a2 sub.w a2,d3 tst.w d3 bge.s loc_6E9CA move.l d3,d7 neg.w d7 cmp.w (DI_MISFIRE_KE_MISF_TPS_NEGATIVE_DELTA).l,d7 ; Maximum allowable negative throttle position delta before misfire diagnostic is disabled. ; Percent bge.s loc_6E9D6 loc_6E9CA: ; CODE XREF: sub_6E81E+19Ej tst.w d3 ble.s loc_6E9DC cmp.w (DI_MISFIRE_KE_MISF_TPS_POSITIVE_DELTA).l,d3 ; Maximum allowable positive throttle position delta before misfire diagnostic is disabled. ; Percent blt.s loc_6E9DC loc_6E9D6: ; CODE XREF: sub_6E81E+1AAj bset #6,(word_FFFFB170).w loc_6E9DC: ; CODE XREF: sub_6E81E+1AEj ; sub_6E81E+1B6j move.w (DI_MISFIRE_KE_MISF_ABS_VEHICLE_SPEED).l,d1 ; Disable Misfire-ABS rough road diagnostic below this vehicle speed. ; MPH cmp.w (word_FFFFAEBE).w,d1 bhi.w loc_6EA80 move.w (word_FFFFA9B6).w,d3 cmp.w (DI_MISFIRE_KE_MISF_ABS_ENGINE_SPEED).l,d3 ; Disable ABS rough road detection above this engine speed. ; RPM bhi.w loc_6EA80 move.w (word_FFFFA0E2).w,d3 cmp.w (DI_MISFIRE_KE_MISF_ABS_ENGINE_LOAD).l,d3 ; Disable ABS rough road detection above this engine load. ; Percent bhi.s loc_6EA80 tst.b (byte_FFFFA1BF).w beq.s loc_6EA80 move.w (word_FFFFB178).w,d3 addq.w #1,d3 move.w d3,(word_FFFFB178).w cmp.b d2,d6 beq.s loc_6EA1C tst.b d2 bne.s loc_6EA38 loc_6EA1C: ; CODE XREF: sub_6E81E+1F8j move.b (byte_FFFF90D4).w,d0 or.b (byte_FFFF90D3).w,d0 bne.s loc_6EA2C tst.b (byte_FFFF90D1).w loc_6EA2A: ; CODE XREF: sub_6E81E+21Ej beq.s loc_6EA3E loc_6EA2C: ; CODE XREF: sub_6E81E+206j addq.w #1,(word_FFFFB16E).w bset #4,(byte_FFFFB48B).w bra.s loc_6EA44 ; --------------------------------------------------------------------------- loc_6EA38: ; CODE XREF: sub_6E81E+1FCj tst.b (byte_FFFF90D4).w bra.s loc_6EA2A ; --------------------------------------------------------------------------- loc_6EA3E: ; CODE XREF: sub_6E81E:loc_6EA2Aj bclr #4,(byte_FFFFB48B).w loc_6EA44: ; CODE XREF: sub_6E81E+218j move.w (word_FFFFB16E).w,d0 cmp.w (DI_MISFIRE_KE_MISF_ABS_FAIL_COUNTER).l,d0 ; Minimum number of ABS failures needed to consider an ABS fault. ; counts bcs.s loc_6EA6C btst #7,(byte_FFFF893A).w beq.s loc_6EA6C move.w #$BB,d0 ; '?' jsr sub_5F110 loc_6EA62: ; CODE XREF: sub_6E81E+260j clr.w (word_FFFFB16E).w clr.w (word_FFFFB178).w bra.s loc_6EA80 ; --------------------------------------------------------------------------- loc_6EA6C: ; CODE XREF: sub_6E81E+230j ; sub_6E81E+238j cmp.w (DI_MISFIRE_KE_MISF_ABS_SAMPLE_COUNTER).l,d3 ; Minimum number of samples necessary to restart the test. ; counts bcs.s loc_6EA80 move.w #$BB,d0 ; '?' jsr sub_5F0BE bra.s loc_6EA62 ; --------------------------------------------------------------------------- loc_6EA80: ; CODE XREF: sub_6E81E+1C8j ; sub_6E81E+1D6j ... cmp.w (word_FFFFAEBE).w,d1 bhi.w loc_6EB0A move.w (word_FFFFA9B6).w,d3 cmp.w (DI_MISFIRE_KE_MISF_ABS_ENGINE_SPEED).l,d3 ; Disable ABS rough road detection above this engine speed. ; RPM bhi.s loc_6EB0A move.w (word_FFFFA0E2).w,d3 cmp.w (DI_MISFIRE_KE_MISF_ABS_ENGINE_LOAD).l,d3 ; Disable ABS rough road detection above this engine load. ; Percent bhi.s loc_6EB0A tst.b (byte_FFFFA1BF).w beq.s loc_6EB0A move.w (word_FFFFB17C).w,d3 addq.w #1,d3 move.w d3,(word_FFFFB17C).w tst.b (byte_FFFF90D7).w beq.s loc_6EABC tst.b (byte_FFFF90D2).w bne.s loc_6EAC8 loc_6EABC: ; CODE XREF: sub_6E81E+296j addq.w #1,(word_FFFFB174).w bset #3,(byte_FFFFB48B).w bra.s loc_6EACE ; --------------------------------------------------------------------------- loc_6EAC8: ; CODE XREF: sub_6E81E+29Cj bclr #3,(byte_FFFFB48B).w loc_6EACE: ; CODE XREF: sub_6E81E+2A8j move.w (word_FFFFB174).w,d0 cmp.w (DI_MISFIRE_KE_MISF_SERIAL_DATA_FAIL_CNTR).l,d0 ; Minimum number of serial data failures necessary to consider a fault. ; Counts bcs.s loc_6EAF6 btst #7,(byte_FFFF893A).w beq.s loc_6EAF6 move.w #$BC,d0 ; '?' jsr sub_5F110 loc_6EAEC: ; CODE XREF: sub_6E81E+2EAj clr.w (word_FFFFB174).w clr.w (word_FFFFB17C).w bra.s loc_6EB0A ; --------------------------------------------------------------------------- loc_6EAF6: ; CODE XREF: sub_6E81E+2BAj ; sub_6E81E+2C2j cmp.w (DI_MISFIRE_KE_MISF_SERIAL_DATA_SAMPLE_CNTR).l,d3 ; Minimum number of samples necessary to restart the test. ; counts bcs.s loc_6EB0A move.w #$BC,d0 ; '?' jsr sub_5F0BE bra.s loc_6EAEC ; --------------------------------------------------------------------------- loc_6EB0A: ; CODE XREF: sub_6E81E+266j ; sub_6E81E+274j ... movem.l (sp)+,d0-d2/d6-d7 rts ; End of function sub_6E81E ; =============== S U B R O U T I N E ======================================= sub_6EB10: ; CODE XREF: DoLoopG+A0p move.w (word_FFFFA9B6).w,d3 cmp.w (DI_MISFIRE_KE_MISF_ABUSIVE_ENGINE_SPEED).l,d3 ; Minimum abusive engine speed to delay the diagnostic. ; RPM bcs.s loc_6EB22 bset #6,(word_FFFFB170+1).w loc_6EB22: ; CODE XREF: sub_6EB10+Aj move.w (word_FFFFAEF8).w,d3 tblu.w (DI_MISFIRE_KV_MISF_CAT_DAMAGE_ETH_FACTOR).l,d3 ; Modifies the misfire catalyst damage threshold for ethanol. ; Multiplier move.w d3,(word_FFFFB16A).w move.w (word_FFFFAEF8).w,d3 tblu.w (DI_MISFIRE_KV_MISF_EMS_FAIL_ETHANOL_FACTOR).l,d3 ; Modifies the misfire emission failure threshold for ethanol. ; Multiplier move.w d3,(word_FFFFB16C).w jsr sub_6EB4A rts ; End of function sub_6EB10 ; =============== S U B R O U T I N E ======================================= sub_6EB4A: ; CODE XREF: sub_6EB10+32p move.w (word_FFFFB4A2).w,d3 cmp.w (DI_MISFIRE_KE_MISF_VOLTAGE_LOW).l,d3 ; Minimum ignition voltage to allow misfire detection. ; Volts bcs.s loc_6EB5E cmp.w (DI_MISFIRE_KE_MISF_VOLTAGE_HIGH).l,d3 ; Maximum ignition voltage to allow misfire detection. ; Volts bls.s loc_6EB78 loc_6EB5E: ; CODE XREF: sub_6EB4A+Aj move.l (EngineRunTime).w,d3 cmpi.l #$FFFF,d3 bls.s loc_6EB6E move.w #$FFFF,d3 loc_6EB6E: ; CODE XREF: sub_6EB4A+1Ej cmp.w (DI_MISFIRE_KE_MISF_START_DELAY_DISABLE_TIME).l,d3 bcc.w loc_6EE3E loc_6EB78: ; CODE XREF: sub_6EB4A+12j move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DI_MISFIRE_KE_MISF_COOLANT_TEMP_LOW).l,d3 ; Minimum coolant temperature to allow misfire detection. ; Deg_C blt.w loc_6EE3E move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DI_MISFIRE_KE_MISF_COOLANT_TEMP_HIGH).l,d3 ; Maximum coolant temperature to allow misfire detection. ; Deg_C bgt.w loc_6EE3E clr.b d3 btst #1,(byte_FFFF8916).w bne.s loc_6EBD6 btst #6,(byte_FFFF8916).w bne.s loc_6EBD6 btst #1,(byte_FFFF8924).w bne.s loc_6EBD6 btst #6,(byte_FFFF8924).w bne.s loc_6EBD6 btst #1,(byte_FFFF8926).w bne.s loc_6EBD6 btst #6,(byte_FFFF8926).w bne.s loc_6EBD6 btst #1,(byte_FFFF8928).w bne.s loc_6EBD6 btst #6,(byte_FFFF8928).w beq.s loc_6EBD8 loc_6EBD6: ; CODE XREF: sub_6EB4A+52j ; sub_6EB4A+5Aj ... addq.b #1,d3 loc_6EBD8: ; CODE XREF: sub_6EB4A+8Aj btst #1,(byte_FFFF88DE).w bne.w loc_6EE3E btst #6,(byte_FFFF88DE).w bne.w loc_6EE3E btst #1,(byte_FFFF88E0).w bne.w loc_6EE3E btst #6,(byte_FFFF88E0).w bne.w loc_6EE3E btst #1,(byte_FFFF88E2).w bne.w loc_6EE3E btst #6,(byte_FFFF88E2).w bne.w loc_6EE3E btst #1,(byte_FFFF88E4).w bne.w loc_6EE3E btst #6,(byte_FFFF88E4).w bne.w loc_6EE3E btst #1,(byte_FFFF8A20).w bne.w loc_6EE3E btst #6,(byte_FFFF8A20).w bne.w loc_6EE3E btst #1,(byte_FFFF8934).w bne.w loc_6EE3E btst #6,(byte_FFFF8934).w bne.w loc_6EE3E btst #1,(byte_FFFF8A9E).w bne.w loc_6EE3E btst #6,(byte_FFFF8A9E).w bne.w loc_6EE3E btst #1,(byte_FFFF8AAA).w bne.w loc_6EE3E btst #6,(byte_FFFF8AAA).w bne.w loc_6EE3E btst #1,(byte_FFFF88D4).w bne.w loc_6EE3E btst #6,(byte_FFFF88D4).w bne.w loc_6EE3E btst #1,(byte_FFFF88D6).w bne.w loc_6EE3E btst #6,(byte_FFFF88D6).w bne.w loc_6EE3E btst #1,(byte_FFFF88C6).w bne.w loc_6EE3E btst #6,(byte_FFFF88C6).w bne.w loc_6EE3E btst #1,(byte_FFFF88C8).w bne.w loc_6EE3E btst #6,(byte_FFFF88C8).w bne.w loc_6EE3E btst #1,(byte_FFFF88CA).w bne.w loc_6EE3E btst #6,(byte_FFFF88CA).w bne.w loc_6EE3E btst #1,(byte_FFFF88CC).w bne.w loc_6EE3E btst #6,(byte_FFFF88CC).w bne.w loc_6EE3E btst #1,(byte_FFFF88CE).w bne.w loc_6EE3E btst #6,(byte_FFFF88CE).w bne.w loc_6EE3E btst #1,(byte_FFFF88D0).w bne.w loc_6EE3E btst #6,(byte_FFFF88D0).w bne.w loc_6EE3E btst #1,(byte_FFFF8998).w bne.w loc_6EE3E btst #6,(byte_FFFF8998).w bne.w loc_6EE3E btst #1,(byte_FFFF899A).w bne.w loc_6EE3E btst #6,(byte_FFFF899A).w bne.w loc_6EE3E btst #1,(byte_FFFF88DA).w bne.w loc_6EE3E btst #6,(byte_FFFF88DA).w bne.w loc_6EE3E btst #1,(byte_FFFF88DC).w bne.w loc_6EE3E btst #6,(byte_FFFF88DC).w bne.w loc_6EE3E btst #1,(byte_FFFF8948).w bne.w loc_6EE3E btst #6,(byte_FFFF8948).w bne.w loc_6EE3E btst #1,(byte_FFFF894A).w bne.w loc_6EE3E btst #6,(byte_FFFF894A).w bne.w loc_6EE3E btst #1,(byte_FFFF894C).w bne.w loc_6EE3E btst #6,(byte_FFFF894C).w bne.w loc_6EE3E btst #1,(byte_FFFF8944).w bne.w loc_6EE3E btst #6,(byte_FFFF8944).w bne.w loc_6EE3E btst #1,(byte_FFFF8946).w bne.s loc_6EE3E btst #6,(byte_FFFF8946).w bne.s loc_6EE3E tst.b d3 bne.s loc_6EE3E tst.b (byte_FFFFA3B5).w beq.s loc_6EDDA btst #2,(byte_FFFFAE60).w bne.s loc_6EE3E loc_6EDDA: ; CODE XREF: sub_6EB4A+286j tst.b (byte_FFFFA1BF).w beq.s loc_6EE3E move.w (word_FFFFA9B6).w,d3 cmp.w (DI_MISFIRE_KE_MISF_CRANK_UNLEARNED_RPM_MAX).l,d3 ; Maximum engine speed to allow misfire detection. ; RPM bls.s loc_6EDF4 btst #5,(byte_FFFF893C).w beq.s loc_6EE3E loc_6EDF4: ; CODE XREF: sub_6EB4A+2A0j btst #0,(byte_FFFFB176).w bne.s loc_6EE08 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DI_MISFIRE_KE_MISF_CTS_AT_STARTUP_HIGH).l,d3 ; If startup coolant temp is not above CTS_At_Startup_Low cal, enable misfire detection when coolant exceeds this. ; Deg_C blt.s loc_6EE3E loc_6EE08: ; CODE XREF: sub_6EB4A+2B0j move.b (byte_FFFF9028).w,d3 moveq #2,d4 cmp.b d3,d4 beq.s loc_6EE1E cmpi.b #3,d3 beq.s loc_6EE1E cmpi.b #4,d3 bne.s loc_6EE26 loc_6EE1E: ; CODE XREF: sub_6EB4A+2C6j ; sub_6EB4A+2CCj btst #1,(byte_FFFF9027).w beq.s loc_6EE36 loc_6EE26: ; CODE XREF: sub_6EB4A+2D2j cmp.b d3,d4 beq.s loc_6EE3E cmpi.b #3,d3 beq.s loc_6EE3E cmpi.b #4,d3 beq.s loc_6EE3E loc_6EE36: ; CODE XREF: sub_6EB4A+2DAj bset #3,(byte_FFFFB176).w bra.s locret_6EE44 ; --------------------------------------------------------------------------- loc_6EE3E: ; CODE XREF: sub_6EB4A+2Aj ; sub_6EB4A+38j ... bclr #3,(byte_FFFFB176).w locret_6EE44: ; CODE XREF: sub_6EB4A+2F2j rts ; End of function sub_6EB4A ; =============== S U B R O U T I N E ======================================= sub_6EE46: ; CODE XREF: sub_6E5D0:loc_6E5F6p move.w (word_FFFFA9B6).w,d3 cmp.w (DI_MISFIRE_KE_MISF_RPM_LOW).l,d3 ; Minimum engine speed to allow misfire detection. ; RPM bcs.s loc_6EE62 cmp.w (DI_MISFIRE_KE_MISF_RPM_HIGH).l,d3 ; Maximum engine speed to allow misfire detection. ; RPM bhi.s loc_6EE62 bset #6,(byte_FFFFB176).w bra.s locret_6EE68 ; --------------------------------------------------------------------------- loc_6EE62: ; CODE XREF: sub_6EE46+Aj ; sub_6EE46+12j bclr #6,(byte_FFFFB176).w locret_6EE68: ; CODE XREF: sub_6EE46+1Aj rts ; End of function sub_6EE46 ; =============== S U B R O U T I N E ======================================= sub_6EE6A: ; CODE XREF: OS1:0002915Ap ; sub_755FA+13Ep andi.w #$FF,d0 cmpi.w #2,d0 bcs.s locret_6EEC6 movea.l off_8A554(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_6EE7E: ; DATA XREF: OS4:0008A55Co bclr #1,(byte_FFFFB176).w btst #5,(4294946187).w beq.s loc_6EE92 bset #1,(byte_FFFFB176).w loc_6EE92: ; CODE XREF: sub_6EE6A+20j move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DI_MISFIRE_KE_MISF_CTS_AT_STARTUP_LOW).l,d3 ; Minimum engine starup coolant temperature to allow misfire detection. ; Deg_C blt.s loc_6EEA6 bset #0,(byte_FFFFB176).w bra.s loc_6EEAC ; --------------------------------------------------------------------------- loc_6EEA6: ; CODE XREF: sub_6EE6A+32j bclr #0,(byte_FFFFB176).w loc_6EEAC: ; CODE XREF: sub_6EE6A+3Aj movea.w #$64,a2 ; 'd' move.w a2,(word_FFFFB16A).w move.w a2,(word_FFFFB16C).w loc_6EEB8: ; DATA XREF: OS4:0008A560o bset #3,(byte_FFFFB176).w bra.s locret_6EEC6 ; --------------------------------------------------------------------------- loc_6EEC0: ; DATA XREF: OS4:off_8A56Co ; OS4:0008A578o bclr #6,(byte_FFFFB176).w locret_6EEC6: ; CODE XREF: sub_6EE6A+8j ; sub_6EE6A+54j ; DATA XREF: ... rts ; End of function sub_6EE6A ; =============== S U B R O U T I N E ======================================= sub_6EEC8: ; CODE XREF: OS1:00029152p ; sub_755FA+136p move.l d1,-(sp) move.b d0,d1 cmpi.b #2,d1 bne.s loc_6EEEC move.b (byte_FFFFAC47).w,d3 bne.s loc_6EEE6 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d0 ; Number of cylinders for this engine application. ; SHORTCARD subq.b #1,d0 move.b d0,(byte_FFFF9779).w bra.s loc_6EEEC ; --------------------------------------------------------------------------- loc_6EEE6: ; CODE XREF: sub_6EEC8+Ej subq.b #1,d3 move.b d3,(byte_FFFF9779).w loc_6EEEC: ; CODE XREF: sub_6EEC8+8j ; sub_6EEC8+1Cj move.l d1,d0 jsr sub_6F126 move.l d1,d0 jsr sub_70138 move.l (sp)+,d1 rts ; End of function sub_6EEC8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6EF00: ; CODE XREF: DoLoopA+426p var_6932 = -$6932 var_6920 = -$6920 var_68E0 = -$68E0 var_689C = -$689C var_2 = -2 link a6,#-2 movem.l d0-d2/d6-d7,-(sp) move.b (byte_FFFF9779).w,d3 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d6 ; Number of cylinders for this engine application. ; SHORTCARD move.l d6,d4 subq.b #1,d4 cmp.b d3,d4 bhi.s loc_6EF1E clr.b d3 bra.s loc_6EF20 ; --------------------------------------------------------------------------- loc_6EF1E: ; CODE XREF: sub_6EF00+18j addq.b #1,d3 loc_6EF20: ; CODE XREF: sub_6EF00+1Cj cmp.b (byte_FFFFAC47).w,d3 beq.s loc_6EF36 clr.b d3 bset #7,(byte_FFFF9776).w bset #6,(byte_FFFF9776).w bra.s loc_6EF4E ; --------------------------------------------------------------------------- loc_6EF36: ; CODE XREF: sub_6EF00+24j tst.b d3 bne.s loc_6EF48 bset #7,(byte_FFFF9776).w bclr #6,(byte_FFFF9776).w bra.s loc_6EF4E ; --------------------------------------------------------------------------- loc_6EF48: ; CODE XREF: sub_6EF00+38j bclr #7,(byte_FFFF9776).w loc_6EF4E: ; CODE XREF: sub_6EF00+34j ; sub_6EF00+46j move.b d3,(byte_FFFF9779).w move.b d6,d1 move.l d1,d0 moveq #1,d4 bra.s loc_6EF74 ; --------------------------------------------------------------------------- loc_6EF5A: ; CODE XREF: sub_6EF00+76j clr.l d3 move.b d0,d3 move.w dword_FFFF96E0+2(d3.w*2),$16+var_6932(d3.w*2) move.w byte_FFFF9778(d3.w*2),$16+var_689C(d3.w*2) subq.b #1,d0 loc_6EF74: ; CODE XREF: sub_6EF00+58j cmp.b d0,d4 bls.s loc_6EF5A move.w (word_FFFFAA86).w,d7 move.w d7,(word_FFFF96E4).w move.l d1,d3 lsr.b #1,d3 move.b (byte_FFFF9779).w,d2 move.b d2,var_2(a6) cmp.b d3,d2 bcs.s loc_6EF96 move.l d2,d0 sub.b d3,d0 bra.s loc_6EF98 ; --------------------------------------------------------------------------- loc_6EF96: ; CODE XREF: sub_6EF00+8Ej move.l d2,d0 loc_6EF98: ; CODE XREF: sub_6EF00+94j addq.b #1,d0 sub.w (word_FFFF96E6).w,d7 tst.b (DI_MISFIRE_KE_MISF_CRANK_ANGLE_CRRCTN_USED).l ; Determines if crank angle correction should be used. ; BOOLEAN beq.s loc_6EFC2 btst #1,(byte_FFFF893C).w bne.s loc_6EFC2 btst #2,(byte_FFFF893C).w bne.s loc_6EFC2 andi.w #$FF,d0 move.w byte_FFFF8D20(d0.w*2),d3 bra.s loc_6EFC6 ; --------------------------------------------------------------------------- loc_6EFC2: ; CODE XREF: sub_6EF00+A4j ; sub_6EF00+ACj ... move.w #$8000,d3 loc_6EFC6: ; CODE XREF: sub_6EF00+C0j mulu.w d3,d7 lsr.l #8,d7 lsr.l #7,d7 add.w (word_FFFF977C).w,d7 move.w d7,(word_FFFF977A).w clr.l d1 move.b d6,d1 mulu.w #3,d1 btst #7,(byte_FFFF9776).w beq.s loc_6F016 move.l d1,d0 subq.b #1,d0 clr.b d3 tst.b d0 bra.s loc_6F014 ; --------------------------------------------------------------------------- loc_6EFEE: ; CODE XREF: sub_6EF00:loc_6F014j move.l d3,d5 add.b d6,d5 andi.w #$FF,d5 clr.l d2 move.b d3,d2 move.w unk_FFFF96F6(d5.w*2),$16+var_6920(d2.w*2) move.w unk_FFFF9736(d5.w*2),$16+var_68E0(d2.w*2) addq.b #1,d3 bcs.s loc_6F016 cmp.b d3,d0 loc_6F014: ; CODE XREF: sub_6EF00+ECj bcc.s loc_6EFEE loc_6F016: ; CODE XREF: sub_6EF00+E2j ; sub_6EF00+110j move.l d1,d0 add.b var_2(a6),d0 move.b d0,d1 tst.b (DG_MISFIRE_KE_MISF_CYLINDER_MODE_EQUATION).l bne.s loc_6F03E move.w (word_FFFF977C).w,d3 add.w d3,d3 sub.w d3,d7 add.w (word_FFFF977E).w,d7 clr.l d2 move.b d0,d2 move.w d7,$16+var_6920(d2.w*2) bra.s loc_6F06E ; --------------------------------------------------------------------------- loc_6F03E: ; CODE XREF: sub_6EF00+124j move.w (word_FFFF977E).w,d5 moveq #6,d2 mulu.w d2,d5 move.w (word_FFFF977C).w,d4 asl.w #2,d4 andi.l #$FFFF,d7 neg.l d7 add.w d4,d7 sub.w d5,d7 move.w (word_FFFF9780).w,d4 asl.w #2,d4 add.w d4,d7 sub.w (word_FFFF9782).w,d7 clr.l d5 move.b d0,d5 move.w d7,$16+var_6920(d5.w*2) loc_6F06E: ; CODE XREF: sub_6EF00+13Cj cmpi.b #6,d6 bne.s loc_6F098 move.w (word_FFFF96E4).w,d3 sub.w (word_FFFF96E6).w,d3 sub.w (word_FFFF96E8).w,d3 add.w (word_FFFF96EC).w,d3 add.w (word_FFFF96EE).w,d3 sub.w (word_FFFF96F0).w,d3 andi.w #$FF,d1 move.w d3,$16+var_68E0(d1.w*2) bra.s loc_6F0BA ; --------------------------------------------------------------------------- loc_6F098: ; CODE XREF: sub_6EF00+172j move.w (word_FFFF96E8).w,d3 add.w d3,d3 move.w (word_FFFF96E4).w,d4 sub.w d3,d4 move.w (word_FFFF96F0).w,d3 add.w d3,d3 add.w d3,d4 sub.w (word_FFFF96F4).w,d4 andi.w #$FF,d1 move.w d4,$16+var_68E0(d1.w*2) loc_6F0BA: ; CODE XREF: sub_6EF00+196j andi.w #$FF,d0 tst.w unk_FFFF9736(d0.w*2) blt.s loc_6F0D6 clr.b d3 move.b (byte_FFFF9778).w,d4 addq.b #1,d4 bcc.s loc_6F0E4 move.b #$FF,d4 bra.s loc_6F0E4 ; --------------------------------------------------------------------------- loc_6F0D6: ; CODE XREF: sub_6EF00+1C4j clr.b d4 move.b (byte_FFFF9777).w,d3 addq.b #1,d3 bcc.s loc_6F0E4 move.b #$FF,d3 loc_6F0E4: ; CODE XREF: sub_6EF00+1CEj ; sub_6EF00+1D4j ... cmp.b (DG_MISFIRE_KE_MISF_CONSECUTIVE_POSITIVE).l,d4 ; Minimum number of consecutive cylinder events the engine is decelerating to cause a delay. ; Unitless bcc.s loc_6F0F4 cmp.b (DG_MISFIRE_KE_MISF_CONSECUTIVE_NEGATIVE).l,d3 ; Minimum number of consecutive cylinder events the engine is accelerating to cause a delay. ; Unitless bcs.s loc_6F0FC loc_6F0F4: ; CODE XREF: sub_6EF00+1EAj bset #5,(byte_FFFF9776).w bra.s loc_6F102 ; --------------------------------------------------------------------------- loc_6F0FC: ; CODE XREF: sub_6EF00+1F2j bclr #5,(byte_FFFF9776).w loc_6F102: ; CODE XREF: sub_6EF00+1FAj move.b d4,(byte_FFFF9778).w move.b d3,(byte_FFFF9777).w jsr sub_6E5C0 btst #7,(byte_FFFF9776).w beq.s loc_6F11E jsr sub_6F29A loc_6F11E: ; CODE XREF: sub_6EF00+216j movem.l (sp)+,d0-d2/d6-d7 unlk a6 rts ; End of function sub_6EF00 ; =============== S U B R O U T I N E ======================================= sub_6F126: ; CODE XREF: sub_6EEC8+26p move.l d1,-(sp) move.w (CoolantTemperatureOrDefault).w,d3 addi.w #$100,d3 cmpi.w #$7FFF,d3 bhi.s loc_6F140 mulu.w #5,d3 divu.w #3,d3 bra.s loc_6F142 ; --------------------------------------------------------------------------- loc_6F140: ; CODE XREF: sub_6F126+Ej clr.w d3 loc_6F142: ; CODE XREF: sub_6F126+18j cmpi.w #$6FF,d3 bls.s loc_6F14C move.w #$6FF,d3 loc_6F14C: ; CODE XREF: sub_6F126+20j tblu.b (PROTECTED_KV_MISF_POWERUP_DELAY).l,d3 ; Number of engine cycles to delay on powerup. ; Unitless move.b d3,d1 cmpi.b #9,d0 beq.w loc_6F1F8 cmpi.b #6,d0 beq.s loc_6F1AE cmpi.b #2,d0 bne.w loc_6F202 tst.b (byte_FFFFB54A).w bne.s loc_6F17A clr.w (word_FFFF8D54).w clr.b (byte_FFFF8D56).w loc_6F17A: ; CODE XREF: sub_6F126+4Aj jsr sub_2749A tst.b d0 bls.s loc_6F198 tst.b (byte_FFFF8D56).w bne.s loc_6F198 move.w (PROTECTED_KE_MISF_ASSEMBLY_PLANT_DELAY).l,(word_FFFF8D54).w move.b #1,(byte_FFFF8D56).w loc_6F198: ; CODE XREF: sub_6F126+5Cj ; sub_6F126+62j clr.l d3 move.b d1,d3 cmp.w (word_FFFF8D54).w,d3 bls.s loc_6F1A6 move.w d3,(word_FFFF8D54).w loc_6F1A6: ; CODE XREF: sub_6F126+7Aj move.b #$FF,(byte_FFFFA9B9).w bra.s loc_6F202 ; --------------------------------------------------------------------------- loc_6F1AE: ; CODE XREF: sub_6F126+3Cj clr.l (dword_FFFFA9C8).w clr.l (dword_FFFFA9C4).w clr.l (dword_FFFFA9C0).w clr.b (byte_FFFFA9BD).w clr.w (word_FFFFA9B6).w clr.b (byte_FFFFA9BA).w clr.b (byte_FFFFA9B8).w clr.b (byte_FFFFA9CE).w clr.b (byte_FFFFA9CF).w move.b #$FF,(byte_FFFFA9B9).w bclr #7,(byte_FFFFA9AA).w bclr #5,(byte_FFFFA9AA).w bclr #1,(byte_FFFFA9AA).w bclr #0,(byte_FFFFA9AA).w bclr #4,(byte_FFFFA9AB).w bra.s loc_6F202 ; --------------------------------------------------------------------------- loc_6F1F8: ; CODE XREF: sub_6F126+34j clr.w (word_FFFFA9B6).w bclr #5,(byte_FFFFA9AA).w loc_6F202: ; CODE XREF: sub_6F126+42j ; sub_6F126+86j ... move.l (sp)+,d1 rts ; End of function sub_6F126 ; =============== S U B R O U T I N E ======================================= sub_6F206: ; CODE XREF: sub_6F29A+10p ; sub_702A6+10p move sr,-(sp) ori #$700,sr clr.l (dword_FFFFA9C4).w clr.l (dword_FFFFA9C0).w clr.l (dword_FFFFA9C8).w clr.b (byte_FFFFA9BD).w clr.b (byte_FFFFA9BA).w clr.b (byte_FFFFA9B4).w clr.b (byte_FFFFA9B5).w clr.b (byte_FFFFA9B8).w clr.b (byte_FFFFA9BB).w clr.b (byte_FFFFA9BC).w move.b #$FF,(byte_FFFFA9B9).w bclr #5,(byte_FFFFA9AA).w bclr #6,(byte_FFFFA9AA).w move.w (DI_MISFIRE_KE_MISF_GENERIC_DELAY).l,d3 ; Number of engine cycles to delay for the enable criteria not being met, decel fuel cutoff, fuel shut off, or torque reduction. ; Eng Cycles cmp.w (word_FFFF8D54).w,d3 bls.s loc_6F256 move.w d3,(word_FFFF8D54).w loc_6F256: ; CODE XREF: sub_6F206+4Aj jsr sub_701F0 move (sp)+,sr rts ; End of function sub_6F206 ; =============== S U B R O U T I N E ======================================= sub_6F260: ; CODE XREF: sub_702A6+A3Ep move.b (byte_FFFFA9BD).w,(byte_FFFFA9B4).w move.b (byte_FFFFA9B8).w,(byte_FFFFA9B5).w clr.l (dword_FFFFA9C4).w clr.l (dword_FFFFA9C0).w clr.l (dword_FFFFA9C8).w clr.b (byte_FFFFA9BD).w clr.b (byte_FFFFA9B8).w clr.b (byte_FFFFA9BB).w clr.b (byte_FFFFA9BC).w bclr #5,(byte_FFFFA9AA).w clr.b (byte_FFFFA9BA).w bset #6,(byte_FFFFAE60).w rts ; End of function sub_6F260 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6F29A: ; CODE XREF: sub_6EF00+218p var_565E = -$565E var_6 = -6 var_5 = -5 var_4 = -4 var_3 = -3 var_2 = -2 var_1 = -1 link a6,#-6 movem.l d0-d2/d6-a0,-(sp) btst #6,(byte_FFFFA9AA).w beq.s loc_6F2B0 jsr sub_6F206 loc_6F2B0: ; CODE XREF: sub_6F29A+Ej move.w (word_FFFF96E4).w,d1 sub.w (word_FFFF96E6).w,d1 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d2 ; Number of cylinders for this engine application. ; SHORTCARD move.b d2,var_6(a6) subq.b #1,d2 moveq #1,d3 move.l d3,d5 cmp.b d2,d5 bhi.s loc_6F2F4 loc_6F2CC: ; CODE XREF: sub_6F29A+58j clr.l d5 move.b d3,d5 move.w word_FFFF96E4(d5.w*2),d0 move.l d3,d4 addq.b #1,d4 andi.w #$FF,d4 movea.w word_FFFF96E4(d4.w*2),a2 sub.w a2,d0 cmp.w d1,d0 bcc.s loc_6F2EC move.w d0,d1 loc_6F2EC: ; CODE XREF: sub_6F29A+4Ej addq.b #1,d3 bcs.s loc_6F2F4 cmp.b d3,d2 bcc.s loc_6F2CC loc_6F2F4: ; CODE XREF: sub_6F29A+30j ; sub_6F29A+54j tst.w d1 bne.s loc_6F2FE clr.w (word_FFFFA9B6).w bra.s loc_6F332 ; --------------------------------------------------------------------------- loc_6F2FE: ; CODE XREF: sub_6F29A+5Cj move.b var_6(a6),d5 cmpi.b #8,d5 bne.s loc_6F310 move.l #$493E000,d3 bra.s loc_6F326 ; --------------------------------------------------------------------------- loc_6F310: ; CODE XREF: sub_6F29A+6Cj cmpi.b #6,var_6(a6) bne.s loc_6F320 move.l #$61A8000,d3 bra.s loc_6F326 ; --------------------------------------------------------------------------- loc_6F320: ; CODE XREF: sub_6F29A+7Cj move.l #$927C000,d3 loc_6F326: ; CODE XREF: sub_6F29A+74j ; sub_6F29A+84j divu.w d1,d3 bvc.s loc_6F32E move.w #$FFFF,d3 loc_6F32E: ; CODE XREF: sub_6F29A+8Ej move.w d3,(word_FFFFA9B6).w loc_6F332: ; CODE XREF: sub_6F29A+62j move.w (word_FFFFA0E2).w,d6 asl.w #2,d6 andi.l #$FFFF,d6 moveq #5,d4 divu.w d4,d6 move.l d6,d7 lsr.w #8,d7 cmpi.w #$1000,d6 bne.s loc_6F34E subq.b #1,d7 loc_6F34E: ; CODE XREF: sub_6F29A+B0j move.w (word_FFFFA9B6).w,d1 move.w #$600,d5 cmp.w d1,d5 bhi.s loc_6F3D2 cmpi.w #$8205,d1 bcc.s loc_6F3D2 cmpi.w #$1800,d1 bcc.w loc_6F436 lsr.w #1,d1 movea.w #$300,a0 sub.w a0,d1 move.l d1,d3 lsr.w #8,d3 move.w (word_FFFFAEBC).w,d4 cmp.w (DI_MISFIRE_KE_MISF_IDLE_MODE_VEH_SPD).l,d4 ; Maximum vehicle speed before cylinder mode (idle) misfire detection is disabled. ; MPH bcc.s loc_6F3EC btst #1,(byte_FFFF8998).w bne.s loc_6F3EC btst #1,(byte_FFFF899A).w bne.s loc_6F3EC btst #1,(byte_FFFF899C).w bne.s loc_6F3EC andi.w #$FF,d3 moveq #$11,d4 mulu.w d4,d3 clr.l d2 move.b d7,d2 add.w d2,d3 move.w #$7FFF,d2 cmp.w DI_MISFIRE_KA_MISF_CYLINDER_MODE_IDLE(d3.w*2),d2 beq.s loc_6F3D2 cmp.w word_17D02(d3.w*2),d2 beq.s loc_6F3D2 cmp.w word_17CE2(d3.w*2),d2 beq.s loc_6F3D2 cmp.w word_17D04(d3.w*2),d2 bne.s loc_6F3DC loc_6F3D2: ; CODE XREF: sub_6F29A+BEj ; sub_6F29A+C4j ... bclr #3,(byte_FFFFA9AA).w bra.w loc_6F51C ; --------------------------------------------------------------------------- loc_6F3DC: ; CODE XREF: sub_6F29A+136j bset #3,(byte_FFFFA9AA).w lea (DI_MISFIRE_KA_MISF_CYLINDER_MODE_IDLE).l,a0 bra.w loc_6F50E ; --------------------------------------------------------------------------- loc_6F3EC: ; CODE XREF: sub_6F29A+E4j ; sub_6F29A+ECj ... andi.w #$FF,d3 moveq #$11,d4 mulu.w d4,d3 clr.l d2 move.b d7,d2 add.w d2,d3 move.w #$7FFF,d2 cmp.w DI_MISFIRE_KA_MISF_CYLINDER_MODE_REG1(d3.w*2),d2 beq.s loc_6F3D2 cmp.w word_17E56(d3.w*2),d2 beq.s loc_6F3D2 cmp.w word_17E36(d3.w*2),d2 beq.s loc_6F3D2 cmp.w word_17E58(d3.w*2),d2 beq.s loc_6F3D2 bset #3,(byte_FFFFA9AA).w lea (DI_MISFIRE_KA_MISF_CYLINDER_MODE_REG1).l,a0 bra.w loc_6F50E ; --------------------------------------------------------------------------- loc_6F436: ; CODE XREF: sub_6F29A+CAj cmpi.w #$8200,d1 bcc.s loc_6F498 lsr.w #2,d1 movea.w #$600,a0 sub.w a0,d1 move.l d1,d3 lsr.w #8,d3 andi.w #$FF,d3 mulu.w #$11,d3 clr.l d2 move.b d7,d2 add.w d2,d3 move.w #$7FFF,d2 cmp.w DI_MISFIRE_KA_MISF_CYLINDER_MODE_REG2(d3.w*2),d2 beq.w loc_6F3D2 cmp.w word_17FAA(d3.w*2),d2 beq.w loc_6F3D2 cmp.w word_17F8A(d3.w*2),d2 beq.w loc_6F3D2 cmp.w word_17FAC(d3.w*2),d2 beq.w loc_6F3D2 bset #3,(byte_FFFFA9AA).w lea (DI_MISFIRE_KA_MISF_CYLINDER_MODE_REG2).l,a0 bra.s loc_6F50E ; --------------------------------------------------------------------------- loc_6F498: ; CODE XREF: sub_6F29A+1A0j andi.l #$FFFF,d1 divu.w #$A,d1 movea.w #$D00,a0 sub.w a0,d1 move.l d1,d3 lsr.w #8,d3 andi.w #$FF,d3 mulu.w #$11,d3 move.l d3,d0 add.b d7,d0 andi.w #$FF,d0 move.w #$7FFF,d4 cmp.w DI_MISFIRE_KA_MISF_CYLINDER_MODE_REG3(d0.w*2),d4 beq.w loc_6F3D2 move.l d3,d2 clr.l d4 move.b d7,d4 add.w d4,d2 move.w #$7FFF,d4 cmp.w word_18362(d2.w*2),d4 beq.w loc_6F3D2 cmp.w word_18342(d0.w*2),d4 beq.w loc_6F3D2 clr.l d2 move.b d7,d2 add.w d2,d3 cmp.w word_18364(d3.w*2),d4 beq.w loc_6F3D2 bset #3,(byte_FFFFA9AA).w lea (DI_MISFIRE_KA_MISF_CYLINDER_MODE_REG3).l,a0 loc_6F50E: ; CODE XREF: sub_6F29A+14Ej ; sub_6F29A+198j ... move.l d6,d0 moveq #$22,d2 ; '"' jsr sub_878FA move.w d0,(word_FFFFA9A8).w loc_6F51C: ; CODE XREF: sub_6F29A+13Ej move.w (word_FFFFA9B6).w,d1 cmpi.w #$1400,d1 bcs.s loc_6F588 cmpi.w #$A000,d1 bcc.s loc_6F588 move.w #$1800,d2 cmp.w d1,d2 bls.s loc_6F5A2 lsr.w #1,d1 subi.w #$A00,d1 move.l d1,d3 lsr.w #8,d3 andi.w #$FF,d3 mulu.w #$11,d3 move.l d3,d0 add.b d7,d0 andi.w #$FF,d0 move.w #$7FFF,d4 cmp.w DI_MISFIRE_KA_MISF_REVOLUTION_MODE_REG1(d0.w*2),d4 beq.s loc_6F588 move.l d3,d5 clr.l d2 move.b d7,d2 add.w d2,d5 cmp.w word_183A6(d5.w*2),d4 beq.s loc_6F588 cmp.w word_18386(d0.w*2),d4 beq.s loc_6F588 andi.w #$FF,d7 add.w d7,d3 cmp.w word_183A8(d3.w*2),d4 bne.s loc_6F592 loc_6F588: ; CODE XREF: sub_6F29A+28Aj ; sub_6F29A+290j ... bclr #3,(byte_FFFFA9AB).w bra.w loc_6F682 ; --------------------------------------------------------------------------- loc_6F592: ; CODE XREF: sub_6F29A+2ECj bset #3,(byte_FFFFA9AB).w lea (DI_MISFIRE_KA_MISF_REVOLUTION_MODE_REG1).l,a0 bra.w loc_6F674 ; --------------------------------------------------------------------------- loc_6F5A2: ; CODE XREF: sub_6F29A+298j move.w #$8200,d5 cmp.w d1,d5 bls.s loc_6F5FE lsr.w #2,d1 movea.w #$600,a0 sub.w a0,d1 move.l d1,d3 lsr.w #8,d3 andi.w #$FF,d3 mulu.w #$11,d3 andi.w #$FF,d7 add.w d7,d3 move.w #$7FFF,d7 cmp.w DI_MISFIRE_KA_MISF_REVOLUTION_MODE_REG2(d3.w*2),d7 beq.s loc_6F588 cmp.w word_1840C(d3.w*2),d7 beq.s loc_6F588 cmp.w word_183EC(d3.w*2),d7 beq.s loc_6F588 cmp.w word_1840E(d3.w*2),d7 beq.s loc_6F588 bset #3,(byte_FFFFA9AB).w lea (DI_MISFIRE_KA_MISF_REVOLUTION_MODE_REG2).l,a0 bra.s loc_6F674 ; --------------------------------------------------------------------------- loc_6F5FE: ; CODE XREF: sub_6F29A+30Ej andi.l #$FFFF,d1 moveq #$A,d4 divu.w d4,d1 movea.w #$D00,a0 sub.w a0,d1 move.l d1,d3 lsr.w #8,d3 andi.w #$FF,d3 mulu.w #$11,d3 move.l d3,d0 add.b d7,d0 andi.w #$FF,d0 move.w #$7FFF,d4 cmp.w DI_MISFIRE_KA_MISF_REVOLUTION_MODE_REG3(d0.w*2),d4 beq.w loc_6F588 move.l d3,d2 clr.l d4 move.b d7,d4 add.w d4,d2 move.w #$7FFF,d4 cmp.w word_187C4(d2.w*2),d4 beq.w loc_6F588 cmp.w word_187A4(d0.w*2),d4 beq.w loc_6F588 andi.w #$FF,d7 add.w d7,d3 cmp.w word_187C6(d3.w*2),d4 beq.w loc_6F588 bset #3,(byte_FFFFA9AB).w lea (DI_MISFIRE_KA_MISF_REVOLUTION_MODE_REG3).l,a0 loc_6F674: ; CODE XREF: sub_6F29A+304j ; sub_6F29A+362j move.l d6,d0 moveq #$22,d2 ; '"' jsr sub_878FA move.w d0,(word_FFFFA9BE).w loc_6F682: ; CODE XREF: sub_6F29A+2F4j tst.b (PROTECTED_KE_MISF_CALIBRATE_MODE).l ; Enables the diagnostic to collect data in both cylinder and revolution mode for development purposes. ; Flag beq.s loc_6F698 andi.b #$1F,(byte_FFFFA9AB).w ori.b #$80,(byte_FFFFA9AB).w bra.s loc_6F6E0 ; --------------------------------------------------------------------------- loc_6F698: ; CODE XREF: sub_6F29A+3EEj btst #3,(byte_FFFFA9AA).w beq.s loc_6F6C4 btst #3,(byte_FFFFA9AB).w beq.s loc_6F6B6 andi.b #$1F,(byte_FFFFA9AB).w ori.b #$60,(byte_FFFFA9AB).w ; '`' bra.s loc_6F6E0 ; --------------------------------------------------------------------------- loc_6F6B6: ; CODE XREF: sub_6F29A+40Cj andi.b #$1F,(byte_FFFFA9AB).w ori.b #$20,(byte_FFFFA9AB).w ; ' ' bra.s loc_6F6E0 ; --------------------------------------------------------------------------- loc_6F6C4: ; CODE XREF: sub_6F29A+404j btst #3,(byte_FFFFA9AB).w beq.s loc_6F6DA andi.b #$1F,(byte_FFFFA9AB).w ori.b #$40,(byte_FFFFA9AB).w ; '@' bra.s loc_6F6E0 ; --------------------------------------------------------------------------- loc_6F6DA: ; CODE XREF: sub_6F29A+430j andi.b #$1F,(byte_FFFFA9AB).w loc_6F6E0: ; CODE XREF: sub_6F29A+3FCj ; sub_6F29A+41Aj ... move.w (CoolantTemperatureOrDefault).w,d3 addi.w #$400,d3 mulu.w #5,d3 divu.w #6,d3 cmpi.w #$FFF,d3 bls.s loc_6F6FA move.w #$FFF,d3 loc_6F6FA: ; CODE XREF: sub_6F29A+45Aj tblu.b (PROTECTED_KV_MISF_ZERO_TORQUE_TEMPERATURE).l,d3 move.b d3,d0 move.w (word_FFFFA9B6).w,d3 move.w #$600,d1 cmp.w d3,d1 bhi.s loc_6F772 cmpi.w #$A000,d3 bcc.s loc_6F772 cmpi.w #$1800,d3 bcc.s loc_6F73E lsr.w #1,d3 subi.w #$300,d3 andi.w #$FF,d0 tblu.w (DI_MISFIRE_KV_MISF_ZERO_TORQUE_REG1_SPEED).l,d3 loc_6F72E: ; CODE XREF: sub_6F29A+4BAj ; sub_6F29A+4D6j mulu.w d0,d3 lsr.l #5,d3 cmpi.w #$1400,d3 bls.s loc_6F774 move.w #$1400,d3 bra.s loc_6F774 ; --------------------------------------------------------------------------- loc_6F73E: ; CODE XREF: sub_6F29A+480j cmpi.w #$8200,d3 bcc.s loc_6F756 lsr.w #2,d3 sub.w d1,d3 andi.w #$FF,d0 tblu.w (DI_MISFIRE_KV_MISF_ZERO_TORQUE_REG2_SPEED).l,d3 bra.s loc_6F72E ; --------------------------------------------------------------------------- loc_6F756: ; CODE XREF: sub_6F29A+4A8j andi.l #$FFFF,d3 moveq #$A,d2 divu.w d2,d3 subi.w #$D00,d3 andi.w #$FF,d0 tblu.w (DI_MISFIRE_KV_MISF_ZERO_TORQUE_REG3_SPEED).l,d3 bra.s loc_6F72E ; --------------------------------------------------------------------------- loc_6F772: ; CODE XREF: sub_6F29A+474j ; sub_6F29A+47Aj clr.w d3 loc_6F774: ; CODE XREF: sub_6F29A+49Cj ; sub_6F29A+4A2j move.w (word_FFFFA0E2).w,d4 cmp.w d3,d4 bcs.s loc_6F784 move.b (byte_FFFFA9AB).w,d3 lsr.b #5,d3 bne.s loc_6F798 loc_6F784: ; CODE XREF: sub_6F29A+4E0j move.b (byte_FFFFA9AB).w,d3 lsr.b #5,d3 cmpi.b #4,d3 beq.s loc_6F798 bset #0,(byte_FFFFA9AB).w bra.s loc_6F79E ; --------------------------------------------------------------------------- loc_6F798: ; CODE XREF: sub_6F29A+4E8j ; sub_6F29A+4F4j bclr #0,(byte_FFFFA9AB).w loc_6F79E: ; CODE XREF: sub_6F29A+4FCj jsr sub_6E5D0 bclr #1,(byte_FFFFA9AA).w bclr #0,(byte_FFFFA9AA).w move.w (word_FFFFB172).w,d4 move.w (word_FFFF8D54).w,d3 cmp.w d4,d3 bhi.s loc_6F7C2 move.w d4,(word_FFFF8D54).w bra.s loc_6F7C8 ; --------------------------------------------------------------------------- loc_6F7C2: ; CODE XREF: sub_6F29A+520j subq.w #1,d3 move.w d3,(word_FFFF8D54).w loc_6F7C8: ; CODE XREF: sub_6F29A+526j tst.w (word_FFFF8D54).w bne.s loc_6F828 bset #2,(byte_FFFFA9AA).w move.b (byte_FFFFA9BA).w,d3 moveq #$64,d4 ; 'd' cmp.b d3,d4 bls.s loc_6F820 addq.b #1,d3 move.b d3,(byte_FFFFA9BA).w cmpi.b #1,d3 bne.s loc_6F806 bset #0,(byte_FFFFA9AA).w bclr #4,(byte_FFFFA9AB).w move.w (word_FFFFA9B6).w,(word_FFFFA9B2).w movea.w (word_FFFFA0E2).w,a2 move.w a2,(word_FFFFA9AE).w bra.s loc_6F82E ; --------------------------------------------------------------------------- loc_6F806: ; CODE XREF: sub_6F29A+54Ej cmp.b d3,d4 bne.s loc_6F82E bset #1,(byte_FFFFA9AA).w move.w (word_FFFFA9B6).w,(word_FFFFA9B0).w movea.w (word_FFFFA0E2).w,a2 move.w a2,(word_FFFFA9AC).w bra.s loc_6F82E ; --------------------------------------------------------------------------- loc_6F820: ; CODE XREF: sub_6F29A+542j bset #4,(byte_FFFFA9AB).w bra.s loc_6F82E ; --------------------------------------------------------------------------- loc_6F828: ; CODE XREF: sub_6F29A+532j bclr #2,(byte_FFFFA9AA).w loc_6F82E: ; CODE XREF: sub_6F29A+56Aj ; sub_6F29A+56Ej ... btst #2,(byte_FFFFA9AA).w beq.s loc_6F83E btst #4,(byte_FFFFA9AB).w beq.s loc_6F848 loc_6F83E: ; CODE XREF: sub_6F29A+59Aj move.b #$FF,(byte_FFFFA9B9).w bra.w loc_70130 ; --------------------------------------------------------------------------- loc_6F848: ; CODE XREF: sub_6F29A+5A2j move.b (byte_FFFFA9AB).w,d7 lsr.b #5,d7 moveq #1,d5 cmp.b d7,d5 beq.s loc_6F85C cmpi.b #4,d7 bne.w loc_6F8EA loc_6F85C: ; CODE XREF: sub_6F29A+5B8j clr.w d2 move.b var_6(a6),d2 move.w unk_FFFF96F6(d2.w*2),d4 move.b var_6(a6),d2 move.b d2,var_5(a6) move.w #$8000,d0 move.b var_6(a6),d6 add.b d6,d6 subq.b #1,d6 move.b var_6(a6),d3 addq.b #1,d3 move.b d3,var_4(a6) cmp.b d3,d6 bra.s loc_6F8C8 ; --------------------------------------------------------------------------- loc_6F88A: ; CODE XREF: sub_6F29A:loc_6F8C8j clr.w d5 move.b var_4(a6),d5 move.w unk_FFFF96F6(d5.w*2),d3 cmp.w d4,d3 ble.s loc_6F8AC move.w d4,d0 move.b var_5(a6),var_3(a6) move.w d3,d4 move.b var_4(a6),var_5(a6) bra.s loc_6F8B8 ; --------------------------------------------------------------------------- loc_6F8AC: ; CODE XREF: sub_6F29A+5FEj cmp.w d0,d3 ble.s loc_6F8B8 move.w d3,d0 move.b var_4(a6),var_3(a6) loc_6F8B8: ; CODE XREF: sub_6F29A+610j ; sub_6F29A+614j move.b var_4(a6),d5 addq.b #1,d5 bcs.s loc_6F8CA move.b d5,var_4(a6) move.b d5,d2 cmp.b d2,d6 loc_6F8C8: ; CODE XREF: sub_6F29A+5EEj bcc.s loc_6F88A loc_6F8CA: ; CODE XREF: sub_6F29A+624j move.w d4,(word_FFFFA9A4).w move.b var_6(a6),d2 move.b var_5(a6),d5 sub.b d2,d5 move.b d5,(byte_FFFFA9CC).w move.w d0,(word_FFFFA9A6).w move.b var_3(a6),d5 sub.b d2,d5 move.b d5,(byte_FFFFA9CD).w loc_6F8EA: ; CODE XREF: sub_6F29A+5BEj moveq #2,d5 cmp.b d7,d5 beq.s loc_6F8FE cmpi.b #3,d7 beq.s loc_6F8FE moveq #4,d2 cmp.b d7,d2 bne.w loc_6FA5A loc_6F8FE: ; CODE XREF: sub_6F29A+654j ; sub_6F29A+65Aj tst.b (PROTECTED_KE_MISF_SINGLE_PEAK_REV_METHOD).l ; Indicates whether to use only one cylinder's peak in determining the highest peak of the revolution mode data. ; Flag beq.s loc_6F94C clr.w d2 move.b var_6(a6),d2 move.w unk_FFFF9736(d2.w*2),d0 ext.l d0 move.b var_6(a6),d2 move.b d2,var_5(a6) move.b var_6(a6),d4 add.b d4,d4 subq.b #1,d4 move.b var_6(a6),d6 addq.b #1,d6 bra.s loc_6F946 ; --------------------------------------------------------------------------- loc_6F92C: ; CODE XREF: sub_6F29A+6AEj clr.l d2 move.b d6,d2 move.w unk_FFFF9736(d2.w*2),d3 ext.l d3 cmp.l d0,d3 ble.s loc_6F942 move.l d3,d0 move.b d6,var_5(a6) loc_6F942: ; CODE XREF: sub_6F29A+6A0j addq.b #1,d6 bcs.s loc_6F9B2 loc_6F946: ; CODE XREF: sub_6F29A+690j cmp.b d6,d4 bcc.s loc_6F92C bra.s loc_6F9B2 ; --------------------------------------------------------------------------- loc_6F94C: ; CODE XREF: sub_6F29A+66Aj move.b var_6(a6),d6 addq.b #1,d6 clr.w d3 move.b d6,d3 move.w unk_FFFF9736(d3.w*2),d3 ext.l d3 clr.w d2 move.b var_6(a6),d2 move.w unk_FFFF9736(d2.w*2),d0 ext.l d0 add.l d3,d0 move.b var_6(a6),d2 move.b d2,var_5(a6) move.b var_6(a6),d4 add.b d4,d4 subq.b #1,d4 bra.s loc_6F9AE ; --------------------------------------------------------------------------- loc_6F980: ; CODE XREF: sub_6F29A+716j move.l d6,d3 addq.b #1,d3 andi.w #$FF,d3 move.w unk_FFFF9736(d3.w*2),d3 move.l d3,d5 ext.l d5 clr.l d2 move.b d6,d2 move.w unk_FFFF9736(d2.w*2),d3 ext.l d3 add.l d5,d3 cmp.l d0,d3 ble.s loc_6F9AA move.l d3,d0 move.b d6,var_5(a6) loc_6F9AA: ; CODE XREF: sub_6F29A+708j addq.b #1,d6 bcs.s loc_6F9B2 loc_6F9AE: ; CODE XREF: sub_6F29A+6E4j cmp.b d6,d4 bcc.s loc_6F980 loc_6F9B2: ; CODE XREF: sub_6F29A+6AAj ; sub_6F29A+6B0j ... move.b var_6(a6),d2 move.b var_5(a6),d5 sub.b d2,d5 move.b d5,(byte_FFFFA9D4).w move.l d2,d5 lsr.b #1,d5 move.b d5,var_4(a6) move.b var_5(a6),d6 sub.b (PROTECTED_KE_MISF_BALANCED_TIME_OFFSET).l,d6 move.l d6,d1 move.b var_4(a6),d4 add.b d4,d1 clr.w d3 move.b d1,d3 move.w unk_FFFF9736(d3.w*2),d3 ext.l d3 clr.l d0 move.b d6,d0 move.w unk_FFFF9736(d0.w*2),d0 ext.l d0 sub.l d3,d0 tst.l d0 bge.s loc_6F9FA neg.l d0 loc_6F9FA: ; CODE XREF: sub_6F29A+75Cj andi.l #$FFFF,d0 subq.b #1,d1 addq.b #1,d6 bra.s loc_6FA38 ; --------------------------------------------------------------------------- loc_6FA06: ; CODE XREF: sub_6F29A+7A0j move.l d6,d3 add.b d4,d3 andi.w #$FF,d3 move.w unk_FFFF9736(d3.w*2),d3 ext.l d3 clr.l d2 move.b d6,d2 move.w unk_FFFF9736(d2.w*2),d2 ext.l d2 sub.l d3,d2 tst.l d2 bge.s loc_6FA2A neg.l d2 loc_6FA2A: ; CODE XREF: sub_6F29A+78Cj andi.l #$FFFF,d2 add.l d0,d2 move.l d2,d0 addq.b #1,d6 bcs.s loc_6FA3C loc_6FA38: ; CODE XREF: sub_6F29A+76Aj cmp.b d6,d1 bcc.s loc_6FA06 loc_6FA3C: ; CODE XREF: sub_6F29A+79Cj cmpi.l #$FFFF8000,d0 blt.s loc_6FA52 cmpi.l #$7FFF,d0 ble.s loc_6FA56 move.w #$7FFF,d0 bra.s loc_6FA56 ; --------------------------------------------------------------------------- loc_6FA52: ; CODE XREF: sub_6F29A+7A8j move.w #$8000,d0 loc_6FA56: ; CODE XREF: sub_6F29A+7B0j ; sub_6F29A+7B6j move.w d0,(word_FFFFA9A2).w loc_6FA5A: ; CODE XREF: sub_6F29A+660j cmpi.b #4,d7 bne.w loc_6FBAA move.b var_6(a6),d5 move.b d5,var_5(a6) move.l #$80000000,d1 tst.b (PROTECTED_KE_MISF_OPP_CYL_SINGLE_PEAK).l ; Indicates whether to use the single peak method of analyzing peaks in opposing cylinder mode. ; Flag beq.s loc_6FAE4 clr.w d2 move.b var_6(a6),d2 move.w unk_FFFF96F6(d2.w*2),d0 ext.l d0 move.b var_6(a6),d2 add.b d2,d2 subq.b #1,d2 move.b var_6(a6),d6 addq.b #1,d6 move.b d6,var_4(a6) cmp.b d6,d2 bra.s loc_6FADE ; --------------------------------------------------------------------------- loc_6FA9C: ; CODE XREF: sub_6F29A:loc_6FADEj clr.w d5 move.b var_4(a6),d5 move.w unk_FFFF96F6(d5.w*2),d3 ext.l d3 cmp.l d0,d3 ble.s loc_6FAC0 move.l d0,d1 move.b var_5(a6),var_2(a6) move.l d3,d0 move.b var_4(a6),var_5(a6) bra.s loc_6FACC ; --------------------------------------------------------------------------- loc_6FAC0: ; CODE XREF: sub_6F29A+812j cmp.l d1,d3 ble.s loc_6FACC move.l d3,d1 move.b var_4(a6),var_2(a6) loc_6FACC: ; CODE XREF: sub_6F29A+824j ; sub_6F29A+828j move.b var_4(a6),d5 addq.b #1,d5 bcs.w loc_6FB74 move.b d5,var_4(a6) move.b d5,d3 cmp.b d3,d2 loc_6FADE: ; CODE XREF: sub_6F29A+800j bcc.s loc_6FA9C bra.w loc_6FB74 ; --------------------------------------------------------------------------- loc_6FAE4: ; CODE XREF: sub_6F29A+7DCj move.b var_6(a6),d6 addq.b #1,d6 andi.w #$FF,d6 move.w unk_FFFF96F6(d6.w*2),d3 ext.l d3 clr.w d6 move.b var_6(a6),d6 move.w unk_FFFF96F6(d6.w*2),d0 ext.l d0 add.l d3,d0 move.b var_6(a6),d6 add.b d6,d6 subq.b #1,d6 move.b var_6(a6),d4 addq.b #1,d4 move.b d4,var_4(a6) cmp.b d4,d6 bra.s loc_6FB72 ; --------------------------------------------------------------------------- loc_6FB1C: ; CODE XREF: sub_6F29A:loc_6FB72j move.b var_4(a6),d2 addq.b #1,d2 andi.w #$FF,d2 move.w unk_FFFF96F6(d2.w*2),d3 move.l d3,d5 ext.l d5 clr.w d2 move.b var_4(a6),d2 move.w unk_FFFF96F6(d2.w*2),d3 ext.l d3 add.l d5,d3 cmp.l d0,d3 ble.s loc_6FB56 move.l d0,d1 move.b var_5(a6),var_2(a6) move.l d3,d0 move.b var_4(a6),var_5(a6) bra.s loc_6FB62 ; --------------------------------------------------------------------------- loc_6FB56: ; CODE XREF: sub_6F29A+8A8j cmp.l d1,d3 ble.s loc_6FB62 move.l d3,d1 move.b var_4(a6),var_2(a6) loc_6FB62: ; CODE XREF: sub_6F29A+8BAj ; sub_6F29A+8BEj move.b var_4(a6),d5 addq.b #1,d5 bcs.s loc_6FB74 move.b d5,var_4(a6) move.b d5,d2 cmp.b d2,d6 loc_6FB72: ; CODE XREF: sub_6F29A+880j bcc.s loc_6FB1C loc_6FB74: ; CODE XREF: sub_6F29A+838j ; sub_6F29A+846j ... move.b var_6(a6),d2 move.b var_5(a6),d5 sub.b d2,d5 move.b d5,(byte_FFFFA9D0).w cmpi.l #$FFFF8000,d1 blt.s loc_6FB98 cmpi.l #$7FFF,d1 ble.s loc_6FB9C move.w #$7FFF,d1 bra.s loc_6FB9C ; --------------------------------------------------------------------------- loc_6FB98: ; CODE XREF: sub_6F29A+8EEj move.w #$8000,d1 loc_6FB9C: ; CODE XREF: sub_6F29A+8F6j ; sub_6F29A+8FCj move.w d1,(word_FFFFA9D2).w move.b var_2(a6),d5 sub.b d2,d5 move.b d5,(byte_FFFFA9D1).w loc_6FBAA: ; CODE XREF: sub_6F29A+7C4j moveq #1,d5 cmp.b d7,d5 beq.s loc_6FBBE cmpi.b #2,d7 beq.s loc_6FBBE cmpi.b #3,d7 bne.w loc_7011C loc_6FBBE: ; CODE XREF: sub_6F29A+914j ; sub_6F29A+91Aj move.b (byte_FFFFA9AB).w,d0 lsr.b #5,d0 move.l d5,d2 cmp.b d0,d2 bne.w loc_6FD4E move.w (word_FFFFA9A4).w,d0 cmp.w (word_FFFFA9A8).w,d0 blt.w loc_6FCA4 move.l d5,d0 clr.b d4 move.b var_6(a6),d6 add.b (byte_FFFFA9CC).w,d6 addq.b #1,d6 move.l d6,d3 loc_6FBE8: ; CODE XREF: sub_6F29A+970j clr.l d7 move.b d3,d7 tst.w unk_FFFF96F6(d7.w*2) blt.s loc_6FBF8 addq.b #1,d4 bra.s loc_6FBFA ; --------------------------------------------------------------------------- loc_6FBF8: ; CODE XREF: sub_6F29A+958j clr.b d0 loc_6FBFA: ; CODE XREF: sub_6F29A+95Cj addq.b #1,d3 tst.b d0 beq.s loc_6FC0C move.b var_6(a6),d7 move.l d6,d1 add.b d7,d1 cmp.b d3,d1 bhi.s loc_6FBE8 loc_6FC0C: ; CODE XREF: sub_6F29A+964j cmp.b (PROTECTED_KE_MISF_CYL_ABNORMAL_ENGINE_SPD).l,d4 ; Threshold for distinguishing abnormal speed in cylinder mode. ; Unitless bcs.s loc_6FC58 move.w (word_FFFFAEBC).w,d3 cmp.w (PROTECTED_KE_MISF_IDLE_VEHICLE_SPEED).l,d3 ; Maximum vehicle speed necessary to have abnormal speed detected. ; MPH bcc.s loc_6FC4C tst.b (byte_FFFFB370).w beq.s loc_6FC34 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_6FC34 move.w (word_FFFF9050).w,d3 bra.s loc_6FC38 ; --------------------------------------------------------------------------- loc_6FC34: ; CODE XREF: sub_6F29A+98Aj ; sub_6F29A+992j move.w (word_FFFFAB66).w,d3 loc_6FC38: ; CODE XREF: sub_6F29A+998j cmp.w (PROTECTED_KE_MISF_IDLE_THROTTLE_POSITION).l,d3 ; Maximum throttle position necessary to have abnormal speed detected. ; Percent bcc.s loc_6FC4C move.w (word_FFFFA9B6).w,d3 cmp.w (PROTECTED_KE_MISF_IDLE_ENGINE_SPEED).l,d3 ; Maximum engine speed necessary to have abnormal speed detected. ; RPM bcs.s loc_6FC58 loc_6FC4C: ; CODE XREF: sub_6F29A+984j ; sub_6F29A+9A4j addq.b #1,(byte_FFFFA9BD).w bset #7,(byte_FFFFA9AA).w bra.s loc_6FC62 ; --------------------------------------------------------------------------- loc_6FC58: ; CODE XREF: sub_6F29A+978j ; sub_6F29A+9B0j addq.b #1,(byte_FFFFA9B8).w bclr #7,(byte_FFFFA9AA).w loc_6FC62: ; CODE XREF: sub_6F29A+9BCj clr.b (byte_FFFFA9BC).w move.b (byte_FFFFA9BB).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFA9BB).w cmp.b d3,d5 beq.s loc_6FC7C cmp.b (PROTECTED_KE_MISF_RING_FILTER).l,d3 ; Number of engine cycles to ignore due to misfire induced drive train ringing. ; Unitless bcs.s loc_6FCC0 loc_6FC7C: ; CODE XREF: sub_6F29A+9D8j tst.b (DG_MF_ENGINE_CYCLE_KE_MISF_ABNORMAL_SPEED_OPTION).l ; Indicates when to analyze the abnormal speed data. ; Unitless bne.s loc_6FC8C btst #7,(byte_FFFFA9AA).w bne.s loc_6FCC0 loc_6FC8C: ; CODE XREF: sub_6F29A+9E8j bset #2,(byte_FFFFA9AB).w move.w (word_FFFFA9A6).w,d4 cmp.w (word_FFFFA9A8).w,d4 blt.s loc_6FCC6 bset #1,(byte_FFFFA9AB).w bra.s loc_6FCCC ; --------------------------------------------------------------------------- loc_6FCA4: ; CODE XREF: sub_6F29A+93Aj bclr #7,(byte_FFFFA9AA).w move.b (byte_FFFFA9BC).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFA9BC).w cmp.b (PROTECTED_KE_MISF_NUMBER_OF_NORMALS_FILTER).l,d3 ; Minimum number of normals necessary to reset misfire information. ; Unitless bcs.s loc_6FCC0 clr.b (byte_FFFFA9BB).w loc_6FCC0: ; CODE XREF: sub_6F29A+9E0j ; sub_6F29A+9F0j ... bclr #2,(byte_FFFFA9AB).w loc_6FCC6: ; CODE XREF: sub_6F29A+A00j bclr #1,(byte_FFFFA9AB).w loc_6FCCC: ; CODE XREF: sub_6F29A+A08j bclr #4,(byte_FFFFA9AA).w btst #2,(byte_FFFFA9AB).w beq.w loc_70040 tst.b (DG_MISFIRE_KE_MISF_CYLINDER_MODE_EQUATION).l bne.s loc_6FCEE move.b (byte_FFFFA9CC).w,d4 move.b (byte_FFFFA9CD).w,d1 bra.s loc_6FD12 ; --------------------------------------------------------------------------- loc_6FCEE: ; CODE XREF: sub_6F29A+A48j move.b (byte_FFFFA9CC).w,d4 bne.s loc_6FCFE move.b var_6(a6),d6 subq.b #1,d6 move.l d6,d4 bra.s loc_6FD00 ; --------------------------------------------------------------------------- loc_6FCFE: ; CODE XREF: sub_6F29A+A58j subq.b #1,d4 loc_6FD00: ; CODE XREF: sub_6F29A+A62j move.b (byte_FFFFA9CD).w,d1 bne.s loc_6FD10 move.b var_6(a6),d6 subq.b #1,d6 move.l d6,d1 bra.s loc_6FD12 ; --------------------------------------------------------------------------- loc_6FD10: ; CODE XREF: sub_6F29A+A6Aj subq.b #1,d1 loc_6FD12: ; CODE XREF: sub_6F29A+A52j ; sub_6F29A+A74j clr.l d0 move.b d4,d0 move.b -$5640(d0.w),d3 addq.b #1,d3 move.b d3,$1E+var_565E(d0.w) move.b d4,(byte_FFFFA9CE).w btst #1,(byte_FFFFA9AB).w beq.s loc_6FD42 clr.l d4 move.b d1,d4 addq.b #1,-$5640(d4.w) move.b d1,(byte_FFFFA9CF).w bra.w loc_70040 ; --------------------------------------------------------------------------- loc_6FD42: ; CODE XREF: sub_6F29A+A94j addq.b #1,d3 move.b d3,$1E+var_565E(d0.w) bra.w loc_70040 ; --------------------------------------------------------------------------- loc_6FD4E: ; CODE XREF: sub_6F29A+92Ej move.w (word_FFFFA9A2).w,d0 cmp.w (word_FFFFA9BE).w,d0 blt.w loc_6FE26 move.l d5,d0 clr.b d4 move.b var_6(a6),d6 add.b (byte_FFFFA9D4).w,d6 addq.b #1,d6 move.l d6,d3 loc_6FD6A: ; CODE XREF: sub_6F29A+AF2j clr.l d7 move.b d3,d7 tst.w unk_FFFF9736(d7.w*2) blt.s loc_6FD7A addq.b #1,d4 bra.s loc_6FD7C ; --------------------------------------------------------------------------- loc_6FD7A: ; CODE XREF: sub_6F29A+ADAj clr.b d0 loc_6FD7C: ; CODE XREF: sub_6F29A+ADEj addq.b #1,d3 tst.b d0 beq.s loc_6FD8E move.b var_6(a6),d7 move.l d6,d1 add.b d7,d1 cmp.b d3,d1 bhi.s loc_6FD6A loc_6FD8E: ; CODE XREF: sub_6F29A+AE6j cmp.b (PROTECTED_KE_MISF_REV_ABNORMAL_ENGINE_SPD).l,d4 ; Threshold distinguishing abnormal speed in revolution mode. ; Unitless bcs.s loc_6FDDA move.w (word_FFFFAEBC).w,d3 cmp.w (PROTECTED_KE_MISF_IDLE_VEHICLE_SPEED).l,d3 ; Maximum vehicle speed necessary to have abnormal speed detected. ; MPH bcc.s loc_6FDCE tst.b (byte_FFFFB370).w beq.s loc_6FDB6 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_6FDB6 move.w (word_FFFF9050).w,d3 bra.s loc_6FDBA ; --------------------------------------------------------------------------- loc_6FDB6: ; CODE XREF: sub_6F29A+B0Cj ; sub_6F29A+B14j move.w (word_FFFFAB66).w,d3 loc_6FDBA: ; CODE XREF: sub_6F29A+B1Aj cmp.w (PROTECTED_KE_MISF_IDLE_THROTTLE_POSITION).l,d3 ; Maximum throttle position necessary to have abnormal speed detected. ; Percent bcc.s loc_6FDCE move.w (word_FFFFA9B6).w,d3 cmp.w (PROTECTED_KE_MISF_IDLE_ENGINE_SPEED).l,d3 ; Maximum engine speed necessary to have abnormal speed detected. ; RPM bcs.s loc_6FDDA loc_6FDCE: ; CODE XREF: sub_6F29A+B06j ; sub_6F29A+B26j addq.b #1,(byte_FFFFA9BD).w bset #7,(byte_FFFFA9AA).w bra.s loc_6FDE4 ; --------------------------------------------------------------------------- loc_6FDDA: ; CODE XREF: sub_6F29A+AFAj ; sub_6F29A+B32j addq.b #1,(byte_FFFFA9B8).w bclr #7,(byte_FFFFA9AA).w loc_6FDE4: ; CODE XREF: sub_6F29A+B3Ej clr.b (byte_FFFFA9BC).w move.b (byte_FFFFA9BB).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFA9BB).w cmp.b d3,d5 beq.s loc_6FDFE cmp.b (PROTECTED_KE_MISF_RING_FILTER).l,d3 ; Number of engine cycles to ignore due to misfire induced drive train ringing. ; Unitless bcs.s loc_6FE16 loc_6FDFE: ; CODE XREF: sub_6F29A+B5Aj tst.b (DG_MF_ENGINE_CYCLE_KE_MISF_ABNORMAL_SPEED_OPTION).l ; Indicates when to analyze the abnormal speed data. ; Unitless bne.s loc_6FE0E btst #7,(byte_FFFFA9AA).w bne.s loc_6FE16 loc_6FE0E: ; CODE XREF: sub_6F29A+B6Aj bset #2,(byte_FFFFA9AB).w bra.s loc_6FE1C ; --------------------------------------------------------------------------- loc_6FE16: ; CODE XREF: sub_6F29A+B62j ; sub_6F29A+B72j bclr #2,(byte_FFFFA9AB).w loc_6FE1C: ; CODE XREF: sub_6F29A+B7Aj bclr #1,(byte_FFFFA9AB).w bra.w loc_6FFC2 ; --------------------------------------------------------------------------- loc_6FE26: ; CODE XREF: sub_6F29A+ABCj bclr #7,(byte_FFFFA9AA).w move.b (byte_FFFFA9BC).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFA9BC).w cmp.b (PROTECTED_KE_MISF_NUMBER_OF_NORMALS_FILTER).l,d3 ; Minimum number of normals necessary to reset misfire information. ; Unitless bcs.s loc_6FE42 clr.b (byte_FFFFA9BB).w loc_6FE42: ; CODE XREF: sub_6F29A+BA2j bclr #2,(byte_FFFFA9AB).w bclr #1,(byte_FFFFA9AB).w move.b (byte_FFFFA9AB).w,d2 lsr.b #5,d2 cmpi.b #3,d2 bne.w loc_6FFC2 bset #4,(byte_FFFFA9AA).w move.b var_6(a6),d2 move.l #$80000000,d1 tst.b (PROTECTED_KE_MISF_OPP_CYL_SINGLE_PEAK).l ; Indicates whether to use the single peak method of analyzing peaks in opposing cylinder mode. ; Flag beq.s loc_6FEC4 clr.w d6 move.b var_6(a6),d6 move.w unk_FFFF96F6(d6.w*2),d0 ext.l d0 move.b var_6(a6),d6 add.b d6,d6 subq.b #1,d6 move.b var_6(a6),d7 addq.b #1,d7 bra.s loc_6FEBE ; --------------------------------------------------------------------------- loc_6FE92: ; CODE XREF: sub_6F29A+C26j clr.l d4 move.b d7,d4 move.w unk_FFFF96F6(d4.w*2),d3 ext.l d3 cmp.l d0,d3 ble.s loc_6FEAE move.l d0,d1 move.b d2,var_1(a6) move.l d3,d0 move.b d7,d2 bra.s loc_6FEB8 ; --------------------------------------------------------------------------- loc_6FEAE: ; CODE XREF: sub_6F29A+C06j cmp.l d1,d3 ble.s loc_6FEB8 move.l d3,d1 move.b d7,var_1(a6) loc_6FEB8: ; CODE XREF: sub_6F29A+C12j ; sub_6F29A+C16j addq.b #1,d7 bcs.w loc_6FF40 loc_6FEBE: ; CODE XREF: sub_6F29A+BF6j cmp.b d7,d6 bcc.s loc_6FE92 bra.s loc_6FF40 ; --------------------------------------------------------------------------- loc_6FEC4: ; CODE XREF: sub_6F29A+BD8j move.b var_6(a6),d6 addq.b #1,d6 andi.w #$FF,d6 move.w unk_FFFF96F6(d6.w*2),d3 ext.l d3 clr.w d6 move.b var_6(a6),d6 move.w unk_FFFF96F6(d6.w*2),d0 ext.l d0 add.l d3,d0 move.b var_6(a6),d6 add.b d6,d6 subq.b #1,d6 move.b d6,var_5(a6) move.b var_6(a6),d7 addq.b #1,d7 bra.s loc_6FF3C ; --------------------------------------------------------------------------- loc_6FEFA: ; CODE XREF: sub_6F29A+CA4j move.l d7,d3 addq.b #1,d3 andi.w #$FF,d3 move.w unk_FFFF96F6(d3.w*2),d3 move.l d3,d6 ext.l d6 clr.l d4 move.b d7,d4 move.w unk_FFFF96F6(d4.w*2),d3 ext.l d3 add.l d6,d3 cmp.l d0,d3 ble.s loc_6FF2A move.l d0,d1 move.b d2,var_1(a6) move.l d3,d0 move.b d7,d2 bra.s loc_6FF34 ; --------------------------------------------------------------------------- loc_6FF2A: ; CODE XREF: sub_6F29A+C82j cmp.l d1,d3 ble.s loc_6FF34 move.l d3,d1 move.b d7,var_1(a6) loc_6FF34: ; CODE XREF: sub_6F29A+C8Ej ; sub_6F29A+C92j addq.b #1,d7 bcs.s loc_6FF40 move.b var_5(a6),d6 loc_6FF3C: ; CODE XREF: sub_6F29A+C5Ej cmp.b d7,d6 bcc.s loc_6FEFA loc_6FF40: ; CODE XREF: sub_6F29A+C20j ; sub_6F29A+C28j ... move.b var_6(a6),d6 sub.b d6,d2 move.b d2,(byte_FFFFA9D0).w cmpi.l #$FFFF8000,d1 blt.s loc_6FF60 cmpi.l #$7FFF,d1 ble.s loc_6FF64 move.w #$7FFF,d1 bra.s loc_6FF64 ; --------------------------------------------------------------------------- loc_6FF60: ; CODE XREF: sub_6F29A+CB6j move.w #$8000,d1 loc_6FF64: ; CODE XREF: sub_6F29A+CBEj ; sub_6F29A+CC4j move.w d1,(word_FFFFA9D2).w move.b var_1(a6),d4 sub.b d6,d4 move.b d4,(byte_FFFFA9D1).w cmp.b d4,d2 bcc.s loc_6FF7A move.l d2,d3 bra.s loc_6FF7E ; --------------------------------------------------------------------------- loc_6FF7A: ; CODE XREF: sub_6F29A+CDAj move.l d4,d3 move.l d2,d4 loc_6FF7E: ; CODE XREF: sub_6F29A+CDEj move.l d6,d2 lsr.b #1,d2 sub.b d3,d4 cmp.b d2,d4 bne.s loc_6FFC8 cmp.w (word_FFFFA9A8).w,d1 blt.s loc_6FFC8 tst.b (DG_MISFIRE_KE_MISF_CYLINDER_MODE_EQUATION).l bne.s loc_6FFA2 andi.w #$FF,d3 addq.b #1,-$5638(d3.w) bra.s loc_6FFC8 ; --------------------------------------------------------------------------- loc_6FFA2: ; CODE XREF: sub_6F29A+CFAj tst.b d3 bne.s loc_6FFB6 move.l d6,d2 lsr.b #1,d2 andi.w #$FF,d2 addq.b #1,-$5639(d2.w) bra.s loc_6FFC8 ; --------------------------------------------------------------------------- loc_6FFB6: ; CODE XREF: sub_6F29A+D0Aj andi.w #$FF,d3 addq.b #1,-$5639(d3.w) bra.s loc_6FFC8 ; --------------------------------------------------------------------------- loc_6FFC2: ; CODE XREF: sub_6F29A+B88j ; sub_6F29A+BBEj bclr #4,(byte_FFFFA9AA).w loc_6FFC8: ; CODE XREF: sub_6F29A+CECj ; sub_6F29A+CF2j ... btst #2,(byte_FFFFA9AB).w sne d3 neg.b d3 beq.s loc_70040 move.b var_6(a6),d2 subq.b #1,d2 move.b (byte_FFFFA9D4).w,d3 cmp.b d2,d3 bne.s loc_70008 move.b var_6(a6),d2 add.b d3,d2 andi.w #$FF,d2 move.w unk_FFFF9736(d2.w*2),d4 move.b var_6(a6),d2 add.b d2,d2 andi.w #$FF,d2 loc_6FFFC: ; DATA XREF: OS4:000884EAo move.w unk_FFFF9736(d2.w*2),d5 cmp.w d5,d4 bge.s loc_70008 loc_70006: ; DATA XREF: Calibration:00013126o ; Calibration:0001C73Eo ... clr.b d3 loc_70008: ; CODE XREF: sub_6F29A+D46j ; sub_6F29A+D6Aj cmp.b (PROTECTED_KE_MISF_REV_MODE_CYLINDER_OFFSET).l,d3 ; Compensates for revolution mode phase delay to find proper cylinder which misfired. ; Unitless bcc.s loc_70028 add.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d3 ; Number of cylinders for this engine application. ; SHORTCARD bcs.s loc_70022 sub.b (PROTECTED_KE_MISF_REV_MODE_CYLINDER_OFFSET).l,d3 ; Compensates for revolution mode phase delay to find proper cylinder which misfired. ; Unitless bcs.s loc_70030 bra.s loc_70032 ; --------------------------------------------------------------------------- loc_70022: ; CODE XREF: sub_6F29A+D7Cj move.b #$FF,d3 bra.s loc_70032 ; --------------------------------------------------------------------------- loc_70028: ; CODE XREF: sub_6F29A+D74j sub.b (PROTECTED_KE_MISF_REV_MODE_CYLINDER_OFFSET).l,d3 ; Compensates for revolution mode phase delay to find proper cylinder which misfired. ; Unitless bcc.s loc_70032 loc_70030: ; CODE XREF: sub_6F29A+D84j clr.b d3 loc_70032: ; CODE XREF: sub_6F29A+D86j ; sub_6F29A+D8Cj ... clr.l d4 move.b d3,d4 addq.b #2,-$5640(d4.w) move.b d3,(byte_FFFFA9CE).w loc_70040: ; CODE XREF: sub_6F29A+A3Ej ; sub_6F29A+AA4j ... btst #1,(byte_FFFFA9AA).w beq.w loc_700D2 move.b var_6(a6),d4 lsr.b #1,d4 move.l d4,d1 subq.b #1,d1 clr.b d0 tst.b d1 bra.s loc_700D0 ; --------------------------------------------------------------------------- loc_7005A: ; CODE XREF: sub_6F29A:loc_700D0j clr.l d3 move.b d0,d3 move.b -$5638(d3.w),d4 cmp.b (PROTECTED_KE_MISF_OPP_CYLINDER).l,d4 ; Minimum number of misfires necessary to add in the number of misfires detected in opposing cylinder mode. ; Unitless bcs.s loc_700CA movea.l d3,a2 clr.l d4 move.b d0,d4 clr.l d2 move.b d0,d2 move.b -$5640(d2.w),d3 add.b -$5638(d4.w),d3 bcc.s loc_70088 move.b #$FF,d3 loc_70088: ; CODE XREF: sub_6F29A+DE8j move.b d3,$1E+var_565E(a2.w) move.b var_6(a6),d4 lsr.b #1,d4 move.l d0,d5 add.b d4,d5 andi.w #$FF,d5 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d3 ; Number of cylinders for this engine application. ; SHORTCARD lsr.b #1,d3 add.b d0,d3 andi.w #$FF,d3 move.b -$5640(d3.w),d4 clr.l d2 move.b d0,d2 add.b -$5638(d2.w),d4 bcs.s loc_700C0 move.b d4,d3 bra.s loc_700C4 ; --------------------------------------------------------------------------- loc_700C0: ; CODE XREF: sub_6F29A+E20j move.b #$FF,d3 loc_700C4: ; CODE XREF: sub_6F29A+E24j move.b d3,$1E+var_565E(d5.w) loc_700CA: ; CODE XREF: sub_6F29A+DD0j addq.b #1,d0 bcs.s loc_700D2 cmp.b d0,d1 loc_700D0: ; CODE XREF: sub_6F29A+DBEj bcc.s loc_7005A loc_700D2: ; CODE XREF: sub_6F29A+DACj ; sub_6F29A+E32j btst #2,(byte_FFFFA9AB).w beq.s loc_70118 btst #1,(byte_FFFFA9AB).w beq.s loc_70106 clr.w d3 move.b (byte_FFFFA9CE).w,d3 clr.w d4 move.b (byte_FFFFA9CF).w,d4 move.b DI_MISFIRE_KV_MISF_ENGINE_BLOCK_CYLINDER_ID(d4.w),d4 ; Identifies the actual engine block cylinder from the misfire diagnostic cylinder counter. ; Unitless asl.b #4,d4 add.b DI_MISFIRE_KV_MISF_ENGINE_BLOCK_CYLINDER_ID(d3.w),d4 ; Identifies the actual engine block cylinder from the misfire diagnostic cylinder counter. ; Unitless move.b d4,(byte_FFFFA9B9).w bra.s loc_7011C ; --------------------------------------------------------------------------- loc_70106: ; CODE XREF: sub_6F29A+E46j clr.w d3 move.b (byte_FFFFA9CE).w,d3 move.b DI_MISFIRE_KV_MISF_ENGINE_BLOCK_CYLINDER_ID(d3.w),(byte_FFFFA9B9).w ; Identifies the actual engine block cylinder from the misfire diagnostic cylinder counter. ; Unitless bra.s loc_7011C ; --------------------------------------------------------------------------- loc_70118: ; CODE XREF: sub_6F29A+E3Ej clr.b (byte_FFFFA9B9).w loc_7011C: ; CODE XREF: sub_6F29A+920j ; sub_6F29A+E6Aj ... bclr #5,(byte_FFFFA9AA).w btst #1,(byte_FFFFA9AA).w beq.s loc_70130 bset #5,(byte_FFFFA9AA).w loc_70130: ; CODE XREF: sub_6F29A+5AAj ; sub_6F29A+E8Ej movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_6F29A ; =============== S U B R O U T I N E ======================================= sub_70138: ; CODE XREF: sub_6EEC8+2Ep cmpi.b #8,d0 bhi.w loc_701DC beq.w loc_701DC cmpi.b #6,d0 beq.s loc_701AA cmpi.b #2,d0 bne.w locret_701EE tst.b (byte_FFFFB54A).w bne.s loc_7019C lea (unk_FFFF8BFA).w,a2 moveq #7,d3 loc_7015E: ; CODE XREF: sub_70138+28j clr.w (a2)+ dbf d3,loc_7015E clr.b (byte_FFFF8BF4).w clr.w (word_FFFF8BF6).w clr.b (byte_FFFF8BF5).w clr.w (word_FFFF8BF8).w clr.w (word_FFFF8C16).w clr.w (word_FFFF8C0A).w clr.w (word_FFFF8C0C).w clr.w (word_FFFF8C0E).w clr.w (word_FFFF8C10).w clr.w (word_FFFF8C12).w move.w (word_FFFFAACC).w,(word_FFFF8C14).w jsr sub_2749A move.b d0,(byte_FFFF8C18).w loc_7019C: ; CODE XREF: sub_70138+1Ej move.b #$10,(byte_FFFFAE69).w bset #6,(byte_FFFFAE60).w bra.s locret_701EE ; --------------------------------------------------------------------------- loc_701AA: ; CODE XREF: sub_70138+10j bclr #7,(byte_FFFFAE60).w andi.b #$CF,(byte_FFFFAE60).w andi.b #$FC,(byte_FFFFAE60).w bclr #5,(byte_FFFFAE61).w bclr #4,(byte_FFFFAE61).w bclr #6,(byte_FFFFAE61).w clr.b (byte_FFFFAE62).w clr.b (byte_FFFFAE65).w clr.b (byte_FFFFAE68).w bra.s locret_701EE ; --------------------------------------------------------------------------- loc_701DC: ; CODE XREF: sub_70138+4j sub_70138+8j bclr #5,(byte_FFFFAE61).w bclr #4,(byte_FFFFAE61).w bclr #6,(byte_FFFFAE61).w locret_701EE: ; CODE XREF: sub_70138+16j ; sub_70138+70j ... rts ; End of function sub_70138 ; =============== S U B R O U T I N E ======================================= sub_701F0: ; CODE XREF: sub_6F206:loc_6F256p lea (unk_FFFF8BFA).w,a2 moveq #7,d3 loc_701F6: ; CODE XREF: sub_701F0+8j clr.w (a2)+ dbf d3,loc_701F6 clr.b (byte_FFFFAE62).w clr.w (word_FFFFAE58).w clr.b (byte_FFFFAE5A).w clr.w (word_FFFFAE6A).w clr.b (byte_FFFFAE5B).w clr.b (byte_FFFF8BF4).w clr.w (word_FFFFAE5C).w clr.w (word_FFFF8BF6).w clr.w (word_FFFFAE6E).w clr.b (byte_FFFFAE63).w clr.b (byte_FFFF8BF5).w clr.w (word_FFFFAE5E).w clr.w (word_FFFF8BF8).w clr.w (word_FFFF8C0A).w clr.w (word_FFFFAE70).w clr.b (byte_FFFFAE78).w clr.w (word_FFFFAE72).w clr.b (byte_FFFFAE76).w clr.w (word_FFFFAE74).w clr.b (byte_FFFFAE77).w clr.b (byte_FFFFAE65).w clr.w (word_FFFF8C0C).w clr.w (word_FFFFAE66).w clr.w (word_FFFF8C0E).w clr.b (byte_FFFFAE68).w clr.w (word_FFFF8C10).w clr.w (word_FFFF8C12).w bclr #7,(byte_FFFFAE60).w bclr #6,(byte_FFFFAE60).w andi.b #$CF,(byte_FFFFAE60).w bclr #3,(byte_FFFFAE60).w bclr #2,(byte_FFFFAE60).w andi.b #$FC,(byte_FFFFAE60).w bclr #7,(byte_FFFFAE61).w bclr #6,(byte_FFFFAE61).w bclr #5,(byte_FFFFAE61).w bclr #4,(byte_FFFFAE61).w rts ; End of function sub_701F0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_702A6: ; CODE XREF: DoLoopF+AAp var_742A = -$742A var_8 = -8 var_6 = -6 var_4 = -4 var_2 = -2 var_1 = -1 link a6,#-8 movem.l d0-d2/d6-a1,-(sp) btst #6,(byte_FFFFA9AA).w beq.s loc_702BC jsr sub_6F206 loc_702BC: ; CODE XREF: sub_702A6+Ej jsr sub_2749A tst.b d0 bne.s loc_702D4 tst.b (byte_FFFF8C18).w bls.s loc_702D4 move.w (DG_MF_REPORTING_KE_MISF_MARSHALLING_ODOMETER).l,(word_FFFF8C16).w ; The distance the vehicle is driven after the assembly plant dynamic vehicle test. ; Kilometers loc_702D4: ; CODE XREF: sub_702A6+1Ej ; sub_702A6+24j jsr sub_2749A move.b d0,(byte_FFFF8C18).w move.w (word_FFFFAACC).w,d4 cmp.w (word_FFFF8C14).w,d4 beq.s loc_702F6 move.w (word_FFFF8C16).w,d3 subq.w #1,d3 bcc.s loc_702F2 clr.w d3 loc_702F2: ; CODE XREF: sub_702A6+48j move.w d3,(word_FFFF8C16).w loc_702F6: ; CODE XREF: sub_702A6+40j move.w d4,(word_FFFF8C14).w tst.w (word_FFFF8C16).w bls.s loc_7030A move.b (DG_MF_REPORTING_KE_MISF_MARSHALLING_FACTOR).l,(byte_FFFFAE69).w ; Multiplier to increase emission misfire level. This must be set to 1.0, unless prior government approval is received. ; Factor bra.s loc_70310 ; --------------------------------------------------------------------------- loc_7030A: ; CODE XREF: sub_702A6+58j move.b #$10,(byte_FFFFAE69).w loc_70310: ; CODE XREF: sub_702A6+62j btst #2,(byte_FFFF9A16).w beq.s loc_7031E tst.b (byte_FFFFB473).w beq.s loc_70324 loc_7031E: ; CODE XREF: sub_702A6+70j bclr #6,(byte_FFFFAE60).w loc_70324: ; CODE XREF: sub_702A6+76j tst.b (byte_FFFFA93A).w beq.s loc_70340 movea.w (word_FFFFAE6C).w,a2 addq.w #1,a2 cmpa.w #$258,a2 bls.s loc_7033A movea.w #$258,a2 loc_7033A: ; CODE XREF: sub_702A6+8Ej move.w a2,(word_FFFFAE6C).w bra.s loc_70344 ; --------------------------------------------------------------------------- loc_70340: ; CODE XREF: sub_702A6+82j clr.w (word_FFFFAE6C).w loc_70344: ; CODE XREF: sub_702A6+98j move.w (word_FFFFAE6C).w,d3 cmp.w (DG_MF_REPORTING_KE_MISF_DFCO_TIME_STOP_MIL_FLASH).l,d3 ; Amount of time engine is in decel fuel cutoff before the Malfunction Indicator Light is forced to stop flashing. ; Seconds bcc.w loc_703D2 move.w (word_FFFFAEBC).w,d3 cmp.w (DG_MF_REPORTING_KE_MISF_FLASH_MIL_VEHICLE_SPEED).l,d3 ; Forces the Malfunction Indicator Light to stop flashing at lower vehicle speeds. ; MPH bhi.s loc_703D6 move.w (word_FFFFA0E2).w,d3 cmp.w (DG_MF_REPORTING_KE_MISF_FLASH_MIL_ENGINE_LOAD).l,d3 ; Forces the Malfunction Indicator Light to stop flashing at lower engine loads. ; Percent bhi.s loc_703D6 btst #1,(byte_FFFF8998).w bne.s loc_703D6 btst #1,(byte_FFFF899A).w bne.s loc_703D6 btst #1,(byte_FFFF88C6).w bne.s loc_703D6 btst #1,(byte_FFFF88C8).w bne.s loc_703D6 btst #1,(byte_FFFF88CA).w bne.s loc_703D6 btst #1,(byte_FFFF88CC).w bne.s loc_703D6 btst #1,(byte_FFFF88CE).w bne.s loc_703D6 btst #1,(byte_FFFF88D0).w bne.s loc_703D6 btst #1,(byte_FFFF88DA).w bne.s loc_703D6 btst #1,(byte_FFFF88DC).w bne.s loc_703D6 btst #1,(byte_FFFF88D4).w bne.s loc_703D6 btst #1,(byte_FFFF88D6).w bne.s loc_703D6 btst #7,(byte_FFFF893A).w beq.s loc_703D6 loc_703D2: ; CODE XREF: sub_702A6+A8j clr.b d3 bra.s loc_703D8 ; --------------------------------------------------------------------------- loc_703D6: ; CODE XREF: sub_702A6+B6j ; sub_702A6+C2j ... moveq #1,d3 loc_703D8: ; CODE XREF: sub_702A6+12Ej btst #5,(byte_FFFFAE61).w bne.s loc_703F4 btst #4,(byte_FFFFAE61).w beq.s loc_70400 move.w (word_FFFFAE66).w,d7 cmp.w (DG_MF_REPORTING_KE_MISF_FLASH_MIL_LATCH).l,d7 bls.s loc_70400 loc_703F4: ; CODE XREF: sub_702A6+138j tst.b d3 beq.s loc_70400 bset #6,(byte_FFFFAE61).w bra.s loc_70406 ; --------------------------------------------------------------------------- loc_70400: ; CODE XREF: sub_702A6+140j ; sub_702A6+14Cj ... bclr #6,(byte_FFFFAE61).w loc_70406: ; CODE XREF: sub_702A6+158j btst #5,(byte_FFFFA9AA).w beq.w loc_70CEA move.b (byte_FFFFAE64).w,d3 addq.b #1,d3 bcc.s loc_7041C move.b #$FF,d3 loc_7041C: ; CODE XREF: sub_702A6+170j move.b d3,(byte_FFFFAE64).w move.w (word_FFFFA9AC).w,d7 move.w #$1400,d6 cmp.w d7,d6 bls.s loc_70434 lsr.w #1,d7 move.w d7,var_8(a6) bra.s loc_7043C ; --------------------------------------------------------------------------- loc_70434: ; CODE XREF: sub_702A6+184j movea.w #$9FF,a1 move.w a1,var_8(a6) loc_7043C: ; CODE XREF: sub_702A6+18Cj move.w (word_FFFFA9B0).w,d7 move.w #$A000,d4 cmp.w d7,d4 bls.s loc_70458 andi.l #$FFFF,d7 moveq #$14,d2 divu.w d2,d7 move.w d7,var_6(a6) bra.s loc_70460 ; --------------------------------------------------------------------------- loc_70458: ; CODE XREF: sub_702A6+1A0j movea.w #$7FF,a1 move.w a1,var_6(a6) loc_70460: ; CODE XREF: sub_702A6+1B0j move.w (word_FFFFA9AE).w,d7 cmp.w d7,d6 bls.s loc_70470 lsr.w #1,d7 move.w d7,var_4(a6) bra.s loc_70478 ; --------------------------------------------------------------------------- loc_70470: ; CODE XREF: sub_702A6+1C0j movea.w #$9FF,a1 move.w a1,var_4(a6) loc_70478: ; CODE XREF: sub_702A6+1C8j move.w (word_FFFFA9B2).w,d7 cmp.w d7,d4 bls.s loc_7048C andi.l #$FFFF,d7 divu.w #$14,d7 bra.s loc_70490 ; --------------------------------------------------------------------------- loc_7048C: ; CODE XREF: sub_702A6+1D8j move.w #$7FF,d7 loc_70490: ; CODE XREF: sub_702A6+1E4j tst.b (DG_MF_ENGINE_CYCLE_KE_MISF_ABNORMAL_SPEED_OPTION).l ; Indicates when to analyze the abnormal speed data. ; Unitless bne.s loc_704A2 bclr #7,(byte_FFFFAE60).w clr.b d3 bra.s loc_704F8 ; --------------------------------------------------------------------------- loc_704A2: ; CODE XREF: sub_702A6+1F0j move.b (byte_FFFFA9BD).w,d4 bne.s loc_704AC clr.b d3 bra.s loc_704F2 ; --------------------------------------------------------------------------- loc_704AC: ; CODE XREF: sub_702A6+200j move.b (byte_FFFFA9B8).w,d3 bne.s loc_704BE move.b #$80,d3 loc_704B6: ; CODE XREF: sub_702A6+24Aj bset #7,(byte_FFFFAE60).w bra.s loc_704F8 ; --------------------------------------------------------------------------- loc_704BE: ; CODE XREF: sub_702A6+20Aj cmp.b d3,d4 bls.s loc_704C8 loc_704C2: ; CODE XREF: sub_702A6+236j ; sub_702A6+23Cj ... move.b #$80,d3 bra.s loc_704EA ; --------------------------------------------------------------------------- loc_704C8: ; CODE XREF: sub_702A6+21Aj clr.w d0 move.b (byte_FFFFA9B8).w,d0 clr.l d3 move.b d4,d3 asl.w #7,d3 andi.l #$FFFF,d3 divu.w d0,d3 bvs.s loc_704C2 cmpi.w #$FF,d3 bhi.s loc_704C2 cmpi.b #$80,d3 bhi.s loc_704C2 loc_704EA: ; CODE XREF: sub_702A6+220j cmp.b (DG_MF_REPORTING_KE_MISF_ABNORMAL_SPEED_THRESHOLD).l,d3 ; Minimum ratio necessary to detect abnormal speed. ; Unitless bhi.s loc_704B6 loc_704F2: ; CODE XREF: sub_702A6+204j bclr #7,(byte_FFFFAE60).w loc_704F8: ; CODE XREF: sub_702A6+1FAj ; sub_702A6+216j move.b d3,(byte_FFFFAE62).w move.b (dword_FFFFA9C0).w,d3 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d4 ; Number of cylinders for this engine application. ; SHORTCARD move.b d4,var_2(a6) subq.b #1,d4 move.b d4,var_1(a6) moveq #1,d0 move.l d0,d5 cmp.b d4,d5 bhi.s loc_70530 loc_70518: ; CODE XREF: sub_702A6+288j clr.l d5 move.b d0,d5 add.b -$5640(d5.w),d3 bcc.s loc_70528 move.b #$FF,d3 loc_70528: ; CODE XREF: sub_702A6+27Cj addq.b #1,d0 bcs.s loc_70530 cmp.b d0,d4 bcc.s loc_70518 loc_70530: ; CODE XREF: sub_702A6+270j ; sub_702A6+284j btst #4,(byte_FFFFB176).w bne.s loc_70540 btst #5,(byte_FFFFB176).w beq.s loc_70548 loc_70540: ; CODE XREF: sub_702A6+290j move.b #$FD,(byte_FFFFAE68).w bra.s loc_70564 ; --------------------------------------------------------------------------- loc_70548: ; CODE XREF: sub_702A6+298j btst #7,(byte_FFFFAE60).w beq.s loc_70560 cmp.b (DG_MF_REPORTING_KE_MISF_INDISPUTABLE_MISFIRE).l,d3 bcc.s loc_70560 move.b #$FE,(byte_FFFFAE68).w bra.s loc_70564 ; --------------------------------------------------------------------------- loc_70560: ; CODE XREF: sub_702A6+2A8j ; sub_702A6+2B0j move.b d3,(byte_FFFFAE68).w loc_70564: ; CODE XREF: sub_702A6+2A0j ; sub_702A6+2B8j move.b d3,(byte_FFFFAE65).w move.b (DI_MISFIRE_KE_MISF_EMISSION_MISFIRE).l,d0 ; If misfire counts are above this threshold, catalyst damage misfire is possible. ; Unitless cmpi.b #$10,(byte_FFFFAE64).w bls.s loc_7057A moveq #$10,d3 bra.s loc_70580 ; --------------------------------------------------------------------------- loc_7057A: ; CODE XREF: sub_702A6+2CEj move.b (DG_MF_REPORTING_KE_MISF_INITIAL_EMISSION_FACTOR).l,d3 loc_70580: ; CODE XREF: sub_702A6+2D2j move.b (byte_FFFFAE65).w,d1 clr.l d2 move.b d1,d2 asl.w #8,d2 andi.l #$FFFF,d2 clr.l d6 move.w (word_FFFFB16C).w,d6 andi.w #$FF,d3 andi.w #$FF,d0 mulu.w d3,d0 clr.w d3 move.b (byte_FFFFAE69).w,d3 mulu.w d3,d0 mulu.l d0,d6 bvs.s loc_705C2 divu.l #$64,d6 ; 'd' cmpi.l #$639C00,d6 bhi.s loc_705C2 move.l d6,d3 bra.s loc_705C8 ; --------------------------------------------------------------------------- loc_705C2: ; CODE XREF: sub_702A6+306j ; sub_702A6+316j move.l #$639C00,d3 loc_705C8: ; CODE XREF: sub_702A6+31Aj cmp.l d3,d2 bcs.s loc_705F8 cmp.b (DG_MF_REPORTING_KE_MISF_INDISPUTABLE_MISFIRE).l,d1 bcc.s loc_705DC btst #7,(byte_FFFFAE60).w bne.s loc_705EA loc_705DC: ; CODE XREF: sub_702A6+32Cj andi.b #$FC,(byte_FFFFAE60).w ori.b #1,(byte_FFFFAE60).w bra.s loc_705FE ; --------------------------------------------------------------------------- loc_705EA: ; CODE XREF: sub_702A6+334j andi.b #$FC,(byte_FFFFAE60).w ori.b #2,(byte_FFFFAE60).w bra.s loc_705FE ; --------------------------------------------------------------------------- loc_705F8: ; CODE XREF: sub_702A6+324j andi.b #$FC,(byte_FFFFAE60).w loc_705FE: ; CODE XREF: sub_702A6+342j ; sub_702A6+350j lea (DI_MISFIRE_KA_MISF_CATALYST_MISFIRE).l,a0 ; If misfire counts are above this threshold, catalyst damage misfire is possible. ; Unitless move.w var_4(a6),d0 move.l d7,d1 moveq #$C,d2 jsr sub_8791E move.b d0,d6 lea (DI_MISFIRE_KA_MISF_CATALYST_MISFIRE).l,a0 ; If misfire counts are above this threshold, catalyst damage misfire is possible. ; Unitless move.w var_8(a6),d0 move.w var_6(a6),d1 moveq #$C,d2 jsr sub_8791E move.b d0,d3 cmp.b d6,d3 bls.s loc_70632 move.l d3,d6 loc_70632: ; CODE XREF: sub_702A6+388j move.b (byte_FFFFAE65).w,d3 clr.l d0 move.b d3,d0 asl.w #8,d0 andi.w #$FF,d6 mulu.w (word_FFFFB16A).w,d6 cmpi.l #$FFFF,d6 bhi.s loc_7065A andi.l #$FFFF,d6 asl.l #6,d6 divu.w #$19,d6 bvc.s loc_7065E loc_7065A: ; CODE XREF: sub_702A6+3A4j move.w #$FFFF,d6 loc_7065E: ; CODE XREF: sub_702A6+3B2j cmp.w d6,d0 bcs.s loc_706E0 cmp.b (DG_MF_REPORTING_KE_MISF_INDISPUTABLE_MISFIRE).l,d3 bcc.s loc_70672 btst #7,(byte_FFFFAE60).w bne.s loc_706D2 loc_70672: ; CODE XREF: sub_702A6+3C2j move.w (word_FFFFA9B6).w,d3 cmp.w (DG_MF_REPORTING_KE_MISF_1_CYL_NO_CAT_DAMAGE_RPM).l,d3 ; Identifies the engine speed region where a single cylinder misfire cannot cause catalyst damage. ; RPM bhi.s loc_706C4 move.w (word_FFFFA0E2).w,d3 cmp.w (DG_MF_REPORTING_KE_MISF_1_CYL_NO_CAT_DAMAGE_LOAD).l,d3 ; Identifies the engine load region where a single cylinder misfire cannot cause catalyst damage. ; Percent bhi.s loc_706C4 moveq #1,d4 move.b var_1(a6),d0 clr.b d3 tst.b d0 bra.s loc_706B0 ; --------------------------------------------------------------------------- loc_70696: ; CODE XREF: sub_702A6:loc_706B0j clr.l d1 move.b d3,d1 move.b -$5640(d1.w),d5 cmp.b (DG_MF_REPORTING_KE_MISF_1_CYL_NO_CAT_DAMAGE_LVL).l,d5 ; The amount of misfire that is needed in a single cylinder to indicate a single cylinder misfire is occurring. ; Counts bcs.s loc_706AA clr.b d4 loc_706AA: ; CODE XREF: sub_702A6+400j addq.b #1,d3 bcs.s loc_706B2 cmp.b d3,d0 loc_706B0: ; CODE XREF: sub_702A6+3EEj bcc.s loc_70696 loc_706B2: ; CODE XREF: sub_702A6+406j tst.b d4 beq.s loc_706E0 moveq #$10,d1 andi.b #$CF,(byte_FFFFAE60).w or.b d1,(byte_FFFFAE60).w bra.s loc_706E6 ; --------------------------------------------------------------------------- loc_706C4: ; CODE XREF: sub_702A6+3D6j ; sub_702A6+3E2j moveq #$10,d0 andi.b #$CF,(byte_FFFFAE60).w or.b d0,(byte_FFFFAE60).w bra.s loc_706E6 ; --------------------------------------------------------------------------- loc_706D2: ; CODE XREF: sub_702A6+3CAj andi.b #$CF,(byte_FFFFAE60).w ori.b #$20,(byte_FFFFAE60).w ; ' ' bra.s loc_706E6 ; --------------------------------------------------------------------------- loc_706E0: ; CODE XREF: sub_702A6+3BAj ; sub_702A6+40Ej andi.b #$CF,(byte_FFFFAE60).w loc_706E6: ; CODE XREF: sub_702A6+41Cj ; sub_702A6+42Aj ... btst #6,(byte_FFFFAE60).w beq.w loc_70CDE btst #4,(byte_FFFFB176).w bne.s loc_70700 btst #5,(byte_FFFFB176).w beq.s loc_70742 loc_70700: ; CODE XREF: sub_702A6+450j move.b (byte_FFFFAE60).w,d3 moveq #3,d0 and.b d0,d3 moveq #1,d1 cmp.b d3,d1 beq.s loc_7071A move.b (byte_FFFFAE60).w,d3 lsr.b #4,d3 and.b d0,d3 cmp.b d3,d1 bne.s loc_70742 loc_7071A: ; CODE XREF: sub_702A6+466j move.w (word_FFFFAE70).w,(word_FFFFAE58).w move.b (byte_FFFFAE78).w,(byte_FFFFAE5A).w move.w (word_FFFFAE72).w,(word_FFFFAE6A).w move.b (byte_FFFFAE76).w,(byte_FFFFAE5B).w move.w (word_FFFFAE74).w,(word_FFFFAE6E).w move.b (byte_FFFFAE77).w,(byte_FFFFAE63).w bra.w loc_70CDE ; --------------------------------------------------------------------------- loc_70742: ; CODE XREF: sub_702A6+458j ; sub_702A6+472j move.b (byte_FFFFAE60).w,d3 lsr.b #4,d3 moveq #3,d6 and.b d6,d3 moveq #2,d1 cmp.b d3,d1 beq.s loc_707A0 move.b (byte_FFFFAE5B).w,(byte_FFFFAE76).w move.w (word_FFFFAE6A).w,d4 move.w d4,(word_FFFFAE72).w add.w d4,d4 move.w d4,(word_FFFFAE6A).w moveq #1,d2 cmp.b d3,d2 bne.s loc_70772 addq.w #1,d4 move.w d4,(word_FFFFAE6A).w loc_70772: ; CODE XREF: sub_702A6+4C4j clr.b d0 move.w (word_FFFFAE6A).w,d4 move.b (DG_MF_REPORTING_KE_MISF_CATALYST_ARRAY_SIZE).l,d3 ; Determines the number of elements in the Catalyst_Array to consider. ; Unitless bra.s loc_7078C ; --------------------------------------------------------------------------- loc_70780: ; CODE XREF: sub_702A6+4E8j move.l d4,d5 and.w d2,d5 add.b d0,d5 move.b d5,d0 lsr.w #1,d4 subq.b #1,d3 loc_7078C: ; CODE XREF: sub_702A6+4D8j cmp.b d3,d2 bls.s loc_70780 move.b d0,(byte_FFFFAE5B).w move.b d0,d3 cmp.b (byte_FFFF8BF4).w,d3 bls.s loc_707A0 move.b d3,(byte_FFFF8BF4).w loc_707A0: ; CODE XREF: sub_702A6+4AAj ; sub_702A6+4F4j move.b (byte_FFFFAE60).w,d3 and.b d6,d3 cmp.b d3,d1 beq.s loc_707F8 move.b (byte_FFFFAE63).w,(byte_FFFFAE77).w move.w (word_FFFFAE6E).w,d4 move.w d4,(word_FFFFAE74).w add.w d4,d4 move.w d4,(word_FFFFAE6E).w moveq #1,d2 cmp.b d3,d2 bne.s loc_707CA addq.w #1,d4 move.w d4,(word_FFFFAE6E).w loc_707CA: ; CODE XREF: sub_702A6+51Cj clr.b d0 move.w (word_FFFFAE6E).w,d4 move.b (DG_MF_REPORTING_KE_MISF_EMISSION_ARRAY_SIZE).l,d3 ; Determines the number of elements in the Emission_Array to consider. ; Unitless bra.s loc_707E4 ; --------------------------------------------------------------------------- loc_707D8: ; CODE XREF: sub_702A6+540j move.l d4,d5 and.w d2,d5 add.b d0,d5 move.b d5,d0 lsr.w #1,d4 subq.b #1,d3 loc_707E4: ; CODE XREF: sub_702A6+530j cmp.b d3,d2 bls.s loc_707D8 move.b d0,(byte_FFFFAE63).w move.b d0,d3 cmp.b (byte_FFFF8BF5).w,d3 bls.s loc_707F8 move.b d3,(byte_FFFF8BF5).w loc_707F8: ; CODE XREF: sub_702A6+502j ; sub_702A6+54Cj lsr.w #8,d7 moveq #$C,d2 mulu.w d2,d7 move.w var_4(a6),d4 lsr.w #8,d4 add.b d4,d7 andi.w #$FF,d7 move.b DI_MISFIRE_KA_MISF_REPORT_CATALYST_MISFIRE(d7.w),d0 move.w var_6(a6),d7 lsr.w #8,d7 mulu.w d2,d7 move.w var_8(a6),d4 lsr.w #8,d4 add.b d4,d7 andi.w #$FF,d7 move.b DI_MISFIRE_KA_MISF_REPORT_CATALYST_MISFIRE(d7.w),d3 cmp.b d0,d3 bls.s loc_70834 move.b d3,d0 loc_70834: ; CODE XREF: sub_702A6+58Aj move.w (word_FFFFAE5C).w,d3 bne.s loc_70840 cmp.b (byte_FFFFAE5B).w,d0 bls.s loc_70852 loc_70840: ; CODE XREF: sub_702A6+592j moveq #1,d7 cmp.w d3,d7 bhi.s loc_70874 move.b (byte_FFFFAE60).w,d3 lsr.b #4,d3 and.b d6,d3 cmp.b d3,d7 bne.s loc_70874 loc_70852: ; CODE XREF: sub_702A6+598j move.w (word_FFFFAE5C).w,d3 addq.w #1,d3 bcc.s loc_7085E move.w #$FFFF,d3 loc_7085E: ; CODE XREF: sub_702A6+5B2j move.w d3,(word_FFFFAE5C).w cmp.w (word_FFFF8BF6).w,d3 bls.s loc_7086C move.w d3,(word_FFFF8BF6).w loc_7086C: ; CODE XREF: sub_702A6+5C0j clr.b (byte_FFFFAE5B).w clr.w (word_FFFFAE6A).w loc_70874: ; CODE XREF: sub_702A6+59Ej ; sub_702A6+5AAj move.b (byte_FFFFAE63).w,d3 cmp.b (DI_MISFIRE_KE_MISF_REPORT_EMISSION_MISFIRE).l,d3 bcs.s loc_708AA move.w (word_FFFFAE5E).w,d3 addq.w #1,d3 bcc.s loc_7088C move.w #$FFFF,d3 loc_7088C: ; CODE XREF: sub_702A6+5E0j move.w d3,(word_FFFFAE5E).w cmp.w (word_FFFF8BF8).w,d3 bls.s loc_7089A move.w d3,(word_FFFF8BF8).w loc_7089A: ; CODE XREF: sub_702A6+5EEj bset #7,(byte_FFFFAE61).w clr.b (byte_FFFFAE63).w clr.w (word_FFFFAE6E).w bra.s loc_708B0 ; --------------------------------------------------------------------------- loc_708AA: ; CODE XREF: sub_702A6+5D8j bclr #7,(byte_FFFFAE61).w loc_708B0: ; CODE XREF: sub_702A6+602j tst.w (word_FFFFAE5C).w bne.s loc_708CC tst.w (word_FFFFAE5E).w bne.s loc_708CC cmpi.b #$10,(byte_FFFFAE64).w bls.s loc_708CC bset #3,(byte_FFFFAE60).w bra.s loc_708D2 ; --------------------------------------------------------------------------- loc_708CC: ; CODE XREF: sub_702A6+60Ej ; sub_702A6+614j ... bclr #3,(byte_FFFFAE60).w loc_708D2: ; CODE XREF: sub_702A6+624j move.w (word_FFFFA9B0).w,d4 cmp.w (DG_MF_REPORTING_KE_MISF_FTP_MAX_ENGINE_SPEED).l,d4 bhi.s loc_708EA move.w (word_FFFFA9AC).w,d4 cmp.w (DG_MF_REPORTING_KE_MISF_FTP_MAX_ENGINE_LOAD).l,d4 bls.s loc_708EE loc_708EA: ; CODE XREF: sub_702A6+636j moveq #1,d4 bra.s loc_708F0 ; --------------------------------------------------------------------------- loc_708EE: ; CODE XREF: sub_702A6+642j clr.b d4 loc_708F0: ; CODE XREF: sub_702A6+646j move.b (byte_FFFFAE60).w,d3 lsr.b #4,d3 and.b d6,d3 moveq #1,d7 cmp.b d3,d7 bne.s loc_70944 move.w (word_FFFFAE5C).w,d5 cmp.w d5,d6 bls.s loc_70928 cmp.w d5,d7 bhi.s loc_7090E tst.b d4 bne.s loc_70928 loc_7090E: ; CODE XREF: sub_702A6+662j btst #4,(byte_FFFFAE61).w bne.s loc_70928 cmp.w d5,d7 bhi.s loc_70920 tst.b (byte_FFFF8ACE).w bhi.s loc_70928 loc_70920: ; CODE XREF: sub_702A6+672j btst #7,(byte_FFFF893A).w beq.s loc_70944 loc_70928: ; CODE XREF: sub_702A6+65Ej ; sub_702A6+666j ... bset #5,(byte_FFFFB48B).w moveq #$3D,d0 ; '=' jsr sub_5F110 bset #5,(byte_FFFFAE61).w bset #4,(byte_FFFFAE61).w bra.s loc_709A8 ; --------------------------------------------------------------------------- loc_70944: ; CODE XREF: sub_702A6+656j ; sub_702A6+680j btst #7,(byte_FFFFAE61).w beq.s loc_7098C move.w (word_FFFFAE5E).w,d4 cmp.w d4,d7 bhi.s loc_7095C cmpi.b #$10,(byte_FFFFAE64).w bls.s loc_70976 loc_7095C: ; CODE XREF: sub_702A6+6ACj cmpi.w #4,d4 bcs.s loc_7096A cmpi.b #$10,(byte_FFFFAE64).w bhi.s loc_70976 loc_7096A: ; CODE XREF: sub_702A6+6BAj cmp.w d4,d7 bhi.s loc_7098C btst #7,(byte_FFFF893A).w beq.s loc_7098C loc_70976: ; CODE XREF: sub_702A6+6B4j ; sub_702A6+6C2j bset #5,(byte_FFFFB48B).w moveq #$3D,d0 ; '=' jsr sub_5F110 loc_70984: ; CODE XREF: sub_702A6+700j bclr #5,(byte_FFFFAE61).w bra.s loc_709A8 ; --------------------------------------------------------------------------- loc_7098C: ; CODE XREF: sub_702A6+6A4j ; sub_702A6+6C6j ... tst.b d3 bne.s loc_709A8 move.b (byte_FFFFAE60).w,d0 and.b d6,d0 bne.s loc_709A8 bclr #5,(byte_FFFFB48B).w moveq #$3D,d0 ; '=' jsr sub_5F0BE bra.s loc_70984 ; --------------------------------------------------------------------------- loc_709A8: ; CODE XREF: sub_702A6+69Cj ; sub_702A6+6E4j ... move.b (byte_FFFFAE60).w,d3 and.b d6,d3 cmp.b d3,d1 beq.s loc_709EE move.b (byte_FFFFAE60).w,d3 lsr.b #4,d3 and.b d6,d3 cmp.b d3,d1 beq.s loc_709EE move.b (byte_FFFFAE5A).w,(byte_FFFFAE78).w move.w (word_FFFFAE58).w,d3 move.w d3,(word_FFFFAE70).w add.w d3,d3 move.w d3,(word_FFFFAE58).w move.b (byte_FFFFAE60).w,d0 and.b d6,d0 cmp.b d0,d7 beq.s loc_709E8 move.b (byte_FFFFAE60).w,d0 lsr.b #4,d0 and.b d6,d0 cmp.b d0,d7 bne.s loc_709EE loc_709E8: ; CODE XREF: sub_702A6+734j addq.w #1,d3 move.w d3,(word_FFFFAE58).w loc_709EE: ; CODE XREF: sub_702A6+70Aj ; sub_702A6+716j ... clr.b d0 move.w (word_FFFFAE58).w,d4 moveq #$10,d3 loc_709F6: ; CODE XREF: sub_702A6+75Ej move.l d4,d5 and.w d7,d5 add.b d0,d5 move.b d5,d0 lsr.w #1,d4 subq.b #1,d3 cmp.b d3,d7 bls.s loc_709F6 move.b d0,(byte_FFFFAE5A).w cmp.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d1 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_70A30 move.b (byte_FFFFAE5A).w,d3 cmp.b (DG_MF_REPORTING_KE_MISF_DISABLE_TCC).l,d3 ; Maximum value of misfire counts necessary to disable the TCC(Torque Converter Clutch) ; Unitless bcs.s loc_70A26 bset #2,(byte_FFFFAE60).w bra.s loc_70A30 ; --------------------------------------------------------------------------- loc_70A26: ; CODE XREF: sub_702A6+776j tst.b d3 bne.s loc_70A30 bclr #2,(byte_FFFFAE60).w loc_70A30: ; CODE XREF: sub_702A6+76Aj ; sub_702A6+77Ej ... clr.b d2 move.b (byte_FFFFAE60).w,d3 lsr.b #4,d3 and.b d6,d3 bne.s loc_70A46 move.b (byte_FFFFAE60).w,d0 and.b d6,d0 bne.s loc_70A46 addq.b #1,d2 loc_70A46: ; CODE XREF: sub_702A6+794j ; sub_702A6+79Cj btst #3,(byte_FFFF893A).w bne.w loc_70B1C tst.b d2 beq.w loc_70B48 lea (unk_FFFF8BFA).w,a2 moveq #7,d0 loc_70A5C: ; CODE XREF: sub_702A6+7B8j clr.w (a2)+ dbf d0,loc_70A5C clr.w (word_FFFF8C0C).w clr.w (word_FFFF8C10).w clr.w (word_FFFF8C0E).w clr.w (word_FFFF8C12).w clr.b d0 move.l d0,d3 loc_70A76: ; CODE XREF: sub_702A6+7F6j clr.l d1 move.b d3,d1 clr.w d5 move.b -$5640(d1.w),d5 move.w unk_FFFF8BFA(d1.w*2),d1 not.w d1 cmp.w d5,d1 bcc.s loc_70A90 move.l d7,d0 loc_70A90: ; CODE XREF: sub_702A6+7E6j addq.b #1,d3 tst.b d0 bne.s loc_70A9E move.b var_2(a6),d4 cmp.b d4,d3 bcs.s loc_70A76 loc_70A9E: ; CODE XREF: sub_702A6+7EEj tst.b d0 beq.s loc_70AF6 move.b var_1(a6),d5 clr.b d3 tst.b d5 bra.s loc_70ACE ; --------------------------------------------------------------------------- loc_70AAC: ; CODE XREF: sub_702A6:loc_70ACEj clr.l d0 move.b d3,d0 clr.w d1 move.b -$5640(d0.w),d1 move.w unk_FFFF8BFA(d0.w*2),d4 lsr.w #1,d4 add.w d1,d4 move.w d4,$24+var_742A(d0.w*2) addq.b #1,d3 bcs.s loc_70AD0 cmp.b d3,d5 loc_70ACE: ; CODE XREF: sub_702A6+804j bcc.s loc_70AAC loc_70AD0: ; CODE XREF: sub_702A6+824j move.w (word_FFFF8C0C).w,d3 lsr.w #1,d3 move.w d3,(word_FFFF8C0C).w move.w (word_FFFF8C0E).w,d3 lsr.w #1,d3 move.w d3,(word_FFFF8C0E).w move.w (word_FFFF8C10).w,d3 lsr.w #1,d3 move.w d3,(word_FFFF8C10).w move.w (word_FFFF8C12).w,d3 lsr.w #1,d3 bra.s loc_70B44 ; --------------------------------------------------------------------------- loc_70AF6: ; CODE XREF: sub_702A6+7FAj move.b var_1(a6),d5 clr.b d3 tst.b d5 bra.s loc_70B18 ; --------------------------------------------------------------------------- loc_70B00: ; CODE XREF: sub_702A6:loc_70B18j clr.l d0 move.b d3,d0 clr.w d1 move.b -$5640(d0.w),d1 add.w d1,unk_FFFF8BFA(d0.w*2) addq.b #1,d3 bcs.s loc_70B48 cmp.b d3,d5 loc_70B18: ; CODE XREF: sub_702A6+858j bcc.s loc_70B00 bra.s loc_70B48 ; --------------------------------------------------------------------------- loc_70B1C: ; CODE XREF: sub_702A6+7A6j tst.b d3 bne.s loc_70B30 move.w (word_FFFF8C10).w,d3 addq.w #1,d3 bcc.s loc_70B2C move.w #$FFFF,d3 loc_70B2C: ; CODE XREF: sub_702A6+880j move.w d3,(word_FFFF8C10).w loc_70B30: ; CODE XREF: sub_702A6+878j move.b (byte_FFFFAE60).w,d3 and.b d6,d3 bne.s loc_70B48 move.w (word_FFFF8C12).w,d3 addq.w #1,d3 bcc.s loc_70B44 move.w #$FFFF,d3 loc_70B44: ; CODE XREF: sub_702A6+84Ej ; sub_702A6+898j move.w d3,(word_FFFF8C12).w loc_70B48: ; CODE XREF: sub_702A6+7ACj ; sub_702A6+86Ej ... move.b (byte_FFFFAE60).w,d3 lsr.b #4,d3 and.b d6,d3 moveq #2,d5 cmp.b d3,d5 beq.w loc_70CDE move.b (byte_FFFFAE60).w,d0 and.b d6,d0 cmpi.b #2,d0 beq.w loc_70CDE cmp.b d3,d7 bne.s loc_70B8A move.w (word_FFFF8C0C).w,d3 addq.w #1,d3 bcc.s loc_70B76 move.w #$FFFF,d3 loc_70B76: ; CODE XREF: sub_702A6+8CAj move.w d3,(word_FFFF8C0C).w move.w (word_FFFFAE66).w,d3 addq.w #1,d3 bcc.s loc_70B86 move.w #$FFFF,d3 loc_70B86: ; CODE XREF: sub_702A6+8DAj move.w d3,(word_FFFFAE66).w loc_70B8A: ; CODE XREF: sub_702A6+8C2j move.b (byte_FFFFAE60).w,d3 and.b d6,d3 cmp.b d3,d7 bne.s loc_70BA4 move.w (word_FFFF8C0E).w,d3 addq.w #1,d3 bcc.s loc_70BA0 move.w #$FFFF,d3 loc_70BA0: ; CODE XREF: sub_702A6+8F4j move.w d3,(word_FFFF8C0E).w loc_70BA4: ; CODE XREF: sub_702A6+8ECj tst.b d2 bne.w loc_70CDE clr.b d0 move.l d0,d3 loc_70BAE: ; CODE XREF: sub_702A6+92Ej clr.l d1 move.b d3,d1 clr.w d2 move.b -$5640(d1.w),d2 move.w unk_FFFF8BFA(d1.w*2),d1 not.w d1 cmp.w d2,d1 bcc.s loc_70BC8 move.l d7,d0 loc_70BC8: ; CODE XREF: sub_702A6+91Ej addq.b #1,d3 tst.b d0 bne.s loc_70BD6 move.b var_2(a6),d2 cmp.b d2,d3 bcs.s loc_70BAE loc_70BD6: ; CODE XREF: sub_702A6+926j tst.b d0 beq.s loc_70C32 move.b var_1(a6),d2 clr.b d3 tst.b d2 bra.s loc_70C06 ; --------------------------------------------------------------------------- loc_70BE4: ; CODE XREF: sub_702A6:loc_70C06j clr.l d0 move.b d3,d0 clr.w d1 move.b -$5640(d0.w),d1 move.w unk_FFFF8BFA(d0.w*2),d4 lsr.w #1,d4 add.w d1,d4 move.w d4,$24+var_742A(d0.w*2) addq.b #1,d3 bcs.s loc_70C08 cmp.b d3,d2 loc_70C06: ; CODE XREF: sub_702A6+93Cj bcc.s loc_70BE4 loc_70C08: ; CODE XREF: sub_702A6+95Cj move.w (word_FFFF8C0C).w,d0 lsr.w #1,d0 move.w d0,(word_FFFF8C0C).w move.w (word_FFFF8C0E).w,d0 lsr.w #1,d0 move.w d0,(word_FFFF8C0E).w move.w (word_FFFF8C10).w,d0 lsr.w #1,d0 move.w d0,(word_FFFF8C10).w move.w (word_FFFF8C12).w,d0 lsr.w #1,d0 move.w d0,(word_FFFF8C12).w bra.s loc_70C56 ; --------------------------------------------------------------------------- loc_70C32: ; CODE XREF: sub_702A6+932j move.b var_1(a6),d2 clr.b d3 tst.b d2 bra.s loc_70C54 ; --------------------------------------------------------------------------- loc_70C3C: ; CODE XREF: sub_702A6:loc_70C54j clr.l d0 move.b d3,d0 clr.w d1 move.b -$5640(d0.w),d1 add.w d1,unk_FFFF8BFA(d0.w*2) addq.b #1,d3 bcs.s loc_70C56 cmp.b d3,d2 loc_70C54: ; CODE XREF: sub_702A6+994j bcc.s loc_70C3C loc_70C56: ; CODE XREF: sub_702A6+98Aj ; sub_702A6+9AAj clr.l d0 move.b var_1(a6),d7 move.l d0,d3 tst.b d7 bra.s loc_70C7C ; --------------------------------------------------------------------------- loc_70C62: ; CODE XREF: sub_702A6:loc_70C7Cj clr.l d2 move.b d3,d2 move.w unk_FFFF8BFA(d2.w*2),d2 andi.l #$FFFF,d2 add.l d0,d2 move.l d2,d0 addq.b #1,d3 bcs.s loc_70C7E cmp.b d3,d7 loc_70C7C: ; CODE XREF: sub_702A6+9BAj bcc.s loc_70C62 loc_70C7E: ; CODE XREF: sub_702A6+9D2j move.w #$300,d1 tst.l d0 bls.s loc_70CDA move.b var_1(a6),d2 clr.b d3 tst.b d2 bra.s loc_70CD8 ; --------------------------------------------------------------------------- loc_70C90: ; CODE XREF: sub_702A6:loc_70CD8j clr.l d7 move.b d3,d7 clr.l d4 move.w unk_FFFF8BFA(d7.w*2),d4 asl.l #7,d4 divu.l d0,d4 bvs.s loc_70CB2 cmpi.l #$FF,d4 bhi.s loc_70CB2 cmpi.b #$80,d4 bls.s loc_70CB6 loc_70CB2: ; CODE XREF: sub_702A6+9FCj ; sub_702A6+A04j move.b #$80,d4 loc_70CB6: ; CODE XREF: sub_702A6+A0Aj cmp.b (DG_MF_REPORTING_KE_MISF_DETERMINE_MISFIRE_P_CODE).l,d4 ; Maximum value necessary to detect which cylinder is misfiring. ; Unitless bls.s loc_70CD2 clr.l d7 move.b d3,d7 move.b DI_MISFIRE_KV_MISF_ENGINE_BLOCK_CYLINDER_ID(d7.w),d7 ; Identifies the actual engine block cylinder from the misfire diagnostic cylinder counter. ; Unitless andi.w #$FF,d7 add.w d1,d7 move.w d7,d1 loc_70CD2: ; CODE XREF: sub_702A6+A16j addq.b #1,d3 bcs.s loc_70CDA cmp.b d3,d2 loc_70CD8: ; CODE XREF: sub_702A6+9E8j bcc.s loc_70C90 loc_70CDA: ; CODE XREF: sub_702A6+9DEj ; sub_702A6+A2Ej move.w d1,(word_FFFF8C0A).w loc_70CDE: ; CODE XREF: sub_702A6+446j ; sub_702A6+498j ... bclr #4,(byte_FFFFB176).w jsr sub_6F260 loc_70CEA: ; CODE XREF: sub_702A6+166j movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_702A6 ; =============== S U B R O U T I N E ======================================= sub_70CF2: ; CODE XREF: OS1:0002916Ap var_74CA = -$74CA var_74C6 = -$74C6 var_74B8 = -$74B8 var_686C = -$686C var_6808 = -$6808 var_67D8 = -$67D8 andi.w #$FF,d0 cmpi.w #6,d0 bhi.w locret_70ECC movea.l off_8A638(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_70D08: ; DATA XREF: OS4:0008A640o tst.b (4294948170).w bne.s loc_70D76 clr.l (dword_FFFF8AF8).w clr.l (dword_FFFF8B40).w clr.l (dword_FFFF8AFC).w clr.l (dword_FFFF8B00).w clr.w (word_FFFF8B4E).w clr.w (word_FFFF8B50).w clr.w (word_FFFF8B48).w clr.l (dword_FFFF8B44).w clr.l (dword_FFFF8B24).w clr.l (dword_FFFF8B30).w clr.l (dword_FFFF8B34).w clr.l (dword_FFFF8AEC).w clr.l (dword_FFFF8AE8).w clr.l (dword_FFFF8AF4).w clr.l (dword_FFFF8AF0).w clr.l (dword_FFFF8B08).w clr.l (dword_FFFF8B04).w clr.l (dword_FFFF8B10).w clr.l (dword_FFFF8B0C).w clr.l (dword_FFFF8B18).w clr.l (dword_FFFF8B14).w clr.l (dword_FFFF8B20).w clr.l (dword_FFFF8B1C).w clr.l (dword_FFFF8B2C).w clr.l (dword_FFFF8B28).w clr.l (dword_FFFF8B52).w loc_70D76: ; CODE XREF: sub_70CF2+1Aj moveq #1,d0 loc_70D78: ; CODE XREF: sub_70CF2+DCj clr.l d3 move.b d0,d3 movea.l d3,a3 clr.w d4 move.b byte_16E9D(d3.w),d4 move.w dword_FFFF9C44+2(d4.w*2),var_686C(a3.w*2) clr.w d4 move.b byte_16E9D(d3.w),d4 move.w dword_FFFF9C44+2(d4.w*2),var_6808(a3.w*2) movea.w #$8000,a2 move.w a2,var_67D8(d3.w*2) tst.b (byte_FFFFB54A).w bne.s loc_70DC8 move.w a2,var_74C6(d3.w*2) move.w a2,var_74B8(d3.w*2) move.w a2,var_74CA(d3.w*2) loc_70DC8: ; CODE XREF: sub_70CF2+C2j addq.b #1,d0 cmpi.b #2,d0 bls.s loc_70D78 bra.w locret_70ECC ; --------------------------------------------------------------------------- loc_70DD4: ; DATA XREF: OS4:0008A644o ; OS4:0008A650o clr.l (dword_FFFF979E).w clr.l (dword_FFFF979A).w clr.l (dword_FFFF97A6).w clr.l (dword_FFFF97A2).w clr.l (dword_FFFF97B6).w clr.l (dword_FFFF97B2).w clr.l (dword_FFFF97BA).w clr.l (dword_FFFF97C2).w clr.l (dword_FFFF97BE).w clr.l (dword_FFFF97D2).w clr.l (dword_FFFF97CE).w clr.l (dword_FFFF97DE).w clr.l (dword_FFFF97DA).w clr.l (dword_FFFF97E6).w clr.l (dword_FFFF97E2).w clr.l (dword_FFFF97EE).w clr.l (dword_FFFF97EA).w clr.l (dword_FFFF97F6).w clr.l (dword_FFFF97F2).w clr.l (dword_FFFF9806).w clr.l (dword_FFFF9802).w clr.l (dword_FFFF980A).w clr.l (dword_FFFF9812).w clr.l (dword_FFFF980E).w clr.l (dword_FFFF9822).w clr.l (dword_FFFF981E).w clr.l (dword_FFFF9826).w clr.l (dword_FFFF978C).w clr.l (dword_FFFF97C6).w clr.l (dword_FFFF97CA).w clr.w (word_FFFF97FE).w clr.l (dword_FFFF9790).w clr.l (dword_FFFF9816).w clr.l (dword_FFFF981A).w clr.w (word_FFFF982E).w clr.w (word_FFFF97D8).w clr.w (word_FFFF97D6).w clr.l (dword_FFFF9830).w clr.l (dword_FFFF97AA).w clr.l (dword_FFFF97AE).w moveq #1,d0 loc_70E76: ; CODE XREF: sub_70CF2+1C2j clr.l d3 move.b d0,d3 movea.l d3,a3 clr.w d4 move.b byte_16E9D(d3.w),d4 move.w dword_FFFF9C44+2(d4.w*2),var_686C(a3.w*2) clr.w d4 move.b byte_16E9D(d3.w),d4 movea.w dword_FFFF9C44+2(d4.w*2),a2 move.w a2,var_6808(a3.w*2) move.w #$8000,var_67D8(d3.w*2) addq.b #1,d0 cmpi.b #2,d0 bls.s loc_70E76 clr.b (byte_FFFF9794).w clr.w (word_FFFF9800).w bra.s locret_70ECC ; --------------------------------------------------------------------------- loc_70EC0: ; DATA XREF: OS4:off_8A638o clr.w (word_FFFF97D6).w clr.l (dword_FFFF97AA).w clr.l (dword_FFFF97AE).w locret_70ECC: ; CODE XREF: sub_70CF2+8j ; sub_70CF2+DEj ... rts ; End of function sub_70CF2 ; =============== S U B R O U T I N E ======================================= sub_70ECE: ; CODE XREF: sub_75370+23Ap var_74CA = -$74CA var_74C6 = -$74C6 var_74B8 = -$74B8 var_67D8 = -$67D8 clr.l (dword_FFFF979E).w clr.l (dword_FFFF979A).w clr.l (dword_FFFF97A6).w clr.l (dword_FFFF97A2).w clr.l (dword_FFFF97B6).w clr.l (dword_FFFF97B2).w clr.l (dword_FFFF97BA).w clr.l (dword_FFFF97C2).w clr.l (dword_FFFF97BE).w clr.l (dword_FFFF97D2).w clr.l (dword_FFFF97CE).w clr.l (dword_FFFF8AEC).w clr.l (dword_FFFF8AE8).w clr.l (dword_FFFF8AF4).w clr.l (dword_FFFF8AF0).w clr.l (dword_FFFF8B08).w clr.l (dword_FFFF8B04).w clr.l (dword_FFFF8B10).w clr.l (dword_FFFF8B0C).w clr.l (dword_FFFF8B18).w clr.l (dword_FFFF8B14).w clr.l (dword_FFFF8B20).w clr.l (dword_FFFF8B1C).w clr.l (dword_FFFF8B2C).w clr.l (dword_FFFF8B28).w clr.l (dword_FFFF8B52).w clr.l (dword_FFFF97DE).w clr.l (dword_FFFF97DA).w clr.l (dword_FFFF97E6).w clr.l (dword_FFFF97E2).w clr.l (dword_FFFF97EE).w clr.l (dword_FFFF97EA).w clr.l (dword_FFFF97F6).w clr.l (dword_FFFF97F2).w clr.l (dword_FFFF9806).w clr.l (dword_FFFF9802).w clr.l (dword_FFFF980A).w clr.l (dword_FFFF9812).w clr.l (dword_FFFF980E).w clr.l (dword_FFFF9822).w clr.l (dword_FFFF981E).w clr.l (dword_FFFF9826).w clr.l (dword_FFFF978C).w clr.l (dword_FFFF97C6).w clr.l (dword_FFFF8B40).w clr.l (dword_FFFF97CA).w clr.l (dword_FFFF8AF8).w clr.l (dword_FFFF8AFC).w clr.l (dword_FFFF8B00).w clr.w (word_FFFF8B4E).w clr.w (word_FFFF8B50).w clr.w (word_FFFF8B48).w clr.l (dword_FFFF8B24).w clr.l (dword_FFFF8B44).w clr.l (dword_FFFF8B30).w clr.l (dword_FFFF8B34).w clr.w (word_FFFF97D8).w clr.w (word_FFFF97FE).w clr.l (dword_FFFF9790).w clr.l (dword_FFFF9816).w clr.l (dword_FFFF981A).w clr.w (word_FFFF982E).w clr.l (dword_FFFF9830).w clr.l (dword_FFFF97AA).w clr.l (dword_FFFF97AE).w clr.w (word_FFFF97D6).w clr.b (byte_FFFF9794).w clr.w (word_FFFF9800).w moveq #1,d3 loc_70FE0: ; CODE XREF: sub_70ECE+138j clr.l d4 move.b d3,d4 movea.w #$8000,a2 move.w a2,var_67D8(d4.w*2) move.w a2,var_74C6(d4.w*2) move.w a2,var_74B8(d4.w*2) move.w a2,var_74CA(d4.w*2) addq.b #1,d3 cmpi.b #2,d3 bls.s loc_70FE0 rts ; End of function sub_70ECE ; =============== S U B R O U T I N E ======================================= sub_7100A: ; CODE XREF: DoLoopC+272p ; sub_755FA+AEp var_686C = -$686C var_6808 = -$6808 var_67D8 = -$67D8 clr.l (dword_FFFF979E).w clr.l (dword_FFFF979A).w clr.l (dword_FFFF97A6).w clr.l (dword_FFFF97A2).w clr.l (dword_FFFF97B6).w clr.l (dword_FFFF97B2).w clr.l (dword_FFFF97BA).w clr.l (dword_FFFF97C2).w clr.l (dword_FFFF97BE).w clr.l (dword_FFFF97D2).w clr.l (dword_FFFF97CE).w clr.l (dword_FFFF8AEC).w clr.l (dword_FFFF8AE8).w clr.l (dword_FFFF8AF4).w clr.l (dword_FFFF8AF0).w clr.l (dword_FFFF8B18).w clr.l (dword_FFFF8B14).w clr.l (dword_FFFF8B20).w clr.l (dword_FFFF8B1C).w clr.l (dword_FFFF8B2C).w clr.l (dword_FFFF8B28).w clr.l (dword_FFFF8B52).w clr.l (dword_FFFF97DE).w clr.l (dword_FFFF97DA).w clr.l (dword_FFFF97E6).w clr.l (dword_FFFF97E2).w clr.l (dword_FFFF97EE).w clr.l (dword_FFFF97EA).w clr.l (dword_FFFF97F6).w clr.l (dword_FFFF97F2).w clr.l (dword_FFFF9806).w clr.l (dword_FFFF9802).w clr.l (dword_FFFF980A).w clr.l (dword_FFFF9812).w clr.l (dword_FFFF980E).w clr.l (dword_FFFF9822).w clr.l (dword_FFFF981E).w clr.l (dword_FFFF9826).w clr.l (dword_FFFF978C).w clr.l (dword_FFFF97C6).w clr.l (dword_FFFF97CA).w clr.w (word_FFFF97D8).w clr.w (word_FFFF97FE).w clr.l (dword_FFFF9790).w clr.l (dword_FFFF9816).w clr.l (dword_FFFF981A).w clr.w (word_FFFF982E).w clr.l (dword_FFFF9830).w clr.l (dword_FFFF97AA).w clr.l (dword_FFFF97AE).w clr.w (word_FFFF97D6).w moveq #1,d5 loc_710D8: ; CODE XREF: sub_7100A+10Cj clr.l d3 move.b d5,d3 movea.l d3,a3 clr.w d4 move.b byte_16E9D(d3.w),d4 move.w dword_FFFF9C44+2(d4.w*2),var_686C(a3.w*2) clr.w d4 move.b byte_16E9D(d3.w),d4 movea.w dword_FFFF9C44+2(d4.w*2),a2 move.w a2,var_6808(a3.w*2) move.w #$8000,var_67D8(d3.w*2) addq.b #1,d5 cmpi.b #2,d5 bls.s loc_710D8 clr.b (byte_FFFF9794).w clr.w (word_FFFF9800).w rts ; End of function sub_7100A ; =============== S U B R O U T I N E ======================================= sub_71122: ; CODE XREF: DoLoopB+206p var_688E = -$688E var_688A = -$688A var_6884 = -$6884 var_6870 = -$6870 var_686C = -$686C var_6850 = -$6850 var_6843 = -$6843 var_6841 = -$6841 var_6820 = -$6820 var_6800 = -$6800 var_67EA = -$67EA movem.l d0-d2/d6-a0,-(sp) btst #7,(byte_FFFF9C3A).w beq.s loc_7114C move.w (word_FFFF9800).w,d3 addq.w #1,d3 bcc.s loc_7113A move.w #$FFFF,d3 loc_7113A: ; CODE XREF: sub_71122+12j move.w d3,(word_FFFF9800).w cmp.w (DG_EOS_KE_EOSD_RESP_SAMPLE_TIME_LIM).l,d3 ; Amount of time to collect response data. ; Milliseconds bls.s loc_7114C bset #7,(byte_FFFF9794).w loc_7114C: ; CODE XREF: sub_71122+Aj ; sub_71122+22j move.b (DI_EOS_KE_EOSD_NUMBER_OF_RESP_SENSORS).l,d6 move.l d6,d2 moveq #1,d3 move.l d3,d7 cmp.b d2,d7 bhi.s loc_7118E loc_7115C: ; CODE XREF: sub_71122+6Aj clr.l d7 move.b d3,d7 clr.w d0 move.b byte_16E9D(d7.w),d0 movea.w dword_FFFF9C44+2(d0.w*2),a2 clr.l d0 move.b d3,d0 movea.l d0,a0 movea.w byte_FFFF9794(d0.w*2),a3 move.w a3,$18+var_6820(a0.w*2) move.w a2,$18+var_6884(d0.w*2) addq.b #1,d3 cmp.b d3,d2 bcc.s loc_7115C loc_7118E: ; CODE XREF: sub_71122+38j move.b d6,d2 moveq #1,d1 move.l d1,d7 cmp.b d2,d7 bhi.w loc_71400 loc_7119A: ; CODE XREF: sub_71122+2DAj clr.l d0 move.b d1,d0 move.w byte_FFFF9794(d0.w*2),d3 move.b -$6829(d0.w),d4 moveq #1,d7 cmp.b d4,d7 beq.w loc_713F8 btst #7,(byte_FFFF9794).w beq.s loc_711C2 move.b d7,$18+var_6841(d0.w) bra.s loc_711DE ; --------------------------------------------------------------------------- loc_711C2: ; CODE XREF: sub_71122+96j btst #7,(byte_FFFF9C3A).w bne.s loc_711D2 clr.b -$6829(d0.w) bra.s loc_711DE ; --------------------------------------------------------------------------- loc_711D2: ; CODE XREF: sub_71122+A6j tst.b d4 bne.s loc_711DE move.b #2,$18+var_6841(d0.w) loc_711DE: ; CODE XREF: sub_71122+9Ej ; sub_71122+AEj ... clr.l d4 move.b d1,d4 move.w word_FFFF982E(d4.w*2),d4 addq.w #1,d4 bcc.s loc_711F0 move.w #$FFFF,d4 loc_711F0: ; CODE XREF: sub_71122+C8j move.w d4,$18+var_67EA(d0.w*2) clr.w d4 move.b -$6829(d0.w),d4 movea.l off_89B5E(d4.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_71208: ; DATA XREF: OS4:off_89B5Eo bra.w loc_713F8 ; --------------------------------------------------------------------------- loc_7120C: ; DATA XREF: OS4:00089B66o move.w word_16E94(d0.w*2),d4 cmp.w d4,d3 bhi.s loc_7122E cmp.w dword_FFFF97F6+2(d0.w*2),d4 bcs.s loc_7122E clr.w word_FFFF982E(d0.w*2) move.b #4,$18+var_6841(d0.w) loc_7122E: ; CODE XREF: sub_71122+F4j ; sub_71122+FCj move.w word_16E98(d0.w*2),d4 cmp.w d4,d3 bcs.w loc_713F8 cmp.w dword_FFFF97F6+2(d0.w*2),d4 bhi.w loc_713F8 bra.w loc_71380 ; --------------------------------------------------------------------------- loc_7124A: ; DATA XREF: OS4:00089B6Eo cmp.w 93848(d0.w*2),d3 bcs.s loc_712A4 clr.l d4 move.b d1,d4 move.w dword_FFFF97C6+2(d4.w*2),d3 addq.w #1,d3 bcc.s loc_71266 move.w #$FFFF,d3 loc_71266: ; CODE XREF: sub_71122+13Ej move.w d3,$18+var_6850(d0.w*2) clr.l d4 move.b d1,d4 clr.l d3 move.b d1,d3 move.w unk_FFFF978A(d3.w*2),d3 add.w word_FFFF982E(d4.w*2),d3 bcs.s loc_71288 cmpi.w #$3E80,d3 bls.s loc_7128C loc_71288: ; CODE XREF: sub_71122+15Ej move.w #$3E80,d3 loc_7128C: ; CODE XREF: sub_71122+164j move.w d3,$18+var_688E(d0.w*2) move.b #3,$18+var_6841(d0.w) loc_7129A: ; CODE XREF: sub_71122+18Aj ; sub_71122+1E8j ... clr.w word_FFFF982E(d0.w*2) bra.w loc_713F8 ; --------------------------------------------------------------------------- loc_712A4: ; CODE XREF: sub_71122+130j cmp.w word_16E94(d0.w*2),d3 bls.s loc_7129A move.b #6,$18+var_6841(d0.w) bra.w loc_713F8 ; --------------------------------------------------------------------------- loc_712BA: ; DATA XREF: OS4:00089B6Ao cmp.w word_16E94(d0.w*2),d3 bhi.s loc_7130C clr.l d4 move.b d1,d4 move.w dword_FFFF9816+2(d4.w*2),d3 addq.w #1,d3 bcc.s loc_712D6 move.w #$FFFF,d3 loc_712D6: ; CODE XREF: sub_71122+1AEj move.w d3,$18+var_6800(d0.w*2) clr.l d4 move.b d1,d4 clr.l d3 move.b d1,d3 move.w dword_FFFF978C+2(d3.w*2),d3 add.w word_FFFF982E(d4.w*2),d3 bcs.s loc_712F8 cmpi.w #$3E80,d3 bls.s loc_712FC loc_712F8: ; CODE XREF: sub_71122+1CEj move.w #$3E80,d3 loc_712FC: ; CODE XREF: sub_71122+1D4j move.w d3,$18+var_688A(d0.w*2) move.b #4,$18+var_6841(d0.w) bra.s loc_7129A ; --------------------------------------------------------------------------- loc_7130C: ; CODE XREF: sub_71122+1A0j cmp.w word_16E98(d0.w*2),d3 bcc.s loc_7129A move.b #5,$18+var_6841(d0.w) bra.w loc_713F8 ; --------------------------------------------------------------------------- loc_71322: ; DATA XREF: OS4:00089B76o cmp.w -26632(d0.w*2),d3 bcc.s loc_71336 move.b #2,$18+var_6841(d0.w) bra.w loc_713F8 ; --------------------------------------------------------------------------- loc_71336: ; CODE XREF: sub_71122+206j cmp.w word_16E98(d0.w*2),d3 bcs.w loc_713F8 clr.l d4 move.b d1,d4 move.w dword_FFFF97C6+2(d4.w*2),d3 addq.w #1,d3 bcc.s loc_71354 move.w #$FFFF,d3 loc_71354: ; CODE XREF: sub_71122+22Cj move.w d3,$18+var_6850(d0.w*2) clr.l d4 move.b d1,d4 clr.l d3 move.b d1,d3 move.w unk_FFFF978A(d3.w*2),d3 add.w word_FFFF982E(d4.w*2),d3 bcs.s loc_71376 cmpi.w #$3E80,d3 bls.s loc_7137A loc_71376: ; CODE XREF: sub_71122+24Cj move.w #$3E80,d3 loc_7137A: ; CODE XREF: sub_71122+252j move.w d3,$18+var_688E(d0.w*2) loc_71380: ; CODE XREF: sub_71122+124j clr.w word_FFFF982E(d0.w*2) move.b #3,$18+var_6841(d0.w) bra.s loc_713F8 ; --------------------------------------------------------------------------- loc_71390: ; DATA XREF: OS4:00089B72o cmp.w dword_FFFF97F6+2(d0.w*2),d3 bls.s loc_713A2 move.b #2,$18+var_6841(d0.w) bra.s loc_713F8 ; --------------------------------------------------------------------------- loc_713A2: ; CODE XREF: sub_71122+274j cmp.w word_16E94(d0.w*2),d3 bhi.s loc_713F8 clr.l d4 move.b d1,d4 move.w dword_FFFF9816+2(d4.w*2),d3 addq.w #1,d3 bcc.s loc_713BE move.w #$FFFF,d3 loc_713BE: ; CODE XREF: sub_71122+296j move.w d3,$18+var_6800(d0.w*2) clr.l d4 move.b d1,d4 clr.l d3 move.b d1,d3 move.w dword_FFFF978C+2(d3.w*2),d3 add.w word_FFFF982E(d4.w*2),d3 bcs.s loc_713E0 cmpi.w #$3E80,d3 bls.s loc_713E4 loc_713E0: ; CODE XREF: sub_71122+2B6j move.w #$3E80,d3 loc_713E4: ; CODE XREF: sub_71122+2BCj move.w d3,$18+var_688A(d0.w*2) clr.w word_FFFF982E(d0.w*2) move.b #4,$18+var_6841(d0.w) loc_713F8: ; CODE XREF: sub_71122+8Cj ; sub_71122:loc_71208j ... addq.b #1,d1 cmp.b d1,d2 bcc.w loc_7119A loc_71400: ; CODE XREF: sub_71122+74j move.l d7,d0 cmp.b d6,d7 bhi.w loc_714DA loc_71408: ; CODE XREF: sub_71122+3B4j clr.l d3 move.b d0,d3 move.w byte_FFFF9794(d3.w*2),d4 move.b -$682B(d3.w),d5 cmp.b d5,d7 beq.w loc_714D2 btst #7,(byte_FFFF9794).w beq.s loc_7142E move.b d7,$18+var_6843(d3.w) bra.s loc_7144A ; --------------------------------------------------------------------------- loc_7142E: ; CODE XREF: sub_71122+302j btst #7,(byte_FFFF9C3A).w bne.s loc_7143E clr.b -$682B(d3.w) bra.s loc_7144A ; --------------------------------------------------------------------------- loc_7143E: ; CODE XREF: sub_71122+312j tst.b d5 bne.s loc_7144A move.b #2,$18+var_6843(d3.w) loc_7144A: ; CODE XREF: sub_71122+30Aj ; sub_71122+31Aj ... clr.w d5 move.b -$682B(d3.w),d5 movea.l off_89B7A(d5.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_7145C: ; DATA XREF: OS4:off_89B7Ao bra.s loc_714D2 ; --------------------------------------------------------------------------- loc_7145E: ; DATA XREF: OS4:off_89B82o cmp.w word_16E8C(d3.w*2),d4 bhi.s loc_71470 move.b #4,$18+var_6843(d3.w) loc_71470: ; CODE XREF: sub_71122+344j cmp.w word_16E90(d3.w*2),d4 bcs.s loc_714D2 bra.s loc_7149E ; --------------------------------------------------------------------------- loc_7147C: ; DATA XREF: OS4:00089B8Ao cmp.w word_16E90(d3.w*2),d4 bcs.s loc_714D2 clr.l d1 move.b d0,d1 move.w dword_FFFF97A6+2(d1.w*2),d4 addq.w #1,d4 bcc.s loc_71498 move.w #$FFFF,d4 loc_71498: ; CODE XREF: sub_71122+370j move.w d4,$18+var_6870(d3.w*2) loc_7149E: ; CODE XREF: sub_71122+358j move.b #3,$18+var_6843(d3.w) bra.s loc_714D2 ; --------------------------------------------------------------------------- loc_714A8: ; DATA XREF: OS4:00089B86o cmp.w word_16E8C(d3.w*2),d4 bhi.s loc_714D2 clr.l d1 move.b d0,d1 move.w dword_FFFF97AA+2(d1.w*2),d4 addq.w #1,d4 bcc.s loc_714C4 move.w #$FFFF,d4 loc_714C4: ; CODE XREF: sub_71122+39Cj move.w d4,$18+var_686C(d3.w*2) move.b #4,$18+var_6843(d3.w) loc_714D2: ; CODE XREF: sub_71122+2F8j ; sub_71122:loc_7145Cj ... addq.b #1,d0 cmp.b d0,d6 bcc.w loc_71408 loc_714DA: ; CODE XREF: sub_71122+2E2j movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_71122 ; =============== S U B R O U T I N E ======================================= sub_714E0: ; CODE XREF: DoLoopF+E0p var_7532 = -$7532 var_752A = -$752A var_7516 = -$7516 var_750E = -$750E var_7506 = -$7506 var_74FE = -$74FE var_74F2 = -$74F2 var_6880 = -$6880 var_6878 = -$6878 var_6868 = -$6868 var_685F = -$685F var_685C = -$685C var_684C = -$684C var_6840 = -$6840 var_6838 = -$6838 var_6830 = -$6830 var_6828 = -$6828 var_6818 = -$6818 var_680F = -$680F var_680C = -$680C var_67FC = -$67FC movem.l d0-d2/d6-a0,-(sp) move.b (DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS).l,d6 moveq #1,d2 move.l d2,d7 cmp.b d6,d7 bhi.w loc_716FC loc_714F4: ; CODE XREF: sub_714E0+218j clr.l d1 move.b d2,d1 tst.b -$63AD(d1.w) beq.s loc_71512 clr.w word_FFFF97D8(d1.w*2) clr.w dword_FFFF97DE+2(d1.w*2) clr.w unk_FFFF9C3E(d1.w*2) loc_71512: ; CODE XREF: sub_714E0+1Ej move.w dword_FFFF9C44+2(d1.w*2),d0 btst #5,-$63C5(d1.w) bne.s loc_7152C tst.b -$63B1(d1.w) beq.w loc_716F4 loc_7152C: ; CODE XREF: sub_714E0+40j clr.l d7 move.b d2,d7 move.w dword_FFFF97DE+2(d7.w*2),d3 addq.w #1,d3 bcc.s loc_7153E move.w #$FFFF,d3 loc_7153E: ; CODE XREF: sub_714E0+58j move.w d3,$18+var_6838(d1.w*2) tst.b -$63B1(d1.w) beq.s loc_71572 cmp.w (DG_EOS_KE_EOSD_OPEN_FP_LOW_THRESHOLD).l,d0 bls.s loc_71572 cmp.w (DG_EOS_KE_EOSD_OPEN_FP_HIGH_THRESHOLD).l,d0 bcc.s loc_71572 clr.l d7 move.b d2,d7 move.w word_FFFF97D8(d7.w*2),d3 addq.w #1,d3 bcs.s loc_71594 loc_7156A: ; CODE XREF: sub_714E0+B2j ; sub_714E0+B8j move.w d3,$18+var_6840(d1.w*2) bra.s loc_7159A ; --------------------------------------------------------------------------- loc_71572: ; CODE XREF: sub_714E0+6Aj ; sub_714E0+72j ... cmp.w word_16E56(d1.w*2),d0 bls.s loc_7159A cmp.w word_16E4E(d1.w*2),d0 bcc.s loc_7159A clr.l d7 move.b d2,d7 move.w word_FFFF97D8(d7.w*2),d3 addq.w #1,d3 bcc.s loc_7156A loc_71594: ; CODE XREF: sub_714E0+88j move.w #$FFFF,d3 bra.s loc_7156A ; --------------------------------------------------------------------------- loc_7159A: ; CODE XREF: sub_714E0+90j ; sub_714E0+9Aj ... tst.b -$63B1(d1.w) beq.w loc_71624 clr.l d7 move.b d2,d7 clr.l d4 move.b d2,d4 move.w dword_FFFF97DE+2(d4.w*2),d3 sub.w word_FFFF97D8(d7.w*2),d3 bcc.s loc_715BC clr.w d3 loc_715BC: ; CODE XREF: sub_714E0+D8j cmp.w (DG_EOS_KE_EOSD_OPEN_FAST_PASS_THRESH).l,d3 bcs.w loc_716F4 clr.w d0 move.b byte_16ECB(d1.w),d0 move.w word_89770(d0.w*2),d0 jsr sub_73826 clr.w d0 move.b byte_16ECB(d1.w),d0 move.w word_89770(d0.w*2),d0 jsr sub_5F0BE move.w word_FFFF97D8(d1.w*2),d3 cmp.w dword_FFFF8B10+2(d1.w*2),d3 bls.s loc_7160A move.w d3,$18+var_7506(d1.w*2) loc_7160A: ; CODE XREF: sub_714E0+122j move.w word_FFFF97D8(d1.w*2),$18+var_750E(d1.w*2) move.w word_16E46(d1.w*2),$18+var_7516(d1.w*2) bra.w loc_716F4 ; --------------------------------------------------------------------------- loc_71624: ; CODE XREF: sub_714E0+C0j move.w word_FFFF97D8(d1.w*2),d0 cmp.w word_16E46(d1.w*2),d0 bcs.s loc_71678 move.w unk_FFFF9C3E(d1.w*2),d0 cmp.w word_16E36(d1.w*2),d0 bcs.w loc_716E2 clr.w d0 move.b byte_16ECB(d1.w),d0 move.w word_89770(d0.w*2),d0 jsr sub_73932 clr.w d0 move.b byte_16ECB(d1.w),d0 move.w word_89770(d0.w*2),d0 jsr sub_5F110 bra.s loc_716CC ; --------------------------------------------------------------------------- loc_71678: ; CODE XREF: sub_714E0+152j move.w dword_FFFF97DE+2(d1.w*2),d0 cmp.w word_16E5E(d1.w*2),d0 bcs.s loc_716F4 clr.w d0 move.b byte_16ECB(d1.w),d0 move.w word_89770(d0.w*2),d0 jsr sub_73826 clr.w d0 move.b byte_16ECB(d1.w),d0 move.w word_89770(d0.w*2),d0 jsr sub_5F0BE move.w word_FFFF97D8(d1.w*2),d3 cmp.w dword_FFFF8B10+2(d1.w*2),d3 bls.s loc_716CC move.w d3,$18+var_7506(d1.w*2) loc_716CC: ; CODE XREF: sub_714E0+196j ; sub_714E0+1E4j move.w word_FFFF97D8(d1.w*2),$18+var_750E(d1.w*2) move.w word_16E46(d1.w*2),$18+var_7516(d1.w*2) loc_716E2: ; CODE XREF: sub_714E0+162j clr.w word_FFFF97D8(d1.w*2) clr.w dword_FFFF97DE+2(d1.w*2) clr.w unk_FFFF9C3E(d1.w*2) loc_716F4: ; CODE XREF: sub_714E0+48j ; sub_714E0+E2j ... addq.b #1,d2 cmp.b d2,d6 bcc.w loc_714F4 loc_716FC: ; CODE XREF: sub_714E0+10j move.b (DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS).l,d6 moveq #1,d2 move.l d2,d7 cmp.b d6,d7 bhi.w loc_718FC loc_7170C: ; CODE XREF: sub_714E0+418j clr.l d1 move.b d2,d1 move.w dword_FFFF9C44+2(d1.w*2),d0 btst #6,-$63C5(d1.w) beq.w loc_718F4 clr.l d7 move.b d2,d7 move.w dword_FFFF97CA+2(d7.w*2),d3 addq.w #1,d3 bcc.s loc_71734 move.w #$FFFF,d3 loc_71734: ; CODE XREF: sub_714E0+24Ej move.w d3,$18+var_684C(d1.w*2) cmp.w word_16E2E(d1.w*2),d0 bcc.s loc_7177E clr.l d7 move.b d2,d7 move.w dword_FFFF97AE+2(d7.w*2),d3 addq.w #1,d3 bcc.s loc_71756 move.w #$FFFF,d3 loc_71756: ; CODE XREF: sub_714E0+270j move.w d3,$18+var_6868(d1.w*2) cmp.w word_16E1E(d1.w*2),d0 bcc.s loc_7177E clr.l d7 move.b d2,d7 move.w dword_FFFF97BA+2(d7.w*2),d3 addq.w #1,d3 bcc.s loc_71778 move.w #$FFFF,d3 loc_71778: ; CODE XREF: sub_714E0+292j move.w d3,$18+var_685C(d1.w*2) loc_7177E: ; CODE XREF: sub_714E0+262j ; sub_714E0+284j move.w dword_FFFF97BA+2(d1.w*2),d0 cmp.w word_16E16(d1.w*2),d0 bcs.s loc_717A6 clr.w d0 move.b byte_16ECB(d1.w),d0 move.w word_89764(d0.w*2),d0 jsr sub_73932 loc_717A6: ; CODE XREF: sub_714E0+2ACj move.w dword_FFFF97AE+2(d1.w*2),d3 cmp.w word_16E0E(d1.w*2),d3 bcs.w loc_71872 bset #7,-$67DB(d1.w) clr.l d7 move.b d2,d7 move.b -$6847(d7.w),d3 addq.b #1,d3 bcc.s loc_717D2 move.b #$FF,d3 loc_717D2: ; CODE XREF: sub_714E0+2ECj move.b d3,$18+var_685F(d1.w) clr.w dword_FFFF97AE+2(d1.w*2) clr.w dword_FFFF97CA+2(d1.w*2) clr.w dword_FFFF97BA+2(d1.w*2) move.b -$6847(d1.w),d0 cmp.b byte_16E0B(d1.w),d0 bcs.w loc_718F4 clr.b -$6847(d1.w) cmpi.b #1,byte_16E43(d1.w) bne.s loc_71850 clr.w d0 move.b byte_16E85(d1.w),d0 loc_71818: ; CODE XREF: sub_714E0+390j btst #7,-$67DB(d0.w) bne.w loc_718F4 clr.w d0 move.b byte_16ECB(d1.w),d0 move.w word_89764(d0.w*2),d0 jsr sub_5F110 andi.b #$3F,-$74AF(d1.w) ; '?' ori.b #$40,-$74AF(d1.w) ; '@' bra.w loc_718F4 ; --------------------------------------------------------------------------- loc_71850: ; CODE XREF: sub_714E0+32Cj clr.w d0 move.b byte_16E85(d1.w),d0 btst #7,-$67DB(d0.w) bne.w loc_718F4 clr.w d0 move.b byte_16E89(d1.w),d0 bra.s loc_71818 ; --------------------------------------------------------------------------- loc_71872: ; CODE XREF: sub_714E0+2D4j move.w dword_FFFF97CA+2(d1.w*2),d0 cmp.w word_16E26(d1.w*2),d0 bcs.s loc_718F4 move.b -$74AF(d1.w),d0 lsr.b #6,d0 cmpi.b #2,d0 beq.s loc_718D4 clr.w d0 move.b byte_16ECB(d1.w),d0 move.w word_89764(d0.w*2),d0 jsr sub_73826 clr.w d0 move.b byte_16ECB(d1.w),d0 move.w word_89764(d0.w*2),d0 jsr sub_5F0BE move.w dword_FFFF97AE+2(d1.w*2),d3 cmp.w dword_FFFF8AEC+2(d1.w*2),d3 bls.s loc_718D4 move.w d3,$18+var_752A(d1.w*2) loc_718D4: ; CODE XREF: sub_714E0+3AEj ; sub_714E0+3ECj clr.w dword_FFFF97AE+2(d1.w*2) clr.w dword_FFFF97CA+2(d1.w*2) clr.b -$6847(d1.w) clr.w dword_FFFF97BA+2(d1.w*2) bclr #7,-$67DB(d1.w) loc_718F4: ; CODE XREF: sub_714E0+23Ej ; sub_714E0+318j ... addq.b #1,d2 cmp.b d2,d6 bcc.w loc_7170C loc_718FC: ; CODE XREF: sub_714E0+228j move.b (DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS).l,d7 move.l d7,d6 moveq #1,d2 move.l d2,d3 cmp.b d6,d3 bhi.w loc_71A68 loc_7190E: ; CODE XREF: sub_714E0+584j clr.l d1 move.b d2,d1 clr.w d0 move.b byte_16ECB(d1.w),d0 move.w word_89764(d0.w*2),d0 btst #7,byte_FFFF88C0(d0.w*2) bne.s loc_7194A btst #0,byte_FFFF88C0(d0.w*2) bne.s loc_7194A btst #6,byte_FFFF88C0(d0.w*2) bne.s loc_7194A andi.b #$3F,-$74AF(d1.w) ; '?' loc_7194A: ; CODE XREF: sub_714E0+44Cj ; sub_714E0+456j ... btst #4,byte_FFFF88C0(d0.w*2) beq.s loc_7197C btst #7,byte_FFFF88C0(d0.w*2) beq.s loc_71984 movea.l d1,a0 move.b -$74AF(d1.w),d3 lsr.b #2,d3 andi.b #$30,d3 ; '0' andi.b #$CF,-$74AF(a0.w) or.b d3,-$74AF(a0.w) bra.s loc_71984 ; --------------------------------------------------------------------------- loc_7197C: ; CODE XREF: sub_714E0+472j andi.b #$CF,-$74AF(d1.w) loc_71984: ; CODE XREF: sub_714E0+47Cj ; sub_714E0+49Aj btst #4,-$63C5(d1.w) beq.w loc_71A60 tst.b byte_16E3F(d1.w) beq.s loc_719B2 clr.w d3 move.b byte_16E81(d1.w),d3 move.w dword_FFFF9C44+2(d3.w*2),d3 cmp.w (DG_EOS_KE_EOSD_REL_PE_SENSOR_THRESH).l,d3 ; The related sensor voltage required to allow monitoring of the current sensor during the PE test. ; Millivolts bcs.s loc_719F2 loc_719B2: ; CODE XREF: sub_714E0+4B8j clr.l d4 move.b d2,d4 move.w dword_FFFF97EE+2(d4.w*2),d3 addq.w #1,d3 bcc.s loc_719C4 move.w #$FFFF,d3 loc_719C4: ; CODE XREF: sub_714E0+4DEj move.w d3,$18+var_6828(d1.w*2) move.w dword_FFFF9C44+2(d1.w*2),d3 cmp.w word_16E78(d1.w*2),d3 bcc.s loc_719F2 clr.l d4 move.b d2,d4 move.w dword_FFFF97E6+2(d4.w*2),d3 addq.w #1,d3 bcc.s loc_719EC move.w #$FFFF,d3 loc_719EC: ; CODE XREF: sub_714E0+506j move.w d3,$18+var_6830(d1.w*2) loc_719F2: ; CODE XREF: sub_714E0+4D0j ; sub_714E0+4F8j move.w dword_FFFF97E6+2(d1.w*2),d3 cmp.w DI_EOS_KV_EOSD_POST_SENSOR_INDEX(d1.w*2),d3 ; A cross-reference of the post O2 sensor index to sensor index for post sensor testing identification. ; Unitsless bcs.s loc_71A26 andi.b #$3F,-$74AF(d1.w) ; '?' ori.b #$80,-$74AF(d1.w) jsr sub_5F110 loc_71A18: ; CODE XREF: sub_714E0+562j ; sub_714E0+576j ... clr.w dword_FFFF97E6+2(d1.w*2) clr.w dword_FFFF97EE+2(d1.w*2) bra.s loc_71A60 ; --------------------------------------------------------------------------- loc_71A26: ; CODE XREF: sub_714E0+520j move.w dword_FFFF97EE+2(d1.w*2),d3 cmp.w word_16E70(d1.w*2),d3 bcs.s loc_71A60 move.b -$74AF(d1.w),d3 lsr.b #6,d3 cmpi.b #1,d3 beq.s loc_71A18 jsr sub_5F0BE move.w dword_FFFF97E6+2(d1.w*2),d3 cmp.w dword_FFFF8B18+2(d1.w*2),d3 bls.s loc_71A18 move.w d3,$18+var_74FE(d1.w*2) bra.s loc_71A18 ; --------------------------------------------------------------------------- loc_71A60: ; CODE XREF: sub_714E0+4ACj ; sub_714E0+544j ... addq.b #1,d2 cmp.b d2,d6 bcc.w loc_7190E loc_71A68: ; CODE XREF: sub_714E0+42Aj moveq #1,d2 move.l d2,d6 cmp.b d7,d6 bhi.w loc_71C66 loc_71A72: ; CODE XREF: sub_714E0+782j clr.l d1 move.b d2,d1 move.w dword_FFFF9C44+2(d1.w*2),d0 btst #3,-$63C5(d1.w) beq.w loc_71C5E clr.l d6 move.b d2,d6 move.w dword_FFFF981A+2(d6.w*2),d3 addq.w #1,d3 bcc.s loc_71A9A move.w #$FFFF,d3 loc_71A9A: ; CODE XREF: sub_714E0+5B4j move.w d3,$18+var_67FC(d1.w*2) cmp.w word_16EC2(d1.w*2),d0 bls.s loc_71AE4 clr.l d6 move.b d2,d6 move.w word_FFFF9800(d6.w*2),d3 addq.w #1,d3 bcc.s loc_71ABC move.w #$FFFF,d3 loc_71ABC: ; CODE XREF: sub_714E0+5D6j move.w d3,$18+var_6818(d1.w*2) cmp.w word_16EB2(d1.w*2),d0 bls.s loc_71AE4 clr.l d6 move.b d2,d6 move.w dword_FFFF980A+2(d6.w*2),d3 addq.w #1,d3 bcc.s loc_71ADE move.w #$FFFF,d3 loc_71ADE: ; CODE XREF: sub_714E0+5F8j move.w d3,$18+var_680C(d1.w*2) loc_71AE4: ; CODE XREF: sub_714E0+5C8j ; sub_714E0+5EAj move.w dword_FFFF980A+2(d1.w*2),d0 cmp.w word_16EAA(d1.w*2),d0 bcs.s loc_71B0C clr.w d0 move.b byte_16ECB(d1.w),d0 move.w word_89794(d0.w*2),d0 jsr sub_73932 loc_71B0C: ; CODE XREF: sub_714E0+612j move.w word_FFFF9800(d1.w*2),d3 cmp.w word_16EA2(d1.w*2),d3 bcs.w loc_71BD8 bset #6,-$67DB(d1.w) clr.l d6 move.b d2,d6 move.b -$67F7(d6.w),d3 addq.b #1,d3 bcc.s loc_71B38 move.b #$FF,d3 loc_71B38: ; CODE XREF: sub_714E0+652j move.b d3,$18+var_680F(d1.w) clr.w word_FFFF9800(d1.w*2) clr.w dword_FFFF981A+2(d1.w*2) clr.w dword_FFFF980A+2(d1.w*2) move.b -$67F7(d1.w),d0 cmp.b byte_16E9F(d1.w),d0 bcs.w loc_71C5E clr.b -$67F7(d1.w) cmpi.b #1,byte_16E43(d1.w) bne.s loc_71BB6 clr.w d0 move.b byte_16E85(d1.w),d0 loc_71B7E: ; CODE XREF: sub_714E0+6F6j btst #6,-$67DB(d0.w) bne.w loc_71C5E clr.w d0 move.b byte_16ECB(d1.w),d0 move.w word_89794(d0.w*2),d0 jsr sub_5F110 andi.b #$F3,-$74AF(d1.w) ori.b #4,-$74AF(d1.w) bra.w loc_71C5E ; --------------------------------------------------------------------------- loc_71BB6: ; CODE XREF: sub_714E0+692j clr.w d0 move.b byte_16E85(d1.w),d0 btst #6,-$67DB(d0.w) bne.w loc_71C5E clr.w d0 move.b byte_16E89(d1.w),d0 bra.s loc_71B7E ; --------------------------------------------------------------------------- loc_71BD8: ; CODE XREF: sub_714E0+63Aj move.w dword_FFFF981A+2(d1.w*2),d0 cmp.w word_16EBA(d1.w*2),d0 bcs.s loc_71C5E move.b -$74AF(d1.w),d0 lsr.b #2,d0 andi.b #3,d0 cmpi.b #2,d0 beq.s loc_71C3E clr.w d0 move.b byte_16ECB(d1.w),d0 move.w word_89794(d0.w*2),d0 jsr sub_73826 clr.w d0 move.b byte_16ECB(d1.w),d0 move.w word_89794(d0.w*2),d0 jsr sub_5F0BE move.w word_FFFF9800(d1.w*2),d3 cmp.w dword_FFFF8B24+2(d1.w*2),d3 bls.s loc_71C3E move.w d3,$18+var_74F2(d1.w*2) loc_71C3E: ; CODE XREF: sub_714E0+718j ; sub_714E0+756j clr.w word_FFFF9800(d1.w*2) clr.w dword_FFFF981A+2(d1.w*2) clr.w dword_FFFF980A+2(d1.w*2) clr.b -$67F7(d1.w) bclr #6,-$67DB(d1.w) loc_71C5E: ; CODE XREF: sub_714E0+5A4j ; sub_714E0+67Ej ... addq.b #1,d2 cmp.b d2,d7 bcc.w loc_71A72 loc_71C66: ; CODE XREF: sub_714E0+58Ej move.b (DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS).l,d6 moveq #1,d2 move.l d2,d7 cmp.b d6,d7 bhi.w loc_71DBC loc_71C76: ; CODE XREF: sub_714E0+8D8j clr.l d1 move.b d2,d1 clr.w d0 move.b byte_16ECB(d1.w),d0 move.w word_89794(d0.w*2),d0 btst #0,byte_FFFF88C0(d0.w*2) bne.s loc_71CB2 btst #6,byte_FFFF88C0(d0.w*2) bne.s loc_71CB2 btst #7,byte_FFFF88C0(d0.w*2) bne.s loc_71CB2 andi.b #$F3,-$74AF(d1.w) loc_71CB2: ; CODE XREF: sub_714E0+7B4j ; sub_714E0+7BEj ... btst #4,byte_FFFF88C0(d0.w*2) beq.s loc_71CE4 btst #7,byte_FFFF88C0(d0.w*2) beq.s loc_71CEC movea.l d1,a0 move.b -$74AF(d1.w),d3 lsr.b #2,d3 moveq #3,d7 and.b d7,d3 andi.b #$FC,-$74AF(a0.w) or.b d3,-$74AF(a0.w) bra.s loc_71CEC ; --------------------------------------------------------------------------- loc_71CE4: ; CODE XREF: sub_714E0+7DAj andi.b #$FC,-$74AF(d1.w) loc_71CEC: ; CODE XREF: sub_714E0+7E4j ; sub_714E0+802j btst #7,-$63C5(d1.w) beq.w loc_71DB4 clr.l d7 move.b d2,d7 move.w dword_FFFF979E+2(d7.w*2),d3 addq.w #1,d3 bcc.s loc_71D0A move.w #$FFFF,d3 loc_71D0A: ; CODE XREF: sub_714E0+824j move.w d3,$18+var_6878(d1.w*2) move.w dword_FFFF9C44+2(d1.w*2),d3 cmp.w word_16DFE(d1.w*2),d3 bls.s loc_71D38 clr.l d7 move.b d2,d7 move.w unk_FFFF9798(d7.w*2),d3 addq.w #1,d3 bcc.s loc_71D32 move.w #$FFFF,d3 loc_71D32: ; CODE XREF: sub_714E0+84Cj move.w d3,$18+var_6880(d1.w*2) loc_71D38: ; CODE XREF: sub_714E0+83Ej move.w unk_FFFF9798(d1.w*2),d3 cmp.w word_16DEE(d1.w*2),d3 bcs.s loc_71D6C jsr sub_5F110 clr.w unk_FFFF9798(d1.w*2) clr.w dword_FFFF979E+2(d1.w*2) andi.b #$F3,-$74AF(d1.w) ori.b #8,-$74AF(d1.w) bra.s loc_71DB4 ; --------------------------------------------------------------------------- loc_71D6C: ; CODE XREF: sub_714E0+866j move.w dword_FFFF979E+2(d1.w*2),d3 cmp.w word_16DF6(d1.w*2),d3 bcs.s loc_71DB4 move.b -$74AF(d1.w),d3 lsr.b #2,d3 andi.b #3,d3 cmpi.b #1,d3 beq.s loc_71DA8 jsr sub_5F0BE move.w unk_FFFF9798(d1.w*2),d3 cmp.w word_FFFF8AE6(d1.w*2),d3 bls.s loc_71DA8 move.w d3,$18+var_7532(d1.w*2) loc_71DA8: ; CODE XREF: sub_714E0+8ACj ; sub_714E0+8C0j clr.w unk_FFFF9798(d1.w*2) clr.w dword_FFFF979E+2(d1.w*2) loc_71DB4: ; CODE XREF: sub_714E0+814j ; sub_714E0+88Aj ... addq.b #1,d2 cmp.b d2,d6 bcc.w loc_71C76 loc_71DBC: ; CODE XREF: sub_714E0+792j movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_714E0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_71DC2: ; CODE XREF: DoLoopG+20Cp var_7532 = -$7532 var_752E = -$752E var_752A = -$752A var_7506 = -$7506 var_74FA = -$74FA var_74F6 = -$74F6 var_74F2 = -$74F2 var_74EE = -$74EE var_74EA = -$74EA var_74E6 = -$74E6 var_74E1 = -$74E1 var_74E0 = -$74E0 var_74DB = -$74DB var_74D9 = -$74D9 var_6864 = -$6864 var_682B = -$682B var_6814 = -$6814 var_6800 = -$6800 var_67FB = -$67FB var_8 = -8 var_7 = -7 var_6 = -6 var_4 = -4 link a6,#-8 movem.l d0-d2/d6-a1/a4,-(sp) btst #2,(byte_FFFF9A16).w beq.w loc_72028 tst.b (byte_FFFFB473).w bne.w loc_72028 btst #7,(byte_FFFF9794).w beq.w loc_72028 btst #5,(byte_FFFF9794).w bne.w loc_72028 move.b (DI_EOS_KE_EOSD_NUMBER_OF_RESP_SENSORS).l,d1 move.b d1,var_8(a6) moveq #1,d2 move.b d2,var_7(a6) cmp.b d1,d2 bhi.w loc_72022 loc_71E06: ; CODE XREF: sub_71DC2+25Cj clr.w d6 move.b var_7(a6),d6 clr.w d3 move.b byte_16E9D(d6.w),d3 move.b byte_16ECB(d3.w),d3 andi.w #$FF,d3 movea.w word_897A0(d3.w*2),a1 moveq #1,d3 move.b var_7(a6),d1 cmp.b d1,d3 bne.s loc_71E3E clr.w d3 move.b (DI_EOS_KE_EOSD_ST_LRS_LIM_RS1).l,d3 ; The number of lean-to-rich switches (Bank 1 Sensor 1) below which a switches failure will be reported. ; Unitless bra.s loc_71E46 ; --------------------------------------------------------------------------- loc_71E3E: ; CODE XREF: sub_71DC2+70j clr.w d3 move.b (DI_EOS_KE_EOSD_ST_LRS_LIM_RS2).l,d3 ; The number of lean-to-rich switches (Bank 2 Sensor 1) below which a switches failure will be reported. ; Unitless loc_71E46: ; CODE XREF: sub_71DC2+7Aj move.w d3,d7 moveq #1,d2 cmp.b d1,d2 bne.s loc_71E58 clr.w d3 move.b (DI_EOS_KE_EOSD_ST_RLS_LIM_RS1).l,d3 ; The number of rich-to-lean switches (Bank 1 Sensor 1) below which a switches failure will be reported. ; Unitless bra.s loc_71E60 ; --------------------------------------------------------------------------- loc_71E58: ; CODE XREF: sub_71DC2+8Aj clr.w d3 move.b (DI_EOS_KE_EOSD_ST_RLS_LIM_RS2).l,d3 ; The number of rich-to-lean switches (Bank 2 Sensor 1) below which a switches failure will be reported. ; Unitless loc_71E60: ; CODE XREF: sub_71DC2+94j move.w dword_FFFF97C6+2(d6.w*2),d0 cmp.w d7,d0 bcs.s loc_71E72 cmp.w dword_FFFF9816+2(d6.w*2),d3 bls.s loc_71EE8 loc_71E72: ; CODE XREF: sub_71DC2+A6j move.w d0,$28+var_752A(d6.w*2) move.w d7,$28+var_752E(d6.w*2) move.w dword_FFFF9816+2(d6.w*2),$28+var_74F6(d6.w*2) move.w d3,$28+var_74FA(d6.w*2) clr.w dword_FFFF8AF4+2(d6.w*2) clr.w unk_FFFF8B3E(d6.w*2) clr.w dword_FFFF8B20+2(d6.w*2) clr.w dword_FFFF8B40+2(d6.w*2) clr.b -$74B3(d6.w) clr.b -$74B1(d6.w) clr.b -$74B9(d6.w) movea.w #$8000,a4 move.w a4,$28+var_74EE(d6.w*2) move.w a4,$28+var_74E0(d6.w*2) move.w a4,$28+var_74F2(d6.w*2) move.l a1,d0 jsr sub_73932 move.l a1,d0 jsr sub_5F110 clr.b -$67D3(d6.w) bra.w loc_7200E ; --------------------------------------------------------------------------- loc_71EE8: ; CODE XREF: sub_71DC2+AEj move.b d2,$28+var_67FB(d6.w) move.w dword_FFFF97A6+2(d6.w*2),$28+var_752A(d6.w*2) move.w dword_FFFF97AA+2(d6.w*2),$28+var_74F6(d6.w*2) cmp.b d1,d2 bne.s loc_71F0E movea.l #DI_EOS_KA_EOSD_HC_LRS_LIM_RS1,a2 ; The number of lean-to-rich half cycle switches (Bank 1 Sensor 1) below which a switches failure will be reported. ; Unitless bra.s loc_71F14 ; --------------------------------------------------------------------------- loc_71F0E: ; CODE XREF: sub_71DC2+142j movea.l #DI_EOS_KA_EOSD_HC_LRS_LIM_RS2,a2 ; The number of lean-to-rich half cycle switches (Bank 2 Sensor 1) below which a switches failure will be reported. ; Unitless loc_71F14: ; CODE XREF: sub_71DC2+14Aj move.w (word_FFFF8260).w,d0 move.l a2,var_4(a6) clr.w d3 move.l #$780,d7 cmp.w d0,d7 bls.s loc_71F2C move.l d3,d0 bra.s loc_71F50 ; --------------------------------------------------------------------------- loc_71F2C: ; CODE XREF: sub_71DC2+164j cmpi.w #$1E00,d0 bcc.s loc_71F4C andi.l #$FFFF,d0 sub.l d7,d0 mulu.l #sub_20000,d3:d0 divu.l #$5028F,d3:d0 bra.s loc_71F50 ; --------------------------------------------------------------------------- loc_71F4C: ; CODE XREF: sub_71DC2+16Ej move.w #$8FB,d0 loc_71F50: ; CODE XREF: sub_71DC2+168j ; sub_71DC2+188j move.w (word_FFFFAEF8).w,d1 moveq #$A,d2 movea.l var_4(a6),a0 jsr sub_26946 clr.w d3 move.b d0,d3 move.w d3,d7 cmpi.b #1,var_7(a6) bne.s loc_71F76 movea.l #DI_EOS_KA_EOSD_HC_RLS_LIM_RS1,a2 ; The number of rich-to-lean half cycle switches (Bank 1 Sensor 1) below which a switches failure will be reported. ; Unitless bra.s loc_71F7C ; --------------------------------------------------------------------------- loc_71F76: ; CODE XREF: sub_71DC2+1AAj movea.l #DI_EOS_KA_EOSD_HC_RLS_LIM_RS2,a2 ; The number of rich-to-lean half cycle switches (Bank 2 Sensor 1) below which a switches failure will be reported. ; Unitless loc_71F7C: ; CODE XREF: sub_71DC2+1B2j move.w (word_FFFF8260).w,d3 move.l a2,var_4(a6) clr.w d4 cmpi.w #$780,d3 bcc.s loc_71F90 move.l d4,d3 bra.s loc_71FB8 ; --------------------------------------------------------------------------- loc_71F90: ; CODE XREF: sub_71DC2+1C8j cmpi.w #$1E00,d3 bcc.s loc_71FB4 andi.l #$FFFF,d3 subi.l #$780,d3 mulu.l #sub_20000,d4:d3 divu.l #$5028F,d4:d3 bra.s loc_71FB8 ; --------------------------------------------------------------------------- loc_71FB4: ; CODE XREF: sub_71DC2+1D2j move.w #$8FB,d3 loc_71FB8: ; CODE XREF: sub_71DC2+1CCj ; sub_71DC2+1F0j movea.w (word_FFFFAEF8).w,a2 moveq #$A,d2 move.l a2,d1 move.l d3,d0 movea.l var_4(a6),a0 jsr sub_26946 clr.w d3 move.b d0,d3 move.w d7,$28+var_752E(d6.w*2) move.w d3,$28+var_74FA(d6.w*2) cmp.w dword_FFFF97A6+2(d6.w*2),d7 bhi.s loc_71FEC cmp.w dword_FFFF97AA+2(d6.w*2),d3 bls.s loc_71FFE loc_71FEC: ; CODE XREF: sub_71DC2+220j move.l a1,d0 jsr sub_73932 move.l a1,d0 jsr sub_5F110 bra.s loc_7200E ; --------------------------------------------------------------------------- loc_71FFE: ; CODE XREF: sub_71DC2+228j move.l a1,d0 jsr sub_73826 move.l a1,d0 jsr sub_5F0BE loc_7200E: ; CODE XREF: sub_71DC2+122j ; sub_71DC2+23Aj move.b var_7(a6),d7 addq.b #1,d7 move.b d7,var_7(a6) move.b var_8(a6),d5 cmp.b d7,d5 bcc.w loc_71E06 loc_72022: ; CODE XREF: sub_71DC2+40j bset #5,(byte_FFFF9794).w loc_72028: ; CODE XREF: sub_71DC2+Ej ; sub_71DC2+16j ... btst #5,(byte_FFFF9794).w beq.w loc_725FC btst #6,(byte_FFFF9794).w bne.w loc_725FC clr.b var_8(a6) btst #2,(byte_FFFF9A16).w beq.s loc_72052 tst.b (byte_FFFFB473).w bne.s loc_72052 addq.b #1,var_8(a6) loc_72052: ; CODE XREF: sub_71DC2+284j ; sub_71DC2+28Aj move.b var_8(a6),d7 move.b d7,var_8(a6) move.b (DI_EOS_KE_EOSD_NUMBER_OF_RESP_SENSORS).l,d5 move.b d5,var_7(a6) moveq #1,d0 move.b d0,var_6(a6) cmp.b d5,d0 bhi.w loc_725F6 loc_72070: ; CODE XREF: sub_71DC2+830j clr.w d6 move.b var_6(a6),d6 tst.b -$67D3(d6.w) beq.w loc_725E2 tst.w dword_FFFF9816+2(d6.w*2) beq.s loc_72090 tst.w dword_FFFF978C+2(d6.w*2) bne.s loc_72098 loc_72090: ; CODE XREF: sub_71DC2+2C4j clr.w dword_FFFF9812+2(d6.w*2) bra.s loc_720C6 ; --------------------------------------------------------------------------- loc_72098: ; CODE XREF: sub_71DC2+2CCj clr.w d7 move.b var_6(a6),d7 move.w dword_FFFF978C+2(d7.w*2),d7 moveq #$19,d0 mulu.w d0,d7 lsr.l #2,d7 clr.w d1 move.b var_6(a6),d1 divu.w dword_FFFF9816+2(d1.w*2),d7 bvs.s loc_720BC move.w d7,d3 bra.s loc_720C0 ; --------------------------------------------------------------------------- loc_720BC: ; CODE XREF: sub_71DC2+2F4j move.w #$FFFF,d3 loc_720C0: ; CODE XREF: sub_71DC2+2F8j move.w d3,$28+var_6814(d6.w*2) loc_720C6: ; CODE XREF: sub_71DC2+2D4j tst.w dword_FFFF97C6+2(d6.w*2) beq.s loc_720D6 tst.w unk_FFFF978A(d6.w*2) bne.s loc_720E6 loc_720D6: ; CODE XREF: sub_71DC2+30Aj clr.w dword_FFFF97C2+2(d6.w*2) clr.b -$6803(d6.w) bra.w loc_7218A ; --------------------------------------------------------------------------- loc_720E6: ; CODE XREF: sub_71DC2+312j clr.w d7 move.b var_6(a6),d7 move.w unk_FFFF978A(d7.w*2),d7 mulu.w #$19,d7 lsr.l #2,d7 clr.w d0 move.b var_6(a6),d0 divu.w dword_FFFF97C6+2(d0.w*2),d7 bvs.s loc_7210A move.w d7,d3 bra.s loc_7210E ; --------------------------------------------------------------------------- loc_7210A: ; CODE XREF: sub_71DC2+342j move.w #$FFFF,d3 loc_7210E: ; CODE XREF: sub_71DC2+346j move.w d3,$28+var_6864(d6.w*2) tst.b (DG_EOS_KE_EOSD_ASYMMETRICRATIO_TEST).l ; Determines which response test method is to be used. TRUE = ratio test, FALSE = difference test. ; Boolean beq.s loc_7214C clr.w d7 move.b var_6(a6),d7 clr.w d0 move.b var_6(a6),d0 clr.l d3 move.w dword_FFFF9812+2(d0.w*2),d3 asl.l #5,d3 divu.w dword_FFFF97C2+2(d7.w*2),d3 bvs.s loc_72140 cmpi.w #$FF,d3 bls.s loc_72144 loc_72140: ; CODE XREF: sub_71DC2+376j move.b #$FF,d3 loc_72144: ; CODE XREF: sub_71DC2+37Cj move.b d3,$28+var_682B(d6.w) bra.s loc_7218A ; --------------------------------------------------------------------------- loc_7214C: ; CODE XREF: sub_71DC2+358j clr.w d7 move.b var_6(a6),d7 clr.l d4 move.w dword_FFFF97C2+2(d7.w*2),d4 clr.w d7 move.b var_6(a6),d7 clr.l d3 move.w dword_FFFF9812+2(d7.w*2),d3 sub.l d4,d3 cmpi.l #$FFFF8000,d3 blt.s loc_72180 cmpi.l #$7FFF,d3 ble.s loc_72184 move.w #$7FFF,d3 bra.s loc_72184 ; --------------------------------------------------------------------------- loc_72180: ; CODE XREF: sub_71DC2+3AEj move.w #$8000,d3 loc_72184: ; CODE XREF: sub_71DC2+3B6j ; sub_71DC2+3BCj move.w d3,$28+var_6800(d6.w*2) loc_7218A: ; CODE XREF: sub_71DC2+320j ; sub_71DC2+388j tst.b var_8(a6) beq.w loc_725E2 moveq #1,d3 movea.l d6,a4 move.w dword_FFFF97C2+2(d6.w*2),$28+var_7532(a4.w*2) move.w dword_FFFF9812+2(d6.w*2),$28+var_7506(a4.w*2) movea.w d6,a1 move.b var_6(a6),d7 cmp.b d7,d3 bne.s loc_721BC movea.l #DI_EOS_KA_EOSD_ST_LRA_LIM_RS1,a2 ; The lean-to-rich average response time (Bank 1 Sensor 1) threshold above which a response time failure will be reported. ; Milliseconds bra.s loc_721C2 ; --------------------------------------------------------------------------- loc_721BC: ; CODE XREF: sub_71DC2+3F0j movea.l #DI_EOS_KA_EOSD_ST_LRA_LIM_RS2,a2 ; The lean-to-rich average response time (Bank 2 Sensor 1) threshold above which a response time failure will be reported. ; Milliseconds loc_721C2: ; CODE XREF: sub_71DC2+3F8j move.w (word_FFFF8260).w,d3 move.l a2,var_4(a6) clr.w d4 move.l #$780,d5 cmp.w d3,d5 bls.s loc_721DA move.l d4,d3 bra.s loc_721FE ; --------------------------------------------------------------------------- loc_721DA: ; CODE XREF: sub_71DC2+412j cmpi.w #$1E00,d3 bcc.s loc_721FA clr.l d0 move.w d3,d0 sub.l d5,d0 mulu.l #sub_20000,d3:d0 divu.l #$5028F,d3:d0 move.w d0,d3 bra.s loc_721FE ; --------------------------------------------------------------------------- loc_721FA: ; CODE XREF: sub_71DC2+41Cj move.w #$8FB,d3 loc_721FE: ; CODE XREF: sub_71DC2+416j ; sub_71DC2+436j movea.w (word_FFFFAEF8).w,a2 moveq #$A,d2 move.l a2,d1 move.l d3,d0 movea.l var_4(a6),a0 jsr sub_26946 clr.w d3 move.b d0,d3 movea.l d3,a2 move.w a2,$28+var_74EA(a1.w*2) move.l a4,d6 movea.w d6,a1 cmpi.b #1,d7 bne.s loc_72230 movea.l #DI_EOS_KA_EOSD_ST_RLA_LIM_RS1,a2 ; The rich-to-lean average response time threshold (Bank 1 Sensor 1) above which a response time failure will be reported. ; Milliseconds bra.s loc_72236 ; --------------------------------------------------------------------------- loc_72230: ; CODE XREF: sub_71DC2+464j movea.l #DI_EOS_KA_EOSD_ST_RLA_LIM_RS2,a2 ; The rich-to-lean average response time threshold (Bank 2 Sensor 1) above which a response time failure will be reported. ; Milliseconds loc_72236: ; CODE XREF: sub_71DC2+46Cj move.w (word_FFFF8260).w,d3 move.l a2,var_4(a6) clr.w d4 move.l #$780,d5 cmp.w d3,d5 bls.s loc_7224E move.l d4,d3 bra.s loc_72272 ; --------------------------------------------------------------------------- loc_7224E: ; CODE XREF: sub_71DC2+486j cmpi.w #$1E00,d3 bcc.s loc_7226E clr.l d0 move.w d3,d0 sub.l d5,d0 mulu.l #sub_20000,d3:d0 divu.l #$5028F,d3:d0 move.w d0,d3 bra.s loc_72272 ; --------------------------------------------------------------------------- loc_7226E: ; CODE XREF: sub_71DC2+490j move.w #$8FB,d3 loc_72272: ; CODE XREF: sub_71DC2+48Aj ; sub_71DC2+4AAj movea.w (word_FFFFAEF8).w,a2 moveq #$A,d2 move.l a2,d1 move.l d3,d0 movea.l var_4(a6),a0 jsr sub_26946 clr.w d3 move.b d0,d3 movea.l d3,a2 move.w a2,$28+var_74E6(a1.w*2) move.l a4,d6 clr.w d3 move.b byte_16E9D(d6.w),d3 move.b byte_16ECB(d3.w),d3 andi.w #$FF,d3 movea.w word_8977C(d3.w*2),a1 tst.b (DG_EOS_KE_EOSD_ASYMMETRICRATIO_TEST).l ; Determines which response test method is to be used. TRUE = ratio test, FALSE = difference test. ; Boolean beq.w loc_723C4 move.b -$6803(d6.w),$28+var_74DB(a4.w) cmpi.b #1,d7 bne.s loc_722D4 movea.l #DI_EOS_KA_EOSD_ST_RATIO_HIGH_LIM_RS1,a2 bra.s loc_722DA ; --------------------------------------------------------------------------- loc_722D4: ; CODE XREF: sub_71DC2+508j movea.l #DI_EOS_KA_EOSD_ST_RATIO_HIGH_LIM_RS2,a2 loc_722DA: ; CODE XREF: sub_71DC2+510j move.w (word_FFFF8260).w,d3 move.l a2,var_4(a6) clr.w d4 move.l #$780,d7 cmp.w d3,d7 bls.s loc_722F2 move.l d4,d3 bra.s loc_72316 ; --------------------------------------------------------------------------- loc_722F2: ; CODE XREF: sub_71DC2+52Aj cmpi.w #$1E00,d3 bcc.s loc_72312 andi.l #$FFFF,d3 sub.l d7,d3 mulu.l #sub_20000,d4:d3 divu.l #$5028F,d4:d3 bra.s loc_72316 ; --------------------------------------------------------------------------- loc_72312: ; CODE XREF: sub_71DC2+534j move.w #$8FB,d3 loc_72316: ; CODE XREF: sub_71DC2+52Ej ; sub_71DC2+54Ej movea.w (word_FFFFAEF8).w,a2 moveq #$A,d2 move.l a2,d1 move.l d3,d0 movea.l var_4(a6),a0 jsr sub_26946 move.b d0,d7 cmpi.b #1,var_6(a6) bne.s loc_7233C movea.l #DI_EOS_KA_EOSD_ST_RATIO_LOW_LIM_RS1,a2 bra.s loc_72342 ; --------------------------------------------------------------------------- loc_7233C: ; CODE XREF: sub_71DC2+570j movea.l #DI_EOS_KA_EOSD_ST_RATIO_LOW_LIM_RS2,a2 loc_72342: ; CODE XREF: sub_71DC2+578j move.w (word_FFFF8260).w,d3 move.l a2,var_4(a6) clr.w d4 cmpi.w #$780,d3 bcc.s loc_72356 move.l d4,d3 bra.s loc_7237E ; --------------------------------------------------------------------------- loc_72356: ; CODE XREF: sub_71DC2+58Ej cmpi.w #$1E00,d3 bcc.s loc_7237A andi.l #$FFFF,d3 movea.w #$780,a4 sub.l a4,d3 mulu.l #sub_20000,d4:d3 divu.l #$5028F,d4:d3 bra.s loc_7237E ; --------------------------------------------------------------------------- loc_7237A: ; CODE XREF: sub_71DC2+598j move.w #$8FB,d3 loc_7237E: ; CODE XREF: sub_71DC2+592j ; sub_71DC2+5B6j movea.w (word_FFFFAEF8).w,a2 moveq #$A,d2 move.l a2,d1 move.l d3,d0 movea.l var_4(a6),a0 jsr sub_26946 move.b d0,d3 move.b d3,$28+var_74D9(d6.w) move.b d7,$28+var_74E1(d6.w) move.b -$6803(d6.w),d4 cmp.b d7,d4 bhi.s loc_723B0 cmp.b d3,d4 bcc.w loc_724B4 loc_723B0: ; CODE XREF: sub_71DC2+5E6j ; sub_71DC2+6E8j ... move.l a1,d0 jsr sub_73932 move.l a1,d0 jsr sub_5F110 bra.w loc_724C4 ; --------------------------------------------------------------------------- loc_723C4: ; CODE XREF: sub_71DC2+4F6j movea.w dword_FFFF9826+2(d6.w*2),a4 move.w a4,$28+var_74F2(d6.w*2) cmpi.b #1,d7 bne.s loc_723DE movea.l #DI_EOS_KA_EOSD_ST_DIFFHIGH_LIM_RS1,a2 bra.s loc_723E4 ; --------------------------------------------------------------------------- loc_723DE: ; CODE XREF: sub_71DC2+612j movea.l #DI_EOS_KA_EOSD_ST_DIFFHIGH_LIM_RS2,a2 loc_723E4: ; CODE XREF: sub_71DC2+61Aj move.w (word_FFFF8260).w,d3 move.l a2,var_4(a6) clr.w d4 move.l #$780,d7 cmp.w d3,d7 bls.s loc_723FC move.l d4,d3 bra.s loc_72420 ; --------------------------------------------------------------------------- loc_723FC: ; CODE XREF: sub_71DC2+634j cmpi.w #$1E00,d3 bcc.s loc_7241C andi.l #$FFFF,d3 sub.l d7,d3 mulu.l #sub_20000,d4:d3 divu.l #$5028F,d4:d3 bra.s loc_72420 ; --------------------------------------------------------------------------- loc_7241C: ; CODE XREF: sub_71DC2+63Ej move.w #$8FB,d3 loc_72420: ; CODE XREF: sub_71DC2+638j ; sub_71DC2+658j movea.w (word_FFFFAEF8).w,a2 moveq #$A,d2 move.l a2,d1 move.l d3,d0 movea.l var_4(a6),a0 jsr SurfaceTableLookup move.w d0,d7 cmpi.b #1,var_6(a6) bne.s loc_72446 movea.l #DI_EOS_KA_EOSD_ST_DIFFLOW_LIM_RS1,a2 bra.s loc_7244C ; --------------------------------------------------------------------------- loc_72446: ; CODE XREF: sub_71DC2+67Aj movea.l #DI_EOS_KA_EOSD_ST_DIFFLOW_LIM_RS2,a2 loc_7244C: ; CODE XREF: sub_71DC2+682j move.w (word_FFFF8260).w,d0 move.l a2,var_4(a6) clr.w d3 move.l #$780,d4 cmp.w d0,d4 bls.s loc_72464 move.l d3,d0 bra.s loc_72488 ; --------------------------------------------------------------------------- loc_72464: ; CODE XREF: sub_71DC2+69Cj cmpi.w #$1E00,d0 bcc.s loc_72484 andi.l #$FFFF,d0 sub.l d4,d0 mulu.l #sub_20000,d3:d0 divu.l #$5028F,d3:d0 bra.s loc_72488 ; --------------------------------------------------------------------------- loc_72484: ; CODE XREF: sub_71DC2+6A6j move.w #$8FB,d0 loc_72488: ; CODE XREF: sub_71DC2+6A0j ; sub_71DC2+6C0j move.w (word_FFFFAEF8).w,d1 moveq #$A,d2 movea.l var_4(a6),a0 jsr SurfaceTableLookup move.w d0,d3 move.w d3,$28+var_74EE(d6.w*2) move.w d7,$28+var_74E0(d6.w*2) move.l a4,d2 cmp.w d7,d2 bgt.w loc_723B0 cmp.w d3,d2 blt.w loc_723B0 loc_724B4: ; CODE XREF: sub_71DC2+5EAj move.l a1,d0 jsr sub_73826 move.l a1,d0 jsr sub_5F0BE loc_724C4: ; CODE XREF: sub_71DC2+5FEj clr.w d0 move.b byte_16E9D(d6.w),d0 move.b byte_16ECB(d0.w),d0 andi.w #$FF,d0 movea.w word_89788(d0.w*2),a1 cmpi.b #1,var_6(a6) bne.s loc_724F2 movea.l #DI_EOS_KA_EOSD_ST_LRA_LIM_RS1,a2 ; The lean-to-rich average response time (Bank 1 Sensor 1) threshold above which a response time failure will be reported. ; Milliseconds bra.s loc_724F8 ; --------------------------------------------------------------------------- loc_724F2: ; CODE XREF: sub_71DC2+726j movea.l #DI_EOS_KA_EOSD_ST_LRA_LIM_RS2,a2 ; The lean-to-rich average response time (Bank 2 Sensor 1) threshold above which a response time failure will be reported. ; Milliseconds loc_724F8: ; CODE XREF: sub_71DC2+72Ej move.w (word_FFFF8260).w,d0 move.l a2,var_4(a6) clr.w d3 move.l #$780,d4 cmp.w d0,d4 bls.s loc_72510 move.l d3,d0 bra.s loc_72534 ; --------------------------------------------------------------------------- loc_72510: ; CODE XREF: sub_71DC2+748j cmpi.w #$1E00,d0 bcc.s loc_72530 andi.l #$FFFF,d0 sub.l d4,d0 mulu.l #sub_20000,d3:d0 divu.l #$5028F,d3:d0 bra.s loc_72534 ; --------------------------------------------------------------------------- loc_72530: ; CODE XREF: sub_71DC2+752j move.w #$8FB,d0 loc_72534: ; CODE XREF: sub_71DC2+74Cj ; sub_71DC2+76Cj move.w (word_FFFFAEF8).w,d1 moveq #$A,d2 movea.l var_4(a6),a0 jsr sub_26946 clr.w d3 move.b d0,d3 move.w d3,d7 cmpi.b #1,var_6(a6) bne.s loc_7255A movea.l #DI_EOS_KA_EOSD_ST_RLA_LIM_RS1,a2 ; The rich-to-lean average response time threshold (Bank 1 Sensor 1) above which a response time failure will be reported. ; Milliseconds bra.s loc_72560 ; --------------------------------------------------------------------------- loc_7255A: ; CODE XREF: sub_71DC2+78Ej movea.l #DI_EOS_KA_EOSD_ST_RLA_LIM_RS2,a2 ; The rich-to-lean average response time threshold (Bank 2 Sensor 1) above which a response time failure will be reported. ; Milliseconds loc_72560: ; CODE XREF: sub_71DC2+796j move.w (word_FFFF8260).w,d0 move.l a2,var_4(a6) clr.w d3 move.l #$780,d4 cmp.w d0,d4 bls.s loc_72578 move.l d3,d0 bra.s loc_7259C ; --------------------------------------------------------------------------- loc_72578: ; CODE XREF: sub_71DC2+7B0j cmpi.w #$1E00,d0 bcc.s loc_72598 andi.l #$FFFF,d0 sub.l d4,d0 mulu.l #sub_20000,d3:d0 divu.l #$5028F,d3:d0 bra.s loc_7259C ; --------------------------------------------------------------------------- loc_72598: ; CODE XREF: sub_71DC2+7BAj move.w #$8FB,d0 loc_7259C: ; CODE XREF: sub_71DC2+7B4j ; sub_71DC2+7D4j move.w (word_FFFFAEF8).w,d1 moveq #$A,d2 movea.l var_4(a6),a0 jsr sub_26946 clr.w d3 move.b d0,d3 cmp.w dword_FFFF97C2+2(d6.w*2),d7 bcs.s loc_725C0 cmp.w dword_FFFF9812+2(d6.w*2),d3 bcc.s loc_725D2 loc_725C0: ; CODE XREF: sub_71DC2+7F4j move.l a1,d0 jsr sub_73932 move.l a1,d0 jsr sub_5F110 bra.s loc_725E2 ; --------------------------------------------------------------------------- loc_725D2: ; CODE XREF: sub_71DC2+7FCj move.l a1,d0 jsr sub_73826 move.l a1,d0 jsr sub_5F0BE loc_725E2: ; CODE XREF: sub_71DC2+2BAj ; sub_71DC2+3CCj ... move.b var_6(a6),d3 addq.b #1,d3 move.b d3,var_6(a6) move.b var_7(a6),d4 cmp.b d3,d4 bcc.w loc_72070 loc_725F6: ; CODE XREF: sub_71DC2+2AAj bset #6,(byte_FFFF9794).w loc_725FC: ; CODE XREF: sub_71DC2+26Cj ; sub_71DC2+276j movem.l (sp)+,d0-d2/d6-a1/a4 unlk a6 rts ; End of function sub_71DC2 ; =============== S U B R O U T I N E ======================================= sub_72604: ; CODE XREF: sub_72748+70p ; sub_72B0E+8Cp ... btst #1,(byte_FFFF8982).w bne.s loc_7261C btst #1,(byte_FFFF8984).w bne.s loc_7261C btst #1,(byte_FFFF8986).w beq.s loc_72620 loc_7261C: ; CODE XREF: sub_72604+6j sub_72604+Ej clr.b d0 bra.s locret_72622 ; --------------------------------------------------------------------------- loc_72620: ; CODE XREF: sub_72604+16j moveq #1,d0 locret_72622: ; CODE XREF: sub_72604+1Aj rts ; End of function sub_72604 ; =============== S U B R O U T I N E ======================================= sub_72624: ; CODE XREF: sub_72B0E+1F8p cmpi.b #3,d0 bhi.s loc_7264A beq.s loc_72642 cmpi.b #1,d0 bne.s loc_7263A btst #0,(byte_FFFFB488).w bra.s loc_72650 ; --------------------------------------------------------------------------- loc_7263A: ; CODE XREF: sub_72624+Cj btst #7,(byte_FFFFB489).w bra.s loc_72650 ; --------------------------------------------------------------------------- loc_72642: ; CODE XREF: sub_72624+6j btst #6,(byte_FFFFB489).w bra.s loc_72650 ; --------------------------------------------------------------------------- loc_7264A: ; CODE XREF: sub_72624+4j btst #5,(byte_FFFFB489).w loc_72650: ; CODE XREF: sub_72624+14j ; sub_72624+1Cj ... sne d0 neg.b d0 rts ; End of function sub_72624 ; =============== S U B R O U T I N E ======================================= sub_72656: ; CODE XREF: sub_72B0E+E8p cmpi.b #3,d0 bhi.s loc_7267C beq.s loc_72674 cmpi.b #1,d0 bne.s loc_7266C btst #4,(byte_FFFFB488).w bra.s loc_72682 ; --------------------------------------------------------------------------- loc_7266C: ; CODE XREF: sub_72656+Cj btst #3,(byte_FFFFB488).w bra.s loc_72682 ; --------------------------------------------------------------------------- loc_72674: ; CODE XREF: sub_72656+6j btst #2,(byte_FFFFB488).w bra.s loc_72682 ; --------------------------------------------------------------------------- loc_7267C: ; CODE XREF: sub_72656+4j btst #1,(byte_FFFFB488).w loc_72682: ; CODE XREF: sub_72656+14j ; sub_72656+1Cj ... sne d0 neg.b d0 rts ; End of function sub_72656 ; =============== S U B R O U T I N E ======================================= sub_72688: ; CODE XREF: sub_73106+8p movem.l d0-d2/a0,-(sp) moveq #5,d2 cmp.b (ThrottleControlMode2?).w,d2 bne.s loc_7269E move.w (word_FFFFB4A6).w,d3 mulu.w d2,d3 lsr.w #7,d3 bra.s loc_726B8 ; --------------------------------------------------------------------------- loc_7269E: ; CODE XREF: sub_72688+Aj move.w (word_FFFFB4A2).w,d3 mulu.w d2,d3 cmpi.l #$FFFF,d3 bhi.s loc_726B4 lsr.w #7,d3 cmpi.w #$FF,d3 bls.s loc_726B8 loc_726B4: ; CODE XREF: sub_72688+22j move.b #$FF,d3 loc_726B8: ; CODE XREF: sub_72688+14j ; sub_72688+2Aj move.b d3,d1 move.l (DI_EOS_KE_EOSD_FAULTS_THAT_DISABLE).l,d3 ; If TRUE is specified for the indexed fault group, then any active fault within that group will inhibit the EOSD diagnostic. ; Cal_Set_Of_Fault_Group_Type and.l (byte_FFFF8252).w,d3 bne.s loc_7273E btst #4,(byte_FFFFAA08).w bne.s loc_7273E tst.b (byte_FFFFAB24).w bne.s loc_7273E tst.b (byte_FFFFA45A).w bne.s loc_7273E btst #7,(byte_FFFFA7E0).w bne.s loc_7273E jsr sub_5F3CC tst.b d0 bne.s loc_7273E btst #2,(byte_FFFFA068).w bne.s loc_7273E cmp.b (byte_FFFF9954).w,d2 beq.s loc_7273E tst.b (byte_FFFFA200).w bne.s loc_7273E cmp.b (DI_EOS_KE_EOSD_SYSTEM_VOLTAGE_MAX+1).l,d1 ; Maximum system voltage above which the O2 diag will be disabled. ; Volts bcs.s loc_72710 cmp.b (DI_EOS_KE_EOSD_SYSTEM_VOLTAGE_MAX).l,d1 ; Maximum system voltage above which the O2 diag will be disabled. ; Volts bls.s loc_72730 loc_72710: ; CODE XREF: sub_72688+7Ej clr.b d1 move.w (DI_EOS_KE_EOSD_SYSTEM_VOLTAGE_TIME).l,d0 ; Length of time the voltage must stay below the minimum voltage to disable the O2 diagnostics. ; Seconds movea.l #unk_FF9CA6,a0 jsr sub_276D4 tst.b d0 bne.s loc_7272A addq.b #1,d1 loc_7272A: ; CODE XREF: sub_72688+9Ej move.b d1,(byte_FFFF9CA4).w bra.s loc_72742 ; --------------------------------------------------------------------------- loc_72730: ; CODE XREF: sub_72688+86j move.b #1,(byte_FFFF9CA4).w move.w (GlobalClock).w,(word_FFFF9CA6).w bra.s loc_72742 ; --------------------------------------------------------------------------- loc_7273E: ; CODE XREF: sub_72688+3Cj ; sub_72688+44j ... clr.b (byte_FFFF9CA4).w loc_72742: ; CODE XREF: sub_72688+A6j ; sub_72688+B4j movem.l (sp)+,d0-d2/a0 rts ; End of function sub_72688 ; =============== S U B R O U T I N E ======================================= sub_72748: ; CODE XREF: sub_73106+Ep movem.l d0-d2,-(sp) tst.b (byte_FFFF9CA4).w beq.w loc_7288E move.w (word_FFFF8242).w,d3 cmp.w (DI_EOS_KE_EOSD_RESP_ETHANOL_THRESH).l,d3 ; The ethanol percent below which the response test will be enabled. ; Percent bhi.w loc_7288E tst.b (DI_EOS_KE_EOSD_O2_RESPONSE_TEST_ENABLE).l ; Used to enable or disable the activation of the O2 response test. ; Flag beq.w loc_7288E btst #1,(byte_FFFF893A).w bne.w loc_7288E move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DI_EOS_KE_EOSD_RESP_MIN_COOLANT_TEMP).l,d3 ; Minimum coolant temperature threshold required to start data collection for the response test. ; Degrees C ble.w loc_7288E move.l (EngineRunTime).w,d3 cmpi.l #$FFFF,d3 bls.s loc_72794 move.w #$FFFF,d3 loc_72794: ; CODE XREF: sub_72748+46j cmp.w (DI_EOS_KE_EOSD_RESP_MIN_ENGINE_RUN).l,d3 ; Minimum engine run time threshold required to start data collection for the response test. ; Seconds bls.w loc_7288E move.w (word_FFFFA62A).w,d3 cmp.w (DI_EOS_KE_EOSD_RESP_PURGE_DC_MIN).l,d3 ; Minimum allowable purge duty cycle threshold which still permits data collection for the response test. ; Percent bcs.w loc_7288E move.w (word_FFFF9B50).w,d3 cmp.w (DI_EOS_KE_EOSD_LOW_FUEL_DISABLE).l,d3 ; The fuel levelbelow which certain O2 sensor diagnostics will be disabled ; Percent bcc.s loc_727C4 jsr sub_72604 tst.b d0 bne.w loc_7288E loc_727C4: ; CODE XREF: sub_72748+6Ej cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_727EA move.b (byte_FFFFA3AF).w,d3 cmpi.b #6,d3 beq.w loc_7288E cmpi.b #4,d3 beq.w loc_7288E cmpi.b #5,d3 beq.w loc_7288E loc_727EA: ; CODE XREF: sub_72748+84j moveq #1,d2 move.b (DI_EOS_KE_EOSD_NUMBER_OF_RESP_SENSORS).l,d1 move.l d2,d0 cmpi.b #1,d1 bra.w loc_7287E ; --------------------------------------------------------------------------- loc_727FC: ; CODE XREF: sub_72748:loc_7287Ej clr.l d5 move.b d0,d5 clr.w d3 move.b byte_16E9D(d5.w),d3 move.b byte_16ECB(d3.w),d3 andi.w #$FF,d3 move.w unk_FFFF9EF8(d3.w*2),d4 cmp.w DI_EOS_KV_EOSD_O2_HTR_TEMPERATURE_MIN(d3.w*2),d4 ; The front O2 heaters must be below this value to allow the response diagnostic to be enabled. ; Degrees_C blt.s loc_72878 cmp.w DI_EOS_KV_EOSD_O2_HTR_TEMPERATURE_MAX(d3.w*2),d4 ; ; bgt.s loc_72878 movea.w word_89758(d3.w*2),a2 btst #1,byte_FFFF88C0(a2.w*2) bne.s loc_72878 movea.w word_89770(d3.w*2),a2 btst #1,byte_FFFF88C0(a2.w*2) bne.s loc_72878 movea.w word_89764(d3.w*2),a2 btst #1,byte_FFFF88C0(a2.w*2) bne.s loc_72878 movea.w word_89794(d3.w*2),a2 btst #1,byte_FFFF88C0(a2.w*2) beq.s loc_7287A loc_72878: ; CODE XREF: sub_72748+DCj ; sub_72748+E6j ... clr.b d2 loc_7287A: ; CODE XREF: sub_72748+12Ej addq.b #1,d0 cmp.b d0,d1 loc_7287E: ; CODE XREF: sub_72748+B0j bcc.w loc_727FC tst.b d2 beq.s loc_7288E bset #6,(byte_FFFF9C3A).w bra.s loc_72894 ; --------------------------------------------------------------------------- loc_7288E: ; CODE XREF: sub_72748+8j ; sub_72748+16j ... bclr #6,(byte_FFFF9C3A).w loc_72894: ; CODE XREF: sub_72748+144j movem.l (sp)+,d0-d2 rts ; End of function sub_72748 ; =============== S U B R O U T I N E ======================================= sub_7289A: ; CODE XREF: sub_73106+1FCp cmpi.w #$19,d0 bne.s loc_728A8 bclr #2,(byte_FFFFB48A).w bra.s locret_728DE ; --------------------------------------------------------------------------- loc_728A8: ; CODE XREF: sub_7289A+4j cmpi.w #$1E,d0 bne.s loc_728B6 bclr #1,(byte_FFFFB48A).w bra.s locret_728DE ; --------------------------------------------------------------------------- loc_728B6: ; CODE XREF: sub_7289A+12j cmpi.w #$24,d0 ; '$' bne.s loc_728C4 bclr #0,(byte_FFFFB48A).w bra.s locret_728DE ; --------------------------------------------------------------------------- loc_728C4: ; CODE XREF: sub_7289A+20j cmpi.w #$29,d0 ; ')' bne.s loc_728D2 bclr #7,(byte_FFFFB48B).w bra.s locret_728DE ; --------------------------------------------------------------------------- loc_728D2: ; CODE XREF: sub_7289A+2Ej cmpi.w #$1F,d0 bne.s locret_728DE bclr #6,(byte_FFFFB48B).w locret_728DE: ; CODE XREF: sub_7289A+Cj ; sub_7289A+1Aj ... rts ; End of function sub_7289A ; =============== S U B R O U T I N E ======================================= sub_728E0: ; CODE XREF: sub_73106+17Cp ; sub_73106+28Ep cmpi.w #$19,d0 bne.s loc_728EE bset #2,(byte_FFFFB48A).w bra.s locret_72924 ; --------------------------------------------------------------------------- loc_728EE: ; CODE XREF: sub_728E0+4j cmpi.w #$1E,d0 bne.s loc_728FC bset #1,(byte_FFFFB48A).w bra.s locret_72924 ; --------------------------------------------------------------------------- loc_728FC: ; CODE XREF: sub_728E0+12j cmpi.w #$24,d0 ; '$' bne.s loc_7290A bset #0,(byte_FFFFB48A).w bra.s locret_72924 ; --------------------------------------------------------------------------- loc_7290A: ; CODE XREF: sub_728E0+20j cmpi.w #$29,d0 ; ')' bne.s loc_72918 bset #7,(byte_FFFFB48B).w bra.s locret_72924 ; --------------------------------------------------------------------------- loc_72918: ; CODE XREF: sub_728E0+2Ej cmpi.w #$1F,d0 bne.s locret_72924 bset #6,(byte_FFFFB48B).w locret_72924: ; CODE XREF: sub_728E0+Cj ; sub_728E0+1Aj ... rts ; End of function sub_728E0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_72926: ; CODE XREF: sub_72B06p var_63C4 = -$63C4 var_2 = -2 link a6,#-2 movem.l d0/a0,-(sp) move.b (DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS).l,d0 moveq #1,d3 cmpi.b #1,d0 bra.s loc_7297C ; --------------------------------------------------------------------------- loc_7293C: ; CODE XREF: sub_72926:loc_7297Cj clr.l d5 move.b d3,d5 movea.w d5,a0 move.b byte_897AB(d5.w),d4 cmpi.b #3,d4 bhi.s loc_72970 beq.s loc_7296C cmpi.b #1,d4 bhi.s loc_72966 beq.s loc_72960 movea.w (word_FFFF9F00).w,a2 bra.s loc_72970 ; --------------------------------------------------------------------------- loc_72960: ; CODE XREF: sub_72926+32j movea.w (word_FFFF9F02).w,a2 bra.s loc_72970 ; --------------------------------------------------------------------------- loc_72966: ; CODE XREF: sub_72926+30j movea.w (word_FFFF9F06).w,a2 bra.s loc_72970 ; --------------------------------------------------------------------------- loc_7296C: ; CODE XREF: sub_72926+2Aj movea.w (word_FFFF9F08).w,a2 loc_72970: ; CODE XREF: sub_72926+28j ; sub_72926+38j ... movea.w a2,a3 move.w a3,$A+var_63C4(a0.w*2) addq.b #1,d3 cmp.b d3,d0 loc_7297C: ; CODE XREF: sub_72926+14j bcc.s loc_7293C move.b (byte_FFFF9C59).w,(byte_FFFF9CA2).w tst.b (byte_FFFFB370).w beq.s loc_72998 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_72998 move.w (word_FFFF9050).w,d3 bra.s loc_7299C ; --------------------------------------------------------------------------- loc_72998: ; CODE XREF: sub_72926+62j ; sub_72926+6Aj move.w (word_FFFFAB66).w,d3 loc_7299C: ; CODE XREF: sub_72926+70j cmp.w (word_FFFF9CAA).w,d3 bcc.s loc_729A8 move.w d3,(word_FFFF9CAA).w bra.s loc_729B2 ; --------------------------------------------------------------------------- loc_729A8: ; CODE XREF: sub_72926+7Aj cmp.w (word_FFFF9CA8).w,d3 bls.s loc_729B2 move.w d3,(word_FFFF9CA8).w loc_729B2: ; CODE XREF: sub_72926+80j ; sub_72926+86j move.w (word_FFFF9CAE).w,var_2(a6) move.w (GlobalClock).w,d4 sub.w var_2(a6),d4 cmp.w (DI_EOS_KE_TRANSIENT_TPS_TIME).l,d4 ; Time that the min and max TPS will be measured over. ; Seconds bcs.s loc_729E8 move.w (GlobalClock).w,(word_FFFF9CAE).w move.w (word_FFFF9CA8).w,d4 sub.w (word_FFFF9CAA).w,d4 bcc.s loc_729DA clr.w d4 loc_729DA: ; CODE XREF: sub_72926+B0j move.w d4,(word_FFFF9CAC).w move.w d3,(word_FFFF9CA8).w move.w d3,(word_FFFF9CAA).w bra.s loc_729EC ; --------------------------------------------------------------------------- loc_729E8: ; CODE XREF: sub_72926+A0j clr.w (word_FFFF9CAC).w loc_729EC: ; CODE XREF: sub_72926+C0j movem.l (sp)+,d0/a0 unlk a6 rts ; End of function sub_72926 ; =============== S U B R O U T I N E ======================================= sub_729F4: ; CODE XREF: DoLoopB+200p movem.l d0/a0,-(sp) move.w (word_FFFFA0DC).w,d3 move.w (EngineRPM_PID_000C___).w,d4 cmpi.b #1,(byte_FFFFB2EF).w bne.w loc_72AF4 tst.b (byte_FFFFA89A).w bne.w loc_72AF4 tst.b (byte_FFFFA89B).w bne.w loc_72AF4 cmp.w (DI_EOS_KE_EOSD_RESP_FLOW_LOW).l,d3 ; Minimum airflow value for enabling data collection for the response test. ; GPS bcs.w loc_72AF4 cmp.w (DI_EOS_KE_EOSD_RESP_FLOW_HIGH).l,d3 ; Maximum airflow value for enabling data collection for the response test. ; GPS bhi.w loc_72AF4 cmp.w (DI_EOS_KE_EOSD_RESP_ENGINE_SPEED_LOW).l,d4 ; Mimimum engine speed for enabling data collection for the response test. ; RPM bcs.w loc_72AF4 cmp.w (DI_EOS_KE_EOSD_RESP_ENGINE_SPEED_HIGH).l,d4 ; Maximum engine speed for enabling data collection for the response test. ; RPM bhi.w loc_72AF4 tst.b (byte_FFFFB370).w beq.s loc_72A56 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_72A56 move.w (word_FFFF9050).w,d3 bra.s loc_72A5A ; --------------------------------------------------------------------------- loc_72A56: ; CODE XREF: sub_729F4+52j ; sub_729F4+5Aj move.w (word_FFFFAB66).w,d3 loc_72A5A: ; CODE XREF: sub_729F4+60j cmp.w (DI_EOS_KE_EOSD_RESP_TPS_MIN).l,d3 ; Minimum TPS required to enable the response diagnostic. ; Percent bcs.w loc_72AF4 btst #6,(byte_FFFF9C3A).w beq.w loc_72AF4 btst #7,(byte_FFFF9794).w bne.s loc_72AF4 cmpi.b #5,(byte_FFFF9954).w beq.s loc_72AF4 tst.b (byte_FFFFA200).w bne.s loc_72AF4 move.w (DI_EOS_KE_EOSD_RESP_DELAY_TIME).l,d0 ; Delay time after the response test enable criteria have been met but before starting data collection for the response test. ; Seconds movea.l #unk_FF9C7A,a0 jsr sub_276D4 tst.b d0 beq.s loc_72AA2 bset #7,(byte_FFFF9C3A).w bra.s loc_72AA8 ; --------------------------------------------------------------------------- loc_72AA2: ; CODE XREF: sub_729F4+A4j bclr #7,(byte_FFFF9C3A).w loc_72AA8: ; CODE XREF: sub_729F4+ACj btst #7,(byte_FFFF9C3A).w beq.s loc_72B00 move.w (word_FFFF9C7C).w,d3 addq.w #1,d3 bcc.s loc_72ABC move.w #$FFFF,d3 loc_72ABC: ; CODE XREF: sub_729F4+C2j move.w d3,(word_FFFF9C7C).w move.w (word_FFFFA0DC).w,d3 lsr.w #7,d3 andi.l #$FFFF,d3 add.l (dword_FFFF9C7E).w,d3 cmpi.l #$FEFF01,d3 bls.s loc_72ADE move.l #$FEFF01,d3 loc_72ADE: ; CODE XREF: sub_729F4+E2j move.l d3,(dword_FFFF9C7E).w asl.l #7,d3 divu.w (word_FFFF9C7C).w,d3 bvc.s loc_72AEE move.w #$FFFF,d3 loc_72AEE: ; CODE XREF: sub_729F4+F4j move.w d3,(word_FFFF8260).w bra.s loc_72B00 ; --------------------------------------------------------------------------- loc_72AF4: ; CODE XREF: sub_729F4+12j ; sub_729F4+1Aj ... bclr #7,(byte_FFFF9C3A).w move.w (GlobalClock).w,(word_FFFF9C7A).w loc_72B00: ; CODE XREF: sub_729F4+BAj ; sub_729F4+FEj movem.l (sp)+,d0/a0 rts ; End of function sub_729F4 ; =============== S U B R O U T I N E ======================================= sub_72B06: ; CODE XREF: DoLoopC+32Ap jsr sub_72926 rts ; End of function sub_72B06 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_72B0E: ; CODE XREF: DoLoopF+DAp var_63E0 = -$63E0 var_63CF = -$63CF var_63CB = -$63CB var_2 = -2 var_1 = -1 link a6,#-2 movem.l d0-d2/d6-a1,-(sp) tst.b (byte_FFFFB370).w beq.s loc_72B2A cmpi.b #$A,(byte_FFFF9060).w bne.s loc_72B2A movea.w (word_FFFF9050).w,a2 bra.s loc_72B2E ; --------------------------------------------------------------------------- loc_72B2A: ; CODE XREF: sub_72B0E+Cj ; sub_72B0E+14j movea.w (word_FFFFAB66).w,a2 loc_72B2E: ; CODE XREF: sub_72B0E+1Aj move.w a2,d7 tst.b (DI_EOS_KE_EOSD_O2_LEAN_TEST_ENABLE).l ; Used to enable or disable the activation of the O2 lean test. ; Flag beq.w loc_72C46 cmpi.b #6,(ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l ; Number of cylinders for this engine application. ; SHORTCARD bne.s loc_72B4C move.w (word_FFFFE0D6).w,d3 moveq #$3F,d2 ; '?' bra.s loc_72B54 ; --------------------------------------------------------------------------- loc_72B4C: ; CODE XREF: sub_72B0E+34j move.w (word_FFFFE0D6).w,d3 move.w #$FF,d2 loc_72B54: ; CODE XREF: sub_72B0E+3Cj and.w d2,d3 cmp.w d3,d2 bne.w loc_72C46 move.w (word_FFFF8242).w,d3 cmp.w (DI_EOS_KE_EOSD_LEANPE_ETHANOL_THRESH).l,d3 ; The ethanol percent below which the lean and power enrichment test will be enabled. ; Percent bhi.w loc_72C46 tst.b (byte_FFFF9CA4).w beq.w loc_72C46 move.w (word_FFFFA1EE).w,d3 cmp.w (DI_EOS_KE_EOSD_MIN_EQUIVALENCE_RATIO).l,d3 ; Minimum Equivalence Ratio to enable the lean and rich oxygen sensor range tests. ; Ratio bcs.w loc_72C46 move.w (word_FFFFA1EE).w,d3 cmp.w (DI_EOS_KE_EOSD_MAX_EQUIVALENCE_RATIO).l,d3 ; Maximum Equivalence Ratio to enable the lean and rich oxygen sensor range tests. ; Ratio bhi.w loc_72C46 move.w (word_FFFF9B50).w,d3 cmp.w (DI_EOS_KE_EOSD_LOW_FUEL_DISABLE).l,d3 ; The fuel levelbelow which certain O2 sensor diagnostics will be disabled ; Percent bcc.s loc_72BA6 jsr sub_72604 tst.b d0 bne.w loc_72C46 loc_72BA6: ; CODE XREF: sub_72B0E+8Aj cmpi.b #5,(byte_FFFF9954).w beq.w loc_72C46 tst.b (byte_FFFFA200).w bne.w loc_72C46 move.b (DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS).l,d6 moveq #1,d2 move.l d2,d3 cmp.b d6,d3 bhi.w loc_72C4C loc_72BC8: ; CODE XREF: sub_72B0E+134j clr.l d1 move.b d2,d1 cmp.w word_1735E(d1.w*2),d7 bcs.s loc_72C2C cmp.w word_17366(d1.w*2),d7 bhi.s loc_72C2C cmpi.b #1,(byte_FFFFB2EF).w bne.s loc_72BF4 tst.b (byte_FFFFA89A).w bne.s loc_72BF4 tst.b (byte_FFFFA89B).w beq.s loc_72C00 loc_72BF4: ; CODE XREF: sub_72B0E+D8j ; sub_72B0E+DEj move.l d2,d0 jsr sub_72656 tst.b d0 beq.s loc_72C2C loc_72C00: ; CODE XREF: sub_72B0E+E4j lea -$63C6(d1.w),a1 move.w (DI_EOS_KE_EOSD_LEAN_DELAY).l,d0 ; Delay time after the lean test enable criteria have been met before starting data collection for lean test. ; Seconds lea byte_FFFF9C58(d1.w*2),a0 jsr sub_276D4 tst.b d0 beq.s loc_72C24 bset #6,1(a1) bra.s loc_72C3E ; --------------------------------------------------------------------------- loc_72C24: ; CODE XREF: sub_72B0E+10Cj bclr #6,1(a1) bra.s loc_72C3E ; --------------------------------------------------------------------------- loc_72C2C: ; CODE XREF: sub_72B0E+C6j ; sub_72B0E+D0j ... lea byte_FFFF9C58(d1.w*2),a2 move.w (GlobalClock).w,(a2) bclr #6,-$63C5(d1.w) loc_72C3E: ; CODE XREF: sub_72B0E+114j ; sub_72B0E+11Cj addq.b #1,d2 cmp.b d2,d6 bcc.s loc_72BC8 bra.s loc_72C4C ; --------------------------------------------------------------------------- loc_72C46: ; CODE XREF: sub_72B0E+28j ; sub_72B0E+4Aj ... jsr sub_735CE loc_72C4C: ; CODE XREF: sub_72B0E+B6j ; sub_72B0E+136j tst.b (byte_FFFFB370).w beq.s loc_72C60 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_72C60 movea.w (word_FFFF9050).w,a2 bra.s loc_72C64 ; --------------------------------------------------------------------------- loc_72C60: ; CODE XREF: sub_72B0E+142j ; sub_72B0E+14Aj movea.w (word_FFFFAB66).w,a2 loc_72C64: ; CODE XREF: sub_72B0E+150j move.w a2,d6 move.b (DI_EOS_KE_EOSD_O2_RICH_TEST_ENABLE).l,d3 ; Used to enable or disable the activation of the O2 rich test. ; Flag and.b (byte_FFFF9CA4).w,d3 beq.w loc_72D56 move.w (word_FFFF8242).w,d3 cmp.w (DI_EOS_KE_EOSD_RICHDFCO_ETHANOL_THRESH).l,d3 ; The ethanol percent below which the rich and decel fuel cutoff test will be enabled. ; Percent bhi.w loc_72D56 move.w (word_FFFFA1EE).w,d3 cmp.w (DI_EOS_KE_EOSD_MIN_EQUIVALENCE_RATIO).l,d3 ; Minimum Equivalence Ratio to enable the lean and rich oxygen sensor range tests. ; Ratio bcs.w loc_72D56 move.w (word_FFFFA1EE).w,d3 cmp.w (DI_EOS_KE_EOSD_MAX_EQUIVALENCE_RATIO).l,d3 ; Maximum Equivalence Ratio to enable the lean and rich oxygen sensor range tests. ; Ratio bhi.w loc_72D56 move.w (word_FFFF9B50).w,d3 cmp.w (DI_EOS_KE_EOSD_LOW_FUEL_DISABLE).l,d3 ; The fuel levelbelow which certain O2 sensor diagnostics will be disabled ; Percent bcc.s loc_72CB6 jsr sub_72604 tst.b d0 bne.w loc_72D56 loc_72CB6: ; CODE XREF: sub_72B0E+19Aj cmpi.b #5,(byte_FFFF9954).w beq.w loc_72D56 tst.b (byte_FFFFA200).w bne.w loc_72D56 move.b (DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS).l,d7 moveq #1,d2 move.l d2,d3 cmp.b d7,d3 bhi.w loc_72D5C loc_72CD8: ; CODE XREF: sub_72B0E+244j clr.l d1 move.b d2,d1 cmp.w word_17376(d1.w*2),d6 bcs.s loc_72D3C cmp.w word_1737E(d1.w*2),d6 bhi.s loc_72D3C cmpi.b #1,(byte_FFFFB2EF).w bne.s loc_72D04 tst.b (byte_FFFFA89A).w bne.s loc_72D04 tst.b (byte_FFFFA89B).w beq.s loc_72D10 loc_72D04: ; CODE XREF: sub_72B0E+1E8j ; sub_72B0E+1EEj move.l d2,d0 jsr sub_72624 tst.b d0 beq.s loc_72D3C loc_72D10: ; CODE XREF: sub_72B0E+1F4j lea -$63C6(d1.w),a1 move.w (DI_EOS_KE_EOSD_RICH_DELAY).l,d0 ; Delay time after the rich test enable criteria have been met before starting data collection for rich test. ; Seconds lea unk_FFFF9C70(d1.w*2),a0 jsr sub_276D4 tst.b d0 beq.s loc_72D34 bset #3,1(a1) bra.s loc_72D4E ; --------------------------------------------------------------------------- loc_72D34: ; CODE XREF: sub_72B0E+21Cj bclr #3,1(a1) bra.s loc_72D4E ; --------------------------------------------------------------------------- loc_72D3C: ; CODE XREF: sub_72B0E+1D6j ; sub_72B0E+1E0j ... lea unk_FFFF9C70(d1.w*2),a2 move.w (GlobalClock).w,(a2) bclr #3,-$63C5(d1.w) loc_72D4E: ; CODE XREF: sub_72B0E+224j ; sub_72B0E+22Cj addq.b #1,d2 cmp.b d2,d7 bcc.s loc_72CD8 bra.s loc_72D5C ; --------------------------------------------------------------------------- loc_72D56: ; CODE XREF: sub_72B0E+162j ; sub_72B0E+170j ... jsr sub_7359E loc_72D5C: ; CODE XREF: sub_72B0E+1C6j ; sub_72B0E+246j tst.b (byte_FFFF9CA4).w beq.w loc_72E3A cmpi.b #6,(ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l ; Number of cylinders for this engine application. ; SHORTCARD bne.s loc_72D76 move.w (word_FFFFE0D6).w,d3 moveq #$3F,d7 ; '?' bra.s loc_72D7E ; --------------------------------------------------------------------------- loc_72D76: ; CODE XREF: sub_72B0E+25Ej move.w (word_FFFFE0D6).w,d3 move.w #$FF,d7 loc_72D7E: ; CODE XREF: sub_72B0E+266j and.w d7,d3 cmp.w d3,d7 bne.w loc_72E3A move.w (word_FFFF8242).w,d3 cmp.w (DI_EOS_KE_EOSD_LEANPE_ETHANOL_THRESH).l,d3 ; The ethanol percent below which the lean and power enrichment test will be enabled. ; Percent bhi.w loc_72E3A tst.b (DI_EOS_KE_EOSD_O2_PE_TEST_ENABLE).l ; Used to enable or disable the activation of the O2 PE test. ; Flag beq.w loc_72E3A tst.b (byte_FFFFA1F6).w beq.w loc_72E3A tst.b (byte_FFFFA93C).w bne.w loc_72E3A move.l (EngineRunTime).w,d3 cmpi.l #$FFFF,d3 bls.s loc_72DBE move.w #$FFFF,d3 loc_72DBE: ; CODE XREF: sub_72B0E+2AAj cmp.w (DI_EOS_KE_EOSD_PE_DFCO_RUN_TIME).l,d3 ; Engine run time above which the oxygen sensor power enrichment and DFCO tests will be enabled. ; Seconds bls.s loc_72E3A move.b (byte_FFFFB2EF).w,d3 cmpi.b #1,d3 bhi.s loc_72DD6 beq.s loc_72DD6 clr.b d7 bra.s loc_72DD8 ; --------------------------------------------------------------------------- loc_72DD6: ; CODE XREF: sub_72B0E+2C0j ; sub_72B0E+2C2j moveq #1,d7 loc_72DD8: ; CODE XREF: sub_72B0E+2C6j move.b d7,var_2(a6) beq.s loc_72E3A move.w (word_FFFF9B50).w,d3 cmp.w (DI_EOS_KE_EOSD_LOW_FUEL_DISABLE).l,d3 ; The fuel levelbelow which certain O2 sensor diagnostics will be disabled ; Percent bcc.s loc_72DF4 jsr sub_72604 tst.b d0 bne.s loc_72E3A loc_72DF4: ; CODE XREF: sub_72B0E+2DAj move.b (DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS).l,d2 moveq #1,d1 move.l d1,d7 cmp.b d2,d7 bhi.s loc_72E40 loc_72E02: ; CODE XREF: sub_72B0E+328j clr.l d3 move.b d1,d3 lea -$63C6(d3.w),a1 move.w word_1736E(d3.w*2),d0 lea unk_FFFF9C68(d3.w*2),a0 jsr sub_276D4 tst.b d0 beq.s loc_72E2C bset #4,1(a1) bra.s loc_72E32 ; --------------------------------------------------------------------------- loc_72E2C: ; CODE XREF: sub_72B0E+314j bclr #4,1(a1) loc_72E32: ; CODE XREF: sub_72B0E+31Cj addq.b #1,d1 cmp.b d1,d2 bcc.s loc_72E02 bra.s loc_72E40 ; --------------------------------------------------------------------------- loc_72E3A: ; CODE XREF: sub_72B0E+252j ; sub_72B0E+274j ... jsr sub_7356E loc_72E40: ; CODE XREF: sub_72B0E+2F2j ; sub_72B0E+32Aj move.w (word_FFFFA1EE).w,d3 cmp.w (DI_EOS_KE_EOSD_RICH_SATURATED_ER).l,d3 ; The equivalence ration below which the rich saturation counter of the DFCO test will be incremented. ; Ratio bcs.s loc_72E5A move.b (byte_FFFF9CA3).w,d3 addq.b #1,d3 bcc.s loc_72E64 move.b #$FF,d3 bra.s loc_72E64 ; --------------------------------------------------------------------------- loc_72E5A: ; CODE XREF: sub_72B0E+33Cj move.b (byte_FFFF9CA3).w,d3 subq.b #1,d3 bcc.s loc_72E64 clr.b d3 loc_72E64: ; CODE XREF: sub_72B0E+344j ; sub_72B0E+34Aj ... move.b d3,(byte_FFFF9CA3).w move.b (DI_EOS_KE_EOSD_O2_DFCO_TEST_ENABLE).l,d3 ; Used to enable or disable the activation of the O2 DFCO test. ; Flag and.b (byte_FFFF9CA4).w,d3 beq.w loc_72F54 move.w (word_FFFF8242).w,d3 cmp.w (DI_EOS_KE_EOSD_RICHDFCO_ETHANOL_THRESH).l,d3 ; The ethanol percent below which the rich and decel fuel cutoff test will be enabled. ; Percent bhi.w loc_72F54 tst.b (byte_FFFFA93A).w beq.w loc_72F54 move.l (EngineRunTime).w,d3 cmpi.l #$FFFF,d3 bls.s loc_72E9C move.w #$FFFF,d3 loc_72E9C: ; CODE XREF: sub_72B0E+388j cmp.w (DI_EOS_KE_EOSD_PE_DFCO_RUN_TIME).l,d3 ; Engine run time above which the oxygen sensor power enrichment and DFCO tests will be enabled. ; Seconds bls.w loc_72F54 move.b (byte_FFFFB2EF).w,d3 cmpi.b #1,d3 bhi.s loc_72EB6 beq.s loc_72EB6 clr.b d7 bra.s loc_72EB8 ; --------------------------------------------------------------------------- loc_72EB6: ; CODE XREF: sub_72B0E+3A0j ; sub_72B0E+3A2j moveq #1,d7 loc_72EB8: ; CODE XREF: sub_72B0E+3A6j move.b d7,var_1(a6) beq.w loc_72F54 move.w (word_FFFF9B50).w,d3 cmp.w (DI_EOS_KE_EOSD_LOW_FUEL_DISABLE).l,d3 ; The fuel levelbelow which certain O2 sensor diagnostics will be disabled ; Percent bcc.s loc_72ED6 jsr sub_72604 tst.b d0 bne.s loc_72F54 loc_72ED6: ; CODE XREF: sub_72B0E+3BCj move.b (DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS).l,d6 moveq #1,d2 move.l d2,d7 cmp.b d6,d7 bhi.s loc_72F5A loc_72EE4: ; CODE XREF: sub_72B0E+442j clr.l d1 move.b d2,d1 move.b byte_16ECB(d1.w),d3 beq.s loc_72EF8 cmpi.b #2,d3 bne.s loc_72F1A loc_72EF8: ; CODE XREF: sub_72B0E+3E2j move.w word_17356(d1.w*2),d0 lea unk_FFFF9C60(d1.w*2),a0 jsr sub_276D4 tst.b d0 beq.s loc_72F1A bset #7,-$63C5(d1.w) bra.s loc_72F4C ; --------------------------------------------------------------------------- loc_72F1A: ; CODE XREF: sub_72B0E+3E8j ; sub_72B0E+400j lea -$63C6(d1.w),a1 move.w word_17356(d1.w*2),d0 lea unk_FFFF9C60(d1.w*2),a0 jsr sub_276D4 tst.b d0 beq.s loc_72F46 tst.b (byte_FFFF9CA3).w bne.s loc_72F46 bset #7,1(a1) bra.s loc_72F4C ; --------------------------------------------------------------------------- loc_72F46: ; CODE XREF: sub_72B0E+428j ; sub_72B0E+42Ej bclr #7,1(a1) loc_72F4C: ; CODE XREF: sub_72B0E+40Aj ; sub_72B0E+436j addq.b #1,d2 cmp.b d2,d6 bcc.s loc_72EE4 bra.s loc_72F5A ; --------------------------------------------------------------------------- loc_72F54: ; CODE XREF: sub_72B0E+364j ; sub_72B0E+372j ... jsr sub_7350C loc_72F5A: ; CODE XREF: sub_72B0E+3D4j ; sub_72B0E+444j move.l (EngineRunTime).w,d3 cmpi.l #$FFFF,d3 bls.s loc_72F6A move.w #$FFFF,d3 loc_72F6A: ; CODE XREF: sub_72B0E+456j move.w d3,d1 move.b (DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS).l,d2 move.b d2,d6 moveq #1,d0 move.l d0,d5 cmp.b d6,d5 bhi.w loc_730BC loc_72F7E: ; CODE XREF: sub_72B0E+5AAj clr.l d4 move.b d0,d4 move.b byte_16ECB(d4.w),d3 beq.s loc_72F92 cmpi.b #2,d3 bne.s loc_72FCC loc_72F92: ; CODE XREF: sub_72B0E+47Cj lea -$63C6(d4.w),a2 move.b (byte_FFFF9CA4).w,d3 and.b (DI_EOS_KE_EOSD_O2_OPEN_TEST_ENABLE).l,d3 ; Used to enable or disable the activation of the O2 open test. ; Flag beq.s loc_72FC2 move.w (word_FFFF8242).w,d3 cmp.w (DI_EOS_KE_EOSD_OPEN_ETHANOL_THRESH).l,d3 ; The ethanol percent below which the open test will be enabled. ; Percent bhi.s loc_72FC2 cmp.w (DI_EOS_KE_EOSD_OPEN_ENGINE_RUN_TIME).l,d1 ; Minimum engine run time threshold to enable the oxygen sensor range tests. ; Seconds bls.s loc_72FC2 loc_72FB8: ; CODE XREF: sub_72B0E+590j bset #5,1(a2) bra.w loc_730B4 ; --------------------------------------------------------------------------- loc_72FC2: ; CODE XREF: sub_72B0E+494j ; sub_72B0E+4A0j ... bclr #5,1(a2) bra.w loc_730B4 ; --------------------------------------------------------------------------- loc_72FCC: ; CODE XREF: sub_72B0E+482j move.b (byte_FFFF9CA4).w,d5 and.b (DI_EOS_KE_EOSD_O2_OPEN_TEST_ENABLE).l,d5 ; Used to enable or disable the activation of the O2 open test. ; Flag beq.w loc_730A6 clr.l d5 move.b d3,d5 movea.w word_89758(d5.w*2),a2 btst #1,byte_FFFF88C0(a2.w*2) bne.w loc_730A6 cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_730A6 move.w (word_FFFF8242).w,d5 cmp.w (DI_EOS_KE_EOSD_OPEN_ETHANOL_THRESH).l,d5 ; The ethanol percent below which the open test will be enabled. ; Percent bhi.w loc_730A6 clr.l d5 move.b d3,d5 movea.w word_89770(d5.w*2),a2 btst #5,byte_FFFF88C0(a2.w*2) bne.w loc_730A6 andi.w #$FF,d3 movea.w word_89770(d3.w*2),a2 btst #6,byte_FFFF88C0(a2.w*2) bne.s loc_730A6 tst.b (byte_FFFF9CA2).w bne.s loc_73046 cmp.w (DI_EOS_KE_EOSD_OPEN_FAST_PASS_PERIOD).l,d1 ; Post catalyst oxygen sensor fast pass period. ; Seconds bls.s loc_73066 loc_73046: ; CODE XREF: sub_72B0E+52Ej tst.b -$63B1(d4.w) beq.s loc_7305E clr.b -$63B1(d4.w) moveq #1,d7 move.b d7,$1E+var_63CB(d4.w) bra.s loc_7306E ; --------------------------------------------------------------------------- loc_7305E: ; CODE XREF: sub_72B0E+53Ej clr.b -$63AD(d4.w) bra.s loc_7306E ; --------------------------------------------------------------------------- loc_73066: ; CODE XREF: sub_72B0E+536j moveq #1,d7 move.b d7,$1E+var_63CF(d4.w) loc_7306E: ; CODE XREF: sub_72B0E+54Ej ; sub_72B0E+556j lea -$63C6(d4.w),a2 cmp.w (DI_EOS_KE_EOSD_OPEN_ENGINE_RUN_TIME).l,d1 ; Minimum engine run time threshold to enable the oxygen sensor range tests. ; Seconds bls.w loc_72FC2 cmpi.b #1,(byte_FFFFB2EF).w bne.w loc_72FC2 tst.b (byte_FFFFA89A).w bne.w loc_72FC2 tst.b (byte_FFFFA89B).w bne.w loc_72FC2 tst.b -$63B1(d4.w) beq.w loc_72FB8 bra.w loc_72FC2 ; --------------------------------------------------------------------------- loc_730A6: ; CODE XREF: sub_72B0E+4C8j ; sub_72B0E+4E0j ... clr.b -$63B1(d4.w) bclr #5,-$63C5(d4.w) loc_730B4: ; CODE XREF: sub_72B0E+4B0j ; sub_72B0E+4BAj addq.b #1,d0 cmp.b d0,d6 bcc.w loc_72F7E loc_730BC: ; CODE XREF: sub_72B0E+46Cj moveq #1,d3 cmpi.b #1,d2 bra.s loc_730FC ; --------------------------------------------------------------------------- loc_730C4: ; CODE XREF: sub_72B0E:loc_730FCj clr.l d0 move.b d3,d0 btst #5,-$63C5(d0.w) beq.s loc_730F8 move.w (word_FFFF9CAC).w,d4 cmp.w DI_EOS_KE_EOSD_SYSTEM_VOLTAGE_MAX(d0.w*2),d4 ; Maximum system voltage above which the O2 diag will be disabled. ; Volts bcs.s loc_730F8 clr.l d1 move.b d3,d1 move.w unk_FFFF9C3E(d1.w*2),d4 addq.w #1,d4 bcc.s loc_730F2 move.w #$FFFF,d4 loc_730F2: ; CODE XREF: sub_72B0E+5DEj move.w d4,$1E+var_63E0(d0.w*2) loc_730F8: ; CODE XREF: sub_72B0E+5C2j ; sub_72B0E+5D0j addq.b #1,d3 cmp.b d3,d2 loc_730FC: ; CODE XREF: sub_72B0E+5B4j bcc.s loc_730C4 movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_72B0E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_73106: ; CODE XREF: DoLoopG+206p var_7DBD = -$7DBD var_7DB9 = -$7DB9 var_639B = -$639B var_6390 = -$6390 var_6388 = -$6388 var_636E = -$636E var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a1,-(sp) jsr sub_72688 jsr sub_72748 move.w (EngineRPM_PID_000C___).w,d3 move.w (word_FFFFA0DC).w,d4 move.b (byte_FFFF9CA4).w,d0 and.b (byte_FFFFA1A0).w,d0 beq.s loc_73196 cmp.w (DI_EOS_KE_EOSD_CURMON_ENGINE_SPEED_LOW).l,d3 ; Minimum engine speed value for enabling the oxygen sensor heater current monitor diagnostic. ; RPM bcs.s loc_73196 cmp.w (DI_EOS_KE_EOSD_CURMON_ENGINE_SPEED_HIGH).l,d3 ; Maximum engine speed value for enabling the oxygen sensor heater current monitor diagnostic. ; RPM bhi.s loc_73196 cmp.w (DI_EOS_KE_EOSD_CURMON_AIRFLOW_LOW).l,d4 ; Minimum airflow value for enabling the oxygen sensor heater current monitor. ; Grams Per Second bcs.s loc_73196 cmp.w (DI_EOS_KE_EOSD_CURMON_AIRFLOW_HIGH).l,d4 ; Maximum airflow value for enabling the oxygen sensor heater current monitor. ; Grams Per Second bhi.s loc_73196 move.l (EngineRunTime).w,d3 cmpi.l #$FFFF,d3 bls.s loc_7315C move.w #$FFFF,d3 loc_7315C: ; CODE XREF: sub_73106+50j cmp.w (DI_EOS_KE_EOSD_CURMON_ENG_RUN_TIME).l,d3 ; Engine run time above which the oxygen sensor heater current monitor test will be enabled. ; Seconds bcs.s loc_73196 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DI_EOS_KE_EOSD_CURMON_COOLANT_TEMP).l,d3 ; Coolant temperature above which the oxygen sensor heater current monitor test will be enabled. ; Degrees_C blt.s loc_73196 btst #2,(byte_FFFF9A16).w beq.s loc_73196 tst.b (byte_FFFFB473).w bne.s loc_73196 move.w (DI_EOS_KE_EOSD_CURMON_ENABLE_DELAY).l,d0 ; The delay time before which the oxygen sensor heater current monitor test will be enabled. ; Seconds movea.l #unk_FF9CA0,a0 jsr sub_276D4 move.b d0,(byte_FFFF9C82).w bra.s loc_731A0 ; --------------------------------------------------------------------------- loc_73196: ; CODE XREF: sub_73106+24j ; sub_73106+2Cj ... move.w (GlobalClock).w,(word_FFFF9CA0).w clr.b (byte_FFFF9C82).w loc_731A0: ; CODE XREF: sub_73106+8Ej move.b (DI_EOS_KE_EOSD_NUMBER_OF_HEATED_SENSORS).l,d7 ; The number of O2 sensors in which the heater test is to be done. ; Unitless move.b d7,var_2(a6) moveq #1,d6 cmpi.b #1,d7 bra.w loc_733D4 ; --------------------------------------------------------------------------- loc_731B4: ; CODE XREF: sub_73106:loc_733D4j clr.l d1 move.b d6,d1 move.b byte_16ECB(d1.w),d2 clr.w d0 move.b byte_16E07(d1.w),d0 move.b byte_16ECB(d0.w),d0 andi.w #$FF,d0 movea.w word_89758(d0.w*2),a1 tst.b (byte_FFFF9C82).w beq.w loc_73378 clr.l d7 move.b d2,d7 tst.w dword_FFFF81EA(d7.w*2) beq.s loc_731FC tst.b (DI_EOS_KE_EOSD_RCOHT_OOR_CHECK_ENABLED).l ; Indicates whether reporting of the RCOHT limit part learn out of range check is enabled. ; BOOLEAN bne.w loc_73378 loc_731FC: ; CODE XREF: sub_73106+EAj move.b -$637D(d1.w),d0 cmp.b (DI_EOS_KE_EOSD_CURMON_TEST_CTR_LIMIT).l,d0 ; The maximum number of oxygen sensor heater current monitor tests to be run during this key cycle. ; Counts bhi.w loc_733CC move.w (DI_EOS_KE_EOSD_CURMON_DELAY_TIMER).l,d0 ; The delay time between consecutive oxygen sensor current monitor tests. ; Seconds lea dword_FFFF9C84+2(d1.w*2),a0 jsr sub_276D4 tst.b d0 beq.w loc_733CC clr.l d7 move.b d6,d7 move.w dword_FFFF9C94+2(d7.w*2),d3 addq.w #1,d3 bcc.s loc_73236 move.w #$FFFF,d3 loc_73236: ; CODE XREF: sub_73106+12Aj move.w d3,$1E+var_6388(d1.w*2) clr.l d0 move.b d2,d0 move.w word_FFFF9EEA(d0.w*2),d3 cmp.w DI_EOS_KV_EOSD_CURMON_CURRENT_MIN(d0.w*2),d3 bcs.s loc_7325A cmp.w DI_EOS_KV_EOSD_CURMON_CURRENT_MAX(d0.w*2),d3 bls.s loc_73272 loc_7325A: ; CODE XREF: sub_73106+148j clr.l d2 move.b d6,d2 move.w unk_FFFF9C8E(d2.w*2),d3 addq.w #1,d3 bcc.s loc_7326C move.w #$FFFF,d3 loc_7326C: ; CODE XREF: sub_73106+160j move.w d3,$1E+var_6390(d1.w*2) loc_73272: ; CODE XREF: sub_73106+152j move.w unk_FFFF9C8E(d1.w*2),d0 cmp.w (DI_EOS_KE_EOSD_CURMON_FAIL_LIMIT).l,d0 ; The number of failure samples required to fail an oxygen sensor heatercurrent monitor test. ; Counts bls.s loc_732F0 move.l a1,d0 jsr sub_728E0 move.l a1,d0 jsr sub_5F110 clr.l d4 move.b d6,d4 move.w unk_FFFF9C8E(d4.w*2),d3 cmpi.w #$FF,d3 bls.s loc_732A4 move.b #$FF,d3 loc_732A4: ; CODE XREF: sub_73106+198j move.b d3,$1E+var_7DB9(d1.w) move.w (DI_EOS_KE_EOSD_CURMON_FAIL_LIMIT).l,d3 ; The number of failure samples required to fail an oxygen sensor heatercurrent monitor test. ; Counts cmpi.w #$FF,d3 bls.s loc_732BA move.b #$FF,d3 loc_732BA: ; CODE XREF: sub_73106+1AEj move.b d3,$1E+var_7DBD(d1.w) clr.w dword_FFFF9C94+2(d1.w*2) clr.w unk_FFFF9C8E(d1.w*2) lea dword_FFFF9C84+2(d1.w*2),a2 move.w (GlobalClock).w,(a2) clr.l d4 move.b d6,d4 move.b -$637D(d4.w),d3 addq.b #1,d3 bcs.w loc_73370 loc_732E6: ; CODE XREF: sub_73106+266j ; sub_73106+26Ej move.b d3,$1E+var_639B(d1.w) bra.w loc_733CC ; --------------------------------------------------------------------------- loc_732F0: ; CODE XREF: sub_73106+178j move.w dword_FFFF9C94+2(d1.w*2),d0 cmp.w (DI_EOS_KE_EOSD_CURMON_SAMPLE_LIMIT).l,d0 ; Number of samples required to complete an oxygen sensor heater current monitor test. ; Counts bls.w loc_733CC move.l a1,d0 jsr sub_7289A move.l a1,d0 jsr sub_5F0BE btst #6,byte_FFFF88C0(a1.w*2) bne.s loc_7334A clr.l d4 move.b d6,d4 move.w unk_FFFF9C8E(d4.w*2),d3 cmpi.w #$FF,d3 bls.s loc_7332E move.b #$FF,d3 loc_7332E: ; CODE XREF: sub_73106+222j move.b d3,$1E+var_7DB9(d1.w) move.w (DI_EOS_KE_EOSD_CURMON_FAIL_LIMIT).l,d3 ; The number of failure samples required to fail an oxygen sensor heatercurrent monitor test. ; Counts cmpi.w #$FF,d3 bls.s loc_73344 move.b #$FF,d3 loc_73344: ; CODE XREF: sub_73106+238j move.b d3,$1E+var_7DBD(d1.w) loc_7334A: ; CODE XREF: sub_73106+212j clr.w dword_FFFF9C94+2(d1.w*2) clr.w unk_FFFF9C8E(d1.w*2) lea dword_FFFF9C84+2(d1.w*2),a2 move.w (GlobalClock).w,(a2) clr.l d4 move.b d6,d4 move.b -$637D(d4.w),d3 addq.b #1,d3 bcc.w loc_732E6 loc_73370: ; CODE XREF: sub_73106+1DCj move.b #$FF,d3 bra.w loc_732E6 ; --------------------------------------------------------------------------- loc_73378: ; CODE XREF: sub_73106+DCj ; sub_73106+F2j clr.l d7 move.b d2,d7 move.w dword_FFFF81EA(d7.w*2),d0 cmp.w dword_FFFF9CB0(d7.w*2),d0 bls.s loc_733CC tst.b (DI_EOS_KE_EOSD_RCOHT_OOR_CHECK_ENABLED).l ; Indicates whether reporting of the RCOHT limit part learn out of range check is enabled. ; BOOLEAN beq.s loc_733CC move.l a1,d0 jsr sub_728E0 move.l a1,d0 jsr sub_5F110 clr.b -$7D9F(d1.w) andi.w #$FF,d2 move.w dword_FFFF81EA(d2.w*2),d3 cmpi.w #$FF,d3 bls.s loc_733BC move.b #$FF,d3 loc_733BC: ; CODE XREF: sub_73106+2B0j move.b d3,$1E+var_7DB9(d1.w) move.w dword_FFFF81EA(d7.w*2),$1E+var_636E(d7.w*2) loc_733CC: ; CODE XREF: sub_73106+102j ; sub_73106+11Aj ... addq.b #1,d6 move.b var_2(a6),d3 cmp.b d6,d3 loc_733D4: ; CODE XREF: sub_73106+AAj bcc.w loc_731B4 movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_73106 ; =============== S U B R O U T I N E ======================================= sub_733E0: ; CODE XREF: DoLoopC+278p ; sub_755FA:loc_756A2p jsr sub_735CE jsr sub_7359E jsr sub_7356E jsr sub_7350C clr.b (byte_FFFF9CA3).w jsr sub_7353C bclr #6,(byte_FFFF9C3A).w clr.b (byte_FFFF9CA4).w move.w (GlobalClock).w,(word_FFFF9CA6).w move.b (DI_EOS_KE_EOSD_NUMBER_OF_HEATED_SENSORS).l,d4 ; The number of O2 sensors in which the heater test is to be done. ; Unitless moveq #1,d3 cmpi.b #1,d4 bra.s loc_73432 ; --------------------------------------------------------------------------- loc_73420: ; CODE XREF: sub_733E0:loc_73432j clr.l d5 move.b d3,d5 lea dword_FFFF9C84+2(d5.w*2),a2 move.w (GlobalClock).w,(a2) addq.b #1,d3 cmp.b d3,d4 loc_73432: ; CODE XREF: sub_733E0+3Ej bcc.s loc_73420 clr.l (dword_FFFF9C84).w clr.l (dword_FFFF9C9C).w clr.l (dword_FFFF9C98).w clr.l (dword_FFFF9C94).w clr.l (dword_FFFF9C90).w bclr #7,(byte_FFFF9C3A).w move.w (GlobalClock).w,(word_FFFF9C7A).w clr.l (dword_FFFF9C44).w clr.l (dword_FFFF9C40).w clr.w (word_FFFF9C7C).w clr.l (dword_FFFF9C7E).w rts ; End of function sub_733E0 ; =============== S U B R O U T I N E ======================================= sub_73466: ; CODE XREF: sub_75370+234p move.l d0,-(sp) jsr sub_735CE jsr sub_7359E jsr sub_7356E jsr sub_7350C clr.b (byte_FFFF9CA3).w jsr sub_7353C clr.b (byte_FFFF9CA4).w move.w (GlobalClock).w,(word_FFFF9CA6).w move.b (DI_EOS_KE_EOSD_NUMBER_OF_HEATED_SENSORS).l,d4 ; The number of O2 sensors in which the heater test is to be done. ; Unitless moveq #1,d3 cmpi.b #1,d4 bra.s loc_734B4 ; --------------------------------------------------------------------------- loc_734A2: ; CODE XREF: sub_73466:loc_734B4j clr.l d0 move.b d3,d0 lea dword_FFFF9C84+2(d0.w*2),a2 move.w (GlobalClock).w,(a2) addq.b #1,d3 cmp.b d3,d4 loc_734B4: ; CODE XREF: sub_73466+3Aj bcc.s loc_734A2 clr.l (dword_FFFF8262).w clr.l (dword_FFFF8266).w clr.l (dword_FFFF9C84).w clr.l (dword_FFFF9C9C).w clr.l (dword_FFFF9C98).w clr.l (dword_FFFF9C94).w clr.l (dword_FFFF9C90).w clr.l (dword_FFFF9CB4).w clr.l (dword_FFFF9CB0).w clr.l (dword_FFFF81EE).w clr.l (dword_FFFF81EA).w jsr sub_735FE bclr #7,(byte_FFFF9C3A).w move.w (GlobalClock).w,(word_FFFF9C7A).w clr.l (dword_FFFF9C44).w clr.l (dword_FFFF9C40).w clr.w (word_FFFF9C7C).w clr.l (dword_FFFF9C7E).w clr.w (word_FFFF8260).w move.l (sp)+,d0 rts ; End of function sub_73466 ; =============== S U B R O U T I N E ======================================= sub_7350C: ; CODE XREF: sub_72B0E:loc_72F54p ; sub_733E0+12p ... move.l d0,-(sp) move.b (DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS).l,d4 moveq #1,d3 cmpi.b #1,d4 bra.s loc_73536 ; --------------------------------------------------------------------------- loc_7351C: ; CODE XREF: sub_7350C:loc_73536j clr.l d0 move.b d3,d0 bclr #7,-$63C5(d0.w) lea unk_FFFF9C60(d0.w*2),a2 move.w (GlobalClock).w,(a2) addq.b #1,d3 cmp.b d3,d4 loc_73536: ; CODE XREF: sub_7350C+Ej bcc.s loc_7351C move.l (sp)+,d0 rts ; End of function sub_7350C ; =============== S U B R O U T I N E ======================================= sub_7353C: ; CODE XREF: sub_733E0+1Cp ; sub_73466+1Ep ... move.l d0,-(sp) move.b (DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS).l,d0 moveq #1,d3 cmpi.b #1,d0 bra.s loc_73568 ; --------------------------------------------------------------------------- loc_7354C: ; CODE XREF: sub_7353C:loc_73568j clr.l d4 move.b d3,d4 bclr #5,-$63C5(d4.w) clr.b -$63B1(d4.w) clr.b -$63AD(d4.w) addq.b #1,d3 cmp.b d3,d0 loc_73568: ; CODE XREF: sub_7353C+Ej bcc.s loc_7354C move.l (sp)+,d0 rts ; End of function sub_7353C ; =============== S U B R O U T I N E ======================================= sub_7356E: ; CODE XREF: sub_72B0E:loc_72E3Ap ; sub_733E0+Cp ... move.l d0,-(sp) move.b (DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS).l,d4 moveq #1,d3 cmpi.b #1,d4 bra.s loc_73598 ; --------------------------------------------------------------------------- loc_7357E: ; CODE XREF: sub_7356E:loc_73598j clr.l d0 move.b d3,d0 bclr #4,-$63C5(d0.w) lea unk_FFFF9C68(d0.w*2),a2 move.w (GlobalClock).w,(a2) addq.b #1,d3 cmp.b d3,d4 loc_73598: ; CODE XREF: sub_7356E+Ej bcc.s loc_7357E move.l (sp)+,d0 rts ; End of function sub_7356E ; =============== S U B R O U T I N E ======================================= sub_7359E: ; CODE XREF: sub_72B0E:loc_72D56p ; sub_733E0+6p ... move.l d0,-(sp) move.b (DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS).l,d4 moveq #1,d3 cmpi.b #1,d4 bra.s loc_735C8 ; --------------------------------------------------------------------------- loc_735AE: ; CODE XREF: sub_7359E:loc_735C8j clr.l d0 move.b d3,d0 lea unk_FFFF9C70(d0.w*2),a2 move.w (GlobalClock).w,(a2) bclr #3,-$63C5(d0.w) addq.b #1,d3 cmp.b d3,d4 loc_735C8: ; CODE XREF: sub_7359E+Ej bcc.s loc_735AE move.l (sp)+,d0 rts ; End of function sub_7359E ; =============== S U B R O U T I N E ======================================= sub_735CE: ; CODE XREF: sub_72B0E:loc_72C46p ; sub_733E0p ... move.l d0,-(sp) move.b (DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS).l,d4 moveq #1,d3 cmpi.b #1,d4 bra.s loc_735F8 ; --------------------------------------------------------------------------- loc_735DE: ; CODE XREF: sub_735CE:loc_735F8j clr.l d0 move.b d3,d0 bclr #6,-$63C5(d0.w) lea byte_FFFF9C58(d0.w*2),a2 move.w (GlobalClock).w,(a2) addq.b #1,d3 cmp.b d3,d4 loc_735F8: ; CODE XREF: sub_735CE+Ej bcc.s loc_735DE move.l (sp)+,d0 rts ; End of function sub_735CE ; =============== S U B R O U T I N E ======================================= sub_735FE: ; CODE XREF: sub_73466+7Cp ; OS3:00073708p clr.l (dword_FFFF8262).w clr.l (dword_FFFF8266).w rts ; End of function sub_735FE ; =============== S U B R O U T I N E ======================================= sub_73608: ; CODE XREF: OS3:000736FAp ; OS3:0007377Cp move.l d0,-(sp) move.w (word_FFFFB3EE).w,d3 move.w (word_FFFFADB4).w,d4 tst.b (byte_FFFFB370).w beq.s loc_73626 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_73626 movea.w (word_FFFF9050).w,a2 bra.s loc_7362A ; --------------------------------------------------------------------------- loc_73626: ; CODE XREF: sub_73608+Ej ; sub_73608+16j movea.w (word_FFFFAB66).w,a2 loc_7362A: ; CODE XREF: sub_73608+1Cj move.w a2,(word_FFFF9CA8).w tst.b (byte_FFFFB370).w beq.s loc_73642 cmpi.b #$A,(byte_FFFF9060).w bne.s loc_73642 movea.w (word_FFFF9050).w,a2 bra.s loc_73646 ; --------------------------------------------------------------------------- loc_73642: ; CODE XREF: sub_73608+2Aj ; sub_73608+32j movea.w (word_FFFFAB66).w,a2 loc_73646: ; CODE XREF: sub_73608+38j move.w a2,(word_FFFF9CAA).w clr.b d0 cmp.w (DI_EOS_KE_O2_DIAG_COLD_START_COOLANT).l,d4 ; Powerup coolant temperature must be less than this for an O2 diagnostic cold start. ; Degrees_C bge.s loc_73680 cmp.w (DI_EOS_KE_O2_DIAG_COLD_START_AMBIENT).l,d3 ; Powerup ambient temperature must be less than this for an O2 diagnostic cold start. ; Degrees_C bge.s loc_73680 sub.w d3,d4 cmpi.w #$F32,d4 bgt.s loc_7366C cmpi.w #$FC00,d4 blt.s loc_73672 bra.s loc_73676 ; --------------------------------------------------------------------------- loc_7366C: ; CODE XREF: sub_73608+5Aj move.w #$F32,d4 bra.s loc_73676 ; --------------------------------------------------------------------------- loc_73672: ; CODE XREF: sub_73608+60j move.w #$FC00,d4 loc_73676: ; CODE XREF: sub_73608+62j ; sub_73608+68j cmp.w (DI_EOS_KE_O2_DIAG_COLD_START_DELTA).l,d4 bge.s loc_73680 addq.b #1,d0 loc_73680: ; CODE XREF: sub_73608+4Aj ; sub_73608+52j ... move.b d0,(byte_FFFF9C59).w move.l (sp)+,d0 rts ; End of function sub_73608 ; =============== S U B R O U T I N E ======================================= sub_73688: ; CODE XREF: OS1:00029162p move.l d1,-(sp) andi.w #$FF,d0 movea.l off_8A0E4(d0.w*4),a2 jmp (a2) ; End of function sub_73688 ; --------------------------------------------------------------------------- loc_73698: ; DATA XREF: OS4:0008A0ECo jsr sub_735CE jsr sub_7359E jsr sub_7356E jsr sub_7350C move.w (GlobalClock).w,(word_FFFF9C7A).w move.w (GlobalClock).w,(word_FFFF9CA6).w move.w (GlobalClock).w,(word_FFFF9CA0).w move.b (DI_EOS_KE_EOSD_NUMBER_OF_HEATED_SENSORS).l,d1 ; The number of O2 sensors in which the heater test is to be done. ; Unitless moveq #1,d3 cmpi.b #1,d1 bra.s loc_736F8 ; --------------------------------------------------------------------------- loc_736D0: ; CODE XREF: OS3:loc_736F8j clr.l d4 move.b d3,d4 lea dword_FFFF9C84+2(d4.w*2),a2 move.w (GlobalClock).w,(a2) move.b byte_16ECB(d4.w),d0 clr.l d5 move.b d0,d5 move.w dword_FFFF81EA(d5.w*2),dword_FFFF9CB0(d5.w*2) addq.b #1,d3 cmp.b d3,d1 loc_736F8: ; CODE XREF: OS3:000736CEj bcc.s loc_736D0 jsr sub_73608 tst.b (byte_FFFFB54A).w bne.w loc_73822 jsr sub_735FE clr.w (word_FFFF8260).w bra.w loc_73822 ; --------------------------------------------------------------------------- loc_73716: ; DATA XREF: OS4:0008A0F0o ; OS4:0008A0FCo jsr sub_735CE jsr sub_7359E jsr sub_7356E jsr sub_7350C bclr #6,(byte_FFFF9C3A).w clr.b (byte_FFFF9CA3).w jsr sub_7353C clr.b (byte_FFFF9CA4).w clr.b (byte_FFFF9C82).w clr.l (dword_FFFF9C84).w clr.l (dword_FFFF9C9C).w clr.l (dword_FFFF9C98).w clr.l (dword_FFFF9C94).w clr.l (dword_FFFF9C90).w bclr #7,(byte_FFFF9C3A).w move.w (GlobalClock).w,(word_FFFF9C7A).w move.w (GlobalClock).w,(word_FFFF9CA6).w clr.w (word_FFFF9C7C).w clr.l (dword_FFFF9C7E).w clr.l (dword_FFFF9C44).w clr.l (dword_FFFF9C40).w jsr sub_73608 move.w (GlobalClock).w,(word_FFFF9CA0).w move.b (DI_EOS_KE_EOSD_NUMBER_OF_HEATED_SENSORS).l,d4 ; The number of O2 sensors in which the heater test is to be done. ; Unitless moveq #1,d3 cmpi.b #1,d4 bra.s loc_737A8 ; --------------------------------------------------------------------------- loc_73796: ; CODE XREF: OS3:loc_737A8j clr.l d5 move.b d3,d5 lea dword_FFFF9C84+2(d5.w*2),a2 move.w (GlobalClock).w,(a2) addq.b #1,d3 cmp.b d3,d4 loc_737A8: ; CODE XREF: OS3:00073794j bcc.s loc_73796 bra.s loc_7381E ; --------------------------------------------------------------------------- loc_737AC: ; DATA XREF: OS4:off_8A0E4o jsr sub_735CE jsr sub_7359E jsr sub_7356E jsr sub_7350C clr.b (byte_FFFF9CA3).w bclr #7,(byte_FFFF9C3A).w move.w (GlobalClock).w,(word_FFFF9C7A).w clr.w (word_FFFF9C7C).w clr.l (dword_FFFF9C7E).w clr.b (byte_FFFF9C82).w clr.l (dword_FFFF9C84).w clr.l (dword_FFFF9C9C).w clr.l (dword_FFFF9C98).w clr.l (dword_FFFF9C94).w clr.l (dword_FFFF9C90).w move.w (GlobalClock).w,(word_FFFF9CA0).w move.b (DI_EOS_KE_EOSD_NUMBER_OF_HEATED_SENSORS).l,d4 ; The number of O2 sensors in which the heater test is to be done. ; Unitless moveq #1,d3 cmpi.b #1,d4 bra.s loc_7381A ; --------------------------------------------------------------------------- loc_73808: ; CODE XREF: OS3:loc_7381Aj clr.l d5 move.b d3,d5 lea dword_FFFF9C84+2(d5.w*2),a2 move.w (GlobalClock).w,(a2) addq.b #1,d3 cmp.b d3,d4 loc_7381A: ; CODE XREF: OS3:00073806j bcc.s loc_73808 bra.s loc_73822 ; --------------------------------------------------------------------------- loc_7381E: ; CODE XREF: OS3:000737AAj ; DATA XREF: OS4:0008A108o clr.b (byte_FFFF9C58).w loc_73822: ; CODE XREF: OS3:00073704j ; OS3:00073712j ... move.l (sp)+,d1 rts ; =============== S U B R O U T I N E ======================================= sub_73826: ; CODE XREF: sub_714E0+F8p ; sub_714E0+1BAp ... cmpi.w #$18,d0 bne.s loc_73836 bclr #4,(byte_FFFFB489).w bra.w locret_73930 ; --------------------------------------------------------------------------- loc_73836: ; CODE XREF: sub_73826+4j cmpi.w #$23,d0 ; '#' bne.s loc_73846 bclr #2,(byte_FFFFB489).w bra.w locret_73930 ; --------------------------------------------------------------------------- loc_73846: ; CODE XREF: sub_73826+14j cmpi.w #$1D,d0 bne.s loc_73856 bclr #3,(byte_FFFFB489).w bra.w locret_73930 ; --------------------------------------------------------------------------- loc_73856: ; CODE XREF: sub_73826+24j cmpi.w #$28,d0 ; '(' bne.s loc_73866 bclr #1,(byte_FFFFB489).w bra.w locret_73930 ; --------------------------------------------------------------------------- loc_73866: ; CODE XREF: sub_73826+34j cmpi.w #$16,d0 bne.s loc_73876 bclr #0,(byte_FFFFB488).w bra.w locret_73930 ; --------------------------------------------------------------------------- loc_73876: ; CODE XREF: sub_73826+44j cmpi.w #$21,d0 ; '!' bne.s loc_73886 bclr #6,(byte_FFFFB489).w bra.w locret_73930 ; --------------------------------------------------------------------------- loc_73886: ; CODE XREF: sub_73826+54j cmpi.w #$1C,d0 bne.s loc_73896 bclr #7,(byte_FFFFB489).w bra.w locret_73930 ; --------------------------------------------------------------------------- loc_73896: ; CODE XREF: sub_73826+64j cmpi.w #$27,d0 ; ''' bne.s loc_738A6 bclr #5,(byte_FFFFB489).w bra.w locret_73930 ; --------------------------------------------------------------------------- loc_738A6: ; CODE XREF: sub_73826+74j cmpi.w #$15,d0 bne.s loc_738B4 bclr #4,(byte_FFFFB488).w bra.s locret_73930 ; --------------------------------------------------------------------------- loc_738B4: ; CODE XREF: sub_73826+84j cmpi.w #$20,d0 ; ' ' bne.s loc_738C2 bclr #2,(byte_FFFFB488).w bra.s locret_73930 ; --------------------------------------------------------------------------- loc_738C2: ; CODE XREF: sub_73826+92j cmpi.w #$1B,d0 bne.s loc_738D0 bclr #3,(byte_FFFFB488).w bra.s locret_73930 ; --------------------------------------------------------------------------- loc_738D0: ; CODE XREF: sub_73826+A0j cmpi.w #$26,d0 ; '&' bne.s loc_738DE bclr #1,(byte_FFFFB488).w bra.s locret_73930 ; --------------------------------------------------------------------------- loc_738DE: ; CODE XREF: sub_73826+AEj cmpi.w #$17,d0 bne.s loc_738EC bclr #0,(byte_FFFFB489).w bra.s locret_73930 ; --------------------------------------------------------------------------- loc_738EC: ; CODE XREF: sub_73826+BCj cmpi.w #$22,d0 ; '"' bne.s loc_738FA bclr #7,(byte_FFFFB48A).w bra.s locret_73930 ; --------------------------------------------------------------------------- loc_738FA: ; CODE XREF: sub_73826+CAj cmpi.w #$B6,d0 ; '?' bne.s loc_73908 bclr #5,(byte_FFFFB48A).w bra.s locret_73930 ; --------------------------------------------------------------------------- loc_73908: ; CODE XREF: sub_73826+D8j cmpi.w #$B2,d0 ; '?' bne.s loc_73916 bclr #6,(byte_FFFFB48A).w bra.s locret_73930 ; --------------------------------------------------------------------------- loc_73916: ; CODE XREF: sub_73826+E6j cmpi.w #$B1,d0 ; '?' bne.s loc_73924 bclr #4,(byte_FFFFB48A).w bra.s locret_73930 ; --------------------------------------------------------------------------- loc_73924: ; CODE XREF: sub_73826+F4j cmpi.w #$B5,d0 ; '?' bne.s locret_73930 bclr #3,(byte_FFFFB48A).w locret_73930: ; CODE XREF: sub_73826+Cj ; sub_73826+1Cj ... rts ; End of function sub_73826 ; =============== S U B R O U T I N E ======================================= sub_73932: ; CODE XREF: sub_714E0+178p ; sub_714E0+2C0p ... cmpi.w #$18,d0 bne.s loc_73942 bset #4,(byte_FFFFB489).w bra.w locret_73A3C ; --------------------------------------------------------------------------- loc_73942: ; CODE XREF: sub_73932+4j cmpi.w #$23,d0 ; '#' bne.s loc_73952 bset #2,(byte_FFFFB489).w bra.w locret_73A3C ; --------------------------------------------------------------------------- loc_73952: ; CODE XREF: sub_73932+14j cmpi.w #$1D,d0 bne.s loc_73962 bset #3,(byte_FFFFB489).w bra.w locret_73A3C ; --------------------------------------------------------------------------- loc_73962: ; CODE XREF: sub_73932+24j cmpi.w #$28,d0 ; '(' bne.s loc_73972 bset #1,(byte_FFFFB489).w bra.w locret_73A3C ; --------------------------------------------------------------------------- loc_73972: ; CODE XREF: sub_73932+34j cmpi.w #$16,d0 bne.s loc_73982 bset #0,(byte_FFFFB488).w bra.w locret_73A3C ; --------------------------------------------------------------------------- loc_73982: ; CODE XREF: sub_73932+44j cmpi.w #$21,d0 ; '!' bne.s loc_73992 bset #6,(byte_FFFFB489).w bra.w locret_73A3C ; --------------------------------------------------------------------------- loc_73992: ; CODE XREF: sub_73932+54j cmpi.w #$1C,d0 bne.s loc_739A2 bset #7,(byte_FFFFB489).w bra.w locret_73A3C ; --------------------------------------------------------------------------- loc_739A2: ; CODE XREF: sub_73932+64j cmpi.w #$27,d0 ; ''' bne.s loc_739B2 bset #5,(byte_FFFFB489).w bra.w locret_73A3C ; --------------------------------------------------------------------------- loc_739B2: ; CODE XREF: sub_73932+74j cmpi.w #$15,d0 bne.s loc_739C0 bset #4,(byte_FFFFB488).w bra.s locret_73A3C ; --------------------------------------------------------------------------- loc_739C0: ; CODE XREF: sub_73932+84j cmpi.w #$20,d0 ; ' ' bne.s loc_739CE bset #2,(byte_FFFFB488).w bra.s locret_73A3C ; --------------------------------------------------------------------------- loc_739CE: ; CODE XREF: sub_73932+92j cmpi.w #$1B,d0 bne.s loc_739DC bset #3,(byte_FFFFB488).w bra.s locret_73A3C ; --------------------------------------------------------------------------- loc_739DC: ; CODE XREF: sub_73932+A0j cmpi.w #$26,d0 ; '&' bne.s loc_739EA bset #1,(byte_FFFFB488).w bra.s locret_73A3C ; --------------------------------------------------------------------------- loc_739EA: ; CODE XREF: sub_73932+AEj cmpi.w #$17,d0 bne.s loc_739F8 bset #0,(byte_FFFFB489).w bra.s locret_73A3C ; --------------------------------------------------------------------------- loc_739F8: ; CODE XREF: sub_73932+BCj cmpi.w #$22,d0 ; '"' bne.s loc_73A06 bset #7,(byte_FFFFB48A).w bra.s locret_73A3C ; --------------------------------------------------------------------------- loc_73A06: ; CODE XREF: sub_73932+CAj cmpi.w #$B6,d0 ; '?' bne.s loc_73A14 bset #5,(byte_FFFFB48A).w bra.s locret_73A3C ; --------------------------------------------------------------------------- loc_73A14: ; CODE XREF: sub_73932+D8j cmpi.w #$B2,d0 ; '?' bne.s loc_73A22 bset #6,(byte_FFFFB48A).w bra.s locret_73A3C ; --------------------------------------------------------------------------- loc_73A22: ; CODE XREF: sub_73932+E6j cmpi.w #$B1,d0 ; '?' bne.s loc_73A30 bset #4,(byte_FFFFB48A).w bra.s locret_73A3C ; --------------------------------------------------------------------------- loc_73A30: ; CODE XREF: sub_73932+F4j cmpi.w #$B5,d0 ; '?' bne.s locret_73A3C bset #3,(byte_FFFFB48A).w locret_73A3C: ; CODE XREF: sub_73932+Cj ; sub_73932+1Cj ... rts ; End of function sub_73932 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_73A3E: ; CODE XREF: DoLoopG:loc_2B206p var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d2,-(sp) tst.b (byte_FFFFAD22).w beq.w loc_74012 tst.b (byte_FFFFB4A4).w bne.s loc_73AD2 tst.b (byte_FFFFB4A0).w bne.s loc_73AD2 move.w (EngineRPM_PID_000C___).w,d1 cmp.w (DG_ODM_KE_OUTPUT_DRIVER_ENGINE_SPEED_TH).l,d1 ; Above this speed, output driver diagnostics may be enabled. ; RPM bls.s loc_73AD2 tst.b (byte_FFFFA1CC).w beq.s loc_73A76 clr.b d1 move.l d1,d0 jsr sub_740E0 loc_73A76: ; CODE XREF: sub_73A3E+2Cj move.b (byte_FFFFA1CD).w,d1 or.b (byte_FFFFA1CE).w,d1 beq.s loc_73A8A moveq #1,d1 clr.b d0 jsr sub_740E0 loc_73A8A: ; CODE XREF: sub_73A3E+40j tst.b (byte_FFFFA1CF).w beq.s loc_73A9A moveq #3,d1 clr.b d0 jsr sub_740E0 loc_73A9A: ; CODE XREF: sub_73A3E+50j tst.b (byte_FFFFA1D0).w beq.s loc_73AAA moveq #4,d1 clr.b d0 jsr sub_740E0 loc_73AAA: ; CODE XREF: sub_73A3E+60j move.b (byte_FFFFA1D1).w,d1 or.b (byte_FFFFA1D2).w,d1 beq.s loc_73ABE moveq #5,d1 clr.b d0 jsr sub_740E0 loc_73ABE: ; CODE XREF: sub_73A3E+74j move.b (byte_FFFFA1D3).w,d1 or.b (byte_FFFFA1D4).w,d1 beq.s loc_73AD2 moveq #6,d1 clr.b d0 jsr sub_740E0 loc_73AD2: ; CODE XREF: sub_73A3E+14j ; sub_73A3E+1Aj ... tst.b (byte_FFFFB4A4).w bne.s loc_73B2E tst.b (byte_FFFFB4A0).w bne.s loc_73B2E move.w (EngineRPM_PID_000C___).w,d1 cmp.w (DG_ODM_KE_OUTPUT_DRIVER_ENGINE_SPEED_TH).l,d1 ; Above this speed, output driver diagnostics may be enabled. ; RPM bls.s loc_73B2E move.b (byte_FFFFA1D5).w,d1 or.b (byte_FFFFA1D6).w,d1 beq.s loc_73AFE clr.b d1 moveq #1,d0 jsr sub_740E0 loc_73AFE: ; CODE XREF: sub_73A3E+B4j tst.b (byte_FFFFA1D7).w beq.s loc_73B0E moveq #1,d1 move.l d1,d0 jsr sub_740E0 loc_73B0E: ; CODE XREF: sub_73A3E+C4j tst.b (byte_FFFFA1D8).w beq.s loc_73B1E moveq #2,d1 moveq #1,d0 jsr sub_740E0 loc_73B1E: ; CODE XREF: sub_73A3E+D4j tst.b (byte_FFFFA1D9).w beq.s loc_73B2E moveq #6,d1 moveq #1,d0 jsr sub_740E0 loc_73B2E: ; CODE XREF: sub_73A3E+98j ; sub_73A3E+9Ej ... tst.b (byte_FFFFB4A4).w bne.s loc_73B8A tst.b (byte_FFFFB4A0).w bne.s loc_73B8A move.w (EngineRPM_PID_000C___).w,d1 cmp.w (DG_ODM_KE_OUTPUT_DRIVER_ENGINE_SPEED_TH).l,d1 ; Above this speed, output driver diagnostics may be enabled. ; RPM bls.s loc_73B8A tst.b (byte_FFFFA1DA).w beq.s loc_73B56 clr.b d1 moveq #2,d0 jsr sub_740E0 loc_73B56: ; CODE XREF: sub_73A3E+10Cj move.b (byte_FFFFA1DB).w,d1 or.b (byte_FFFFA1DC).w,d1 beq.s loc_73B6A moveq #4,d1 moveq #2,d0 jsr sub_740E0 loc_73B6A: ; CODE XREF: sub_73A3E+120j tst.b (byte_FFFFA1DD).w beq.s loc_73B7A moveq #5,d1 moveq #2,d0 jsr sub_740E0 loc_73B7A: ; CODE XREF: sub_73A3E+130j tst.b (byte_FFFFA1DE).w beq.s loc_73B8A moveq #6,d1 moveq #2,d0 jsr sub_740E0 loc_73B8A: ; CODE XREF: sub_73A3E+F4j ; sub_73A3E+FAj ... tst.b (byte_FFFFB4A4).w bne.w loc_73E12 tst.b (byte_FFFFB4A0).w bne.w loc_73E12 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DG_ODM_KE_OUTPUT_DRIVER_ENGINE_SPEED_TH).l,d3 ; Above this speed, output driver diagnostics may be enabled. ; RPM bls.w loc_73E12 tst.b (byte_FFFFA1C3).w beq.s loc_73C20 clr.w var_4(a6) addq.b #1,(byte_FFFFA610).w move.w (word_FFFFBF0C).w,var_2(a6) move.w #$87,var_4(a6) ; '?' move.b var_2(a6),d3 moveq #$7F,d1 ; '' and.b d1,d3 btst #0,d3 bne.s loc_73BDC move.b var_2+1(a6),d3 and.b d1,d3 btst #0,d3 beq.s loc_73C02 loc_73BDC: ; CODE XREF: sub_73A3E+190j move.b (byte_FFFFA60A).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFA60A).w cmp.b (DG_ODM_KV_ODM_FAIL_COUNTER).l,d3 bcs.s loc_73C20 move.w var_4(a6),d0 jsr sub_5F110 clr.b (byte_FFFFA60A).w clr.b (byte_FFFFA610).w bra.s loc_73C20 ; --------------------------------------------------------------------------- loc_73C02: ; CODE XREF: sub_73A3E+19Cj move.b (byte_FFFFA610).w,d0 cmp.b (DG_ODM_KV_ODM_SAMPLE_COUNTER).l,d0 bcs.s loc_73C20 clr.b (byte_FFFFA60A).w clr.b (byte_FFFFA610).w move.w var_4(a6),d0 jsr sub_5F0BE loc_73C20: ; CODE XREF: sub_73A3E+16Ej ; sub_73A3E+1AEj ... tst.b (byte_FFFFA1C5).w beq.s loc_73C96 clr.w var_4(a6) addq.b #1,(unk_FFFFA611).w move.w (word_FFFFBF0C).w,var_2(a6) move.w #$82,var_4(a6) ; '?' move.b var_2(a6),d3 moveq #$7F,d1 ; '' and.b d1,d3 moveq #1,d2 btst d2,d3 bne.s loc_73C52 move.b var_2+1(a6),d3 and.b d1,d3 btst d2,d3 beq.s loc_73C78 loc_73C52: ; CODE XREF: sub_73A3E+208j move.b (unk_FFFFA60B).w,d3 addq.b #1,d3 move.b d3,(unk_FFFFA60B).w cmp.b (byte_173B7).l,d3 bcs.s loc_73C96 move.w var_4(a6),d0 jsr sub_5F110 clr.b (unk_FFFFA60B).w clr.b (unk_FFFFA611).w bra.s loc_73C96 ; --------------------------------------------------------------------------- loc_73C78: ; CODE XREF: sub_73A3E+212j move.b (unk_FFFFA611).w,d0 cmp.b (byte_173BD).l,d0 bcs.s loc_73C96 clr.b (unk_FFFFA60B).w clr.b (unk_FFFFA611).w move.w var_4(a6),d0 jsr sub_5F0BE loc_73C96: ; CODE XREF: sub_73A3E+1E6j ; sub_73A3E+224j ... tst.b (byte_FFFFA1C4).w beq.s loc_73D0C clr.w var_4(a6) addq.b #1,(byte_FFFFA612).w move.w (word_FFFFBF0C).w,var_2(a6) move.w #$81,var_4(a6) ; '?' move.b var_2(a6),d3 moveq #$7F,d1 ; '' and.b d1,d3 moveq #2,d2 btst d2,d3 bne.s loc_73CC8 move.b var_2+1(a6),d3 and.b d1,d3 btst d2,d3 beq.s loc_73CEE loc_73CC8: ; CODE XREF: sub_73A3E+27Ej move.b (byte_FFFFA60C).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFA60C).w cmp.b (byte_173B8).l,d3 bcs.s loc_73D0C move.w var_4(a6),d0 jsr sub_5F110 clr.b (byte_FFFFA60C).w clr.b (byte_FFFFA612).w bra.s loc_73D0C ; --------------------------------------------------------------------------- loc_73CEE: ; CODE XREF: sub_73A3E+288j move.b (byte_FFFFA612).w,d0 cmp.b (byte_173BE).l,d0 bcs.s loc_73D0C clr.b (byte_FFFFA60C).w clr.b (byte_FFFFA612).w move.w var_4(a6),d0 jsr sub_5F0BE loc_73D0C: ; CODE XREF: sub_73A3E+25Cj ; sub_73A3E+29Aj ... move.b (byte_FFFFA1C2).w,d3 or.b (byte_FFFFA1C0).w,d3 beq.w loc_73D9C clr.w var_4(a6) addq.b #1,(byte_FFFFA613).w move.w (word_FFFFBF0C).w,var_2(a6) tst.b (byte_FFFFA1C0).w beq.s loc_73D34 move.w #$A3,var_4(a6) ; '?' bra.s loc_73D40 ; --------------------------------------------------------------------------- loc_73D34: ; CODE XREF: sub_73A3E+2ECj tst.b (byte_FFFFA1C2).w beq.s loc_73D40 move.w #$CF,var_4(a6) ; '?' loc_73D40: ; CODE XREF: sub_73A3E+2F4j ; sub_73A3E+2FAj move.b var_2(a6),d3 moveq #$7F,d1 ; '' and.b d1,d3 moveq #5,d2 btst d2,d3 bne.s loc_73D58 move.b var_2+1(a6),d3 and.b d1,d3 btst d2,d3 beq.s loc_73D7E loc_73D58: ; CODE XREF: sub_73A3E+30Ej move.b (byte_FFFFA60D).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFA60D).w cmp.b (byte_173B9).l,d3 bcs.s loc_73D9C move.w var_4(a6),d0 jsr sub_5F110 clr.b (byte_FFFFA60D).w clr.b (byte_FFFFA613).w bra.s loc_73D9C ; --------------------------------------------------------------------------- loc_73D7E: ; CODE XREF: sub_73A3E+318j move.b (byte_FFFFA613).w,d0 cmp.b (byte_173BF).l,d0 bcs.s loc_73D9C clr.b (byte_FFFFA60D).w clr.b (byte_FFFFA613).w move.w var_4(a6),d0 jsr sub_5F0BE loc_73D9C: ; CODE XREF: sub_73A3E+2D6j ; sub_73A3E+32Aj ... tst.b (byte_FFFFA1C1).w beq.s loc_73E12 clr.w var_4(a6) addq.b #1,(byte_FFFFA614).w move.w (word_FFFFBF0C).w,var_2(a6) move.w #$D5,var_4(a6) ; '?' move.b var_2(a6),d3 moveq #$7F,d1 ; '' and.b d1,d3 moveq #6,d2 btst d2,d3 bne.s loc_73DCE move.b var_2+1(a6),d3 and.b d1,d3 btst d2,d3 beq.s loc_73DF4 loc_73DCE: ; CODE XREF: sub_73A3E+384j move.b (byte_FFFFA60E).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFA60E).w cmp.b (byte_173BA).l,d3 bcs.s loc_73E12 move.w var_4(a6),d0 jsr sub_5F110 clr.b (byte_FFFFA60E).w clr.b (byte_FFFFA614).w bra.s loc_73E12 ; --------------------------------------------------------------------------- loc_73DF4: ; CODE XREF: sub_73A3E+38Ej move.b (byte_FFFFA614).w,d0 cmp.b (byte_173C0).l,d0 bcs.s loc_73E12 clr.b (byte_FFFFA60E).w clr.b (byte_FFFFA614).w move.w var_4(a6),d0 jsr sub_5F0BE loc_73E12: ; CODE XREF: sub_73A3E+150j ; sub_73A3E+158j ... tst.b (byte_FFFFB4A4).w bne.w loc_73F62 tst.b (byte_FFFFB4A0).w bne.w loc_73F62 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DG_ODM_KE_OUTPUT_DRIVER_ENGINE_SPEED_TH).l,d3 ; Above this speed, output driver diagnostics may be enabled. ; RPM bls.w loc_73F62 tst.b (byte_FFFFA1BC).w beq.s loc_73E96 clr.w var_4(a6) addq.b #1,(word_FFFFA61A).w move.w (word_FFFFBF10).w,var_2(a6) move.w #$3B,var_4(a6) ; ';' btst #2,var_2+1(a6) beq.s loc_73E78 move.b (word_FFFFA616).w,d3 addq.b #1,d3 move.b d3,(word_FFFFA616).w cmp.b (DG_ODM_KV_MFD1_FAIL_COUNTER).l,d3 bcs.s loc_73E96 move.w var_4(a6),d0 jsr sub_5F110 clr.b (word_FFFFA616).w clr.b (word_FFFFA61A).w bra.s loc_73E96 ; --------------------------------------------------------------------------- loc_73E78: ; CODE XREF: sub_73A3E+412j move.b (word_FFFFA61A).w,d0 cmp.b (DG_ODM_KV_MFD1_SAMPLE_COUNTER).l,d0 bcs.s loc_73E96 clr.b (word_FFFFA616).w clr.b (word_FFFFA61A).w move.w var_4(a6),d0 jsr sub_5F0BE loc_73E96: ; CODE XREF: sub_73A3E+3F6j ; sub_73A3E+424j ... tst.b (byte_FFFFA1BD).w beq.s loc_73EFC clr.w var_4(a6) addq.b #1,(word_FFFFA61A+1).w move.w (word_FFFFBF10).w,var_2(a6) move.w #$89,var_4(a6) ; '?' btst #3,var_2+1(a6) beq.s loc_73EDE move.b (word_FFFFA616+1).w,d3 addq.b #1,d3 move.b d3,(word_FFFFA616+1).w cmp.b (byte_173C3).l,d3 bcs.s loc_73EFC move.w var_4(a6),d0 jsr sub_5F110 clr.b (word_FFFFA616+1).w clr.b (word_FFFFA61A+1).w bra.s loc_73EFC ; --------------------------------------------------------------------------- loc_73EDE: ; CODE XREF: sub_73A3E+478j move.b (word_FFFFA61A+1).w,d0 cmp.b (byte_173C7).l,d0 bcs.s loc_73EFC clr.b (word_FFFFA616+1).w clr.b (word_FFFFA61A+1).w move.w var_4(a6),d0 jsr sub_5F0BE loc_73EFC: ; CODE XREF: sub_73A3E+45Cj ; sub_73A3E+48Aj ... tst.b (byte_FFFFA1BE).w beq.s loc_73F62 clr.w var_4(a6) addq.b #1,(byte_FFFFA61C).w move.w (word_FFFFBF10).w,var_2(a6) move.w #$D6,var_4(a6) ; '?' btst #4,var_2+1(a6) beq.s loc_73F44 move.b (byte_FFFFA618).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFA618).w cmp.b (byte_173C4).l,d3 bcs.s loc_73F62 move.w var_4(a6),d0 jsr sub_5F110 clr.b (byte_FFFFA618).w clr.b (byte_FFFFA61C).w bra.s loc_73F62 ; --------------------------------------------------------------------------- loc_73F44: ; CODE XREF: sub_73A3E+4DEj move.b (byte_FFFFA61C).w,d0 cmp.b (byte_173C8).l,d0 bcs.s loc_73F62 clr.b (byte_FFFFA618).w clr.b (byte_FFFFA61C).w move.w var_4(a6),d0 jsr sub_5F0BE loc_73F62: ; CODE XREF: sub_73A3E+3D8j ; sub_73A3E+3E0j ... tst.b (byte_FFFFB4A4).w bne.w loc_74012 tst.b (byte_FFFFB4A0).w bne.w loc_74012 move.w (EngineRPM_PID_000C___).w,d4 cmp.w (DG_ODM_KE_OUTPUT_DRIVER_ENGINE_SPEED_TH).l,d4 ; Above this speed, output driver diagnostics may be enabled. ; RPM bls.w loc_74012 tst.b (byte_FFFFA1E0).w beq.w loc_74012 move.b (byte_FFFFA61E).w,d4 addq.b #1,d4 move.b d4,(byte_FFFFA61E).w move.w (word_FFFFE104).w,var_4(a6) move.w (word_FFFFE102).w,var_2(a6) cmpi.b #6,(ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l ; Number of cylinders for this engine application. ; SHORTCARD bne.s loc_73FC2 move.b var_4(a6),d3 moveq #$3F,d1 ; '?' and.b d1,d3 beq.s loc_73FB6 loc_73FB2: ; CODE XREF: sub_73A3E+57Ej moveq #1,d3 bra.s loc_73FD2 ; --------------------------------------------------------------------------- loc_73FB6: ; CODE XREF: sub_73A3E+572j move.b var_2(a6),d3 and.b d1,d3 bne.s loc_73FB2 clr.b d3 bra.s loc_73FD2 ; --------------------------------------------------------------------------- loc_73FC2: ; CODE XREF: sub_73A3E+568j clr.b d3 tst.b var_4(a6) bne.s loc_73FD0 tst.b var_2(a6) beq.s loc_73FD2 loc_73FD0: ; CODE XREF: sub_73A3E+58Aj addq.b #1,d3 loc_73FD2: ; CODE XREF: sub_73A3E+576j ; sub_73A3E+582j ... tst.b d3 beq.s loc_73FFA move.b (byte_FFFFA61D).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFA61D).w cmp.b (DG_ODM_KE_TFD_FAIL_COUNTER).l,d3 ; This is the fail counter cal for TFD diagnostics. ; SHORTCARD bcs.s loc_74012 moveq #$38,d0 ; '8' jsr sub_5F110 clr.b (byte_FFFFA61D).w clr.b (byte_FFFFA61E).w bra.s loc_74012 ; --------------------------------------------------------------------------- loc_73FFA: ; CODE XREF: sub_73A3E+596j cmp.b (DG_ODM_KE_TFD_SAMPLE_COUNTER).l,d4 ; This is the pass counter cal for TFD diagnostics. ; SHORTCARD bcs.s loc_74012 clr.b (byte_FFFFA61D).w clr.b (byte_FFFFA61E).w moveq #$38,d0 ; '8' jsr sub_5F0BE loc_74012: ; CODE XREF: sub_73A3E+Cj ; sub_73A3E+528j ... movem.l (sp)+,d0-d2 unlk a6 rts ; End of function sub_73A3E ; =============== S U B R O U T I N E ======================================= sub_7401A: ; CODE XREF: sub_740E0+7Ap ; sub_740E0+B0p move.w d0,d3 clr.w d0 cmpi.w #$14,d3 bhi.w locret_740DE movea.l off_898D6(d3.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_74030: ; DATA XREF: OS4:off_898D6o moveq #$57,d0 ; 'W' bra.w locret_740DE ; --------------------------------------------------------------------------- loc_74036: ; DATA XREF: OS4:000898DAo tst.b (byte_FFFFA1CE).w beq.s loc_74044 move.w #$CE,d0 ; '?' bra.w locret_740DE ; --------------------------------------------------------------------------- loc_74044: ; CODE XREF: sub_7401A+20j tst.b (byte_FFFFA1CD).w beq.w locret_740DE move.w #$C8,d0 ; '?' bra.w locret_740DE ; --------------------------------------------------------------------------- loc_74054: ; DATA XREF: OS4:000898E2o move.w #$D3,d0 ; '?' bra.w locret_740DE ; --------------------------------------------------------------------------- loc_7405C: ; DATA XREF: OS4:000898E6o moveq #$5B,d0 ; '[' bra.s locret_740DE ; --------------------------------------------------------------------------- loc_74060: ; DATA XREF: OS4:000898EAo tst.b (byte_FFFFA1D2).w beq.s loc_7406C move.w #$D1,d0 ; '?' bra.s locret_740DE ; --------------------------------------------------------------------------- loc_7406C: ; CODE XREF: sub_7401A+4Aj tst.b (byte_FFFFA1D1).w beq.s locret_740DE moveq #$65,d0 ; 'e' bra.s locret_740DE ; --------------------------------------------------------------------------- loc_74076: ; DATA XREF: OS4:000898EEo tst.b (4294943188).w beq.s loc_74082 move.w #$D4,d0 ; '?' bra.s locret_740DE ; --------------------------------------------------------------------------- loc_74082: ; CODE XREF: sub_7401A+60j tst.b (byte_FFFFA1D3).w beq.s locret_740DE moveq #$64,d0 ; 'd' bra.s locret_740DE ; --------------------------------------------------------------------------- loc_7408C: ; DATA XREF: OS4:000898F2o tst.b (byte_FFFFA1D5).w beq.s loc_74098 move.w #$D2,d0 ; '?' bra.s locret_740DE ; --------------------------------------------------------------------------- loc_74098: ; CODE XREF: sub_7401A+76j move.b (byte_FFFFA1D6).w,d3 and.b (byte_FFFF8209).w,d3 beq.s locret_740DE move.w #$CD,d0 ; '?' bra.s locret_740DE ; --------------------------------------------------------------------------- loc_740A8: ; DATA XREF: OS4:000898F6o move.w #$83,d0 ; '?' bra.s locret_740DE ; --------------------------------------------------------------------------- loc_740AE: ; DATA XREF: OS4:000898FAo moveq #86,d0 bra.s locret_740DE ; --------------------------------------------------------------------------- loc_740B2: ; DATA XREF: OS4:0008990Ao move.w #162,d0 bra.s locret_740DE ; --------------------------------------------------------------------------- loc_740B8: ; DATA XREF: OS4:0008990Eo move.w #$86,d0 ; '?' bra.s locret_740DE ; --------------------------------------------------------------------------- loc_740BE: ; DATA XREF: OS4:0008991Eo tst.b (byte_FFFFA1DC).w beq.s loc_740CA move.w #$D0,d0 ; '?' bra.s locret_740DE ; --------------------------------------------------------------------------- loc_740CA: ; CODE XREF: sub_7401A+A8j tst.b (byte_FFFFA1DB).w beq.s locret_740DE move.w #$A0,d0 ; '?' bra.s locret_740DE ; --------------------------------------------------------------------------- loc_740D6: ; DATA XREF: OS4:00089922o moveq #$5D,d0 ; ']' bra.s locret_740DE ; --------------------------------------------------------------------------- loc_740DA: ; DATA XREF: OS4:00089926o move.w #$98,d0 ; '?' locret_740DE: ; CODE XREF: sub_7401A+8j ; sub_7401A+18j ... rts ; End of function sub_7401A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_740E0: ; CODE XREF: sub_73A3E+32p ; sub_73A3E+46p ... var_2 = -2 link a6,#-2 movem.l d2/d6,-(sp) move.b d0,d2 cmpi.b #1,d2 bhi.s loc_740FE beq.s loc_740F8 movea.w (word_FFFFA764).w,a2 bra.s loc_74102 ; --------------------------------------------------------------------------- loc_740F8: ; CODE XREF: sub_740E0+10j movea.w (word_FFFFA766).w,a2 bra.s loc_74102 ; --------------------------------------------------------------------------- loc_740FE: ; CODE XREF: sub_740E0+Ej movea.w (word_FFFFA768).w,a2 loc_74102: ; CODE XREF: sub_740E0+16j ; sub_740E0+1Cj move.w a2,var_2(a6) move.l d1,d3 addq.b #1,d3 andi.w #$FF,d3 addq.b #1,d0 andi.w #$FF,d0 mulu.w #7,d0 moveq #8,d4 sub.w d3,d4 sub.w d4,d0 asl.b #3,d2 add.b d1,d2 andi.w #$FF,d2 lea -$5A26(d2.w),a2 movea.l a2,a3 addq.b #1,$18(a3) move.b var_2(a6),d3 moveq #$7F,d6 ; '' and.b d6,d3 btst d1,d3 bne.s loc_74148 move.b var_2+1(a6),d3 and.b d6,d3 btst d1,d3 beq.s loc_74174 loc_74148: ; CODE XREF: sub_740E0+5Cj addq.b #1,(a2) move.b -$5A26(d2.w),d3 cmp.b DG_ODM_KV_SIDM_FAIL_COUNTER(d0.w),d3 bcs.s loc_7419C jsr sub_7401A jsr sub_5F110 clr.b -$5A26(d2.w) clr.b -$5A0E(d2.w) bra.s loc_7419C ; --------------------------------------------------------------------------- loc_74174: ; CODE XREF: sub_740E0+66j move.b -$5A0E(d2.w),d3 cmp.b DG_ODM_KV_SIDM_SAMPLE_COUNTER(d0.w),d3 bcs.s loc_7419C clr.b -$5A26(d2.w) clr.b -$5A0E(d2.w) jsr sub_7401A jsr sub_5F0BE loc_7419C: ; CODE XREF: sub_740E0+78j ; sub_740E0+92j ... movem.l (sp)+,d2/d6 unlk a6 rts ; End of function sub_740E0 ; =============== S U B R O U T I N E ======================================= sub_741A4: ; CODE XREF: OS1:00028CE0p ; sub_755FA+12Ap cmpi.b #5,d0 beq.s locret_741EA lea (unk_FFFFA5DA).w,a2 moveq #$B,d3 loc_741B0: ; CODE XREF: sub_741A4+Ej clr.w (a2)+ dbf d3,loc_741B0 lea (unk_FFFFA5F2).w,a2 moveq #$B,d3 loc_741BC: ; CODE XREF: sub_741A4+1Aj clr.w (a2)+ dbf d3,loc_741BC clr.b (byte_FFFFA618).w clr.w (word_FFFFA616).w clr.b (byte_FFFFA61C).w clr.w (word_FFFFA61A).w clr.b (byte_FFFFA60E).w clr.l (byte_FFFFA60A).w clr.b (byte_FFFFA614).w clr.l (byte_FFFFA610).w clr.b (byte_FFFFA61D).w clr.b (byte_FFFFA61E).w locret_741EA: ; CODE XREF: sub_741A4+4j rts ; End of function sub_741A4 ; =============== S U B R O U T I N E ======================================= sub_741EC: ; CODE XREF: sub_74206p sub_7422Cp bclr #3,(byte_FFFFB332).w bclr #2,(byte_FFFFB332).w clr.b (byte_FFFFB334).w clr.b (byte_FFFFB335).w clr.b (byte_FFFFB333).w rts ; End of function sub_741EC ; =============== S U B R O U T I N E ======================================= sub_74206: ; CODE XREF: sub_75370+1AAp var_4CD6 = -$4CD6 jsr sub_741EC clr.w (word_FFFFB330).w clr.l (dword_FFFFB328).w moveq #1,d3 loc_74216: ; CODE XREF: sub_74206+22j clr.l d4 move.b d3,d4 move.w #$7FFF,var_4CD6(d4.w*2) addq.b #1,d3 cmpi.b #2,d3 bls.s loc_74216 rts ; End of function sub_74206 ; =============== S U B R O U T I N E ======================================= sub_7422C: ; CODE XREF: DoLoopC+284p jsr sub_741EC moveq #1,d3 loc_74234: ; CODE XREF: sub_7422C+1Aj clr.l d4 move.b d3,d4 bclr #5,-$4CD1(d4.w) addq.b #1,d3 cmpi.b #2,d3 bls.s loc_74234 rts ; End of function sub_7422C ; =============== S U B R O U T I N E ======================================= sub_7424A: ; CODE XREF: OS1:0002917Ap var_4CD6 = -$4CD6 andi.w #$FF,d0 cmpi.w #6,d0 bhi.s locret_742A4 movea.l off_8A670(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_7425E: ; DATA XREF: OS4:0008A678o moveq #1,d3 loc_74260: ; CODE XREF: sub_7424A+28j clr.l d4 move.b d3,d4 move.w #$7FFF,var_4CD6(d4.w*2) addq.b #1,d3 cmpi.b #2,d3 bls.s loc_74260 bra.s locret_742A4 ; --------------------------------------------------------------------------- loc_74276: ; DATA XREF: OS4:off_8A670o ; OS4:0008A67Co ... clr.b (4294947634).w clr.w (4294947632).w clr.l (dword_FFFFB328).w clr.b (byte_FFFFB334).w clr.b (byte_FFFFB335).w clr.b (byte_FFFFB333).w moveq #1,d3 loc_74290: ; CODE XREF: sub_7424A+58j clr.l d4 move.b d3,d4 move.w #$7FFF,var_4CD6(d4.w*2) addq.b #1,d3 cmpi.b #2,d3 bls.s loc_74290 locret_742A4: ; CODE XREF: sub_7424A+8j ; sub_7424A+2Aj ; DATA XREF: ... rts ; End of function sub_7424A ; =============== S U B R O U T I N E ======================================= sub_742A6: ; CODE XREF: sub_748D0:loc_74B70p var_7E48 = -$7E48 var_7E40 = -$7E40 var_7E3C = -$7E3C var_7E38 = -$7E38 var_7E34 = -$7E34 var_4FB4 = -$4FB4 var_4FB0 = -$4FB0 var_4CF2 = -$4CF2 var_4CEE = -$4CEE movem.l d0-d2/d6-a0,-(sp) move.b (DI_POS_KE_POSD_NUM_OF_POST_O2_SENSORS).l,d6 ; The number of post catalyst oxygen sensors in the system. ; Unitless move.b d6,d7 moveq #1,d2 move.l d2,d3 cmp.b d7,d3 bhi.s loc_7431C loc_742BA: ; CODE XREF: sub_742A6+74j clr.l d1 move.b d2,d1 move.b byte_8A7B7(d1.w),d0 jsr sub_5F3D2 move.w d0,d3 move.w d3,$18+var_4FB4(d1.w*2) cmp.w word_173D4(d1.w*2),d3 bhi.s loc_742E8 bset #7,-$4CD1(d1.w) bra.s loc_742FA ; --------------------------------------------------------------------------- loc_742E8: ; CODE XREF: sub_742A6+36j cmp.w word_173D8(d1.w*2),d3 bcs.s loc_742FA bset #6,-$4CD1(d1.w) loc_742FA: ; CODE XREF: sub_742A6+40j ; sub_742A6+4Aj cmp.w dword_FFFFB328+2(d1.w*2),d3 bcc.s loc_74308 move.w d3,$18+var_4CEE(d1.w*2) loc_74308: ; CODE XREF: sub_742A6+5Aj cmp.w word_FFFFB326(d1.w*2),d3 bls.s loc_74316 move.w d3,$18+var_4CF2(d1.w*2) loc_74316: ; CODE XREF: sub_742A6+68j addq.b #1,d2 cmp.b d2,d7 bcc.s loc_742BA loc_7431C: ; CODE XREF: sub_742A6+12j moveq #1,d2 move.l d2,d7 cmp.b d6,d7 bhi.w loc_743D6 loc_74326: ; CODE XREF: sub_742A6+12Cj clr.l d1 move.b d2,d1 tst.b -$4F8D(d1.w) beq.w loc_743CE btst #7,-$4CD1(d1.w) beq.s loc_743B0 btst #6,-$4CD1(d1.w) beq.s loc_743B0 clr.w d0 move.b byte_16E67(d1.w),d0 move.b byte_16ECB(d0.w),d0 andi.w #$FF,d0 move.w word_8A7BC(d0.w*2),d0 jsr sub_5F0BE bclr #5,-$4CD1(d1.w) move.w word_173D4(d1.w*2),$18+var_7E48(d1.w*2) clr.w dword_FFFF81D2+2(d1.w*2) move.w dword_FFFFB328+2(d1.w*2),$18+var_7E40(d1.w*2) move.w #$7FFF,$18+var_7E3C(d1.w*2) move.w word_173D8(d1.w*2),$18+var_7E38(d1.w*2) move.w word_FFFFB326(d1.w*2),$18+var_7E34(d1.w*2) bra.s loc_743CE ; --------------------------------------------------------------------------- loc_743B0: ; CODE XREF: sub_742A6+96j ; sub_742A6+A0j move.w (word_FFFFB072).w,d3 cmp.w (DG_POS_KE_POSD_STAGE2_ENABLE_TIME_MIN).l,d3 bls.s loc_743C6 bset #5,-$4CD1(d1.w) bra.s loc_743CE ; --------------------------------------------------------------------------- loc_743C6: ; CODE XREF: sub_742A6+114j bclr #5,-$4CD1(d1.w) loc_743CE: ; CODE XREF: sub_742A6+8Aj ; sub_742A6+108j ... addq.b #1,d2 cmp.b d2,d6 bcc.w loc_74326 loc_743D6: ; CODE XREF: sub_742A6+7Cj jsr sub_7468C move.l d7,d0 move.l d0,d4 move.b (DI_POS_KE_POSD_NUM_OF_POST_O2_SENSORS).l,d2 ; The number of post catalyst oxygen sensors in the system. ; Unitless move.l d4,d3 cmp.b d2,d7 bhi.s loc_7440E loc_743EC: ; CODE XREF: sub_742A6+166j clr.l d1 move.b d3,d1 btst #7,-$4CD1(d1.w) bne.s loc_743FC clr.b d0 loc_743FC: ; CODE XREF: sub_742A6+152j btst #6,-$4CD1(d1.w) bne.s loc_74408 clr.b d4 loc_74408: ; CODE XREF: sub_742A6+15Ej addq.b #1,d3 cmp.b d3,d2 bcc.s loc_743EC loc_7440E: ; CODE XREF: sub_742A6+144j tst.b d0 beq.s loc_7441A bset #7,(byte_FFFFB332).w bra.s loc_74420 ; --------------------------------------------------------------------------- loc_7441A: ; CODE XREF: sub_742A6+16Aj bclr #7,(byte_FFFFB332).w loc_74420: ; CODE XREF: sub_742A6+172j tst.b d4 beq.s loc_7442C bset #6,(byte_FFFFB332).w bra.s loc_74432 ; --------------------------------------------------------------------------- loc_7442C: ; CODE XREF: sub_742A6+17Cj bclr #6,(byte_FFFFB332).w loc_74432: ; CODE XREF: sub_742A6+184j cmpi.b #5,(byte_FFFF9954).w bne.s loc_74440 clr.b (byte_FFFFB064).w bra.s loc_74444 ; --------------------------------------------------------------------------- loc_74440: ; CODE XREF: sub_742A6+192j move.b d7,(byte_FFFFB064).w loc_74444: ; CODE XREF: sub_742A6+198j move.b (byte_FFFFB064).w,d3 bne.w loc_7467E move.l d7,d6 move.b (DI_EOS_KE_EOSD_NUMBER_OF_RESP_SENSORS).l,d2 move.l d6,d1 move.l d1,d4 cmp.b d2,d4 bhi.s loc_744AC loc_7445C: ; CODE XREF: sub_742A6+204j clr.l d0 move.b d1,d0 move.b byte_8A7B9(d0.w),d3 bne.s loc_74470 movea.w (word_FFFF9F00).w,a0 bra.s loc_74478 ; --------------------------------------------------------------------------- loc_74470: ; CODE XREF: sub_742A6+1C2j tst.b d3 beq.s loc_74478 movea.w (word_FFFF9F06).w,a0 loc_74478: ; CODE XREF: sub_742A6+1C8j ; sub_742A6+1CCj movea.w a0,a2 move.w a2,$18+var_4FB0(d0.w*2) move.w a2,d3 tst.b (byte_FFFFB071).w beq.s loc_74494 cmp.w word_173E0(d0.w*2),d3 bcc.s loc_74494 clr.b d6 loc_74494: ; CODE XREF: sub_742A6+1E0j ; sub_742A6+1EAj tst.b (byte_FFFFB070).w beq.s loc_744A6 cmp.w word_173DC(d0.w*2),d3 bls.s loc_744A6 clr.b d7 loc_744A6: ; CODE XREF: sub_742A6+1F2j ; sub_742A6+1FCj addq.b #1,d1 cmp.b d1,d2 bcc.s loc_7445C loc_744AC: ; CODE XREF: sub_742A6+1B4j tst.b d6 beq.s loc_744B8 bset #4,(byte_FFFFB332).w bra.s loc_744BE ; --------------------------------------------------------------------------- loc_744B8: ; CODE XREF: sub_742A6+208j bclr #4,(byte_FFFFB332).w loc_744BE: ; CODE XREF: sub_742A6+210j tst.b d7 beq.s loc_744CA bset #5,(byte_FFFFB332).w bra.s loc_744D0 ; --------------------------------------------------------------------------- loc_744CA: ; CODE XREF: sub_742A6+21Aj bclr #5,(byte_FFFFB332).w loc_744D0: ; CODE XREF: sub_742A6+222j tst.b (byte_FFFFB070).w beq.w loc_745B4 move.b (byte_FFFFB334).w,d3 addq.b #1,d3 bcc.s loc_744E4 move.b #$FF,d3 loc_744E4: ; CODE XREF: sub_742A6+238j move.b d3,(byte_FFFFB334).w btst #7,(byte_FFFFB332).w beq.s loc_744FA bset #3,(byte_FFFFB332).w bra.w loc_74686 ; --------------------------------------------------------------------------- loc_744FA: ; CODE XREF: sub_742A6+248j move.w (word_FFFFAEF8).w,d5 tblu.b (DI_POS_KV_POSD_LEAN_TIMER).l,d5 ; The amount of time to wait during the lean intrusive test before considering the sensor failed. ; Seconds cmp.b d5,d3 bls.w loc_74686 bset #3,(byte_FFFFB332).w btst #5,(byte_FFFFB332).w beq.w loc_745A0 move.b (DI_POS_KE_POSD_NUM_OF_POST_O2_SENSORS).l,d6 ; The number of post catalyst oxygen sensors in the system. ; Unitless move.l d4,d2 cmp.b d6,d4 bhi.w loc_74686 loc_7452A: ; CODE XREF: sub_742A6+2F4j clr.l d1 move.b d2,d1 btst #7,-$4CD1(d1.w) bne.s loc_74596 clr.w d0 move.b byte_16E67(d1.w),d0 move.b byte_16ECB(d0.w),d0 andi.w #$FF,d0 move.w word_8A7BC(d0.w*2),d0 jsr sub_5F110 move.w word_173D4(d1.w*2),$18+var_7E48(d1.w*2) clr.w dword_FFFF81D2+2(d1.w*2) move.w dword_FFFFB328+2(d1.w*2),$18+var_7E40(d1.w*2) move.w #$7FFF,$18+var_7E3C(d1.w*2) move.w word_173D8(d1.w*2),$18+var_7E38(d1.w*2) move.w word_FFFFB326(d1.w*2),$18+var_7E34(d1.w*2) loc_74596: ; CODE XREF: sub_742A6+290j addq.b #1,d2 cmp.b d2,d6 bcc.s loc_7452A bra.w loc_74686 ; --------------------------------------------------------------------------- loc_745A0: ; CODE XREF: sub_742A6+272j ; sub_742A6+356j move.b (byte_FFFFB333).w,d3 addq.b #1,d3 bcc.s loc_745AC move.b #$FF,d3 loc_745AC: ; CODE XREF: sub_742A6+300j move.b d3,(byte_FFFFB333).w bra.w loc_74686 ; --------------------------------------------------------------------------- loc_745B4: ; CODE XREF: sub_742A6+22Ej tst.b (byte_FFFFB071).w beq.w loc_7467E move.b (byte_FFFFB335).w,d3 addq.b #1,d3 bcc.s loc_745C8 move.b #$FF,d3 loc_745C8: ; CODE XREF: sub_742A6+31Cj move.b d3,(byte_FFFFB335).w btst #6,(byte_FFFFB332).w beq.s loc_745DE bset #2,(byte_FFFFB332).w bra.w loc_74686 ; --------------------------------------------------------------------------- loc_745DE: ; CODE XREF: sub_742A6+32Cj move.w (word_FFFFAEF8).w,d5 tblu.b (DI_POS_KV_POSD_RICH_TIMER).l,d5 ; The amount of time to wait during the rich intrusive test before considering the sensor failed. ; Seconds cmp.b d5,d3 bls.w loc_74686 bset #2,(byte_FFFFB332).w btst #4,(byte_FFFFB332).w beq.s loc_745A0 move.b (DI_POS_KE_POSD_NUM_OF_POST_O2_SENSORS).l,d6 ; The number of post catalyst oxygen sensors in the system. ; Unitless move.l d4,d2 cmp.b d6,d4 bhi.s loc_74686 loc_7460A: ; CODE XREF: sub_742A6+3D4j clr.l d1 move.b d2,d1 btst #6,-$4CD1(d1.w) bne.s loc_74676 clr.w d0 move.b byte_16E67(d1.w),d0 move.b byte_16ECB(d0.w),d0 andi.w #$FF,d0 move.w word_8A7BC(d0.w*2),d0 jsr sub_5F110 move.w word_173D4(d1.w*2),$18+var_7E48(d1.w*2) clr.w dword_FFFF81D2+2(d1.w*2) move.w dword_FFFFB328+2(d1.w*2),$18+var_7E40(d1.w*2) move.w #$7FFF,$18+var_7E3C(d1.w*2) move.w word_173D8(d1.w*2),$18+var_7E38(d1.w*2) move.w word_FFFFB326(d1.w*2),$18+var_7E34(d1.w*2) loc_74676: ; CODE XREF: sub_742A6+370j addq.b #1,d2 cmp.b d2,d6 bcc.s loc_7460A bra.s loc_74686 ; --------------------------------------------------------------------------- loc_7467E: ; CODE XREF: sub_742A6+1A2j ; sub_742A6+312j clr.b (byte_FFFFB334).w clr.b (byte_FFFFB335).w loc_74686: ; CODE XREF: sub_742A6+250j ; sub_742A6+262j ... movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_742A6 ; =============== S U B R O U T I N E ======================================= sub_7468C: ; CODE XREF: sub_742A6:loc_743D6p movem.l d0-d2/d6-d7,-(sp) clr.b d1 move.b (DI_POS_KE_POSD_NUMBER_OF_POST_LTM_CELLS).l,d0 ; The number of adaptive (block learn) cells that can be configured to enable the response diagnostic in specific adaptive cells. ; SHORTCARD moveq #1,d3 move.l d3,d6 cmp.b d0,d6 bhi.s loc_746BA loc_746A0: ; CODE XREF: sub_7468C+2Cj clr.l d6 move.b d3,d6 move.b (byte_FFFF98DA).w,d2 cmp.b byte_17407(d6.w),d2 bne.s loc_746B4 moveq #1,d1 loc_746B4: ; CODE XREF: sub_7468C+24j addq.b #1,d3 cmp.b d3,d0 bcc.s loc_746A0 loc_746BA: ; CODE XREF: sub_7468C+12j clr.w d2 move.w (word_FFFFA0DC).w,d3 move.w (EngineRPM_PID_000C___).w,d4 move.w (word_FFFFAEBC).w,d0 move.b (byte_FFFFB076).w,d5 add.b (byte_FFFFB333).w,d5 bcc.s loc_746D6 move.b #$FF,d5 loc_746D6: ; CODE XREF: sub_7468C+44j cmp.b (DI_POS_KE_POSD_NUM_STAGE2_TESTS).l,d5 ; The maximum number of intrusive tests to run during any one trip. ; SHORTCARD bcc.w loc_747DE cmp.w (DI_POS_KE_POSD_ENGINE_SPEED_MIN).l,d4 ; The minimum engine speed below which the intrusive test is disabled. ; RPM bcs.w loc_747DE cmp.w (DI_POS_KE_POSD_ENGINE_SPEED_MAX).l,d4 ; The maximum engine speed above which the intrusive test is disabled. ; RPM bhi.w loc_747DE cmp.w (DI_POS_KE_POSD_ENGINE_AIRFLOW_MIN).l,d3 ; The minimum engine airflow below which the intrusive test is disabled. ; Grams_Per_Second bcs.w loc_747DE cmp.w (DI_POS_KE_POSD_ENGINE_AIRFLOW_MAX).l,d3 ; The maximum engine airflow above which the intrusive test is disabled. ; Grams_Per_Second bhi.w loc_747DE cmp.w (DI_POS_KE_POSD_VEHICLE_SPEED_MIN).l,d0 ; The minimum vehicle speed below which the intrusive test is disabled. ; MPH bcs.w loc_747DE cmp.w (DI_POS_KE_POSD_VEHICLE_SPEED_MAX).l,d0 ; The maximum vehicle speed above which the intrusive test is disabled. ; MPH bhi.w loc_747DE tst.b d1 beq.w loc_747DE tst.b (byte_FFFF9035).w bne.w loc_747DE btst #4,(byte_FFFFAA08).w bne.w loc_747DE move.w (word_FFFFB078).w,d1 cmp.w (DI_POS_KE_POSD_STAGE2_STABILIZATION_MIN).l,d1 ; The minimum amount of time required for the system criteria to be stabilized before executing intrusive tests. ; Seconds bcs.w loc_747C8 moveq #1,d6 cmp.b (byte_FFFFB2EF).w,d6 beq.s loc_74752 tst.b (byte_FFFFB06E).w beq.w loc_747E2 loc_74752: ; CODE XREF: sub_7468C+BCj move.b (DI_POS_KE_POSD_NUM_OF_POST_O2_SENSORS).l,d1 ; The number of post catalyst oxygen sensors in the system. ; Unitless move.l d6,d0 cmp.b d1,d6 bhi.w loc_747E2 loc_74760: ; CODE XREF: sub_7468C+138j clr.l d7 move.b d0,d7 clr.w d3 move.b byte_8A7B7(d7.w),d3 move.w word_FFFFA89E(d3.w*2),d3 andi.l #$FFFF,d3 asl.l #4,d3 cmpi.l #$FFFF,d3 bhi.s loc_74790 andi.l #$FFFF,d3 divu.w #$101,d3 bra.s loc_74794 ; --------------------------------------------------------------------------- loc_74790: ; CODE XREF: sub_7468C+F6j move.b #$FF,d3 loc_74794: ; CODE XREF: sub_7468C+102j clr.l d5 move.b d0,d5 tst.b -$4F8D(d5.w) beq.s loc_747C0 btst #5,-$4CD1(d5.w) beq.s loc_747C0 cmp.b byte_17405(d5.w),d3 bcs.s loc_747C0 cmp.b $17403(d5.w),d3 bhi.s loc_747C0 move.l d6,d2 loc_747C0: ; CODE XREF: sub_7468C+112j ; sub_7468C+11Cj ... addq.b #1,d0 cmp.b d0,d1 bcc.s loc_74760 bra.s loc_747E2 ; --------------------------------------------------------------------------- loc_747C8: ; CODE XREF: sub_7468C+B2j movea.l (dword_FFFFB5DE).w,a2 move.l d1,d3 add.w $A(a2),d3 bcc.s loc_747D8 move.w #$FFFF,d3 loc_747D8: ; CODE XREF: sub_7468C+146j move.w d3,(word_FFFFB078).w bra.s loc_747E2 ; --------------------------------------------------------------------------- loc_747DE: ; CODE XREF: sub_7468C+50j ; sub_7468C+5Aj ... clr.w (word_FFFFB078).w loc_747E2: ; CODE XREF: sub_7468C+C2j ; sub_7468C+D0j ... move.b d2,(byte_FFFFB07A).w tst.b (byte_FFFFB06E).w beq.s loc_747F8 cmpi.b #5,(byte_FFFF9954).w beq.s loc_747F8 clr.b (byte_FFFFB07A).w loc_747F8: ; CODE XREF: sub_7468C+15Ej ; sub_7468C+166j move.b (byte_FFFFB07A).w,d4 beq.s loc_7485C tst.b (DI_POS_KE_POSD_STAGE2_TEST_ORDER).l ; Determines if the fuel control will be commanded rich-to-lean or leasn-to-rich during the intrusive test. ; Test Order Type bne.s loc_7483A btst #2,(byte_FFFFB332).w bne.s loc_7481E btst #6,(byte_FFFFB332).w bne.s loc_7481E loc_74816: ; CODE XREF: sub_7468C+1CCj move.b #1,(byte_FFFFB071).w bra.s loc_74876 ; --------------------------------------------------------------------------- loc_7481E: ; CODE XREF: sub_7468C+180j ; sub_7468C+188j btst #3,(byte_FFFFB332).w bne.s loc_74872 btst #7,(byte_FFFFB332).w bne.s loc_74872 loc_7482E: ; CODE XREF: sub_7468C+1BCj clr.b (byte_FFFFB071).w move.b #1,(byte_FFFFB070).w bra.s loc_7487A ; --------------------------------------------------------------------------- loc_7483A: ; CODE XREF: sub_7468C+178j btst #3,(byte_FFFFB332).w bne.s loc_7484A btst #7,(byte_FFFFB332).w beq.s loc_7482E loc_7484A: ; CODE XREF: sub_7468C+1B4j btst #2,(byte_FFFFB332).w bne.s loc_74872 btst #6,(byte_FFFFB332).w beq.s loc_74816 bra.s loc_74872 ; --------------------------------------------------------------------------- loc_7485C: ; CODE XREF: sub_7468C+170j tst.b (byte_FFFFB07B).w beq.s loc_74872 move.b (byte_FFFFB076).w,d3 addq.b #1,d3 bcc.s loc_7486E move.b #$FF,d3 loc_7486E: ; CODE XREF: sub_7468C+1DCj move.b d3,(byte_FFFFB076).w loc_74872: ; CODE XREF: sub_7468C+198j ; sub_7468C+1A0j ... clr.b (byte_FFFFB071).w loc_74876: ; CODE XREF: sub_7468C+190j clr.b (byte_FFFFB070).w loc_7487A: ; CODE XREF: sub_7468C+1ACj tst.b (byte_FFFFB070).w beq.s loc_7489C moveq #1,d3 move.b d3,(byte_FFFFB06F).w cmpi.b #8,(byte_FFFFB2EB).w bne.s loc_748C6 move.b d3,(byte_FFFFB06E).w move.w (DI_POS_KE_POSD_LEAN_EQUIV_RATIO).l,(word_FFFFB062).w ; The A/F commanded adjustment requested to force the fuel system lean during the intrusive test. ; 0 - 32 bra.s loc_748C6 ; --------------------------------------------------------------------------- loc_7489C: ; CODE XREF: sub_7468C+1F2j tst.b (byte_FFFFB071).w beq.s loc_748BE moveq #1,d3 move.b d3,(byte_FFFFB06F).w cmpi.b #8,(byte_FFFFB2EB).w bne.s loc_748C6 move.b d3,(byte_FFFFB06E).w move.w (DI_POS_KE_POSD_RICH_EQUIV_RATIO).l,(word_FFFFB062).w ; The A/F commanded adjustment requested to force the fuel system rich during the intrusive test. ; 0 - 32 bra.s loc_748C6 ; --------------------------------------------------------------------------- loc_748BE: ; CODE XREF: sub_7468C+214j clr.b (byte_FFFFB06E).w clr.b (byte_FFFFB06F).w loc_748C6: ; CODE XREF: sub_7468C+200j ; sub_7468C+20Ej ... move.b d4,(byte_FFFFB07B).w movem.l (sp)+,d0-d2/d6-d7 rts ; End of function sub_7468C ; =============== S U B R O U T I N E ======================================= sub_748D0: ; CODE XREF: DoLoopF+ECp var_4FA5 = -$4FA5 movem.l d0-d2/d6-a0,-(sp) move.l (EngineRunTime).w,d3 cmpi.l #$FFFF,d3 bls.s loc_748E4 move.w #$FFFF,d3 loc_748E4: ; CODE XREF: sub_748D0+Ej cmp.w (DI_POS_KE_POSD_ENGINE_RUN_TIME_MIN).l,d3 ; Minimum engine running time before the time activated processes are run. ; Seconds bcs.w loc_74B76 moveq #5,d7 cmp.b (ThrottleControlMode2?).w,d7 bne.s loc_74900 move.w (word_FFFFB4A6).w,d3 mulu.w d7,d3 lsr.w #7,d3 bra.s loc_7491A ; --------------------------------------------------------------------------- loc_74900: ; CODE XREF: sub_748D0+24j move.w (word_FFFFB4A2).w,d3 mulu.w d7,d3 cmpi.l #$FFFF,d3 bhi.s loc_74916 lsr.w #7,d3 cmpi.w #$FF,d3 bls.s loc_7491A loc_74916: ; CODE XREF: sub_748D0+3Cj move.b #$FF,d3 loc_7491A: ; CODE XREF: sub_748D0+2Ej ; sub_748D0+44j move.b d3,d6 clr.b d0 move.b (DI_EOS_KE_EOSD_NUMBER_OF_O2_SENSORS).l,d2 moveq #1,d3 move.l d3,d5 cmp.b d2,d5 bhi.s loc_7497A loc_7492C: ; CODE XREF: sub_748D0+A8j clr.l d5 move.b d3,d5 move.b byte_16ECB(d5.w),d4 clr.l d1 move.b d4,d1 movea.w word_89770(d1.w*2),a2 btst #1,byte_FFFF88C0(a2.w*2) bne.s loc_74972 movea.w word_89794(d1.w*2),a2 btst #1,byte_FFFF88C0(a2.w*2) bne.s loc_74972 move.w word_89764(d1.w*2),d4 btst #1,byte_FFFF88C0(d4.w*2) beq.s loc_74974 loc_74972: ; CODE XREF: sub_748D0+7Cj ; sub_748D0+8Ej moveq #1,d0 loc_74974: ; CODE XREF: sub_748D0+A0j addq.b #1,d3 cmp.b d3,d2 bcc.s loc_7492C loc_7497A: ; CODE XREF: sub_748D0+5Aj tst.b d0 bne.s loc_749E4 move.b (DI_EOS_KE_EOSD_NUMBER_OF_RESP_SENSORS).l,d2 moveq #1,d3 move.l d3,d5 cmp.b d2,d5 bhi.s loc_749E4 loc_7498C: ; CODE XREF: sub_748D0+112j clr.l d5 move.b d3,d5 clr.w d4 move.b byte_16E9D(d5.w),d4 move.b byte_16ECB(d4.w),d4 clr.l d1 move.b d4,d1 movea.w word_897A0(d1.w*2),a2 btst #1,byte_FFFF88C0(a2.w*2) bne.s loc_749DC movea.w word_89788(d1.w*2),a2 btst #1,byte_FFFF88C0(a2.w*2) bne.s loc_749DC move.w word_8977C(d1.w*2),d1 btst #1,byte_FFFF88C0(d1.w*2) beq.s loc_749DE loc_749DC: ; CODE XREF: sub_748D0+E6j ; sub_748D0+F8j moveq #1,d0 loc_749DE: ; CODE XREF: sub_748D0+10Aj addq.b #1,d3 cmp.b d3,d2 bcc.s loc_7498C loc_749E4: ; CODE XREF: sub_748D0+ACj ; sub_748D0+BAj tst.b d0 bne.s loc_74A2A move.b (DI_EOS_KE_EOSD_NUMBER_OF_HEATED_SENSORS).l,d1 ; The number of O2 sensors in which the heater test is to be done. ; Unitless moveq #1,d3 move.l d3,d2 cmp.b d1,d2 bhi.s loc_74A2A loc_749F6: ; CODE XREF: sub_748D0+158j clr.l d2 move.b d3,d2 clr.w d4 move.b byte_16E07(d2.w),d4 move.b byte_16ECB(d4.w),d4 andi.w #$FF,d4 move.w word_89758(d4.w*2),d4 btst #1,byte_FFFF88C0(d4.w*2) beq.s loc_74A24 moveq #1,d0 loc_74A24: ; CODE XREF: sub_748D0+150j addq.b #1,d3 cmp.b d3,d1 bcc.s loc_749F6 loc_74A2A: ; CODE XREF: sub_748D0+116j ; sub_748D0+124j tst.b d0 bne.w loc_74B6C tst.b (byte_FFFFA1C8).w beq.w loc_74B6C cmp.b (DI_EOS_KE_EOSD_SYSTEM_VOLTAGE_MAX+1).l,d6 ; Maximum system voltage above which the O2 diag will be disabled. ; Volts bcs.w loc_74B6C cmp.b (DI_EOS_KE_EOSD_SYSTEM_VOLTAGE_MAX).l,d6 ; Maximum system voltage above which the O2 diag will be disabled. ; Volts bhi.w loc_74B6C btst #1,(byte_FFFF88E0).w bne.w loc_74B6C btst #1,(byte_FFFF88E2).w bne.w loc_74B6C btst #1,(byte_FFFF88E4).w bne.w loc_74B6C btst #2,(byte_FFFF8255).w bne.w loc_74B6C btst #4,(byte_FFFF8253).w bne.w loc_74B6C btst #1,(byte_FFFF88D4).w bne.w loc_74B6C btst #1,(byte_FFFF88D6).w bne.w loc_74B6C btst #1,(byte_FFFF88DA).w bne.w loc_74B6C btst #1,(byte_FFFF88DC).w bne.w loc_74B6C btst #1,(byte_FFFF88E6).w bne.w loc_74B6C btst #1,(byte_FFFF8980).w bne.w loc_74B6C btst #1,(byte_FFFF8974).w bne.w loc_74B6C btst #1,(byte_FFFF8978).w bne.w loc_74B6C btst #1,(byte_FFFF8996).w bne.w loc_74B6C btst #1,(byte_FFFF8976).w bne.w loc_74B6C btst #1,(byte_FFFF897A).w bne.w loc_74B6C btst #1,(byte_FFFF8255).w bne.s loc_74B6C btst #1,(byte_FFFF8930).w bne.s loc_74B6C movea.l (dword_FFFFB5DE).w,a2 move.w $A(a2),d3 lsr.w #4,d3 add.w (word_FFFFB072).w,d3 bcc.s loc_74B10 move.w #$FFFF,d3 loc_74B10: ; CODE XREF: sub_748D0+23Aj move.w d3,(word_FFFFB072).w move.b (DI_POS_KE_POSD_NUM_OF_POST_O2_SENSORS).l,d1 ; The number of post catalyst oxygen sensors in the system. ; Unitless moveq #1,d3 cmpi.b #1,d1 bra.s loc_74B68 ; --------------------------------------------------------------------------- loc_74B22: ; CODE XREF: sub_748D0:loc_74B68j clr.l d0 move.b d3,d0 clr.w d4 move.b byte_16E67(d0.w),d4 move.b byte_16ECB(d4.w),d4 movea.l d0,a0 clr.b d0 andi.w #$FF,d4 movea.w word_8A7BC(d4.w*2),a2 btst #5,byte_FFFF88C0(a2.w*2) bne.s loc_74B5E btst #6,byte_FFFF88C0(a2.w*2) bne.s loc_74B5E addq.b #1,d0 loc_74B5E: ; CODE XREF: sub_748D0+280j ; sub_748D0+28Aj move.b d0,$18+var_4FA5(a0.w) addq.b #1,d3 cmp.b d3,d1 loc_74B68: ; CODE XREF: sub_748D0+250j bcc.s loc_74B22 bra.s loc_74B70 ; --------------------------------------------------------------------------- loc_74B6C: ; CODE XREF: sub_748D0+15Cj ; sub_748D0+164j ... clr.w (word_FFFFB074).w loc_74B70: ; CODE XREF: sub_748D0+29Aj jsr sub_742A6 loc_74B76: ; CODE XREF: sub_748D0+1Aj movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_748D0 ; =============== S U B R O U T I N E ======================================= sub_74B7C: ; CODE XREF: sub_75370+1A4p clr.l (dword_FFFF81D2).w clr.l (dword_FFFF81D6).w clr.l (dword_FFFF81DA).w clr.l (dword_FFFF81DE).w clr.l (dword_FFFF81E2).w clr.l (dword_FFFF81E6).w clr.b (byte_FFFFB06E).w move.w #$400,(word_FFFFB062).w clr.b (byte_FFFFB06F).w clr.b (byte_FFFFB076).w clr.b (byte_FFFFB070).w clr.b (byte_FFFFB071).w clr.w (word_FFFFB078).w clr.b (byte_FFFFB07A).w clr.b (byte_FFFFB07B).w rts ; End of function sub_74B7C ; =============== S U B R O U T I N E ======================================= sub_74BBC: ; CODE XREF: DoLoopC+27Ep clr.b (byte_FFFFB06E).w move.w #$400,(word_FFFFB062).w clr.b (byte_FFFFB06F).w clr.b (byte_FFFFB076).w clr.b (byte_FFFFB070).w clr.b (byte_FFFFB071).w clr.w (word_FFFFB078).w clr.b (byte_FFFFB07A).w clr.b (byte_FFFFB07B).w rts ; End of function sub_74BBC ; =============== S U B R O U T I N E ======================================= sub_74BE4: ; CODE XREF: OS1:00029172p andi.w #$FF,d0 cmpi.w #6,d0 bhi.s locret_74C58 movea.l off_8A654(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_74BF8: ; DATA XREF: OS4:0008A65Co move.w #$400,(word_FFFFB062).w move.b #1,(byte_FFFFB064).w tst.b (4294948170).w bne.s locret_74C58 clr.l (dword_FFFF81D2).w clr.l (dword_FFFF81D6).w clr.l (dword_FFFF81DA).w clr.l (dword_FFFF81DE).w clr.l (dword_FFFF81E2).w clr.l (dword_FFFF81E6).w bra.s locret_74C58 ; --------------------------------------------------------------------------- loc_74C24: ; DATA XREF: OS4:off_8A654o ; OS4:0008A660o ... clr.w (4294946932).w clr.b (byte_FFFFB06E).w move.w #$400,(word_FFFFB062).w move.b #1,(byte_FFFFB064).w clr.b (byte_FFFFB06F).w clr.b (byte_FFFFB076).w clr.b (byte_FFFFB070).w clr.b (byte_FFFFB071).w clr.w (word_FFFFB078).w clr.b (byte_FFFFB07A).w clr.b (byte_FFFFB07B).w clr.w (word_FFFFB072).w locret_74C58: ; CODE XREF: sub_74BE4+8j ; sub_74BE4+24j ... rts ; End of function sub_74BE4 ; =============== S U B R O U T I N E ======================================= sub_74C5A: ; CODE XREF: OS1:0002918Ap ; sub_755FA+148p cmpi.b #6,d0 beq.s loc_74C82 cmpi.b #3,d0 bhi.s locret_74C88 beq.s loc_74C82 cmpi.b #1,d0 bls.s locret_74C88 jsr sub_75086 tst.b (byte_FFFFB54A).w bne.s locret_74C88 jsr sub_750C8 bra.s locret_74C88 ; --------------------------------------------------------------------------- loc_74C82: ; CODE XREF: sub_74C5A+4j sub_74C5A+Cj jsr sub_75086 locret_74C88: ; CODE XREF: sub_74C5A+Aj ; sub_74C5A+12j ... rts ; End of function sub_74C5A ; =============== S U B R O U T I N E ======================================= sub_74C8A: ; CODE XREF: sub_75370+240p bset #5,(byte_FFFFAF7A).w rts ; End of function sub_74C8A ; =============== S U B R O U T I N E ======================================= sub_74C92: ; CODE XREF: DoLoopC+238p jsr sub_75086 jsr sub_750C8 rts ; End of function sub_74C92 ; =============== S U B R O U T I N E ======================================= sub_74CA0: ; CODE XREF: sub_74CBE+4p sub_74E74+4p move sr,-(sp) ori #$700,sr btst #5,(byte_FFFFAF7A).w beq.s loc_74CBA jsr sub_750C8 jsr sub_75086 loc_74CBA: ; CODE XREF: sub_74CA0+Cj move (sp)+,sr rts ; End of function sub_74CA0 ; =============== S U B R O U T I N E ======================================= sub_74CBE: ; CODE XREF: DoLoopF+3Cp movem.l d0-d2/a0,-(sp) jsr sub_74CA0 move.w (word_FFFFB294).w,d3 asl.w #2,d3 cmp.w (word_FFFFAF86).w,d3 bcc.s loc_74CDE move.w (word_FFFFB294).w,d3 asl.w #2,d3 move.w d3,(word_FFFFAF86).w loc_74CDE: ; CODE XREF: sub_74CBE+14j move.w (word_FFFFB294).w,d3 asl.w #2,d3 cmp.w (word_FFFFAF8A).w,d3 bls.s loc_74CF4 move.w (word_FFFFB294).w,d3 asl.w #2,d3 move.w d3,(word_FFFFAF8A).w loc_74CF4: ; CODE XREF: sub_74CBE+2Aj move.w (word_FFFFAF8A).w,d3 sub.w (word_FFFFAF86).w,d3 bcc.s loc_74D00 clr.w d3 loc_74D00: ; CODE XREF: sub_74CBE+3Ej move.w d3,(word_FFFFAF84).w cmp.w (DG_TPS_KE_TPSD_RAT_MAP_DELTA_MAX).l,d3 ; Maximum allowable MAP Delta over a test interval which can enable the TPS rationality diagnostic ; kPa bhi.s loc_74D1E move.b (byte_FFFFAF88).w,d3 addq.b #1,d3 bcc.s loc_74D18 move.b #$FF,d3 loc_74D18: ; CODE XREF: sub_74CBE+54j move.b d3,(byte_FFFFAF88).w bra.s loc_74D2E ; --------------------------------------------------------------------------- loc_74D1E: ; CODE XREF: sub_74CBE+4Cj clr.b (byte_FFFFAF88).w move.w #$5333,(word_FFFFAF86).w move.w #$800,(word_FFFFAF8A).w loc_74D2E: ; CODE XREF: sub_74CBE+5Ej move.l (EngineRunTime).w,d3 move.w (DG_TPS_KE_TPSD_RAT_ENG_RUN_TIME_MIN).l,d5 ; Ensures that the engine has reached stable operating conditions before enabling the TPS rationality diagnostic ; Seconds mulu.w #$A0,d5 ; '?' cmp.l d5,d3 bcs.w loc_74E6E move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (DG_TPS_KE_TPSD_RAT_ECT_MIN).l,d3 ; The coolant value above which the TPS rationality diagnostic can be enabled. ; Degrees C blt.w loc_74E6E move.b (byte_FFFFAF88).w,d3 cmp.b (DG_TPS_KE_TPSD_RAT_MAP_STABLE_TIME).l,d3 ; Minimum amount of time the delta MAP value must stay stable to enable the TPS rationality test. ; Seconds bcs.w loc_74E6E btst #5,(byte_FFFF9023).w bne.w loc_74E6E btst #4,(byte_FFFF9023).w bne.w loc_74E6E tst.b (byte_FFFF82D4).w bne.w loc_74E6E btst #6,(byte_FFFF9023).w bne.w loc_74E6E move.w (word_FFFFB294).w,d3 asl.w #2,d3 cmp.w (DG_TPS_KE_TPSD_RAT_HIGH_MAP).l,d3 ; Maximum MAP for TPS to be checked for rationality high failures. ; kPa bcc.s loc_74DD0 addq.w #1,(word_FFFFAF8E).w move.w (word_FFFFAB64).w,d3 move.l d3,d1 move.w (EngineRPM_PID_000C___).w,d3 move.w #$800,d2 cmp.w d3,d2 bls.s loc_74DAA move.l d2,d3 loc_74DAA: ; CODE XREF: sub_74CBE+E8j cmpi.w #$8000,d3 bls.s loc_74DB4 move.w #$8000,d3 loc_74DB4: ; CODE XREF: sub_74CBE+F0j sub.w d2,d3 lsr.w #3,d3 tblu.w (DG_TPS_KV_TPSD_PREDICTED_TPS_HIGH_TEST).l,d3 ; A predicted TPS value based on RPM for the stuck high test. ; Percent cmp.w d3,d1 bls.s loc_74E0A loc_74DC4: ; CODE XREF: sub_74CBE+14Aj addq.w #1,(word_FFFFAF8C).w bset #6,(byte_FFFFB48C).w bra.s loc_74E10 ; --------------------------------------------------------------------------- loc_74DD0: ; CODE XREF: sub_74CBE+D2j cmp.w (DG_TPS_KE_TPSD_RAT_LOW_MAP).l,d3 ; Minimum MAP for TPS to be checked for rationality low failures. ; kPa bls.s loc_74E10 addq.w #1,(word_FFFFAF8E).w move.w (word_FFFFAB64).w,d3 move.l d3,d1 move.w (EngineRPM_PID_000C___).w,d3 move.w #$800,d2 cmp.w d3,d2 bls.s loc_74DF0 move.l d2,d3 loc_74DF0: ; CODE XREF: sub_74CBE+12Ej cmpi.w #$8000,d3 bls.s loc_74DFA move.w #$8000,d3 loc_74DFA: ; CODE XREF: sub_74CBE+136j sub.w d2,d3 lsr.w #3,d3 tblu.w (DG_TPS_KV_TPSD_PREDICTED_TPS_LOW_TEST).l,d3 ; A predicted TPS value based on RPM for the stuck low test. ; Percent cmp.w d3,d1 bcs.s loc_74DC4 loc_74E0A: ; CODE XREF: sub_74CBE+104j bclr #6,(byte_FFFFB48C).w loc_74E10: ; CODE XREF: sub_74CBE+110j ; sub_74CBE+118j move.w (word_FFFFAF8C).w,d3 cmp.w (DG_TPS_KE_TPSD_RAT_FAIL_LIM).l,d3 ; Number of rationality failed tests within a sample size that will report a failure. ; Failures bcs.s loc_74E48 move.w (word_FFFF8D14).w,d4 bne.s loc_74E2A move.w (word_FFFFAF8E).w,(word_FFFF8D14).w bra.s loc_74E36 ; --------------------------------------------------------------------------- loc_74E2A: ; CODE XREF: sub_74CBE+162j move.w (word_FFFFAF8E).w,d3 cmp.w d4,d3 bcc.s loc_74E36 move.w d3,(word_FFFF8D14).w loc_74E36: ; CODE XREF: sub_74CBE+16Aj ; sub_74CBE+172j clr.w (word_FFFFAF8E).w clr.w (word_FFFFAF8C).w moveq #$10,d0 jsr sub_5F110 bra.s loc_74E6E ; --------------------------------------------------------------------------- loc_74E48: ; CODE XREF: sub_74CBE+15Cj move.w (word_FFFFAF8E).w,d0 cmp.w (DG_TPS_KE_TPSD_RAT_SMPL_LIM).l,d0 ; Number of rationality tests that make up a sample size. ; Samples bcs.s loc_74E6E cmp.w (word_FFFF8D0E).w,d3 bls.s loc_74E5E move.w d3,(word_FFFF8D0E).w loc_74E5E: ; CODE XREF: sub_74CBE+19Aj clr.w (word_FFFFAF8E).w clr.w (word_FFFFAF8C).w moveq #$10,d0 jsr sub_5F0BE loc_74E6E: ; CODE XREF: sub_74CBE+80j ; sub_74CBE+8Ej ... movem.l (sp)+,d0-d2/a0 rts ; End of function sub_74CBE ; =============== S U B R O U T I N E ======================================= sub_74E74: ; CODE XREF: sub_83754+22p movem.l d0-d2,-(sp) jsr sub_74CA0 move.w (word_FFFFF2FC).w,d3 lsr.w #2,d3 asl.w #8,d3 lsr.w #8,d3 andi.w #$FF,d3 moveq #$14,d2 mulu.w d2,d3 cmp.w (DG_TPS_KE_TPSD_SHORTED_LOW_THRESH).l,d3 ; ; bcc.s loc_74EB6 bset #0,(byte_FFFFB48B).w addq.w #1,(word_FFFFAF94).w btst #6,(byte_FFFFAF7A).w bne.s loc_74EC2 addq.w #1,(word_FFFFAF80).w bset #7,(byte_FFFFB48C).w bra.s loc_74EC2 ; --------------------------------------------------------------------------- loc_74EB6: ; CODE XREF: sub_74E74+22j bclr #0,(byte_FFFFB48B).w bclr #7,(byte_FFFFB48C).w loc_74EC2: ; CODE XREF: sub_74E74+34j ; sub_74E74+40j move.w (word_FFFFAF96).w,d1 addq.w #1,d1 move.w d1,(word_FFFFAF96).w btst #6,(byte_FFFFAF7A).w bne.s loc_74F12 move.w (word_FFFFAF82).w,d3 addq.w #1,d3 move.w d3,(word_FFFFAF82).w move.w (word_FFFFAF80).w,d0 cmp.w (DG_TPS_KE_TPSD_INT_SHORT_LOW_FAIL_LIM).l,d0 ; Number of failed intermittent short to low tests within a sample size that will report a failure. ; Failures bcs.s loc_74EFE move.w #$AF,d0 ; '?' jsr sub_5F110 loc_74EF4: ; CODE XREF: sub_74E74+9Cj clr.w (word_FFFFAF82).w clr.w (word_FFFFAF80).w bra.s loc_74F12 ; --------------------------------------------------------------------------- loc_74EFE: ; CODE XREF: sub_74E74+74j cmp.w (DG_TPS_KE_TPSD_INT_SHORT_LOW_SMPL_LIM).l,d3 ; Number of intermittent short to low tests that make up a sample size. ; Samples bcs.s loc_74F12 move.w #$AF,d0 ; '?' jsr sub_5F0BE bra.s loc_74EF4 ; --------------------------------------------------------------------------- loc_74F12: ; CODE XREF: sub_74E74+5Ej ; sub_74E74+88j ... move.w (word_FFFFAF94).w,d3 cmp.w (DG_TPS_KE_TPSD_SHORT_LOW_FAIL_LIM).l,d3 ; Number of short to low tests that make up a sample size. ; Samples bcs.s loc_74F58 move.w (word_FFFF8D12).w,d3 bne.s loc_74F2A loc_74F24: ; CODE XREF: sub_74E74+B8j move.w d1,(word_FFFF8D12).w bra.s loc_74F2E ; --------------------------------------------------------------------------- loc_74F2A: ; CODE XREF: sub_74E74+AEj cmp.w d3,d1 bcs.s loc_74F24 loc_74F2E: ; CODE XREF: sub_74E74+B4j moveq #$11,d0 jsr sub_5F110 move.w #$AF,d0 ; '?' jsr sub_5F0BE bset #6,(byte_FFFFAF7A).w clr.w (word_FFFFAF96).w clr.w (word_FFFFAF94).w clr.w (word_FFFFAF82).w clr.w (word_FFFFAF80).w bra.s loc_74F80 ; --------------------------------------------------------------------------- loc_74F58: ; CODE XREF: sub_74E74+A8j cmp.w (DG_TPS_KE_TPSD_SHORT_LOW_SMPL_LIM).l,d1 ; ; bcs.s loc_74F80 cmp.w (word_FFFF8D0C).w,d3 bls.s loc_74F6A move.w d3,(word_FFFF8D0C).w loc_74F6A: ; CODE XREF: sub_74E74+F0j moveq #$11,d0 jsr sub_5F0BE bclr #6,(byte_FFFFAF7A).w clr.w (word_FFFFAF96).w clr.w (word_FFFFAF94).w loc_74F80: ; CODE XREF: sub_74E74+E2j ; sub_74E74+EAj move.w (word_FFFFF2FC).w,d3 lsr.w #2,d3 asl.w #8,d3 lsr.w #8,d3 andi.w #$FF,d3 mulu.w d2,d3 cmp.w (DG_TPS_KE_TPSD_SHORTED_HIGH_THRESH).l,d3 ; The threshold below which the throttle position sensor is considered opened or shorted to ground. ; Percent bls.s loc_74FB6 bset #2,(byte_FFFFB48B).w addq.w #1,(word_FFFFAF90).w btst #7,(byte_FFFFAF7A).w bne.s loc_74FC2 addq.w #1,(word_FFFFAF7C).w bset #1,(byte_FFFFB48B).w bra.s loc_74FC2 ; --------------------------------------------------------------------------- loc_74FB6: ; CODE XREF: sub_74E74+122j bclr #2,(byte_FFFFB48B).w bclr #1,(byte_FFFFB48B).w loc_74FC2: ; CODE XREF: sub_74E74+134j ; sub_74E74+140j move.w (word_FFFFAF92).w,d1 addq.w #1,d1 move.w d1,(word_FFFFAF92).w btst #7,(byte_FFFFAF7A).w bne.s loc_75012 move.w (word_FFFFAF7E).w,d3 addq.w #1,d3 move.w d3,(word_FFFFAF7E).w move.w (word_FFFFAF7C).w,d0 cmp.w (DG_TPS_KE_TPSD_INT_SHORT_HIGH_FAIL_LIM).l,d0 ; Number of failed intermittent short to high tests within a sample size that will report a failure. ; Failures bcs.s loc_74FFE move.w #$AE,d0 ; '?' jsr sub_5F110 loc_74FF4: ; CODE XREF: sub_74E74+19Cj clr.w (word_FFFFAF7E).w clr.w (word_FFFFAF7C).w bra.s loc_75012 ; --------------------------------------------------------------------------- loc_74FFE: ; CODE XREF: sub_74E74+174j cmp.w (DG_TPS_KE_TPSD_INT_SHORT_HIGH_SMPL_LIM).l,d3 ; Number of intermittent short to high tests that make up a sample size. ; Samples bcs.s loc_75012 move.w #$AE,d0 ; '?' jsr sub_5F0BE bra.s loc_74FF4 ; --------------------------------------------------------------------------- loc_75012: ; CODE XREF: sub_74E74+15Ej ; sub_74E74+188j ... move.w (word_FFFFAF90).w,d3 cmp.w (DG_TPS_KE_TPSD_SHORT_HIGH_FAIL_LIM).l,d3 ; Number ofNumber of failed short to high tests within a sample size that will report a failure. ; Failures bcs.s loc_75058 move.w (word_FFFF8D10).w,d3 bne.s loc_7502A loc_75024: ; CODE XREF: sub_74E74+1B8j move.w d1,(word_FFFF8D10).w bra.s loc_7502E ; --------------------------------------------------------------------------- loc_7502A: ; CODE XREF: sub_74E74+1AEj cmp.w d3,d1 bcs.s loc_75024 loc_7502E: ; CODE XREF: sub_74E74+1B4j moveq #$12,d0 jsr sub_5F110 move.w #$AE,d0 ; '?' jsr sub_5F0BE bset #7,(byte_FFFFAF7A).w clr.w (word_FFFFAF92).w clr.w (word_FFFFAF90).w clr.w (word_FFFFAF7E).w clr.w (word_FFFFAF7C).w bra.s loc_75080 ; --------------------------------------------------------------------------- loc_75058: ; CODE XREF: sub_74E74+1A8j cmp.w (DG_TPS_KE_TPSD_SHORT_HIGH_SMPL_LIM).l,d1 ; Number of short to high tests that make up a sample size. ; Samples bcs.s loc_75080 cmp.w (word_FFFF8D0A).w,d3 bls.s loc_7506A move.w d3,(word_FFFF8D0A).w loc_7506A: ; CODE XREF: sub_74E74+1F0j moveq #$12,d0 jsr sub_5F0BE bclr #7,(byte_FFFFAF7A).w clr.w (word_FFFFAF92).w clr.w (word_FFFFAF90).w loc_75080: ; CODE XREF: sub_74E74+1E2j ; sub_74E74+1EAj movem.l (sp)+,d0-d2 rts ; End of function sub_74E74 ; =============== S U B R O U T I N E ======================================= sub_75086: ; CODE XREF: sub_74C5A+14p ; sub_74C5A:loc_74C82p ... clr.w (word_FFFFAF94).w clr.w (word_FFFFAF96).w clr.w (word_FFFFAF80).w clr.w (word_FFFFAF82).w clr.w (word_FFFFAF90).w clr.w (word_FFFFAF92).w clr.w (word_FFFFAF7C).w clr.w (word_FFFFAF7E).w clr.w (word_FFFFAF8E).w clr.w (word_FFFFAF8C).w clr.b (byte_FFFFAF88).w move.w #$5333,(word_FFFFAF86).w move.w #$800,(word_FFFFAF8A).w clr.w (word_FFFFAF84).w clr.b (byte_FFFFAF7A).w rts ; End of function sub_75086 ; =============== S U B R O U T I N E ======================================= sub_750C8: ; CODE XREF: sub_74C5A+20p ; sub_74C92+6p ... clr.w (word_FFFF8D0C).w clr.w (word_FFFF8D12).w clr.w (word_FFFF8D0A).w clr.w (word_FFFF8D10).w clr.w (word_FFFF8D0E).w clr.w (word_FFFF8D14).w rts ; End of function sub_750C8 ; =============== S U B R O U T I N E ======================================= sub_750E2: ; CODE XREF: DoLoopF+36p move.w (word_FF86AE).l,d3 cmp.w (DI_TPS_KE_TPSD_IAC_POS_MIN).l,d3 ; Minimum IAC position to be within normal operating window. ; Steps bcs.s loc_75118 cmp.w (DI_TPS_KE_TPSD_IAC_POS_MAX).l,d3 ; Maximum IAC position to be within normal operating window. ; Steps bhi.s loc_75118 btst #1,(byte_FFFF899E).w bne.s loc_75118 btst #1,(byte_FFFF89A0).w bne.s loc_75118 btst #1,(byte_FFFF8A3E).w bne.s loc_75118 btst #1,(byte_FFFF8A40).w beq.s loc_75120 loc_75118: ; CODE XREF: sub_750E2+Cj ; sub_750E2+14j ... bset #6,(byte_FFFF9023).w bra.s loc_75126 ; --------------------------------------------------------------------------- loc_75120: ; CODE XREF: sub_750E2+34j bclr #6,(byte_FFFF9023).w loc_75126: ; CODE XREF: sub_750E2+3Cj btst #1,(byte_FFFF88CE).w bne.s loc_75146 btst #1,(byte_FFFF88D0).w bne.s loc_75146 btst #3,(byte_FFFFB486).w bne.s loc_75146 btst #5,(byte_FFFFB486).w beq.s loc_7514E loc_75146: ; CODE XREF: sub_750E2+4Aj ; sub_750E2+52j ... bset #5,(byte_FFFF9023).w bra.s loc_75154 ; --------------------------------------------------------------------------- loc_7514E: ; CODE XREF: sub_750E2+62j bclr #5,(byte_FFFF9023).w loc_75154: ; CODE XREF: sub_750E2+6Aj btst #1,(byte_FFFF88E2).w bne.s loc_75164 btst #1,(byte_FFFF88E4).w beq.s loc_7516C loc_75164: ; CODE XREF: sub_750E2+78j bset #4,(byte_FFFF9023).w bra.s locret_75172 ; --------------------------------------------------------------------------- loc_7516C: ; CODE XREF: sub_750E2+80j bclr #4,(byte_FFFF9023).w locret_75172: ; CODE XREF: sub_750E2+88j rts ; End of function sub_750E2 ; =============== S U B R O U T I N E ======================================= sub_75174: ; CODE XREF: OS1:00029182p cmpi.b #6,d0 beq.s loc_75188 cmpi.b #3,d0 bhi.s locret_7519A beq.s loc_75188 cmpi.b #1,d0 bls.s locret_7519A loc_75188: ; CODE XREF: sub_75174+4j sub_75174+Cj bclr #6,(byte_FFFF9023).w bclr #5,(byte_FFFF9023).w bclr #4,(byte_FFFF9023).w locret_7519A: ; CODE XREF: sub_75174+Aj ; sub_75174+12j rts ; End of function sub_75174 ; =============== S U B R O U T I N E ======================================= sub_7519C: ; CODE XREF: OS1:00029192p ; sub_755FA+F4p cmpi.b #5,d0 beq.s locret_751B2 clr.b (byte_FFFFB4B1).w clr.b (byte_FFFFB4B3).w clr.b (byte_FFFFB4B0).w clr.b (byte_FFFFB4B2).w locret_751B2: ; CODE XREF: sub_7519C+4j rts ; End of function sub_7519C ; =============== S U B R O U T I N E ======================================= sub_751B4: ; CODE XREF: DoLoopF+454p move.l d0,-(sp) tst.b (byte_FFFFB42A).w beq.s loc_751E6 movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB4B4).w,d3 add.w $A(a2),d3 bcc.s loc_751CE move.w #$FFFF,d3 loc_751CE: ; CODE XREF: sub_751B4+14j move.w d3,(word_FFFFB4B4).w cmp.w (DG_VOLT_KE_V5B1_VOLTAGE_FAULT_TIMER).l,d3 ; Time that V5B1 voltage has to be wrong for a fault to set. ; Seconds bcs.s loc_751EA move.w #$85,d0 ; '?' jsr sub_5F110 bra.s loc_751F4 ; --------------------------------------------------------------------------- loc_751E6: ; CODE XREF: sub_751B4+6j clr.w (word_FFFFB4B4).w loc_751EA: ; CODE XREF: sub_751B4+24j move.w #$85,d0 ; '?' jsr sub_5F0BE loc_751F4: ; CODE XREF: sub_751B4+30j move.l (sp)+,d0 rts ; End of function sub_751B4 ; =============== S U B R O U T I N E ======================================= sub_751F8: ; CODE XREF: DoLoopF+45Ap move.l d0,-(sp) tst.b (byte_FFFFB42B).w beq.s loc_7522A movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFB4B6).w,d3 add.w $A(a2),d3 bcc.s loc_75212 move.w #$FFFF,d3 loc_75212: ; CODE XREF: sub_751F8+14j move.w d3,(word_FFFFB4B6).w cmp.w (DG_VOLT_KE_V5B2_VOLTAGE_FAULT_TIMER).l,d3 ; Time that V5B2 voltage has to be wrong for a fault to set. ; Seconds bcs.s loc_7522E move.w #$88,d0 ; '?' jsr sub_5F110 bra.s loc_75238 ; --------------------------------------------------------------------------- loc_7522A: ; CODE XREF: sub_751F8+6j clr.w (word_FFFFB4B6).w loc_7522E: ; CODE XREF: sub_751F8+24j move.w #$88,d0 ; '?' jsr sub_5F0BE loc_75238: ; CODE XREF: sub_751F8+30j move.l (sp)+,d0 rts ; End of function sub_751F8 ; =============== S U B R O U T I N E ======================================= sub_7523C: ; CODE XREF: DoLoopF+48p move.l d0,-(sp) tst.b (byte_FFFFA1B1).w beq.s loc_7529C move.b (byte_FFFFB4B1).w,d3 addq.b #1,d3 bcc.s loc_75250 move.b #$FF,d3 loc_75250: ; CODE XREF: sub_7523C+Ej move.b d3,(byte_FFFFB4B1).w move.w (word_FFFFB4A2).w,d0 cmp.w (DG_VOLT_KE_IGN_VOLTAGE_HIGH).l,d0 ; Ignition voltage above which failure conditions have been met, and the Fail counter will be incremented. ; Volts bhi.s loc_7527A loc_75260: ; CODE XREF: sub_7523C+54j cmp.b (DG_VOLT_KE_IGN_VOLTAGE_HIGH_SAMPLE_COUNT).l,d3 ; Sample counter above which a pass will be indicated if Fail counter is not exceeded. ; Counts bcs.s loc_7529C moveq #$78,d0 ; 'x' jsr sub_5F0BE loc_75270: ; CODE XREF: sub_7523C+5Ej clr.b (byte_FFFFB4B1).w clr.b (byte_FFFFB4B0).w bra.s loc_7529C ; --------------------------------------------------------------------------- loc_7527A: ; CODE XREF: sub_7523C+22j move.b (byte_FFFFB4B0).w,d4 addq.b #1,d4 bcc.s loc_75286 move.b #$FF,d4 loc_75286: ; CODE XREF: sub_7523C+44j move.b d4,(byte_FFFFB4B0).w cmp.b (DG_VOLT_KE_IGN_VOLTAGE_HIGH_FAIL_COUNT).l,d4 ; Fail counter above which code 563 will be set. ; Counts bcs.s loc_75260 moveq #$78,d0 ; 'x' jsr sub_5F110 bra.s loc_75270 ; --------------------------------------------------------------------------- loc_7529C: ; CODE XREF: sub_7523C+6j ; sub_7523C+2Aj ... tst.b (byte_FFFFA1B8).w beq.s loc_7531E move.w (word_FFFFAEBE).w,d3 cmp.w (DG_VOLT_KE_IGN_VOLT_LOW_VEHICLE_SPEED).l,d3 ; Minimum vehicle speed below which code 562 will not test. ; MPH bcs.s loc_7531E move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DG_VOLT_KE_IGN_VOLT_LOW_ENGINE_SPEED).l,d3 ; Minimum engine speed below which code 562 will not test. ; RPM bcs.s loc_7531E move.l (EngineRunTime).w,d3 cmp.l (DG_VOLT_KE_IGN_VOLT_LOW_ENGINE_RUN_TIME).l,d3 ; Engine run time which must be exceeded to test code 562. ; Seconds bcs.s loc_7531E move.b (byte_FFFFB4B3).w,d3 addq.b #1,d3 bcc.s loc_752D2 move.b #$FF,d3 loc_752D2: ; CODE XREF: sub_7523C+90j move.b d3,(byte_FFFFB4B3).w move.w (word_FFFFB4A2).w,d0 cmp.w (DG_VOLT_KE_IGN_VOLTAGE_LOW).l,d0 ; Ignition voltage below which failure conditions have been met and the Fail Counter will be incremented. ; Volts bcs.s loc_752FC loc_752E2: ; CODE XREF: sub_7523C+D6j cmp.b (DG_VOLT_KE_IGN_VOLTAGE_LOW_SAMPLE_COUNT).l,d3 ; Sample counter above which a pass will be indicated if Fail counter is not exceeded. ; Counts bcs.s loc_7531E moveq #$77,d0 ; 'w' jsr sub_5F0BE loc_752F2: ; CODE XREF: sub_7523C+E0j clr.b (byte_FFFFB4B3).w clr.b (byte_FFFFB4B2).w bra.s loc_7531E ; --------------------------------------------------------------------------- loc_752FC: ; CODE XREF: sub_7523C+A4j move.b (byte_FFFFB4B2).w,d4 addq.b #1,d4 bcc.s loc_75308 move.b #$FF,d4 loc_75308: ; CODE XREF: sub_7523C+C6j move.b d4,(byte_FFFFB4B2).w cmp.b (DG_VOLT_KE_IGN_VOLTAGE_LOW_FAIL_COUNT).l,d4 ; Fail counter above which code 562 will be set. ; Counts bcs.s loc_752E2 moveq #$77,d0 ; 'w' jsr sub_5F110 bra.s loc_752F2 ; --------------------------------------------------------------------------- loc_7531E: ; CODE XREF: sub_7523C+64j ; sub_7523C+70j ... move.l (sp)+,d0 rts ; End of function sub_7523C ; =============== S U B R O U T I N E ======================================= sub_75322: ; CODE XREF: DoLoopF+152p sub_75362+6p move.l d0,-(sp) tst.b (FLASH_KE_SERVICE_CALIBRATION).l beq.s loc_7534E moveq #$7D,d0 ; '}' jsr sub_5F110 moveq #1,d3 move.b d3,(byte_FFFFB472).w tst.b (byte_FFFF8256).w beq.s loc_7535E btst #1,(byte_FFFF89BA).w beq.s loc_7535E move.b d3,(byte_FFFFB473).w bra.s loc_7535E ; --------------------------------------------------------------------------- loc_7534E: ; CODE XREF: sub_75322+8j moveq #$7D,d0 ; '}' jsr sub_5F0BE clr.b (byte_FFFFB473).w clr.b (byte_FFFFB472).w loc_7535E: ; CODE XREF: sub_75322+1Cj ; sub_75322+24j ... move.l (sp)+,d0 rts ; End of function sub_75322 ; =============== S U B R O U T I N E ======================================= sub_75362: ; CODE XREF: OS1:00028ED6p cmpi.b #2,d0 bne.s locret_7536E jsr sub_75322 locret_7536E: ; CODE XREF: sub_75362+4j rts ; End of function sub_75362 ; =============== S U B R O U T I N E ======================================= sub_75370: ; CODE XREF: DoLoopG+7Cp OS1:0003EA48p ... var_50AB = -$50AB move.l d0,-(sp) bset #4,(byte_FFFFAAD0).w moveq #1,d4 clr.b d0 loc_7537C: ; CODE XREF: sub_75370+58j clr.l d3 move.b d4,d3 btst #3,word_FFFFAF56(d3.w*4) bne.s loc_75394 btst #2,word_FFFFAF56(d3.w*4) beq.s loc_75398 loc_75394: ; CODE XREF: sub_75370+18j addq.b #1,d4 bra.s loc_753C0 ; --------------------------------------------------------------------------- loc_75398: ; CODE XREF: sub_75370+22j moveq #1,d0 move.b #$FF,4+var_50AB(d3.w*4) bset #3,word_FFFFAF56(d3.w*4) clr.b byte_FFFFAF58(d3.w*4) andi.b #$F,word_FFFFAF56(d3.w*4) ori.b #$40,word_FFFFAF56(d3.w*4) ; '@' loc_753C0: ; CODE XREF: sub_75370+26j tst.b d0 bne.s loc_753CA cmpi.b #7,d4 bls.s loc_7537C loc_753CA: ; CODE XREF: sub_75370+52j clr.b (byte_FFFFA8C6).w clr.b (byte_FFFFA8C7).w clr.b (byte_FFFFA8C8).w move.w #$F6,d0 ; '?' jsr sub_5F0BE move.w #$F8,d0 ; '?' jsr sub_5F0BE move.w #$F9,d0 ; '?' jsr sub_5F0BE move.w #$FA,d0 ; '?' jsr sub_5F0BE move.w #$FE,d0 ; '?' jsr sub_5F0BE move.w #$FB,d0 ; '?' jsr sub_5F0BE move.w #$FC,d0 ; '?' jsr sub_5F0BE move.w #$FD,d0 ; '?' jsr sub_5F0BE move.w #$FF,d0 jsr sub_5F0BE move.w #$F7,d0 ; '?' jsr sub_5F0BE move.w #$104,d0 jsr sub_5F0BE move.w #$103,d0 jsr sub_5F0BE move.w #$100,d0 jsr sub_5F0BE move.w #$101,d0 jsr sub_5F0BE move.w (GlobalClock).w,(word_FFFFAB06).w clr.b (byte_FFFFA8E1).w moveq #1,d3 loc_7546E: ; CODE XREF: sub_75370+10Ej clr.l d0 move.b d3,d0 clr.b -$572B(d0.w) addq.b #1,d3 cmpi.b #$B,d3 bls.s loc_7546E clr.b d3 loc_75482: ; CODE XREF: sub_75370+12Cj clr.l d4 move.b d3,d4 cmpi.b #$FF,-$571A(d4.w) bne.s loc_75496 clr.b -$571A(d4.w) loc_75496: ; CODE XREF: sub_75370+11Ej addq.b #1,d3 cmpi.b #$17,d3 bls.s loc_75482 jsr sub_85326 moveq #1,d0 move.b d0,(byte_FFFFA96F).w jsr sub_6015A move.b d0,(byte_FFFFAFF4).w clr.b (byte_FFFFA6BF).w clr.l (dword_FFFF8CD6).w clr.l (dword_FFFF8CDA).w clr.l (dword_FFFF8CDE).w clr.l (dword_FFFF8CE2).w clr.b (byte_FFFFB200).w clr.w (word_FFFFB202).w clr.w (word_FFFFB204).w clr.w (word_FFFFB206).w clr.w (word_FFFFB208).w clr.w (word_FFFF8D2A).w clr.w (word_FFFF8D2C).w clr.w (word_FFFF8D2E).w clr.w (word_FFFF8D30).w clr.w (word_FFFFB20A).w clr.w (word_FFFFB20C).w clr.w (word_FFFFB20E).w clr.w (word_FFFFB210).w jsr sub_622E6 bset #3,(byte_FFFF9E90).w jsr sub_63038 jsr sub_646F6 jsr sub_74B7C jsr sub_74206 jsr sub_6A16A jsr nullsub_7 jsr sub_6D1F0 jsr sub_6D22A jsr sub_6D7D0 jsr sub_6DCD4 jsr sub_6E588 bset #5,(byte_FFFFB196).w jsr sub_6B052 clr.w (word_FFFF8D32).w clr.w (word_FFFF8D34).w clr.w (word_FFFF8D36).w clr.w (word_FFFF8D38).w clr.w (word_FFFFB226).w clr.w (word_FFFFB228).w clr.w (word_FFFFB22A).w clr.w (word_FFFFB22C).w clr.w (word_FFFFB22E).w clr.w (word_FFFFB230).w clr.w (word_FFFFB232).w clr.w (word_FFFFB234).w clr.b (byte_FFFFB224).w bset #7,(byte_FFFFAA98).w bset #6,(byte_FFFFA9AA).w bclr #3,(byte_FFFFB176).w clr.w (word_FFFFB16E).w clr.w (word_FFFFB174).w jsr sub_73466 jsr sub_70ECE jsr sub_74C8A jsr sub_66E8A jsr sub_6953A move.w (word_FFFF9DB2).w,(word_FFFFB4F6).w jsr sub_69A58 jsr sub_80362 jsr sub_75A54 jsr sub_2DAA6 jsr sub_6ABB0 clr.b (byte_FFFF8244).w move.w (GlobalClock).w,(word_FFFFA67A).w jsr sub_282B2 move.l (sp)+,d0 rts ; End of function sub_75370 ; =============== S U B R O U T I N E ======================================= sub_755FA: ; CODE XREF: sub_869C0:loc_86AB6p movem.l d0-d1,-(sp) clr.b d1 loc_75600: ; CODE XREF: sub_755FA+1BCj clr.l d3 move.b d1,d3 tst.b OBD2_CONTROL_KV_DIAGNOSTIC_DISABLE_FOR_PTO(d3.w) ; Boolean flags for disabling the OBD II diagnostics when PTO is enabled ; BOOLEAN beq.w loc_757B0 clr.l d3 move.b d1,d3 movea.l off_88EF2(d3.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_7561E: ; DATA XREF: OS4:00088EFEo ; OS4:00088F02o moveq #3,d0 jsr sub_607C2 moveq #3,d0 jsr sub_5F6BC bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_75632: ; DATA XREF: OS4:00088F0Eo clr.b (byte_FFFFAFF4).w bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_7563A: ; DATA XREF: OS4:00088F2Eo moveq #2,d0 jsr sub_62228 bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_75646: ; DATA XREF: OS4:00088F46o move.b #7,(byte_FFFF9E95).w bset #4,(word_FFFF9E8A).w bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_75656: ; DATA XREF: OS4:00088F32o jsr sub_6D232 bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_75660: ; DATA XREF: OS4:00088F96o moveq #3,d0 jsr sub_6B05C clr.w (word_FFFFB226).w clr.w (word_FFFFB228).w clr.w (word_FFFFB22A).w clr.w (word_FFFFB22C).w clr.w (word_FFFFB22E).w clr.w (word_FFFFB230).w clr.w (word_FFFFB232).w clr.w (word_FFFFB234).w clr.b (byte_FFFFB224).w bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_75690: ; DATA XREF: OS4:00088F9Eo moveq #3,d0 jsr sub_6E556 jsr sub_6DD26 bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_756A2: ; DATA XREF: OS4:00088FD6o jsr sub_733E0 jsr sub_7100A bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_756B2: ; DATA XREF: OS4:off_88EF2o ; OS4:00088EF6o ... moveq #3,d0 jsr sub_5F3EC bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_756BE: ; DATA XREF: OS4:00088F12o moveq #3,d0 jsr sub_60FEC bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_756CA: ; DATA XREF: OS4:00088F22o moveq #3,d0 jsr sub_61962 bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_756D6: ; DATA XREF: OS4:00088F3Eo moveq #3,d0 jsr sub_64CDE bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_756E2: ; DATA XREF: OS4:00088F76o jsr sub_69A62 bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_756EC: ; DATA XREF: OS4:00088F7Eo ; OS4:00088F9Ao ... moveq #3,d0 jsr sub_7519C bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_756F8: ; DATA XREF: OS4:00088F82o moveq #3,d0 jsr sub_6CD94 jsr sub_6C870 bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_7570A: ; DATA XREF: OS4:00088F86o moveq #3,d0 jsr sub_6B084 bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_75716: ; DATA XREF: OS4:00088FA6o moveq #3,d0 jsr sub_6D9F2 bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_75722: ; DATA XREF: OS4:00088FAAo ; OS4:00088FAEo ... moveq #3,d0 jsr sub_741A4 bra.w loc_757B0 ; --------------------------------------------------------------------------- loc_7572E: ; DATA XREF: OS4:00088FB6o moveq #3,d0 jsr sub_6EEC8 moveq #3,d0 jsr sub_6EE6A bra.s loc_757B0 ; --------------------------------------------------------------------------- loc_75740: ; DATA XREF: OS4:0008903Eo moveq #3,d0 jsr sub_74C5A bra.s loc_757B0 ; --------------------------------------------------------------------------- loc_7574A: ; DATA XREF: OS4:00088F0Ao ; OS4:00088F42o clr.b (byte_FFFFAF43).w clr.b (byte_FFFFAF3B).w clr.b (byte_FFFFAF3D).w clr.b (byte_FFFFAF3C).w clr.b (byte_FFFFAF3E).w clr.b (byte_FFFFAF40).w clr.b (byte_FFFFAF3F).w clr.b (byte_FFFFAF41).w clr.b (byte_FFFFAF44).w clr.b (byte_FFFFAF45).w clr.b (byte_FFFFAF46).w clr.b (byte_FFFFAF47).w clr.b (byte_FFFFAF48).w clr.b (byte_FFFFAF49).w move.w (word_FFFF90EA).w,(word_FFFFAF4A).w move.w (word_FFFF90EA).w,(word_FFFFAF4C).w clr.b (byte_FFFFAF42).w bra.s loc_757B0 ; --------------------------------------------------------------------------- loc_75794: ; DATA XREF: OS4:00088FD2o moveq #3,d0 jsr sub_7CAF4 bra.s loc_757B0 ; --------------------------------------------------------------------------- loc_7579E: ; DATA XREF: OS4:00088F1Ao moveq #3,d0 jsr sub_75B80 bra.s loc_757B0 ; --------------------------------------------------------------------------- loc_757A8: ; DATA XREF: OS4:00088FA2o moveq #3,d0 jsr sub_4B1C8 loc_757B0: ; CODE XREF: sub_755FA+12j ; sub_755FA+34j ... addq.b #1,d1 cmpi.b #$53,d1 ; 'S' bls.w loc_75600 movem.l (sp)+,d0-d1 rts ; End of function sub_755FA ; =============== S U B R O U T I N E ======================================= sub_757C0: ; CODE XREF: DoLoopD+14Ep DoLoopG+C6p movem.l d0-d2/a0,-(sp) btst #3,(word_FFFFA7DC).w beq.s loc_757DC btst #7,(word_FFFFA7E2).w sne d3 neg.b d3 move.b d3,(byte_FFFFA1E6).w bra.s loc_75852 ; --------------------------------------------------------------------------- loc_757DC: ; CODE XREF: sub_757C0+Aj move.b (byte_FFFF8ACC).w,d3 lsr.b #4,d3 andi.b #3,d3 cmpi.b #2,d3 bne.s loc_7580E move.w (word_FFFFA1E4).w,d3 bne.s loc_757F8 eori.b #1,(byte_FFFFA1E6).w loc_757F8: ; CODE XREF: sub_757C0+30j movea.l (dword_FFFFB5DE).w,a0 add.w $A(a0),d3 move.w d3,(word_FFFFA1E4).w cmp.w (OBD2_CONTROL_KE_MIL_TIME).l,d3 ; Time that the MIL should be on or off during MIL flashing ; Seconds bcs.s loc_75828 bra.s loc_75824 ; --------------------------------------------------------------------------- loc_7580E: ; CODE XREF: sub_757C0+2Aj moveq #1,d2 cmp.b d3,d2 beq.s loc_7581A tst.b (byte_FFFFA1E7).w beq.s loc_75820 loc_7581A: ; CODE XREF: sub_757C0+52j move.b d2,(byte_FFFFA1E6).w bra.s loc_75824 ; --------------------------------------------------------------------------- loc_75820: ; CODE XREF: sub_757C0+58j clr.b (byte_FFFFA1E6).w loc_75824: ; CODE XREF: sub_757C0+4Cj ; sub_757C0+5Ej clr.w (word_FFFFA1E4).w loc_75828: ; CODE XREF: sub_757C0+4Aj tst.b (byte_FFFFB518).w beq.s loc_7584E move.w (word_FFFFA1E2).w,d3 bne.s loc_7583A eori.b #1,(byte_FFFFA1E6).w loc_7583A: ; CODE XREF: sub_757C0+72j movea.l (dword_FFFFB5DE).w,a0 add.w $A(a0),d3 move.w d3,(word_FFFFA1E2).w cmp.w (OBD2_CONTROL_KE_MIL_TIME).l,d3 ; Time that the MIL should be on or off during MIL flashing ; Seconds bcs.s loc_75852 loc_7584E: ; CODE XREF: sub_757C0+6Cj clr.w (word_FFFFA1E2).w loc_75852: ; CODE XREF: sub_757C0+1Aj ; sub_757C0+8Cj clr.b d1 clr.l d0 move.w (TCM_IO_INTERFACE_KE_TCM_GENERAL_DELAY_REQUEST).l,d0 clr.l d3 move.w (TCM_IO_INTERFACE_KE_TCM_POWERUP_INTEGRITY_COMPLET).l,d3 ; Time after ignition on that the PCM will stop monitoring theAllison TCM MIL request for line integrity check - P0802 ; Seconds add.l d0,d3 clr.l d0 move.w (word_FFFFA66A).w,d0 cmp.l d3,d0 bcs.s loc_75894 tst.b (byte_FFFFA665).w beq.s loc_75894 move.w (TCM_IO_INTERFACE_KE_TCM_MIL_REQUEST_TIME).l,d0 ; Allison TCM MIL request line must be active for this amount of time before PCM will log a P0700 and illuminate the MIL. ; Seconds movea.l #unk_FFA67A,a0 jsr sub_276D4 tst.b d0 beq.s loc_75894 tst.b (byte_FFFFA193).w beq.s loc_75894 addq.b #1,d1 loc_75894: ; CODE XREF: sub_757C0+AEj ; sub_757C0+B4j ... or.b (byte_FFFFA1E6).w,d1 moveq #$3E,d0 ; '>' jsr (sub_1122).l movem.l (sp)+,d0-d2/a0 rts ; End of function sub_757C0 ; =============== S U B R O U T I N E ======================================= sub_758A6: ; CODE XREF: OS1:00029244p andi.w #$FF,d0 movea.l off_8A3B4(d0.w*4),a2 jmp (a2) ; End of function sub_758A6 ; --------------------------------------------------------------------------- loc_758B4: ; DATA XREF: OS4:off_8A3B4o ; OS4:0008A3B8o bra.s locret_758D6 ; --------------------------------------------------------------------------- loc_758B6: ; DATA XREF: OS4:0008A3BCo clr.w (4294943202).w clr.w (word_FFFFA1E4).w move.b #1,(byte_FFFFA1E7).w bra.s locret_758D6 ; --------------------------------------------------------------------------- loc_758C6: ; DATA XREF: OS4:0008A3C0o clr.w (4294943202).w clr.w (word_FFFFA1E4).w loc_758CE: ; DATA XREF: OS4:0008A3C4o bra.s locret_758D6 ; --------------------------------------------------------------------------- loc_758D0: ; DATA XREF: OS4:0008A3CCo ; OS4:0008A3D0o bra.s locret_758D6 ; --------------------------------------------------------------------------- loc_758D2: ; DATA XREF: OS4:0008A3D4o clr.b (byte_FFFFA1E7).w locret_758D6: ; CODE XREF: OS3:loc_758B4j ; OS3:000758C4j ... rts ; =============== S U B R O U T I N E ======================================= sub_758D8: ; CODE XREF: OS1:00028CD8p move.l d1,-(sp) cmpi.b #8,d0 beq.s loc_7592E cmpi.b #6,d0 beq.s loc_75922 cmpi.b #3,d0 bhi.w loc_759C2 cmpi.b #1,d0 bls.w loc_759C2 clr.b (byte_FFFFB4DB).w clr.b (byte_FFFFB4DC).w clr.b (byte_FFFFB4DD).w clr.b (byte_FFFFB4DE).w tst.b (byte_FFFFB54A).w bne.w loc_759C2 clr.b (byte_FFFF82CF).w clr.b (byte_FFFF82CE).w clr.b (byte_FFFF82D0).w clr.b (byte_FFFF82D1).w bra.w loc_759C2 ; --------------------------------------------------------------------------- loc_75922: ; CODE XREF: sub_758D8+Cj clr.b (byte_FFFFB4DD).w clr.b (byte_FFFFB4DE).w bra.w loc_759C2 ; --------------------------------------------------------------------------- loc_7592E: ; CODE XREF: sub_758D8+6j tst.b (byte_FFFFA1CB).w beq.w loc_759C2 move.b (byte_FFFF82CF).w,d4 addq.b #1,d4 move.b d4,(byte_FFFF82CF).w move.b (byte_FFFFA3B0).w,d3 cmpi.b #6,d3 beq.s loc_7597E moveq #5,d1 cmp.b d3,d1 beq.s loc_7597E cmpi.b #7,d3 beq.s loc_7597E move.w (word_FFFFB4A2).w,d0 moveq #5,d1 mulu.w d1,d0 lsr.w #7,d0 cmp.b (T_DG_TASKS_KE_PRNDL_PNSWITCH_VOLTAGE_MIN).l,d0 bcs.s loc_7597E move.w (word_FFFFB4A2).w,d0 mulu.w #5,d0 lsr.w #7,d0 cmp.b (T_DG_TASKS_KE_PRNDL_PNSWITCH_VOLTAGE_MAX).l,d0 bcc.s loc_7597E addq.b #1,(byte_FFFF82CE).w loc_7597E: ; CODE XREF: sub_758D8+70j ; sub_758D8+76j ... move.b (byte_FFFF82CE).w,d0 cmp.b (T_DG_TASKS_KE_PRNDL_PNSWITCH_DR_FAIL_CNT).l,d0 bcs.s loc_759A4 move.b #1,(byte_FFFF82D0).w move.w #$8C,d0 ; '?' jsr sub_5F110 loc_7599A: ; CODE XREF: sub_758D8+DCj ; sub_758D8+E8j clr.b (byte_FFFF82CF).w clr.b (byte_FFFF82CE).w bra.s loc_759C2 ; --------------------------------------------------------------------------- loc_759A4: ; CODE XREF: sub_758D8+B0j cmp.b (T_DG_TASKS_KE_PRNDL_PNSWITCH_DR_PASS_CNT).l,d4 bcs.s loc_759C2 clr.b (byte_FFFF82D0).w tst.b (byte_FFFF82D1).w bne.s loc_7599A move.w #$8C,d0 ; '?' jsr sub_5F0BE bra.s loc_7599A ; --------------------------------------------------------------------------- loc_759C2: ; CODE XREF: sub_758D8+12j ; sub_758D8+1Aj ... move.l (sp)+,d1 rts ; End of function sub_758D8 ; =============== S U B R O U T I N E ======================================= sub_759C6: ; CODE XREF: DoLoopF+354p move.l d0,-(sp) cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_759DE loc_759D2: ; CODE XREF: sub_759C6+20j move.w #$8B,d0 ; '?' jsr sub_5F0BE bra.s loc_75A50 ; --------------------------------------------------------------------------- loc_759DE: ; CODE XREF: sub_759C6+Aj cmpi.b #1,(VEH_SYS_KE_TYPE_OF_DISCRETE_GEAR_SELECT).l ; Describes if the vehicle is equipped with PRNDL input, Park/Neutral switch or neither. ; Selection_List bne.s loc_759D2 move.b (byte_FFFFB4DB).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFB4DB).w tst.b (byte_FFFFA3AA).w beq.s loc_75A0E move.w (word_FFFFB4A2).w,d0 mulu.w #5,d0 lsr.w #7,d0 cmp.b (T_DG_TASKS_KE_PRNDL_PNSWITCH_VOLTAGE_MIN).l,d0 bcs.s loc_75A0E addq.b #1,(byte_FFFFB4DC).w loc_75A0E: ; CODE XREF: sub_759C6+30j ; sub_759C6+42j move.b (byte_FFFFB4DC).w,d0 cmp.b (T_DG_TASKS_KE_PRNDL_CKT_FAIL_COUNT_MAX).l,d0 ; If PRNDL_Ckt_Fail_Count exceeds this value, PRNDL_Range_Fault will be logged to the diagnostic. ; Counts bcs.s loc_75A2E btst #1,(byte_FFFF89D6).w bne.s loc_75A50 move.w #$8B,d0 ; '?' jsr sub_5F110 bra.s loc_75A48 ; --------------------------------------------------------------------------- loc_75A2E: ; CODE XREF: sub_759C6+52j cmp.b (T_DG_TASKS_KE_PRNDL_CKT_SAMPLE_COUNT_MAX).l,d3 ; If PRNDL_Ckt_Sample_Count exceeds this value, PRNDL_Range_Passed will be logged to the diagnostic. ; Counts bcs.s loc_75A50 btst #1,(byte_FFFF89D6).w beq.s loc_75A50 move.w #$8B,d0 ; '?' jsr sub_5F0BE loc_75A48: ; CODE XREF: sub_759C6+66j clr.b (byte_FFFFB4DB).w clr.b (byte_FFFFB4DC).w loc_75A50: ; CODE XREF: sub_759C6+16j ; sub_759C6+5Aj ... move.l (sp)+,d0 rts ; End of function sub_759C6 ; =============== S U B R O U T I N E ======================================= sub_75A54: ; CODE XREF: sub_75370+264p clr.b (byte_FFFF82CF).w clr.b (byte_FFFF82CE).w clr.b (byte_FFFF82D0).w clr.b (byte_FFFF82D1).w rts ; End of function sub_75A54 ; =============== S U B R O U T I N E ======================================= sub_75A66: ; CODE XREF: DoLoopG+ACp movem.l d0-d1,-(sp) move.l (byte_FFFF8252).w,d3 btst #$1D,d3 bne.w loc_75B7A btst #$1F,d3 bne.w loc_75B7A btst #1,(byte_FFFF89E8).w bne.w loc_75B7A move.w (word_FFFFB4A2).w,d3 moveq #5,d1 mulu.w d1,d3 lsr.w #7,d3 cmp.b (T_DG_TASKS_KE_PRNDL_PNSWITCH_VOLTAGE_MIN).l,d3 bcs.w loc_75B7A move.w (word_FFFFB4A2).w,d3 moveq #5,d1 mulu.w d1,d3 lsr.w #7,d3 cmp.b (T_DG_TASKS_KE_PRNDL_PNSWITCH_VOLTAGE_MAX).l,d3 bcc.w loc_75B7A clr.l d3 move.w (T_DG_TASKS_KE_PRNDL_PNSWITCH_ENG_RUN_MIN).l,d3 cmp.l (EngineRunTime).w,d3 bhi.w loc_75B7A move.w (word_FFFFAB66).w,d3 cmp.w (T_DG_TASKS_KE_PRNDL_PNSWITCH_THROTTLE_MIN).l,d3 bcs.w loc_75B7A move.w (word_FFFFAEBC).w,d3 cmp.w (T_DG_TASKS_KE_PRNDL_PNSWITCH_VEH_SPD_MIN).l,d3 bcs.w loc_75B7A clr.l d3 move.w (T_DG_TASKS_KE_PRNDL_PNSWITCH_TORQUE_MIN).l,d3 ; Engine troque must be greater than or equal to this in order to run Park/Neutral test of the PRNDL_Switch diagnostic (P706). ; Foot_Pounds move.w (word_FFFF9E28).w,d0 ext.l d0 cmp.l d3,d0 blt.w loc_75B7A move.b (byte_FFFF95DC).w,d3 cmp.b (T_DG_TASKS_KE_PRNDL_PNSWITCH_GEAR_MIN).l,d3 bcs.s loc_75B7A tst.b (byte_FFFF9035).w bne.s loc_75B7A move.b (byte_FFFFB4DD).w,d3 addq.b #1,d3 bcc.s loc_75B0E move.b #$FF,d3 loc_75B0E: ; CODE XREF: sub_75A66+A2j move.b d3,(byte_FFFFB4DD).w move.b (byte_FFFFA3B0).w,d3 cmpi.b #6,d3 beq.s loc_75B22 cmpi.b #5,d3 bne.s loc_75B52 loc_75B22: ; CODE XREF: sub_75A66+B4j move.b (byte_FFFFB4DE).w,d3 addq.b #1,d3 bcc.s loc_75B2E move.b #$FF,d3 loc_75B2E: ; CODE XREF: sub_75A66+C2j move.b d3,(byte_FFFFB4DE).w cmp.b (T_DG_TASKS_KE_PRNDL_PNSWITCH_PN_FAIL_CNT).l,d3 bcs.s loc_75B52 move.b #1,(byte_FFFF82D1).w move.w #$8C,d0 ; '?' jsr sub_5F110 clr.b (byte_FFFFB4DD).w clr.b (byte_FFFFB4DE).w loc_75B52: ; CODE XREF: sub_75A66+BAj ; sub_75A66+D2j move.b (byte_FFFFB4DD).w,d0 cmp.b (T_DG_TASKS_KE_PRNDL_PNSWITCH_PN_PASS_CNT).l,d0 bcs.s loc_75B7A clr.b (byte_FFFF82D1).w tst.b (byte_FFFF82D0).w bne.s loc_75B72 move.w #$8C,d0 ; '?' jsr sub_5F0BE loc_75B72: ; CODE XREF: sub_75A66+100j clr.b (byte_FFFFB4DD).w clr.b (byte_FFFFB4DE).w loc_75B7A: ; CODE XREF: sub_75A66+Cj ; sub_75A66+14j ... movem.l (sp)+,d0-d1 rts ; End of function sub_75A66 ; =============== S U B R O U T I N E ======================================= sub_75B80: ; CODE XREF: OS1:00028CD0p ; sub_755FA+1A6p cmpi.b #6,d0 beq.s loc_75B92 cmpi.b #3,d0 bhi.s locret_75BBE cmpi.b #1,d0 bls.s locret_75BBE loc_75B92: ; CODE XREF: sub_75B80+4j bclr #7,(byte_FFFFB4D8).w bclr #6,(byte_FFFFB4D8).w bclr #5,(byte_FFFFB4D8).w clr.b (byte_FFFFB4D9).w clr.b (byte_FFFFB4DA).w bclr #4,(byte_FFFFB4D8).w tst.b (byte_FFFFA3AC).w beq.s locret_75BBE bset #4,(byte_FFFFB4D8).w locret_75BBE: ; CODE XREF: sub_75B80+Aj ; sub_75B80+10j ... rts ; End of function sub_75B80 ; =============== S U B R O U T I N E ======================================= sub_75BC0: ; CODE XREF: sub_75C8C+18p move.l d0,-(sp) btst #7,(byte_FFFFB4D8).w beq.w loc_75C6A btst #4,(byte_FFFFB4D8).w sne d3 neg.b d3 cmp.b (byte_FFFFA3AC).w,d3 bne.w loc_75C62 btst #6,(byte_FFFFB4D8).w beq.s loc_75C4E move.w (word_FFFFAEBE).w,d3 bne.w loc_75C76 move.b (byte_FFFFB4D9).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFB4D9).w btst #5,(byte_FFFFB4D8).w beq.s loc_75C1C loc_75C00: ; CODE XREF: sub_75BC0+6Cj cmp.b (T_DG_TASKS_KE_CLUTCH_SWITCH_SAMPLE_COUNT_MA).l,d3 ; If Clutch_Switch_Sample_Count exceeds this calibration, a clutch switch test passed will be logged to the diagnostic executive ; Counts bcs.s loc_75C3A move.w #$A4,d0 ; '?' jsr sub_5F0BE loc_75C12: ; CODE XREF: sub_75BC0+78j clr.b (byte_FFFFB4D9).w clr.b (byte_FFFFB4DA).w bra.s loc_75C3A ; --------------------------------------------------------------------------- loc_75C1C: ; CODE XREF: sub_75BC0+3Ej move.b (byte_FFFFB4DA).w,d4 addq.b #1,d4 move.b d4,(byte_FFFFB4DA).w cmp.b (T_DG_TASKS_KE_CLUTCH_SWITCH_FAIL_COUNT_MAX).l,d4 ; If Clutch_Switch_Fail_Count exceeds this calibration, a clutch switch failure will be logged to the diagnostic executive ; Counts bcs.s loc_75C00 move.w #$A4,d0 ; '?' jsr sub_5F110 bra.s loc_75C12 ; --------------------------------------------------------------------------- loc_75C3A: ; CODE XREF: sub_75BC0+46j ; sub_75BC0+5Aj bclr #7,(byte_FFFFB4D8).w bclr #6,(byte_FFFFB4D8).w bclr #5,(byte_FFFFB4D8).w bra.s loc_75C76 ; --------------------------------------------------------------------------- loc_75C4E: ; CODE XREF: sub_75BC0+24j move.w (word_FFFFAEBE).w,d3 cmp.w (T_DG_TASKS_KE_CLUTCH_VEHICLE_SPEED_THRESH).l,d3 ; The vehicle speed threshold at which there should be at least one transmission clutch switch transition. ; MPH bls.s loc_75C76 bset #6,(byte_FFFFB4D8).w bra.s loc_75C76 ; --------------------------------------------------------------------------- loc_75C62: ; CODE XREF: sub_75BC0+1Aj bset #5,(byte_FFFFB4D8).w bra.s loc_75C76 ; --------------------------------------------------------------------------- loc_75C6A: ; CODE XREF: sub_75BC0+8j move.w (word_FFFFAEBE).w,d3 bne.s loc_75C76 bset #7,(byte_FFFFB4D8).w loc_75C76: ; CODE XREF: sub_75BC0+2Aj ; sub_75BC0+8Cj ... bclr #4,(byte_FFFFB4D8).w tst.b (byte_FFFFA3AC).w beq.s loc_75C88 bset #4,(byte_FFFFB4D8).w loc_75C88: ; CODE XREF: sub_75BC0+C0j move.l (sp)+,d0 rts ; End of function sub_75BC0 ; =============== S U B R O U T I N E ======================================= sub_75C8C: ; CODE XREF: DoLoopF+3C2p cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s locret_75CAA tst.b (byte_FFFFA198).w beq.s locret_75CAA btst #7,(byte_FFFF8252).w bne.s locret_75CAA jsr sub_75BC0 locret_75CAA: ; CODE XREF: sub_75C8C+8j sub_75C8C+Ej ... rts ; End of function sub_75C8C ; =============== S U B R O U T I N E ======================================= sub_75CAC: ; CODE XREF: OS1:00028D00p cmpi.b #5,d0 beq.s locret_75CD4 cmpi.b #4,d0 beq.s locret_75CD4 cmpi.b #2,d0 bne.s locret_75CD4 move.w (word_FFFFF2F8).w,d3 lsr.w #2,d3 asl.w #8,d3 move.w d3,(word_FFFFB430).w move.w #$800,(word_FFFFB42C).w clr.b (byte_FFFFB42A).w locret_75CD4: ; CODE XREF: sub_75CAC+4j sub_75CAC+Aj ... rts ; End of function sub_75CAC ; =============== S U B R O U T I N E ======================================= sub_75CD6: ; CODE XREF: sub_75DA0p move.w (word_FFFFF2F8).w,d3 lsr.w #2,d3 asl.w #8,d3 move.w d3,(word_FFFFB430).w cmp.w (VOLTAGE_MONITOR_KE_SA_V5B1_FRACTION_LOW).l,d3 ; Minimum threshold that the ratio of V5B1 voltage to 5volt reference can be before setting a fault. ; Unitless bcs.s loc_75CF2 cmp.w (VOLTAGE_MONITOR_KE_SA_V5B1_FRACTION_HIGH).l,d3 ; Maximum threshold that the ratio of V5B1 voltage to 5volt reference can be before setting a fault. ; Unitless bls.s loc_75D20 loc_75CF2: ; CODE XREF: sub_75CD6+12j move.b #1,(byte_FFFFB42A).w tst.w d3 beq.s loc_75D18 move.l #$7470000,d3 divu.w (word_FFFFB430).w,d3 bvs.s loc_75D0E cmpi.w #$1000,d3 bls.s loc_75D12 loc_75D0E: ; CODE XREF: sub_75CD6+30j move.w #$1000,d3 loc_75D12: ; CODE XREF: sub_75CD6+36j move.w d3,(word_FFFFB42C).w bra.s locret_75D24 ; --------------------------------------------------------------------------- loc_75D18: ; CODE XREF: sub_75CD6+24j move.w #$1000,(word_FFFFB42C).w bra.s locret_75D24 ; --------------------------------------------------------------------------- loc_75D20: ; CODE XREF: sub_75CD6+1Aj clr.b (byte_FFFFB42A).w locret_75D24: ; CODE XREF: sub_75CD6+40j ; sub_75CD6+48j rts ; End of function sub_75CD6 ; =============== S U B R O U T I N E ======================================= sub_75D26: ; CODE XREF: OS1:00028D08p cmpi.b #5,d0 beq.s locret_75D4E cmpi.b #4,d0 beq.s locret_75D4E cmpi.b #2,d0 bne.s locret_75D4E move.w (word_FFFFF2EE).w,d3 lsr.w #2,d3 asl.w #8,d3 move.w d3,(word_FFFFB432).w move.w #$800,(word_FFFFB42E).w clr.b (byte_FFFFB42B).w locret_75D4E: ; CODE XREF: sub_75D26+4j sub_75D26+Aj ... rts ; End of function sub_75D26 ; =============== S U B R O U T I N E ======================================= sub_75D50: ; CODE XREF: sub_75DA0+6p move.w (word_FFFFF2EE).w,d3 lsr.w #2,d3 asl.w #8,d3 move.w d3,(word_FFFFB432).w cmp.w (VOLTAGE_MONITOR_KE_SA_V5B2_FRACTION_LOW).l,d3 ; Minimum threshold that the ratio of V5B2 voltage to 5volt reference can be before setting a fault. ; Unitless bcs.s loc_75D6C cmp.w (VOLTAGE_MONITOR_KE_SA_V5B2_FRACTION_HIGH).l,d3 ; Maximum threshold that the ratio of V5B2 voltage to 5volt reference can be before setting a fault. ; Unitless bls.s loc_75D9A loc_75D6C: ; CODE XREF: sub_75D50+12j move.b #1,(byte_FFFFB42B).w tst.w d3 beq.s loc_75D92 move.l #$7470000,d3 divu.w (word_FFFFB432).w,d3 bvs.s loc_75D88 cmpi.w #$1000,d3 bls.s loc_75D8C loc_75D88: ; CODE XREF: sub_75D50+30j move.w #$1000,d3 loc_75D8C: ; CODE XREF: sub_75D50+36j move.w d3,(word_FFFFB42E).w bra.s locret_75D9E ; --------------------------------------------------------------------------- loc_75D92: ; CODE XREF: sub_75D50+24j move.w #$1000,(word_FFFFB42E).w bra.s locret_75D9E ; --------------------------------------------------------------------------- loc_75D9A: ; CODE XREF: sub_75D50+1Aj clr.b (byte_FFFFB42B).w locret_75D9E: ; CODE XREF: sub_75D50+40j ; sub_75D50+48j rts ; End of function sub_75D50 ; =============== S U B R O U T I N E ======================================= sub_75DA0: ; CODE XREF: DoLoopE+1ACp jsr sub_75CD6 jsr sub_75D50 rts ; End of function sub_75DA0 ; =============== S U B R O U T I N E ======================================= sub_75DAE: ; CODE XREF: sub_2F712+62p andi.w #$FF,d0 movea.l off_89F04(d0.w*4),a2 jmp (a2) ; End of function sub_75DAE ; --------------------------------------------------------------------------- loc_75DBC: ; DATA XREF: OS4:00089F0Co jsr sub_79708 move.l d0,(dword_FFFFB41C).w clr.w (word_FFFFB416).w tst.b (byte_FFFFB54A).w bne.s locret_75DDA clr.w (word_FFFF82E4).w bra.s locret_75DDA ; --------------------------------------------------------------------------- loc_75DD6: ; DATA XREF: OS4:00089F10o ; OS4:00089F1Co ... clr.w (word_FFFFB416).w locret_75DDA: ; CODE XREF: OS3:00075DCEj ; OS3:00075DD4j ; DATA XREF: ... rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_75DDC: ; CODE XREF: DoLoopF+296p var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d1,-(sp) jsr sub_79708 move.l d0,d4 move.l d4,d3 sub.l (dword_FFFFB41C).w,d3 move.l d4,(dword_FFFFB41C).w cmpi.l #$FFFF,d3 bhi.s loc_75E1A mulu.w (word_FFFFB0EC).w,d3 mulu.l #$740,d4:d3 divu.l #$753,d4:d3 cmpi.l #$7FFFFFFF,d3 bls.s loc_75E20 loc_75E1A: ; CODE XREF: sub_75DDC+20j move.l #$7FFFFFFF,d3 loc_75E20: ; CODE XREF: sub_75DDC+3Cj clr.l d5 move.w (FUEL_ECONOMY_KE_FUEL_ECONOMY_SCALER).l,d5 ; Scaler used to adjust liters of fuel for fuel economy calculations. ; NONE 0_2 mulu.l d3,d3:d5 divu.l #$800,d3:d5 move.l d5,d3 mulu.l #$AD9,d4:d3 divu.l #$31B5,d4:d3 cmpi.l #$16CFE93,d3 bls.s loc_75E54 move.l #$16CFE93,d3 loc_75E54: ; CODE XREF: sub_75DDC+70j add.l (dword_FFFFB418).w,d3 move.l d3,(dword_FFFFB418).w move.l d3,d4 move.w #$16D,d1 divu.w d1,d4 move.l d4,d0 mulu.w d1,d0 sub.l d0,d3 move.l d3,(dword_FFFFB418).w add.w d4,(word_FFFF82E4).w move.w (word_FFFFB416).w,var_4(a6) move.w d4,var_2(a6) move.w (FUEL_ECONOMY_KE_INSTANTANEOUS_FILTER_COEFF).l,d3 ; Coefficient for filtering instantaneous fuel ; NONE 0-1 tblu.w var_4(a6),d3 move.w d3,(word_FFFFB416).w movem.l (sp)+,d0-d1 unlk a6 rts ; End of function sub_75DDC ; =============== S U B R O U T I N E ======================================= sub_75E94: ; CODE XREF: sub_75EA6+2Cp ; sub_75EEE+2Ep ... move sr,-(sp) ori #$700,sr move.b d0,(byte_FFFF9022).w move.b d0,(byte_FFFFA019).w move (sp)+,sr rts ; End of function sub_75E94 ; =============== S U B R O U T I N E ======================================= sub_75EA6: ; CODE XREF: sub_75FCA+12p ; sub_75FCA+4Ep ... tst.b (ENG_CONSTANTS_KE_TYPE_OF_KNOCK_SENSORS+3).l ; Identifies whether the engine is equipped with resonant( 0 ) or flat response( 1 ) knock sensors. ; Knock_Sensor_Type beq.s locret_75EEC move.b (byte_FFFFB531).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFB531).w cmp.b d0,d3 bne.s loc_75EC8 tst.b (byte_FFFFB533).w bne.s loc_75EC8 move.b d0,(byte_FFFFB533).w bra.s locret_75EEC ; --------------------------------------------------------------------------- loc_75EC8: ; CODE XREF: sub_75EA6+14j ; sub_75EA6+1Aj move.b d0,(byte_FFFFB531).w move.b d0,(byte_FFFFB533).w clr.b d0 jsr sub_75E94 clr.w d0 jsr sub_77658 move.b #$12,(byte_FFFFB530).w jsr sub_76844 locret_75EEC: ; CODE XREF: sub_75EA6+6j ; sub_75EA6+20j rts ; End of function sub_75EA6 ; =============== S U B R O U T I N E ======================================= sub_75EEE: ; CODE XREF: sub_75FCA+46p ; sub_75FCA+BCp ... tst.b (ENG_CONSTANTS_KE_TYPE_OF_KNOCK_SENSORS+3).l ; Identifies whether the engine is equipped with resonant( 0 ) or flat response( 1 ) knock sensors. ; Knock_Sensor_Type beq.s locret_75F36 cmp.b (byte_FFFFB531).w,d0 bne.s loc_75F12 cmp.b (byte_FFFFB533).w,d0 bne.s loc_75F12 clr.b (byte_FFFFB533).w cmpi.b #9,d0 bne.s locret_75F36 clr.b (byte_FFFFB531).w bra.s locret_75F36 ; --------------------------------------------------------------------------- loc_75F12: ; CODE XREF: sub_75EEE+Cj ; sub_75EEE+12j move.b d0,(byte_FFFFB531).w clr.b (byte_FFFFB533).w clr.b d0 jsr sub_75E94 clr.w d0 jsr sub_77658 move.b #$12,(byte_FFFFB530).w jsr sub_76844 locret_75F36: ; CODE XREF: sub_75EEE+6j ; sub_75EEE+1Cj ... rts ; End of function sub_75EEE ; =============== S U B R O U T I N E ======================================= sub_75F38: ; CODE XREF: sub_76A4E+Ap ; sub_76A4E+11Ap ... tst.b (ENG_CONSTANTS_KE_TYPE_OF_KNOCK_SENSORS+3).l ; Identifies whether the engine is equipped with resonant( 0 ) or flat response( 1 ) knock sensors. ; Knock_Sensor_Type beq.s locret_75F7E move.b (byte_FFFFB532).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFB532).w cmp.b d0,d3 bne.s loc_75F5A tst.b (byte_FFFFB534).w bne.s loc_75F5A move.b d0,(byte_FFFFB534).w bra.s locret_75F7E ; --------------------------------------------------------------------------- loc_75F5A: ; CODE XREF: sub_75F38+14j ; sub_75F38+1Aj move.b d0,(byte_FFFFB532).w move.b d0,(byte_FFFFB534).w clr.b d0 jsr sub_75E94 clr.w d0 jsr sub_77658 move.b #$12,(byte_FFFFB530).w jsr sub_76844 locret_75F7E: ; CODE XREF: sub_75F38+6j ; sub_75F38+20j rts ; End of function sub_75F38 ; =============== S U B R O U T I N E ======================================= sub_75F80: ; CODE XREF: sub_76A4E+112p ; sub_76A4E+662p ... tst.b (ENG_CONSTANTS_KE_TYPE_OF_KNOCK_SENSORS+3).l ; Identifies whether the engine is equipped with resonant( 0 ) or flat response( 1 ) knock sensors. ; Knock_Sensor_Type beq.s locret_75FC8 cmp.b (byte_FFFFB532).w,d0 bne.s loc_75FA4 cmp.b (byte_FFFFB534).w,d0 bne.s loc_75FA4 clr.b (byte_FFFFB534).w cmpi.b #4,d0 bne.s locret_75FC8 clr.b (byte_FFFFB532).w bra.s locret_75FC8 ; --------------------------------------------------------------------------- loc_75FA4: ; CODE XREF: sub_75F80+Cj ; sub_75F80+12j move.b d0,(byte_FFFFB532).w clr.b (byte_FFFFB534).w clr.b d0 jsr sub_75E94 clr.w d0 jsr sub_77658 move.b #$12,(byte_FFFFB530).w jsr sub_76844 locret_75FC8: ; CODE XREF: sub_75F80+6j ; sub_75F80+1Cj ... rts ; End of function sub_75F80 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_75FCA: ; CODE XREF: DoLoopC+122p var_4 = -4 link a6,#-4 movem.l d0-d2/d6-a0,-(sp) tst.b (byte_FFFFB370).w beq.w loc_76426 moveq #1,d0 jsr sub_75EA6 tst.b (CRUIS_CONTROL_KE_PERFORM_BRK_OR_CLUTCH_TEST).l ; Brake before cruise security option. If TRUE, the brakeinput must be asserted before cruise can be enabled ; BOOLEAN bne.s loc_75FF2 loc_75FEA: ; CODE XREF: sub_75FCA+30j ; sub_75FCA+3Ej moveq #1,d6 move.b d6,(byte_FFFFB046).w bra.s loc_7600E ; --------------------------------------------------------------------------- loc_75FF2: ; CODE XREF: sub_75FCA+1Ej move.b (byte_FFFFB046).w,d0 or.b (byte_FFFFA3AC).w,d0 bne.s loc_75FEA tst.b (byte_FFFFAF3A).w beq.s loc_7600A btst #5,(word_FFFFA594).w bne.s loc_75FEA loc_7600A: ; CODE XREF: sub_75FCA+36j clr.b (byte_FFFFB046).w loc_7600E: ; CODE XREF: sub_75FCA+26j moveq #1,d0 jsr sub_75EEE moveq #2,d0 jsr sub_75EA6 move.w (word_FFFFB04E).w,d2 move.w (word_FFFFAEBE).w,d1 move.w (CRUIS_CONTROL_KE_CRUISE_VEH_SPEED_FILTER).l,d0 ; Filter coefficient for vehicle speed for the cruise controlalgorithm ; Seconds jsr sub_26608 move.w d0,d3 move.w d3,(word_FFFFB04E).w cmpi.w #$C00,d3 bcc.s loc_76042 clr.w d3 bra.s loc_76054 ; --------------------------------------------------------------------------- loc_76042: ; CODE XREF: sub_75FCA+72j cmpi.w #$3800,d3 bcc.s loc_76050 lsr.w #2,d3 subi.w #$300,d3 bra.s loc_76054 ; --------------------------------------------------------------------------- loc_76050: ; CODE XREF: sub_75FCA+7Cj move.w #$B00,d3 loc_76054: ; CODE XREF: sub_75FCA+76j ; sub_75FCA+84j move.w d3,(word_FFFFAEF6).w move.w (word_FFFFB04E).w,d3 sub.w (word_FFFF9020).w,d3 move.w d3,(word_FFFFB054).w move.w (word_FFFFB04E).w,d3 cmp.w (CRUIS_CONTROL_KE_LOW_SPEED_INHIBIT).l,d3 ; Filtered vehicle speed below which transitional cruisemodes can not be established ; MPH bcs.s loc_76080 cmp.w (CRUIS_CONTROL_KE_HIGH_SPEED_INHIBIT).l,d3 ; Filtered vehicle speed above which transitional cruisemodes can not be established ; MPH bhi.s loc_76080 moveq #1,d6 move.b d6,(byte_FFFFB04A).w bra.s loc_76084 ; --------------------------------------------------------------------------- loc_76080: ; CODE XREF: sub_75FCA+A4j ; sub_75FCA+ACj clr.b (byte_FFFFB04A).w loc_76084: ; CODE XREF: sub_75FCA+B4j moveq #2,d0 jsr sub_75EEE moveq #3,d0 jsr sub_75EA6 tst.b (byte_FFFFB047).w bne.s loc_76102 move.w (word_FFFFB058).w,d5 ext.l d5 move.w (word_FFFFB054).w,d3 ext.l d3 sub.l d5,d3 move.w (word_FFFFAEF6).w,d4 movea.l #$932C,a2 tbls.w (a2),d4 ext.l d4 cmp.l d3,d4 ble.s loc_760CA move.b #$14,(byte_FFFFB530).w loc_760C2: ; CODE XREF: sub_75FCA+112j ; sub_75FCA+126j ... jsr sub_76844 bra.s loc_76102 ; --------------------------------------------------------------------------- loc_760CA: ; CODE XREF: sub_75FCA+F0j clr.l d4 move.w (CRUIS_CONTROL_KE_OVERSPEED_DISENGAGE).l,d4 ; Maximum overspeed value allowed without a cruise disengage ; MPH cmp.l d3,d4 bge.s loc_760DE move.b #$E,(byte_FFFFB530).w bra.s loc_760C2 ; --------------------------------------------------------------------------- loc_760DE: ; CODE XREF: sub_75FCA+10Aj move.w (word_FFFFB04E).w,d3 cmp.w (CRUIS_CONTROL_KE_HIGH_SPEED_DISENGAGE).l,d3 ; Maximum allowed cruise speed cruise disengage ; MPH bcs.s loc_760F2 moveq #9,d6 move.b d6,(byte_FFFFB530).w bra.s loc_760C2 ; --------------------------------------------------------------------------- loc_760F2: ; CODE XREF: sub_75FCA+11Ej cmp.w (CRUIS_CONTROL_KE_LOW_SPEED_DISENGAGE).l,d3 ; Minimum allowed cruise speed cruise disengage ; MPH bcc.s loc_76102 move.b #$B,(byte_FFFFB530).w bra.s loc_760C2 ; --------------------------------------------------------------------------- loc_76102: ; CODE XREF: sub_75FCA+CEj ; sub_75FCA+FEj ... moveq #3,d0 jsr sub_75EEE moveq #4,d0 jsr sub_75EA6 move.b (CRUIS_CONTROL_KE_CRUISE_GEAR_COMPENSATION).l,d3 ; Gear to be compensated for, in the cruise control algorithm- normally highest gear in a manual vehicle. ; Gear 1st to 6th move.b (byte_FFFFA3B8).w,d4 cmp.b d3,d4 bne.w loc_761D4 cmpi.b #7,(byte_FFFF9022).w bne.w loc_761D4 tst.w (word_FFFFB05A).w bge.w loc_761D4 move.w (word_FFFFAEF6).w,d0 movea.l #$935C,a2 tblu.w (a2),d0 muls.w (word_FFFFB05A).w,d0 move.w #$800,d3 divs.w d3,d0 bvc.s loc_7615E swap d0 eor.w d3,d0 bmi.s loc_7615A move.w #$7FFF,d0 bra.s loc_7615E ; --------------------------------------------------------------------------- loc_7615A: ; CODE XREF: sub_75FCA+188j move.w #$8000,d0 loc_7615E: ; CODE XREF: sub_75FCA+182j ; sub_75FCA+18Ej sub.w (CRUIS_CONTROL_KE_CRUISE_GEAR_COMP_OFFSET).l,d0 ; DC offset to gear compensation term for cruise control ; MPH bvc.s loc_76172 bpl.s loc_7616E move.w #$7FFF,d0 bra.s loc_76172 ; --------------------------------------------------------------------------- loc_7616E: ; CODE XREF: sub_75FCA+19Cj move.w #$8000,d0 loc_76172: ; CODE XREF: sub_75FCA+19Aj ; sub_75FCA+1A2j clr.l d3 move.w (word_FFFFB1F2).w,d3 asl.l #8,d3 asl.l #3,d3 divu.w (CRUIS_CONTROL_KE_CRUISE_GEAR_RAMP_IN).l,d3 ; Length of time over which the gear compensation termfor cruise control will be ramped in. ; Seconds bvs.s loc_7618A cmpi.w #$800,d3 bls.s loc_7618E loc_7618A: ; CODE XREF: sub_75FCA+1B8j move.w #$800,d3 loc_7618E: ; CODE XREF: sub_75FCA+1BEj move.w (CRUIS_CONTROL_KE_CRUISE_GEAR_RAMP_OUT).l,d4 move.w (word_FFFFB054).w,d6 ext.l d6 asl.l #8,d6 asl.l #3,d6 divs.w d4,d6 bvc.s loc_761AA swap d6 eor.w d4,d6 bmi.s loc_761C0 bra.s loc_761BA ; --------------------------------------------------------------------------- loc_761AA: ; CODE XREF: sub_75FCA+1D6j cmpi.w #$7FFF,d6 bhi.s loc_761C0 cmpi.w #$800,d6 bhi.s loc_761BA move.w d6,d4 bra.s loc_761C2 ; --------------------------------------------------------------------------- loc_761BA: ; CODE XREF: sub_75FCA+1DEj ; sub_75FCA+1EAj move.w #$800,d4 bra.s loc_761C2 ; --------------------------------------------------------------------------- loc_761C0: ; CODE XREF: sub_75FCA+1DCj ; sub_75FCA+1E4j clr.w d4 loc_761C2: ; CODE XREF: sub_75FCA+1EEj ; sub_75FCA+1F4j mulu.w d4,d3 lsr.l #8,d3 lsr.l #3,d3 bra.w loc_7625A ; --------------------------------------------------------------------------- loc_761CC: ; CODE XREF: sub_75FCA+29Ej move.w d3,(word_FFFFB05C).w bra.w loc_76270 ; --------------------------------------------------------------------------- loc_761D4: ; CODE XREF: sub_75FCA+154j ; sub_75FCA+15Ej ... cmp.b d3,d4 bne.w loc_7626C move.b (byte_FFFF9022).w,d3 moveq #8,d6 cmp.b d3,d6 beq.s loc_761EC moveq #9,d7 cmp.b d3,d7 bne.w loc_7626C loc_761EC: ; CODE XREF: sub_75FCA+218j tst.w (word_FFFFB05A).w bge.s loc_7626C move.w (word_FFFFAEF6).w,d0 movea.l #$935C,a2 tblu.w (a2),d0 muls.w (word_FFFFB05A).w,d0 move.w #$800,d3 divs.w d3,d0 bvc.s loc_7621C swap d0 eor.w d3,d0 bmi.s loc_76218 move.w #$7FFF,d0 bra.s loc_7621C ; --------------------------------------------------------------------------- loc_76218: ; CODE XREF: sub_75FCA+246j move.w #$8000,d0 loc_7621C: ; CODE XREF: sub_75FCA+240j ; sub_75FCA+24Cj sub.w (CRUIS_CONTROL_KE_CRUISE_GEAR_COMP_OFFSET).l,d0 ; DC offset to gear compensation term for cruise control ; MPH bvc.s loc_76230 bpl.s loc_7622C move.w #$7FFF,d0 bra.s loc_76230 ; --------------------------------------------------------------------------- loc_7622C: ; CODE XREF: sub_75FCA+25Aj move.w #$8000,d0 loc_76230: ; CODE XREF: sub_75FCA+258j ; sub_75FCA+260j move.w (word_FFFFB1F4).w,d3 sub.w (CRUIS_MANAGE_KE_TAP_UP_VS_ACCEL_TIME).l,d3 bcc.s loc_7623E clr.w d3 loc_7623E: ; CODE XREF: sub_75FCA+270j andi.l #$FFFF,d3 asl.l #8,d3 asl.l #3,d3 divu.w (CRUIS_CONTROL_KE_CRUISE_GEAR_RAMP_IN).l,d3 ; Length of time over which the gear compensation termfor cruise control will be ramped in. ; Seconds bvs.s loc_76256 cmpi.w #$800,d3 bls.s loc_7625A loc_76256: ; CODE XREF: sub_75FCA+284j move.w #$800,d3 loc_7625A: ; CODE XREF: sub_75FCA+1FEj ; sub_75FCA+28Aj lsr.w #4,d3 muls.w d0,d3 bpl.s loc_76266 addi.l #$7F,d3 ; '' loc_76266: ; CODE XREF: sub_75FCA+294j asr.l #7,d3 bra.w loc_761CC ; --------------------------------------------------------------------------- loc_7626C: ; CODE XREF: sub_75FCA+20Cj ; sub_75FCA+21Ej ... clr.w (word_FFFFB05C).w loc_76270: ; CODE XREF: sub_75FCA+206j moveq #4,d0 jsr sub_75EEE moveq #5,d0 jsr sub_75EA6 clr.b (byte_FFFFB060).w move.b (byte_FFFF9022).w,d3 moveq #3,d6 cmp.b d3,d6 beq.s loc_762B4 cmpi.b #4,d3 beq.s loc_762B4 cmpi.b #5,d3 beq.s loc_762B4 cmpi.b #6,d3 beq.s loc_762B4 cmpi.b #7,d3 beq.s loc_762B4 cmpi.b #8,d3 beq.s loc_762B4 moveq #9,d7 cmp.b d3,d7 bne.w loc_76384 loc_762B4: ; CODE XREF: sub_75FCA+2C2j ; sub_75FCA+2C8j ... move.w (word_FFFFAEF6).w,d0 move.l d0,d3 movea.l #$9344,a2 tblu.w (a2),d3 move.l d3,d1 mulu.w (CRUIS_CONTROL_KE_HYSTERESIS).l,d1 ; Hysteresis constant ; MPH move.w #$800,d7 divu.w d7,d1 bvs.s loc_762DA cmpi.w #$7FFF,d1 bls.s loc_762DE loc_762DA: ; CODE XREF: sub_75FCA+308j move.w #$7FFF,d1 loc_762DE: ; CODE XREF: sub_75FCA+30Ej movea.l #$9374,a2 tblu.w (a2),d0 sub.w (word_FFFFB05A).w,d0 bvc.s loc_762FA bpl.s loc_762F6 move.w #$7FFF,d0 bra.s loc_762FA ; --------------------------------------------------------------------------- loc_762F6: ; CODE XREF: sub_75FCA+324j move.w #$8000,d0 loc_762FA: ; CODE XREF: sub_75FCA+322j ; sub_75FCA+32Aj sub.w (word_FFFFB05C).w,d0 bvc.s loc_7630C bpl.s loc_76308 move.w #$7FFF,d0 bra.s loc_7630C ; --------------------------------------------------------------------------- loc_76308: ; CODE XREF: sub_75FCA+336j move.w #$8000,d0 loc_7630C: ; CODE XREF: sub_75FCA+334j ; sub_75FCA+33Cj move.w (word_FFFFB054).w,d2 sub.w (word_FFFFB058).w,d2 bvc.s loc_76322 bpl.s loc_7631E move.w #$7FFF,d2 bra.s loc_76322 ; --------------------------------------------------------------------------- loc_7631E: ; CODE XREF: sub_75FCA+34Cj move.w #$8000,d2 loc_76322: ; CODE XREF: sub_75FCA+34Aj ; sub_75FCA+352j muls.w d2,d3 divs.w d7,d3 bvc.s loc_76338 swap d3 eor.w d7,d3 bmi.s loc_76334 move.w #$7FFF,d3 bra.s loc_76338 ; --------------------------------------------------------------------------- loc_76334: ; CODE XREF: sub_75FCA+362j move.w #$8000,d3 loc_76338: ; CODE XREF: sub_75FCA+35Cj ; sub_75FCA+368j sub.w d0,d3 bvc.s loc_76348 bpl.s loc_76344 move.w #$7FFF,d3 bra.s loc_76348 ; --------------------------------------------------------------------------- loc_76344: ; CODE XREF: sub_75FCA+372j move.w #$8000,d3 loc_76348: ; CODE XREF: sub_75FCA+370j ; sub_75FCA+378j cmp.w (word_FFFFB05E).w,d3 bge.s loc_76380 move.w (word_FFFFB05E).w,d5 sub.w d1,d5 bvc.s loc_76362 bpl.s loc_7635E move.w #$7FFF,d5 bra.s loc_76362 ; --------------------------------------------------------------------------- loc_7635E: ; CODE XREF: sub_75FCA+38Cj move.w #$8000,d5 loc_76362: ; CODE XREF: sub_75FCA+38Aj ; sub_75FCA+392j cmp.w d5,d3 bge.s loc_76378 add.w d1,d3 bvc.s loc_76380 bpl.s loc_76372 move.w #$7FFF,d3 bra.s loc_76380 ; --------------------------------------------------------------------------- loc_76372: ; CODE XREF: sub_75FCA+3A0j move.w #$8000,d3 bra.s loc_76380 ; --------------------------------------------------------------------------- loc_76378: ; CODE XREF: sub_75FCA+39Aj moveq #1,d2 move.b d2,(byte_FFFFB060).w bra.s loc_76384 ; --------------------------------------------------------------------------- loc_76380: ; CODE XREF: sub_75FCA+382j ; sub_75FCA+39Ej ... move.w d3,(word_FFFFB05E).w loc_76384: ; CODE XREF: sub_75FCA+2E6j ; sub_75FCA+3B4j moveq #5,d0 jsr sub_75EEE moveq #6,d0 jsr sub_75EA6 tst.b (byte_FFFFB060).w bne.s loc_76408 move.w (word_FFFFB05E).w,d3 cmpi.w #$F200,d3 bge.s loc_763A8 clr.w d3 bra.s loc_763BC ; --------------------------------------------------------------------------- loc_763A8: ; CODE XREF: sub_75FCA+3D8j cmpi.w #$500,d3 bge.s loc_763B8 ext.l d3 addi.l #$E00,d3 bra.s loc_763BC ; --------------------------------------------------------------------------- loc_763B8: ; CODE XREF: sub_75FCA+3E2j move.w #$1300,d3 loc_763BC: ; CODE XREF: sub_75FCA+3DCj ; sub_75FCA+3ECj movea.l #$92D4,a2 tbls.w (a2),d3 move.w (word_FFFFAEF0).w,d4 tblu.w (CRUIS_CONTROL_KV_CRUISE_BARO_COMPENSATION).l,d4 ; Adjusts the cruise desired power to compensate for ambientpressure. ; Scaler mulu.w d4,d3 lsr.l #8,d3 lsr.l #3,d3 cmpi.w #$1400,d3 bls.s loc_763E2 move.w #$1400,d3 loc_763E2: ; CODE XREF: sub_75FCA+412j move.w (CRUIS_CONTROL_KE_CRUISE_POWER_LIMIT).l,d4 ; Maximum desired power that cruise can request ; Percent cmp.w d4,d3 bcs.s loc_763F6 move.l d4,d3 moveq #1,d2 move.b d2,(byte_FFFFB056).w bra.s loc_763FA ; --------------------------------------------------------------------------- loc_763F6: ; CODE XREF: sub_75FCA+420j clr.b (byte_FFFFB056).w loc_763FA: ; CODE XREF: sub_75FCA+42Aj cmp.w (word_FFFFB050).w,d3 beq.s loc_76408 move.w d3,(word_FFFFB050).w clr.b (byte_FFFFB1EE).w loc_76408: ; CODE XREF: sub_75FCA+3CEj ; sub_75FCA+434j move.w (word_FFFFB050).w,d3 add.w (word_FFFF9E12).w,d3 cmpi.w #$1400,d3 bls.s loc_7641A move.w #$1400,d3 loc_7641A: ; CODE XREF: sub_75FCA+44Aj move.w d3,(word_FFFFB052).w moveq #6,d0 jsr sub_75EEE loc_76426: ; CODE XREF: sub_75FCA+Cj moveq #7,d0 jsr sub_75EA6 cmpi.b #2,(VEH_SYS_KE_PLATFORM).l ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type bne.s loc_76440 move.b (byte_FFFF90CB).w,(byte_FFFFB048).w bra.s loc_764AE ; --------------------------------------------------------------------------- loc_76440: ; CODE XREF: sub_75FCA+46Cj tst.b (byte_FFFFB370).w beq.s loc_76486 move.b (byte_FFFF9022).w,d3 cmpi.b #3,d3 beq.s loc_76474 cmpi.b #4,d3 beq.s loc_76474 cmpi.b #5,d3 beq.s loc_76474 cmpi.b #6,d3 beq.s loc_76474 cmpi.b #7,d3 beq.s loc_76474 moveq #8,d2 cmp.b d3,d2 beq.s loc_76474 cmpi.b #9,d3 bne.s loc_76480 loc_76474: ; CODE XREF: sub_75FCA+484j ; sub_75FCA+48Aj ... moveq #1,d2 move.b d2,(byte_FFFFB048).w clr.b (byte_FFFFB047).w bra.s loc_764AE ; --------------------------------------------------------------------------- loc_76480: ; CODE XREF: sub_75FCA+4A8j clr.b (byte_FFFFB048).w bra.s loc_764AE ; --------------------------------------------------------------------------- loc_76486: ; CODE XREF: sub_75FCA+47Aj movea.w #4,a2 movea.l (off_1330).l,a0 move.l a0,var_4(a6) move.l a0,d2 bne.s loc_7649E jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_7649E: ; CODE XREF: sub_75FCA+4CCj clr.b d3 btst #4,2(a0) bne.s loc_764AA addq.b #1,d3 loc_764AA: ; CODE XREF: sub_75FCA+4DCj move.b d3,(byte_FFFFB048).w loc_764AE: ; CODE XREF: sub_75FCA+474j ; sub_75FCA+4B4j ... tst.b (byte_FFFFB370).w bne.s loc_76506 btst #5,(byte_FFFFA7DE).w beq.s loc_764CC btst #2,(byte_FFFFA7E4).w beq.s loc_764CC loc_764C4: ; CODE XREF: sub_75FCA+50Cj ; sub_75FCA+512j ... move.b #1,(byte_FFFFB049).w bra.s loc_764F0 ; --------------------------------------------------------------------------- loc_764CC: ; CODE XREF: sub_75FCA+4F0j ; sub_75FCA+4F8j move.w (word_FFFFAEBC).w,d1 cmp.w (CRUIS_CONTROL_KE_LOW_SPEED_INHIBIT).l,d1 ; Filtered vehicle speed below which transitional cruisemodes can not be established ; MPH bls.s loc_764C4 tst.b (byte_FFFF93F4).w bne.s loc_764C4 cmpi.b #8,(byte_FFFFA3B8).w beq.s loc_764C4 tst.b (byte_FFFFA3AC).w bne.s loc_764C4 clr.b (byte_FFFFB049).w loc_764F0: ; CODE XREF: sub_75FCA+500j tst.b (byte_FFFFB049).w beq.s loc_764FA moveq #1,d1 bra.s loc_764FC ; --------------------------------------------------------------------------- loc_764FA: ; CODE XREF: sub_75FCA+52Aj clr.b d1 loc_764FC: ; CODE XREF: sub_75FCA+52Ej move.w #$133,d0 jsr (sub_1122).l loc_76506: ; CODE XREF: sub_75FCA+4E8j moveq #7,d0 jsr sub_75EEE movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_75FCA ; =============== S U B R O U T I N E ======================================= sub_76516: ; CODE XREF: DoLoopF+308p movem.l d0-d2/d6-a1/a4,-(sp) move.w (word_FFFFB04E).w,d3 clr.w d4 move.w #$C00,d7 cmp.w d3,d7 bls.s loc_7652C move.l d4,d3 bra.s loc_76540 ; --------------------------------------------------------------------------- loc_7652C: ; CODE XREF: sub_76516+10j cmpi.w #$3800,d3 bcc.s loc_7653C lsr.w #2,d3 movea.w #$300,a4 sub.w a4,d3 bra.s loc_76540 ; --------------------------------------------------------------------------- loc_7653C: ; CODE XREF: sub_76516+1Aj move.w #$B00,d3 loc_76540: ; CODE XREF: sub_76516+14j ; sub_76516+24j movea.l #$9314,a0 movea.l a0,a2 tblu.w (a2),d3 movea.w d3,a1 move.w (word_FFFFB04E).w,d3 sub.w (word_FFFFB1F0).w,d3 muls.w #$A,d3 cmpi.l #$FFFF8000,d3 blt.s loc_76570 cmpi.l #$7FFF,d3 ble.s loc_76574 move.w #$7FFF,d3 bra.s loc_76574 ; --------------------------------------------------------------------------- loc_76570: ; CODE XREF: sub_76516+4Aj move.w #$8000,d3 loc_76574: ; CODE XREF: sub_76516+52j ; sub_76516+58j move.w (word_FFFFB04C).w,d2 move.w (CRUIS_CONTROL_KE_CRUISE_VEH_ACCEL_FILTER).l,d0 ; Filter coefficient for vehicle acceleration for the cruisecontrol algorithm ; Seconds move.l d3,d1 jsr loc_26610 move.w (word_FFFFB04E).w,d3 clr.w d4 cmp.w d3,d7 bls.s loc_76594 move.l d4,d3 bra.s loc_765AA ; --------------------------------------------------------------------------- loc_76594: ; CODE XREF: sub_76516+78j move.w #$3800,d4 cmp.w d3,d4 bls.s loc_765A6 lsr.w #2,d3 movea.w #$300,a4 sub.w a4,d3 bra.s loc_765AA ; --------------------------------------------------------------------------- loc_765A6: ; CODE XREF: sub_76516+84j move.w #$B00,d3 loc_765AA: ; CODE XREF: sub_76516+7Cj ; sub_76516+8Ej movea.l #$92FC,a2 movea.l a2,a3 tbls.w (a3),d3 cmp.w d3,d0 bgt.s loc_765C0 move.w d3,(word_FFFFB04C).w bra.s loc_765D0 ; --------------------------------------------------------------------------- loc_765C0: ; CODE XREF: sub_76516+A2j move.l a1,d7 cmp.w d7,d0 blt.s loc_765CC move.w d7,(word_FFFFB04C).w bra.s loc_765D0 ; --------------------------------------------------------------------------- loc_765CC: ; CODE XREF: sub_76516+AEj move.w d0,(word_FFFFB04C).w loc_765D0: ; CODE XREF: sub_76516+A8j ; sub_76516+B4j tst.b (byte_FFFFB047).w bne.s loc_76646 move.w (word_FFFFB04C).w,d4 move.w (word_FFFFB04E).w,d3 move.w d3,d0 movea.w #$B00,a3 clr.w d5 move.w #$C00,d7 cmp.w d0,d7 bls.s loc_765F2 move.l d5,d0 bra.s loc_76608 ; --------------------------------------------------------------------------- loc_765F2: ; CODE XREF: sub_76516+D6j move.w #$3800,d1 cmp.w d0,d1 bls.s loc_76604 lsr.w #2,d0 movea.w #$300,a1 sub.w a1,d0 bra.s loc_76608 ; --------------------------------------------------------------------------- loc_76604: ; CODE XREF: sub_76516+E2j move.w #$B00,d0 loc_76608: ; CODE XREF: sub_76516+DAj ; sub_76516+ECj tbls.w (a2),d0 cmp.w d0,d4 bgt.s loc_7661E moveq #8,d1 loc_76612: ; CODE XREF: sub_76516+12Ej move.b d1,(byte_FFFFB530).w jsr sub_76844 bra.s loc_76646 ; --------------------------------------------------------------------------- loc_7661E: ; CODE XREF: sub_76516+F8j movea.l a3,a2 cmp.w d3,d7 bls.s loc_76628 move.l d5,d3 bra.s loc_7663A ; --------------------------------------------------------------------------- loc_76628: ; CODE XREF: sub_76516+10Cj cmpi.w #$3800,d3 bcc.s loc_76636 lsr.w #2,d3 subi.w #$300,d3 bra.s loc_7663A ; --------------------------------------------------------------------------- loc_76636: ; CODE XREF: sub_76516+116j move.w #$B00,d3 loc_7663A: ; CODE XREF: sub_76516+110j ; sub_76516+11Ej tblu.w (a0),d3 cmp.w d3,d4 blt.s loc_76646 moveq #7,d1 bra.s loc_76612 ; --------------------------------------------------------------------------- loc_76646: ; CODE XREF: sub_76516+BEj ; sub_76516+106j ... cmpi.b #2,(byte_FFFF9060).w bne.w loc_767F0 move.b (byte_FFFF9022).w,d3 moveq #3,d7 cmp.b d3,d7 beq.s loc_76680 moveq #4,d4 cmp.b d3,d4 beq.s loc_76680 moveq #5,d4 cmp.b d3,d4 beq.s loc_76680 moveq #6,d4 cmp.b d3,d4 beq.s loc_76680 moveq #7,d4 cmp.b d3,d4 beq.s loc_76680 moveq #8,d4 cmp.b d3,d4 beq.s loc_76680 moveq #9,d4 cmp.b d3,d4 bne.w loc_767F0 loc_76680: ; CODE XREF: sub_76516+142j ; sub_76516+148j ... moveq #3,d7 cmp.b (byte_FFFF9022).w,d7 beq.s loc_766BA cmpi.b #4,(byte_FFFF9022).w beq.s loc_766BA cmpi.b #5,(byte_FFFF9022).w beq.s loc_766BA cmpi.b #6,(byte_FFFF9022).w beq.s loc_766BA moveq #7,d4 cmp.b (byte_FFFF9022).w,d4 beq.s loc_766BA moveq #8,d4 cmp.b (byte_FFFF9022).w,d4 beq.s loc_766BA moveq #9,d4 cmp.b (byte_FFFF9022).w,d4 bne.w loc_767C0 loc_766BA: ; CODE XREF: sub_76516+170j ; sub_76516+178j ... tst.w (word_FFFFB058).w bne.w loc_76756 move.w (word_FFFFB04E).w,d3 cmp.w (word_FFFF9020).w,d3 bcs.s loc_7670A sub.w (word_FFFFB1F0).w,d3 move.w #$80,d6 ; '?' move.w (word_FFFFB04E).w,d0 sub.w (word_FFFF9020).w,d0 muls.w (CRUIS_CONTROL_KE_SCHEDULED_ACCEL_GAIN_OVER).l,d0 ; Overspeed scheduled acceleration rate gain ; MPH_PER_SECOND divs.w d6,d0 bvc.s loc_766F6 swap d0 eor.w d6,d0 bmi.s loc_766F2 move.w #$7FFF,d0 bra.s loc_766F6 ; --------------------------------------------------------------------------- loc_766F2: ; CODE XREF: sub_76516+1D4j move.w #$8000,d0 loc_766F6: ; CODE XREF: sub_76516+1CEj ; sub_76516+1DAj add.w d0,d3 bvc.s loc_76706 bpl.s loc_76702 move.w #$7FFF,d3 bra.s loc_76706 ; --------------------------------------------------------------------------- loc_76702: ; CODE XREF: sub_76516+1E4j move.w #$8000,d3 loc_76706: ; CODE XREF: sub_76516+1E2j ; sub_76516+1EAj move.l d3,d6 bra.s loc_76742 ; --------------------------------------------------------------------------- loc_7670A: ; CODE XREF: sub_76516+1B4j move.l d3,d6 sub.w (word_FFFFB1F0).w,d6 move.w #$80,d2 ; '?' sub.w (word_FFFF9020).w,d3 muls.w (CRUIS_CONTROL_KE_SCHEDULED_ACCEL_GAIN_UNDER).l,d3 ; Underspeed scheduled acceleration rate gain ; MPH_PER_SECOND divs.w d2,d3 bvc.s loc_76732 swap d3 eor.w d2,d3 bmi.s loc_7672E move.w #$7FFF,d3 bra.s loc_76732 ; --------------------------------------------------------------------------- loc_7672E: ; CODE XREF: sub_76516+210j move.w #$8000,d3 loc_76732: ; CODE XREF: sub_76516+20Aj ; sub_76516+216j add.w d3,d6 bvc.s loc_76742 bpl.s loc_7673E move.w #$7FFF,d6 bra.s loc_76742 ; --------------------------------------------------------------------------- loc_7673E: ; CODE XREF: sub_76516+220j move.w #$8000,d6 loc_76742: ; CODE XREF: sub_76516+1F2j ; sub_76516+21Ej ... muls.w (CRUIS_CONTROL_KE_CRUISE_INTEGRATOR_GAIN).l,d6 ; Integrator gain when not in Resume or Accel modes. ; Scaler 0-1 bpl.s loc_76750 addi.l #$7FF,d6 loc_76750: ; CODE XREF: sub_76516+232j asr.l #8,d6 asr.l #3,d6 bra.s loc_7678C ; --------------------------------------------------------------------------- loc_76756: ; CODE XREF: sub_76516+1A8j cmpi.b #7,(byte_FFFF9022).w beq.s loc_7676E cmpi.b #8,(byte_FFFF9022).w beq.s loc_7676E cmpi.b #9,(byte_FFFF9022).w bne.s loc_7678A loc_7676E: ; CODE XREF: sub_76516+246j ; sub_76516+24Ej move.w (word_FFFFB04E).w,d6 sub.w (word_FFFFB1F0).w,d6 sub.w (word_FFFFB1EC).w,d6 bvc.s loc_7678C bpl.s loc_76784 move.w #$7FFF,d6 bra.s loc_7678C ; --------------------------------------------------------------------------- loc_76784: ; CODE XREF: sub_76516+266j move.w #$8000,d6 bra.s loc_7678C ; --------------------------------------------------------------------------- loc_7678A: ; CODE XREF: sub_76516+256j clr.w d6 loc_7678C: ; CODE XREF: sub_76516+23Ej ; sub_76516+264j ... cmp.w (CRUIS_CONTROL_KE_CRUISE_VEH_SPEED_DELTA_HIGH).l,d6 ; Acceleration error minimum value and maximum integratordecrement per 100ms ; MPH per 100ms blt.s loc_7679C move.w (CRUIS_CONTROL_KE_CRUISE_VEH_SPEED_DELTA_HIGH).l,d6 ; Acceleration error minimum value and maximum integratordecrement per 100ms ; MPH per 100ms bra.s loc_767AA ; --------------------------------------------------------------------------- loc_7679C: ; CODE XREF: sub_76516+27Cj cmp.w (CRUIS_CONTROL_KE_CRUISE_VEH_SPEED_DELTA_LOW).l,d6 ; Acceleration error maximum value and maximum integratorincrement per 100ms ; MPH per 100ms bgt.s loc_767AA move.w (CRUIS_CONTROL_KE_CRUISE_VEH_SPEED_DELTA_LOW).l,d6 ; Acceleration error maximum value and maximum integratorincrement per 100ms ; MPH per 100ms loc_767AA: ; CODE XREF: sub_76516+284j ; sub_76516+28Cj tst.w d6 blt.s loc_767B4 tst.w (word_FFFFB050).w beq.s loc_767BE loc_767B4: ; CODE XREF: sub_76516+296j tst.w d6 bgt.s loc_767C0 tst.b (byte_FFFFB056).w beq.s loc_767C0 loc_767BE: ; CODE XREF: sub_76516+29Cj clr.w d6 loc_767C0: ; CODE XREF: sub_76516+1A0j ; sub_76516+2A0j ... add.w (word_FFFFB05A).w,d6 bvc.s loc_767D2 bpl.s loc_767CE move.w #$7FFF,d6 bra.s loc_767D2 ; --------------------------------------------------------------------------- loc_767CE: ; CODE XREF: sub_76516+2B0j move.w #$8000,d6 loc_767D2: ; CODE XREF: sub_76516+2AEj ; sub_76516+2B6j move.w (CRUIS_CONTROL_KE_CRUISE_INTEGRATOR_HIGH).l,d3 ; Integrator maximum value while cruise is engaged ; MPH cmp.w d3,d6 blt.s loc_767E2 loc_767DC: ; CODE XREF: sub_76516+2D4j move.w d3,(word_FFFFB05A).w bra.s loc_767F0 ; --------------------------------------------------------------------------- loc_767E2: ; CODE XREF: sub_76516+2C4j move.w (CRUIS_CONTROL_KE_CRUISE_INTEGRATOR_LOW).l,d3 ; Integrator minimum value while cruise is engaged ; MPH cmp.w d3,d6 ble.s loc_767DC move.w d6,(word_FFFFB05A).w loc_767F0: ; CODE XREF: sub_76516+136j ; sub_76516+166j ... cmpi.b #3,(byte_FFFF9022).w bne.s loc_7683E tst.w (word_FFFFB058).w bne.s loc_7683E move.w (word_FFFFB050).w,d2 cmp.w (CRUIS_CONTROL_KE_LOCKUP_POWER_LIMIT).l,d2 ; The percentage of desired power above which theLockup_Integrator should not be updated. ; Percent bcc.s loc_7683E move.w (word_FFFF82D6).w,d2 move.w (word_FFFFB05A).w,d1 move.w (CRUIS_CONTROL_KE_LOCKUP_INT_FILTER).l,d0 ; Filter coefficient for the lockup integrator for the cruisecontrol algorithm ; Seconds jsr loc_26610 move.w d0,d3 move.w (CRUIS_CONTROL_KE_LOCKUP_CLAMP_HIGH).l,d4 ; The high limit that the Lockup_Integrator is clamped to ; MPH cmp.w d4,d3 blt.s loc_76830 loc_7682A: ; CODE XREF: sub_76516+322j move.w d4,(word_FFFF82D6).w bra.s loc_7683E ; --------------------------------------------------------------------------- loc_76830: ; CODE XREF: sub_76516+312j move.w (CRUIS_CONTROL_KE_LOCKUP_CLAMP_LOW).l,d4 ; The low limit that the Lockup_Integrator is clamped to ; MPH cmp.w d4,d3 ble.s loc_7682A move.w d3,(word_FFFF82D6).w loc_7683E: ; CODE XREF: sub_76516+2E0j ; sub_76516+2E6j ... movem.l (sp)+,d0-d2/d6-a1/a4 rts ; End of function sub_76516 ; =============== S U B R O U T I N E ======================================= sub_76844: ; CODE XREF: sub_75EA6+40p ; sub_75EEE+42p ... var_7D71 = -$7D71 movem.l d0-d1,-(sp) move.b (byte_FFFFB530).w,d3 moveq #4,d1 cmp.b d3,d1 beq.s loc_76864 cmpi.b #$F,d3 beq.s loc_76864 cmpi.b #$A,d3 beq.s loc_76864 move.w (word_FFFF82D6).w,(word_FFFFB05A).w loc_76864: ; CODE XREF: sub_76844+Cj ; sub_76844+12j ... clr.w (word_FFFFB058).w clr.w (word_FFFFB050).w move.w (CRUIS_CONTROL_KE_CRUISE_EFF_SPD_ERROR_MAX).l,(word_FFFFB05E).w ; Maximum value effective speed error can be. ; MPH move.b #1,(byte_FFFFB047).w move.b (byte_FFFF9022).w,d3 cmpi.b #3,d3 beq.s loc_768A6 cmp.b d3,d1 beq.s loc_768A6 cmpi.b #5,d3 beq.s loc_768A6 cmpi.b #6,d3 beq.s loc_768A6 cmpi.b #7,d3 beq.s loc_768A6 cmpi.b #8,d3 beq.s loc_768A6 cmpi.b #9,d3 bne.s loc_768B0 loc_768A6: ; CODE XREF: sub_76844+3Ej ; sub_76844+42j ... moveq #2,d3 move.l d3,d0 jsr sub_75E94 loc_768B0: ; CODE XREF: sub_76844+60j moveq #8,d3 loc_768B2: ; CODE XREF: sub_76844+7Ej move.b -$7D6A(d3.w),8+var_7D71(d3.w) subq.w #1,d3 cmpi.w #2,d3 bcc.s loc_768B2 move.b (byte_FFFFB530).w,(byte_FFFF8298).w movem.l (sp)+,d0-d1 rts ; End of function sub_76844 ; =============== S U B R O U T I N E ======================================= sub_768D0: ; CODE XREF: OS1:000292A0p andi.w #$FF,d0 movea.l off_89D24(d0.w*4),a2 jmp (a2) ; End of function sub_768D0 ; --------------------------------------------------------------------------- loc_768DE: ; DATA XREF: OS4:00089D28o ; OS4:00089D34o ... tst.b (byte_FFFFB54A).w bne.s locret_7695C clr.w (word_FFFF82D6).w moveq #1,d3 loc_768EA: ; CODE XREF: OS3:000768F8j move.b #$C,-$7D69(d3.w) addq.w #1,d3 cmpi.w #8,d3 bls.s loc_768EA bra.s locret_7695C ; --------------------------------------------------------------------------- loc_768FC: ; DATA XREF: OS4:off_89D24o ; OS4:00089D2Co ... clr.w (word_FFFFB054).w clr.w (word_FFFFB04C).w clr.w (word_FFFFB04E).w movea.w #0,a2 move.w a2,(word_FFFFAEF6).w clr.b (byte_FFFFB046).w tst.b (byte_FFFFB54A).w bne.s loc_76930 clr.w (word_FFFF82D6).w moveq #1,d3 loc_76920: ; CODE XREF: OS3:0007692Ej move.b #$C,-$7D69(d3.w) addq.w #1,d3 cmpi.w #8,d3 bls.s loc_76920 loc_76930: ; CODE XREF: OS3:00076918j move.w (word_FFFF82D6).w,(word_FFFFB05A).w clr.b (byte_FFFFB056).w clr.b (byte_FFFFB060).w moveq #1,d3 move.b d3,(byte_FFFFB047).w clr.b (byte_FFFFB048).w move.b d3,(byte_FFFFB049).w move.w (CRUIS_CONTROL_KE_CRUISE_EFF_SPD_ERROR_MAX).l,(word_FFFFB05E).w ; Maximum value effective speed error can be. ; MPH clr.w (word_FFFFB050).w clr.w (word_FFFFB05C).w locret_7695C: ; CODE XREF: OS3:000768E2j ; OS3:000768FAj ; DATA XREF: ... rts ; =============== S U B R O U T I N E ======================================= sub_7695E: ; CODE XREF: DoLoopC+12Ep movem.l d0-d1,-(sp) moveq #8,d0 jsr sub_75EA6 tst.b (byte_FFFFB047).w bne.w loc_76A12 cmpi.b #8,(byte_FFFFA3B8).w beq.s loc_769C8 btst #1,(byte_FFFF8998).w bne.s loc_769C8 btst #1,(byte_FFFF899A).w bne.s loc_769C8 btst #1,(byte_FFFF89B6).w bne.s loc_769C8 btst #1,(byte_FFFF8A4C).w bne.s loc_769C8 btst #1,(byte_FFFF89E4).w bne.s loc_769C8 btst #1,(byte_FFFF89E6).w bne.s loc_769C8 btst #1,(byte_FFFF89B2).w bne.s loc_769C8 btst #1,(byte_FFFF89B4).w bne.s loc_769C8 btst #7,(byte_FFFF8252).w bne.s loc_769C8 tst.b (byte_FFFFABDA).w beq.s loc_769E0 loc_769C8: ; CODE XREF: sub_7695E+1Aj ; sub_7695E+22j ... moveq #1,d3 move.l d3,d0 jsr sub_75E94 move.b #$10,(byte_FFFFB530).w loc_769D8: ; CODE XREF: sub_7695E+98j ; sub_7695E+B2j jsr sub_76844 bra.s loc_76A12 ; --------------------------------------------------------------------------- loc_769E0: ; CODE XREF: sub_7695E+68j tst.b (byte_FFFF93F4).w beq.s loc_769F8 moveq #1,d3 move.l d3,d0 jsr sub_75E94 move.b #$13,(byte_FFFFB530).w bra.s loc_769D8 ; --------------------------------------------------------------------------- loc_769F8: ; CODE XREF: sub_7695E+86j btst #4,(byte_FFFF9062).w beq.s loc_76A12 moveq #1,d3 move.l d3,d0 jsr sub_75E94 move.b #6,(byte_FFFFB530).w bra.s loc_769D8 ; --------------------------------------------------------------------------- loc_76A12: ; CODE XREF: sub_7695E+10j ; sub_7695E+80j ... moveq #8,d0 jsr sub_75EEE moveq #9,d0 jsr sub_75EA6 tst.b (byte_FFFFB047).w bne.s loc_76A40 moveq #4,d1 cmp.b (byte_FFFF9022).w,d1 bne.s loc_76A40 tst.w (word_FFFFB050).w bne.s loc_76A40 move.b d1,(byte_FFFFB530).w jsr sub_76844 loc_76A40: ; CODE XREF: sub_7695E+C8j ; sub_7695E+D0j ... moveq #9,d0 jsr sub_75EEE movem.l (sp)+,d0-d1 rts ; End of function sub_7695E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_76A4E: ; CODE XREF: DoLoopB+106p var_4 = -4 link a6,#-4 movem.l d0-d2/d6-a0,-(sp) moveq #1,d0 jsr sub_75F38 btst #3,(word_FFFFA594).w beq.s loc_76A9A tst.b (byte_FFFFB1FB).w bne.s loc_76A72 clr.w (word_FFFFB1F8).w bra.s loc_76A9A ; --------------------------------------------------------------------------- loc_76A72: ; CODE XREF: sub_76A4E+1Cj move.w (word_FFFFB1F8).w,d3 addq.w #3,d3 bcc.s loc_76A7E move.w #$FFFF,d3 loc_76A7E: ; CODE XREF: sub_76A4E+2Aj move.w d3,(word_FFFFB1F8).w cmp.w (CRUIS_MANAGE_KE_CRUISE_SWITCH_FAIL_TIME).l,d3 ; If S/C or R/A switch is continuously depressed for greaterthan this amount of time, diagnostic P0567/P0568 will befailed. ; Seconds bls.s loc_76A9A btst #6,(byte_FFFF89B4).w bne.s loc_76A9A moveq #$7A,d0 ; 'z' jsr sub_5F110 loc_76A9A: ; CODE XREF: sub_76A4E+16j ; sub_76A4E+22j ... btst #3,(word_FFFFA594).w bne.s loc_76ADE tst.b (byte_FFFFB1FB).w beq.s loc_76AAE clr.w (word_FFFFB1F6).w bra.s loc_76ADE ; --------------------------------------------------------------------------- loc_76AAE: ; CODE XREF: sub_76A4E+58j move.w (word_FFFFB1F6).w,d3 addq.w #3,d3 bcc.s loc_76ABA move.w #$FFFF,d3 loc_76ABA: ; CODE XREF: sub_76A4E+66j move.w d3,(word_FFFFB1F6).w cmp.w (CRUIS_MANAGE_KE_CRUISE_SWITCH_PASS_TIME).l,d3 bls.s loc_76ADE btst #1,(byte_FFFF89B4).w beq.s loc_76ADE btst #6,(byte_FFFF89B4).w bne.s loc_76ADE moveq #$7A,d0 ; 'z' jsr sub_5F0BE loc_76ADE: ; CODE XREF: sub_76A4E+52j ; sub_76A4E+5Ej ... btst #4,(word_FFFFA594).w beq.s loc_76B1A tst.b (byte_FFFFB1FA).w bne.s loc_76AF2 clr.w (word_FFFFB1F4).w bra.s loc_76B1A ; --------------------------------------------------------------------------- loc_76AF2: ; CODE XREF: sub_76A4E+9Cj move.w (word_FFFFB1F4).w,d3 addq.w #3,d3 bcc.s loc_76AFE move.w #$FFFF,d3 loc_76AFE: ; CODE XREF: sub_76A4E+AAj move.w d3,(word_FFFFB1F4).w cmp.w (CRUIS_MANAGE_KE_CRUISE_SWITCH_FAIL_TIME).l,d3 ; If S/C or R/A switch is continuously depressed for greaterthan this amount of time, diagnostic P0567/P0568 will befailed. ; Seconds bls.s loc_76B1A btst #6,(byte_FFFF89B2).w bne.s loc_76B1A moveq #$79,d0 ; 'y' jsr sub_5F110 loc_76B1A: ; CODE XREF: sub_76A4E+96j ; sub_76A4E+A2j ... btst #4,(word_FFFFA594).w bne.s loc_76B5E tst.b (byte_FFFFB1FA).w beq.s loc_76B2E clr.w (word_FFFFB1F2).w bra.s loc_76B5E ; --------------------------------------------------------------------------- loc_76B2E: ; CODE XREF: sub_76A4E+D8j move.w (word_FFFFB1F2).w,d3 addq.w #3,d3 bcc.s loc_76B3A move.w #$FFFF,d3 loc_76B3A: ; CODE XREF: sub_76A4E+E6j move.w d3,(word_FFFFB1F2).w cmp.w (CRUIS_MANAGE_KE_CRUISE_SWITCH_PASS_TIME).l,d3 bls.s loc_76B5E btst #1,(byte_FFFF89B2).w beq.s loc_76B5E btst #6,(byte_FFFF89B2).w bne.s loc_76B5E moveq #$79,d0 ; 'y' jsr sub_5F0BE loc_76B5E: ; CODE XREF: sub_76A4E+D2j ; sub_76A4E+DEj ... moveq #1,d0 jsr sub_75F80 moveq #2,d0 jsr sub_75F38 move.b (byte_FFFF9022).w,d3 cmp.b (byte_FFFFA019).w,d3 bne.s loc_76B82 move.w (word_FFFF9020).w,d3 cmp.w (word_FFFFA05A).w,d3 beq.s loc_76BA0 loc_76B82: ; CODE XREF: sub_76A4E+128j clr.b d3 move.l d3,d0 jsr sub_75E94 clr.w d0 jsr sub_77658 move.b #$10,(byte_FFFFB530).w jsr sub_76844 loc_76BA0: ; CODE XREF: sub_76A4E+132j move.b (byte_FFFF9022).w,d3 moveq #1,d2 cmp.b d3,d2 beq.w loc_77092 tst.b d3 beq.w loc_77092 tst.b (byte_FFFFB1FB).w beq.w loc_76C80 btst #3,(word_FFFFA594).w bne.w loc_76C80 moveq #5,d6 cmp.b d3,d6 bne.s loc_76BD8 moveq #3,d3 move.l d3,d0 jsr sub_75E94 bra.w loc_76C80 ; --------------------------------------------------------------------------- loc_76BD8: ; CODE XREF: sub_76A4E+17Aj tst.b (byte_FFFFB04A).w beq.w loc_76C70 moveq #4,d7 cmp.b d3,d7 bne.s loc_76C34 moveq #3,d3 move.l d3,d0 jsr sub_75E94 move.w (word_FFFFB04E).w,d3 cmp.w (word_FFFF9020).w,d3 bcs.s loc_76C06 move.w (word_FFFFB1F8).w,d3 cmp.w (CRUIS_MANAGE_KE_TAP_DOWN_WINS).l,d3 bcs.s loc_76C80 loc_76C06: ; CODE XREF: sub_76A4E+1AAj move.w (CRUIS_MANAGE_KE_ACCEL_COMP_S_C).l,d0 ; Calibration used to scale vehicle acceleration into Demand Register during a set. ; Scaler move.w (word_FFFFB04C).w,d3 ext.l d3 asl.l #8,d3 asl.l #3,d3 divs.w d0,d3 bvc.s loc_76C24 swap d3 eor.w d0,d3 bpl.s loc_76C6A loc_76C20: ; CODE XREF: sub_76A4E+21Aj move.w #$8000,d3 loc_76C24: ; CODE XREF: sub_76A4E+1CAj ; sub_76A4E+214j ... move.w d3,(word_FFFFB058).w move.w (word_FFFFB04E).w,d0 jsr sub_77658 bra.s loc_76C80 ; --------------------------------------------------------------------------- loc_76C34: ; CODE XREF: sub_76A4E+196j cmpi.b #2,d3 bne.s loc_76C80 move.w (word_FFFFB1F8).w,d3 cmp.w (CRUIS_MANAGE_KE_CRUISE_SET_TIME).l,d3 ; The minimum amount of time the S/C switch must be depressedin order to move to engaged upon the release of the switch. ; Seconds bcs.s loc_76C80 moveq #3,d3 move.l d3,d0 jsr sub_75E94 move.w (CRUIS_MANAGE_KE_ACCEL_COMP_S_C).l,d0 ; Calibration used to scale vehicle acceleration into Demand Register during a set. ; Scaler move.w (word_FFFFB04C).w,d3 ext.l d3 asl.l #8,d3 asl.l #3,d3 divs.w d0,d3 bvc.s loc_76C24 swap d3 eor.w d0,d3 bmi.s loc_76C20 loc_76C6A: ; CODE XREF: sub_76A4E+1D0j move.w #$7FFF,d3 bra.s loc_76C24 ; --------------------------------------------------------------------------- loc_76C70: ; CODE XREF: sub_76A4E+18Ej moveq #4,d7 cmp.b d3,d7 bne.s loc_76C80 move.b d6,(byte_FFFFB530).w jsr sub_76844 loc_76C80: ; CODE XREF: sub_76A4E+168j ; sub_76A4E+172j ... tst.b (byte_FFFFB1FA).w beq.s loc_76C9C btst #4,(word_FFFFA594).w bne.s loc_76C9C moveq #2,d6 cmp.b (byte_FFFF9022).w,d6 beq.s loc_76C9C jsr sub_77472 loc_76C9C: ; CODE XREF: sub_76A4E+236j ; sub_76A4E+23Ej ... tst.b (byte_FFFFB1FB).w bne.w loc_76D72 btst #3,(word_FFFFA594).w beq.w loc_76D72 move.b (byte_FFFF9022).w,d3 moveq #2,d6 cmp.b d3,d6 beq.w loc_76D72 moveq #7,d7 cmp.b d3,d7 bne.s loc_76CE0 moveq #4,d3 move.l d3,d0 jsr sub_75E94 move.w (word_FFFFB04E).w,d3 cmp.w (word_FFFF9020).w,d3 bcc.w loc_76D72 move.w (word_FFFFB054).w,(word_FFFFB058).w bra.w loc_76D72 ; --------------------------------------------------------------------------- loc_76CE0: ; CODE XREF: sub_76A4E+270j moveq #5,d3 move.l d3,d0 jsr sub_75E94 move.w (CRUIS_CONTROL_KE_LOW_SPEED_INHIBIT).l,d3 ; Filtered vehicle speed below which transitional cruisemodes can not be established ; MPH movea.w #$80,a0 ; '?' add.w a0,d3 cmp.w (word_FFFF9020).w,d3 bhi.s loc_76D72 move.w (CRUIS_MANAGE_KE_TAP_DOWN_TIMEOUT).l,d3 cmp.w (word_FFFFB1F6).w,d3 bhi.s loc_76D2E cmp.w (word_FFFFB1F2).w,d3 bhi.s loc_76D2E move.w (word_FFFFB054).w,d3 cmp.w (CRUIS_MANAGE_KE_TAP_DOWN_SPEED_HIGH).l,d3 blt.s loc_76D2E tst.b (byte_FFFFB047).w bne.s loc_76D72 move.b #$F,(byte_FFFFB530).w jsr sub_76844 bra.s loc_76D72 ; --------------------------------------------------------------------------- loc_76D2E: ; CODE XREF: sub_76A4E+2B8j ; sub_76A4E+2BEj ... move.w (word_FFFF9020).w,d3 sub.w (CRUIS_MANAGE_KE_TAP_INCREMENT).l,d3 ; The tap up/down increment to memory speed and demand register. ; MPH bcc.s loc_76D3C clr.w d3 loc_76D3C: ; CODE XREF: sub_76A4E+2EAj move.w d3,(word_FFFF9020).w move.w (word_FFFFA05A).w,d3 sub.w (CRUIS_MANAGE_KE_TAP_INCREMENT).l,d3 ; The tap up/down increment to memory speed and demand register. ; MPH bcc.s loc_76D4E clr.w d3 loc_76D4E: ; CODE XREF: sub_76A4E+2FCj move.w d3,(word_FFFFA05A).w move.w (word_FFFFB058).w,d3 add.w (CRUIS_MANAGE_KE_TAP_INCREMENT).l,d3 ; The tap up/down increment to memory speed and demand register. ; MPH bvc.s loc_76D6A bpl.s loc_76D66 move.w #$7FFF,d3 bra.s loc_76D6A ; --------------------------------------------------------------------------- loc_76D66: ; CODE XREF: sub_76A4E+310j move.w #$8000,d3 loc_76D6A: ; CODE XREF: sub_76A4E+30Ej ; sub_76A4E+316j move.w d3,(word_FFFFB058).w move.b d2,(byte_FFFFB1EE).w loc_76D72: ; CODE XREF: sub_76A4E+252j ; sub_76A4E+25Cj ... tst.b (byte_FFFFB1FA).w bne.w loc_76F14 btst #4,(word_FFFFA594).w beq.w loc_76F14 move.b (byte_FFFF9022).w,d3 moveq #2,d6 cmp.b d3,d6 beq.w loc_76E3A moveq #7,d7 cmp.b d3,d7 bne.s loc_76DB6 move.w (word_FFFFB1F2).w,d3 cmp.w (CRUIS_MANAGE_KE_RESUME_IGNORE_RA_TIME).l,d3 bcs.w loc_76F14 moveq #8,d3 move.l d3,d0 jsr sub_75E94 move.b d2,(byte_FFFFB1FE).w bra.w loc_76F14 ; --------------------------------------------------------------------------- loc_76DB6: ; CODE XREF: sub_76A4E+346j moveq #6,d3 move.l d3,d0 jsr sub_75E94 move.w (word_FFFFB054).w,d3 cmp.w (CRUIS_MANAGE_KE_TAP_UP_SPEED_LOW).l,d3 blt.w loc_76F14 cmp.w (CRUIS_MANAGE_KE_TAP_UP_SPEED_HIGH).l,d3 bge.w loc_76F14 move.w (word_FFFF9020).w,d3 cmp.w (CRUIS_CONTROL_KE_HIGH_SPEED_INHIBIT).l,d3 ; Filtered vehicle speed above which transitional cruisemodes can not be established ; MPH bcc.w loc_76F14 move.w (word_FFFF9020).w,d3 add.w (CRUIS_MANAGE_KE_TAP_INCREMENT).l,d3 ; The tap up/down increment to memory speed and demand register. ; MPH cmpi.w #$7FFF,d3 bls.s loc_76DFA move.w #$7FFF,d3 loc_76DFA: ; CODE XREF: sub_76A4E+3A6j move.w d3,(word_FFFF9020).w move.w (word_FFFFA05A).w,d3 add.w (CRUIS_MANAGE_KE_TAP_INCREMENT).l,d3 ; The tap up/down increment to memory speed and demand register. ; MPH cmpi.w #$7FFF,d3 bls.s loc_76E12 move.w #$7FFF,d3 loc_76E12: ; CODE XREF: sub_76A4E+3BEj move.w d3,(word_FFFFA05A).w move.w (word_FFFFB058).w,d3 sub.w (CRUIS_MANAGE_KE_TAP_INCREMENT).l,d3 ; The tap up/down increment to memory speed and demand register. ; MPH bvc.s loc_76E2E bpl.s loc_76E2A move.w #$7FFF,d3 bra.s loc_76E2E ; --------------------------------------------------------------------------- loc_76E2A: ; CODE XREF: sub_76A4E+3D4j move.w #$8000,d3 loc_76E2E: ; CODE XREF: sub_76A4E+3D2j ; sub_76A4E+3DAj move.w d3,(word_FFFFB058).w move.b d2,(byte_FFFFB1EE).w bra.w loc_76F14 ; --------------------------------------------------------------------------- loc_76E3A: ; CODE XREF: sub_76A4E+33Ej tst.b (byte_FFFFB04A).w beq.w loc_76F14 tst.w (word_FFFF9020).w beq.w loc_76F14 move.w (word_FFFFB054).w,d3 cmp.w (CRUIS_MANAGE_KE_MAX_ACCEL_FROM_SBE_ERROR).l,d3 ; Maximum cruise speed error for which accel from SBE modewill be entered when the R/A switch is applied. ; MPH_S bge.w loc_76F0A moveq #9,d3 move.l d3,d0 jsr sub_75E94 move.w (word_FFFFAEF6).w,d0 movea.l #$93BC,a2 tblu.w (a2),d0 move.w (CRUIS_MANAGE_KE_ACCEL_STEP_FROM_SBE_SCALER).l,d4 ; Maximum cruise speed error for which a full accel stepfrom SBE will be applied. ; MPH_S move.w (word_FFFFB054).w,d3 ext.l d3 asl.l #7,d3 divs.w d4,d3 bvc.s loc_76E92 swap d3 eor.w d4,d3 bmi.s loc_76E8E move.w #$7FFF,d3 bra.s loc_76E92 ; --------------------------------------------------------------------------- loc_76E8E: ; CODE XREF: sub_76A4E+438j move.w #$8000,d3 loc_76E92: ; CODE XREF: sub_76A4E+432j ; sub_76A4E+43Ej tst.w d3 bge.s loc_76E9A clr.w d3 bra.s loc_76EA4 ; --------------------------------------------------------------------------- loc_76E9A: ; CODE XREF: sub_76A4E+446j move.w #$80,d7 ; '?' cmp.w d3,d7 bge.s loc_76EA4 move.l d7,d3 loc_76EA4: ; CODE XREF: sub_76A4E+44Aj ; sub_76A4E+452j move.w #$80,d4 ; '?' muls.w d3,d0 divs.w d4,d0 bvc.s loc_76EBE swap d0 eor.w d4,d0 bmi.s loc_76EBA move.w #$7FFF,d0 bra.s loc_76EBE ; --------------------------------------------------------------------------- loc_76EBA: ; CODE XREF: sub_76A4E+464j move.w #$8000,d0 loc_76EBE: ; CODE XREF: sub_76A4E+45Ej ; sub_76A4E+46Aj move.w (CRUIS_MANAGE_KE_ACCEL_COMP_R_A).l,d4 ; Calibration used to scale vehicle acceleration into Demand Register during a resume. ; Scaler move.w (word_FFFFB04C).w,d3 ext.l d3 asl.l #8,d3 asl.l #3,d3 divs.w d4,d3 bvc.s loc_76EE2 swap d3 eor.w d4,d3 bmi.s loc_76EDE move.w #$7FFF,d3 bra.s loc_76EE2 ; --------------------------------------------------------------------------- loc_76EDE: ; CODE XREF: sub_76A4E+488j move.w #$8000,d3 loc_76EE2: ; CODE XREF: sub_76A4E+482j ; sub_76A4E+48Ej add.w d0,d3 bvc.s loc_76EF2 bpl.s loc_76EEE move.w #$7FFF,d3 bra.s loc_76EF2 ; --------------------------------------------------------------------------- loc_76EEE: ; CODE XREF: sub_76A4E+498j move.w #$8000,d3 loc_76EF2: ; CODE XREF: sub_76A4E+496j ; sub_76A4E+49Ej add.w (word_FFFFB054).w,d3 bvc.s loc_76F04 bpl.s loc_76F00 move.w #$7FFF,d3 bra.s loc_76F04 ; --------------------------------------------------------------------------- loc_76F00: ; CODE XREF: sub_76A4E+4AAj move.w #$8000,d3 loc_76F04: ; CODE XREF: sub_76A4E+4A8j ; sub_76A4E+4B0j move.w d3,(word_FFFFB058).w bra.s loc_76F14 ; --------------------------------------------------------------------------- loc_76F0A: ; CODE XREF: sub_76A4E+406j moveq #$A,d3 move.l d3,d0 jsr sub_75E94 loc_76F14: ; CODE XREF: sub_76A4E+328j ; sub_76A4E+332j ... btst #4,(word_FFFFA594).w beq.w loc_76FAA move.b (byte_FFFF9022).w,d3 cmpi.b #6,d3 beq.s loc_76F2E cmpi.b #7,d3 bne.s loc_76FAA loc_76F2E: ; CODE XREF: sub_76A4E+4D8j move.w (word_FFFFB1F4).w,d3 cmp.w (CRUIS_MANAGE_KE_TAP_UP_VS_ACCEL_TIME).l,d3 bcs.s loc_76FAA moveq #8,d3 move.l d3,d0 jsr sub_75E94 move.w (word_FFFFAEF6).w,d0 movea.l #$93D4,a2 tblu.w (a2),d0 move.w (CRUIS_MANAGE_KE_ACCEL_COMP_R_A).l,d4 ; Calibration used to scale vehicle acceleration into Demand Register during a resume. ; Scaler move.w (word_FFFFB04C).w,d3 ext.l d3 asl.l #8,d3 asl.l #3,d3 divs.w d4,d3 bvc.s loc_76F76 swap d3 eor.w d4,d3 bmi.s loc_76F72 move.w #$7FFF,d3 bra.s loc_76F76 ; --------------------------------------------------------------------------- loc_76F72: ; CODE XREF: sub_76A4E+51Cj move.w #$8000,d3 loc_76F76: ; CODE XREF: sub_76A4E+516j ; sub_76A4E+522j add.w d0,d3 bvc.s loc_76F86 bpl.s loc_76F82 move.w #$7FFF,d3 bra.s loc_76F86 ; --------------------------------------------------------------------------- loc_76F82: ; CODE XREF: sub_76A4E+52Cj move.w #$8000,d3 loc_76F86: ; CODE XREF: sub_76A4E+52Aj ; sub_76A4E+532j tst.w (word_FFFFB054).w blt.s loc_76F9A add.w (word_FFFFB054).w,d3 bvc.s loc_76FA6 bpl.s loc_76FA2 loc_76F94: ; CODE XREF: sub_76A4E+552j move.w #$7FFF,d3 bra.s loc_76FA6 ; --------------------------------------------------------------------------- loc_76F9A: ; CODE XREF: sub_76A4E+53Cj add.w (word_FFFFB058).w,d3 bvc.s loc_76FA6 bmi.s loc_76F94 loc_76FA2: ; CODE XREF: sub_76A4E+544j move.w #$8000,d3 loc_76FA6: ; CODE XREF: sub_76A4E+542j ; sub_76A4E+54Aj ... move.w d3,(word_FFFFB058).w loc_76FAA: ; CODE XREF: sub_76A4E+4CCj ; sub_76A4E+4DEj ... btst #4,(word_FFFFA594).w beq.w loc_77036 moveq #$A,d6 cmp.b (byte_FFFF9022).w,d6 bne.s loc_77036 move.w (word_FFFFB1F4).w,d3 cmp.w (CRUIS_MANAGE_KE_RESUME_VS_ACCEL_TIME).l,d3 bcs.s loc_77036 tst.b (byte_FFFFB04A).w beq.s loc_77036 tst.w (word_FFFF9020).w beq.s loc_77036 moveq #9,d3 move.l d3,d0 jsr sub_75E94 move.w (word_FFFFAEF6).w,d0 movea.l #$93BC,a2 tblu.w (a2),d0 move.w (CRUIS_MANAGE_KE_ACCEL_COMP_R_A).l,d4 ; Calibration used to scale vehicle acceleration into Demand Register during a resume. ; Scaler move.w (word_FFFFB04C).w,d3 ext.l d3 asl.l #8,d3 asl.l #3,d3 divs.w d4,d3 bvc.s loc_77010 swap d3 eor.w d4,d3 bmi.s loc_7700C move.w #$7FFF,d3 bra.s loc_77010 ; --------------------------------------------------------------------------- loc_7700C: ; CODE XREF: sub_76A4E+5B6j move.w #$8000,d3 loc_77010: ; CODE XREF: sub_76A4E+5B0j ; sub_76A4E+5BCj add.w d0,d3 bvc.s loc_77020 bpl.s loc_7701C move.w #$7FFF,d3 bra.s loc_77020 ; --------------------------------------------------------------------------- loc_7701C: ; CODE XREF: sub_76A4E+5C6j move.w #$8000,d3 loc_77020: ; CODE XREF: sub_76A4E+5C4j ; sub_76A4E+5CCj add.w (word_FFFFB054).w,d3 bvc.s loc_77032 bpl.s loc_7702E move.w #$7FFF,d3 bra.s loc_77032 ; --------------------------------------------------------------------------- loc_7702E: ; CODE XREF: sub_76A4E+5D8j move.w #$8000,d3 loc_77032: ; CODE XREF: sub_76A4E+5D6j ; sub_76A4E+5DEj move.w d3,(word_FFFFB058).w loc_77036: ; CODE XREF: sub_76A4E+562j ; sub_76A4E+56Cj ... btst #3,(word_FFFFA594).w beq.s loc_77066 cmpi.b #5,(byte_FFFF9022).w bne.s loc_77066 move.w (word_FFFFB1F8).w,d3 cmp.w (CRUIS_MANAGE_KE_TAP_DOWN_VS_COAST_TIME).l,d3 bcs.s loc_77066 moveq #4,d3 move.l d3,d0 jsr sub_75E94 move.w (word_FFFFB054).w,d3 bge.s loc_77066 move.w d3,(word_FFFFB058).w loc_77066: ; CODE XREF: sub_76A4E+5EEj ; sub_76A4E+5F6j ... move.b (byte_FFFF9022).w,d3 cmpi.b #8,d3 beq.s loc_77076 cmpi.b #9,d3 bne.s loc_77092 loc_77076: ; CODE XREF: sub_76A4E+620j btst #4,(word_FFFFA594).w bne.s loc_77092 move.l d2,d0 jsr sub_75E94 move.b #$A,(byte_FFFFB530).w jsr sub_76844 loc_77092: ; CODE XREF: sub_76A4E+15Aj ; sub_76A4E+160j ... btst #3,(word_FFFFA594).w sne d0 neg.b d0 move.b d0,(byte_FFFFB1FB).w btst #4,(word_FFFFA594).w sne d0 neg.b d0 move.b d0,(byte_FFFFB1FA).w moveq #2,d0 jsr sub_75F80 moveq #3,d0 jsr sub_75F38 tst.b (byte_FFFFB379).w beq.s loc_77100 move.b (byte_FFFF9028).w,d3 cmpi.b #2,d3 beq.s loc_770DA cmpi.b #3,d3 beq.s loc_770DA cmpi.b #4,d3 bne.s loc_77100 loc_770DA: ; CODE XREF: sub_76A4E+67Ej ; sub_76A4E+684j btst #1,(byte_FFFF9027).w beq.s loc_77100 clr.b d3 move.l d3,d0 jsr sub_75E94 clr.w d0 jsr sub_77658 moveq #$15,d1 loc_770F6: ; CODE XREF: sub_76A4E+6CEj ; sub_76A4E+6EAj ... move.l d2,d3 loc_770F8: ; CODE XREF: sub_76A4E+766j clr.b (byte_FFFFB1FC).w bra.w loc_771BE ; --------------------------------------------------------------------------- loc_77100: ; CODE XREF: sub_76A4E+674j ; sub_76A4E+68Aj ... btst #2,(word_FFFFA594).w bne.s loc_7711E clr.b d3 move.l d3,d0 jsr sub_75E94 clr.w d0 jsr sub_77658 moveq #$D,d1 bra.s loc_770F6 ; --------------------------------------------------------------------------- loc_7711E: ; CODE XREF: sub_76A4E+6B8j btst #3,(word_FFFFA594).w beq.s loc_7713A btst #4,(word_FFFFA594).w beq.s loc_7713A move.l d2,d0 jsr sub_75E94 moveq #$11,d1 bra.s loc_770F6 ; --------------------------------------------------------------------------- loc_7713A: ; CODE XREF: sub_76A4E+6D6j ; sub_76A4E+6DEj tst.b (byte_FFFFAF3B).w beq.s loc_7714C move.l d2,d0 jsr sub_75E94 clr.b d1 bra.s loc_770F6 ; --------------------------------------------------------------------------- loc_7714C: ; CODE XREF: sub_76A4E+6F0j tst.b (byte_FFFFA3AC).w beq.s loc_7715E move.l d2,d0 jsr sub_75E94 moveq #3,d1 bra.s loc_770F6 ; --------------------------------------------------------------------------- loc_7715E: ; CODE XREF: sub_76A4E+702j tst.b (VEH_SYS_KE_DRIVETRAIN_TYPE).l ; Describes the type of drivetrain used on the vehicle ; Drivetrain_Type bne.s loc_77186 movea.l (off_134C).l,a0 move.l a0,var_4(a6) move.l a0,d6 bne.s loc_7717A jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_7717A: ; CODE XREF: sub_76A4E+724j btst #1,2(a0) sne d3 neg.b d3 bra.s loc_77188 ; --------------------------------------------------------------------------- loc_77186: ; CODE XREF: sub_76A4E+716j clr.b d3 loc_77188: ; CODE XREF: sub_76A4E+736j cmp.b (byte_FFFFB1FD).w,d3 beq.s loc_771A2 tst.b (byte_FFFFB047).w bne.s loc_771A2 move.l d2,d0 jsr sub_75E94 moveq #$16,d1 bra.w loc_770F6 ; --------------------------------------------------------------------------- loc_771A2: ; CODE XREF: sub_76A4E+73Ej ; sub_76A4E+744j tst.b (byte_FFFFB046).w bne.s loc_771B8 move.l d2,d0 jsr sub_75E94 move.l d2,d1 move.l d1,d3 bra.w loc_770F8 ; --------------------------------------------------------------------------- loc_771B8: ; CODE XREF: sub_76A4E+758j clr.b d3 move.b d2,(byte_FFFFB1FC).w loc_771BE: ; CODE XREF: sub_76A4E+6AEj tst.b d3 beq.s loc_771D2 tst.b (byte_FFFFB047).w bne.s loc_771D2 move.b d1,(byte_FFFFB530).w jsr sub_76844 loc_771D2: ; CODE XREF: sub_76A4E+772j ; sub_76A4E+778j tst.b (VEH_SYS_KE_DRIVETRAIN_TYPE).l ; Describes the type of drivetrain used on the vehicle ; Drivetrain_Type bne.s loc_771F6 movea.l (off_134C).l,a0 move.l a0,d1 bne.s loc_771EA jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_771EA: ; CODE XREF: sub_76A4E+794j btst #1,2(a0) sne d3 neg.b d3 bra.s loc_771F8 ; --------------------------------------------------------------------------- loc_771F6: ; CODE XREF: sub_76A4E+78Aj clr.b d3 loc_771F8: ; CODE XREF: sub_76A4E+7A6j move.b d3,(byte_FFFFB1FD).w moveq #3,d0 jsr sub_75F80 moveq #4,d0 jsr sub_75F38 tst.b (byte_FFFFB1FC).w beq.s loc_77236 move.b (byte_FFFF9022).w,d3 beq.s loc_7721C cmp.b d3,d2 bne.s loc_77236 loc_7721C: ; CODE XREF: sub_76A4E+7C8j btst #3,(word_FFFFA594).w bne.s loc_77236 btst #4,(word_FFFFA594).w bne.s loc_77236 moveq #2,d3 move.l d3,d0 jsr sub_75E94 loc_77236: ; CODE XREF: sub_76A4E+7C2j ; sub_76A4E+7CCj ... moveq #4,d0 jsr sub_75F80 movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_76A4E ; =============== S U B R O U T I N E ======================================= sub_77246: ; CODE XREF: DoLoopF+30Ep move.l d0,-(sp) move.b (byte_FFFF9022).w,d3 cmpi.b #7,d3 bne.w loc_772F4 move.w (word_FFFFB054).w,d3 sub.w (word_FFFFB058).w,d3 bvc.s loc_7726A bpl.s loc_77266 move.w #$7FFF,d3 bra.s loc_7726A ; --------------------------------------------------------------------------- loc_77266: ; CODE XREF: sub_77246+18j move.w #$8000,d3 loc_7726A: ; CODE XREF: sub_77246+16j ; sub_77246+1Ej tst.w d3 blt.s loc_77274 move.w (word_FFFFB054).w,(word_FFFFB058).w loc_77274: ; CODE XREF: sub_77246+26j tst.w (word_FFFFB058).w blt.s loc_7728C loc_7727A: ; CODE XREF: sub_77246+4Ej moveq #3,d3 move.l d3,d0 jsr sub_75E94 clr.w (word_FFFFB058).w bra.w loc_773E0 ; --------------------------------------------------------------------------- loc_7728C: ; CODE XREF: sub_77246+32j move.w (word_FFFFB04E).w,d3 cmp.w (word_FFFF9020).w,d3 bcc.s loc_7727A move.w (word_FFFFB054).w,d3 clr.w d4 cmpi.w #$EA00,d3 bge.s loc_772A6 move.l d4,d3 bra.s loc_772C0 ; --------------------------------------------------------------------------- loc_772A6: ; CODE XREF: sub_77246+5Aj tst.w d3 bge.s loc_772BC ext.l d3 addi.l #$1600,d3 tst.w d3 bpl.s loc_772B8 addq.w #1,d3 loc_772B8: ; CODE XREF: sub_77246+6Ej asr.w #1,d3 bra.s loc_772C0 ; --------------------------------------------------------------------------- loc_772BC: ; CODE XREF: sub_77246+62j move.w #$B00,d3 loc_772C0: ; CODE XREF: sub_77246+5Ej ; sub_77246+74j movea.l #$93EC,a2 tbls.w (a2),d3 move.w d3,(word_FFFFB1EC).w tst.b (byte_FFFFB056).w bne.w loc_773E0 move.w (word_FFFFB058).w,d3 add.w (word_FFFFB1EC).w,d3 bvc.w loc_773DC bpl.s loc_772EC loc_772E4: ; CODE XREF: sub_77246+10Ej move.w #$7FFF,d3 bra.w loc_773DC ; --------------------------------------------------------------------------- loc_772EC: ; CODE XREF: sub_77246+9Cj ; sub_77246+110j move.w #$8000,d3 bra.w loc_773DC ; --------------------------------------------------------------------------- loc_772F4: ; CODE XREF: sub_77246+Aj cmpi.b #8,d3 beq.s loc_77300 cmpi.b #9,d3 bne.s loc_77358 loc_77300: ; CODE XREF: sub_77246+B2j move.w (word_FFFFB054).w,d3 sub.w (word_FFFFB058).w,d3 bvc.s loc_77316 bpl.s loc_77312 move.w #$7FFF,d3 bra.s loc_77316 ; --------------------------------------------------------------------------- loc_77312: ; CODE XREF: sub_77246+C4j move.w #$8000,d3 loc_77316: ; CODE XREF: sub_77246+C2j ; sub_77246+CAj tst.w d3 blt.s loc_77320 move.w (word_FFFFB054).w,(word_FFFFB058).w loc_77320: ; CODE XREF: sub_77246+D2j move.w (word_FFFFB04E).w,d3 cmp.w (CRUIS_CONTROL_KE_HIGH_SPEED_INHIBIT).l,d3 ; Filtered vehicle speed above which transitional cruisemodes can not be established ; MPH bcc.w loc_773E0 move.w (word_FFFFAEF6).w,d3 movea.l #$9404,a2 tblu.w (a2),d3 move.w d3,(word_FFFFB1EC).w tst.b (byte_FFFFB056).w bne.w loc_773E0 move.w (word_FFFFB058).w,d3 add.w (word_FFFFB1EC).w,d3 loc_77350: ; CODE XREF: sub_77246+122j bvc.w loc_773DC bmi.s loc_772E4 bra.s loc_772EC ; --------------------------------------------------------------------------- loc_77358: ; CODE XREF: sub_77246+B8j cmpi.b #4,d3 bne.s loc_7736A move.w (word_FFFFB058).w,d3 add.w (CRUIS_MANAGE_KE_COAST_RATE).l,d3 ; The coast rate increment per 100 ms. ; MPH bra.s loc_77350 ; --------------------------------------------------------------------------- loc_7736A: ; CODE XREF: sub_77246+116j cmpi.b #3,d3 beq.s loc_7737C cmpi.b #6,d3 beq.s loc_7737C cmpi.b #5,d3 bne.s loc_773E0 loc_7737C: ; CODE XREF: sub_77246+128j ; sub_77246+12Ej move.w (word_FFFFB058).w,d3 tst.b (byte_FFFFB1EE).w beq.s loc_7738E movea.w (CRUIS_MANAGE_KE_HYSTERESIS_RATE).l,a2 ; The hysteresis rate increment per 100 ms. ; MPH bra.s loc_77394 ; --------------------------------------------------------------------------- loc_7738E: ; CODE XREF: sub_77246+13Ej movea.w (CRUIS_MANAGE_KE_TAP_RATE).l,a2 ; The tap up/down rate increment per 100 ms. ; MPH loc_77394: ; CODE XREF: sub_77246+146j tst.w d3 bne.s loc_7739E clr.b (byte_FFFFB1EE).w bra.s loc_773DC ; --------------------------------------------------------------------------- loc_7739E: ; CODE XREF: sub_77246+150j tst.w d3 ble.s loc_773B8 sub.w a2,d3 bvc.s loc_773B2 bpl.s loc_773AE move.w #$7FFF,d3 bra.s loc_773B2 ; --------------------------------------------------------------------------- loc_773AE: ; CODE XREF: sub_77246+160j move.w #$8000,d3 loc_773B2: ; CODE XREF: sub_77246+15Ej ; sub_77246+166j tst.w d3 bgt.s loc_773DC bra.s loc_773D6 ; --------------------------------------------------------------------------- loc_773B8: ; CODE XREF: sub_77246+15Aj tst.w d3 bge.s loc_773DC tst.b (byte_FFFFB056).w bne.s loc_773DC add.w a2,d3 bvc.s loc_773D2 bpl.s loc_773CE move.w #$7FFF,d3 bra.s loc_773D2 ; --------------------------------------------------------------------------- loc_773CE: ; CODE XREF: sub_77246+180j move.w #$8000,d3 loc_773D2: ; CODE XREF: sub_77246+17Ej ; sub_77246+186j tst.w d3 blt.s loc_773DC loc_773D6: ; CODE XREF: sub_77246+170j clr.b (byte_FFFFB1EE).w clr.w d3 loc_773DC: ; CODE XREF: sub_77246+98j ; sub_77246+A2j ... move.w d3,(word_FFFFB058).w loc_773E0: ; CODE XREF: sub_77246+42j ; sub_77246+8Cj ... move.w (word_FFFFB04E).w,(word_FFFFB1F0).w move.l (sp)+,d0 rts ; End of function sub_77246 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_773EA: ; CODE XREF: OS1:000292A8p link a6,#-4 andi.w #$FF,d0 movea.l off_89D4C(d0.w*4),a2 jmp (a2) ; End of function sub_773EA ; --------------------------------------------------------------------------- loc_773FC: ; DATA XREF: OS4:00089D50o ; OS4:00089D68o bra.s loc_7746E ; --------------------------------------------------------------------------- loc_773FE: ; DATA XREF: OS4:off_89D4Co ; OS4:00089D54o ... clr.b (byte_FFFFB1EE).w clr.b (byte_FFFFB1FB).w clr.b (byte_FFFFB1FE).w clr.b (byte_FFFFB1FA).w clr.w (word_FFFFB058).w clr.w (word_FFFFB1F8).w clr.w (word_FFFFB1F6).w clr.w (word_FFFFB1F4).w clr.w (word_FFFFB1F2).w clr.w d0 jsr sub_77658 clr.b d3 move.l d3,d0 jsr sub_75E94 move.b #$C,(byte_FFFFB530).w clr.w (word_FFFFB1F0).w clr.b (byte_FFFFB1FC).w tst.b (VEH_SYS_KE_DRIVETRAIN_TYPE).l ; Describes the type of drivetrain used on the vehicle ; Drivetrain_Type bne.s loc_77466 movea.l (off_134C).l,a2 move.l a2,d4 bne.s loc_7745A jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_7745A: ; CODE XREF: OS3:00077452j btst #1,2(a2) sne d3 neg.b d3 bra.s loc_77468 ; --------------------------------------------------------------------------- loc_77466: ; CODE XREF: OS3:00077448j clr.b d3 loc_77468: ; CODE XREF: OS3:00077464j move.b d3,(byte_FFFFB1FD).w nop loc_7746E: ; CODE XREF: OS3:loc_773FCj ; DATA XREF: OS4:00089D5Co ... unlk a6 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_77472: ; CODE XREF: sub_76A4E+248p var_6 = -6 var_5 = -5 var_4 = -4 var_2 = -2 link a6,#-6 movem.l d0-d1,-(sp) move.b (byte_FFFF9022).w,d3 move.b d3,var_6(a6) move.w (word_FFFFB058).w,d4 move.w d4,var_4(a6) move.w (word_FFFF9020).w,d0 move.w d0,var_2(a6) move.b (byte_FFFFB1FE).w,d1 move.b d1,var_5(a6) tst.b (byte_FFFFB04A).w beq.w loc_7762E cmpi.b #9,d3 bhi.w loc_775BC beq.w loc_77560 cmpi.b #8,d3 beq.s loc_77502 cmpi.b #6,d3 bne.w loc_7760C move.b #3,var_6(a6) move.w (word_FFFFB054).w,d3 cmp.w (CRUIS_MANAGE_KE_TAP_UP_SPEED_HIGH).l,d3 blt.w loc_7760C move.w (word_FFFFB04E).w,var_2(a6) move.w (CRUIS_MANAGE_KE_ACCEL_COMP_R_A).l,d0 ; Calibration used to scale vehicle acceleration into Demand Register during a resume. ; Scaler move.w (word_FFFFB04C).w,d3 ext.l d3 asl.l #8,d3 asl.l #3,d3 divs.w d0,d3 bvc.s loc_774FA swap d3 eor.w d0,d3 bmi.s loc_774F6 move.w #$7FFF,d3 bra.s loc_774FA ; --------------------------------------------------------------------------- loc_774F6: ; CODE XREF: sub_77472+7Cj move.w #$8000,d3 loc_774FA: ; CODE XREF: sub_77472+76j ; sub_77472+82j move.w d3,var_4(a6) bra.w loc_7760C ; --------------------------------------------------------------------------- loc_77502: ; CODE XREF: sub_77472+40j move.b #3,var_6(a6) move.l d4,d3 sub.w (word_FFFFB054).w,d3 bvc.s loc_7751C bpl.s loc_77518 move.w #$7FFF,d3 bra.s loc_7751C ; --------------------------------------------------------------------------- loc_77518: ; CODE XREF: sub_77472+9Ej move.w #$8000,d3 loc_7751C: ; CODE XREF: sub_77472+9Cj ; sub_77472+A4j move.w d3,var_4(a6) cmp.w (word_FFFFB054).w,d4 ble.s loc_7753E move.w (CRUIS_MANAGE_KE_ACCEL_TERMINATION_OVERSHOOT).l,d4 cmp.w d4,d3 ble.s loc_77536 move.w d4,var_4(a6) bra.s loc_7753E ; --------------------------------------------------------------------------- loc_77536: ; CODE XREF: sub_77472+BCj tst.w d3 bge.s loc_7753E clr.w var_4(a6) loc_7753E: ; CODE XREF: sub_77472+B2j ; sub_77472+C2j ... tst.b d1 bne.s loc_775A2 move.w (word_FFFFB1F4).w,d3 cmp.w (CRUIS_MANAGE_KE_TAP_UP_WINS).l,d3 bcc.s loc_775A2 move.w (word_FFFFB04E).w,d3 cmp.w d0,d3 bcs.w loc_7760C move.w d3,var_2(a6) bra.w loc_7760C ; --------------------------------------------------------------------------- loc_77560: ; CODE XREF: sub_77472+38j move.w (word_FFFFB1F4).w,d3 cmp.w (CRUIS_MANAGE_KE_RESUME_VS_ACCEL_TIME).l,d3 bcs.s loc_775AE move.b #3,var_6(a6) move.l d4,d3 sub.w (word_FFFFB054).w,d3 bvc.s loc_77586 bpl.s loc_77582 move.w #$7FFF,d3 bra.s loc_77586 ; --------------------------------------------------------------------------- loc_77582: ; CODE XREF: sub_77472+108j move.w #$8000,d3 loc_77586: ; CODE XREF: sub_77472+106j ; sub_77472+10Ej move.w d3,var_4(a6) cmp.w (word_FFFFB054).w,d4 ble.s loc_775A2 move.w (CRUIS_MANAGE_KE_ACCEL_TERMINATION_OVERSHOOT).l,d4 cmp.w d4,d3 bgt.s loc_775F6 loc_7759A: ; CODE XREF: sub_77472+182j tst.w d3 bge.s loc_775A2 clr.w var_4(a6) loc_775A2: ; CODE XREF: sub_77472+CEj ; sub_77472+DAj ... move.w (word_FFFFB04E).w,var_2(a6) clr.b var_5(a6) bra.s loc_7760C ; --------------------------------------------------------------------------- loc_775AE: ; CODE XREF: sub_77472+F8j cmp.w (word_FFFFB04E).w,d0 bls.s loc_77602 loc_775B4: ; CODE XREF: sub_77472+18Ej move.b #7,var_6(a6) bra.s loc_7760C ; --------------------------------------------------------------------------- loc_775BC: ; CODE XREF: sub_77472+34j move.w (word_FFFFB1F4).w,d3 cmp.w (CRUIS_MANAGE_KE_RESUME_VS_ACCEL_TIME).l,d3 bcs.s loc_775FC move.b #3,var_6(a6) move.l d4,d3 sub.w (word_FFFFB054).w,d3 bvc.s loc_775E2 bpl.s loc_775DE move.w #$7FFF,d3 bra.s loc_775E2 ; --------------------------------------------------------------------------- loc_775DE: ; CODE XREF: sub_77472+164j move.w #$8000,d3 loc_775E2: ; CODE XREF: sub_77472+162j ; sub_77472+16Aj move.w d3,var_4(a6) cmp.w (word_FFFFB054).w,d4 ble.s loc_775A2 move.w (CRUIS_MANAGE_KE_ACCEL_TERMINATION_OVERSHOOT).l,d4 cmp.w d4,d3 ble.s loc_7759A loc_775F6: ; CODE XREF: sub_77472+126j move.w d4,var_4(a6) bra.s loc_775A2 ; --------------------------------------------------------------------------- loc_775FC: ; CODE XREF: sub_77472+154j cmp.w (word_FFFFB04E).w,d0 bhi.s loc_775B4 loc_77602: ; CODE XREF: sub_77472+140j clr.w var_4(a6) move.b #3,var_6(a6) loc_7760C: ; CODE XREF: sub_77472+46j ; sub_77472+5Aj ... move.b var_6(a6),d0 jsr sub_75E94 move.w var_4(a6),(word_FFFFB058).w move.w var_2(a6),d0 jsr sub_77658 move.b var_5(a6),(byte_FFFFB1FE).w bra.s loc_77650 ; --------------------------------------------------------------------------- loc_7762E: ; CODE XREF: sub_77472+2Cj cmpi.b #6,d3 bne.s loc_77644 move.b #3,var_6(a6) moveq #3,d0 jsr sub_75E94 bra.s loc_77650 ; --------------------------------------------------------------------------- loc_77644: ; CODE XREF: sub_77472+1C0j move.b #9,(byte_FFFFB530).w jsr sub_76844 loc_77650: ; CODE XREF: sub_77472+1BAj ; sub_77472+1D0j movem.l (sp)+,d0-d1 unlk a6 rts ; End of function sub_77472 ; =============== S U B R O U T I N E ======================================= sub_77658: ; CODE XREF: sub_75EA6+34p ; sub_75EEE+36p ... move sr,-(sp) ori #$700,sr move.w d0,(word_FFFF9020).w move.w d0,(word_FFFFA05A).w move (sp)+,sr rts ; End of function sub_77658 ; =============== S U B R O U T I N E ======================================= sub_7766A: ; CODE XREF: sub_7792C+7Ep ; sub_7792C+1A4p ... move.l d0,-(sp) tst.b (byte_FFFFBE7C).w bne.s loc_77696 move.w (word_FFFFBE7E).w,d3 cmpi.w #$89,d3 ; '?' bne.s loc_77688 jsr sub_77FEA loc_77682: ; CODE XREF: sub_7766A+2Aj move.b d0,(byte_FFFFBE7C).w bra.s loc_77696 ; --------------------------------------------------------------------------- loc_77688: ; CODE XREF: sub_7766A+10j cmpi.w #1,d3 bne.s loc_77696 jsr sub_78150 bra.s loc_77682 ; --------------------------------------------------------------------------- loc_77696: ; CODE XREF: sub_7766A+6j ; sub_7766A+1Cj ... move.l (sp)+,d0 rts ; End of function sub_7766A ; =============== S U B R O U T I N E ======================================= sub_7769A: ; CODE XREF: sub_77D80+24p ; sub_77DB2+1Ap ... tst.b (byte_FFFFBE7C).w bne.s locret_776C4 move.w (word_FFFFBE7E).w,d3 cmpi.w #$89,d3 ; '?' bne.s loc_776B6 jsr sub_77F3E loc_776B0: ; CODE XREF: sub_7769A+28j move.b d0,(byte_FFFFBE7C).w bra.s locret_776C4 ; --------------------------------------------------------------------------- loc_776B6: ; CODE XREF: sub_7769A+Ej cmpi.w #1,d3 bne.s locret_776C4 jsr sub_78090 bra.s loc_776B0 ; --------------------------------------------------------------------------- locret_776C4: ; CODE XREF: sub_7769A+4j ; sub_7769A+1Aj ... rts ; End of function sub_7769A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_776C6: ; CODE XREF: sub_7777E+2Ap ; sub_777B4+2Ap var_10 = -$10 var_C = -$C var_8 = -8 var_4 = -4 link a6,#-$10 move.l d1,-(sp) bra.w loc_77772 ; --------------------------------------------------------------------------- loc_776D0: ; CODE XREF: sub_776C6+AEj clr.l var_10(a6) move.l var_10(a6),var_C(a6) move.l var_C(a6),var_8(a6) move.l (dword_FFFFFE14).w,var_4(a6) moveq #$40,d1 ; '@' andi.b #$3F,var_8+3(a6) ; '?' or.b d1,var_8+3(a6) move.l var_4(a6),(dword_FFFFFE14).w movea.l var_8(a6),a2 move.l a2,var_10(a6) move.l a2,var_C(a6) loc_77704: ; CODE XREF: sub_776C6+42j tst.l (dword_FFFFFE18).w bne.s loc_77704 move.l var_C(a6),(dword_FFFFFE18).w loc_77710: ; CODE XREF: sub_776C6+4Ej tst.l (dword_FFFFFE18).w bne.s loc_77710 movea.w (word_FFFFFF34).w,a3 loc_7771A: ; CODE XREF: sub_776C6+A2j clr.l var_10(a6) move.l var_10(a6),var_C(a6) move.l var_C(a6),var_8(a6) move.l (dword_FFFFFE14).w,var_4(a6) andi.b #$3F,var_8+3(a6) ; '?' or.b d1,var_8+3(a6) move.l var_4(a6),(dword_FFFFFE14).w movea.l var_8(a6),a2 move.l a2,var_10(a6) move.l a2,var_C(a6) loc_7774C: ; CODE XREF: sub_776C6+8Aj tst.l (dword_FFFFFE18).w bne.s loc_7774C move.l var_C(a6),(dword_FFFFFE18).w loc_77758: ; CODE XREF: sub_776C6+96j tst.l (dword_FFFFFE18).w bne.s loc_77758 move.w (word_FFFFFF34).w,d3 sub.w a3,d3 cmpi.w #$7D0,d3 bcs.s loc_7771A jsr sub_78DDE subq.w #1,d0 loc_77772: ; CODE XREF: sub_776C6+6j tst.w d0 bhi.w loc_776D0 move.l (sp)+,d1 unlk a6 rts ; End of function sub_776C6 ; =============== S U B R O U T I N E ======================================= sub_7777E: ; CODE XREF: sub_7792C+14p ; sub_7792C+76p ... movem.l d0-d1,-(sp) move.w (word_16CE).l,(word_FFFFFA4A).w move.w (word_16D4).l,(word_FFFFFA4E).w cmpi.w #$89,(word_FFFFBE7E).w ; '?' bne.s loc_777AE moveq #1,d1 move.w #$E0,d0 ; '?' jsr (sub_FC0).l moveq #$14,d0 jsr sub_776C6 loc_777AE: ; CODE XREF: sub_7777E+1Aj movem.l (sp)+,d0-d1 rts ; End of function sub_7777E ; =============== S U B R O U T I N E ======================================= sub_777B4: ; CODE XREF: sub_7792C+24p ; sub_7792C+CCp ... movem.l d0-d1,-(sp) move.w (word_16CE).l,(word_FFFFFA4A).w move.w (word_16D2).l,(word_FFFFFA4E).w cmpi.w #$89,(word_FFFFBE7E).w ; '?' bne.s loc_777E4 clr.b d1 move.w #$E0,d0 ; '?' jsr (sub_FC0).l moveq #$14,d0 jsr sub_776C6 loc_777E4: ; CODE XREF: sub_777B4+1Aj movem.l (sp)+,d0-d1 rts ; End of function sub_777B4 ; =============== S U B R O U T I N E ======================================= sub_777EA: ; CODE XREF: sub_27590+32p move.l a0,-(sp) jsr sub_77C12 movea.l a0,a2 movea.l #unk_FF8000,a3 clr.b d0 moveq #1,d3 loc_777FE: ; CODE XREF: sub_777EA+26j move.b (a2),d4 cmp.b (a3),d4 beq.s loc_77806 moveq #1,d0 loc_77806: ; CODE XREF: sub_777EA+18j addq.l #1,a2 addq.l #1,a3 addq.b #1,d3 cmpi.b #$88,d3 bls.s loc_777FE movea.l (sp)+,a0 rts ; End of function sub_777EA ; =============== S U B R O U T I N E ======================================= sub_77816: ; CODE XREF: sub_27590+3Cp movem.l d0/a0-a1,-(sp) jsr sub_77C12 movea.l #unk_FF91F4,a1 move.l #$88,d0 ; '?' jsr sub_26578 move.w (word_FFFF91F4).w,(word_FFFF8000).w move.w (word_FFFF91F6).w,(word_FFFF8002).w lea (unk_FFFF91F8).w,a3 lea (unk_FFFF8004).w,a2 moveq #9,d3 loc_77848: ; CODE XREF: sub_77816+34j move.w (a3)+,(a2)+ dbf d3,loc_77848 move.w (word_FFFF9250).w,(word_FFFF805C).w move.w (word_FFFF9252).w,(word_FFFF805E).w movem.l (sp)+,d0/a0-a1 rts ; End of function sub_77816 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_77860: ; CODE XREF: DoManyThings1+28p link a6,#-4 movem.l d0-d1/a0-a1,-(sp) clr.l (dword_FF86A6).l jsr sub_77C46 move.l a0,d1 beq.s loc_778A2 movea.l #unk_FF8088,a1 moveq #$56,d0 ; 'V' addq.l #2,a0 jsr sub_26578 jsr sub_77C12 movea.l #unk_FF8000,a1 move.l #$88,d0 ; '?' jsr sub_26578 bra.s loc_778C8 ; --------------------------------------------------------------------------- loc_778A2: ; CODE XREF: sub_77860+16j move.b #3,(byte_FFFFBE7C).w lea (word_FFFF8000).w,a2 move.w #$FFFF,d3 moveq #$43,d4 ; 'C' loc_778B2: ; CODE XREF: sub_77860+54j move.w d3,(a2)+ dbf d4,loc_778B2 lea (dword_FFFF8088).w,a2 moveq #$2A,d4 ; '*' loc_778BE: ; CODE XREF: sub_77860+60j move.w d3,(a2)+ dbf d4,loc_778BE clr.b (byte_FFFF803D).w loc_778C8: ; CODE XREF: sub_77860+40j movem.l (sp)+,d0-d1/a0-a1 unlk a6 rts ; End of function sub_77860 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_778D0: ; CODE XREF: sub_7792C+1E6p var_4 = -4 link a6,#-4 move.l d1,-(sp) move.w d0,d1 jsr sub_77CBC move.l a0,var_4(a6) move.l a0,d5 beq.s loc_77922 move.l #$5000,d0 move.l #$7000,d3 cmp.l d3,d5 bcs.s loc_778F8 move.l d3,d0 loc_778F8: ; CODE XREF: sub_778D0+24j clr.w d4 loc_778FA: ; CODE XREF: sub_778D0+4Cj movea.l var_4(a6),a2 move.w (a2),d3 cmp.w (word_8A7FC).l,d3 bne.s loc_7790E cmp.w d1,d4 beq.s loc_77922 addq.w #1,d4 loc_7790E: ; CODE XREF: sub_778D0+36j subi.l #$17A,var_4(a6) move.l var_4(a6),d3 cmp.l d0,d3 bcc.s loc_778FA clr.l var_4(a6) loc_77922: ; CODE XREF: sub_778D0+14j ; sub_778D0+3Aj movea.l var_4(a6),a0 move.l (sp)+,d1 unlk a6 rts ; End of function sub_778D0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7792C: ; CODE XREF: sub_21662+74p ; sub_27590+64p ... var_16 = -$16 var_12 = -$12 var_E = -$E var_A = -$A var_6 = -6 var_4 = -4 var_2 = -2 arg_0 = 8 link a6,#-$12 move.l a0,-(sp) move sr,-(sp) ori #$700,sr movem.l d6-d7/a4-a5,-(sp) move.w d0,d6 movea.l a1,a4 jsr sub_7777E jsr sub_77EA6 move.w d0,(word_FFFFBE7E).w jsr sub_777B4 moveq #3,d7 cmp.b (byte_FFFFBE7C).w,d7 bne.s loc_77964 move.l d6,d0 bra.w loc_77C00 ; --------------------------------------------------------------------------- loc_77964: ; CODE XREF: sub_7792C+30j jsr sub_77C46 move.l a0,var_12(a6) move.l a0,d0 beq.w loc_77BF6 clr.b (byte_FFFFBE7C).w move.l #$6000,d7 cmp.l d7,d0 bcc.s loc_7798C move.l #$4000,var_E(a6) bra.s loc_77996 ; --------------------------------------------------------------------------- loc_7798C: ; CODE XREF: sub_7792C+54j move.l d7,var_E(a6) move.l #$4000,d7 loc_77996: ; CODE XREF: sub_7792C+5Ej movea.l a0,a5 move.w (a5),d3 cmp.w (word_8A7FA).l,d3 bne.s loc_779FE jsr sub_7777E movea.l d7,a0 jsr sub_7766A move.l var_E(a6),d0 movea.w #$1000,a5 add.l a5,d0 move.l d0,var_A(a6) bra.s loc_779DC ; --------------------------------------------------------------------------- loc_779C0: ; CODE XREF: sub_7792C+BAj movea.l var_A(a6),a1 movea.l #word_8A7FC,a0 jsr sub_77DD8 addi.l #$17A,var_A(a6) move.l var_A(a6),d0 loc_779DC: ; CODE XREF: sub_7792C+92j movea.l d0,a2 move.w (a2),d3 cmp.w (word_8A7F6).l,d3 bne.s loc_779C0 movea.l var_12(a6),a1 movea.l #word_8A7FC,a0 jsr sub_77DD8 jsr sub_777B4 loc_779FE: ; CODE XREF: sub_7792C+74j move.w d6,var_6(a6) move.w d6,d4 move.l d4,d3 moveq #1,d6 and.w d6,d3 add.w d4,d3 move.w d3,var_6(a6) move.w #$88,d5 ; '?' cmp.w d3,d5 bcc.s loc_77A1C move.w d5,var_6(a6) loc_77A1C: ; CODE XREF: sub_7792C+EAj move.w d1,var_4(a6) move.w d1,d4 move.l d4,d3 and.w d6,d3 add.w d4,d3 move.w d3,var_4(a6) moveq #$56,d1 ; 'V' cmp.w d3,d1 bcc.s loc_77A36 move.w d1,var_4(a6) loc_77A36: ; CODE XREF: sub_7792C+104j move.w d2,var_2(a6) move.w d2,d4 move.l d4,d3 and.w d6,d3 add.w d4,d3 move.w d3,var_2(a6) move.w #$178,d2 cmp.w d3,d2 bcc.s loc_77A52 move.w d2,var_2(a6) loc_77A52: ; CODE XREF: sub_7792C+120j move.l var_E(a6),d3 addi.l #$FFF,d3 movea.l d3,a1 moveq #$58,d0 ; 'X' movea.l var_12(a6),a0 jsr sub_77D3E move.l a0,var_12(a6) move.l var_E(a6),d3 movea.w #$1000,a5 add.l a5,d3 movea.l d3,a0 move.l var_E(a6),d3 addi.l #$1FFF,d3 movea.l d3,a1 move.w #$17A,d0 jsr sub_77D3E move.l a0,var_A(a6) move.l var_12(a6),d0 beq.s loc_77AAE tst.l var_A(a6) bne.s loc_77AA6 tst.l arg_0(a6) bne.s loc_77AAE loc_77AA6: ; CODE XREF: sub_7792C+172j tst.l var_16(a6) beq.w loc_77B96 loc_77AAE: ; CODE XREF: sub_7792C+16Cj ; sub_7792C+178j move.l d7,d3 addi.l #$88,d3 ; '?' move.l d3,var_12(a6) jsr sub_7777E movea.l var_12(a6),a1 move.w (a1),d3 cmp.w (word_8A7F6).l,d3 beq.s loc_77AD6 movea.l d7,a0 jsr sub_7766A loc_77AD6: ; CODE XREF: sub_7792C+1A0j move.l var_16(a6),d3 beq.s loc_77AE6 move.w var_6(a6),d0 movea.l d7,a1 movea.l d3,a0 bra.s loc_77AF0 ; --------------------------------------------------------------------------- loc_77AE6: ; CODE XREF: sub_7792C+1AEj move.w #$88,d0 ; '?' movea.l d7,a1 movea.l var_E(a6),a0 loc_77AF0: ; CODE XREF: sub_7792C+1B8j jsr sub_77D80 move.w var_4(a6),d0 movea.l var_12(a6),a1 movea.l a4,a0 jsr sub_77DB2 movea.w var_2(a6),a4 add.l a5,d7 move.l d7,d1 moveq #4,d2 loc_77B10: ; CODE XREF: sub_7792C+210j move.l d2,d0 jsr sub_778D0 move.l a0,var_A(a6) move.l a0,d3 beq.s loc_77B3A addq.l #2,d3 move.l d3,var_A(a6) move.w #$178,d0 movea.l d1,a1 movea.l d3,a0 jsr sub_77DB2 addi.l #$17A,d1 loc_77B3A: ; CODE XREF: sub_7792C+1F2j subq.w #1,d2 bcc.s loc_77B10 move.l arg_0(a6),d2 beq.s loc_77B50 move.l a4,d0 movea.l d1,a1 movea.l d2,a0 jsr sub_77DB2 loc_77B50: ; CODE XREF: sub_7792C+216j tst.b (byte_FFFFBE7C).w bne.w loc_77BEE movea.l var_12(a6),a1 movea.l #word_8A7FA,a0 jsr sub_77DD8 movea.l var_E(a6),a0 jsr sub_7766A bra.s loc_77B88 ; --------------------------------------------------------------------------- loc_77B74: ; CODE XREF: sub_7792C+266j movea.l d7,a1 movea.l #word_8A7FC,a0 jsr sub_77DD8 addi.l #$17A,d7 loc_77B88: ; CODE XREF: sub_7792C+246j movea.l d7,a4 move.w (a4),d3 cmp.w (word_8A7F6).l,d3 bne.s loc_77B74 bra.s loc_77BDE ; --------------------------------------------------------------------------- loc_77B96: ; CODE XREF: sub_7792C+17Ej jsr sub_7777E move.w var_4(a6),d0 movea.l var_12(a6),a1 movea.l a4,a0 jsr sub_77DB2 move.l arg_0(a6),d7 beq.s loc_77BD8 move.w var_2(a6),d0 movea.l var_A(a6),a1 movea.l d7,a0 jsr sub_77DB2 tst.b (byte_FFFFBE7C).w bne.s loc_77BD8 movea.l var_A(a6),a1 movea.l #word_8A7FC,a0 jsr sub_77DD8 loc_77BD8: ; CODE XREF: sub_7792C+284j ; sub_7792C+29Aj tst.b (byte_FFFFBE7C).w bne.s loc_77BEE loc_77BDE: ; CODE XREF: sub_7792C+268j movea.l var_12(a6),a1 movea.l #word_8A7FC,a0 jsr sub_77DD8 loc_77BEE: ; CODE XREF: sub_7792C+228j ; sub_7792C+2B0j jsr sub_777B4 bra.s loc_77C06 ; --------------------------------------------------------------------------- loc_77BF6: ; CODE XREF: sub_7792C+44j move.b d7,(byte_FFFFBE7C).w move.l d6,d0 movea.l var_16(a6),a0 loc_77C00: ; CODE XREF: sub_7792C+34j jsr sub_77E14 loc_77C06: ; CODE XREF: sub_7792C+2C8j movem.l (sp)+,d6-d7/a4-a5 move (sp)+,sr unlk a6 rtd #4 ; End of function sub_7792C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_77C12: ; CODE XREF: sub_777EA+2p sub_77816+4p ... var_4 = -4 link a6,#-4 jsr sub_77C46 move.l a0,var_4(a6) move.l a0,d3 beq.s loc_77C3E cmpi.l #$6000,d3 bcs.s loc_77C34 movea.l #$6000,a2 bra.s loc_77C3A ; --------------------------------------------------------------------------- loc_77C34: ; CODE XREF: sub_77C12+18j movea.l #$4000,a2 loc_77C3A: ; CODE XREF: sub_77C12+20j move.l a2,var_4(a6) loc_77C3E: ; CODE XREF: sub_77C12+10j movea.l var_4(a6),a0 unlk a6 rts ; End of function sub_77C12 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_77C46: ; CODE XREF: sub_77860+Ep ; sub_7792C:loc_77964p ... var_4 = -4 link a6,#-4 movem.l d0-d1/a1/a4,-(sp) tst.b (byte_FFFFB0C8).w beq.s loc_77C5A movea.w #0,a0 bra.s loc_77CB4 ; --------------------------------------------------------------------------- loc_77C5A: ; CODE XREF: sub_77C46+Cj movea.l #$4088,a0 move.l a0,var_4(a6) move.w (word_8A7FA).l,d4 movea.l a0,a4 move.w (a4),d3 cmp.w d4,d3 beq.s loc_77CB0 movea.l #$6088,a4 move.l a4,var_4(a6) move.w (a4),d3 cmp.w d4,d3 beq.s loc_77CB0 moveq #$58,d0 ; 'X' movea.l #$4FFF,a1 jsr sub_77CFC move.l a0,var_4(a6) move.l a0,d1 bne.s loc_77CB0 moveq #$58,d0 ; 'X' movea.l #$6FFF,a1 movea.l #$6088,a0 jsr sub_77CFC move.l a0,var_4(a6) loc_77CB0: ; CODE XREF: sub_77C46+2Aj ; sub_77C46+3Aj ... movea.l var_4(a6),a0 loc_77CB4: ; CODE XREF: sub_77C46+12j movem.l (sp)+,d0-d1/a1/a4 unlk a6 rts ; End of function sub_77C46 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_77CBC: ; CODE XREF: sub_778D0+8p link a6,#-4 movem.l d0-d1/a1,-(sp) move.w #$17A,d0 movea.l #$5FFF,a1 movea.l #$5000,a0 jsr sub_77CFC move.l a0,d1 bne.s loc_77CF4 move.w #$17A,d0 movea.l #$7FFF,a1 movea.l #$7000,a0 jsr sub_77CFC loc_77CF4: ; CODE XREF: sub_77CBC+20j movem.l (sp)+,d0-d1/a1 unlk a6 rts ; End of function sub_77CBC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_77CFC: ; CODE XREF: sub_77C46+44p ; sub_77C46+60p ... var_4 = -4 link a6,#0 move.l a1,-(sp) move.l d2,-(sp) movea.l a0,a2 move.w d0,d5 move.l a2,d3 move.w (word_8A7FC).l,d0 movea.l d3,a2 move.w (a2),d4 cmp.w d0,d4 bne.s loc_77D34 move.l var_4(a6),d2 loc_77D1C: ; CODE XREF: sub_77CFC+36j cmp.l d2,d3 bhi.s loc_77D38 movea.l d3,a2 move.w (a2),d4 cmp.w d0,d4 bne.s loc_77D2A movea.l d3,a0 loc_77D2A: ; CODE XREF: sub_77CFC+2Aj clr.l d4 move.w d5,d4 add.l d3,d4 move.l d4,d3 bra.s loc_77D1C ; --------------------------------------------------------------------------- loc_77D34: ; CODE XREF: sub_77CFC+1Aj movea.w #0,a0 loc_77D38: ; CODE XREF: sub_77CFC+22j move.l (sp)+,d2 unlk a6 rts ; End of function sub_77CFC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_77D3E: ; CODE XREF: sub_7792C+138p ; sub_7792C+15Ep var_4 = -4 link a6,#0 move.l a1,-(sp) move.l d1,-(sp) move.l a0,d3 move.l var_4(a6),d1 loc_77D4C: ; CODE XREF: sub_77D3E+26j cmp.l d1,d3 bhi.s loc_77D66 movea.l d3,a2 move.w (a2),d4 cmp.w (word_8A7F6).l,d4 beq.s loc_77D66 clr.l d5 move.w d0,d5 add.l d3,d5 move.l d5,d3 bra.s loc_77D4C ; --------------------------------------------------------------------------- loc_77D66: ; CODE XREF: sub_77D3E+10j ; sub_77D3E+1Cj andi.l #$FFFF,d0 add.l d3,d0 cmp.l d1,d0 bls.s loc_77D78 movea.w #0,a0 bra.s loc_77D7A ; --------------------------------------------------------------------------- loc_77D78: ; CODE XREF: sub_77D3E+32j movea.l d3,a0 loc_77D7A: ; CODE XREF: sub_77D3E+38j move.l (sp)+,d1 unlk a6 rts ; End of function sub_77D3E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_77D80: ; CODE XREF: sub_7792C:loc_77AF0p ; sub_77E14+62p var_4 = -4 link a6,#0 move.l a1,-(sp) movem.l d1/a4,-(sp) movea.l a0,a4 adda.l #$88,a1 ; '?' movea.l #unk_8A7F8,a0 jsr sub_77DD8 movea.l var_4(a6),a1 movea.l a4,a0 jsr sub_7769A movem.l (sp)+,d1/a4 unlk a6 rts ; End of function sub_77D80 ; =============== S U B R O U T I N E ======================================= sub_77DB2: ; CODE XREF: sub_7792C+1D4p ; sub_7792C+202p ... movem.l a4-a5,-(sp) movea.l a0,a5 movea.l a1,a4 movea.l #unk_8A7F8,a0 jsr sub_77DD8 movea.l a4,a1 addq.l #2,a1 movea.l a5,a0 jsr sub_7769A movem.l (sp)+,a4-a5 rts ; End of function sub_77DB2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_77DD8: ; CODE XREF: sub_7792C+9Ep ; sub_7792C+C6p ... var_2 = -2 link a6,#-2 move.l d0,-(sp) move.w (word_FFFFBE7E).w,d3 cmpi.w #$89,d3 ; '?' bne.s loc_77E04 move.w (a0),d3 movea.l a1,a2 move.w (a2),d4 eor.w d3,d4 not.w d4 move.w d4,var_2(a6) moveq #2,d0 lea var_2(a6),a0 loc_77DFC: ; CODE XREF: sub_77DD8+34j jsr sub_7769A bra.s loc_77E0E ; --------------------------------------------------------------------------- loc_77E04: ; CODE XREF: sub_77DD8+Ej cmpi.w #1,d3 bne.s loc_77E0E moveq #2,d0 bra.s loc_77DFC ; --------------------------------------------------------------------------- loc_77E0E: ; CODE XREF: sub_77DD8+2Aj ; sub_77DD8+30j move.l (sp)+,d0 unlk a6 rts ; End of function sub_77DD8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_77E14: ; CODE XREF: sub_7792C:loc_77C00p var_4 = -4 link a6,#0 move.l a1,-(sp) movem.l d2/d6/a4-a5,-(sp) movea.l a0,a5 tst.b (byte_FFFFB0C8).w bne.s loc_77E9E clr.b (byte_FFFFBE7C).w move.l d1,d2 moveq #1,d6 and.w d6,d2 add.w d1,d2 move.w d2,d1 cmpi.w #$56,d1 ; 'V' bls.s loc_77E3C moveq #$56,d1 ; 'V' loc_77E3C: ; CODE XREF: sub_77E14+24j move.l d0,d2 and.w d6,d2 add.w d0,d2 move.w d2,d0 cmpi.w #$88,d0 ; '?' bls.s loc_77E4E move.w #$88,d0 ; '?' loc_77E4E: ; CODE XREF: sub_77E14+34j movea.l #$4088,a4 jsr sub_7777E movea.l #$4000,a1 movea.l a1,a0 jsr sub_7766A movea.l #$6000,a0 jsr sub_7766A movea.l a5,a0 jsr sub_77D80 move.l d1,d0 movea.l a4,a1 movea.l var_4(a6),a0 jsr sub_77DB2 movea.l a4,a1 movea.l #word_8A7FC,a0 jsr sub_77DD8 jsr sub_777B4 loc_77E9E: ; CODE XREF: sub_77E14+10j movem.l (sp)+,d2/d6/a4-a5 unlk a6 rts ; End of function sub_77E14 ; =============== S U B R O U T I N E ======================================= sub_77EA6: ; CODE XREF: sub_7792C+1Ap movem.l a1/a4-a5,-(sp) lea (loc_AAA).w,a1 lea (loc_554).w,a4 lea (off_0).w,a5 ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w lea (loc_77F0A).l,a2 lea (unk_FFBE80).l,a3 move.l #$34,d3 ; '4' loc_77EE0: ; CODE XREF: sub_77EA6+3Cj move.b (a2)+,(a3)+ dbf d3,loc_77EE0 jsr unk_FFBE80 move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w movem.l (sp)+,a1/a4-a5 rts ; End of function sub_77EA6 ; --------------------------------------------------------------------------- loc_77F0A: ; DATA XREF: sub_77EA6+28o move.w #$9090,(a1) move.w (a5),d0 move.w #$FFFF,(a1) move.w #$89,d3 ; '?' cmp.w d0,d3 beq.w locret_77F3C move.w #$AAAA,(a1) move.w #$5555,(a4) move.w #$9090,(a1) move.w (a5),d0 move.w #$F0F0,(a5) move.w #1,d3 cmp.w d0,d3 beq.w locret_77F3C clr.w d0 locret_77F3C: ; CODE XREF: OS3:00077F1Aj ; OS3:00077F36j rts ; =============== S U B R O U T I N E ======================================= sub_77F3E: ; CODE XREF: sub_7769A+10p move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w lea (loc_77F8E).l,a2 lea (unk_FFBE80).l,a3 move.l #$5C,d3 ; '\' loc_77F68: ; CODE XREF: sub_77F3E+2Cj move.b (a2)+,(a3)+ dbf d3,loc_77F68 jsr unk_FFBE80 move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w rts ; End of function sub_77F3E ; --------------------------------------------------------------------------- loc_77F8E: ; CODE XREF: OS3:00077FDEj ; DATA XREF: sub_77F3E+18o move.w #$91B,d4 move.w (a0)+,d3 move.w #$5050,(a1) move.w #$4040,(a1) move.w d3,(a1) move.w #$7070,(a1)+ cmpa.w #$8000,a1 beq.s loc_77FE4 loc_77FA8: ; CODE XREF: OS3:00077FC6j move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w move.w (a1),d3 btst #7,d3 dbne d4,loc_77FA8 move.w #$FFFF,(a1) move.w #$FFFF,(a1) andi.w #$98,d3 ; '?' cmpi.w #$80,d3 ; '?' bne.s loc_77FE4 subq.w #2,d0 bne.s loc_77F8E clr.b d0 bra.s locret_77FE8 ; --------------------------------------------------------------------------- loc_77FE4: ; CODE XREF: OS3:00077FA6j ; OS3:00077FDAj move.b #1,d0 locret_77FE8: ; CODE XREF: OS3:00077FE2j rts ; =============== S U B R O U T I N E ======================================= sub_77FEA: ; CODE XREF: sub_7766A+12p move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w lea (loc_7803A).l,a2 lea (unk_FFBE80).l,a3 move.l #$56,d3 ; 'V' loc_78014: ; CODE XREF: sub_77FEA+2Cj move.b (a2)+,(a3)+ dbf d3,loc_78014 jsr unk_FFBE80 move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w rts ; End of function sub_77FEA ; --------------------------------------------------------------------------- loc_7803A: ; DATA XREF: sub_77FEA+18o move.l #4571428,d4 move.w #$5050,(a0) move.w #$2020,(a0) move.w #$D0D0,(a0) move.w #$7070,(a0) loc_78050: ; CODE XREF: OS3:00078072j move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w move.w (a0),d3 btst #7,d3 bne.s loc_78074 subq.l #1,d4 bne.s loc_78050 loc_78074: ; CODE XREF: OS3:0007806Ej clr.b d0 andi.w #$E8,d3 ; '?' cmpi.w #$80,d3 ; '?' beq.w loc_78086 move.b #1,d0 loc_78086: ; CODE XREF: OS3:0007807Ej move.w #$FFFF,(a0) move.w #$FFFF,(a0) rts ; =============== S U B R O U T I N E ======================================= sub_78090: ; CODE XREF: sub_7769A+22p movem.l d2/a1/a4-a5,-(sp) move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w lea (loc_AAA).w,a4 lea (loc_554).w,a5 lea (loc_780F0).l,a2 lea (unk_FFBE80).l,a3 move.l #$60,d3 ; '`' loc_780C6: ; CODE XREF: sub_78090+38j move.b (a2)+,(a3)+ dbf d3,loc_780C6 jsr unk_FFBE80 move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w movem.l (sp)+,d2/a1/a4-a5 rts ; End of function sub_78090 ; --------------------------------------------------------------------------- loc_780F0: ; CODE XREF: OS3:0007813Cj ; DATA XREF: sub_78090+24o move.w #$91B,d4 move.w (a0)+,d3 move.w #43690,(a4) move.w #$5555,(a5) move.w #$A0A0,(a4) move.w d3,(a1) cmpa.w #$8000,a1 beq.s loc_7814A loc_7810A: ; CODE XREF: OS3:0007812Aj move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w move.w (a1),d2 cmp.w d3,d2 beq.w loc_78136 dbeq d4,loc_7810A move.w (a1),d2 cmp.w d2,d3 bne.w loc_7814A loc_78136: ; CODE XREF: OS3:00078126j adda.w #2,a1 subq.w #2,d0 bne.s loc_780F0 move.w #$F0F0,(a1) move.w #$F0F0,(a1) clr.b d0 bra.s locret_7814E ; --------------------------------------------------------------------------- loc_7814A: ; CODE XREF: OS3:00078108j ; OS3:00078132j move.b #1,d0 locret_7814E: ; CODE XREF: OS3:00078148j rts ; =============== S U B R O U T I N E ======================================= sub_78150: ; CODE XREF: sub_7766A+24p movem.l d2/a1/a4,-(sp) lea (loc_AAA).w,a1 lea (loc_554).w,a4 move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w lea (loc_781B0).l,a2 lea (unk_FFBE80).l,a3 move.l #$70,d3 ; 'p' loc_78186: ; CODE XREF: sub_78150+38j move.b (a2)+,(a3)+ dbf d3,loc_78186 jsr unk_FFBE80 move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w movem.l (sp)+,d2/a1/a4 rts ; End of function sub_78150 ; --------------------------------------------------------------------------- loc_781B0: ; DATA XREF: sub_78150+24o move.w #43690,(a1) move.w #$5555,(a4) move.w #32896,(a1) move.w #$AAAA,(a1) move.w #$5555,(a4) move.w #$3030,(a0) loc_781C8: ; CODE XREF: OS3:000781F8j move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w move.w (a0),d3 move.w (a0),d2 andi.w #$40,d3 ; '@' andi.w #$40,d2 ; '@' cmp.w d3,d2 beq.w loc_78214 move.w (a0),d4 btst #5,d4 beq.s loc_781C8 move.w (a0),d3 move.w (a0),d2 andi.w #$40,d3 ; '@' andi.w #$40,d2 ; '@' cmp.w d3,d2 beq.w loc_78214 move.b #1,d0 bra.w loc_78216 ; --------------------------------------------------------------------------- loc_78214: ; CODE XREF: OS3:000781EEj ; OS3:00078208j clr.b d0 loc_78216: ; CODE XREF: OS3:00078210j move.w #$F0F0,(a0) move.w #$F0F0,(a0) rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_78220: ; CODE XREF: sub_6CF1E+26p var_6 = -6 var_4 = -4 link a6,#-6 move.l a1,-(sp) movea.l a0,a1 lea var_6(a6),a0 jsr sub_7885E move.l var_4(a6),2(a1) move.w var_6(a6),(a1) movea.l (sp)+,a1 unlk a6 rts ; End of function sub_78220 ; =============== S U B R O U T I N E ======================================= sub_78242: ; CODE XREF: OS1:loc_288F0p ; DoManyThings1+1CCp ... move.l a0,-(sp) jsr sub_78DDE movea.l #unk_8A7E4,a0 jsr sub_78946 movea.l #byte_8A7E5,a0 jsr sub_78946 move.b (byte_8A7E5).l,d3 andi.b #$E0,d3 andi.b #$1F,(byte_FFFFBF09).w or.b d3,(byte_FFFFBF09).w bclr #4,(byte_FFFFBF09).w btst #4,(byte_8A7E5).l beq.s loc_7828C bset #4,(byte_FFFFBF09).w loc_7828C: ; CODE XREF: sub_78242+42j bclr #3,(byte_FFFFBF09).w btst #3,(byte_8A7E5).l beq.s loc_782A2 bset #3,(byte_FFFFBF09).w loc_782A2: ; CODE XREF: sub_78242+58j movea.l (sp)+,a0 rts ; End of function sub_78242 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_782A6: ; CODE XREF: sub_7C59E+58p var_C = -$C var_A = -$A var_6 = -6 var_4 = -4 link a6,#-$C move.l a0,-(sp) jsr sub_78DDE movea.l #unk_8A7E6,a0 jsr sub_78946 lea var_6(a6),a0 jsr sub_7885E move.l var_4(a6),var_A(a6) move.w var_6(a6),var_C(a6) move.b var_C(a6),d0 lsr.b #1,d0 andi.b #$1F,d0 movea.l (sp)+,a0 unlk a6 rts ; End of function sub_782A6 ; =============== S U B R O U T I N E ======================================= sub_782E4: ; CODE XREF: sub_7C3FE+Cp ; sub_7C71C+2Cp ... movem.l d1-d2/a0,-(sp) move.b (byte_FFFFBF08).w,d3 andi.b #$F8,d3 andi.b #7,(byte_FFFFBF0A).w or.b d3,(byte_FFFFBF0A).w bclr #2,(byte_FFFFBF0A).w btst #2,(byte_FFFFBF08).w beq.s loc_7830E bset #2,(byte_FFFFBF0A).w loc_7830E: ; CODE XREF: sub_782E4+22j bclr #1,(byte_FFFFBF0A).w btst #1,(byte_FFFFBF08).w beq.s loc_78322 bset #1,(byte_FFFFBF0A).w loc_78322: ; CODE XREF: sub_782E4+36j bclr #0,(byte_FFFFBF0A).w btst #0,(byte_FFFFBF08).w beq.s loc_78336 bset #0,(byte_FFFFBF0A).w loc_78336: ; CODE XREF: sub_782E4+4Aj move.l d0,d1 lsl.b #5,d1 move.b #$E0,d2 and.b d2,d1 andi.b #$1F,(byte_FFFFBF0B).w or.b d1,(byte_FFFFBF0B).w bset #4,(byte_FFFFBF0B).w bclr #3,(byte_FFFFBF0B).w andi.b #$F8,(byte_FFFFBF0B).w ori.b #2,(byte_FFFFBF0B).w lsl.b #5,d0 and.b d2,d0 andi.b #$1F,(byte_FFFFBF09).w or.b d0,(byte_FFFFBF09).w bset #4,(byte_FFFFBF09).w bclr #3,(byte_FFFFBF09).w jsr sub_78DDE movea.l #unk_FFBF0A,a0 jsr sub_789D2 movem.l (sp)+,d1-d2/a0 rts ; End of function sub_782E4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_78394: ; CODE XREF: OS1:000288EAp ; DoManyThings1+98p var_6 = -6 var_4 = -4 link a6,#-6 move.l 2(a0),(unk_FFFFBF06).w move.w (a0),(word_FFFFBF04).w jsr sub_78DDE movea.l #unk_FFBF04,a0 jsr sub_7889E lea var_6(a6),a0 jsr sub_7885E move.l var_4(a6),(dword_FFFFBF00).w move.w var_6(a6),(word_FFFFBEFE).w unlk a6 rts ; End of function sub_78394 ; =============== S U B R O U T I N E ======================================= sub_783CE: ; CODE XREF: sub_78AAC+86p move.w (word_FFFFFD00).w,(word_FFFFBF1C).w move.w (word_FFFFFD02).w,(word_FFFFBF1E).w move.w (word_FFFFFD04).w,(word_FFFFBF20).w move.b (word_FFFFBF1E+1).w,(word_FFFFBF1A).w move.b (word_FFFFBF20+1).w,(word_FFFFBF1A+1).w btst #7,(word_FFFFBF1C).w beq.s loc_783FE move.w (word_8A75A).l,(word_FFFFBF18).w bra.s locret_7840C ; --------------------------------------------------------------------------- loc_783FE: ; CODE XREF: sub_783CE+24j move.w (word_8A75A).l,d3 sub.w (word_FFFFBF1A).w,d3 move.w d3,(word_FFFFBF18).w locret_7840C: ; CODE XREF: sub_783CE+2Ej rts ; End of function sub_783CE ; =============== S U B R O U T I N E ======================================= sub_7840E: ; CODE XREF: OS1:00028930p move.l a0,-(sp) andi.w #$FF,d0 movea.l off_8A33C(d0.w*4),a0 jmp (a0) ; End of function sub_7840E ; --------------------------------------------------------------------------- loc_7841E: ; DATA XREF: OS4:0008A344o ; OS4:0008A358o btst #1,(byte_FFFF8AA2).w beq.s loc_78430 move.l #$7FFFFFFF,(dword_FFFFBF12).w bra.s loc_78448 ; --------------------------------------------------------------------------- loc_78430: ; CODE XREF: OS3:00078424j movea.l #unk_8A754,a0 jsr sub_78AAC move.w (word_FFFFBF18).w,d3 mulu.w #$A0,d3 ; '?' move.l d3,(dword_FFFFBF12).w loc_78448: ; CODE XREF: OS3:0007842Ej ; DATA XREF: OS4:off_8A33Co ... bra.s loc_7846E ; --------------------------------------------------------------------------- loc_7844A: ; DATA XREF: OS4:0008A35Co movea.l #unk_8A762,a0 jsr sub_78AAC clr.b (4294950678).w bra.s loc_7846E ; --------------------------------------------------------------------------- loc_7845C: ; DATA XREF: OS4:0008A354o ; OS4:0008A360o movea.l #567132,a0 jsr sub_78AAC move.b #1,(byte_FFFFBF16).w loc_7846E: ; CODE XREF: OS3:loc_78448j ; OS3:0007845Aj ; DATA XREF: ... movea.l (sp)+,a0 rts ; =============== S U B R O U T I N E ======================================= sub_78472: ; CODE XREF: sub_78484+10p move.l a0,-(sp) movea.l #unk_FFBE78,a0 jsr sub_786B2 movea.l (sp)+,a0 rts ; End of function sub_78472 ; =============== S U B R O U T I N E ======================================= sub_78484: ; CODE XREF: DoManyThings1+184p ; sub_7886A+2Ap ... jsr sub_78A52 clr.b (byte_FFFFBF22).w jsr sub_79254 jsr sub_78472 move.w (word_8A5A6).l,(word_FFFFFC1A).w move.w (word_8A5A8).l,(word_FFFFFC1C).w bset #7,(word_FFFFFC1A).w rts ; End of function sub_78484 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_784B2: ; CODE XREF: sub_78E56+3F2p ; sub_79266+1Ap var_2 = -2 link a6,#-2 jsr sub_78A52 move.w (a0),var_2(a6) move.b #$80,d3 andi.b #$1F,var_2(a6) or.b d3,var_2(a6) move.w var_2(a6),(word_FFFFFD20).w move.w $A(a0),(word_FFFFFD22).w move.w $C(a0),(word_FFFFFD24).w move.w $E(a0),(word_FFFFFD26).w move.w $10(a0),(word_FFFFFD28).w move.w $12(a0),var_2(a6) andi.b #$1F,var_2(a6) or.b d3,var_2(a6) move.w var_2(a6),(word_FFFFFD2A).w move.w $1C(a0),(word_FFFFFD2C).w move.w $1E(a0),(word_FFFFFD2E).w move.w $20(a0),(word_FFFFFD30).w move.w $22(a0),(word_FFFFFD32).w move.w $24(a0),var_2(a6) andi.b #$1F,var_2(a6) or.b d3,var_2(a6) move.w var_2(a6),(word_FFFFFD34).w move.w $2E(a0),(word_FFFFFD36).w move.w $30(a0),(word_FFFFFD38).w move.w $32(a0),(word_FFFFFD3A).w move.w $34(a0),(word_FFFFFD3C).w move.b (byte_8A5AC).l,(byte_FFFFFD40).w move.b (byte_8A5AC).l,(byte_FFFFFD41).w move.b (byte_8A5AC).l,(byte_FFFFFD42).w move.b (byte_8A5AC).l,(byte_FFFFFD43).w move.b (byte_8A5AD).l,(byte_FFFFFD44).w move.b (byte_8A5AE).l,(byte_FFFFFD45).w move.b (byte_8A5AE).l,(byte_FFFFFD46).w move.b (byte_8A5AE).l,(byte_FFFFFD47).w move.b (byte_8A5AE).l,(byte_FFFFFD48).w move.b (byte_8A5AF).l,(byte_FFFFFD49).w move.b (byte_8A5B0).l,(byte_FFFFFD4A).w move.b (byte_8A5B0).l,(byte_FFFFFD4B).w move.b (byte_8A5B0).l,(byte_FFFFFD4C).w move.b (byte_8A5B0).l,(byte_FFFFFD4D).w move.b (byte_8A5B1).l,(byte_FFFFFD4E).w move.w (word_8A5A6).l,(word_FFFFFC1A).w move.w (word_8A5AA).l,(word_FFFFFC1C).w andi.b #$F0,(word_FFFFFC1C).w ori.b #$E,(word_FFFFFC1C).w bclr #7,(byte_FFFFFC1F).w bset #7,(word_FFFFFC1A).w loc_785E8: ; CODE XREF: sub_784B2+13Cj btst #7,(byte_FFFFFC1F).w beq.s loc_785E8 unlk a6 rts ; End of function sub_784B2 ; =============== S U B R O U T I N E ======================================= sub_785F4: ; CODE XREF: sub_79254+8p tst.b (byte_FFFFBF22).w bne.w locret_786B0 move.w (a0),(word_FFFFFD20).w move.w 2(a0),(word_FFFFFD22).w move.w 4(a0),(word_FFFFFD24).w move.w 6(a0),(word_FFFFFD26).w move.w 8(a0),(word_FFFFFD28).w move.w $12(a0),(word_FFFFFD2A).w move.w $16(a0),(word_FFFFFD2C).w move.w $18(a0),(word_FFFFFD2E).w move.w $1A(a0),(word_FFFFFD30).w move.w $24(a0),(word_FFFFFD32).w move.w $28(a0),(word_FFFFFD34).w move.w $2A(a0),(word_FFFFFD36).w move.w $2C(a0),(word_FFFFFD38).w move.b (byte_8A5AC).l,(byte_FFFFFD40).w move.b (byte_8A5AC).l,(byte_FFFFFD41).w move.b (byte_8A5AC).l,(byte_FFFFFD42).w move.b (byte_8A5AC).l,(byte_FFFFFD43).w move.b (byte_8A5AD).l,(byte_FFFFFD44).w move.b (byte_8A5AE).l,(byte_FFFFFD45).w move.b (byte_8A5AE).l,(byte_FFFFFD46).w move.b (byte_8A5AE).l,(byte_FFFFFD47).w move.b (byte_8A5AF).l,(byte_FFFFFD48).w move.b (byte_8A5B0).l,(byte_FFFFFD49).w move.b (byte_8A5B0).l,(byte_FFFFFD4A).w move.b (byte_8A5B0).l,(byte_FFFFFD4B).w move.b (byte_8A5B1).l,(byte_FFFFFD4C).w locret_786B0: ; CODE XREF: sub_785F4+4j rts ; End of function sub_785F4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_786B2: ; CODE XREF: sub_3CA2E+114p ; sub_78472+8p var_3 = -3 var_2 = -2 link a6,#-4 tst.b (byte_FFFFBF22).w bne.s loc_786E8 move.b 2(a0),var_2+1(a6) move.b 1(a0),var_2(a6) move.b (a0),var_3(a6) move.w -4(a6),(word_FFFFFD3A).w move.w var_2(a6),(word_FFFFFD3C).w move.b (byte_8A5B2).l,(byte_FFFFFD4D).w move.b (byte_8A5B3).l,(byte_FFFFFD4E).w loc_786E8: ; CODE XREF: sub_786B2+8j unlk a6 rts ; End of function sub_786B2 ; =============== S U B R O U T I N E ======================================= sub_786EC: ; CODE XREF: sub_7886A+18p movem.l d0-d1,-(sp) jsr sub_78A52 move.b #2,(byte_FFFFBF22).w move.w (word_8A5BA).l,(word_FFFFFD20).w move.b (byte_8A5A2).l,(byte_FFFFFD40).w move.w (word_8A5AA).l,(word_FFFFFC1C).w moveq #1,d1 moveq #$41,d0 ; 'A' jsr (sub_FC0).l bclr #7,(byte_FFFFFC1F).w bset #7,(word_FFFFFC1A).w loc_7872A: ; CODE XREF: sub_786EC+44j btst #7,(byte_FFFFFC1F).w beq.s loc_7872A clr.b d1 moveq #$41,d0 ; 'A' jsr (sub_FC0).l move.w (word_FFFFFD00).w,(word_FFFFBF0C).w move.b (byte_8A5A4).l,(byte_FFFFFD40).w moveq #1,d1 moveq #$43,d0 ; 'C' jsr (sub_FC0).l bclr #7,(byte_FFFFFC1F).w bset #7,(word_FFFFFC1A).w loc_78760: ; CODE XREF: sub_786EC+7Aj btst #7,(byte_FFFFFC1F).w beq.s loc_78760 clr.b d1 moveq #$43,d0 ; 'C' jsr (sub_FC0).l move.w (word_FFFFFD00).w,(word_FFFFBF10).w movem.l (sp)+,d0-d1 rts ; End of function sub_786EC ; =============== S U B R O U T I N E ======================================= sub_7877E: ; CODE XREF: sub_7886A+1Ep movem.l d0-d1,-(sp) jsr sub_78A52 move.b #5,(byte_FFFFBF22).w move.w (word_8A5BA).l,(word_FFFFFD20).w move.b (byte_8A5A3).l,(byte_FFFFFD40).w move.w (word_8A5AA).l,(word_FFFFFC1C).w moveq #1,d1 moveq #$45,d0 ; 'E' jsr (sub_FC0).l bclr #7,(byte_FFFFFC1F).w bset #7,(word_FFFFFC1A).w loc_787BC: ; CODE XREF: sub_7877E+44j btst #7,(byte_FFFFFC1F).w beq.s loc_787BC clr.b d1 moveq #$45,d0 ; 'E' jsr (sub_FC0).l move.w (word_FFFFFD00).w,(word_FFFFB54E).w movem.l (sp)+,d0-d1 rts ; End of function sub_7877E ; =============== S U B R O U T I N E ======================================= sub_787DA: ; CODE XREF: sub_7886A+24p movem.l d0-d1,-(sp) jsr sub_78A52 move.b #3,(byte_FFFFBF22).w movea.w (word_8A5BA).l,a2 move.w a2,(word_FFFFFD20).w move.w a2,(word_FFFFFD22).w move.b (byte_8A5A0).l,(byte_FFFFFD40).w move.b (byte_8A5A1).l,(byte_FFFFFD41).w move.w (word_8A59C).l,(word_FFFFFC1A).w move.w (word_8A59E).l,(word_FFFFFC1C).w andi.b #$F0,(word_FFFFFC1C).w ori.b #1,(word_FFFFFC1C).w moveq #1,d1 moveq #$4B,d0 ; 'K' jsr (sub_FC0).l bclr #7,(byte_FFFFFC1F).w bset #7,(word_FFFFFC1A).w loc_7883A: ; CODE XREF: sub_787DA+66j btst #7,(byte_FFFFFC1F).w beq.s loc_7883A clr.b d1 moveq #$4B,d0 ; 'K' jsr (sub_FC0).l move.w (word_FFFFFD00).w,(word_FFFFBF24).w move.w (word_FFFFFD02).w,(dword_FFFFBF26).w movem.l (sp)+,d0-d1 rts ; End of function sub_787DA ; =============== S U B R O U T I N E ======================================= sub_7885E: ; CODE XREF: sub_78220+Cp ; sub_782A6+1Cp ... move.l (dword_FFFFBF26).w,2(a0) move.w (word_FFFFBF24).w,(a0) rts ; End of function sub_7885E ; =============== S U B R O U T I N E ======================================= sub_7886A: ; CODE XREF: DoLoopG+5Ap move sr,-(sp) ori #$700,sr jsr sub_78A52 move.b #1,(byte_FFFFBF22).w jsr sub_79266 jsr sub_786EC jsr sub_7877E jsr sub_787DA jsr sub_78484 move (sp)+,sr rts ; End of function sub_7886A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7889E: ; CODE XREF: sub_78394+1Ap ; OS4:000878AEp var_6 = -6 var_4 = -4 link a6,#-6 move sr,-(sp) ori #$700,sr movem.l d0-d1,-(sp) move.l 2(a0),var_4(a6) move.w (a0),var_6(a6) jsr sub_78A52 move.b #3,(byte_FFFFBF22).w move.w var_6(a6),(word_FFFFFD20).w move.w var_4(a6),(word_FFFFFD22).w move.w var_4+2(a6),(word_FFFFFD24).w move.b (byte_8A5A0).l,(byte_FFFFFD40).w move.b (byte_8A5A0).l,(byte_FFFFFD41).w move.b (byte_8A5A1).l,(byte_FFFFFD42).w move.w (word_8A59C).l,(word_FFFFFC1A).w move.w (word_8A59E).l,(word_FFFFFC1C).w moveq #1,d1 moveq #$4B,d0 ; 'K' jsr (sub_FC0).l bclr #7,(byte_FFFFFC1F).w bset #7,(word_FFFFFC1A).w loc_78912: ; CODE XREF: sub_7889E+7Aj btst #7,(byte_FFFFFC1F).w beq.s loc_78912 clr.b d1 moveq #$4B,d0 ; 'K' jsr (sub_FC0).l move.w (word_FFFFFD00).w,(word_FFFFBF24).w move.w (word_FFFFFD02).w,(dword_FFFFBF26).w move.w (word_FFFFFD04).w,(dword_FFFFBF26+2).w jsr sub_78484 movem.l (sp)+,d0-d1 move (sp)+,sr unlk a6 rts ; End of function sub_7889E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_78946: ; CODE XREF: sub_78242+Ep ; sub_78242+1Ap ... var_3 = -3 var_2 = -2 link a6,#-4 move sr,-(sp) ori #$700,sr movem.l d0-d1,-(sp) move.b (a0),var_3(a6) jsr sub_78A52 move.b #3,(byte_FFFFBF22).w move.w -4(a6),(word_FFFFFD20).w move.b (byte_8A5A1).l,(byte_FFFFFD40).w bclr #6,(byte_FFFFFD40).w move.w (word_8A59C).l,(word_FFFFFC1A).w move.w (word_8A59E).l,(word_FFFFFC1C).w andi.b #$F0,(word_FFFFFC1C).w moveq #1,d1 moveq #$4B,d0 ; 'K' jsr (sub_FC0).l bclr #7,(byte_FFFFFC1F).w bset #7,(word_FFFFFC1A).w loc_789A4: ; CODE XREF: sub_78946+64j btst #7,(byte_FFFFFC1F).w beq.s loc_789A4 clr.b d1 moveq #$4B,d0 ; 'K' jsr (sub_FC0).l move.w (word_FFFFFD00).w,var_2(a6) move.b var_2+1(a6),(word_FFFFBF24).w jsr sub_78484 movem.l (sp)+,d0-d1 move (sp)+,sr unlk a6 rts ; End of function sub_78946 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_789D2: ; CODE XREF: sub_782E4+A4p var_2 = -2 link a6,#-2 move sr,-(sp) ori #$700,sr movem.l d0-d1,-(sp) move.w (a0),var_2(a6) jsr sub_78A52 move.b #3,(byte_FFFFBF22).w move.w var_2(a6),(word_FFFFFD20).w move.b (byte_8A5A1).l,(byte_FFFFFD40).w move.w (word_8A59C).l,(word_FFFFFC1A).w move.w (word_8A59E).l,(word_FFFFFC1C).w andi.b #$F0,(word_FFFFFC1C).w moveq #1,d1 moveq #$4B,d0 ; 'K' jsr (sub_FC0).l bclr #7,(byte_FFFFFC1F).w bset #7,(word_FFFFFC1A).w loc_78A2A: ; CODE XREF: sub_789D2+5Ej btst #7,(byte_FFFFFC1F).w beq.s loc_78A2A clr.b d1 moveq #$4B,d0 ; 'K' jsr (sub_FC0).l move.w (word_FFFFFD00).w,(word_FFFFBF24).w jsr sub_78484 movem.l (sp)+,d0-d1 move (sp)+,sr unlk a6 rts ; End of function sub_789D2 ; =============== S U B R O U T I N E ======================================= sub_78A52: ; CODE XREF: sub_78484p sub_784B2+4p ... move sr,-(sp) ori #$700,sr btst #7,(word_FFFFFC1A).w beq.s loc_78AA8 bclr #5,(byte_FFFFFC1F).w bset #0,(byte_FFFFFC1E).w loc_78A6C: ; CODE XREF: sub_78A52+20j btst #5,(byte_FFFFFC1F).w beq.s loc_78A6C move.b (byte_FFFFFC1F).w,d3 andi.b #$F,d3 cmpi.b #$D,d3 bne.s loc_78A9C bclr #6,(word_FFFFFC1C).w bclr #7,(byte_FFFFFC1F).w bclr #0,(byte_FFFFFC1E).w loc_78A94: ; CODE XREF: sub_78A52+48j btst #7,(byte_FFFFFC1F).w beq.s loc_78A94 loc_78A9C: ; CODE XREF: sub_78A52+2Ej bclr #7,(word_FFFFFC1A).w bclr #0,(byte_FFFFFC1E).w loc_78AA8: ; CODE XREF: sub_78A52+Cj move (sp)+,sr rts ; End of function sub_78A52 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_78AAC: ; CODE XREF: sub_6D0DE+10p ; sub_6D110+12p ... var_6 = -6 var_4 = -4 link a6,#-6 move sr,-(sp) ori #$700,sr movem.l d0-d1,-(sp) move.l 2(a0),var_4(a6) move.w (a0),var_6(a6) jsr sub_78A52 move.b #4,(byte_FFFFBF22).w move.w var_6(a6),(word_FFFFFD20).w move.w var_4(a6),(word_FFFFFD22).w move.w var_4+2(a6),(word_FFFFFD24).w move.b (byte_8A5B8).l,(byte_FFFFFD40).w move.b (byte_8A5B8).l,(byte_FFFFFD41).w move.b (byte_8A5B9).l,(byte_FFFFFD42).w move.w (word_8A5B4).l,(word_FFFFFC1A).w move.w (word_8A5B6).l,(word_FFFFFC1C).w moveq #1,d1 moveq #$48,d0 ; 'H' jsr (sub_FC0).l bclr #7,(byte_FFFFFC1F).w bset #7,(word_FFFFFC1A).w loc_78B20: ; CODE XREF: sub_78AAC+7Aj btst #7,(byte_FFFFFC1F).w beq.s loc_78B20 clr.b d1 moveq #$48,d0 ; 'H' jsr (sub_FC0).l jsr sub_783CE jsr sub_78484 movem.l (sp)+,d0-d1 move (sp)+,sr unlk a6 rts ; End of function sub_78AAC ; =============== S U B R O U T I N E ======================================= sub_78B48: ; CODE XREF: sub_29320+EEp movem.l d0-d2,-(sp) move.b (byte_16B1).w,(byte_FFFFD000).w move.b (byte_1644).w,(byte_FFFFD001).w move.b (byte_16B2).w,(byte_FFFFD002).w move.b (byte_1645).w,(byte_FFFFD003).w move.b (byte_16B3).w,(byte_FFFFD004).w move.b (byte_1646).w,(byte_FFFFD005).w move.b (byte_16CC).l,(byte_FFFFD006).w clr.w d2 move.l #$1F9,d1 moveq #$20,d0 ; ' ' jsr (sub_16FA).l clr.w d2 move.l #$1F9,d1 moveq #$22,d0 ; '"' jsr (sub_16FA).l clr.w d2 move.l #$1F9,d1 moveq #$24,d0 ; '$' jsr (sub_16FA).l clr.w d2 move.l #$1F9,d1 moveq #$26,d0 ; '&' jsr (sub_16FA).l movem.l (sp)+,d0-d2 rts ; End of function sub_78B48 ; =============== S U B R O U T I N E ======================================= sub_78BBE: ; CODE XREF: DoLoopF+24p clr.b (byte_FFFF819D).w cmpi.w #$B99C,(ETAS_KE_ETAS_PRESENCE_PATTERN).l ; Special calibration location written to by ETAS when ETAS instrumentation is hooked up. ; CARDINAL seq d3 neg.b d3 move.b d3,(byte_FFFF819D).w or.b (byte_FFFFB0C6).w,d3 andi.w #$FF,d3 move.w unk_1652(d3.w*2),(word_FFFFFA00).w move.w (word_164E).w,(word_FFFFFA04).w move.b (byte_1642).w,(byte_FFFFFA15).w move.b (byte_1643).w,(byte_FFFFFA1D).w move.w (word_1664).w,(word_FFFFFA44).w move.w (word_166C).w,(word_FFFFFA48).w move.w (word_1670).w,(word_FFFFFA4C).w move.w (word_1672).w,(word_FFFFFA4E).w move.w (word_1674).w,(word_FFFFFA50).w move.w (word_1676).w,(word_FFFFFA52).w move.w (word_1678).w,(word_FFFFFA54).w move.w (word_167A).w,(word_FFFFFA56).w move.w (word_167C).w,(word_FFFFFA58).w move.w (word_167E).w,(word_FFFFFA5A).w move.w (word_1680).w,(word_FFFFFA5C).w move.w (word_1682).w,(word_FFFFFA5E).w move.w (word_1684).w,(word_FFFFFA60).w move.w (word_1686).w,(word_FFFFFA62).w move.w (word_1688).w,(word_FFFFFA64).w move.w (word_168A).w,(word_FFFFFA66).w move.w (word_168C).w,(word_FFFFFA68).w move.w (word_168E).w,(word_FFFFFA6A).w move.w (word_1690).w,(word_FFFFFA6C).w move.w (word_1692).w,(word_FFFFFA6E).w move.w (word_169C).w,(word_FFFFFA74).w move.w (word_169E).w,(word_FFFFFA76).w move.w (word_16B4).l,(word_FFFFFB00).w move.w (word_16B8).l,(word_FFFFFB40).w move.w (word_16B8).l,(word_FFFFFB80).w move.w (word_16B8).l,(word_FFFFFA80).w move.w (word_16B8).l,(word_FFFFFAC0).w move.w (word_16A0).w,(word_FFFFFC00).w move.b (byte_16A2).w,(byte_FFFFFC04).w move.b (byte_16A3).w,(byte_FFFFFC05).w move.w (word_16A4).w,(word_FFFFFC08).w move.w (word_16A6).w,(word_FFFFFC0A).w jsr sub_79A9E jsr sub_4A710 move.b (byte_1644).w,(byte_FFFFD001).w move.b (byte_1645).w,(byte_FFFFD003).w move.b (byte_1646).w,(byte_FFFFD005).w rts ; End of function sub_78BBE ; =============== S U B R O U T I N E ======================================= sub_78CDE: ; CODE XREF: sub_29320+Ap movem.l d0-d2/a0-a1,-(sp) movea.l (off_1E8C).l,a1 jsr sub_26664 move.l a0,d2 sub.l a1,d2 subq.l #8,d2 clr.b d1 move.l (off_1EA0).l,d0 movea.l (off_1E98).l,a0 jsr (sub_1EC8).l clr.b d1 move.l (off_1EAC).l,d0 movea.l (off_1EA4).l,a0 jsr (sub_1EC8).l clr.b d1 move.l d2,d0 movea.l a1,a0 jsr (sub_1EC8).l movem.l (sp)+,d0-d2/a0-a1 rts ; End of function sub_78CDE ; =============== S U B R O U T I N E ======================================= sub_78D2E: ; CODE XREF: DoManyThings1+214p move.l d0,-(sp) move.w #$194,d0 jsr sub_78D3E move.l (sp)+,d0 rts ; End of function sub_78D2E ; =============== S U B R O U T I N E ======================================= sub_78D3E: ; CODE XREF: sub_78D2E+6p move.w (word_164A).w,(word_FFFFBF54).w add.w d0,d0 andi.l #$FFFF,d0 divu.w #$B,d0 move.b d0,(word_FFFFBF54+1).w move.w (word_1648).w,(word_FFFFFA22).w move.w (word_FFFFBF54).w,(word_FFFFFA24).w rts ; End of function sub_78D3E ; =============== S U B R O U T I N E ======================================= sub_78D62: ; CODE XREF: sub_21662+48p ; sub_78D6A+4p move.b (byte_165C).w,(byte_FFFFFA1F).w rts ; End of function sub_78D62 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_78D6A: ; CODE XREF: sub_80E+14p var_2 = -2 link a6,#-2 jsr sub_78D62 move.w (word_165E).w,(word_FFFFFA22).w move.w (word_FFFFFE0A).w,var_2(a6) bclr #6,var_2(a6) bclr #7,var_2(a6) move.w var_2(a6),(word_FFFFFE0A).w bclr #3,(byte_FFFFFE21).w move.w (word_FFFFFE0A).w,var_2(a6) bclr #3,var_2+1(a6) move.w var_2(a6),(word_FFFFFE0A).w bclr #0,(byte_FFFFFE21).w move.w (word_FFFFFE0A).w,var_2(a6) bclr #0,var_2+1(a6) move.w var_2(a6),(word_FFFFFE0A).w bclr #4,(byte_FFFFFE20).w move.w (word_FFFFFE0A).w,var_2(a6) bclr #4,var_2(a6) move.w var_2(a6),(word_FFFFFE0A).w unlk a6 rts ; End of function sub_78D6A ; =============== S U B R O U T I N E ======================================= sub_78DDE: ; CODE XREF: DoManyThings1:loc_29478p ; DoManyThings1+C2p ... move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w tst.b (byte_FFFF82BE).w beq.s locret_78DFC bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w locret_78DFC: ; CODE XREF: sub_78DDE+10j rts ; End of function sub_78DDE ; =============== S U B R O U T I N E ======================================= sub_78DFE: ; CODE XREF: DoManyThings1+Ep ; DoManyThings1+A6p ... move.w (word_FFFFE1E4).w,d0 rts ; End of function sub_78DFE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_78E04: ; CODE XREF: sub_21580+40p ; sub_21580:loc_215C8p ... var_10 = -$10 var_C = -$C var_8 = -8 var_4 = -4 link a6,#-$10 clr.l var_10(a6) move.l var_10(a6),var_C(a6) move.l var_C(a6),var_8(a6) move.l (dword_FFFFFE14).w,var_4(a6) andi.b #$3F,var_8+3(a6) ; '?' ori.b #$40,var_8+3(a6) ; '@' move.l var_4(a6),(dword_FFFFFE14).w movea.l var_8(a6),a2 move.l a2,var_10(a6) move.l a2,var_C(a6) loc_78E3C: ; CODE XREF: sub_78E04+3Cj tst.l (dword_FFFFFE18).w bne.s loc_78E3C move.l var_C(a6),(dword_FFFFFE18).w loc_78E48: ; CODE XREF: sub_78E04+48j tst.l (dword_FFFFFE18).w bne.s loc_78E48 move.w (word_FFFFFF34).w,d0 unlk a6 rts ; End of function sub_78E04 ; =============== S U B R O U T I N E ======================================= sub_78E56: ; CODE XREF: DoManyThings1+166p movem.l d0-d2/a0,-(sp) tst.b (byte_FFFFB47A).w beq.w loc_79106 moveq #$3F,d3 ; '?' subq.w #1,d3 bcc.s loc_78E6A clr.w d3 loc_78E6A: ; CODE XREF: sub_78E56+10j move.w #$7FF,d0 and.w d0,d3 andi.w #$F800,(word_FFFFA774).w or.w d3,(word_FFFFA774).w move.w #$3F2,d3 subq.w #1,d3 bcc.s loc_78E84 clr.w d3 loc_78E84: ; CODE XREF: sub_78E56+2Aj and.w d0,d3 andi.w #$F800,(word_FFFFA776).w or.w d3,(word_FFFFA776).w move.w #$FD,d3 ; '?' subq.w #1,d3 bcc.s loc_78E9A clr.w d3 loc_78E9A: ; CODE XREF: sub_78E56+40j and.w d0,d3 andi.w #$F800,(word_FFFFA778).w or.w d3,(word_FFFFA778).w move.w #$FD,d3 ; '?' subq.w #1,d3 bcc.s loc_78EB0 clr.w d3 loc_78EB0: ; CODE XREF: sub_78E56+56j and.w d0,d3 andi.w #$F800,(word_FFFFA77A).w or.w d3,(word_FFFFA77A).w move.w (word_FFFFA774).w,d3 and.w d0,d3 addq.w #1,d3 move.w #$A00,d1 mulu.w d1,d3 move.w #$1400,d2 divu.w d2,d3 cmpi.w #$7FF,d3 bls.s loc_78ED8 move.l d0,d3 loc_78ED8: ; CODE XREF: sub_78E56+7Ej and.w d0,d3 andi.w #$F800,(word_FFFFA76C).w or.w d3,(word_FFFFA76C).w move.w (word_FFFFA776).w,d3 and.w d0,d3 addq.w #1,d3 andi.l #$FFFF,d3 asl.l #8,d3 add.l d3,d3 divu.w d2,d3 cmpi.w #$7FF,d3 bls.s loc_78F00 move.l d0,d3 loc_78F00: ; CODE XREF: sub_78E56+A6j and.w d0,d3 andi.w #$F800,(word_FFFFA76E).w or.w d3,(word_FFFFA76E).w move.w (word_FFFFA778).w,d3 and.w d0,d3 addq.w #1,d3 mulu.w d1,d3 divu.w d2,d3 cmpi.w #$7FF,d3 bls.s loc_78F20 move.l d0,d3 loc_78F20: ; CODE XREF: sub_78E56+C6j and.w d0,d3 andi.w #$F800,(word_FFFFA770).w or.w d3,(word_FFFFA770).w move.w (word_FFFFA77A).w,d3 and.w d0,d3 addq.w #1,d3 andi.l #$FFFF,d3 asl.l #8,d3 asl.l #2,d3 divu.w d2,d3 cmpi.w #$7FF,d3 bls.s loc_78F48 move.l d0,d3 loc_78F48: ; CODE XREF: sub_78E56+EEj and.w d0,d3 andi.w #$F800,(word_FFFFA772).w or.w d3,(word_FFFFA772).w moveq #1,d3 subq.w #1,d3 bcc.s loc_78F5C clr.w d3 loc_78F5C: ; CODE XREF: sub_78E56+102j and.w d0,d3 andi.w #$F800,(word_FFFFA786).w or.w d3,(word_FFFFA786).w move.w #$3F2,d3 subq.w #1,d3 bcc.s loc_78F72 clr.w d3 loc_78F72: ; CODE XREF: sub_78E56+118j and.w d0,d3 andi.w #$F800,(word_FFFFA788).w or.w d3,(word_FFFFA788).w move.w #$3F2,d3 subq.w #1,d3 bcc.s loc_78F88 clr.w d3 loc_78F88: ; CODE XREF: sub_78E56+12Ej and.w d0,d3 andi.w #$F800,(word_FFFFA78A).w or.w d3,(word_FFFFA78A).w move.w #$1F9,d3 subq.w #1,d3 bcc.s loc_78F9E clr.w d3 loc_78F9E: ; CODE XREF: sub_78E56+144j and.w d0,d3 andi.w #$F800,(word_FFFFA78C).w or.w d3,(word_FFFFA78C).w move.w (word_FFFFA786).w,d3 and.w d0,d3 addq.w #1,d3 mulu.w d2,d3 divu.w d2,d3 cmpi.w #$7FF,d3 bls.s loc_78FBE move.l d0,d3 loc_78FBE: ; CODE XREF: sub_78E56+164j and.w d0,d3 andi.w #$F800,(word_FFFFA77E).w or.w d3,(word_FFFFA77E).w move.w (word_FFFFA788).w,d3 and.w d0,d3 addq.w #1,d3 mulu.w #$600,d3 divu.w d2,d3 cmpi.w #$7FF,d3 bls.s loc_78FE0 move.l d0,d3 loc_78FE0: ; CODE XREF: sub_78E56+186j and.w d0,d3 andi.w #$F800,(word_FFFFA780).w or.w d3,(word_FFFFA780).w move.w (word_FFFFA78A).w,d3 and.w d0,d3 addq.w #1,d3 mulu.w d1,d3 divu.w d2,d3 cmpi.w #$7FF,d3 bls.s loc_79000 move.l d0,d3 loc_79000: ; CODE XREF: sub_78E56+1A6j and.w d0,d3 andi.w #$F800,(word_FFFFA782).w or.w d3,(word_FFFFA782).w move.w (word_FFFFA78C).w,d3 and.w d0,d3 addq.w #1,d3 mulu.w d1,d3 divu.w d2,d3 cmpi.w #$7FF,d3 bls.s loc_79020 move.l d0,d3 loc_79020: ; CODE XREF: sub_78E56+1C6j and.w d0,d3 andi.w #$F800,(word_FFFFA784).w or.w d3,(word_FFFFA784).w moveq #1,d3 subq.w #1,d3 bcc.s loc_79034 clr.w d3 loc_79034: ; CODE XREF: sub_78E56+1DAj and.w d0,d3 andi.w #$F800,(word_FFFFA798).w or.w d3,(word_FFFFA798).w moveq #1,d3 subq.w #1,d3 bcc.s loc_79048 clr.w d3 loc_79048: ; CODE XREF: sub_78E56+1EEj and.w d0,d3 andi.w #$F800,(word_FFFFA79A).w or.w d3,(word_FFFFA79A).w moveq #1,d3 subq.w #1,d3 bcc.s loc_7905C clr.w d3 loc_7905C: ; CODE XREF: sub_78E56+202j and.w d0,d3 andi.w #$F800,(word_FFFFA79C).w or.w d3,(word_FFFFA79C).w moveq #1,d3 subq.w #1,d3 bcc.s loc_79070 clr.w d3 loc_79070: ; CODE XREF: sub_78E56+216j and.w d0,d3 andi.w #$F800,(word_FFFFA79E).w or.w d3,(word_FFFFA79E).w move.w (word_FFFFA798).w,d3 and.w d0,d3 addq.w #1,d3 mulu.w d2,d3 divu.w d2,d3 cmpi.w #$7FF,d3 bls.s loc_79090 move.l d0,d3 loc_79090: ; CODE XREF: sub_78E56+236j and.w d0,d3 andi.w #$F800,(word_FFFFA790).w or.w d3,(word_FFFFA790).w move.w (word_FFFFA79A).w,d3 and.w d0,d3 addq.w #1,d3 mulu.w #0,d3 divu.w d2,d3 cmpi.w #$7FF,d3 bls.s loc_790B2 move.l d0,d3 loc_790B2: ; CODE XREF: sub_78E56+258j and.w d0,d3 andi.w #$F800,(word_FFFFA792).w or.w d3,(word_FFFFA792).w move.w (word_FFFFA79C).w,d3 and.w d0,d3 addq.w #1,d3 mulu.w #0,d3 divu.w d2,d3 cmpi.w #$7FF,d3 bls.s loc_790D4 move.l d0,d3 loc_790D4: ; CODE XREF: sub_78E56+27Aj and.w d0,d3 andi.w #$F800,(word_FFFFA794).w or.w d3,(word_FFFFA794).w move.w (word_FFFFA79E).w,d3 and.w d0,d3 addq.w #1,d3 mulu.w #0,d3 divu.w d2,d3 cmpi.w #$7FF,d3 bls.s loc_790F6 move.l d0,d3 loc_790F6: ; CODE XREF: sub_78E56+29Cj and.w d0,d3 andi.w #$F800,(word_FFFFA796).w or.w d3,(word_FFFFA796).w bra.w loc_79202 ; --------------------------------------------------------------------------- loc_79106: ; CODE XREF: sub_78E56+8j moveq #$3F,d3 ; '?' subq.w #1,d3 bcc.s loc_7910E clr.w d3 loc_7910E: ; CODE XREF: sub_78E56+2B4j move.w #$7FF,d0 and.w d0,d3 andi.w #$F800,(word_FFFFA774).w or.w d3,(word_FFFFA774).w move.w #$7E4,d3 subq.w #1,d3 bcc.s loc_79128 clr.w d3 loc_79128: ; CODE XREF: sub_78E56+2CEj and.w d0,d3 andi.w #$F800,(word_FFFFA776).w or.w d3,(word_FFFFA776).w moveq #1,d3 subq.w #1,d3 bcc.s loc_7913C clr.w d3 loc_7913C: ; CODE XREF: sub_78E56+2E2j and.w d0,d3 andi.w #$F800,(word_FFFFA778).w or.w d3,(word_FFFFA778).w moveq #1,d3 subq.w #1,d3 bcc.s loc_79150 clr.w d3 loc_79150: ; CODE XREF: sub_78E56+2F6j and.w d0,d3 andi.w #$F800,(word_FFFFA77A).w or.w d3,(word_FFFFA77A).w moveq #1,d3 subq.w #1,d3 bcc.s loc_79164 clr.w d3 loc_79164: ; CODE XREF: sub_78E56+30Aj and.w d0,d3 andi.w #$F800,(word_FFFFA786).w or.w d3,(word_FFFFA786).w move.w #$3F2,d3 subq.w #1,d3 bcc.s loc_7917A clr.w d3 loc_7917A: ; CODE XREF: sub_78E56+320j and.w d0,d3 andi.w #$F800,(word_FFFFA788).w or.w d3,(word_FFFFA788).w move.w #$3F2,d3 subq.w #1,d3 bcc.s loc_79190 clr.w d3 loc_79190: ; CODE XREF: sub_78E56+336j and.w d0,d3 andi.w #$F800,(word_FFFFA78A).w or.w d3,(word_FFFFA78A).w move.w #$287,d3 subq.w #1,d3 bcc.s loc_791A6 clr.w d3 loc_791A6: ; CODE XREF: sub_78E56+34Cj and.w d0,d3 andi.w #$F800,(word_FFFFA78C).w or.w d3,(word_FFFFA78C).w moveq #1,d3 subq.w #1,d3 bcc.s loc_791BA clr.w d3 loc_791BA: ; CODE XREF: sub_78E56+360j and.w d0,d3 andi.w #$F800,(word_FFFFA798).w or.w d3,(word_FFFFA798).w moveq #1,d3 subq.w #1,d3 bcc.s loc_791CE clr.w d3 loc_791CE: ; CODE XREF: sub_78E56+374j and.w d0,d3 andi.w #$F800,(word_FFFFA79A).w or.w d3,(word_FFFFA79A).w moveq #1,d3 subq.w #1,d3 bcc.s loc_791E2 clr.w d3 loc_791E2: ; CODE XREF: sub_78E56+388j and.w d0,d3 andi.w #$F800,(word_FFFFA79C).w or.w d3,(word_FFFFA79C).w moveq #1,d3 subq.w #1,d3 bcc.s loc_791F6 clr.w d3 loc_791F6: ; CODE XREF: sub_78E56+39Cj and.w d0,d3 andi.w #$F800,(word_FFFFA79E).w or.w d3,(word_FFFFA79E).w loc_79202: ; CODE XREF: sub_78E56+2ACj andi.b #$1F,(word_FFFFA76A).w bclr #4,(word_FFFFA76A).w bset #3,(word_FFFFA76A).w moveq #$20,d1 ; ' ' andi.b #$1F,(word_FFFFA77C).w or.b d1,(word_FFFFA77C).w bclr #4,(word_FFFFA77C).w bset #3,(word_FFFFA77C).w andi.b #$1F,(word_FFFFA78E).w or.b d1,(word_FFFFA78E).w bclr #4,(word_FFFFA78E).w bset #3,(word_FFFFA78E).w movea.l #unk_FFA76A,a0 jsr sub_784B2 movem.l (sp)+,d0-d2/a0 rts ; End of function sub_78E56 ; =============== S U B R O U T I N E ======================================= sub_79254: ; CODE XREF: sub_78484+Ap move.l a0,-(sp) movea.l #unk_FFA76A,a0 jsr sub_785F4 movea.l (sp)+,a0 rts ; End of function sub_79254 ; =============== S U B R O U T I N E ======================================= sub_79266: ; CODE XREF: sub_7886A+12p move.l a0,-(sp) bset #4,(word_FFFFA76A).w bset #4,(word_FFFFA77C).w bset #4,(word_FFFFA78E).w movea.l #unk_FFA76A,a0 jsr sub_784B2 bclr #4,(word_FFFFA76A).w bclr #4,(word_FFFFA77C).w bclr #4,(word_FFFFA78E).w move.w (word_FFFFFD00).w,(word_FFFFA764).w move.w (word_FFFFFD0A).w,(word_FFFFA766).w move.w (word_FFFFFD14).w,(word_FFFFA768).w movea.l (sp)+,a0 rts ; End of function sub_79266 ; =============== S U B R O U T I N E ======================================= sub_792AE: ; CODE XREF: sub_8260C+56p andi.w #$FF,d0 cmpi.w #$76,d0 ; 'v' bcs.w locret_794DE cmpi.w #$9D,d0 ; '?' bhi.w locret_794DE movea.l off_891A2(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_792CC: ; DATA XREF: OS4:0008937Ao ; OS4:0008937Eo move.w #$7FF,d3 and.w d3,d2 andi.w #$F800,(word_FFFFA76C).w or.w d2,(word_FFFFA76C).w and.w d3,d1 andi.w #$F800,(word_FFFFA774).w or.w d1,(word_FFFFA774).w movea.w (word_FFFFA76C).w,a2 tst.b (byte_FFFFBF22).w bne.w locret_794DE move.w a2,(word_FFFFFD22).w bra.w locret_794DE ; --------------------------------------------------------------------------- loc_792FC: ; DATA XREF: OS4:00089382o ; OS4:00089386o move.w #$7FF,d3 and.w d3,d2 andi.w #$F800,(word_FFFFA76E).w or.w d2,(word_FFFFA76E).w and.w d3,d1 andi.w #$F800,(word_FFFFA776).w or.w d1,(word_FFFFA776).w movea.w (word_FFFFA76E).w,a2 tst.b (byte_FFFFBF22).w bne.w locret_794DE move.w a2,(word_FFFFFD24).w bra.w locret_794DE ; --------------------------------------------------------------------------- loc_7932C: ; DATA XREF: OS4:0008938Ao ; OS4:0008938Eo move.w #$7FF,d3 and.w d3,d2 andi.w #$F800,(word_FFFFA770).w or.w d2,(word_FFFFA770).w and.w d3,d1 andi.w #$F800,(word_FFFFA778).w or.w d1,(word_FFFFA778).w movea.w (word_FFFFA770).w,a2 tst.b (byte_FFFFBF22).w bne.w locret_794DE move.w a2,(word_FFFFFD26).w bra.w locret_794DE ; --------------------------------------------------------------------------- loc_7935C: ; DATA XREF: OS4:00089392o ; OS4:off_89396o move.w #$7FF,d3 and.w d3,d2 andi.w #$F800,(word_FFFFA772).w or.w d2,(word_FFFFA772).w and.w d3,d1 andi.w #$F800,(word_FFFFA77A).w or.w d1,(word_FFFFA77A).w movea.w (word_FFFFA772).w,a2 tst.b (byte_FFFFBF22).w bne.w locret_794DE move.w a2,(word_FFFFFD28).w bra.w locret_794DE ; --------------------------------------------------------------------------- loc_7938C: ; DATA XREF: OS4:000893BAo ; OS4:000893BEo move.w #$7FF,d3 and.w d3,d2 andi.w #$F800,(word_FFFFA77E).w or.w d2,(word_FFFFA77E).w and.w d3,d1 andi.w #$F800,(word_FFFFA786).w or.w d1,(word_FFFFA786).w bra.w locret_794DE ; --------------------------------------------------------------------------- loc_793AC: ; DATA XREF: OS4:000893C2o ; OS4:000893C6o move.w #$7FF,d3 and.w d3,d2 andi.w #$F800,(word_FFFFA780).w or.w d2,(word_FFFFA780).w and.w d3,d1 andi.w #$F800,(word_FFFFA788).w or.w d1,(word_FFFFA788).w movea.w (word_FFFFA780).w,a2 tst.b (byte_FFFFBF22).w bne.w locret_794DE move.w a2,(word_FFFFFD2C).w bra.w locret_794DE ; --------------------------------------------------------------------------- loc_793DC: ; DATA XREF: OS4:000893CAo ; OS4:000893CEo move.w #$7FF,d3 and.w d3,d2 andi.w #$F800,(word_FFFFA782).w or.w d2,(word_FFFFA782).w and.w d3,d1 andi.w #$F800,(word_FFFFA78A).w or.w d1,(word_FFFFA78A).w movea.w (word_FFFFA782).w,a2 tst.b (byte_FFFFBF22).w bne.w locret_794DE move.w a2,(word_FFFFFD2E).w bra.w locret_794DE ; --------------------------------------------------------------------------- loc_7940C: ; DATA XREF: OS4:000893D2o ; OS4:000893D6o move.w #$7FF,d3 and.w d3,d2 andi.w #$F800,(4294944644).w or.w d2,(word_FFFFA784).w and.w d3,d1 andi.w #$F800,(word_FFFFA78C).w or.w d1,(word_FFFFA78C).w movea.w (word_FFFFA784).w,a2 tst.b (byte_FFFFBF22).w bne.w locret_794DE move.w a2,(word_FFFFFD30).w bra.w locret_794DE ; --------------------------------------------------------------------------- loc_7943C: ; DATA XREF: OS4:000893FAo ; OS4:000893FEo move.w #$7FF,d3 and.w d3,d2 andi.w #$F800,(word_FFFFA790).w or.w d2,(word_FFFFA790).w and.w d3,d1 andi.w #$F800,(word_FFFFA798).w or.w d1,(word_FFFFA798).w bra.w locret_794DE ; --------------------------------------------------------------------------- loc_7945C: ; DATA XREF: OS4:00089402o ; OS4:00089406o move.w #$7FF,d3 and.w d3,d2 andi.w #$F800,(word_FFFFA792).w or.w d2,(word_FFFFA792).w and.w d3,d1 andi.w #$F800,(word_FFFFA79A).w or.w d1,(word_FFFFA79A).w movea.w (word_FFFFA792).w,a2 tst.b (byte_FFFFBF22).w bne.s locret_794DE move.w a2,(word_FFFFFD34).w bra.s locret_794DE ; --------------------------------------------------------------------------- loc_79488: ; DATA XREF: OS4:0008940Ao ; OS4:0008940Eo move.w #$7FF,d3 and.w d3,d2 andi.w #$F800,(word_FFFFA794).w or.w d2,(word_FFFFA794).w and.w d3,d1 andi.w #$F800,(word_FFFFA79C).w or.w d1,(word_FFFFA79C).w movea.w (word_FFFFA794).w,a2 tst.b (byte_FFFFBF22).w bne.s locret_794DE move.w a2,(word_FFFFFD36).w bra.s locret_794DE ; --------------------------------------------------------------------------- loc_794B4: ; DATA XREF: OS4:00089412o ; OS4:00089416o move.w #$7FF,d3 and.w d3,d2 andi.w #$F800,(word_FFFFA796).w or.w d2,(word_FFFFA796).w and.w d3,d1 andi.w #$F800,(word_FFFFA79E).w or.w d1,(word_FFFFA79E).w movea.w (word_FFFFA796).w,a2 tst.b (byte_FFFFBF22).w bne.s locret_794DE move.w a2,(word_FFFFFD38).w locret_794DE: ; CODE XREF: sub_792AE+8j ; sub_792AE+10j ... rts ; End of function sub_792AE ; --------------------------------------------------------------------------- andi.w #$FF,d0 cmpi.w #$70,d0 ; 'p' bcs.w locret_79642 cmpi.w #$95,d0 ; '?' bhi.w locret_79642 movea.l off_89396(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- tst.b d1 beq.s loc_7950A bset #0,(word_FFFFA76A).w bra.s loc_79510 ; --------------------------------------------------------------------------- loc_7950A: ; CODE XREF: OS3:00079500j bclr #0,(word_FFFFA76A).w loc_79510: ; CODE XREF: OS3:00079508j movea.w (word_FFFFA76A).w,a2 tst.b (byte_FFFFBF22).w bne.w locret_79642 move.w a2,(word_FFFFFD20).w bra.w locret_79642 ; --------------------------------------------------------------------------- tst.b d1 beq.s loc_79530 bset #1,(word_FFFFA76A).w bra.s loc_79536 ; --------------------------------------------------------------------------- loc_79530: ; CODE XREF: OS3:00079526j bclr #1,(word_FFFFA76A).w loc_79536: ; CODE XREF: OS3:0007952Ej movea.w (word_FFFFA76A).w,a2 tst.b (byte_FFFFBF22).w bne.w locret_79642 move.w a2,(word_FFFFFD20).w bra.w locret_79642 ; --------------------------------------------------------------------------- tst.b d1 beq.s loc_79556 bset #2,(4294944618).w bra.s loc_7955C ; --------------------------------------------------------------------------- loc_79556: ; CODE XREF: OS3:0007954Cj bclr #2,(word_FFFFA76A).w loc_7955C: ; CODE XREF: OS3:00079554j movea.w (word_FFFFA76A).w,a2 tst.b (byte_FFFFBF22).w bne.w locret_79642 move.w a2,(word_FFFFFD20).w bra.w locret_79642 ; --------------------------------------------------------------------------- tst.b d1 beq.s loc_7957C bset #0,(word_FFFFA77C).w bra.s loc_79582 ; --------------------------------------------------------------------------- loc_7957C: ; CODE XREF: OS3:00079572j bclr #0,(word_FFFFA77C).w loc_79582: ; CODE XREF: OS3:0007957Aj movea.w (word_FFFFA77C).w,a2 tst.b (byte_FFFFBF22).w bne.w locret_79642 move.w a2,(word_FFFFFD2A).w bra.w locret_79642 ; --------------------------------------------------------------------------- tst.b d1 beq.s loc_795A2 bset #1,(word_FFFFA77C).w bra.s loc_795A8 ; --------------------------------------------------------------------------- loc_795A2: ; CODE XREF: OS3:00079598j bclr #1,(word_FFFFA77C).w loc_795A8: ; CODE XREF: OS3:000795A0j movea.w (word_FFFFA77C).w,a2 tst.b (byte_FFFFBF22).w bne.w locret_79642 move.w a2,(word_FFFFFD2A).w bra.w locret_79642 ; --------------------------------------------------------------------------- tst.b d1 beq.s loc_795C8 bset #2,(word_FFFFA77C).w bra.s loc_795CE ; --------------------------------------------------------------------------- loc_795C8: ; CODE XREF: OS3:000795BEj bclr #2,(word_FFFFA77C).w loc_795CE: ; CODE XREF: OS3:000795C6j movea.w (word_FFFFA77C).w,a2 tst.b (byte_FFFFBF22).w bne.s locret_79642 move.w a2,(word_FFFFFD2A).w bra.s locret_79642 ; --------------------------------------------------------------------------- tst.b d1 beq.s loc_795EA bset #0,(word_FFFFA78E).w bra.s loc_795F0 ; --------------------------------------------------------------------------- loc_795EA: ; CODE XREF: OS3:000795E0j bclr #0,(word_FFFFA78E).w loc_795F0: ; CODE XREF: OS3:000795E8j movea.w (word_FFFFA78E).w,a2 tst.b (byte_FFFFBF22).w bne.s locret_79642 move.w a2,(word_FFFFFD32).w bra.s locret_79642 ; --------------------------------------------------------------------------- tst.b d1 beq.s loc_7960C bset #1,(word_FFFFA78E).w bra.s loc_79612 ; --------------------------------------------------------------------------- loc_7960C: ; CODE XREF: OS3:00079602j bclr #1,(word_FFFFA78E).w loc_79612: ; CODE XREF: OS3:0007960Aj movea.w (word_FFFFA78E).w,a2 tst.b (byte_FFFFBF22).w bne.s locret_79642 move.w a2,(word_FFFFFD32).w bra.s locret_79642 ; --------------------------------------------------------------------------- tst.b d1 beq.s loc_7962E bset #2,(word_FFFFA78E).w bra.s loc_79634 ; --------------------------------------------------------------------------- loc_7962E: ; CODE XREF: OS3:00079624j bclr #2,(word_FFFFA78E).w loc_79634: ; CODE XREF: OS3:0007962Cj movea.w (word_FFFFA78E).w,a2 tst.b (byte_FFFFBF22).w bne.s locret_79642 move.w a2,(word_FFFFFD32).w locret_79642: ; CODE XREF: OS3:000794E8j ; OS3:000794F0j ... rts ; =============== S U B R O U T I N E ======================================= sub_79644: ; CODE XREF: DoLoopA+48p btst #5,(byte_FFFFAA92).w beq.s locret_79666 move.w (word_FFFFE1CC).w,d3 mulu.w (word_FFFFB36E).w,d3 lsr.l #8,d3 lsr.l #8,d3 add.w (word_FFFFE1E2).w,d3 move.w d3,(word_FFFFBFFA).w move.b #1,(byte_FFFFBFF8).w locret_79666: ; CODE XREF: sub_79644+6j rts ; End of function sub_79644 ; =============== S U B R O U T I N E ======================================= sub_79668: ; CODE XREF: sub_8208A+10p ; sub_822F0+18p move sr,-(sp) ori #$700,sr clr.w d4 move.b d0,d4 move.l d4,d0 addi.b #$11,d0 andi.w #$FF,d0 move.w unk_FFFFE042(d4.w*2),(a0) andi.w #$FF,d0 move.w unk_FFFFE200(d0.w*2),d3 move.w unk_FFFFE082(d4.w*2),2(a0) bra.s loc_796BA ; --------------------------------------------------------------------------- loc_79696: ; CODE XREF: sub_79668+56j movea.w (word_FFFFE1E4).w,a2 loc_7969A: ; CODE XREF: sub_79668+3Cj move.w (word_FFFFE1E4).w,d3 sub.w a2,d3 cmpi.w #1,d3 bls.s loc_7969A move.w unk_FFFFE042(d4.w*2),(a0) move.w unk_FFFFE200(d0.w*2),d3 move.w unk_FFFFE082(d4.w*2),2(a0) loc_796BA: ; CODE XREF: sub_79668+2Cj btst #0,d3 bne.s loc_79696 move.w unk_FFFFE062(d4.w*2),4(a0) move.w unk_FFFFE200(d0.w*2),d3 move.w unk_FFFFE0E2(d4.w*2),6(a0) bra.s loc_796FE ; --------------------------------------------------------------------------- loc_796D8: ; CODE XREF: sub_79668+9Aj movea.w (word_FFFFE1E4).w,a2 loc_796DC: ; CODE XREF: sub_79668+7Ej move.w (word_FFFFE1E4).w,d3 sub.w a2,d3 cmpi.w #1,d3 bls.s loc_796DC move.w unk_FFFFE062(d4.w*2),4(a0) move.w unk_FFFFE200(d0.w*2),d3 move.w unk_FFFFE0E2(d4.w*2),6(a0) loc_796FE: ; CODE XREF: sub_79668+6Ej btst #2,d3 bne.s loc_796D8 move (sp)+,sr rts ; End of function sub_79668 ; =============== S U B R O U T I N E ======================================= sub_79708: ; CODE XREF: OS3:loc_75DBCp ; sub_75DDC+8p move sr,-(sp) ori #$700,sr move.w (word_FFFFE1E6).w,d3 move.l (dword_FFFFE0FC).w,d0 andi.w #$FF,d3 cmpi.w #$27,unk_FFFFE200(d3.w*2) ; ''' bne.s loc_7972A addi.l #unk_10000,d0 loc_7972A: ; CODE XREF: sub_79708+1Aj move (sp)+,sr rts ; End of function sub_79708 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7972E: ; CODE XREF: sub_2FC92:loc_2FCBEp ; sub_2FC92+52p var_2 = -2 link a6,#-2 move sr,-(sp) ori #$700,sr move.w (word_FFFFE0D6).w,var_2(a6) bclr #6,var_2(a6) move.w var_2(a6),(word_FFFFE0D6).w move (sp)+,sr unlk a6 rts ; End of function sub_7972E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_79750: ; CODE XREF: sub_32A0C:loc_32C8Ap ; sub_32E6A+34p var_2 = -2 link a6,#-2 move sr,-(sp) ori #$700,sr move.w (word_FFFFE0D6).w,var_2(a6) ori.w #$C000,var_2(a6) move.w var_2(a6),(word_FFFFE0D6).w move (sp)+,sr unlk a6 rts ; End of function sub_79750 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_79772: ; CODE XREF: sub_32DC6+10p var_2 = -2 link a6,#-2 move sr,-(sp) ori #$700,sr move.w (word_FFFFE0D6).w,var_2(a6) move.w var_2(a6),d3 ori.w #$4000,d3 andi.w #$7FFF,d3 move.w d3,var_2(a6) move.w d3,(word_FFFFE0D6).w move (sp)+,sr unlk a6 rts ; End of function sub_79772 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7979C: ; CODE XREF: OS1:0002886Cp ; DoManyThings1+1C6p var_2 = -2 link a6,#-2 move sr,-(sp) ori #$700,sr move.w (word_FFFFE2FE).w,var_2(a6) tst.b (byte_FFFFB37A).w beq.s loc_797BA ori.b #3,var_2(a6) bra.s loc_797C6 ; --------------------------------------------------------------------------- loc_797BA: ; CODE XREF: sub_7979C+14j andi.b #$FC,var_2(a6) ori.b #1,var_2(a6) loc_797C6: ; CODE XREF: sub_7979C+1Cj move.w var_2(a6),(word_FFFFE2FE).w move (sp)+,sr unlk a6 rts ; End of function sub_7979C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_797D2: ; CODE XREF: OS1:00028866p ; DoManyThings1+1C0p var_2 = -2 link a6,#-2 move sr,-(sp) ori #$700,sr move.w (word_FFFFE09C).w,var_2(a6) bset #7,var_2(a6) move.w var_2(a6),(word_FFFFE09C).w move (sp)+,sr unlk a6 rts ; End of function sub_797D2 ; =============== S U B R O U T I N E ======================================= sub_797F4: ; CODE XREF: OS1:00028A3Ap ; OS1:00028A64p ... move sr,-(sp) ori #$700,sr movea.w #$C86,a2 move.w a2,(word_FFFFE218).w move.w a2,(word_FFFFE218).w move.w (word_FFFFE09C).w,d3 ori.w #$10,d3 ori.w #$40,d3 ; '@' ori.w #2,d3 andi.w #$FF7F,d3 andi.w #$FFDF,d3 move.w d3,(word_FFFFE09C).w move (sp)+,sr rts ; End of function sub_797F4 ; =============== S U B R O U T I N E ======================================= sub_79826: ; CODE XREF: DoLoopA+124p move sr,-(sp) ori #$700,sr move.w (word_FFFFE1E4).w,(word_FFFFE1D8).w clr.w (word_FFFFE1C2).w move.w #8,(word_FFFFE2F4).w move.w (word_FFFFE09C).w,d3 ori.w #$80,d3 ; '?' ori.w #$20,d3 ; ' ' move.w d3,(word_FFFFE09C).w movea.w #$C9A,a2 move.w a2,(word_FFFFE218).w move.w a2,(word_FFFFE218).w move (sp)+,sr rts ; End of function sub_79826 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7985C: ; CODE XREF: sub_3292C+Ep var_2 = -2 link a6,#0 move.w d0,-(sp) move sr,-(sp) ori #$700,sr move.w (word_FFFFE0D6).w,d3 andi.w #$E000,d3 cmpi.b #6,(ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l ; Number of cylinders for this engine application. ; SHORTCARD bne.s loc_79884 move.w var_2(a6),d4 andi.w #$3F,d4 ; '?' bra.s loc_7988C ; --------------------------------------------------------------------------- loc_79884: ; CODE XREF: sub_7985C+1Cj move.w var_2(a6),d4 andi.w #$FF,d4 loc_7988C: ; CODE XREF: sub_7985C+26j or.w d3,d4 move.w d4,d3 move.w d3,(word_FFFFE0D6).w move.w d3,(word_FFFFBFFC).w move (sp)+,sr unlk a6 rts ; End of function sub_7985C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7989E: ; CODE XREF: sub_32738:loc_327BEp var_2 = -2 link a6,#-2 move sr,-(sp) ori #$700,sr move.w d0,d4 move.w (word_FFFFE0D6).w,d0 move.l d0,d5 ori.w #$2000,d5 move.w d5,(word_FFFFE0D6).w movea.w (word_FFFFE1E4).w,a2 loc_798BC: ; CODE XREF: sub_7989E+28j move.w (word_FFFFE1E4).w,d3 sub.w a2,d3 cmpi.w #1,d3 bls.s loc_798BC move.l d4,d3 lsr.w #8,d3 move.w d3,(word_FFFFE01E).w clr.b var_2(a6) asl.w #8,d3 sub.b d3,d4 move.b d4,var_2+1(a6) move.w var_2(a6),(word_FFFFE03E).w move.l d1,d3 lsr.w #8,d3 move.w d3,(word_FFFFE01C).w clr.b var_2(a6) asl.w #8,d3 sub.b d3,d1 move.b d1,var_2+1(a6) move.w var_2(a6),(word_FFFFE03C).w andi.w #$DFFF,d0 move.w d0,(word_FFFFE0D6).w move (sp)+,sr unlk a6 rts ; End of function sub_7989E ; =============== S U B R O U T I N E ======================================= sub_7990A: ; CODE XREF: OS1:loc_28A1Ep ; OS1:loc_28A46p ... move sr,-(sp) ori #$700,sr tst.b (byte_FFFFB37A).w bne.s loc_7995C move.w (word_FFFFE09C).w,d3 andi.w #$FFDF,d3 move.w d3,(word_FFFFE09C).w movea.w #$CC5,a3 move.w a3,(word_FFFFE218).w move.w a3,(word_FFFFE218).w move.w #$DC5,d3 move.w d3,(word_FFFFE21A).w move.w d3,(word_FFFFE21A).w movea.w (word_FFFFE1E4).w,a2 loc_7993E: ; CODE XREF: sub_7990A+3Ej move.w (word_FFFFE1E4).w,d4 sub.w a2,d4 cmpi.w #1,d4 bls.s loc_7993E movea.w #$C9,a2 ; '?' move.w a2,(word_FFFFE21C).w move.w a2,(word_FFFFE21C).w move.w #$4000,(word_FFFFE2D0).w loc_7995C: ; CODE XREF: sub_7990A+Aj move (sp)+,sr rts ; End of function sub_7990A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_79960: ; CODE XREF: sub_3C1EE+B8p var_2 = -2 link a6,#-2 move sr,-(sp) ori #$700,sr move.w (word_FFFFE09C).w,var_2(a6) bclr #0,var_2(a6) move.w var_2(a6),(word_FFFFE09C).w movea.w #$EED,a2 move.w a2,(word_FFFFE236).w move.w a2,(word_FFFFE236).w move (sp)+,sr unlk a6 rts ; End of function sub_79960 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7998E: ; CODE XREF: sub_3C1EE+122p var_2 = -2 link a6,#-2 move sr,-(sp) ori #$700,sr movea.w #$93,a2 ; '?' move.w a2,(word_FFFFE236).w move.w a2,(word_FFFFE236).w move.w (word_FFFFE09C).w,var_2(a6) bset #0,var_2(a6) move.w var_2(a6),(word_FFFFE09C).w move (sp)+,sr unlk a6 rts ; End of function sub_7998E ; =============== S U B R O U T I N E ======================================= sub_799BC: ; CODE XREF: sub_79A3E+28p ; sub_79A3E+46p move.w d0,d3 clr.b 1(a1) cmpi.w #$1C0,d3 bcc.s loc_799D2 move.w #$200,d4 move.b #1,(a1) bra.s loc_79A28 ; --------------------------------------------------------------------------- loc_799D2: ; CODE XREF: sub_799BC+Aj cmpi.w #$3C0,d3 bcc.s loc_799E2 move.w #$400,d4 move.b #2,(a1) bra.s loc_79A28 ; --------------------------------------------------------------------------- loc_799E2: ; CODE XREF: sub_799BC+1Aj cmpi.w #$7C0,d3 bcc.s loc_799F2 move.w #$800,d4 move.b #4,(a1) bra.s loc_79A28 ; --------------------------------------------------------------------------- loc_799F2: ; CODE XREF: sub_799BC+2Aj cmpi.w #$FC0,d3 bcc.s loc_79A02 move.w #$1000,d4 move.b #8,(a1) bra.s loc_79A28 ; --------------------------------------------------------------------------- loc_79A02: ; CODE XREF: sub_799BC+3Aj cmpi.w #$1FC0,d3 bcc.s loc_79A12 move.w #$2000,d4 move.b #$10,(a1) bra.s loc_79A28 ; --------------------------------------------------------------------------- loc_79A12: ; CODE XREF: sub_799BC+4Aj cmpi.w #$3FC0,d3 bcc.s loc_79A22 move.w #$4000,d4 move.b #$20,(a1) ; ' ' bra.s loc_79A28 ; --------------------------------------------------------------------------- loc_79A22: ; CODE XREF: sub_799BC+5Aj jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_79A28: ; CODE XREF: sub_799BC+14j ; sub_799BC+24j ... andi.l #$FFFF,d3 asl.l #8,d3 asl.l #8,d3 divu.w d4,d3 bvc.s loc_79A3A move.w #$FFFF,d3 loc_79A3A: ; CODE XREF: sub_799BC+78j move.w d3,(a0) rts ; End of function sub_799BC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_79A3E: ; CODE XREF: DoLoopG+2A2p ; OS2:0004B298p var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d2/a0-a1/a4-a5,-(sp) jsr sub_84854 lea var_2(a6),a5 movea.l a5,a1 lea var_4(a6),a4 movea.l a4,a0 clr.l d2 move.w d0,d2 asl.l #8,d2 move.l d2,d0 divu.w (VEH_SPEED_KE_SECONDARY_OUTPUT_PPM).l,d0 ; Determines the PPM for the vehicle speed secondary output. ; Pulses/Mile jsr sub_799BC move.w var_4(a6),(word_FFFFFF6A).w move.w var_2(a6),(word_FFFFFF54).w movea.l a5,a1 movea.l a4,a0 move.l d2,d0 divu.w (VEH_SPEED_KE_PRIMARY_OUTPUT_PPM).l,d0 ; Determines the PPM for the vehicle speed primary output. ; Pulses/Mile jsr sub_799BC move.w var_4(a6),(word_FFFFFF7A).w move.w var_2(a6),(word_FFFFFF44).w movem.l (sp)+,d0-d2/a0-a1/a4-a5 unlk a6 rts ; End of function sub_79A3E ; =============== S U B R O U T I N E ======================================= sub_79A9E: ; CODE XREF: sub_78BBE+100p move.w (word_1DEA).l,(word_FFFFFE00).w move.w (word_1DEC).l,(word_FFFFFE08).w rts ; End of function sub_79A9E ; =============== S U B R O U T I N E ======================================= sub_79AB0: ; CODE XREF: DoLoopF+140p ; sub_7A89E+4Ap jsr sub_7A886 move.w (word_FFFFA116).w,d3 mulu.w #$742F,d3 lsr.l #2,d3 divu.w (word_FFFFA0F6).w,d3 bvc.s loc_79ACA move.w #$FFFF,d3 loc_79ACA: ; CODE XREF: sub_79AB0+14j move.w d3,(word_FFFFA118).w mulu.w (word_FFFF82D2).w,d3 divu.w #$6AAA,d3 move.w d3,(word_FFFFA106).w btst #4,(byte_FFFFAA08).w beq.s loc_79AF2 move.b #1,(byte_FFFFA124).w move.w (AIRFLOW_KE_EGR_DIAG_FINISHED_TIME).l,(word_FFFFA11A).w ; Dyna-Air learn is disabled during an intrusive EGR test and for this long after the intrusive EGR test has finished. ; Seconds bra.s locret_79B0E ; --------------------------------------------------------------------------- loc_79AF2: ; CODE XREF: sub_79AB0+30j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA11A).w,d3 sub.w $A(a2),d3 bcc.s loc_79B02 clr.w d3 loc_79B02: ; CODE XREF: sub_79AB0+4Ej move.w d3,(word_FFFFA11A).w tst.w d3 bne.s locret_79B0E clr.b (byte_FFFFA124).w locret_79B0E: ; CODE XREF: sub_79AB0+40j ; sub_79AB0+58j rts ; End of function sub_79AB0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_79B10: ; CODE XREF: DoLoopA+B6p var_E = -$E var_C = -$C var_B = -$B var_A = -$A var_8 = -8 var_6 = -6 var_4 = -4 var_2 = -2 link a6,#-$E movem.l d0-d2/d6-a1,-(sp) jsr sub_80A78 move.w (word_FFFFB292).w,(word_FFFFA0D0).w tst.b (byte_FFFFB370).w beq.s loc_79B32 move.w (word_FFFFA2FA).w,(word_FFFFA0D8).w bra.s loc_79B38 ; --------------------------------------------------------------------------- loc_79B32: ; CODE XREF: sub_79B10+18j move.w (word_FFFFAB62).w,(word_FFFFA0D8).w loc_79B38: ; CODE XREF: sub_79B10+20j move.w (word_FFFFE1CC).w,d6 move.w d6,var_E(a6) clr.l d7 move.b d7,var_C(a6) move.l d6,d5 mulu.w (word_FFFFAC86).w,d5 moveq #$11,d3 mulu.l d5,d3 bvs.s loc_79B5A divu.w #$4316,d3 bvc.s loc_79B5E loc_79B5A: ; CODE XREF: sub_79B10+42j move.w #$FFFF,d3 loc_79B5E: ; CODE XREF: sub_79B10+48j move.w d3,(word_FFFFA0CA).w move.w (word_FFFFA0D0).w,d1 move.w #$300,d3 cmp.w d1,d3 bls.s loc_79B70 move.l d3,d1 loc_79B70: ; CODE XREF: sub_79B10+5Cj sub.w d3,d1 move.w (EngineRPM_PID_000C___).w,d0 move.w #$A000,d6 cmp.w d0,d6 bcc.s loc_79B82 move.l d6,d0 bra.s loc_79B8C ; --------------------------------------------------------------------------- loc_79B82: ; CODE XREF: sub_79B10+6Cj move.w #$800,d4 cmp.w d0,d4 bls.s loc_79B8C move.l d4,d0 loc_79B8C: ; CODE XREF: sub_79B10+70j ; sub_79B10+78j movea.w #$800,a1 sub.w a1,d0 lea (AIRFLOW_K_MAIN_VOLUMETRIC_EFFICIENCY).l,a0 ; The volumetric efficiency term used for modeling the air per cylinder for Dyna-Air calculations. ; gm*K/kPa lsr.w #3,d0 moveq #$28,d2 ; '(' jsr (sub_16D6).l move.w d0,(word_FFFFA0D6).w move.w d0,d3 mulu.w (word_FFFFA0D0).w,d3 divu.w (word_FFFFA0F6).w,d3 bvc.s loc_79BB6 move.w #$FFFF,d3 loc_79BB6: ; CODE XREF: sub_79B10+A0j sub.w (word_FFFFA0DA).w,d3 bcc.s loc_79BBE move.l d7,d3 loc_79BBE: ; CODE XREF: sub_79B10+AAj move.w d3,(word_FFFFA0CC).w btst #1,(byte_FFFF88C8).w bne.s loc_79BDA btst #1,(byte_FFFF88CA).w bne.s loc_79BDA btst #1,(byte_FFFF88C6).w beq.s loc_79C04 loc_79BDA: ; CODE XREF: sub_79B10+B8j ; sub_79B10+C0j move.w d3,(word_FFFFA102).w move.w d3,(word_FFFFA0C6).w move.w d3,(word_FFFFA0E4).w move.w d3,(word_FFFFA0C8).w move.w d3,(word_FFFFA0C4).w move.w d3,(word_FFFFA0C2).w move.w d3,(word_FFFFA0D2).w moveq #1,d2 move.b d2,(byte_FFFFA123).w move.b d2,var_C(a6) bra.w loc_7A230 ; --------------------------------------------------------------------------- loc_79C04: ; CODE XREF: sub_79B10+C8j btst #1,(byte_FFFF88CC).w bne.s loc_79C6C btst #1,(byte_FFFF88CE).w bne.s loc_79C6C btst #1,(byte_FFFF88D0).w bne.s loc_79C6C btst #1,(byte_FFFF88E2).w bne.s loc_79C6C btst #1,(byte_FFFF88E4).w bne.s loc_79C6C btst #1,(byte_FFFF88DE).w bne.s loc_79C6C btst #1,(byte_FFFF8934).w bne.s loc_79C6C btst #1,(byte_FFFF8A9E).w bne.s loc_79C6C btst #1,(byte_FFFF88C4).w bne.s loc_79C6C btst #1,(byte_FFFF8A8C).w bne.s loc_79C6C btst #1,(byte_FFFF8A42).w bne.s loc_79C6C btst #1,(byte_FFFF8A8E).w bne.s loc_79C6C btst #1,(byte_FFFF8AAA).w beq.s loc_79CB8 loc_79C6C: ; CODE XREF: sub_79B10+FAj ; sub_79B10+102j ... tst.b (byte_FFFFA123).w beq.s loc_79C90 move.w (word_FFFFA104).w,var_A(a6) move.w (word_FFFFA0CA).w,var_8(a6) move.w (AIRFLOW_KE_BACKUP_AIR_FLOW_FILTER_COEF).l,d3 ; Use this to filter air flow sensor reading to generate air flow 'prediction' in response to MAP OR TPS failure. ; NONE 0-1 tblu.w var_A(a6),d3 move.w d3,(word_FFFFA104).w bra.s loc_79C96 ; --------------------------------------------------------------------------- loc_79C90: ; CODE XREF: sub_79B10+160j move.w (word_FFFFA0CA).w,(word_FFFFA104).w loc_79C96: ; CODE XREF: sub_79B10+17Ej movea.w (word_FFFFA104).w,a2 move.w a2,(word_FFFFA0C6).w move.w a2,(word_FFFFA0E4).w move.w a2,(word_FFFFA0C8).w move.w a2,(word_FFFFA0C4).w move.w a2,(word_FFFFA0C2).w move.b #1,(byte_FFFFA123).w bra.w loc_7A230 ; --------------------------------------------------------------------------- loc_79CB8: ; CODE XREF: sub_79B10+15Aj tst.b (byte_FFFFA123).w beq.s loc_79CF0 clr.b (byte_FFFFA123).w jsr sub_7A89E movea.w (word_FFFFA0CC).w,a2 move.w a2,(word_FFFFA102).w move.w a2,(word_FFFFA0D2).w move.w a2,(word_FFFFA0C6).w move.w a2,(word_FFFFA0E4).w move.w a2,(word_FFFFA0C4).w move.w (word_FFFFA0CA).w,(word_FFFFA0C2).w move.w (word_FFFFA0CA).w,(word_FFFFA100).w bra.w loc_7A230 ; --------------------------------------------------------------------------- loc_79CF0: ; CODE XREF: sub_79B10+1ACj move.w (EngineRPM_PID_000C___).w,d3 cmp.w (AIRFLOW_KE_HI_SPEED_DYNA_AIR_THRESH).l,d3 ; Engine speed above which a filtered value OF Sensed_Air_Per_Cylinder is used instead of the Dyna-Air prediction. ; RPM bhi.s loc_79D18 tst.b (byte_FFFFA125).w beq.s loc_79D64 move.l d3,d2 move.w (AIRFLOW_KE_HI_SPEED_DYNA_AIR_THRESH).l,d3 ; Engine speed above which a filtered value OF Sensed_Air_Per_Cylinder is used instead of the Dyna-Air prediction. ; RPM sub.w (AIRFLOW_KE_HI_SPEED_DYNA_AIR_HYSTERESIS).l,d3 ; Amount by which engine speed must drop below KE_Hi_Speed_Dyna_Air_Thresh before the Dyna_Air prediction is used again. ; RPM bcc.s loc_79D14 move.l d7,d3 loc_79D14: ; CODE XREF: sub_79B10+200j cmp.w d3,d2 bls.s loc_79D64 loc_79D18: ; CODE XREF: sub_79B10+1EAj tst.b (byte_FFFFA125).w beq.s loc_79D3C move.w (word_FFFFA104).w,var_A(a6) move.w (word_FFFFA0CA).w,var_8(a6) move.w (AIRFLOW_KE_BACKUP_AIR_FLOW_FILTER_COEF).l,d3 ; Use this to filter air flow sensor reading to generate air flow 'prediction' in response to MAP OR TPS failure. ; NONE 0-1 tblu.w var_A(a6),d3 move.w d3,(word_FFFFA104).w bra.s loc_79D42 ; --------------------------------------------------------------------------- loc_79D3C: ; CODE XREF: sub_79B10+20Cj move.w (word_FFFFA0C4).w,(word_FFFFA104).w loc_79D42: ; CODE XREF: sub_79B10+22Aj movea.w (word_FFFFA104).w,a2 move.w a2,(word_FFFFA0C6).w move.w a2,(word_FFFFA0E4).w move.w a2,(word_FFFFA0C4).w move.w a2,(word_FFFFA0C2).w move.w a2,(word_FFFFA0C8).w move.b #1,(byte_FFFFA125).w bra.w loc_7A230 ; --------------------------------------------------------------------------- loc_79D64: ; CODE XREF: sub_79B10+1F0j ; sub_79B10+206j tst.b (byte_FFFFA125).w beq.s loc_79DCA clr.b (byte_FFFFA125).w jsr sub_7A89E move.w (word_FFFFA104).w,var_A(a6) move.w (word_FFFFA0CA).w,var_8(a6) move.w (AIRFLOW_KE_BACKUP_AIR_FLOW_FILTER_COEF).l,d3 ; Use this to filter air flow sensor reading to generate air flow 'prediction' in response to MAP OR TPS failure. ; NONE 0-1 tblu.w var_A(a6),d3 move.w d3,(word_FFFFA104).w move.w d3,(word_FFFFA0C6).w move.w d3,(word_FFFFA0E4).w move.w d3,(word_FFFFA100).w move.l d3,d2 lsr.w #1,d2 move.w d2,(word_FFFFA0FE).w move.w (word_FFFFB292).w,(word_FFFFA11C).w move.w d3,(word_FFFFA0C4).w move.w d3,(word_FFFFA0C2).w move.w d3,(word_FFFFA0D2).w move.w d3,(word_FFFFA0C8).w move.w a1,(word_FFFFA0CE).w clr.b (byte_FFFFA120).w clr.w (word_FFFFA11E).w bra.w loc_7A230 ; --------------------------------------------------------------------------- loc_79DCA: ; CODE XREF: sub_79B10+258j jsr sub_7A65A move.w (word_FFFFA0CA).w,(word_FFFFA0C2).w tst.b (AIRFLOW_K_USE_MAX_AIR_FIRST_TIME_IN_1).l ; TRUE if Air_Per_Cylinder 1 and 2 ahead are to be set to Maximum_Air_Per_Cylinder when zone 1 is entered. ; BOOLEAN beq.s loc_79DFE cmpi.b #1,(byte_FFFFA0D4).w bne.s loc_79DFE cmpi.b #1,(byte_FFFFA121).w beq.s loc_79DFE movea.w (word_FFFFA106).w,a2 move.w a2,(word_FFFFA0C6).w move.w a2,(word_FFFFA0E4).w bra.w loc_7A20C ; --------------------------------------------------------------------------- loc_79DFE: ; CODE XREF: sub_79B10+2CCj ; sub_79B10+2D4j ... move.b (byte_FFFFA0F8).w,d2 move.b d2,var_B(a6) cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_79E14 tst.b (byte_FFFFA123).w beq.s loc_79E2A loc_79E14: ; CODE XREF: sub_79B10+2FCj clr.b (byte_FFFFA0F8).w move.w (word_FFFFB292).w,(word_FFFFA11C).w move.w (AIRFLOW_KE_EGR_DIAG_FINISHED_TIME).l,(word_FFFFA11A).w ; Dyna-Air learn is disabled during an intrusive EGR test and for this long after the intrusive EGR test has finished. ; Seconds bra.w loc_79FD2 ; --------------------------------------------------------------------------- loc_79E2A: ; CODE XREF: sub_79B10+302j tst.b (byte_FFFFA124).w bne.w loc_79F48 move.l d2,d1 and.b (byte_FFFFA122).w,d1 bne.w loc_79F48 move.w (word_FFFFAB66).w,d3 cmp.w (AIRFLOW_KE_IDLE_SS_TPS_THRESH).l,d3 ; Throttle position must be < this to enable the idle steady STATE detection algorithm. ; Percent bcc.w loc_79ED4 move.w (word_FFFFAEBE).w,d3 cmp.w (AIRFLOW_KE_IDLE_SS_MPH_THRESH).l,d3 ; Vehicle must be < this to enable the idle steady STATE detection algorithm. ; MPH bcc.s loc_79ED4 move.b (byte_FFFFA120).w,d3 addq.b #1,d3 bcc.s loc_79E62 move.b #$FF,d3 loc_79E62: ; CODE XREF: sub_79B10+34Cj move.b d3,(byte_FFFFA120).w move.w (word_FFFFA0D0).w,d4 sub.w (word_FFFFA11C).w,d4 add.w (word_FFFFA11E).w,d4 cmpi.w #$14FF,d4 ble.s loc_79E7C move.w #$14FF,d4 loc_79E7C: ; CODE XREF: sub_79B10+366j move.w d4,(word_FFFFA11E).w tst.b d2 beq.s loc_79EBA cmp.w (AIRFLOW_KE_IDLE_SS_INT_THRESH).l,d4 ; Change in MAP integrator required to disable steady state IF engine is currently in the steady state condition. ; kPa bls.s loc_79E9E clr.b (byte_FFFFA120).w clr.w (word_FFFFA11E).w move.w (word_FFFFB292).w,(word_FFFFA11C).w bra.w loc_79FCE ; --------------------------------------------------------------------------- loc_79E9E: ; CODE XREF: sub_79B10+37Aj cmp.b (AIRFLOW_KE_IDLE_SS_COUNTER_THRESH).l,d3 bls.w loc_79FD2 loc_79EA8: ; CODE XREF: sub_79B10+3BAj ; sub_79B10+3C2j clr.b (byte_FFFFA120).w clr.w (word_FFFFA11E).w move.w (word_FFFFB292).w,(word_FFFFA11C).w bra.w loc_79FD2 ; --------------------------------------------------------------------------- loc_79EBA: ; CODE XREF: sub_79B10+372j cmp.b (AIRFLOW_KE_IDLE_TRANS_COUNTER_THRESH).l,d3 bls.w loc_79FD2 cmp.w (AIRFLOW_KE_IDLE_TRANS_INT_THRESH).l,d4 ; Change in MAP integrator required to disable steady state IF engine is currently NOT in the steady state condition. ; kPa bcc.s loc_79EA8 move.b #1,(byte_FFFFA0F8).w bra.s loc_79EA8 ; --------------------------------------------------------------------------- loc_79ED4: ; CODE XREF: sub_79B10+336j ; sub_79B10+344j clr.b (byte_FFFFA120).w clr.w (word_FFFFA11E).w move.w (word_FFFFB292).w,d4 move.w d4,(word_FFFFA11C).w move.l d4,d6 sub.w (word_FFFFA114).w,d6 movea.w (word_FFFFA112).w,a2 move.l d4,d0 sub.w a2,d0 move.w (word_FFFFA110).w,d2 move.l d4,d7 sub.w d2,d7 sub.w a2,d2 move.w (word_FFFFA0D8).w,d1 sub.w (word_FFFFA10E).w,d1 tst.b var_B(a6) bne.s loc_79F5A cmp.w (AIRFLOW_K_STEADY_STATE_MAP_THRESHOLD).l,d4 ; Steady state enable/disable threshold. Used to determine if high MAP or low MAP conditions will be used. ; kPa bcc.s loc_79F52 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (AIRFLOW_K_STEADY_STATE_RPM_THRESHOLD).l,d3 ; Steady state enable/disable threshold. Used to determine if high MAP or low MAP conditions will be used. ; kPa bcc.s loc_79F52 move.w (AIRFLOW_K_STEADY_STATE_LOW_MAP_DELTA).l,d3 ; If low MAP conditions, delta MAP must equal this to enter steady state. ; kPa loc_79F24: ; CODE XREF: sub_79B10+448j tst.w d6 bge.s loc_79F2A neg.w d6 loc_79F2A: ; CODE XREF: sub_79B10+416j cmp.w d3,d6 bhi.w loc_79FD2 tst.w d0 bge.s loc_79F36 neg.w d0 loc_79F36: ; CODE XREF: sub_79B10+422j cmp.w d3,d0 bhi.w loc_79FD2 tst.w d7 bge.s loc_79F42 neg.w d7 loc_79F42: ; CODE XREF: sub_79B10+42Ej cmp.w d3,d7 bhi.w loc_79FD2 loc_79F48: ; CODE XREF: sub_79B10+31Ej ; sub_79B10+328j move.b #1,(byte_FFFFA0F8).w bra.w loc_79FD2 ; --------------------------------------------------------------------------- loc_79F52: ; CODE XREF: sub_79B10+400j ; sub_79B10+40Cj move.w (AIRFLOW_K_STEADY_STATE_HIGH_MAP_DELTA).l,d3 ; Delta MAP criteria for enable/disable of steady state if high MAP conditions. ; kPa bra.s loc_79F24 ; --------------------------------------------------------------------------- loc_79F5A: ; CODE XREF: sub_79B10+3F8j move.w (word_FFFFA0D0).w,d3 cmp.w (AIRFLOW_K_STEADY_STATE_MAP_THRESHOLD).l,d3 ; Steady state enable/disable threshold. Used to determine if high MAP or low MAP conditions will be used. ; kPa bcc.s loc_79FAC move.w (EngineRPM_PID_000C___).w,d3 cmp.w (AIRFLOW_K_STEADY_STATE_RPM_THRESHOLD).l,d3 ; Steady state enable/disable threshold. Used to determine if high MAP or low MAP conditions will be used. ; kPa bcc.s loc_79FAC move.w (AIRFLOW_K_STEADY_STATE_LOW_MAP_DELTA).l,d3 ; If low MAP conditions, delta MAP must equal this to enter steady state. ; kPa cmp.w d3,d0 ble.s loc_79F90 cmp.w d3,d2 ble.s loc_79F84 cmp.w d3,d7 bgt.s loc_79F8C loc_79F84: ; CODE XREF: sub_79B10+46Ej cmp.w (AIRFLOW_K_STEADY_STATE_LOW_TPS_DELTA).l,d1 ; Delta TPS for disable of steady state if low MAP conditions. ; Percent ble.s loc_79F90 loc_79F8C: ; CODE XREF: sub_79B10+472j clr.b (byte_FFFFA0F8).w loc_79F90: ; CODE XREF: sub_79B10+46Aj ; sub_79B10+47Aj neg.w d0 cmp.w d3,d0 ble.s loc_79FD2 neg.w d2 cmp.w d3,d2 ble.s loc_79FA2 neg.w d7 cmp.w d3,d7 bgt.s loc_79FCE loc_79FA2: ; CODE XREF: sub_79B10+48Aj neg.w d1 cmp.w (AIRFLOW_K_STEADY_STATE_LOW_TPS_DELTA).l,d1 ; Delta TPS for disable of steady state if low MAP conditions. ; Percent bra.s loc_79FCC ; --------------------------------------------------------------------------- loc_79FAC: ; CODE XREF: sub_79B10+454j ; sub_79B10+460j move.w (AIRFLOW_K_STEADY_STATE_HIGH_MAP_DELTA).l,d3 ; Delta MAP criteria for enable/disable of steady state if high MAP conditions. ; kPa cmp.w d3,d0 ble.s loc_79FBE cmp.w (AIRFLOW_K_STEADY_STATE_HIGH_TPS_DELTA).l,d1 ; Delta TPS for disable of steady state if high MAP conditions. ; Percent bgt.s loc_79FCE loc_79FBE: ; CODE XREF: sub_79B10+4A4j neg.w d0 cmp.w d3,d0 ble.s loc_79FD2 neg.w d1 cmp.w (AIRFLOW_K_STEADY_STATE_HIGH_TPS_DELTA).l,d1 ; Delta TPS for disable of steady state if high MAP conditions. ; Percent loc_79FCC: ; CODE XREF: sub_79B10+49Aj ble.s loc_79FD2 loc_79FCE: ; CODE XREF: sub_79B10+38Aj ; sub_79B10+490j ... clr.b (byte_FFFFA0F8).w loc_79FD2: ; CODE XREF: sub_79B10+316j ; sub_79B10+394j ... tst.b (byte_FFFFA0F8).w beq.s loc_79FF8 jsr sub_7A568 move.w (word_FFFFA0D2).w,var_A(a6) move.w (word_FFFFA0C2).w,var_8(a6) move.w (AIRFLOW_K_MODEL_OF_AIR_FILTER_COEF).l,d3 ; Filter coefficient for the Model_Of_Air_Per_Cylinder term. ; NONE 0-1 tblu.w var_A(a6),d3 bra.s loc_7A00C ; --------------------------------------------------------------------------- loc_79FF8: ; CODE XREF: sub_79B10+4C6j move.w (word_FFFFA0CC).w,d3 mulu.w (word_FFFFA0CE).w,d3 move.w #$800,d7 divu.w d7,d3 bvc.s loc_7A00C move.w #$FFFF,d3 loc_7A00C: ; CODE XREF: sub_79B10+4E6j ; sub_79B10+4F6j move.w d3,(word_FFFFA0D2).w clr.w d0 move.b (byte_FFFFA0D4).w,d0 mulu.w #$14,d0 lea $8752.l(d0.l),a2 clr.l d0 move.w (word_FFFFA0E4).w,d0 clr.l d7 move.w (a2),d7 clr.l d3 move.w (word_FFFFA0E4).w,d3 clr.l d5 move.w (word_FFFFA0D2).w,d5 sub.l d3,d5 move.l d5,d3 muls.l d3,d7 bvc.s loc_7A046 bmi.s loc_7A060 bra.s loc_7A058 ; --------------------------------------------------------------------------- loc_7A046: ; CODE XREF: sub_79B10+530j tst.l d7 bpl.s loc_7A050 addi.l #$7FFF,d7 loc_7A050: ; CODE XREF: sub_79B10+538j asr.l #8,d7 asr.l #7,d7 move.l d7,d3 bra.s loc_7A066 ; --------------------------------------------------------------------------- loc_7A058: ; CODE XREF: sub_79B10+534j move.l #$FFFF,d3 bra.s loc_7A066 ; --------------------------------------------------------------------------- loc_7A060: ; CODE XREF: sub_79B10+532j move.l #unk_FFFF0000,d3 loc_7A066: ; CODE XREF: sub_79B10+546j ; sub_79B10+54Ej add.l d3,d0 tst.l d0 blt.s loc_7A07A cmpi.l #$FFFF,d0 bls.s loc_7A07C move.w #$FFFF,d0 bra.s loc_7A07C ; --------------------------------------------------------------------------- loc_7A07A: ; CODE XREF: sub_79B10+55Aj clr.w d0 loc_7A07C: ; CODE XREF: sub_79B10+562j ; sub_79B10+568j move.w d0,(word_FFFFA0C8).w clr.l d6 move.w (word_FFFFA0C2).w,d6 move.w 2(a2),d3 ext.l d3 muls.l d6,d3 clr.l d6 move.w (word_FFFFA100).w,d6 move.w 4(a2),d4 ext.l d4 muls.l d6,d4 add.l d4,d3 move.w 6(a2),d4 muls.w (word_FFFFA0D0).w,d4 asl.l #2,d4 add.l d4,d3 move.w 8(a2),d4 muls.w (word_FFFFA110).w,d4 asl.l #2,d4 add.l d4,d3 move.w $A(a2),d4 muls.w (word_FFFFA112).w,d4 asl.l #2,d4 add.l d4,d3 move.w $C(a2),d4 muls.w (word_FFFFA0D8).w,d4 asl.l #3,d4 add.l d4,d3 move.w $E(a2),d4 muls.w (word_FFFFA10C).w,d4 asl.l #3,d4 add.l d4,d3 move.w $10(a2),d4 muls.w (word_FFFFA10E).w,d4 asl.l #3,d4 add.l d4,d3 move.w $12(a2),d4 mulu.w (word_FFFFA0C8).w,d4 tst.l d4 blt.s loc_7A10C add.l d3,d4 bvc.s loc_7A0FE bmi.s loc_7A10C bra.s loc_7A112 ; --------------------------------------------------------------------------- loc_7A0FE: ; CODE XREF: sub_79B10+5E8j cmpi.l #$7FFFFFFF,d4 bhi.s loc_7A112 lsr.l #8,d4 lsr.l #7,d4 bra.s loc_7A114 ; --------------------------------------------------------------------------- loc_7A10C: ; CODE XREF: sub_79B10+5E4j ; sub_79B10+5EAj move.w #$FFFF,d4 bra.s loc_7A114 ; --------------------------------------------------------------------------- loc_7A112: ; CODE XREF: sub_79B10+5ECj ; sub_79B10+5F4j clr.w d4 loc_7A114: ; CODE XREF: sub_79B10+5FAj ; sub_79B10+600j move.w d4,(word_FFFFA0E4).w move.w $12(a2),d7 mulu.w (word_FFFFA0E4).w,d7 tst.l d7 blt.s loc_7A13C add.l d3,d7 bvc.s loc_7A12C bmi.s loc_7A13C bra.s loc_7A142 ; --------------------------------------------------------------------------- loc_7A12C: ; CODE XREF: sub_79B10+616j cmpi.l #$7FFFFFFF,d7 bhi.s loc_7A142 lsr.l #8,d7 lsr.l #7,d7 move.w d7,d3 bra.s loc_7A144 ; --------------------------------------------------------------------------- loc_7A13C: ; CODE XREF: sub_79B10+612j ; sub_79B10+618j move.w #$FFFF,d3 bra.s loc_7A144 ; --------------------------------------------------------------------------- loc_7A142: ; CODE XREF: sub_79B10+61Aj ; sub_79B10+622j clr.w d3 loc_7A144: ; CODE XREF: sub_79B10+62Aj ; sub_79B10+630j move.w d3,(word_FFFFA0C6).w move.w (word_FFFF82D2).w,d6 move.l d6,d1 move.w #$300,d7 cmp.w d1,d7 bls.s loc_7A158 move.l d7,d1 loc_7A158: ; CODE XREF: sub_79B10+644j sub.w d7,d1 move.w (EngineRPM_PID_000C___).w,d0 cmpi.w #$A000,d0 bls.s loc_7A16A move.w #$A000,d0 bra.s loc_7A174 ; --------------------------------------------------------------------------- loc_7A16A: ; CODE XREF: sub_79B10+652j move.w #$800,d3 cmp.w d0,d3 bls.s loc_7A174 move.l d3,d0 loc_7A174: ; CODE XREF: sub_79B10+658j ; sub_79B10+660j sub.w a1,d0 lea (AIRFLOW_K_MAIN_VOLUMETRIC_EFFICIENCY).l,a0 ; The volumetric efficiency term used for modeling the air per cylinder for Dyna-Air calculations. ; gm*K/kPa lsr.w #3,d0 moveq #$28,d2 ; '(' jsr (sub_16D6).l move.w d0,d3 mulu.w d6,d3 divu.w (word_FFFFA0F6).w,d3 bvc.s loc_7A194 move.w #$FFFF,d3 loc_7A194: ; CODE XREF: sub_79B10+67Ej move.w #$800,d2 cmp.w (word_FFFFA0CE).w,d2 bhi.s loc_7A1AA mulu.w (word_FFFFA0CE).w,d3 divu.w d2,d3 bvc.s loc_7A1AA move.w #$FFFF,d3 loc_7A1AA: ; CODE XREF: sub_79B10+68Cj ; sub_79B10+694j mulu.w (AIRFLOW_K_MAXFLOW_SAFETY_FACTOR).l,d3 ; A safety factor multiplied by the calculated maximum air flow limit used on the air flow variables used by the fuel logic. ; NONE 0-2 divu.w #$8000,d3 bvc.s loc_7A1BA move.w #$FFFF,d3 loc_7A1BA: ; CODE XREF: sub_79B10+6A4j move.w (word_FFFFA0E4).w,d4 cmp.w d3,d4 bls.s loc_7A1C8 move.w d3,(word_FFFFA0C4).w bra.s loc_7A1CC ; --------------------------------------------------------------------------- loc_7A1C8: ; CODE XREF: sub_79B10+6B0j move.w d4,(word_FFFFA0C4).w loc_7A1CC: ; CODE XREF: sub_79B10+6B6j cmp.w (word_FFFFA0C6).w,d3 bcc.s loc_7A1D6 move.w d3,(word_FFFFA0C6).w loc_7A1D6: ; CODE XREF: sub_79B10+6C0j tst.w (word_FFFFA0E4).w beq.s loc_7A1E2 tst.w (word_FFFFA0C6).w bne.s loc_7A20C loc_7A1E2: ; CODE XREF: sub_79B10+6CAj move.w (word_FFFFA0D2).w,d3 bls.s loc_7A1FA move.w d3,(word_FFFFA0C4).w move.w (word_FFFFA0D2).w,(word_FFFFA0E4).w move.w (word_FFFFA0D2).w,(word_FFFFA0C6).w bra.s loc_7A20C ; --------------------------------------------------------------------------- loc_7A1FA: ; CODE XREF: sub_79B10+6D6j move.w (word_FFFFA0C2).w,(word_FFFFA0C4).w move.w (word_FFFFA0C2).w,(word_FFFFA0E4).w move.w (word_FFFFA0C2).w,(word_FFFFA0C6).w loc_7A20C: ; CODE XREF: sub_79B10+2EAj ; sub_79B10+6D0j ... move.w (word_FFFFA0C2).w,(word_FFFFA100).w move.w (word_FFFFA112).w,(word_FFFFA114).w move.w (word_FFFFA110).w,(word_FFFFA112).w move.w (word_FFFFA0D0).w,(word_FFFFA110).w move.w (word_FFFFA10C).w,(word_FFFFA10E).w move.w (word_FFFFA0D8).w,(word_FFFFA10C).w loc_7A230: ; CODE XREF: sub_79B10+F0j ; sub_79B10+1A4j ... move.w (word_FFFFA0EE).w,(word_FFFFA0EC).w move.w (word_FFFFA0F0).w,(word_FFFFA0EE).w move.w (word_FFFFA0C8).w,(word_FFFFA0F0).w move.w var_E(a6),d2 bne.s loc_7A256 clr.w (word_FFFFA0F4).w clr.w (Airflow_SD).w clr.w (word_FFFFA0DE).w bra.s loc_7A298 ; --------------------------------------------------------------------------- loc_7A256: ; CODE XREF: sub_79B10+736j move.w (word_FFFFA0C6).w,d3 move.w #$FC9,d6 mulu.w d6,d3 lsr.l #2,d3 divu.w d2,d3 bvc.s loc_7A26A move.w #$FFFF,d3 loc_7A26A: ; CODE XREF: sub_79B10+754j move.w d3,(word_FFFFA0F4).w move.w (word_FFFFA0CC).w,d3 mulu.w d6,d3 lsr.l #2,d3 divu.w d2,d3 bvc.s loc_7A27E move.w #$FFFF,d3 loc_7A27E: ; CODE XREF: sub_79B10+768j move.w d3,(Airflow_SD).w move.w (word_FFFFA0EC).w,d3 lsr.w #1,d3 mulu.w d6,d3 lsr.l #1,d3 divu.w d2,d3 bvc.s loc_7A294 move.w #$FFFF,d3 loc_7A294: ; CODE XREF: sub_79B10+77Ej move.w d3,(word_FFFFA0DE).w loc_7A298: ; CODE XREF: sub_79B10+744j cmpi.b #3,(ThrottleControlMode2?).w beq.s loc_7A2DC move.b #1,(byte_FFFFA10A).w move.w (AIRFLOW_KE_CRANK_TO_RUN_RATIO).l,(CrankingToRunningTransition).w jsr GetGramsPerCylinderViaSpeedDensity move.w (word_FFFFA0F2).w,(word_FFFFA0E6).w tst.w d2 beq.s loc_7A336 loc_7A2BE: ; CODE XREF: sub_79B10+824j move.w (word_FFFFA0E6).w,d3 mulu.w #$FC9,d3 lsr.l #1,d3 divu.w d2,d3 bvc.s loc_7A2D0 move.w #$FFFF,d3 loc_7A2D0: ; CODE XREF: sub_79B10+7BAj move.w d3,(word_FFFFA0FC).w loc_7A2D4: ; CODE XREF: sub_79B10+82Aj move.w (word_FFFFA0FC).w,(word_FFFFA0DC).w bra.s loc_7A34C ; --------------------------------------------------------------------------- loc_7A2DC: ; CODE XREF: sub_79B10+78Ej tst.b (byte_FFFFA10A).w beq.s loc_7A33C jsr GetGramsPerCylinderViaSpeedDensity move.w #$100,d0 sub.w (CrankingToRunningTransition).w,d0 move.w (CrankingToRunningTransition).w,d3 mulu.w (word_FFFFA0C6).w,d3 lsr.l #8,d3 lsr.l #1,d3 mulu.w (word_FFFFA0F2).w,d0 lsr.l #8,d0 add.w d0,d3 bcc.s loc_7A30A move.w #$FFFF,d3 loc_7A30A: ; CODE XREF: sub_79B10+7F4j move.w d3,(word_FFFFA0E6).w move.w (CrankingToRunningTransition).w,d3 add.w (AIRFLOW_KE_CRANK_TO_RUN_RATIO).l,d3 cmpi.w #$100,d3 bls.s loc_7A322 move.w #$100,d3 loc_7A322: ; CODE XREF: sub_79B10+80Cj move.w d3,(CrankingToRunningTransition).w cmpi.w #$100,d3 scs d1 neg.b d1 move.b d1,(byte_FFFFA10A).w tst.w d2 bne.s loc_7A2BE loc_7A336: ; CODE XREF: sub_79B10+7ACj clr.w (word_FFFFA0FC).w bra.s loc_7A2D4 ; --------------------------------------------------------------------------- loc_7A33C: ; CODE XREF: sub_79B10+7D0j move.w (word_FFFFA0C6).w,d3 lsr.w #1,d3 move.w d3,(word_FFFFA0E6).w move.w (word_FFFFA0F4).w,(word_FFFFA0DC).w loc_7A34C: ; CODE XREF: sub_79B10+7CAj move.w (word_FFFFA0EC).w,var_A(a6) move.w (word_FFFFA0EE).w,var_8(a6) move.w (word_FFFFA0F0).w,var_6(a6) move.w (word_FFFFA0C4).w,var_4(a6) move.w (word_FFFFA0C6).w,var_2(a6) move.w (SPARK_ADVANCE_KE_AIR_PER_CYLINDER_BLEND_RATIO).l,d1 ; Describes the index and ratio for interpolation between two adjacent air per cylinder values. ; Scaler_2_S addi.w #$1000,d1 lsr.w #8,d1 lsr.w #3,d1 subq.b #2,d1 move.l d1,d5 ext.w d5 asl.w #8,d5 asl.w #3,d5 move.w (SPARK_ADVANCE_KE_AIR_PER_CYLINDER_BLEND_RATIO).l,d3 ; Describes the index and ratio for interpolation between two adjacent air per cylinder values. ; Scaler_2_S sub.w d5,d3 asl.w #4,d3 bvc.s loc_7A39A bmi.s loc_7A396 move.w #$7FFF,d3 bra.s loc_7A39A ; --------------------------------------------------------------------------- loc_7A396: ; CODE XREF: sub_79B10+87Ej move.w #$8000,d3 loc_7A39A: ; CODE XREF: sub_79B10+87Cj ; sub_79B10+884j move.l d1,d4 ext.w d4 clr.l d5 move.w var_6(a6,d4.w*2),d5 move.l d1,d4 ext.w d4 clr.l d0 move.w var_4(a6,d4.w*2),d0 sub.l d5,d0 ext.w d1 clr.l d5 move.w var_6(a6,d1.w*2),d5 ext.l d3 muls.l d0,d3 bvc.s loc_7A3C4 bmi.s loc_7A3DC bra.s loc_7A3D4 ; --------------------------------------------------------------------------- loc_7A3C4: ; CODE XREF: sub_79B10+8AEj tst.l d3 bpl.s loc_7A3CE addi.l #$7FFF,d3 loc_7A3CE: ; CODE XREF: sub_79B10+8B6j asr.l #8,d3 asr.l #7,d3 bra.s loc_7A3E2 ; --------------------------------------------------------------------------- loc_7A3D4: ; CODE XREF: sub_79B10+8B2j move.l #$FFFF,d3 bra.s loc_7A3E2 ; --------------------------------------------------------------------------- loc_7A3DC: ; CODE XREF: sub_79B10+8B0j move.l #unk_FFFF0000,d3 loc_7A3E2: ; CODE XREF: sub_79B10+8C2j ; sub_79B10+8CAj add.l d3,d5 tst.l d5 blt.s loc_7A3FA cmpi.l #$FFFF,d5 bhi.s loc_7A3F4 move.w d5,d3 bra.s loc_7A3FC ; --------------------------------------------------------------------------- loc_7A3F4: ; CODE XREF: sub_79B10+8DEj move.w #$FFFF,d3 bra.s loc_7A3FC ; --------------------------------------------------------------------------- loc_7A3FA: ; CODE XREF: sub_79B10+8D6j clr.w d3 loc_7A3FC: ; CODE XREF: sub_79B10+8E2j ; sub_79B10+8E8j move.w d3,(MaybeLoad).w lsr.w #1,d3 move.l #$148,d4 cmp.w d3,d4 bls.s loc_7A410 clr.w d3 bra.s loc_7A436 ; --------------------------------------------------------------------------- loc_7A410: ; CODE XREF: sub_79B10+8FAj cmpi.w #$1333,d3 bcc.s loc_7A432 andi.l #$FFFF,d3 sub.l d4,d3 asl.l #8,d3 asl.l #4,d3 bmi.s loc_7A42E divu.l #$A3D,d3 bra.s loc_7A436 ; --------------------------------------------------------------------------- loc_7A42E: ; CODE XREF: sub_79B10+912j clr.l d3 bra.s loc_7A436 ; --------------------------------------------------------------------------- loc_7A432: ; CODE XREF: sub_79B10+904j move.w #$1C00,d3 loc_7A436: ; CODE XREF: sub_79B10+8FEj ; sub_79B10+91Cj ... move.w d3,(DefinitelyRpm).w clr.l d0 move.w (word_FFFFA0FE).w,d0 move.w (MaybeLoad).w,d3 lsr.w #1,d3 andi.l #$FFFF,d3 sub.l d0,d3 cmpi.l #$FFFF8000,d3 blt.s loc_7A464 cmpi.l #$7FFF,d3 ble.s loc_7A468 move.w #$7FFF,d3 bra.s loc_7A468 ; --------------------------------------------------------------------------- loc_7A464: ; CODE XREF: sub_79B10+944j move.w #$8000,d3 loc_7A468: ; CODE XREF: sub_79B10+94Cj ; sub_79B10+952j move.w d3,(word_FFFFA0E8).w move.w (MaybeLoad).w,d3 lsr.w #1,d3 move.w d3,(word_FFFFA0FE).w clr.l d3 move.w (word_FFFFA0C6).w,d3 asl.l #8,d3 asl.l #7,d3 divu.w (word_FFFFA106).w,d3 bvs.s loc_7A48C cmpi.w #$7FFF,d3 bls.s loc_7A490 loc_7A48C: ; CODE XREF: sub_79B10+974j move.w #$7FFF,d3 loc_7A490: ; CODE XREF: sub_79B10+97Aj mulu.w #5,d3 lsr.l #5,d3 move.w d3,(word_FFFFA0E2).w move.b var_C(a6),(byte_FFFFA0F9).w movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_79B10 ; =============== S U B R O U T I N E ======================================= GetGramsPerCylinderViaSpeedDensity: ; CODE XREF: sub_79B10+79Ep ; sub_79B10+7D2p movem.l d0-d2/d6/a0,-(sp) move.w (EngineRPM_PID_000C___).w,d0 move.w (word_FFFFB292).w,d1 clr.w d3 cmpi.w #$400,d1 bcc.s loc_7A4C0 move.l d3,d1 bra.s loc_7A4D2 ; --------------------------------------------------------------------------- loc_7A4C0: ; CODE XREF: GetGramsPerCylinderViaSpeedDensity+12j cmpi.w #$1400,d1 bcc.s loc_7A4CE lsr.w #1,d1 subi.w #$200,d1 bra.s loc_7A4D2 ; --------------------------------------------------------------------------- loc_7A4CE: ; CODE XREF: GetGramsPerCylinderViaSpeedDensity+1Cj move.w #$800,d1 loc_7A4D2: ; CODE XREF: GetGramsPerCylinderViaSpeedDensity+16j ; GetGramsPerCylinderViaSpeedDensity+24j cmpi.w #$199A,d0 bcc.s loc_7A4E0 mulu.w #5,d0 lsr.l #2,d0 bra.s loc_7A4E4 ; --------------------------------------------------------------------------- loc_7A4E0: ; CODE XREF: GetGramsPerCylinderViaSpeedDensity+2Ej move.w #$2000,d0 loc_7A4E4: ; CODE XREF: GetGramsPerCylinderViaSpeedDensity+36j moveq #$21,d2 ; '!' movea.l #$81F0,a0 jsr sub_2696E move.w d0,d3 move.w (word_FFFF82D2).w,d5 move.w #$C00,d0 cmp.w d5,d0 bls.s loc_7A504 clr.w d5 bra.s loc_7A506 ; --------------------------------------------------------------------------- loc_7A504: ; CODE XREF: GetGramsPerCylinderViaSpeedDensity+56j sub.w d0,d5 loc_7A506: ; CODE XREF: GetGramsPerCylinderViaSpeedDensity+5Aj movea.l #$81DC,a2 tblu.w (a2),d5 mulu.w d5,d3 lsr.l #8,d3 lsr.l #4,d3 cmpi.w #$1400,d3 bls.s loc_7A520 move.w #$1400,d3 loc_7A520: ; CODE XREF: GetGramsPerCylinderViaSpeedDensity+72j mulu.w (AIRFLOW_K_CYLINDER_VOLUME).l,d3 ; Volume of each cylinder in the engine. ; Liter divu.w #$1400,d3 mulu.w (word_FFFFB292).w,d3 add.l d3,d3 cmpi.l #$15000000,d3 bls.s loc_7A53E move.l #$15000000,d3 loc_7A53E: ; CODE XREF: GetGramsPerCylinderViaSpeedDensity+8Ej move.w (AIRFLOW_KE_VE_TEMPERATURE).l,d5 mulu.w (word_FFFFB4F2).w,d5 lsr.l #8,d5 lsr.l #8,d5 lsr.l #1,d5 divu.w d5,d3 bvc.s loc_7A556 move.w #$FFFF,d3 loc_7A556: ; CODE XREF: GetGramsPerCylinderViaSpeedDensity+A8j mulu.w #$2B,d3 ; '+' divu.w #$13C,d3 move.w d3,(word_FFFFA0F2).w movem.l (sp)+,d0-d2/d6/a0 rts ; End of function GetGramsPerCylinderViaSpeedDensity ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7A568: ; CODE XREF: sub_79B10+4C8p var_4 = -4 var_2 = -2 link a6,#-4 tst.b (byte_FFFFA123).w bne.s loc_7A57A cmpi.b #3,(ThrottleControlMode2?).w beq.s loc_7A584 loc_7A57A: ; CODE XREF: sub_7A568+8j jsr sub_7A60C bra.w loc_7A608 ; --------------------------------------------------------------------------- loc_7A584: ; CODE XREF: sub_7A568+10j move.w (word_FFFFA0D0).w,d3 cmp.w (AIRFLOW_K_DEEP_DECEL_MAP_THRESHOLD).l,d3 ; MAP threshold below which the engine is considered to be in deep deceleration. ; kPa bcc.s loc_7A598 move.b #1,(byte_FFFFA122).w bra.s loc_7A608 ; --------------------------------------------------------------------------- loc_7A598: ; CODE XREF: sub_7A568+26j tst.b (byte_FFFFA122).w beq.s loc_7A5B6 move.w (word_FFFFA0CE).w,d3 cmp.w (AIRFLOW_K_VE_CORR_FACTOR_RESET_THRESH).l,d3 ; Reset Filtered_VE_Correction_Factor to 1.0 if it is less than this calibration when exiting deep deceleration. ; NONE 0-2 bcc.s loc_7A5B0 move.w #$800,(word_FFFFA0CE).w loc_7A5B0: ; CODE XREF: sub_7A568+40j clr.b (byte_FFFFA122).w bra.s loc_7A608 ; --------------------------------------------------------------------------- loc_7A5B6: ; CODE XREF: sub_7A568+34j tst.b (byte_FFFFA124).w bne.s loc_7A608 clr.l d3 move.w (word_FFFFA0CA).w,d3 asl.l #8,d3 asl.l #3,d3 divu.w (word_FFFFA0CC).w,d3 bvs.s loc_7A5D2 cmpi.w #$1000,d3 bls.s loc_7A5D6 loc_7A5D2: ; CODE XREF: sub_7A568+62j move.w #$1000,d3 loc_7A5D6: ; CODE XREF: sub_7A568+68j move.w (word_FFFFA0CE).w,var_4(a6) move.w d3,var_2(a6) move.w (AIRFLOW_K_VE_CORR_FACTOR_FILTER_COEF).l,d3 ; Filter coefficient for Filtered_VE_Correction_Factor. ; Filt Coef tblu.w var_4(a6),d3 move.w (AIRFLOW_K_VE_CORR_FACTOR_LOW_LIMIT).l,d4 ; Lower limit of the Filtered_VE_Correction_Factor term. ; NONE 0-2 cmp.w d4,d3 bcc.s loc_7A5FA loc_7A5F6: ; CODE XREF: sub_7A568+9Aj move.l d4,d3 bra.s loc_7A604 ; --------------------------------------------------------------------------- loc_7A5FA: ; CODE XREF: sub_7A568+8Cj move.w (AIRFLOW_K_VE_CORR_FACTOR_HIGH_LIMIT).l,d4 ; Upper limit of the Filtered_VE_Correction_Factor term. ; NONE 0-2 cmp.w d4,d3 bhi.s loc_7A5F6 loc_7A604: ; CODE XREF: sub_7A568+90j move.w d3,(word_FFFFA0CE).w loc_7A608: ; CODE XREF: sub_7A568+18j ; sub_7A568+2Ej ... unlk a6 rts ; End of function sub_7A568 ; =============== S U B R O U T I N E ======================================= sub_7A60C: ; CODE XREF: sub_7A568:loc_7A57Ap ; sub_7A89E+8Cp ... move.l d0,-(sp) move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (AIRFLOW_KV_GAMMA_INIT_COOLANT_BREAKPOINT).l,d3 ; Breakpoints for selection coolant zone for initializing Filtered_VE_Correction_Factor. ; Deg C bge.s loc_7A61E clr.b d4 bra.s loc_7A62C ; --------------------------------------------------------------------------- loc_7A61E: ; CODE XREF: sub_7A60C+Cj cmp.w (word_873C).l,d3 bge.s loc_7A62A moveq #1,d4 bra.s loc_7A62C ; --------------------------------------------------------------------------- loc_7A62A: ; CODE XREF: sub_7A60C+18j moveq #2,d4 loc_7A62C: ; CODE XREF: sub_7A60C+10j ; sub_7A60C+1Cj move.w (word_FFFF82D2).w,d3 move.w #$D00,d5 cmp.w d3,d5 bls.s loc_7A63A move.l d5,d3 loc_7A63A: ; CODE XREF: sub_7A60C+2Aj subi.w #$D00,d3 clr.l d0 move.b d4,d0 mulu.w #$A,d0 lsr.w #1,d3 tblu.w $873E.l(d0.l),d3 move.w d3,(word_FFFFA0CE).w move.l (sp)+,d0 rts ; End of function sub_7A60C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7A65A: ; CODE XREF: sub_79B10:loc_79DCAp var_4 = -4 var_3 = -3 var_2 = -2 link a6,#-4 movem.l d0-d2/a1,-(sp) move.b (byte_FFFFA0D4).w,d3 move.b d3,(byte_FFFFA121).w move.w (word_FFFFA0D8).w,d4 cmp.w (AIRFLOW_K_WIDE_OPEN_THROTTLE_LO).l,d4 ; Minumum throttle percentage that is still considered wide open throttle. ; Percent bls.s loc_7A680 move.b #1,(byte_FFFFA0D4).w bra.w loc_7A80A ; --------------------------------------------------------------------------- loc_7A680: ; CODE XREF: sub_7A65A+1Aj cmp.w (AIRFLOW_K_IDLE_THROTTLE_HI).l,d4 ; Maximum throttle percentage that is still considered idle conditions. ; Percent bhi.s loc_7A69E move.w (word_FFFFAEBE).w,d4 cmp.w (AIRFLOW_K_IDLE_VEHICLE_SPEED_HI).l,d4 ; Maximum vehicle speed that is still considered idle conditions. ; MPH bcc.s loc_7A69E move.b #2,(byte_FFFFA0D4).w bra.w loc_7A80A ; --------------------------------------------------------------------------- loc_7A69E: ; CODE XREF: sub_7A65A+2Cj ; sub_7A65A+38j move.w (EngineRPM_PID_000C___).w,d1 move.w d1,var_2(a6) cmpi.b #2,d3 bhi.s loc_7A6B8 loc_7A6AC: ; CODE XREF: sub_7A65A+EEj ; sub_7A65A+1ACj movea.l a6,a1 jsr sub_7A812 bra.w loc_7A80A ; --------------------------------------------------------------------------- loc_7A6B8: ; CODE XREF: sub_7A65A+50j move.l d3,d2 addq.b #1,d2 move.l d2,d4 lsr.b #2,d4 move.b d4,var_4(a6) moveq #3,d0 and.b d0,d2 addq.b #1,d2 move.b d2,var_3(a6) cmpi.b #3,d4 bhi.s loc_7A6F2 cmpi.b #1,d4 bne.s loc_7A70A move.w (AIRFLOW_K_ENGINE_SPEED_UPPER_BOUND).l,d0 ; RPM boundaries between engine speed zones in the operating zones grid. ; RPM add.w (AIRFLOW_KE_ENGINE_SPEED_HYSTERESIS).l,d0 ; RPM boundary hysteresis for changing engine speed zones. ; RPM bcc.s loc_7A6EC move.w #$FFFF,d0 loc_7A6EC: ; CODE XREF: sub_7A65A+8Cj cmp.w d0,d1 shi d3 bra.s loc_7A706 ; --------------------------------------------------------------------------- loc_7A6F2: ; CODE XREF: sub_7A65A+78j move.w (word_88DA).l,d4 sub.w (AIRFLOW_KE_ENGINE_SPEED_HYSTERESIS).l,d4 ; RPM boundary hysteresis for changing engine speed zones. ; RPM bcc.s loc_7A702 clr.w d4 loc_7A702: ; CODE XREF: sub_7A65A+A4j cmp.w d4,d1 sls d3 loc_7A706: ; CODE XREF: sub_7A65A+96j neg.b d3 bra.s loc_7A746 ; --------------------------------------------------------------------------- loc_7A70A: ; CODE XREF: sub_7A65A+7Ej andi.w #$FF,d4 move.w AIRFLOW_K_IDLE_VEHICLE_SPEED_HI.l(d4.w*2),d4 sub.w (AIRFLOW_KE_ENGINE_SPEED_HYSTERESIS).l,d4 ; RPM boundary hysteresis for changing engine speed zones. ; RPM bcc.s loc_7A720 clr.w d4 loc_7A720: ; CODE XREF: sub_7A65A+C2j clr.w d0 move.b var_4(a6),d0 move.w AIRFLOW_K_IDLE_THROTTLE_HI.l(d0.w*2),d0 add.w (AIRFLOW_KE_ENGINE_SPEED_HYSTERESIS).l,d0 ; RPM boundary hysteresis for changing engine speed zones. ; RPM bcc.s loc_7A73A move.w #$FFFF,d0 loc_7A73A: ; CODE XREF: sub_7A65A+DAj clr.b d3 cmp.w d4,d1 bls.s loc_7A744 cmp.w d0,d1 bls.s loc_7A746 loc_7A744: ; CODE XREF: sub_7A65A+E4j addq.b #1,d3 loc_7A746: ; CODE XREF: sub_7A65A+AEj ; sub_7A65A+E8j tst.b d3 bne.w loc_7A6AC cmpi.b #3,d2 bhi.s loc_7A782 cmpi.b #1,d2 bne.s loc_7A7A8 clr.w d0 move.b var_4(a6),d0 mulu.w #3,d0 move.w unk_88D8.l(d0.l*2),d0 add.w (AIRFLOW_KE_MANIFOLD_PRESSURE_HYSTERESIS).l,d0 ; Pressure boundary hysteresis for changing manifold pressure zones. ; kPa cmpi.w #$14FF,d0 bls.s loc_7A77A move.w #$14FF,d0 loc_7A77A: ; CODE XREF: sub_7A65A+11Aj cmp.w (word_FFFFA0D0).w,d0 scs d4 bra.s loc_7A7A4 ; --------------------------------------------------------------------------- loc_7A782: ; CODE XREF: sub_7A65A+F6j clr.w d3 move.b var_4(a6),d3 mulu.w #3,d3 move.w AIRFLOW_KE_ENGINE_SPEED_HYSTERESIS.l(d3.l*2),d3 sub.w (AIRFLOW_KE_MANIFOLD_PRESSURE_HYSTERESIS).l,d3 ; Pressure boundary hysteresis for changing manifold pressure zones. ; kPa bcc.s loc_7A79E clr.w d3 loc_7A79E: ; CODE XREF: sub_7A65A+140j cmp.w (word_FFFFA0D0).w,d3 scc d4 loc_7A7A4: ; CODE XREF: sub_7A65A+126j neg.b d4 bra.s loc_7A804 ; --------------------------------------------------------------------------- loc_7A7A8: ; CODE XREF: sub_7A65A+FCj clr.w d3 move.b var_4(a6),d3 moveq #3,d1 mulu.w d1,d3 add.b var_3(a6),d3 andi.w #$FF,d3 move.w AIRFLOW_K_IDLE_THROTTLE_HI.l(d3.w*2),d3 sub.w (AIRFLOW_KE_MANIFOLD_PRESSURE_HYSTERESIS).l,d3 ; Pressure boundary hysteresis for changing manifold pressure zones. ; kPa bcc.s loc_7A7CC clr.w d3 loc_7A7CC: ; CODE XREF: sub_7A65A+16Ej clr.w d0 move.b var_4(a6),d0 mulu.w d1,d0 add.b var_3(a6),d0 andi.w #$FF,d0 move.w AIRFLOW_K_ENGINE_SPEED_UPPER_BOUND.l(d0.w*2),d0 add.w (AIRFLOW_KE_MANIFOLD_PRESSURE_HYSTERESIS).l,d0 ; Pressure boundary hysteresis for changing manifold pressure zones. ; kPa cmpi.w #$14FF,d0 bls.s loc_7A7F4 move.w #$14FF,d0 loc_7A7F4: ; CODE XREF: sub_7A65A+194j clr.b d4 move.w (word_FFFFA0D0).w,d5 cmp.w d3,d5 bls.s loc_7A802 cmp.w d0,d5 bls.s loc_7A804 loc_7A802: ; CODE XREF: sub_7A65A+1A2j addq.b #1,d4 loc_7A804: ; CODE XREF: sub_7A65A+14Cj ; sub_7A65A+1A6j tst.b d4 bne.w loc_7A6AC loc_7A80A: ; CODE XREF: sub_7A65A+22j ; sub_7A65A+40j ... movem.l (sp)+,d0-d2/a1 unlk a6 rts ; End of function sub_7A65A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7A812: ; CODE XREF: sub_7A65A+54p var_4 = -4 link a6,#0 move.l a1,-(sp) moveq #1,d3 loc_7A81A: ; CODE XREF: sub_7A812+24j clr.l d5 move.b d3,d5 movea.l var_4(a6),a2 move.w -2(a2),d4 cmp.w AIRFLOW_K_IDLE_THROTTLE_HI.l(d5.w*2),d4 bls.s loc_7A838 addq.b #1,d3 cmpi.b #4,d3 bne.s loc_7A81A loc_7A838: ; CODE XREF: sub_7A812+1Cj move.b d3,-4(a2) moveq #1,d3 loc_7A83E: ; CODE XREF: sub_7A812+54j movea.l var_4(a6),a2 clr.w d5 move.b -4(a2),d5 mulu.w #3,d5 add.b d3,d5 andi.w #$FF,d5 move.w (word_FFFFA0D0).w,d4 cmp.w AIRFLOW_K_ENGINE_SPEED_UPPER_BOUND.l(d5.w*2),d4 bls.s loc_7A868 addq.b #1,d3 cmpi.b #4,d3 bne.s loc_7A83E loc_7A868: ; CODE XREF: sub_7A812+4Cj move.b d3,-3(a2) movea.l var_4(a6),a3 movea.l a3,a2 move.b -4(a2),d3 asl.b #2,d3 add.b -3(a3),d3 subq.b #2,d3 move.b d3,(byte_FFFFA0D4).w unlk a6 rts ; End of function sub_7A812 ; =============== S U B R O U T I N E ======================================= sub_7A886: ; CODE XREF: sub_79AB0p sub_7A99E+18p ... tst.b (AIRFLOW_KE_USE_CHARGE_TEMPERATURE).l beq.s loc_7A896 move.w (word_FFFFB4F0).w,(word_FFFFA0F6).w bra.s locret_7A89C ; --------------------------------------------------------------------------- loc_7A896: ; CODE XREF: sub_7A886+6j move.w (word_FFFFB3EC).w,(word_FFFFA0F6).w locret_7A89C: ; CODE XREF: sub_7A886+Ej rts ; End of function sub_7A886 ; =============== S U B R O U T I N E ======================================= sub_7A89E: ; CODE XREF: sub_79B10+1B2p ; sub_79B10+25Ep ... movem.l d0-d2/d6-a0,-(sp) clr.w (word_FFFFA0E8).w clr.w (word_FFFFA0FE).w clr.w (MaybeLoad).w clr.w d3 move.l #$148,d6 cmp.w d3,d6 bls.s loc_7A8BE clr.w d3 bra.s loc_7A8E4 ; --------------------------------------------------------------------------- loc_7A8BE: ; CODE XREF: sub_7A89E+1Aj cmpi.w #$1333,d3 bcc.s loc_7A8E0 andi.l #$FFFF,d3 sub.l d6,d3 asl.l #8,d3 asl.l #4,d3 bmi.s loc_7A8DC divu.l #$A3D,d3 bra.s loc_7A8E4 ; --------------------------------------------------------------------------- loc_7A8DC: ; CODE XREF: sub_7A89E+32j clr.l d3 bra.s loc_7A8E4 ; --------------------------------------------------------------------------- loc_7A8E0: ; CODE XREF: sub_7A89E+24j move.w #$1C00,d3 loc_7A8E4: ; CODE XREF: sub_7A89E+1Ej ; sub_7A89E+3Cj ... move.w d3,(DefinitelyRpm).w jsr sub_79AB0 movea.w (word_FFFFB292).w,a2 move.w a2,(word_FFFFA0D0).w move.w a2,(word_FFFFA110).w move.w a2,(word_FFFFA112).w move.w a2,(word_FFFFA114).w tst.b (byte_FFFFB370).w beq.s loc_7A910 move.w (word_FFFFA2FA).w,(word_FFFFA0D8).w bra.s loc_7A916 ; --------------------------------------------------------------------------- loc_7A910: ; CODE XREF: sub_7A89E+68j move.w (word_FFFFAB62).w,(word_FFFFA0D8).w loc_7A916: ; CODE XREF: sub_7A89E+70j movea.w (word_FFFFA0D8).w,a2 move.w a2,(word_FFFFA10C).w move.w a2,(word_FFFFA10E).w move.b (AIRFLOW_K_INITIAL_OPERATING_ZONE).l,(byte_FFFFA0D4).w ; Initial engine operating zone. ; Op. Zone # jsr sub_7A60C move.w (word_FFFFB292).w,d1 move.w #$300,d7 cmp.w d1,d7 bls.s loc_7A93E move.l d7,d1 loc_7A93E: ; CODE XREF: sub_7A89E+9Cj sub.w d7,d1 move.w (EngineRPM_PID_000C___).w,d0 cmpi.w #$A000,d0 bls.s loc_7A950 move.w #$A000,d0 bra.s loc_7A95A ; --------------------------------------------------------------------------- loc_7A950: ; CODE XREF: sub_7A89E+AAj move.w #$800,d3 cmp.w d0,d3 bls.s loc_7A95A move.l d3,d0 loc_7A95A: ; CODE XREF: sub_7A89E+B0j ; sub_7A89E+B8j subi.w #$800,d0 lea (AIRFLOW_K_MAIN_VOLUMETRIC_EFFICIENCY).l,a0 ; The volumetric efficiency term used for modeling the air per cylinder for Dyna-Air calculations. ; gm*K/kPa lsr.w #3,d0 moveq #$28,d2 ; '(' jsr (sub_16D6).l move.w d0,(word_FFFFA0D6).w clr.b (byte_FFFFA0F8).w clr.b (byte_FFFFA122).w move.w (word_FFFFA0D6).w,d3 mulu.w (word_FFFFA0D0).w,d3 divu.w (word_FFFFA0F6).w,d3 bvc.s loc_7A98C move.w #$FFFF,d3 loc_7A98C: ; CODE XREF: sub_7A89E+E8j move.w d3,(word_FFFFA0CC).w clr.w (word_FFFFA0DA).w clr.w (word_FFFFA0FA).w movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_7A89E ; =============== S U B R O U T I N E ======================================= sub_7A99E: ; CODE XREF: OS1:00028958p andi.w #$FF,d0 cmpi.w #1,d0 bcs.s locret_7AA24 movea.l off_8A468(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_7A9B2: ; DATA XREF: OS4:0008A470o clr.b (byte_FFFFA124).w jsr sub_7A886 clr.l d3 move.w (AIRFLOW_K_CYLINDER_VOLUME).l,d3 ; Volume of each cylinder in the engine. ; Liter mulu.l #unk_184AD,d4:d3 divu.l #$C256,d4:d3 cmpi.l #$FFFF,d3 bls.s loc_7A9E0 move.w #$FFFF,d3 loc_7A9E0: ; CODE XREF: sub_7A99E+3Cj move.w d3,(word_FFFFA116).w jsr sub_7A89E movea.w (word_FFFFA106).w,a2 move.w a2,(word_FFFFA0D2).w move.w a2,(word_FFFFA0E4).w move.w a2,(word_FFFFA0C6).w bra.s locret_7AA24 ; --------------------------------------------------------------------------- loc_7A9FC: ; DATA XREF: OS4:0008A488o move.w (word_FFFFA106).w,(word_FFFFA0D2).w bra.s locret_7AA24 ; --------------------------------------------------------------------------- loc_7AA04: ; DATA XREF: OS4:0008A474o ; OS4:0008A480o clr.b (byte_FFFFA124).w jsr sub_7A886 jsr sub_7A89E bra.s locret_7AA24 ; --------------------------------------------------------------------------- loc_7AA16: ; DATA XREF: OS4:0008A46Co ; OS4:0008A478o ... clr.b (byte_FFFFA124).w clr.b (byte_FFFFA0F8).w jsr sub_7A60C locret_7AA24: ; CODE XREF: sub_7A99E+8j ; sub_7A99E+5Cj ... rts ; End of function sub_7A99E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7AA26: ; CODE XREF: DoLoopD+194p var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d2/a0,-(sp) move.w (word_FFFFA25A).w,d0 cmp.w (AIRFLOW_KE_EGR_DUTY_CYCLE_DYNAAIR).l,d0 ; The commanded EGR duty cycle must be at least this value to enable calculation of EGR air mass. ; Percent bls.s loc_7AA9C move.w (word_FFFFB298).w,d0 move.w (word_FFFFA258).w,d1 cmpi.w #$1000,d0 bcc.s loc_7AA4C lsr.w #1,d0 bra.s loc_7AA50 ; --------------------------------------------------------------------------- loc_7AA4C: ; CODE XREF: sub_7AA26+20j move.w #$800,d0 loc_7AA50: ; CODE XREF: sub_7AA26+24j lsr.w #1,d1 moveq #9,d2 movea.l #$8110,a0 jsr sub_2696E move.w d0,(word_FFFFA0FA).w move.w (word_FFFFE1CC).w,d3 move.l d3,d5 mulu.w (word_FFFFA0FA).w,d5 moveq #$11,d3 mulu.l d5,d3 bvs.s loc_7AA7C divu.w #$4316,d3 bvc.s loc_7AA80 loc_7AA7C: ; CODE XREF: sub_7AA26+4Ej move.w #$FFFF,d3 loc_7AA80: ; CODE XREF: sub_7AA26+54j move.w (word_FFFFA0DA).w,var_4(a6) move.w d3,var_2(a6) move.w (AIRFLOW_KE_EGR_AIR_FLOW_FILT_COEF).l,d3 ; The calculated EGRflow for Dyna-Air will be filtered using this coefficient. ; NONE 0-1 tblu.w var_4(a6),d3 move.w d3,(word_FFFFA0DA).w bra.s loc_7AAA0 ; --------------------------------------------------------------------------- loc_7AA9C: ; CODE XREF: sub_7AA26+12j clr.w (word_FFFFA0DA).w loc_7AAA0: ; CODE XREF: sub_7AA26+74j movem.l (sp)+,d0-d2/a0 unlk a6 rts ; End of function sub_7AA26 ; =============== S U B R O U T I N E ======================================= sub_7AAA8: ; CODE XREF: DoLoopG+2Ap DoLoopG+4D0p move.w (word_FFFFF2D6).w,d3 lsr.w #2,d3 asl.w #8,d3 move.w d3,(word_FFFFB3E6).w lsr.w #4,d3 movea.l #$F90A,a2 tbls.w (a2),d3 move.w d3,(word_FFFFB3EA).w jsr sub_6AF7C btst #1,(byte_FFFF88D4).w bne.s loc_7AADA btst #1,(byte_FFFF88D6).w beq.s loc_7AB0E loc_7AADA: ; CODE XREF: sub_7AAA8+28j move.b (byte_FFFF8ACC).w,d4 lsr.b #4,d4 andi.b #3,d4 beq.s loc_7AB0E tst.b (byte_FFFFADBA).w beq.s loc_7AB04 move.w (word_FFFFADB4).w,d4 move.w d4,(word_FFFFB3E8).w move.w (INDUCTION_AIR_KE_INDUCTION_AIR_TEMPERATURE_DEF).l,d3 ; Default induction air temperature used when IAT sensor is failed. ; cmp.w d3,d4 ble.s loc_7AB14 move.w d3,(word_FFFFB3E8).w bra.s loc_7AB14 ; --------------------------------------------------------------------------- loc_7AB04: ; CODE XREF: sub_7AAA8+42j move.w (INDUCTION_AIR_KE_INDUCTION_AIR_TEMPERATURE_DEF).l,(word_FFFFB3E8).w ; Default induction air temperature used when IAT sensor is failed. ; bra.s loc_7AB14 ; --------------------------------------------------------------------------- loc_7AB0E: ; CODE XREF: sub_7AAA8+30j ; sub_7AAA8+3Cj move.w (word_FFFFB3EA).w,(word_FFFFB3E8).w loc_7AB14: ; CODE XREF: sub_7AAA8+54j ; sub_7AAA8+5Aj ... jsr sub_269C2 move.w (word_FFFFB3E8).w,d3 muls.w #5,d3 bpl.s loc_7AB26 addq.w #3,d3 loc_7AB26: ; CODE XREF: sub_7AAA8+7Aj asr.w #2,d3 addi.w #$2225,d3 bvc.s loc_7AB32 bmi.s loc_7AB3E bra.s loc_7AB44 ; --------------------------------------------------------------------------- loc_7AB32: ; CODE XREF: sub_7AAA8+84j cmpi.w #$7FFF,d3 bhi.s loc_7AB44 cmpi.w #$7FFF,d3 bls.s loc_7AB46 loc_7AB3E: ; CODE XREF: sub_7AAA8+86j move.w #$7FFF,d3 bra.s loc_7AB46 ; --------------------------------------------------------------------------- loc_7AB44: ; CODE XREF: sub_7AAA8+88j ; sub_7AAA8+8Ej clr.w d3 loc_7AB46: ; CODE XREF: sub_7AAA8+94j ; sub_7AAA8+9Aj move.w d3,(word_FFFFB3EC).w rts ; End of function sub_7AAA8 ; =============== S U B R O U T I N E ======================================= sub_7AB4C: ; CODE XREF: OS1:00028938p andi.w #$FF,d0 movea.l off_8A10C(d0.w*4),a2 jmp (a2) ; End of function sub_7AB4C ; --------------------------------------------------------------------------- loc_7AB5A: ; DATA XREF: OS4:0008A114o move.w (word_FFFFF2D6).w,d3 lsr.w #2,d3 asl.w #8,d3 move.w d3,(word_FFFFB3E6).w lsr.w #4,d3 movea.l #$F90A,a2 tbls.w (a2),d3 move.w d3,(word_FFFFB3EA).w jsr sub_6AF7C btst #1,(byte_FFFF88D4).w bne.s loc_7AB8C btst #1,(byte_FFFF88D6).w beq.s loc_7ABA2 loc_7AB8C: ; CODE XREF: OS3:0007AB82j move.b (byte_FFFF8ACC).w,d3 lsr.b #4,d3 andi.b #3,d3 beq.s loc_7ABA2 move.w (INDUCTION_AIR_KE_INDUCTION_AIR_TEMPERATURE_DEF).l,(word_FFFFB3E8).w ; Default induction air temperature used when IAT sensor is failed. ; bra.s loc_7ABA8 ; --------------------------------------------------------------------------- loc_7ABA2: ; CODE XREF: OS3:0007AB8Aj ; OS3:0007AB96j move.w (word_FFFFB3EA).w,(word_FFFFB3E8).w loc_7ABA8: ; CODE XREF: OS3:0007ABA0j jsr sub_269C2 move.w (word_FFFFB3E8).w,d3 muls.w #5,d3 bpl.s loc_7ABBA addq.w #3,d3 loc_7ABBA: ; CODE XREF: OS3:0007ABB6j asr.w #2,d3 addi.w #$2225,d3 bvc.s loc_7ABC6 bmi.s loc_7ABD2 bra.s loc_7ABD8 ; --------------------------------------------------------------------------- loc_7ABC6: ; CODE XREF: OS3:0007ABC0j cmpi.w #$7FFF,d3 bhi.s loc_7ABD8 cmpi.w #$7FFF,d3 bls.s loc_7ABDA loc_7ABD2: ; CODE XREF: OS3:0007ABC2j move.w #$7FFF,d3 bra.s loc_7ABDA ; --------------------------------------------------------------------------- loc_7ABD8: ; CODE XREF: OS3:0007ABC4j ; OS3:0007ABCAj clr.w d3 loc_7ABDA: ; CODE XREF: OS3:0007ABD0j ; OS3:0007ABD6j move.w d3,(word_FFFFB3EC).w move.w (word_FFFFB3E8).w,(word_FFFFB3EE).w move.w (word_FFFFB3E8).w,(word_FFFFB3F0).w tst.b (byte_FFFFB54A).w bne.s locret_7AC3A move.w #$200,(word_FFFF82E0).w bra.s locret_7AC3A ; --------------------------------------------------------------------------- loc_7ABF8: ; DATA XREF: OS4:0008A12Co move.w (word_FFFFB3E8).w,(word_FFFFB3F0).w bra.s locret_7AC3A ; --------------------------------------------------------------------------- loc_7AC00: ; DATA XREF: OS4:off_8A10Co ; OS4:0008A110o ... bra.s locret_7AC3A ; --------------------------------------------------------------------------- loc_7AC02: ; DATA XREF: OS4:0008A118o move.w (word_FFFFB3E8).w,d3 muls.w #5,d3 bpl.s loc_7AC0E addq.w #3,d3 loc_7AC0E: ; CODE XREF: OS3:0007AC0Aj asr.w #2,d3 addi.w #$2225,d3 bvc.s loc_7AC1A bmi.s loc_7AC26 bra.s loc_7AC2C ; --------------------------------------------------------------------------- loc_7AC1A: ; CODE XREF: OS3:0007AC14j cmpi.w #$7FFF,d3 bhi.s loc_7AC2C cmpi.w #$7FFF,d3 bls.s loc_7AC2E loc_7AC26: ; CODE XREF: OS3:0007AC16j move.w #$7FFF,d3 bra.s loc_7AC2E ; --------------------------------------------------------------------------- loc_7AC2C: ; CODE XREF: OS3:0007AC18j ; OS3:0007AC1Ej clr.w d3 loc_7AC2E: ; CODE XREF: OS3:0007AC24j ; OS3:0007AC2Aj move.w d3,(word_FFFFB3EC).w bra.s locret_7AC3A ; --------------------------------------------------------------------------- loc_7AC34: ; DATA XREF: OS4:0008A11Co move.w (word_FFFFB3E8).w,(word_FFFF82E0).w locret_7AC3A: ; CODE XREF: OS3:0007ABEEj ; OS3:0007ABF6j ... rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7AC3C: ; CODE XREF: DoLoopF:loc_2AC6Cp var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d1,-(sp) move.w (word_FFFFA0DC).w,d3 cmpi.w #$4B00,d3 bls.s loc_7AC52 move.w #$4B00,d3 loc_7AC52: ; CODE XREF: sub_7AC3C+10j andi.l #$FFFF,d3 moveq #5,d1 divu.w d1,d3 move.l d3,d0 tblu.w (INLET_TEMP_KV_CHARGE_TEMPERATURE_BIAS).l,d0 move.w #$800,d4 move.w (CoolantTemperatureOrDefault).w,d5 sub.w (word_FFFFB3E8).w,d5 muls.w d0,d5 divs.w d4,d5 bvc.s loc_7AC80 swap d5 eor.w d4,d5 bmi.s loc_7AC8A bra.s loc_7AC84 ; --------------------------------------------------------------------------- loc_7AC80: ; CODE XREF: sub_7AC3C+3Aj move.w d5,d4 bra.s loc_7AC8E ; --------------------------------------------------------------------------- loc_7AC84: ; CODE XREF: sub_7AC3C+42j move.w #$7FFF,d4 bra.s loc_7AC8E ; --------------------------------------------------------------------------- loc_7AC8A: ; CODE XREF: sub_7AC3C+40j move.w #$8000,d4 loc_7AC8E: ; CODE XREF: sub_7AC3C+46j ; sub_7AC3C+4Cj add.w (word_FFFFB3E8).w,d4 bvc.s loc_7ACA0 bpl.s loc_7AC9C move.w #$7FFF,d4 bra.s loc_7ACA0 ; --------------------------------------------------------------------------- loc_7AC9C: ; CODE XREF: sub_7AC3C+58j move.w #$8000,d4 loc_7ACA0: ; CODE XREF: sub_7AC3C+56j ; sub_7AC3C+5Ej cmpi.w #$DFF,d4 bgt.s loc_7ACAE cmpi.w #$FC00,d4 blt.s loc_7ACB4 bra.s loc_7ACB8 ; --------------------------------------------------------------------------- loc_7ACAE: ; CODE XREF: sub_7AC3C+68j move.w #$DFF,d4 bra.s loc_7ACB8 ; --------------------------------------------------------------------------- loc_7ACB4: ; CODE XREF: sub_7AC3C+6Ej move.w #$FC00,d4 loc_7ACB8: ; CODE XREF: sub_7AC3C+70j ; sub_7AC3C+76j tblu.w (INLET_TEMP_KV_CHARGE_TEMPERATURE_FILTER).l,d3 move.w (word_FFFFB4EE).w,var_4(a6) move.w d4,var_2(a6) tbls.w var_4(a6),d3 move.w d3,(word_FFFFB4EE).w muls.w d1,d3 bpl.s loc_7ACDA addq.w #3,d3 loc_7ACDA: ; CODE XREF: sub_7AC3C+9Aj asr.w #2,d3 addi.w #$2225,d3 bvc.s loc_7ACE6 bmi.s loc_7ACF2 bra.s loc_7ACF8 ; --------------------------------------------------------------------------- loc_7ACE6: ; CODE XREF: sub_7AC3C+A4j cmpi.w #$7FFF,d3 bhi.s loc_7ACF8 cmpi.w #$7FFF,d3 bls.s loc_7ACFA loc_7ACF2: ; CODE XREF: sub_7AC3C+A6j move.w #$7FFF,d3 bra.s loc_7ACFA ; --------------------------------------------------------------------------- loc_7ACF8: ; CODE XREF: sub_7AC3C+A8j ; sub_7AC3C+AEj clr.w d3 loc_7ACFA: ; CODE XREF: sub_7AC3C+B4j ; sub_7AC3C+BAj move.w d3,(word_FFFFB4F0).w move.w (word_FFFFB4EE).w,d3 cmpi.w #$FC00,d3 bge.s loc_7AD0C move.w #$FC00,d3 loc_7AD0C: ; CODE XREF: sub_7AC3C+CAj addi.w #$400,d3 tblu.w (INLET_TEMP_KV_CHARGE_TEMPERATURE_SQUARE_ROO).l,d3 move.w d3,(word_FFFFB4F2).w movem.l (sp)+,d0-d1 unlk a6 rts ; End of function sub_7AC3C ; =============== S U B R O U T I N E ======================================= sub_7AD24: ; CODE XREF: OS1:00028950p cmpi.b #2,d0 bne.s locret_7AD7C move.w (CoolantTemperatureOrDefault).w,d3 move.w d3,(word_FFFFB4EE).w muls.w #5,d3 bpl.s loc_7AD3A addq.w #3,d3 loc_7AD3A: ; CODE XREF: sub_7AD24+12j asr.w #2,d3 addi.w #$2225,d3 bvc.s loc_7AD46 bmi.s loc_7AD52 bra.s loc_7AD58 ; --------------------------------------------------------------------------- loc_7AD46: ; CODE XREF: sub_7AD24+1Cj cmpi.w #$7FFF,d3 bhi.s loc_7AD58 cmpi.w #$7FFF,d3 bls.s loc_7AD5A loc_7AD52: ; CODE XREF: sub_7AD24+1Ej move.w #$7FFF,d3 bra.s loc_7AD5A ; --------------------------------------------------------------------------- loc_7AD58: ; CODE XREF: sub_7AD24+20j ; sub_7AD24+26j clr.w d3 loc_7AD5A: ; CODE XREF: sub_7AD24+2Cj ; sub_7AD24+32j move.w d3,(word_FFFFB4F0).w move.w (word_FFFFB4EE).w,d3 cmpi.w #$FC00,d3 bge.s loc_7AD6C move.w #$FC00,d3 loc_7AD6C: ; CODE XREF: sub_7AD24+42j addi.w #$400,d3 tblu.w (INLET_TEMP_KV_CHARGE_TEMPERATURE_SQUARE_ROO).l,d3 move.w d3,(word_FFFFB4F2).w locret_7AD7C: ; CODE XREF: sub_7AD24+4j rts ; End of function sub_7AD24 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7AD7E: ; CODE XREF: DoLoopF+13Ap var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a0,-(sp) tst.b (byte_FFFFB370).w beq.s loc_7AD94 move.w (word_FFFF9050).w,(word_FFFFB342).w bra.s loc_7AD9A ; --------------------------------------------------------------------------- loc_7AD94: ; CODE XREF: sub_7AD7E+Cj move.w (word_FFFFAB66).w,(word_FFFFB342).w loc_7AD9A: ; CODE XREF: sub_7AD7E+14j btst #1,(byte_FFFF88CE).w bne.s loc_7ADAA btst #1,(byte_FFFF88D0).w beq.s loc_7ADBC loc_7ADAA: ; CODE XREF: sub_7AD7E+22j move.w (BAROMETER_KE_BARO_DEFAULT_MAP_FAILED).l,(word_FFFF82D2).w ; Default barometric pressure used if MAP sensor fails. ; kPa move.b #1,(byte_FFFF82D4).w bra.w loc_7AF10 ; --------------------------------------------------------------------------- loc_7ADBC: ; CODE XREF: sub_7AD7E+2Aj cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_7AF10 move.w (word_FFFFB342).w,d0 cmp.w (BAROMETER_KE_BARO_TPS_LIMIT).l,d0 ; Minimum throttle position to allow a part throttle barometer update. ; Percent bls.w loc_7AEC6 move.l d0,d6 sub.w (word_FFFFB33E).w,d6 bcc.s loc_7ADDE neg.w d6 loc_7ADDE: ; CODE XREF: sub_7AD7E+5Cj cmp.w (BAROMETER_KE_BARO_TPS_DELTA_LIMIT).l,d6 ; Minimum change in throttle position during last 100 mS to allow a part throttle barometer update. ; Percent bhi.w loc_7AEC6 move.w (word_FFFFB294).w,d3 sub.w (word_FFFFB338).w,d3 bcc.s loc_7ADF4 neg.w d3 loc_7ADF4: ; CODE XREF: sub_7AD7E+72j cmp.w (BAROMETER_KE_BARO_MAP_DELTA_LIMIT).l,d3 ; Maximum change in manifold pressure during last 100 mS to allow a part throttle barometer update. ; kPa bhi.w loc_7AEC6 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (BAROMETER_KE_MAX_RPM_FOR_BARO_UPDATE).l,d3 ; Maximum RPM at which to allow a barometric pressure update. ; RPM bhi.w loc_7AEC6 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (BAROMETER_KE_MIN_RPM_FOR_BARO_UPDATE).l,d3 ; Minimum RPM at which to allow a barometric pressure update. ; RPM bcs.w loc_7AEC6 move.w (word_FFFFB33A).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (BAROMETER_KE_BARO_STABILITY_TIME).l,d3 ; Minimum time MAP and throttle must be stable to allow a part throttle barometer update. ; Seconds bls.w loc_7AEE2 moveq #1,d6 move.b d6,(byte_FFFFB33C).w move.w (EngineRPM_PID_000C___).w,d1 clr.w d3 move.l #$800,d7 cmp.w d1,d7 bls.s loc_7AE4C move.l d3,d1 bra.s loc_7AE62 ; --------------------------------------------------------------------------- loc_7AE4C: ; CODE XREF: sub_7AD7E+C8j cmpi.w #$9000,d1 bcc.s loc_7AE5E andi.l #$FFFF,d1 sub.l d7,d1 lsr.w #3,d1 bra.s loc_7AE62 ; --------------------------------------------------------------------------- loc_7AE5E: ; CODE XREF: sub_7AD7E+D2j move.w #$1100,d1 loc_7AE62: ; CODE XREF: sub_7AD7E+CCj ; sub_7AD7E+DEj lsr.w #1,d0 moveq #$B,d2 movea.l #$8960,a0 jsr sub_2696E move.w d0,d3 move.w (word_FFFF82D2).w,d4 cmpi.w #$D00,d4 bcc.s loc_7AE82 clr.w d4 bra.s loc_7AE86 ; --------------------------------------------------------------------------- loc_7AE82: ; CODE XREF: sub_7AD7E+FEj subi.w #$D00,d4 loc_7AE86: ; CODE XREF: sub_7AD7E+102j movea.l #$894E,a2 tblu.w (a2),d4 mulu.w d4,d3 lsr.l #8,d3 lsr.l #4,d3 cmp.w (BAROMETER_KE_MAX_BARO_OFFSET_FOR_UPDATE).l,d3 ; Maximum calculated barometric pressure offset to allow baro update. ; kPa bcc.s loc_7AEAE add.w (word_FFFFB294).w,d3 cmpi.w #$14FF,d3 bls.s loc_7AEBC move.w #$14FF,d3 bra.s loc_7AEBC ; --------------------------------------------------------------------------- loc_7AEAE: ; CODE XREF: sub_7AD7E+11Ej move.w (word_FFFFB294).w,d3 move.w (word_FFFF82D2).w,d4 cmp.w d4,d3 bhi.s loc_7AEBC move.l d4,d3 loc_7AEBC: ; CODE XREF: sub_7AD7E+128j ; sub_7AD7E+12Ej ... move.w d3,(word_FFFFB340).w move.b d6,(byte_FFFFB336).w bra.s loc_7AEE2 ; --------------------------------------------------------------------------- loc_7AEC6: ; CODE XREF: sub_7AD7E+52j ; sub_7AD7E+66j ... clr.b (byte_FFFFB33C).w move.w (GlobalClock).w,(word_FFFFB33A).w move.w (word_FFFFB294).w,d3 move.w (word_FFFF82D2).w,d4 cmp.w d4,d3 bhi.s loc_7AEDE move.l d4,d3 loc_7AEDE: ; CODE XREF: sub_7AD7E+15Cj move.w d3,(word_FFFFB340).w loc_7AEE2: ; CODE XREF: sub_7AD7E+B0j ; sub_7AD7E+146j move.w (word_FFFF82D2).w,d2 move.w (word_FFFFB340).w,d1 move.b (BAROMETER_KE_BARO_FILTER_COEFFICIENT).l,d0 ; Barometer value update rate lag filter time constant. ; Coefficient jsr sub_265AE move.w d0,(word_FFFFB340).w move.w #$C00,d4 cmp.w d0,d4 bls.s loc_7AF08 move.w d4,(word_FFFF82D2).w bra.s loc_7AF0C ; --------------------------------------------------------------------------- loc_7AF08: ; CODE XREF: sub_7AD7E+182j move.w d0,(word_FFFF82D2).w loc_7AF0C: ; CODE XREF: sub_7AD7E+188j clr.b (byte_FFFF82D4).w loc_7AF10: ; CODE XREF: sub_7AD7E+3Aj ; sub_7AD7E+44j move.w (word_FFFFB342).w,(word_FFFFB33E).w move.w (word_FFFFB294).w,(word_FFFFB338).w move.w (word_FFFF82D2).w,d3 move.w #$D00,d4 cmp.w d3,d4 bls.s loc_7AF2C clr.w d3 bra.s loc_7AF2E ; --------------------------------------------------------------------------- loc_7AF2C: ; CODE XREF: sub_7AD7E+1A8j sub.w d4,d3 loc_7AF2E: ; CODE XREF: sub_7AD7E+1ACj move.w d3,(word_FFFFAEEE).w lsr.w #1,d3 move.w d3,(word_FFFFAEF0).w movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_7AD7E ; =============== S U B R O U T I N E ======================================= sub_7AF40: ; CODE XREF: OS1:000289F8p cmpi.b #4,d0 beq.s loc_7AFA0 cmpi.b #2,d0 bne.s locret_7AFBC tst.b (byte_FFFFB54A).w bne.s loc_7AF5E move.w #$1000,(word_FFFF82D2).w move.b #1,(byte_FFFF82D4).w loc_7AF5E: ; CODE XREF: sub_7AF40+10j btst #1,(byte_FFFF88CE).w bne.s loc_7AF6E btst #1,(byte_FFFF88D0).w beq.s loc_7AF7E loc_7AF6E: ; CODE XREF: sub_7AF40+24j move.w (BAROMETER_KE_BARO_DEFAULT_MAP_FAILED).l,(word_FFFF82D2).w ; Default barometric pressure used if MAP sensor fails. ; kPa move.b #1,(byte_FFFF82D4).w bra.s loc_7AF90 ; --------------------------------------------------------------------------- loc_7AF7E: ; CODE XREF: sub_7AF40+2Cj move.w (word_FFFFB294).w,d3 cmp.w (word_FFFF82D2).w,d3 bls.s loc_7AF90 move.w d3,(word_FFFF82D2).w clr.b (byte_FFFF82D4).w loc_7AF90: ; CODE XREF: sub_7AF40+3Cj ; sub_7AF40+46j move.w (word_FFFF82D2).w,d3 move.w #$D00,d4 cmp.w d3,d4 bls.s loc_7AFB0 loc_7AF9C: ; CODE XREF: sub_7AF40+6Ej clr.w d3 bra.s loc_7AFB2 ; --------------------------------------------------------------------------- loc_7AFA0: ; CODE XREF: sub_7AF40+4j move.w (word_FFFFB294).w,d3 move.w d3,(word_FFFF82D2).w move.w #$D00,d4 cmp.w d3,d4 bhi.s loc_7AF9C loc_7AFB0: ; CODE XREF: sub_7AF40+5Aj sub.w d4,d3 loc_7AFB2: ; CODE XREF: sub_7AF40+5Ej move.w d3,(word_FFFFAEEE).w lsr.w #1,d3 move.w d3,(word_FFFFAEF0).w locret_7AFBC: ; CODE XREF: sub_7AF40+Aj rts ; End of function sub_7AF40 ; =============== S U B R O U T I N E ======================================= sub_7AFBE: ; CODE XREF: DoLoopE+1B8p movem.l d0-d1,-(sp) move.b (byte_FFFFA59C).w,d3 tst.b (byte_FFFFA194).w beq.s loc_7B03E moveq #3,d1 cmp.b (ThrottleControlMode2?).w,d1 bne.s loc_7B03E btst #6,d3 bne.s loc_7B03E tst.b (byte_FFFF90D2).w beq.s loc_7B03E tst.b (byte_FFFF90D1).w bne.s loc_7B03E btst #1,(byte_FFFF899A).w bne.s loc_7B03E btst #1,(byte_FFFF899C).w bne.s loc_7B03E btst #1,(byte_FFFF8A4E).w bne.s loc_7B03E jsr sub_7B2B2 tst.b d0 beq.s loc_7B03E btst #1,(byte_FFFF89E4).w bne.s loc_7B03E btst #1,(byte_FFFF89E6).w bne.s loc_7B03E move.b (byte_FFFF90D5).w,d3 or.b (byte_FFFF93EA).w,d3 bne.s loc_7B03E move.w (word_FFFF90EA).w,d3 cmp.w (BRAKE_IO_KE_BRAKE_ENABLE_WHEEL_SPD).l,d3 ; Wheel speed at or above which the brake switch monitoring cycle begins. ; MPH bcs.s loc_7B036 moveq #1,d1 move.b d1,(byte_FFFFAF42).w bra.s loc_7B042 ; --------------------------------------------------------------------------- loc_7B036: ; CODE XREF: sub_7AFBE+6Ej cmp.w (BRAKE_IO_KE_BRAKE_DISABLE_WHEEL_SPD).l,d3 ; Wheel speed at or below which the brake switch monitoring cycle ends. ; MPH bhi.s loc_7B042 loc_7B03E: ; CODE XREF: sub_7AFBE+Cj ; sub_7AFBE+14j ... clr.b (byte_FFFFAF42).w loc_7B042: ; CODE XREF: sub_7AFBE+76j ; sub_7AFBE+7Ej tst.b (byte_FFFFAF42).w beq.w loc_7B136 move.w (word_FFFFAF4A).w,d3 sub.w (word_FFFF90EA).w,d3 bcc.s loc_7B056 clr.w d3 loc_7B056: ; CODE XREF: sub_7AFBE+94j move.w d3,(word_FFFFAF4E).w cmp.w (BRAKE_IO_KE_BRAKE_DIAG_SPEED_DELTA).l,d3 ; Check brake inputs if vehicle speed is decelerating more than this value over a 250 msec. period. ; MPH bls.w loc_7B136 tst.b (byte_FFFFB370).w beq.s loc_7B06E addq.b #1,(byte_FFFFAF47).w loc_7B06E: ; CODE XREF: sub_7AFBE+AAj move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d3 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type moveq #2,d1 cmp.b d3,d1 bne.s loc_7B07E addq.b #1,(byte_FFFFAF49).w loc_7B07E: ; CODE XREF: sub_7AFBE+BAj tst.b (byte_FFFFB370).w beq.s loc_7B0BA tst.b (byte_FFFFAF3C).w bne.s loc_7B0BA move.b (byte_FFFFAF3D).w,d0 or.b (byte_FFFFAF3E).w,d0 beq.s loc_7B0BA move.b (byte_FFFFAF46).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFAF46).w cmp.b (BRAKE_IO_KE_BRAKE_ETM_FAIL_COUNT).l,d3 ; If the fail count exceeds this value, ETM brake diagnostic fails. ; Counts bcs.s loc_7B0F0 move.w #$C6,d0 ; '?' jsr sub_5F110 clr.b (byte_FFFFAF47).w clr.b (byte_FFFFAF46).w bra.s loc_7B0F0 ; --------------------------------------------------------------------------- loc_7B0BA: ; CODE XREF: sub_7AFBE+C4j ; sub_7AFBE+CAj ... cmp.b d3,d1 bne.s loc_7B0F0 tst.b (byte_FFFFAF3D).w bne.s loc_7B0F0 move.b (byte_FFFFAF3C).w,d3 or.b (byte_FFFFAF3E).w,d3 beq.s loc_7B0F0 move.b (byte_FFFFAF48).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFAF48).w cmp.b (BRAKE_IO_KE_BRAKE_CRZ_FAIL_COUNT).l,d3 ; If the fail count exceeds this value, TCC brake diagnostic fails. ; Counts bcs.s loc_7B0F0 moveq #$7B,d0 ; '{' jsr sub_5F110 clr.b (byte_FFFFAF49).w clr.b (byte_FFFFAF48).w loc_7B0F0: ; CODE XREF: sub_7AFBE+E6j ; sub_7AFBE+FAj ... move.b (byte_FFFFAF47).w,d0 cmp.b (BRAKE_IO_KE_BRAKE_ETM_SAMPLE_COUNT).l,d0 ; If the sample count exceeds this value, ETM brake diagnostic is passed. ; Counts bcs.s loc_7B10E move.w #$C6,d0 ; '?' jsr sub_5F0BE clr.b (byte_FFFFAF47).w clr.b (byte_FFFFAF46).w loc_7B10E: ; CODE XREF: sub_7AFBE+13Cj move.b (byte_FFFFAF49).w,d0 cmp.b (BRAKE_IO_KE_BRAKE_CRZ_SAMPLE_COUNT).l,d0 ; If the sample count exceeds this value, TCC brake diagnostic is passed. ; Counts bcs.s loc_7B12A moveq #$7B,d0 ; '{' jsr sub_5F0BE clr.b (byte_FFFFAF49).w clr.b (byte_FFFFAF48).w loc_7B12A: ; CODE XREF: sub_7AFBE+15Aj clr.b (byte_FFFFAF3D).w clr.b (byte_FFFFAF3C).w clr.b (byte_FFFFAF3E).w loc_7B136: ; CODE XREF: sub_7AFBE+88j ; sub_7AFBE+A2j move.w (word_FFFF90EA).w,(word_FFFFAF4A).w move.b (byte_FFFFA59C).w,d3 tst.b (byte_FFFFA1A2).w beq.s loc_7B1B8 cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_7B1B8 btst #6,d3 bne.s loc_7B1B8 tst.b (byte_FFFF90D2).w beq.s loc_7B1B8 tst.b (byte_FFFF90D1).w bne.s loc_7B1B8 btst #1,(byte_FFFF899A).w bne.s loc_7B1B8 btst #1,(byte_FFFF899C).w bne.s loc_7B1B8 btst #1,(byte_FFFF8A4C).w bne.s loc_7B1B8 jsr sub_7B2B2 tst.b d0 beq.s loc_7B1B8 btst #1,(byte_FFFF89E4).w bne.s loc_7B1B8 btst #1,(byte_FFFF89E6).w bne.s loc_7B1B8 move.b (byte_FFFF90D5).w,d3 or.b (byte_FFFF93EA).w,d3 bne.s loc_7B1B8 move.w (word_FFFF90EA).w,d3 cmp.w (BRAKE_IO_KE_BRAKE_ENABLE_WHEEL_SPD).l,d3 ; Wheel speed at or above which the brake switch monitoring cycle begins. ; MPH bcs.s loc_7B1B0 move.b #1,(byte_FFFFAF43).w bra.s loc_7B1BC ; --------------------------------------------------------------------------- loc_7B1B0: ; CODE XREF: sub_7AFBE+1E8j cmp.w (BRAKE_IO_KE_BRAKE_DISABLE_WHEEL_SPD).l,d3 ; Wheel speed at or below which the brake switch monitoring cycle ends. ; MPH bhi.s loc_7B1BC loc_7B1B8: ; CODE XREF: sub_7AFBE+186j ; sub_7AFBE+18Ej ... clr.b (byte_FFFFAF43).w loc_7B1BC: ; CODE XREF: sub_7AFBE+1F0j ; sub_7AFBE+1F8j tst.b (byte_FFFFAF43).w beq.s loc_7B23C move.w (word_FFFFAF4C).w,d3 sub.w (word_FFFF90EA).w,d3 bcc.s loc_7B1CE clr.w d3 loc_7B1CE: ; CODE XREF: sub_7AFBE+20Cj move.w d3,(word_FFFFAF50).w cmp.w (BRAKE_IO_KE_BRAKE_DIAG_SPEED_DELTA).l,d3 ; Check brake inputs if vehicle speed is decelerating more than this value over a 250 msec. period. ; MPH bls.s loc_7B23C addq.b #1,(byte_FFFFAF45).w tst.b (byte_FFFFAF41).w bne.s loc_7B212 move.b (byte_FFFFAF40).w,d3 or.b (byte_FFFFAF3F).w,d3 beq.s loc_7B212 move.b (byte_FFFFAF44).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFAF44).w cmp.b (BRAKE_IO_KE_EXTENDED_TRAVEL_BRAKE_FAIL_CO).l,d3 ; If the fail count exceeds this value,extended travel brake diagnostic fails. ; Counts bcs.s loc_7B212 move.w #$C7,d0 ; '?' jsr sub_5F110 clr.b (byte_FFFFAF44).w clr.b (byte_FFFFAF45).w loc_7B212: ; CODE XREF: sub_7AFBE+224j ; sub_7AFBE+22Ej ... move.b (byte_FFFFAF45).w,d0 cmp.b (BRAKE_IO_KE_EXTENDED_TRAVEL_BRAKE_SAMPLE_).l,d0 ; If the sample count exceeds this value,extended travel brake diagnostic is passed. ; Counts bcs.s loc_7B230 move.w #$C7,d0 ; '?' jsr sub_5F0BE clr.b (byte_FFFFAF44).w clr.b (byte_FFFFAF45).w loc_7B230: ; CODE XREF: sub_7AFBE+25Ej clr.b (byte_FFFFAF40).w clr.b (byte_FFFFAF3F).w clr.b (byte_FFFFAF41).w loc_7B23C: ; CODE XREF: sub_7AFBE+202j ; sub_7AFBE+21Aj move.w (word_FFFF90EA).w,(word_FFFFAF4C).w movem.l (sp)+,d0-d1 rts ; End of function sub_7AFBE ; =============== S U B R O U T I N E ======================================= sub_7B248: ; CODE XREF: DoLoopD+15Ap movem.l d0-d1,-(sp) tst.b (byte_FFFFAF42).w beq.s loc_7B27C tst.b (byte_FFFFAF3A).w beq.s loc_7B25E move.b #1,(byte_FFFFAF3D).w loc_7B25E: ; CODE XREF: sub_7B248+Ej btst #5,(word_FFFFA594).w beq.s loc_7B26C move.b #1,(byte_FFFFAF3C).w loc_7B26C: ; CODE XREF: sub_7B248+1Cj jsr sub_7B6F8 tst.b d0 beq.s loc_7B27C move.b #1,(byte_FFFFAF3E).w loc_7B27C: ; CODE XREF: sub_7B248+8j ; sub_7B248+2Cj tst.b (byte_FFFFAF43).w beq.s loc_7B2AC tst.b (byte_FFFFAF3A).w beq.s loc_7B28E move.b #1,(byte_FFFFAF40).w loc_7B28E: ; CODE XREF: sub_7B248+3Ej btst #5,(word_FFFFA594).w beq.s loc_7B29C move.b #1,(byte_FFFFAF3F).w loc_7B29C: ; CODE XREF: sub_7B248+4Cj jsr sub_7B6F8 tst.b d0 beq.s loc_7B2AC move.b #1,(byte_FFFFAF41).w loc_7B2AC: ; CODE XREF: sub_7B248+38j ; sub_7B248+5Cj movem.l (sp)+,d0-d1 rts ; End of function sub_7B248 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7B2B2: ; CODE XREF: sub_7AFBE+40p ; sub_7AFBE+1BAp var_2 = -2 link a6,#-2 movem.l d1/a0,-(sp) move.w (BRAKE_IO_KE_BRAKE_TEST_ENGINE_SPEED).l,d0 ; Engine speed above which for a continuous time period, the brake monitoring is allowed to begin. ; RPM cmp.w (EngineRPM_PID_000C___).w,d0 bhi.s loc_7B2D8 tst.b (byte_FFFFAF58).w bne.s loc_7B2D8 move.w (GlobalClock).w,(word_FFFFAF52).w move.b #1,(byte_FFFFAF58).w loc_7B2D8: ; CODE XREF: sub_7B2B2+12j ; sub_7B2B2+18j tst.b (byte_FFFFAF58).w beq.s loc_7B310 movea.l #unk_FFAF52,a0 jsr sub_276F4 move.w (word_FFFFAF54).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 move.w d3,(word_FFFFAF56).w cmp.w (EngineRPM_PID_000C___).w,d0 bls.s loc_7B30A add.w d3,(word_FFFFAF52).w clr.b (byte_FFFFAF58).w loc_7B30A: ; CODE XREF: sub_7B2B2+4Ej move.w (GlobalClock).w,(word_FFFFAF54).w loc_7B310: ; CODE XREF: sub_7B2B2+2Aj clr.b d1 tst.b (byte_FFFFAF58).w beq.s loc_7B330 move.w (BRAKE_IO_KE_BRAKE_TEST_RUN_TIME).l,d0 ; Time with engine speed KE_Brake_Test_Engine_Speed to allow brake switch monitoring to begin. ; Seconds movea.l #unk_FFAF52,a0 jsr sub_276D4 tst.b d0 beq.s loc_7B330 addq.b #1,d1 loc_7B330: ; CODE XREF: sub_7B2B2+64j ; sub_7B2B2+7Aj move.l d1,d0 movem.l (sp)+,d1/a0 unlk a6 rts ; End of function sub_7B2B2 ; =============== S U B R O U T I N E ======================================= sub_7B33A: ; CODE XREF: DoLoopD+160p movem.l d0-d2/d6-a0,-(sp) move.b (byte_FFFF9104).w,d4 and.b (byte_FFFF9103).w,d4 clr.b d3 move.b (byte_FFFF90E7).w,d1 beq.s loc_7B358 tst.b (byte_FFFF90E6).w beq.s loc_7B35A tst.b d4 bne.s loc_7B35A loc_7B358: ; CODE XREF: sub_7B33A+12j addq.b #1,d3 loc_7B35A: ; CODE XREF: sub_7B33A+18j ; sub_7B33A+1Cj eori.b #1,d3 or.b d4,d3 move.b d3,(byte_FFFFB2DC).w btst #1,(byte_FFFF88E2).w bne.s loc_7B374 btst #1,(byte_FFFF88E4).w beq.s loc_7B37C loc_7B374: ; CODE XREF: sub_7B33A+30j ; sub_7B33A+64j moveq #1,d3 move.b d3,(byte_FFFFB2DB).w bra.s loc_7B3A0 ; --------------------------------------------------------------------------- loc_7B37C: ; CODE XREF: sub_7B33A+38j tst.b (byte_FFFFB2DB).w beq.s loc_7B394 move.w (word_FFFFAB66).w,d3 cmp.w (BRAKE_TORQUE_CONTROL_KE_BTM_THROTTLE_OPEN).l,d3 bls.s loc_7B3A0 clr.b (byte_FFFFB2DB).w bra.s loc_7B3A0 ; --------------------------------------------------------------------------- loc_7B394: ; CODE XREF: sub_7B33A+46j move.w (word_FFFFAB66).w,d3 cmp.w (BRAKE_TORQUE_CONTROL_KE_BTM_THROTTLE_CLOSED).l,d3 bls.s loc_7B374 loc_7B3A0: ; CODE XREF: sub_7B33A+40j ; sub_7B33A+52j ... tst.b (byte_FFFFB378).w beq.s loc_7B3AC tst.b (byte_FFFFB2DB).w bne.s loc_7B3BE loc_7B3AC: ; CODE XREF: sub_7B33A+6Aj clr.b (byte_FFFFB2CF).w loc_7B3B0: ; CODE XREF: sub_7B33A+3B4j clr.b (byte_FFFFB2D0).w move.w #$FFFF,(word_FFFFB2D2).w bra.w loc_7B6F2 ; --------------------------------------------------------------------------- loc_7B3BE: ; CODE XREF: sub_7B33A+70j btst #3,(byte_FFFFB486).w bne.s loc_7B3CE btst #5,(byte_FFFFB486).w beq.s loc_7B3DC loc_7B3CE: ; CODE XREF: sub_7B33A+8Aj move.w (word_FFFF82D2).w,d3 sub.w (word_FFFFB29A).w,d3 bcc.s loc_7B3E0 clr.w d3 bra.s loc_7B3E0 ; --------------------------------------------------------------------------- loc_7B3DC: ; CODE XREF: sub_7B33A+92j move.w (word_FFFFB298).w,d3 loc_7B3E0: ; CODE XREF: sub_7B33A+9Cj ; sub_7B33A+A0j move.w #$1000,d2 cmp.w d3,d2 bls.s loc_7B3EC lsr.w #1,d3 bra.s loc_7B3F0 ; --------------------------------------------------------------------------- loc_7B3EC: ; CODE XREF: sub_7B33A+ACj move.w #$800,d3 loc_7B3F0: ; CODE XREF: sub_7B33A+B0j movea.l #$8B02,a2 tblu.w (a2),d3 move.b (byte_FFFFA3B8).w,d4 moveq #5,d7 cmp.b d4,d7 bcc.s loc_7B410 cmpi.b #9,d4 bne.s loc_7B40E moveq #6,d4 bra.s loc_7B410 ; --------------------------------------------------------------------------- loc_7B40E: ; CODE XREF: sub_7B33A+CEj move.l d7,d4 loc_7B410: ; CODE XREF: sub_7B33A+C8j ; sub_7B33A+D2j andi.w #$FF,d4 move.w BRAKE_TORQUE_CONTROL_KV_EFFECTIVE_GEAR_RATIO.l(d4.w*2),d4 beq.s loc_7B426 tst.w (BRAKE_TORQUE_CONTROL_KE_DRIVELINE_EFFICIENCY).l ; Efficiency of transmission and axle gear multiplication for torque transfer. ; Scaler_1 bne.s loc_7B43A loc_7B426: ; CODE XREF: sub_7B33A+E2j tst.w d3 bne.s loc_7B430 clr.w (word_FFFFB2D6).w bra.s loc_7B46E ; --------------------------------------------------------------------------- loc_7B430: ; CODE XREF: sub_7B33A+EEj movea.w #$FFFF,a0 move.w a0,(word_FFFFB2D6).w bra.s loc_7B46E ; --------------------------------------------------------------------------- loc_7B43A: ; CODE XREF: sub_7B33A+EAj andi.l #$FFFF,d3 asl.l #8,d3 divu.l d7,d3 mulu.w (BRAKE_TORQUE_CONTROL_KE_DRIVELINE_EFFICIENCY).l,d4 ; Efficiency of transmission and axle gear multiplication for torque transfer. ; Scaler_1 divu.l #unk_14000,d4 divu.w d4,d3 bvc.s loc_7B45C move.w #$FFFF,d3 loc_7B45C: ; CODE XREF: sub_7B33A+11Cj mulu.w #$401,d3 divu.w #$100,d3 bvc.s loc_7B46A move.w #$FFFF,d3 loc_7B46A: ; CODE XREF: sub_7B33A+12Aj move.w d3,(word_FFFFB2D6).w loc_7B46E: ; CODE XREF: sub_7B33A+F4j ; sub_7B33A+FEj moveq #1,d4 cmp.b (byte_FFFFA67E).w,d4 bne.s loc_7B498 tst.w (BRAKE_TORQUE_CONTROL_KE_TRANSFER_CASE_RATIO).l ; Transfer case gear ratio in 4WDLO for calibration application. ; Scaler_8 beq.s loc_7B498 clr.l d3 move.w (word_FFFFB2D6).w,d3 asl.l #8,d3 asl.l #3,d3 divu.w (BRAKE_TORQUE_CONTROL_KE_TRANSFER_CASE_RATIO).l,d3 ; Transfer case gear ratio in 4WDLO for calibration application. ; Scaler_8 bvc.s loc_7B494 move.w #$FFFF,d3 loc_7B494: ; CODE XREF: sub_7B33A+154j move.w d3,(word_FFFFB2D6).w loc_7B498: ; CODE XREF: sub_7B33A+13Aj ; sub_7B33A+142j move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d0 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type moveq #2,d5 cmp.b d0,d5 bne.s loc_7B4AC move.w (word_FFFFB2D6).w,(word_FFFFB2D4).w bra.s loc_7B502 ; --------------------------------------------------------------------------- loc_7B4AC: ; CODE XREF: sub_7B33A+168j move.b (byte_FFFF95DF).w,d4 movea.w #$10EF,a2 andi.w #$FF,d4 asl.w #4,d4 tblu.w (XMSN_IO_KV_CONVERTER_TORQUE_RATIO).l,d4 ; Ratio used to determine gearbox torque. ; Ratio move.w (word_FFFFB2D6).w,d3 mulu.w (XMSN_IO_KE_DRIVE_SPROKET_RATIO).l,d3 ; Turbine shaft and Input shaft interconnect chain ratio. ; Ratio divu.w d2,d3 bvc.s loc_7B4D4 move.w #$FFFF,d3 loc_7B4D4: ; CODE XREF: sub_7B33A+194j tst.w d4 bne.s loc_7B4EC tst.w d3 bne.s loc_7B4E2 clr.w (word_FFFFB2D4).w bra.s loc_7B502 ; --------------------------------------------------------------------------- loc_7B4E2: ; CODE XREF: sub_7B33A+1A0j movea.w #$FFFF,a0 move.w a0,(word_FFFFB2D4).w bra.s loc_7B502 ; --------------------------------------------------------------------------- loc_7B4EC: ; CODE XREF: sub_7B33A+19Cj andi.l #$FFFF,d3 asl.l #8,d3 asl.l #4,d3 divu.w d4,d3 bvc.s loc_7B4FE move.w #$FFFF,d3 loc_7B4FE: ; CODE XREF: sub_7B33A+1BEj move.w d3,(word_FFFFB2D4).w loc_7B502: ; CODE XREF: sub_7B33A+170j ; sub_7B33A+1A6j ... tst.b d1 beq.s loc_7B512 tst.b (byte_FFFF93F8).w bne.s loc_7B512 tst.b (byte_FFFF93F7).w beq.s loc_7B524 loc_7B512: ; CODE XREF: sub_7B33A+1CAj ; sub_7B33A+1D0j move.w (word_FFFFB2D4).w,d3 mulu.w (BRAKE_TORQUE_CONTROL_KE_TCS_FAIL_TRQ_ALLOWED_FACTOR).l,d3 ; Scale factor applied to the Engine_Torque_Allowed parameterwhen traction control is known to be inactive. ; Scaler 0-1 lsr.l #8,d3 lsr.l #3,d3 move.w d3,(word_FFFFB2D4).w loc_7B524: ; CODE XREF: sub_7B33A+1D6j tst.b (byte_FFFFB2CF).w beq.s loc_7B544 move.w (word_FFFFB2D4).w,d3 sub.w (BRAKE_TORQUE_CONTROL_KE_BTM_TORQUE_HYSTERESIS).l,d3 ; Hysteresis on the torque limit applied to prevent cycling in and out of limiting. ; Foot Pounds bcc.s loc_7B538 clr.w d3 loc_7B538: ; CODE XREF: sub_7B33A+1FAj move.w d3,(word_FFFFB2D4).w move.w (BRAKE_TORQUE_CONTROL_KE_BTM_RPM_OVERSPEED_ENABLE_LO).l,d6 ; Once Brake Torque Management is enabled, engine speed must be at least this amount above desired idle speed to maintain BTM. ; RPM bra.s loc_7B54A ; --------------------------------------------------------------------------- loc_7B544: ; CODE XREF: sub_7B33A+1EEj move.w (BRAKE_TORQUE_CONTROL_KE_BTM_RPM_OVERSPEED_ENABLE_HI).l,d6 ; Current engine speed must be at least this amount above desired idle speed to initially enable brake torque management. ; RPM loc_7B54A: ; CODE XREF: sub_7B33A+208j cmp.b d0,d5 bne.s loc_7B5A6 clr.b d1 jsr sub_7B6F8 tst.b d0 bne.s loc_7B56C btst #1,(byte_FFFF8A4E).w bne.s loc_7B56C moveq #1,d4 cmp.b (VEH_SYS_KE_PLATFORM).l,d4 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type beq.s loc_7B5A0 loc_7B56C: ; CODE XREF: sub_7B33A+21Ej ; sub_7B33A+226j tst.b (byte_FFFFAF3A).w bne.s loc_7B582 btst #1,(byte_FFFF89E6).w bne.s loc_7B582 btst #1,(byte_FFFF89E4).w beq.s loc_7B5A0 loc_7B582: ; CODE XREF: sub_7B33A+236j ; sub_7B33A+23Ej clr.l d3 move.w (word_FFFFB2D4).w,d3 move.w (word_FFFF9E26).w,d4 ext.l d4 cmp.l d3,d4 ble.s loc_7B5A0 tst.b (byte_FFFFB2DC).w beq.s loc_7B59E tst.b (byte_FFFFA59F).w beq.s loc_7B5A0 loc_7B59E: ; CODE XREF: sub_7B33A+25Cj addq.b #1,d1 loc_7B5A0: ; CODE XREF: sub_7B33A+230j ; sub_7B33A+246j ... move.b d1,(byte_FFFFB2CF).w bra.s loc_7B61C ; --------------------------------------------------------------------------- loc_7B5A6: ; CODE XREF: sub_7B33A+212j move.w (EngineRPM_PID_000C___).w,d1 sub.w (DesiredIdleSpeed).w,d1 bcc.s loc_7B5B2 clr.w d1 loc_7B5B2: ; CODE XREF: sub_7B33A+274j clr.b d2 cmpi.b #1,(VEH_SYS_KE_PLATFORM).l ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type bne.s loc_7B5D0 jsr sub_7B6F8 tst.b d0 bne.s loc_7B5D0 btst #1,(byte_FFFF8A4E).w beq.s loc_7B618 loc_7B5D0: ; CODE XREF: sub_7B33A+282j ; sub_7B33A+28Cj tst.b (byte_FFFFAF3A).w bne.s loc_7B5E6 btst #1,(byte_FFFF89E6).w bne.s loc_7B5E6 btst #1,(byte_FFFF89E4).w beq.s loc_7B618 loc_7B5E6: ; CODE XREF: sub_7B33A+29Aj ; sub_7B33A+2A2j clr.l d3 move.w (word_FFFFB2D4).w,d3 move.w (word_FFFF9E26).w,d4 ext.l d4 cmp.l d3,d4 ble.s loc_7B618 cmp.w d6,d1 bcs.s loc_7B618 cmpi.b #9,(byte_FFFFA3B8).w beq.s loc_7B616 cmpi.b #3,(byte_FFFFA3AF).w bhi.s loc_7B618 tst.b (byte_FFFFB2DC).w beq.s loc_7B616 tst.b (byte_FFFFA59F).w beq.s loc_7B618 loc_7B616: ; CODE XREF: sub_7B33A+2C6j ; sub_7B33A+2D4j addq.b #1,d2 loc_7B618: ; CODE XREF: sub_7B33A+294j ; sub_7B33A+2AAj ... move.b d2,(byte_FFFFB2CF).w loc_7B61C: ; CODE XREF: sub_7B33A+26Aj move.b (byte_FFFFB2CF).w,d3 bne.s loc_7B62E tst.b (byte_FFFFB2DA).w beq.s loc_7B62E moveq #1,d4 move.b d4,(byte_FFFFB2D9).w loc_7B62E: ; CODE XREF: sub_7B33A+2E6j ; sub_7B33A+2ECj move.b d3,(byte_FFFFB2DA).w tst.b d3 beq.s loc_7B63E moveq #1,d4 loc_7B638: ; CODE XREF: sub_7B33A+328j move.b d4,(byte_FFFFB2D0).w bra.s loc_7B664 ; --------------------------------------------------------------------------- loc_7B63E: ; CODE XREF: sub_7B33A+2FAj tst.b (byte_FFFFB2D9).w beq.s loc_7B664 move.w (word_FFFFB2D2).w,d3 add.w (BRAKE_TORQUE_CONTROL_KE_TORQUE_RAMP).l,d3 ; Step size of torque when ramping out of brake torque management. ; Foot Pounds bcc.s loc_7B654 move.w #$FFFF,d3 loc_7B654: ; CODE XREF: sub_7B33A+314j move.w d3,(word_FFFFB2D2).w clr.b (byte_FFFFB2D8).w clr.b (byte_FFFFB2D9).w moveq #2,d4 bra.s loc_7B638 ; --------------------------------------------------------------------------- loc_7B664: ; CODE XREF: sub_7B33A+302j ; sub_7B33A+308j move.b (byte_FFFFB2D0).w,d3 cmpi.b #1,d3 bne.s loc_7B68E move.w (word_FFFFB2D4).w,d3 sub.w (BRAKE_TORQUE_CONTROL_KE_TORQUE_ALLOW_OFFSET).l,d3 ; Torque offset below the maximum that will set the control target. ; Foot Pounds bcc.s loc_7B67C clr.w d3 loc_7B67C: ; CODE XREF: sub_7B33A+33Ej add.w (BRAKE_TORQUE_CONTROL_KE_BTM_TORQUE_HYSTERESIS).l,d3 ; Hysteresis on the torque limit applied to prevent cycling in and out of limiting. ; Foot Pounds bcc.s loc_7B688 move.w #$FFFF,d3 loc_7B688: ; CODE XREF: sub_7B33A+348j move.w d3,(word_FFFFB2D2).w bra.s loc_7B6F2 ; --------------------------------------------------------------------------- loc_7B68E: ; CODE XREF: sub_7B33A+332j cmpi.b #2,d3 bne.s loc_7B6F2 move.b (byte_FFFFB2D8).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFB2D8).w cmp.b (BRAKE_TORQUE_CONTROL_KE_LOOPS_BETWEEN_RAMP_STEPS).l,d3 ; Number of loops to wait between increases in the ramp out. ; Counts bcs.s loc_7B6F2 clr.b (byte_FFFFB2D8).w move.w (word_FFFFB2D2).w,d3 add.w (BRAKE_TORQUE_CONTROL_KE_TORQUE_RAMP).l,d3 ; Step size of torque when ramping out of brake torque management. ; Foot Pounds bcc.s loc_7B6BA move.w #$FFFF,d3 loc_7B6BA: ; CODE XREF: sub_7B33A+37Aj move.w d3,(word_FFFFB2D2).w move.w (word_FFFF9E30).w,d5 ext.l d5 clr.l d3 move.w (word_FFFFB2D2).w,d3 add.l d5,d3 tst.l d3 blt.s loc_7B6DE cmpi.l #$FFFF,d3 bls.s loc_7B6E0 move.w #$FFFF,d3 bra.s loc_7B6E0 ; --------------------------------------------------------------------------- loc_7B6DE: ; CODE XREF: sub_7B33A+394j clr.w d3 loc_7B6E0: ; CODE XREF: sub_7B33A+39Cj ; sub_7B33A+3A2j move.w (word_FFFF9E24).w,d5 ext.l d5 andi.l #$FFFF,d3 cmp.l d5,d3 bge.w loc_7B3B0 loc_7B6F2: ; CODE XREF: sub_7B33A+80j ; sub_7B33A+352j ... movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_7B33A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7B6F8: ; CODE XREF: sub_7B248:loc_7B26Cp ; sub_7B248:loc_7B29Cp ... link a6,#-4 move.b (ThrottleControlMode2?).w,d3 cmpi.b #3,d3 beq.s loc_7B70C cmpi.b #1,d3 bne.s loc_7B736 loc_7B70C: ; CODE XREF: sub_7B6F8+Cj cmpi.b #1,(VEH_SYS_KE_PLATFORM).l ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type bne.s loc_7B736 movea.l (off_1330).l,a2 move.l a2,d4 bne.s loc_7B726 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_7B726: ; CODE XREF: sub_7B6F8+26j clr.b d3 btst #6,2(a2) bne.s loc_7B732 addq.b #1,d3 loc_7B732: ; CODE XREF: sub_7B6F8+36j move.b d3,(byte_FFFFB2CE).w loc_7B736: ; CODE XREF: sub_7B6F8+12j ; sub_7B6F8+1Cj move.b (byte_FFFFB2CE).w,d0 unlk a6 rts ; End of function sub_7B6F8 ; =============== S U B R O U T I N E ======================================= sub_7B73E: ; CODE XREF: OS1:00028CB0p andi.w #$FF,d0 movea.l off_89C84(d0.w*4),a2 jmp (a2) ; End of function sub_7B73E ; --------------------------------------------------------------------------- loc_7B74C: ; DATA XREF: OS4:off_89C84o bra.s loc_7B7AA ; --------------------------------------------------------------------------- loc_7B74E: ; DATA XREF: OS4:00089C88o bra.s locret_7B7B6 ; --------------------------------------------------------------------------- loc_7B750: ; DATA XREF: OS4:00089C8Co clr.b (byte_FFFFB2D0).w move.w #$FFFF,(word_FFFFB2D2).w move.b #1,(byte_FFFFB2DB).w bra.s locret_7B7B6 ; --------------------------------------------------------------------------- loc_7B762: ; DATA XREF: OS4:00089C90o clr.b (4294947545).w clr.b (byte_FFFFB2D8).w clr.b (byte_FFFFB2DA).w clr.b (byte_FFFFB2CF).w clr.b (byte_FFFFB2D0).w move.w #$FFFF,(word_FFFFB2D2).w clr.b (byte_FFFFB2CE).w bra.s loc_7B7A4 ; --------------------------------------------------------------------------- loc_7B782: ; DATA XREF: OS4:00089C94o bra.s locret_7B7B6 ; --------------------------------------------------------------------------- loc_7B784: ; DATA XREF: OS4:00089C9Co clr.b (byte_FFFFB2D9).w clr.b (byte_FFFFB2D8).w clr.b (byte_FFFFB2DA).w clr.b (byte_FFFFB2CF).w clr.b (byte_FFFFB2D0).w move.w #$FFFF,(word_FFFFB2D2).w move.b (byte_FFFFAF3A).w,(byte_FFFFB2CE).w loc_7B7A4: ; CODE XREF: OS3:0007B780j move.b #1,(byte_FFFFB2DB).w loc_7B7AA: ; CODE XREF: OS3:loc_7B74Cj clr.b (byte_FFFFB2DC).w loc_7B7AE: ; DATA XREF: OS4:00089CA0o bra.s locret_7B7B6 ; --------------------------------------------------------------------------- loc_7B7B0: ; DATA XREF: OS4:00089CA4o move.b (byte_FFFFAF3A).w,(byte_FFFFB2CE).w locret_7B7B6: ; CODE XREF: OS3:loc_7B74Ej ; OS3:0007B760j ... rts ; =============== S U B R O U T I N E ======================================= sub_7B7B8: ; CODE XREF: OS1:00028940p movem.l d1-d2,-(sp) andi.w #$FF,d0 movea.l off_89F7C(d0.w*4),a2 jmp (a2) ; End of function sub_7B7B8 ; --------------------------------------------------------------------------- loc_7B7CA: ; DATA XREF: OS4:00089F84o move.w (word_FFFFF2D0).w,d4 lsr.w #2,d4 asl.w #8,d4 move.w d4,(word_FFFFADAE).w moveq #1,d3 btst #0,(byte_FFFFBF33).w bne.s loc_7B7E2 clr.b d3 loc_7B7E2: ; CODE XREF: OS3:0007B7DEj andi.w #$FF,d3 mulu.w #$22,d3 ; '"' lea SurfaceTable_2x17_Coolant_temperature_sensor_calibration(d3.l),a2 move.l d4,d3 lsr.w #4,d3 tbls.w (a2),d3 move.w d3,(Pid_0005_CoolantTemperature).w cmpi.w #$500,d3 ble.s loc_7B808 moveq #1,d1 bra.s loc_7B810 ; --------------------------------------------------------------------------- loc_7B808: ; CODE XREF: OS3:0007B802j cmpi.w #$400,d3 bge.s loc_7B81A clr.b d1 loc_7B810: ; CODE XREF: OS3:0007B806j move.w #$91,d0 ; '?' jsr (sub_1122).l loc_7B81A: ; CODE XREF: OS3:0007B80Cj tst.b (byte_FFFFA19C).w beq.s loc_7B826 jsr sub_621D6 loc_7B826: ; CODE XREF: OS3:0007B81Ej btst #7,(byte_FFFFB485).w bne.s loc_7B836 btst #1,(byte_FFFFB484).w beq.s loc_7B85C loc_7B836: ; CODE XREF: OS3:0007B82Cj btst #1,(byte_FFFF88D4).w bne.s loc_7B846 btst #1,(byte_FFFF88D6).w beq.s loc_7B850 loc_7B846: ; CODE XREF: OS3:0007B83Cj move.w (COOLANT_KE_INITIAL_COOLANT_DEFAULT).l,(word_FFFFADBE).w ; Initial coolant default, used if IAT failed on powerup. ; Degrees C bra.s loc_7B856 ; --------------------------------------------------------------------------- loc_7B850: ; CODE XREF: OS3:0007B844j move.w (word_FFFFB3E8).w,(word_FFFFADBE).w loc_7B856: ; CODE XREF: OS3:0007B84Ej clr.b (byte_FFFFADBA).w bra.s loc_7B868 ; --------------------------------------------------------------------------- loc_7B85C: ; CODE XREF: OS3:0007B834j move.w (Pid_0005_CoolantTemperature).w,(word_FFFFADBE).w move.b #1,(byte_FFFFADBA).w loc_7B868: ; CODE XREF: OS3:0007B85Aj btst #1,(byte_FFFF88DA).w bne.s loc_7B878 btst #1,(byte_FFFF88DC).w beq.s loc_7B896 loc_7B878: ; CODE XREF: OS3:0007B86Ej move.b #1,(byte_FFFFADBB).w move.w (word_FFFFADBE).w,d4 move.w d4,(CoolantTemperatureOrDefault).w move.w (COOLANT_KE_WARM_ENGINE_DEFAULT_COOLANT_M).l,d3 ; Maximum value allowed for default coolant temperature. ; Degrees C cmp.w d3,d4 ble.s loc_7B8A0 move.w d3,(CoolantTemperatureOrDefault).w bra.s loc_7B8A0 ; --------------------------------------------------------------------------- loc_7B896: ; CODE XREF: OS3:0007B876j clr.b (byte_FFFFADBB).w move.w (Pid_0005_CoolantTemperature).w,(CoolantTemperatureOrDefault).w loc_7B8A0: ; CODE XREF: OS3:0007B88Ej ; OS3:0007B894j move.w (CoolantTemperatureOrDefault).w,d3 move.l d3,d4 movea.w #$400,a3 add.w a3,d4 muls.w #5,d4 divs.w #6,d4 move.w d4,(word_FFFFAEE2).w add.w a3,d3 add.w d3,d3 move.w d3,(CoolantTemp).w lsr.w #1,d3 move.w d3,(word_FFFFAEE0).w lsr.w #1,d3 move.w d3,(word_FFFFAEE4).w tst.b (byte_FFFFB54A).w bne.s loc_7B8D8 move.w #$980,(word_FFFF82EA).w loc_7B8D8: ; CODE XREF: OS3:0007B8D0j move.w (CoolantTemperatureOrDefault).w,(word_FFFFADB4).w bra.s loc_7B8E2 ; --------------------------------------------------------------------------- loc_7B8E0: ; DATA XREF: OS4:00089F88o bra.s loc_7B8FC ; --------------------------------------------------------------------------- loc_7B8E2: ; CODE XREF: OS3:0007B8DEj ; DATA XREF: OS4:00089F9Co move.w (CoolantTemperatureOrDefault).w,(word_FFFFADB6).w bra.s loc_7B8FC ; --------------------------------------------------------------------------- loc_7B8EA: ; DATA XREF: OS4:00089F94o ; OS4:00089FA0o bra.s loc_7B8FC ; --------------------------------------------------------------------------- loc_7B8EC: ; DATA XREF: OS4:00089F80o move.w (CoolantTemperatureOrDefault).w,(word_FFFFADB2).w bra.s loc_7B8FC ; --------------------------------------------------------------------------- loc_7B8F4: ; DATA XREF: OS4:off_89F7Co ; OS4:00089F98o bra.s loc_7B8FC ; --------------------------------------------------------------------------- loc_7B8F6: ; DATA XREF: OS4:00089F8Co move.w (CoolantTemperatureOrDefault).w,(word_FFFF82EA).w loc_7B8FC: ; CODE XREF: OS3:loc_7B8E0j ; OS3:0007B8E8j ... movem.l (sp)+,d1-d2 rts ; =============== S U B R O U T I N E ======================================= GetCoolantTemperature: ; CODE XREF: DoManyThings1:loc_294F6p ; DoManyThings1+15Ap ... movem.l d0-d1/a0,-(sp) move.w (word_FFFFF2D0).w,d4 lsr.w #2,d4 asl.w #8,d4 move.w d4,(word_FFFFADAE).w moveq #1,d3 btst #0,(byte_FFFFBF33).w bne.s loc_7B91E clr.b d3 loc_7B91E: ; CODE XREF: GetCoolantTemperature+18j andi.w #$FF,d3 mulu.w #$22,d3 ; '"' lea SurfaceTable_2x17_Coolant_temperature_sensor_calibration(d3.l),a2 move.l d4,d3 lsr.w #4,d3 tbls.w (a2),d3 move.w d3,(Pid_0005_CoolantTemperature).w tst.b (byte_FFFFA19C).w beq.s loc_7B946 jsr sub_621D6 loc_7B946: ; CODE XREF: GetCoolantTemperature+3Cj btst #1,(byte_FFFFB484).w bne.s loc_7B956 btst #7,(byte_FFFFB485).w beq.s loc_7B95C loc_7B956: ; CODE XREF: GetCoolantTemperature+4Aj tst.b (byte_FFFFADC0).w bne.s loc_7B96C loc_7B95C: ; CODE XREF: GetCoolantTemperature+52j btst #1,(byte_FFFF88DA).w bne.s loc_7B96C btst #1,(byte_FFFF88DC).w beq.s loc_7B9B4 loc_7B96C: ; CODE XREF: GetCoolantTemperature+58j ; GetCoolantTemperature+60j move.b #1,(byte_FFFFADBB).w move.l (dword_FFFFAD2C).w,d4 cmpi.l #aXsXsbXsrXsktc1,d4 ; "x?>?x?B?x???x???C1???4x?0?x???x???x?F?x"... bhi.s loc_7B98E moveq #4,d3 mulu.l d4,d4:d3 divu.l #$7D,d4:d3 ; '}' bra.s loc_7B992 ; --------------------------------------------------------------------------- loc_7B98E: ; CODE XREF: GetCoolantTemperature+7Aj move.w #$1DFF,d3 loc_7B992: ; CODE XREF: GetCoolantTemperature+8Aj movea.l #COOLANT_KV_DEFAULT_COOLANT,a2 ; This is added to what the ambient air temperature was at powerup to determine what the default coolant temperature should be. ; Degrees C tbls.w (a2),d3 add.w (word_FFFFADBE).w,d3 move.w d3,(CoolantTemperatureOrDefault).w move.w (COOLANT_KE_WARM_ENGINE_DEFAULT_COOLANT_M).l,d4 ; Maximum value allowed for default coolant temperature. ; Degrees C cmp.w d4,d3 ble.s loc_7B9BE move.w d4,(CoolantTemperatureOrDefault).w bra.s loc_7B9BE ; --------------------------------------------------------------------------- loc_7B9B4: ; CODE XREF: GetCoolantTemperature+68j clr.b (byte_FFFFADBB).w move.w (Pid_0005_CoolantTemperature).w,(CoolantTemperatureOrDefault).w loc_7B9BE: ; CODE XREF: GetCoolantTemperature+AAj ; GetCoolantTemperature+B0j move.w (CoolantTemperatureOrDefault).w,d3 move.l d3,d4 movea.w #$400,a0 add.w a0,d4 muls.w #5,d4 divs.w #6,d4 move.w d4,(word_FFFFAEE2).w add.w a0,d3 add.w d3,d3 move.w d3,(CoolantTemp).w lsr.w #1,d3 move.w d3,(word_FFFFAEE0).w lsr.w #1,d3 move.w d3,(word_FFFFAEE4).w move.w (Pid_0005_CoolantTemperature).w,d3 cmpi.w #$500,d3 ble.s loc_7B9F8 moveq #1,d1 bra.s loc_7BA00 ; --------------------------------------------------------------------------- loc_7B9F8: ; CODE XREF: GetCoolantTemperature+F0j cmpi.w #$400,d3 bge.s loc_7BA0A clr.b d1 loc_7BA00: ; CODE XREF: GetCoolantTemperature+F4j move.w #$91,d0 ; '?' jsr (sub_1122).l loc_7BA0A: ; CODE XREF: GetCoolantTemperature+FAj clr.b d4 btst #1,(byte_FFFFB484).w bne.s loc_7BA1C btst #7,(byte_FFFFB485).w beq.s loc_7BA1E loc_7BA1C: ; CODE XREF: GetCoolantTemperature+110j addq.b #1,d4 loc_7BA1E: ; CODE XREF: GetCoolantTemperature+118j move.b d4,(byte_FFFFADC0).w movem.l (sp)+,d0-d1/a0 rts ; End of function GetCoolantTemperature ; =============== S U B R O U T I N E ======================================= sub_7BA28: ; CODE XREF: OS1:00028948p andi.w #$FF,d0 movea.l off_89FA4(d0.w*4),a2 jmp (a2) ; End of function sub_7BA28 ; --------------------------------------------------------------------------- loc_7BA36: ; DATA XREF: OS4:off_89FA4o ; OS4:00089FACo ... move.w (GlobalClock).w,(word_FFFFADC2).w move.w (GlobalClock).w,(4294946244).w clr.w (word_FFFFADC6).w clr.w (word_FFFFADC8).w clr.b (byte_FFFFADCA).w move.w (word_FFFFAEBC).w,(word_FFFFADCC).w clr.b (byte_FFFFADBC).w clr.b (byte_FFFFADCF).w loc_7BA5C: ; DATA XREF: OS4:00089FC4o bra.s locret_7BA60 ; --------------------------------------------------------------------------- loc_7BA5E: ; DATA XREF: OS4:00089FA8o ; OS4:00089FC8o nop locret_7BA60: ; CODE XREF: OS3:loc_7BA5Cj ; DATA XREF: OS4:00089FB4o ... rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7BA62: ; CODE XREF: DoLoopE+1BEp var_2 = -2 link a6,#-2 movem.l d0-d2,-(sp) move.b (VEH_SYS_KE_PLATFORM).l,d3 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type cmpi.b #3,d3 beq.s loc_7BA7C cmpi.b #4,d3 bne.s loc_7BA8A loc_7BA7C: ; CODE XREF: sub_7BA62+12j clr.b d3 btst #0,(byte_FFFFBF30).w bne.s loc_7BA94 addq.b #1,d3 bra.s loc_7BA94 ; --------------------------------------------------------------------------- loc_7BA8A: ; CODE XREF: sub_7BA62+18j btst #0,(byte_FFFFBF30).w sne d3 neg.b d3 loc_7BA94: ; CODE XREF: sub_7BA62+22j ; sub_7BA62+26j move.b d3,(byte_FFFFADCE).w move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (VEH_SYS_KE_LOW_COOLANT_MIN_TEMP).l,d3 ; Run low coolant detection if coolant is above this. ; Degrees C blt.w loc_7BC50 btst #7,(byte_FFFF8252).w beq.s loc_7BAB8 tst.b (VEH_SYS_KE_IGNORE_VEHICLE_SPEED_FAULT).l ; If TRUE algorithm will execute even if there is a VehicleSpeed Group Fault. ; BOOLEAN beq.w loc_7BC50 loc_7BAB8: ; CODE XREF: sub_7BA62+4Aj move.b (byte_FFFFADCA).w,d3 cmp.b (VEH_SYS_KE_LOW_COOL_OCCURRENCES_TO_LATCH).l,d3 ; If low coolant detection fails this many times, stop running the algorithm. ; Counts bhi.w loc_7BC50 tst.b (byte_FFFFADCE).w beq.s loc_7BAD4 move.w (GlobalClock).w,(word_FFFFADC4).w bra.s loc_7BADA ; --------------------------------------------------------------------------- loc_7BAD4: ; CODE XREF: sub_7BA62+68j move.w (GlobalClock).w,(word_FFFFADC2).w loc_7BADA: ; CODE XREF: sub_7BA62+70j move.w (word_FFFFAEBC).w,d3 sub.w (word_FFFFADCC).w,d3 tst.w d3 bge.s loc_7BAE8 neg.w d3 loc_7BAE8: ; CODE XREF: sub_7BA62+82j move.w (word_FFFFAEBC).w,d4 cmp.w (word_FFFFADCC).w,d4 scs d4 neg.b d4 andi.l #$FFFF,d3 asl.l #2,d3 cmpi.l #$FFFF,d3 bhi.s loc_7BB0A cmpi.w #$7FFF,d3 bls.s loc_7BB0E loc_7BB0A: ; CODE XREF: sub_7BA62+A0j move.w #$7FFF,d3 loc_7BB0E: ; CODE XREF: sub_7BA62+A6j tst.b d4 beq.s loc_7BB1A cmp.w (VEH_SYS_KE_LOW_COOL_NEG_ACCEL_DEADBAND).l,d3 ; Ramp factor is not computed if vehicle deceleration is less than this. ; MPH/Sec bhi.s loc_7BB26 loc_7BB1A: ; CODE XREF: sub_7BA62+AEj tst.b d4 bne.s loc_7BB72 cmp.w (VEH_SYS_KE_LOW_COOL_POS_ACCEL_DEADBAND).l,d3 ; Ramp factor is not computed if vehicle acceleration is more than this. ; MPH/Sec bls.s loc_7BB72 loc_7BB26: ; CODE XREF: sub_7BA62+B6j move.w (word_FFFFAEBC).w,d0 cmpi.w #$4000,d0 bcc.s loc_7BB34 lsr.w #2,d0 bra.s loc_7BB38 ; --------------------------------------------------------------------------- loc_7BB34: ; CODE XREF: sub_7BA62+CCj move.w #$1000,d0 loc_7BB38: ; CODE XREF: sub_7BA62+D0j movea.l #VEH_SYS_KV_LOW_COOL_VEH_SPEED_RAMP_MULT,a2 ; Converts acceleration into time for low coolant time threshold. ; Factor tblu.b (a2),d0 andi.w #$FF,d0 cmpi.w #$200,d3 bcc.s loc_7BB54 clr.l d4 move.w d3,d4 asl.l #3,d4 bra.s loc_7BB58 ; --------------------------------------------------------------------------- loc_7BB54: ; CODE XREF: sub_7BA62+E8j move.w #$1000,d4 loc_7BB58: ; CODE XREF: sub_7BA62+F0j movea.l #VEH_SYS_KV_LOW_COOLANT_ACCEL_RAMP_MULT,a2 ; Converts acceleration into time for low coolant time threshold. ; Seconds tblu.w (a2),d4 mulu.w d4,d0 cmpi.l #$FFFF,d0 bls.s loc_7BB74 move.w #$FFFF,d0 bra.s loc_7BB74 ; --------------------------------------------------------------------------- loc_7BB72: ; CODE XREF: sub_7BA62+BAj ; sub_7BA62+C2j clr.w d0 loc_7BB74: ; CODE XREF: sub_7BA62+108j ; sub_7BA62+10Ej cmp.w (word_FFFFADC6).w,d0 bls.s loc_7BB86 move.w (GlobalClock).w,(word_FFFFADC8).w move.w d0,(word_FFFFADC6).w bra.s loc_7BBB4 ; --------------------------------------------------------------------------- loc_7BB86: ; CODE XREF: sub_7BA62+116j move.w (word_FFFFADC8).w,var_2(a6) move.w (GlobalClock).w,d4 sub.w var_2(a6),d4 cmp.w (VEH_SYS_KE_LOW_COOLANT_RAMP_DECAY_DELAY).l,d4 ; Delay between ramp delay actions. ; Seconds bcs.s loc_7BBB4 move.w (GlobalClock).w,(word_FFFFADC8).w move.w (word_FFFFADC6).w,d4 sub.w (VEH_SYS_KE_LOW_COOLANT_RAMP_DECAY_STEP).l,d4 ; Ramp decay value. ; Seconds bcc.s loc_7BBB0 clr.w d4 loc_7BBB0: ; CODE XREF: sub_7BA62+14Aj move.w d4,(word_FFFFADC6).w loc_7BBB4: ; CODE XREF: sub_7BA62+122j ; sub_7BA62+138j cmpi.w #$200,d3 bcc.s loc_7BBC4 andi.l #$FFFF,d3 asl.l #3,d3 bra.s loc_7BBC8 ; --------------------------------------------------------------------------- loc_7BBC4: ; CODE XREF: sub_7BA62+156j move.w #$1000,d3 loc_7BBC8: ; CODE XREF: sub_7BA62+160j movea.l #VEH_SYS_KV_LOW_COOLANT_ACCEL_FACTOR,a2 ; Converts acceleration into time for low coolant time threshold. ; Seconds tblu.w (a2),d3 move.w (word_FFFFAEBC).w,d5 cmpi.w #$4000,d5 bcc.s loc_7BBE0 lsr.w #2,d5 bra.s loc_7BBE4 ; --------------------------------------------------------------------------- loc_7BBE0: ; CODE XREF: sub_7BA62+178j move.w #$1000,d5 loc_7BBE4: ; CODE XREF: sub_7BA62+17Cj movea.l #VEH_SYS_KV_LOW_COOLANT_VEH_SPEED_FACTOR,a2 ; Converts vehicle speed into time for low coolant time threshold. ; Seconds tblu.w (a2),d5 add.w d5,d3 bcc.s loc_7BBF6 move.w #$FFFF,d3 loc_7BBF6: ; CODE XREF: sub_7BA62+18Ej add.w (word_FFFFADC6).w,d3 bcc.s loc_7BC00 move.w #$FFFF,d3 loc_7BC00: ; CODE XREF: sub_7BA62+198j move.w (VEH_SYS_KE_LOW_COOLANT_TIMER_MAX_VALUE).l,d4 ; Max value for low coolant level timer. ; Seconds cmp.w d4,d3 bcs.s loc_7BC0C move.l d4,d3 loc_7BC0C: ; CODE XREF: sub_7BA62+1A6j move.w (word_FFFFADC2).w,var_2(a6) move.w (GlobalClock).w,d4 sub.w var_2(a6),d4 cmp.w d3,d4 bcs.s loc_7BC34 moveq #1,d3 move.b d3,(byte_FFFFADBC).w tst.b (byte_FFFFADCF).w bne.s loc_7BC62 addq.b #1,(byte_FFFFADCA).w move.b d3,(byte_FFFFADCF).w bra.s loc_7BC62 ; --------------------------------------------------------------------------- loc_7BC34: ; CODE XREF: sub_7BA62+1BAj move.w (word_FFFFADC4).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (VEH_SYS_KE_LOW_COOLANT_NOT_PRESENT_TIME).l,d3 ; Time that low coolant input has to off to reset the low coolant flag. ; Seconds bcs.s loc_7BC62 clr.b (byte_FFFFADCF).w bra.s loc_7BC62 ; --------------------------------------------------------------------------- loc_7BC50: ; CODE XREF: sub_7BA62+40j ; sub_7BA62+52j ... move.w (GlobalClock).w,(word_FFFFADC2).w move.w (GlobalClock).w,(word_FFFFADC4).w move.w (GlobalClock).w,(word_FFFFADC8).w loc_7BC62: ; CODE XREF: sub_7BA62+1C6j ; sub_7BA62+1D0j ... move.w (word_FFFFAEBC).w,(word_FFFFADCC).w movem.l (sp)+,d0-d2 unlk a6 rts ; End of function sub_7BA62 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7BC70: ; CODE XREF: DoLoopG+12Ap var_A = -$A var_8 = -8 var_4 = -4 var_2 = -2 link a6,#-$A movem.l d0-d2/d6-a1,-(sp) cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_7C1F2 movea.w (word_FFFFAB66).w,a1 move.w a1,(word_FFFFACB8).w move.w (word_FFFFA0DC).w,d3 move.w d3,(word_FFFFACB2).w move.w (EngineRPM_PID_000C___).w,d1 move.w d1,(word_FFFFACBE).w move.l a1,d6 cmp.w (CONVERTER_KE_COT_THROTTLE_CLOSED).l,d6 ; Throttle position <= this causes airflow to determine timing of catalytic converter temperature update. ; Percent bcc.s loc_7BCC4 andi.l #$FFFF,d3 clr.l d0 move.w (word_FFFFACB4).w,d0 sub.l d3,d0 clr.l d3 move.w (CONVERTER_KE_COT_AIRFLOW_DELTA).l,d3 ; Airflow dropping >= this IN one seconds causes delay OF catalytic converter temperature update. ; gm/S cmp.l d3,d0 blt.s loc_7BCC4 move.w (GlobalClock).w,(word_FFFFACC4).w loc_7BCC4: ; CODE XREF: sub_7BC70+32j ; sub_7BC70+4Cj move.w (CONVERTER_KE_COT_TEMPERATURE_DELAY_TIME).l,d0 ; Overrun causes delay of this length in catalytic converter temperature update. ; Seconds movea.l #unk_FFACC4,a0 jsr sub_276D4 move.b d0,d7 move.w (word_FFFFACB2).w,(word_FFFFACB4).w tst.b d7 bne.s loc_7BCEC cmp.w (CONVERTER_KE_COT_THROTTLE_OPENED).l,d6 ; Throttle position >= this allows immediate update OF catalytic converter temperature. ; Percent bcs.w loc_7BF94 loc_7BCEC: ; CODE XREF: sub_7BC70+70j move.w (GlobalClock).w,d7 addi.w #$320,d7 move.w d7,(word_FFFFACC4).w moveq #1,d7 move.w (word_FFFF984A).w,d3 add.w (word_FFFF9842).w,d3 move.w (word_FFFFAEBC).w,d4 clr.w d5 cmpi.w #$5000,d4 bcc.s loc_7BD1A andi.l #$FFFF,d4 divu.w #$A,d4 bra.s loc_7BD1E ; --------------------------------------------------------------------------- loc_7BD1A: ; CODE XREF: sub_7BC70+9Cj move.w #$800,d4 loc_7BD1E: ; CODE XREF: sub_7BC70+A8j movea.l #$8BD8,a2 tbls.w (a2),d4 move.w d4,d0 tst.b (byte_FFFFA93A).w beq.s loc_7BD64 cmpi.w #$8000,d1 bcc.s loc_7BD3C move.l d1,d3 lsr.w #4,d3 bra.s loc_7BD40 ; --------------------------------------------------------------------------- loc_7BD3C: ; CODE XREF: sub_7BC70+C4j move.w #$800,d3 loc_7BD40: ; CODE XREF: sub_7BC70+CAj movea.l #$8B76,a2 tbls.w (a2),d3 move.w d3,(word_FFFFACB0).w move.l d4,d3 add.w (word_FFFFACB0).w,d3 bvc.w loc_7BE18 bpl.w loc_7BE14 loc_7BD5C: ; CODE XREF: sub_7BC70+1A0j move.w #$7FFF,d3 bra.w loc_7BE18 ; --------------------------------------------------------------------------- loc_7BD64: ; CODE XREF: sub_7BC70+BEj tst.w d3 beq.s loc_7BDAC move.l d3,d2 sub.w (word_FFFF9848).w,d3 bvc.s loc_7BD7C bpl.s loc_7BD78 move.w #$7FFF,d3 bra.s loc_7BD7C ; --------------------------------------------------------------------------- loc_7BD78: ; CODE XREF: sub_7BC70+100j move.w #$8000,d3 loc_7BD7C: ; CODE XREF: sub_7BC70+FEj ; sub_7BC70+106j ext.l d3 asl.l #8,d3 asl.l #4,d3 divs.w d2,d3 bvc.s loc_7BD8E swap d3 eor.w d2,d3 bmi.s loc_7BDA0 bra.s loc_7BD9A ; --------------------------------------------------------------------------- loc_7BD8E: ; CODE XREF: sub_7BC70+114j cmpi.w #$7FFF,d3 bhi.s loc_7BDA0 cmpi.w #$1000,d3 bls.s loc_7BDA2 loc_7BD9A: ; CODE XREF: sub_7BC70+11Cj move.w #$1000,d3 bra.s loc_7BDA2 ; --------------------------------------------------------------------------- loc_7BDA0: ; CODE XREF: sub_7BC70+11Aj ; sub_7BC70+122j move.l d5,d3 loc_7BDA2: ; CODE XREF: sub_7BC70+128j ; sub_7BC70+12Ej mulu.w #5,d3 lsr.w #2,d3 move.w d3,(word_FFFFACB6).w loc_7BDAC: ; CODE XREF: sub_7BC70+F6j move.w (word_FFFFA1EE).w,d3 move.w #$3A4,d4 cmp.w d3,d4 bls.s loc_7BDBC move.l d5,d3 bra.s loc_7BDDC ; --------------------------------------------------------------------------- loc_7BDBC: ; CODE XREF: sub_7BC70+146j cmpi.w #$594,d3 bcc.s loc_7BDD8 sub.w d4,d3 ext.l d3 asl.l #8,d3 bmi.s loc_7BDD4 divu.l #$1F,d3 bra.s loc_7BDDC ; --------------------------------------------------------------------------- loc_7BDD4: ; CODE XREF: sub_7BC70+158j clr.l d3 bra.s loc_7BDDC ; --------------------------------------------------------------------------- loc_7BDD8: ; CODE XREF: sub_7BC70+150j move.w #$1000,d3 loc_7BDDC: ; CODE XREF: sub_7BC70+14Aj ; sub_7BC70+162j ... movea.l #$8B88,a2 tbls.w (a2),d3 move.w d3,(word_FFFFACBC).w move.w (word_FFFFACB6).w,d3 lsr.w #1,d3 movea.l #$8BC2,a2 tbls.w (a2),d3 add.w (word_FFFFACBC).w,d3 bvc.s loc_7BE0C bpl.s loc_7BE08 move.w #$7FFF,d3 bra.s loc_7BE0C ; --------------------------------------------------------------------------- loc_7BE08: ; CODE XREF: sub_7BC70+190j move.w #$8000,d3 loc_7BE0C: ; CODE XREF: sub_7BC70+18Ej ; sub_7BC70+196j add.w d0,d3 bvc.s loc_7BE18 bmi.w loc_7BD5C loc_7BE14: ; CODE XREF: sub_7BC70+E8j move.w #$8000,d3 loc_7BE18: ; CODE XREF: sub_7BC70+E4j ; sub_7BC70+F0j ... move.w d3,(word_FFFFACBA).w move.w (word_FFFFACB2).w,d0 cmpi.w #$7000,d1 bcc.s loc_7BE2A lsr.w #3,d1 bra.s loc_7BE2E ; --------------------------------------------------------------------------- loc_7BE2A: ; CODE XREF: sub_7BC70+1B4j move.w #$E00,d1 loc_7BE2E: ; CODE XREF: sub_7BC70+1B8j cmpi.w #$A000,d0 bcc.s loc_7BE38 lsr.w #3,d0 bra.s loc_7BE3C ; --------------------------------------------------------------------------- loc_7BE38: ; CODE XREF: sub_7BC70+1C2j move.w #$1400,d0 loc_7BE3C: ; CODE XREF: sub_7BC70+1C6j moveq #$15,d2 movea.l #$8BEE,a0 jsr SurfaceTableLookup move.w d0,d3 move.w (word_FFFF82D2).w,d4 clr.w d5 cmpi.w #$D00,d4 bcc.s loc_7BE5C move.l d5,d4 bra.s loc_7BE62 ; --------------------------------------------------------------------------- loc_7BE5C: ; CODE XREF: sub_7BC70+1E6j lsr.w #1,d4 subi.w #$680,d4 loc_7BE62: ; CODE XREF: sub_7BC70+1EAj movea.l #$8E86,a2 tblu.w (a2),d4 move.w d4,d1 move.w (word_FFFFAEF8).w,d0 tblu.w (CONVERTER_KV_COT_FFS_MULTIPLIER).l,d0 ; Multiplier to compensate the stabilized temperature for any fuel composition effects on exhaust temperatures ; Scaler 1 move.w #$1000,d4 muls.w d1,d3 divs.w d4,d3 bvc.s loc_7BE94 swap d3 eor.w d4,d3 bmi.s loc_7BE90 move.w #$7FFF,d3 bra.s loc_7BE94 ; --------------------------------------------------------------------------- loc_7BE90: ; CODE XREF: sub_7BC70+218j move.w #$8000,d3 loc_7BE94: ; CODE XREF: sub_7BC70+212j ; sub_7BC70+21Ej muls.w d0,d3 bpl.s loc_7BE9E addi.l #$FFF,d3 loc_7BE9E: ; CODE XREF: sub_7BC70+226j asr.l #8,d3 asr.l #4,d3 add.w (word_FFFFACBA).w,d3 bvc.s loc_7BEB4 bpl.s loc_7BEB0 move.w #$7FFF,d3 bra.s loc_7BEB4 ; --------------------------------------------------------------------------- loc_7BEB0: ; CODE XREF: sub_7BC70+238j move.w #$8000,d3 loc_7BEB4: ; CODE XREF: sub_7BC70+236j ; sub_7BC70+23Ej move.w d3,(word_FFFFACAE).w move.w d3,d4 sub.w (word_FFFF82DE).w,d4 bvc.s loc_7BECC bpl.s loc_7BEC8 move.w #$7FFF,d4 bra.s loc_7BECC ; --------------------------------------------------------------------------- loc_7BEC8: ; CODE XREF: sub_7BC70+250j move.w #$8000,d4 loc_7BECC: ; CODE XREF: sub_7BC70+24Ej ; sub_7BC70+256j tst.w d4 ble.s loc_7BF18 move.w (word_FFFFACB2).w,d3 cmpi.w #$A000,d3 bcc.s loc_7BEDE lsr.w #3,d3 bra.s loc_7BEE2 ; --------------------------------------------------------------------------- loc_7BEDE: ; CODE XREF: sub_7BC70+268j move.w #$1400,d3 loc_7BEE2: ; CODE XREF: sub_7BC70+26Cj movea.l #$8B22,a2 tblu.w (a2),d3 tst.w d4 bge.s loc_7BEF4 move.l d5,d4 bra.s loc_7BF06 ; --------------------------------------------------------------------------- loc_7BEF4: ; CODE XREF: sub_7BC70+27Ej cmpi.w #$3200,d4 bge.s loc_7BF02 ext.l d4 divs.w #$A,d4 bra.s loc_7BF06 ; --------------------------------------------------------------------------- loc_7BF02: ; CODE XREF: sub_7BC70+288j move.w #$500,d4 loc_7BF06: ; CODE XREF: sub_7BC70+282j ; sub_7BC70+290j movea.l #$8E90,a2 tblu.w (a2),d4 mulu.w d4,d3 lsr.l #8,d3 lsr.l #4,d3 bra.s loc_7BF54 ; --------------------------------------------------------------------------- loc_7BF18: ; CODE XREF: sub_7BC70+25Ej move.w (word_FFFFACB2).w,d3 cmpi.w #$A000,d3 bcc.s loc_7BF26 lsr.w #3,d3 bra.s loc_7BF2A ; --------------------------------------------------------------------------- loc_7BF26: ; CODE XREF: sub_7BC70+2B0j move.w #$1400,d3 loc_7BF2A: ; CODE XREF: sub_7BC70+2B4j movea.l #$8B4C,a2 tblu.w (a2),d3 move.w (word_FFFFA1EE).w,d0 cmp.w (CONVERTER_KE_COT_EQ_RATIO_DEC_FILTER_LIMIT).l,d0 bcs.s loc_7BF54 mulu.w (CONVERTER_KE_COT_DEC_TEMP_FILTER_RICH_RATE).l,d3 lsr.l #8,d3 lsr.l #4,d3 cmpi.w #$1000,d3 bls.s loc_7BF54 move.w #$1000,d3 loc_7BF54: ; CODE XREF: sub_7BC70+2A6j ; sub_7BC70+2CEj ... move.w d3,(word_FFFFACC2).w move.w (word_FFFFACAE).w,d3 sub.w (word_FFFF82DE).w,d3 bvc.s loc_7BF6E bpl.s loc_7BF6A move.w #$7FFF,d3 bra.s loc_7BF6E ; --------------------------------------------------------------------------- loc_7BF6A: ; CODE XREF: sub_7BC70+2F2j move.w #$8000,d3 loc_7BF6E: ; CODE XREF: sub_7BC70+2F0j ; sub_7BC70+2F8j muls.w (word_FFFFACC2).w,d3 bpl.s loc_7BF7A addi.l #$FFF,d3 loc_7BF7A: ; CODE XREF: sub_7BC70+302j asr.l #8,d3 asr.l #4,d3 add.w (word_FFFF82DE).w,d3 bvc.s loc_7BF90 bpl.s loc_7BF8C move.w #$7FFF,d3 bra.s loc_7BF90 ; --------------------------------------------------------------------------- loc_7BF8C: ; CODE XREF: sub_7BC70+314j move.w #$8000,d3 loc_7BF90: ; CODE XREF: sub_7BC70+312j ; sub_7BC70+31Aj move.w d3,(word_FFFF82DE).w loc_7BF94: ; CODE XREF: sub_7BC70+78j tst.b (CONVERTER_KE_COT_HOT_DETERMINATION_ENABLE).l ; COT hot determination is activated IFF this is TRUE. ; BOOLEAN beq.w loc_7C1F2 move.w (CONVERTER_KE_COT_TEMPERATURE_HIGH).l,d6 ; The third catalytic converter temperature protection threshold. ; Degrees_C_S move.w (word_FFFF82DE).w,d0 cmp.w d6,d0 ble.s loc_7C024 moveq #1,d5 move.b d5,(byte_FFFFACCE).w move.w (CONVERTER_KE_COT_1PERCENT_TIME_THRESHOLD).l,d1 cmp.w (word_FFFFACC8).w,d1 bls.s loc_7BFD2 move.w (word_FFFFACC8).w,d3 movea.w #$A0,a3 ; '?' add.w a3,d3 bcc.s loc_7BFCE move.w #$FFFF,d3 loc_7BFCE: ; CODE XREF: sub_7BC70+358j move.w d3,(word_FFFFACC8).w loc_7BFD2: ; CODE XREF: sub_7BC70+34Cj cmp.w (CONVERTER_KE_COT_TEMPERATURE_EXTREME).l,d0 ; The Highest catalytic converter temperature protection threshold. ; Degrees_C_S ble.s loc_7BFEC move.b d5,(byte_FFFFACAA).w move.w (CONVERTER_KE_COT_HOT_TIME_THRESHOLD).l,(word_FFFFACC6).w ; If the catalytic converter temperature is above KE_COT_Temperature_High for this time, then the converter is too high. ; Seconds loc_7BFE6: ; CODE XREF: sub_7BC70+3B2j move.b d5,(byte_FFFFACCF).w bra.s loc_7C054 ; --------------------------------------------------------------------------- loc_7BFEC: ; CODE XREF: sub_7BC70+368j move.w (CONVERTER_KE_COT_HOT_TIME_THRESHOLD).l,d4 ; If the catalytic converter temperature is above KE_COT_Temperature_High for this time, then the converter is too high. ; Seconds cmp.w (word_FFFFACC6).w,d4 bls.s loc_7C00C move.w (word_FFFFACC6).w,d3 movea.w #$A0,a3 ; '?' add.w a3,d3 bcc.s loc_7C008 move.w #$FFFF,d3 loc_7C008: ; CODE XREF: sub_7BC70+392j move.w d3,(word_FFFFACC6).w loc_7C00C: ; CODE XREF: sub_7BC70+386j tst.b (byte_FFFFA1F6).w bne.s loc_7C01E cmp.w (word_FFFFACC8).w,d1 bls.s loc_7C01E cmp.w (word_FFFFACC6).w,d4 bhi.s loc_7C050 loc_7C01E: ; CODE XREF: sub_7BC70+3A0j ; sub_7BC70+3A6j move.b d5,(byte_FFFFACAA).w bra.s loc_7BFE6 ; --------------------------------------------------------------------------- loc_7C024: ; CODE XREF: sub_7BC70+33Aj move.b (byte_FFFFACAA).w,d4 bne.s loc_7C03C move.w (word_FFFFACC6).w,d3 movea.w #$A0,a3 ; '?' sub.w a3,d3 bcc.s loc_7C038 clr.w d3 loc_7C038: ; CODE XREF: sub_7BC70+3C4j move.w d3,(word_FFFFACC6).w loc_7C03C: ; CODE XREF: sub_7BC70+3B8j cmp.w (CONVERTER_KE_COT_TEMPERATURE_LOW).l,d0 ; The lowest catalytic converter temperature protection threshold. ; Degrees_C_S bge.s loc_7C050 tst.b d4 beq.s loc_7C050 move.b #2,(byte_FFFFACCF).w bra.s loc_7C054 ; --------------------------------------------------------------------------- loc_7C050: ; CODE XREF: sub_7BC70+3ACj ; sub_7BC70+3D2j ... clr.b (byte_FFFFACCF).w loc_7C054: ; CODE XREF: sub_7BC70+37Aj ; sub_7BC70+3DEj tst.b (byte_FFFFACCE).w beq.s loc_7C076 move.l (dword_FFFFACCA).w,d3 addi.l #$A0,d3 ; '?' cmpi.l #$7FFFFFFF,d3 bls.s loc_7C072 move.l #$7FFFFFFF,d3 loc_7C072: ; CODE XREF: sub_7BC70+3FAj move.l d3,(dword_FFFFACCA).w loc_7C076: ; CODE XREF: sub_7BC70+3E8j cmp.w (word_FFFF82DE).w,d6 blt.s loc_7C09A tst.b (byte_FFFFACAA).w bne.s loc_7C09A move.l (dword_FFFFACCA).w,d2 cmp.l (CONVERTER_KE_COT_1PERCENT_CYCLE_TIME).l,d2 bcs.s loc_7C09A clr.l (dword_FFFFACCA).w clr.b (byte_FFFFACCE).w clr.w (word_FFFFACC8).w loc_7C09A: ; CODE XREF: sub_7BC70+40Aj ; sub_7BC70+410j ... move.b (byte_FFFFACCF).w,d2 beq.w loc_7C1BA tst.b d7 beq.w loc_7C1BA clr.b d0 tst.b (byte_FFFFACC0).w bne.s loc_7C0BC move.w #$400,(word_FFFFACAC).w move.b #1,(byte_FFFFACC0).w loc_7C0BC: ; CODE XREF: sub_7BC70+43Ej move.w (word_FFFFACAC).w,d1 move.l d1,d3 moveq #1,d5 cmp.b d2,d5 bne.s loc_7C0DC move.w (word_FFFFACAE).w,d6 sub.w (CONVERTER_KE_COT_TEMPERATURE_MEDIUM).l,d6 ; The second catalytic converter temperature protection threshold. ; Degrees_C_S bvc.s loc_7C112 bpl.s loc_7C10E loc_7C0D6: ; CODE XREF: sub_7BC70+49Cj move.w #$7FFF,d6 bra.s loc_7C112 ; --------------------------------------------------------------------------- loc_7C0DC: ; CODE XREF: sub_7BC70+456j move.w (word_FFFFACAE).w,d4 sub.w (word_FFFFACBC).w,d4 bvc.s loc_7C0F2 bpl.s loc_7C0EE move.w #$7FFF,d4 bra.s loc_7C0F2 ; --------------------------------------------------------------------------- loc_7C0EE: ; CODE XREF: sub_7BC70+476j move.w #$8000,d4 loc_7C0F2: ; CODE XREF: sub_7BC70+474j ; sub_7BC70+47Cj cmp.w d6,d4 ble.s loc_7C100 cmp.w (word_FFFFA1EE).w,d1 bcc.s loc_7C100 move.l d5,d0 bra.s loc_7C116 ; --------------------------------------------------------------------------- loc_7C100: ; CODE XREF: sub_7BC70+484j ; sub_7BC70+48Aj move.w (CONVERTER_KE_COT_TEMPERATURE_MEDIUM).l,d6 ; The second catalytic converter temperature protection threshold. ; Degrees_C_S sub.w (word_FFFFACAE).w,d6 bvc.s loc_7C112 bmi.s loc_7C0D6 loc_7C10E: ; CODE XREF: sub_7BC70+464j move.w #$8000,d6 loc_7C112: ; CODE XREF: sub_7BC70+462j ; sub_7BC70+46Aj ... move.w d6,var_A(a6) loc_7C116: ; CODE XREF: sub_7BC70+48Ej tst.b d0 bne.w loc_7C1BA clr.w d4 move.w var_A(a6),d0 blt.s loc_7C13A cmpi.w #$1200,d0 bge.s loc_7C136 move.l d0,d4 muls.w #5,d4 divs.w #6,d4 bra.s loc_7C13A ; --------------------------------------------------------------------------- loc_7C136: ; CODE XREF: sub_7BC70+4B8j move.w #$F00,d4 loc_7C13A: ; CODE XREF: sub_7BC70+4B2j ; sub_7BC70+4C4j movea.l #$8E9C,a2 tblu.w (a2),d4 cmp.b d2,d5 bne.s loc_7C190 add.w d4,d3 cmpi.w #$7FFF,d3 bls.s loc_7C154 move.w #$7FFF,d3 loc_7C154: ; CODE XREF: sub_7BC70+4DEj move.w d3,(word_FFFFACAC).w cmp.w (word_FFFFA1EE).w,d3 bcc.s loc_7C170 add.w (word_FFFFA1EE).w,d4 cmpi.w #$7FFF,d4 bls.s loc_7C16C move.w #$7FFF,d4 loc_7C16C: ; CODE XREF: sub_7BC70+4F6j move.w d4,(word_FFFFACAC).w loc_7C170: ; CODE XREF: sub_7BC70+4ECj move.w (CONVERTER_KE_COT_MAX_EQ_ALLOWED).l,d3 ; Maximum amount of authority the COT EQ offset can have. ; Equiv_Ratio_Type move.w (word_FFFFACAC).w,d4 cmp.w d3,d4 bls.s loc_7C184 loc_7C17E: ; CODE XREF: sub_7BC70+51Ej move.w d3,(word_FFFFACAC).w bra.s loc_7C1BA ; --------------------------------------------------------------------------- loc_7C184: ; CODE XREF: sub_7BC70+50Cj move.w (CONVERTER_KE_COT_MIN_EQ_ALLOWED).l,d3 ; Minimum amount of fueling that COT will try to deliver. Have this minimum help to get back to closed loop fuel sooner. ; Equiv_Ratio_Type cmp.w d3,d4 bcc.s loc_7C1BA bra.s loc_7C17E ; --------------------------------------------------------------------------- loc_7C190: ; CODE XREF: sub_7BC70+4D6j sub.w d4,d3 bcc.s loc_7C196 clr.w d3 loc_7C196: ; CODE XREF: sub_7BC70+522j move.w d3,(word_FFFFACAC).w cmp.w (CONVERTER_KE_COT_MIN_EQ_ALLOWED).l,d3 ; Minimum amount of fueling that COT will try to deliver. Have this minimum help to get back to closed loop fuel sooner. ; Equiv_Ratio_Type bcc.s loc_7C1A6 clr.w (word_FFFFACAC).w loc_7C1A6: ; CODE XREF: sub_7BC70+530j tst.b (byte_FFFFACAA).w beq.s loc_7C1BA tst.w (word_FFFFACAC).w bne.s loc_7C1BA clr.b (byte_FFFFACAA).w clr.b (byte_FFFFACC0).w loc_7C1BA: ; CODE XREF: sub_7BC70+42Ej ; sub_7BC70+434j ... tst.b (byte_FFFFACAA).w beq.s loc_7C1EE move.l a1,d3 cmp.w (CONVERTER_KE_COT_THROTTLE_CLOSED).l,d3 ; Throttle position <= this causes airflow to determine timing of catalytic converter temperature update. ; Percent bhi.s loc_7C1D2 move.b #1,(byte_FFFFACD0).w bra.s loc_7C1DE ; --------------------------------------------------------------------------- loc_7C1D2: ; CODE XREF: sub_7BC70+558j cmp.w (CONVERTER_KE_COT_THROTTLE_OPENED).l,d3 ; Throttle position >= this allows immediate update OF catalytic converter temperature. ; Percent bcs.s loc_7C1DE clr.b (byte_FFFFACD0).w loc_7C1DE: ; CODE XREF: sub_7BC70+560j ; sub_7BC70+568j tst.b (byte_FFFFACD0).w beq.s loc_7C1F2 move.w (CONVERTER_KE_COT_MIN_EQ_ALLOWED).l,(word_FFFFACAC).w ; Minimum amount of fueling that COT will try to deliver. Have this minimum help to get back to closed loop fuel sooner. ; Equiv_Ratio_Type bra.s loc_7C1F2 ; --------------------------------------------------------------------------- loc_7C1EE: ; CODE XREF: sub_7BC70+54Ej clr.b (byte_FFFFACD0).w loc_7C1F2: ; CODE XREF: sub_7BC70+Ej ; sub_7BC70+32Aj ... move.w (word_FFFF82DE).w,var_4(a6) move.w (word_FFFFACC6).w,var_4(a6) move.w (word_FFFFACC8).w,var_4(a6) move.l (dword_FFFFACCA).w,var_8(a6) move.b (byte_FFFFACCE).w,var_2(a6) move.w (word_FFFFACBA).w,var_4(a6) move.w (word_FFFFACB8).w,var_4(a6) move.w (word_FFFFACB2).w,var_4(a6) move.w (word_FFFFACBE).w,var_4(a6) move.b (byte_FFFFACCF).w,var_2(a6) move.w (word_FFFFACAC).w,var_4(a6) movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_7BC70 ; =============== S U B R O U T I N E ======================================= sub_7C23C: ; CODE XREF: OS1:000289E0p movem.l d1-d2/a0,-(sp) andi.w #$FF,d0 movea.l off_89E8C(d0.w*4),a2 jmp (a2) ; End of function sub_7C23C ; --------------------------------------------------------------------------- loc_7C24E: ; DATA XREF: OS4:off_89E8Co ; OS4:00089E90o bra.w loc_7C2EA ; --------------------------------------------------------------------------- loc_7C252: ; DATA XREF: OS4:00089E94o tst.b (4294937881).w beq.s loc_7C298 move.l (dword_FFFFBF12).w,d3 cmpi.l #$34BC00,d3 bcc.s loc_7C26A divu.w #$8CA,d3 bra.s loc_7C26E ; --------------------------------------------------------------------------- loc_7C26A: ; CODE XREF: OS3:0007C262j move.w #$600,d3 loc_7C26E: ; CODE XREF: OS3:0007C268j tblu.w (CONVERTER_KV_COT_INITIAL_TEMP_SOAK_MULT).l,d3 ; soak timer modifier for Converter temperature prediction ; Scaler_2 muls.w (word_FFFF82DE).w,d3 move.w #$800,d4 divs.w d4,d3 bvc.s loc_7C292 swap d3 eor.w d4,d3 bmi.s loc_7C28E move.w #$7FFF,d3 bra.s loc_7C292 ; --------------------------------------------------------------------------- loc_7C28E: ; CODE XREF: OS3:0007C286j move.w #$8000,d3 loc_7C292: ; CODE XREF: OS3:0007C280j ; OS3:0007C28Cj move.w d3,(word_FFFF82DE).w bra.s loc_7C2EA ; --------------------------------------------------------------------------- loc_7C298: ; CODE XREF: OS3:0007C256j move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (CONVERTER_KE_COT_TEMPERATURE_COOL_THRESHOL).l,d3 ble.s loc_7C2AE move.w (CONVERTER_KE_COT_TEMPERATURE_INITIAL).l,(word_FFFF82DE).w ; If the coolant temperature is larger than this calibration, thenthe converter temperature is initialized to this calibration. ; Degrees_C_S bra.s loc_7C2EA ; --------------------------------------------------------------------------- loc_7C2AE: ; CODE XREF: OS3:0007C2A2j move.w (word_FFFFACB2).w,d0 move.w (word_FFFFACBE).w,d1 cmpi.w #$7000,d1 bcc.s loc_7C2C0 lsr.w #3,d1 bra.s loc_7C2C4 ; --------------------------------------------------------------------------- loc_7C2C0: ; CODE XREF: OS3:0007C2BAj move.w #$E00,d1 loc_7C2C4: ; CODE XREF: OS3:0007C2BEj cmpi.w #$A000,d0 bcc.s loc_7C2CE lsr.w #3,d0 bra.s loc_7C2D2 ; --------------------------------------------------------------------------- loc_7C2CE: ; CODE XREF: OS3:0007C2C8j move.w #$1400,d0 loc_7C2D2: ; CODE XREF: OS3:0007C2CCj moveq #$15,d2 movea.l #$8BEE,a0 jsr SurfaceTableLookup move.w d0,(word_FFFF82DE).w bra.s loc_7C2EA ; --------------------------------------------------------------------------- loc_7C2E6: ; DATA XREF: OS4:00089E98o ; OS4:00089E9Co bra.s loc_7C2EA ; --------------------------------------------------------------------------- loc_7C2E8: ; DATA XREF: OS4:00089EA4o ; OS4:00089EA8o nop loc_7C2EA: ; CODE XREF: OS3:loc_7C24Ej ; OS3:0007C296j ... movem.l (sp)+,d1-d2/a0 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7C2F0: ; CODE XREF: OS1:0002B74Ep var_2 = -2 link a6,#-2 move.w (word_FFFFE0C8).w,d4 move.w (word_FFFFE1DE).w,d3 cmp.w (word_FFFFAC50).w,d3 bne.s loc_7C346 move.l d4,d3 mulu.w #$187,d3 divu.w #$9E,d3 ; '?' bvs.s loc_7C312 add.w d3,d3 bcc.s loc_7C316 loc_7C312: ; CODE XREF: sub_7C2F0+1Cj move.w #$FFFF,d3 loc_7C316: ; CODE XREF: sub_7C2F0+20j andi.l #$FFFF,d3 divu.w #$3E8,d3 move.w (word_FFFFAC4C).w,var_2(a6) move.w (GlobalClock).w,d4 sub.w var_2(a6),d4 cmp.w d3,d4 bls.s loc_7C354 tst.b (byte_FFFFAC4E).w bne.s loc_7C354 jsr sub_78242 move.b #1,(byte_FFFFAC4E).w bra.s loc_7C354 ; --------------------------------------------------------------------------- loc_7C346: ; CODE XREF: sub_7C2F0+10j move.w d3,(word_FFFFAC50).w clr.b (byte_FFFFAC4E).w move.w (GlobalClock).w,(word_FFFFAC4C).w loc_7C354: ; CODE XREF: sub_7C2F0+40j ; sub_7C2F0+46j ... unlk a6 rts ; End of function sub_7C2F0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7C358: ; CODE XREF: DoLoopA:loc_29AF2p ; sub_60880+17Cp var_10 = -$10 var_E = -$E var_6 = -6 var_4 = -4 link a6,#-$10 movem.l d0-d2/a0,-(sp) lea var_10(a6),a0 moveq #$64,d0 ; 'd' jsr sub_82046 move.w var_E(a6),(word_FFFFAC3C).w move.w var_6(a6),(word_FFFFAC3A).w clr.l d2 move.w (word_FFFFAC30).w,d2 clr.l d1 move.w (word_FFFFAC3C).w,d1 moveq #$64,d0 ; 'd' jsr sub_81F74 move.w d0,(word_FFFFAC40).w clr.l d2 move.w (word_FFFFAC2E).w,d2 clr.l d1 move.w (word_FFFFAC3A).w,d1 moveq #$64,d0 ; 'd' jsr sub_81F74 move.w d0,(word_FFFFAC3E).w move.w (word_FFFFAC40).w,d3 moveq #1,d4 cmp.w d3,d4 bne.s loc_7C3C0 tst.w d0 bne.s loc_7C3C0 clr.b (byte_FFFFAC42).w move.b d4,(byte_FFFFAC43).w bra.s loc_7C3EA ; --------------------------------------------------------------------------- loc_7C3C0: ; CODE XREF: sub_7C358+58j ; sub_7C358+5Cj tst.w d3 bne.s loc_7C3E6 cmp.w d0,d4 bne.s loc_7C3E6 move.b d4,(byte_FFFFAC42).w move.b d4,(byte_FFFFAC43).w move.l var_4(a6),d3 cmpi.l #$FFFF,d3 bls.s loc_7C3E0 move.w #$FFFF,d3 loc_7C3E0: ; CODE XREF: sub_7C358+82j move.w d3,(word_FFFFAC32).w bra.s loc_7C3EA ; --------------------------------------------------------------------------- loc_7C3E6: ; CODE XREF: sub_7C358+6Aj ; sub_7C358+6Ej clr.b (byte_FFFFAC43).w loc_7C3EA: ; CODE XREF: sub_7C358+66j ; sub_7C358+8Cj move.w (word_FFFFAC3C).w,(word_FFFFAC30).w move.w (word_FFFFAC3A).w,(word_FFFFAC2E).w movem.l (sp)+,d0-d2/a0 unlk a6 rts ; End of function sub_7C358 ; =============== S U B R O U T I N E ======================================= sub_7C3FE: ; CODE XREF: DoLoopA+84p move.l d0,-(sp) btst #4,(byte_FFFFBF09).w bne.s loc_7C410 clr.b d0 jsr sub_782E4 loc_7C410: ; CODE XREF: sub_7C3FE+8j move.w (word_FFFFAC38).w,d4 bne.s loc_7C41E loc_7C416: ; CODE XREF: sub_7C3FE:loc_7C448j addq.w #1,d4 move.w d4,(word_FFFFAC38).w bra.s loc_7C47E ; --------------------------------------------------------------------------- loc_7C41E: ; CODE XREF: sub_7C3FE+16j tst.b (byte_FFFFAC43).w bne.s loc_7C44A tst.b (byte_FFFFAC49).w bne.s loc_7C47E clr.w d3 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d3 ; Number of cylinders for this engine application. ; SHORTCARD lsr.w #1,d3 cmp.w d4,d3 bhi.s loc_7C448 move.b #1,(byte_FFFFAC49).w addq.w #1,(word_FFFFAC34).w clr.b (byte_FFFFAC47).w bra.s loc_7C47E ; --------------------------------------------------------------------------- loc_7C448: ; CODE XREF: sub_7C3FE+38j bra.s loc_7C416 ; --------------------------------------------------------------------------- loc_7C44A: ; CODE XREF: sub_7C3FE+24j clr.w d0 move.b (byte_FFFFAC42).w,d0 move.b CYLINDER_NUMBER_KV_CYLINDER_AT_CAM(d0.w),d0 ; The cylinder number present when CAM has just transitionedto the indicated state. ; Cam_Transition tst.b (byte_FFFFAC49).w beq.s loc_7C470 cmp.b (byte_FFFFAC47).w,d0 beq.s loc_7C474 addq.w #1,(word_FFFFAC34).w jsr sub_327CA bra.s loc_7C474 ; --------------------------------------------------------------------------- loc_7C470: ; CODE XREF: sub_7C3FE+5Ej addq.w #1,(word_FFFFAC34).w loc_7C474: ; CODE XREF: sub_7C3FE+64j ; sub_7C3FE+70j move.b #1,(byte_FFFFAC49).w move.b d0,(byte_FFFFAC47).w loc_7C47E: ; CODE XREF: sub_7C3FE+1Ej ; sub_7C3FE+2Aj ... move.l (sp)+,d0 rts ; End of function sub_7C3FE ; =============== S U B R O U T I N E ======================================= sub_7C482: ; CODE XREF: DoLoopA+92p move.l d0,-(sp) moveq #3,d3 cmp.b (ThrottleControlMode2?).w,d3 bne.s loc_7C498 clr.b (byte_FFFFAC44).w move.b #1,(byte_FFFFAC45).w bra.s loc_7C4F8 ; --------------------------------------------------------------------------- loc_7C498: ; CODE XREF: sub_7C482+8j btst #3,(byte_FFFF8255).w bne.s loc_7C4BC cmpi.b #2,(byte_FFFFB000).w beq.s loc_7C4BC cmp.b (byte_FFFFB000).w,d3 beq.s loc_7C4BC cmpi.b #2,(byte_FFFFB001).w beq.s loc_7C4BC cmp.b (byte_FFFFB001).w,d3 bne.s loc_7C4F8 loc_7C4BC: ; CODE XREF: sub_7C482+1Cj ; sub_7C482+24j ... move.b (byte_FFFFAC4A).w,d3 addq.b #1,d3 bcc.s loc_7C4C8 move.b #$FF,d3 loc_7C4C8: ; CODE XREF: sub_7C482+40j move.b d3,(byte_FFFFAC4A).w move.w (CoolantTemperatureOrDefault).w,d4 addi.w #$400,d4 movea.l #CYLINDER_NUMBER_KV_SYNC_REFERENCES,a2 ; Number of low-resolution reference pulses that must occur before a change in cam signal is assumed. ; SHORTCARD tblu.b (a2),d4 cmp.b d4,d3 bcs.s loc_7C4F8 move.b (byte_FFFFAC47).w,(byte_FFFFAC56).w moveq #1,d0 move.b d0,(byte_FFFFAC44).w move.b d0,(byte_FFFFAC45).w jsr sub_78242 loc_7C4F8: ; CODE XREF: sub_7C482+14j ; sub_7C482+38j ... move.l (sp)+,d0 rts ; End of function sub_7C482 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7C4FC: ; CODE XREF: sub_7C59E+DEp var_2 = -2 link a6,#-2 tst.b (byte_FFFFAC44).w beq.s loc_7C55E move.b (byte_FFFFAC56).w,d4 cmpi.b #6,d4 bhi.s loc_7C53A beq.s loc_7C51E move.b (byte_FFFFAC52).w,d3 addq.b #2,d4 cmp.b d3,d4 bcs.s loc_7C55A bra.s loc_7C532 ; --------------------------------------------------------------------------- loc_7C51E: ; CODE XREF: sub_7C4FC+14j move.b (byte_FFFFAC52).w,d3 cmpi.b #6,d3 beq.s loc_7C532 cmpi.b #7,d3 beq.s loc_7C532 tst.b d3 bne.s loc_7C55A loc_7C532: ; CODE XREF: sub_7C4FC+20j ; sub_7C4FC+2Aj ... addq.b #4,d3 andi.b #7,d3 bra.s loc_7C552 ; --------------------------------------------------------------------------- loc_7C53A: ; CODE XREF: sub_7C4FC+12j move.b (byte_FFFFAC52).w,d3 moveq #7,d4 cmp.b d3,d4 beq.s loc_7C54E tst.b d3 beq.s loc_7C54E cmpi.b #1,d3 bne.s loc_7C55A loc_7C54E: ; CODE XREF: sub_7C4FC+46j ; sub_7C4FC+4Aj addq.b #4,d3 and.b d4,d3 loc_7C552: ; CODE XREF: sub_7C4FC+3Cj andi.w #$FF,d3 move.b d3,(byte_FFFFAC52).w loc_7C55A: ; CODE XREF: sub_7C4FC+1Ej ; sub_7C4FC+34j ... clr.b (byte_FFFFAC44).w loc_7C55E: ; CODE XREF: sub_7C4FC+8j move.w (word_FFFFAC54).w,d3 cmp.w (ENG_CONSTANTS_KE_LOW_RESOLUTION_REFERENCE_ANGL).l,d3 ; Identifies the number of degrees from a low resolution pulse to Top Dead Center of the cylinder. ; Degrees bgt.s loc_7C580 clr.b d3 move.w (word_FFFFE2F4).w,var_2(a6) btst #4,var_2(a6) beq.s loc_7C57C moveq #1,d3 loc_7C57C: ; CODE XREF: sub_7C4FC+7Cj tst.b d3 beq.s loc_7C594 loc_7C580: ; CODE XREF: sub_7C4FC+6Cj move.b (byte_FFFFAC52).w,d3 bne.s loc_7C58C move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d3 ; Number of cylinders for this engine application. ; SHORTCARD loc_7C58C: ; CODE XREF: sub_7C4FC+88j subq.b #1,d3 move.b d3,(byte_FFFFAC47).w bra.s loc_7C59A ; --------------------------------------------------------------------------- loc_7C594: ; CODE XREF: sub_7C4FC+82j move.b (byte_FFFFAC52).w,(byte_FFFFAC47).w loc_7C59A: ; CODE XREF: sub_7C4FC+96j unlk a6 rts ; End of function sub_7C4FC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7C59E: ; CODE XREF: sub_7C71C+1Ap var_8 = -8 var_7 = -7 var_6 = -6 var_4 = -4 var_2 = -2 link a6,#-8 movem.l d0-d2,-(sp) jsr sub_78A52 loc_7C5AC: ; CODE XREF: sub_7C59E+56j clr.b d1 moveq #$4B,d0 ; 'K' jsr (sub_FC0).l loc_7C5B6: ; CODE XREF: sub_7C59E+22j move.w (word_FFFFE1DE).w,d3 move.w (word_FFFFE0C4).w,d2 cmp.w d2,d3 bne.s loc_7C5B6 moveq #1,d1 moveq #$4B,d0 ; 'K' jsr (sub_FC0).l movea.w (word_FFFFE1E4).w,a2 loc_7C5D0: ; CODE XREF: sub_7C59E+3Cj move.w (word_FFFFE1E4).w,d3 sub.w a2,d3 cmpi.w #1,d3 bls.s loc_7C5D0 move.w (word_FFFFE040).w,var_6(a6) move.w (word_FFFFE1C8).w,var_2(a6) move.b var_2(a6),d3 move.b d3,var_7(a6) cmp.w (word_FFFFE1DE).w,d2 bne.s loc_7C5AC jsr sub_782A6 move.b d0,var_8(a6) jsr sub_78484 move.b var_8(a6),(byte_FFFFAC46).w move.b (ENG_CONSTANTS_KE_TYPE_OF_KNOCK_SENSORS+2).l,d4 ; Identifies whether the engine is equipped with resonant( 0 ) or flat response( 1 ) knock sensors. ; Knock_Sensor_Type move.b var_8(a6),d3 cmp.b d4,d3 bhi.s loc_7C62A cmp.b (ENG_CONSTANTS_KE_TYPE_OF_KNOCK_SENSORS+1).l,d3 ; Identifies whether the engine is equipped with resonant( 0 ) or flat response( 1 ) knock sensors. ; Knock_Sensor_Type bcs.s loc_7C62A btst #5,var_6+1(a6) bra.s loc_7C630 ; --------------------------------------------------------------------------- loc_7C62A: ; CODE XREF: sub_7C59E+7Aj ; sub_7C59E+82j btst #0,var_6+1(a6) loc_7C630: ; CODE XREF: sub_7C59E+8Aj sne d5 neg.b d5 move.b d5,(byte_FFFFAC57).w cmp.b d4,d3 bhi.s loc_7C652 tst.b (byte_FFFFAC57).w beq.s loc_7C658 loc_7C642: ; CODE XREF: sub_7C59E+B8j clr.l d1 move.b d3,d1 move.b byte_895EE(d1.w),(byte_FFFFAC52).w bra.s loc_7C666 ; --------------------------------------------------------------------------- loc_7C652: ; CODE XREF: sub_7C59E+9Cj tst.b (byte_FFFFAC57).w beq.s loc_7C642 loc_7C658: ; CODE XREF: sub_7C59E+A2j clr.l d1 move.b d3,d1 move.b byte_89606(d1.w),(byte_FFFFAC52).w loc_7C666: ; CODE XREF: sub_7C59E+B2j andi.w #$FF,d3 move.w (ENG_CONSTANTS_KE_LOW_RESOLUTION_REFERENCE_ANGL).l,d4 ; Identifies the number of degrees from a low resolution pulse to Top Dead Center of the cylinder. ; Degrees sub.w word_8961E(d3.w*2),d4 move.w d4,(word_FFFFAC54).w jsr sub_7C4FC cmpi.w #$81,(word_FFFFE0C8).w ; '?' bls.s loc_7C6C8 move.w (word_FFFFAC54).w,d4 cmp.w (word_FFFF9848).w,d4 ble.s loc_7C6C8 clr.w d0 move.b var_8(a6),d0 move.b var_7(a6),d4 sub.b byte_8964E(d0.w),d4 move.b d4,var_4(a6) clr.b var_4+1(a6) move.w var_4(a6),(word_FFFFE1EA).w move.b #$FF,var_4+1(a6) move.w var_4(a6),(word_FFFFE1E8).w move.b (byte_FFFFAC52).w,(byte_FFFFAC48).w bra.s loc_7C6E2 ; --------------------------------------------------------------------------- loc_7C6C8: ; CODE XREF: sub_7C59E+EAj ; sub_7C59E+F4j move.b (byte_FFFFAC52).w,d3 move.l d3,d5 addq.b #1,d5 cmp.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d5 ; Number of cylinders for this engine application. ; SHORTCARD bcs.s loc_7C6DC clr.b d3 bra.s loc_7C6DE ; --------------------------------------------------------------------------- loc_7C6DC: ; CODE XREF: sub_7C59E+138j addq.b #1,d3 loc_7C6DE: ; CODE XREF: sub_7C59E+13Cj move.b d3,(byte_FFFFAC48).w loc_7C6E2: ; CODE XREF: sub_7C59E+128j move.b (byte_FFFFAC46).w,d4 move.w (word_FFFFE0C8).w,d0 move.w (word_FFFFE1DE).w,d3 cmpi.w #$150A,d0 bcc.s loc_7C714 clr.l d5 move.b d4,d5 divul.l #6,d4:d5 mulu.w d0,d4 cmpi.l #$FFFF,d4 bls.s loc_7C70E move.w #$FFFF,d4 loc_7C70E: ; CODE XREF: sub_7C59E+16Aj sub.w d4,d3 move.w d3,(word_FFFFE0AE).w loc_7C714: ; CODE XREF: sub_7C59E+154j movem.l (sp)+,d0-d2 unlk a6 rts ; End of function sub_7C59E ; =============== S U B R O U T I N E ======================================= sub_7C71C: ; CODE XREF: sub_7C7E8+24p movem.l d0-d1/a0-a1,-(sp) moveq #1,d1 move.b d1,(byte_FFFFAC49).w move.w (word_FFFFAC34).w,d3 addq.w #1,d3 bcc.s loc_7C732 move.w #$FFFF,d3 loc_7C732: ; CODE XREF: sub_7C71C+10j move.w d3,(word_FFFFAC34).w jsr sub_7C59E move.b (byte_FFFFAC48).w,d3 move.l d3,d0 cmp.b (byte_FFFFAC47).w,d3 beq.s loc_7C750 jsr sub_782E4 bra.s loc_7C78E ; --------------------------------------------------------------------------- loc_7C750: ; CODE XREF: sub_7C71C+2Aj jsr sub_782E4 move.w (word_FFFFE1DE).w,d3 movea.w #$7FFF,a0 add.w a0,d3 move.w d3,(word_FFFFE1D8).w move.w (word_FFFFE1DE).w,d3 add.w a0,d3 move.w d3,(word_FFFFE1DA).w move.w d1,(word_FFFFE0CC).w clr.w (word_FFFFE1C2).w movea.w #8,a1 move.w a1,(word_FFFFE2F4).w move.w a1,(word_FFFFE2D4).w move.w (word_FFFFE09C).w,d3 ori.w #$20,d3 ; ' ' move.w d3,(word_FFFFE09C).w loc_7C78E: ; CODE XREF: sub_7C71C+32j jsr sub_60BE2 movem.l (sp)+,d0-d1/a0-a1 rts ; End of function sub_7C71C ; =============== S U B R O U T I N E ======================================= sub_7C79A: ; CODE XREF: sub_7C7E8:loc_7C81Ap move.l d0,-(sp) clr.b (byte_FFFFAC49).w move.w (word_FFFFAC36).w,d3 addq.w #1,d3 bcc.s loc_7C7AC move.w #$FFFF,d3 loc_7C7AC: ; CODE XREF: sub_7C79A+Cj move.w d3,(word_FFFFAC36).w move.w (word_FFFF82E2).w,d3 addq.w #1,d3 bcc.s loc_7C7BC move.w #$FFFF,d3 loc_7C7BC: ; CODE XREF: sub_7C79A+1Cj move.w d3,(word_FFFF82E2).w moveq #8,d0 move.b d0,(byte_FFFFAC47).w move.b d0,(byte_FFFFAC48).w jsr sub_7990A jsr sub_78242 clr.w (word_FFFFE0B2).w clr.b (byte_FFFFB272).w jsr sub_32E6A move.l (sp)+,d0 rts ; End of function sub_7C79A ; =============== S U B R O U T I N E ======================================= sub_7C7E8: ; CODE XREF: OS1:0002B7C4p bclr #3,(byte_FFFFFE21).w tst.b (byte_FFFFB47A).w bne.s loc_7C7FC cmpi.b #4,(ThrottleControlMode2?).w beq.s locret_7C820 loc_7C7FC: ; CODE XREF: sub_7C7E8+Aj move.w (word_FFFFFF32).w,d3 btst #$F,d3 beq.s loc_7C81A tst.b (byte_FFFFAC49).w bne.s loc_7C81A jsr sub_7C71C jsr sub_327CA bra.s locret_7C820 ; --------------------------------------------------------------------------- loc_7C81A: ; CODE XREF: sub_7C7E8+1Cj ; sub_7C7E8+22j jsr sub_7C79A locret_7C820: ; CODE XREF: sub_7C7E8+12j ; sub_7C7E8+30j rts ; End of function sub_7C7E8 ; =============== S U B R O U T I N E ======================================= sub_7C822: ; CODE XREF: OS3:loc_7C840p ; OS3:loc_7C848p ... moveq #8,d3 move.b d3,(byte_FFFFAC47).w move.b d3,(byte_FFFFAC48).w clr.b (byte_FFFFAC49).w rts ; End of function sub_7C822 ; =============== S U B R O U T I N E ======================================= sub_7C832: ; CODE XREF: OS1:loc_2887Ep andi.w #$FF,d0 movea.l off_89E14(d0.w*4),a2 jmp (a2) ; End of function sub_7C832 ; --------------------------------------------------------------------------- loc_7C840: ; DATA XREF: OS4:00089E1Co jsr sub_7C822 bra.s locret_7C8A0 ; --------------------------------------------------------------------------- loc_7C848: ; DATA XREF: OS4:00089E38o jsr sub_7C822 bra.s loc_7C88C ; --------------------------------------------------------------------------- loc_7C850: ; DATA XREF: OS4:00089E20o jsr sub_7C822 clr.b (byte_FFFFAC44).w clr.b (byte_FFFFAC45).w clr.b (byte_FFFFAC4A).w clr.w (word_FFFFAC38).w clr.w (word_FFFFAC34).w clr.w (word_FFFFAC36).w bra.s locret_7C8A0 ; --------------------------------------------------------------------------- loc_7C870: ; DATA XREF: OS4:off_89E14o ; OS4:00089E2Co jsr sub_7C822 clr.b (byte_FFFFAC44).w clr.b (byte_FFFFAC45).w clr.b (byte_FFFFAC4A).w clr.w (word_FFFFAC38).w clr.w (word_FFFFAC34).w bra.s locret_7C8A0 ; --------------------------------------------------------------------------- loc_7C88C: ; CODE XREF: OS3:0007C84Ej ; DATA XREF: OS4:00089E18o clr.w (word_FFFFAC38).w bra.s locret_7C8A0 ; --------------------------------------------------------------------------- loc_7C892: ; DATA XREF: OS4:00089E30o tst.b (byte_FFFFB37A).w beq.s locret_7C8A0 clr.b d0 jsr sub_782E4 locret_7C8A0: ; CODE XREF: OS3:0007C846j ; OS3:0007C86Ej ... rts ; =============== S U B R O U T I N E ======================================= sub_7C8A2: ; CODE XREF: DoLoopE+182p movem.l d0-d2,-(sp) clr.b d4 move.b (byte_FFFFA3B1).w,d3 moveq #6,d5 cmp.b d3,d5 beq.s loc_7C8B8 cmpi.b #5,d3 bne.s loc_7C8BA loc_7C8B8: ; CODE XREF: sub_7C8A2+Ej addq.b #1,d4 loc_7C8BA: ; CODE XREF: sub_7C8A2+14j cmpi.b #4,d3 seq d3 neg.b d3 cmp.b (byte_FFFFB35D).w,d4 bne.s loc_7C8CE cmp.b (byte_FFFFB35E).w,d3 beq.s loc_7C8D6 loc_7C8CE: ; CODE XREF: sub_7C8A2+24j move.b #1,(byte_FFFFB35C).w bra.s loc_7C8DA ; --------------------------------------------------------------------------- loc_7C8D6: ; CODE XREF: sub_7C8A2+2Aj clr.b (byte_FFFFB35C).w loc_7C8DA: ; CODE XREF: sub_7C8A2+32j move.b d4,(byte_FFFFB35D).w move.b d3,(byte_FFFFB35E).w move.w (word_FFFFAB66).w,d1 cmp.w (DT_ABUSE_MGMT_KE_ABUSE_THROTTLE_LOW).l,d1 ; If the throttle position is greater than this hysteresis limit,drivetrain abuse can be enabled. ; Percent bcc.s loc_7C900 move.w (word_FFFFB358).w,d3 addq.w #8,d3 bcc.s loc_7C8FA move.w #$FFFF,d3 loc_7C8FA: ; CODE XREF: sub_7C8A2+52j move.w d3,(word_FFFFB358).w bra.s loc_7C904 ; --------------------------------------------------------------------------- loc_7C900: ; CODE XREF: sub_7C8A2+4Aj clr.w (word_FFFFB358).w loc_7C904: ; CODE XREF: sub_7C8A2+5Cj move.b (byte_FFFFB35C).w,d0 bne.s loc_7C91C move.w (word_FFFFB35A).w,d3 addq.w #8,d3 bcc.s loc_7C916 move.w #$FFFF,d3 loc_7C916: ; CODE XREF: sub_7C8A2+6Ej move.w d3,(word_FFFFB35A).w bra.s loc_7C920 ; --------------------------------------------------------------------------- loc_7C91C: ; CODE XREF: sub_7C8A2+66j clr.w (word_FFFFB35A).w loc_7C920: ; CODE XREF: sub_7C8A2+78j move.w (word_FFFFA3C2).w,d3 muls.w #$60,d3 ; '`' moveq #5,d2 divs.w d2,d3 cmpi.w #$DFF,d3 bgt.s loc_7C93A cmpi.w #$FC00,d3 blt.s loc_7C940 bra.s loc_7C944 ; --------------------------------------------------------------------------- loc_7C93A: ; CODE XREF: sub_7C8A2+8Ej move.w #$DFF,d3 bra.s loc_7C944 ; --------------------------------------------------------------------------- loc_7C940: ; CODE XREF: sub_7C8A2+94j move.w #$FC00,d3 loc_7C944: ; CODE XREF: sub_7C8A2+96j ; sub_7C8A2+9Cj movea.w #$FFE,a2 addi.w #$400,d3 muls.w d2,d3 divs.w #6,d3 tblu.w (DT_ABUSE_MGMT_KV_ABUSE_TIME).l,d3 move.l (byte_FFFF8252).w,d4 btst #$1D,d4 bne.s loc_7C9C0 cmp.w (DT_ABUSE_MGMT_KE_ABUSE_THROTTLE_HIGH).l,d1 ; If the throttle position is greater than this hysteresis limit,drivetrain abuse can be enabled. ; Percent bls.s loc_7C9C0 btst #$1F,d4 bne.s loc_7C9C0 move.w (word_FFFFAEBE).w,d4 cmp.w (DT_ABUSE_MGMT_KE_ABUSE_VEHICLE_SPEED_THRESH).l,d4 ; If the vehicle speed is greater than or equal to this value,drivetrain abuse can not be enabled. ; MPH bcc.s loc_7C9C0 move.w (EngineRPM_PID_000C___).w,d4 cmp.w (DT_ABUSE_MGMT_KE_ABUSE_DRIVE_RPM_HIGH).l,d4 bls.s loc_7C9C0 move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d4 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type moveq #2,d1 cmp.b d4,d1 beq.s loc_7C9A8 tst.b (byte_FFFFA3B9).w beq.s loc_7C9A8 tst.b d0 beq.s loc_7C9A8 btst #1,(byte_FFFF8A6E).w beq.s loc_7C9BA loc_7C9A8: ; CODE XREF: sub_7C8A2+F2j ; sub_7C8A2+F8j ... cmp.b d4,d1 bne.s loc_7C9C0 tst.b (byte_FFFFA3B9).w bne.s loc_7C9C0 btst #1,(byte_FFFF8A08).w bne.s loc_7C9C0 loc_7C9BA: ; CODE XREF: sub_7C8A2+104j moveq #1,d0 move.b d0,(byte_FFFFB352).w loc_7C9C0: ; CODE XREF: sub_7C8A2+C0j ; sub_7C8A2+C8j ... cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_7CA02 move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d4 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type moveq #2,d0 cmp.b d4,d0 beq.s loc_7C9F0 cmp.w (word_FFFFB358).w,d3 bcs.s loc_7CA02 cmp.w (word_FFFFB35A).w,d3 bcs.s loc_7CA02 btst #5,(byte_FFFF8252).w bne.s loc_7CA02 btst #1,(byte_FFFF8A6E).w bne.s loc_7CA02 loc_7C9F0: ; CODE XREF: sub_7C8A2+130j cmp.b d4,d0 bne.s loc_7CA06 tst.b (byte_FFFFA3B9).w bne.s loc_7CA02 btst #1,(byte_FFFF8A08).w beq.s loc_7CA06 loc_7CA02: ; CODE XREF: sub_7C8A2+124j ; sub_7C8A2+136j ... clr.b (byte_FFFFB352).w loc_7CA06: ; CODE XREF: sub_7C8A2+150j ; sub_7C8A2+15Ej move.b (byte_FFFFB352).w,d4 beq.s loc_7CA30 tst.b (byte_FFFFA3B9).w beq.s loc_7CA1E move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DT_ABUSE_MGMT_KE_ABUSE_DRIVE_RPM_LOW).l,d3 bcs.s loc_7CA30 loc_7CA1E: ; CODE XREF: sub_7C8A2+16Ej tst.b (byte_FFFFA3B9).w bne.s loc_7CA34 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DT_ABUSE_MGMT_KE_ABUSE_PN_RPM_LOW).l,d3 bcc.s loc_7CA34 loc_7CA30: ; CODE XREF: sub_7C8A2+168j ; sub_7C8A2+17Aj clr.b (byte_FFFFB357).w loc_7CA34: ; CODE XREF: sub_7C8A2+180j ; sub_7C8A2+18Cj tst.b d4 beq.s loc_7CA66 tst.b (byte_FFFFA3B9).w bne.s loc_7CA66 move.b (byte_FFFFB357).w,d3 bne.s loc_7CA50 move.w (EngineRPM_PID_000C___).w,d0 cmp.w (DT_ABUSE_MGMT_KE_ABUSE_PN_RPM_HIGH).l,d0 bhi.s loc_7CA60 loc_7CA50: ; CODE XREF: sub_7C8A2+1A0j tst.b d3 beq.s loc_7CA66 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DT_ABUSE_MGMT_KE_ABUSE_PN_RPM_LOW).l,d3 bcs.s loc_7CA66 loc_7CA60: ; CODE XREF: sub_7C8A2+1ACj moveq #1,d0 move.b d0,(byte_FFFFB357).w loc_7CA66: ; CODE XREF: sub_7C8A2+194j ; sub_7C8A2+19Aj ... and.b (byte_FFFFA3B9).w,d4 beq.s loc_7CA94 move.b (byte_FFFFB357).w,d3 bne.s loc_7CA7E move.w (EngineRPM_PID_000C___).w,d4 cmp.w (DT_ABUSE_MGMT_KE_ABUSE_DRIVE_RPM_HIGH).l,d4 bhi.s loc_7CA8E loc_7CA7E: ; CODE XREF: sub_7C8A2+1CEj tst.b d3 beq.s loc_7CA94 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (DT_ABUSE_MGMT_KE_ABUSE_DRIVE_RPM_LOW).l,d3 bcs.s loc_7CA94 loc_7CA8E: ; CODE XREF: sub_7C8A2+1DAj moveq #2,d4 move.b d4,(byte_FFFFB357).w loc_7CA94: ; CODE XREF: sub_7C8A2+1C8j ; sub_7C8A2+1DEj ... move.b (byte_FFFFB357).w,d3 cmpi.b #1,d3 bne.s loc_7CAB0 move.b (DT_ABUSE_MGMT_KV_ABUSE_CYLINDER_DISABLE_PN).l,(byte_FFFFB356).w ; Vector specifying which cylinders to disable in abuse managementwhen PSM indicates Park or Neutral. FALSE = DISABLED ; BOOLEAN loc_7CAA6: ; CODE XREF: sub_7C8A2+21Cj move.w (DT_ABUSE_MGMT_KE_ABUSE_EQUIVALENCE_RATIO).l,(word_FFFFB354).w ; If drivetrain abuse is active, the fuel equivalence ratiois commanded to this value. ; Equiv_Ratio_Type bra.s loc_7CACC ; --------------------------------------------------------------------------- loc_7CAB0: ; CODE XREF: sub_7C8A2+1FAj cmpi.b #2,d3 bne.s loc_7CAC0 move.b (DT_ABUSE_MGMT_KV_ABUSE_CYLINDER_DISABLE_NOT_PN).l,(byte_FFFFB356).w ; Vector specifying which cylinders to disable in abuse managementwhen PSM does not indicate Park or Neutral. FALSE = DISABLED ; BOOLEAN bra.s loc_7CAA6 ; --------------------------------------------------------------------------- loc_7CAC0: ; CODE XREF: sub_7C8A2+212j move.b (byte_E0B).l,(byte_FFFFB356).w clr.w (word_FFFFB354).w loc_7CACC: ; CODE XREF: sub_7C8A2+20Cj movem.l (sp)+,d0-d2 rts ; End of function sub_7C8A2 ; =============== S U B R O U T I N E ======================================= sub_7CAD2: ; CODE XREF: OS1:000292B0p andi.w #$FF,d0 movea.l off_89D74(d0.w*4),a2 jmp (a2) ; End of function sub_7CAD2 ; --------------------------------------------------------------------------- loc_7CAE0: ; DATA XREF: OS4:00089D78o ; OS4:00089D84o ... bra.s locret_7CAF2 ; --------------------------------------------------------------------------- loc_7CAE2: ; DATA XREF: OS4:off_89D74o ; OS4:00089D7Co ... clr.b (4294947666).w clr.w (4294947668).w move.b (byte_E0B).l,(byte_FFFFB356).w locret_7CAF2: ; CODE XREF: OS3:loc_7CAE0j ; DATA XREF: OS4:00089D88o rts ; =============== S U B R O U T I N E ======================================= sub_7CAF4: ; CODE XREF: OS1:00028CF8p ; sub_755FA+19Cp andi.w #$FF,d0 movea.l off_8A1D4(d0.w*4),a2 jmp (a2) ; End of function sub_7CAF4 ; --------------------------------------------------------------------------- loc_7CB02: ; DATA XREF: OS4:0008A1DCo move.w (word_FFFF82EA).w,d3 sub.w (word_FFFFADB4).w,d3 cmpi.w #$7FFF,d3 bls.s loc_7CB12 clr.w d3 loc_7CB12: ; CODE XREF: OS3:0007CB0Ej move.w d3,(word_FFFFA738).w move.w #$13CD,(word_FFFFA74A).w clr.b (byte_FFFFA75B).w move.w (word_FFFFADB4).w,d3 cmp.w (ENG_OIL_KE_OIL_TEMPERATURE_EQUILIBRIUM).l,d3 bgt.s loc_7CB7A sub.w (word_FFFFB3EE).w,d3 cmpi.w #$DFF,d3 bgt.s loc_7CB3E cmpi.w #$FC00,d3 blt.s loc_7CB44 bra.s loc_7CB48 ; --------------------------------------------------------------------------- loc_7CB3E: ; CODE XREF: OS3:0007CB34j move.w #$DFF,d3 bra.s loc_7CB48 ; --------------------------------------------------------------------------- loc_7CB44: ; CODE XREF: OS3:0007CB3Aj move.w #$FC00,d3 loc_7CB48: ; CODE XREF: OS3:0007CB3Cj ; OS3:0007CB42j tst.w d3 bge.s loc_7CB4E clr.w d3 loc_7CB4E: ; CODE XREF: OS3:0007CB4Aj clr.l d5 move.w (ENG_OIL_KE_WARMUP_COOLANT_COEFFICIENT).l,d5 move.l d3,d4 ext.l d4 muls.l d5,d4 bpl.s loc_7CB66 addi.l #$FFFF,d4 loc_7CB66: ; CODE XREF: OS3:0007CB5Ej asr.l #8,d4 asr.l #8,d4 move.w (word_FFFFADB4).w,d3 sub.w d4,d3 cmpi.w #$FC00,d3 bge.s loc_7CB7A move.w #$FC00,d3 loc_7CB7A: ; CODE XREF: OS3:0007CB2Aj ; OS3:0007CB74j move.w d3,(word_FFFFA73A).w move.w d3,(word_FFFFA72E).w muls.w #$140,d3 move.l d3,(dword_FFFFA73C).w moveq #$FFFFFFFF,d3 cmp.l (dword_FFFF8088).w,d3 bne.s loc_7CB96 clr.l (dword_FFFF8088).w loc_7CB96: ; CODE XREF: OS3:0007CB90j cmpi.w #$FFFF,(word_FFFF808C).w bne.s loc_7CBA2 clr.w (word_FFFF808C).w loc_7CBA2: ; CODE XREF: OS3:0007CB9Cj cmp.l (dword_FFFF808E).w,d3 bne.s loc_7CBAC clr.l (dword_FFFF808E).w loc_7CBAC: ; CODE XREF: OS3:0007CBA6j tst.b (byte_FFFFB54A).w bne.w locret_7CCBA clr.w (word_FFFF82C2).w clr.b (byte_FFFF82C5).w bra.w locret_7CCBA ; --------------------------------------------------------------------------- loc_7CBC0: ; DATA XREF: OS4:0008A1F0o ; OS4:0008A1F4o bra.s loc_7CC20 ; --------------------------------------------------------------------------- loc_7CBC2: ; DATA XREF: OS4:0008A1E0o clr.w (word_FFFF82C2).w bclr #6,(byte_FFFFA733).w bclr #5,(byte_FFFFA733).w clr.b (byte_FFFFA754).w clr.b (byte_FFFFA755).w bclr #1,(byte_FFFFA732).w bclr #4,(byte_FFFFA732).w bclr #2,(byte_FFFFA733).w bclr #2,(byte_FFFFA732).w bclr #1,(byte_FFFFA733).w move.w #$13CD,(word_FFFFA74A).w bclr #5,(byte_FFFFA732).w clr.w (word_FFFFA75E).w bra.w locret_7CCBA ; --------------------------------------------------------------------------- loc_7CC0C: ; DATA XREF: OS4:0008A1ECo clr.b (byte_FFFFA754).w clr.b (byte_FFFFA755).w bclr #6,(byte_FFFFA733).w bclr #5,(byte_FFFFA733).w loc_7CC20: ; CODE XREF: OS3:loc_7CBC0j tst.b (ENG_OIL_KE_OIL_LEVEL_LIGHT_ON_FOR_RUN).l ; If TRUE and Oil Level is low turn on Oil Low Light. ; BOOLEAN bne.w locret_7CCBA bclr #6,(byte_FFFFA732).w move.b #1,(byte_FFFFA759).w bra.w locret_7CCBA ; --------------------------------------------------------------------------- loc_7CC3A: ; DATA XREF: OS4:0008A1D8o ; OS4:0008A1F8o bclr #6,(byte_FFFFA732).w clr.b (byte_FFFFA757).w clr.b (byte_FFFFA758).w bclr #1,(byte_FFFFA732).w bclr #4,(byte_FFFFA732).w bclr #2,(byte_FFFFA733).w bclr #2,(byte_FFFFA732).w bclr #1,(byte_FFFFA733).w bclr #5,(byte_FFFFA732).w bclr #6,(byte_FFFFA733).w bclr #5,(byte_FFFFA733).w bra.s locret_7CCBA ; --------------------------------------------------------------------------- loc_7CC7A: ; DATA XREF: OS4:0008A1E4o bclr #6,(byte_FFFFA732).w bclr #1,(byte_FFFFA732).w bclr #4,(byte_FFFFA732).w bclr #2,(byte_FFFFA733).w bclr #2,(byte_FFFFA732).w bclr #1,(byte_FFFFA733).w bclr #5,(byte_FFFFA732).w bra.s locret_7CCBA ; --------------------------------------------------------------------------- loc_7CCA6: ; DATA XREF: OS4:off_8A1D4o tst.b (ENG_OIL_KE_OIL_LEVEL_LIGHT_ON_FOR_RUN).l ; If TRUE and Oil Level is low turn on Oil Low Light. ; BOOLEAN bne.s locret_7CCBA bclr #6,(4294944562).w move.b #1,(byte_FFFFA759).w locret_7CCBA: ; CODE XREF: OS3:0007CBB0j ; OS3:0007CBBCj ... rts ; =============== S U B R O U T I N E ======================================= sub_7CCBC: ; CODE XREF: DoLoopC+384p move.b (byte_FFFFA756).w,d3 bne.w loc_7CD44 tst.w (EngineRPM_PID_000C___).w bhi.s loc_7CCE2 btst #7,(byte_FFFFB485).w bne.s loc_7CCE2 btst #1,(byte_FFFFB484).w bne.s loc_7CCE2 cmpi.w #$FC00,(word_FFFFADB4).w bne.s loc_7CCEC loc_7CCE2: ; CODE XREF: sub_7CCBC+Cj ; sub_7CCBC+14j ... move.b #3,(byte_FFFFA756).w bra.w locret_7CDD0 ; --------------------------------------------------------------------------- loc_7CCEC: ; CODE XREF: sub_7CCBC+24j btst #1,(byte_FFFFBF30).w beq.s loc_7CCF8 addq.b #1,(byte_FFFFA757).w loc_7CCF8: ; CODE XREF: sub_7CCBC+36j move.b (byte_FFFFA758).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFA758).w move.b (byte_FFFFA757).w,d4 cmp.b (ENG_OIL_KE_OIL_LEVEL_LOW_SAMPLES).l,d4 ; Number of Oil level samples reporting low needed to determine low oil level. ; Counts bcs.s loc_7CD24 moveq #1,d3 move.b d3,(byte_FFFFA75A).w clr.b (byte_FFFFA757).w clr.b (byte_FFFFA758).w move.b d3,(byte_FFFFA756).w bra.w locret_7CDD0 ; --------------------------------------------------------------------------- loc_7CD24: ; CODE XREF: sub_7CCBC+50j cmp.b (ENG_OIL_KE_OIL_LEVEL_SAMPLE_QUANTITY).l,d3 ; Amount of oil level samples to be taken for a given period. ; Counts bcs.w locret_7CDD0 clr.b (byte_FFFFA75A).w clr.b (byte_FFFFA757).w clr.b (byte_FFFFA758).w move.b #1,(byte_FFFFA756).w bra.w locret_7CDD0 ; --------------------------------------------------------------------------- loc_7CD44: ; CODE XREF: sub_7CCBC+4j cmpi.b #1,d3 bne.s loc_7CDA4 tst.b (byte_FFFFA75A).w beq.s loc_7CD8E move.w (word_FFFFADB4).w,d3 addi.w #$400,d3 muls.w #5,d3 divs.w #6,d3 tblu.w (ENG_OIL_KV_OIL_LEVEL_DELTA).l,d3 ; Value to be compared to Coolant_Stoprun - Coolant_Powerup.This value has Range 0 to 180, since it is a delta. ; Degrees C cmp.w (word_FFFFA738).w,d3 bhi.s loc_7CD9C move.b (byte_FFFF82C4).w,d3 addq.b #1,d3 bcc.s loc_7CD7A move.b #$FF,d3 loc_7CD7A: ; CODE XREF: sub_7CCBC+B8j move.b d3,(byte_FFFF82C4).w move.b (ENG_OIL_KE_OIL_LEVEL_IGN_CYCLES).l,d4 ; Determine how many ignition cycles to collect low oil levelsamples prior to turning on low oil level light ; SHORTCARD cmp.b d4,d3 bls.s loc_7CD9C move.b d4,(byte_FFFF82C4).w bra.s loc_7CD9C ; --------------------------------------------------------------------------- loc_7CD8E: ; CODE XREF: sub_7CCBC+92j move.b (byte_FFFF82C4).w,d3 subq.b #1,d3 bcc.s loc_7CD98 clr.b d3 loc_7CD98: ; CODE XREF: sub_7CCBC+D8j move.b d3,(byte_FFFF82C4).w loc_7CD9C: ; CODE XREF: sub_7CCBC+B0j ; sub_7CCBC+CAj ... move.b #2,(byte_FFFFA756).w bra.s locret_7CDD0 ; --------------------------------------------------------------------------- loc_7CDA4: ; CODE XREF: sub_7CCBC+8Cj cmpi.b #2,d3 bne.s loc_7CDC4 move.b (byte_FFFF82C4).w,d3 cmp.b (ENG_OIL_KE_OIL_LEVEL_IGN_CYCLES).l,d3 ; Determine how many ignition cycles to collect low oil levelsamples prior to turning on low oil level light ; SHORTCARD bne.s loc_7CDCA tst.b (byte_FFFFA759).w bne.s loc_7CDCA bset #6,(byte_FFFFA732).w bra.s locret_7CDD0 ; --------------------------------------------------------------------------- loc_7CDC4: ; CODE XREF: sub_7CCBC+ECj cmpi.b #3,d3 bne.s locret_7CDD0 loc_7CDCA: ; CODE XREF: sub_7CCBC+F8j ; sub_7CCBC+FEj bclr #6,(byte_FFFFA732).w locret_7CDD0: ; CODE XREF: sub_7CCBC+2Cj ; sub_7CCBC+64j ... rts ; End of function sub_7CCBC ; =============== S U B R O U T I N E ======================================= sub_7CDD2: ; CODE XREF: DoLoopF+284p jsr sub_7D490 jsr sub_7D5EA rts ; End of function sub_7CDD2 ; =============== S U B R O U T I N E ======================================= sub_7CDE0: ; CODE XREF: DoLoopG+D2p movem.l d0-d2,-(sp) jsr sub_7CEB6 jsr sub_7CFF8 move.b (VEH_SYS_KE_PLATFORM).l,d3 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type cmpi.b #3,d3 beq.s loc_7CE04 cmpi.b #4,d3 bne.w loc_7CE8A loc_7CE04: ; CODE XREF: sub_7CDE0+1Aj move.l (dword_FFFFA726).w,d2 cmpi.l #$7FFFFFFF,d2 bhi.s loc_7CE2A moveq #7,d3 mulu.l d2,d3 bvs.s loc_7CE24 divu.w #$200,d3 bvs.s loc_7CE24 cmpi.w #$A00,d3 bls.s loc_7CE2C loc_7CE24: ; CODE XREF: sub_7CDE0+36j ; sub_7CDE0+3Cj move.w #$A00,d3 bra.s loc_7CE2C ; --------------------------------------------------------------------------- loc_7CE2A: ; CODE XREF: sub_7CDE0+2Ej clr.w d3 loc_7CE2C: ; CODE XREF: sub_7CDE0+42j ; sub_7CDE0+48j btst #1,(byte_FFFF89A2).w bne.s loc_7CE3C btst #1,(byte_FFFF89A4).w beq.s loc_7CE40 loc_7CE3C: ; CODE XREF: sub_7CDE0+52j clr.w d3 bra.s loc_7CE5A ; --------------------------------------------------------------------------- loc_7CE40: ; CODE XREF: sub_7CDE0+5Aj cmpi.w #$19A,d3 bcc.s loc_7CE4C mulu.w #$19,d3 bra.s loc_7CE50 ; --------------------------------------------------------------------------- loc_7CE4C: ; CODE XREF: sub_7CDE0+64j move.w #$280A,d3 loc_7CE50: ; CODE XREF: sub_7CDE0+6Aj movea.l #$98FA,a2 tblu.w (a2),d3 loc_7CE5A: ; CODE XREF: sub_7CDE0+5Ej move.w (ENG_OIL_KE_OIL_PRESSURE_GAGE_PWM_MIN).l,d4 ; The minimum allowed PWM signal to be sent to the oilpressure gage. ; Percent cmp.w d4,d3 bcc.s loc_7CE6A loc_7CE64: ; CODE XREF: sub_7CDE0+92j move.w d4,(word_FFFFA75E).w bra.s loc_7CE78 ; --------------------------------------------------------------------------- loc_7CE6A: ; CODE XREF: sub_7CDE0+82j move.w (ENG_OIL_KE_OIL_PRESSURE_GAGE_PWM_MAX).l,d4 ; The maximum allowed PWM signal to be sent to the oilpressure gage. ; Percent cmp.w d4,d3 bhi.s loc_7CE64 move.w d3,(word_FFFFA75E).w loc_7CE78: ; CODE XREF: sub_7CDE0+88j move.w (word_FFFFA75E).w,d2 move.l #$1F9,d1 moveq #$76,d0 ; 'v' jsr (sub_16FA).l loc_7CE8A: ; CODE XREF: sub_7CDE0+20j movem.l (sp)+,d0-d2 rts ; End of function sub_7CDE0 ; =============== S U B R O U T I N E ======================================= sub_7CE90: ; CODE XREF: DoLoopG+13Cp jsr sub_7D0BE jsr sub_7D262 jsr sub_7D332 jsr sub_7D368 jsr sub_7D478 jsr sub_7D508 rts ; End of function sub_7CE90 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7CEB6: ; CODE XREF: sub_7CDE0+4p var_8 = -8 var_4 = -4 link a6,#-8 move.w (word_FFFFF2E0).w,d3 lsr.w #2,d3 asl.w #8,d3 move.w d3,(word_FFFFA734).w move.w (ENG_OIL_KE_ENG_OIL_PRES_SCALE_FACTOR).l,d3 ; Engine oil pressure sensor scaling factor. ; Factor mulu.w (word_FFFFA734).w,d3 lsr.l #8,d3 lsr.l #4,d3 add.l (ENG_OIL_KE_ENG_OIL_SENSOR_OFFSET).l,d3 ; Engine oil pressure sensor offset value. ; kPa bvc.s loc_7CEEC bpl.s loc_7CEE6 move.l #$7FFFFFFF,d3 bra.s loc_7CEEC ; --------------------------------------------------------------------------- loc_7CEE6: ; CODE XREF: sub_7CEB6+26j move.l #$80000000,d3 loc_7CEEC: ; CODE XREF: sub_7CEB6+24j ; sub_7CEB6+2Ej tst.l d3 bge.s loc_7CEF6 clr.l (dword_FFFFA72A).w bra.s loc_7CEFA ; --------------------------------------------------------------------------- loc_7CEF6: ; CODE XREF: sub_7CEB6+38j move.l d3,(dword_FFFFA72A).w loc_7CEFA: ; CODE XREF: sub_7CEB6+3Ej cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_7CFCC btst #1,(byte_FFFF89A2).w bne.w loc_7CFBE btst #1,(byte_FFFF89A4).w bne.w loc_7CFBE btst #6,(byte_FFFFA733).w beq.s loc_7CF6A move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$A000,d3 bcc.s loc_7CF36 andi.l #$FFFF,d3 divu.w #$A,d3 bra.s loc_7CF3A ; --------------------------------------------------------------------------- loc_7CF36: ; CODE XREF: sub_7CEB6+72j move.w #$1000,d3 loc_7CF3A: ; CODE XREF: sub_7CEB6+7Ej tbls.l (ENG_OIL_KV_OIL_PRESSURE_MINIMUM).l,d3 ; Minimum allowed oil pressure for normal operation. ; kPa per RPM add.l (ENG_OIL_KE_OIL_PRESSURE_HYSTERESIS).l,d3 ; Hysteresis on low oil pressure. ; kPa cmp.l (dword_FFFFA72A).w,d3 bge.s loc_7CF5C bclr #6,(byte_FFFFA733).w loc_7CF54: ; CODE XREF: sub_7CEB6+DAj bclr #5,(byte_FFFFA733).w bra.s loc_7CFCC ; --------------------------------------------------------------------------- loc_7CF5C: ; CODE XREF: sub_7CEB6+96j ; sub_7CEB6+106j bset #6,(byte_FFFFA733).w move.b #1,(byte_FFFF82C5).w bra.s loc_7CFCC ; --------------------------------------------------------------------------- loc_7CF6A: ; CODE XREF: sub_7CEB6+68j move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$A000,d3 bcc.s loc_7CF80 andi.l #$FFFF,d3 divu.w #$A,d3 bra.s loc_7CF84 ; --------------------------------------------------------------------------- loc_7CF80: ; CODE XREF: sub_7CEB6+BCj move.w #$1000,d3 loc_7CF84: ; CODE XREF: sub_7CEB6+C8j tbls.l (ENG_OIL_KV_OIL_PRESSURE_MINIMUM).l,d3 ; Minimum allowed oil pressure for normal operation. ; kPa per RPM cmp.l (dword_FFFFA72A).w,d3 ble.s loc_7CF54 btst #5,(byte_FFFFA733).w bne.s loc_7CFA6 bset #5,(byte_FFFFA733).w move.w (GlobalClock).w,(word_FFFFA736).w loc_7CFA6: ; CODE XREF: sub_7CEB6+E2j move.w (word_FFFFA736).w,var_8(a6) move.w (GlobalClock).w,d3 sub.w var_8(a6),d3 cmp.w (ENG_OIL_KE_OIL_PRESSURE_LOW_TIME).l,d3 ; Time oil pressure must be low to turn on the warning. ; Seconds bcs.s loc_7CFC6 bra.s loc_7CF5C ; --------------------------------------------------------------------------- loc_7CFBE: ; CODE XREF: sub_7CEB6+54j ; sub_7CEB6+5Ej move.l (ENG_OIL_KE_ENGINE_OIL_PRESSURE_DEFAULT).l,(dword_FFFFA72A).w ; Default value for engine oil pressure, if sensor has failed. ; kPa loc_7CFC6: ; CODE XREF: sub_7CEB6+104j bclr #6,(byte_FFFFA733).w loc_7CFCC: ; CODE XREF: sub_7CEB6+4Aj ; sub_7CEB6+A4j ... clr.w d3 move.b (ENG_OIL_KE_ENGINE_OIL_PRESSURE_COEFF).l,d3 ; Filter coefficient used to filter engine oil pressure. ; Seconds tst.w d3 bhi.s loc_7CFDA moveq #1,d3 loc_7CFDA: ; CODE XREF: sub_7CEB6+120j move.l (dword_FFFFA760).w,var_8(a6) move.l (dword_FFFFA72A).w,var_4(a6) tblu.l var_8(a6),d3 move.l d3,(dword_FFFFA726).w move.l d3,(dword_FFFFA760).w unlk a6 rts ; End of function sub_7CEB6 ; =============== S U B R O U T I N E ======================================= sub_7CFF8: ; CODE XREF: sub_7CDE0+Ap movem.l d0-d1,-(sp) cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_7D07C tst.b (byte_FFFFA1C6).w beq.s loc_7D07C move.w (word_FFFFA734).w,d1 move.w (ENG_OIL_KE_ENGINE_OIL_PRES_MAX_LIMIT).l,d3 ; If the oil pressure reading is equal to or greater than this value, it is considered out of limits. ; A/D counts asl.w #8,d3 cmp.w d1,d3 bcc.s loc_7D03C move.b (byte_FFFFA755).w,d3 addq.b #1,d3 bcc.s loc_7D026 move.b #$FF,d3 loc_7D026: ; CODE XREF: sub_7CFF8+28j move.b d3,(byte_FFFFA755).w cmp.b (ENG_OIL_KE_ENGINE_OIL_PRES_UPPER_FAULTS).l,d3 ; If the number of consecutive faults is greater than or equal to this value, it is considereded a fault. ; counts bcs.s loc_7D07C moveq #$72,d0 ; 'r' loc_7D034: ; CODE XREF: sub_7CFF8+76j jsr sub_5F110 bra.s loc_7D07C ; --------------------------------------------------------------------------- loc_7D03C: ; CODE XREF: sub_7CFF8+20j moveq #$72,d0 ; 'r' jsr sub_5F0BE clr.b (byte_FFFFA755).w move.w (ENG_OIL_KE_ENGINE_OIL_PRES_MIN_LIMIT).l,d3 ; If the oil pressure reading is equal to or less than this value, it is considered out of limits. ; A/D counts asl.w #8,d3 cmp.w d1,d3 bls.s loc_7D070 move.b (byte_FFFFA754).w,d3 addq.b #1,d3 bcc.s loc_7D060 move.b #$FF,d3 loc_7D060: ; CODE XREF: sub_7CFF8+62j move.b d3,(byte_FFFFA754).w cmp.b (ENG_OIL_KE_ENGINE_OIL_PRES_LOWER_FAULTS).l,d3 ; If the number of consecutive faults is greater than or equal to this value, it is considereded a fault. ; counts bcs.s loc_7D07C moveq #$71,d0 ; 'q' bra.s loc_7D034 ; --------------------------------------------------------------------------- loc_7D070: ; CODE XREF: sub_7CFF8+5Aj moveq #$71,d0 ; 'q' jsr sub_5F0BE clr.b (byte_FFFFA754).w loc_7D07C: ; CODE XREF: sub_7CFF8+Aj ; sub_7CFF8+10j ... movem.l (sp)+,d0-d1 rts ; End of function sub_7CFF8 ; =============== S U B R O U T I N E ======================================= sub_7D082: ; CODE XREF: DoLoopA+362p moveq #3,d4 cmp.b (ThrottleControlMode2?).w,d4 bne.s locret_7D0BC move.b (byte_FFFFAC47).w,d3 beq.s loc_7D0AE cmp.b d3,d4 bne.s loc_7D09E cmpi.b #6,(ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l ; Number of cylinders for this engine application. ; SHORTCARD beq.s loc_7D0AE loc_7D09E: ; CODE XREF: sub_7D082+10j cmpi.b #4,d3 bne.s locret_7D0BC cmpi.b #8,(ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l ; Number of cylinders for this engine application. ; SHORTCARD bne.s locret_7D0BC loc_7D0AE: ; CODE XREF: sub_7D082+Cj ; sub_7D082+1Aj move.l (dword_FFFFA74C).w,d3 addq.l #1,d3 bcc.s loc_7D0B8 moveq #$FFFFFFFF,d3 loc_7D0B8: ; CODE XREF: sub_7D082+32j move.l d3,(dword_FFFFA74C).w locret_7D0BC: ; CODE XREF: sub_7D082+6j ; sub_7D082+20j ... rts ; End of function sub_7D082 ; =============== S U B R O U T I N E ======================================= sub_7D0BE: ; CODE XREF: sub_7CE90p movem.l d0-d2,-(sp) cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_7D25C move.b (byte_FFFFA75B).w,d3 bne.s loc_7D102 move.w (word_FFFFADB4).w,d3 addi.w #$400,d3 muls.w #5,d3 divs.w #6,d3 tblu.w (ENG_OIL_KV_OIL_TEMPERATURE_REV_DELAY).l,d3 ; Oil temperature warm-up delay as a function of initial coolant temperature. ; Revs per Deg C andi.l #$FFFF,d3 cmp.l (dword_FFFFA74C).w,d3 bhi.w loc_7D256 move.b #1,(byte_FFFFA75B).w bra.w loc_7D256 ; --------------------------------------------------------------------------- loc_7D102: ; CODE XREF: sub_7D0BE+12j tst.b d3 beq.w loc_7D256 move.w (EngineRPM_PID_000C___).w,d0 move.l #$800,d2 cmp.w d0,d2 bls.s loc_7D118 move.l d2,d0 loc_7D118: ; CODE XREF: sub_7D0BE+56j clr.l d5 move.w (ENG_OIL_KE_OL_AIR_TEMP_COEFFICIENT).l,d5 ; Factor to adjust the effect of induction air temperature on oil temperature. ; Multiplier move.w (word_FFFFB3E8).w,d1 ext.l d1 muls.l d5,d1 bpl.s loc_7D132 addi.l #$7FFF,d1 loc_7D132: ; CODE XREF: sub_7D0BE+6Cj asr.l #8,d1 asr.l #7,d1 clr.l d4 move.w (ENG_OIL_KE_OL_COOLANT_COEFFICIENT).l,d4 ; Factor to adjust the effect of coolant temperature on oil temperature. ; Multiplier move.w (CoolantTemperatureOrDefault).w,d3 ext.l d3 muls.l d4,d3 bpl.s loc_7D150 addi.l #$FFFF,d3 loc_7D150: ; CODE XREF: sub_7D0BE+8Aj asr.l #8,d3 asr.l #8,d3 clr.l d4 move.w (word_FFFFAEBE).w,d4 muls.l (ENG_OIL_KE_OL_VEHICLE_SPEED_COEFFICIENT).l,d4 ; Factor to adjust the effect of vehicle speed on oil temperature. ; Multiplier bvc.s loc_7D168 bmi.s loc_7D17E bra.s loc_7D178 ; --------------------------------------------------------------------------- loc_7D168: ; CODE XREF: sub_7D0BE+A4j divs.l #loc_50000,d4 cmpi.w #$FC00,d4 blt.s loc_7D17E bra.s loc_7D182 ; --------------------------------------------------------------------------- loc_7D178: ; CODE XREF: sub_7D0BE+A8j move.w #$1400,d4 bra.s loc_7D182 ; --------------------------------------------------------------------------- loc_7D17E: ; CODE XREF: sub_7D0BE+A6j ; sub_7D0BE+B6j move.w #$FC00,d4 loc_7D182: ; CODE XREF: sub_7D0BE+B8j ; sub_7D0BE+BEj move.w (EngineRPM_PID_000C___).w,d5 mulu.w (ENG_OIL_KE_OL_ENGINE_SPEED_COEFFICIENT).l,d5 ; Factor to adjust the effect of engine speed on oil temperature. ; Multiplier divu.w #$3333,d5 bvs.s loc_7D19C tst.w d5 blt.s loc_7D19C cmpi.w #$1400,d5 ble.s loc_7D1A0 loc_7D19C: ; CODE XREF: sub_7D0BE+D2j ; sub_7D0BE+D6j move.w #$1400,d5 loc_7D1A0: ; CODE XREF: sub_7D0BE+DCj add.w d5,d4 add.w d3,d4 add.w d1,d4 cmpi.w #$1400,d4 bgt.s loc_7D1B4 cmpi.w #$FC00,d4 blt.s loc_7D1BA bra.s loc_7D1BE ; --------------------------------------------------------------------------- loc_7D1B4: ; CODE XREF: sub_7D0BE+ECj move.w #$1400,d4 bra.s loc_7D1BE ; --------------------------------------------------------------------------- loc_7D1BA: ; CODE XREF: sub_7D0BE+F2j move.w #$FC00,d4 loc_7D1BE: ; CODE XREF: sub_7D0BE+F4j ; sub_7D0BE+FAj move.w d4,(word_FFFFA75C).w move.w d4,d3 move.w #$140,d1 muls.w d1,d3 sub.l (dword_FFFFA740).w,d3 clr.w d4 cmp.w d0,d2 bls.s loc_7D1D8 move.l d4,d0 bra.s loc_7D1EE ; --------------------------------------------------------------------------- loc_7D1D8: ; CODE XREF: sub_7D0BE+114j cmpi.w #$A000,d0 bcc.s loc_7D1EA andi.l #$FFFF,d0 sub.l d2,d0 lsr.w #3,d0 bra.s loc_7D1EE ; --------------------------------------------------------------------------- loc_7D1EA: ; CODE XREF: sub_7D0BE+11Ej move.w #$1300,d0 loc_7D1EE: ; CODE XREF: sub_7D0BE+118j ; sub_7D0BE+12Aj tblu.w (ENG_OIL_KV_OIL_EQUILIBRIUM_FILTER_COEF).l,d0 ; First order lag filter coefficient for estimated oil temperature in equilibrium mode. ; Multiplier andi.l #$FFFF,d0 muls.l d0,d5:d3 divs.l #unk_10000,d5:d3 cmpi.l #$190000,d3 bgt.s loc_7D21A cmpi.l #$FFFB0000,d3 blt.s loc_7D222 bra.s loc_7D228 ; --------------------------------------------------------------------------- loc_7D21A: ; CODE XREF: sub_7D0BE+150j move.l #$190000,d3 bra.s loc_7D228 ; --------------------------------------------------------------------------- loc_7D222: ; CODE XREF: sub_7D0BE+158j move.l #$FFFB0000,d3 loc_7D228: ; CODE XREF: sub_7D0BE+15Aj ; sub_7D0BE+162j add.l (dword_FFFFA740).w,d3 cmpi.l #$190000,d3 bgt.s loc_7D23E cmpi.l #$FFFB0000,d3 blt.s loc_7D246 bra.s loc_7D24C ; --------------------------------------------------------------------------- loc_7D23E: ; CODE XREF: sub_7D0BE+174j move.l #$190000,d3 bra.s loc_7D24C ; --------------------------------------------------------------------------- loc_7D246: ; CODE XREF: sub_7D0BE+17Cj move.l #$FFFB0000,d3 loc_7D24C: ; CODE XREF: sub_7D0BE+17Ej ; sub_7D0BE+186j move.l d3,(dword_FFFFA73C).w divs.w d1,d3 move.w d3,(word_FFFFA72E).w loc_7D256: ; CODE XREF: sub_7D0BE+36j ; sub_7D0BE+40j ... move.l (dword_FFFFA73C).w,(dword_FFFFA740).w loc_7D25C: ; CODE XREF: sub_7D0BE+Aj movem.l (sp)+,d0-d2 rts ; End of function sub_7D0BE ; =============== S U B R O U T I N E ======================================= sub_7D262: ; CODE XREF: sub_7CE90+6p ; sub_7D368+56p ... move.l d0,-(sp) move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (ENG_OIL_KE_OIL_LIFE_OVERTEMP).l,d3 ; Determine when the engine oil is to be changed upon overheating. ; Degrees_C blt.s loc_7D28C tst.b (ENG_OIL_KE_OIL_LIFE_HOT_ENABLE).l ; Enables the option to kill oil life upon overheating. ; BOOLEAN beq.s loc_7D28C btst #7,(byte_FFFFB485).w bne.s loc_7D28C btst #1,(byte_FFFFB484).w bne.s loc_7D28C clr.w (word_FFFF808C).w loc_7D28C: ; CODE XREF: sub_7D262+Cj ; sub_7D262+14j ... cmpi.w #$12CD,(word_FFFFA72E).w bge.s loc_7D2A6 move.w (word_FFFFA72E).w,d3 addi.w #$400,d3 muls.w #5,d3 divs.w #6,d3 bra.s loc_7D2AA ; --------------------------------------------------------------------------- loc_7D2A6: ; CODE XREF: sub_7D262+30j move.w #$1300,d3 loc_7D2AA: ; CODE XREF: sub_7D262+42j tblu.b (ENG_OIL_KV_OIL_LIFE_PENALTY_FACTOR).l,d3 ; Engine revolution correction factor, based on estimated engine oil temperature. ; Scale Factor clr.l d5 move.b d3,d5 move.l (dword_FFFFA74C).w,d3 sub.l (dword_FFFFA750).w,d3 bcs.s loc_7D2D4 mulu.l d5,d3 bvs.s loc_7D2CE cmpi.l #$FFFF,d3 bls.s loc_7D2D6 loc_7D2CE: ; CODE XREF: sub_7D262+62j move.w #$FFFF,d3 bra.s loc_7D2D6 ; --------------------------------------------------------------------------- loc_7D2D4: ; CODE XREF: sub_7D262+5Cj clr.w d3 loc_7D2D6: ; CODE XREF: sub_7D262+6Aj ; sub_7D262+70j add.w (word_FFFF82C2).w,d3 bcc.s loc_7D2E0 move.w #$FFFF,d3 loc_7D2E0: ; CODE XREF: sub_7D262+78j move.w d3,(word_FFFF82C2).w move.w (ENG_OIL_KE_EFFECTIVE_REVOLUTION_LIMIT).l,d0 ; Decrement Oil Life interval when effective_engine_revolutions exceeds this. ; Revolutions cmp.w d0,d3 bcs.s loc_7D30A move.w (word_FFFF808C).w,d4 cmpi.w #1,d4 bls.s loc_7D300 subq.w #1,d4 move.w d4,(word_FFFF808C).w bra.s loc_7D304 ; --------------------------------------------------------------------------- loc_7D300: ; CODE XREF: sub_7D262+94j clr.w (word_FFFF808C).w loc_7D304: ; CODE XREF: sub_7D262+9Cj sub.w d0,d3 move.w d3,(word_FFFF82C2).w loc_7D30A: ; CODE XREF: sub_7D262+8Aj move.l (dword_FFFFA74C).w,(dword_FFFFA750).w move.w (word_FFFF808C).w,d3 mulu.w #$1400,d3 divu.w (ENG_OIL_KE_REVOLUTION_UNTIL_SERVICE).l,d3 ; Maximum number of effective engine revolutions before an engine oil change is requested. ; Revolutions bvs.s loc_7D326 cmpi.w #$1400,d3 bls.s loc_7D32A loc_7D326: ; CODE XREF: sub_7D262+BCj move.w #$1400,d3 loc_7D32A: ; CODE XREF: sub_7D262+C2j move.w d3,(word_FFFFA74A).w move.l (sp)+,d0 rts ; End of function sub_7D262 ; =============== S U B R O U T I N E ======================================= sub_7D332: ; CODE XREF: sub_7CE90+Cp ; sub_7D368+5Cp ... move.l (dword_FFFF8088).w,d3 sub.l (dword_FFFF808E).w,d3 bcc.s loc_7D33E clr.l d3 loc_7D33E: ; CODE XREF: sub_7D332+8j mulu.l #$1400,d4:d3 divu.l (ENG_OIL_KE_RECOMMENDED_MILEAGE).l,d4:d3 ; Maximum allowed distance between oil changes. Immediate oil change will be requested if this value is exceeded. ; Miles bvs.s loc_7D35E cmpi.l #$FFFF,d3 bhi.s loc_7D35E cmpi.w #$1400,d3 bls.s loc_7D362 loc_7D35E: ; CODE XREF: sub_7D332+1Cj ; sub_7D332+24j move.w #$1400,d3 loc_7D362: ; CODE XREF: sub_7D332+2Aj move.w d3,(word_FFFFA746).w rts ; End of function sub_7D332 ; =============== S U B R O U T I N E ======================================= sub_7D368: ; CODE XREF: sub_7CE90+12p movem.l d0-d1,-(sp) bclr #7,(byte_FFFFA732).w cmpi.b #2,(ThrottleControlMode2?).w bne.s loc_7D3E6 tst.b (byte_FFFF90DB).w bne.s loc_7D38E tst.b (byte_FFFFAB6A).w beq.s loc_7D3CA btst #0,(byte_FFFFA733).w bne.s loc_7D3CA loc_7D38E: ; CODE XREF: sub_7D368+16j move.w (ENG_OIL_KE_REVOLUTION_UNTIL_SERVICE).l,(word_FFFF808C).w ; Maximum number of effective engine revolutions before an engine oil change is requested. ; Revolutions move.l (dword_FFFF808E).w,d3 add.l (ENG_OIL_KE_RECOMMENDED_MILEAGE).l,d3 ; Maximum allowed distance between oil changes. Immediate oil change will be requested if this value is exceeded. ; Miles cmpi.l #$7FFFFFFF,d3 bls.s loc_7D3AE move.l #$7FFFFFFF,d3 loc_7D3AE: ; CODE XREF: sub_7D368+3Ej move.l d3,(dword_FFFF8088).w bset #7,(byte_FFFFA732).w move.b #1,(byte_FFFF90DC).w jsr sub_7D262 jsr sub_7D332 loc_7D3CA: ; CODE XREF: sub_7D368+1Cj ; sub_7D368+24j tst.b (byte_FFFF90DD).w beq.s loc_7D3DA clr.b (byte_FFFF90DD).w jsr sub_45F0A loc_7D3DA: ; CODE XREF: sub_7D368+66j tst.b (byte_FFFFAB6A).w beq.s loc_7D3E6 bset #0,(byte_FFFFA733).w loc_7D3E6: ; CODE XREF: sub_7D368+10j ; sub_7D368+76j move.b (byte_FFFF9A3C).w,d3 or.b (byte_FFFF90DE).w,d3 beq.w loc_7D472 clr.w d3 move.b (byte_FFFF9A3B).w,d3 andi.l #$FFFF,d3 asl.l #8,d3 asl.l #2,d3 moveq #$33,d0 ; '3' divu.w d0,d3 mulu.w (ENG_OIL_KE_REVOLUTION_UNTIL_SERVICE).l,d3 ; Maximum number of effective engine revolutions before an engine oil change is requested. ; Revolutions move.l #$1400,d1 divu.w d1,d3 move.w d3,(word_FFFF808C).w clr.w d3 move.b (byte_FFFF9A3B).w,d3 andi.l #$FFFF,d3 asl.l #8,d3 asl.l #2,d3 divu.w d0,d3 andi.l #$FFFF,d3 mulu.l (ENG_OIL_KE_RECOMMENDED_MILEAGE).l,d4:d3 ; Maximum allowed distance between oil changes. Immediate oil change will be requested if this value is exceeded. ; Miles divu.l d1,d4:d3 add.l (dword_FFFF808E).w,d3 cmpi.l #$7FFFFFFF,d3 bls.s loc_7D44E move.l #$7FFFFFFF,d3 loc_7D44E: ; CODE XREF: sub_7D368+DEj move.l d3,(dword_FFFF8088).w bset #7,(byte_FFFFA732).w move.b #1,(byte_FFFF90DC).w jsr sub_7D262 jsr sub_7D332 clr.b (byte_FFFF9A3C).w clr.b (byte_FFFF90DE).w loc_7D472: ; CODE XREF: sub_7D368+86j movem.l (sp)+,d0-d1 rts ; End of function sub_7D368 ; =============== S U B R O U T I N E ======================================= sub_7D478: ; CODE XREF: sub_7CE90+18p move.w (word_FFFFA746).w,d4 move.w (word_FFFFA74A).w,d3 cmp.w d4,d3 bhi.s loc_7D48A move.w d3,(word_FFFFA730).w bra.s locret_7D48E ; --------------------------------------------------------------------------- loc_7D48A: ; CODE XREF: sub_7D478+Aj move.w d4,(word_FFFFA730).w locret_7D48E: ; CODE XREF: sub_7D478+10j rts ; End of function sub_7D478 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7D490: ; CODE XREF: sub_7CDD2p var_2 = -2 link a6,#-2 btst #4,(byte_FFFFA733).w bne.s loc_7D504 move.b (ENG_OIL_KE_OIL_LIFE_SOON_BULB_CHECK_REQ).l,d4 ; If TRUE, Oil Life Soon Bulb check will be run. ; BOOLEAN move.b (ENG_OIL_KE_OIL_LIFE_NOW_BULB_CHECK_REQ).l,d3 ; If TRUE, Oil Life Now Bulb check will be run. ; BOOLEAN move.l d3,d5 or.b d4,d5 bne.s loc_7D4B4 bset #4,(byte_FFFFA733).w loc_7D4B4: ; CODE XREF: sub_7D490+1Cj tst.b d3 beq.s loc_7D4BE bset #0,(byte_FFFFA732).w loc_7D4BE: ; CODE XREF: sub_7D490+26j tst.b d4 beq.s loc_7D4C8 bset #3,(byte_FFFFA732).w loc_7D4C8: ; CODE XREF: sub_7D490+30j btst #3,(byte_FFFFA733).w bne.s loc_7D4DC bset #3,(byte_FFFFA733).w move.w (GlobalClock).w,(word_FFFFA744).w loc_7D4DC: ; CODE XREF: sub_7D490+3Ej move.w (word_FFFFA744).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (ENG_OIL_KE_OIL_LIFE_BULB_TIME).l,d3 ; Length of time Bulb check should last. ; Seconds bcs.s loc_7D504 bclr #0,(byte_FFFFA732).w bclr #3,(byte_FFFFA732).w bset #4,(byte_FFFFA733).w loc_7D504: ; CODE XREF: sub_7D490+Aj ; sub_7D490+60j unlk a6 rts ; End of function sub_7D490 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7D508: ; CODE XREF: sub_7CE90+1Ep var_2 = -2 link a6,#-2 btst #7,(byte_FFFFA732).w beq.s loc_7D536 btst #2,(byte_FFFFA733).w bne.s loc_7D536 bset #2,(byte_FFFFA733).w btst #1,(byte_FFFFA733).w bne.s loc_7D536 move.w (GlobalClock).w,(word_FFFFA748).w bset #1,(byte_FFFFA733).w loc_7D536: ; CODE XREF: sub_7D508+Aj ; sub_7D508+12j ... btst #2,(byte_FFFFA733).w beq.s loc_7D584 bclr #4,(byte_FFFFA732).w btst #1,(byte_FFFFA733).w beq.s loc_7D5CA move.w (word_FFFFA748).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (ENG_OIL_KE_OIL_LIFE_FLASH_LIGHT_TIME).l,d3 ; Determine how long to flash the NOW light during a reset. ; Seconds bcc.s loc_7D56A eori.b #2,(byte_FFFFA732).w bra.s loc_7D5CA ; --------------------------------------------------------------------------- loc_7D56A: ; CODE XREF: sub_7D508+58j bclr #1,(byte_FFFFA732).w bclr #7,(byte_FFFFA732).w bclr #2,(byte_FFFFA733).w bclr #1,(byte_FFFFA733).w bra.s loc_7D5CA ; --------------------------------------------------------------------------- loc_7D584: ; CODE XREF: sub_7D508+34j bclr #1,(byte_FFFFA732).w bclr #4,(byte_FFFFA732).w move.w (word_FFFFA730).w,d3 cmp.w (ENG_OIL_KE_OIL_LIFE_CHANGE_NOW).l,d3 ; Determines when to turn on the Change Oil Now. ; Percent bhi.s loc_7D5AC tst.b (ENG_OIL_KE_OIL_LIFE_NOW_ENABLED).l ; Determine if the NOW lamp is used. ; BOOLEAN beq.s loc_7D5CA bset #1,(byte_FFFFA732).w bra.s loc_7D5CA ; --------------------------------------------------------------------------- loc_7D5AC: ; CODE XREF: sub_7D508+92j cmp.w (ENG_OIL_KE_OIL_LIFE_CHANGE_SOON).l,d3 ; Determines when the Change Oil Soon lamp will be requested. ; Percent bhi.s loc_7D5C4 tst.b (ENG_OIL_KE_OIL_LIFE_SOON_ENABLED).l ; Determine if SOON lamp is used. ; BOOLEAN beq.s loc_7D5C4 bset #4,(byte_FFFFA732).w bra.s loc_7D5CA ; --------------------------------------------------------------------------- loc_7D5C4: ; CODE XREF: sub_7D508+AAj ; sub_7D508+B2j bclr #4,(byte_FFFFA732).w loc_7D5CA: ; CODE XREF: sub_7D508+42j ; sub_7D508+60j ... btst #0,(byte_FFFFA732).w beq.s loc_7D5D8 bset #1,(byte_FFFFA732).w loc_7D5D8: ; CODE XREF: sub_7D508+C8j btst #3,(byte_FFFFA732).w beq.s loc_7D5E6 bset #4,(byte_FFFFA732).w loc_7D5E6: ; CODE XREF: sub_7D508+D6j unlk a6 rts ; End of function sub_7D508 ; =============== S U B R O U T I N E ======================================= sub_7D5EA: ; CODE XREF: sub_7CDD2+6p movem.l d0-d1,-(sp) btst #4,(byte_FFFFA733).w bne.s loc_7D614 btst #1,(byte_FFFFA732).w beq.s loc_7D604 bset #2,(byte_FFFFA732).w loc_7D604: ; CODE XREF: sub_7D5EA+12j btst #4,(byte_FFFFA732).w beq.s loc_7D640 loc_7D60C: ; CODE XREF: sub_7D5EA+48j bset #5,(byte_FFFFA732).w bra.s loc_7D640 ; --------------------------------------------------------------------------- loc_7D614: ; CODE XREF: sub_7D5EA+Aj btst #1,(byte_FFFFA732).w beq.s loc_7D624 bset #2,(byte_FFFFA732).w bra.s loc_7D63A ; --------------------------------------------------------------------------- loc_7D624: ; CODE XREF: sub_7D5EA+30j btst #4,(byte_FFFFA732).w beq.s loc_7D634 bclr #2,(byte_FFFFA732).w bra.s loc_7D60C ; --------------------------------------------------------------------------- loc_7D634: ; CODE XREF: sub_7D5EA+40j bclr #2,(byte_FFFFA732).w loc_7D63A: ; CODE XREF: sub_7D5EA+38j bclr #5,(byte_FFFFA732).w loc_7D640: ; CODE XREF: sub_7D5EA+20j ; sub_7D5EA+28j move.b (VEH_SYS_KE_PLATFORM).l,d3 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type cmpi.b #3,d3 beq.s loc_7D652 cmpi.b #4,d3 bne.s loc_7D666 loc_7D652: ; CODE XREF: sub_7D5EA+60j btst #2,(byte_FFFFA732).w sne d1 neg.b d1 move.w #$140,d0 jsr (sub_1122).l loc_7D666: ; CODE XREF: sub_7D5EA+66j movem.l (sp)+,d0-d1 rts ; End of function sub_7D5EA ; =============== S U B R O U T I N E ======================================= sub_7D66C: ; CODE XREF: OS1:00028D40p andi.w #$FF,d0 movea.l off_89CFC(d0.w*4),a2 jmp (a2) ; End of function sub_7D66C ; --------------------------------------------------------------------------- loc_7D67A: ; DATA XREF: OS4:00089D04o move.b #1,(byte_FFFFABE4).w move.b (byte_8A836).l,(byte_FFFFABD6).w move.b (byte_8A836).l,(byte_FFFFABD7).w move.b #3,(byte_FFFFABF1).w bra.w aB8lB8lsb8lB8lB+$14 ; --------------------------------------------------------------------------- loc_7D69A: ; DATA XREF: OS4:00089D08o clr.w (4294945774).w clr.b (byte_FFFFABDA).w move.b #3,(byte_FFFFABF1).w clr.b (byte_FFFFABDB).w clr.b (byte_FFFFABF0).w clr.b (byte_FFFFAC00).w clr.w (word_FFFFABF2).w move.b (byte_8A836).l,(byte_FFFFABD6).w clr.w (word_FFFFABD8).w move.b (byte_8A836).l,(byte_FFFFABD7).w clr.b (byte_FFFFABDD).w clr.b (byte_FFFFABE8).w clr.b (byte_FFFFABDE).w clr.b (byte_FFFFABDC).w clr.b (byte_FFFFABEC).w clr.b (byte_FFFFABE5).w clr.b (byte_FFFFABDF).w move.b #1,(byte_FFFFABE4).w clr.b (byte_FFFFABE0).w bra.s aB8lB8lsb8lB8lB+$14 ; --------------------------------------------------------------------------- loc_7D6F4: ; DATA XREF: OS4:00089D1Co bra.s aB8lB8lsb8lB8lB ; "B8??B8??B8??B8??B8??Nu/" ; --------------------------------------------------------------------------- loc_7D6F6: ; DATA XREF: OS4:00089D14o move.b #3,(byte_FFFFABF1).w clr.b (byte_FFFFABDB).w clr.b (byte_FFFFABF0).w clr.b (byte_FFFFAC00).w clr.w (word_FFFFABF2).w move.b (byte_8A836).l,(byte_FFFFABD6).w loc_7D714: ; DATA XREF: OS4:00089D20o clr.b (byte_FFFFABE5).w clr.b (byte_FFFFABEC).w loc_7D71C: ; DATA XREF: OS4:00089D00o bra.s aB8lB8lsb8lB8lB+$14 ; --------------------------------------------------------------------------- aB8lB8lsb8lB8lB:dc.b 'B8??B8??B8??B8??B8??Nu/',0 ; CODE XREF: OS3:loc_7D6F4j ; DATA XREF: OS4:off_89CFCo ... ; --------------------------------------------------------------------------- movea.w #$A0,a2 ; '?' btst #6,(byte_FFFF88DA).w bne.s loc_7D7A6 btst #6,(byte_FFFF88DC).w bne.s loc_7D7A6 move.b (byte_FFFFADBB).w,d3 and.b (byte_FFFFABDA).w,d3 beq.s loc_7D75A move.w (Pid_0005_CoolantTemperature).w,d3 bra.s loc_7D75E ; --------------------------------------------------------------------------- loc_7D75A: ; CODE XREF: OS3:0007D752j move.w (CoolantTemperatureOrDefault).w,d3 loc_7D75E: ; CODE XREF: OS3:0007D758j cmp.w (ENG_PROTECTION_KE_ENGINE_PROTECTION_COOLANT_HIG).l,d3 ; Coolant Temperature must rise above this threshold toenable engine overtemperature protection ; Degrees C ble.s loc_7D78C move.w (word_FFFFABEE).w,d3 cmp.w (ENG_PROTECTION_KE_ENGINE_PROTECTION_DELAY_TIME).l,d3 bcs.s loc_7D784 move.b #1,(byte_FFFFABDA).w move.w #$B9,d0 ; '?' jsr sub_5F110 bra.s loc_7D7A6 ; --------------------------------------------------------------------------- loc_7D784: ; CODE XREF: OS3:0007D770j add.w a2,d3 move.w d3,(word_FFFFABEE).w bra.s loc_7D7A6 ; --------------------------------------------------------------------------- loc_7D78C: ; CODE XREF: OS3:0007D764j cmp.w (ENG_PROTECTION_KE_ENGINE_PROTECTION_COOLANT_LOW).l,d3 ; Coolant temperature threshold below which engine overtemperatureprotection is disabled ; Degrees C bge.s loc_7D7A6 clr.b (byte_FFFFABDA).w clr.w (word_FFFFABEE).w move.w #$B9,d0 ; '?' jsr sub_5F0BE loc_7D7A6: ; CODE XREF: OS3:0007D740j ; OS3:0007D748j ... move.l (sp)+,d0 rts ; =============== S U B R O U T I N E ======================================= sub_7D7AA: ; CODE XREF: DoLoopA+370p clr.l d3 move.w (ENG_PROTECTION_KE_ENGINE_PROTECTION_STARTUP_DEL).l,d3 ; Amount of time to delay engine overheat protection modeafter engine has been running ; Seconds cmp.l (EngineRunTime).w,d3 bcc.s loc_7D806 move.b (byte_FFFFABDA).w,d3 beq.s loc_7D7DC tst.b (byte_FFFFABF0).w bne.s loc_7D7DC move.b #1,(byte_FFFFAC00).w move.b (ENG_PROTECTION_KV_ENG_PROT_CYLINDERS_TO_DISABLE).l,(byte_FFFFABD6).w ; Vector specifying which cylinders to disable for Engine protectionFALSE = DISABLED ; BOOLEAN clr.w (word_FFFFABF2).w clr.b (byte_FFFFABF1).w bra.s loc_7D800 ; --------------------------------------------------------------------------- loc_7D7DC: ; CODE XREF: sub_7D7AA+12j ; sub_7D7AA+18j tst.b d3 bne.s loc_7D800 tst.b (byte_FFFFABF0).w beq.s loc_7D800 clr.w d3 move.b (byte_FFFFAC00).w,d3 move.b $9A69.l(d3.w),(byte_FFFFABD6).w clr.w (word_FFFFABF2).w move.b #2,(byte_FFFFABF1).w loc_7D800: ; CODE XREF: sub_7D7AA+30j ; sub_7D7AA+34j ... move.b (byte_FFFFABDA).w,(byte_FFFFABF0).w loc_7D806: ; CODE XREF: sub_7D7AA+Cj move.b (byte_FFFFABF1).w,d3 cmpi.b #2,d3 bhi.w loc_7D8CA beq.s loc_7D888 tst.b d3 bne.s loc_7D85E move.w (word_FFFFABF2).w,d3 addq.w #1,d3 move.w d3,(word_FFFFABF2).w cmp.w (ENG_PROTECTION_KE_CYCLES_BETWEEN_RAMP_STEPS).l,d3 ; Number of engine cycles to run before ramping in or out another cylinder. ; Unitless bcs.w loc_7D8CA clr.w (word_FFFFABF2).w move.b (byte_FFFFAC00).w,d3 addq.b #1,d3 move.b d3,(byte_FFFFAC00).w move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d4 ; Number of cylinders for this engine application. ; SHORTCARD lsr.b #1,d4 cmp.b d3,d4 bne.s loc_7D8BC move.b #1,(byte_FFFFABF1).w move.b (ENG_PROTECTION_KV_CYLINDER_GROUP_ONE).l,(byte_FFFFABD6).w ; Vector specifying first set of cylinders to disable for engine overtemperature protection ; BOOLEAN move.b (ENG_PROTECTION_KV_CYLINDER_GROUP_TWO).l,(byte_FFFFABF4).w ; Vector specifying second set of cylinders to disable for engine overtemperature protection ; BOOLEAN bra.s loc_7D8CA ; --------------------------------------------------------------------------- loc_7D85E: ; CODE XREF: sub_7D7AA+6Cj move.w (word_FFFFABF2).w,d3 addq.w #1,d3 move.w d3,(word_FFFFABF2).w cmp.w (ENG_PROTECTION_KE_CYCLES_BETWEEN_SWITCHING).l,d3 ; Number of engine cycles to run before switching cylinder groups. ; Unitless bcs.s loc_7D8CA clr.w (word_FFFFABF2).w move.b (byte_FFFFABD6).w,(byte_FFFFABF5).w move.b (byte_FFFFABF4).w,(byte_FFFFABD6).w move.b (byte_FFFFABF5).w,(byte_FFFFABF4).w bra.s loc_7D8CA ; --------------------------------------------------------------------------- loc_7D888: ; CODE XREF: sub_7D7AA+68j move.w (word_FFFFABF2).w,d3 addq.w #1,d3 move.w d3,(word_FFFFABF2).w cmp.w (ENG_PROTECTION_KE_CYCLES_BETWEEN_RAMP_STEPS).l,d3 ; Number of engine cycles to run before ramping in or out another cylinder. ; Unitless bcs.s loc_7D8CA clr.w (word_FFFFABF2).w move.b (byte_FFFFAC00).w,d3 subq.b #1,d3 move.b d3,(byte_FFFFAC00).w tst.b d3 bne.s loc_7D8BC move.b #3,(byte_FFFFABF1).w move.b (byte_8A836).l,(byte_FFFFABD6).w bra.s loc_7D8CA ; --------------------------------------------------------------------------- loc_7D8BC: ; CODE XREF: sub_7D7AA+9Aj ; sub_7D7AA+100j andi.w #$FF,d3 move.b $9A69.l(d3.w),(byte_FFFFABD6).w loc_7D8CA: ; CODE XREF: sub_7D7AA+64j ; sub_7D7AA+7Ej ... cmpi.b #3,(byte_FFFFABF1).w bne.s loc_7D8D8 clr.b (byte_FFFFABDB).w bra.s locret_7D8DE ; --------------------------------------------------------------------------- loc_7D8D8: ; CODE XREF: sub_7D7AA+126j move.b #1,(byte_FFFFABDB).w locret_7D8DE: ; CODE XREF: sub_7D7AA+12Cj rts ; End of function sub_7D7AA ; =============== S U B R O U T I N E ======================================= sub_7D8E0: ; CODE XREF: DoLoopB:loc_29F98p movem.l d0-d2/d6-a1,-(sp) move.b (byte_FFFFB370).w,d4 bne.s loc_7D900 tst.b (byte_FFFFB378).w bne.s loc_7D900 clr.w (word_FFFFABD8).w move.b (byte_8A836).l,(byte_FFFFABD7).w bra.w loc_7DB5E ; --------------------------------------------------------------------------- loc_7D900: ; CODE XREF: sub_7D8E0+8j sub_7D8E0+Ej tst.b (byte_FFFFBEF1).w bne.s loc_7D910 move.b (byte_FFFFA59C).w,d3 btst #3,d3 beq.s loc_7D91C loc_7D910: ; CODE XREF: sub_7D8E0+24j move.b (byte_8A837).l,(byte_FFFFABD7).w bra.w loc_7DB5A ; --------------------------------------------------------------------------- loc_7D91C: ; CODE XREF: sub_7D8E0+2Ej move.b (byte_FFFFA59F).w,d3 bne.s loc_7D932 tst.b (byte_FFFFB2D0).w bne.s loc_7D932 cmpi.b #3,(byte_FFFF9406).w bne.w loc_7DB24 loc_7D932: ; CODE XREF: sub_7D8E0+40j ; sub_7D8E0+46j and.b d3,d4 beq.s loc_7D93C move.w (word_FFFFA59A).w,d3 bra.s loc_7D940 ; --------------------------------------------------------------------------- loc_7D93C: ; CODE XREF: sub_7D8E0+54j move.w #$7FFF,d3 loc_7D940: ; CODE XREF: sub_7D8E0+5Aj move.w (word_FFFFB2D2).w,d0 clr.l d6 move.w d0,d6 move.l d3,d7 ext.l d7 cmp.l d6,d7 ble.s loc_7D958 tst.b (byte_FFFFB2D0).w beq.s loc_7D958 move.l d0,d3 loc_7D958: ; CODE XREF: sub_7D8E0+6Ej ; sub_7D8E0+74j move.b (byte_FFFF9406).w,d0 moveq #3,d6 cmp.b d0,d6 bne.s loc_7D96C move.w (word_FFFF9408).w,d4 cmp.w d4,d3 ble.s loc_7D96C move.l d4,d3 loc_7D96C: ; CODE XREF: sub_7D8E0+80j ; sub_7D8E0+88j add.w (word_FFFF9E30).w,d3 bvc.s loc_7D97E bpl.s loc_7D97A move.w #$7FFF,d3 bra.s loc_7D97E ; --------------------------------------------------------------------------- loc_7D97A: ; CODE XREF: sub_7D8E0+92j move.w #$8000,d3 loc_7D97E: ; CODE XREF: sub_7D8E0+90j ; sub_7D8E0+98j tst.w d3 bgt.s loc_7D988 clr.w (word_FFFFABF6).w bra.s loc_7D9C4 ; --------------------------------------------------------------------------- loc_7D988: ; CODE XREF: sub_7D8E0+A0j tst.w (word_FFFF9E24).w bgt.s loc_7D996 move.w #$800,(word_FFFFABF6).w bra.s loc_7D9C4 ; --------------------------------------------------------------------------- loc_7D996: ; CODE XREF: sub_7D8E0+ACj move.w (word_FFFF9E24).w,d4 ext.l d3 asl.l #8,d3 asl.l #3,d3 divs.w d4,d3 bvc.s loc_7D9AC swap d3 eor.w d4,d3 bmi.s loc_7D9BE bra.s loc_7D9B8 ; --------------------------------------------------------------------------- loc_7D9AC: ; CODE XREF: sub_7D8E0+C2j cmpi.w #$7FFF,d3 bhi.s loc_7D9BE cmpi.w #$800,d3 bls.s loc_7D9C0 loc_7D9B8: ; CODE XREF: sub_7D8E0+CAj move.w #$800,d3 bra.s loc_7D9C0 ; --------------------------------------------------------------------------- loc_7D9BE: ; CODE XREF: sub_7D8E0+C8j ; sub_7D8E0+D0j clr.w d3 loc_7D9C0: ; CODE XREF: sub_7D8E0+D6j ; sub_7D8E0+DCj move.w d3,(word_FFFFABF6).w loc_7D9C4: ; CODE XREF: sub_7D8E0+A6j ; sub_7D8E0+B4j clr.w d3 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d3 ; Number of cylinders for this engine application. ; SHORTCARD mulu.w (word_FFFFABF6).w,d3 cmpi.l #$FFFF,d3 bhi.s loc_7D9DE cmpi.w #$4000,d3 bls.s loc_7D9E2 loc_7D9DE: ; CODE XREF: sub_7D8E0+F6j move.w #$4000,d3 loc_7D9E2: ; CODE XREF: sub_7D8E0+FCj move.w d3,(word_FFFFABFA).w movea.w #$7EC,a1 add.w a1,d3 lsr.w #8,d3 lsr.w #3,d3 cmp.b (byte_FFFFABFF).w,d3 bcc.s loc_7DA2C clr.w d3 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d3 ; Number of cylinders for this engine application. ; SHORTCARD mulu.w (ENG_PROTECTION_KE_CYLINDER_CUTOUT_HYSTERESIS).l,d3 ; Hysteresis on the Torque_Percentage applied to prevent cyclingbetween the number of cylinders enabled. ; Percent cmpi.l #$FFFF,d3 bhi.s loc_7DA14 lsr.w #1,d3 cmpi.w #$4000,d3 bls.s loc_7DA18 loc_7DA14: ; CODE XREF: sub_7D8E0+12Aj move.w #$4000,d3 loc_7DA18: ; CODE XREF: sub_7D8E0+132j add.w (word_FFFFABFA).w,d3 add.w a1,d3 cmpi.w #$4000,d3 bls.s loc_7DA28 move.w #$4000,d3 loc_7DA28: ; CODE XREF: sub_7D8E0+142j lsr.w #8,d3 lsr.w #3,d3 loc_7DA2C: ; CODE XREF: sub_7D8E0+114j moveq #2,d7 cmp.b d3,d7 bls.s loc_7DA38 move.b d7,(byte_FFFFABFE).w bra.s loc_7DA4C ; --------------------------------------------------------------------------- loc_7DA38: ; CODE XREF: sub_7D8E0+150j move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d4 ; Number of cylinders for this engine application. ; SHORTCARD cmp.b d4,d3 bls.s loc_7DA48 move.b d4,(byte_FFFFABFE).w bra.s loc_7DA4C ; --------------------------------------------------------------------------- loc_7DA48: ; CODE XREF: sub_7D8E0+160j move.b d3,(byte_FFFFABFE).w loc_7DA4C: ; CODE XREF: sub_7D8E0+156j ; sub_7D8E0+166j move.b d3,(byte_FFFFABFE).w move.b d3,d4 move.b d4,(byte_FFFFABFF).w move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d1 ; Number of cylinders for this engine application. ; SHORTCARD move.l d1,d3 sub.b d4,d3 move.b d3,(byte_FFFFAC01).w cmp.b d1,d4 bne.s loc_7DA72 move.b (byte_8A836).l,(byte_FFFFABD7).w bra.s loc_7DA94 ; --------------------------------------------------------------------------- loc_7DA72: ; CODE XREF: sub_7D8E0+186j cmp.b d0,d6 bne.s loc_7DA86 andi.w #$FF,d3 move.b $9A79.l(d3.w),(byte_FFFFABD7).w bra.s loc_7DA94 ; --------------------------------------------------------------------------- loc_7DA86: ; CODE XREF: sub_7D8E0+194j andi.w #$FF,d3 move.b $9A71.l(d3.w),(byte_FFFFABD7).w loc_7DA94: ; CODE XREF: sub_7D8E0+190j ; sub_7D8E0+1A4j clr.b d0 subq.b #1,d1 move.l d0,d3 tst.b d1 bra.s loc_7DAAC ; --------------------------------------------------------------------------- loc_7DA9E: ; CODE XREF: sub_7D8E0:loc_7DAACj move.b (byte_FFFFABD7).w,d2 btst d3,d2 beq.s loc_7DAA8 addq.b #1,d0 loc_7DAA8: ; CODE XREF: sub_7D8E0+1C4j addq.b #1,d3 cmp.b d3,d1 loc_7DAAC: ; CODE XREF: sub_7D8E0+1BCj bcc.s loc_7DA9E clr.l d3 move.b d0,d3 asl.w #8,d3 asl.w #3,d3 sub.w (word_FFFFABFA).w,d3 bcs.s loc_7DAC8 cmpi.w #$1000,d3 bls.s loc_7DACA move.w #$1000,d3 bra.s loc_7DACA ; --------------------------------------------------------------------------- loc_7DAC8: ; CODE XREF: sub_7D8E0+1DAj clr.w d3 loc_7DACA: ; CODE XREF: sub_7D8E0+1E0j ; sub_7D8E0+1E6j move.w d3,(word_FFFFABF8).w tst.b d0 bne.s loc_7DAD8 clr.w (word_FFFFABFC).w bra.s loc_7DAFC ; --------------------------------------------------------------------------- loc_7DAD8: ; CODE XREF: sub_7D8E0+1F0j andi.w #$FF,d0 clr.l d3 move.w (word_FFFFABF8).w,d3 divu.w d0,d3 bvc.s loc_7DAE8 clr.w d3 loc_7DAE8: ; CODE XREF: sub_7D8E0+204j moveq #5,d4 mulu.w d4,d3 lsr.w #1,d3 cmpi.w #$1400,d3 bls.s loc_7DAF8 move.w #$1400,d3 loc_7DAF8: ; CODE XREF: sub_7D8E0+212j move.w d3,(word_FFFFABFC).w loc_7DAFC: ; CODE XREF: sub_7D8E0+1F6j move.w (word_FFFFABFC).w,d0 asl.w #3,d0 andi.l #$FFFF,d0 divu.w #5,d0 move.w (word_FFFFAEF8).w,d1 moveq #$21,d2 ; '!' movea.l #TRACTION_KA_SPARK_RETARD_FOR_TORQUE_LOSS,a0 ; MBT spark retard as a function of a given torque loss value ; Degrees jsr sub_2696E move.w d0,(word_FFFFABD8).w bra.s loc_7DB5E ; --------------------------------------------------------------------------- loc_7DB24: ; CODE XREF: sub_7D8E0+4Ej move.w #$800,(word_FFFFABF6).w move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d3 ; Number of cylinders for this engine application. ; SHORTCARD clr.l d4 move.b d3,d4 asl.w #8,d4 asl.w #3,d4 move.w d4,(word_FFFFABFA).w move.b d3,(byte_FFFFABFE).w move.b d3,(byte_FFFFABFF).w clr.b (byte_FFFFAC01).w move.b (byte_8A836).l,(byte_FFFFABD7).w move.w #$1000,(word_FFFFABF8).w clr.w (word_FFFFABFC).w loc_7DB5A: ; CODE XREF: sub_7D8E0+38j clr.w (word_FFFFABD8).w loc_7DB5E: ; CODE XREF: sub_7D8E0+1Cj ; sub_7D8E0+242j movem.l (sp)+,d0-d2/d6-a1 rts ; End of function sub_7D8E0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7DB64: ; CODE XREF: DoLoopG+19Ap var_2 = -2 link a6,#-2 movem.l d0-d2/d6-d7,-(sp) tst.b (VEH_SYS_KE_ENGINE_ALARM_ENABLE).l ; If set TRUE, then execute engine alarm or shut down functionality. ; BOOLEAN beq.w loc_7DCAC moveq #3,d6 cmp.b (ThrottleControlMode2?).w,d6 bne.s loc_7DBE6 jsr sub_7DCB4 btst #0,(byte_FFFF9026).w beq.s loc_7DBE6 jsr sub_7DCEE move.b (byte_FFFFABE8).w,d3 moveq #1,d7 cmp.b d3,d7 beq.s loc_7DBA6 moveq #2,d5 cmp.b d3,d5 beq.s loc_7DBA6 cmp.b d3,d6 bne.s loc_7DBAA loc_7DBA6: ; CODE XREF: sub_7DB64+36j ; sub_7DB64+3Cj move.b d7,(byte_FFFFABDE).w loc_7DBAA: ; CODE XREF: sub_7DB64+40j tst.b (byte_FFFFABDE).w beq.s loc_7DBC0 tst.b (byte_FFFFABEC).w bne.s loc_7DBC0 move.b d7,(byte_FFFFABEC).w move.w (GlobalClock).w,(word_FFFFABEA).w loc_7DBC0: ; CODE XREF: sub_7DB64+4Aj ; sub_7DB64+50j tst.b (byte_FFFFABEC).w beq.s loc_7DBE2 move.w (word_FFFFABEA).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (ENG_PROTECTION_KE_ENGINE_SHUTDOWN_TIME).l,d3 ; Initiate engine shutdown when the 300 beeps per minute alarm has been sounding for this amount of time. ; Seconds bcs.s loc_7DBE2 move.b d7,(byte_FFFFABDC).w bra.s loc_7DBE6 ; --------------------------------------------------------------------------- loc_7DBE2: ; CODE XREF: sub_7DB64+60j ; sub_7DB64+76j clr.b (byte_FFFFABDC).w loc_7DBE6: ; CODE XREF: sub_7DB64+18j ; sub_7DB64+26j ... btst #0,(byte_FFFF9026).w beq.s loc_7DC4E tst.b (byte_FFFFABDC).w beq.s loc_7DC4E tst.b (byte_FFFFABDF).w bne.s loc_7DC4E move.l (dword_FFFF808E).w,d3 divu.w #$9C40,d3 move.l d3,d7 move.w #$19C0,d3 mulu.w d3,d7 moveq #5,d3 mulu.l d7,d3 divu.w #$8000,d3 bvc.s loc_7DC1A move.w #$FFFF,d3 loc_7DC1A: ; CODE XREF: sub_7DB64+B0j move.b (byte_FFFFABE8).w,d4 moveq #1,d7 cmp.b d4,d7 bne.s loc_7DC2E addq.b #1,(byte_FFFF804E).w move.w d3,(word_FFFF804A).w bra.s loc_7DC4A ; --------------------------------------------------------------------------- loc_7DC2E: ; CODE XREF: sub_7DB64+BEj moveq #2,d5 cmp.b d4,d5 bne.s loc_7DC3E addq.b #1,(byte_FFFF804C).w move.w d3,(word_FFFF8046).w bra.s loc_7DC4A ; --------------------------------------------------------------------------- loc_7DC3E: ; CODE XREF: sub_7DB64+CEj cmp.b d4,d6 bne.s loc_7DC4A addq.b #1,(byte_FFFF804D).w move.w d3,(word_FFFF8048).w loc_7DC4A: ; CODE XREF: sub_7DB64+C8j ; sub_7DB64+D8j ... move.b d7,(byte_FFFFABDF).w loc_7DC4E: ; CODE XREF: sub_7DB64+88j ; sub_7DB64+8Ej ... tst.b (byte_FFFFABE0).w beq.s loc_7DC5E loc_7DC54: ; CODE XREF: sub_7DB64+126j move.b (byte_FFFFABDD).w,d1 move.b (byte_FFFFABDE).w,d2 bra.s loc_7DC8C ; --------------------------------------------------------------------------- loc_7DC5E: ; CODE XREF: sub_7DB64+EEj tst.b (byte_FFFFABE4).w beq.s loc_7DC70 clr.b (byte_FFFFABE4).w moveq #1,d1 move.w (GlobalClock).w,(word_FFFFABE2).w loc_7DC70: ; CODE XREF: sub_7DB64+FEj move.w (word_FFFFABE2).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmpi.w #$140,d0 bcs.s loc_7DC8C move.b #1,(byte_FFFFABE0).w bra.s loc_7DC54 ; --------------------------------------------------------------------------- loc_7DC8C: ; CODE XREF: sub_7DB64+F8j ; sub_7DB64+11Ej cmpi.b #2,(VEH_SYS_KE_TYPE_OF_FANS_ON_VEHICLE).l ; Type of engine cooling system supported on vehicle ; Unitless bne.s loc_7DCAC move.w #$13A,d0 jsr (sub_1122).l move.l d2,d1 move.w #$13C,d0 jsr (sub_1122).l loc_7DCAC: ; CODE XREF: sub_7DB64+Ej ; sub_7DB64+130j movem.l (sp)+,d0-d2/d6-d7 unlk a6 rts ; End of function sub_7DB64 ; =============== S U B R O U T I N E ======================================= sub_7DCB4: ; CODE XREF: sub_7DB64+1Ap move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (ENG_PROTECTION_KE_ENGINE_ALARM_COOLANT_TEMP).l,d3 ; Turn on 120 peeps per minute alarm and check gauges lamp when coolant temperature exceeds this value. ; Degrees C bgt.s loc_7DCE0 tst.b (byte_FFFFADBC).w beq.s loc_7DCD8 move.b (VEH_SYS_KE_PLATFORM).l,d3 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type cmpi.b #3,d3 beq.s loc_7DCE0 cmpi.b #4,d3 beq.s loc_7DCE0 loc_7DCD8: ; CODE XREF: sub_7DCB4+10j btst #6,(byte_FFFFA733).w beq.s loc_7DCE8 loc_7DCE0: ; CODE XREF: sub_7DCB4+Aj ; sub_7DCB4+1Cj ... move.b #1,(byte_FFFFABDD).w bra.s locret_7DCEC ; --------------------------------------------------------------------------- loc_7DCE8: ; CODE XREF: sub_7DCB4+2Aj clr.b (byte_FFFFABDD).w locret_7DCEC: ; CODE XREF: sub_7DCB4+32j rts ; End of function sub_7DCB4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7DCEE: ; CODE XREF: sub_7DB64+28p var_2 = -2 link a6,#-2 btst #6,(byte_FFFFA733).w beq.s loc_7DD04 move.b #1,(byte_FFFFABE8).w bra.w loc_7DD84 ; --------------------------------------------------------------------------- loc_7DD04: ; CODE XREF: sub_7DCEE+Aj move.b (byte_FFFFADBC).w,d3 and.b (ENG_PROTECTION_KE_ENG_SHUTDOWN_LOW_CLT_ENABLE).l,d3 ; Set TRUE to enable engine shutdown based on low coolant switch. ; BOOLEAN beq.s loc_7DD18 move.b #3,(byte_FFFFABE8).w bra.s loc_7DD84 ; --------------------------------------------------------------------------- loc_7DD18: ; CODE XREF: sub_7DCEE+20j clr.l d5 move.w (ENG_PROTECTION_KE_ENG_SHUTDOWN_CLT_TEMP_OFFSET).l,d5 move.w (ENG_PROTECTION_KE_ENGINE_ALARM_COOLANT_TEMP).l,d3 ; Turn on 120 peeps per minute alarm and check gauges lamp when coolant temperature exceeds this value. ; Degrees C ext.l d3 add.l d5,d3 cmpi.l #$FFFF8000,d3 blt.s loc_7DD46 cmpi.l #$7FFF,d3 bgt.s loc_7DD40 cmpi.w #$DFF,d3 ble.s loc_7DD4A loc_7DD40: ; CODE XREF: sub_7DCEE+4Aj move.w #$DFF,d3 bra.s loc_7DD4A ; --------------------------------------------------------------------------- loc_7DD46: ; CODE XREF: sub_7DCEE+42j move.w #$FC00,d3 loc_7DD4A: ; CODE XREF: sub_7DCEE+50j ; sub_7DCEE+56j cmp.w (CoolantTemperatureOrDefault).w,d3 bge.s loc_7DD80 tst.b (byte_FFFFABE5).w bne.s loc_7DD62 move.b #1,(byte_FFFFABE5).w move.w (GlobalClock).w,(word_FFFFABE6).w loc_7DD62: ; CODE XREF: sub_7DCEE+66j move.w (word_FFFFABE6).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (ENG_PROTECTION_KE_ENGINE_SHUTDOWN_COOLANT_TIME).l,d3 bcs.s loc_7DD84 move.b #2,(byte_FFFFABE8).w bra.s loc_7DD84 ; --------------------------------------------------------------------------- loc_7DD80: ; CODE XREF: sub_7DCEE+60j clr.b (byte_FFFFABE5).w loc_7DD84: ; CODE XREF: sub_7DCEE+12j ; sub_7DCEE+28j ... unlk a6 rts ; End of function sub_7DCEE ; =============== S U B R O U T I N E ======================================= sub_7DD88: ; CODE XREF: sub_20D54+16p clr.l d3 move.w (word_FFFF9BD4).w,d3 asl.l #5,d3 divu.w #$19,d3 tst.b (byte_FFFFB423).w beq.s loc_7DDAE move.w (DI_CASE_KE_CASE_FUEL_CUTOFF_THRESHOLD).l,d0 ; Threshold above which fuel will be cut off to all cylinders. ; RPM add.w (DI_CASE_KE_CASE_ETC_ENG_SPD_LIMIT_OFFSET).l,d0 ; RPM above the KE_CASE_Fuel_Cutoff_Threshold which the ETC governor will limit engine speed to when CASE learn is in progress. ; RPM bcc.s loc_7DDCA move.w #$FFFF,d0 bra.s loc_7DDCA ; --------------------------------------------------------------------------- loc_7DDAE: ; CODE XREF: sub_7DD88+10j tst.b (byte_FFFF9DA8).w beq.s loc_7DDBC move.w (PROTECTED_KE_FANLOCKUPRPMLIMIT).l,d0 ; Calibration value at which the engine speed is limited to prevent fan failure due to rotational speed. ; RPM bra.s loc_7DDCA ; --------------------------------------------------------------------------- loc_7DDBC: ; CODE XREF: sub_7DD88+2Aj clr.w d0 move.b (byte_FFFFA3B8).w,d0 move.w PROTECTED_KV_ENGINE_SPEED_LIMIT.l(d0.w*2),d0 loc_7DDCA: ; CODE XREF: sub_7DD88+1Ej ; sub_7DD88+24j ... move.w (word_FFFFB1CE).w,d4 cmp.w d0,d4 bcc.s loc_7DDD4 move.l d4,d0 loc_7DDD4: ; CODE XREF: sub_7DD88+48j move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d4 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type cmpi.b #2,d4 beq.s loc_7DDF4 cmpi.b #4,d4 beq.s loc_7DDF4 cmp.w d0,d3 bcc.s loc_7DDF4 move.l d3,d0 move.b #1,(byte_FFFFA564).w bra.s locret_7DDF8 ; --------------------------------------------------------------------------- loc_7DDF4: ; CODE XREF: sub_7DD88+56j ; sub_7DD88+5Cj ... clr.b (byte_FFFFA564).w locret_7DDF8: ; CODE XREF: sub_7DD88+6Aj rts ; End of function sub_7DD88 ; =============== S U B R O U T I N E ======================================= sub_7DDFA: ; CODE XREF: OS1:loc_28D2Ap btst #5,(byte_FFFFAA92).w bne.s locret_7DE50 clr.w (EngineRPM_PID_000C___).w clr.w (AnotherRpmValue).w move.w (EngineRPM_PID_000C___).w,d3 move.l #$800,d4 cmp.w d3,d4 bls.s loc_7DE1C clr.w d3 bra.s loc_7DE4C ; --------------------------------------------------------------------------- loc_7DE1C: ; CODE XREF: sub_7DDFA+1Cj cmpi.w #$3000,d3 bhi.s loc_7DE2E andi.l #$FFFF,d3 sub.l d4,d3 lsr.w #2,d3 bra.s loc_7DE4C ; --------------------------------------------------------------------------- loc_7DE2E: ; CODE XREF: sub_7DDFA+26j cmpi.w #$A000,d3 bcc.s loc_7DE48 andi.l #$FFFF,d3 subi.l #$3000,d3 lsr.w #3,d3 addi.w #$A00,d3 bra.s loc_7DE4C ; --------------------------------------------------------------------------- loc_7DE48: ; CODE XREF: sub_7DDFA+38j move.w #$1800,d3 loc_7DE4C: ; CODE XREF: sub_7DDFA+20j ; sub_7DDFA+32j ... move.w d3,(DefinitelyEngineLoad).w locret_7DE50: ; CODE XREF: sub_7DDFA+6j rts ; End of function sub_7DDFA ; =============== S U B R O U T I N E ======================================= sub_7DE52: ; CODE XREF: DoLoopA+9Ep movem.l d0-d2/d6-d7,-(sp) move sr,-(sp) ori #$700,sr move.w (word_FFFFAC34).w,d0 cmp.w (word_FFFFA58E).w,d0 bne.w loc_7DEEE btst #5,(byte_FFFFAA92).w beq.s loc_7DEEA move.w (word_FFFFE1CC).w,d3 cmpi.w #$773,d3 bcs.s loc_7DEA2 move.w (word_FFFFE1CC).w,d3 clr.l d6 move.w d3,d6 clr.l d7 move.w (word_FFFFA58A).w,d7 mulu.l #unk_CA0C2,d3:d7 divu.l d6,d3:d7 bvs.s loc_7DEE0 cmpi.l #$FFFF,d7 bhi.s loc_7DEE0 loc_7DE9E: ; CODE XREF: sub_7DE52+8Cj move.w d7,d3 bra.s loc_7DEE4 ; --------------------------------------------------------------------------- loc_7DEA2: ; CODE XREF: sub_7DE52+26j tst.b (byte_FFFFB37A).w beq.s loc_7DEAE move.w (word_FFFFAA7A).w,d3 bra.s loc_7DEB2 ; --------------------------------------------------------------------------- loc_7DEAE: ; CODE XREF: sub_7DE52+54j move.w (word_FFFFFF16).w,d3 loc_7DEB2: ; CODE XREF: sub_7DE52+5Aj mulu.w (word_FFFF82E6).w,d3 divu.w #$8000,d3 bvc.s loc_7DEC0 move.w #$FFFF,d3 loc_7DEC0: ; CODE XREF: sub_7DE52+68j clr.l d6 move.w d3,d6 clr.l d7 move.w (word_FFFFA58A).w,d7 mulu.l #$186A000,d3:d7 divu.l d6,d3:d7 bvs.s loc_7DEE0 cmpi.l #$FFFF,d7 bls.s loc_7DE9E loc_7DEE0: ; CODE XREF: sub_7DE52+42j ; sub_7DE52+4Aj ... move.w #$FFFF,d3 loc_7DEE4: ; CODE XREF: sub_7DE52+4Ej move.w d3,(EngineRPM_PID_000C___).w bra.s loc_7DEEE ; --------------------------------------------------------------------------- loc_7DEEA: ; CODE XREF: sub_7DE52+1Cj clr.w (EngineRPM_PID_000C___).w loc_7DEEE: ; CODE XREF: sub_7DE52+12j ; sub_7DE52+96j move.w (EngineRPM_PID_000C___).w,d3 move.w #$A000,d6 cmp.w d3,d6 bls.s loc_7DEFE lsr.w #3,d3 bra.s loc_7DF02 ; --------------------------------------------------------------------------- loc_7DEFE: ; CODE XREF: sub_7DE52+A6j move.w #$1400,d3 loc_7DF02: ; CODE XREF: sub_7DE52+AAj move.w d3,(AnotherRpmValue).w move.w (EngineRPM_PID_000C___).w,d3 move.l #$800,d7 cmp.w d3,d7 bls.s loc_7DF18 clr.w d3 bra.s loc_7DF46 ; --------------------------------------------------------------------------- loc_7DF18: ; CODE XREF: sub_7DE52+C0j move.l #$3000,d4 cmp.w d3,d4 bcs.s loc_7DF2E andi.l #$FFFF,d3 sub.l d7,d3 lsr.w #2,d3 bra.s loc_7DF46 ; --------------------------------------------------------------------------- loc_7DF2E: ; CODE XREF: sub_7DE52+CEj cmp.w d3,d6 bls.s loc_7DF42 andi.l #$FFFF,d3 sub.l d4,d3 lsr.w #3,d3 addi.w #$A00,d3 bra.s loc_7DF46 ; --------------------------------------------------------------------------- loc_7DF42: ; CODE XREF: sub_7DE52+DEj move.w #$1800,d3 loc_7DF46: ; CODE XREF: sub_7DE52+C4j ; sub_7DE52+DAj ... move.w d3,(DefinitelyEngineLoad).w move.w d0,(word_FFFFA58E).w move (sp)+,sr move.w (word_FFFFA560).w,d2 move.w (EngineRPM_PID_000C___).w,d1 move.b (PROTECTED_KE_ENGINE_SPEED_FILTER_COEF).l,d0 ; Filter coefficient used to first order lag filter engine speed. ; Unitless jsr sub_265AE move.w d0,(word_FFFFA560).w movem.l (sp)+,d0-d2/d6-d7 rts ; End of function sub_7DE52 ; =============== S U B R O U T I N E ======================================= sub_7DF6E: ; CODE XREF: DoLoopC+26p var_5A9A = -$5A9A move.b (byte_FFFFA588).w,d5 addq.b #1,d5 extb.l d5 divsl.l #$11,d3:d5 move.b d3,(byte_FFFFA588).w andi.w #$FF,d3 move.w (EngineRPM_PID_000C___).w,var_5A9A(d3.w*2) rts ; End of function sub_7DF6E ; =============== S U B R O U T I N E ======================================= sub_7DF90: ; CODE XREF: sub_39BFE+50p ; sub_3B82A+11Ep move.w d0,d4 lsr.b #1,d4 cmpi.b #$10,d4 ble.s loc_7DF9C moveq #$10,d4 loc_7DF9C: ; CODE XREF: sub_7DF90+8j move.b (byte_FFFFA588).w,d3 sub.b d4,d3 tst.b d3 bge.s loc_7DFAA addi.b #$11,d3 loc_7DFAA: ; CODE XREF: sub_7DF90+14j andi.w #$FF,d3 move.w (EngineRPM_PID_000C___).w,d0 sub.w unk_FFFFA566(d3.w*2),d0 rts ; End of function sub_7DF90 ; =============== S U B R O U T I N E ======================================= sub_7DFBA: ; CODE XREF: DoLoopG+1A0p movem.l d0-d1/a0,-(sp) move.w (VEH_SYS_KE_ENGINE_OVERSPEED_BULB_CHECK).l,d0 ; Time to illuminate engine overspeed lamp on startup for bulb test Set to zero to disable bulb check. ; Seconds movea.l #unk_FFA58C,a0 jsr sub_276D4 move.b d0,d1 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (PROTECTED_KE_ENGINE_OVERSPEED_LAMP).l,d3 ; Engine speed threshold for lighting the engine overspeed lamp ; RPM shi d3 neg.b d3 move.b d3,(byte_FFFFA565).w eori.b #1,d1 or.b d3,d1 tst.b (VEH_SYS_KE_CONTROL_ENGINE_OVERSPEED_LAMP).l ; If set TRUE, enables control of the overspeed lamp via hardware. ; BOOLEAN beq.s loc_7DFFA moveq #$26,d0 ; '&' jsr (sub_1122).l loc_7DFFA: ; CODE XREF: sub_7DFBA+36j movem.l (sp)+,d0-d1/a0 rts ; End of function sub_7DFBA ; =============== S U B R O U T I N E ======================================= sub_7E000: ; CODE XREF: OS1:00028D22p movem.l d0-d1/a0,-(sp) move.w (GlobalClock).w,(word_FFFFA58C).w move.w (VEH_SYS_KE_ENGINE_OVERSPEED_BULB_CHECK).l,d0 ; Time to illuminate engine overspeed lamp on startup for bulb test Set to zero to disable bulb check. ; Seconds movea.l #unk_FFA58C,a0 jsr sub_276D4 move.b d0,d1 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (PROTECTED_KE_ENGINE_OVERSPEED_LAMP).l,d3 ; Engine speed threshold for lighting the engine overspeed lamp ; RPM shi d3 neg.b d3 move.b d3,(byte_FFFFA565).w eori.b #1,d1 or.b d3,d1 tst.b (VEH_SYS_KE_CONTROL_ENGINE_OVERSPEED_LAMP).l ; If set TRUE, enables control of the overspeed lamp via hardware. ; BOOLEAN beq.s loc_7E046 moveq #$26,d0 ; '&' jsr (sub_1122).l loc_7E046: ; CODE XREF: sub_7E000+3Cj movem.l (sp)+,d0-d1/a0 rts ; End of function sub_7E000 ; =============== S U B R O U T I N E ======================================= sub_7E04C: ; CODE XREF: sub_7E0BC:loc_7E6E8p ; sub_7E0BC+678p move.w (ENG_TORQUE_KE_ENGINE_MAX_TORQUE).l,d3 ; Maximum net torque output from the engine. ; ft-lb ext.l d0 asl.l #8,d0 asl.l #3,d0 divs.w d3,d0 bvc.s loc_7E064 swap d0 eor.w d3,d0 bmi.s loc_7E078 bra.s loc_7E072 ; --------------------------------------------------------------------------- loc_7E064: ; CODE XREF: sub_7E04C+Ej cmpi.w #$800,d0 bgt.s loc_7E072 cmpi.w #$F800,d0 blt.s loc_7E078 bra.s loc_7E07C ; --------------------------------------------------------------------------- loc_7E072: ; CODE XREF: sub_7E04C+16j ; sub_7E04C+1Cj move.w #$800,d0 bra.s loc_7E07C ; --------------------------------------------------------------------------- loc_7E078: ; CODE XREF: sub_7E04C+14j ; sub_7E04C+22j move.w #$F800,d0 loc_7E07C: ; CODE XREF: sub_7E04C+24j ; sub_7E04C+2Aj cmp.w (ENG_TORQUE_KE_MIN_TORQUE_NORM).l,d0 ; Used to calculate torque PWM minimum ; Fraction -1_to_1 blt.s loc_7E090 sub.w (ENG_TORQUE_KE_MIN_TORQUE_NORM).l,d0 ; Used to calculate torque PWM minimum ; Fraction -1_to_1 cmpi.w #$7FFF,d0 bls.s loc_7E092 loc_7E090: ; CODE XREF: sub_7E04C+36j clr.w d0 loc_7E092: ; CODE XREF: sub_7E04C+42j mulu.w #5,d0 lsr.w #1,d0 mulu.w (word_FFFF9E74).w,d0 lsr.l #8,d0 lsr.l #3,d0 cmpi.w #$1400,d0 bls.s loc_7E0AA move.w #$1400,d0 loc_7E0AA: ; CODE XREF: sub_7E04C+58j add.w (ENG_TORQUE_KE_TCS_DEL_TORQ_DUTY_CYCLE_LOW).l,d0 ; Lowest duty cycle broadcast on the Delivered Torque PWM for normal conditions. ; Percent cmpi.w #$1400,d0 bls.s locret_7E0BA move.w #$1400,d0 locret_7E0BA: ; CODE XREF: sub_7E04C+68j rts ; End of function sub_7E04C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7E0BC: ; CODE XREF: DoLoopC+2Cp var_61B6 = -$61B6 var_8 = -8 var_6 = -6 var_4 = -4 var_2 = -2 link a6,#-8 movem.l d0-d2/d6-a1/a4-a5,-(sp) move.w (word_FFFFA1EE).w,d3 cmpi.w #$633,d3 bls.s loc_7E0D6 move.w #$F00,(word_FFFF9E42).w bra.s loc_7E102 ; --------------------------------------------------------------------------- loc_7E0D6: ; CODE XREF: sub_7E0BC+10j move.w #$333,d6 cmp.w d3,d6 bls.s loc_7E0E4 clr.w (word_FFFF9E42).w bra.s loc_7E102 ; --------------------------------------------------------------------------- loc_7E0E4: ; CODE XREF: sub_7E0BC+20j sub.w d6,d3 bcs.s loc_7E0FC andi.l #$FFFF,d3 asl.l #8,d3 divu.w #$33,d3 ; '3' bvc.s loc_7E0FE move.w #$FFFF,d3 bra.s loc_7E0FE ; --------------------------------------------------------------------------- loc_7E0FC: ; CODE XREF: sub_7E0BC+2Aj clr.w d3 loc_7E0FE: ; CODE XREF: sub_7E0BC+38j ; sub_7E0BC+3Ej move.w d3,(word_FFFF9E42).w loc_7E102: ; CODE XREF: sub_7E0BC+18j ; sub_7E0BC+26j move.w #$F00,d6 cmp.w (word_FFFF9E42).w,d6 bcc.s loc_7E110 move.w d6,(word_FFFF9E42).w loc_7E110: ; CODE XREF: sub_7E0BC+4Ej move.w (word_FFFFA72E).w,d3 movea.w #$400,a5 add.w a5,d3 andi.l #$FFFF,d3 asl.l #8,d3 divu.w #$133,d3 move.w d3,(word_FFFF9E40).w cmp.w d3,d6 bcc.s loc_7E132 move.w d6,(word_FFFF9E40).w loc_7E132: ; CODE XREF: sub_7E0BC+70j move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$A000,d3 bls.s loc_7E144 move.w #$1400,(word_FFFF9E44).w bra.s loc_7E14A ; --------------------------------------------------------------------------- loc_7E144: ; CODE XREF: sub_7E0BC+7Ej lsr.w #3,d3 move.w d3,(word_FFFF9E44).w loc_7E14A: ; CODE XREF: sub_7E0BC+86j move.w #$1400,d7 cmp.w (word_FFFF9E44).w,d7 bcc.s loc_7E158 move.w d7,(word_FFFF9E44).w loc_7E158: ; CODE XREF: sub_7E0BC+96j move.w (word_FFFFB292).w,d3 cmp.w d3,d7 bcc.s loc_7E168 move.w #$800,(word_FFFF9E46).w bra.s loc_7E182 ; --------------------------------------------------------------------------- loc_7E168: ; CODE XREF: sub_7E0BC+A2j cmpi.w #$400,d3 bcc.s loc_7E174 clr.w (word_FFFF9E46).w bra.s loc_7E182 ; --------------------------------------------------------------------------- loc_7E174: ; CODE XREF: sub_7E0BC+B0j lsr.w #1,d3 subi.w #$200,d3 bcc.s loc_7E17E clr.w d3 loc_7E17E: ; CODE XREF: sub_7E0BC+BEj move.w d3,(word_FFFF9E46).w loc_7E182: ; CODE XREF: sub_7E0BC+AAj ; sub_7E0BC+B6j move.w #$800,d2 cmp.w (word_FFFF9E46).w,d2 bcc.s loc_7E190 move.w d2,(word_FFFF9E46).w loc_7E190: ; CODE XREF: sub_7E0BC+CEj move.w (word_FFFFB298).w,d3 cmp.w d3,d7 bcc.s loc_7E1A0 move.w #$500,(word_FFFF9E48).w bra.s loc_7E1A6 ; --------------------------------------------------------------------------- loc_7E1A0: ; CODE XREF: sub_7E0BC+DAj lsr.w #2,d3 move.w d3,(word_FFFF9E48).w loc_7E1A6: ; CODE XREF: sub_7E0BC+E2j move.w #$500,d1 cmp.w (word_FFFF9E48).w,d1 bcc.s loc_7E1B4 move.w d1,(word_FFFF9E48).w loc_7E1B4: ; CODE XREF: sub_7E0BC+F2j moveq #3,d0 cmp.b (ThrottleControlMode2?).w,d0 bne.s loc_7E1C2 jsr sub_3A754 loc_7E1C2: ; CODE XREF: sub_7E0BC+FEj cmp.b (ThrottleControlMode2?).w,d0 bne.s loc_7E21E tst.w (ENG_TORQUE_KE_ENGINE_INERTIA).l ; Desired axle torque for rear axle protection ; Mult0to2 bls.s loc_7E21A move.w (word_FFFFA55E).w,d3 ext.l d3 muls.l #$F72B,d3 move.w #$200,d4 divs.w d4,d3 bvc.s loc_7E1F6 swap d3 eor.w d4,d3 bmi.s loc_7E1F2 move.w #$7FFF,d3 bra.s loc_7E1F6 ; --------------------------------------------------------------------------- loc_7E1F2: ; CODE XREF: sub_7E0BC+12Ej move.w #$8000,d3 loc_7E1F6: ; CODE XREF: sub_7E0BC+128j ; sub_7E0BC+134j move.w #$1000,d4 muls.w (ENG_TORQUE_KE_ENGINE_INERTIA).l,d3 ; Desired axle torque for rear axle protection ; Mult0to2 divs.w d4,d3 bvc.s loc_7E214 swap d3 eor.w d4,d3 bmi.s loc_7E210 move.w #$7FFF,d3 bra.s loc_7E214 ; --------------------------------------------------------------------------- loc_7E210: ; CODE XREF: sub_7E0BC+14Cj move.w #$8000,d3 loc_7E214: ; CODE XREF: sub_7E0BC+146j ; sub_7E0BC+152j move.w d3,(word_FFFF9E32).w bra.s loc_7E21E ; --------------------------------------------------------------------------- loc_7E21A: ; CODE XREF: sub_7E0BC+112j clr.w (word_FFFF9E32).w loc_7E21E: ; CODE XREF: sub_7E0BC+10Aj ; sub_7E0BC+15Cj lea (ENG_TORQUE_KA_INDICATED_MBT_TORQUE_EFF_E0).l,a0 ; Thermal Efficiency factor used in calculating Indicated_MBT_Torque with E0 fuel. ; NONE 0-1 movea.w (word_FFFF9E44).w,a4 move.l a4,d0 movea.w (word_FFFF9E42).w,a1 move.l a1,d1 moveq #$2A,d2 ; '*' jsr (sub_16D6).l move.w d0,d7 lea (ENG_TORQUE_KA_INDICATED_MBT_TORQUE_EFF_E0).l,a0 ; Thermal Efficiency factor used in calculating Indicated_MBT_Torque with E0 fuel. ; NONE 0-1 move.l a4,d0 move.w #$400,d1 moveq #$2A,d2 ; '*' jsr (sub_16D6).l move.w d0,var_8(a6) lea (ENG_TORQUE_KA_INDICATED_MBT_TORQUE_EFF_E80).l,a0 ; Thermal Efficiency factor used in calculating Indicated_MBT_Torque with E80 fuel. ; NONE 0-1 move.l a4,d0 move.l a1,d1 moveq #$2A,d2 ; '*' jsr (sub_16D6).l move.w d0,d6 lea (ENG_TORQUE_KA_INDICATED_MBT_TORQUE_EFF_E80).l,a0 ; Thermal Efficiency factor used in calculating Indicated_MBT_Torque with E80 fuel. ; NONE 0-1 move.l a4,d0 move.w #$400,d1 moveq #$2A,d2 ; '*' jsr (sub_16D6).l move.w d0,d3 move.l d6,d5 sub.w d7,d5 bcc.s loc_7E284 clr.w d5 loc_7E284: ; CODE XREF: sub_7E0BC+1C4j mulu.w (word_FFFF9FD8).w,d5 lsr.l #8,d5 lsr.l #4,d5 add.w d5,d7 move.w d7,(word_FFFF9E34).w move.w var_8(a6),d6 sub.w var_8(a6),d3 bcc.s loc_7E29E clr.w d3 loc_7E29E: ; CODE XREF: sub_7E0BC+1DEj mulu.w (word_FFFF9FD8).w,d3 lsr.l #8,d3 lsr.l #4,d3 add.w d3,d6 move.w d6,(word_FFFF9E36).w move.w (word_FFFF9E34).w,d3 mulu.w (word_FFFFA0DE).w,d3 lsr.l #8,d3 lsr.l #3,d3 move.w (EngineRPM_PID_000C___).w,d0 beq.s loc_7E2E2 andi.l #$FFFF,d3 mulu.l #$100000,d4:d3 moveq #$19,d6 divu.l d6,d4:d3 andi.l #$FFFF,d0 divu.l d0,d3 bvc.s loc_7E2E4 moveq #$FFFFFFFF,d3 bra.s loc_7E2E4 ; --------------------------------------------------------------------------- loc_7E2E2: ; CODE XREF: sub_7E0BC+200j clr.l d3 loc_7E2E4: ; CODE XREF: sub_7E0BC+220j ; sub_7E0BC+224j mulu.l (ENG_TORQUE_KE_UNITS_CONSTANT).l,d4:d3 divu.l #$50000000,d4:d3 bvs.s loc_7E2FE cmpi.l #$7FFF,d3 bls.s loc_7E302 loc_7E2FE: ; CODE XREF: sub_7E0BC+238j move.w #$7FFF,d3 loc_7E302: ; CODE XREF: sub_7E0BC+240j move.w d3,(word_FFFF9E3E).w clr.w d0 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d0 ; Number of cylinders for this engine application. ; SHORTCARD clr.l d4 move.w (word_FFFFB274).w,d4 divu.w d0,d4 bvs.s loc_7E32E tst.w d4 blt.s loc_7E32E muls.w (word_FFFF9E3E).w,d4 move.w #$800,d0 divs.w d0,d4 bvc.s loc_7E338 swap d4 eor.w d0,d4 bmi.s loc_7E334 loc_7E32E: ; CODE XREF: sub_7E0BC+25Aj ; sub_7E0BC+25Ej move.w #$7FFF,d4 bra.s loc_7E338 ; --------------------------------------------------------------------------- loc_7E334: ; CODE XREF: sub_7E0BC+270j move.w #$8000,d4 loc_7E338: ; CODE XREF: sub_7E0BC+26Aj ; sub_7E0BC+276j move.w d4,(word_FFFF9E3C).w move.w (ENG_TORQUE_KE_INDICATED_TORQUE_FILTER).l,d0 ; This is the filter coefficient for indicated MBT torque andindicated MBT torque all cylinders. ; Seconds move.w (word_FFFF9E24).w,var_4(a6) move.w d3,var_2(a6) move.l d0,d3 tbls.w var_4(a6),d3 move.w d3,(word_FFFF9E24).w move.w (word_FFFF9E2E).w,var_4(a6) move.w d4,var_2(a6) move.l d0,d3 tbls.w var_4(a6),d3 move.w d3,(word_FFFF9E2E).w lea (ENG_TORQUE_KA_OIL_TEMP_FRICTION_MODIFIER).l,a0 ; This is the change in the friction torque due to changesin oil temperature. ; NONE 0-4 move.w (word_FFFF9E40).w,d0 move.l a4,d1 moveq #$20,d2 ; ' ' jsr (sub_16D6).l move.w d0,var_8(a6) lea (ENG_TORQUE_KA_FRICTION_TORQUE).l,a0 ; Torque consumed by friction in engine -- base value. ; lb_ft move.w (word_FFFF9E48).w,d0 move.l a4,d1 moveq #$C,d2 jsr sub_878FA move.w d0,var_6(a6) move.w (AnotherRpmValue).w,d0 movea.l #$A2F0,a2 tblu.w (a2),d0 clr.l d3 move.w (word_FFFFAD8E).w,d3 cmpi.l #$A00,d3 bls.s loc_7E3C0 move.l #$A00,d3 loc_7E3C0: ; CODE XREF: sub_7E0BC+2FCj tbls.w (ENG_TORQUE_KV_AC_COMPRESSOR_TORQUE).l,d3 ; Torque consumed by friction in AC compressor when AC compressor clutch is engaged. ; lb_ft move.w (word_FFFFB3E8).w,d5 clr.w d1 add.w a5,d5 moveq #5,d6 muls.w d6,d5 moveq #6,d7 divs.w d7,d5 movea.l #$A2D0,a2 tblu.w (a2),d5 tst.w d5 bge.s loc_7E3EA move.w #$7FFF,d5 loc_7E3EA: ; CODE XREF: sub_7E0BC+328j add.w d5,d3 bvc.s loc_7E3FA bpl.s loc_7E3F6 move.w #$7FFF,d3 bra.s loc_7E3FA ; --------------------------------------------------------------------------- loc_7E3F6: ; CODE XREF: sub_7E0BC+332j move.w #$8000,d3 loc_7E3FA: ; CODE XREF: sub_7E0BC+330j ; sub_7E0BC+338j move.w d3,(word_FFFF9E1E).w move.w #$800,d4 move.w var_6(a6),d3 muls.w var_8(a6),d3 divs.w d4,d3 bvc.s loc_7E416 swap d3 eor.w d4,d3 bmi.s loc_7E436 bra.s loc_7E430 ; --------------------------------------------------------------------------- loc_7E416: ; CODE XREF: sub_7E0BC+350j ext.l d3 andi.l #$FFFF,d0 add.l d0,d3 cmpi.l #$FFFF8000,d3 blt.s loc_7E436 cmpi.l #$7FFF,d3 ble.s loc_7E43A loc_7E430: ; CODE XREF: sub_7E0BC+358j move.w #$7FFF,d3 bra.s loc_7E43A ; --------------------------------------------------------------------------- loc_7E436: ; CODE XREF: sub_7E0BC+356j ; sub_7E0BC+36Aj move.w #$8000,d3 loc_7E43A: ; CODE XREF: sub_7E0BC+372j ; sub_7E0BC+378j btst #5,(byte_FFFFAD8B).w beq.s loc_7E454 add.w (word_FFFF9E1E).w,d3 bvc.s loc_7E454 bpl.s loc_7E450 move.w #$7FFF,d3 bra.s loc_7E454 ; --------------------------------------------------------------------------- loc_7E450: ; CODE XREF: sub_7E0BC+38Cj move.w #$8000,d3 loc_7E454: ; CODE XREF: sub_7E0BC+384j ; sub_7E0BC+38Aj ... move.w d3,(word_FFFF9E30).w move.w (word_FFFF9834).w,d3 bge.s loc_7E464 clr.w (word_FFFF9E2C).w bra.s loc_7E4AA ; --------------------------------------------------------------------------- loc_7E464: ; CODE XREF: sub_7E0BC+3A0j move.l d1,d4 tst.w d3 bge.s loc_7E46E move.l d4,d3 bra.s loc_7E490 ; --------------------------------------------------------------------------- loc_7E46E: ; CODE XREF: sub_7E0BC+3ACj cmpi.w #$928,d3 bge.s loc_7E48C ext.l d3 asl.l #8,d3 loc_7E478: ; DATA XREF: sub_4B054+120o ; OS2:0004B2E4o ... move.l #$89,d7 ; '?' tst.l d3 bmi.s loc_7E488 divu.l d7,d3 bra.s loc_7E490 ; --------------------------------------------------------------------------- loc_7E488: ; CODE XREF: sub_7E0BC+3C4j clr.l d3 bra.s loc_7E490 ; --------------------------------------------------------------------------- loc_7E48C: ; CODE XREF: sub_7E0BC+3B6j move.w #$111C,d3 loc_7E490: ; CODE XREF: sub_7E0BC+3B0j ; sub_7E0BC+3CAj ... movea.w (word_FFFFAEF8).w,a2 moveq #$12,d2 move.l a2,d1 move.l d3,d0 movea.l #$A206,a0 jsr sub_2696E move.w d0,(word_FFFF9E2C).w loc_7E4AA: ; CODE XREF: sub_7E0BC+3A6j move.w (word_FFFF9838).w,d3 bge.s loc_7E4B6 clr.w (word_FFFF9E2A).w bra.s loc_7E4FC ; --------------------------------------------------------------------------- loc_7E4B6: ; CODE XREF: sub_7E0BC+3F2j clr.w d4 tst.w d3 bge.s loc_7E4C0 move.l d4,d3 bra.s loc_7E4E2 ; --------------------------------------------------------------------------- loc_7E4C0: ; CODE XREF: sub_7E0BC+3FEj cmpi.w #$928,d3 bge.s loc_7E4DE ext.l d3 asl.l #8,d3 move.l #$89,d7 ; '?' tst.l d3 bmi.s loc_7E4DA divu.l d7,d3 bra.s loc_7E4E2 ; --------------------------------------------------------------------------- loc_7E4DA: ; CODE XREF: sub_7E0BC+416j clr.l d3 bra.s loc_7E4E2 ; --------------------------------------------------------------------------- loc_7E4DE: ; CODE XREF: sub_7E0BC+408j move.w #$111C,d3 loc_7E4E2: ; CODE XREF: sub_7E0BC+402j ; sub_7E0BC+41Cj ... movea.w (word_FFFFAEF8).w,a2 moveq #$12,d2 move.l a2,d1 move.l d3,d0 movea.l #$A206,a0 jsr sub_2696E move.w d0,(word_FFFF9E2A).w loc_7E4FC: ; CODE XREF: sub_7E0BC+3F8j move.w (word_FFFF9836).w,d3 bge.s loc_7E508 clr.w (word_FFFF9E52).w bra.s loc_7E54A ; --------------------------------------------------------------------------- loc_7E508: ; CODE XREF: sub_7E0BC+444j clr.w d4 tst.w d3 bge.s loc_7E512 move.l d4,d3 bra.s loc_7E530 ; --------------------------------------------------------------------------- loc_7E512: ; CODE XREF: sub_7E0BC+450j cmpi.w #$928,d3 bge.s loc_7E52C ext.l d3 asl.l #8,d3 bmi.s loc_7E528 divu.l #$89,d3 ; '?' bra.s loc_7E530 ; --------------------------------------------------------------------------- loc_7E528: ; CODE XREF: sub_7E0BC+460j clr.l d3 bra.s loc_7E530 ; --------------------------------------------------------------------------- loc_7E52C: ; CODE XREF: sub_7E0BC+45Aj move.w #$111C,d3 loc_7E530: ; CODE XREF: sub_7E0BC+454j ; sub_7E0BC+46Aj ... movea.w (word_FFFFAEF8).w,a2 moveq #$12,d2 move.l a2,d1 move.l d3,d0 movea.l #$A206,a0 jsr sub_2696E move.w d0,(word_FFFF9E52).w loc_7E54A: ; CODE XREF: sub_7E0BC+44Aj move.w (word_FFFF9E2A).w,d3 add.w d3,d3 andi.l #$FFFF,d3 moveq #5,d6 divu.w d6,d3 move.w #$800,d7 sub.w d3,d7 move.w d7,d3 move.l d3,d4 muls.w (word_FFFF9E2E).w,d4 bpl.s loc_7E570 addi.l #$7FF,d4 loc_7E570: ; CODE XREF: sub_7E0BC+4ACj asr.l #8,d4 asr.l #3,d4 sub.w (word_FFFF9E30).w,d4 bvc.s loc_7E586 bpl.s loc_7E582 move.w #$7FFF,d4 bra.s loc_7E586 ; --------------------------------------------------------------------------- loc_7E582: ; CODE XREF: sub_7E0BC+4BEj move.w #$8000,d4 loc_7E586: ; CODE XREF: sub_7E0BC+4BCj ; sub_7E0BC+4C4j move.w d4,(word_FFFF9E22).w muls.w (word_FFFF9E24).w,d3 bpl.s loc_7E596 addi.l #$7FF,d3 loc_7E596: ; CODE XREF: sub_7E0BC+4D2j asr.l #8,d3 asr.l #3,d3 sub.w (word_FFFF9E30).w,d3 bvc.s loc_7E5AC bpl.s loc_7E5A8 move.w #$7FFF,d3 bra.s loc_7E5AC ; --------------------------------------------------------------------------- loc_7E5A8: ; CODE XREF: sub_7E0BC+4E4j move.w #$8000,d3 loc_7E5AC: ; CODE XREF: sub_7E0BC+4E2j ; sub_7E0BC+4EAj move.w d3,(word_FFFF9E26).w move.w (word_FFFF9E2C).w,d3 add.w d3,d3 andi.l #$FFFF,d3 divu.w d6,d3 move.w #$800,d7 sub.w d3,d7 move.w d7,d3 muls.w (word_FFFF9E2E).w,d3 bpl.s loc_7E5D2 addi.l #$7FF,d3 loc_7E5D2: ; CODE XREF: sub_7E0BC+50Ej asr.l #8,d3 asr.l #3,d3 sub.w (word_FFFF9E30).w,d3 bvc.s loc_7E5E8 bpl.s loc_7E5E4 move.w #$7FFF,d3 bra.s loc_7E5E8 ; --------------------------------------------------------------------------- loc_7E5E4: ; CODE XREF: sub_7E0BC+520j move.w #$8000,d3 loc_7E5E8: ; CODE XREF: sub_7E0BC+51Ej ; sub_7E0BC+526j move.w d3,(word_FFFF9E28).w move.w d3,d0 sub.w (word_FFFF9E32).w,d0 bvc.s loc_7E600 bpl.s loc_7E5FC move.w #$7FFF,d0 bra.s loc_7E600 ; --------------------------------------------------------------------------- loc_7E5FC: ; CODE XREF: sub_7E0BC+538j move.w #$8000,d0 loc_7E600: ; CODE XREF: sub_7E0BC+536j ; sub_7E0BC+53Ej move.w d0,(word_FFFF9E4C).w move.w (EngineRPM_PID_000C___).w,d2 clr.w d3 move.b (byte_FFFF9E7E).w,d3 clr.l d1 move.w word_FFFF9E76(d3.w*2),d1 clr.l d3 move.w d2,d3 sub.l d1,d3 cmpi.l #$FFFF8000,d3 blt.s loc_7E62C cmpi.l #$7FFF,d3 ble.s loc_7E630 loc_7E62C: ; CODE XREF: sub_7E0BC+566j move.w #$8000,d3 loc_7E630: ; CODE XREF: sub_7E0BC+56Ej move.b (byte_FFFF9E7E).w,d4 clr.l d7 move.b d4,d7 move.w d2,$2C+var_61B6(d7.w*2) addq.b #1,d4 andi.b #3,d4 move.b d4,(byte_FFFF9E7E).w muls.w (ENG_TORQUE_KE_TCS_STALL_DELTA_GAIN).l,d3 ; Gain on the derivative term for calculation ofTCS_Stall_Protection_Number. ; Scaler 0-16 move.w #$800,d1 divs.w d1,d3 bvc.s loc_7E666 swap d3 eor.w d1,d3 bmi.s loc_7E662 move.w #$7FFF,d3 bra.s loc_7E666 ; --------------------------------------------------------------------------- loc_7E662: ; CODE XREF: sub_7E0BC+59Ej move.w #$8000,d3 loc_7E666: ; CODE XREF: sub_7E0BC+598j ; sub_7E0BC+5A4j ext.l d3 clr.l d1 move.w d2,d1 add.l d3,d1 tst.l d1 blt.s loc_7E680 cmpi.l #$FFFF,d1 bls.s loc_7E682 move.w #$FFFF,d1 bra.s loc_7E682 ; --------------------------------------------------------------------------- loc_7E680: ; CODE XREF: sub_7E0BC+5B4j clr.w d1 loc_7E682: ; CODE XREF: sub_7E0BC+5BCj ; sub_7E0BC+5C2j move.w d1,(word_FFFF9E3A).w tst.b (byte_FFFF9E39).w beq.s loc_7E6A8 move.w (ENG_TORQUE_KE_ENG_SPEED_STALL_ABSOLUTE_HI).l,d3 mulu.w (DesiredIdleSpeed).w,d3 divu.w #$800,d3 bvc.s loc_7E6A0 move.w #$FFFF,d3 loc_7E6A0: ; CODE XREF: sub_7E0BC+5DEj clr.b d4 cmp.w d3,d1 bhi.s loc_7E6CC bra.s loc_7E6CA ; --------------------------------------------------------------------------- loc_7E6A8: ; CODE XREF: sub_7E0BC+5CEj move.w (ENG_TORQUE_KE_ENG_SPEED_STALL_ABSOLUTE_LO).l,d3 mulu.w (DesiredIdleSpeed).w,d3 divu.w #$800,d3 bvc.s loc_7E6BC move.w #$FFFF,d3 loc_7E6BC: ; CODE XREF: sub_7E0BC+5FAj clr.b d4 cmp.w (ENG_TORQUE_KE_ENGINE_SPEED_STALL).l,d2 ; Engine speed below which stall protection mode will be enabledwhen TCS_Stall_Protection_Number is below a cal also. ; RPM bcc.s loc_7E6CC cmp.w d3,d1 bcc.s loc_7E6CC loc_7E6CA: ; CODE XREF: sub_7E0BC+5EAj addq.b #1,d4 loc_7E6CC: ; CODE XREF: sub_7E0BC+5E8j ; sub_7E0BC+608j ... move.b d4,(byte_FFFF9E39).w beq.s loc_7E6DA move.w (ENG_TORQUE_KE_STALL_PROTECTION_DUTY_CYCLE).l,d0 ; Duty cycle broadcast on the Delivered Torque PWM. ; Percent bra.s loc_7E6EE ; --------------------------------------------------------------------------- loc_7E6DA: ; CODE XREF: sub_7E0BC+614j tst.b (byte_FFFF93F9).w beq.s loc_7E6E8 move.w (ENG_TORQUE_KE_TCS_SHIFT_DUTY_CYCLE).l,d0 ; Duty cycle broadcast on the Delivered Torque PWM in the eventthat the PCM determines that a shift is in progress. ; Percent bra.s loc_7E6EE ; --------------------------------------------------------------------------- loc_7E6E8: ; CODE XREF: sub_7E0BC+622j jsr sub_7E04C loc_7E6EE: ; CODE XREF: sub_7E0BC+61Cj ; sub_7E0BC+62Aj move.w #$1400,d2 sub.w d0,d2 move.w d2,(word_FFFF9E4E).w move.l #$1F9,d1 moveq #$34,d0 ; '4' jsr (sub_16FA).l moveq #4,d7 cmp.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d7 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_7E752 btst #0,(word_FFFF910A).w bne.s loc_7E728 btst #1,(word_FFFF910A).w bne.s loc_7E728 btst #2,(word_FFFF910A).w beq.s loc_7E730 loc_7E728: ; CODE XREF: sub_7E0BC+65Aj ; sub_7E0BC+662j move.w (ENG_TORQUE_KE_LCT_TRQ_MNG_FAIL_DUTY_CYCLE).l,d0 bra.s loc_7E73A ; --------------------------------------------------------------------------- loc_7E730: ; CODE XREF: sub_7E0BC+66Aj move.w (word_FFFF9E22).w,d0 jsr sub_7E04C loc_7E73A: ; CODE XREF: sub_7E0BC+672j move.w #$1400,d2 sub.w d0,d2 move.w d2,(word_FFFF9E4A).w move.l #$1F9,d1 moveq #$30,d0 ; '0' jsr (sub_16FA).l loc_7E752: ; CODE XREF: sub_7E0BC+652j clr.b d3 btst #0,(byte_FFFFAD8A).w bne.s loc_7E766 btst #1,(byte_FFFFAD8A).w bne.s loc_7E766 addq.b #1,d3 loc_7E766: ; CODE XREF: sub_7E0BC+69Ej ; sub_7E0BC+6A6j tst.b (byte_FFFF94E7).w beq.s loc_7E770 clr.b (byte_FFFF9E70).w loc_7E770: ; CODE XREF: sub_7E0BC+6AEj clr.w d0 move.b (byte_FFFF9E1C).w,d0 movea.l off_89A86(d0.w*4),a0 jmp (a0) ; End of function sub_7E0BC ; --------------------------------------------------------------------------- loc_7E780: ; DATA XREF: OS4:off_89A86o btst #1,(byte_FFFFAD8A).w beq.w loc_7E930 clr.b (byte_FFFF9E70).w moveq #1,d2 move.b d2,(byte_FFFF9E1C).w move.w (word_FFFF9E1E).w,d3 move.w d3,d4 move.w #$A67,d1 cmp.w d4,d1 bls.s loc_7E7AC muls.w d6,d3 bpl.s loc_7E7A8 addq.l #3,d3 loc_7E7A8: ; CODE XREF: OS3:0007E7A4j asr.l #2,d3 bra.s loc_7E7B0 ; --------------------------------------------------------------------------- loc_7E7AC: ; CODE XREF: OS3:0007E7A0j move.w #$D00,d3 loc_7E7B0: ; CODE XREF: OS3:0007E7AAj movea.l #$A6F2,a2 tblu.w (a2),d3 move.w d3,(word_FFFF9E66).w clr.w d4 cmpi.w #$334,d3 bcc.s loc_7E7CA mulu.w d6,d3 bra.s loc_7E7CE ; --------------------------------------------------------------------------- loc_7E7CA: ; CODE XREF: OS3:0007E7C4j move.w #$1004,d3 loc_7E7CE: ; CODE XREF: OS3:0007E7C8j movea.l #$A70E,a2 tblu.w (a2),d3 move.w d3,(word_FFFF9E68).w tst.w (word_FFFF9E2E).w bne.s loc_7E7E6 move.l d4,d3 bra.s loc_7E824 ; --------------------------------------------------------------------------- loc_7E7E6: ; CODE XREF: OS3:0007E7E0j move.w (word_FFFF9E2E).w,d4 clr.l d3 move.w (word_FFFF9E66).w,d3 asl.l #8,d3 asl.l #4,d3 divs.w d4,d3 bvc.s loc_7E800 swap d3 eor.w d4,d3 bmi.s loc_7E812 bra.s loc_7E80C ; --------------------------------------------------------------------------- loc_7E800: ; CODE XREF: OS3:0007E7F6j cmpi.w #$7FFF,d3 bhi.s loc_7E812 cmpi.w #$1000,d3 bls.s loc_7E814 loc_7E80C: ; CODE XREF: OS3:0007E7FEj move.w #$1000,d3 bra.s loc_7E814 ; --------------------------------------------------------------------------- loc_7E812: ; CODE XREF: OS3:0007E7FCj ; OS3:0007E804j clr.w d3 loc_7E814: ; CODE XREF: OS3:0007E80Aj ; OS3:0007E810j mulu.w (word_FFFFA0DE).w,d3 move.w #$200,d1 divu.w d1,d3 bvc.s loc_7E824 move.w #$FFFF,d3 loc_7E824: ; CODE XREF: OS3:0007E7E4j ; OS3:0007E81Ej move.w #$1400,d4 sub.w (word_FFFF9E52).w,d4 asl.w #2,d4 andi.l #$FFFF,d4 divu.w d6,d4 bne.s loc_7E83E clr.w (word_FFFF9E64).w bra.s loc_7E854 ; --------------------------------------------------------------------------- loc_7E83E: ; CODE XREF: OS3:0007E836j andi.l #$FFFF,d3 asl.l #8,d3 asl.l #4,d3 divu.w d4,d3 bvc.s loc_7E850 move.w #$FFFF,d3 loc_7E850: ; CODE XREF: OS3:0007E84Aj move.w d3,(word_FFFF9E64).w loc_7E854: ; CODE XREF: OS3:0007E83Cj clr.b (byte_FFFF9E38).w clr.b (byte_FFFF9E5E).w bra.w loc_7E930 ; --------------------------------------------------------------------------- loc_7E860: ; DATA XREF: OS4:00089A8Ao btst #0,(byte_FFFFAD8A).w beq.s loc_7E890 clr.b (byte_FFFF9E5F).w clr.b (byte_FFFF9E60).w move.b #2,(byte_FFFF9E1C).w clr.w (word_FFFF9E5A).w bra.w loc_7E930 ; --------------------------------------------------------------------------- loc_7E87E: ; DATA XREF: OS4:00089A8Eo move.b (byte_FFFF9E5F).w,d0 and.b (byte_FFFF9E60).w,d0 beq.s loc_7E890 move.b d7,(byte_FFFF9E1C).w bra.w loc_7E930 ; --------------------------------------------------------------------------- loc_7E890: ; CODE XREF: OS3:0007E866j ; OS3:0007E886j tst.b d3 beq.w loc_7E930 clr.b (byte_FFFF9E1C).w bra.w loc_7E930 ; --------------------------------------------------------------------------- loc_7E89E: ; DATA XREF: OS4:00089A96o btst #1,(byte_FFFFAD8A).w bne.w loc_7E930 move.b d6,(byte_FFFF9E1C).w clr.b (byte_FFFF9E5F).w clr.b (byte_FFFF9E60).w clr.w (word_FFFF9E5A).w jsr sub_7F000 clr.l d3 move.w (word_FFFF9E6A).w,d3 asl.l #8,d3 asl.l #4,d3 divu.w (word_FFFF9E16).w,d3 bvs.s loc_7E8D4 cmpi.w #$2000,d3 bls.s loc_7E8D8 loc_7E8D4: ; CODE XREF: OS3:0007E8CCj move.w #$2000,d3 loc_7E8D8: ; CODE XREF: OS3:0007E8D2j muls.w (word_FFFF9E1E).w,d3 cmpi.l #$7FFFFFFF,d3 bhi.s loc_7E8EA lsr.l #8,d3 lsr.l #4,d3 bra.s loc_7E8EC ; --------------------------------------------------------------------------- loc_7E8EA: ; CODE XREF: OS3:0007E8E2j clr.w d3 loc_7E8EC: ; CODE XREF: OS3:0007E8E8j move.w d3,(word_FFFF9E20).w clr.b d4 move.w #$A67,d2 cmp.w d3,d2 bls.s loc_7E900 mulu.w d6,d3 lsr.l #2,d3 bra.s loc_7E904 ; --------------------------------------------------------------------------- loc_7E900: ; CODE XREF: OS3:0007E8F8j move.w #$D00,d3 loc_7E904: ; CODE XREF: OS3:0007E8FEj movea.l #$A6D6,a2 tblu.w (a2),d3 move.w d3,(word_FFFF9E62).w bra.s loc_7E930 ; --------------------------------------------------------------------------- loc_7E914: ; DATA XREF: OS4:00089A9Ao move.b (byte_FFFF9E5F).w,d0 and.b (byte_FFFF9E60).w,d0 beq.s loc_7E930 move.b #6,(byte_FFFF9E1C).w bra.s loc_7E930 ; --------------------------------------------------------------------------- loc_7E926: ; DATA XREF: OS4:00089A9Eo tst.w (word_FFFF9E14).w bne.s loc_7E930 clr.b (byte_FFFF9E1C).w loc_7E930: ; CODE XREF: OS3:0007E786j ; OS3:0007E85Cj ... clr.w d0 move.b (byte_FFFF9E1C).w,d0 movea.l off_89AA2(d0.w*4),a0 jmp (a0) ; --------------------------------------------------------------------------- loc_7E940: ; DATA XREF: OS4:off_89AA2o clr.w (4294942230).w clr.w (word_FFFF9E14).w clr.w (word_FFFF9E50).w bra.w loc_7EE82 ; --------------------------------------------------------------------------- loc_7E950: ; DATA XREF: OS4:00089AA6o move.w (4294942254).w,d3 bgt.s loc_7E960 cmpi.w #$1400,(word_FFFF9E52).w beq.w loc_7E9F0 loc_7E960: ; CODE XREF: OS3:0007E954j tst.b (byte_FFFF9E5E).w beq.s loc_7E96E tst.b (byte_FFFF94D0).w beq.w loc_7E9F0 loc_7E96E: ; CODE XREF: OS3:0007E964j tst.w d3 beq.s loc_7E9B8 clr.l d3 move.w (word_FFFF9E66).w,d3 move.w (word_FFFF9E1E).w,d4 ext.l d4 add.l d3,d4 asl.l #8,d4 asl.l #4,d4 move.w (word_FFFF9E2E).w,d3 divs.w d3,d4 bvc.s loc_7E994 swap d4 eor.w d3,d4 bmi.s loc_7E9A6 bra.s loc_7E9A0 ; --------------------------------------------------------------------------- loc_7E994: ; CODE XREF: OS3:0007E98Aj cmpi.w #$7FFF,d4 bhi.s loc_7E9A6 cmpi.w #$1000,d4 bls.s loc_7E9A8 loc_7E9A0: ; CODE XREF: OS3:0007E992j move.w #$1000,d4 bra.s loc_7E9A8 ; --------------------------------------------------------------------------- loc_7E9A6: ; CODE XREF: OS3:0007E990j ; OS3:0007E998j clr.w d4 loc_7E9A8: ; CODE XREF: OS3:0007E99Ej ; OS3:0007E9A4j mulu.w (word_FFFFA0DE).w,d4 divu.w #$200,d4 bvc.s loc_7E9BA move.w #$FFFF,d4 bra.s loc_7E9BA ; --------------------------------------------------------------------------- loc_7E9B8: ; CODE XREF: OS3:0007E970j clr.w d4 loc_7E9BA: ; CODE XREF: OS3:0007E9B0j ; OS3:0007E9B6j move.w #$1400,d3 sub.w (word_FFFF9E52).w,d3 asl.w #2,d3 andi.l #$FFFF,d3 divu.w d6,d3 bne.s loc_7E9D4 clr.w (word_FFFF9E16).w bra.s loc_7E9EA ; --------------------------------------------------------------------------- loc_7E9D4: ; CODE XREF: OS3:0007E9CCj andi.l #$FFFF,d4 asl.l #8,d4 asl.l #4,d4 divu.w d3,d4 bvc.s loc_7E9E6 move.w #$FFFF,d4 loc_7E9E6: ; CODE XREF: OS3:0007E9E0j move.w d4,(word_FFFF9E16).w loc_7E9EA: ; CODE XREF: OS3:0007E9D2j move.b #1,(byte_FFFF9E5E).w loc_7E9F0: ; CODE XREF: OS3:0007E95Cj ; OS3:0007E96Aj jsr sub_7F000 tst.w (word_FFFF9E16).w bls.s loc_7EA4A clr.l d5 move.w (word_FFFF9E66).w,d5 move.w (word_FFFF9E1E).w,d3 ext.l d3 add.l d5,d3 clr.l d5 move.w (word_FFFF9E6A).w,d5 asl.l #8,d5 asl.l #4,d5 divu.w (word_FFFF9E16).w,d5 bvs.s loc_7EA20 cmpi.w #$2000,d5 bls.s loc_7EA24 loc_7EA20: ; CODE XREF: OS3:0007EA18j move.w #$2000,d5 loc_7EA24: ; CODE XREF: OS3:0007EA1Ej andi.l #$FFFF,d5 muls.l d5,d3 cmpi.l #$7FFFFFFF,d3 bhi.s loc_7EA44 move.w #$1000,d2 divu.w d2,d3 bvc.s loc_7EA46 move.w #$FFFF,d3 bra.s loc_7EA46 ; --------------------------------------------------------------------------- loc_7EA44: ; CODE XREF: OS3:0007EA34j clr.w d3 loc_7EA46: ; CODE XREF: OS3:0007EA3Cj ; OS3:0007EA42j move.w d3,(word_FFFF9E20).w loc_7EA4A: ; CODE XREF: OS3:0007E9FAj tst.b (byte_FFFF9E38).w bne.s loc_7EAC8 tst.w (EngineRPM_PID_000C___).w bls.s loc_7EABC move.w (word_FFFF9E20).w,d3 cmpi.w #$A67,d3 bcc.s loc_7EA66 mulu.w d6,d3 lsr.l #2,d3 bra.s loc_7EA6A ; --------------------------------------------------------------------------- loc_7EA66: ; CODE XREF: OS3:0007EA5Ej move.w #$D00,d3 loc_7EA6A: ; CODE XREF: OS3:0007EA64j movea.l #$9B38,a2 tblu.b (a2),d3 clr.l d2 move.b d3,d2 clr.w d0 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d0 ; Number of cylinders for this engine application. ; SHORTCARD moveq #$78,d3 ; 'x' divu.w d0,d3 bvs.s loc_7EAAA andi.l #$FFFF,d3 asl.l #7,d3 divu.w #$19,d3 bvs.s loc_7EAAA andi.l #$FFFF,d3 asl.l #8,d3 asl.l #4,d3 divu.w (EngineRPM_PID_000C___).w,d3 bvs.s loc_7EAAA cmpi.w #$1000,d3 bls.s loc_7EAAE loc_7EAAA: ; CODE XREF: OS3:0007EA84j ; OS3:0007EA92j ... move.w #$1000,d3 loc_7EAAE: ; CODE XREF: OS3:0007EAA8j mulu.w d3,d2 move.l d6,d3 mulu.l d2,d3 lsr.l #7,d3 move.w d3,(word_FFFF9E58).w loc_7EABC: ; CODE XREF: OS3:0007EA54j move.w (GlobalClock).w,(word_FFFF9E56).w move.b #1,(byte_FFFF9E38).w loc_7EAC8: ; CODE XREF: OS3:0007EA4Ej move.w (word_FFFF9E58).w,d0 movea.l #unk_FF9E56,a0 jsr sub_276D4 tst.b d0 beq.s loc_7EAF2 move.w (word_FFFF9E50).w,d3 add.w (word_FFFF94C4).w,d3 cmpi.w #4096,d3 bls.s loc_7EAEE move.w #$1000,d3 loc_7EAEE: ; CODE XREF: OS3:0007EAE8j move.w d3,(word_FFFF9E50).w loc_7EAF2: ; CODE XREF: OS3:0007EADAj tst.b (ENG_TORQUE_KE_AC_BUMP_SPARK_ENABLE).l ; Enables spark for AC Bump logic when TRUE. ; BOOLEAN beq.s loc_7EB1C tst.b (ENG_TORQUE_KE_AC_BUMP_SPARK_IDLE_OFF).l ; When TRUE, bump spark will not be calculated at idle. ; BOOLEAN beq.s loc_7EB08 tst.b (byte_FFFF94D0).w beq.s loc_7EB1C loc_7EB08: ; CODE XREF: OS3:0007EB00j move.w (word_FFFF9E20).w,d3 mulu.w (word_FFFF9E50).w,d3 lsr.l #8,d3 lsr.l #4,d3 move.w d3,(word_FFFF9E14).w bra.w loc_7EE82 ; --------------------------------------------------------------------------- loc_7EB1C: ; CODE XREF: OS3:0007EAF8j ; OS3:0007EB06j clr.w (word_FFFF9E14).w bra.w loc_7EE82 ; --------------------------------------------------------------------------- loc_7EB24: ; DATA XREF: OS4:00089AAAo move.w (4294942298).w,d4 cmp.w (ENG_TORQUE_KE_AC_BUMP_CLUTCH_DELAY).l,d4 ; Amount of time from AC_Commanded_On TRUE to when compressorload hits the engine. ; Seconds bcs.s loc_7EB56 tst.b (byte_FFFF9E5F).w bne.s loc_7EB56 move.w (word_FFFF9E14).w,d3 sub.w (ENG_TORQUE_KE_AC_BUMP_TORQUE_RAMP_IN).l,d3 ; The rate at which the torque is ramped in when the AC compressorclutch engages. ; Foot Pounds bcc.s loc_7EB44 clr.w d3 loc_7EB44: ; CODE XREF: OS3:0007EB40j move.w d3,(word_FFFF9E14).w tst.w d3 bhi.s loc_7EB56 clr.w (word_FFFF9E14).w move.b #1,(byte_FFFF9E5F).w loc_7EB56: ; CODE XREF: OS3:0007EB2Ej ; OS3:0007EB34j ... move.w (word_FFFF9E20).w,d3 cmpi.w #$A67,d3 bcc.s loc_7EB66 mulu.w d6,d3 lsr.l #2,d3 bra.s loc_7EB6A ; --------------------------------------------------------------------------- loc_7EB66: ; CODE XREF: OS3:0007EB5Ej move.w #$D00,d3 loc_7EB6A: ; CODE XREF: OS3:0007EB64j movea.l #$A732,a2 tblu.w (a2),d3 cmp.w d3,d4 bcs.w loc_7EC08 tst.b (byte_FFFF9E60).w bne.w loc_7EC08 move.w (word_FFFF9E68).w,d4 move.w (word_FFFF9E64).w,d3 cmp.w d4,d3 bls.s loc_7EBAC sub.w d4,d3 move.w d3,(word_FFFF9E64).w move.w (word_FFFF9E16).w,d3 sub.w (word_FFFF9E68).w,d3 bcc.s loc_7EBA0 clr.w d3 loc_7EBA0: ; CODE XREF: OS3:0007EB9Cj move.w d3,(word_FFFF9E16).w jsr sub_7F000 bra.s loc_7EC08 ; --------------------------------------------------------------------------- loc_7EBAC: ; CODE XREF: OS3:0007EB8Cj move.w (word_FFFF9E16).w,d3 sub.w (word_FFFF9E64).w,d3 bcc.s loc_7EBB8 clr.w d3 loc_7EBB8: ; CODE XREF: OS3:0007EBB4j move.w d3,(word_FFFF9E16).w clr.w (word_FFFF9E64).w clr.w (word_FFFF9E66).w jsr sub_7F000 tst.w (word_FFFF9E16).w bls.s loc_7EC02 clr.l d3 move.w (word_FFFF9E6A).w,d3 asl.l #8,d3 asl.l #4,d3 divu.w (word_FFFF9E16).w,d3 bvs.s loc_7EBE6 cmpi.w #$2000,d3 bls.s loc_7EBEA loc_7EBE6: ; CODE XREF: OS3:0007EBDEj move.w #$2000,d3 loc_7EBEA: ; CODE XREF: OS3:0007EBE4j muls.w (word_FFFF9E1E).w,d3 cmpi.l #$7FFFFFFF,d3 bhi.s loc_7EBFC lsr.l #8,d3 lsr.l #4,d3 bra.s loc_7EBFE ; --------------------------------------------------------------------------- loc_7EBFC: ; CODE XREF: OS3:0007EBF4j clr.w d3 loc_7EBFE: ; CODE XREF: OS3:0007EBFAj move.w d3,(word_FFFF9E20).w loc_7EC02: ; CODE XREF: OS3:0007EBCEj move.b #1,(byte_FFFF9E60).w loc_7EC08: ; CODE XREF: OS3:0007EB76j ; OS3:0007EB7Ej ... movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9E5A).w,d3 add.w $A(a2),d3 bcc.s loc_7EC1A move.w #$FFFF,d3 loc_7EC1A: ; CODE XREF: OS3:0007EC14j move.w d3,(word_FFFF9E5A).w bra.w loc_7ED2E ; --------------------------------------------------------------------------- loc_7EC22: ; DATA XREF: OS4:00089AB2o move.w (word_FFFF9E16).w,(word_FFFF9E6C).w move.w (word_FFFF9E2E).w,d3 ble.w loc_7ECD0 cmpi.w #$1400,(word_FFFF9E52).w beq.w loc_7ECD0 tst.b (byte_FFFF94E5).w bne.s loc_7EC50 move.w (word_FFFF9E1E).w,d4 cmp.w (word_FFFF9E54).w,d4 beq.s loc_7EC50 tst.b (byte_FFFFA6FB).w bne.s loc_7EC56 loc_7EC50: ; CODE XREF: OS3:0007EC3Ej ; OS3:0007EC48j tst.b (byte_FFFFA6FB).w bne.s loc_7ECCA loc_7EC56: ; CODE XREF: OS3:0007EC4Ej tst.w d3 beq.s loc_7EC98 move.w (word_FFFF9E1E).w,d2 ext.l d2 asl.l #8,d2 asl.l #4,d2 divs.w d3,d2 bvc.s loc_7EC70 swap d2 eor.w d3,d2 bmi.s loc_7EC86 bra.s loc_7EC80 ; --------------------------------------------------------------------------- loc_7EC70: ; CODE XREF: OS3:0007EC66j cmpi.w #$7FFF,d2 bhi.s loc_7EC86 cmpi.w #$1000,d2 bhi.s loc_7EC80 move.w d2,d4 bra.s loc_7EC88 ; --------------------------------------------------------------------------- loc_7EC80: ; CODE XREF: OS3:0007EC6Ej ; OS3:0007EC7Aj move.w #$1000,d4 bra.s loc_7EC88 ; --------------------------------------------------------------------------- loc_7EC86: ; CODE XREF: OS3:0007EC6Cj ; OS3:0007EC74j clr.w d4 loc_7EC88: ; CODE XREF: OS3:0007EC7Ej ; OS3:0007EC84j mulu.w (word_FFFFA0DE).w,d4 divu.w #$200,d4 bvc.s loc_7EC9A move.w #$FFFF,d4 bra.s loc_7EC9A ; --------------------------------------------------------------------------- loc_7EC98: ; CODE XREF: OS3:0007EC58j clr.w d4 loc_7EC9A: ; CODE XREF: OS3:0007EC90j ; OS3:0007EC96j move.w #$1400,d3 sub.w (word_FFFF9E52).w,d3 asl.w #2,d3 andi.l #$FFFF,d3 divu.w d6,d3 bne.s loc_7ECB4 clr.w (word_FFFF9E16).w bra.s loc_7ECCA ; --------------------------------------------------------------------------- loc_7ECB4: ; CODE XREF: OS3:0007ECACj andi.l #$FFFF,d4 asl.l #8,d4 asl.l #4,d4 divu.w d3,d4 bvc.s loc_7ECC6 move.w #$FFFF,d4 loc_7ECC6: ; CODE XREF: OS3:0007ECC0j move.w d4,(word_FFFF9E16).w loc_7ECCA: ; CODE XREF: OS3:0007EC54j ; OS3:0007ECB2j move.w (word_FFFF9E1E).w,(word_FFFF9E54).w loc_7ECD0: ; CODE XREF: OS3:0007EC2Cj ; OS3:0007EC36j clr.l d5 move.w (word_FFFF9E6C).w,d5 clr.l d3 move.w (word_FFFF9E16).w,d3 sub.l d5,d3 cmpi.l #$FFFF8000,d3 blt.s loc_7ECF4 cmpi.l #$7FFF,d3 ble.s loc_7ECF8 move.w #$7FFF,d3 bra.s loc_7ECF8 ; --------------------------------------------------------------------------- loc_7ECF4: ; CODE XREF: OS3:0007ECE4j move.w #$8000,d3 loc_7ECF8: ; CODE XREF: OS3:0007ECECj ; OS3:0007ECF2j move.w d3,(word_FFFF9E6E).w cmp.w (ENG_TORQUE_KE_AC_FLOW_OFFSET_DELTA).l,d3 ; Any delta change in AC Flow Offset that is less than this amount, the variation correction cells will be reset. ; Grams per Second bge.s loc_7ED24 tst.b (byte_FFFFA93A).w bne.s loc_7ED24 clr.w (word_FFFF94E2).w clr.w (word_FFFF94E0).w moveq #1,d2 move.b d2,(byte_FFFF94E9).w clr.w (IdleIntegralAccumulator_TBD2).w clr.w (IdleIntegralTerm_Clamped?).w move.b d2,(byte_FFFF94E8).w loc_7ED24: ; CODE XREF: OS3:0007ED02j ; OS3:0007ED08j jsr sub_7F000 clr.w (word_FFFF9E14).w loc_7ED2E: ; CODE XREF: OS3:0007EC1Ej move.w #$1000,(word_FFFF9E50).w bra.w loc_7EE82 ; --------------------------------------------------------------------------- loc_7ED38: ; DATA XREF: OS4:00089AB6o tst.b (ENG_TORQUE_KE_AC_BUMP_SPARK_ENABLE).l ; Enables spark for AC Bump logic when TRUE. ; BOOLEAN beq.s loc_7ED80 tst.b (ENG_TORQUE_KE_AC_BUMP_SPARK_IDLE_OFF).l ; When TRUE, bump spark will not be calculated at idle. ; BOOLEAN beq.s loc_7ED4E tst.b (byte_FFFF94D0).w beq.s loc_7ED80 loc_7ED4E: ; CODE XREF: OS3:0007ED46j tst.b (byte_FFFF9E5F).w bne.s loc_7ED8A move.w (word_FFFF9E5A).w,d3 cmp.w (word_FFFF9E62).w,d3 bcs.s loc_7ED8A move.w (word_FFFF9E14).w,d3 add.w (ENG_TORQUE_KE_AC_BUMP_TORQUE_RAMP_OUT).l,d3 ; The rate at which the torque is ramped out when the AC compressorclutch disengages. ; Foot Pounds bcc.s loc_7ED6E move.w #$FFFF,d3 loc_7ED6E: ; CODE XREF: OS3:0007ED68j move.w d3,(word_FFFF9E14).w move.w (word_FFFF9E20).w,d4 cmp.w d4,d3 bcs.s loc_7ED8A move.w d4,(word_FFFF9E14).w bra.s loc_7ED84 ; --------------------------------------------------------------------------- loc_7ED80: ; CODE XREF: OS3:0007ED3Ej ; OS3:0007ED4Cj clr.w (word_FFFF9E14).w loc_7ED84: ; CODE XREF: OS3:0007ED7Ej move.b #1,(byte_FFFF9E5F).w loc_7ED8A: ; CODE XREF: OS3:0007ED52j ; OS3:0007ED5Cj ... tst.b (byte_FFFF9E60).w bne.w loc_7EE1A move.w (word_FFFF9E5A).w,d3 cmp.w (ENG_TORQUE_KE_HLD_AC_AIR_OFF).l,d3 ; Time to hold AC_Torque contribution to CIA beforeramping down to CIA without AC Torque ; Seconds bcs.s loc_7EE1A clr.w (word_FFFF9E16).w move.b #1,(byte_FFFF9E60).w tst.w (EngineRPM_PID_000C___).w bls.s loc_7EE14 move.w (word_FFFF9E20).w,d3 cmpi.w #$A67,d3 bcc.s loc_7EDBE mulu.w d6,d3 lsr.l #2,d3 bra.s loc_7EDC2 ; --------------------------------------------------------------------------- loc_7EDBE: ; CODE XREF: OS3:0007EDB6j move.w #$D00,d3 loc_7EDC2: ; CODE XREF: OS3:0007EDBCj movea.l #$9B2A,a2 tblu.b (a2),d3 clr.l d2 move.b d3,d2 clr.w d0 move.b (ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l,d0 ; Number of cylinders for this engine application. ; SHORTCARD moveq #$78,d3 ; 'x' divu.w d0,d3 bvs.s loc_7EE02 andi.l #$FFFF,d3 asl.l #7,d3 divu.w #$19,d3 bvs.s loc_7EE02 andi.l #$FFFF,d3 asl.l #8,d3 asl.l #4,d3 divu.w (EngineRPM_PID_000C___).w,d3 bvs.s loc_7EE02 cmpi.w #$1000,d3 bls.s loc_7EE06 loc_7EE02: ; CODE XREF: OS3:0007EDDCj ; OS3:0007EDEAj ... move.w #$1000,d3 loc_7EE06: ; CODE XREF: OS3:0007EE00j mulu.w d3,d2 move.l d6,d3 mulu.l d2,d3 lsr.l #7,d3 move.w d3,(word_FFFF9E58).w loc_7EE14: ; CODE XREF: OS3:0007EDACj move.w (GlobalClock).w,(word_FFFF9E56).w loc_7EE1A: ; CODE XREF: OS3:0007ED8Ej ; OS3:0007ED9Cj movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFF9E5A).w,d3 add.w $A(a2),d3 bcc.s loc_7EE2C move.w #$FFFF,d3 loc_7EE2C: ; CODE XREF: OS3:0007EE26j move.w d3,(word_FFFF9E5A).w bra.s loc_7EE82 ; --------------------------------------------------------------------------- loc_7EE32: ; DATA XREF: OS4:00089ABAo move.w (word_FFFF9E58).w,d0 movea.l #unk_FF9E56,a0 jsr sub_276D4 tst.b d0 beq.s loc_7EE56 move.w (word_FFFF9E50).w,d3 sub.w (word_FFFF94C4).w,d3 bcc.s loc_7EE52 clr.w d3 loc_7EE52: ; CODE XREF: OS3:0007EE4Ej move.w d3,(word_FFFF9E50).w loc_7EE56: ; CODE XREF: OS3:0007EE44j tst.b (ENG_TORQUE_KE_AC_BUMP_SPARK_ENABLE).l ; Enables spark for AC Bump logic when TRUE. ; BOOLEAN beq.s loc_7EE7E tst.b (ENG_TORQUE_KE_AC_BUMP_SPARK_IDLE_OFF).l ; When TRUE, bump spark will not be calculated at idle. ; BOOLEAN beq.s loc_7EE6C tst.b (byte_FFFF94D0).w beq.s loc_7EE7E loc_7EE6C: ; CODE XREF: OS3:0007EE64j move.w (word_FFFF9E20).w,d3 mulu.w (word_FFFF9E50).w,d3 lsr.l #8,d3 lsr.l #4,d3 move.w d3,(word_FFFF9E14).w bra.s loc_7EE82 ; --------------------------------------------------------------------------- loc_7EE7E: ; CODE XREF: OS3:0007EE5Cj ; OS3:0007EE6Aj clr.w (word_FFFF9E14).w loc_7EE82: ; CODE XREF: OS3:0007E94Cj ; OS3:0007EB18j ... tst.b (byte_FFFFA59F).w beq.s loc_7EE90 clr.w (word_FFFF9E14).w clr.w (word_FFFF9E16).w loc_7EE90: ; CODE XREF: OS3:0007EE86j tst.w (word_FFFF9E14).w bne.s loc_7EE9E move.w (GlobalClock).w,(word_FFFF9E5C).w bra.s loc_7EEBC ; --------------------------------------------------------------------------- loc_7EE9E: ; CODE XREF: OS3:0007EE94j move.w (word_FFFF9E5C).w,-4(a6) move.w (GlobalClock).w,d5 sub.w -4(a6),d5 cmp.w (ENG_TORQUE_KE_AC_BUMP_SPARK_DURATION_LIMIT).l,d5 ; Any non-zero AC_Bump_Torque value that persists for this amountof time will be set to zero. ; Seconds bcs.s loc_7EEBC clr.w (word_FFFF9E14).w clr.b (byte_FFFF9E1C).w loc_7EEBC: ; CODE XREF: OS3:0007EE9Cj ; OS3:0007EEB2j move.w (word_FFFF9E30).w,d5 ext.l d5 move.w (word_FFFF9E22).w,d4 ext.l d4 add.l d5,d4 clr.l d5 move.w (word_FFFF9E14).w,d5 sub.l d5,d4 cmpi.l #$FFFF8000,d4 blt.s loc_7EEEC cmpi.l #$7FFF,d4 bgt.s loc_7EEE6 move.w d4,d5 bra.s loc_7EEF0 ; --------------------------------------------------------------------------- loc_7EEE6: ; CODE XREF: OS3:0007EEE0j move.w #$7FFF,d5 bra.s loc_7EEF0 ; --------------------------------------------------------------------------- loc_7EEEC: ; CODE XREF: OS3:0007EED8j move.w #$8000,d5 loc_7EEF0: ; CODE XREF: OS3:0007EEE4j ; OS3:0007EEEAj tst.w d5 bge.s loc_7EEF6 clr.w d5 loc_7EEF6: ; CODE XREF: OS3:0007EEF2j move.w #$1000,d0 move.w (word_FFFF9E2E).w,d1 ext.l d5 asl.l #8,d5 asl.l #4,d5 divs.w d1,d5 bvc.s loc_7EF10 swap d5 eor.w d1,d5 bmi.s loc_7EF20 bra.s loc_7EF1C ; --------------------------------------------------------------------------- loc_7EF10: ; CODE XREF: OS3:0007EF06j cmpi.w #$7FFF,d5 bhi.s loc_7EF20 cmpi.w #$1000,d5 bls.s loc_7EF22 loc_7EF1C: ; CODE XREF: OS3:0007EF0Ej move.l d0,d5 bra.s loc_7EF22 ; --------------------------------------------------------------------------- loc_7EF20: ; CODE XREF: OS3:0007EF0Cj ; OS3:0007EF14j clr.w d5 loc_7EF22: ; CODE XREF: OS3:0007EF1Aj ; OS3:0007EF1Ej sub.w d5,d0 mulu.w d6,d0 lsr.w #2,d0 asl.w #3,d0 andi.l #$FFFF,d0 divu.w d6,d0 move.w (word_FFFFAEF8).w,d1 moveq #$21,d2 ; '!' movea.l #TRACTION_KA_SPARK_RETARD_FOR_TORQUE_LOSS,a0 ; MBT spark retard as a function of a given torque loss value ; Degrees jsr sub_2696E move.w d0,(word_FFFF9E10).w move.w (word_FFFFB298).w,d1 cmpi.w #$1000,d1 bcc.s loc_7EF56 lsr.w #1,d1 bra.s loc_7EF5A ; --------------------------------------------------------------------------- loc_7EF56: ; CODE XREF: OS3:0007EF50j move.w #$800,d1 loc_7EF5A: ; CODE XREF: OS3:0007EF54j move.w (AnotherRpmValue).w,d0 moveq #$15,d2 movea.l #$9B48,a0 jsr sub_2696E move.w d0,d3 cmp.w (word_FFFF9E10).w,d3 bge.s loc_7EF78 move.w d3,(word_FFFF9E10).w loc_7EF78: ; CODE XREF: OS3:0007EF72j jsr sub_364E2 move.w (word_FFFF94C0).w,d0 cmpi.w #$7FFF,d0 bls.s loc_7EF8A clr.w d0 loc_7EF8A: ; CODE XREF: OS3:0007EF86j jsr sub_35D1C move.w d0,d3 mulu.w (IAC_AIRFLOW_KE_IDLE_AREA_SCALAR).l,d3 ; Conversion factor to convert to percent WOT from an effective throttle area in millimeters squared. ; Percent_Per_mm_Squared divu.w #$A000,d3 bvs.s loc_7EFA4 cmpi.w #$1400,d3 bls.s loc_7EFA8 loc_7EFA4: ; CODE XREF: OS3:0007EF9Cj move.w #$1400,d3 loc_7EFA8: ; CODE XREF: OS3:0007EFA2j move.w (ENG_TORQUE_KE_MAXIMUM_AC_BUMP_THROTTLE_AREA).l,d4 ; Used to clip and hold the ac bump throttle area for ETC. ; Percent cmp.w d4,d3 bls.s loc_7EFB8 move.w d4,(word_FFFF9E12).w bra.s loc_7EFBC ; --------------------------------------------------------------------------- loc_7EFB8: ; CODE XREF: OS3:0007EFB0j move.w d3,(word_FFFF9E12).w loc_7EFBC: ; CODE XREF: OS3:0007EFB6j movem.l (sp)+,d0-d2/d6-a1/a4-a5 unlk a6 rts ; =============== S U B R O U T I N E ======================================= sub_7EFC4: ; CODE XREF: sub_4D13A+Cp move.w (word_FFFF9E2C).w,d0 add.w d0,d0 andi.l #$FFFF,d0 divu.w #5,d0 move.w #$800,d3 sub.w d0,d3 move.w d3,d0 muls.w (word_FFFF9E3C).w,d0 bpl.s loc_7EFE8 addi.l #$7FF,d0 loc_7EFE8: ; CODE XREF: sub_7EFC4+1Cj asr.l #8,d0 asr.l #3,d0 sub.w (word_FFFF9E30).w,d0 bvc.s locret_7EFFE bpl.s loc_7EFFA move.w #$7FFF,d0 bra.s locret_7EFFE ; --------------------------------------------------------------------------- loc_7EFFA: ; CODE XREF: sub_7EFC4+2Ej move.w #$8000,d0 locret_7EFFE: ; CODE XREF: sub_7EFC4+2Cj ; sub_7EFC4+34j rts ; End of function sub_7EFC4 ; =============== S U B R O U T I N E ======================================= sub_7F000: ; CODE XREF: OS3:0007E8B8p ; OS3:loc_7E9F0p ... movem.l d0-d1,-(sp) move.w (IdleTrimWithAC).w,d5 ext.l d5 clr.l d3 move.w (word_FFFF9E16).w,d3 add.l d5,d3 move.b (byte_FFFF94CA).w,d4 cmpi.b #$13,d4 bhi.w loc_7F102 cmpi.b #5,d4 beq.s loc_7F09A cmpi.b #3,d4 beq.s loc_7F09A cmpi.b #$11,d4 bls.w loc_7F102 moveq #1,d0 cmp.b (byte_FFFF9E1C).w,d0 bne.s loc_7F06A move.l d3,d1 neg.l d1 move.w (IdleIntegralAccumulator_TBD2).w,d4 ext.l d4 cmp.l d1,d4 bge.s loc_7F06A tst.l d3 blt.s loc_7F06A tst.b (byte_FFFFA93A).w bne.s loc_7F06A clr.w (word_FFFF94E2).w clr.w (word_FFFF94E0).w move.b d0,(byte_FFFF94E9).w clr.w (IdleIntegralAccumulator_TBD2).w clr.w (IdleIntegralTerm_Clamped?).w move.b d0,(byte_FFFF94E8).w loc_7F06A: ; CODE XREF: sub_7F000+38j ; sub_7F000+46j ... move.w (IdleIntegralAccumulator_TBD2).w,d4 sub.w (IdleIntegralTerm_Clamped?).w,d4 bvc.s loc_7F080 bpl.s loc_7F07C move.w #$7FFF,d4 bra.s loc_7F080 ; --------------------------------------------------------------------------- loc_7F07C: ; CODE XREF: sub_7F000+74j move.w #$8000,d4 loc_7F080: ; CODE XREF: sub_7F000+72j ; sub_7F000+7Aj move.w d4,(word_FFFF9E1A).w tst.b (byte_FFFF9E70).w bne.s loc_7F094 move.b d0,(byte_FFFF9E70).w move.w (IdleIntegralTerm_Clamped?).w,(word_FFFF9E72).w loc_7F094: ; CODE XREF: sub_7F000+88j move.w (IdleIntegralAccumulator_TBD2).w,d4 bra.s loc_7F10C ; --------------------------------------------------------------------------- loc_7F09A: ; CODE XREF: sub_7F000+22j ; sub_7F000+28j moveq #1,d0 cmp.b (byte_FFFF9E1C).w,d0 bne.s loc_7F0D2 move.l d3,d1 neg.l d1 move.w (word_FFFF94E2).w,d4 ext.l d4 cmp.l d1,d4 bge.s loc_7F0D2 tst.l d3 blt.s loc_7F0D2 tst.b (byte_FFFFA93A).w bne.s loc_7F0D2 clr.w (word_FFFF94E2).w clr.w (word_FFFF94E0).w move.b d0,(byte_FFFF94E9).w clr.w (IdleIntegralAccumulator_TBD2).w clr.w (IdleIntegralTerm_Clamped?).w move.b d0,(byte_FFFF94E8).w loc_7F0D2: ; CODE XREF: sub_7F000+A0j ; sub_7F000+AEj ... move.w (word_FFFF94E2).w,d4 sub.w (word_FFFF94E0).w,d4 bvc.s loc_7F0E8 bpl.s loc_7F0E4 move.w #$7FFF,d4 bra.s loc_7F0E8 ; --------------------------------------------------------------------------- loc_7F0E4: ; CODE XREF: sub_7F000+DCj move.w #$8000,d4 loc_7F0E8: ; CODE XREF: sub_7F000+DAj ; sub_7F000+E2j move.w d4,(word_FFFF9E1A).w tst.b (byte_FFFF9E70).w bne.s loc_7F0FC move.b d0,(byte_FFFF9E70).w move.w (word_FFFF94E0).w,(word_FFFF9E72).w loc_7F0FC: ; CODE XREF: sub_7F000+F0j move.w (word_FFFF94E2).w,d4 bra.s loc_7F10C ; --------------------------------------------------------------------------- loc_7F102: ; CODE XREF: sub_7F000+1Aj ; sub_7F000+2Ej clr.w (word_FFFF9E1A).w clr.w (word_FFFF9E72).w clr.w d4 loc_7F10C: ; CODE XREF: sub_7F000+98j ; sub_7F000+100j move.w (word_FFFF9E72).w,d5 ext.l d5 add.l d3,d5 bvc.s loc_7F11A bmi.s loc_7F126 bra.s loc_7F12C ; --------------------------------------------------------------------------- loc_7F11A: ; CODE XREF: sub_7F000+114j tst.l d5 blt.s loc_7F12C cmpi.l #$FFFF,d5 bls.s loc_7F12E loc_7F126: ; CODE XREF: sub_7F000+116j move.w #$FFFF,d5 bra.s loc_7F12E ; --------------------------------------------------------------------------- loc_7F12C: ; CODE XREF: sub_7F000+118j ; sub_7F000+11Cj clr.w d5 loc_7F12E: ; CODE XREF: sub_7F000+124j ; sub_7F000+12Aj move.w d5,(word_FFFF9E18).w ext.l d4 add.l d3,d4 bvc.s loc_7F13C bmi.s loc_7F148 bra.s loc_7F14E ; --------------------------------------------------------------------------- loc_7F13C: ; CODE XREF: sub_7F000+136j tst.l d4 blt.s loc_7F14E cmpi.l #$FFFF,d4 bls.s loc_7F150 loc_7F148: ; CODE XREF: sub_7F000+138j move.w #$FFFF,d4 bra.s loc_7F150 ; --------------------------------------------------------------------------- loc_7F14E: ; CODE XREF: sub_7F000+13Aj ; sub_7F000+13Ej clr.w d4 loc_7F150: ; CODE XREF: sub_7F000+146j ; sub_7F000+14Cj move.w d4,(word_FFFF9E6A).w movem.l (sp)+,d0-d1 rts ; End of function sub_7F000 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7F15A: ; CODE XREF: OS1:00028CA8p link a6,#-4 movem.l d1-d2/d6-a1/a4,-(sp) clr.l d3 move.b d0,d3 movea.l off_89C5C(d3.w*4),a2 jmp (a2) ; End of function sub_7F15A ; --------------------------------------------------------------------------- loc_7F170: ; DATA XREF: OS4:00089C64o clr.b (byte_FFFF9E1C).w cmpi.b #2,(VEH_SYS_KE_PLATFORM).l ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type bne.s loc_7F184 move.w #$1400,d3 bra.s loc_7F188 ; --------------------------------------------------------------------------- loc_7F184: ; CODE XREF: OS3:0007F17Cj move.w #$1200,d3 loc_7F188: ; CODE XREF: OS3:0007F182j sub.w (ENG_TORQUE_KE_TCS_DEL_TORQ_DUTY_CYCLE_LOW).l,d3 ; Lowest duty cycle broadcast on the Delivered Torque PWM for normal conditions. ; Percent bcc.s loc_7F192 clr.w d3 loc_7F192: ; CODE XREF: OS3:0007F18Ej andi.l #$FFFF,d3 asl.l #8,d3 asl.l #3,d3 move.w #$800,d4 sub.w (ENG_TORQUE_KE_MIN_TORQUE_NORM).l,d4 ; Used to calculate torque PWM minimum ; Fraction -1_to_1 mulu.w #5,d4 lsr.w #1,d4 divu.w d4,d3 bvs.s loc_7F1B6 cmpi.w #$1000,d3 bls.s loc_7F1BA loc_7F1B6: ; CODE XREF: OS3:0007F1AEj move.w #$1000,d3 loc_7F1BA: ; CODE XREF: OS3:0007F1B4j move.w d3,(word_FFFF9E74).w movea.w (EngineRPM_PID_000C___).w,a2 move.w a2,(word_FFFF9E76).w move.w a2,(word_FFFF9E78).w move.w (word_FFFF9E76).w,(word_FFFF9E7A).w move.w (word_FFFF9E76).w,(word_FFFF9E7C).w lea (ENG_TORQUE_KA_INDICATED_MBT_TORQUE_EFF_E0).l,a0 ; Thermal Efficiency factor used in calculating Indicated_MBT_Torque with E0 fuel. ; NONE 0-1 movea.w (word_FFFF9E44).w,a1 move.l a1,d0 movea.w (word_FFFF9E42).w,a4 move.l a4,d1 moveq #$2A,d2 ; '*' jsr (sub_16D6).l move.w d0,-4(a6) lea (ENG_TORQUE_KA_INDICATED_MBT_TORQUE_EFF_E0).l,a0 ; Thermal Efficiency factor used in calculating Indicated_MBT_Torque with E0 fuel. ; NONE 0-1 move.l a1,d0 move.w #$400,d1 moveq #$2A,d2 ; '*' jsr (sub_16D6).l move.w d0,-2(a6) lea (ENG_TORQUE_KA_INDICATED_MBT_TORQUE_EFF_E80).l,a0 ; Thermal Efficiency factor used in calculating Indicated_MBT_Torque with E80 fuel. ; NONE 0-1 move.l a1,d0 move.l a4,d1 moveq #$2A,d2 ; '*' jsr (sub_16D6).l move.w d0,d7 lea (ENG_TORQUE_KA_INDICATED_MBT_TORQUE_EFF_E80).l,a0 ; Thermal Efficiency factor used in calculating Indicated_MBT_Torque with E80 fuel. ; NONE 0-1 move.l a1,d0 move.w #$400,d1 moveq #$2A,d2 ; '*' jsr (sub_16D6).l move.w d0,d3 move.w -4(a6),d4 move.l d7,d5 sub.w -4(a6),d5 bcc.s loc_7F244 clr.w d5 loc_7F244: ; CODE XREF: OS3:0007F240j mulu.w (word_FFFF9FD8).w,d5 lsr.l #8,d5 lsr.l #4,d5 add.w d5,d4 move.w d4,(word_FFFF9E34).w move.w -2(a6),d4 sub.w -2(a6),d3 bra.w loc_7F348 ; --------------------------------------------------------------------------- loc_7F25E: ; DATA XREF: OS4:off_89C5Co ; OS4:00089C68o ... clr.b (4294942236).w clr.w (word_FFFF9E14).w clr.b (byte_FFFF9E5F).w clr.w (word_FFFF9E20).w clr.w (word_FFFF9E52).w clr.w (word_FFFF9E1A).w clr.w (word_FFFF9E54).w clr.b (byte_FFFF9E5E).w clr.w (word_FFFF9E3C).w clr.w (word_FFFF9E2E).w clr.w (word_FFFF9E22).w clr.w (word_FFFF9E32).w clr.w (word_FFFF9E28).w clr.w (word_FFFF9E2A).w clr.w (word_FFFF9E2C).w clr.w (word_FFFF9E30).w clr.w (word_FFFF9E26).w clr.w (word_FFFF9E24).w clr.b (byte_FFFF9E38).w clr.b (byte_FFFF9E39).w clr.b (byte_FFFF94E9).w clr.b (byte_FFFF94E8).w cmpi.b #3,d0 beq.s loc_7F2C4 cmpi.b #6,d0 bne.w loc_7F364 loc_7F2C4: ; CODE XREF: OS3:0007F2BAj lea (ENG_TORQUE_KA_INDICATED_MBT_TORQUE_EFF_E0).l,a0 ; Thermal Efficiency factor used in calculating Indicated_MBT_Torque with E0 fuel. ; NONE 0-1 movea.w (word_FFFF9E44).w,a1 move.l a1,d0 movea.w (word_FFFF9E42).w,a4 move.l a4,d1 moveq #$2A,d2 ; '*' jsr (sub_16D6).l move.w d0,-4(a6) lea (ENG_TORQUE_KA_INDICATED_MBT_TORQUE_EFF_E0).l,a0 ; Thermal Efficiency factor used in calculating Indicated_MBT_Torque with E0 fuel. ; NONE 0-1 move.l a1,d0 move.w #$400,d1 moveq #$2A,d2 ; '*' jsr (sub_16D6).l move.w d0,-2(a6) lea (ENG_TORQUE_KA_INDICATED_MBT_TORQUE_EFF_E80).l,a0 ; Thermal Efficiency factor used in calculating Indicated_MBT_Torque with E80 fuel. ; NONE 0-1 move.l a1,d0 move.l a4,d1 moveq #$2A,d2 ; '*' jsr (sub_16D6).l move.w d0,d6 lea (ENG_TORQUE_KA_INDICATED_MBT_TORQUE_EFF_E80).l,a0 ; Thermal Efficiency factor used in calculating Indicated_MBT_Torque with E80 fuel. ; NONE 0-1 move.l a1,d0 move.w #$400,d1 moveq #$2A,d2 ; '*' jsr (sub_16D6).l move.w d0,d3 move.w -4(a6),d4 move.l d6,d5 sub.w -4(a6),d5 bcc.s loc_7F332 clr.w d5 loc_7F332: ; CODE XREF: OS3:0007F32Ej mulu.w (word_FFFF9FD8).w,d5 lsr.l #8,d5 lsr.l #4,d5 add.w d5,d4 move.w d4,(word_FFFF9E34).w move.w -2(a6),d4 sub.w -2(a6),d3 loc_7F348: ; CODE XREF: OS3:0007F25Aj bcc.s loc_7F34C clr.w d3 loc_7F34C: ; CODE XREF: OS3:loc_7F348j mulu.w (word_FFFF9FD8).w,d3 lsr.l #8,d3 lsr.l #4,d3 add.w d3,d4 move.w d4,(word_FFFF9E36).w bra.s loc_7F364 ; --------------------------------------------------------------------------- loc_7F35C: ; DATA XREF: OS4:00089C60o ; OS4:00089C6Co ... clr.w (4294942234).w clr.b (byte_FFFF9E39).w loc_7F364: ; CODE XREF: OS3:0007F2C0j ; OS3:0007F35Aj ; DATA XREF: ... movem.l (sp)+,d1-d2/d6-a1/a4 unlk a6 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7F36C: ; CODE XREF: DoLoopB:loc_2A12Cp ; DoLoopB+36Ep var_4 = -4 link a6,#-4 movem.l d0-d2/a0-a1,-(sp) move.b (byte_FFFF9BA9).w,d3 bne.w loc_7F4A2 btst #4,(byte_FFFF9B2E).w beq.s loc_7F3F6 cmpi.b #7,(byte_FFFF9E95).w bne.s loc_7F3F6 btst #5,(byte_FFFF9B2E).w beq.s loc_7F39E move.w (F_TANK_KE_LOW_VACUUM_THRESHOLD).l,(word_FFFF9BA2).w ; Disable the Tank Protection Mode when the tank vacuum is less negative than this value. ; Inches H2O bra.s loc_7F3A6 ; --------------------------------------------------------------------------- loc_7F39E: ; CODE XREF: sub_7F36C+26j move.w (F_TANK_KE_HIGH_VACUUM_THRESHOLD).l,(word_FFFF9BA2).w ; Enable the Tank Protection Mode when the tank vacuum is more negative than this value. ; Inches H2O loc_7F3A6: ; CODE XREF: sub_7F36C+30j move.b (byte_FFFF9B62).w,d3 addq.b #1,d3 bcc.s loc_7F3B2 move.b #$FF,d3 loc_7F3B2: ; CODE XREF: sub_7F36C+40j move.b d3,(byte_FFFF9B62).w move.w (word_FFFF9B4A).w,d4 cmp.w (word_FFFF9BA2).w,d4 ble.s loc_7F3E0 move.b (byte_FFFF9B60).w,d3 addq.b #1,d3 bcc.s loc_7F3CC move.b #$FF,d3 loc_7F3CC: ; CODE XREF: sub_7F36C+5Aj move.b d3,(byte_FFFF9B60).w cmp.b (F_TANK_KE_EXCESSIVE_VACUUM_COUNT_LIMIT).l,d3 ; Enable the Tank Protection Mode when the number OF excessive tank vacuum samples exceeds this value. ; count bls.s loc_7F3F6 bset #5,(byte_FFFF9B2E).w bra.s loc_7F3EE ; --------------------------------------------------------------------------- loc_7F3E0: ; CODE XREF: sub_7F36C+52j cmp.b (F_TANK_KE_NORMAL_VACUUM_COUNT_LIMIT).l,d3 ; Disable the Tank Protection Mode when the total number OF tank vacuum samples exceeds this value. ; count bls.s loc_7F3F6 bclr #5,(byte_FFFF9B2E).w loc_7F3EE: ; CODE XREF: sub_7F36C+72j clr.b (byte_FFFF9B60).w clr.b (byte_FFFF9B62).w loc_7F3F6: ; CODE XREF: sub_7F36C+16j ; sub_7F36C+1Ej ... jsr sub_7FEA2 jsr sub_8003E movea.l (dword_FFFF9B38).w,a2 move.w (word_FFFF9B4E).w,d1 movea.w (F_TANK_KE_FUEL_SLOSH_TIME_CONSTANT).l,a1 ; Filter coefficient for both primary and secondary fuel levels used in slosh calculations. ; Seconds move.l a1,d0 move.l a2,var_4(a6) lea var_4+2(a6),a0 move.w var_4(a6),d2 jsr sub_265BA move.w d0,var_4(a6) move.l var_4(a6),(dword_FFFF9B38).w movea.l (dword_FFFF9B3C).w,a2 move.w (word_FFFF9B4C).w,d1 move.l a1,d0 move.l a2,var_4(a6) lea var_4+2(a6),a0 move.w var_4(a6),d2 jsr sub_265BA move.w d0,var_4(a6) move.l var_4(a6),(dword_FFFF9B3C).w cmpi.b #3,(byte_FFFF9E95).w beq.s loc_7F46C btst #1,(byte_FFFF8926).w bne.s loc_7F46C btst #1,(byte_FFFF8928).w beq.s loc_7F476 loc_7F46C: ; CODE XREF: sub_7F36C+EEj ; sub_7F36C+F6j move.b (F_TANK_KE_FUEL_LEVEL_PULSE_OFF_CTS_EVP).l,(byte_FFFF9B58).w bra.s loc_7F498 ; --------------------------------------------------------------------------- loc_7F476: ; CODE XREF: sub_7F36C+FEj move.w (word_FFFF8240).w,d3 cmp.w (F_TANK_KE_FUEL_LEVEL_PULSE_ETHANOL_HI).l,d3 bls.s loc_7F48C move.b (F_TANK_KE_FUEL_LEVEL_PULSE_OFF_CTS_ETH).l,(byte_FFFF9B58).w bra.s loc_7F498 ; --------------------------------------------------------------------------- loc_7F48C: ; CODE XREF: sub_7F36C+114j cmp.w (F_TANK_KE_FUEL_LEVEL_PULSE_ETHANOL_LO).l,d3 bhi.s loc_7F498 clr.b (byte_FFFF9B58).w loc_7F498: ; CODE XREF: sub_7F36C+108j ; sub_7F36C+11Ej ... tst.b (byte_FFFF9B58).w beq.s loc_7F4B4 clr.b d1 bra.s loc_7F4AA ; --------------------------------------------------------------------------- loc_7F4A2: ; CODE XREF: sub_7F36C+Cj cmp.b (byte_FFFF9B58).w,d3 bne.s loc_7F4B4 moveq #1,d1 loc_7F4AA: ; CODE XREF: sub_7F36C+134j move.w #$A3,d0 ; '?' jsr (sub_1122).l loc_7F4B4: ; CODE XREF: sub_7F36C+130j ; sub_7F36C+13Aj move.b (byte_FFFF9BA9).w,d3 addq.b #1,d3 andi.b #$F,d3 move.b d3,(byte_FFFF9BA9).w movem.l (sp)+,d0-d2/a0-a1 unlk a6 rts ; End of function sub_7F36C ; =============== S U B R O U T I N E ======================================= sub_7F4CA: ; CODE XREF: DoLoopE+56p movem.l d0-d2/d6/a0-a1/a4,-(sp) jsr sub_80338 move.w (F_TANK_KE_SENSOR_WARMUP_TIME_MINIMUM).l,d0 ; The minimum amount of time the vacuum sensor needs power applied before an accurate reading can be obtained. ; Seconds movea.l #unk_FF9BA0,a0 jsr sub_276D4 tst.b d0 beq.w loc_7F5B8 move.w (F_TANK_KE_FUEL_TANK_VACUUM_SCALE).l,d1 ; The slope coefficient for the tank vacuum AD counts to inches water equation. ; Scalar mulu.w (word_FFFF9B2C).w,d1 divu.w #4,d1 bvs.s loc_7F50A tst.w d1 blt.s loc_7F50A add.w (F_TANK_KE_FUEL_TANK_VACUUM_OFFSET).l,d1 ; The y-intercept for the tank vacuum AD counts to inches water equation. ; Inches H2O bvc.s loc_7F514 bpl.s loc_7F510 loc_7F50A: ; CODE XREF: sub_7F4CA+30j ; sub_7F4CA+34j move.w #$7FFF,d1 bra.s loc_7F514 ; --------------------------------------------------------------------------- loc_7F510: ; CODE XREF: sub_7F4CA+3Ej move.w #$8000,d1 loc_7F514: ; CODE XREF: sub_7F4CA+3Cj ; sub_7F4CA+44j jsr sub_66414 tst.b d0 beq.s loc_7F544 btst #1,(byte_FFFF9B2E).w bne.s loc_7F544 move.w (word_FFFF9B2C).w,d3 cmp.w (F_TANK_KE_REZERO_MIN_AD_COUNTS).l,d3 ; Vacuum Sensor raw reading must be above this TO adjust the tank vacuum bias. ; AD_Counts 10bit bls.s loc_7F544 cmp.w (F_TANK_KE_REZERO_MAX_AD_COUNTS).l,d3 ; Vacuum Sensor raw reading must be below this TO adjust the tank vacuum bias. ; AD_Counts_10bit bcc.s loc_7F544 move.w d1,(word_FFFF8182).w bset #1,(byte_FFFF9B2E).w loc_7F544: ; CODE XREF: sub_7F4CA+52j ; sub_7F4CA+5Aj ... move.w (word_FFFF9B2C).w,d3 cmp.w (F_TANK_KE_VENT_RSTR_MIN_AD_COUNTS).l,d3 bcs.s loc_7F558 cmp.w (F_TANK_KE_VENT_RSTR_MAX_AD_COUNTS).l,d3 bls.s loc_7F596 loc_7F558: ; CODE XREF: sub_7F4CA+84j jsr sub_66414 tst.b d0 beq.s loc_7F596 move.w (word_FFFF9B52).w,d0 cmp.w (DI_EVAP_KE_FUEL_LEVEL_ENABLE_MAX).l,d0 ; Fuel level must be <= this TO enable Evap diagnostic system. ; Percent bhi.s loc_7F596 tst.b (byte_FFFF9B70).w bne.s loc_7F59C move.w (F_TANK_KE_VENT_RESTRICT_PREP_TMR).l,d0 ; Used to determine if vent restriction failed. ; Seconds movea.l #unk_FF9B6E,a0 jsr sub_276D4 tst.b d0 beq.s loc_7F59C moveq #1,d6 move.b d6,(byte_FFFF9B54).w move.b d6,(byte_FFFF9B70).w bra.s loc_7F59C ; --------------------------------------------------------------------------- loc_7F596: ; CODE XREF: sub_7F4CA+8Cj ; sub_7F4CA+96j ... move.b #1,(byte_FFFF9B70).w loc_7F59C: ; CODE XREF: sub_7F4CA+A8j ; sub_7F4CA+BEj ... sub.w (word_FFFF8182).w,d1 bvc.s loc_7F5AE bpl.s loc_7F5AA move.w #$7FFF,d1 bra.s loc_7F5AE ; --------------------------------------------------------------------------- loc_7F5AA: ; CODE XREF: sub_7F4CA+D8j move.w #$8000,d1 loc_7F5AE: ; CODE XREF: sub_7F4CA+D6j ; sub_7F4CA+DEj move.w d1,(word_FFFF9B98).w bset #4,(byte_FFFF9B2E).w loc_7F5B8: ; CODE XREF: sub_7F4CA+1Ej btst #4,(byte_FFFF9B2E).w beq.s loc_7F610 move.w (word_FFFF9B2C).w,d3 cmp.w (F_TANK_KE_TANK_VACUUM_RAW_MIN).l,d3 ; Minimum tank vacuum reading indicating a valid tank vacuum sensor read. ; AD Counts 10bit bls.s loc_7F610 cmp.w (F_TANK_KE_TANK_VACUUM_RAW_MAX).l,d3 ; Maximum tank vacuum reading indicating a valid tank vacuum sensor read. ; AD Counts 10bit bcc.s loc_7F610 move.w (word_FFFF9B4A).w,d2 movea.w (word_FFFF9B98).w,a4 move.w (F_TANK_KE_VACUUM_MAIN_TIME_CONSTANT).l,d0 ; The filter coefficient for tank vacuum. ; Seconds movea.l #unk_FF9B9A,a0 move.l a4,d1 jsr loc_265D6 move.w d0,(word_FFFF9B4A).w move.w (word_FFFF9B48).w,d2 move.w (F_TANK_KE_VACUUM_SLOSH_TIME_CONSTANT).l,d0 ; The filter coefficient for tank vacuum for fuel tank slosh determination. ; millisecs. movea.l #unk_FF9B9C,a0 move.l a4,d1 jsr loc_265D6 move.w d0,(word_FFFF9B48).w loc_7F610: ; CODE XREF: sub_7F4CA+F4j ; sub_7F4CA+100j ... movem.l (sp)+,d0-d2/d6/a0-a1/a4 rts ; End of function sub_7F4CA ; =============== S U B R O U T I N E ======================================= sub_7F616: ; CODE XREF: DoLoopF+28Ap ; DoLoopF:loc_2AFDAp jsr sub_7FE4C rts ; End of function sub_7F616 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_7F61E: ; CODE XREF: DoLoopE+1B2p DoLoopE+2A8p var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a1,-(sp) move.b (F_TANK_KE_FUEL_SENDER_UNIT_TYPE).l,d4 ; This calibration defines if the 5V or the 12V fuel tank level sensor is wired to the PCM. ; SenderType moveq #2,d7 cmp.b d4,d7 beq.w loc_7F74E move.w (word_FFFF9B4E).w,d3 cmp.w (F_TANK_KE_PRIMARY_TANK_FULL_THRESHOLD).l,d3 ; Threshold of _measurable_, usable fuel in the primary tank above which the primary tank is considered full. ; Liters bcs.w loc_7F6C6 move.w (word_FFFF9B4C).w,d3 cmp.w (F_TANK_KE_SECONDARY_TANK_ZONE1_5_THRESH).l,d3 bcs.s loc_7F68C moveq #1,d6 cmp.b (byte_FFFF9B61).w,d6 beq.w loc_7F744 cmp.b (byte_FFFF9B6C).w,d6 beq.s loc_7F66C loc_7F65E: ; CODE XREF: sub_7F61E+C6j ; sub_7F61E+EEj ... move.w (GlobalClock).w,(word_FFFF9BA4).w move.b d6,(byte_FFFF9B6C).w bra.w loc_7F748 ; --------------------------------------------------------------------------- loc_7F66C: ; CODE XREF: sub_7F61E+3Ej move.w (word_FFFF9BA4).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 loc_7F67A: ; CODE XREF: sub_7F61E+D8j ; sub_7F61E+100j ... cmp.w (F_TANK_KE_FUEL_LEVEL_CHANGE_STATE_TIME).l,d3 ; Time sender readings must be in a new state before that new state's calculation method will be used. ; Seconds bcs.w loc_7F748 move.b d6,(byte_FFFF9B61).w bra.w loc_7F744 ; --------------------------------------------------------------------------- loc_7F68C: ; CODE XREF: sub_7F61E+2Ej cmp.b (byte_FFFF9B61).w,d7 beq.w loc_7F744 cmp.b (byte_FFFF9B6C).w,d7 beq.s loc_7F6A8 move.w (GlobalClock).w,(word_FFFF9BA4).w move.b d7,(byte_FFFF9B6C).w bra.w loc_7F748 ; --------------------------------------------------------------------------- loc_7F6A8: ; CODE XREF: sub_7F61E+7Aj move.w (word_FFFF9BA4).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (F_TANK_KE_FUEL_LEVEL_CHANGE_STATE_TIME).l,d3 ; Time sender readings must be in a new state before that new state's calculation method will be used. ; Seconds bcs.w loc_7F748 move.b d7,(byte_FFFF9B61).w bra.s loc_7F744 ; --------------------------------------------------------------------------- loc_7F6C6: ; CODE XREF: sub_7F61E+20j move.w (word_FFFF9B4C).w,d3 cmp.w (F_TANK_KE_SECONDARY_TANK_ZONE1_5_THRESH).l,d3 bls.s loc_7F6F8 cmpi.b #3,d4 beq.s loc_7F6F8 moveq #5,d6 cmp.b (byte_FFFF9B61).w,d6 beq.s loc_7F744 cmp.b (byte_FFFF9B6C).w,d6 bne.w loc_7F65E move.w (word_FFFF9BA4).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 bra.s loc_7F67A ; --------------------------------------------------------------------------- loc_7F6F8: ; CODE XREF: sub_7F61E+B2j ; sub_7F61E+B8j cmp.w (F_TANK_KE_SECONDARY_TANK_EMPTY_THRESHOL).l,d3 ; Threshold of measurable, usable fuel in the secondary tank above which the secondary tank is considered full. ; Liters bls.s loc_7F722 moveq #3,d6 cmp.b (byte_FFFF9B61).w,d6 beq.s loc_7F744 cmp.b (byte_FFFF9B6C).w,d6 bne.w loc_7F65E move.w (word_FFFF9BA4).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 bra.w loc_7F67A ; --------------------------------------------------------------------------- loc_7F722: ; CODE XREF: sub_7F61E+E0j moveq #4,d6 cmp.b (byte_FFFF9B61).w,d6 beq.s loc_7F744 cmp.b (byte_FFFF9B6C).w,d6 bne.w loc_7F65E move.w (word_FFFF9BA4).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 bra.w loc_7F67A ; --------------------------------------------------------------------------- loc_7F744: ; CODE XREF: sub_7F61E+36j ; sub_7F61E+6Aj ... clr.b (byte_FFFF9B6C).w loc_7F748: ; CODE XREF: sub_7F61E+4Aj ; sub_7F61E+62j ... jsr sub_7FEDC loc_7F74E: ; CODE XREF: sub_7F61E+12j move.b (F_TANK_KE_FUEL_SENDER_UNIT_TYPE).l,d2 ; This calibration defines if the 5V or the 12V fuel tank level sensor is wired to the PCM. ; SenderType cmp.b d2,d7 beq.w loc_7F848 btst #3,(byte_FFFF9B2E).w beq.w loc_7F848 cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_7F848 jsr sub_2749A tst.b d0 beq.s loc_7F782 tst.b (F_TANK_KE_F_TANK_IGNORE_MEC).l ; When set FALSE, the sender diagnostics will only run when the Manufacturers Enable Counter is Zero. ; BOOLEAN beq.w loc_7F848 loc_7F782: ; CODE XREF: sub_7F61E+158j move.b (byte_FFFF9B61).w,d1 moveq #3,d6 cmp.b d1,d6 beq.s loc_7F798 cmpi.b #4,d1 beq.s loc_7F798 cmpi.b #5,d1 bne.s loc_7F7FE loc_7F798: ; CODE XREF: sub_7F61E+16Cj ; sub_7F61E+172j move.w (word_FFFF9B4E).w,d3 cmp.w (word_FFFF8194).w,d3 bls.s loc_7F7A8 move.w d3,(word_FFFF8194).w bra.s loc_7F7B2 ; --------------------------------------------------------------------------- loc_7F7A8: ; CODE XREF: sub_7F61E+182j cmp.w (word_FFFF8198).w,d3 bcc.s loc_7F7B2 move.w d3,(word_FFFF8198).w loc_7F7B2: ; CODE XREF: sub_7F61E+188j ; sub_7F61E+18Ej clr.l d0 move.w (word_FFFF8198).w,d0 clr.l d4 move.w (word_FFFF8194).w,d4 sub.l d0,d4 clr.l d0 move.w (F_TANK_KE_FUEL_LEVEL_DELTA).l,d0 ; If the fuel level reading has not moved this amount for a given amount of accumulated miles then it is considered a fault. ; Liters cmp.l d0,d4 bge.s loc_7F7E6 move.l (dword_FFFF808E).w,d0 sub.l (dword_FFFF8188).w,d0 cmp.l (F_TANK_KE_PRIMARY_SENDER_MIN_MILES).l,d0 blt.s loc_7F810 moveq #$61,d0 ; 'a' jsr sub_5F110 bra.s loc_7F810 ; --------------------------------------------------------------------------- loc_7F7E6: ; CODE XREF: sub_7F61E+1ACj move.w d3,(word_FFFF8194).w move.w d3,(word_FFFF8198).w move.l (dword_FFFF808E).w,(dword_FFFF8188).w moveq #$61,d0 ; 'a' jsr sub_5F0BE bra.s loc_7F810 ; --------------------------------------------------------------------------- loc_7F7FE: ; CODE XREF: sub_7F61E+178j movea.w (word_FFFF9B4E).w,a2 move.w a2,(word_FFFF8194).w move.w a2,(word_FFFF8198).w move.l (dword_FFFF808E).w,(dword_FFFF8188).w loc_7F810: ; CODE XREF: sub_7F61E+1BCj ; sub_7F61E+1C6j ... cmpi.b #1,d2 beq.s loc_7F81A cmp.b d2,d6 bne.s loc_7F848 loc_7F81A: ; CODE XREF: sub_7F61E+1F6j cmp.b d1,d7 bne.s loc_7F842 move.l (dword_FFFF808E).w,d0 sub.l (dword_FFFF8190).w,d0 cmp.l (F_TANK_KE_FUEL_SENDER_MIN_MILES_IN_DEAD).l,d0 ; If the fuel tank level remains in deadband this amount of miles, the fuel sender is considered to be malfunctioning. ; Miles blt.s loc_7F848 moveq #$61,d0 ; 'a' jsr sub_5F110 move.w #$E3,d0 ; '?' jsr sub_5F110 bra.s loc_7F848 ; --------------------------------------------------------------------------- loc_7F842: ; CODE XREF: sub_7F61E+1FEj move.l (dword_FFFF808E).w,(dword_FFFF8190).w loc_7F848: ; CODE XREF: sub_7F61E+138j ; sub_7F61E+142j ... moveq #1,d1 cmp.b d2,d1 beq.s loc_7F856 cmpi.b #3,d2 bne.w loc_7F91A loc_7F856: ; CODE XREF: sub_7F61E+22Ej btst #3,(byte_FFFF9B2E).w beq.w loc_7F91A cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_7F91A jsr sub_2749A tst.b d0 beq.s loc_7F87E tst.b (F_TANK_KE_F_TANK_IGNORE_MEC).l ; When set FALSE, the sender diagnostics will only run when the Manufacturers Enable Counter is Zero. ; BOOLEAN beq.w loc_7F91A loc_7F87E: ; CODE XREF: sub_7F61E+254j move.b (byte_FFFF9B61).w,d3 cmp.b d3,d1 beq.s loc_7F88C cmpi.b #5,d3 bne.s loc_7F908 loc_7F88C: ; CODE XREF: sub_7F61E+266j move.w (word_FFFF9B4C).w,d3 cmp.w (word_FFFF8196).w,d3 bls.s loc_7F89C move.w d3,(word_FFFF8196).w bra.s loc_7F8A6 ; --------------------------------------------------------------------------- loc_7F89C: ; CODE XREF: sub_7F61E+276j cmp.w (word_FFFF819A).w,d3 bcc.s loc_7F8A6 move.w d3,(word_FFFF819A).w loc_7F8A6: ; CODE XREF: sub_7F61E+27Cj ; sub_7F61E+282j clr.l d0 move.w (word_FFFF819A).w,d0 clr.l d4 move.w (word_FFFF8196).w,d4 sub.l d0,d4 clr.l d0 move.w (F_TANK_KE_FUEL_LEVEL_DELTA).l,d0 ; If the fuel level reading has not moved this amount for a given amount of accumulated miles then it is considered a fault. ; Liters cmp.l d0,d4 bge.s loc_7F8E8 move.l (dword_FFFF808E).w,d0 sub.l (dword_FFFF818C).w,d0 cmp.l (F_TANK_KE_SECONDARY_SENDER_MIN_MILES).l,d0 blt.s loc_7F91A move.w (word_FFFF9BAC).w,d0 cmp.w (F_TANK_KE_GRAVITY_FUEL_FILL).l,d0 ; Threshold in the secondary tank which determine the spill over level into the primary tank. ; Liters bcs.s loc_7F91A move.w #$E3,d0 ; '?' jsr sub_5F110 bra.s loc_7F91A ; --------------------------------------------------------------------------- loc_7F8E8: ; CODE XREF: sub_7F61E+2A0j tst.b (byte_FFFF819C).w bne.s loc_7F91A move.w d3,(word_FFFF8196).w move.w d3,(word_FFFF819A).w move.l (dword_FFFF808E).w,(dword_FFFF818C).w move.w #$E3,d0 ; '?' jsr sub_5F0BE bra.s loc_7F91A ; --------------------------------------------------------------------------- loc_7F908: ; CODE XREF: sub_7F61E+26Cj movea.w (word_FFFF9B4C).w,a2 move.w a2,(word_FFFF8196).w move.w a2,(word_FFFF819A).w move.l (dword_FFFF808E).w,(dword_FFFF818C).w loc_7F91A: ; CODE XREF: sub_7F61E+234j ; sub_7F61E+23Ej ... cmp.b d2,d1 bne.w loc_7F9C2 btst #3,(byte_FFFF9B2E).w beq.w loc_7F9C2 cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_7F9C2 jsr sub_2749A tst.b d0 beq.s loc_7F946 tst.b (F_TANK_KE_F_TANK_IGNORE_MEC).l ; When set FALSE, the sender diagnostics will only run when the Manufacturers Enable Counter is Zero. ; BOOLEAN beq.s loc_7F9C2 loc_7F946: ; CODE XREF: sub_7F61E+31Ej move.w (word_FFFF9B4C).w,d0 cmp.w (F_TANK_KE_SECONDARY_TANK_EMPTY_THRESHOL).l,d0 ; Threshold of measurable, usable fuel in the secondary tank above which the secondary tank is considered full. ; Liters bls.s loc_7F958 move.w (GlobalClock).w,(word_FFFF9B5A).w loc_7F958: ; CODE XREF: sub_7F61E+332j cmpi.b #5,(byte_FFFF9B61).w bne.s loc_7F9B0 move.w (F_TANK_KE_FUEL_LEVEL_CHANGE_STATE_TIME).l,d0 ; Time sender readings must be in a new state before that new state's calculation method will be used. ; Seconds movea.l #unk_FF9B5A,a0 jsr sub_276D4 tst.b d0 bne.s loc_7F9B0 moveq #$28,d3 ; '(' add.l (dword_FFFF9B72).w,d3 cmpi.l #$7FFFFFFF,d3 bls.s loc_7F98A move.l #$7FFFFFFF,d3 loc_7F98A: ; CODE XREF: sub_7F61E+364j move.l d3,(dword_FFFF9B72).w cmp.l (F_TANK_KE_FUEL_LEVEL_RATIONALITY_TIME_L).l,d3 ; Time allowed for the fuel level readings to be inconsistant with reality. ; Seconds bls.s loc_7F9C2 move.b d1,(byte_FFFF819C).w move.w #$E3,d0 ; '?' jsr sub_5F110 move.w #$F2,d0 ; '?' jsr sub_5F110 bra.s loc_7F9C2 ; --------------------------------------------------------------------------- loc_7F9B0: ; CODE XREF: sub_7F61E+340j ; sub_7F61E+356j clr.b (byte_FFFF819C).w clr.l (dword_FFFF9B72).w move.w #$F2,d0 ; '?' jsr sub_5F0BE loc_7F9C2: ; CODE XREF: sub_7F61E+2FEj ; sub_7F61E+308j ... btst #3,(byte_FFFF9B2E).w beq.s loc_7F9E4 bset #6,(byte_FFFF9B2E).w cmp.b d2,d7 beq.s loc_7F9E4 btst #5,(byte_FFFF8254).w bne.s loc_7F9E4 bset #7,(byte_FFFF9B2E).w bra.s loc_7F9EA ; --------------------------------------------------------------------------- loc_7F9E4: ; CODE XREF: sub_7F61E+3AAj ; sub_7F61E+3B4j ... bclr #7,(byte_FFFF9B2E).w loc_7F9EA: ; CODE XREF: sub_7F61E+3C4j move.w (word_FFFFBF8A).w,d3 cmpi.w #$1400,d3 bne.w loc_7FB58 cmpi.b #3,(byte_FFFF9B61).w beq.s loc_7FA06 tst.b (byte_FFFF9B67).w beq.w loc_7FB58 loc_7FA06: ; CODE XREF: sub_7F61E+3DEj move.w (word_FFFF9B4E).w,d4 cmp.w (F_TANK_KE_PRIMARY_TANK_PUMP_ON_LEVEL).l,d4 bcc.s loc_7FA78 tst.b (byte_FFFF9B92).w bne.s loc_7FA78 move.w (word_FFFF9B86).w,d3 cmp.w (F_TANK_KE_TRANSFER_PUMP_MIN_OFF_TIME).l,d3 ; Timer to prevent the fuel pump from turning off and turning right back on. ; Seconds bcs.s loc_7FA78 move.w (word_FFFF9B4C).w,d3 cmp.w (F_TANK_KE_SECONDARY_TANK_TRANSFER_THRES).l,d3 ; Volume necessary in secondary tank to allow the transferpump to be turned on. ; Liters bcs.s loc_7FA78 btst #5,(byte_FFFF8254).w bne.s loc_7FA78 clr.w d3 move.b (byte_FFFF9E95).w,d3 tst.b F_TANK_KV_EVAP_STATE_ALLOWS_SEC_XFER_PU(d3.w) ; Determines which evap test states allow the transferpump to be turned on. ; BOOLEAN beq.s loc_7FA78 move.b d1,(byte_FFFF9B67).w tst.b (byte_FFFF9B71).w bne.s loc_7FA8C move.b d1,(byte_FFFF9B71).w clr.l (dword_FFFF9B8A).w move.w (word_FFFF9B4C).w,d3 cmpi.w #$1900,d3 bcs.s loc_7FA68 move.w #$1900,d3 loc_7FA68: ; CODE XREF: sub_7F61E+444j movea.l #F_TANK_KV_TRANSFER_PUMP_TIME_LIMIT,a2 ; Maximum amount of time the transfer pump can be on continuously without burning up. ; Seconds_L tblu.l (a2),d3 move.l d3,(dword_FFFF9B8E).w bra.s loc_7FA8C ; --------------------------------------------------------------------------- loc_7FA78: ; CODE XREF: sub_7F61E+3F2j ; sub_7F61E+3F8j ... move.w (word_FFFF9B86).w,d3 movea.w #$28,a1 ; '(' add.w a1,d3 bcc.s loc_7FA88 move.w #$FFFF,d3 loc_7FA88: ; CODE XREF: sub_7F61E+464j move.w d3,(word_FFFF9B86).w loc_7FA8C: ; CODE XREF: sub_7F61E+432j ; sub_7F61E+458j cmp.w (F_TANK_KE_PRIMARY_TANK_HIGH_XFER_LEVEL).l,d4 ; Volume in primary tank at which point the secondary transfer pump will be requested off after a calibratable time. ; Liters bcs.s loc_7FAC4 tst.b (byte_FFFF9B67).w beq.s loc_7FAC4 move.w (word_FFFF9B88).w,d3 cmp.w (F_TANK_KE_PRIMARY_TANK_TOO_FULL_TIME).l,d3 ; Time which the primary fuel level must remain above the threshold to turn off the xfer pump. ; Seconds bcs.s loc_7FAB4 clr.b (byte_FFFF9B67).w clr.b (byte_FFFF9B71).w clr.w (word_FFFF9B86).w bra.s loc_7FAC8 ; --------------------------------------------------------------------------- loc_7FAB4: ; CODE XREF: sub_7F61E+486j addi.w #$28,d3 ; '(' bcc.s loc_7FABE move.w #$FFFF,d3 loc_7FABE: ; CODE XREF: sub_7F61E+49Aj move.w d3,(word_FFFF9B88).w bra.s loc_7FAC8 ; --------------------------------------------------------------------------- loc_7FAC4: ; CODE XREF: sub_7F61E+474j ; sub_7F61E+47Aj clr.w (word_FFFF9B88).w loc_7FAC8: ; CODE XREF: sub_7F61E+494j ; sub_7F61E+4A4j move.w (word_FFFF9B4C).w,d3 cmp.w (F_TANK_KE_SECONDARY_TANK_EMPTY_THRESHOL).l,d3 ; Threshold of measurable, usable fuel in the secondary tank above which the secondary tank is considered full. ; Liters bls.s loc_7FAEC btst #5,(byte_FFFF8254).w bne.s loc_7FAEC clr.w d3 move.b (byte_FFFF9E95).w,d3 tst.b F_TANK_KV_EVAP_STATE_ALLOWS_SEC_XFER_PU(d3.w) ; Determines which evap test states allow the transferpump to be turned on. ; BOOLEAN bne.s loc_7FB26 loc_7FAEC: ; CODE XREF: sub_7F61E+4B4j ; sub_7F61E+4BCj tst.b (byte_FFFF9B6A).w bne.s loc_7FAFE move.b d1,(byte_FFFF9B6A).w move.w (GlobalClock).w,(word_FFFF9B84).w bra.s loc_7FB2A ; --------------------------------------------------------------------------- loc_7FAFE: ; CODE XREF: sub_7F61E+4D2j move.w (word_FFFF9B84).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (F_TANK_KE_SECONDARY_TANK_EMPTY_TIME).l,d3 ; Time which the transfer pump has pumped the fuel in the secondary tank below the secondary empty threshold. ; Seconds bcs.s loc_7FB2A clr.b (byte_FFFF9B67).w clr.b (byte_FFFF9B71).w clr.b (byte_FFFF9B6A).w clr.w (word_FFFF9B86).w bra.s loc_7FB2A ; --------------------------------------------------------------------------- loc_7FB26: ; CODE XREF: sub_7F61E+4CCj clr.b (byte_FFFF9B6A).w loc_7FB2A: ; CODE XREF: sub_7F61E+4DEj ; sub_7F61E+4F4j ... tst.b (byte_FFFF9B67).w beq.s loc_7FB60 move.l (dword_FFFF9B8A).w,d3 cmp.l (dword_FFFF9B8E).w,d3 bcc.s loc_7FB54 moveq #$28,d3 ; '(' add.l (dword_FFFF9B8A).w,d3 cmpi.l #$7FFFFFFF,d3 bls.s loc_7FB4E move.l #$7FFFFFFF,d3 loc_7FB4E: ; CODE XREF: sub_7F61E+528j move.l d3,(dword_FFFF9B8A).w bra.s loc_7FB60 ; --------------------------------------------------------------------------- loc_7FB54: ; CODE XREF: sub_7F61E+51Aj move.b d1,(byte_FFFF9B92).w loc_7FB58: ; CODE XREF: sub_7F61E+3D4j ; sub_7F61E+3E4j clr.b (byte_FFFF9B67).w clr.b (byte_FFFF9B71).w loc_7FB60: ; CODE XREF: sub_7F61E+510j ; sub_7F61E+534j btst #2,(word_FFFFA7DC+1).w beq.s loc_7FB98 cmpi.b #3,d2 bne.s loc_7FB98 btst #6,(word_FFFFA7E2+1).w beq.s loc_7FB94 move.w (word_FFFF9B4E).w,d6 cmp.w (F_TANK_KE_PRIMARY_TANK_FULL_THRESHOLD).l,d6 ; Threshold of _measurable_, usable fuel in the primary tank above which the primary tank is considered full. ; Liters bcc.s loc_7FB94 move.w (word_FFFF9B4C).w,d6 cmp.w (F_TANK_KE_SECONDARY_TANK_EMPTY_THRESHOL).l,d6 ; Threshold of measurable, usable fuel in the secondary tank above which the secondary tank is considered full. ; Liters bls.s loc_7FB94 move.b d1,(byte_FFFF9B67).w bra.s loc_7FB98 ; --------------------------------------------------------------------------- loc_7FB94: ; CODE XREF: sub_7F61E+556j ; sub_7F61E+562j ... clr.b (byte_FFFF9B67).w loc_7FB98: ; CODE XREF: sub_7F61E+548j ; sub_7F61E+54Ej ... move.b (byte_FFFF9B67).w,d6 beq.s loc_7FBA4 move.w #$1400,d2 bra.s loc_7FBA6 ; --------------------------------------------------------------------------- loc_7FBA4: ; CODE XREF: sub_7F61E+57Ej clr.w d2 loc_7FBA6: ; CODE XREF: sub_7F61E+584j move.l #$50D,d1 move.b #$88,d0 jsr (sub_16FA).l tst.b d6 beq.w loc_7FD06 move.w (word_FFFFAEBE).w,d3 cmp.w (F_TANK_KE_VSS_XFER_PUMP).l,d3 ; Maximum value of vehicle speed that the secondary transfer pump will be diagnosed. ; MPH bhi.w loc_7FD06 btst #7,(byte_FFFF8252).w bne.w loc_7FD06 cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_7FD06 jsr sub_2749A tst.b d0 beq.s loc_7FBF2 tst.b (F_TANK_KE_F_TANK_IGNORE_MEC).l ; When set FALSE, the sender diagnostics will only run when the Manufacturers Enable Counter is Zero. ; BOOLEAN beq.w loc_7FD06 loc_7FBF2: ; CODE XREF: sub_7F61E+5C8j move.w (F_TANK_KE_SLOSH_DELAY_XFER_PUMP_TIME).l,d0 ; Amount of delay time to allow fuel slosh to relax before the transfer pump is diagnosed. ; Seconds movea.l #unk_FF9B94,a0 jsr sub_276D4 tst.b d0 beq.w loc_7FD14 tst.b (byte_FFFF9BB2).w bne.s loc_7FC22 move.b #1,(byte_FFFF9BB2).w move.w (word_FFFF9BAA).w,(word_FFFF9B76).w move.w (word_FFFF9BAC).w,(word_FFFF9B78).w loc_7FC22: ; CODE XREF: sub_7F61E+5F0j move.w (word_FFFF9B76).w,d6 sub.w (word_FFFF9BAA).w,d6 bcc.s loc_7FC2E neg.w d6 loc_7FC2E: ; CODE XREF: sub_7F61E+60Cj move.w d6,(word_FFFF9B64).w move.w (word_FFFF9B78).w,d2 sub.w (word_FFFF9BAC).w,d2 bcc.s loc_7FC3E neg.w d2 loc_7FC3E: ; CODE XREF: sub_7F61E+61Cj move.w d2,(word_FFFF9B68).w move.w (F_TANK_KE_TRANSFER_PUMP_FUEL_LEVEL_DELT).l,d1 ; Minimum level of change necessary to determine the senders are moving and the pump is working. ; Liters cmp.w d1,d6 bcs.s loc_7FC78 cmp.w d1,d2 bcs.s loc_7FC78 clr.b (byte_FFFF9B6B).w clr.b (byte_FFFF9B66).w moveq #$61,d0 ; 'a' jsr sub_5F0BE move.w #$F2,d0 ; '?' jsr sub_5F0BE move.w #$E3,d0 ; '?' jsr sub_5F0BE bra.w loc_7FD14 ; --------------------------------------------------------------------------- loc_7FC78: ; CODE XREF: sub_7F61E+62Cj ; sub_7F61E+630j tst.b (byte_FFFF9B66).w bne.s loc_7FC8E move.b #1,(byte_FFFF9B66).w move.w (GlobalClock).w,(word_FFFF9B96).w bra.w loc_7FD14 ; --------------------------------------------------------------------------- loc_7FC8E: ; CODE XREF: sub_7F61E+65Ej move.w (F_TANK_KE_TRANSFER_PUMP_FAIL_TIME).l,d0 movea.l #unk_FF9B96,a0 jsr sub_276D4 tst.b d0 beq.s loc_7FD14 cmp.w d1,d6 bcc.s loc_7FCBE cmp.w d1,d2 bcc.s loc_7FCBE move.b #1,(byte_FFFF9B6B).w move.w #$F2,d0 ; '?' loc_7FCB6: ; CODE XREF: sub_7F61E+6C2j ; sub_7F61E+6E6j jsr sub_5F110 bra.s loc_7FD14 ; --------------------------------------------------------------------------- loc_7FCBE: ; CODE XREF: sub_7F61E+688j ; sub_7F61E+68Cj cmp.w d1,d6 bcc.s loc_7FCE2 cmp.w d1,d2 bls.s loc_7FCE2 clr.b (byte_FFFF9B6B).w move.w #$E3,d0 ; '?' jsr sub_5F0BE move.w #$F2,d0 ; '?' jsr sub_5F0BE moveq #$61,d0 ; 'a' bra.s loc_7FCB6 ; --------------------------------------------------------------------------- loc_7FCE2: ; CODE XREF: sub_7F61E+6A2j ; sub_7F61E+6A6j cmp.w d1,d6 bls.s loc_7FD14 cmp.w d1,d2 bcc.s loc_7FD14 clr.b (byte_FFFF9B6B).w moveq #$61,d0 ; 'a' jsr sub_5F0BE move.w #$F2,d0 ; '?' jsr sub_5F0BE move.w #$E3,d0 ; '?' bra.s loc_7FCB6 ; --------------------------------------------------------------------------- loc_7FD06: ; CODE XREF: sub_7F61E+59Aj ; sub_7F61E+5A8j ... clr.b (byte_FFFF9B66).w move.w (GlobalClock).w,(word_FFFF9B94).w clr.b (byte_FFFF9BB2).w loc_7FD14: ; CODE XREF: sub_7F61E+5E8j ; sub_7F61E+656j ... movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_7F61E ; =============== S U B R O U T I N E ======================================= GetFuelLevel: ; CODE XREF: DoLoopG+30p ; DoLoopG:loc_2B4DCp movem.l d0-d2/d6,-(sp) jsr sub_8016C jsr sub_8020E move.b (F_TANK_KE_FUEL_SENDER_UNIT_TYPE).l,d1 ; This calibration defines if the 5V or the 12V fuel tank level sensor is wired to the PCM. ; SenderType cmpi.b #2,d1 beq.w loc_7FE38 btst #3,(byte_FFFF9B2E).w beq.w loc_7FE38 cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_7FE38 move.b (F_TANK_KE_FUEL_LEVEL_AD_HIGH_LIMIT).l,d2 ; If the fuel level reading is equal to or above this value then it is considered a fault. ; A/D Counts cmp.b (byte_FFFF9B2A).w,d2 bcc.s loc_7FD7C move.b (byte_FFFF9B5C).w,d3 addq.b #1,d3 bcc.s loc_7FD66 move.b #$FF,d3 loc_7FD66: ; CODE XREF: GetFuelLevel+44j move.b d3,(byte_FFFF9B5C).w cmp.b (F_TANK_KE_FUEL_LEVEL_UPPER_FAULTS).l,d3 bcs.s loc_7FDBC moveq #$63,d0 ; 'c' loc_7FD74: ; CODE XREF: GetFuelLevel+92j jsr sub_5F110 bra.s loc_7FDBC ; --------------------------------------------------------------------------- loc_7FD7C: ; CODE XREF: GetFuelLevel+3Cj clr.b (byte_FFFF9B5C).w moveq #$63,d0 ; 'c' jsr sub_5F0BE move.b (byte_FFFF9B2A).w,d3 cmp.b (F_TANK_KE_FUEL_LEVEL_AD_LOW_LIMIT).l,d3 ; If the fuel level reading is equal to or below this value then it is considered a fault. ; A/D Counts bcc.s loc_7FDB0 move.b (byte_FFFF9B5E).w,d3 addq.b #1,d3 bcc.s loc_7FDA0 move.b #$FF,d3 loc_7FDA0: ; CODE XREF: GetFuelLevel+7Ej move.b d3,(byte_FFFF9B5E).w cmp.b (F_TANK_KE_FUEL_LEVEL_LOWER_FAULTS).l,d3 bcs.s loc_7FDBC moveq #$62,d0 ; 'b' bra.s loc_7FD74 ; --------------------------------------------------------------------------- loc_7FDB0: ; CODE XREF: GetFuelLevel+76j clr.b (byte_FFFF9B5E).w moveq #$62,d0 ; 'b' jsr sub_5F0BE loc_7FDBC: ; CODE XREF: GetFuelLevel+54j ; GetFuelLevel+5Ej ... cmpi.b #1,d1 beq.s loc_7FDC8 cmpi.b #3,d1 bne.s loc_7FE38 loc_7FDC8: ; CODE XREF: GetFuelLevel+A4j cmp.b (byte_FFFF9B2B).w,d2 bcc.s loc_7FDF2 move.b (byte_FFFF9B5D).w,d3 addq.b #1,d3 bcc.s loc_7FDDA move.b #$FF,d3 loc_7FDDA: ; CODE XREF: GetFuelLevel+B8j move.b d3,(byte_FFFF9B5D).w cmp.b (F_TANK_KE_FUEL_LEVEL_UPPER_FAULTS).l,d3 bcs.s loc_7FE38 move.w #$E5,d0 ; '?' loc_7FDEA: ; CODE XREF: GetFuelLevel+10Cj jsr sub_5F110 bra.s loc_7FE38 ; --------------------------------------------------------------------------- loc_7FDF2: ; CODE XREF: GetFuelLevel+B0j clr.b (byte_FFFF9B5D).w move.w #$E5,d0 ; '?' jsr sub_5F0BE move.b (byte_FFFF9B2B).w,d3 cmp.b (F_TANK_KE_FUEL_LEVEL_AD_LOW_LIMIT).l,d3 ; If the fuel level reading is equal to or below this value then it is considered a fault. ; A/D Counts bcc.s loc_7FE2A move.b (byte_FFFF9B5F).w,d3 addq.b #1,d3 bcc.s loc_7FE18 move.b #$FF,d3 loc_7FE18: ; CODE XREF: GetFuelLevel+F6j move.b d3,(byte_FFFF9B5F).w cmp.b (F_TANK_KE_FUEL_LEVEL_LOWER_FAULTS).l,d3 bcs.s loc_7FE38 move.w #$E4,d0 ; '?' bra.s loc_7FDEA ; --------------------------------------------------------------------------- loc_7FE2A: ; CODE XREF: GetFuelLevel+EEj clr.b (byte_FFFF9B5F).w move.w #$E4,d0 ; '?' jsr sub_5F0BE loc_7FE38: ; CODE XREF: GetFuelLevel+1Aj ; GetFuelLevel+24j ... tst.b (F_TANK_KE_FUEL_GAGE_USES_PWM_OUTPUT).l ; Bit selectable cal to force the PWM output for certainapplications. ; BOOLEAN beq.s loc_7FE46 jsr sub_802BE loc_7FE46: ; CODE XREF: GetFuelLevel+122j movem.l (sp)+,d0-d2/d6 rts ; End of function GetFuelLevel ; =============== S U B R O U T I N E ======================================= sub_7FE4C: ; CODE XREF: sub_7F616p sub_803A4+AAp ... movem.l d0-d1,-(sp) move.w (word_FFFFF2BE).w,d4 asl.w #6,d4 move.w d4,(word_FFFF9B9E).w moveq #1,d3 btst #2,(byte_FFFFBF2D).w bne.s loc_7FE66 clr.b d3 loc_7FE66: ; CODE XREF: sub_7FE4C+16j andi.w #$FF,d3 mulu.w #$22,d3 ; '"' lea SurfaceTable_2x17_Temperature_sensor_calibration_2(d3.l),a2 move.l d4,d3 lsr.w #4,d3 tbls.w (a2),d3 move.w d3,(word_FFFF9B56).w cmpi.w #$500,d3 ble.s loc_7FE8C moveq #1,d1 bra.s loc_7FE94 ; --------------------------------------------------------------------------- loc_7FE8C: ; CODE XREF: sub_7FE4C+3Aj cmpi.w #$400,d3 bge.s loc_7FE9C clr.b d1 loc_7FE94: ; CODE XREF: sub_7FE4C+3Ej moveq #$35,d0 ; '5' jsr (sub_1122).l loc_7FE9C: ; CODE XREF: sub_7FE4C+44j movem.l (sp)+,d0-d1 rts ; End of function sub_7FE4C ; =============== S U B R O U T I N E ======================================= sub_7FEA2: ; CODE XREF: sub_7F36C:loc_7F3F6p ; sub_803A4+54p movem.l d0/a0,-(sp) move.w (word_FFFFF2CA).w,d0 lsr.w #2,d0 move.b d0,(byte_FFFF9B2A).w move.w (word_FFFFF2D4).w,d0 lsr.w #2,d0 move.b d0,(byte_FFFF9B2B).w move.w (F_TANK_KE_FUEL_LEVEL_INPUT_DELAY).l,d0 ; The minimum amount of time to delay a valid fuel level reading. ; Seconds movea.l #unk_FF9B82,a0 jsr sub_276D4 tst.b d0 beq.s loc_7FED6 bset #3,(byte_FFFF9B2E).w loc_7FED6: ; CODE XREF: sub_7FEA2+2Cj movem.l (sp)+,d0/a0 rts ; End of function sub_7FEA2 ; =============== S U B R O U T I N E ======================================= sub_7FEDC: ; CODE XREF: sub_7F61E:loc_7F748p ; sub_803A4:loc_804FAp ... ; FUNCTION CHUNK AT 0008003A SIZE 00000004 BYTES move.l d0,-(sp) tst.b (byte_FFFF9BA8).w beq.s loc_7FF50 move.w (word_FFFF82E4).w,d0 sub.w (word_FFFF9B7A).w,d0 andi.l #$FFFF,d0 add.l (dword_FFFF8184).w,d0 cmpi.l #$7FFFFFFF,d0 bls.s loc_7FF04 move.l #$7FFFFFFF,d0 loc_7FF04: ; CODE XREF: sub_7FEDC+20j move.l d0,(dword_FFFF8184).w clr.l d5 move.w (F_TANK_KE_PRIMARY_TANK_FULL_THRESHOLD).l,d5 ; Threshold of _measurable_, usable fuel in the primary tank above which the primary tank is considered full. ; Liters clr.l d3 move.w (F_TANK_KE_PRIMARY_TANK_RATED_CAPACITY).l,d3 ; Volume to which the primary tank is considered Full. ; Liters sub.l d5,d3 clr.l d5 move.w (F_TANK_KE_SECONDARY_TANK_ZONE1_5_THRESH).l,d5 add.l d5,d3 tst.l d3 blt.s loc_7FF46 cmpi.l #$FFFF,d3 bhi.s loc_7FF3E move.w #$DBBA,d5 mulu.w d5,d3 cmpi.l #$7FFFFFFF,d3 bls.s loc_7FF48 loc_7FF3E: ; CODE XREF: sub_7FEDC+52j move.l #$7FFFFFFF,d3 bra.s loc_7FF48 ; --------------------------------------------------------------------------- loc_7FF46: ; CODE XREF: sub_7FEDC+4Aj clr.l d3 loc_7FF48: ; CODE XREF: sub_7FEDC+60j ; sub_7FEDC+68j cmp.l d3,d0 bls.s loc_7FF50 move.l d3,(dword_FFFF8184).w loc_7FF50: ; CODE XREF: sub_7FEDC+6j ; sub_7FEDC+6Ej clr.w d3 move.b (byte_FFFF9B61).w,d3 cmpi.w #1,d3 bcs.w loc_8003A movea.l off_8A778(d3.w*4),a2 jmp (a2) ; End of function sub_7FEDC ; --------------------------------------------------------------------------- loc_7FF68: ; DATA XREF: OS4:0008A77Co move.w (123356).l,d3 ; Volume to which the primary tank is considered Full. ; Liters add.w (word_FFFF9B4C).w,d3 bcc.s loc_7FF78 move.w #$FFFF,d3 loc_7FF78: ; CODE XREF: OS3:0007FF72j move.w d3,(word_FFFF9B7C).w move.w (F_TANK_KE_PRI_TANK_RATED_CAPACITY_GAGE).l,d3 ; Volume to which the primary tank is considered Full for purposes of the fuel gage. ; Liters add.w (word_FFFF9BB0).w,d3 bcc.s loc_7FF8C move.w #$FFFF,d3 loc_7FF8C: ; CODE XREF: OS3:0007FF86j move.w d3,(word_FFFF9B7E).w bra.s loc_8000C ; --------------------------------------------------------------------------- loc_7FF92: ; DATA XREF: OS4:0008A780o move.w (F_TANK_KE_PRIMARY_TANK_RATED_CAPACITY).l,d3 ; Volume to which the primary tank is considered Full. ; Liters add.w (F_TANK_KE_SECONDARY_TANK_ZONE1_5_THRESH).l,d3 bcc.s loc_7FFA4 move.w #$FFFF,d3 loc_7FFA4: ; CODE XREF: OS3:0007FF9Ej move.l d3,d4 move.l (dword_FFFF8184).w,d3 move.w #$DBBA,d0 divu.w d0,d3 sub.w d3,d4 bcs.s loc_7FFB8 move.w d4,d3 bra.s loc_7FFBA ; --------------------------------------------------------------------------- loc_7FFB8: ; CODE XREF: OS3:0007FFB2j clr.w d3 loc_7FFBA: ; CODE XREF: OS3:0007FFB6j move.w d3,(word_FFFF9B7C).w move.w (F_TANK_KE_PRI_TANK_RATED_CAPACITY_GAGE).l,d3 ; Volume to which the primary tank is considered Full for purposes of the fuel gage. ; Liters add.w (F_TANK_KE_SECONDARY_TANK_ZONE1_5_THRESH).l,d3 bcc.s loc_7FFD0 move.w #$FFFF,d3 loc_7FFD0: ; CODE XREF: OS3:0007FFCAj move.l d3,d4 move.l (dword_FFFF8184).w,d3 divu.w d0,d3 sub.w d3,d4 bcs.s loc_7FFE0 move.w d4,d3 bra.s loc_7FFE2 ; --------------------------------------------------------------------------- loc_7FFE0: ; CODE XREF: OS3:0007FFDAj clr.w d3 loc_7FFE2: ; CODE XREF: OS3:0007FFDEj move.w d3,(word_FFFF9B7E).w move.b #1,(byte_FFFF9BA8).w move.w (word_FFFF82E4).w,(word_FFFF9B7A).w bra.s loc_8003A ; --------------------------------------------------------------------------- loc_7FFF4: ; DATA XREF: OS4:0008A784o bra.s loc_80012 ; --------------------------------------------------------------------------- loc_7FFF6: ; DATA XREF: OS4:0008A788o move.w (word_FFFF9B4E).w,(word_FFFF9B7C).w ; --------------------------------------------------------------------------- dc.b $31 ; 1 dc.b $F8 ; ? dc.b $9B ; ? ; end of 'OS3' dc.b $AE ; ? ; =========================================================================== ; Segment type: Regular ; segment "OS4" unk_80000: dc.b $9B ; ? ; DATA XREF: OS4:000884F2o dc.b $7E ; ~ dc.b $C dc.b $39 ; 9 dc.b 0 dc.b 3 dc.b 0 dc.b 1 unk_80008: dc.b $E1 ; ? ; DATA XREF: Calibration:CCP_KV_CCP_BLM_ADJUST_SIZEo ; Calibration:000130F6o ... unk_80009: dc.b $FC ; ? ; DATA XREF: Boot:000018D0o ; OS4:0008905Ao dc.b $66 ; f dc.b $2A ; * ; --------------------------------------------------------------------------- loc_8000C: ; CODE XREF: OS3:0007FF90j clr.l (dword_FFFF8184).w bra.s loc_80036 ; --------------------------------------------------------------------------- loc_80012: ; CODE XREF: OS3:loc_7FFF4j ; DATA XREF: OS4:0008A78Co move.w (word_FFFF9B4E).w,d3 add.w (word_FFFF9B4C).w,d3 bcc.s loc_80020 move.w #$FFFF,d3 loc_80020: ; CODE XREF: OS4:0008001Aj move.w d3,(word_FFFF9B7C).w move.w (word_FFFF9BAE).w,d3 add.w (word_FFFF9BB0).w,d3 bcc.s loc_80032 move.w #$FFFF,d3 loc_80032: ; CODE XREF: OS4:0008002Cj move.w d3,(word_FFFF9B7E).w loc_80036: ; CODE XREF: OS4:00080010j clr.b (byte_FFFF9BA8).w ; START OF FUNCTION CHUNK FOR sub_7FEDC loc_8003A: ; CODE XREF: sub_7FEDC+7Ej ; OS3:0007FFF2j move.l (sp)+,d0 rts ; END OF FUNCTION CHUNK FOR sub_7FEDC ; =============== S U B R O U T I N E ======================================= sub_8003E: ; CODE XREF: sub_7F36C+90p ; sub_803A4+F6p ... cmpi.b #2,(F_TANK_KE_FUEL_SENDER_UNIT_TYPE).l ; This calibration defines if the 5V or the 12V fuel tank level sensor is wired to the PCM. ; SenderType bne.s loc_8005A clr.w (word_FFFF9B4E).w clr.w (word_FFFF9B4C).w clr.w (word_FFFF9BAE).w clr.w (word_FFFF9BB0).w bra.s locret_80068 ; --------------------------------------------------------------------------- loc_8005A: ; CODE XREF: sub_8003E+8j btst #3,(byte_FFFF9B2E).w beq.s locret_80068 jsr sub_8006A locret_80068: ; CODE XREF: sub_8003E+1Aj ; sub_8003E+22j rts ; End of function sub_8003E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_8006A: ; CODE XREF: sub_8003E+24p ; sub_803A4+5Ap var_4 = -4 link a6,#-4 movem.l d0-d2/a0,-(sp) move.b (F_TANK_KE_FUEL_LEVEL_AD_LOW_LIMIT).l,d0 ; If the fuel level reading is equal to or below this value then it is considered a fault. ; A/D Counts move.b (byte_FFFF9B2A).w,d3 cmp.b d0,d3 bls.s loc_800B2 cmp.b (F_TANK_KE_FUEL_LEVEL_AD_HIGH_LIMIT).l,d3 ; If the fuel level reading is equal to or above this value then it is considered a fault. ; A/D Counts bcc.s loc_800B2 andi.w #$FF,d3 asl.w #7,d3 movea.l #F_TANK_KV_CONVERT_PRIMARY_FUEL_LEVEL_TO,a2 ; Converts fuel level sender AD counts to liters. ; Liters tblu.w (a2),d3 move.w d3,(word_FFFF9B4E).w clr.w d3 move.b (byte_FFFF9B2A).w,d3 asl.w #7,d3 movea.l #F_TANK_KV_PRI_FUEL_LEVEL_TO_VOL_GAGE,a2 ; Converts fuel level sender AD counts to liters for display on the fuel gage. ; Liters tblu.w (a2),d3 move.w d3,(word_FFFF9BAE).w loc_800B2: ; CODE XREF: sub_8006A+14j ; sub_8006A+1Cj move.b (F_TANK_KE_FUEL_SENDER_UNIT_TYPE).l,d3 ; This calibration defines if the 5V or the 12V fuel tank level sensor is wired to the PCM. ; SenderType cmpi.b #1,d3 beq.s loc_800C4 cmpi.b #3,d3 bne.s loc_80100 loc_800C4: ; CODE XREF: sub_8006A+52j move.b (byte_FFFF9B2B).w,d3 cmp.b d0,d3 bls.s loc_80108 cmp.b (F_TANK_KE_FUEL_LEVEL_AD_HIGH_LIMIT).l,d3 ; If the fuel level reading is equal to or above this value then it is considered a fault. ; A/D Counts bcc.s loc_80108 andi.w #$FF,d3 asl.w #7,d3 movea.l #F_TANK_KV_CONVERT_SECONDARY_FUEL_LEVEL_,a2 ; Converts fuel level sender AD counts to liters. ; Liters tblu.w (a2),d3 move.w d3,(word_FFFF9B4C).w clr.w d3 move.b (byte_FFFF9B2B).w,d3 asl.w #7,d3 movea.l #F_TANK_KV_SEC_FUEL_LEVEL_TO_VOL_GAGE,a2 ; Converts fuel level sender AD counts to liters for the secondary tank for display on the fuel gage. ; Liters tblu.w (a2),d3 move.w d3,(word_FFFF9BB0).w bra.s loc_80108 ; --------------------------------------------------------------------------- loc_80100: ; CODE XREF: sub_8006A+58j clr.w (word_FFFF9B4C).w clr.w (word_FFFF9BB0).w loc_80108: ; CODE XREF: sub_8006A+60j ; sub_8006A+68j ... clr.l d3 move.w (word_FFFF9BAA).w,d3 asl.l #8,d3 asl.l #8,d3 move.w (word_FFFF9B4E).w,d1 move.w (F_TANK_KE_FUEL_LEVEL_FILTER_COEF).l,d0 ; Filter coefficient for both primary and secondary fuel levels used in fuel tank diagnostics. ; Seconds move.l d3,var_4(a6) lea var_4+2(a6),a0 move.w var_4(a6),d2 jsr sub_265BA move.w d0,var_4(a6) move.w d0,(word_FFFF9BAA).w clr.l d3 move.w (word_FFFF9BAC).w,d3 asl.l #8,d3 asl.l #8,d3 move.w (word_FFFF9B4C).w,d1 move.w (F_TANK_KE_FUEL_LEVEL_FILTER_COEF).l,d0 ; Filter coefficient for both primary and secondary fuel levels used in fuel tank diagnostics. ; Seconds move.l d3,var_4(a6) lea var_4+2(a6),a0 move.w var_4(a6),d2 jsr sub_265BA move.w d0,var_4(a6) move.w d0,(word_FFFF9BAC).w movem.l (sp)+,d0-d2/a0 unlk a6 rts ; End of function sub_8006A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_8016C: ; CODE XREF: GetFuelLevel+4p ; sub_803A4+194p ... var_4 = -4 link a6,#-4 movem.l d0-d2/d6/a0,-(sp) btst #4,(byte_FFFFA7DF).w beq.s loc_8018C clr.l d3 move.w (word_FFFFA7E6).w,d3 asl.l #8,d3 asl.l #8,d3 move.l d3,(dword_FFFF9B34).w bra.s loc_801E4 ; --------------------------------------------------------------------------- loc_8018C: ; CODE XREF: sub_8016C+Ej cmpi.b #5,(byte_FFFFA3AF).w bcc.s loc_801AA tst.w (EngineRPM_PID_000C___).w beq.s loc_801AA clr.l d1 move.w (F_TANK_KE_FAST_FILL_RUN_TIME).l,d1 ; Indicates how long to use fast filter after the engine has begun running. ; Seconds move.l (EngineRunTime).w,d3 cmp.l d3,d1 bls.s loc_801BA loc_801AA: ; CODE XREF: sub_8016C+26j ; sub_8016C+2Cj movea.l (dword_FFFF9B34).w,a2 move.w (word_FFFF9B7E).w,d1 move.w (F_TANK_KE_FUEL_GAGE_FAST_FILL_FILTER).l,d0 ; Lag filter time constant used to allow fast fuel gage movement during Fast Fill mode of gage operation. ; Seconds bra.s loc_801C8 ; --------------------------------------------------------------------------- loc_801BA: ; CODE XREF: sub_8016C+3Cj movea.l (dword_FFFF9B34).w,a2 move.w (word_FFFF9B7E).w,d1 move.w (F_TANK_KE_FUEL_GAGE_NORMAL_FILTER).l,d0 ; Lag filter time constant used to over-damp fuel gage movement. ; Seconds loc_801C8: ; CODE XREF: sub_8016C+4Cj move.l a2,var_4(a6) lea var_4+2(a6),a0 move.w var_4(a6),d2 jsr sub_265BA move.w d0,var_4(a6) move.l var_4(a6),(dword_FFFF9B34).w loc_801E4: ; CODE XREF: sub_8016C+1Ej move.l (dword_FFFF9B34).w,d3 lsr.l #5,d3 divu.w (F_TANK_KE_FUEL_TANK_RATED_CAPACITY_GAGE).l,d3 ; Maximum Fuel Tank volume as rated by GMUTS and/or the platform. ; Liters bvs.s loc_801F8 cmpi.w #$1000,d3 bls.s loc_801FC loc_801F8: ; CODE XREF: sub_8016C+84j move.w #$1000,d3 loc_801FC: ; CODE XREF: sub_8016C+8Aj mulu.w #5,d3 lsr.w #1,d3 move.w d3,(word_FFFF9B50).w movem.l (sp)+,d0-d2/d6/a0 unlk a6 rts ; End of function sub_8016C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_8020E: ; CODE XREF: GetFuelLevel+Ap ; sub_803A4+19Ap ... var_4 = -4 link a6,#-4 movem.l d0-d2/a0,-(sp) movea.l (dword_FFFF9B30).w,a2 move.w (word_FFFF9B7C).w,d1 move.w (F_TANK_KE_FUEL_MAIN_TIME_CONSTANT).l,d0 ; The main filter coefficient for fuel tank level. ; Seconds move.l a2,var_4(a6) lea var_4+2(a6),a0 move.w var_4(a6),d2 jsr sub_265BA move.w d0,var_4(a6) movea.l var_4(a6),a2 move.l a2,(dword_FFFF9B30).w move.l a2,d3 lsr.l #5,d3 divu.w (F_TANK_KE_FUEL_TANK_RATED_CAPACITY).l,d3 ; Maximum Fuel Tank volume as rated by GMUTS and/or the platform. ; Liters bvs.s loc_80254 cmpi.w #$1000,d3 bls.s loc_80258 loc_80254: ; CODE XREF: sub_8020E+3Ej move.w #$1000,d3 loc_80258: ; CODE XREF: sub_8020E+44j mulu.w #5,d3 lsr.w #1,d3 move.w d3,(word_FFFF9B52).w movea.l (dword_FFFF9B40).w,a2 move.w (word_FFFF9B4E).w,d1 move.w (F_TANK_KE_FUEL_PRM_SLSH_THRSH_TIME_CNST).l,d0 ; Filter coefficient for primary fuel tank levelused in slosh threshold lookup. ; Seconds move.l a2,var_4(a6) lea var_4+2(a6),a0 move.w var_4(a6),d2 jsr sub_265BA move.w d0,var_4(a6) move.l var_4(a6),(dword_FFFF9B40).w movea.l (dword_FFFF9B44).w,a2 move.w (word_FFFF9B4C).w,d1 move.w (F_TANK_KE_FUEL_SEC_SLSH_THRSH_TIME_CNST).l,d0 ; Filter coefficient for secondary fuel tank levelused in slosh threshold lookup. ; Seconds move.l a2,var_4(a6) lea var_4+2(a6),a0 move.w var_4(a6),d2 jsr sub_265BA move.w d0,var_4(a6) move.l var_4(a6),(dword_FFFF9B44).w movem.l (sp)+,d0-d2/a0 unlk a6 rts ; End of function sub_8020E ; =============== S U B R O U T I N E ======================================= sub_802BE: ; CODE XREF: GetFuelLevel+124p movem.l d0-d2,-(sp) btst #5,(byte_FFFF8254).w bne.s loc_802DA btst #1,(byte_FFFF8AA4).w beq.s loc_802DE tst.b (F_TANK_KE_GAGE_TO_ZERO_ON_PUMP_FAULT).l ; Bit selectable cal to force the PWM Fuel Level output to zero when a secondary fuel pump fault is present. ; BOOLEAN beq.s loc_802DE loc_802DA: ; CODE XREF: sub_802BE+Aj clr.w d3 bra.s loc_802E2 ; --------------------------------------------------------------------------- loc_802DE: ; CODE XREF: sub_802BE+12j ; sub_802BE+1Aj move.w (word_FFFF9B50).w,d3 loc_802E2: ; CODE XREF: sub_802BE+1Ej lsr.w #1,d3 movea.l #F_TANK_KV_FUEL_LEVEL_TO_PWM_FOR_GAGE,a2 ; Table to convert fuel level to PWM duty cycleto drive a fuel gage in the cluster. ; Percent tbls.w (a2),d3 move.w d3,(word_FFFF9BA6).w move.w (F_TANK_KE_FUEL_GAGE_PWM_MIN).l,d4 ; Minimum value allowed for fuel gage PWM signal. ; Percent cmp.w d4,d3 bge.s loc_80302 loc_802FC: ; CODE XREF: sub_802BE+4Cj move.w d4,(word_FFFF9B80).w bra.s loc_80310 ; --------------------------------------------------------------------------- loc_80302: ; CODE XREF: sub_802BE+3Cj move.w (F_TANK_KE_FUEL_GAGE_PWM_MAX).l,d4 ; Maximum value allowed for fuel gage PWM signal. ; Percent cmp.w d4,d3 bgt.s loc_802FC move.w d3,(word_FFFF9B80).w loc_80310: ; CODE XREF: sub_802BE+42j clr.l d2 move.w (F_TANK_KE_FUEL_GAGE_PWM_FREQUENCY).l,d2 ; Adjustable frequency TO drive the fuel gage ; Hertz move.l #C2_NORMAL_MSGS_KE_C2_CRUISE_MEMORY_SPEED_SEND_O,d1 divu.l d2,d1 move.w #$1400,d2 sub.w (word_FFFF9B80).w,d2 moveq #$76,d0 ; 'v' jsr (sub_16FA).l movem.l (sp)+,d0-d2 rts ; End of function sub_802BE ; =============== S U B R O U T I N E ======================================= sub_80338: ; CODE XREF: sub_63E7Ap sub_7F4CA+4p tst.b (byte_FFFFB42B).w beq.s loc_8035A move.w (word_FFFFF2E2).w,d3 mulu.w (word_FFFFB42E).w,d3 lsr.l #8,d3 lsr.l #3,d3 cmpi.w #$3FF,d3 bls.s loc_80354 move.w #$3FF,d3 loc_80354: ; CODE XREF: sub_80338+16j move.w d3,(word_FFFF9B2C).w bra.s locret_80360 ; --------------------------------------------------------------------------- loc_8035A: ; CODE XREF: sub_80338+4j move.w (word_FFFFF2E2).w,(word_FFFF9B2C).w locret_80360: ; CODE XREF: sub_80338+20j rts ; End of function sub_80338 ; =============== S U B R O U T I N E ======================================= sub_80362: ; CODE XREF: sub_75370+25Ep clr.b (byte_FFFF9B5C).w clr.b (byte_FFFF9B5E).w clr.b (byte_FFFF9B5D).w clr.b (byte_FFFF9B5F).w movea.w (word_FFFF9B4E).w,a2 move.w a2,(word_FFFF8194).w move.w a2,(word_FFFF8198).w movea.w (word_FFFF9B4C).w,a2 move.w a2,(word_FFFF8196).w move.w a2,(word_FFFF819A).w movea.l (dword_FFFF808E).w,a2 move.l a2,(dword_FFFF8190).w move.l a2,(dword_FFFF8188).w move.l a2,(dword_FFFF818C).w clr.l (dword_FFFF9B72).w clr.b (byte_FFFF819C).w rts ; End of function sub_80362 ; =============== S U B R O U T I N E ======================================= sub_803A4: ; CODE XREF: OS1:00028D38p movem.l d1-d2/d6-d7,-(sp) move.b d0,d2 moveq #2,d6 cmp.b d2,d6 bne.w loc_80472 tst.b (byte_FFFFB54A).w bne.s loc_803EC clr.w (word_FFFF8182).w movea.w (word_FFFF9B4E).w,a2 move.w a2,(word_FFFF8194).w move.w a2,(word_FFFF8198).w movea.w (word_FFFF9B4C).w,a2 move.w a2,(word_FFFF8196).w move.w a2,(word_FFFF819A).w movea.l (dword_FFFF808E).w,a2 move.l a2,(dword_FFFF8190).w move.l a2,(dword_FFFF8188).w move.l a2,(dword_FFFF818C).w clr.l (dword_FFFF8184).w clr.b (byte_FFFF819C).w loc_803EC: ; CODE XREF: sub_803A4+12j bclr #3,(byte_FFFF9B2E).w move.w (GlobalClock).w,(word_FFFF9B82).w jsr sub_7FEA2 jsr sub_8006A move.w (word_FFFFF2E2).w,(word_FFFF9B2C).w move.w (F_TANK_KE_FUEL_TANK_VACUUM_SCALE).l,d3 ; The slope coefficient for the tank vacuum AD counts to inches water equation. ; Scalar mulu.w (word_FFFF9B2C).w,d3 moveq #4,d7 divu.w d7,d3 bvs.s loc_80428 tst.w d3 blt.s loc_80428 add.w (F_TANK_KE_FUEL_TANK_VACUUM_OFFSET).l,d3 ; The y-intercept for the tank vacuum AD counts to inches water equation. ; Inches H2O bvc.s loc_80432 bpl.s loc_8042E loc_80428: ; CODE XREF: sub_803A4+74j ; sub_803A4+78j move.w #$7FFF,d3 bra.s loc_80432 ; --------------------------------------------------------------------------- loc_8042E: ; CODE XREF: sub_803A4+82j move.w #$8000,d3 loc_80432: ; CODE XREF: sub_803A4+80j ; sub_803A4+88j sub.w (word_FFFF8182).w,d3 bvc.s loc_80444 bpl.s loc_80440 move.w #$7FFF,d3 bra.s loc_80444 ; --------------------------------------------------------------------------- loc_80440: ; CODE XREF: sub_803A4+94j move.w #$8000,d3 loc_80444: ; CODE XREF: sub_803A4+92j ; sub_803A4+9Aj move.w d3,(word_FFFF9B98).w move.w (GlobalClock).w,(word_FFFF9B6E).w jsr sub_7FE4C move.w (word_FFFF9B56).w,d3 cmpi.w #$500,d3 ble.s loc_80462 moveq #1,d1 bra.s loc_8046A ; --------------------------------------------------------------------------- loc_80462: ; CODE XREF: sub_803A4+B8j cmpi.w #$400,d3 bge.s loc_80472 clr.b d1 loc_8046A: ; CODE XREF: sub_803A4+BCj moveq #$35,d0 ; '5' jsr (sub_1122).l loc_80472: ; CODE XREF: sub_803A4+Aj ; sub_803A4+C2j clr.l d7 move.b d2,d7 cmpi.w #1,d7 bcs.w loc_8076A movea.l off_8A48C(d7.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_80488: ; DATA XREF: OS4:0008A494o ; OS4:0008A498o bclr #2,(byte_FFFF9B2E).w move.w (word_FFFF9B4E).w,(word_FFFF9BAA).w move.w (word_FFFF9B4C).w,(word_FFFF9BAC).w jsr sub_8003E move.w (word_FFFF9B4E).w,d3 cmp.w (F_TANK_KE_PRIMARY_TANK_FULL_THRESHOLD).l,d3 ; Threshold of _measurable_, usable fuel in the primary tank above which the primary tank is considered full. ; Liters bcs.s loc_804C6 move.w (word_FFFF9B4C).w,d3 cmp.w (F_TANK_KE_SECONDARY_TANK_ZONE1_5_THRESH).l,d3 bcs.s loc_804C0 move.b #1,(byte_FFFF9B61).w bra.s loc_804FA ; --------------------------------------------------------------------------- loc_804C0: ; CODE XREF: sub_803A4+112j move.b d6,(byte_FFFF9B61).w bra.s loc_804FA ; --------------------------------------------------------------------------- loc_804C6: ; CODE XREF: sub_803A4+106j move.w (word_FFFF9B4C).w,d3 cmp.w (F_TANK_KE_SECONDARY_TANK_ZONE1_5_THRESH).l,d3 bls.s loc_804E4 cmpi.b #3,(F_TANK_KE_FUEL_SENDER_UNIT_TYPE).l ; This calibration defines if the 5V or the 12V fuel tank level sensor is wired to the PCM. ; SenderType beq.s loc_804E4 move.b #5,(byte_FFFF9B61).w bra.s loc_804FA ; --------------------------------------------------------------------------- loc_804E4: ; CODE XREF: sub_803A4+12Cj ; sub_803A4+136j cmp.w (F_TANK_KE_SECONDARY_TANK_EMPTY_THRESHOL).l,d3 ; Threshold of measurable, usable fuel in the secondary tank above which the secondary tank is considered full. ; Liters bls.s loc_804F4 move.b #3,(byte_FFFF9B61).w bra.s loc_804FA ; --------------------------------------------------------------------------- loc_804F4: ; CODE XREF: sub_803A4+146j move.b #4,(byte_FFFF9B61).w loc_804FA: ; CODE XREF: sub_803A4+11Aj ; sub_803A4+120j ... jsr sub_7FEDC clr.l d3 move.w (word_FFFF9B4E).w,d3 asl.l #8,d3 asl.l #8,d3 move.l d3,(dword_FFFF9B38).w clr.l d3 move.w (word_FFFF9B4C).w,d3 asl.l #8,d3 asl.l #8,d3 move.l d3,(dword_FFFF9B3C).w clr.l d3 move.w (word_FFFF9B7E).w,d3 asl.l #8,d3 asl.l #8,d3 move.l d3,(dword_FFFF9B34).w clr.l d3 move.w (word_FFFF9B7C).w,d3 asl.l #8,d3 asl.l #8,d3 move.l d3,(dword_FFFF9B30).w jsr sub_8016C jsr sub_8020E clr.b (byte_FFFF9B5C).w clr.b (byte_FFFF9B5D).w clr.b (byte_FFFF9B5E).w clr.b (byte_FFFF9B5F).w clr.l (dword_FFFF9B72).w bclr #7,(byte_FFFF9B2E).w bclr #6,(byte_FFFF9B2E).w bclr #1,(byte_FFFF9B2E).w movea.w (word_FFFF9B98).w,a2 move.w a2,(word_FFFF9B4A).w move.w a2,(word_FFFF9B48).w move.w (GlobalClock).w,(word_FFFF9BA0).w bclr #4,(byte_FFFF9B2E).w bclr #5,(byte_FFFF9B2E).w clr.b (byte_FFFF9B60).w clr.b (byte_FFFF9B62).w clr.w (word_FFFF9B64).w clr.w (word_FFFF9B76).w clr.w (word_FFFF9B68).w clr.w (word_FFFF9B78).w clr.b (byte_FFFF9B67).w clr.b (byte_FFFF9B6B).w clr.b (byte_FFFF9B6A).w clr.b (byte_FFFF9B71).w clr.b (byte_FFFF9B66).w clr.b (byte_FFFF9B92).w move.w (F_TANK_KE_TRANSFER_PUMP_MIN_OFF_TIME).l,(word_FFFF9B86).w ; Timer to prevent the fuel pump from turning off and turning right back on. ; Seconds bra.w loc_80708 ; --------------------------------------------------------------------------- loc_805C4: ; DATA XREF: OS4:0008A4A4o move.w (word_FFFF9B4E).w,(word_FFFF9BAA).w move.w (word_FFFF9B4C).w,(word_FFFF9BAC).w jsr sub_8003E move.w (word_FFFF9B4E).w,d3 cmp.w (F_TANK_KE_PRIMARY_TANK_FULL_THRESHOLD).l,d3 ; Threshold of _measurable_, usable fuel in the primary tank above which the primary tank is considered full. ; Liters bcs.s loc_805FC move.w (word_FFFF9B4C).w,d3 cmp.w (F_TANK_KE_SECONDARY_TANK_ZONE1_5_THRESH).l,d3 bcs.s loc_805F6 move.b #1,(byte_FFFF9B61).w bra.s loc_80630 ; --------------------------------------------------------------------------- loc_805F6: ; CODE XREF: sub_803A4+248j move.b d6,(byte_FFFF9B61).w bra.s loc_80630 ; --------------------------------------------------------------------------- loc_805FC: ; CODE XREF: sub_803A4+23Cj move.w (word_FFFF9B4C).w,d3 cmp.w (F_TANK_KE_SECONDARY_TANK_ZONE1_5_THRESH).l,d3 bls.s loc_8061A cmpi.b #3,(F_TANK_KE_FUEL_SENDER_UNIT_TYPE).l ; This calibration defines if the 5V or the 12V fuel tank level sensor is wired to the PCM. ; SenderType beq.s loc_8061A move.b #5,(byte_FFFF9B61).w bra.s loc_80630 ; --------------------------------------------------------------------------- loc_8061A: ; CODE XREF: sub_803A4+262j ; sub_803A4+26Cj cmp.w (F_TANK_KE_SECONDARY_TANK_EMPTY_THRESHOL).l,d3 ; Threshold of measurable, usable fuel in the secondary tank above which the secondary tank is considered full. ; Liters bls.s loc_8062A move.b #3,(byte_FFFF9B61).w bra.s loc_80630 ; --------------------------------------------------------------------------- loc_8062A: ; CODE XREF: sub_803A4+27Cj move.b #4,(byte_FFFF9B61).w loc_80630: ; CODE XREF: sub_803A4+250j ; sub_803A4+256j ... jsr sub_7FEDC clr.l d3 move.w (word_FFFF9B4E).w,d3 asl.l #8,d3 asl.l #8,d3 move.l d3,(dword_FFFF9B38).w clr.l d3 move.w (word_FFFF9B4C).w,d3 asl.l #8,d3 asl.l #8,d3 move.l d3,(dword_FFFF9B3C).w clr.l d3 move.w (word_FFFF9B7E).w,d3 asl.l #8,d3 asl.l #8,d3 move.l d3,(dword_FFFF9B34).w clr.l d3 move.w (word_FFFF9B7C).w,d3 asl.l #8,d3 asl.l #8,d3 move.l d3,(dword_FFFF9B30).w jsr sub_8016C jsr sub_8020E clr.b (byte_FFFF9B5C).w clr.b (byte_FFFF9B5D).w clr.b (byte_FFFF9B5E).w clr.b (byte_FFFF9B5F).w clr.l (dword_FFFF9B72).w bclr #7,(byte_FFFF9B2E).w bclr #6,(byte_FFFF9B2E).w move.w (word_FFFFF2E2).w,(word_FFFF9B2C).w move.w (F_TANK_KE_FUEL_TANK_VACUUM_SCALE).l,d3 ; The slope coefficient for the tank vacuum AD counts to inches water equation. ; Scalar mulu.w (word_FFFF9B2C).w,d3 divu.w #4,d3 bvs.s loc_806BE tst.w d3 blt.s loc_806BE add.w (F_TANK_KE_FUEL_TANK_VACUUM_OFFSET).l,d3 ; The y-intercept for the tank vacuum AD counts to inches water equation. ; Inches H2O bvc.s loc_806C8 bpl.s loc_806C4 loc_806BE: ; CODE XREF: sub_803A4+30Aj ; sub_803A4+30Ej move.w #$7FFF,d3 bra.s loc_806C8 ; --------------------------------------------------------------------------- loc_806C4: ; CODE XREF: sub_803A4+318j move.w #$8000,d3 loc_806C8: ; CODE XREF: sub_803A4+316j ; sub_803A4+31Ej move.w d3,(word_FFFF9B98).w bclr #1,(byte_FFFF9B2E).w move.w d3,(word_FFFF9B4A).w move.w d3,(word_FFFF9B48).w move.w (GlobalClock).w,(word_FFFF9BA0).w bclr #4,(byte_FFFF9B2E).w bclr #5,(byte_FFFF9B2E).w clr.b (byte_FFFF9B60).w clr.b (byte_FFFF9B62).w clr.w (word_FFFF9B64).w clr.w (word_FFFF9B68).w clr.b (byte_FFFF9B67).w clr.b (byte_FFFF9B6B).w clr.b (byte_FFFF9B71).w loc_80708: ; CODE XREF: sub_803A4+21Cj move.w (GlobalClock).w,(word_FFFF9B94).w clr.b (byte_FFFF9BB2).w bra.s loc_8076A ; --------------------------------------------------------------------------- loc_80714: ; DATA XREF: OS4:0008A4A8o bset #1,(byte_FFFF9B2E).w clr.b (byte_FFFF9B6B).w clr.w (word_FFFF9B64).w clr.w (word_FFFF9B68).w bra.s loc_8076A ; --------------------------------------------------------------------------- loc_80728: ; DATA XREF: OS4:0008A490o ; OS4:0008A49Co ... clr.b (byte_FFFF9B60).w clr.b (byte_FFFF9B62).w clr.b (byte_FFFF9B67).w clr.b (byte_FFFF9B6B).w clr.w (word_FFFF9B64).w clr.w (word_FFFF9B68).w cmpi.b #4,d2 bne.s loc_8076A jsr sub_7FE4C move.w (word_FFFF9B56).w,d3 cmpi.w #$500,d3 ble.s loc_8075A moveq #1,d1 bra.s loc_80762 ; --------------------------------------------------------------------------- loc_8075A: ; CODE XREF: sub_803A4+3B0j cmpi.w #$400,d3 bge.s loc_8076A clr.b d1 loc_80762: ; CODE XREF: sub_803A4+3B4j moveq #$35,d0 ; '5' jsr (sub_1122).l loc_8076A: ; CODE XREF: sub_803A4+D6j ; sub_803A4+36Ej ... movem.l (sp)+,d1-d2/d6-d7 rts ; End of function sub_803A4 ; =============== S U B R O U T I N E ======================================= sub_80770: ; CODE XREF: OS1:00028974p ; DoManyThings1+160p ... move sr,-(sp) ori #$700,sr move.w (word_FFFFF2D2).w,d3 lsr.w #2,d3 asl.w #8,d3 mulu.w (IGNITION_KE_IGNITION_VOLTAGE_SCALE_FAC).l,d3 ; Ignition 1 sensor scaling factor. ; lsr.l #8,d3 lsr.l #8,d3 move.w d3,(word_FFFFB4A2).w move.w (word_FFFFF2E4).w,d3 lsr.w #2,d3 asl.w #8,d3 mulu.w #5,d3 lsr.l #8,d3 mulu.w (word_8A83A).l,d3 divu.w #$1000,d3 bvc.s loc_807AA move.w #$FFFF,d3 loc_807AA: ; CODE XREF: sub_80770+34j addi.w #$100,d3 bcc.s loc_807B4 move.w #$FFFF,d3 loc_807B4: ; CODE XREF: sub_80770+3Ej move.w d3,(word_FFFFB4A6).w move.w (word_FFFFB4A2).w,d3 cmp.w (PROTECTED_KE_IGN_VOLT_TOO_HIGH).l,d3 ; Ignition voltage is too high if it is greater than this. ; Volts shi d3 neg.b d3 move.b d3,(byte_FFFFB4A4).w move.w (word_FFFFB4A2).w,d3 cmp.w (PROTECTED_KE_IGN_VOLT_TOO_LOW).l,d3 ; Ignition voltage is too Low if it is less than this. ; Volts scs d3 neg.b d3 move.b d3,(byte_FFFFB4A0).w move (sp)+,sr rts ; End of function sub_80770 ; =============== S U B R O U T I N E ======================================= sub_807E0: ; CODE XREF: DoLoopC+3Ep move.l d0,-(sp) move.w (word_FFFFF2BC).w,d3 lsr.w #2,d3 asl.w #8,d3 move.w d3,(word_FFFFB290).w move.w (MANIFOLD_KE_MAP_SENSOR_OFFSET).l,d5 ; Manifold absolute pressure sensor offset value. ; kPa ext.l d5 move.w (MANIFOLD_KE_MAP_SENSOR_SCALE_FACTOR).l,d3 ; Manifold absolute pressure sensor scaling factor. ; kPa/Count mulu.w (word_FFFFB290).w,d3 lsr.l #8,d3 lsr.l #8,d3 add.l d5,d3 tst.l d3 blt.s loc_8081E cmpi.l #$FFFF,d3 bhi.s loc_80818 cmpi.w #$14FF,d3 bls.s loc_80820 loc_80818: ; CODE XREF: sub_807E0+30j move.w #$14FF,d3 bra.s loc_80820 ; --------------------------------------------------------------------------- loc_8081E: ; CODE XREF: sub_807E0+28j clr.w d3 loc_80820: ; CODE XREF: sub_807E0+36j ; sub_807E0+3Cj move.w d3,(word_FFFFB296).w cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_808E2 btst #1,(byte_FFFF88C8).w bne.s loc_8083E btst #1,(byte_FFFF88CA).w beq.s loc_8087E loc_8083E: ; CODE XREF: sub_807E0+54j move.w (MANIFOLD_KE_MAF_DEFAULT_SLOPE).l,d3 mulu.w (word_FFFFAB66).w,d3 divu.w #$100,d3 bvc.s loc_80852 move.w #$FFFF,d3 loc_80852: ; CODE XREF: sub_807E0+6Cj add.w (MANIFOLD_KE_MAF_DEFAULT_MINIMUM).l,d3 bcc.s loc_8085E move.w #$FFFF,d3 loc_8085E: ; CODE XREF: sub_807E0+78j move.l d3,d0 move.w (word_FFFFE1CC).w,d3 mulu.w d3,d0 moveq #$13,d3 mulu.l d0,d3 bvs.s loc_80874 divu.w #$95F5,d3 bvc.s loc_80878 loc_80874: ; CODE XREF: sub_807E0+8Cj move.w #$FFFF,d3 loc_80878: ; CODE XREF: sub_807E0+92j move.w d3,(word_FFFFB29C).w bra.s loc_80884 ; --------------------------------------------------------------------------- loc_8087E: ; CODE XREF: sub_807E0+5Cj move.w (word_FFFFA0E6).w,(word_FFFFB29C).w loc_80884: ; CODE XREF: sub_807E0+9Cj move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$A000,d3 bls.s loc_80892 move.w #$A000,d3 loc_80892: ; CODE XREF: sub_807E0+ACj andi.l #$FFFF,d3 divu.w #$A,d3 tblu.w (MANIFOLD_KV_MAP_DEFAULT_OFFSET).l,d3 ; Manifold absolute pressure offset value for defaultcalculation. ; move.w (MANIFOLD_KE_MAP_DEFAULT_SLOPE).l,d4 ; Manifold absolute pressure scaling factor used to convert cylinder air mass to manifold pressure for default calculation. ; kPa/Gram/Cylinder mulu.w (word_FFFFB29C).w,d4 move.w #$1000,d0 divu.w d0,d4 bvs.s loc_808BC cmpi.w #$14FF,d4 bls.s loc_808C0 loc_808BC: ; CODE XREF: sub_807E0+D4j move.w #$14FF,d4 loc_808C0: ; CODE XREF: sub_807E0+DAj add.w d3,d4 cmpi.w #$14FF,d4 bls.s loc_808CC move.w #$14FF,d4 loc_808CC: ; CODE XREF: sub_807E0+E6j move.w (MANIFOLD_KE_MAP_DEFAULT_ENGINE_NOT_RUNNIN).l,d3 ; Manifold absolute pressure offset value for defaultcalculation. ; kPa cmp.w d3,d4 bcc.s loc_808DC move.w d4,(word_FFFFB29A).w bra.s loc_808EA ; --------------------------------------------------------------------------- loc_808DC: ; CODE XREF: sub_807E0+F4j move.w d3,(word_FFFFB29A).w bra.s loc_808EA ; --------------------------------------------------------------------------- loc_808E2: ; CODE XREF: sub_807E0+4Aj move.w (MANIFOLD_KE_MAP_DEFAULT_ENGINE_NOT_RUNNIN).l,(word_FFFFB29A).w ; Manifold absolute pressure offset value for defaultcalculation. ; kPa loc_808EA: ; CODE XREF: sub_807E0+FAj ; sub_807E0+100j tst.b (byte_FFFFA1B9).w beq.s loc_808F6 jsr sub_6E41E loc_808F6: ; CODE XREF: sub_807E0+10Ej btst #1,(byte_FFFF88CE).w bne.s loc_80906 btst #1,(byte_FFFF88D0).w beq.s loc_8090E loc_80906: ; CODE XREF: sub_807E0+11Cj move.w (word_FFFFB29A).w,(word_FFFFB294).w bra.s loc_80914 ; --------------------------------------------------------------------------- loc_8090E: ; CODE XREF: sub_807E0+124j move.w (word_FFFFB296).w,(word_FFFFB294).w loc_80914: ; CODE XREF: sub_807E0+12Cj move.w (word_FFFF82D2).w,d3 sub.w (word_FFFFB294).w,d3 bcc.s loc_80920 clr.w d3 loc_80920: ; CODE XREF: sub_807E0+13Cj move.w d3,(word_FFFFB298).w cmpi.w #$1000,d3 bcs.s loc_8092E move.w #$1000,d3 loc_8092E: ; CODE XREF: sub_807E0+148j move.w d3,(word_FFFFAEF2).w lsr.w #1,d3 move.w d3,(word_FFFFAEF4).w move.l (sp)+,d0 rts ; End of function sub_807E0 ; =============== S U B R O U T I N E ======================================= sub_8093C: ; CODE XREF: DoLoopA+AAp move.w (word_FFFFF2BA).w,d3 lsr.w #2,d3 asl.w #8,d3 move.w d3,(word_FFFFB28E).w btst #1,(byte_FFFF88CE).w bne.s loc_80958 btst #1,(byte_FFFF88D0).w beq.s loc_80960 loc_80958: ; CODE XREF: sub_8093C+12j move.w (word_FFFFB294).w,(word_FFFFB292).w bra.s loc_80996 ; --------------------------------------------------------------------------- loc_80960: ; CODE XREF: sub_8093C+1Aj move.w (MANIFOLD_KE_MAP_SENSOR_OFFSET).l,d5 ; Manifold absolute pressure sensor offset value. ; kPa ext.l d5 move.w (MANIFOLD_KE_MAP_SENSOR_SCALE_FACTOR).l,d3 ; Manifold absolute pressure sensor scaling factor. ; kPa/Count mulu.w (word_FFFFB28E).w,d3 lsr.l #8,d3 lsr.l #8,d3 add.l d5,d3 tst.l d3 blt.s loc_80990 cmpi.l #$FFFF,d3 bhi.s loc_8098A cmpi.w #$14FF,d3 bls.s loc_80992 loc_8098A: ; CODE XREF: sub_8093C+46j move.w #$14FF,d3 bra.s loc_80992 ; --------------------------------------------------------------------------- loc_80990: ; CODE XREF: sub_8093C+3Ej clr.w d3 loc_80992: ; CODE XREF: sub_8093C+4Cj ; sub_8093C+52j move.w d3,(word_FFFFB292).w loc_80996: ; CODE XREF: sub_8093C+22j move.w (word_FFFFB292).w,d3 move.w #$400,d4 cmp.w d3,d4 bls.s loc_809A6 clr.w d3 bra.s loc_809B4 ; --------------------------------------------------------------------------- loc_809A6: ; CODE XREF: sub_8093C+64j cmpi.w #$1400,d3 bcc.s loc_809B0 sub.w d4,d3 bra.s loc_809B4 ; --------------------------------------------------------------------------- loc_809B0: ; CODE XREF: sub_8093C+6Ej move.w #$1000,d3 loc_809B4: ; CODE XREF: sub_8093C+68j ; sub_8093C+72j move.w d3,(ManifoldPressure).w lsr.w #1,d3 move.w d3,(word_FFFFAEEC).w move.w (word_FFFF82D2).w,d3 sub.w (word_FFFFB292).w,d3 bcc.s loc_809CA clr.w d3 loc_809CA: ; CODE XREF: sub_8093C+8Aj move.w d3,(word_FFFFB298).w cmpi.w #$1000,d3 bcs.s loc_809D8 move.w #$1000,d3 loc_809D8: ; CODE XREF: sub_8093C+96j move.w d3,(word_FFFFAEF2).w lsr.w #1,d3 move.w d3,(word_FFFFAEF4).w rts ; End of function sub_8093C ; =============== S U B R O U T I N E ======================================= sub_809E4: ; CODE XREF: OS1:000289D8p cmpi.b #5,d0 bhi.w loc_80A70 cmpi.b #3,d0 bhi.w locret_80A76 cmpi.b #2,d0 bne.s loc_80A70 move.w (word_FFFFF2BC).w,d3 lsr.w #2,d3 asl.w #8,d3 move.w d3,(word_FFFFB290).w move.w (MANIFOLD_KE_MAP_SENSOR_OFFSET).l,d5 ; Manifold absolute pressure sensor offset value. ; kPa ext.l d5 move.w (MANIFOLD_KE_MAP_SENSOR_SCALE_FACTOR).l,d3 ; Manifold absolute pressure sensor scaling factor. ; kPa/Count mulu.w (word_FFFFB290).w,d3 lsr.l #8,d3 lsr.l #8,d3 add.l d5,d3 tst.l d3 blt.s loc_80A36 cmpi.l #$FFFF,d3 bhi.s loc_80A30 cmpi.w #$14FF,d3 bls.s loc_80A38 loc_80A30: ; CODE XREF: sub_809E4+44j move.w #$14FF,d3 bra.s loc_80A38 ; --------------------------------------------------------------------------- loc_80A36: ; CODE XREF: sub_809E4+3Cj clr.w d3 loc_80A38: ; CODE XREF: sub_809E4+4Aj ; sub_809E4+50j move.w d3,(word_FFFFB296).w move.w (MANIFOLD_KE_MAP_DEFAULT_ENGINE_NOT_RUNNIN).l,(word_FFFFB29A).w ; Manifold absolute pressure offset value for defaultcalculation. ; kPa tst.b (byte_FFFFA1B9).w beq.s loc_80A50 jsr sub_6E41E loc_80A50: ; CODE XREF: sub_809E4+64j btst #1,(byte_FFFF88CE).w bne.s loc_80A60 btst #1,(byte_FFFF88D0).w beq.s loc_80A68 loc_80A60: ; CODE XREF: sub_809E4+72j move.w (word_FFFFB29A).w,(word_FFFFB294).w bra.s locret_80A76 ; --------------------------------------------------------------------------- loc_80A68: ; CODE XREF: sub_809E4+7Aj move.w (word_FFFFB296).w,(word_FFFFB294).w bra.s locret_80A76 ; --------------------------------------------------------------------------- loc_80A70: ; CODE XREF: sub_809E4+4j ; sub_809E4+14j move.w (word_FFFFB292).w,(word_FFFFB294).w locret_80A76: ; CODE XREF: sub_809E4+Cj ; sub_809E4+82j ... rts ; End of function sub_809E4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_80A78: ; CODE XREF: sub_79B10+8p var_10 = -$10 link a6,#-$10 movem.l d0-d1/a0-a1/a4,-(sp) lea (unk_FFFFAC8A).w,a4 lea var_10(a6),a0 moveq #7,d0 loc_80A8A: ; CODE XREF: sub_80A78+14j move.w (a4)+,(a0)+ dbf d0,loc_80A8A movea.l #unk_FFAC8A,a4 movea.l a4,a0 moveq #$66,d0 ; 'f' jsr sub_82046 tst.b (byte_FFFFA1BB).w beq.s loc_80AB2 jsr sub_6DC40 jsr sub_6D7FC loc_80AB2: ; CODE XREF: sub_80A78+2Cj btst #5,(byte_FFFFAA92).w beq.s loc_80ACE moveq #1,d1 lea var_10(a6),a1 movea.l a4,a0 moveq #$66,d0 ; 'f' jsr sub_823CE move.w d0,d3 bra.s loc_80AD0 ; --------------------------------------------------------------------------- loc_80ACE: ; CODE XREF: sub_80A78+40j clr.w d3 loc_80AD0: ; CODE XREF: sub_80A78+54j move.w d3,(word_FFFFAC84).w cmpi.w #$6000,d3 bls.s loc_80AE0 move.w #$6000,d3 bra.s loc_80AEA ; --------------------------------------------------------------------------- loc_80AE0: ; CODE XREF: sub_80A78+60j move.w #$C00,d4 cmp.w d3,d4 bls.s loc_80AEA move.l d4,d3 loc_80AEA: ; CODE XREF: sub_80A78+66j ; sub_80A78+6Ej subi.w #$C00,d3 tblu.w (MASS_AIR_FLOW_SENSOR_KV_MASS_AIRFLOW).l,d3 ; Mass Air Flow rate from sensor ; Gram/Sec move.w d3,(word_FFFFAC82).w btst #1,(byte_FFFF88C8).w bne.s loc_80B0A btst #1,(byte_FFFF88CA).w beq.s loc_80B10 loc_80B0A: ; CODE XREF: sub_80A78+88j clr.w (word_FFFFAC86).w bra.s loc_80B14 ; --------------------------------------------------------------------------- loc_80B10: ; CODE XREF: sub_80A78+90j move.w d3,(word_FFFFAC86).w loc_80B14: ; CODE XREF: sub_80A78+96j movem.l (sp)+,d0-d1/a0-a1/a4 unlk a6 rts ; End of function sub_80A78 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_80B1C: ; CODE XREF: DoLoopE+26p var_10 = -$10 link a6,#-$10 movem.l d0-d1/a0-a1/a4,-(sp) move.b (ThrottleControlMode2?).w,d3 cmpi.b #1,d3 beq.s loc_80B34 cmpi.b #2,d3 bne.s loc_80B8C loc_80B34: ; CODE XREF: sub_80B1C+10j lea (unk_FFFFAC9A).w,a4 lea var_10(a6),a0 moveq #7,d0 loc_80B3E: ; CODE XREF: sub_80B1C+24j move.w (a4)+,(a0)+ dbf d0,loc_80B3E movea.l #unk_FFAC9A,a4 movea.l a4,a0 moveq #$66,d0 ; 'f' jsr sub_82046 moveq #1,d1 lea var_10(a6),a1 movea.l a4,a0 moveq #$66,d0 ; 'f' jsr sub_823CE move.w d0,d3 cmpi.w #$6000,d3 bls.s loc_80B72 move.w #$6000,d3 bra.s loc_80B7C ; --------------------------------------------------------------------------- loc_80B72: ; CODE XREF: sub_80B1C+4Ej move.w #$C00,d4 cmp.w d3,d4 bls.s loc_80B7C move.l d4,d3 loc_80B7C: ; CODE XREF: sub_80B1C+54j ; sub_80B1C+5Cj subi.w #$C00,d3 tblu.w (MASS_AIR_FLOW_SENSOR_KV_MASS_AIRFLOW).l,d3 ; Mass Air Flow rate from sensor ; Gram/Sec move.w d3,(word_FFFFAC88).w loc_80B8C: ; CODE XREF: sub_80B1C+16j movem.l (sp)+,d0-d1/a0-a1/a4 unlk a6 rts ; End of function sub_80B1C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_80B94: ; CODE XREF: DoLoopF+330p var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a0,-(sp) move.b (byte_FFFF90EF).w,d6 move.b d6,(byte_FFFFAB8B).w move.b (byte_FFFFAB92).w,d7 bne.s loc_80BC6 movea.l #unk_FFAB8A,a0 move.b (byte_FFFFAB89).w,d2 move.l d6,d1 move.w (OISTER_KE_OIL_FILTER_COEFFICIENT).l,d0 ; Coefficient to filter the lateral acceleration variable using a first order lag filter. ; Unitless jsr sub_2663C move.b d0,(byte_FFFFAB89).w loc_80BC6: ; CODE XREF: sub_80B94+14j movea.l #unk_FFAB9A,a0 jsr sub_276F4 tst.b d7 bne.w loc_80CC8 tst.b d6 ble.s loc_80BE2 tst.b (byte_FFFFAB91).w blt.s loc_80BEC loc_80BE2: ; CODE XREF: sub_80B94+46j tst.b d6 bge.s loc_80BF0 tst.b (byte_FFFFAB91).w ble.s loc_80BF0 loc_80BEC: ; CODE XREF: sub_80B94+4Cj moveq #1,d0 bra.s loc_80BF2 ; --------------------------------------------------------------------------- loc_80BF0: ; CODE XREF: sub_80B94+50j ; sub_80B94+56j clr.b d0 loc_80BF2: ; CODE XREF: sub_80B94+5Aj move.b (byte_FFFFAB89).w,d3 ext.w d3 clr.w d4 cmpi.w #$FF88,d3 bge.s loc_80C04 move.l d4,d3 bra.s loc_80C24 ; --------------------------------------------------------------------------- loc_80C04: ; CODE XREF: sub_80B94+6Aj moveq #$78,d2 ; 'x' cmp.w d3,d2 ble.s loc_80C20 add.w d2,d3 ext.l d3 asl.l #7,d3 moveq #5,d4 tst.l d3 bmi.s loc_80C1C divu.l d4,d3 bra.s loc_80C24 ; --------------------------------------------------------------------------- loc_80C1C: ; CODE XREF: sub_80B94+80j clr.l d3 bra.s loc_80C24 ; --------------------------------------------------------------------------- loc_80C20: ; CODE XREF: sub_80B94+74j move.w #$1800,d3 loc_80C24: ; CODE XREF: sub_80B94+6Ej ; sub_80B94+86j ... movea.l #$F9FE,a2 tblu.w (a2),d3 cmp.w (EngineRPM_PID_000C___).w,d3 bcc.s loc_80C3A move.w (GlobalClock).w,(word_FFFFAB9A).w loc_80C3A: ; CODE XREF: sub_80B94+9Ej cmp.w (EngineRPM_PID_000C___).w,d3 bls.s loc_80C64 move.w (OISTER_KE_INTEGRAL_RESET_DELAY).l,d3 ; This time will prevent lateral acceleration spikes from resetting the lateral G integrator. ; Delay_Seconds_W asl.w #3,d3 andi.l #$FFFF,d3 moveq #5,d2 divu.w d2,d3 move.w (word_FFFFAB9A).w,var_2(a6) move.w (GlobalClock).w,d4 sub.w var_2(a6),d4 cmp.w d3,d4 bcc.s loc_80C68 loc_80C64: ; CODE XREF: sub_80B94+AAj tst.b d0 beq.s loc_80C6E loc_80C68: ; CODE XREF: sub_80B94+CEj clr.w (word_FFFFAB9C).w bra.s loc_80CC4 ; --------------------------------------------------------------------------- loc_80C6E: ; CODE XREF: sub_80B94+D2j movea.l (dword_FFFFB5DE).w,a2 tst.b (byte_FFFFAB89).w bge.s loc_80C98 move.b (byte_FFFFAB89).w,d3 ext.w d3 ext.l d3 neg.l d3 tst.l d3 blt.s loc_80CA2 cmpi.l #$FF,d3 bhi.s loc_80C94 cmpi.b #$7F,d3 ; '' bls.s loc_80CA4 loc_80C94: ; CODE XREF: sub_80B94+F8j moveq #$7F,d3 ; '' bra.s loc_80CA4 ; --------------------------------------------------------------------------- loc_80C98: ; CODE XREF: sub_80B94+E2j move.b (byte_FFFFAB89).w,d3 cmpi.b #$7F,d3 ; '' bls.s loc_80CA4 loc_80CA2: ; CODE XREF: sub_80B94+F0j clr.b d3 loc_80CA4: ; CODE XREF: sub_80B94+FEj ; sub_80B94+102j ... andi.w #$FF,d3 mulu.w $A(a2),d3 add.l d3,d3 divu.w #$271,d3 add.w (word_FFFFAB9C).w,d3 cmpi.w #$7FFF,d3 bls.s loc_80CC0 move.w #$7FFF,d3 loc_80CC0: ; CODE XREF: sub_80B94+126j move.w d3,(word_FFFFAB9C).w loc_80CC4: ; CODE XREF: sub_80B94+D8j move.b d6,(byte_FFFFAB91).w loc_80CC8: ; CODE XREF: sub_80B94+40j tst.b d7 bne.w loc_80E74 move.b (byte_FFFFAB89).w,d3 bge.w loc_80D68 tst.b d3 bge.s loc_80CF6 ext.w d3 ext.l d3 neg.l d3 tst.l d3 blt.s loc_80CFC cmpi.l #$FF,d3 bhi.s loc_80CF2 cmpi.b #$7F,d3 ; '' bls.s loc_80CFE loc_80CF2: ; CODE XREF: sub_80B94+156j moveq #$7F,d3 ; '' bra.s loc_80CFE ; --------------------------------------------------------------------------- loc_80CF6: ; CODE XREF: sub_80B94+144j cmpi.b #$7F,d3 ; '' bls.s loc_80CFE loc_80CFC: ; CODE XREF: sub_80B94+14Ej clr.b d3 loc_80CFE: ; CODE XREF: sub_80B94+15Cj ; sub_80B94+160j ... move.w (EngineRPM_PID_000C___).w,d4 clr.w d5 move.l #$1000,d6 cmp.w d4,d6 bls.s loc_80D12 move.l d5,d4 bra.s loc_80D28 ; --------------------------------------------------------------------------- loc_80D12: ; CODE XREF: sub_80B94+178j cmpi.w #$8000,d4 bcc.s loc_80D24 andi.l #$FFFF,d4 sub.l d6,d4 lsr.w #3,d4 bra.s loc_80D28 ; --------------------------------------------------------------------------- loc_80D24: ; CODE XREF: sub_80B94+182j move.w #$E00,d4 loc_80D28: ; CODE XREF: sub_80B94+17Cj ; sub_80B94+18Ej andi.w #$FF,d3 cmpi.w #$1E,d3 bge.s loc_80D36 clr.w d3 bra.s loc_80D58 ; --------------------------------------------------------------------------- loc_80D36: ; CODE XREF: sub_80B94+19Cj cmpi.w #$78,d3 ; 'x' bge.s loc_80D54 subi.w #$1E,d3 ext.l d3 asl.l #7,d3 bmi.s loc_80D50 divu.l #5,d3 bra.s loc_80D58 ; --------------------------------------------------------------------------- loc_80D50: ; CODE XREF: sub_80B94+1B0j clr.l d3 bra.s loc_80D58 ; --------------------------------------------------------------------------- loc_80D54: ; CODE XREF: sub_80B94+1A6j move.w #$900,d3 loc_80D58: ; CODE XREF: sub_80B94+1A0j ; sub_80B94+1BAj ... moveq #$A,d2 move.l d4,d1 move.l d3,d0 movea.l #$FA30,a0 bra.w loc_80DF4 ; --------------------------------------------------------------------------- loc_80D68: ; CODE XREF: sub_80B94+13Ej tst.b d3 bge.s loc_80D8A move.l d3,d0 ext.w d0 ext.l d0 neg.l d0 tst.l d0 blt.s loc_80D92 cmpi.l #$FF,d0 bhi.s loc_80D86 cmpi.b #$7F,d0 ; '' bls.s loc_80D94 loc_80D86: ; CODE XREF: sub_80B94+1EAj moveq #$7F,d0 ; '' bra.s loc_80D94 ; --------------------------------------------------------------------------- loc_80D8A: ; CODE XREF: sub_80B94+1D6j move.l d3,d0 cmpi.b #$7F,d0 ; '' bls.s loc_80D94 loc_80D92: ; CODE XREF: sub_80B94+1E2j clr.b d0 loc_80D94: ; CODE XREF: sub_80B94+1F0j ; sub_80B94+1F4j ... move.w (EngineRPM_PID_000C___).w,d1 clr.w d3 move.l #$1000,d6 cmp.w d1,d6 bls.s loc_80DA8 move.l d3,d1 bra.s loc_80DBE ; --------------------------------------------------------------------------- loc_80DA8: ; CODE XREF: sub_80B94+20Ej cmpi.w #$8000,d1 bcc.s loc_80DBA andi.l #$FFFF,d1 sub.l d6,d1 lsr.w #3,d1 bra.s loc_80DBE ; --------------------------------------------------------------------------- loc_80DBA: ; CODE XREF: sub_80B94+218j move.w #$E00,d1 loc_80DBE: ; CODE XREF: sub_80B94+212j ; sub_80B94+224j andi.w #$FF,d0 moveq #$1E,d3 cmp.w d0,d3 ble.s loc_80DCC clr.w d0 bra.s loc_80DEC ; --------------------------------------------------------------------------- loc_80DCC: ; CODE XREF: sub_80B94+232j cmpi.w #$78,d0 ; 'x' bge.s loc_80DE8 sub.w d3,d0 ext.l d0 asl.l #7,d0 bmi.s loc_80DE4 divu.l #5,d0 bra.s loc_80DEC ; --------------------------------------------------------------------------- loc_80DE4: ; CODE XREF: sub_80B94+244j clr.l d0 bra.s loc_80DEC ; --------------------------------------------------------------------------- loc_80DE8: ; CODE XREF: sub_80B94+23Cj move.w #$900,d0 loc_80DEC: ; CODE XREF: sub_80B94+236j ; sub_80B94+24Ej ... moveq #$A,d2 movea.l #$FB5C,a0 loc_80DF4: ; CODE XREF: sub_80B94+1D0j jsr sub_2696E move.w d0,d1 move.w (word_FFFFA72E).w,d3 clr.w d5 addi.w #$400,d3 moveq #5,d2 muls.w d2,d3 divs.w #6,d3 tbls.w (OISTER_KV_OIL_TEMPERATURE_OFFSET).l,d3 ; Compensates the Maximum Lat G Seconds threshold for oil temperature. ; G_Seconds add.w d3,d1 bvc.s loc_80E26 bpl.s loc_80E22 move.w #$7FFF,d1 bra.s loc_80E26 ; --------------------------------------------------------------------------- loc_80E22: ; CODE XREF: sub_80B94+286j move.w #$8000,d1 loc_80E26: ; CODE XREF: sub_80B94+284j ; sub_80B94+28Cj movea.w (word_FFFFAB9E).w,a3 move.l a3,d0 move.l d5,d3 cmpi.w #$1800,d0 bcc.s loc_80E3C mulu.w d2,d0 divu.w #6,d0 bra.s loc_80E40 ; --------------------------------------------------------------------------- loc_80E3C: ; CODE XREF: sub_80B94+29Ej move.w #$1400,d0 loc_80E40: ; CODE XREF: sub_80B94+2A6j tblu.w (OISTER_KV_OIL_LEVEL_FILTER_COEFFICIENT).l,d0 ; Filters the Lat G Seconds threshold transients based on the current threshold. ; Unitless movea.l #unk_FFABA0,a0 move.l a3,d2 cmpi.w #$7FFF,d1 bls.s loc_80E58 move.l d3,d1 loc_80E58: ; CODE XREF: sub_80B94+2C0j jsr sub_265BA move.w d0,(word_FFFFAB9E).w cmp.w (word_FFFFAB9C).w,d0 bcc.s loc_80E70 move.b #1,(byte_FFFFAB8E).w bra.s loc_80E74 ; --------------------------------------------------------------------------- loc_80E70: ; CODE XREF: sub_80B94+2D2j clr.b (byte_FFFFAB8E).w loc_80E74: ; CODE XREF: sub_80B94+136j ; sub_80B94+2DAj tst.b (byte_FFFFAB7F).w beq.s loc_80EA2 tst.b d7 bne.s loc_80EAE tst.w (word_FFFFAB94).w bhi.s loc_80E8C move.b #1,(byte_FFFFAB84).w bra.s loc_80EAE ; --------------------------------------------------------------------------- loc_80E8C: ; CODE XREF: sub_80B94+2EEj movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAB94).w,d3 sub.w $A(a2),d3 bcc.s loc_80E9C clr.w d3 loc_80E9C: ; CODE XREF: sub_80B94+304j move.w d3,(word_FFFFAB94).w bra.s loc_80EAE ; --------------------------------------------------------------------------- loc_80EA2: ; CODE XREF: sub_80B94+2E4j clr.b (byte_FFFFAB84).w move.w (OISTER_KE_DRIVER_WARNING_DELAY_TIME).l,(word_FFFFAB94).w ; Driver notification to powertrain action delay time. ; Seconds loc_80EAE: ; CODE XREF: sub_80B94+2E8j ; sub_80B94+2F6j ... tst.b d7 bne.w loc_80F5A tst.b (byte_FFFFAB89).w bge.s loc_80EDA move.b (byte_FFFFAB89).w,d3 ext.w d3 ext.l d3 neg.l d3 tst.l d3 blt.s loc_80EE4 cmpi.l #$FF,d3 bhi.s loc_80ED6 cmpi.b #$7F,d3 ; '' bls.s loc_80EE6 loc_80ED6: ; CODE XREF: sub_80B94+33Aj moveq #$7F,d3 ; '' bra.s loc_80EE6 ; --------------------------------------------------------------------------- loc_80EDA: ; CODE XREF: sub_80B94+324j move.b (byte_FFFFAB89).w,d3 cmpi.b #$7F,d3 ; '' bls.s loc_80EE6 loc_80EE4: ; CODE XREF: sub_80B94+332j clr.b d3 loc_80EE6: ; CODE XREF: sub_80B94+340j ; sub_80B94+344j ... cmp.b (byte_FFFFAB88).w,d3 bls.s loc_80F42 tst.b (byte_FFFFAB85).w bne.s loc_80F00 move.w (GlobalClock).w,(word_FFFFAB96).w move.b #1,(byte_FFFFAB85).w bra.s loc_80F5A ; --------------------------------------------------------------------------- loc_80F00: ; CODE XREF: sub_80B94+35Cj move.w (OISTER_KE_LAT_G_SPIKE_REJECTION_TIME).l,d0 ; This time will allow lat G spikes to be ignored. After this time, the lat G will be acknowledged. ; Seconds movea.l #unk_FFAB96,a0 jsr sub_276D4 tst.b d0 beq.s loc_80F5A move.b (OISTER_KE_PROTECTION_G_LOW_HYSTERESIS).l,(byte_FFFFAB88).w ; Below thisvalue will be considered not high G conditions ; Gs_B_U tst.w (word_FFFFAB98).w bhi.s loc_80F2C move.b #1,(byte_FFFFAB86).w bra.s loc_80F5A ; --------------------------------------------------------------------------- loc_80F2C: ; CODE XREF: sub_80B94+38Ej movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAB98).w,d3 sub.w $A(a2),d3 bcc.s loc_80F3C clr.w d3 loc_80F3C: ; CODE XREF: sub_80B94+3A4j move.w d3,(word_FFFFAB98).w bra.s loc_80F5A ; --------------------------------------------------------------------------- loc_80F42: ; CODE XREF: sub_80B94+356j move.b (OISTER_KE_PROTECTION_G_HIGH_HYSTERESIS).l,(byte_FFFFAB88).w ; Above this value will enable the High G Timer FOR skid pad testing detection. ; Gs_B_U clr.b (byte_FFFFAB86).w clr.b (byte_FFFFAB85).w move.w (OISTER_KE_HIGH_G_MINIMUM_TIME).l,(word_FFFFAB98).w ; Minimum amount of time a high lateral acceleration manuever must be sustained before any powertrain action will take place. ; Seconds loc_80F5A: ; CODE XREF: sub_80B94+31Cj ; sub_80B94+36Aj ... move.b (byte_FFFFAB86).w,d3 and.b (byte_FFFFAB84).w,d3 beq.s loc_80F7C moveq #1,d5 move.b d5,(byte_FFFFAB80).w tst.b (byte_FFFFAB90).w bne.s loc_80FA6 move.w (GlobalClock).w,(word_FFFFABA6).w move.b d5,(byte_FFFFAB90).w bra.s loc_80FA6 ; --------------------------------------------------------------------------- loc_80F7C: ; CODE XREF: sub_80B94+3CEj move.w (word_FFFFABA6).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (OISTER_KE_POWERTRAIN_ACTION_TIME).l,d3 ; Minimum amount of time the powertrain action will remain active once it has been initiated. ; Seconds bcs.s loc_80FA6 move.w (word_FFFFAB66).w,d3 cmp.w (OISTER_KE_THROTTLE_MAX_TO_RESUME_DRIVER).l,d3 ; Once oil starvation is activated, throttle must close to this value before maximum speed is incremented. ; Percent bcc.s loc_80FA6 clr.b (byte_FFFFAB80).w clr.b (byte_FFFFAB90).w loc_80FA6: ; CODE XREF: sub_80B94+3DAj ; sub_80B94+3E6j ... move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d3 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type moveq #2,d5 cmp.b d3,d5 bne.s loc_8100C move.w (word_FFFFAB82).w,d3 tst.b (byte_FFFFAB80).w bne.s loc_80FDE move.b #1,(byte_FFFFAB87).w move.w (VEH_SPEED_KE_VEHICLE_SPEED_LIMIT).l,d4 ; limit below which the ETC governor attempts to keep the vehicle speed ; MPH cmp.w d4,d3 bcc.s loc_81004 add.w (OISTER_KE_OIL_SPEED_LIMIT_INCREASE).l,d3 ; Delta MPH increase of ETC vehicle speed governor when engine oil starvation protection mode is NOT enabled. ; MPH cmpi.w #$7FFF,d3 bls.s loc_81006 move.w #$7FFF,d3 bra.s loc_81006 ; --------------------------------------------------------------------------- loc_80FDE: ; CODE XREF: sub_80B94+426j tst.b (byte_FFFFAB87).w beq.s loc_80FEE clr.b (byte_FFFFAB87).w move.w (word_FFFFAEBC).w,d3 bra.s loc_81006 ; --------------------------------------------------------------------------- loc_80FEE: ; CODE XREF: sub_80B94+44Ej move.w (OISTER_KE_OIL_MINIMUM_VEHICLE_SPEED).l,d4 ; Minimum ETC vehicle speed governor when the engine oil starvation protection mode is enabled. ; MPH cmp.w d4,d3 bls.s loc_81004 sub.w (OISTER_KE_OIL_SPEED_LIMIT_DECREASE).l,d3 ; Delta MPH decrease of ETC vehicle speed governor when engine oil starvation protection mode is enabled. ; MPH bcc.s loc_81006 clr.w d3 bra.s loc_81006 ; --------------------------------------------------------------------------- loc_81004: ; CODE XREF: sub_80B94+436j ; sub_80B94+462j move.l d4,d3 loc_81006: ; CODE XREF: sub_80B94+442j ; sub_80B94+448j ... move.w d3,(word_FFFFAB82).w bra.s loc_81058 ; --------------------------------------------------------------------------- loc_8100C: ; CODE XREF: sub_80B94+41Cj tst.b d3 bne.s loc_81058 tst.b (byte_FFFFAB80).w beq.s loc_8103E tst.b (byte_FFFFAB8C).w bne.s loc_81058 move.b #1,(byte_FFFFAB8C).w tst.b (byte_FFFFA3B8).w bne.s loc_81030 move.b #1,(byte_FFFFAB7E).w bra.s loc_81058 ; --------------------------------------------------------------------------- loc_81030: ; CODE XREF: sub_80B94+492j cmp.b (OISTER_KE_LOWEST_GEAR_ALLOWED_LIMIT).l,d5 ; Allows the limiting of oil starvation protection transmission upshifts. ; Gear bne.s loc_81058 move.b d5,(byte_FFFFAB7E).w bra.s loc_81058 ; --------------------------------------------------------------------------- loc_8103E: ; CODE XREF: sub_80B94+480j tst.b (byte_FFFFAB8C).w beq.s loc_81058 move.w (word_FFFFAEBC).w,d3 cmp.w (OISTER_KE_OIL_LOWEST_GEAR_RESET_SPEED).l,d3 ; Allows for the lowest gear possible to be reset to FIRST if the vehicle speed is below the cal. ; MPH bcc.s loc_81058 clr.b (byte_FFFFAB7E).w clr.b (byte_FFFFAB8C).w loc_81058: ; CODE XREF: sub_80B94+476j ; sub_80B94+47Aj ... movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_80B94 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_81060: ; CODE XREF: DoLoopG+E0p var_2 = -2 link a6,#-2 move.l a0,-(sp) movea.l #unk_FFABA2,a0 jsr sub_276F4 movea.l #unk_FFABA4,a0 jsr sub_276F4 btst #1,(byte_FFFF89A2).w bne.s loc_8108E btst #1,(byte_FFFF89A4).w beq.s loc_81096 loc_8108E: ; CODE XREF: sub_81060+24j ; sub_81060+13Ej clr.b (byte_FFFFAB8F).w bra.w loc_811A8 ; --------------------------------------------------------------------------- loc_81096: ; CODE XREF: sub_81060+2Cj move.b (byte_FFFFAB7F).w,d3 bne.w loc_81146 tst.b (byte_FFFFAB92).w bne.w loc_81146 move.w (EngineRPM_PID_000C___).w,d3 move.l #$1000,d4 cmp.w d3,d4 bls.s loc_810B8 clr.w d3 bra.s loc_810CE ; --------------------------------------------------------------------------- loc_810B8: ; CODE XREF: sub_81060+52j cmpi.w #$8000,d3 bcc.s loc_810CA andi.l #$FFFF,d3 sub.l d4,d3 lsr.w #3,d3 bra.s loc_810CE ; --------------------------------------------------------------------------- loc_810CA: ; CODE XREF: sub_81060+5Cj move.w #$E00,d3 loc_810CE: ; CODE XREF: sub_81060+56j ; sub_81060+68j movea.l #$F9C0,a2 tblu.w (a2),d3 andi.l #$FFFF,d3 cmp.l (dword_FFFFA72A).w,d3 ble.s loc_8113E move.w (word_FFFFABA2).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (OISTER_KE_OIL_PRESSURE_NOISE_REJECTION).l,d3 ; Time delay to ensure the oil pressure level has truly exceeded the enable or disable thresholds. ; Seconds bcs.w loc_811A8 tst.b (byte_FFFFAB89).w bge.s loc_81122 move.b (byte_FFFFAB89).w,d3 ext.w d3 ext.l d3 neg.l d3 tst.l d3 blt.s loc_8112C cmpi.l #$FF,d3 bhi.s loc_8111E cmpi.b #$7F,d3 ; '' bls.s loc_8112E loc_8111E: ; CODE XREF: sub_81060+B6j moveq #$7F,d3 ; '' bra.s loc_8112E ; --------------------------------------------------------------------------- loc_81122: ; CODE XREF: sub_81060+A0j move.b (byte_FFFFAB89).w,d3 cmpi.b #$7F,d3 ; '' bls.s loc_8112E loc_8112C: ; CODE XREF: sub_81060+AEj clr.b d3 loc_8112E: ; CODE XREF: sub_81060+BCj ; sub_81060+C0j ... cmp.b (OISTER_KE_OIL_PRESSURE_G_ENABLE).l,d3 ; Lateral acceleration threshold to enable protection mode based on low oil pressure detection. ; Gs_B_U bcs.s loc_811A8 move.b #1,(byte_FFFFAB8F).w bra.s loc_811A8 ; --------------------------------------------------------------------------- loc_8113E: ; CODE XREF: sub_81060+82j move.w (GlobalClock).w,(word_FFFFABA2).w bra.s loc_811A8 ; --------------------------------------------------------------------------- loc_81146: ; CODE XREF: sub_81060+3Aj ; sub_81060+42j tst.b d3 beq.s loc_811A8 move.w (EngineRPM_PID_000C___).w,d3 move.l #$1000,d4 cmp.w d3,d4 bls.s loc_8115C clr.w d3 bra.s loc_81172 ; --------------------------------------------------------------------------- loc_8115C: ; CODE XREF: sub_81060+F6j cmpi.w #$8000,d3 bcc.s loc_8116E andi.l #$FFFF,d3 sub.l d4,d3 lsr.w #3,d3 bra.s loc_81172 ; --------------------------------------------------------------------------- loc_8116E: ; CODE XREF: sub_81060+100j move.w #$E00,d3 loc_81172: ; CODE XREF: sub_81060+FAj ; sub_81060+10Cj movea.l #$F9A2,a2 tblu.w (a2),d3 andi.l #$FFFF,d3 cmp.l (dword_FFFFA72A).w,d3 bge.s loc_811A2 move.w (word_FFFFABA4).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (OISTER_KE_OIL_PRESSURE_NOISE_REJECTION).l,d3 ; Time delay to ensure the oil pressure level has truly exceeded the enable or disable thresholds. ; Seconds bcs.s loc_811A8 bra.w loc_8108E ; --------------------------------------------------------------------------- loc_811A2: ; CODE XREF: sub_81060+126j move.w (GlobalClock).w,(word_FFFFABA4).w loc_811A8: ; CODE XREF: sub_81060+32j ; sub_81060+98j ... clr.l d3 move.w (word_FFFFABA8).w,d3 cmp.l (EngineRunTime).w,d3 bcc.s loc_811E4 tst.b (byte_FFFFAB8D).w bne.s loc_811E4 move.b (byte_FFFFAB8F).w,d3 or.b (byte_FFFFAB8E).w,d3 beq.s loc_811E4 move.w (word_FFFFAEBE).w,d3 cmp.w (OISTER_KE_MINIMUM_VEHICLE_SPEED_FOR_OIS).l,d3 ; Minimum vehicle speed to allow the conditions to exist for oil starvation protection. ; MPH bls.s loc_811E4 move.w (word_FFFFAEBE).w,d3 cmp.w (OISTER_KE_MAXIMUM_VEHICLE_SPEED_FOR_OIS).l,d3 ; Maximum vehicle speed to allow the conditions to exist for oil starvation protection. ; MPH bcc.s loc_811E4 move.b #1,(byte_FFFFAB7F).w bra.s loc_811E8 ; --------------------------------------------------------------------------- loc_811E4: ; CODE XREF: sub_81060+152j ; sub_81060+158j ... clr.b (byte_FFFFAB7F).w loc_811E8: ; CODE XREF: sub_81060+182j tst.b (byte_FFFF90D1).w beq.s loc_811FA moveq #1,d3 move.b d3,(byte_FFFFAB92).w move.b d3,(byte_FFFFAB8D).w bra.s loc_81204 ; --------------------------------------------------------------------------- loc_811FA: ; CODE XREF: sub_81060+18Cj clr.b (byte_FFFFAB8D).w move.b (byte_FFFF90F0).w,(byte_FFFFAB92).w loc_81204: ; CODE XREF: sub_81060+198j movea.l (sp)+,a0 unlk a6 rts ; End of function sub_81060 ; =============== S U B R O U T I N E ======================================= sub_8120A: ; CODE XREF: OS1:00028EDEp andi.w #$FF,d0 movea.l off_89EDC(d0.w*4),a2 jmp (a2) ; End of function sub_8120A ; --------------------------------------------------------------------------- loc_81218: ; DATA XREF: OS4:00089EE4o ; OS4:00089EE8o ... clr.b (byte_FFFFAB89).w clr.w (word_FFFFAB9C).w move.w #$6666,(word_FFFFAB9E).w clr.b (byte_FFFFAB87).w clr.b (byte_FFFFAB8C).w clr.b (byte_FFFFAB80).w clr.b (byte_FFFFAB7F).w clr.b (byte_FFFFAB84).w clr.b (byte_FFFFAB86).w clr.b (byte_FFFFAB85).w clr.b (byte_FFFFAB90).w bra.s loc_81272 ; --------------------------------------------------------------------------- loc_81248: ; DATA XREF: OS4:off_89EDCo ; OS4:00089EF8o ... clr.b (byte_FFFFAB89).w clr.w (4294945692).w move.w #$6666,(word_FFFFAB9E).w clr.b (byte_FFFFAB87).w clr.b (byte_FFFFAB8C).w clr.b (byte_FFFFAB80).w clr.b (byte_FFFFAB7F).w clr.b (byte_FFFFAB84).w clr.b (byte_FFFFAB86).w clr.b (byte_FFFFAB85).w loc_81272: ; CODE XREF: OS4:00081246j clr.b (byte_FFFFAB8E).w clr.b (byte_FFFFAB8F).w clr.b (byte_FFFFAB8D).w clr.b (byte_FFFFAB92).w move.w (word_FFFFADB6).w,d3 addi.w #$400,d3 movea.l #$F97C,a2 tblu.w (a2),d3 move.w d3,(word_FFFFABA8).w move.w (VEH_SPEED_KE_VEHICLE_SPEED_LIMIT).l,(word_FFFFAB82).w ; limit below which the ETC governor attempts to keep the vehicle speed ; MPH clr.b (byte_FFFFAB7E).w move.w (GlobalClock).w,(word_FFFFABA4).w move.w (GlobalClock).w,(word_FFFFABA2).w move.w (OISTER_KE_DRIVER_WARNING_DELAY_TIME).l,(word_FFFFAB94).w ; Driver notification to powertrain action delay time. ; Seconds move.w (OISTER_KE_HIGH_G_MINIMUM_TIME).l,(word_FFFFAB98).w ; Minimum amount of time a high lateral acceleration manuever must be sustained before any powertrain action will take place. ; Seconds move.b (OISTER_KE_PROTECTION_G_HIGH_HYSTERESIS).l,(byte_FFFFAB88).w ; Above this value will enable the High G Timer FOR skid pad testing detection. ; Gs_B_U bra.s locret_81342 ; --------------------------------------------------------------------------- loc_812CA: ; DATA XREF: OS4:00089EE0o ; OS4:00089EECo ... clr.b (4294945673).w clr.w (4294945692).w move.w #$6666,(word_FFFFAB9E).w clr.b (byte_FFFFAB87).w clr.b (byte_FFFFAB8C).w clr.b (byte_FFFFAB80).w clr.b (byte_FFFFAB7F).w clr.b (byte_FFFFAB84).w clr.b (byte_FFFFAB86).w clr.b (byte_FFFFAB85).w clr.b (byte_FFFFAB8E).w clr.b (byte_FFFFAB8F).w clr.b (byte_FFFFAB8D).w clr.b (byte_FFFFAB92).w move.w (word_FFFFADB6).w,d3 addi.w #$400,d3 movea.l #$F97C,a2 tblu.w (a2),d3 move.w d3,(word_FFFFABA8).w move.w (VEH_SPEED_KE_VEHICLE_SPEED_LIMIT).l,(word_FFFFAB82).w ; limit below which the ETC governor attempts to keep the vehicle speed ; MPH clr.b (byte_FFFFAB7E).w move.w (GlobalClock).w,(word_FFFFABA4).w move.w (GlobalClock).w,(word_FFFFABA2).w move.w (OISTER_KE_DRIVER_WARNING_DELAY_TIME).l,(word_FFFFAB94).w ; Driver notification to powertrain action delay time. ; Seconds move.w (OISTER_KE_HIGH_G_MINIMUM_TIME).l,(word_FFFFAB98).w ; Minimum amount of time a high lateral acceleration manuever must be sustained before any powertrain action will take place. ; Seconds locret_81342: ; CODE XREF: OS4:000812C8j ; DATA XREF: OS4:00089EF0o rts ; =============== S U B R O U T I N E ======================================= sub_81344: ; CODE XREF: OS1:000289E8p movem.l d1-d2/a0-a1,-(sp) andi.w #$FF,d0 movea.l off_89DEC(d0.w*4),a2 jmp (a2) ; End of function sub_81344 ; --------------------------------------------------------------------------- loc_81356: ; DATA XREF: OS4:00089DF4o jsr sub_819C2 tst.b (byte_FFFFB54A).w bne.s loc_81386 movea.w #$60,a1 ; '`' move.w a1,(dword_FFFF81F2).w move.w a1,(dword_FFFF81F6).w move.w a1,(dword_FFFF81F2+2).w move.w a1,(dword_FFFF81F6+2).w clr.l (dword_FFFF81FE).w clr.l (dword_FFFF81FA).w clr.l (dword_FFFF81EE).w clr.l (dword_FFFF81EA).w loc_81386: ; CODE XREF: OS4:00081360j clr.b d1 move.w #$152,d0 jsr (sub_1122).l clr.w d0 loc_81394: ; CODE XREF: OS4:000813E2j clr.l d3 move.b d0,d3 movea.w d3,a0 move.l d3,d5 mulu.w #$24,d5 ; '$' lea $FCF8.l(d5.l),a2 movea.w #$1100,a3 clr.w d4 move.w dword_FFFF81FA(d3.w*2),d3 cmpi.w #$FB80,d3 bge.s loc_813BE move.l d4,d3 bra.s loc_813D2 ; --------------------------------------------------------------------------- loc_813BE: ; CODE XREF: OS4:000813B8j cmpi.w #$400,d3 bge.s loc_813CE addi.w #$480,d3 ext.l d3 add.l d3,d3 bra.s loc_813D2 ; --------------------------------------------------------------------------- loc_813CE: ; CODE XREF: OS4:000813C2j move.w #$1100,d3 loc_813D2: ; CODE XREF: OS4:000813BCj ; OS4:000813CCj tbls.w (a2),d3 move.w d3,unk_FFFF9F40(a0.w*2) addq.b #1,d0 cmpi.b #3,d0 bls.s loc_81394 bra.w loc_8146A ; --------------------------------------------------------------------------- loc_813E8: ; DATA XREF: OS4:00089DFCo clr.w d2 move.l #505,d1 moveq #$20,d0 ; ' ' jsr (sub_16FA).l clr.w d2 move.l #$1F9,d1 moveq #$22,d0 ; '"' jsr (sub_16FA).l clr.w d2 move.l #$1F9,d1 moveq #$24,d0 ; '$' jsr (sub_16FA).l clr.w d2 bra.s loc_8145C ; --------------------------------------------------------------------------- loc_8141C: ; DATA XREF: OS4:00089E0Co jsr sub_818F0 move.w (word_FFFF9F34).w,d2 move.l #$1F9,d1 moveq #$20,d0 ; ' ' jsr (sub_16FA).l move.w (word_FFFF9F38).w,d2 move.l #$1F9,d1 moveq #$22,d0 ; '"' jsr (sub_16FA).l move.w (word_FFFF9F36).w,d2 move.l #$1F9,d1 moveq #$24,d0 ; '$' jsr (sub_16FA).l move.w (word_FFFF9F3A).w,d2 loc_8145C: ; CODE XREF: OS4:0008141Aj move.l #$1F9,d1 moveq #$26,d0 ; '&' jsr (sub_16FA).l loc_8146A: ; CODE XREF: OS4:000813E4j ; DATA XREF: OS4:off_89DECo ... movem.l (sp)+,d1-d2/a0-a1 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_81470: ; CODE XREF: DoLoopC+58p var_7E30 = -$7E30 var_7E20 = -$7E20 var_6106 = -$6106 var_60FE = -$60FE var_60F6 = -$60F6 var_60DA = -$60DA var_2 = -2 link a6,#-2 movem.l d0-d2/d6-a0,-(sp) clr.w d0 move.b d0,var_2(a6) loc_8147E: ; CODE XREF: sub_81470+254j clr.w d6 move.b var_2(a6),d6 tst.b -$610E(d6.w) beq.w loc_816B6 btst #7,-$60C4(d6.w) bne.w loc_816B6 jsr sub_81A56 movea.l (dword_FFFFB5DE).w,a0 clr.w d0 move.b var_2(a6),d0 move.w unk_FFFF9F1C(d0.w*2),d7 add.w $A(a0),d7 bcc.s loc_814BA move.w #$FFFF,d7 loc_814BA: ; CODE XREF: sub_81470+44j move.w d7,$1A+var_60FE(d6.w*2) tst.w word_FFFF9EEA(d6.w*2) beq.s loc_81544 clr.w d0 move.b var_2(a6),d0 move.w (word_FFFFB4A2).w,d1 sub.w OXYGEN_SENSOR_KV_O2_HEATER_CKT_VOLTAGE_ADJ.l(d0.w*2),d1 bcc.s loc_814DE clr.w d1 loc_814DE: ; CODE XREF: sub_81470+6Aj clr.w d0 move.b var_2(a6),d0 andi.l #$FFFF,d1 asl.l #8,d1 add.l d1,d1 divu.w word_FFFF9EEA(d0.w*2),d1 bvs.s loc_814FA tst.w d1 bge.s loc_814FE loc_814FA: ; CODE XREF: sub_81470+84j move.w #$7FFF,d1 loc_814FE: ; CODE XREF: sub_81470+88j cmp.w OXYGEN_SENSOR_KV_HEATER_INRUSH_RESIST_MAX.l(d6.w*2),d1 bgt.s loc_81544 cmp.w (OXYGEN_SENSOR_KE_INRUSH_CURRENT_STABILIZE_TIME).l,d7 bcs.s loc_81544 btst #6,-$60C4(d6.w) bne.s loc_8152A move.w d1,$1A+var_60F6(d6.w*2) bset #6,-$60C4(d6.w) bra.s loc_81544 ; --------------------------------------------------------------------------- loc_8152A: ; CODE XREF: sub_81470+A8j movea.w d6,a0 move.w unk_FFFF9F24(d6.w*2),d2 move.w (OXYGEN_SENSOR_KE_HEATER_INRUSH_OHMS_FILT_COEF).l,d0 ; The coefficient to filter the heater inrush resistance. ; Filt Coef jsr sub_26608 move.w d0,$1A+var_60F6(a0.w*2) loc_81544: ; CODE XREF: sub_81470+56j ; sub_81470+96j ... cmp.w (OXYGEN_SENSOR_KE_HEATER_ON_SAMPLE_DELAY).l,d7 ; The delay after the heaters are turned on during which part learning samples are being taken. ; Seconds bcs.w loc_816B6 bset #7,-$60C4(d6.w) move.w (CoolantTemperatureOrDefault).w,d3 sub.w (word_FFFFB3E8).w,d3 cmpi.w #$DFF,d3 bgt.s loc_8156C cmpi.w #$FC00,d3 blt.s loc_81572 bra.s loc_81576 ; --------------------------------------------------------------------------- loc_8156C: ; CODE XREF: sub_81470+F2j move.w #$DFF,d3 bra.s loc_81576 ; --------------------------------------------------------------------------- loc_81572: ; CODE XREF: sub_81470+F8j move.w #$FC00,d3 loc_81576: ; CODE XREF: sub_81470+FAj ; sub_81470+100j move.l (dword_FFFFBF12).w,d4 cmp.l (OXYGEN_SENSOR_KE_O2_HEATER_REZERO_OFF_TIME).l,d4 ; The minimum amount of time that the engine has been off to allow a O2 sensor limit part error learn. ; Seconds bcs.w loc_816B6 cmp.w (OXYGEN_SENSOR_KE_O2_HEATER_REZERO_TEMP_DIFF).l,d3 ; The maximum temperature difference between ambient and coolant to allow a O2 sensor limit part error learn. ; Degrees_C bge.w loc_816B6 btst #1,(byte_FFFF8AA2).w bne.w loc_816B6 btst #6,(byte_FFFF8255).w bne.w loc_816B6 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (OXYGEN_SENSOR_KE_RCOHT_LEARN_COOLANT_TEMP_MAX).l,d3 ; The maximum coolant temperature to allow a O2 sensor limit part error learn. ; Degrees_C bge.w loc_816B6 move.w (CoolantTemperatureOrDefault).w,d3 cmp.w (OXYGEN_SENSOR_KE_RCOHT_LEARN_COOLANT_TEMP_MIN).l,d3 ; The minimum coolant temperature to allow O2 sensor limit part error learn. ; Degrees_C ble.w loc_816B6 btst #5,(byte_FFFF8253).w bne.w loc_816B6 clr.l d3 move.w (OXYGEN_SENSOR_KE_LIMIT_LEARN_RUN_TIME_ABORT).l,d3 ; The amount of time allowed for a limit part learn since engine run. ; Seconds cmp.l (EngineRunTime).w,d3 bls.w loc_816B6 move.w (CoolantTemperatureOrDefault).w,d3 sub.w (OXYGEN_SENSOR_KE_O2_HEATER_ROOM_TEMP).l,d3 ; The temperature offset used in the linear resistance temperature equation. ; Degrees_C ext.l d3 asl.l #8,d3 add.l d3,d3 divs.w unk_FFFF9F40(d6.w*2),d3 add.w OXYGEN_SENSOR_KV_O2_HEATER_ROOM_TEMP_RESIST.l(d6.w*2),d3 move.w d3,$1A+var_6106(d6.w*2) clr.w d0 move.b var_2(a6),d0 sub.w unk_FFFF9F24(d0.w*2),d3 bvc.s loc_81616 bpl.s loc_81612 move.w #$7FFF,d3 bra.s loc_81616 ; --------------------------------------------------------------------------- loc_81612: ; CODE XREF: sub_81470+19Aj move.w #$8000,d3 loc_81616: ; CODE XREF: sub_81470+198j ; sub_81470+1A0j cmp.w OXYGEN_SENSOR_KV_LIMIT_PART_ERROR_MIN.l(d6.w*2),d3 blt.s loc_81696 cmp.w OXYGEN_SENSOR_KV_LIMIT_PART_ERROR_MAX.l(d6.w*2),d3 bgt.s loc_81696 clr.w dword_FFFF81EA(d6.w*2) move.w (CoolantTemperatureOrDefault).w,d4 sub.w (word_FFFFB3E8).w,d4 tst.w d4 bge.s loc_8163E neg.w d4 loc_8163E: ; CODE XREF: sub_81470+1CAj cmpi.w #$DFF,d4 ble.s loc_81648 move.w #$DFF,d4 loc_81648: ; CODE XREF: sub_81470+1D2j cmp.w (OXYGEN_SENSOR_KE_LPL_ABS_TEMP_DIFF).l,d4 bge.s loc_816B0 move.w d3,$1A+var_7E20(d6.w*2) movea.w d6,a0 move.l d6,d0 mulu.w #$24,d0 ; '$' lea $FCF8.l(d0.l),a2 move.w dword_FFFF81FA(d6.w*2),d3 cmpi.w #$FB80,d3 bge.s loc_81676 clr.w d3 bra.s loc_8168A ; --------------------------------------------------------------------------- loc_81676: ; CODE XREF: sub_81470+200j cmpi.w #$400,d3 bge.s loc_81686 addi.w #$480,d3 ext.l d3 add.l d3,d3 bra.s loc_8168A ; --------------------------------------------------------------------------- loc_81686: ; CODE XREF: sub_81470+20Aj move.w #$1100,d3 loc_8168A: ; CODE XREF: sub_81470+204j ; sub_81470+214j tbls.w (a2),d3 move.w d3,$1A+var_60DA(a0.w*2) bra.s loc_816B0 ; --------------------------------------------------------------------------- loc_81696: ; CODE XREF: sub_81470+1AEj ; sub_81470+1B8j clr.w d0 move.b var_2(a6),d0 move.w dword_FFFF81EA(d0.w*2),d3 addq.w #1,d3 bcc.s loc_816AA move.w #$FFFF,d3 loc_816AA: ; CODE XREF: sub_81470+234j move.w d3,$1A+var_7E30(d6.w*2) loc_816B0: ; CODE XREF: sub_81470+1DEj ; sub_81470+224j jsr sub_818F0 loc_816B6: ; CODE XREF: sub_81470+1Aj ; sub_81470+26j ... move.b var_2(a6),d3 addq.b #1,d3 move.b d3,var_2(a6) cmpi.b #3,d3 bls.w loc_8147E movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_81470 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_816D0: ; CODE XREF: DoLoopE:loc_2A9E8p var_8 = -8 var_4 = -4 link a6,#-8 movem.l d0-d2/d6-a0,-(sp) move.b (byte_FFFF9EF6).w,d3 and.b (byte_FFFF9F10).w,d3 beq.s loc_816FA jsr sub_81A56 clr.b (byte_FFFF9EF6).w tst.b (byte_FFFF9F0E).w beq.s loc_816FA clr.b (byte_FFFF9F10).w clr.b (byte_FFFF9F0E).w loc_816FA: ; CODE XREF: sub_816D0+10j ; sub_816D0+20j move.w (word_FFFF9F34).w,var_8(a6) move.w (word_FFFF9F36).w,var_8+2(a6) move.w (word_FFFF9F38).w,var_4(a6) move.w (word_FFFF9F3A).w,var_4+2(a6) move.b (byte_FFFF9F10).w,d6 beq.s loc_81768 tst.b (byte_FFFF9F0F).w bne.s loc_81726 move.w #$352,(word_FFFF9F12).w bra.s loc_8172C ; --------------------------------------------------------------------------- loc_81726: ; CODE XREF: sub_816D0+4Cj subi.w #$32,(word_FFFF9F12).w ; '2' loc_8172C: ; CODE XREF: sub_816D0+54j move.w (word_FFFF9F12).w,d3 cmpi.w #$64,d3 ; 'd' bne.s loc_81752 movea.w #$1400,a0 move.w a0,var_8(a6) move.w a0,var_8+2(a6) move.w a0,var_4(a6) move.w a0,var_4+2(a6) move.b #1,(byte_FFFF9EF6).w bra.s loc_81768 ; --------------------------------------------------------------------------- loc_81752: ; CODE XREF: sub_816D0+64j tst.w d3 bhi.s loc_81768 clr.l var_4(a6) clr.l var_8(a6) moveq #1,d7 move.b d7,(byte_FFFF9EF6).w move.b d7,(byte_FFFF9F0E).w loc_81768: ; CODE XREF: sub_816D0+46j ; sub_816D0+80j ... move.w var_8(a6),d2 move.l #$1F9,d1 moveq #$20,d0 ; ' ' jsr (sub_16FA).l move.w var_4(a6),d2 move.l #$1F9,d1 moveq #$22,d0 ; '"' jsr (sub_16FA).l move.w var_8+2(a6),d2 move.l #$1F9,d1 moveq #$24,d0 ; '$' jsr (sub_16FA).l move.w var_4+2(a6),d2 move.l #$1F9,d1 moveq #$26,d0 ; '&' jsr (sub_16FA).l move.b d6,(byte_FFFF9F0F).w movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_816D0 ; =============== S U B R O U T I N E ======================================= sub_817BC: ; CODE XREF: DoLoopG+130p var_6120 = -$6120 var_60EC = -$60EC movem.l d0-d2/d6-a0,-(sp) tst.b (byte_FFFF9F0D).w beq.w loc_818E4 clr.w d6 loc_817CA: ; CODE XREF: sub_817BC+FEj clr.l d7 move.b d6,d7 move.w word_FFFF9EEA(d7.w*2),d1 cmp.w (OXYGEN_SENSOR_KE_MEASURED_HEATER_CURRENT_MIN).l,d1 ; The current below which values are considered to be invalid. ; Heater_Amps bls.w loc_818B4 btst #7,-$60C4(d7.w) beq.w loc_818B4 clr.l d2 move.b d6,d2 move.w (word_FFFFB4A2).w,d1 sub.w OXYGEN_SENSOR_KV_O2_HEATER_CKT_VOLTAGE_ADJ.l(d2.w*2),d1 bcc.s loc_817FE clr.w d1 loc_817FE: ; CODE XREF: sub_817BC+3Ej clr.l d2 move.b d6,d2 andi.l #$FFFF,d1 asl.l #8,d1 add.l d1,d1 divu.w word_FFFF9EEA(d2.w*2),d1 bvs.s loc_81818 tst.w d1 bge.s loc_8181C loc_81818: ; CODE XREF: sub_817BC+56j move.w #$7FFF,d1 loc_8181C: ; CODE XREF: sub_817BC+5Aj btst #5,-$60C4(d7.w) bne.s loc_81836 move.w d1,$18+var_60EC(d7.w*2) bset #5,-$60C4(d7.w) bra.s loc_81850 ; --------------------------------------------------------------------------- loc_81836: ; CODE XREF: sub_817BC+68j movea.w d7,a0 move.w unk_FFFF9F2C(d7.w*2),d2 move.w (OXYGEN_SENSOR_KE_HEATER_OHMS_FILTER_COEF).l,d0 ; The coefficient to filter the heater Resistance. ; Filter Coef jsr sub_26608 move.w d0,$18+var_60EC(a0.w*2) loc_81850: ; CODE XREF: sub_817BC+78j clr.l d2 move.b d6,d2 clr.l d1 move.b d6,d1 move.w unk_FFFF9F2C(d1.w*2),d3 add.w dword_FFFF81FA(d2.w*2),d3 bvs.s loc_81874 clr.l d2 move.b d6,d2 sub.w OXYGEN_SENSOR_KV_O2_HEATER_ROOM_TEMP_RESIST.l(d2.w*2),d3 bvc.s loc_81880 loc_81874: ; CODE XREF: sub_817BC+A8j bpl.s loc_8187C move.w #$7FFF,d3 bra.s loc_81880 ; --------------------------------------------------------------------------- loc_8187C: ; CODE XREF: sub_817BC:loc_81874j move.w #$8000,d3 loc_81880: ; CODE XREF: sub_817BC+B6j ; sub_817BC+BEj clr.l d2 move.b d6,d2 muls.w unk_FFFF9F40(d2.w*2),d3 move.w #$200,d0 divs.w d0,d3 bvc.s loc_8189A swap d3 eor.w d0,d3 bmi.s loc_818AA bra.s loc_818A4 ; --------------------------------------------------------------------------- loc_8189A: ; CODE XREF: sub_817BC+D4j add.w (OXYGEN_SENSOR_KE_O2_HEATER_ROOM_TEMP).l,d3 ; The temperature offset used in the linear resistance temperature equation. ; Degrees_C bvc.s loc_818AE bpl.s loc_818AA loc_818A4: ; CODE XREF: sub_817BC+DCj move.w #$7FFF,d3 bra.s loc_818AE ; --------------------------------------------------------------------------- loc_818AA: ; CODE XREF: sub_817BC+DAj ; sub_817BC+E6j move.w #$8000,d3 loc_818AE: ; CODE XREF: sub_817BC+E4j ; sub_817BC+ECj move.w d3,$18+var_6120(d7.w*2) loc_818B4: ; CODE XREF: sub_817BC+1Ej ; sub_817BC+2Aj addq.b #1,d6 cmpi.b #3,d6 bls.w loc_817CA move.b #1,(byte_FFFF9F10).w move.w #$640,d0 movea.l #unk_FF9F50,a0 jsr sub_276D4 tst.b d0 beq.s loc_818E4 moveq #1,d1 move.w #$152,d0 jsr (sub_1122).l loc_818E4: ; CODE XREF: sub_817BC+8j ; sub_817BC+11Aj jsr sub_818F0 movem.l (sp)+,d0-d2/d6-a0 rts ; End of function sub_817BC ; =============== S U B R O U T I N E ======================================= sub_818F0: ; CODE XREF: OS4:loc_8141Cp ; sub_81470:loc_816B0p ... var_6116 = -$6116 var_60D4 = -$60D4 movem.l d0-d1,-(sp) clr.w d1 loc_818F6: ; CODE XREF: sub_818F0+BCj clr.w d0 clr.l d3 move.b d1,d3 tst.b $FCDC.l(d3.w) beq.s loc_8197E move.w (word_FFFFB4A2).w,d4 cmp.w (OXYGEN_SENSOR_KE_O2_HEATER_OVERVOLTAGE_LIMIT).l,d4 ; Ignition voltage greater than or equal to this value will shut the heaters off to protect against overvoltage. ; Volts bcc.s loc_8197E btst #7,(word_FFFFA7DC).w beq.s loc_81924 btst #0,(word_FFFFA7E2).w beq.s loc_8197E bra.s loc_81958 ; --------------------------------------------------------------------------- loc_81924: ; CODE XREF: sub_818F0+28j moveq #3,d5 cmp.b (ThrottleControlMode2?).w,d5 bne.s loc_8197E btst #7,-$60C4(d3.w) beq.s loc_8197A move.w (word_FFFFADB6).w,d4 cmp.w (OXYGEN_SENSOR_KE_POST_O2_HTR_STARTUP_COOL_MIN).l,d4 bgt.s loc_81950 move.l (EngineRunTime).w,d4 cmp.l OXYGEN_SENSOR_KV_COLD_O2_HEATER_DELAY.l(d3.w*4),d4 bcs.s loc_8197E loc_81950: ; CODE XREF: sub_818F0+50j tst.b -$610E(d3.w) beq.s loc_8196A loc_81958: ; CODE XREF: sub_818F0+32j move.w unk_FFFF9EF8(d3.w*2),d4 cmp.w OXYGEN_SENSOR_KV_O2_HEATER_TURN_OFF_TEMP.l(d3.w*2),d4 bge.s loc_8197E bra.s loc_8197A ; --------------------------------------------------------------------------- loc_8196A: ; CODE XREF: sub_818F0+66j move.w unk_FFFF9EF8(d3.w*2),d4 cmp.w OXYGEN_SENSOR_KV_O2_HEATER_TURN_ON_TEMP.l(d3.w*2),d4 bgt.s loc_8197E loc_8197A: ; CODE XREF: sub_818F0+44j ; sub_818F0+78j move.w #$1400,d0 loc_8197E: ; CODE XREF: sub_818F0+14j ; sub_818F0+20j ... move.w d0,8+var_60D4(d3.w*2) tst.w d0 shi d4 neg.b d4 move.b d4,8+var_6116(d3.w) tst.b d4 beq.s loc_819A6 tst.b (byte_FFFF9F0D).w bne.s loc_819A6 move.w (GlobalClock).w,(word_FFFF9F50).w move.b #1,(byte_FFFF9F0D).w loc_819A6: ; CODE XREF: sub_818F0+A2j ; sub_818F0+A8j addq.b #1,d1 cmpi.b #3,d1 bls.w loc_818F6 move.b (byte_FFFF9EF2).w,d3 or.b (byte_FFFF9EF4).w,d3 move.b d3,(byte_FFFF9F0C).w movem.l (sp)+,d0-d1 rts ; End of function sub_818F0 ; =============== S U B R O U T I N E ======================================= sub_819C2: ; CODE XREF: DoLoopC:loc_2A2A4p ; OS4:loc_81356p move.w (word_FFFFF2F4).w,d3 lsr.w #2,d3 asl.w #8,d3 mulu.w (OXYGEN_SENSOR_KE_OXYGEN_SENSOR_SCALE_FACTOR).l,d3 ; Used to scale oxygen sensor analog input. ; mV_per_AD_Count lsr.l #8,d3 lsr.l #8,d3 cmpi.w #$7FFF,d3 bls.s loc_819DE move.w #$7FFF,d3 loc_819DE: ; CODE XREF: sub_819C2+16j move.w d3,(word_FFFF9F00).w move.w (word_FFFFF2EA).w,d3 lsr.w #2,d3 asl.w #8,d3 mulu.w (OXYGEN_SENSOR_KE_OXYGEN_SENSOR_SCALE_FACTOR).l,d3 ; Used to scale oxygen sensor analog input. ; mV_per_AD_Count lsr.l #8,d3 lsr.l #8,d3 cmpi.w #$7FFF,d3 bls.s loc_819FE move.w #$7FFF,d3 loc_819FE: ; CODE XREF: sub_819C2+36j move.w d3,(word_FFFF9F02).w cmpi.b #1,(OXYGEN_SENSOR_KE_PRE_O2_SENSORS).l ; Determines the number of pre O2 sensors used in the system. ; 1-2 bne.s loc_81A14 move.w (word_FFFF9F00).w,(word_FFFF9F06).w bra.s loc_81A34 ; --------------------------------------------------------------------------- loc_81A14: ; CODE XREF: sub_819C2+48j move.w (word_FFFFF2F6).w,d3 lsr.w #2,d3 asl.w #8,d3 mulu.w (OXYGEN_SENSOR_KE_OXYGEN_SENSOR_SCALE_FACTOR).l,d3 ; Used to scale oxygen sensor analog input. ; mV_per_AD_Count lsr.l #8,d3 lsr.l #8,d3 cmpi.w #$7FFF,d3 bls.s loc_81A30 move.w #$7FFF,d3 loc_81A30: ; CODE XREF: sub_819C2+68j move.w d3,(word_FFFF9F06).w loc_81A34: ; CODE XREF: sub_819C2+50j move.w (word_FFFFF2EC).w,d3 lsr.w #2,d3 asl.w #8,d3 mulu.w (OXYGEN_SENSOR_KE_OXYGEN_SENSOR_SCALE_FACTOR).l,d3 ; Used to scale oxygen sensor analog input. ; mV_per_AD_Count lsr.l #8,d3 lsr.l #8,d3 cmpi.w #$7FFF,d3 bls.s loc_81A50 move.w #$7FFF,d3 loc_81A50: ; CODE XREF: sub_819C2+88j move.w d3,(word_FFFF9F08).w rts ; End of function sub_819C2 ; =============== S U B R O U T I N E ======================================= sub_81A56: ; CODE XREF: sub_81470+2Ap ; sub_816D0+12p move.b (byte_FFFF9F0E).w,d4 beq.s loc_81A64 clr.l (dword_FFFF81F6).w clr.l (dword_FFFF81F2).w loc_81A64: ; CODE XREF: sub_81A56+4j move.w (word_FFFFF2E6).w,(word_FFFF9F48).w move.w (word_FFFF9F48).w,d3 move.w #$141,d5 mulu.w d5,d3 lsr.l #7,d3 sub.w (dword_FFFF81F2).w,d3 bcc.s loc_81A7E clr.w d3 loc_81A7E: ; CODE XREF: sub_81A56+24j tst.b d4 beq.s loc_81A88 move.w d3,(dword_FFFF81F2).w bra.s loc_81A8C ; --------------------------------------------------------------------------- loc_81A88: ; CODE XREF: sub_81A56+2Aj move.w d3,(word_FFFF9EEA).w loc_81A8C: ; CODE XREF: sub_81A56+30j move.w (word_FFFFF2E8).w,(word_FFFF9F4A).w move.w (word_FFFF9F4A).w,d3 mulu.w d5,d3 lsr.l #7,d3 sub.w (dword_FFFF81F6).w,d3 bcc.s loc_81AA2 clr.w d3 loc_81AA2: ; CODE XREF: sub_81A56+48j tst.b d4 beq.s loc_81AAC move.w d3,(dword_FFFF81F6).w bra.s loc_81AB0 ; --------------------------------------------------------------------------- loc_81AAC: ; CODE XREF: sub_81A56+4Ej move.w d3,(word_FFFF9EEE).w loc_81AB0: ; CODE XREF: sub_81A56+54j move.w (word_FFFFF2C4).w,(word_FFFF9F4C).w move.w (word_FFFF9F4C).w,d3 mulu.w d5,d3 lsr.l #7,d3 sub.w (dword_FFFF81F2+2).w,d3 bcc.s loc_81AC6 clr.w d3 loc_81AC6: ; CODE XREF: sub_81A56+6Cj tst.b d4 beq.s loc_81AD0 move.w d3,(dword_FFFF81F2+2).w bra.s loc_81AD4 ; --------------------------------------------------------------------------- loc_81AD0: ; CODE XREF: sub_81A56+72j move.w d3,(word_FFFF9EEC).w loc_81AD4: ; CODE XREF: sub_81A56+78j move.w (word_FFFFF2F0).w,(word_FFFF9F4E).w move.w (word_FFFF9F4E).w,d3 mulu.w d5,d3 lsr.l #7,d3 sub.w (dword_FFFF81F6+2).w,d3 bcc.s loc_81AEA clr.w d3 loc_81AEA: ; CODE XREF: sub_81A56+90j tst.b d4 beq.s loc_81AF4 move.w d3,(dword_FFFF81F6+2).w bra.s locret_81AF8 ; --------------------------------------------------------------------------- loc_81AF4: ; CODE XREF: sub_81A56+96j move.w d3,(word_FFFF9EF0).w locret_81AF8: ; CODE XREF: sub_81A56+9Cj rts ; End of function sub_81A56 ; =============== S U B R O U T I N E ======================================= sub_81AFA: ; CODE XREF: DoManyThings1+16p movem.l d0-d1,-(sp) move.b (byte_FFFFFA41).w,(byte_FFFFBF2E).w clr.b d1 moveq #$41,d0 ; 'A' jsr (sub_FC0).l clr.b d1 moveq #$43,d0 ; 'C' jsr (sub_FC0).l clr.b d1 moveq #$45,d0 ; 'E' jsr (sub_FC0).l clr.b d1 moveq #$4B,d0 ; 'K' jsr (sub_FC0).l clr.b d1 moveq #$48,d0 ; 'H' jsr (sub_FC0).l movem.l (sp)+,d0-d1 rts ; End of function sub_81AFA ; =============== S U B R O U T I N E ======================================= sub_81B3C: ; CODE XREF: sub_24716+1Cp ; sub_3622E+13Cp ... move.w d0,d4 move.w d4,d3 btst #0,d3 sne d3 neg.b d3 clr.b d0 cmpi.w #$7D,d4 ; '}' beq.s loc_81B7A cmpi.w #$76,d4 ; 'v' beq.s loc_81B8E cmpi.w #$67,d4 ; 'g' beq.s loc_81BA2 cmpi.w #$8B,d4 ; '?' bne.s loc_81BBA tst.b d3 beq.s loc_81B72 btst #5,(byte_FFFFD004).w loc_81B6C: ; CODE XREF: sub_81B3C+48j ; sub_81B3C+5Cj ... bne.s locret_81BC0 addq.b #1,d0 bra.s locret_81BC0 ; --------------------------------------------------------------------------- loc_81B72: ; CODE XREF: sub_81B3C+28j btst #5,(byte_FFFFD004).w bra.s loc_81BB4 ; --------------------------------------------------------------------------- loc_81B7A: ; CODE XREF: sub_81B3C+12j tst.b d3 beq.s loc_81B86 btst #6,(byte_FFFFD002).w bra.s loc_81B6C ; --------------------------------------------------------------------------- loc_81B86: ; CODE XREF: sub_81B3C+40j btst #6,(byte_FFFFD002).w bra.s loc_81BB4 ; --------------------------------------------------------------------------- loc_81B8E: ; CODE XREF: sub_81B3C+18j tst.b d3 beq.s loc_81B9A btst #3,(byte_FFFFD002).w bra.s loc_81B6C ; --------------------------------------------------------------------------- loc_81B9A: ; CODE XREF: sub_81B3C+54j btst #3,(byte_FFFFD002).w bra.s loc_81BB4 ; --------------------------------------------------------------------------- loc_81BA2: ; CODE XREF: sub_81B3C+1Ej tst.b d3 beq.s loc_81BAE btst #3,(byte_FFFFD000).w bra.s loc_81B6C ; --------------------------------------------------------------------------- loc_81BAE: ; CODE XREF: sub_81B3C+68j btst #3,(byte_FFFFD000).w loc_81BB4: ; CODE XREF: sub_81B3C+3Cj ; sub_81B3C+50j ... sne d0 neg.b d0 bra.s locret_81BC0 ; --------------------------------------------------------------------------- loc_81BBA: ; CODE XREF: sub_81B3C+24j jsr (sub_54C).l ; --------------------------------------------------------------------------- locret_81BC0: ; CODE XREF: sub_81B3C:loc_81B6Cj ; sub_81B3C+34j ... rts ; End of function sub_81B3C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_81BC2: ; CODE XREF: DoManyThings1+FEp ; DoManyThings1+104p ... var_6 = -6 var_4 = -4 var_2 = -2 link a6,#-6 movem.l d0-d1,-(sp) move.b (byte_FFFFBF48).w,(byte_FFFFBF49).w move.b (byte_FFFFBF30).w,(byte_FFFFBF48).w move.b (byte_FFFFBF4C).w,(byte_FFFFBF4D).w move.b (byte_FFFFBF31).w,(byte_FFFFBF4C).w move.b (byte_FFFFBF50).w,(byte_FFFFBF51).w move.b (byte_FFFFBF32).w,(byte_FFFFBF50).w move.b (byte_FFFFBF40).w,(byte_FFFFBF41).w move.b (byte_FFFFBF36).w,(byte_FFFFBF40).w move.b (byte_FFFFBF44).w,(byte_FFFFBF45).w move.b (byte_FFFFBF39).w,(byte_FFFFBF44).w move.b (byte_1642).w,d0 move.b (byte_FFFFFA11).w,d4 move.b (byte_FFFFBF2C).w,d3 move.l d0,d5 not.b d5 and.b d4,d5 and.b d0,d3 or.b d5,d3 move.b d3,(byte_FFFFBF2C).w move.b d3,(byte_FFFFFA11).w move.b (byte_1643).w,d0 move.b (byte_FFFFFA19).w,d4 move.b (byte_FFFFBF2D).w,d3 move.l d0,d5 not.b d5 and.b d4,d5 and.b d0,d3 or.b d5,d3 move.b d3,(byte_FFFFBF2D).w move.b d3,(byte_FFFFFA19).w move.b (byte_1368).l,d0 move.b (byte_FFFFFA41).w,d4 move.b (byte_FFFFBF2E).w,d3 move.l d0,d5 not.b d5 and.b d4,d5 and.b d0,d3 or.b d5,d3 move.b d3,(byte_FFFFBF2E).w move.b d3,(byte_FFFFFA41).w move.b (byte_FFFFBF2A).w,d3 move.w (word_FFFFFF22).w,d4 btst #$F,d4 beq.s loc_81C76 ori.b #4,d3 bra.s loc_81C7E ; --------------------------------------------------------------------------- loc_81C76: ; CODE XREF: sub_81BC2+ACj moveq #4,d5 not.b d5 and.b d3,d5 move.b d5,d3 loc_81C7E: ; CODE XREF: sub_81BC2+B2j move.b d3,(byte_FFFFBF2A).w btst #6,(byte_FFFFD006).w sne d1 neg.b d1 seq d1 neg.b d1 move.b (byte_1644).w,d0 move.b (byte_FFFFD000).w,d4 move.b (byte_FFFFBF30).w,d3 tst.b d1 beq.s loc_81CA2 clr.b d4 loc_81CA2: ; CODE XREF: sub_81BC2+DCj move.l d0,d5 not.b d5 and.b d4,d5 and.b d0,d3 or.b d5,d3 move.b d3,(byte_FFFFBF30).w move.b d3,(byte_FFFFD000).w move.b (byte_1645).w,d0 move.b (byte_FFFFD002).w,d4 move.b (byte_FFFFBF31).w,d3 tst.b d1 beq.s loc_81CC6 clr.b d4 loc_81CC6: ; CODE XREF: sub_81BC2+100j move.l d0,d5 not.b d5 and.b d4,d5 and.b d0,d3 or.b d5,d3 move.b d3,(byte_FFFFBF31).w move.b d3,(byte_FFFFD002).w move.b (byte_1646).w,d0 move.b (byte_FFFFD004).w,d4 move.b (byte_FFFFBF32).w,d3 move.l d0,d5 not.b d5 and.b d4,d5 and.b d0,d3 or.b d5,d3 move.b d3,(byte_FFFFBF32).w move.b d3,(byte_FFFFD004).w move.b (byte_FFFFBF33).w,(byte_FFFFD007).w move.w (word_FFFFE10A).w,var_6(a6) moveq #$42,d0 ; 'B' move.b var_6(a6),d4 move.b (byte_FFFFBF34).w,d3 move.l d0,d5 not.b d5 and.b d4,d5 and.b d0,d3 or.b d5,d3 move.b d3,(byte_FFFFBF34).w move.b d3,var_4(a6) move.w var_4(a6),(word_FFFFE0D0).w move.b (byte_FFFFBF37).w,var_4(a6) move.w (word_FFFFE106).w,var_6(a6) move.b #$FF,d0 move.b var_6(a6),d4 move.b (byte_FFFFBF35).w,d3 move.l d0,d5 not.b d5 and.b d4,d5 and.b d0,d3 or.b d5,d3 move.b d3,(byte_FFFFBF35).w move.b d3,var_4+1(a6) move.w var_4(a6),(word_FFFFE0CE).w move.b (byte_FFFFBF38).w,var_2+1(a6) move.w var_2(a6),(word_FFFFE2FA).w move.w (word_FFFFE112).w,var_2(a6) move.b var_2(a6),(byte_FFFFBF39).w move.w (word_FFFFE10C).w,var_2(a6) move.b var_2(a6),(byte_FFFFBF3A).w move.b (byte_FFFFBF30).w,d0 move.b (byte_FFFFBF48).w,d4 move.b (byte_FFFFBF49).w,d3 move.l d0,d1 or.b d4,d1 or.b d3,d1 and.b d4,d0 and.b d3,d0 and.b (byte_FFFFBF4A).w,d1 or.b d0,d1 move.b d1,(byte_FFFFBF4A).w move.b (byte_FFFFBF31).w,d0 move.b (byte_FFFFBF4C).w,d4 move.b (byte_FFFFBF4D).w,d3 move.l d0,d1 or.b d4,d1 or.b d3,d1 and.b d4,d0 and.b d3,d0 and.b (byte_FFFFBF4E).w,d1 or.b d0,d1 move.b d1,(byte_FFFFBF4E).w move.b (byte_FFFFBF32).w,d0 move.b (byte_FFFFBF50).w,d4 move.b (byte_FFFFBF51).w,d3 move.l d0,d1 or.b d4,d1 or.b d3,d1 and.b d4,d0 and.b d3,d0 and.b (byte_FFFFBF52).w,d1 or.b d0,d1 move.b d1,(byte_FFFFBF52).w move.b (byte_FFFFBF36).w,d0 move.b (byte_FFFFBF40).w,d4 move.b (byte_FFFFBF41).w,d3 move.l d0,d1 or.b d4,d1 or.b d3,d1 and.b d4,d0 and.b d3,d0 and.b (byte_FFFFBF42).w,d1 or.b d0,d1 move.b d1,(byte_FFFFBF42).w move.b (byte_FFFFBF39).w,d0 move.b (byte_FFFFBF44).w,d4 move.b (byte_FFFFBF45).w,d3 move.l d0,d1 or.b d4,d1 or.b d3,d1 and.b d4,d0 and.b d3,d0 and.b (byte_FFFFBF46).w,d1 or.b d0,d1 move.b d1,(byte_FFFFBF46).w movem.l (sp)+,d0-d1 unlk a6 rts ; End of function sub_81BC2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_81E20: ; CODE XREF: sub_FC0:loc_FDEp ; sub_87606+3Ep var_10 = -$10 var_C = -$C var_8 = -8 var_4 = -4 link a6,#-$10 movem.l d0-d1,-(sp) clr.l var_10(a6) move.b (byte_FFFFBF2B).w,d3 btst #0,d3 beq.s loc_81E74 move.l var_10(a6),var_C(a6) move.l var_C(a6),var_8(a6) move.l (dword_FFFFFE14).w,var_4(a6) andi.b #$FC,var_8+1(a6) ori.b #2,var_8+1(a6) move.b var_4+1(a6),d4 moveq #3,d0 and.b d0,d4 moveq #1,d1 or.b d1,d4 and.b d0,d4 andi.b #$FC,var_4+1(a6) or.b d4,var_4+1(a6) move.l var_4(a6),(dword_FFFFFE14).w bra.s loc_81EB2 ; --------------------------------------------------------------------------- loc_81E74: ; CODE XREF: sub_81E20+14j move.l var_10(a6),var_C(a6) move.l var_C(a6),var_8(a6) move.l (dword_FFFFFE14).w,var_4(a6) andi.b #$FC,var_8+1(a6) ori.b #2,var_8+1(a6) moveq #1,d5 not.b d5 move.b var_4+1(a6),d4 moveq #3,d0 and.b d0,d4 and.b d5,d4 and.b d0,d4 andi.b #$FC,var_4+1(a6) or.b d4,var_4+1(a6) move.l var_4(a6),(dword_FFFFFE14).w loc_81EB2: ; CODE XREF: sub_81E20+52j movea.l var_8(a6),a2 move.l a2,var_10(a6) move.l a2,var_C(a6) loc_81EBE: ; CODE XREF: sub_81E20+A2j tst.l (dword_FFFFFE18).w bne.s loc_81EBE move.l var_C(a6),(dword_FFFFFE18).w btst #1,d3 beq.s loc_81F12 move.l var_10(a6),var_C(a6) move.l var_C(a6),var_8(a6) move.l (dword_FFFFFE14).w,var_4(a6) andi.b #$F3,var_8+1(a6) ori.b #8,var_8+1(a6) move.b var_4+1(a6),d3 lsr.b #2,d3 and.b d0,d3 ori.b #1,d3 lsl.b #2,d3 andi.b #$C,d3 andi.b #$F3,var_4+1(a6) or.b d3,var_4+1(a6) move.l var_4(a6),(dword_FFFFFE14).w bra.s loc_81F54 ; --------------------------------------------------------------------------- loc_81F12: ; CODE XREF: sub_81E20+AEj move.l var_10(a6),var_C(a6) move.l var_C(a6),var_8(a6) move.l (dword_FFFFFE14).w,var_4(a6) andi.b #$F3,var_8+1(a6) ori.b #8,var_8+1(a6) moveq #1,d3 not.b d3 move.b var_4+1(a6),d4 lsr.b #2,d4 and.b d0,d4 and.b d3,d4 lsl.b #2,d4 andi.b #$C,d4 andi.b #$F3,var_4+1(a6) or.b d4,var_4+1(a6) move.l var_4(a6),(dword_FFFFFE14).w loc_81F54: ; CODE XREF: sub_81E20+F0j movea.l var_8(a6),a2 move.l a2,var_10(a6) move.l a2,var_C(a6) loc_81F60: ; CODE XREF: sub_81E20+144j tst.l (dword_FFFFFE18).w bne.s loc_81F60 move.l var_C(a6),(dword_FFFFFE18).w movem.l (sp)+,d0-d1 unlk a6 rts ; End of function sub_81E20 ; =============== S U B R O U T I N E ======================================= sub_81F74: ; CODE XREF: sub_7C358+2Ep ; sub_7C358+46p ... move.b d0,d4 move.l d1,d0 sub.l d2,d0 cmpi.b #$6F,d4 ; 'o' bhi.s loc_81FAE cmpi.b #$63,d4 ; 'c' bhi.s loc_81FA6 cmpi.b #$41,d4 ; 'A' bhi.s loc_81FAE cmpi.b #$3F,d4 ; '?' bhi.s loc_81FA6 cmpi.b #$B,d4 bhi.s loc_81FAE cmpi.b #7,d4 bls.s loc_81FAE move.l #$100,d3 bra.s loc_81FB4 ; --------------------------------------------------------------------------- loc_81FA6: ; CODE XREF: sub_81F74+10j ; sub_81F74+1Cj move.l #unk_10000,d3 bra.s loc_81FB4 ; --------------------------------------------------------------------------- loc_81FAE: ; CODE XREF: sub_81F74+Aj ; sub_81F74+16j ... jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_81FB4: ; CODE XREF: sub_81F74+30j ; sub_81F74+38j cmp.l d3,d0 bls.s locret_81FBA add.l d3,d0 locret_81FBA: ; CODE XREF: sub_81F74+42j rts ; End of function sub_81F74 ; =============== S U B R O U T I N E ======================================= sub_81FBC: ; CODE XREF: OS1:0003AC94p ; sub_8201A+Ep ... sub.l d2,d1 jsr sub_81FCE cmp.l d0,d1 bls.s loc_81FCA add.l d0,d1 loc_81FCA: ; CODE XREF: sub_81FBC+Aj move.l d1,d0 rts ; End of function sub_81FBC ; =============== S U B R O U T I N E ======================================= sub_81FCE: ; CODE XREF: sub_81FBC+2p ; sub_8201A+18p move.b d0,d3 cmpi.b #$6F,d3 ; 'o' bhi.s loc_82012 cmpi.b #$63,d3 ; 'c' bhi.s loc_8200A cmpi.b #$41,d3 ; 'A' bhi.s loc_82012 cmpi.b #$3F,d3 ; '?' bhi.s loc_8200A cmpi.b #$B,d3 bhi.s loc_82012 cmpi.b #9,d3 bhi.s loc_82002 cmpi.b #7,d3 bls.s loc_82012 move.l #$B08D,d0 bra.s locret_82018 ; --------------------------------------------------------------------------- loc_82002: ; CODE XREF: sub_81FCE+24j move.l #$847,d0 bra.s locret_82018 ; --------------------------------------------------------------------------- loc_8200A: ; CODE XREF: sub_81FCE+Cj ; sub_81FCE+18j move.l #unk_10000,d0 bra.s locret_82018 ; --------------------------------------------------------------------------- loc_82012: ; CODE XREF: sub_81FCE+6j ; sub_81FCE+12j ... jsr (sub_54C).l ; --------------------------------------------------------------------------- locret_82018: ; CODE XREF: sub_81FCE+32j ; sub_81FCE+3Aj ... rts ; End of function sub_81FCE ; =============== S U B R O U T I N E ======================================= sub_8201A: ; CODE XREF: sub_82178+AEp ; sub_83986+458p movem.l d1-d2/d6-d7,-(sp) move.b d0,d7 move.l $C(a0),d2 move.l 4(a0),d1 jsr sub_81FBC move.l d0,d6 move.l d7,d0 jsr sub_81FCE lsr.l #1,d0 cmp.l d0,d6 sls d0 neg.b d0 movem.l (sp)+,d1-d2/d6-d7 rts ; End of function sub_8201A ; =============== S U B R O U T I N E ======================================= sub_82046: ; CODE XREF: sub_24716+5E2p ; sub_2C7AC+4Ap ... cmpi.b #$6F,d0 ; 'o' bhi.s loc_82082 cmpi.b #$63,d0 ; 'c' bhi.s loc_82072 cmpi.b #$41,d0 ; 'A' bhi.s loc_82082 cmpi.b #$3F,d0 ; '?' bhi.s loc_8207A cmpi.b #$B,d0 bhi.s loc_82082 cmpi.b #7,d0 bls.s loc_82082 jsr sub_8233A bra.s locret_82088 ; --------------------------------------------------------------------------- loc_82072: ; CODE XREF: sub_82046+Aj jsr sub_822F0 bra.s locret_82088 ; --------------------------------------------------------------------------- loc_8207A: ; CODE XREF: sub_82046+16j jsr sub_8208A bra.s locret_82088 ; --------------------------------------------------------------------------- loc_82082: ; CODE XREF: sub_82046+4j ; sub_82046+10j ... jsr (sub_54C).l ; --------------------------------------------------------------------------- locret_82088: ; CODE XREF: sub_82046+2Aj ; sub_82046+32j ... rts ; End of function sub_82046 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_8208A: ; CODE XREF: sub_82046:loc_8207Ap var_8 = -8 var_6 = -6 var_4 = -4 var_2 = -2 link a6,#-8 movem.l d0/a1,-(sp) movea.l a0,a1 lea var_8(a6),a0 moveq #7,d0 jsr sub_79668 clr.l d3 move.w var_6(a6),d3 move.l d3,(a1) clr.l d3 move.w var_2(a6),d3 move.l d3,8(a1) clr.l d3 move.w var_8(a6),d3 move.l d3,4(a1) clr.l d3 move.w var_4(a6),d3 move.l d3,$C(a1) movem.l (sp)+,d0/a1 unlk a6 rts ; End of function sub_8208A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_820CE: ; CODE XREF: sub_24716+5F0p ; sub_2C7AC+5Ap var_8 = -8 var_4 = -4 link a6,#-8 move.l a4,-(sp) movea.l a0,a4 move.l a1,-(sp) lea var_8(a6),a1 move.l a1,-(sp) lea var_4(a6),a1 jsr sub_82178 tst.b d0 beq.s loc_8211E move.l var_8(a6),d3 mulu.l #$1000,d0:d3 divu.l (a4),d0:d3 bvs.s loc_8210C cmpi.l #$FFFF,d3 bhi.s loc_8210C cmpi.w #$1000,d3 bls.s loc_82110 loc_8210C: ; CODE XREF: sub_820CE+2Ej ; sub_820CE+36j move.w #$1000,d3 loc_82110: ; CODE XREF: sub_820CE+3Cj mulu.w #5,d3 lsr.w #2,d3 move.w d3,4(a4) moveq #1,d0 bra.s loc_82124 ; --------------------------------------------------------------------------- loc_8211E: ; CODE XREF: sub_820CE+1Cj clr.w 4(a4) clr.b d0 loc_82124: ; CODE XREF: sub_820CE+4Ej movea.l (sp)+,a4 unlk a6 rts ; End of function sub_820CE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_8212A: ; CODE XREF: sub_2EA9A+48p ; sub_2F780+52p var_8 = -8 var_4 = -4 link a6,#-8 move.l a4,-(sp) movea.l a0,a4 move.l a1,-(sp) lea var_8(a6),a1 move.l a1,-(sp) movea.l a0,a1 lea 2(a1),a1 lea var_4(a6),a0 jsr sub_82178 tst.b d0 beq.s loc_8216E move.l #$2053D,d3 divu.l var_4(a6),d3 bvs.s loc_82164 cmpi.l #$FFFF,d3 bls.s loc_82168 loc_82164: ; CODE XREF: sub_8212A+30j move.w #$FFFF,d3 loc_82168: ; CODE XREF: sub_8212A+38j move.w d3,(a4) moveq #1,d0 bra.s loc_82172 ; --------------------------------------------------------------------------- loc_8216E: ; CODE XREF: sub_8212A+22j clr.w (a4) clr.b d0 loc_82172: ; CODE XREF: sub_8212A+42j movea.l (sp)+,a4 unlk a6 rts ; End of function sub_8212A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_82178: ; CODE XREF: sub_820CE+14p ; sub_8212A+1Ap var_2C = -$2C var_28 = -$28 var_24 = -$24 var_20 = -$20 var_1C = -$1C var_18 = -$18 var_14 = -$14 var_10 = -$10 var_C = -$C var_8 = -8 var_4 = -4 arg_0 = 8 arg_4 = $C link a6,#-$28 move.l a1,-(sp) movem.l d2/d6-d7/a4-a5,-(sp) move.b d0,d6 movea.l a0,a4 movea.l arg_0(a6),a5 movea.l arg_4(a6),a0 lea $10(a0),a0 move.l a0,var_4(a6) move.l arg_4(a6),var_8(a6) tst.b d1 bne.s loc_821AA movea.l var_4(a6),a0 movea.l var_8(a6),a1 bra.s loc_821BA ; --------------------------------------------------------------------------- loc_821AA: ; CODE XREF: sub_82178+26j movea.l var_4(a6),a0 lea 8(a0),a0 movea.l var_8(a6),a1 lea 8(a1),a1 loc_821BA: ; CODE XREF: sub_82178+30j move.l (a0),d2 move.l (a1),d1 jsr sub_81F74 move.l d0,var_10(a6) move.l 4(a0),d2 move.l 4(a1),d1 move.l d6,d0 jsr sub_81FBC move.l d0,var_C(a6) move.l var_10(a6),d4 move.l var_C(a6),d3 tst.w d4 beq.s loc_82202 clr.l d7 move.w d4,d7 divu.l d7,d3 bvs.s loc_821FA cmpi.l #$7FFFFFFF,d3 bls.s loc_82204 loc_821FA: ; CODE XREF: sub_82178+78j move.l #$7FFFFFFF,d3 bra.s loc_82204 ; --------------------------------------------------------------------------- loc_82202: ; CODE XREF: sub_82178+6Ej clr.l d3 loc_82204: ; CODE XREF: sub_82178+80j ; sub_82178+88j move.l d3,(a4) tst.l d3 beq.w loc_822DA movea.l arg_4(a6),a0 movea.l arg_4(a6),a2 move.l 8(a2),d0 cmp.l $18(a0),d0 beq.w loc_822DA movea.l arg_4(a6),a0 move.l d6,d0 jsr sub_8201A tst.b d0 beq.s loc_82284 movea.l arg_4(a6),a2 move.l 4(a2),var_24(a6) move.l (a2),var_28(a6) movea.l arg_4(a6),a2 move.l $C(a2),var_14(a6) move.l 8(a2),var_18(a6) move.l var_18(a6),d2 move.l var_28(a6),d1 move.l d6,d0 jsr sub_81F74 move.l d0,var_20(a6) move.l var_14(a6),d2 move.l var_24(a6),d1 move.l d6,d0 jsr sub_81FBC move.l d0,var_1C(a6) movea.l var_2C(a6),a2 move.l d0,(a2) move.l (a4),d3 sub.l d0,d3 move.l d3,(a5) bra.s loc_822D6 ; --------------------------------------------------------------------------- loc_82284: ; CODE XREF: sub_82178+B6j movea.l arg_4(a6),a2 move.l $C(a2),var_24(a6) move.l 8(a2),var_28(a6) movea.l arg_4(a6),a2 move.l 4(a2),var_14(a6) move.l (a2),var_18(a6) move.l var_18(a6),d2 move.l var_28(a6),d1 move.l d6,d0 jsr sub_81F74 move.l d0,var_20(a6) move.l var_14(a6),d2 move.l var_24(a6),d1 move.l d6,d0 jsr sub_81FBC move.l d0,var_1C(a6) move.l d0,(a5) move.l (a4),d3 sub.l d0,d3 movea.l var_2C(a6),a2 move.l d3,(a2) loc_822D6: ; CODE XREF: sub_82178+10Aj moveq #1,d0 bra.s loc_822E6 ; --------------------------------------------------------------------------- loc_822DA: ; CODE XREF: sub_82178+90j ; sub_82178+A4j clr.l (a5) movea.l var_2C(a6),a2 clr.l (a2) clr.l (a4) clr.b d0 loc_822E6: ; CODE XREF: sub_82178+160j movem.l (sp)+,d2/d6-d7/a4-a5 unlk a6 rtd #8 ; End of function sub_82178 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_822F0: ; CODE XREF: sub_82046:loc_82072p var_8 = -8 var_6 = -6 var_4 = -4 var_2 = -2 link a6,#-8 move.l a1,-(sp) movea.l a0,a1 subi.b #$64,d0 ; 'd' lsr.b #1,d0 andi.w #$FF,d0 addq.b #1,d0 lea var_8(a6),a0 jsr sub_79668 clr.l d3 move.w var_6(a6),d3 move.l d3,(a1) clr.l d3 move.w var_2(a6),d3 move.l d3,8(a1) clr.l d3 move.w var_8(a6),d3 move.l d3,4(a1) clr.l d3 move.w var_4(a6),d3 move.l d3,$C(a1) movea.l (sp)+,a1 unlk a6 rts ; End of function sub_822F0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_8233A: ; CODE XREF: sub_82046+24p var_8 = -8 var_4 = -4 link a6,#-8 cmpi.b #$B,d0 bhi.s loc_823B6 cmpi.b #9,d0 bhi.s loc_82380 cmpi.b #7,d0 bls.s loc_823B6 move.l (dword_FFFFFF40).w,var_8(a6) loc_82356: ; CODE XREF: sub_8233A+30j move.l var_8(a6),var_4(a6) move.l (dword_FFFFFF40).w,var_8(a6) move.l var_4(a6),d4 cmp.l var_8(a6),d4 bne.s loc_82356 clr.l d4 move.b var_8+1(a6),d4 move.w var_8+2(a6),d3 mulu.w #$14,d3 divu.w #$1D,d3 bra.s loc_823AE ; --------------------------------------------------------------------------- loc_82380: ; CODE XREF: sub_8233A+Ej move.l (dword_FFFFFF50).w,var_8(a6) loc_82386: ; CODE XREF: sub_8233A+60j move.l var_8(a6),var_4(a6) move.l (dword_FFFFFF50).w,var_8(a6) move.l var_4(a6),d4 cmp.l var_8(a6),d4 bne.s loc_82386 clr.l d4 move.b var_8+1(a6),d4 move.w var_8+2(a6),d3 mulu.w #$F,d3 divu.w #$1D0,d3 loc_823AE: ; CODE XREF: sub_8233A+44j andi.l #$FFFF,d3 bra.s loc_823BC ; --------------------------------------------------------------------------- loc_823B6: ; CODE XREF: sub_8233A+8j ; sub_8233A+14j jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_823BC: ; CODE XREF: sub_8233A+7Aj move.l d4,(a0) move.l d4,8(a0) move.l d3,4(a0) move.l d3,$C(a0) unlk a6 rts ; End of function sub_8233A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_823CE: ; CODE XREF: sub_80A78+4Cp ; sub_80B1C+42p var_8 = -8 var_4 = -4 link a6,#-8 movem.l d2/d6,-(sp) move.b d0,d6 tst.b d1 beq.s loc_823E4 lea 8(a1),a1 lea 8(a0),a0 loc_823E4: ; CODE XREF: sub_823CE+Cj move.l (a1),d2 move.l (a0),d1 jsr sub_81F74 move.l d0,var_8(a6) move.l 4(a1),d2 move.l 4(a0),d1 move.l d6,d0 jsr sub_81FBC move.l d0,var_4(a6) move.l var_8(a6),d0 move.l var_4(a6),d3 tst.w d0 beq.s loc_82438 tst.l d3 beq.s loc_82438 andi.l #$FFFF,d0 mulu.l #$2053D,d4:d0 divu.l d3,d4:d0 bvs.s loc_82432 cmpi.l #$FFFF,d0 bls.s loc_8243A loc_82432: ; CODE XREF: sub_823CE+5Aj move.w #$FFFF,d0 bra.s loc_8243A ; --------------------------------------------------------------------------- loc_82438: ; CODE XREF: sub_823CE+42j ; sub_823CE+46j clr.w d0 loc_8243A: ; CODE XREF: sub_823CE+62j ; sub_823CE+68j movem.l (sp)+,d2/d6 unlk a6 rts ; End of function sub_823CE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_82442: ; CODE XREF: sub_16FA+C4p var_40A8 = -$40A8 var_40A4 = -$40A4 var_1FDA = -$1FDA var_1E5A = -$1E5A var_2 = -2 link a6,#0 move.b d0,-(sp) movem.l d6-d7,-(sp) move.l d1,d7 move.l d2,d3 asl.w #2,d3 andi.l #$FFFF,d3 divu.w #5,d3 clr.l d4 move.b d0,d4 btst #0,d4 beq.s loc_8246E move.w #$1000,d4 sub.w d3,d4 move.w d4,d3 loc_8246E: ; CODE XREF: sub_82442+22j andi.l #$FFFF,d3 mulu.l d7,d0:d3 divu.l #$1000,d0:d3 add.l d3,d3 cmpi.l #$FFFF,d3 bhi.s loc_82490 cmpi.w #$7FFF,d3 bls.s loc_82494 loc_82490: ; CODE XREF: sub_82442+46j move.w #$7FFF,d3 loc_82494: ; CODE XREF: sub_82442+4Cj move.l d1,d0 add.l d0,d0 cmpi.l #$FFFF,d0 bhi.s loc_824A6 cmpi.w #$7FFF,d0 bls.s loc_824AA loc_824A6: ; CODE XREF: sub_82442+5Cj move.w #$7FFF,d0 loc_824AA: ; CODE XREF: sub_82442+62j move.b var_2(a6),d4 cmpi.b #$35,d4 ; '5' bhi.s loc_824D8 cmpi.b #$33,d4 ; '3' bhi.s loc_824D2 cmpi.b #$31,d4 ; '1' bhi.s loc_824CC cmpi.b #$2F,d4 ; '/' bls.s loc_824D8 moveq #7,d1 clr.b d6 bra.s loc_824DE ; --------------------------------------------------------------------------- loc_824CC: ; CODE XREF: sub_82442+7Cj moveq #8,d1 moveq #1,d6 bra.s loc_824DE ; --------------------------------------------------------------------------- loc_824D2: ; CODE XREF: sub_82442+76j moveq #9,d1 moveq #2,d6 bra.s loc_824DE ; --------------------------------------------------------------------------- loc_824D8: ; CODE XREF: sub_82442+70j ; sub_82442+82j jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_824DE: ; CODE XREF: sub_82442+88j ; sub_82442+8Ej ... andi.w #$FF,d1 mulu.w #6,d1 move.l d7,$A+var_40A8(d1.l) move.w d2,$A+var_40A4(d1.l) clr.l d2 move.b d6,d2 move.w d0,$A+var_1E5A(d2.w*2) move.w d3,$A+var_1FDA(d2.w*2) cmpi.b #2,d6 bhi.s loc_82526 beq.s loc_8251E tst.b d6 bne.s loc_82516 move.w #$100,(word_FFFFE2D0).w bra.s loc_8252C ; --------------------------------------------------------------------------- loc_82516: ; CODE XREF: sub_82442+CAj move.w #$200,(word_FFFFE2D0).w bra.s loc_8252C ; --------------------------------------------------------------------------- loc_8251E: ; CODE XREF: sub_82442+C6j move.w #$400,(word_FFFFE2D0).w bra.s loc_8252C ; --------------------------------------------------------------------------- loc_82526: ; CODE XREF: sub_82442+C4j move.w #$800,(word_FFFFE2D0).w loc_8252C: ; CODE XREF: sub_82442+D2j ; sub_82442+DAj ... movem.l (sp)+,d6-d7 unlk a6 rts ; End of function sub_82442 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_82534: ; CODE XREF: sub_16FA:loc_17AAp var_4 = -4 link a6,#-4 move.l d6,-(sp) move.l d1,d3 move.w d2,d1 move.l d1,d4 asl.w #2,d4 andi.l #$FFFF,d4 divu.w #5,d4 clr.l d5 move.b d0,d5 btst #0,d5 beq.s loc_8255E move.w #$1000,d5 sub.w d4,d5 move.w d5,d4 loc_8255E: ; CODE XREF: sub_82534+20j cmpi.l #$FFFF,d3 bhi.s loc_82578 move.w #$1D0,d2 mulu.w d2,d3 moveq #$F,d6 divu.w d6,d3 bvs.s loc_82578 cmpi.w #$7FFF,d3 bls.s loc_8257C loc_82578: ; CODE XREF: sub_82534+30j ; sub_82534+3Cj move.w #$7FFF,d3 loc_8257C: ; CODE XREF: sub_82534+42j move.l d3,d5 mulu.w d4,d5 lsr.l #8,d5 lsr.l #4,d5 move.w d5,var_4(a6) move.w d3,var_4+2(a6) andi.w #$FF,d0 cmpi.w #$14,d0 bcs.s loc_82600 cmpi.w #$1B,d0 bhi.s loc_82600 movea.l off_8A56C(d0.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_825A6: ; DATA XREF: OS4:0008A5BCo ; OS4:0008A5C0o mulu.w #$F,d3 divu.w #464,d3 andi.l #$FFFF,d3 move.l d3,(dword_FFFFBF7A).w move.w d1,(word_FFFFBF7E).w move.l var_4(a6),(dword_FFFFFFA4).w bra.s loc_82606 ; --------------------------------------------------------------------------- loc_825C4: ; DATA XREF: OS4:0008A5C4o ; OS4:0008A5C8o mulu.w #$F,d3 divu.w #464,d3 andi.l #$FFFF,d3 move.l d3,(dword_FFFFBF80).w move.w d1,(word_FFFFBF84).w move.l var_4(a6),(dword_FFFFFFB4).w bra.s loc_82606 ; --------------------------------------------------------------------------- loc_825E2: ; DATA XREF: OS4:0008A5D4o ; OS4:0008A5D8o mulu.w #15,d3 divu.w #$1D0,d3 andi.l #$FFFF,d3 move.l d3,(dword_FFFFBF86).w move.w d1,(word_FFFFBF8A).w move.l var_4(a6),(dword_FFFFFFD4).w bra.s loc_82606 ; --------------------------------------------------------------------------- loc_82600: ; CODE XREF: sub_82534+60j ; sub_82534+66j ; DATA XREF: ... jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_82606: ; CODE XREF: sub_82534+8Ej ; sub_82534+ACj ... move.l (sp)+,d6 unlk a6 rts ; End of function sub_82534 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_8260C: ; CODE XREF: sub_16FA:loc_17EAp var_2 = -2 link a6,#0 move.b d0,-(sp) movem.l d6-d7,-(sp) move.l d1,d6 move.w d2,d7 move.l d1,d3 cmpi.l #$FFFF,d3 bhi.s loc_82630 lsr.w #1,d3 subq.w #1,d3 bcs.s loc_82636 cmpi.w #$7FF,d3 bls.s loc_82638 loc_82630: ; CODE XREF: sub_8260C+16j move.w #$7FF,d3 bra.s loc_82638 ; --------------------------------------------------------------------------- loc_82636: ; CODE XREF: sub_8260C+1Cj clr.w d3 loc_82638: ; CODE XREF: sub_8260C+22j ; sub_8260C+28j clr.l d5 move.b d0,d5 btst #0,d5 beq.s loc_8264A move.w #$1400,d4 sub.w d7,d4 bra.s loc_8264C ; --------------------------------------------------------------------------- loc_8264A: ; CODE XREF: sub_8260C+34j move.w d7,d4 loc_8264C: ; CODE XREF: sub_8260C+3Cj move.l d3,d2 addq.w #1,d2 mulu.w d4,d2 divu.w #$1400,d2 cmpi.w #$7FF,d2 bls.s loc_82660 move.w #$7FF,d2 loc_82660: ; CODE XREF: sub_8260C+4Ej move.l d3,d1 jsr sub_792AE clr.w d3 move.b var_2(a6),d3 cmpi.w #$76,d3 ; 'v' bcs.w loc_826FE cmpi.w #$9D,d3 ; '?' bhi.w loc_826FE movea.l off_89242(d3.w*4),a2 jmp (a2) ; --------------------------------------------------------------------------- loc_82688: ; DATA XREF: OS4:0008941Ao ; OS4:0008941Eo move.l d6,(dword_FFFFBFA4).w move.w d7,(word_FFFFBFA8).w bra.s loc_826FE ; --------------------------------------------------------------------------- loc_82692: ; DATA XREF: OS4:00089422o ; OS4:00089426o move.l d6,(dword_FFFFBFAA).w move.w d7,(word_FFFFBFAE).w bra.s loc_826FE ; --------------------------------------------------------------------------- loc_8269C: ; DATA XREF: OS4:0008942Ao ; OS4:0008942Eo move.l d6,(dword_FFFFBFB0).w move.w d7,(word_FFFFBFB4).w bra.s loc_826FE ; --------------------------------------------------------------------------- loc_826A6: ; DATA XREF: OS4:00089432o ; OS4:00089436o move.l d6,(dword_FFFFBFB6).w move.w d7,(word_FFFFBFBA).w bra.s loc_826FE ; --------------------------------------------------------------------------- loc_826B0: ; DATA XREF: OS4:0008945Ao ; OS4:0008945Eo move.l d6,(dword_FFFFBFBC).w move.w d7,(word_FFFFBFC0).w bra.s loc_826FE ; --------------------------------------------------------------------------- loc_826BA: ; DATA XREF: OS4:00089462o ; OS4:00089466o move.l d6,(4294950850).w move.w d7,(4294950854).w bra.s loc_826FE ; --------------------------------------------------------------------------- loc_826C4: ; DATA XREF: OS4:0008946Ao ; OS4:0008946Eo move.l d6,(4294950856).w move.w d7,(4294950860).w bra.s loc_826FE ; --------------------------------------------------------------------------- loc_826CE: ; DATA XREF: OS4:00089472o ; OS4:00089476o move.l d6,(dword_FFFFBFCE).w move.w d7,(word_FFFFBFD2).w bra.s loc_826FE ; --------------------------------------------------------------------------- loc_826D8: ; DATA XREF: OS4:0008949Ao ; OS4:0008949Eo move.l d6,(dword_FFFFBFD4).w move.w d7,(word_FFFFBFD8).w bra.s loc_826FE ; --------------------------------------------------------------------------- loc_826E2: ; DATA XREF: OS4:000894A2o ; OS4:000894A6o move.l d6,(dword_FFFFBFDA).w move.w d7,(word_FFFFBFDE).w bra.s loc_826FE ; --------------------------------------------------------------------------- loc_826EC: ; DATA XREF: OS4:000894AAo ; OS4:000894AEo move.l d6,(dword_FFFFBFE0).w move.w d7,(word_FFFFBFE4).w bra.s loc_826FE ; --------------------------------------------------------------------------- loc_826F6: ; DATA XREF: OS4:000894B2o ; OS4:off_894B6o move.l d6,(dword_FFFFBFE6).w move.w d7,(word_FFFFBFEA).w loc_826FE: ; CODE XREF: sub_8260C+66j ; sub_8260C+6Ej ... movem.l (sp)+,d6-d7 unlk a6 rts ; End of function sub_8260C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_82706: ; CODE XREF: sub_299AC+32p var_2 = -2 link a6,#-2 bset #6,(byte_FFFFAA92).w btst #3,(byte_FFFFAA92).w beq.s loc_82748 cmpi.w #$65,(word_FFFFE0C8).w ; 'e' bcc.s loc_82748 tst.b (byte_FFFFB24D).w bne.s loc_82730 move.b (byte_FFFFB250).w,d3 and.b (byte_FFFFB24F).w,d3 beq.s loc_82748 loc_82730: ; CODE XREF: sub_82706+1Ej bclr #0,(byte_FFFFFE21).w move.w (word_FFFFFE0A).w,var_2(a6) bclr #0,var_2+1(a6) move.w var_2(a6),(word_FFFFFE0A).w loc_82748: ; CODE XREF: sub_82706+10j ; sub_82706+18j ... move.l (unk_FFFFB542).w,(dword_FFFFAA80).w btst #3,(byte_FFFFAA92).w bne.s loc_82762 jsr sub_282C4 bset #3,(byte_FFFFAA92).w loc_82762: ; CODE XREF: sub_82706+4Ej unlk a6 rts ; End of function sub_82706 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_82766: ; CODE XREF: DoLoopA:loc_29B0Cp var_55A4 = -$55A4 var_4 = -4 link a6,#-4 movem.l d0-d1,-(sp) btst #5,(byte_FFFFAA92).w bne.s loc_8279E btst #7,(byte_FFFFAA92).w beq.s loc_8279E clr.l d1 move.b (ENG_STATE_KE_NO_REF_TIME).l,d1 ; Engine is considered stopped if no ref pulses have occured in this amount of time. ; Seconds move.l (dword_FFFFAA7C).w,var_4(a6) move.l (unk_FFFFB542).w,d3 sub.l var_4(a6),d3 cmp.l d3,d1 bls.s loc_8279E bset #5,(byte_FFFFAA92).w loc_8279E: ; CODE XREF: sub_82766+Ej ; sub_82766+16j ... move.l (unk_FFFFB542).w,(dword_FFFFAA7C).w bset #7,(byte_FFFFAA92).w addq.w #1,(word_FFFFAA90).w move.w (word_FFFFAA8E).w,d3 addq.w #1,d3 bcc.s loc_827BA move.w #$FFFF,d3 loc_827BA: ; CODE XREF: sub_82766+4Ej move.w d3,(word_FFFFAA8E).w move.w (word_FFFFAA8A).w,d3 addq.w #1,d3 bcc.s loc_827CA move.w #$FFFF,d3 loc_827CA: ; CODE XREF: sub_82766+5Ej move.w d3,(word_FFFFAA8A).w cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_827DC move.w d3,(word_FFFFAA8C).w bra.s loc_827E0 ; --------------------------------------------------------------------------- loc_827DC: ; CODE XREF: sub_82766+6Ej clr.w (word_FFFFAA8C).w loc_827E0: ; CODE XREF: sub_82766+74j btst #5,(byte_FFFFAA92).w beq.s loc_8284E clr.w d3 move.b (byte_FFFFAC47).w,d3 move.w (word_FFFFE1CC).w,$C+var_55A4(d3.w*2) move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$1E00,d3 bcc.s loc_8281E bclr #0,(byte_FFFFFE21).w tst.b (byte_FFFFB37A).w bne.s loc_8281E move.w (word_FFFFFE0A).w,var_4(a6) bset #0,var_4+1(a6) move.w var_4(a6),(word_FFFFFE0A).w loc_8281E: ; CODE XREF: sub_82766+98j ; sub_82766+A4j cmpi.b #6,(ENG_CONSTANTS_KE_NUMBER_CYLINDERS).l ; Number of cylinders for this engine application. ; SHORTCARD bne.s loc_8282E loc_82828: ; CODE XREF: sub_82766+E6j clr.b (byte_FFFFAA93).w bra.s loc_8285C ; --------------------------------------------------------------------------- loc_8282E: ; CODE XREF: sub_82766+C0j tst.b (byte_FFFFAA93).w bne.s loc_82844 cmp.w (ENG_CONSTANTS_KE_ENGINE_SCHEDULE_RPM_HI).l,d3 ; The engine speed above which some of the sync. code activation rate is changed. ; RPM bcs.s loc_8285C move.b #1,(byte_FFFFAA93).w bra.s loc_8285C ; --------------------------------------------------------------------------- loc_82844: ; CODE XREF: sub_82766+CCj cmp.w (ENG_CONSTANTS_KE_ENGINE_SCHEDULE_RPM_LO).l,d3 ; The engine speed below which some of the sync. code activation rate is changed. ; RPM bcc.s loc_8285C bra.s loc_82828 ; --------------------------------------------------------------------------- loc_8284E: ; CODE XREF: sub_82766+80j clr.w d3 move.b (byte_FFFFAC47).w,d3 move.w #$FFFF,$C+var_55A4(d3.w*2) loc_8285C: ; CODE XREF: sub_82766+C6j ; sub_82766+D4j ... clr.l d1 move.w (word_FFFFAA6A).w,d1 clr.l d3 move.w (word_FFFFAA68).w,d3 add.l d1,d3 clr.l d1 move.w (word_FFFFAA6C).w,d1 add.l d1,d3 clr.l d1 move.w (word_FFFFAA6E).w,d1 add.l d1,d3 clr.l d1 move.w (word_FFFFAA70).w,d1 add.l d1,d3 clr.l d1 move.w (word_FFFFAA72).w,d1 add.l d1,d3 clr.l d1 move.w (word_FFFFAA74).w,d1 add.l d1,d3 clr.l d1 move.w (word_FFFFAA76).w,d1 add.l d1,d3 cmpi.l #$FFFF,d3 bls.s loc_828A6 move.w #$FFFF,d3 loc_828A6: ; CODE XREF: sub_82766+13Aj move.w d3,(word_FFFFAA88).w move.w (word_FFFFAA94).w,d1 tst.b (byte_FFFFB37A).w beq.s loc_828BA movea.w (word_FFFFFF08).w,a2 bra.s loc_828BE ; --------------------------------------------------------------------------- loc_828BA: ; CODE XREF: sub_82766+14Cj movea.w (word_FFFFFF12).w,a2 loc_828BE: ; CODE XREF: sub_82766+152j move.w a2,d0 move.w d0,(word_FFFFAA94).w move.l a2,d4 sub.w d1,d4 move.w d4,(word_FFFFAA7A).w clr.l d5 move.w (word_FFFFAA7A).w,d5 clr.w d3 move.b (byte_FFFFAC47).w,d3 move.w word_FFFFAA68(d3.w*2),d3 mulu.w #$1D0,d3 divu.l #$F,d3 sub.l d5,d3 bcc.s loc_828F0 clr.l d3 loc_828F0: ; CODE XREF: sub_82766+186j move.l #$8000,d4 cmp.l d3,d4 scs d3 neg.b d3 cmp.w d1,d0 scs d1 neg.b d1 eor.b d3,d1 beq.s loc_8290A add.w d4,(word_FFFFAA96).w loc_8290A: ; CODE XREF: sub_82766+19Ej lsr.w #1,d0 add.w (word_FFFFAA96).w,d0 move.w d0,(word_FFFFAA86).w movem.l (sp)+,d0-d1 unlk a6 rts ; End of function sub_82766 ; =============== S U B R O U T I N E ======================================= sub_8291C: ; CODE XREF: DoLoopE+20p btst #4,(byte_FFFFAA92).w bne.s locret_82952 btst #6,(byte_FFFFAA92).w beq.s locret_82952 cmpi.w #$A00,(EngineRPM_PID_000C___).w bcc.s loc_8294C movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFAA84).w,d3 add.w $A(a2),d3 bcc.s loc_82946 move.w #$FFFF,d3 loc_82946: ; CODE XREF: sub_8291C+24j move.w d3,(word_FFFFAA84).w bra.s locret_82952 ; --------------------------------------------------------------------------- loc_8294C: ; CODE XREF: sub_8291C+16j bset #4,(byte_FFFFAA92).w locret_82952: ; CODE XREF: sub_8291C+6j sub_8291C+Ej ... rts ; End of function sub_8291C ; =============== S U B R O U T I N E ======================================= sub_82954: ; CODE XREF: DoLoopC+37Ep movem.l d0-d1,-(sp) tst.b (byte_FFFF8209).w beq.w loc_829F4 tst.b (byte_FFFFABCC).w beq.s loc_82980 movea.w (word_FFFF9E28).w,a2 move.w a2,(word_FFFFABAE).w move.l a2,d1 move.w a2,(word_FFFFABB0).w clr.w d0 clr.w (word_FFFFABB4).w clr.b (byte_FFFFABCC).w bra.s loc_8299A ; --------------------------------------------------------------------------- loc_82980: ; CODE XREF: sub_82954+10j move.w (word_FFFFABB0).w,d1 move.w (word_FFFFABAE).w,(word_FFFFABB0).w move.w (word_FFFF9E28).w,(word_FFFFABAE).w move.w (word_FFFFABB4).w,d0 move.w (word_FFFFABB2).w,(word_FFFFABB4).w loc_8299A: ; CODE XREF: sub_82954+2Aj move.w (RTD_KE_RTD_DELTA_TORQUE_DIVISOR).l,d3 ; Divisor for the RTD Delta Torque Calculation ; RTD_Input_Type move.w (word_FFFFABAE).w,d4 muls.w (RTD_KE_RTD_DELTA_TORQUE_COEF_B0).l,d4 ; Numerator coefficient for the RTD Delta Torque Calculation ; RTD_Input_Type muls.w (RTD_KE_RTD_DELTA_TORQUE_COEF_B2).l,d1 ; Numerator coefficient for the RTD Delta Torque Calculation ; RTD_Input_Type sub.l d1,d4 bvs.s loc_829CC move.w (word_FFFFABB4).w,d5 muls.w (RTD_KE_RTD_DELTA_TORQUE_COEF_A1).l,d5 ; Denomenator coefficient for the RTD Delta Torque Calculation ; RTD_Input_Type add.l d5,d4 bvs.s loc_829CC muls.w (RTD_KE_RTD_DELTA_TORQUE_COEF_A2).l,d0 ; Denomenator coefficient for the RTD Delta Torque Calculation ; RTD_Input_Type sub.l d0,d4 bvc.s loc_829DC loc_829CC: ; CODE XREF: sub_82954+5Ej ; sub_82954+6Cj bpl.s loc_829D6 move.l #$7FFFFFFF,d4 bra.s loc_829DC ; --------------------------------------------------------------------------- loc_829D6: ; CODE XREF: sub_82954:loc_829CCj move.l #$80000000,d4 loc_829DC: ; CODE XREF: sub_82954+76j ; sub_82954+80j divs.w d3,d4 bvc.s loc_829F0 swap d4 eor.w d3,d4 bmi.s loc_829EC move.w #$7FFF,d4 bra.s loc_829F0 ; --------------------------------------------------------------------------- loc_829EC: ; CODE XREF: sub_82954+90j move.w #$8000,d4 loc_829F0: ; CODE XREF: sub_82954+8Aj ; sub_82954+96j move.w d4,(word_FFFFABB2).w loc_829F4: ; CODE XREF: sub_82954+8j movem.l (sp)+,d0-d1 rts ; End of function sub_82954 ; =============== S U B R O U T I N E ======================================= sub_829FA: ; CODE XREF: DoLoopD:loc_2A7AAp movem.l d0-d2/d6-d7,-(sp) tst.b (byte_FFFF8209).w beq.w loc_83158 tst.b (byte_FFFFB370).w beq.s loc_82A14 move.w (word_FFFF9050).w,(word_FFFFABAC).w bra.s loc_82A1A ; --------------------------------------------------------------------------- loc_82A14: ; CODE XREF: sub_829FA+10j move.w (word_FFFFAB66).w,(word_FFFFABAC).w loc_82A1A: ; CODE XREF: sub_829FA+18j move.b (byte_FFFFA3B8).w,d1 cmpi.b #8,d1 bne.s loc_82A40 tst.b (byte_FFFFABCF).w bne.s loc_82A30 move.b d1,(byte_FFFFABCE).w bra.s loc_82A4C ; --------------------------------------------------------------------------- loc_82A30: ; CODE XREF: sub_829FA+2Ej move.b (byte_FFFFABCF).w,d3 subq.b #1,d3 bcc.s loc_82A3A clr.b d3 loc_82A3A: ; CODE XREF: sub_829FA+3Cj move.b d3,(byte_FFFFABCF).w bra.s loc_82A4C ; --------------------------------------------------------------------------- loc_82A40: ; CODE XREF: sub_829FA+28j move.b d1,(byte_FFFFABCE).w move.b (RTD_KE_RTD_MTRAN_GEAR_UPDATE_DELAY).l,(byte_FFFFABCF).w loc_82A4C: ; CODE XREF: sub_829FA+34j ; sub_829FA+44j clr.w d0 move.b (byte_FFFFABCE).w,d0 move.w RTD_KV_RTD_DELTA_TORQUE_GEAR_MULT(d0.w*2),d0 ; Factor to multiply Delta Torque to reduce the engine power output expected at the rear axle for higher transmission gears. ; Engine_Spd_Int_Gain_Type move.w (word_FFFFABB2).w,d3 ble.s loc_82A90 move.w (EngineRPM_PID_000C___).w,d4 movea.w #$800,a2 move.w #$8000,d5 cmp.w d4,d5 bls.s loc_82A74 lsr.w #4,d4 bra.s loc_82A78 ; --------------------------------------------------------------------------- loc_82A74: ; CODE XREF: sub_829FA+74j move.w #$800,d4 loc_82A78: ; CODE XREF: sub_829FA+78j tbls.w (RTD_KV_RTD_POS_DELTA_TORQUE_LIM).l,d4 ; Positive Delta Torque Threshold as a function of Engine_Speed to trip Lift/Dive Command Calibration. ; Engine_Spd_Int_Gain_Type loc_82A80: ; CODE XREF: sub_829FA+BCj ; sub_829FA+C0j muls.w d0,d3 bpl.s loc_82A8A addi.l #$FFF,d3 loc_82A8A: ; CODE XREF: sub_829FA+88j asr.l #8,d3 asr.l #4,d3 bra.s loc_82AC0 ; --------------------------------------------------------------------------- loc_82A90: ; CODE XREF: sub_829FA+64j move.w (EngineRPM_PID_000C___).w,d3 movea.w #$800,a2 move.w #$8000,d5 cmp.w d3,d5 bls.s loc_82AA4 lsr.w #4,d3 bra.s loc_82AA8 ; --------------------------------------------------------------------------- loc_82AA4: ; CODE XREF: sub_829FA+A4j move.w #$800,d3 loc_82AA8: ; CODE XREF: sub_829FA+A8j tbls.w (RTD_KV_RTD_NEG_DELTA_TORQUE_LIM).l,d3 ; Negitive Delta Torque Threshold as a function of Engine_Speed to trip Lift/Dive Command Calibration. ; Engine_Spd_Int_Gain_Type move.w d3,d4 move.w (word_FFFFABB2).w,d3 bge.s loc_82A80 neg.w d3 bvc.s loc_82A80 move.w #$7FFF,d3 loc_82AC0: ; CODE XREF: sub_829FA+94j cmp.w d4,d3 sgt d3 neg.b d3 move.b (byte_FFFFABC4).w,d7 eori.b #1,d7 and.b d3,d7 move.b d7,(byte_FFFFABC5).w move.b d3,(byte_FFFFABC4).w move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d6 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type cmpi.b #2,d6 beq.w loc_82E4A btst #1,(byte_FFFF89F6).w bne.s loc_82B16 btst #1,(byte_FFFF89FC).w bne.s loc_82B16 btst #1,(byte_FFFF89F2).w bne.s loc_82B16 btst #1,(byte_FFFF89F4).w bne.s loc_82B16 btst #1,(byte_FFFF89F8).w bne.s loc_82B16 btst #1,(byte_FFFF89FA).w beq.s loc_82B1E loc_82B16: ; CODE XREF: sub_829FA+F2j ; sub_829FA+FAj ... clr.b (byte_FFFFABC3).w bra.w loc_82C0A ; --------------------------------------------------------------------------- loc_82B1E: ; CODE XREF: sub_829FA+11Aj move.b (byte_FFFFABC2).w,d0 moveq #1,d2 cmp.b d0,d2 bne.s loc_82B4E tst.b d1 bne.s loc_82B4E move.w (EngineRPM_PID_000C___).w,d3 clr.b d4 cmp.w d3,d5 bls.s loc_82B3A lsr.w #4,d3 bra.s loc_82B3E ; --------------------------------------------------------------------------- loc_82B3A: ; CODE XREF: sub_829FA+13Aj move.w #$800,d3 loc_82B3E: ; CODE XREF: sub_829FA+13Ej tblu.w (RTD_KV_RTD_2TO1_DOWNSHIFT_THROT_LIM).l,d3 ; Commanded engine power output table for a 2 to 1 downshift. ; Engine_Spd_Int_Gain_Type cmp.w (word_FFFFABAC).w,d3 bcs.w loc_82BF6 loc_82B4E: ; CODE XREF: sub_829FA+12Cj ; sub_829FA+130j cmpi.b #2,d0 bne.s loc_82B78 cmp.b d1,d2 bne.s loc_82B78 move.w (EngineRPM_PID_000C___).w,d3 clr.b d4 cmp.w d3,d5 bls.s loc_82B66 lsr.w #4,d3 bra.s loc_82B6A ; --------------------------------------------------------------------------- loc_82B66: ; CODE XREF: sub_829FA+166j move.w #$800,d3 loc_82B6A: ; CODE XREF: sub_829FA+16Aj tblu.w (RTD_KV_RTD_3TO2_DOWNSHIFT_THROT_LIM).l,d3 ; Commanded engine power output table for a 3 to 2 downshift. ; Engine_Spd_Int_Gain_Type cmp.w (word_FFFFABAC).w,d3 bcs.s loc_82BF6 loc_82B78: ; CODE XREF: sub_829FA+158j ; sub_829FA+15Cj cmpi.b #2,d0 bne.s loc_82BA2 tst.b d1 bne.s loc_82BA2 move.w (EngineRPM_PID_000C___).w,d3 clr.b d4 cmp.w d3,d5 bls.s loc_82B90 lsr.w #4,d3 bra.s loc_82B94 ; --------------------------------------------------------------------------- loc_82B90: ; CODE XREF: sub_829FA+190j move.w #$800,d3 loc_82B94: ; CODE XREF: sub_829FA+194j tblu.w (RTD_KV_RTD_3TO1_DOWNSHIFT_THROT_LIM).l,d3 ; Commanded engine power output table for a 3 to 1 downshift. ; Engine_Spd_Int_Gain_Type cmp.w (word_FFFFABAC).w,d3 bcs.s loc_82BF6 loc_82BA2: ; CODE XREF: sub_829FA+182j ; sub_829FA+186j moveq #3,d4 cmp.b d0,d4 bne.s loc_82BCC cmp.b d1,d2 bne.s loc_82BCC move.w (EngineRPM_PID_000C___).w,d3 clr.b d4 cmp.w d3,d5 bls.s loc_82BBA lsr.w #4,d3 bra.s loc_82BBE ; --------------------------------------------------------------------------- loc_82BBA: ; CODE XREF: sub_829FA+1BAj move.w #$800,d3 loc_82BBE: ; CODE XREF: sub_829FA+1BEj tblu.w (RTD_KV_RTD_4TO2_DOWNSHIFT_THROT_LIM).l,d3 ; Commanded engine power output table for a 4 to 2 downshift. ; Engine_Spd_Int_Gain_Type cmp.w (word_FFFFABAC).w,d3 bcs.s loc_82BF6 loc_82BCC: ; CODE XREF: sub_829FA+1ACj ; sub_829FA+1B0j cmpi.b #3,d0 bne.s loc_82BFA tst.b d1 bne.s loc_82BFA move.w (EngineRPM_PID_000C___).w,d3 clr.b d4 cmp.w d3,d5 bls.s loc_82BE4 lsr.w #4,d3 bra.s loc_82BE8 ; --------------------------------------------------------------------------- loc_82BE4: ; CODE XREF: sub_829FA+1E4j move.w #$800,d3 loc_82BE8: ; CODE XREF: sub_829FA+1E8j tblu.w (RTD_KV_RTD_4TO1_DOWNSHIFT_THROT_LIM).l,d3 ; Commanded engine power output table for a 4 to 1 downshift. ; Engine_Spd_Int_Gain_Type cmp.w (word_FFFFABAC).w,d3 bcc.s loc_82BFA loc_82BF6: ; CODE XREF: sub_829FA+150j ; sub_829FA+17Cj ... move.b d2,(byte_FFFFABC3).w loc_82BFA: ; CODE XREF: sub_829FA+1D6j ; sub_829FA+1DAj ... btst #0,(byte_FFFFA8FE).w beq.s loc_82C0A move.b d1,(byte_FFFFABC2).w bra.w loc_82B16 ; --------------------------------------------------------------------------- loc_82C0A: ; CODE XREF: sub_829FA+120j ; sub_829FA+206j btst #1,(byte_FFFF899A).w bne.w loc_83066 btst #1,(byte_FFFF899C).w bne.w loc_83066 tst.b (byte_FFFFABCD).w beq.s loc_82C44 movea.w (word_FFFFAEBC).w,a2 move.w a2,(word_FFFFABB6).w move.l a2,d2 move.w a2,(word_FFFFABB8).w clr.w d1 clr.w (word_FFFFABC0).w move.l d1,d0 clr.w (word_FFFFABBC).w clr.b (byte_FFFFABCD).w bra.s loc_82C68 ; --------------------------------------------------------------------------- loc_82C44: ; CODE XREF: sub_829FA+228j move.w (word_FFFFABB8).w,d2 move.w (word_FFFFABB6).w,(word_FFFFABB8).w move.w (word_FFFFAEBC).w,(word_FFFFABB6).w move.w (word_FFFFABC0).w,d1 move.w (word_FFFFABBE).w,(word_FFFFABC0).w move.w (word_FFFFABBC).w,d0 move.w (word_FFFFABBA).w,(word_FFFFABBC).w loc_82C68: ; CODE XREF: sub_829FA+248j move.w (RTD_KE_RTD_VEH_ACCEL_FILT_DIVISOR).l,d3 ; Divisor for the RTD Veh Accel Differiator filter ; RTD_Input_Type move.w (word_FFFFABB6).w,d4 mulu.w (RTD_KE_RTD_VEH_ACCEL_FILT_COEF_B0).l,d4 ; Numerator coefficient for the RTD VSS filter. ; RTD_Input_Type move.w (word_FFFFABB8).w,d5 mulu.w (RTD_KE_RTD_VEH_ACCEL_FILT_COEF_B1).l,d5 ; Numerator coefficient for the RTD VSS filter. ; RTD_Input_Type sub.l d5,d4 bvs.s loc_82CAA mulu.w (RTD_KE_RTD_VEH_ACCEL_FILT_COEF_B2).l,d2 ; Numerator coefficient for the RTD VSS filter. ; RTD_Input_Type add.l d2,d4 bvs.s loc_82CAA move.w (word_FFFFABC0).w,d5 muls.w (RTD_KE_RTD_VEH_ACCEL_FILT_COEF_A1).l,d5 ; Denomenator coefficient for the RTD VSS filter. ; RTD_Input_Type add.l d5,d4 bvs.s loc_82CAA move.l d1,d5 muls.w (RTD_KE_RTD_VEH_ACCEL_FILT_COEF_A2).l,d5 ; Denomenator coefficient for the RTD VSS filter. ; RTD_Input_Type sub.l d5,d4 bvc.s loc_82CBA loc_82CAA: ; CODE XREF: sub_829FA+28Aj ; sub_829FA+294j ... bpl.s loc_82CB4 move.l #$7FFFFFFF,d4 bra.s loc_82CBA ; --------------------------------------------------------------------------- loc_82CB4: ; CODE XREF: sub_829FA:loc_82CAAj move.l #$80000000,d4 loc_82CBA: ; CODE XREF: sub_829FA+2AEj ; sub_829FA+2B8j divs.w d3,d4 bvc.s loc_82CCE swap d4 eor.w d3,d4 bmi.s loc_82CCA move.w #$7FFF,d4 bra.s loc_82CCE ; --------------------------------------------------------------------------- loc_82CCA: ; CODE XREF: sub_829FA+2C8j move.w #$8000,d4 loc_82CCE: ; CODE XREF: sub_829FA+2C2j ; sub_829FA+2CEj move.w d4,(word_FFFFABBE).w move.w (RTD_KE_RTD_VEH_ACCEL_LAG_FILT_DIVISO).l,d3 ; Divisor for the RTD Veh Accel Lag filter ; RTD_Input_Type move.w (word_FFFFABBE).w,d4 muls.w (RTD_KE_RTD_VEH_ACCEL_LAGFILT_COEF_B0).l,d4 ; Vehicle acceleration lag filter numerator coefficient ; RTD_Input_Type move.w (word_FFFFABC0).w,d5 muls.w (RTD_KE_RTD_VEH_ACCEL_LAGFILT_COEF_B1).l,d5 ; Vehicle acceleration lag filter numerator coefficient ; RTD_Input_Type add.l d5,d4 bvs.s loc_82D12 muls.w (RTD_KE_RTD_VEH_ACCEL_LAGFILT_COEF_B2).l,d1 ; Vehicle acceleration lag filter numerator coefficient ; RTD_Input_Type add.l d1,d4 bvs.s loc_82D12 move.w (word_FFFFABBC).w,d5 muls.w (RTD_KE_RTD_VEH_ACCEL_LAGFILT_COEF_A1).l,d5 ; Vehicle acceleration lag filter denomenator coefficient ; RTD_Input_Type add.l d5,d4 bvs.s loc_82D12 muls.w (RTD_KE_RTD_VEH_ACCEL_LAGFILT_COEF_A2).l,d0 ; Vehicle acceleration lag filter denomenator coefficient ; RTD_Input_Type sub.l d0,d4 bvc.s loc_82D22 loc_82D12: ; CODE XREF: sub_829FA+2F4j ; sub_829FA+2FEj ... bpl.s loc_82D1C move.l #$7FFFFFFF,d4 bra.s loc_82D22 ; --------------------------------------------------------------------------- loc_82D1C: ; CODE XREF: sub_829FA:loc_82D12j move.l #$80000000,d4 loc_82D22: ; CODE XREF: sub_829FA+316j ; sub_829FA+320j divs.w d3,d4 bvc.s loc_82D36 swap d4 eor.w d3,d4 bmi.s loc_82D32 move.w #$7FFF,d4 bra.s loc_82D36 ; --------------------------------------------------------------------------- loc_82D32: ; CODE XREF: sub_829FA+330j move.w #$8000,d4 loc_82D36: ; CODE XREF: sub_829FA+32Aj ; sub_829FA+336j move.w d4,d1 move.w d1,(word_FFFFABBA).w move.w (word_FFFFAEBC).w,d3 cmp.w (RTD_KE_RTD_VSS_BRAKING_ENABLE).l,d3 ; Speed below which RTD Brake Transition Function is disabled ; MPH bls.w loc_82E12 tst.b (byte_FFFF90D4).w bne.w loc_82E12 move.b (byte_FFFF90EE).w,d3 cmp.b (RTD_KE_RTD_ROUGH_RD_VSS_FILT_DISABLE).l,d3 ; Throttle Rate filter denomenator coefficient ; Gs bcc.w loc_82E12 cmpi.b #2,d6 bne.s loc_82D84 btst #1,(byte_FFFF89B6).w beq.s loc_82D76 btst #1,(byte_FFFF8A4C).w loc_82D74: ; CODE XREF: sub_829FA+398j bne.s loc_82D94 loc_82D76: ; CODE XREF: sub_829FA+372j move.b (byte_FFFFAF3B).w,(byte_FFFFABD0).w move.b #1,(byte_FFFFABD1).w bra.s loc_82D98 ; --------------------------------------------------------------------------- loc_82D84: ; CODE XREF: sub_829FA+36Aj btst #1,(byte_FFFF89E4).w bne.s loc_82D94 btst #1,(byte_FFFF89E6).w bra.s loc_82D74 ; --------------------------------------------------------------------------- loc_82D94: ; CODE XREF: sub_829FA:loc_82D74j ; sub_829FA+390j clr.b (byte_FFFFABD1).w loc_82D98: ; CODE XREF: sub_829FA+388j btst #1,(byte_FFFF8A4E).w bne.s loc_82DB6 tst.b (byte_FFFFABD1).w bne.s loc_82DB6 jsr sub_7B6F8 move.b d0,(byte_FFFFABD0).w move.b #1,(byte_FFFFABD1).w loc_82DB6: ; CODE XREF: sub_829FA+3A4j ; sub_829FA+3AAj tst.w d1 bge.s loc_82DD6 clr.b d3 move.b (byte_FFFFABD1).w,d4 and.b (byte_FFFFABD0).w,d4 beq.s loc_82DF4 tst.w d1 bge.s loc_82DCC neg.w d1 loc_82DCC: ; CODE XREF: sub_829FA+3CEj cmp.w (RTD_KE_RTD_VEH_ACCEL_BRAKING_DECEL).l,d1 ; Lift/Dive Braking Decel Threshold ; RTD_Filter_Type ble.s loc_82DF4 bra.s loc_82DF2 ; --------------------------------------------------------------------------- loc_82DD6: ; CODE XREF: sub_829FA+3BEj clr.b d3 tst.w (word_FFFFABD4).w bls.s loc_82DF4 cmp.w (RTD_KE_RTD_VEH_ACCEL_BRAKING_ACCEL).l,d1 ; Lift/Dive Braking Accel Threshold ; RTD_Filter_Type ble.s loc_82DF4 move.w (word_FFFFABAC).w,d4 cmp.w (RTD_KE_RTD_THROT_BRAKING_ACCEL).l,d4 ; Throttle threshold below which braking release function is enabled. ; Percent bcc.s loc_82DF4 loc_82DF2: ; CODE XREF: sub_829FA+3DAj addq.b #1,d3 loc_82DF4: ; CODE XREF: sub_829FA+3CAj ; sub_829FA+3D8j ... move.b (byte_FFFFABD2).w,d4 eori.b #1,d4 and.b d3,d4 move.b d4,(byte_FFFFABD3).w move.b d3,(byte_FFFFABD2).w tst.b (byte_FFFFABD0).w bne.w loc_83042 bra.w loc_8304E ; --------------------------------------------------------------------------- loc_82E12: ; CODE XREF: sub_829FA+34Cj ; sub_829FA+354j ... clr.b (byte_FFFFABD3).w clr.b (byte_FFFFABD2).w loc_82E1A: ; CODE XREF: sub_829FA+650j ; sub_829FA+668j clr.b d3 move.w (word_FFFFAEBC).w,d4 cmp.w (RTD_KE_RTD_VEH_SPEED_CLUTCH_DUMP).l,d4 ; Speed below which clutch dump Lift/Dive Function is enabled ; MPH bcc.s loc_82E42 move.w (word_FFFFABAC).w,d4 cmp.w (RTD_KE_RTD_DESIRED_THROT_CLUTCH_DUMP).l,d4 ; Throttle above which clutch dump Lift/Dive Function is enabled ; Percent bls.s loc_82E42 move.w (EngineRPM_PID_000C___).w,d4 cmp.w (RTD_KE_RTD_ENGINE_SPEED_CLUTCH_DUMP).l,d4 ; Engine Speed above which clutch dump Lift/Dive Function is enabled ; RPM bls.s loc_82E42 addq.b #1,d3 loc_82E42: ; CODE XREF: sub_829FA+42Cj ; sub_829FA+438j ... move.b d3,(byte_FFFFABC6).w bra.w loc_83078 ; --------------------------------------------------------------------------- loc_82E4A: ; CODE XREF: sub_829FA+E8j btst #1,(byte_FFFF8998).w bne.w loc_83066 tst.b (byte_FFFFABCD).w beq.s loc_82E7A movea.w (word_FFFFAEBC).w,a2 move.w a2,(word_FFFFABB6).w move.l a2,d2 move.w a2,(word_FFFFABB8).w clr.w d1 clr.w (word_FFFFABC0).w move.l d1,d0 clr.w (word_FFFFABBC).w clr.b (byte_FFFFABCD).w bra.s loc_82E9E ; --------------------------------------------------------------------------- loc_82E7A: ; CODE XREF: sub_829FA+45Ej move.w (word_FFFFABB8).w,d2 move.w (word_FFFFABB6).w,(word_FFFFABB8).w move.w (word_FFFFAEBC).w,(word_FFFFABB6).w move.w (word_FFFFABC0).w,d1 move.w (word_FFFFABBE).w,(word_FFFFABC0).w move.w (word_FFFFABBC).w,d0 move.w (word_FFFFABBA).w,(word_FFFFABBC).w loc_82E9E: ; CODE XREF: sub_829FA+47Ej move.w (RTD_KE_RTD_VEH_ACCEL_FILT_DIVISOR).l,d3 ; Divisor for the RTD Veh Accel Differiator filter ; RTD_Input_Type move.w (word_FFFFABB6).w,d4 mulu.w (RTD_KE_RTD_VEH_ACCEL_FILT_COEF_B0).l,d4 ; Numerator coefficient for the RTD VSS filter. ; RTD_Input_Type move.w (word_FFFFABB8).w,d5 mulu.w (RTD_KE_RTD_VEH_ACCEL_FILT_COEF_B1).l,d5 ; Numerator coefficient for the RTD VSS filter. ; RTD_Input_Type sub.l d5,d4 bvs.s loc_82EE0 mulu.w (RTD_KE_RTD_VEH_ACCEL_FILT_COEF_B2).l,d2 ; Numerator coefficient for the RTD VSS filter. ; RTD_Input_Type add.l d2,d4 bvs.s loc_82EE0 move.w (word_FFFFABC0).w,d5 muls.w (RTD_KE_RTD_VEH_ACCEL_FILT_COEF_A1).l,d5 ; Denomenator coefficient for the RTD VSS filter. ; RTD_Input_Type add.l d5,d4 bvs.s loc_82EE0 move.l d1,d5 muls.w (RTD_KE_RTD_VEH_ACCEL_FILT_COEF_A2).l,d5 ; Denomenator coefficient for the RTD VSS filter. ; RTD_Input_Type sub.l d5,d4 bvc.s loc_82EF0 loc_82EE0: ; CODE XREF: sub_829FA+4C0j ; sub_829FA+4CAj ... bpl.s loc_82EEA move.l #$7FFFFFFF,d4 bra.s loc_82EF0 ; --------------------------------------------------------------------------- loc_82EEA: ; CODE XREF: sub_829FA:loc_82EE0j move.l #$80000000,d4 loc_82EF0: ; CODE XREF: sub_829FA+4E4j ; sub_829FA+4EEj divs.w d3,d4 bvc.s loc_82F04 swap d4 eor.w d3,d4 bmi.s loc_82F00 move.w #$7FFF,d4 bra.s loc_82F04 ; --------------------------------------------------------------------------- loc_82F00: ; CODE XREF: sub_829FA+4FEj move.w #$8000,d4 loc_82F04: ; CODE XREF: sub_829FA+4F8j ; sub_829FA+504j move.w d4,(word_FFFFABBE).w move.w (RTD_KE_RTD_VEH_ACCEL_LAG_FILT_DIVISO).l,d3 ; Divisor for the RTD Veh Accel Lag filter ; RTD_Input_Type move.w (word_FFFFABBE).w,d4 muls.w (RTD_KE_RTD_VEH_ACCEL_LAGFILT_COEF_B0).l,d4 ; Vehicle acceleration lag filter numerator coefficient ; RTD_Input_Type move.w (word_FFFFABC0).w,d5 muls.w (RTD_KE_RTD_VEH_ACCEL_LAGFILT_COEF_B1).l,d5 ; Vehicle acceleration lag filter numerator coefficient ; RTD_Input_Type add.l d5,d4 bvs.s loc_82F48 muls.w (RTD_KE_RTD_VEH_ACCEL_LAGFILT_COEF_B2).l,d1 ; Vehicle acceleration lag filter numerator coefficient ; RTD_Input_Type add.l d1,d4 bvs.s loc_82F48 move.w (word_FFFFABBC).w,d5 muls.w (RTD_KE_RTD_VEH_ACCEL_LAGFILT_COEF_A1).l,d5 ; Vehicle acceleration lag filter denomenator coefficient ; RTD_Input_Type add.l d5,d4 bvs.s loc_82F48 muls.w (RTD_KE_RTD_VEH_ACCEL_LAGFILT_COEF_A2).l,d0 ; Vehicle acceleration lag filter denomenator coefficient ; RTD_Input_Type sub.l d0,d4 bvc.s loc_82F58 loc_82F48: ; CODE XREF: sub_829FA+52Aj ; sub_829FA+534j ... bpl.s loc_82F52 move.l #$7FFFFFFF,d4 bra.s loc_82F58 ; --------------------------------------------------------------------------- loc_82F52: ; CODE XREF: sub_829FA:loc_82F48j move.l #$80000000,d4 loc_82F58: ; CODE XREF: sub_829FA+54Cj ; sub_829FA+556j divs.w d3,d4 bvc.s loc_82F6C swap d4 eor.w d3,d4 bmi.s loc_82F68 move.w #$7FFF,d4 bra.s loc_82F6C ; --------------------------------------------------------------------------- loc_82F68: ; CODE XREF: sub_829FA+566j move.w #$8000,d4 loc_82F6C: ; CODE XREF: sub_829FA+560j ; sub_829FA+56Cj move.w d4,d1 move.w d1,(word_FFFFABBA).w move.w (word_FFFFAEBC).w,d3 cmp.w (RTD_KE_RTD_VSS_BRAKING_ENABLE).l,d3 ; Speed below which RTD Brake Transition Function is disabled ; MPH bls.w loc_82E12 tst.b (byte_FFFF90D4).w bne.w loc_82E12 move.b (byte_FFFF90EE).w,d3 cmp.b (RTD_KE_RTD_ROUGH_RD_VSS_FILT_DISABLE).l,d3 ; Throttle Rate filter denomenator coefficient ; Gs bcc.w loc_82E12 cmpi.b #2,d6 bne.s loc_82FBA btst #1,(byte_FFFF89B6).w beq.s loc_82FAC btst #1,(byte_FFFF8A4C).w loc_82FAA: ; CODE XREF: sub_829FA+5CEj bne.s loc_82FCA loc_82FAC: ; CODE XREF: sub_829FA+5A8j move.b (byte_FFFFAF3B).w,(byte_FFFFABD0).w move.b #1,(byte_FFFFABD1).w bra.s loc_82FCE ; --------------------------------------------------------------------------- loc_82FBA: ; CODE XREF: sub_829FA+5A0j btst #1,(byte_FFFF89E4).w bne.s loc_82FCA btst #1,(byte_FFFF89E6).w bra.s loc_82FAA ; --------------------------------------------------------------------------- loc_82FCA: ; CODE XREF: sub_829FA:loc_82FAAj ; sub_829FA+5C6j clr.b (byte_FFFFABD1).w loc_82FCE: ; CODE XREF: sub_829FA+5BEj btst #1,(byte_FFFF8A4E).w bne.s loc_82FEC tst.b (byte_FFFFABD1).w bne.s loc_82FEC jsr sub_7B6F8 move.b d0,(byte_FFFFABD0).w move.b #1,(byte_FFFFABD1).w loc_82FEC: ; CODE XREF: sub_829FA+5DAj ; sub_829FA+5E0j tst.w d1 bge.s loc_8300C clr.b d3 move.b (byte_FFFFABD1).w,d4 and.b (byte_FFFFABD0).w,d4 beq.s loc_8302A tst.w d1 bge.s loc_83002 neg.w d1 loc_83002: ; CODE XREF: sub_829FA+604j cmp.w (RTD_KE_RTD_VEH_ACCEL_BRAKING_DECEL).l,d1 ; Lift/Dive Braking Decel Threshold ; RTD_Filter_Type ble.s loc_8302A bra.s loc_83028 ; --------------------------------------------------------------------------- loc_8300C: ; CODE XREF: sub_829FA+5F4j clr.b d3 tst.w (word_FFFFABD4).w bls.s loc_8302A cmp.w (RTD_KE_RTD_VEH_ACCEL_BRAKING_ACCEL).l,d1 ; Lift/Dive Braking Accel Threshold ; RTD_Filter_Type ble.s loc_8302A move.w (word_FFFFABAC).w,d4 cmp.w (RTD_KE_RTD_THROT_BRAKING_ACCEL).l,d4 ; Throttle threshold below which braking release function is enabled. ; Percent bcc.s loc_8302A loc_83028: ; CODE XREF: sub_829FA+610j addq.b #1,d3 loc_8302A: ; CODE XREF: sub_829FA+600j ; sub_829FA+60Ej ... move.b (byte_FFFFABD2).w,d4 eori.b #1,d4 and.b d3,d4 move.b d4,(byte_FFFFABD3).w move.b d3,(byte_FFFFABD2).w tst.b (byte_FFFFABD0).w beq.s loc_8304E loc_83042: ; CODE XREF: sub_829FA+410j move.w (RTD_KE_RTD_BRAKING_INPUT_HOLD_TIME).l,(word_FFFFABD4).w ; RTD_Braking_Lift_Dive is updated only during this period of time after brakepedal was last applied. ; Seconds bra.w loc_82E1A ; --------------------------------------------------------------------------- loc_8304E: ; CODE XREF: sub_829FA+414j ; sub_829FA+646j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFABD4).w,d3 sub.w $A(a2),d3 bcc.s loc_8305E clr.w d3 loc_8305E: ; CODE XREF: sub_829FA+660j move.w d3,(word_FFFFABD4).w bra.w loc_82E1A ; --------------------------------------------------------------------------- loc_83066: ; CODE XREF: sub_829FA+216j ; sub_829FA+220j ... move.b #1,(byte_FFFFABCD).w clr.b (byte_FFFFABD3).w clr.b (byte_FFFFABD2).w clr.b (byte_FFFFABC6).w loc_83078: ; CODE XREF: sub_829FA+44Cj move.b (byte_FFFF90DF).w,d3 move.b (byte_FFFFABCA).w,d4 eori.b #1,d4 and.b d3,d4 move.b d4,(byte_FFFFABC9).w move.b d3,(byte_FFFFABCA).w tst.b (byte_FFFFABCB).w bne.s loc_830CE tst.b d4 beq.s loc_830AC move.b (RTD_KE_RTD_LIFT_DIVE_TEST_TIME).l,(byte_FFFFABCB).w moveq #1,d2 move.b d2,(byte_FFFFABAA).w move.b d2,(byte_FFFFABC7).w bra.s loc_8311E ; --------------------------------------------------------------------------- loc_830AC: ; CODE XREF: sub_829FA+69Cj or.b (byte_FFFFABC3).w,d7 bne.s loc_830BE tst.b (byte_FFFFABD3).w bne.s loc_830BE tst.b (byte_FFFFABC6).w beq.s loc_8311E loc_830BE: ; CODE XREF: sub_829FA+6B6j ; sub_829FA+6BCj move.b (RTD_KE_RTD_LIFT_DIVE_ACTIVE_TIME).l,(byte_FFFFABCB).w ; The amount of time that the Lift Dive signal is to be active when a suspension load change has been detected. ; Seconds move.b #1,(byte_FFFFABC7).w bra.s loc_8311E ; --------------------------------------------------------------------------- loc_830CE: ; CODE XREF: sub_829FA+698j tst.b d4 beq.s loc_830E6 move.b (RTD_KE_RTD_LIFT_DIVE_TEST_TIME).l,(byte_FFFFABCB).w move.b #1,(byte_FFFFABAA).w clr.b (byte_FFFFABC7).w bra.s loc_8311E ; --------------------------------------------------------------------------- loc_830E6: ; CODE XREF: sub_829FA+6D6j tst.b (byte_FFFFABAA).w beq.s loc_830F4 move.b #1,(byte_FFFFABC7).w bra.s loc_83110 ; --------------------------------------------------------------------------- loc_830F4: ; CODE XREF: sub_829FA+6F0j or.b (byte_FFFFABC3).w,d7 bne.s loc_83106 tst.b (byte_FFFFABD3).w bne.s loc_83106 tst.b (byte_FFFFABC6).w beq.s loc_83110 loc_83106: ; CODE XREF: sub_829FA+6FEj ; sub_829FA+704j move.b (RTD_KE_RTD_LIFT_DIVE_ACTIVE_TIME).l,(byte_FFFFABCB).w ; The amount of time that the Lift Dive signal is to be active when a suspension load change has been detected. ; Seconds bra.s loc_8311E ; --------------------------------------------------------------------------- loc_83110: ; CODE XREF: sub_829FA+6F8j ; sub_829FA+70Aj move.b (byte_FFFFABCB).w,d3 subq.b #1,d3 bcc.s loc_8311A clr.b d3 loc_8311A: ; CODE XREF: sub_829FA+71Cj move.b d3,(byte_FFFFABCB).w loc_8311E: ; CODE XREF: sub_829FA+6B0j ; sub_829FA+6C2j ... tst.b (byte_FFFFABCB).w bne.s loc_8312C clr.b (byte_FFFFABAA).w clr.b (byte_FFFFABC7).w loc_8312C: ; CODE XREF: sub_829FA+728j btst #6,(byte_FFFFA7DE).w beq.s loc_83144 btst #3,(word_FFFFA7E2+1).w sne d3 neg.b d3 move.b d3,(byte_FFFFABC8).w bra.s loc_8314A ; --------------------------------------------------------------------------- loc_83144: ; CODE XREF: sub_829FA+738j move.b (byte_FFFFABC7).w,(byte_FFFFABC8).w loc_8314A: ; CODE XREF: sub_829FA+748j move.b (byte_FFFFABC8).w,d1 move.w #$140,d0 jsr (sub_1122).l loc_83158: ; CODE XREF: sub_829FA+8j movem.l (sp)+,d0-d2/d6-d7 rts ; End of function sub_829FA ; =============== S U B R O U T I N E ======================================= sub_8315E: ; CODE XREF: OS1:000292B8p andi.w #$FF,d0 movea.l off_89D9C(d0.w*4),a2 jmp (a2) ; End of function sub_8315E ; --------------------------------------------------------------------------- loc_8316C: ; DATA XREF: OS4:off_89D9Co ; OS4:00089DA0o bra.s locret_831B8 ; --------------------------------------------------------------------------- loc_8316E: ; DATA XREF: OS4:00089DA4o tst.b (byte_FFFF8209).w beq.s locret_831B8 clr.b (byte_FFFFABAA).w clr.b (byte_FFFFABC7).w clr.b (byte_FFFFABCB).w moveq #1,d4 move.b d4,(byte_FFFFABCC).w move.b (byte_FFFFA3B8).w,d3 move.b d3,(byte_FFFFABC2).w move.b d4,(byte_FFFFABCD).w clr.b (byte_FFFFABD3).w clr.b (byte_FFFFABD2).w clr.b (byte_FFFFABC6).w clr.b (byte_FFFFABC9).w clr.b (byte_FFFFABCA).w move.b d3,(byte_FFFFABCE).w move.b (RTD_KE_RTD_MTRAN_GEAR_UPDATE_DELAY).l,(byte_FFFFABCF).w bra.s locret_831B8 ; --------------------------------------------------------------------------- loc_831B4: ; DATA XREF: OS4:00089DA8o ; OS4:00089DACo bra.s locret_831B8 ; --------------------------------------------------------------------------- loc_831B6: ; DATA XREF: OS4:00089DB4o ; OS4:00089DB8o nop locret_831B8: ; CODE XREF: OS4:loc_8316Cj ; OS4:00083172j ... rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_831BA: ; CODE XREF: DoLoopD+166p var_2 = -2 link a6,#-6 movem.l d0-d2/d6/a0-a1,-(sp) move.b (STARTER_MOTOR_CONTROL_KE_STARTER_ENABLE_TYPE).l,d3 bne.s loc_831D4 jsr sub_8336E bra.w loc_83366 ; --------------------------------------------------------------------------- loc_831D4: ; CODE XREF: sub_831BA+Ej moveq #1,d2 cmp.b d3,d2 bne.w loc_83366 jsr sub_833C4 movea.l (off_134C).l,a1 move.l a1,d6 bne.s loc_831F2 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_831F2: ; CODE XREF: sub_831BA+30j btst #2,2(a1) sne d3 neg.b d3 move.b d3,(byte_FFFFAE0D).w jsr sub_833EC tst.b (byte_FFFFAE0A).w beq.w loc_832F8 move.w (word_FFFFB4A2).w,d0 cmp.w (STARTER_MOTOR_CONTROL_KE_STARTER_ENABLE_TYPE+2).l,d0 bhi.s loc_83246 move.w (word_FFFFADFC).w,var_2(a6) move.w (GlobalClock).w,d0 sub.w var_2(a6),d0 cmp.w (word_FFFFADFE).w,d0 bcs.s loc_8324C move.w (STARTER_MOTOR_CONTROL_KE_LOW_VOLTAGE_CRANK_TIME).l,d0 ; If the timer exceeds this value, set low voltage flag and disable the extended crank function. ; Seconds movea.l #unk_FFAE02,a0 jsr sub_276D4 move.b d0,(byte_FFFFAE0F).w bra.s loc_8324C ; --------------------------------------------------------------------------- loc_83246: ; CODE XREF: sub_831BA+5Ej move.w (GlobalClock).w,(word_FFFFAE02).w loc_8324C: ; CODE XREF: sub_831BA+72j ; sub_831BA+8Aj move.b (byte_FFFFAE0D).w,d3 bne.s loc_83266 move.w (word_FFFFADFC).w,var_2(a6) move.w (GlobalClock).w,d1 sub.w var_2(a6),d1 cmp.w (word_FFFFADFE).w,d1 bcs.s loc_832AA loc_83266: ; CODE XREF: sub_831BA+96j move.w (word_FFFFADFC).w,var_2(a6) move.w (GlobalClock).w,d1 sub.w var_2(a6),d1 cmp.w (word_FFFFAE00).w,d1 bcc.s loc_832AA tst.b (byte_FFFFAE0E).w bne.s loc_832AA tst.b (byte_FFFFAE0F).w bne.s loc_832AA move.w (word_FFFF9B4E).w,d1 cmp.w (STARTER_MOTOR_CONTROL_KE_EXTENDED_CRANK_FUEL_LEVEL).l,d1 ; If the primary tank fuel level falls below this threshold, disable the extended crank function. ; Liters bcs.s loc_832AA tst.b d3 bne.s loc_832AE tst.b (byte_FFFFAE0C).w beq.s loc_832AE btst #6,(byte_FFFFAA92).w bne.s loc_832AE tst.b (byte_FFFFAE14).w bne.s loc_832AE loc_832AA: ; CODE XREF: sub_831BA+AAj ; sub_831BA+BEj ... clr.b (byte_FFFFAE0B).w loc_832AE: ; CODE XREF: sub_831BA+DAj ; sub_831BA+E0j ... move.b (byte_FFFFAE11).w,d1 or.b (byte_FFFFAE0E).w,d1 bne.s loc_832F2 tst.b (byte_FFFFAE10).w bne.s loc_832F2 move.w (word_FFFFADFC).w,var_2(a6) move.w (GlobalClock).w,d1 sub.w var_2(a6),d1 cmp.w (STARTER_MOTOR_CONTROL_KE_STARTER_MAX_CRANK_TIME).l,d1 ; Maximum time starter is allowed to crank continuously. ; Seconds bcc.s loc_832F2 tst.b d3 bne.s loc_83322 move.w (word_FFFFADFC).w,var_2(a6) move.w (GlobalClock).w,d1 sub.w var_2(a6),d1 cmp.w (word_FFFFADF4).w,d1 bcs.s loc_83322 tst.b (byte_FFFFAE0B).w bne.s loc_83322 loc_832F2: ; CODE XREF: sub_831BA+FCj ; sub_831BA+102j ... clr.b (byte_FFFFAE0A).w bra.s loc_83322 ; --------------------------------------------------------------------------- loc_832F8: ; CODE XREF: sub_831BA+50j tst.b (byte_FFFFAE0D).w beq.s loc_83322 tst.b (byte_FFFFAE0C).w bne.s loc_83322 tst.b (byte_FFFFAE10).w bne.s loc_83322 btst #6,(byte_FFFFAA92).w bne.s loc_83322 tst.b (byte_FFFFAE14).w bne.s loc_83322 move.b d2,(byte_FFFFAE0A).w move.w (GlobalClock).w,(word_FFFFADFC).w loc_83322: ; CODE XREF: sub_831BA+11Cj ; sub_831BA+130j ... move.b (byte_FFFFAE0D).w,(byte_FFFFAE0C).w tst.b (byte_FFFFAE0A).w beq.s loc_83356 move.w (word_FFFFADFC).w,var_2(a6) move.w (GlobalClock).w,d1 sub.w var_2(a6),d1 cmp.w (STARTER_MOTOR_CONTROL_KE_STARTER_ACTIVATION_DELAY).l,d1 ; Time delay after starter motor active transitions from FALSE to TRUE that the starter relay will be energized. ; Seconds bcs.s loc_83356 move.l d2,d1 move.w #$142,d0 jsr (sub_1122).l move.b d2,(byte_FFFFADF8).w bra.s loc_83366 ; --------------------------------------------------------------------------- loc_83356: ; CODE XREF: sub_831BA+172j ; sub_831BA+188j clr.b d1 move.w #$142,d0 jsr (sub_1122).l clr.b (byte_FFFFADF8).w loc_83366: ; CODE XREF: sub_831BA+16j ; sub_831BA+1Ej ... movem.l (sp)+,d0-d2/d6/a0-a1 unlk a6 rts ; End of function sub_831BA ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_8336E: ; CODE XREF: sub_831BA+10p var_2 = -2 link a6,#-2 tst.b (byte_FFFFADF2).w beq.s loc_833A8 move.w (EngineRPM_PID_000C___).w,d3 cmp.w (STARTER_MOTOR_CONTROL_KE_STARTER_INHIBIT_SPEED).l,d3 ; The engine speed above which the starter will be disabled, after KE_Starter_Inhibit_Delay seconds. ; RPM bls.s loc_833A0 move.w (word_FFFFADFA).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (STARTER_MOTOR_CONTROL_KE_STARTER_INHIBIT_DELAY).l,d3 ; The delay after which the starter will be disabled, when engine speed is above KE_Starter_Inhibit_Speed RPM. ; Seconds bcs.s loc_833C0 clr.b (byte_FFFFADF2).w bra.s loc_833C0 ; --------------------------------------------------------------------------- loc_833A0: ; CODE XREF: sub_8336E+14j move.w (GlobalClock).w,(word_FFFFADFA).w bra.s loc_833C0 ; --------------------------------------------------------------------------- loc_833A8: ; CODE XREF: sub_8336E+8j move.w (GlobalClock).w,(word_FFFFADFA).w move.w (EngineRPM_PID_000C___).w,d3 cmp.w (STARTER_MOTOR_CONTROL_KE_STARTER_ENABLE_SPEED).l,d3 ; The engine speed below which the starter will be re-enabled. ; RPM bcc.s loc_833C0 move.b #1,(byte_FFFFADF2).w loc_833C0: ; CODE XREF: sub_8336E+2Aj ; sub_8336E+30j ... unlk a6 rts ; End of function sub_8336E ; =============== S U B R O U T I N E ======================================= sub_833C4: ; CODE XREF: sub_831BA+22p cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_833D4 loc_833CE: ; CODE XREF: sub_833C4+18j ; sub_833C4+1Ej clr.b (byte_FFFFAE10).w bra.s locret_833EA ; --------------------------------------------------------------------------- loc_833D4: ; CODE XREF: sub_833C4+8j move.b (byte_FFFFA3AF).w,d3 cmpi.b #5,d3 bcc.s loc_833CE cmpi.b #7,d3 beq.s loc_833CE move.b #1,(byte_FFFFAE10).w locret_833EA: ; CODE XREF: sub_833C4+Ej rts ; End of function sub_833C4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_833EC: ; CODE XREF: sub_831BA+46p var_2 = -2 link a6,#-2 jsr sub_8347E move.w (word_FFFFAA90).w,d3 move.w (EngineRPM_PID_000C___).w,d4 cmp.w (word_FFFFAE08).w,d4 bls.s loc_83416 sub.w (word_FFFFAE04).w,d3 cmp.w (word_FFFFAE06).w,d3 bls.s loc_8341E move.b #1,(byte_FFFFAE0E).w bra.s loc_8341E ; --------------------------------------------------------------------------- loc_83416: ; CODE XREF: sub_833EC+16j move.w d3,(word_FFFFAE04).w clr.b (byte_FFFFAE0E).w loc_8341E: ; CODE XREF: sub_833EC+20j ; sub_833EC+28j btst #6,(byte_FFFFAA92).w bne.s loc_8342C tst.b (byte_FFFFAE14).w beq.s loc_83432 loc_8342C: ; CODE XREF: sub_833EC+38j ; sub_833EC+5Ej clr.b (byte_FFFFAE11).w bra.s loc_8345A ; --------------------------------------------------------------------------- loc_83432: ; CODE XREF: sub_833EC+3Ej tst.b (byte_FFFFAE0A).w beq.s loc_83454 move.w (word_FFFFAE12).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (word_FFFFADF6).w,d3 bcs.s loc_8342C move.b #1,(byte_FFFFAE11).w bra.s loc_8345A ; --------------------------------------------------------------------------- loc_83454: ; CODE XREF: sub_833EC+4Aj move.w (GlobalClock).w,(word_FFFFAE12).w loc_8345A: ; CODE XREF: sub_833EC+44j ; sub_833EC+66j unlk a6 rts ; End of function sub_833EC ; =============== S U B R O U T I N E ======================================= sub_8345E: ; CODE XREF: OS4:000834CCp move.w (word_FFFFADB4).w,d3 addi.w #1024,d3 muls.w #5,d3 divs.w #6,d3 movea.l #STARTER_MOTOR_CONTROL_KV_STARTER_RPM_THRESH,a2 ; Engine speed threshold for recognising engine as started. See KV_Starter_Ref_Pulses for more information. ; RPM tblu.w (a2),d3 move.w d3,(word_FFFFAE08).w rts ; End of function sub_8345E ; =============== S U B R O U T I N E ======================================= sub_8347E: ; CODE XREF: sub_833EC+4p move.w (CoolantTemperatureOrDefault).w,d3 addi.w #$400,d3 muls.w #5,d3 divs.w #6,d3 tblu.w (STARTER_MOTOR_CONTROL_KV_STARTER_REF_PULSES).l,d3 ; Number of consecutive low resolution reference pulses above KV_Starter_RPM_Thresh required to recognise engine as started. ; Pulses move.w d3,(word_FFFFAE06).w rts ; End of function sub_8347E ; =============== S U B R O U T I N E ======================================= sub_8349C: ; CODE XREF: OS1:00028A88p clr.l d3 move.b d0,d3 movea.l off_89FCC(d3.w*4),a2 jmp (a2) ; End of function sub_8349C ; --------------------------------------------------------------------------- loc_834AA: ; DATA XREF: OS4:off_89FCCo ; OS4:00089FD4o ... tst.b (STARTER_MOTOR_CONTROL_KE_STARTER_ENABLE_TYPE).l seq d3 neg.b d3 move.b d3,(byte_FFFFADF2).w clr.b (byte_FFFFAE0C).w clr.b (byte_FFFFAE0E).w move.w (word_FFFFAA90).w,(word_FFFFAE04).w move.w (GlobalClock).w,(word_FFFFAE12).w jsr sub_8345E cmpi.b #2,d0 bne.w locret_83560 move.w (STARTER_MOTOR_CONTROL_KE_CRANK_RELAY_PROTECT_TIME).l,d3 ; Minimum time a crank event must be maintained for protection of the starter relay contacts. ; Seconds add.w (STARTER_MOTOR_CONTROL_KE_STARTER_ACTIVATION_DELAY).l,d3 ; Time delay after starter motor active transitions from FALSE to TRUE that the starter relay will be energized. ; Seconds bcc.s loc_834EC move.w #$FFFF,d3 loc_834EC: ; CODE XREF: OS4:000834E6j move.w d3,(word_FFFFADF4).w move.w (STARTER_MOTOR_CONTROL_KE_STARTER_GEAR_MILL_PROT_TIME).l,d3 ; Disable starter motor if Engine is not rotating within this time. ; Seconds add.w (STARTER_MOTOR_CONTROL_KE_STARTER_ACTIVATION_DELAY).l,d3 ; Time delay after starter motor active transitions from FALSE to TRUE that the starter relay will be energized. ; Seconds bcc.s loc_83502 move.w #$FFFF,d3 loc_83502: ; CODE XREF: OS4:000834FCj move.w d3,(word_FFFFADF6).w move.b #1,(byte_FFFFAE0B).w move.w (CoolantTemperatureOrDefault).w,d3 movea.w #$400,a3 add.w a3,d3 movea.l #STARTER_MOTOR_CONTROL_KV_EXTENDED_CRANK_ENABLE_TIME,a2 ; The crank request must be active for this time to enable the extended crank function. ; Seconds tblu.w (a2),d3 add.w (STARTER_MOTOR_CONTROL_KE_STARTER_ACTIVATION_DELAY).l,d3 ; Time delay after starter motor active transitions from FALSE to TRUE that the starter relay will be energized. ; Seconds bcc.s loc_8352C move.w #$FFFF,d3 loc_8352C: ; CODE XREF: OS4:00083526j move.w d3,(word_FFFFADFE).w move.w (CoolantTemperatureOrDefault).w,d3 add.w a3,d3 movea.l #STARTER_MOTOR_CONTROL_KV_EXTENDED_CRANK_TIME_MAX,a2 ; The maximum duration of an extended crank event. ; Seconds tblu.w (a2),d3 add.w (STARTER_MOTOR_CONTROL_KE_STARTER_ACTIVATION_DELAY).l,d3 ; Time delay after starter motor active transitions from FALSE to TRUE that the starter relay will be energized. ; Seconds bcc.s loc_8354C move.w #$FFFF,d3 loc_8354C: ; CODE XREF: OS4:00083546j move.w d3,(word_FFFFAE00).w bra.s locret_83560 ; --------------------------------------------------------------------------- loc_83552: ; DATA XREF: OS4:00089FE8o tst.b (86774).l seq d3 neg.b d3 move.b d3,(byte_FFFFADF2).w locret_83560: ; CODE XREF: OS4:000834D6j ; OS4:00083550j ; DATA XREF: ... rts ; =============== S U B R O U T I N E ======================================= sub_83562: ; CODE XREF: OS1:000289D0p andi.w #$FF,d0 movea.l off_89FF4(d0.w*4),a2 jmp (a2) ; End of function sub_83562 ; --------------------------------------------------------------------------- loc_83570: ; DATA XREF: OS4:00089FFCo clr.b (byte_FFFFAB7B).w movea.w (THROTTLE_KE_INITIAL_TPS_OFFSET).l,a2 ; Initial estimate of the zero position TPS offset. ; AD_Counts move.w a2,(word_FFFFAB70).w move.w a2,(word_FFFFAB72).w jsr sub_83754 jsr sub_8386E loc_8358E: ; DATA XREF: OS4:0008A000o move.w (GlobalClock).w,(word_FFFFAB6C).w move.w (GlobalClock).w,(word_FFFFAB6E).w clr.b (byte_FFFFAB7A).w clr.w (word_FFFFAB76).w clr.b (byte_FFFFAB6A).w move.b #2,(byte_FFFFAB7D).w clr.b (byte_FFFFAB7C).w locret_835B0: ; DATA XREF: OS4:off_89FF4o ; OS4:00089FF8o ... rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_835B2: ; CODE XREF: DoLoopD+124p var_4 = -4 var_2 = -2 link a6,#-4 move.l d0,-(sp) move.b (ThrottleControlMode2?).w,d3 moveq #2,d4 cmp.b d3,d4 bne.w loc_83684 cmpi.b #3,d3 beq.w loc_83684 btst #1,(byte_FFFF88E0).w bne.w loc_83684 btst #1,(byte_FFFF88E2).w bne.w loc_83684 btst #1,(byte_FFFF88E4).w bne.w loc_83684 btst #1,(byte_FFFF8A1C).w bne.w loc_83684 btst #1,(byte_FFFF8A1E).w bne.w loc_83684 btst #1,(byte_FFFF8A92).w bne.s loc_83684 btst #1,(byte_FFFF8A94).w bne.s loc_83684 btst #1,(byte_FFFF8A96).w bne.s loc_83684 btst #1,(byte_FFFF8A98).w bne.s loc_83684 btst #1,(byte_FFFF8A9A).w bne.s loc_83684 btst #1,(byte_FFFF8A9C).w bne.s loc_83684 tst.b (byte_FFFFB370).w beq.s loc_8363C move.w (word_FFFF900A).w,(word_FFFFAB78).w bra.s loc_83642 ; --------------------------------------------------------------------------- loc_8363C: ; CODE XREF: sub_835B2+80j move.w (word_FFFFAB66).w,(word_FFFFAB78).w loc_83642: ; CODE XREF: sub_835B2+88j move.w (word_FFFFAB78).w,d3 cmp.w (THROTTLE_KE_THROTTLE_STOMP_LO_THRESHOLD).l,d3 ; Minimum value through which the throttle/pedal position must travel in order to detect a throttle stomp. ; Percent Position bhi.s loc_8365A tst.b (byte_FFFFAB7C).w beq.s loc_83684 clr.b (byte_FFFFAB7D).w bra.s loc_83684 ; --------------------------------------------------------------------------- loc_8365A: ; CODE XREF: sub_835B2+9Aj cmp.w (THROTTLE_KE_THROTTLE_STOMP_HI_THRESHOLD).l,d3 ; Maximum value through which the throttle/pedal position must travel in order to detect a throttle stomp. ; Percent Position bcs.s loc_83684 tst.b (byte_FFFFAB7C).w bne.s loc_83674 move.w (GlobalClock).w,(word_FFFFAB6E).w move.b #1,(byte_FFFFAB7C).w loc_83674: ; CODE XREF: sub_835B2+B4j tst.b (byte_FFFFAB7D).w bne.s loc_83684 move.b #1,(byte_FFFFAB7D).w addq.b #1,(byte_FFFFAB7A).w loc_83684: ; CODE XREF: sub_835B2+Ej ; sub_835B2+16j ... move.b (ThrottleControlMode2?).w,d3 cmp.b d3,d4 bne.w loc_8372C cmpi.b #3,d3 beq.w loc_8372C move.b (byte_FFFFAB7A).w,d3 cmp.b (THROTTLE_KE_THROTTLE_STOMPS_TO_ACTIVATE).l,d3 ; Number of throttle stomps required to arm functions which are armed based on throttle stomps. ; Count bcs.s loc_836C0 move.w (word_FFFFAB6E).w,var_4(a6) move.w (GlobalClock).w,d3 sub.w var_4(a6),d3 cmp.w (THROTTLE_KE_THROTTLE_STOMP_DETECT_TIME).l,d3 ; The elapsed time in which the number of throttle stomps, KE_Throttle_Stomps_To_Activate, must occur. ; Seconds bhi.s loc_836C0 move.b #1,(byte_FFFFAB6A).w bra.s loc_83730 ; --------------------------------------------------------------------------- loc_836C0: ; CODE XREF: sub_835B2+EEj ; sub_835B2+104j tst.b (byte_FFFFB370).w beq.s loc_836CE move.w (word_FFFF900A).w,(word_FFFFAB74).w bra.s loc_836D4 ; --------------------------------------------------------------------------- loc_836CE: ; CODE XREF: sub_835B2+112j move.w (word_FFFFAB66).w,(word_FFFFAB74).w loc_836D4: ; CODE XREF: sub_835B2+11Aj move.w (THROTTLE_KE_THROTTLE_STOMP_LO_THRESHOLD).l,d3 ; Minimum value through which the throttle/pedal position must travel in order to detect a throttle stomp. ; Percent Position move.w (word_FFFFAB74).w,d0 cmp.w d3,d0 bhi.s loc_836E8 cmp.w (word_FFFFAB76).w,d3 bcc.s loc_836EE loc_836E8: ; CODE XREF: sub_835B2+12Ej move.w (GlobalClock).w,(word_FFFFAB6C).w loc_836EE: ; CODE XREF: sub_835B2+134j move.w (word_FFFFAB6E).w,var_4(a6) move.w (GlobalClock).w,d3 move.l d3,d4 sub.w var_4(a6),d4 cmp.w (THROTTLE_KE_THROTTLE_STOMP_DETECT_TIME).l,d4 ; The elapsed time in which the number of throttle stomps, KE_Throttle_Stomps_To_Activate, must occur. ; Seconds bcs.s loc_83726 move.w (word_FFFFAB6C).w,var_2(a6) sub.w var_2(a6),d3 cmp.w (THROTTLE_KE_CURRENT_POSITION_AT_ZERO).l,d3 ; The consecutive time interval for a throttle position or pedal rotation of zero, to reinitialize the throttle stomp sequence. ; Seconds bcs.s loc_83726 clr.b (byte_FFFFAB7A).w move.b #2,(byte_FFFFAB7D).w clr.b (byte_FFFFAB7C).w loc_83726: ; CODE XREF: sub_835B2+152j ; sub_835B2+164j move.w d0,(word_FFFFAB76).w bra.s loc_83730 ; --------------------------------------------------------------------------- loc_8372C: ; CODE XREF: sub_835B2+D8j ; sub_835B2+E0j clr.b (byte_FFFFAB6A).w loc_83730: ; CODE XREF: sub_835B2+10Cj ; sub_835B2+178j move.l (sp)+,d0 unlk a6 rts ; End of function sub_835B2 ; =============== S U B R O U T I N E ======================================= sub_83736: ; CODE XREF: sub_83754+4p var_54AE = -$54AE moveq #7,d3 loc_83738: ; CODE XREF: sub_83736+14j clr.l d5 move.b d3,d5 move.w byte_FFFFAB50(d5.w*2),var_54AE(d5.w*2) subq.w #1,d3 tst.w d3 bhi.s loc_83738 move.w (word_FFFFAB66).w,(word_FFFFAB52).w rts ; End of function sub_83736 ; =============== S U B R O U T I N E ======================================= sub_83754: ; CODE XREF: DoLoopC+38p OS4:00083582p movem.l d0-d2,-(sp) jsr sub_83736 move.w (word_FFFFF2FC).w,d3 lsr.w #2,d3 asl.w #8,d3 move.w d3,(word_FFFFAB68).w tst.b (byte_FFFFA1E1).w beq.s loc_8377C tst.b (byte_FFFFB370).w bne.s loc_8377C jsr sub_74E74 loc_8377C: ; CODE XREF: sub_83754+1Aj ; sub_83754+20j tst.b (byte_FFFFB370).w beq.s loc_83792 move.w (word_FFFFA598).w,(word_FFFFAB64).w move.w (word_FFFF905A).w,(word_FFFFAB66).w bra.w loc_83868 ; --------------------------------------------------------------------------- loc_83792: ; CODE XREF: sub_83754+2Cj btst #1,(byte_FFFF88E2).w bne.s loc_837A2 btst #1,(byte_FFFF88E4).w beq.s loc_837DA loc_837A2: ; CODE XREF: sub_83754+44j move.w (word_FFFFAB68).w,d3 sub.w (word_FFFFAB70).w,d3 bcc.s loc_837AE clr.w d3 loc_837AE: ; CODE XREF: sub_83754+56j mulu.w (THROTTLE_KE_TPS_SCALE_FACTOR).l,d3 ; Throttle position sensor scaling factor. ; %/AD Cnts lsr.l #8,d3 lsr.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_837C6 cmpi.w #$1400,d3 bls.s loc_837CA loc_837C6: ; CODE XREF: sub_83754+6Aj move.w #$1400,d3 loc_837CA: ; CODE XREF: sub_83754+70j move.w d3,(word_FFFFAB64).w move.w (THROTTLE_KE_THROTTLE_POSITION_DEFAULT).l,(word_FFFFAB66).w ; Default throttle position used when throttle sensor fails. ; Percent bra.w loc_83868 ; --------------------------------------------------------------------------- loc_837DA: ; CODE XREF: sub_83754+4Cj move.w (word_FFFFAB70).w,d2 move.w (word_FFFFAB68).w,d1 cmp.w d2,d1 bcc.s loc_83800 move.b (THROTTLE_KE_TPS_OFFSET_FILTER_COEF).l,d0 ; First order filter coefficient used to reduce zero positon TPS offset. ; Filter_Coef jsr sub_265AE move.w d0,(word_FFFFAB70).w cmp.w (word_FFFFAB72).w,d0 bcc.s loc_83800 move.w d0,(word_FFFFAB72).w loc_83800: ; CODE XREF: sub_83754+90j ; sub_83754+A6j move.w (word_FFFFAEBC).w,d3 cmpi.w #$500,d3 bls.s loc_83812 move.b #1,(byte_FFFFAB7B).w bra.s loc_83838 ; --------------------------------------------------------------------------- loc_83812: ; CODE XREF: sub_83754+B4j tst.w d3 bne.s loc_83838 tst.b (byte_FFFFAB7B).w beq.s loc_83838 clr.b (byte_FFFFAB7B).w move.w (word_FFFFAB72).w,d5 addi.w #$300,d5 move.w (word_FFFFAB70).w,d3 cmp.w d3,d5 bls.s loc_83838 addi.w #$200,d3 move.w d3,(word_FFFFAB70).w loc_83838: ; CODE XREF: sub_83754+BCj ; sub_83754+C0j ... move.w (word_FFFFAB68).w,d3 sub.w (word_FFFFAB70).w,d3 bcc.s loc_83844 clr.w d3 loc_83844: ; CODE XREF: sub_83754+ECj mulu.w (THROTTLE_KE_TPS_SCALE_FACTOR).l,d3 ; Throttle position sensor scaling factor. ; %/AD Cnts lsr.l #8,d3 lsr.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_8385C cmpi.w #$1400,d3 bls.s loc_83860 loc_8385C: ; CODE XREF: sub_83754+100j move.w #$1400,d3 loc_83860: ; CODE XREF: sub_83754+106j move.w d3,(word_FFFFAB64).w move.w d3,(word_FFFFAB66).w loc_83868: ; CODE XREF: sub_83754+3Aj ; sub_83754+82j movem.l (sp)+,d0-d2 rts ; End of function sub_83754 ; =============== S U B R O U T I N E ======================================= sub_8386E: ; CODE XREF: DoLoopA+B0p OS4:00083588p btst #1,(byte_FFFF88E2).w bne.s loc_8387E btst #1,(byte_FFFF88E4).w beq.s loc_83888 loc_8387E: ; CODE XREF: sub_8386E+6j move.w (THROTTLE_KE_THROTTLE_POSITION_DEFAULT).l,(word_FFFFAB62).w ; Default throttle position used when throttle sensor fails. ; Percent bra.s locret_838B8 ; --------------------------------------------------------------------------- loc_83888: ; CODE XREF: sub_8386E+Ej move.w (word_FFFFF2B4).w,d3 lsr.w #2,d3 asl.w #8,d3 sub.w (word_FFFFAB70).w,d3 bcc.s loc_83898 clr.w d3 loc_83898: ; CODE XREF: sub_8386E+26j mulu.w (THROTTLE_KE_TPS_SCALE_FACTOR).l,d3 ; Throttle position sensor scaling factor. ; %/AD Cnts lsr.l #8,d3 lsr.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_838B0 cmpi.w #$1400,d3 bls.s loc_838B4 loc_838B0: ; CODE XREF: sub_8386E+3Aj move.w #$1400,d3 loc_838B4: ; CODE XREF: sub_8386E+40j move.w d3,(word_FFFFAB62).w locret_838B8: ; CODE XREF: sub_8386E+18j rts ; End of function sub_8386E ; =============== S U B R O U T I N E ======================================= sub_838BA: ; CODE XREF: sub_8443E:loc_8460Cp move.l d1,-(sp) move.b d0,d1 moveq #$26,d0 ; '&' jsr (sub_1122).l move.l (sp)+,d1 rts ; End of function sub_838BA ; =============== S U B R O U T I N E ======================================= sub_838CA: ; CODE XREF: sub_83986:loc_83C5Cp ; sub_83986:loc_83CDCp move.l d0,-(sp) cmpi.b #4,(byte_FFFFA3C5).w bne.s loc_838EC tst.b (byte_FFFFA3CB).w beq.s loc_838E0 clr.b (byte_FFFFA3CA).w bra.s loc_838F4 ; --------------------------------------------------------------------------- loc_838E0: ; CODE XREF: sub_838CA+Ej moveq #1,d0 move.b d0,(byte_FFFFA3CA).w move.b d0,(byte_FFFFA3CB).w bra.s loc_838F4 ; --------------------------------------------------------------------------- loc_838EC: ; CODE XREF: sub_838CA+8j clr.b (byte_FFFFA3CA).w clr.b (byte_FFFFA3CB).w loc_838F4: ; CODE XREF: sub_838CA+14j ; sub_838CA+20j jsr sub_838FE move.l (sp)+,d0 rts ; End of function sub_838CA ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_838FE: ; CODE XREF: sub_838CA:loc_838F4p link a6,#-4 move sr,-(sp) ori #$700,sr movem.l d0-d1,-(sp) clr.w d0 move.w (word_FFFFF2D2).w,d3 lsr.w #2,d3 asl.w #8,d3 mulu.w (IGNITION_KE_IGNITION_VOLTAGE_SCALE_FAC).l,d3 ; Ignition 1 sensor scaling factor. ; lsr.l #8,d3 lsr.l #8,d3 move.w #$A00,d5 cmp.w d3,d5 bhi.s loc_83946 moveq #1,d0 movea.l (off_1328).l,a2 move.l a2,d1 bne.s loc_8393A jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_8393A: ; CODE XREF: sub_838FE+34j clr.b d4 btst #3,2(a2) bne.s loc_83946 addq.b #1,d4 loc_83946: ; CODE XREF: sub_838FE+28j ; sub_838FE+44j move.w (word_FFFFF2D2).w,d3 lsr.w #2,d3 asl.w #8,d3 mulu.w (IGNITION_KE_IGNITION_VOLTAGE_SCALE_FAC).l,d3 ; Ignition 1 sensor scaling factor. ; lsr.l #8,d3 lsr.l #8,d3 tst.b d0 beq.s loc_83978 cmp.w d3,d5 bhi.s loc_83978 tst.b d4 beq.s loc_83978 move.b (byte_FFFFA3C5).w,d3 addq.b #1,d3 cmpi.b #4,d3 bls.s loc_83972 moveq #4,d3 loc_83972: ; CODE XREF: sub_838FE+70j move.b d3,(byte_FFFFA3C5).w bra.s loc_8397C ; --------------------------------------------------------------------------- loc_83978: ; CODE XREF: sub_838FE+5Cj ; sub_838FE+60j ... clr.b (byte_FFFFA3C5).w loc_8397C: ; CODE XREF: sub_838FE+78j movem.l (sp)+,d0-d1 move (sp)+,sr unlk a6 rts ; End of function sub_838FE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_83986: ; CODE XREF: DoLoopC+15Ep var_2C = -$2C var_28 = -$28 var_24 = -$24 var_20 = -$20 var_1C = -$1C var_18 = -$18 var_14 = -$14 var_10 = -$10 var_C = -$C var_8 = -8 var_4 = -4 link a6,#-$2C movem.l d0-d2/d6-a1,-(sp) move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d6 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type moveq #2,d7 cmp.b d6,d7 beq.s loc_839CA cmp.b (VEH_SYS_KE_TYPE_OF_DISCRETE_GEAR_SELECT).l,d7 ; Describes if the vehicle is equipped with PRNDL input, Park/Neutral switch or neither. ; Selection_List bne.s loc_839CA moveq #1,d3 movea.l (off_1328).l,a1 move.l a1,var_2C(a6) move.l a1,d2 bne.s loc_839B8 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_839B8: ; CODE XREF: sub_83986+2Aj btst #7,2(a1) bne.s loc_839C6 clr.b (byte_FFFFA3C8).w bra.s loc_839CA ; --------------------------------------------------------------------------- loc_839C6: ; CODE XREF: sub_83986+38j move.b d3,(byte_FFFFA3C8).w loc_839CA: ; CODE XREF: sub_83986+12j ; sub_83986+1Aj ... tst.b d6 beq.s loc_839D6 cmpi.b #1,d6 bne.w loc_83A8A loc_839D6: ; CODE XREF: sub_83986+46j clr.b (byte_FFFFA3D4).w cmp.b d6,d7 beq.s loc_83A16 btst #2,(byte_FFFFBF31).w bne.s loc_839EC bset #0,(byte_FFFFA3D4).w loc_839EC: ; CODE XREF: sub_83986+5Ej btst #1,(byte_FFFFBF31).w bne.s loc_839FA bset #1,(byte_FFFFA3D4).w loc_839FA: ; CODE XREF: sub_83986+6Cj btst #0,(byte_FFFFBF31).w bne.s loc_83A08 bset #2,(byte_FFFFA3D4).w loc_83A08: ; CODE XREF: sub_83986+7Aj clr.w d1 move.b (byte_FFFFA3D4).w,d1 move.b byte_8A728(d1.w),d1 loc_83A16: ; CODE XREF: sub_83986+56j move.b (byte_FFFFA3C7).w,d3 cmp.b d3,d1 bne.s loc_83A4C cmpi.b #7,d1 bne.s loc_83A4C move.w (TRANS_IO_KE_PSM_ERROR_TIME).l,d0 ; Force DRIVE4 value if PSM reading is bad for this length of time. ; Seconds movea.l #unk_FFA3DE,a0 jsr sub_276D4 tst.b d0 beq.s loc_83A80 move.b d1,(byte_FFFFA3B2).w move.b #3,(byte_FFFFA3B1).w move.b #1,(byte_FFFFA3B4).w bra.s loc_83A80 ; --------------------------------------------------------------------------- loc_83A4C: ; CODE XREF: sub_83986+96j ; sub_83986+9Cj move.w (GlobalClock).w,(word_FFFFA3DE).w cmp.b d3,d1 bne.s loc_83A80 cmpi.b #7,d1 beq.s loc_83A80 move.w (TRANS_IO_KE_PSM_GOOD_TIME).l,d0 ; Update PSM position if PSM reading is good for this length of time. ; Seconds movea.l #unk_FFA3E0,a0 jsr sub_276D4 tst.b d0 beq.s loc_83A86 move.b d1,(byte_FFFFA3B2).w move.b d1,(byte_FFFFA3B1).w clr.b (byte_FFFFA3B4).w bra.s loc_83A86 ; --------------------------------------------------------------------------- loc_83A80: ; CODE XREF: sub_83986+B2j ; sub_83986+C4j ... move.w (GlobalClock).w,(word_FFFFA3E0).w loc_83A86: ; CODE XREF: sub_83986+EAj ; sub_83986+F8j move.b d1,(byte_FFFFA3C7).w loc_83A8A: ; CODE XREF: sub_83986+4Cj cmp.b d6,d7 bne.s loc_83A98 loc_83A8E: ; CODE XREF: sub_83986+122j move.b #3,(byte_FFFFA3AF).w bra.w loc_83BDE ; --------------------------------------------------------------------------- loc_83A98: ; CODE XREF: sub_83986+106j move.b (VEH_SYS_KE_TYPE_OF_DISCRETE_GEAR_SELECT).l,d3 ; Describes if the vehicle is equipped with PRNDL input, Park/Neutral switch or neither. ; Selection_List bne.s loc_83AB4 tst.b d6 beq.s loc_83AAA cmpi.b #1,d6 bne.s loc_83A8E loc_83AAA: ; CODE XREF: sub_83986+11Cj move.b (byte_FFFFA3B1).w,(byte_FFFFA3AF).w bra.w loc_83BDE ; --------------------------------------------------------------------------- loc_83AB4: ; CODE XREF: sub_83986+118j cmp.b d3,d7 bne.s loc_83AD0 tst.b (byte_FFFFA3C8).w bne.s loc_83AC2 moveq #6,d1 bra.s loc_83AC4 ; --------------------------------------------------------------------------- loc_83AC2: ; CODE XREF: sub_83986+136j moveq #3,d1 loc_83AC4: ; CODE XREF: sub_83986+13Aj move.b d1,(byte_FFFFA3AF).w move.b d1,(byte_FFFFA3FF).w bra.w loc_83BDE ; --------------------------------------------------------------------------- loc_83AD0: ; CODE XREF: sub_83986+130j cmpi.b #1,d3 bne.w loc_83BDE btst #7,(byte_FFFFBF30).w bne.s loc_83B12 btst #6,(byte_FFFFBF30).w bne.s loc_83B12 btst #5,(byte_FFFFBF30).w bne.s loc_83B12 btst #4,(byte_FFFFBF30).w bne.s loc_83B12 btst #2,(byte_FFFFBF31).w bne.s loc_83B12 btst #1,(byte_FFFFBF31).w bne.s loc_83B12 btst #0,(byte_FFFFBF31).w beq.w loc_83BDE loc_83B12: ; CODE XREF: sub_83986+158j ; sub_83986+160j ... cmpi.w #$500,(word_FFFFB4A2).w bhi.s loc_83B24 btst #7,(byte_FFFFBF32).w beq.w loc_83BDE loc_83B24: ; CODE XREF: sub_83986+192j clr.b (byte_FFFFA3D3).w btst #7,(byte_FFFFBF30).w bne.s loc_83B36 bset #0,(byte_FFFFA3D3).w loc_83B36: ; CODE XREF: sub_83986+1A8j btst #6,(byte_FFFFBF30).w bne.s loc_83B44 bset #1,(byte_FFFFA3D3).w loc_83B44: ; CODE XREF: sub_83986+1B6j btst #5,(byte_FFFFBF30).w bne.s loc_83B52 bset #2,(byte_FFFFA3D3).w loc_83B52: ; CODE XREF: sub_83986+1C4j btst #4,(byte_FFFFBF30).w bne.s loc_83B60 bset #3,(byte_FFFFA3D3).w loc_83B60: ; CODE XREF: sub_83986+1D2j clr.w d1 move.b (byte_FFFFA3D3).w,d1 move.b byte_8A730(d1.w),d1 move.b d1,(byte_FFFFA3FF).w move.b (byte_FFFFA3C6).w,d2 cmp.b d2,d1 bne.s loc_83BA4 cmpi.b #7,d1 bne.s loc_83BA4 move.w (TRANS_IO_KE_PRNDL_ERROR_TIME).l,d0 ; Force DRIVE4 value if PRNDL reading is bad for this length of time. ; Seconds movea.l #unk_FFA3DA,a0 jsr sub_276D4 tst.b d0 beq.s loc_83BAA move.b #3,(byte_FFFFA3AF).w move.b #1,(byte_FFFFA3AA).w bra.s loc_83BAA ; --------------------------------------------------------------------------- loc_83BA4: ; CODE XREF: sub_83986+1F2j ; sub_83986+1F8j move.w (GlobalClock).w,(word_FFFFA3DA).w loc_83BAA: ; CODE XREF: sub_83986+20Ej ; sub_83986+21Cj cmp.b d2,d1 bne.s loc_83BD4 cmpi.b #7,d1 beq.s loc_83BD4 move.w (TRANS_IO_KE_PRNDL_GOOD_TIME).l,d0 ; Update PRNDL position if PRNDL reading is good for this length of time. ; Seconds movea.l #unk_FFA3DC,a0 jsr sub_276D4 tst.b d0 beq.s loc_83BDA move.b d1,(byte_FFFFA3AF).w clr.b (byte_FFFFA3AA).w bra.s loc_83BDA ; --------------------------------------------------------------------------- loc_83BD4: ; CODE XREF: sub_83986+226j ; sub_83986+22Cj move.w (GlobalClock).w,(word_FFFFA3DC).w loc_83BDA: ; CODE XREF: sub_83986+242j ; sub_83986+24Cj move.b d1,(byte_FFFFA3C6).w loc_83BDE: ; CODE XREF: sub_83986+10Ej ; sub_83986+12Aj ... btst #1,(byte_FFFF89D8).w beq.s loc_83C0C moveq #3,d1 cmp.b (ThrottleControlMode2?).w,d1 bne.s loc_83C06 tst.b d6 beq.s loc_83BF8 cmpi.b #1,d6 bne.s loc_83C00 loc_83BF8: ; CODE XREF: sub_83986+26Aj move.b (byte_FFFFA3B1).w,(byte_FFFFA3AF).w bra.s loc_83C0C ; --------------------------------------------------------------------------- loc_83C00: ; CODE XREF: sub_83986+270j move.b d1,(byte_FFFFA3AF).w bra.s loc_83C0C ; --------------------------------------------------------------------------- loc_83C06: ; CODE XREF: sub_83986+266j move.b #6,(byte_FFFFA3AF).w loc_83C0C: ; CODE XREF: sub_83986+25Ej ; sub_83986+278j ... tst.b (byte_FFFFA3AA).w bne.s loc_83C1A btst #1,(byte_FFFF89D8).w beq.s loc_83C22 loc_83C1A: ; CODE XREF: sub_83986+28Aj move.b (byte_FFFFA3FF).w,(byte_FFFFA3B0).w bra.s loc_83C28 ; --------------------------------------------------------------------------- loc_83C22: ; CODE XREF: sub_83986+292j move.b (byte_FFFFA3AF).w,(byte_FFFFA3B0).w loc_83C28: ; CODE XREF: sub_83986+29Aj move.b (TRANS_IO_KE_MNP_TYPE).l,d3 ; This determines how many shift pattern switches are used as input. ; Switches beq.w loc_83D66 moveq #1,d1 cmp.b d3,d1 bne.s loc_83CB4 move.b (VEH_SYS_KE_PLATFORM).l,d0 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type cmp.b d0,d7 bne.s loc_83C5C clr.w d3 move.b (byte_FFFF90CD).w,d3 move.b byte_FF86B8(d3.w),d3 cmp.b (byte_FFFFA3FE).w,d3 sne d3 neg.b d3 move.b d3,(byte_FFFFA3FD).w loc_83C5C: ; CODE XREF: sub_83986+2BAj jsr sub_838CA move.b (byte_FFFFA3CA).w,d3 or.b (byte_FFFFA3FD).w,d3 beq.s loc_83C9C move.b (byte_FFFFA3FE).w,d3 bne.s loc_83C86 move.b d1,(byte_FFFFA3FE).w clr.w d6 move.b (byte_FFFF90CD).w,d6 move.b d1,byte_FF86B8(d6.w) bra.s loc_83C9C ; --------------------------------------------------------------------------- loc_83C86: ; CODE XREF: sub_83986+2EAj cmp.b d3,d1 bne.s loc_83C9C clr.b (byte_FFFFA3FE).w clr.w d6 move.b (byte_FFFF90CD).w,d6 clr.b byte_FF86B8(d6.w) loc_83C9C: ; CODE XREF: sub_83986+2E4j ; sub_83986+2FEj ... cmp.b d0,d7 bne.s loc_83CAA btst #5,(byte_FFFF95E2).w bne.w loc_83D66 loc_83CAA: ; CODE XREF: sub_83986+318j move.b (byte_FFFFA3FE).w,(byte_FFFFA3B3).w bra.w loc_83D6A ; --------------------------------------------------------------------------- loc_83CB4: ; CODE XREF: sub_83986+2B0j cmp.b d3,d7 bne.w loc_83D56 cmp.b (VEH_SYS_KE_PLATFORM).l,d7 ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type bne.s loc_83CDC clr.w d3 move.b (byte_FFFF90CD).w,d3 move.b byte_FF86B8(d3.w),d3 cmp.b (byte_FFFFA3FE).w,d3 sne d3 neg.b d3 move.b d3,(byte_FFFFA3FD).w loc_83CDC: ; CODE XREF: sub_83986+33Aj jsr sub_838CA movea.l (off_1328).l,a1 move.l a1,var_2C(a6) move.l a1,d2 bne.s loc_83CF6 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_83CF6: ; CODE XREF: sub_83986+368j btst #2,2(a1) beq.s loc_83D14 tst.b (byte_FFFFA3CD).w beq.s loc_83D0A clr.b (byte_FFFFA3CC).w bra.s loc_83D1C ; --------------------------------------------------------------------------- loc_83D0A: ; CODE XREF: sub_83986+37Cj move.b d1,(byte_FFFFA3CC).w move.b d1,(byte_FFFFA3CD).w bra.s loc_83D1C ; --------------------------------------------------------------------------- loc_83D14: ; CODE XREF: sub_83986+376j clr.b (byte_FFFFA3CC).w clr.b (byte_FFFFA3CD).w loc_83D1C: ; CODE XREF: sub_83986+382j ; sub_83986+38Cj move.b (byte_FFFFA3CA).w,d3 or.b (byte_FFFFA3FD).w,d3 beq.s loc_83D38 move.b (byte_FFFFA3B3).w,d3 bne.s loc_83D32 loc_83D2C: ; CODE XREF: sub_83986+3DEj move.b d1,(byte_FFFFA3B3).w bra.s loc_83D6A ; --------------------------------------------------------------------------- loc_83D32: ; CODE XREF: sub_83986+3A4j cmp.b d3,d1 loc_83D34: ; CODE XREF: sub_83986+3CEj bne.s loc_83D6A bra.s loc_83D66 ; --------------------------------------------------------------------------- loc_83D38: ; CODE XREF: sub_83986+39Ej tst.b (byte_FFFFA3CC).w beq.s loc_83D6A move.b (byte_FFFFA3B3).w,d3 bne.s loc_83D52 tst.b (TRANS_IO_KE_MANUAL_MODE_ALLOWED).l ; This determines whether manual mode is allowed as a shift pattern. ; BOOLEAN beq.s loc_83D52 move.b d7,(byte_FFFFA3B3).w bra.s loc_83D6A ; --------------------------------------------------------------------------- loc_83D52: ; CODE XREF: sub_83986+3BCj ; sub_83986+3C4j cmp.b d3,d7 bra.s loc_83D34 ; --------------------------------------------------------------------------- loc_83D56: ; CODE XREF: sub_83986+330j cmpi.b #3,d3 bne.s loc_83D6A move.b (byte_FFFF90F4).w,d6 and.b (byte_FFFF90F5).w,d6 bne.s loc_83D2C loc_83D66: ; CODE XREF: sub_83986+2A8j ; sub_83986+320j ... clr.b (byte_FFFFA3B3).w loc_83D6A: ; CODE XREF: sub_83986+32Aj ; sub_83986+3AAj ... move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d6 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type cmp.b d6,d7 bne.s loc_83DC8 move.b (TRANS_IO_KE_CLUTCH_SWITCH_TYPE).l,d3 ; Describes the type of clutch switch, if any, used on thevehicle. ; No_switch/Closed to IGN/GRN cmpi.b #1,d3 bhi.s loc_83DC8 beq.s loc_83DA2 movea.l (off_1328).l,a1 move.l a1,var_2C(a6) move.l a1,d1 bne.s loc_83D96 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_83D96: ; CODE XREF: sub_83986+408j btst #4,2(a1) sne d3 neg.b d3 bra.s loc_83DC2 ; --------------------------------------------------------------------------- loc_83DA2: ; CODE XREF: sub_83986+3FAj movea.l (off_1330).l,a1 move.l a1,var_2C(a6) move.l a1,d1 bne.s loc_83DB6 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_83DB6: ; CODE XREF: sub_83986+428j clr.b d3 btst #3,2(a1) bne.s loc_83DC2 addq.b #1,d3 loc_83DC2: ; CODE XREF: sub_83986+41Aj ; sub_83986+438j move.b d3,(byte_FFFFA3AC).w bra.s loc_83DCC ; --------------------------------------------------------------------------- loc_83DC8: ; CODE XREF: sub_83986+3ECj ; sub_83986+3F8j clr.b (byte_FFFFA3AC).w loc_83DCC: ; CODE XREF: sub_83986+440j lea var_28(a6),a0 moveq #8,d0 jsr sub_82046 lea var_28(a6),a0 moveq #8,d0 jsr sub_8201A tst.b d0 beq.s loc_83E02 move.l var_24(a6),var_14(a6) move.l var_28(a6),var_18(a6) move.l (dword_FFFFA3F0).w,var_C(a6) move.l (dword_FFFFA3EC).w,var_10(a6) bra.s loc_83E1A ; --------------------------------------------------------------------------- loc_83E02: ; CODE XREF: sub_83986+460j move.l var_1C(a6),var_14(a6) move.l var_20(a6),var_18(a6) move.l (dword_FFFFA3F8).w,var_C(a6) move.l (dword_FFFFA3F4).w,var_10(a6) loc_83E1A: ; CODE XREF: sub_83986+47Aj move.l var_10(a6),d2 move.l var_18(a6),d1 moveq #8,d0 jsr sub_81F74 move.l d0,var_8(a6) move.l var_C(a6),d2 move.l var_14(a6),d1 moveq #8,d0 jsr sub_81FBC move.l d0,var_4(a6) lea var_28(a6),a0 lea (dword_FFFFA3EC).w,a2 moveq #7,d3 loc_83E4C: ; CODE XREF: sub_83986+4C8j move.w (a0)+,(a2)+ dbf d3,loc_83E4C move.l var_8(a6),d3 move.l var_4(a6),d0 tst.w d3 bne.s loc_83E82 move.w (TRANS_IO_KE_SF_MAX_TIME_SINCE_LAST_PULSE).l,d0 ; If no transmission output speed pulses have been seen for this length of time then the speed is considered to be zero. ; Seconds movea.l #unk_FFA3E4,a0 jsr sub_276D4 tst.b d0 beq.s loc_83E7A clr.w d3 bra.w loc_83F76 ; --------------------------------------------------------------------------- loc_83E7A: ; CODE XREF: sub_83986+4ECj move.w (word_FFFFA3C0).w,d3 bra.w loc_83F76 ; --------------------------------------------------------------------------- loc_83E82: ; CODE XREF: sub_83986+4D6j clr.l d5 move.w (TRANS_IO_KE_SF_PULSES_PER_REVOLUTION).l,d5 ; Transmission output speed sensor scaling factor. ; Pulses/Rev clr.l d1 move.w d3,d1 mulu.l #$800000,d3:d1 divu.l d5,d3:d1 move.w d1,d3 tst.l d0 bne.s loc_83EA4 clr.w d3 bra.s loc_83EB4 ; --------------------------------------------------------------------------- loc_83EA4: ; CODE XREF: sub_83986+518j mulu.w #$1093,d3 divu.l #7,d3 divu.l d0,d3 loc_83EB4: ; CODE XREF: sub_83986+51Cj move.w (GlobalClock).w,(word_FFFFA3E4).w move.w d3,(word_FFFFA3BE).w move.b (VEH_SYS_KE_DRIVETRAIN_TYPE).l,d4 ; Describes the type of drivetrain used on the vehicle ; Drivetrain_Type moveq #1,d5 cmp.b d4,d5 beq.s loc_83ED0 cmp.b d4,d7 bne.w loc_83F76 loc_83ED0: ; CODE XREF: sub_83986+542j btst #6,(byte_FFFF8AA8).w beq.s loc_83F24 btst #7,(byte_FFFFB48E).w bne.w loc_83F66 btst #6,(byte_FFFFB48E).w bne.s loc_83F24 tst.b (byte_FFFF910C).w beq.s loc_83F00 cmpi.b #4,d6 bne.s loc_83F00 tst.b (byte_FFFF9108).w beq.s loc_83F1E move.l d5,d4 bra.s loc_83F20 ; --------------------------------------------------------------------------- loc_83F00: ; CODE XREF: sub_83986+568j ; sub_83986+56Ej move.l d5,d4 movea.l (off_134C).l,a3 move.l a3,var_2C(a6) move.l a3,d0 bne.s loc_83F16 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_83F16: ; CODE XREF: sub_83986+588j btst #3,2(a3) beq.s loc_83F20 loc_83F1E: ; CODE XREF: sub_83986+574j clr.b d4 loc_83F20: ; CODE XREF: sub_83986+578j ; sub_83986+596j tst.b d4 bne.s loc_83F66 loc_83F24: ; CODE XREF: sub_83986+550j ; sub_83986+562j btst #6,(byte_FFFF8AA8).w bne.s loc_83F76 tst.b (byte_FFFF910C).w beq.s loc_83F42 cmpi.b #4,d6 bne.s loc_83F42 tst.b (byte_FFFF9108).w beq.s loc_83F60 move.l d5,d4 bra.s loc_83F62 ; --------------------------------------------------------------------------- loc_83F42: ; CODE XREF: sub_83986+5AAj ; sub_83986+5B0j move.l d5,d4 movea.l (off_134C).l,a3 move.l a3,var_2C(a6) move.l a3,d0 bne.s loc_83F58 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_83F58: ; CODE XREF: sub_83986+5CAj btst #3,2(a3) beq.s loc_83F62 loc_83F60: ; CODE XREF: sub_83986+5B6j clr.b d4 loc_83F62: ; CODE XREF: sub_83986+5BAj ; sub_83986+5D8j tst.b d4 beq.s loc_83F76 loc_83F66: ; CODE XREF: sub_83986+558j ; sub_83986+59Cj mulu.w (TRANS_IO_KE_TRANSFER_CASE_RATIO).l,d3 ; Ratio of trans output speed to transfer case output. ; Factor divu.w #$1000,d3 bvc.s loc_83F76 move.w #$FFFF,d3 loc_83F76: ; CODE XREF: sub_83986+4F0j ; sub_83986+4F8j ... move.w d3,(word_FFFFA3C0).w move.w (EngineRPM_PID_000C___).w,d3 cmpi.b #5,(byte_FFFFA3AF).w bcs.s loc_83FDE clr.w (word_FFFFA3E8).w tst.b (byte_FFFFA3B7).w bne.s loc_83F9A loc_83F90: ; CODE XREF: sub_83986+662j move.w (GlobalClock).w,(word_FFFFA3E2).w bra.w loc_8402C ; --------------------------------------------------------------------------- loc_83F9A: ; CODE XREF: sub_83986+608j move.w (word_FFFFA3EA).w,d4 cmp.w d4,d3 bcc.s loc_83FAA move.w d3,(word_FFFFA3EA).w bra.w loc_8402C ; --------------------------------------------------------------------------- loc_83FAA: ; CODE XREF: sub_83986+61Aj clr.l d5 move.w (TRANS_IO_KE_RPM_RISE).l,d5 ; Drive to PN shift occurred if RPM rises more than this. ; RPM andi.l #$FFFF,d4 add.l d5,d4 andi.l #$FFFF,d3 cmp.l d4,d3 bhi.s loc_83FD8 move.w (word_FFFFA3E2).w,var_28(a6) move.w (GlobalClock).w,d3 sub.w var_28(a6),d3 cmpi.w #$1E0,d3 bcs.s loc_8402C loc_83FD8: ; CODE XREF: sub_83986+63Cj clr.b (byte_FFFFA3B7).w bra.s loc_8402C ; --------------------------------------------------------------------------- loc_83FDE: ; CODE XREF: sub_83986+5FEj move.w #$7800,(word_FFFFA3EA).w tst.b (byte_FFFFA3B7).w bne.s loc_83F90 move.w (word_FFFFA3E8).w,d4 cmp.w d4,d3 bls.s loc_83FF8 move.w d3,(word_FFFFA3E8).w bra.s loc_8402C ; --------------------------------------------------------------------------- loc_83FF8: ; CODE XREF: sub_83986+66Aj clr.l d5 move.w (TRANS_IO_KE_RPM_DROP).l,d5 ; PN to Drive shift occurred if RPM drops more than this. ; RPM andi.l #$FFFF,d4 sub.l d5,d4 andi.l #$FFFF,d3 cmp.l d4,d3 blt.s loc_84026 move.w (word_FFFFA3E2).w,var_28(a6) move.w (GlobalClock).w,d3 sub.w var_28(a6),d3 cmpi.w #$1E0,d3 bcs.s loc_8402C loc_84026: ; CODE XREF: sub_83986+68Aj move.b #1,(byte_FFFFA3B7).w loc_8402C: ; CODE XREF: sub_83986+610j ; sub_83986+620j ... cmp.b d6,d7 bne.s loc_8403A move.b (byte_FFFFA3AC).w,d3 eori.b #1,d3 bra.s loc_8404E ; --------------------------------------------------------------------------- loc_8403A: ; CODE XREF: sub_83986+6A8j clr.b d3 move.b (byte_FFFFA3B1).w,d4 cmpi.b #6,d4 beq.s loc_8404E cmpi.b #5,d4 beq.s loc_8404E addq.b #1,d3 loc_8404E: ; CODE XREF: sub_83986+6B2j ; sub_83986+6BEj ... move.b d3,(byte_FFFFA3B9).w moveq #4,d4 cmp.b d6,d4 bne.s loc_84060 move.b (byte_FFFF93F1).w,(byte_FFFFA3AB).w bra.s loc_8406E ; --------------------------------------------------------------------------- loc_84060: ; CODE XREF: sub_83986+6D0j btst #2,(byte_FFFFB30B).w sne d3 neg.b d3 move.b d3,(byte_FFFFA3AB).w loc_8406E: ; CODE XREF: sub_83986+6D8j tst.b (TRANS_IO_KE_NEUTRAL_START_SWITCH_EQUIPPED).l ; True if vehicle is equipped with a Neutral_Start_Switch or Bottom_of_Travel_Clutch_Switch. ; Boolean beq.s loc_84096 movea.l (off_134C).l,a2 move.l a2,d3 bne.s loc_84086 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_84086: ; CODE XREF: sub_83986+6F8j btst #5,2(a2) bne.s loc_84096 move.b #1,(byte_FFFFA3C4).w bra.s loc_8409A ; --------------------------------------------------------------------------- loc_84096: ; CODE XREF: sub_83986+6EEj ; sub_83986+706j clr.b (byte_FFFFA3C4).w loc_8409A: ; CODE XREF: sub_83986+70Ej cmp.b (byte_FFFF95DD).w,d4 seq d3 neg.b d3 move.b d3,(byte_FFFFA3B5).w move.b (byte_FFFF95E9).w,(byte_FFFFA3BB).w movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_83986 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_840B4: ; CODE XREF: DoLoopD+20p var_6 = -6 var_2 = -2 link a6,#-6 movem.l d0-d2/d6/a0,-(sp) jsr sub_4B5C8 move.b (VEH_SYS_KE_DRIVETRAIN_TYPE).l,d4 ; Describes the type of drivetrain used on the vehicle ; Drivetrain_Type moveq #1,d1 cmp.b d4,d1 beq.s loc_840D4 cmpi.b #2,d4 bne.s loc_84114 loc_840D4: ; CODE XREF: sub_840B4+18j tst.b (byte_FFFF90F6).w beq.s loc_840F4 move.b (byte_FFFF90FE).w,d3 cmpi.b #3,d3 beq.s loc_840F0 cmpi.b #4,d3 beq.s loc_840F0 cmpi.b #6,d3 bne.s loc_84114 loc_840F0: ; CODE XREF: sub_840B4+2Ej ; sub_840B4+34j move.l d1,d3 bra.s loc_84116 ; --------------------------------------------------------------------------- loc_840F4: ; CODE XREF: sub_840B4+24j movea.l (off_134C).l,a0 move.l a0,var_6(a6) move.l a0,d2 bne.s loc_84108 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_84108: ; CODE XREF: sub_840B4+4Cj btst #1,2(a0) sne d3 neg.b d3 bra.s loc_84116 ; --------------------------------------------------------------------------- loc_84114: ; CODE XREF: sub_840B4+1Ej ; sub_840B4+3Aj clr.b d3 loc_84116: ; CODE XREF: sub_840B4+3Ej ; sub_840B4+5Ej tst.b d3 beq.s loc_84126 tst.b d0 beq.s loc_84122 move.l d1,d3 bra.s loc_8413A ; --------------------------------------------------------------------------- loc_84122: ; CODE XREF: sub_840B4+68j moveq #2,d3 bra.s loc_8413A ; --------------------------------------------------------------------------- loc_84126: ; CODE XREF: sub_840B4+64j tst.b d0 beq.s loc_8412E moveq #4,d3 bra.s loc_8413A ; --------------------------------------------------------------------------- loc_8412E: ; CODE XREF: sub_840B4+74j cmpi.b #4,d4 bne.s loc_84138 moveq #3,d3 bra.s loc_8413A ; --------------------------------------------------------------------------- loc_84138: ; CODE XREF: sub_840B4+7Ej clr.b d3 loc_8413A: ; CODE XREF: sub_840B4+6Cj ; sub_840B4+70j ... cmp.b (byte_FFFFA67F).w,d3 bne.s loc_84146 move.b d3,(byte_FFFFA67E).w bra.s loc_8414A ; --------------------------------------------------------------------------- loc_84146: ; CODE XREF: sub_840B4+8Aj move.b d3,(byte_FFFFA67F).w loc_8414A: ; CODE XREF: sub_840B4+90j cmp.b d4,d1 beq.s loc_84154 cmpi.b #2,d4 bne.s loc_84178 loc_84154: ; CODE XREF: sub_840B4+98j cmp.b (byte_FFFFA680).w,d0 beq.s loc_84164 move.w (GlobalClock).w,(word_FFFFA684).w move.b d0,(byte_FFFFA680).w loc_84164: ; CODE XREF: sub_840B4+A4j move.w (word_FFFFA684).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 move.w d3,(word_FFFFA682).w bra.s loc_8417C ; --------------------------------------------------------------------------- loc_84178: ; CODE XREF: sub_840B4+9Ej clr.w (word_FFFFA682).w loc_8417C: ; CODE XREF: sub_840B4+C2j move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d4 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type moveq #2,d0 cmp.b d4,d0 beq.s loc_84190 cmpi.b #3,d4 bne.w loc_84252 loc_84190: ; CODE XREF: sub_840B4+D2j clr.l d3 move.w (EngineRPM_PID_000C___).w,d3 asl.l #8,d3 asl.l #4,d3 divu.w (word_FFFFA3C0).w,d3 bvc.s loc_841A4 move.w #$FFFF,d3 loc_841A4: ; CODE XREF: sub_840B4+EAj move.w d3,(word_FFFFA3BC).w tst.b (byte_FFFFA3AC).w bne.w loc_8424A cmpi.b #6,(byte_FFFFA3AF).w beq.w loc_8424A cmp.w (TRANS_IO_KE_NE_TOSS_FIRST_LOW).l,d3 ; This is the lower numerical value of NE/TOSS in first gear.MUST BE less than KE_NE_TOSS_First_High. ; NE_TOSS_Ratio bcs.s loc_841D2 cmp.w (TRANS_IO_KE_NE_TOSS_FIRST_HIGH).l,d3 ; This is the higher numerical value of NE/TOSS in first gear.MUST BE greater than KE_NE_TOSS_First_Low. ; NE_TOSS_Ratio bhi.s loc_841D2 loc_841CA: ; CODE XREF: sub_840B4+1D4j clr.b (byte_FFFFA3B8).w bra.w loc_84298 ; --------------------------------------------------------------------------- loc_841D2: ; CODE XREF: sub_840B4+10Cj ; sub_840B4+114j cmp.w (TRANS_IO_KE_NE_TOSS_SECOND_LOW).l,d3 ; This is the lower numerical value of NE/TOSS in second gear.MUST BE less than KE_NE_TOSS_Second_High. ; NE_TOSS_Ratio bcs.s loc_841EA cmp.w (TRANS_IO_KE_NE_TOSS_SECOND_HIGH).l,d3 ; This is the higher numerical value of NE/TOSS in second gear.MUST BE greater than KE_NE_TOSS_Second_Low. ; NE_TOSS_Ratio bcc.s loc_841EA move.b d1,(byte_FFFFA3B8).w bra.w loc_84298 ; --------------------------------------------------------------------------- loc_841EA: ; CODE XREF: sub_840B4+124j ; sub_840B4+12Cj cmp.w (TRANS_IO_KE_NE_TOSS_THIRD_LOW).l,d3 ; This is the lower numerical value of NE/TOSS in third gear.MUST BE less than KE_NE_TOSS_Third_High. ; NE_TOSS_Ratio bcs.s loc_84202 cmp.w (TRANS_IO_KE_NE_TOSS_THIRD_HIGH).l,d3 ; This is the higher numerical value of NE/TOSS in third gear.MUST BE greater than KE_NE_TOSS_Third_Low. ; NE_TOSS_Ratio bcc.s loc_84202 move.b d0,(byte_FFFFA3B8).w bra.w loc_84298 ; --------------------------------------------------------------------------- loc_84202: ; CODE XREF: sub_840B4+13Cj ; sub_840B4+144j cmp.w (TRANS_IO_KE_NE_TOSS_FOURTH_LOW).l,d3 ; This is the lower numerical value of NE/TOSS in fourth gear.MUST BE less than KE_NE_TOSS_Fourth_High. ; NE_TOSS_Ratio bcs.s loc_8421A cmp.w (TRANS_IO_KE_NE_TOSS_FOURTH_HIGH).l,d3 ; This is the higher numerical value of NE/TOSS in fourth gear.MUST BE greater than KE_NE_TOSS_Fourth_Low. ; NE_TOSS_Ratio bcc.s loc_8421A loc_84212: ; CODE XREF: sub_840B4+1C4j ; sub_840B4+1CAj move.b #3,(byte_FFFFA3B8).w bra.s loc_84298 ; --------------------------------------------------------------------------- loc_8421A: ; CODE XREF: sub_840B4+154j ; sub_840B4+15Cj cmp.w (TRANS_IO_KE_NE_TOSS_FIFTH_LOW).l,d3 ; This is the lower numerical value of NE/TOSS in fifth gear.MUST BE less than KE_NE_TOSS_Fifth_High. ; NE_TOSS_Ratio bcs.s loc_84232 cmp.w (TRANS_IO_KE_NE_TOSS_FIFTH_HIGH).l,d3 ; This is the higher numerical value of NE/TOSS in fifth gear.MUST BE greater than KE_NE_TOSS_Fifth_Low. ; NE_TOSS_Ratio bcc.s loc_84232 move.b #4,(byte_FFFFA3B8).w bra.s loc_84298 ; --------------------------------------------------------------------------- loc_84232: ; CODE XREF: sub_840B4+16Cj ; sub_840B4+174j cmp.w (TRANS_IO_KE_NE_TOSS_SIXTH_LOW).l,d3 ; This is the lower numerical value of NE/TOSS in sixth gear.MUST BE less than KE_NE_TOSS_Sixth_High. ; NE_TOSS_Ratio bcs.s loc_8424A cmp.w (TRANS_IO_KE_NE_TOSS_SIXTH_HIGH).l,d3 ; This is the higher numerical value of NE/TOSS in sixth gear.MUST BE greater than KE_NE_TOSS_Sixth_Low. ; NE_TOSS_Ratio bcc.s loc_8424A move.b #5,(byte_FFFFA3B8).w bra.s loc_84298 ; --------------------------------------------------------------------------- loc_8424A: ; CODE XREF: sub_840B4+F8j ; sub_840B4+102j ... move.b #8,(byte_FFFFA3B8).w bra.s loc_84298 ; --------------------------------------------------------------------------- loc_84252: ; CODE XREF: sub_840B4+D8j move.b (byte_FFFFA3AF).w,d3 cmpi.b #6,d3 beq.s loc_8424A cmpi.b #5,d3 beq.s loc_8424A moveq #4,d2 cmp.b d3,d2 bne.s loc_84270 move.b #9,(byte_FFFFA3B8).w bra.s loc_84298 ; --------------------------------------------------------------------------- loc_84270: ; CODE XREF: sub_840B4+1B2j cmp.b d4,d2 bne.s loc_84292 tst.b (byte_FFFF90F8).w beq.s loc_84212 tst.b (byte_FFFF90F9).w bne.s loc_84212 move.b (byte_FFFF90F7).w,d3 cmpi.b #8,d3 beq.w loc_841CA move.b d3,(byte_FFFFA3B8).w bra.s loc_84298 ; --------------------------------------------------------------------------- loc_84292: ; CODE XREF: sub_840B4+1BEj move.b (byte_FFFF95DC).w,(byte_FFFFA3B8).w loc_84298: ; CODE XREF: sub_840B4+11Aj ; sub_840B4+132j ... jsr sub_4AE50 jsr sub_4AEBE jsr sub_4B012 movem.l (sp)+,d0-d2/d6/a0 unlk a6 rts ; End of function sub_840B4 ; =============== S U B R O U T I N E ======================================= sub_842B2: ; CODE XREF: DoLoopE+2Cp movem.l d0-d2/d6,-(sp) tst.b (byte_FFFF93F5).w bne.s loc_842C4 btst #2,(byte_FFFFAE60).w beq.s loc_842CC loc_842C4: ; CODE XREF: sub_842B2+8j move.b #1,(byte_FFFFA3B6).w bra.s loc_842D0 ; --------------------------------------------------------------------------- loc_842CC: ; CODE XREF: sub_842B2+10j clr.b (byte_FFFFA3B6).w loc_842D0: ; CODE XREF: sub_842B2+18j move.b (TRANS_IO_KE_TRANSMISSION_TYPE).l,d0 ; This determines which type of transmission is on the vehicle. ; Xmsn. Type cmpi.b #2,d0 bne.s loc_842E2 clr.b (byte_FFFFA3AD).w bra.s loc_8435A ; --------------------------------------------------------------------------- loc_842E2: ; CODE XREF: sub_842B2+28j tst.b (byte_FFFFA3AD).w bne.s loc_8435A moveq #5,d2 cmp.b (byte_FFFFA3AF).w,d2 bls.s loc_84356 cmpi.b #3,d0 bne.s loc_842FC move.w (CoolantTemperatureOrDefault).w,d3 bra.s loc_8431E ; --------------------------------------------------------------------------- loc_842FC: ; CODE XREF: sub_842B2+42j move.w (word_FFFFA3C2).w,d3 muls.w #$60,d3 ; '`' divs.w d2,d3 cmpi.w #$DFF,d3 bgt.s loc_84314 cmpi.w #$FC00,d3 blt.s loc_8431A bra.s loc_8431E ; --------------------------------------------------------------------------- loc_84314: ; CODE XREF: sub_842B2+58j move.w #$DFF,d3 bra.s loc_8431E ; --------------------------------------------------------------------------- loc_8431A: ; CODE XREF: sub_842B2+5Ej move.w #$FC00,d3 loc_8431E: ; CODE XREF: sub_842B2+48j ; sub_842B2+60j ... addi.w #$400,d3 muls.w d2,d3 divs.w #6,d3 tblu.w (FUEL_EQ_KV_PARK_DRIVE_DELAY_TIME).l,d3 ; Amount of time after PRNDL shifts into drive before adding park to drive enrichment. ; Seconds cmp.w (word_FFFFA3D8).w,d3 bcc.s loc_8433E move.b #1,(byte_FFFFA3AD).w bra.s loc_8435A ; --------------------------------------------------------------------------- loc_8433E: ; CODE XREF: sub_842B2+82j movea.l (dword_FFFFB5DE).w,a2 move.w (word_FFFFA3D8).w,d3 add.w $A(a2),d3 bcc.s loc_84350 move.w #$FFFF,d3 loc_84350: ; CODE XREF: sub_842B2+98j move.w d3,(word_FFFFA3D8).w bra.s loc_8435A ; --------------------------------------------------------------------------- loc_84356: ; CODE XREF: sub_842B2+3Cj clr.w (word_FFFFA3D8).w loc_8435A: ; CODE XREF: sub_842B2+2Ej ; sub_842B2+34j ... cmpi.b #3,d0 bne.w loc_8441E tst.b (byte_FFFFA3C9).w bne.s loc_8439A move.w (EngineRPM_PID_000C___).w,d3 cmpi.w #$6400,d3 bcc.s loc_8437E andi.l #$FFFF,d3 divu.w #$A,d3 bra.s loc_84382 ; --------------------------------------------------------------------------- loc_8437E: ; CODE XREF: sub_842B2+BEj move.w #$A00,d3 loc_84382: ; CODE XREF: sub_842B2+CAj movea.l #TRANS_IO_KV_XMIS_MODULATOR_TPS,a2 ; Throttle position above this cal enables high load shiftpattern in the transmission. ; Percent tblu.w (a2),d3 cmp.w (word_FFFFAB66).w,d3 bhi.s loc_84408 move.b #1,(byte_FFFFA3C9).w bra.s loc_84408 ; --------------------------------------------------------------------------- loc_8439A: ; CODE XREF: sub_842B2+B4j move.w (EngineRPM_PID_000C___).w,d3 move.w d3,d4 move.w #$6400,d2 cmp.w d4,d2 bls.s loc_843B4 andi.l #$FFFF,d4 moveq #$A,d6 divu.w d6,d4 bra.s loc_843B8 ; --------------------------------------------------------------------------- loc_843B4: ; CODE XREF: sub_842B2+F4j move.w #$A00,d4 loc_843B8: ; CODE XREF: sub_842B2+100j movea.l #TRANS_IO_KV_XMIS_MODULATOR_TPS,a2 ; Throttle position above this cal enables high load shiftpattern in the transmission. ; Percent tblu.w (a2),d4 cmp.w d3,d2 bls.s loc_843D2 andi.l #$FFFF,d3 divu.w #$A,d3 bra.s loc_843D6 ; --------------------------------------------------------------------------- loc_843D2: ; CODE XREF: sub_842B2+112j move.w #$A00,d3 loc_843D6: ; CODE XREF: sub_842B2+11Ej movea.l #TRANS_IO_KV_XMIS_MODULATOR_TPS_HYSTERESIS,a2 ; KV_Xmis_Modulator_TPS minus this cal allows high load shiftpattern to be disabled. ; Percent tblu.w (a2),d3 sub.w d3,d4 cmp.w (word_FFFFAB66).w,d4 ble.s loc_84404 move.w (word_FFFFA3E6).w,d3 addq.w #8,d3 bcc.s loc_843F4 move.w #$FFFF,d3 loc_843F4: ; CODE XREF: sub_842B2+13Cj move.w d3,(word_FFFFA3E6).w cmp.w (TRANS_IO_KE_XMIS_MODULATOR_OFF_DELAY_TIME).l,d3 bcs.s loc_84408 clr.b (byte_FFFFA3C9).w loc_84404: ; CODE XREF: sub_842B2+134j clr.w (word_FFFFA3E6).w loc_84408: ; CODE XREF: sub_842B2+DEj ; sub_842B2+E6j ... tst.b (byte_FFFFA3C9).w beq.s loc_84412 moveq #1,d1 bra.s loc_84414 ; --------------------------------------------------------------------------- loc_84412: ; CODE XREF: sub_842B2+15Aj clr.b d1 loc_84414: ; CODE XREF: sub_842B2+15Ej move.w #$15C,d0 jsr (sub_1122).l loc_8441E: ; CODE XREF: sub_842B2+ACj tst.b (TRANS_IO_KE_MANUAL_XMSN_HAS_TEMP_SENSOR).l beq.s loc_84438 jsr sub_53F90 jsr sub_54FDC jsr sub_5A25C loc_84438: ; CODE XREF: sub_842B2+172j movem.l (sp)+,d0-d2/d6 rts ; End of function sub_842B2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_8443E: ; CODE XREF: DoLoopF:loc_2AE6Ep var_2 = -2 link a6,#-2 movem.l d0-d2/d6/a0,-(sp) tst.b (TRANS_IO_KE_REVERSE_LOCKOUT_EQUIPPED).l ; Set TRUE if manual transmission has reverse lockout control solenoid. ; Boolean beq.s loc_84498 btst #7,(byte_FFFF8252).w beq.s loc_8445C loc_84456: ; CODE XREF: sub_8443E+28j clr.b (byte_FFFFA3CE).w bra.s loc_84476 ; --------------------------------------------------------------------------- loc_8445C: ; CODE XREF: sub_8443E+16j move.w (word_FFFFAEBE).w,d3 cmp.w (TRANS_IO_KE_REVERSE_ENABLE_OFF).l,d3 ; The vehicle speed above which reverse is not allowed. ; MPH bhi.s loc_84456 cmp.w (TRANS_IO_KE_REVERSE_ENABLE_ON).l,d3 ; The vehicle speed below which reverse is allowed. ; MPH bcc.s loc_84476 moveq #1,d6 move.b d6,(byte_FFFFA3CE).w loc_84476: ; CODE XREF: sub_8443E+1Cj ; sub_8443E+30j btst #7,(byte_FFFFA7DF).w beq.s loc_8448A btst #7,(byte_FFFFA7E4).w sne d1 neg.b d1 bra.s loc_8448E ; --------------------------------------------------------------------------- loc_8448A: ; CODE XREF: sub_8443E+3Ej move.b (byte_FFFFA3CE).w,d1 loc_8448E: ; CODE XREF: sub_8443E+4Aj move.w #$158,d0 jsr (sub_1122).l loc_84498: ; CODE XREF: sub_8443E+Ej tst.b (TRANS_IO_KE_EXECUTE_CARS_ALGORITHM).l ; Set to TRUE if the CARS (skip shift) logic should be executed ; Boolean beq.w loc_84640 tst.b (TRANS_IO_KE_CARS_BULB_CHECK).l ; Determine if the bulb check is to be used. ; Boolean beq.s loc_844F0 tst.b (byte_FFFFA3D1).w bne.s loc_844F0 tst.b (byte_FFFFA3CF).w beq.s loc_844E4 movea.l #unk_FFA3D6,a0 jsr sub_276F4 move.w (word_FFFFA3D6).w,var_2(a6) move.w (GlobalClock).w,d4 sub.w var_2(a6),d4 cmp.w (TRANS_IO_KE_CARS_BULB_TIME).l,d4 ; The amount of time to turn CARS light on during bulb check. ; Seconds bcs.s loc_844F0 clr.b (byte_FFFFA3CF).w moveq #1,d6 move.b d6,(byte_FFFFA3D1).w bra.s loc_844F0 ; --------------------------------------------------------------------------- loc_844E4: ; CODE XREF: sub_8443E+76j move.w (GlobalClock).w,(word_FFFFA3D6).w moveq #1,d6 move.b d6,(byte_FFFFA3CF).w loc_844F0: ; CODE XREF: sub_8443E+6Aj ; sub_8443E+70j ... move.w (word_FFFFAB66).w,d4 move.w (word_FFFFA3BC).w,d3 cmp.w (TRANS_IO_KE_CARS_FIRST_MIN).l,d3 ; This is the minimum value of NE_TOSS_Ratio in the first CARSgear. MUST BE less than KE_CARS_First_Max. ; NE_TOSS_Ratio bls.s loc_8450E cmp.w (TRANS_IO_KE_CARS_FIRST_MAX).l,d3 ; This is the maximum value of NE_TOSS_Ratio in the first CARSgear. MUST BE greater than KE_CARS_First_Min. ; NE_TOSS_Ratio bcc.s loc_8450E clr.b (byte_FFFFA3FC).w bra.s loc_8452C ; --------------------------------------------------------------------------- loc_8450E: ; CODE XREF: sub_8443E+C0j ; sub_8443E+C8j cmp.w (TRANS_IO_KE_CARS_FINAL_MIN).l,d3 ; This is the minimum value of NE_TOSS_Ratio in the final CARSgear. MUST BE less than KE_CARS_Final_Max. ; NE_TOSS_Ratio bls.s loc_84526 cmp.w (TRANS_IO_KE_CARS_FINAL_MAX).l,d3 ; This is the maximum value of NE_TOSS_Ratio in the final CARSgear. MUST BE greater than KE_CARS_Final_Min. ; NE_TOSS_Ratio bcc.s loc_84526 moveq #1,d6 move.b d6,(byte_FFFFA3FC).w bra.s loc_8452C ; --------------------------------------------------------------------------- loc_84526: ; CODE XREF: sub_8443E+D6j ; sub_8443E+DEj move.b #2,(byte_FFFFA3FC).w loc_8452C: ; CODE XREF: sub_8443E+CEj ; sub_8443E+E6j cmpi.b #3,(ThrottleControlMode2?).w bne.w loc_845E2 tst.b (byte_FFFFA3D0).w beq.s loc_8454E move.w (word_FFFF82D2).w,d0 cmp.w (TRANS_IO_KE_CARS_BARO_HIGH).l,d0 ; Baro pressure below which CARS is disabled (must be higherthan KE_CARS_Baro_Low). ; kPa bcs.s loc_8455A loc_84548: ; CODE XREF: sub_8443E+11Aj clr.b (byte_FFFFA3D0).w bra.s loc_84560 ; --------------------------------------------------------------------------- loc_8454E: ; CODE XREF: sub_8443E+FCj move.w (word_FFFF82D2).w,d0 cmp.w (TRANS_IO_KE_CARS_BARO_LOW).l,d0 ; Baro pressure below which CARS is disabled (must be lowerthan KE_CARS_Baro_Low). ; kPa bcc.s loc_84548 loc_8455A: ; CODE XREF: sub_8443E+108j moveq #1,d6 move.b d6,(byte_FFFFA3D0).w loc_84560: ; CODE XREF: sub_8443E+10Ej tst.b (byte_FFFFA3D0).w bne.s loc_8456E cmp.w (TRANS_IO_KE_CARS_MAX_PEDAL).l,d4 ; Maximum accelerator pedal position for CARS to be enabled. ; Percent bls.s loc_8457A loc_8456E: ; CODE XREF: sub_8443E+126j move.b #1,(byte_FFFFA3D2).w loc_84574: ; CODE XREF: sub_8443E+146j ; sub_8443E+152j ... clr.b (byte_FFFFA3BA).w bra.s loc_845E2 ; --------------------------------------------------------------------------- loc_8457A: ; CODE XREF: sub_8443E+12Ej move.w (CoolantTemperatureOrDefault).w,d0 cmp.w (TRANS_IO_KE_CARS_COOLANT).l,d0 ; Minimum coolant for CARS to be enabled. ; DegreesC blt.s loc_84574 move.w (word_FFFFAEBE).w,d0 cmp.w (TRANS_IO_KE_CARS_MAX_SPEED).l,d0 ; Vehicle speeds greater than this will disable CARS. ; MPH bhi.s loc_84574 move.w (word_FFFFAEBE).w,d4 cmp.w (TRANS_IO_KE_CARS_RESET_SPEED).l,d4 ; Vehicle speeds equal to or less than this will reset the CARS logic to look for the vehicle speed window. ; MPH bhi.s loc_845A4 clr.b (byte_FFFFA3D2).w bra.s loc_84574 ; --------------------------------------------------------------------------- loc_845A4: ; CODE XREF: sub_8443E+15Ej move.b (byte_FFFFA3D2).w,d0 beq.s loc_845C6 move.w (TRANS_IO_KE_CARS_ENABLE_SPEED).l,d3 ; Vehicle speeds equal to or greater than this will be the CARS on speed (if currently not on). ; MPH sub.w (TRANS_IO_KE_CARS_SPEED_HYSTERESIS).l,d3 ; Vehicle speeds hysteresis for low side of vehicle speedenables of CARS. ; MPH bcc.s loc_845BA clr.w d3 loc_845BA: ; CODE XREF: sub_8443E+178j cmp.w d3,d4 bcs.s loc_84574 moveq #1,d6 cmp.b (byte_FFFFA3FC).w,d6 beq.s loc_84574 loc_845C6: ; CODE XREF: sub_8443E+16Aj tst.b d0 bne.s loc_845E2 cmp.w (TRANS_IO_KE_CARS_ENABLE_SPEED).l,d4 ; Vehicle speeds equal to or greater than this will be the CARS on speed (if currently not on). ; MPH bcs.s loc_845E2 moveq #1,d6 move.b d6,(byte_FFFFA3D2).w tst.b (byte_FFFFA3FC).w bne.s loc_845E2 move.b d6,(byte_FFFFA3BA).w loc_845E2: ; CODE XREF: sub_8443E+F4j ; sub_8443E+13Aj ... tst.b (TRANS_IO_KE_CONTROL_CARS_LIGHT).l ; Set to TRUE if the CARS (skip shift) logic should directlycontrol the CARS light PCM output. (Class2 message not used) ; Boolean beq.s loc_84612 btst #2,(word_FFFFA7DC).w beq.s loc_845FE btst #6,(word_FFFFA7E2).w sne d0 neg.b d0 bra.s loc_8460C ; --------------------------------------------------------------------------- loc_845FE: ; CODE XREF: sub_8443E+1B2j tst.b (byte_FFFFA3CF).w beq.s loc_84608 moveq #1,d0 bra.s loc_8460C ; --------------------------------------------------------------------------- loc_84608: ; CODE XREF: sub_8443E+1C4j move.b (byte_FFFFA3BA).w,d0 loc_8460C: ; CODE XREF: sub_8443E+1BEj ; sub_8443E+1C8j jsr sub_838BA loc_84612: ; CODE XREF: sub_8443E+1AAj btst #2,(byte_FFFFA7DE).w beq.s loc_84628 btst #1,(word_FFFFA7E2+1).w beq.s loc_8462E loc_84622: ; CODE XREF: sub_8443E+1EEj move.w #$1400,d2 bra.s loc_84630 ; --------------------------------------------------------------------------- loc_84628: ; CODE XREF: sub_8443E+1DAj tst.b (byte_FFFFA3BA).w bne.s loc_84622 loc_8462E: ; CODE XREF: sub_8443E+1E2j clr.w d2 loc_84630: ; CODE XREF: sub_8443E+1E8j move.l #$50D,d1 move.b #$8C,d0 jsr (sub_16FA).l loc_84640: ; CODE XREF: sub_8443E+60j clr.b d3 tst.b (byte_FFFF95FF).w bne.s loc_84650 tst.b (byte_FFFF95FC).w beq.s loc_84650 addq.b #1,d3 loc_84650: ; CODE XREF: sub_8443E+208j ; sub_8443E+20Ej move.b d3,(byte_FFFFA3AE).w movem.l (sp)+,d0-d2/d6/a0 unlk a6 rts ; End of function sub_8443E ; =============== S U B R O U T I N E ======================================= sub_8465C: ; CODE XREF: DoLoopG+260p ; OS4:00084792p cmpi.b #4,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_8468A tst.b (byte_FFFF90FA).w beq.s loc_84678 tst.b (byte_FFFF90FB).w bne.s loc_84678 move.w (word_FFFF90FC).w,d3 bra.s loc_8467C ; --------------------------------------------------------------------------- loc_84678: ; CODE XREF: sub_8465C+Ej ; sub_8465C+14j move.w (word_FFFFA72E).w,d3 loc_8467C: ; CODE XREF: sub_8465C+1Aj muls.w #5,d3 divs.w #$60,d3 ; '`' move.w d3,(word_FFFFA3C2).w bra.s locret_84690 ; --------------------------------------------------------------------------- loc_8468A: ; CODE XREF: sub_8465C+8j move.w (word_FFFF9590).w,(word_FFFFA3C2).w locret_84690: ; CODE XREF: sub_8465C+2Cj rts ; End of function sub_8465C ; =============== S U B R O U T I N E ======================================= sub_84692: ; CODE XREF: OS1:00028AE2p movem.l d1-d2,-(sp) andi.w #$FF,d0 movea.l off_8A364(d0.w*4),a2 jmp (a2) ; End of function sub_84692 ; --------------------------------------------------------------------------- loc_846A4: ; DATA XREF: OS4:0008A36Co clr.b (byte_FFFFA3AC).w clr.b (byte_FFFFA3C4).w clr.b (byte_FFFFA3FD).w cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_846C2 move.b #3,(byte_FFFFA3AF).w bra.s loc_846E4 ; --------------------------------------------------------------------------- loc_846C2: ; CODE XREF: OS4:000846B8j moveq #6,d2 move.b d2,(byte_FFFFA3AF).w move.b d2,(byte_FFFFA3B0).w move.b d2,(byte_FFFFA3C6).w clr.b (byte_FFFFA3AA).w move.b d2,(byte_FFFFA3FF).w move.b d2,(byte_FFFFA3B1).w clr.b (byte_FFFFA3B4).w move.b d2,(byte_FFFFA3C7).w loc_846E4: ; CODE XREF: OS4:000846C0j clr.b (byte_FFFFA3C9).w clr.b d1 move.w #$15C,d0 jsr (sub_1122).l clr.b (byte_FFFFA3B6).w clr.b (byte_FFFFA3B3).w clr.b (byte_FFFFA3AD).w move.b #8,(byte_FFFFA3B8).w move.w (TRANS_IO_KE_NE_TOSS_RATIO_TRANSITION).l,(word_FFFFA3BC).w ; This is the value NE_TOSS_Ratio is set to during a PCMstate transition. ; NE_TOSS_Ratio clr.b (byte_FFFFA3B9).w clr.b (byte_FFFFA3C8).w clr.b (byte_FFFFA3CF).w clr.b (byte_FFFFA3D1).w bra.s loc_8478E ; --------------------------------------------------------------------------- loc_84720: ; DATA XREF: OS4:0008A370o clr.b (byte_FFFFA3CA).w clr.b (byte_FFFFA3CB).w clr.b (byte_FFFFA3FD).w cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_8473E move.b #3,(byte_FFFFA3AF).w bra.s loc_84760 ; --------------------------------------------------------------------------- loc_8473E: ; CODE XREF: OS4:00084734j moveq #6,d2 move.b d2,(byte_FFFFA3AF).w move.b d2,(byte_FFFFA3B0).w move.b d2,(byte_FFFFA3C6).w clr.b (byte_FFFFA3AA).w move.b d2,(byte_FFFFA3FF).w move.b d2,(byte_FFFFA3B1).w clr.b (byte_FFFFA3B4).w move.b d2,(byte_FFFFA3C7).w loc_84760: ; CODE XREF: OS4:0008473Cj clr.b (byte_FFFFA3C9).w clr.b d1 move.w #$15C,d0 jsr (sub_1122).l clr.b (byte_FFFFA3B6).w clr.b (byte_FFFFA3B3).w clr.b (byte_FFFFA3AD).w move.b #8,(byte_FFFFA3B8).w move.w (TRANS_IO_KE_NE_TOSS_RATIO_TRANSITION).l,(word_FFFFA3BC).w ; This is the value NE_TOSS_Ratio is set to during a PCMstate transition. ; NE_TOSS_Ratio clr.b (byte_FFFFA3B9).w loc_8478E: ; CODE XREF: OS4:0008471Ej clr.b (byte_FFFFA3C5).w jsr sub_8465C bra.w loc_8484E ; --------------------------------------------------------------------------- loc_8479C: ; DATA XREF: OS4:0008A37Co ; OS4:0008A384o clr.b (byte_FFFFA3CA).w clr.b (4294943691).w clr.b (4294943741).w cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_847B8 move.b #3,(byte_FFFFA3AF).w loc_847B8: ; CODE XREF: OS4:000847B0j clr.b (byte_FFFFA3C9).w clr.b d1 move.w #$15C,d0 jsr (sub_1122).l clr.b (byte_FFFFA3B6).w clr.b (byte_FFFFA3B3).w bra.s loc_847F6 ; --------------------------------------------------------------------------- loc_847D2: ; DATA XREF: OS4:off_8A364o ; OS4:0008A380o cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_847E2 move.b #3,(byte_FFFFA3AF).w loc_847E2: ; CODE XREF: OS4:000847DAj clr.b (byte_FFFFA3C9).w clr.b d1 move.w #$15C,d0 jsr (sub_1122).l clr.b (byte_FFFFA3B6).w loc_847F6: ; CODE XREF: OS4:000847D0j move.b #8,(byte_FFFFA3B8).w move.w (TRANS_IO_KE_NE_TOSS_RATIO_TRANSITION).l,(word_FFFFA3BC).w ; This is the value NE_TOSS_Ratio is set to during a PCMstate transition. ; NE_TOSS_Ratio clr.b (byte_FFFFA3B9).w bra.s loc_8484E ; --------------------------------------------------------------------------- loc_8480A: ; DATA XREF: OS4:0008A368o ; OS4:0008A374o ... clr.b (4294943690).w clr.b (byte_FFFFA3CB).w cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type bne.s loc_84822 move.b #3,(byte_FFFFA3AF).w loc_84822: ; CODE XREF: OS4:0008481Aj clr.b (byte_FFFFA3C9).w clr.b d1 move.w #$15C,d0 jsr (sub_1122).l clr.b (byte_FFFFA3B6).w clr.b (byte_FFFFA3B3).w move.b #8,(byte_FFFFA3B8).w move.w (TRANS_IO_KE_NE_TOSS_RATIO_TRANSITION).l,(word_FFFFA3BC).w ; This is the value NE_TOSS_Ratio is set to during a PCMstate transition. ; NE_TOSS_Ratio clr.b (byte_FF86B8).l loc_8484E: ; CODE XREF: OS4:00084798j ; OS4:00084808j ; DATA XREF: ... movem.l (sp)+,d1-d2 rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_84854: ; CODE XREF: sub_47DA2+26p ; sub_79A3E+8p ... link a6,#-4 tst.b (VEH_SPEED_KE_USE_EEPROM_VSS_CALS).l ; Determines whether to use the EEPROM based VSS cals or the Cal ROM VSS cals. ; BOOLEAN beq.s loc_8486E cmpi.w #$FFFF,(word_FFFF8056).w beq.s loc_8486E move.w (word_FFFF8056).w,d0 bra.s loc_84874 ; --------------------------------------------------------------------------- loc_8486E: ; CODE XREF: sub_84854+Aj ; sub_84854+12j move.w (VEH_SPEED_KE_PULSES_PER_MILE).l,d0 ; Vehicle speed sensor scaling factor. ; Pulses/Mile loc_84874: ; CODE XREF: sub_84854+18j tst.b (VEH_SYS_KE_DRIVETRAIN_TYPE).l ; Describes the type of drivetrain used on the vehicle ; Drivetrain_Type bne.s loc_848A4 movea.l (off_134C).l,a2 move.l a2,d3 bne.s loc_8488C jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_8488C: ; CODE XREF: sub_84854+30j btst #1,2(a2) beq.s loc_848A4 andi.l #$FFFF,d0 asl.l #8,d0 asl.l #4,d0 divu.w (VEH_SPEED_KE_LOW_AXLE_SPEED_ADJUST).l,d0 ; Vehicle speed multiplier when Dual_Axle is Low. Note: Range from (0.1228 .. < 2.0)! ; Multiplier_0_to_2 loc_848A4: ; CODE XREF: sub_84854+26j ; sub_84854+3Ej unlk a6 rts ; End of function sub_84854 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_848A8: ; CODE XREF: DoLoopC+20p sub_84A9E+Ap var_8 = -8 var_4 = -4 link a6,#-8 movem.l d0-d2/d6-a0,-(sp) move.l (dword_FFFFFF40).w,var_8(a6) loc_848B6: ; CODE XREF: sub_848A8+22j move.l var_8(a6),var_4(a6) move.l (dword_FFFFFF40).w,var_8(a6) move.l var_4(a6),d2 cmp.l var_8(a6),d2 bne.s loc_848B6 move.b var_8+1(a6),d2 clr.l d3 move.b d2,d3 clr.w d4 move.b (byte_FFFFAECC).w,d4 sub.w d4,d3 move.w #$100,d7 cmp.w d3,d7 bcc.s loc_848E6 add.w d7,d3 loc_848E6: ; CODE XREF: sub_848A8+3Aj move.b d3,d6 clr.l d1 move.w (word_FFFFAECA).w,d1 move.w var_8+2(a6),d0 clr.l d3 move.w d0,d3 sub.l d1,d3 move.l #unk_10000,d4 cmp.l d3,d4 bcc.s loc_84904 add.l d4,d3 loc_84904: ; CODE XREF: sub_848A8+58j move.w d3,d1 move.b d2,(byte_FFFFAECC).w move.w d0,(word_FFFFAECA).w jsr sub_84854 move.w d0,(word_FFFFAEC4).w tst.b d6 bne.s loc_84940 move.w (VEH_SPEED_KE_VEH_SPEED_TIME).l,d0 ; If no vehicle speed pulses for this period of time, the vehicle is considered to be stationary. ; Seconds movea.l #unk_FFAEC8,a0 jsr sub_276D4 tst.b d0 beq.s loc_849AE loc_84932: ; CODE XREF: sub_848A8+9Cj clr.w (word_FFFFAEBE).w clr.w (word_FFFFAEC0).w clr.b (byte_FFFFAECD).w bra.s loc_849AE ; --------------------------------------------------------------------------- loc_84940: ; CODE XREF: sub_848A8+72j tst.w d1 bne.s loc_84946 bra.s loc_84932 ; --------------------------------------------------------------------------- loc_84946: ; CODE XREF: sub_848A8+9Aj move.w (GlobalClock).w,(word_FFFFAEC8).w tst.b (byte_FFFFAECD).w beq.s loc_849A8 clr.l d3 move.b d6,d3 mulu.l #$900000,d3 divu.w (word_FFFFAEC4).w,d3 bvc.s loc_84968 move.w #$FFFF,d3 loc_84968: ; CODE XREF: sub_848A8+BAj mulu.w #$249F,d3 lsr.l #3,d3 divu.w d1,d3 bvs.s loc_84978 cmpi.w #$7FFF,d3 bls.s loc_8497C loc_84978: ; CODE XREF: sub_848A8+C8j move.w #$7FFF,d3 loc_8497C: ; CODE XREF: sub_848A8+CEj move.w d3,(word_FFFFAEC0).w move.l d3,d4 sub.w (word_FFFFAEBE).w,d4 cmp.w (VEH_SPEED_KE_MAX_POSITIVE_MPH_CHANGE).l,d4 ; The vehicle speed will not increase at a rate greater than this. ; MPH / Sec ble.s loc_849A2 move.w (word_FFFFAEBE).w,d3 add.w (VEH_SPEED_KE_MAX_POSITIVE_MPH_CHANGE).l,d3 ; The vehicle speed will not increase at a rate greater than this. ; MPH / Sec cmpi.w #$7FFF,d3 bls.s loc_849A2 move.w #$7FFF,d3 loc_849A2: ; CODE XREF: sub_848A8+E4j ; sub_848A8+F4j move.w d3,(word_FFFFAEBE).w bra.s loc_849AE ; --------------------------------------------------------------------------- loc_849A8: ; CODE XREF: sub_848A8+A8j move.b #1,(byte_FFFFAECD).w loc_849AE: ; CODE XREF: sub_848A8+88j ; sub_848A8+96j ... btst #7,(byte_FFFF8252).w beq.s loc_849D4 move.b (VEH_SPEED_KE_C2_VEH_SPEED_DEFAULT_ENABLED).l,d2 ; Enable setting vehicle speed to a valid class 2 wheel speedwhen a fault in the vehicle speed group is active ; BOOLEAN and.b (byte_FFFF90D2).w,d2 beq.s loc_849D0 tst.b (byte_FFFF90D1).w bne.s loc_849D0 move.w (word_FFFF90EA).w,(word_FFFFAEBE).w bra.s loc_849D4 ; --------------------------------------------------------------------------- loc_849D0: ; CODE XREF: sub_848A8+118j ; sub_848A8+11Ej clr.w (word_FFFFAEBE).w loc_849D4: ; CODE XREF: sub_848A8+10Cj ; sub_848A8+126j move.w (word_FFFFAEBC).w,d2 move.w (word_FFFFAEBE).w,d1 move.w (VEH_SPEED_KE_VEH_SPEED_FILTER).l,d0 ; Vehicle speed filter coefficient used in the first order lag filter applied to the raw vehicle speed value. ; Seconds movea.l #unk_FFAEC6,a0 jsr sub_265BA move.w d0,(word_FFFFAEBC).w btst #7,(byte_FFFF8252).w beq.s loc_84A32 tst.b (VEH_SPEED_KE_C2_VEH_SPEED_DEFAULT_ENABLED).l ; Enable setting vehicle speed to a valid class 2 wheel speedwhen a fault in the vehicle speed group is active ; BOOLEAN beq.s loc_84A32 clr.l d3 move.w (word_FFFFAEBE).w,d3 add.l (dword_FFFFAECE).w,d3 move.l d3,(dword_FFFFAECE).w move.l d3,d0 move.l #$2400,d4 divu.l d4,d0 move.l d0,d5 mulu.l #$2400,d5 bvc.s loc_84A2A moveq #$FFFFFFFF,d5 loc_84A2A: ; CODE XREF: sub_848A8+17Ej sub.l d5,d3 move.l d3,(dword_FFFFAECE).w bra.s loc_84A92 ; --------------------------------------------------------------------------- loc_84A32: ; CODE XREF: sub_848A8+150j ; sub_848A8+158j jsr sub_84854 move.w d0,d3 move.l d3,d4 moveq #$7D,d0 ; '}' mulu.w d0,d4 lsr.l #5,d4 mulu.w d0,d3 lsr.l #1,d3 clr.l d1 move.b d6,d1 asl.l #8,d1 asl.l #8,d1 move.l d1,d2 add.l (dword_FFFFAED2).w,d2 move.l d2,(dword_FFFFAED2).w add.l (dword_FFFFAED6).w,d1 move.l d1,(dword_FFFFAED6).w move.l d1,d0 divu.l d4,d0 clr.l d5 move.w d0,d5 mulu.l d4,d5 sub.l d5,d1 move.l d1,(dword_FFFFAED6).w add.w d0,(word_FFFFAEBA).w move.l d2,d0 divu.l d3,d0 clr.l d5 move.w d0,d5 mulu.l d3,d5 sub.l d5,d2 move.l d2,(dword_FFFFAED2).w andi.l #$FFFF,d0 loc_84A92: ; CODE XREF: sub_848A8+188j add.l d0,(dword_FFFF808E).w movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_848A8 ; =============== S U B R O U T I N E ======================================= sub_84A9E: ; CODE XREF: OS1:000289F0p cmpi.b #2,d0 bne.s locret_84AAE clr.w (word_FFFFAEC6).w jsr sub_848A8 locret_84AAE: ; CODE XREF: sub_84A9E+4j rts ; End of function sub_84A9E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_84AB0: ; CODE XREF: DoLoopE:loc_2AA00p var_4 = -4 link a6,#-4 movem.l d0-d2/d6-a0,-(sp) cmpi.w #$500,(word_FFFFB4A2).w bcs.s loc_84ACA move.w (VTD_KE_VTD_TIME_TO_IGNITION_OFF).l,(word_FFFF8D1E).w ; The amount of time the ignition is off before the VTD logic performs powerdown state transitions. ; Seconds bra.s loc_84AD8 ; --------------------------------------------------------------------------- loc_84ACA: ; CODE XREF: sub_84AB0+Ej move.w (word_FFFF8D1E).w,d3 subq.w #8,d3 bcc.s loc_84AD4 clr.w d3 loc_84AD4: ; CODE XREF: sub_84AB0+20j move.w d3,(word_FFFF8D1E).w loc_84AD8: ; CODE XREF: sub_84AB0+18j tst.w (word_FFFF8D1E).w shi d0 neg.b d0 move.b d0,(byte_FFFF8D1C).w tst.b (VEH_SYS_KE_VTD_CONFIGURATION).l ; This is used to activate the different VTD functionalities within the PCM. ; Unitless bne.w loc_8513C tst.b d0 bne.w loc_84B7C move.w (GlobalClock).w,(word_FFFFB11A).w moveq #5,d1 clr.b d0 jsr sub_8515E moveq #1,d2 move.b d2,(byte_FFFF8D1A).w move.b (byte_FFFF8D17).w,d3 cmpi.b #5,d3 beq.s loc_84B1A cmpi.b #4,d3 bne.s loc_84B22 loc_84B1A: ; CODE XREF: sub_84AB0+62j moveq #$F,d3 move.l d3,d7 move.b d7,(byte_FFFF8D17).w loc_84B22: ; CODE XREF: sub_84AB0+68j cmpi.b #6,d3 beq.s loc_84B5C tst.b d3 beq.s loc_84B6E cmpi.b #$F,d3 bne.s loc_84B66 clr.b d1 move.w (VTD_KE_VTD_DISABLE_TIME).l,d0 ; Expiration time for the Fuel Disable Timer duringFuel Disable Lockout state. ; Seconds movea.l #unk_FFB118,a0 jsr sub_276D4 tst.b d0 beq.s loc_84B4C move.l d2,d1 loc_84B4C: ; CODE XREF: sub_84AB0+98j tst.b d1 beq.s loc_84B6E moveq #2,d1 clr.b d0 jsr sub_8515E bra.s loc_84B60 ; --------------------------------------------------------------------------- loc_84B5C: ; CODE XREF: sub_84AB0+76j clr.b (byte_FFFF8D18).w loc_84B60: ; CODE XREF: sub_84AB0+AAj clr.b (byte_FFFF8D17).w bra.s loc_84B6E ; --------------------------------------------------------------------------- loc_84B66: ; CODE XREF: sub_84AB0+80j clr.b (byte_FFFF8D17).w move.b d2,(byte_FFFF8D1A).w loc_84B6E: ; CODE XREF: sub_84AB0+7Aj ; sub_84AB0+9Ej ... tst.b (byte_FFFF8D17).w seq d3 neg.b d3 move.b d3,(byte_FFFF8D19).w bra.s loc_84B86 ; --------------------------------------------------------------------------- loc_84B7C: ; CODE XREF: sub_84AB0+40j tst.b (byte_FFFF8D20).w bne.s loc_84B86 clr.b (byte_FFFF8D17).w loc_84B86: ; CODE XREF: sub_84AB0+CAj ; sub_84AB0+D0j tst.b (byte_FFFF8D1B).w bne.s loc_84BB2 jsr sub_274C0 move.b d0,d3 move.b d3,(byte_FFFF8D16).w cmpi.b #$FF,d3 bne.s loc_84BA2 clr.b (byte_FFFF8D16).w loc_84BA2: ; CODE XREF: sub_84AB0+ECj jsr sub_274A0 move.b #1,(byte_FFFF8D1B).w clr.b (byte_FFFF8D19).w loc_84BB2: ; CODE XREF: sub_84AB0+DAj clr.b (byte_FFFFB120).w clr.b d1 move.w (VTD_KE_VTD_C2_INIT).l,d0 ; Expiration time for the PCM C2 Init Timer duringIgnition 1 Off and Powerup Transitions. ; Seconds movea.l #unk_FFB11A,a0 jsr sub_276D4 tst.b d0 beq.s loc_84BD0 moveq #1,d1 loc_84BD0: ; CODE XREF: sub_84AB0+11Cj tst.b d1 beq.s loc_84C06 cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_84C06 move.b #1,(byte_FFFFB120).w tst.b (VTD_KE_VTD_DIAG_ENABLED).l ; TRUE indicates the diagnostic is enabled and VTD failure is reported via Class 2. ; BOOLEAN beq.s loc_84BFC tst.b (byte_FFFF90E1).w bne.s loc_84C06 move.w #$C9,d0 ; '?' jsr sub_5F110 bra.s loc_84C06 ; --------------------------------------------------------------------------- loc_84BFC: ; CODE XREF: sub_84AB0+138j move.w #$C9,d0 ; '?' jsr sub_5F0BE loc_84C06: ; CODE XREF: sub_84AB0+122j ; sub_84AB0+12Aj ... tst.b (byte_FFFFB121).w beq.s loc_84C2C clr.b d1 move.l d1,d0 jsr sub_8522E tst.b d0 bne.s loc_84C28 moveq #2,d0 jsr sub_8522E tst.b d0 bne.s loc_84C28 addq.b #1,d1 loc_84C28: ; CODE XREF: sub_84AB0+168j ; sub_84AB0+174j move.b d1,(byte_FFFFB121).w loc_84C2C: ; CODE XREF: sub_84AB0+15Aj move.b (byte_FFFFB54B).w,d1 and.b (byte_FFFFB121).w,d1 beq.s loc_84C5C clr.b d1 moveq #8,d0 movea.l #unk_FFB11C,a0 jsr sub_276D4 tst.b d0 beq.s loc_84C4C moveq #1,d1 loc_84C4C: ; CODE XREF: sub_84AB0+198j tst.b d1 beq.s loc_84C5C move.b #1,(byte_FFFFB116).w move.w (GlobalClock).w,(word_FFFFB11C).w loc_84C5C: ; CODE XREF: sub_84AB0+184j ; sub_84AB0+19Ej tst.b (byte_FF82EC).l beq.s loc_84C96 tst.b (byte_FFFFB122).w bne.s loc_84C96 moveq #3,d1 moveq #$C,d0 jsr sub_8515E moveq #1,d2 move.b d2,(byte_FFFF8D1A).w move.b (VTD_KE_VTD_LEARNED_ENOUGH).l,d3 ; Threshold to compare against the Auto Learn Counter during Auto-Learn state. ; SHORTCARD subq.b #1,d3 move.b d3,(byte_FFFF8D18).w move.l (unk_FFFFB542).w,(dword_FFFFB112).w move.b d2,(byte_FFFFB122).w move.b #6,(byte_FFFF8D17).w loc_84C96: ; CODE XREF: sub_84AB0+1B2j ; sub_84AB0+1B8j move.b (byte_FFFF8D17).w,d3 cmpi.b #8,d3 bne.s loc_84CCE clr.b d3 tst.b (byte_FFFF90E1).w bne.s loc_84CAA moveq #1,d3 loc_84CAA: ; CODE XREF: sub_84AB0+1F6j tst.b d3 beq.w loc_85134 tst.b (VEH_SYS_KE_VTD_CONFIGURATION+1).l ; This is used to activate the different VTD functionalities within the PCM. ; Unitless bne.w loc_85134 clr.b d1 moveq #$10,d0 loc_84CBE: ; CODE XREF: sub_84AB0+5B4j jsr sub_8515E move.b #9,(byte_FFFF8D17).w bra.w loc_85134 ; --------------------------------------------------------------------------- loc_84CCE: ; CODE XREF: sub_84AB0+1EEj cmpi.b #$C,d3 bne.w loc_84DD8 clr.b var_4+2(a6) move.w (word_FFFF90F2).w,var_4(a6) move.b (byte_FFFF90E2).w,var_4+2(a6) clr.w (word_FFFF90F2).w clr.b (byte_FFFF90E2).w tst.b var_4+2(a6) beq.s loc_84D18 tst.b (VTD_KE_VTD_DIAG_ENABLED).l ; TRUE indicates the diagnostic is enabled and VTD failure is reported via Class 2. ; BOOLEAN beq.s loc_84D18 tst.b (byte_FFFFB120).w bne.s loc_84D18 moveq #4,d0 jsr sub_8522E tst.b d0 bne.s loc_84D18 move.w #$C9,d0 ; '?' jsr sub_5F0BE loc_84D18: ; CODE XREF: sub_84AB0+242j ; sub_84AB0+24Aj ... move.b (byte_FFFFB120).w,d1 bne.s loc_84D2A move.b (byte_FFFFB123).w,d0 cmp.b (VTD_KE_VTD_BAD_PASSWORD).l,d0 ; Threshold to compare against the Bad Password Counter during certain decision states. ; SHORTCARD bcs.s loc_84D4A loc_84D2A: ; CODE XREF: sub_84AB0+26Cj move.w (GlobalClock).w,(word_FFFFB118).w move.b #1,(byte_FFFF8D1A).w clr.b d1 moveq #2,d0 jsr sub_8515E move.b #4,(byte_FFFF8D17).w bra.w loc_85134 ; --------------------------------------------------------------------------- loc_84D4A: ; CODE XREF: sub_84AB0+278j tst.b var_4+2(a6) beq.w loc_85134 jsr sub_274AE cmp.w var_4(a6),d0 bne.s loc_84D76 clr.b (byte_FFFF8D18).w clr.b d1 moveq #1,d0 loc_84D66: ; CODE XREF: sub_84AB0+548j jsr sub_8515E move.b #8,(byte_FFFF8D17).w bra.w loc_85134 ; --------------------------------------------------------------------------- loc_84D76: ; CODE XREF: sub_84AB0+2ACj cmpi.w #$FFFF,var_4(a6) beq.w loc_85134 move.b (byte_FFFFB123).w,d3 addq.b #1,d3 bcs.s loc_84D8E cmpi.b #$A,d3 bls.s loc_84D90 loc_84D8E: ; CODE XREF: sub_84AB0+2D6j moveq #$A,d3 loc_84D90: ; CODE XREF: sub_84AB0+2DCj move.b d3,(byte_FFFFB123).w tst.b (byte_1FE82).l beq.w loc_85134 cmp.b (VTD_KE_VTD_BAD_PASSWORD).l,d3 ; Threshold to compare against the Bad Password Counter during certain decision states. ; SHORTCARD bcs.w loc_85134 tst.b d1 bne.w loc_85134 moveq #4,d0 jsr sub_8522E tst.b d0 bne.w loc_85134 moveq #5,d0 jsr sub_8522E tst.b d0 bne.w loc_85134 move.w #$CB,d0 ; '?' jsr sub_5F110 bra.w loc_85134 ; --------------------------------------------------------------------------- loc_84DD8: ; CODE XREF: sub_84AB0+222j tst.b d3 beq.w loc_8512E cmpi.b #4,d3 bne.s loc_84E5A clr.b d1 move.w (VTD_KE_VTD_DISABLE_TIME).l,d0 ; Expiration time for the Fuel Disable Timer duringFuel Disable Lockout state. ; Seconds movea.l #unk_FFB118,a0 jsr sub_276D4 tst.b d0 beq.s loc_84DFE moveq #1,d1 loc_84DFE: ; CODE XREF: sub_84AB0+34Aj tst.b d1 beq.w loc_85134 move.b (byte_FFFFB123).w,d1 cmp.b (VTD_KE_VTD_BAD_PASSWORD).l,d1 ; Threshold to compare against the Bad Password Counter during certain decision states. ; SHORTCARD bcc.s loc_84E2C moveq #2,d1 clr.b d0 jsr sub_8515E clr.b (byte_FFFFB123).w clr.b (byte_FFFF8D1A).w move.b #$C,(byte_FFFF8D17).w bra.w loc_85134 ; --------------------------------------------------------------------------- loc_84E2C: ; CODE XREF: sub_84AB0+35Ej tst.b (VTD_KE_VTDC2_NOT_AN_EXPORT_VEHICLE).l ; Used to turn On/Off the VTD_Class2 auto learning function. ; BOOLEAN beq.s loc_84E46 moveq #2,d1 moveq #$C,d0 jsr sub_8515E move.l (unk_FFFFB542).w,(dword_FFFFB10E).w bra.s loc_84E50 ; --------------------------------------------------------------------------- loc_84E46: ; CODE XREF: sub_84AB0+382j moveq #2,d1 moveq #4,d0 jsr sub_8515E loc_84E50: ; CODE XREF: sub_84AB0+394j move.b #6,(byte_FFFF8D17).w bra.w loc_85134 ; --------------------------------------------------------------------------- loc_84E5A: ; CODE XREF: sub_84AB0+332j moveq #5,d2 cmp.b d3,d2 bne.s loc_84EBC clr.b d1 move.w (VTD_KE_VTD_DISABLE_TIME).l,d0 ; Expiration time for the Fuel Disable Timer duringFuel Disable Lockout state. ; Seconds movea.l #unk_FFB118,a0 jsr sub_276D4 tst.b d0 beq.s loc_84E7A moveq #1,d1 loc_84E7A: ; CODE XREF: sub_84AB0+3C6j tst.b d1 beq.w loc_85134 move.b (byte_FFFFB123).w,d1 cmp.b (VTD_KE_VTD_BAD_PASSWORD).l,d1 ; Threshold to compare against the Bad Password Counter during certain decision states. ; SHORTCARD bcc.s loc_84EA8 clr.b (byte_FFFFB123).w moveq #2,d1 clr.b d0 jsr sub_8515E clr.b (byte_FFFF8D1A).w move.b #$E,(byte_FFFF8D17).w bra.w loc_85134 ; --------------------------------------------------------------------------- loc_84EA8: ; CODE XREF: sub_84AB0+3DAj moveq #2,d1 moveq #4,d0 jsr sub_8515E move.b #1,(byte_FFFF8D17).w bra.w loc_85134 ; --------------------------------------------------------------------------- loc_84EBC: ; CODE XREF: sub_84AB0+3AEj cmpi.b #6,d3 bne.w loc_84F56 move.b (byte_FFFFB122).w,d4 beq.s loc_84EE8 clr.b d3 move.l (dword_FFFFB112).w,var_4(a6) move.l (unk_FFFFB542).w,d1 sub.l var_4(a6),d1 cmp.l (VTD_KE_VTD_C2_AUTO_LEARN).l,d1 ; Expiration time for the C2 Auto Learn Timer duringAuto-Learn and Auto-Learn Pending states. ; Seconds_L blt.s loc_84EE4 moveq #1,d3 loc_84EE4: ; CODE XREF: sub_84AB0+430j tst.b d3 bne.s loc_84F18 loc_84EE8: ; CODE XREF: sub_84AB0+418j tst.b d4 bne.w loc_85134 tst.b (VTD_KE_VTDC2_NOT_AN_EXPORT_VEHICLE).l ; Used to turn On/Off the VTD_Class2 auto learning function. ; BOOLEAN beq.w loc_85134 clr.b d3 move.l (dword_FFFFB10E).w,var_4(a6) move.l (unk_FFFFB542).w,d1 sub.l var_4(a6),d1 cmp.l (VTD_KE_VTD_AUTO_LEARN).l,d1 ; Expiration time for the Auto Learn Timer duringAuto-Learn Pending state. ; Seconds_L blt.s loc_84F12 moveq #1,d3 loc_84F12: ; CODE XREF: sub_84AB0+45Ej tst.b d3 beq.w loc_85134 loc_84F18: ; CODE XREF: sub_84AB0+436j moveq #8,d1 clr.b d0 jsr sub_8515E move.b (byte_FFFF8D18).w,d3 addq.b #1,d3 bcs.s loc_84F30 cmpi.b #$A,d3 bls.s loc_84F32 loc_84F30: ; CODE XREF: sub_84AB0+478j moveq #$A,d3 loc_84F32: ; CODE XREF: sub_84AB0+47Ej move.b d3,(byte_FFFF8D18).w cmp.b (VTD_KE_VTD_LEARNED_ENOUGH).l,d3 ; Threshold to compare against the Auto Learn Counter during Auto-Learn state. ; SHORTCARD bcs.s loc_84F4C clr.b d1 moveq #$20,d0 ; ' ' jsr sub_8515E clr.b (byte_FFFF8D18).w loc_84F4C: ; CODE XREF: sub_84AB0+48Cj move.b #7,(byte_FFFF8D17).w bra.w loc_85134 ; --------------------------------------------------------------------------- loc_84F56: ; CODE XREF: sub_84AB0+410j moveq #$A,d6 cmp.b d3,d6 bne.w loc_84FE2 clr.b var_4+2(a6) clr.w var_4(a6) move.w (word_FFFF90F2).w,var_4(a6) move.b (byte_FFFF90E2).w,var_4+2(a6) clr.w (word_FFFF90F2).w clr.b (byte_FFFF90E2).w tst.b var_4+2(a6) beq.s loc_84FB6 tst.w var_4(a6) bls.s loc_84FB6 cmpi.w #$FFFF,var_4(a6) bcc.s loc_84FB6 move.w var_4(a6),d3 cmp.w (word_FFFFB11E).w,d3 beq.s loc_84FA2 move.w var_4(a6),(word_FFFFB11E).w clr.b (byte_FFFFB124).w loc_84FA2: ; CODE XREF: sub_84AB0+4E6j move.b (byte_FFFFB124).w,d3 addq.b #1,d3 bcs.s loc_84FB0 cmpi.b #$A,d3 bls.s loc_84FB2 loc_84FB0: ; CODE XREF: sub_84AB0+4F8j move.l d6,d3 loc_84FB2: ; CODE XREF: sub_84AB0+4FEj move.b d3,(byte_FFFFB124).w loc_84FB6: ; CODE XREF: sub_84AB0+4CEj ; sub_84AB0+4D4j ... move.b (byte_FFFFB124).w,d0 cmp.b (VTD_KE_VTD_LEARNED_PASSWORD).l,d0 ; Threshold to compare against the Identical Password Counter during Learn Password state. ; SHORTCARD bcs.w loc_85134 move.w (word_FFFFB11E).w,d0 jsr sub_274B4 clr.b d1 moveq #1,d0 jsr sub_8515E move.b #$B,(byte_FFFF8D17).w bra.w loc_85134 ; --------------------------------------------------------------------------- loc_84FE2: ; CODE XREF: sub_84AB0+4AAj cmpi.b #$B,d3 bne.s loc_84FFC jsr sub_2749A tst.b d0 bne.w loc_85134 moveq #$20,d1 ; ' ' clr.b d0 bra.w loc_84D66 ; --------------------------------------------------------------------------- loc_84FFC: ; CODE XREF: sub_84AB0+536j cmpi.b #$D,d3 bne.s loc_85068 clr.b var_4+2(a6) clr.w var_4(a6) move.w (word_FFFF90F2).w,var_4(a6) move.b (byte_FFFF90E2).w,var_4+2(a6) clr.w (word_FFFF90F2).w clr.b (byte_FFFF90E2).w tst.b var_4+2(a6) beq.s loc_85058 jsr sub_274AE cmp.w var_4(a6),d0 bne.s loc_85058 moveq #$10,d1 moveq #1,d0 jsr sub_8515E move.b #8,(byte_FFFF8D17).w tst.b (VTD_KE_VTD_DIAG_ENABLED).l ; TRUE indicates the diagnostic is enabled and VTD failure is reported via Class 2. ; BOOLEAN beq.w loc_85134 move.w #$C9,d0 ; '?' jsr sub_5F0BE bra.w loc_85134 ; --------------------------------------------------------------------------- loc_85058: ; CODE XREF: sub_84AB0+572j ; sub_84AB0+57Ej tst.b (byte_FFFFB120).w beq.w loc_85134 clr.b d1 moveq #1,d0 bra.w loc_84CBE ; --------------------------------------------------------------------------- loc_85068: ; CODE XREF: sub_84AB0+550j cmpi.b #$E,d3 bne.w loc_85112 clr.b var_4+2(a6) move.w (word_FFFF90F2).w,var_4(a6) move.b (byte_FFFF90E2).w,var_4+2(a6) clr.w (word_FFFF90F2).w clr.b (byte_FFFF90E2).w moveq #1,d1 tst.b var_4+2(a6) beq.s loc_850E4 tst.b (VTD_KE_VTD_DIAG_ENABLED).l ; TRUE indicates the diagnostic is enabled and VTD failure is reported via Class 2. ; BOOLEAN beq.s loc_850B4 tst.b (byte_FFFFB120).w bne.s loc_850B4 moveq #4,d0 jsr sub_8522E tst.b d0 bne.s loc_850B4 move.w #$C9,d0 ; '?' jsr sub_5F0BE loc_850B4: ; CODE XREF: sub_84AB0+5E6j ; sub_84AB0+5ECj ... tst.w var_4(a6) bls.s loc_850CA cmpi.w #$FFFF,var_4(a6) bcc.s loc_850CA move.b d6,(byte_FFFF8D17).w clr.b d1 bra.s loc_850E4 ; --------------------------------------------------------------------------- loc_850CA: ; CODE XREF: sub_84AB0+608j ; sub_84AB0+610j tst.w var_4(a6) bne.s loc_850E4 move.b (byte_FFFFB123).w,d3 addq.b #1,d3 bcs.s loc_850DE cmpi.b #$A,d3 bls.s loc_850E0 loc_850DE: ; CODE XREF: sub_84AB0+626j move.l d6,d3 loc_850E0: ; CODE XREF: sub_84AB0+62Cj move.b d3,(byte_FFFFB123).w loc_850E4: ; CODE XREF: sub_84AB0+5DEj ; sub_84AB0+618j ... move.b (byte_FFFFB123).w,d0 cmp.b (VTD_KE_VTD_BAD_PASSWORD).l,d0 ; Threshold to compare against the Bad Password Counter during certain decision states. ; SHORTCARD bcc.s loc_850F6 and.b (byte_FFFFB120).w,d1 beq.s loc_85134 loc_850F6: ; CODE XREF: sub_84AB0+63Ej clr.b d1 moveq #2,d0 jsr sub_8515E move.w (GlobalClock).w,(word_FFFFB118).w move.b #1,(byte_FFFF8D1A).w move.b d2,(byte_FFFF8D17).w bra.s loc_85134 ; --------------------------------------------------------------------------- loc_85112: ; CODE XREF: sub_84AB0+5BCj cmpi.b #1,d3 beq.s loc_85134 cmpi.b #7,d3 beq.s loc_85134 cmpi.b #9,d3 beq.s loc_85134 cmpi.b #$F,d3 beq.s loc_85134 clr.b (byte_FFFF8D17).w loc_8512E: ; CODE XREF: sub_84AB0+32Aj jsr sub_8523A loc_85134: ; CODE XREF: sub_84AB0+1FCj ; sub_84AB0+206j ... move.b (byte_FFFF8D1C).w,(byte_FFFF8D20).w bra.s loc_85156 ; --------------------------------------------------------------------------- loc_8513C: ; CODE XREF: sub_84AB0+3Aj tst.b (byte_FFFF8D1B).w bne.s loc_8514E jsr sub_274A0 move.b #1,(byte_FFFF8D1B).w loc_8514E: ; CODE XREF: sub_84AB0+690j eori.b #1,d0 move.b d0,(byte_FFFF8D19).w loc_85156: ; CODE XREF: sub_84AB0+68Aj movem.l (sp)+,d0-d2/d6-a0 unlk a6 rts ; End of function sub_84AB0 ; =============== S U B R O U T I N E ======================================= sub_8515E: ; CODE XREF: sub_84AB0+4Ep ; sub_84AB0+A4p ... movem.l d2/d6-d7,-(sp) move.b d0,d6 move.b (byte_FFFF8D16).w,d0 move.b d0,d2 move.l d0,d3 moveq #$32,d7 ; '2' and.b d7,d3 not.b d1 or.b d6,d0 and.b d1,d0 move.b d0,(byte_FFFF8D16).w move.l d0,d1 and.b d7,d1 cmp.b d3,d1 beq.s loc_8518A and.b d7,d0 jsr sub_274BA loc_8518A: ; CODE XREF: sub_8515E+22j cmp.b (byte_FFFF8D16).w,d2 beq.w loc_85228 tst.b (VTD_KE_VTD_DIAG_ENABLED).l ; TRUE indicates the diagnostic is enabled and VTD failure is reported via Class 2. ; BOOLEAN beq.s loc_851B0 moveq #4,d0 jsr sub_8522E tst.b d0 beq.s loc_851B0 move.w #$C9,d0 ; '?' jsr sub_5F110 loc_851B0: ; CODE XREF: sub_8515E+3Aj ; sub_8515E+46j tst.b (byte_1FE81).l beq.s loc_851E8 moveq #4,d0 jsr sub_8522E tst.b d0 bne.s loc_851E8 moveq #5,d0 jsr sub_8522E tst.b d0 beq.s loc_851E8 clr.b d0 jsr sub_8522E tst.b d0 bne.s loc_851E8 move.w #$CA,d0 ; '?' jsr sub_5F110 bra.s loc_851F2 ; --------------------------------------------------------------------------- loc_851E8: ; CODE XREF: sub_8515E+58j ; sub_8515E+64j ... move.w #$CA,d0 ; '?' jsr sub_5F0BE loc_851F2: ; CODE XREF: sub_8515E+88j tst.b (byte_1FE82).l beq.s loc_85228 moveq #4,d0 jsr sub_8522E tst.b d0 bne.s loc_8521E moveq #5,d0 jsr sub_8522E tst.b d0 bne.s loc_8521E clr.b d0 jsr sub_8522E tst.b d0 beq.s loc_85228 loc_8521E: ; CODE XREF: sub_8515E+A6j ; sub_8515E+B2j move.w #$CB,d0 ; '?' jsr sub_5F0BE loc_85228: ; CODE XREF: sub_8515E+30j ; sub_8515E+9Aj ... movem.l (sp)+,d2/d6-d7 rts ; End of function sub_8515E ; =============== S U B R O U T I N E ======================================= sub_8522E: ; CODE XREF: sub_84AB0+160p ; sub_84AB0+16Cp ... move.b (byte_FFFF8D16).w,d3 btst d0,d3 sne d0 neg.b d0 rts ; End of function sub_8522E ; =============== S U B R O U T I N E ======================================= sub_8523A: ; CODE XREF: sub_84AB0:loc_8512Ep move.l d0,-(sp) tst.b (byte_FFFF8D1C).w beq.w loc_8530C moveq #1,d0 jsr sub_8522E tst.b d0 bne.s loc_85276 moveq #5,d0 jsr sub_8522E tst.b d0 bne.s loc_85276 moveq #4,d0 jsr sub_8522E tst.b d0 bne.s loc_85276 clr.b (byte_FFFF8D1A).w move.b #$C,(byte_FFFF8D17).w bra.w loc_85312 ; --------------------------------------------------------------------------- loc_85276: ; CODE XREF: sub_8523A+14j ; sub_8523A+20j ... moveq #4,d0 jsr sub_8522E tst.b d0 beq.s loc_85290 clr.b (byte_FFFF8D1A).w move.b #$D,(byte_FFFF8D17).w bra.w loc_85312 ; --------------------------------------------------------------------------- loc_85290: ; CODE XREF: sub_8523A+46j moveq #5,d0 jsr sub_8522E tst.b d0 beq.s loc_852B4 moveq #1,d0 jsr sub_8522E tst.b d0 bne.s loc_852B4 clr.b (byte_FFFF8D1A).w move.b #$E,(byte_FFFF8D17).w bra.s loc_85312 ; --------------------------------------------------------------------------- loc_852B4: ; CODE XREF: sub_8523A+60j ; sub_8523A+6Cj moveq #1,d0 jsr sub_8522E tst.b d0 beq.s loc_852E0 moveq #5,d0 jsr sub_8522E tst.b d0 beq.s loc_852E0 move.w (GlobalClock).w,(word_FFFFB118).w move.b #1,(byte_FFFF8D1A).w move.b #5,(byte_FFFF8D17).w bra.s loc_85312 ; --------------------------------------------------------------------------- loc_852E0: ; CODE XREF: sub_8523A+84j ; sub_8523A+90j moveq #1,d0 jsr sub_8522E tst.b d0 beq.s loc_85312 moveq #5,d0 jsr sub_8522E tst.b d0 bne.s loc_85312 move.w (GlobalClock).w,(word_FFFFB118).w move.b #1,(byte_FFFF8D1A).w move.b #4,(byte_FFFF8D17).w bra.s loc_85312 ; --------------------------------------------------------------------------- loc_8530C: ; CODE XREF: sub_8523A+6j move.b #1,(byte_FFFF8D1A).w loc_85312: ; CODE XREF: sub_8523A+38j ; sub_8523A+52j ... move.l (sp)+,d0 rts ; End of function sub_8523A ; =============== S U B R O U T I N E ======================================= sub_85316: ; CODE XREF: sub_307A6+ECp ; sub_3E040:loc_3E0C2p ... tst.b (VEH_SYS_KE_VTD_CONFIGURATION).l ; This is used to activate the different VTD functionalities within the PCM. ; Unitless seq d0 neg.b d0 and.b (byte_FFFF8D1A).w,d0 rts ; End of function sub_85316 ; =============== S U B R O U T I N E ======================================= sub_85326: ; CODE XREF: sub_75370+12Ep movem.l d0-d1,-(sp) tst.b (VEH_SYS_KE_VTD_CONFIGURATION).l ; This is used to activate the different VTD functionalities within the PCM. ; Unitless bne.s loc_8533C moveq #$10,d1 clr.b d0 jsr sub_8515E loc_8533C: ; CODE XREF: sub_85326+Aj movem.l (sp)+,d0-d1 rts ; End of function sub_85326 ; =============== S U B R O U T I N E ======================================= sub_85342: ; CODE XREF: OS1:00028968p move.l d1,-(sp) cmpi.b #5,d0 beq.s loc_8539E cmpi.b #2,d0 bne.s loc_8539E move.w (GlobalClock).w,(word_FFFFB11A).w move.w (GlobalClock).w,(word_FFFFB11C).w move.w (GlobalClock).w,(word_FFFFB118).w tst.b (byte_FFFF8D19).w beq.s loc_85382 move.b #1,(byte_FFFFB121).w clr.b (byte_FFFF8D1A).w clr.b (byte_FFFF8D1B).w clr.b (byte_FFFF8D20).w move.w (VTD_KE_VTD_TIME_TO_IGNITION_OFF).l,(word_FFFF8D1E).w ; The amount of time the ignition is off before the VTD logic performs powerdown state transitions. ; Seconds loc_85382: ; CODE XREF: sub_85342+24j tst.b (byte_FFFFB54A).w bne.s loc_8539E moveq #$10,d1 clr.b d0 jsr sub_8515E clr.b (byte_FFFF8D17).w move.w (VTD_KE_VTD_TIME_TO_IGNITION_OFF).l,(word_FFFF8D1E).w ; The amount of time the ignition is off before the VTD logic performs powerdown state transitions. ; Seconds loc_8539E: ; CODE XREF: sub_85342+6j sub_85342+Cj ... move.l (sp)+,d1 rts ; End of function sub_85342 ; =============== S U B R O U T I N E ======================================= sub_853A2: ; CODE XREF: DoLoopB+FAp movem.l d0-d2/d6-d7,-(sp) btst #3,(word_FFFFA594).w beq.s loc_853CC btst #1,(byte_FFFFB2BE).w bne.s loc_853BC clr.w (word_FFFFB2CC).w bra.s loc_853CC ; --------------------------------------------------------------------------- loc_853BC: ; CODE XREF: sub_853A2+12j move.w (word_FFFFB2CC).w,d3 addq.w #3,d3 bcc.s loc_853C8 move.w #$FFFF,d3 loc_853C8: ; CODE XREF: sub_853A2+20j move.w d3,(word_FFFFB2CC).w loc_853CC: ; CODE XREF: sub_853A2+Aj ; sub_853A2+18j btst #3,(word_FFFFA594).w bne.s loc_853F2 btst #1,(byte_FFFFB2BE).w beq.s loc_853E2 clr.w (word_FFFFB2CA).w bra.s loc_853F2 ; --------------------------------------------------------------------------- loc_853E2: ; CODE XREF: sub_853A2+38j move.w (word_FFFFB2CA).w,d3 addq.w #3,d3 bcc.s loc_853EE move.w #$FFFF,d3 loc_853EE: ; CODE XREF: sub_853A2+46j move.w d3,(word_FFFFB2CA).w loc_853F2: ; CODE XREF: sub_853A2+30j ; sub_853A2+3Ej btst #4,(word_FFFFA594).w beq.s loc_85418 btst #2,(byte_FFFFB2BE).w bne.s loc_85408 clr.w (word_FFFFB2C8).w bra.s loc_85418 ; --------------------------------------------------------------------------- loc_85408: ; CODE XREF: sub_853A2+5Ej move.w (word_FFFFB2C8).w,d3 addq.w #3,d3 bcc.s loc_85414 move.w #$FFFF,d3 loc_85414: ; CODE XREF: sub_853A2+6Cj move.w d3,(word_FFFFB2C8).w loc_85418: ; CODE XREF: sub_853A2+56j ; sub_853A2+64j btst #4,(word_FFFFA594).w bne.s loc_8543E btst #2,(byte_FFFFB2BE).w beq.s loc_8542E clr.w (word_FFFFB2C6).w bra.s loc_8543E ; --------------------------------------------------------------------------- loc_8542E: ; CODE XREF: sub_853A2+84j move.w (word_FFFFB2C6).w,d3 addq.w #3,d3 bcc.s loc_8543A move.w #$FFFF,d3 loc_8543A: ; CODE XREF: sub_853A2+92j move.w d3,(word_FFFFB2C6).w loc_8543E: ; CODE XREF: sub_853A2+7Cj ; sub_853A2+8Aj move.b (byte_FFFF9024).w,d3 moveq #1,d1 cmp.b d3,d1 beq.w loc_858C0 tst.b d3 beq.w loc_858C0 btst #1,(byte_FFFFB2BE).w beq.w loc_8553C btst #3,(word_FFFFA594).w bne.w loc_8553C moveq #2,d2 cmp.b (byte_FFFF9028).w,d2 bne.w loc_854F2 cmp.b d3,d2 bne.s loc_854A0 moveq #7,d6 move.b d6,(byte_FFFF9024).w move.w (word_FFFF902E).w,(word_FFFFB2C0).w clr.l d5 move.w (word_FFFFB2C0).w,d5 clr.l d3 move.w (word_FFFFB1C4).w,d3 sub.l d5,d3 cmpi.l #$FFFF8000,d3 bge.s loc_854CC loc_85494: ; CODE XREF: sub_853A2+128j move.w #$8000,d3 loc_85498: ; CODE XREF: sub_853A2+130j ; sub_853A2+136j move.w d3,(word_FFFFB1D2).w bra.w loc_8553C ; --------------------------------------------------------------------------- loc_854A0: ; CODE XREF: sub_853A2+CEj move.w (word_FFFFB2C0).w,d4 cmp.w (word_FFFF9030).w,d4 bne.s loc_854DA moveq #3,d6 cmp.b d3,d6 bne.s loc_854DA move.w (word_FFFF902E).w,(word_FFFFB2C0).w clr.l d5 move.w (word_FFFFB2C0).w,d5 clr.l d3 move.w (word_FFFFB1C4).w,d3 sub.l d5,d3 cmpi.l #$FFFF8000,d3 blt.s loc_85494 loc_854CC: ; CODE XREF: sub_853A2+F0j cmpi.l #$7FFF,d3 ble.s loc_85498 move.w #$7FFF,d3 bra.s loc_85498 ; --------------------------------------------------------------------------- loc_854DA: ; CODE XREF: sub_853A2+106j ; sub_853A2+10Cj cmp.w (word_FFFF902E).w,d4 bne.s loc_8553C moveq #3,d6 cmp.b d3,d6 bne.s loc_8553C move.w (word_FFFF902A).w,(word_FFFFB2C0).w move.b d2,(byte_FFFF9024).w bra.s loc_8553C ; --------------------------------------------------------------------------- loc_854F2: ; CODE XREF: sub_853A2+C8j moveq #5,d6 cmp.b d3,d6 bne.s loc_85500 moveq #3,d7 move.b d7,(byte_FFFF9024).w bra.s loc_8553C ; --------------------------------------------------------------------------- loc_85500: ; CODE XREF: sub_853A2+154j btst #1,(byte_FFFFB1C2).w beq.s loc_8552C moveq #4,d7 cmp.b d3,d7 beq.s loc_8551E cmp.b d3,d2 bne.s loc_8553C move.w (word_FFFFB2CC).w,d3 cmp.w (PTO_MANAGE_KE_PTO_SET_TIME).l,d3 ; The minimum amount of time the S/C switch must be depressed in order to move to engaged upon the release of the switch. ; Seconds bcs.s loc_8553C loc_8551E: ; CODE XREF: sub_853A2+16Aj move.w (word_FFFFB1C4).w,(word_FFFFB2C0).w moveq #3,d5 move.b d5,(byte_FFFF9024).w bra.s loc_8553C ; --------------------------------------------------------------------------- loc_8552C: ; CODE XREF: sub_853A2+164j moveq #4,d7 cmp.b d3,d7 bne.s loc_8553C move.b d6,(byte_FFFF9025).w jsr sub_875BA loc_8553C: ; CODE XREF: sub_853A2+B4j ; sub_853A2+BEj ... btst #2,(byte_FFFFB2BE).w beq.w loc_855D2 btst #4,(word_FFFFA594).w bne.w loc_855D2 moveq #2,d2 cmp.b (byte_FFFF9028).w,d2 bne.s loc_855C6 move.b (byte_FFFF9024).w,d3 cmp.b d3,d2 beq.s loc_85570 move.w (word_FFFFB2C0).w,d4 cmp.w (word_FFFF902E).w,d4 bne.s loc_855AA moveq #3,d6 cmp.b d3,d6 bne.s loc_855AA loc_85570: ; CODE XREF: sub_853A2+1BCj moveq #7,d6 move.b d6,(byte_FFFF9024).w move.w (word_FFFF9030).w,(word_FFFFB2C0).w clr.l d5 move.w (word_FFFFB2C0).w,d5 clr.l d3 move.w (word_FFFFB1C4).w,d3 sub.l d5,d3 cmpi.l #$FFFF8000,d3 blt.s loc_855A0 cmpi.l #$7FFF,d3 ble.s loc_855A4 move.w #$7FFF,d3 bra.s loc_855A4 ; --------------------------------------------------------------------------- loc_855A0: ; CODE XREF: sub_853A2+1EEj move.w #$8000,d3 loc_855A4: ; CODE XREF: sub_853A2+1F6j ; sub_853A2+1FCj move.w d3,(word_FFFFB1D2).w bra.s loc_855D2 ; --------------------------------------------------------------------------- loc_855AA: ; CODE XREF: sub_853A2+1C6j ; sub_853A2+1CCj move.w (word_FFFFB2C0).w,d4 cmp.w (word_FFFF9030).w,d4 bne.s loc_855D2 moveq #3,d6 cmp.b d3,d6 bne.s loc_855D2 move.w (word_FFFF902A).w,(word_FFFFB2C0).w move.b d2,(byte_FFFF9024).w bra.s loc_855D2 ; --------------------------------------------------------------------------- loc_855C6: ; CODE XREF: sub_853A2+1B4j cmp.b (byte_FFFF9024).w,d2 beq.s loc_855D2 jsr sub_8688E loc_855D2: ; CODE XREF: sub_853A2+1A0j ; sub_853A2+1AAj ... btst #1,(byte_FFFFB2BE).w bne.w loc_856B8 btst #3,(word_FFFFA594).w beq.w loc_856B8 move.b (byte_FFFF9024).w,d3 moveq #2,d2 cmp.b d3,d2 beq.w loc_856B8 cmp.b (byte_FFFF9028).w,d2 beq.w loc_856B8 moveq #7,d6 cmp.b d3,d6 bne.s loc_8561C moveq #4,d7 move.b d7,(byte_FFFF9024).w move.w (word_FFFFB1C4).w,d3 cmp.w (word_FFFFB2C0).w,d3 bcc.w loc_856B8 move.w (word_FFFFB1CA).w,(word_FFFFB1D2).w bra.w loc_856B8 ; --------------------------------------------------------------------------- loc_8561C: ; CODE XREF: sub_853A2+25Cj moveq #5,d7 move.b d7,(byte_FFFF9024).w clr.l d3 move.w (PTO_MANAGE_KE_TAP_INCREMENT).l,d3 ; The tap up/down increment to memory speed and demand register. ; RPM clr.l d4 move.w (PTO_KE_LOW_SPEED_INHIBIT).l,d4 ; Filtered engine speed below which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM add.l d3,d4 clr.l d3 move.w (word_FFFFB2C0).w,d3 cmp.l d4,d3 bcs.s loc_856B8 move.w (PTO_MANAGE_KE_TAP_DOWN_TIMEOUT).l,d3 cmp.w (word_FFFFB2CA).w,d3 bhi.s loc_85678 cmp.w (word_FFFFB2C6).w,d3 bhi.s loc_85678 clr.l d3 move.w (PTO_MANAGE_KE_TAP_DOWN_SPEED_HIGH).l,d3 move.w (word_FFFFB1CA).w,d4 ext.l d4 cmp.l d3,d4 blt.s loc_85678 btst #3,(byte_FFFFB1C2).w bne.s loc_856B8 move.b #$E,(byte_FFFF9025).w jsr sub_875BA bra.s loc_856B8 ; --------------------------------------------------------------------------- loc_85678: ; CODE XREF: sub_853A2+2A6j ; sub_853A2+2ACj ... move.w (word_FFFFB2C0).w,d3 sub.w (PTO_MANAGE_KE_TAP_INCREMENT).l,d3 ; The tap up/down increment to memory speed and demand register. ; RPM bcc.s loc_85686 clr.w d3 loc_85686: ; CODE XREF: sub_853A2+2E0j move.w d3,(word_FFFFB2C0).w clr.l d5 move.w (PTO_MANAGE_KE_TAP_INCREMENT).l,d5 ; The tap up/down increment to memory speed and demand register. ; RPM move.w (word_FFFFB1D2).w,d3 ext.l d3 add.l d5,d3 cmpi.l #$FFFF8000,d3 blt.s loc_856B0 cmpi.l #$7FFF,d3 ble.s loc_856B4 move.w #$7FFF,d3 bra.s loc_856B4 ; --------------------------------------------------------------------------- loc_856B0: ; CODE XREF: sub_853A2+2FEj move.w #$8000,d3 loc_856B4: ; CODE XREF: sub_853A2+306j ; sub_853A2+30Cj move.w d3,(word_FFFFB1D2).w loc_856B8: ; CODE XREF: sub_853A2+236j ; sub_853A2+240j ... btst #2,(byte_FFFFB2BE).w bne.w loc_857C0 btst #4,(word_FFFFA594).w beq.w loc_857C0 moveq #2,d2 cmp.b (byte_FFFF9028).w,d2 beq.w loc_857C0 move.b (byte_FFFF9024).w,d3 cmp.b d3,d2 beq.w loc_85762 moveq #7,d6 cmp.b d3,d6 beq.w loc_857C0 moveq #6,d7 move.b d7,(byte_FFFF9024).w move.w (word_FFFFB1CA).w,d3 cmp.w (PTO_MANAGE_KE_TAP_UP_SPEED_LOW).l,d3 blt.w loc_857C0 clr.l d5 move.w (PTO_MANAGE_KE_TAP_UP_SPEED_HIGH).l,d5 ext.l d3 cmp.l d5,d3 bge.w loc_857C0 clr.l d3 move.w (PTO_MANAGE_KE_TAP_INCREMENT).l,d3 ; The tap up/down increment to memory speed and demand register. ; RPM clr.l d4 move.w (word_FFFF902C).w,d4 sub.l d3,d4 clr.l d3 move.w (word_FFFFB2C0).w,d3 cmp.l d4,d3 bge.w loc_857C0 move.w (word_FFFFB2C0).w,d3 add.w (PTO_MANAGE_KE_TAP_INCREMENT).l,d3 ; The tap up/down increment to memory speed and demand register. ; RPM bcc.s loc_85738 move.w #$FFFF,d3 loc_85738: ; CODE XREF: sub_853A2+390j move.w d3,(word_FFFFB2C0).w clr.l d5 move.w (PTO_MANAGE_KE_TAP_INCREMENT).l,d5 ; The tap up/down increment to memory speed and demand register. ; RPM move.w (word_FFFFB1D2).w,d3 ext.l d3 sub.l d5,d3 loc_8574C: ; CODE XREF: sub_853A2+414j cmpi.l #$FFFF8000,d3 blt.s loc_857B8 cmpi.l #$7FFF,d3 ble.s loc_857BC move.w #$7FFF,d3 bra.s loc_857BC ; --------------------------------------------------------------------------- loc_85762: ; CODE XREF: sub_853A2+33Aj btst #1,(byte_FFFFB1C2).w beq.s loc_857C0 tst.w (word_FFFFB2C0).w beq.s loc_857C0 moveq #9,d6 move.b d6,(byte_FFFF9024).w move.w (word_FFFFB1C4).w,d3 clr.w d4 move.l #$1400,d7 cmp.w d3,d7 bls.s loc_8578A move.l d4,d3 bra.s loc_857A0 ; --------------------------------------------------------------------------- loc_8578A: ; CODE XREF: sub_853A2+3E2j cmpi.w #$5000,d3 bcc.s loc_8579C andi.l #$FFFF,d3 sub.l d7,d3 lsr.w #2,d3 bra.s loc_857A0 ; --------------------------------------------------------------------------- loc_8579C: ; CODE XREF: sub_853A2+3ECj move.w #$F00,d3 loc_857A0: ; CODE XREF: sub_853A2+3E6j ; sub_853A2+3F8j movea.l #PTO_MANAGE_KV_ACCEL_STEP_FROM_SBE,a2 ; An additional term added to the Demand Register at the initiation of an Accel in order to obtain more Desired Throttle Area. ; RPM tblu.w (a2),d3 clr.l d5 move.w d3,d5 move.w (word_FFFFB1CA).w,d3 ext.l d3 add.l d5,d3 bra.s loc_8574C ; --------------------------------------------------------------------------- loc_857B8: ; CODE XREF: sub_853A2+3B0j move.w #$8000,d3 loc_857BC: ; CODE XREF: sub_853A2+3B8j ; sub_853A2+3BEj move.w d3,(word_FFFFB1D2).w loc_857C0: ; CODE XREF: sub_853A2+31Cj ; sub_853A2+326j ... btst #4,(word_FFFFA594).w beq.w loc_85864 move.b (byte_FFFF9024).w,d3 cmpi.b #6,d3 beq.s loc_857DC cmpi.b #7,d3 bne.w loc_85864 loc_857DC: ; CODE XREF: sub_853A2+430j move.w (word_FFFFB2C8).w,d3 cmp.w (PTO_MANAGE_KE_TAP_UP_VS_ACCEL_TIME).l,d3 bcs.s loc_85864 cmpi.b #2,(byte_FFFF9028).w beq.s loc_85864 move.b #8,(byte_FFFF9024).w move.w (word_FFFFB1C4).w,d3 clr.w d4 move.l #$1400,d6 cmp.w d3,d6 bls.s loc_8580A move.l d4,d3 bra.s loc_85820 ; --------------------------------------------------------------------------- loc_8580A: ; CODE XREF: sub_853A2+462j cmpi.w #$5000,d3 bcc.s loc_8581C andi.l #$FFFF,d3 sub.l d6,d3 lsr.w #2,d3 bra.s loc_85820 ; --------------------------------------------------------------------------- loc_8581C: ; CODE XREF: sub_853A2+46Cj move.w #$F00,d3 loc_85820: ; CODE XREF: sub_853A2+466j ; sub_853A2+478j movea.l #PTO_MANAGE_KV_ACCEL_STEP_FROM_ENG,a2 ; An additional term added to the Demand Register at the initiation of an Accel in order to obtain more Desired Throttle Area. ; RPM tblu.w (a2),d3 tst.w (word_FFFFB1CA).w blt.s loc_85852 clr.l d7 move.w d3,d7 move.w (word_FFFFB1CA).w,d3 loc_85838: ; CODE XREF: sub_853A2+4B8j ext.l d3 add.l d7,d3 cmpi.l #$FFFF8000,d3 blt.s loc_8585C cmpi.l #$7FFF,d3 ble.s loc_85860 move.w #$7FFF,d3 bra.s loc_85860 ; --------------------------------------------------------------------------- loc_85852: ; CODE XREF: sub_853A2+48Cj clr.l d7 move.w d3,d7 move.w (word_FFFFB1D2).w,d3 bra.s loc_85838 ; --------------------------------------------------------------------------- loc_8585C: ; CODE XREF: sub_853A2+4A0j move.w #$8000,d3 loc_85860: ; CODE XREF: sub_853A2+4A8j ; sub_853A2+4AEj move.w d3,(word_FFFFB1D2).w loc_85864: ; CODE XREF: sub_853A2+424j ; sub_853A2+436j ... btst #3,(word_FFFFA594).w beq.s loc_85898 cmpi.b #5,(byte_FFFF9024).w bne.s loc_85898 move.w (word_FFFFB2CC).w,d3 cmp.w (PTO_MANAGE_KE_TAP_DOWN_VS_COAST_TIME).l,d3 bcs.s loc_85898 cmpi.b #2,(byte_FFFF9028).w beq.s loc_85898 move.b #4,(byte_FFFF9024).w move.w (word_FFFFB1CA).w,d3 bge.s loc_85898 move.w d3,(word_FFFFB1D2).w loc_85898: ; CODE XREF: sub_853A2+4C8j ; sub_853A2+4D0j ... move.b (byte_FFFF9024).w,d3 cmpi.b #8,d3 beq.s loc_858A8 moveq #9,d6 cmp.b d3,d6 bne.s loc_858C0 loc_858A8: ; CODE XREF: sub_853A2+4FEj btst #4,(word_FFFFA594).w bne.s loc_858C0 move.b d1,(byte_FFFF9024).w move.b #9,(byte_FFFF9025).w jsr sub_875BA loc_858C0: ; CODE XREF: sub_853A2+A4j ; sub_853A2+AAj ... bclr #1,(byte_FFFFB2BE).w btst #3,(word_FFFFA594).w beq.s loc_858D4 bset #1,(byte_FFFFB2BE).w loc_858D4: ; CODE XREF: sub_853A2+52Aj bclr #2,(byte_FFFFB2BE).w btst #4,(word_FFFFA594).w beq.s loc_858E8 bset #2,(byte_FFFFB2BE).w loc_858E8: ; CODE XREF: sub_853A2+53Ej btst #2,(word_FFFFA594).w beq.s loc_8590E btst #1,(byte_FFFF9027).w beq.s loc_8590E move.b (byte_FFFF9028).w,d3 moveq #2,d2 cmp.b d3,d2 beq.s loc_85924 moveq #3,d6 cmp.b d3,d6 beq.s loc_85924 cmpi.b #4,d3 beq.s loc_85924 loc_8590E: ; CODE XREF: sub_853A2+54Cj ; sub_853A2+554j clr.b (byte_FFFF9024).w clr.w (word_FFFFB2C0).w moveq #$C,d0 loc_85918: ; CODE XREF: sub_853A2+598j ; sub_853A2+5A6j ... move.l d1,d3 loc_8591A: ; CODE XREF: sub_853A2+5C6j bclr #3,(byte_FFFFB2BE).w bra.w loc_859AA ; --------------------------------------------------------------------------- loc_85924: ; CODE XREF: sub_853A2+55Ej ; sub_853A2+564j ... btst #3,(word_FFFFA594).w beq.s loc_8593C btst #4,(word_FFFFA594).w beq.s loc_8593C move.b d1,(byte_FFFF9024).w moveq #$11,d0 bra.s loc_85918 ; --------------------------------------------------------------------------- loc_8593C: ; CODE XREF: sub_853A2+588j ; sub_853A2+590j tst.b (byte_FFFFAF3B).w beq.s loc_8594A move.b d1,(byte_FFFF9024).w clr.b d0 bra.s loc_85918 ; --------------------------------------------------------------------------- loc_8594A: ; CODE XREF: sub_853A2+59Ej tst.b (byte_FFFFA3AC).w beq.s loc_85958 move.b d1,(byte_FFFF9024).w moveq #3,d0 bra.s loc_85918 ; --------------------------------------------------------------------------- loc_85958: ; CODE XREF: sub_853A2+5ACj btst #4,(byte_FFFFB1C2).w bne.s loc_8596A move.b d1,(byte_FFFF9024).w move.l d1,d0 move.l d0,d3 bra.s loc_8591A ; --------------------------------------------------------------------------- loc_8596A: ; CODE XREF: sub_853A2+5BCj cmpi.b #8,(byte_FFFFA3B8).w beq.s loc_8598A move.b (byte_FFFF9028).w,d3 cmpi.b #2,d3 beq.s loc_85982 cmpi.b #3,d3 bne.s loc_8598A loc_85982: ; CODE XREF: sub_853A2+5D8j move.b d1,(byte_FFFF9024).w moveq #8,d0 bra.s loc_85918 ; --------------------------------------------------------------------------- loc_8598A: ; CODE XREF: sub_853A2+5CEj ; sub_853A2+5DEj btst #5,(byte_FFFF9027).w bne.s loc_85998 tst.b (byte_FFFF9034).w bne.s loc_859A2 loc_85998: ; CODE XREF: sub_853A2+5EEj move.b d1,(byte_FFFF9024).w moveq #$10,d0 bra.w loc_85918 ; --------------------------------------------------------------------------- loc_859A2: ; CODE XREF: sub_853A2+5F4j clr.b d3 bset #3,(byte_FFFFB2BE).w loc_859AA: ; CODE XREF: sub_853A2+57Ej tst.b d3 beq.s loc_859C0 btst #3,(byte_FFFFB1C2).w bne.s loc_859C0 move.b d0,(byte_FFFF9025).w jsr sub_875BA loc_859C0: ; CODE XREF: sub_853A2+60Aj ; sub_853A2+612j jsr sub_878CE movem.l (sp)+,d0-d2/d6-d7 rts ; End of function sub_853A2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_859CC: ; CODE XREF: DoLoopD+172p var_4 = -4 var_2 = -2 link a6,#-4 movem.l d0-d2/d6-a1,-(sp) tst.b (PTO_CONTROL_KE_PERFORM_BRK_OR_CLUTCH_TEST).l ; Brake before PTO security option. If TRUE, the brake or clutch input must be asserted before PTO can be enabled. ; BOOLEAN bne.s loc_859E4 loc_859DC: ; CODE XREF: sub_859CC+1Ej ; sub_859CC+24j ... bset #4,(byte_FFFFB1C2).w bra.s loc_85A06 ; --------------------------------------------------------------------------- loc_859E4: ; CODE XREF: sub_859CC+Ej btst #4,(byte_FFFFB1C2).w bne.s loc_859DC tst.b (byte_FFFFA3AC).w bne.s loc_859DC tst.b (byte_FFFFAF3A).w beq.s loc_85A00 btst #5,(word_FFFFA594).w bne.s loc_859DC loc_85A00: ; CODE XREF: sub_859CC+2Aj bclr #4,(byte_FFFFB1C2).w loc_85A06: ; CODE XREF: sub_859CC+16j movea.w (EngineRPM_PID_000C___).w,a2 move.w (word_FFFFB1C4).w,var_4(a6) move.w a2,var_2(a6) move.w (PTO_CONTROL_KE_PTO_ENG_SPEED_FILTER).l,d3 ; Filter coefficient for engine speed for the PTO control algorithm. ; Filter_Coefficient tblu.w var_4(a6),d3 move.w d3,(word_FFFFB1C4).w sub.w (word_FFFFB2C0).w,d3 move.w d3,(word_FFFFB1CA).w sub.w (word_FFFFB1D2).w,d3 bvc.s loc_85A3E bpl.s loc_85A3A move.w #$7FFF,d3 bra.s loc_85A3E ; --------------------------------------------------------------------------- loc_85A3A: ; CODE XREF: sub_859CC+66j move.w #$8000,d3 loc_85A3E: ; CODE XREF: sub_859CC+64j ; sub_859CC+6Cj move.w d3,(word_FFFFB1CC).w move.w (PTO_KE_LOW_SPEED_INHIBIT).l,d0 ; Filtered engine speed below which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM move.w (word_FFFFB1C4).w,d3 cmp.w d0,d3 bcs.s loc_85A5E cmp.w (word_FFFF902C).w,d3 bhi.s loc_85A5E bset #1,(byte_FFFFB1C2).w bra.s loc_85A64 ; --------------------------------------------------------------------------- loc_85A5E: ; CODE XREF: sub_859CC+82j ; sub_859CC+88j bclr #1,(byte_FFFFB1C2).w loc_85A64: ; CODE XREF: sub_859CC+90j btst #3,(byte_FFFFB1C2).w bne.s loc_85AAC clr.l d3 move.w (PTO_CONTROL_KE_OVERSPEED_DISENGAGE).l,d3 ; Maximum overspeed value (PTO_Eng_Speed_Error - Demand_Register) allowed without a PTO disengage. ; RPM move.w (word_FFFFB1CC).w,d4 ext.l d4 cmp.l d3,d4 ble.s loc_85A8C move.b #$D,(byte_FFFF9025).w loc_85A84: ; CODE XREF: sub_859CC+D2j ; sub_859CC+DEj jsr sub_875BA bra.s loc_85AAC ; --------------------------------------------------------------------------- loc_85A8C: ; CODE XREF: sub_859CC+B0j move.w (word_FFFFB1C4).w,d3 cmp.w (PTO_KE_HIGH_SPEED_INHIBIT).l,d3 ; Filtered engine speed above which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM bls.s loc_85AA0 moveq #7,d6 move.b d6,(byte_FFFF9025).w bra.s loc_85A84 ; --------------------------------------------------------------------------- loc_85AA0: ; CODE XREF: sub_859CC+CAj cmp.w d0,d3 bcc.s loc_85AAC move.b #$A,(byte_FFFF9025).w bra.s loc_85A84 ; --------------------------------------------------------------------------- loc_85AAC: ; CODE XREF: sub_859CC+9Ej ; sub_859CC+BEj ... bclr #5,(byte_FFFFB1C2).w move.b (byte_FFFF9024).w,d3 cmpi.b #3,d3 beq.s loc_85AE2 cmpi.b #4,d3 beq.s loc_85AE2 cmpi.b #5,d3 beq.s loc_85AE2 cmpi.b #6,d3 beq.s loc_85AE2 cmpi.b #7,d3 beq.s loc_85AE2 cmpi.b #8,d3 beq.s loc_85AE2 cmpi.b #9,d3 bne.w loc_85C62 loc_85AE2: ; CODE XREF: sub_859CC+EEj ; sub_859CC+F4j ... move.w (word_FFFFB292).w,d0 move.w (word_FFFFB1C4).w,d1 clr.w d3 move.l #$1400,d7 cmp.w d1,d7 bls.s loc_85AFA move.l d3,d1 bra.s loc_85B10 ; --------------------------------------------------------------------------- loc_85AFA: ; CODE XREF: sub_859CC+128j cmpi.w #$5000,d1 bcc.s loc_85B0C andi.l #$FFFF,d1 sub.l d7,d1 lsr.w #2,d1 bra.s loc_85B10 ; --------------------------------------------------------------------------- loc_85B0C: ; CODE XREF: sub_859CC+132j move.w #$F00,d1 loc_85B10: ; CODE XREF: sub_859CC+12Cj ; sub_859CC+13Ej cmpi.w #$400,d0 bcc.s loc_85B1A move.l d3,d0 bra.s loc_85B2A ; --------------------------------------------------------------------------- loc_85B1A: ; CODE XREF: sub_859CC+148j cmp.w d0,d7 bls.s loc_85B26 lsr.w #1,d0 subi.w #$200,d0 bra.s loc_85B2A ; --------------------------------------------------------------------------- loc_85B26: ; CODE XREF: sub_859CC+150j move.w #$800,d0 loc_85B2A: ; CODE XREF: sub_859CC+14Cj ; sub_859CC+158j moveq #9,d2 movea.l #$FDD6,a0 jsr sub_2696E move.w d0,d7 move.l d0,d6 mulu.w (PTO_CONTROL_KE_HYSTERESIS).l,d6 ; Hysteresis constant. ; RPM divu.w #$1000,d6 bvc.s loc_85B4C move.w #$FFFF,d6 loc_85B4C: ; CODE XREF: sub_859CC+17Aj move.w (word_FFFFB292).w,d0 move.w (word_FFFFB1C4).w,d1 clr.w d3 move.l #$1400,d4 cmp.w d1,d4 bls.s loc_85B64 move.l d3,d1 bra.s loc_85B7A ; --------------------------------------------------------------------------- loc_85B64: ; CODE XREF: sub_859CC+192j cmpi.w #$5000,d1 bcc.s loc_85B76 andi.l #$FFFF,d1 sub.l d4,d1 lsr.w #2,d1 bra.s loc_85B7A ; --------------------------------------------------------------------------- loc_85B76: ; CODE XREF: sub_859CC+19Cj move.w #$F00,d1 loc_85B7A: ; CODE XREF: sub_859CC+196j ; sub_859CC+1A8j cmpi.w #$400,d0 bcc.s loc_85B84 move.l d3,d0 bra.s loc_85B94 ; --------------------------------------------------------------------------- loc_85B84: ; CODE XREF: sub_859CC+1B2j cmp.w d0,d4 bls.s loc_85B90 lsr.w #1,d0 subi.w #$200,d0 bra.s loc_85B94 ; --------------------------------------------------------------------------- loc_85B90: ; CODE XREF: sub_859CC+1BAj move.w #$800,d0 loc_85B94: ; CODE XREF: sub_859CC+1B6j ; sub_859CC+1C2j moveq #9,d2 movea.l #$FEF6,a0 jsr sub_2696E move.w (word_FFFFB1D4).w,d3 ext.l d3 andi.l #$FFFF,d0 sub.l d3,d0 cmpi.l #$FFFF8000,d0 blt.s loc_85BC6 cmpi.l #$7FFF,d0 ble.s loc_85BCA move.w #$7FFF,d0 bra.s loc_85BCA ; --------------------------------------------------------------------------- loc_85BC6: ; CODE XREF: sub_859CC+1EAj move.w #$8000,d0 loc_85BCA: ; CODE XREF: sub_859CC+1F2j ; sub_859CC+1F8j move.w (word_FFFFB1CC).w,d5 ext.l d5 clr.l d3 move.w d7,d3 muls.l d5,d3 move.w #$1000,d5 divs.w d5,d3 bvc.s loc_85BF0 swap d3 eor.w d5,d3 bmi.s loc_85BEC move.w #$7FFF,d3 bra.s loc_85BF0 ; --------------------------------------------------------------------------- loc_85BEC: ; CODE XREF: sub_859CC+218j move.w #$8000,d3 loc_85BF0: ; CODE XREF: sub_859CC+212j ; sub_859CC+21Ej sub.w d0,d3 bvc.s loc_85C00 bpl.s loc_85BFC move.w #$7FFF,d3 bra.s loc_85C00 ; --------------------------------------------------------------------------- loc_85BFC: ; CODE XREF: sub_859CC+228j move.w #$8000,d3 loc_85C00: ; CODE XREF: sub_859CC+226j ; sub_859CC+22Ej cmp.w (word_FFFFB1D6).w,d3 bge.s loc_85C5E clr.l d0 move.w d6,d0 move.w (word_FFFFB1D6).w,d4 ext.l d4 sub.l d0,d4 cmpi.l #$FFFF8000,d4 blt.s loc_85C28 cmpi.l #$7FFF,d4 ble.s loc_85C2C move.w #$7FFF,d4 bra.s loc_85C2C ; --------------------------------------------------------------------------- loc_85C28: ; CODE XREF: sub_859CC+24Cj move.w #$8000,d4 loc_85C2C: ; CODE XREF: sub_859CC+254j ; sub_859CC+25Aj cmp.w d4,d3 bge.s loc_85C56 andi.l #$FFFF,d6 ext.l d3 add.l d6,d3 cmpi.l #$FFFF8000,d3 blt.s loc_85C50 cmpi.l #$7FFF,d3 ble.s loc_85C5E move.w #$7FFF,d3 bra.s loc_85C5E ; --------------------------------------------------------------------------- loc_85C50: ; CODE XREF: sub_859CC+274j move.w #$8000,d3 bra.s loc_85C5E ; --------------------------------------------------------------------------- loc_85C56: ; CODE XREF: sub_859CC+262j bset #5,(byte_FFFFB1C2).w bra.s loc_85C62 ; --------------------------------------------------------------------------- loc_85C5E: ; CODE XREF: sub_859CC+238j ; sub_859CC+27Cj ... move.w d3,(word_FFFFB1D6).w loc_85C62: ; CODE XREF: sub_859CC+112j ; sub_859CC+290j btst #5,(byte_FFFFB1C2).w bne.w loc_85CEC move.w (word_FFFFB1D6).w,d3 cmpi.w #$F600,d3 bge.s loc_85C7A clr.w d3 bra.s loc_85C8E ; --------------------------------------------------------------------------- loc_85C7A: ; CODE XREF: sub_859CC+2A8j cmpi.w #$400,d3 bge.s loc_85C8A ext.l d3 addi.l #$A00,d3 bra.s loc_85C8E ; --------------------------------------------------------------------------- loc_85C8A: ; CODE XREF: sub_859CC+2B2j move.w #$E00,d3 loc_85C8E: ; CODE XREF: sub_859CC+2ACj ; sub_859CC+2BCj movea.l #$FDB8,a2 tbls.w (a2),d3 move.w (word_FFFF82D2).w,d4 clr.w d5 cmpi.w #$D00,d4 bcc.s loc_85CA8 move.l d5,d4 bra.s loc_85CAE ; --------------------------------------------------------------------------- loc_85CA8: ; CODE XREF: sub_859CC+2D6j lsr.w #1,d4 subi.w #$680,d4 loc_85CAE: ; CODE XREF: sub_859CC+2DAj movea.l #$FDAE,a2 tblu.w (a2),d4 mulu.w d4,d3 lsr.l #8,d3 lsr.l #4,d3 cmpi.w #$1400,d3 bls.s loc_85CC8 move.w #$1400,d3 loc_85CC8: ; CODE XREF: sub_859CC+2F6j move.w (PTO_CONTROL_KE_PTO_THROTTLE_AREA_LIMIT).l,d4 ; Maximum desired throttle area that PTO can request. ; Percent cmp.w d4,d3 bcs.s loc_85CDC move.l d4,d3 bset #0,(byte_FFFFB1C2).w bra.s loc_85CE2 ; --------------------------------------------------------------------------- loc_85CDC: ; CODE XREF: sub_859CC+304j bclr #0,(byte_FFFFB1C2).w loc_85CE2: ; CODE XREF: sub_859CC+30Ej cmp.w (word_FFFFB1C6).w,d3 beq.s loc_85CEC move.w d3,(word_FFFFB1C6).w loc_85CEC: ; CODE XREF: sub_859CC+29Cj ; sub_859CC+31Aj move.w (word_FFFFB1C6).w,d3 add.w (word_FFFF9E12).w,d3 cmpi.w #$1400,d3 bls.s loc_85CFE move.w #$1400,d3 loc_85CFE: ; CODE XREF: sub_859CC+32Cj move.w d3,(word_FFFFB1C8).w move.b (byte_FFFF9024).w,d3 cmpi.b #3,d3 beq.s loc_85D30 cmpi.b #4,d3 beq.s loc_85D30 cmpi.b #5,d3 beq.s loc_85D30 cmpi.b #6,d3 beq.s loc_85D30 cmpi.b #7,d3 beq.s loc_85D30 cmpi.b #8,d3 beq.s loc_85D30 cmpi.b #9,d3 bne.s loc_85D3E loc_85D30: ; CODE XREF: sub_859CC+33Ej ; sub_859CC+344j ... bset #2,(byte_FFFFB1C2).w bclr #3,(byte_FFFFB1C2).w bra.s loc_85D44 ; --------------------------------------------------------------------------- loc_85D3E: ; CODE XREF: sub_859CC+362j bclr #2,(byte_FFFFB1C2).w loc_85D44: ; CODE XREF: sub_859CC+370j btst #1,(byte_FFFF9027).w beq.s loc_85D5A move.w (word_FFFF902C).w,(word_FFFFB1CE).w move.w (word_FFFF9032).w,(word_FFFFB1D0).w bra.s loc_85D66 ; --------------------------------------------------------------------------- loc_85D5A: ; CODE XREF: sub_859CC+37Ej move.w #$FFFF,(word_FFFFB1CE).w move.w #$7FFF,(word_FFFFB1D0).w loc_85D66: ; CODE XREF: sub_859CC+38Cj movem.l (sp)+,d0-d2/d6-a1 unlk a6 rts ; End of function sub_859CC ; =============== S U B R O U T I N E ======================================= sub_85D6E: ; CODE XREF: OS1:0002B7DEp var_6364 = -$6364 movem.l d0-d2/d6-a1,-(sp) move.b (word_FFFFF60E).w,(word_FFFFBE74).w clr.b (byte_FFFFBE70).w move.b (word_FFFFF60E).w,(word_FFFFBE74).w move.b (word_FFFFBE74).w,d3 lsr.b #5,d3 moveq #2,d2 cmp.b d3,d2 beq.s loc_85DA2 moveq #5,d6 cmp.b d3,d6 beq.s loc_85DA2 moveq #6,d6 cmp.b d3,d6 beq.s loc_85DA2 moveq #7,d6 cmp.b d3,d6 loc_85D9E: ; CODE XREF: sub_85D6E+284j bne.w loc_85FF6 loc_85DA2: ; CODE XREF: sub_85D6E+1Ej ; sub_85D6E+24j ... tst.b (byte_FFFF9AA0).w beq.s loc_85DBA movea.w #1,a0 move.w a0,(word_FFFFAB1E).w move.w (GlobalClock).w,(word_FFFFAB1C).w clr.b (byte_FFFF9AA0).w loc_85DBA: ; CODE XREF: sub_85D6E+38j clr.w d1 loc_85DBC: ; CODE XREF: sub_85D6E+25Aj move.w (word_FFFFF60E).w,(word_FFFFBE74).w move.b (word_FFFFBE74).w,d3 lsr.b #5,d3 beq.w loc_85F90 clr.b d0 cmpi.b #5,d3 beq.s loc_85DE0 cmpi.b #6,d3 beq.s loc_85DE0 cmpi.b #7,d3 bne.s loc_85DE2 loc_85DE0: ; CODE XREF: sub_85D6E+64j ; sub_85D6E+6Aj addq.b #1,d0 loc_85DE2: ; CODE XREF: sub_85D6E+70j tst.b d0 beq.s loc_85E42 move.b (word_FFFFBE74+1).w,(byte_FFFFBE76).w btst #7,(byte_FFFFBE76).w beq.s loc_85E3E move.b (byte_FFFFBE76).w,d3 moveq #3,d6 and.b d6,d3 cmp.b d3,d6 bne.s loc_85E3E tst.b (byte_FFFFBE6D).w bne.s loc_85E3E move.w #$A0,(word_FFFFAB1E).w ; '?' move.w (GlobalClock).w,(word_FFFFAB1C).w moveq #1,d7 move.b d7,(byte_FFFFBE6C).w move.w (word_FFFF82E8).w,d3 addq.w #1,d3 bcc.s loc_85E24 move.w #$FFFF,d3 loc_85E24: ; CODE XREF: sub_85D6E+B0j move.w d3,(word_FFFF82E8).w tst.b (byte_FFFFBE71).w beq.s loc_85E42 clr.b (byte_FFFFBE71).w move.b d7,(byte_FFFF9A3A).w jsr sub_40278 bra.s loc_85E42 ; --------------------------------------------------------------------------- loc_85E3E: ; CODE XREF: sub_85D6E+84j ; sub_85D6E+90j ... clr.b (byte_FFFFBE6C).w loc_85E42: ; CODE XREF: sub_85D6E+76j ; sub_85D6E+BEj ... tst.b d0 beq.w loc_85F20 move.w #$640,(word_FFFFAB00).w move.w (GlobalClock).w,(word_FFFFAAFE).w btst #7,(byte_FFFFBE76).w beq.s loc_85E66 loc_85E5C: ; CODE XREF: sub_85D6E+216j move.l (dword_FFFF9B22).w,(dword_FFFF9B26).w bra.w loc_85FC6 ; --------------------------------------------------------------------------- loc_85E66: ; CODE XREF: sub_85D6E+ECj move.b (byte_FFFFBE76).w,d0 lsr.b #4,d0 moveq #3,d6 and.b d6,d0 cmp.b d0,d6 bne.s loc_85EB6 move.b (byte_FFFF9AA4).w,d0 clr.l d7 move.b d0,d7 move.b $364E.l(d7.w),d3 beq.s loc_85E9E clr.l d7 move.b d3,d7 tst.b -$6348(d7.w) bne.s loc_85E9E andi.w #$FF,d3 move.b #1,$1C+var_6364(d3.w) loc_85E9E: ; CODE XREF: sub_85D6E+116j ; sub_85D6E+122j jsr sub_41D8C clr.b (byte_FFFF9AA2).w move.l (dword_FFFF9B22).w,(dword_FFFF9B26).w clr.b (byte_FFFF9AA1).w bra.w loc_85FC6 ; --------------------------------------------------------------------------- loc_85EB6: ; CODE XREF: sub_85D6E+104j tst.b (byte_FFFF9AA1).w beq.s loc_85EC2 moveq #1,d1 bra.w loc_85FC6 ; --------------------------------------------------------------------------- loc_85EC2: ; CODE XREF: sub_85D6E+14Cj movea.l (dword_FFFF9B22).w,a2 move.l a2,d3 movea.l (dword_FFFF9B26).w,a3 move.l a3,d4 sub.b d3,d4 move.b d4,(a2) movea.l (dword_FFFF9B22).w,a2 cmpi.b #4,(a2) bcs.s loc_85F12 move.l (dword_FFFF9B26).w,d3 addq.l #1,d3 move.l d3,(dword_FFFF9B26).w movea.l #unk_FF9AE0,a2 moveq #$2F,d4 ; '/' add.l a2,d4 cmp.l d3,d4 bcc.s loc_85EF8 move.l a2,(dword_FFFF9B26).w loc_85EF8: ; CODE XREF: sub_85D6E+184j move.l (dword_FFFF9B26).w,d3 cmp.l (dword_FFFF9B1E).w,d3 bne.s loc_85F08 move.b #1,(byte_FFFF9AA1).w loc_85F08: ; CODE XREF: sub_85D6E+192j move.l (dword_FFFF9B26).w,(dword_FFFF9B22).w bra.w loc_85FC6 ; --------------------------------------------------------------------------- loc_85F12: ; CODE XREF: sub_85D6E+16Cj move.l a2,(dword_FFFF9B26).w movea.l (dword_FFFF9B22).w,a2 clr.b (a2) bra.w loc_85FC6 ; --------------------------------------------------------------------------- loc_85F20: ; CODE XREF: sub_85D6E+D6j movea.l (dword_FFFF9B26).w,a0 addq.l #1,a0 move.l a0,(dword_FFFF9B26).w tst.b (byte_FFFF9AA1).w bne.s loc_85F3A move.l (dword_FFFF9B26).w,d0 cmp.l (dword_FFFF9B1E).w,d0 bne.s loc_85F4A loc_85F3A: ; CODE XREF: sub_85D6E+1C0j moveq #1,d1 jsr (sub_72A).l move.l (dword_FFFF9B22).w,(dword_FFFF9B26).w bra.s loc_85F4E ; --------------------------------------------------------------------------- loc_85F4A: ; CODE XREF: sub_85D6E+1CAj move.b (word_FFFFBE74+1).w,(a0) loc_85F4E: ; CODE XREF: sub_85D6E+1DAj movea.l (dword_FFFF9B22).w,a0 move.l a0,d0 movea.l (dword_FFFF9B26).w,a2 movea.l a2,a1 move.l a1,d3 sub.b d0,d3 cmp.b d3,d2 bne.s loc_85F88 btst #2,1(a0) sne d3 neg.b d3 beq.s loc_85FC6 move.b (a2),d3 cmpi.b #$FE,d3 beq.s loc_85FC6 cmpi.b #$10,d3 beq.s loc_85FC6 loc_85F7C: ; CODE XREF: sub_85D6E+220j moveq #1,d1 jsr (sub_72A).l bra.w loc_85E5C ; --------------------------------------------------------------------------- loc_85F88: ; CODE XREF: sub_85D6E+1F2j cmpi.b #$C,d3 bcs.s loc_85FC6 bra.s loc_85F7C ; --------------------------------------------------------------------------- loc_85F90: ; CODE XREF: sub_85D6E+5Aj moveq #1,d1 move.b (word_FFFFBE74).w,d3 moveq #3,d0 and.b d0,d3 bne.s loc_85FC6 tst.b (byte_FFFF9AA4).w beq.s loc_85FC6 jsr sub_41DAA move.b (byte_FFFF9AA2).w,d3 addq.b #1,d3 move.b d3,(byte_FFFF9AA2).w cmp.b d3,d0 bne.s loc_85FC6 move.w #$640,(word_FFFFAB1E).w move.w (GlobalClock).w,(word_FFFFAB1C).w clr.b (byte_FFFF9AA2).w loc_85FC6: ; CODE XREF: sub_85D6E+F4j ; sub_85D6E+144j ... tst.b d1 beq.w loc_85DBC move.b (word_FFFFF60E).w,(word_FFFFBE74).w move.b (word_FFFFBE74).w,d3 lsr.b #5,d3 cmp.b d3,d2 beq.w loc_85DA2 cmpi.b #5,d3 beq.w loc_85DA2 cmpi.b #6,d3 beq.w loc_85DA2 cmpi.b #7,d3 bra.w loc_85D9E ; --------------------------------------------------------------------------- loc_85FF6: ; CODE XREF: sub_85D6E:loc_85D9Ej move.w (C2_EXECUTIVE_KE_C2_SHORT_TO_HIGH_DIAG_TIME).l,(word_FFFFAAF8).w move.w (GlobalClock).w,(word_FFFFAAF6).w movem.l (sp)+,d0-d2/d6-a1 rts ; End of function sub_85D6E ; =============== S U B R O U T I N E ======================================= sub_8600A: ; CODE XREF: DoLoopF+2F6p move.l d0,-(sp) moveq #3,d5 cmp.b (byte_FFFF9060).w,d5 bne.w loc_8622C move.b (byte_FFFF9024).w,d3 cmp.b d3,d5 beq.s loc_86044 cmpi.b #4,d3 beq.s loc_86044 cmpi.b #5,d3 beq.s loc_86044 cmpi.b #6,d3 beq.s loc_86044 moveq #7,d0 cmp.b d3,d0 beq.s loc_86044 moveq #8,d0 cmp.b d3,d0 beq.s loc_86044 moveq #9,d0 cmp.b d3,d0 bne.w loc_8622C loc_86044: ; CODE XREF: sub_8600A+12j ; sub_8600A+18j ... tst.w (word_FFFFB1D2).w bne.w loc_8617A move.w (word_FFFFB1C4).w,d3 cmp.w (word_FFFFB2C0).w,d3 bcs.w loc_860E2 clr.l d0 move.w (word_FFFFB2C2).w,d0 andi.l #$FFFF,d3 sub.l d0,d3 cmpi.l #$FFFF8000,d3 blt.s loc_8607C cmpi.l #$7FFF,d3 ble.s loc_86080 move.w #$7FFF,d3 bra.s loc_86080 ; --------------------------------------------------------------------------- loc_8607C: ; CODE XREF: sub_8600A+62j move.w #$8000,d3 loc_86080: ; CODE XREF: sub_8600A+6Aj ; sub_8600A+70j clr.l d0 move.w (word_FFFFB2C0).w,d0 clr.l d4 move.w (word_FFFFB1C4).w,d4 sub.l d0,d4 cmpi.l #$FFFF8000,d4 blt.s loc_860A4 cmpi.l #$7FFF,d4 ble.s loc_860A8 move.w #$7FFF,d4 bra.s loc_860A8 ; --------------------------------------------------------------------------- loc_860A4: ; CODE XREF: sub_8600A+8Aj move.w #$8000,d4 loc_860A8: ; CODE XREF: sub_8600A+92j ; sub_8600A+98j move.l d4,d0 muls.w (PTO_CONTROL_KE_SCHEDULED_ACCEL_GAIN_OVER).l,d0 ; Overspeed scheduled acceleration rate gain. ; RPM_Per_Second moveq #$19,d4 muls.l d0,d4 bvs.s loc_860C4 move.w #$80,d0 ; '?' divs.w d0,d4 bvc.s loc_860D0 swap d4 eor.w d0,d4 loc_860C4: ; CODE XREF: sub_8600A+ACj bmi.s loc_860CC move.w #$7FFF,d4 bra.s loc_860D0 ; --------------------------------------------------------------------------- loc_860CC: ; CODE XREF: sub_8600A:loc_860C4j move.w #$8000,d4 loc_860D0: ; CODE XREF: sub_8600A+B4j ; sub_8600A+C0j add.w d4,d3 bvc.w loc_86166 bpl.w loc_86162 loc_860DA: ; CODE XREF: sub_8600A+154j move.w #$7FFF,d3 bra.w loc_86166 ; --------------------------------------------------------------------------- loc_860E2: ; CODE XREF: sub_8600A+4Aj clr.l d0 move.w (word_FFFFB2C2).w,d0 andi.l #$FFFF,d3 sub.l d0,d3 cmpi.l #$FFFF8000,d3 blt.s loc_86106 cmpi.l #$7FFF,d3 ble.s loc_8610A move.w #$7FFF,d3 bra.s loc_8610A ; --------------------------------------------------------------------------- loc_86106: ; CODE XREF: sub_8600A+ECj move.w #$8000,d3 loc_8610A: ; CODE XREF: sub_8600A+F4j ; sub_8600A+FAj clr.l d0 move.w (word_FFFFB2C0).w,d0 clr.l d4 move.w (word_FFFFB1C4).w,d4 sub.l d0,d4 cmpi.l #$FFFF8000,d4 blt.s loc_8612E cmpi.l #$7FFF,d4 ble.s loc_86132 move.w #$7FFF,d4 bra.s loc_86132 ; --------------------------------------------------------------------------- loc_8612E: ; CODE XREF: sub_8600A+114j move.w #$8000,d4 loc_86132: ; CODE XREF: sub_8600A+11Cj ; sub_8600A+122j move.l d4,d0 muls.w (PTO_CONTROL_KE_SCHEDULED_ACCEL_GAIN_UNDER).l,d0 ; Underspeed scheduled acceleration rate gain. ; RPM_Per_Second moveq #$19,d4 muls.l d0,d4 bvs.s loc_8614E move.w #$80,d0 ; '?' divs.w d0,d4 bvc.s loc_8615A swap d4 eor.w d0,d4 loc_8614E: ; CODE XREF: sub_8600A+136j bmi.s loc_86156 move.w #$7FFF,d4 bra.s loc_8615A ; --------------------------------------------------------------------------- loc_86156: ; CODE XREF: sub_8600A:loc_8614Ej move.w #$8000,d4 loc_8615A: ; CODE XREF: sub_8600A+13Ej ; sub_8600A+14Aj add.w d4,d3 bvc.s loc_86166 bmi.w loc_860DA loc_86162: ; CODE XREF: sub_8600A+CCj move.w #$8000,d3 loc_86166: ; CODE XREF: sub_8600A+C8j ; sub_8600A+D4j ... muls.w (PTO_CONTROL_KE_PTO_INTEGRATOR_GAIN).l,d3 ; Integrator gain when not in Resume or Accel modes. ; Multiplier_0_to_1 bpl.s loc_86174 addi.l #$FFF,d3 loc_86174: ; CODE XREF: sub_8600A+162j asr.l #8,d3 asr.l #4,d3 bra.s loc_861C6 ; --------------------------------------------------------------------------- loc_8617A: ; CODE XREF: sub_8600A+3Ej cmpi.b #7,(byte_FFFF9024).w beq.s loc_86192 cmpi.b #8,(byte_FFFF9024).w beq.s loc_86192 cmpi.b #9,(byte_FFFF9024).w bne.s loc_861C4 loc_86192: ; CODE XREF: sub_8600A+176j ; sub_8600A+17Ej clr.l d0 move.w (word_FFFFB2C2).w,d0 clr.l d3 move.w (word_FFFFB1C4).w,d3 sub.l d0,d3 clr.l d0 move.w (word_FFFFB2C4).w,d0 sub.l d0,d3 cmpi.l #$FFFF8000,d3 blt.s loc_861BE cmpi.l #$7FFF,d3 ble.s loc_861C6 move.w #$7FFF,d3 bra.s loc_861C6 ; --------------------------------------------------------------------------- loc_861BE: ; CODE XREF: sub_8600A+1A4j move.w #$8000,d3 bra.s loc_861C6 ; --------------------------------------------------------------------------- loc_861C4: ; CODE XREF: sub_8600A+186j clr.w d3 loc_861C6: ; CODE XREF: sub_8600A+16Ej ; sub_8600A+1ACj ... cmp.w (PTO_CONTROL_KE_PTO_ENG_SPEED_DELTA_HIGH).l,d3 ; Acceleration error maximum value and maximum integrator increment per 100ms. ; RPM per 100ms blt.s loc_861D6 move.w (PTO_CONTROL_KE_PTO_ENG_SPEED_DELTA_HIGH).l,d3 ; Acceleration error maximum value and maximum integrator increment per 100ms. ; RPM per 100ms bra.s loc_861E4 ; --------------------------------------------------------------------------- loc_861D6: ; CODE XREF: sub_8600A+1C2j cmp.w (PTO_CONTROL_KE_PTO_ENG_SPEED_DELTA_LOW).l,d3 ; Acceleration error minimum value and maximum integrator decrement per 100ms. ; RPM per 100ms bgt.s loc_861E4 move.w (PTO_CONTROL_KE_PTO_ENG_SPEED_DELTA_LOW).l,d3 ; Acceleration error minimum value and maximum integrator decrement per 100ms. ; RPM per 100ms loc_861E4: ; CODE XREF: sub_8600A+1CAj ; sub_8600A+1D2j tst.w d3 blt.s loc_861EE tst.w (word_FFFFB1C6).w beq.s loc_861FA loc_861EE: ; CODE XREF: sub_8600A+1DCj tst.w d3 bge.s loc_861FC btst #0,(byte_FFFFB1C2).w beq.s loc_861FC loc_861FA: ; CODE XREF: sub_8600A+1E2j clr.w d3 loc_861FC: ; CODE XREF: sub_8600A+1E6j ; sub_8600A+1EEj add.w (word_FFFFB1D4).w,d3 bvc.s loc_8620E bpl.s loc_8620A move.w #$7FFF,d3 bra.s loc_8620E ; --------------------------------------------------------------------------- loc_8620A: ; CODE XREF: sub_8600A+1F8j move.w #$8000,d3 loc_8620E: ; CODE XREF: sub_8600A+1F6j ; sub_8600A+1FEj move.w (PTO_CONTROL_KE_PTO_INTEGRATOR_HIGH).l,d4 ; Integrator maximum value while PTO is engaged. ; RPM cmp.w d4,d3 blt.s loc_8621E loc_86218: ; CODE XREF: sub_8600A+21Cj move.w d4,(word_FFFFB1D4).w bra.s loc_8622C ; --------------------------------------------------------------------------- loc_8621E: ; CODE XREF: sub_8600A+20Cj move.w (PTO_CONTROL_KE_PTO_INTEGRATOR_LOW).l,d4 ; Integrator minimum value while PTO is engaged. ; RPM cmp.w d4,d3 ble.s loc_86218 move.w d3,(word_FFFFB1D4).w loc_8622C: ; CODE XREF: sub_8600A+8j ; sub_8600A+36j ... move.l (sp)+,d0 rts ; End of function sub_8600A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_86230: ; CODE XREF: DoManyThings1+116p var_16 = -$16 var_14 = -$14 var_10 = -$10 var_C = -$C var_8 = -8 var_4 = -4 link a6,#-$16 movem.l d0-d2/d6-d7,-(sp) jsr sub_87832 tst.b d0 beq.w loc_86400 moveq #1,d6 move.b d6,(byte_FFFFB47A).w clr.b (byte_FFFFB482).w bset #1,(word_FFFFFA00).w bclr #0,(word_FFFFFA00).w clr.b d3 btst #6,(byte_FFFFBF31).w beq.s loc_86266 addq.b #1,d3 loc_86266: ; CODE XREF: sub_86230+32j move.b d3,(byte_FFFFB47D).w jsr sub_879A8 jsr sub_879B4 move.l (dword_FFFFFE14).w,var_14(a6) move.b var_14(a6),d1 lsr.b #4,d1 moveq #3,d7 and.b d7,d1 or.b d6,d1 lsl.b #4,d1 moveq #$30,d2 ; '0' and.b d2,d1 andi.b #$CF,var_14(a6) or.b d1,var_14(a6) move.l var_14(a6),(dword_FFFFFE14).w clr.l var_10(a6) move.l var_10(a6),var_C(a6) move.l var_C(a6),var_8(a6) move.l (dword_FFFFFE14).w,var_4(a6) andi.b #$CF,var_8(a6) ori.b #$20,var_8(a6) ; ' ' move.l var_4(a6),(dword_FFFFFE14).w movea.l var_8(a6),a2 move.l a2,var_10(a6) move.l a2,var_C(a6) loc_862D2: ; CODE XREF: sub_86230+A6j tst.l (dword_FFFFFE18).w bne.s loc_862D2 move.l var_C(a6),(dword_FFFFFE18).w move.w (word_FFFFFFE0).w,var_14(a6) bclr #1,var_14+1(a6) move.w var_14(a6),(word_FFFFFFE0).w move.l (dword_FFFFFE1C).w,var_14(a6) or.b d2,var_14(a6) move.l var_14(a6),(dword_FFFFFE1C).w move.l d6,d1 move.w #$E2,d0 ; '?' jsr (sub_1122).l move.l d6,d1 moveq #$35,d0 ; '5' jsr (sub_1122).l move.l d6,d1 moveq #$32,d0 ; '2' jsr (sub_1122).l move.w #$600,d2 move.l #$3F2,d1 moveq #$30,d0 ; '0' jsr (sub_16FA).l move.w #$C00,d2 move.l #$1F9,d1 moveq #$34,d0 ; '4' jsr (sub_16FA).l move.w #$600,d2 moveq #$6C,d1 ; 'l' moveq #$14,d0 jsr (sub_16FA).l move.w #$600,d2 move.l #$1F9,d1 moveq #$16,d0 jsr (sub_16FA).l move.w #$300,d2 move.l #$1F9,d1 moveq #$20,d0 ; ' ' jsr (sub_16FA).l move.w #$600,d2 move.l #$1F9,d1 moveq #$22,d0 ; '"' jsr (sub_16FA).l move.w #$900,d2 move.l #$1F9,d1 moveq #$24,d0 ; '$' jsr (sub_16FA).l move.w #$C00,d2 move.l #$1F9,d1 moveq #$26,d0 ; '&' jsr (sub_16FA).l tst.b (byte_FFFFB47D).w beq.s loc_863B8 move.w #$1400,d2 bra.s loc_863BC ; --------------------------------------------------------------------------- loc_863B8: ; CODE XREF: sub_86230+180j move.w #$E00,d2 loc_863BC: ; CODE XREF: sub_86230+186j move.l #$1F9,d1 moveq #$1A,d0 jsr (sub_16FA).l move.w #$8000,(word_FFFFFF7A).w move.w (word_FFFFFF54).w,var_16(a6) move.b d6,var_16(a6) move.w var_16(a6),(word_FFFFFF54).w move.w #$400,(word_FFFFFF6A).w move.w (word_FFFFFF44).w,var_16(a6) move.b d6,var_16(a6) move.w var_16(a6),(word_FFFFFF44).w move.w d7,(word_FFFFE05C).w move.w d7,(word_FFFFE05E).w bra.s loc_86404 ; --------------------------------------------------------------------------- loc_86400: ; CODE XREF: sub_86230+10j clr.b (byte_FFFFB47A).w loc_86404: ; CODE XREF: sub_86230+1CEj movem.l (sp)+,d0-d2/d6-d7 unlk a6 rts ; End of function sub_86230 ; =============== S U B R O U T I N E ======================================= sub_8640C: ; CODE XREF: DoLoopF+2FCp move.b (byte_FFFF9024).w,d3 cmpi.b #7,d3 bne.w loc_864B0 tst.w (word_FFFFB1CC).w blt.s loc_86424 move.w (word_FFFFB1CA).w,(word_FFFFB1D2).w loc_86424: ; CODE XREF: sub_8640C+10j tst.w (word_FFFFB1D2).w blt.s loc_86438 loc_8642A: ; CODE XREF: sub_8640C+34j move.b #3,(byte_FFFF9024).w clr.w (word_FFFFB1D2).w bra.w loc_8659E ; --------------------------------------------------------------------------- loc_86438: ; CODE XREF: sub_8640C+1Cj move.w (word_FFFFB1C4).w,d3 cmp.w (word_FFFFB2C0).w,d3 bcc.s loc_8642A move.w (word_FFFFB1CA).w,d3 clr.w d4 cmpi.w #$F600,d3 bge.s loc_86452 move.l d4,d3 bra.s loc_86468 ; --------------------------------------------------------------------------- loc_86452: ; CODE XREF: sub_8640C+40j tst.w d3 bge.s loc_86464 ext.l d3 addi.l #$A00,d3 ext.l d3 add.l d3,d3 bra.s loc_86468 ; --------------------------------------------------------------------------- loc_86464: ; CODE XREF: sub_8640C+48j move.w #$1400,d3 loc_86468: ; CODE XREF: sub_8640C+44j ; sub_8640C+56j movea.l #PTO_MANAGE_KV_RESUME_RATE,a2 ; The resume rate increment per 100 ms. ; RPM tbls.w (a2),d3 loc_86472: ; CODE XREF: sub_8640C+F6j move.w d3,(word_FFFFB2C4).w btst #0,(byte_FFFFB1C2).w bne.w loc_8659E clr.l d5 move.w (word_FFFFB2C4).w,d5 move.w (word_FFFFB1D2).w,d3 ext.l d3 add.l d5,d3 cmpi.l #$FFFF8000,d3 blt.s loc_864A8 cmpi.l #$7FFF,d3 ble.w loc_8659A loc_864A0: ; CODE XREF: sub_8640C+10Ej move.w #$7FFF,d3 bra.w loc_8659A ; --------------------------------------------------------------------------- loc_864A8: ; CODE XREF: sub_8640C+88j ; sub_8640C+110j move.w #$8000,d3 bra.w loc_8659A ; --------------------------------------------------------------------------- loc_864B0: ; CODE XREF: sub_8640C+8j cmpi.b #8,d3 beq.s loc_864BC cmpi.b #9,d3 bne.s loc_86506 loc_864BC: ; CODE XREF: sub_8640C+A8j tst.w (word_FFFFB1CC).w blt.s loc_864C8 move.w (word_FFFFB1CA).w,(word_FFFFB1D2).w loc_864C8: ; CODE XREF: sub_8640C+B4j move.w (word_FFFFB1C4).w,d3 cmp.w (word_FFFF902C).w,d3 bcc.w loc_8659E move.l #$1400,d4 cmp.w d3,d4 bls.s loc_864E2 clr.w d3 bra.s loc_864F8 ; --------------------------------------------------------------------------- loc_864E2: ; CODE XREF: sub_8640C+D0j cmpi.w #$5000,d3 bcc.s loc_864F4 andi.l #$FFFF,d3 sub.l d4,d3 lsr.w #2,d3 bra.s loc_864F8 ; --------------------------------------------------------------------------- loc_864F4: ; CODE XREF: sub_8640C+DAj move.w #$F00,d3 loc_864F8: ; CODE XREF: sub_8640C+D4j ; sub_8640C+E6j movea.l #PTO_MANAGE_KV_ACCEL_RATE,a2 ; The accel rate increment per 100 ms. ; RPM tblu.w (a2),d3 bra.w loc_86472 ; --------------------------------------------------------------------------- loc_86506: ; CODE XREF: sub_8640C+AEj cmpi.b #4,d3 bne.s loc_8651E move.w (word_FFFFB1D2).w,d3 add.w (PTO_MANAGE_KE_COAST_RATE).l,d3 ; The coast rate increment per 100 ms. ; RPM bvc.w loc_8659A bmi.s loc_864A0 bra.s loc_864A8 ; --------------------------------------------------------------------------- loc_8651E: ; CODE XREF: sub_8640C+FEj cmpi.b #3,d3 beq.s loc_86530 cmpi.b #6,d3 beq.s loc_86530 cmpi.b #5,d3 bne.s loc_8659E loc_86530: ; CODE XREF: sub_8640C+116j ; sub_8640C+11Cj move.w (word_FFFFB1D2).w,d3 ble.s loc_86562 clr.l d5 move.w (PTO_MANAGE_KE_TAP_RATE).l,d5 ; The tap up/down rate increment per 100 ms. ; RPM ext.l d3 sub.l d5,d3 cmpi.l #$FFFF8000,d3 blt.s loc_86558 cmpi.l #$7FFF,d3 ble.s loc_8655C move.w #$7FFF,d3 bra.s loc_8655C ; --------------------------------------------------------------------------- loc_86558: ; CODE XREF: sub_8640C+13Cj move.w #$8000,d3 loc_8655C: ; CODE XREF: sub_8640C+144j ; sub_8640C+14Aj tst.w d3 bgt.s loc_8659A bra.s loc_86598 ; --------------------------------------------------------------------------- loc_86562: ; CODE XREF: sub_8640C+128j tst.w d3 bge.s loc_8659A btst #0,(byte_FFFFB1C2).w bne.s loc_8659A clr.l d5 move.w (PTO_MANAGE_KE_TAP_RATE).l,d5 ; The tap up/down rate increment per 100 ms. ; RPM ext.l d3 add.l d5,d3 cmpi.l #$FFFF8000,d3 blt.s loc_86590 cmpi.l #$7FFF,d3 ble.s loc_86594 move.w #$7FFF,d3 bra.s loc_86594 ; --------------------------------------------------------------------------- loc_86590: ; CODE XREF: sub_8640C+174j move.w #$8000,d3 loc_86594: ; CODE XREF: sub_8640C+17Cj ; sub_8640C+182j tst.w d3 blt.s loc_8659A loc_86598: ; CODE XREF: sub_8640C+154j clr.w d3 loc_8659A: ; CODE XREF: sub_8640C+90j ; sub_8640C+98j ... move.w d3,(word_FFFFB1D2).w loc_8659E: ; CODE XREF: sub_8640C+28j ; sub_8640C+70j ... move.w (word_FFFFB1C4).w,(word_FFFFB2C2).w rts ; End of function sub_8640C ; =============== S U B R O U T I N E ======================================= sub_865A6: ; CODE XREF: DoLoopE+84p cmpi.b #1,(byte_FFFF9028).w bne.s loc_865E8 btst #0,(byte_FFFF9027).w bne.s loc_865D4 btst #4,(byte_FFFF9027).w bne.w loc_86670 btst #3,(byte_FFFF9027).w beq.w loc_86670 bset #0,(byte_FFFF9027).w bra.w loc_86670 ; --------------------------------------------------------------------------- loc_865D4: ; CODE XREF: sub_865A6+Ej btst #4,(byte_FFFF9027).w bne.w loc_86670 btst #3,(byte_FFFF9027).w bra.w loc_86668 ; --------------------------------------------------------------------------- loc_865E8: ; CODE XREF: sub_865A6+6j btst #1,(byte_FFFF9027).w beq.s loc_86600 btst #2,(byte_FFFF9027).w bne.s loc_86600 bset #6,(byte_FFFF9027).w bra.s loc_8660E ; --------------------------------------------------------------------------- loc_86600: ; CODE XREF: sub_865A6+48j ; sub_865A6+50j btst #1,(byte_FFFF9027).w bne.s loc_8660E bclr #6,(byte_FFFF9027).w loc_8660E: ; CODE XREF: sub_865A6+58j ; sub_865A6+60j btst #2,(word_FFFFA594).w beq.s loc_8666A move.b (byte_FFFF9028).w,d3 cmpi.b #2,d3 beq.s loc_86626 cmpi.b #3,d3 bne.s loc_8666A loc_86626: ; CODE XREF: sub_865A6+78j btst #0,(byte_FFFF9027).w bne.s loc_8665A tst.b (byte_FFFF9034).w beq.s loc_86670 btst #1,(byte_FFFF9027).w beq.s loc_86670 btst #2,(byte_FFFFB1C2).w bne.s loc_8664C btst #6,(byte_FFFF9027).w beq.s loc_86670 loc_8664C: ; CODE XREF: sub_865A6+9Cj bset #0,(byte_FFFF9027).w bclr #6,(byte_FFFF9027).w bra.s loc_86670 ; --------------------------------------------------------------------------- loc_8665A: ; CODE XREF: sub_865A6+86j btst #1,(byte_FFFF9027).w beq.s loc_8666A btst #5,(byte_FFFF9027).w loc_86668: ; CODE XREF: sub_865A6+3Ej beq.s loc_86670 loc_8666A: ; CODE XREF: sub_865A6+6Ej ; sub_865A6+7Ej ... bclr #0,(byte_FFFF9027).w loc_86670: ; CODE XREF: sub_865A6+16j ; sub_865A6+20j ... btst #0,(byte_FFFF9027).w beq.s loc_8669A move.w (word_FFFFAEBC).w,d3 cmp.w (PTO_KE_LOW_VEH_SPEED_DISENGAGE).l,d3 ; Minimum allowed vehicle speed before Mobile PTO disengages. Also differentiates between Stationary and Mobile Variable PTO. ; MPH bhi.s loc_86694 btst #1,(byte_FFFF8998).w bne.s loc_86694 btst #1,(byte_FFFF899A).w beq.s loc_8669A loc_86694: ; CODE XREF: sub_865A6+DCj ; sub_865A6+E4j bclr #0,(byte_FFFF9027).w loc_8669A: ; CODE XREF: sub_865A6+D0j ; sub_865A6+ECj btst #0,(byte_FFFF9027).w beq.s loc_866BC move.w (EngineRPM_PID_000C___).w,d3 cmp.w (PTO_KE_HIGH_SPEED_INHIBIT).l,d3 ; Filtered engine speed above which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM bhi.s loc_866B6 btst #5,(byte_FFFFAA92).w bne.s loc_866BC loc_866B6: ; CODE XREF: sub_865A6+106j bclr #0,(byte_FFFF9027).w loc_866BC: ; CODE XREF: sub_865A6+FAj ; sub_865A6+10Ej btst #0,(byte_FFFF9027).w beq.s loc_866FE tst.b (byte_FFFFAF3B).w bne.s loc_866F8 btst #1,(byte_FFFF89B6).w bne.s loc_866F8 btst #1,(byte_FFFF8A4C).w bne.s loc_866F8 btst #1,(byte_FFFF89E4).w bne.s loc_866F8 btst #1,(byte_FFFF89E6).w bne.s loc_866F8 tst.b (byte_FFFFA3AC).w bne.s loc_866F8 btst #1,(byte_FFFF8A08).w beq.s loc_866FE loc_866F8: ; CODE XREF: sub_865A6+122j ; sub_865A6+12Aj ... bclr #0,(byte_FFFF9027).w loc_866FE: ; CODE XREF: sub_865A6+11Cj ; sub_865A6+150j btst #0,(byte_FFFF9027).w beq.s loc_86714 cmpi.b #8,(byte_FFFFA3B8).w beq.s loc_86714 bclr #0,(byte_FFFF9027).w loc_86714: ; CODE XREF: sub_865A6+15Ej ; sub_865A6+166j jsr sub_87698 rts ; End of function sub_865A6 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_8671C: ; CODE XREF: DoLoopD+17Ep var_2 = -2 link a6,#-6 movem.l d0-d2/d6/a0,-(sp) btst #3,(byte_FFFF9026).w beq.s loc_8676A btst #5,(byte_FFFF9027).w bne.s loc_8676A btst #0,(byte_FFFF9027).w bne.s loc_86744 btst #2,(byte_FFFFB1C2).w beq.s loc_8676A loc_86744: ; CODE XREF: sub_8671C+1Ej movea.l (off_1328).l,a0 move.l a0,d6 bne.s loc_86754 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_86754: ; CODE XREF: sub_8671C+30j btst #3,2(a0) beq.s loc_86764 bset #5,(byte_FFFF9027).w bra.s loc_8676A ; --------------------------------------------------------------------------- loc_86764: ; CODE XREF: sub_8671C+3Ej bclr #5,(byte_FFFF9027).w loc_8676A: ; CODE XREF: sub_8671C+Ej ; sub_8671C+16j ... btst #2,(byte_FFFF9026).w beq.s loc_867CE tst.b (byte_FFFF9039).w bne.s loc_867AA btst #2,(word_FFFFA594).w beq.s loc_867CE btst #1,(byte_FFFF9027).w beq.s loc_867CE cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_867CE btst #5,(byte_FFFF9027).w bne.s loc_867CE move.w (EngineRPM_PID_000C___).w,d2 cmp.w (word_FFFF903C).w,d2 bhi.s loc_867CE move.b #1,(byte_FFFF9039).w bra.s loc_867CE ; --------------------------------------------------------------------------- loc_867AA: ; CODE XREF: sub_8671C+5Aj btst #2,(word_FFFFA594).w beq.s loc_867CA btst #1,(byte_FFFF9027).w beq.s loc_867CA cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_867CA btst #5,(byte_FFFF9027).w beq.s loc_867CE loc_867CA: ; CODE XREF: sub_8671C+94j ; sub_8671C+9Cj ... clr.b (byte_FFFF9039).w loc_867CE: ; CODE XREF: sub_8671C+54j ; sub_8671C+62j ... move.b (byte_FFFF9039).w,d2 beq.s loc_867D8 moveq #1,d1 bra.s loc_867DA ; --------------------------------------------------------------------------- loc_867D8: ; CODE XREF: sub_8671C+B6j clr.b d1 loc_867DA: ; CODE XREF: sub_8671C+BAj move.w #$14A,d0 jsr (sub_1122).l cmpi.b #3,(ThrottleControlMode2?).w bne.s loc_8680E move.w (word_FFFFF2C4).w,d3 lsr.w #2,d3 asl.w #8,d3 lsr.w #8,d3 cmpi.b #$43,d3 ; 'C' bcs.s loc_86804 move.b #1,(byte_FFFF903E).w bra.s loc_8680E ; --------------------------------------------------------------------------- loc_86804: ; CODE XREF: sub_8671C+DEj cmpi.b #$11,d3 bhi.s loc_8680E clr.b (byte_FFFF903E).w loc_8680E: ; CODE XREF: sub_8671C+CEj ; sub_8671C+E6j ... btst #2,(byte_FFFF9026).w beq.s loc_86880 tst.b (byte_FFFF9034).w bne.s loc_86872 tst.b d2 beq.s loc_86872 btst #1,(byte_FFFF9026).w beq.s loc_86830 move.b (byte_FFFF903E).w,(byte_FFFF9034).w bra.s loc_86886 ; --------------------------------------------------------------------------- loc_86830: ; CODE XREF: sub_8671C+10Aj tst.b (byte_FFFF9038).w beq.s loc_86864 movea.l #unk_FF903A,a0 jsr sub_276F4 move.w (word_FFFF903A).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (PTO_KE_PTO_RAISE_ENGINE_SPD_DLY_TIME).l,d3 ; Time after engaging PTO Relay before raising the engine speed. ; Seconds bcs.s loc_86886 move.b #1,(byte_FFFF9034).w clr.b (byte_FFFF9038).w bra.s loc_86886 ; --------------------------------------------------------------------------- loc_86864: ; CODE XREF: sub_8671C+118j move.w (GlobalClock).w,(word_FFFF903A).w move.b #1,(byte_FFFF9038).w bra.s loc_86886 ; --------------------------------------------------------------------------- loc_86872: ; CODE XREF: sub_8671C+FEj ; sub_8671C+102j clr.b (byte_FFFF9038).w tst.b d2 bne.s loc_86886 clr.b (byte_FFFF9034).w bra.s loc_86886 ; --------------------------------------------------------------------------- loc_86880: ; CODE XREF: sub_8671C+F8j move.b #1,(byte_FFFF9034).w loc_86886: ; CODE XREF: sub_8671C+112j ; sub_8671C+13Aj ... movem.l (sp)+,d0-d2/d6/a0 unlk a6 rts ; End of function sub_8671C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_8688E: ; CODE XREF: sub_853A2+22Ap var_6 = -6 var_4 = -4 var_2 = -2 link a6,#-6 move.l d0,-(sp) move.b (byte_FFFF9024).w,d3 move.b d3,var_6(a6) move.w (word_FFFFB1D2).w,d0 move.w d0,var_4(a6) move.w (word_FFFFB2C0).w,d4 move.w d4,var_2(a6) btst #1,(byte_FFFFB1C2).w beq.w loc_8698C cmpi.b #8,d3 bhi.s loc_86926 beq.s loc_868EE cmpi.b #6,d3 bne.w loc_86978 move.b #3,var_6(a6) clr.l d3 move.w (PTO_MANAGE_KE_TAP_UP_SPEED_HIGH).l,d3 move.w (word_FFFFB1CA).w,d4 ext.l d4 cmp.l d3,d4 blt.w loc_86978 move.w (word_FFFFB1C4).w,var_2(a6) clr.w var_4(a6) bra.w loc_86978 ; --------------------------------------------------------------------------- loc_868EE: ; CODE XREF: sub_8688E+2Ej move.b #3,var_6(a6) move.w (word_FFFFB1CC).w,d3 neg.w d3 move.w d3,var_4(a6) cmp.w (word_FFFFB1CA).w,d0 ble.s loc_8691E move.w (PTO_MANAGE_KE_ACCEL_TERMINATION_OVERSHOOT).l,d0 clr.l d5 move.w d0,d5 move.l d3,d4 ext.l d4 cmp.l d5,d4 bgt.s loc_8695A loc_86916: ; CODE XREF: sub_8688E+CAj tst.w d3 bge.s loc_8691E clr.w var_4(a6) loc_8691E: ; CODE XREF: sub_8688E+74j ; sub_8688E+8Aj ... move.w (word_FFFFB1C4).w,var_2(a6) bra.s loc_86978 ; --------------------------------------------------------------------------- loc_86926: ; CODE XREF: sub_8688E+2Cj move.w (word_FFFFB2C8).w,d3 cmp.w (PTO_MANAGE_KE_RESUME_VS_ACCEL_TIME).l,d3 bcs.s loc_86960 move.b #3,var_6(a6) move.w (word_FFFFB1CC).w,d3 neg.w d3 move.w d3,var_4(a6) cmp.w (word_FFFFB1CA).w,d0 ble.s loc_8691E move.w (PTO_MANAGE_KE_ACCEL_TERMINATION_OVERSHOOT).l,d0 clr.l d5 move.w d0,d5 move.l d3,d4 ext.l d4 cmp.l d5,d4 ble.s loc_86916 loc_8695A: ; CODE XREF: sub_8688E+86j move.w d0,var_4(a6) bra.s loc_8691E ; --------------------------------------------------------------------------- loc_86960: ; CODE XREF: sub_8688E+A2j cmp.w (word_FFFFB1C4).w,d4 bls.s loc_8696E move.b #7,var_6(a6) bra.s loc_86978 ; --------------------------------------------------------------------------- loc_8696E: ; CODE XREF: sub_8688E+D6j clr.w var_4(a6) move.b #3,var_6(a6) loc_86978: ; CODE XREF: sub_8688E+34j ; sub_8688E+4Ej ... move.b var_6(a6),(byte_FFFF9024).w move.w var_4(a6),(word_FFFFB1D2).w move.w var_2(a6),(word_FFFFB2C0).w bra.s loc_869BA ; --------------------------------------------------------------------------- loc_8698C: ; CODE XREF: sub_8688E+24j cmpi.b #6,d3 bne.s loc_8699A move.b #3,(byte_FFFF9024).w bra.s loc_869BA ; --------------------------------------------------------------------------- loc_8699A: ; CODE XREF: sub_8688E+102j move.w (word_FFFFB1C4).w,d3 cmp.w (PTO_KE_LOW_SPEED_INHIBIT).l,d3 ; Filtered engine speed below which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM bcc.s loc_869AE move.b #$A,(byte_FFFF9025).w bra.s loc_869B4 ; --------------------------------------------------------------------------- loc_869AE: ; CODE XREF: sub_8688E+116j move.b #7,(byte_FFFF9025).w loc_869B4: ; CODE XREF: sub_8688E+11Ej jsr sub_875BA loc_869BA: ; CODE XREF: sub_8688E+FCj ; sub_8688E+10Aj move.l (sp)+,d0 unlk a6 rts ; End of function sub_8688E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_869C0: ; CODE XREF: DoLoopE:loc_2A8E4p var_5E82 = -$5E82 var_4 = -4 link a6,#-4 movem.l d0-d1/a0,-(sp) bclr #4,(byte_FFFF9027).w btst #3,(byte_FFFF9027).w beq.s loc_869DC bset #4,(byte_FFFF9027).w loc_869DC: ; CODE XREF: sub_869C0+14j tst.b (PTO_KE_PTO_HIGH_IDLE_ENABLED).l ; Determines whether PTO High Idle mode will be allowed basedon the high idle switch input. ; BOOLEAN beq.s loc_86A0C movea.w #2,a2 movea.l (off_1328).l,a0 move.l a0,var_4(a6) move.l a0,d1 bne.s loc_869FC jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_869FC: ; CODE XREF: sub_869C0+34j btst #2,2(a0) bne.s loc_86A0C bset #3,(byte_FFFF9027).w bra.s loc_86A12 ; --------------------------------------------------------------------------- loc_86A0C: ; CODE XREF: sub_869C0+22j ; sub_869C0+42j bclr #3,(byte_FFFF9027).w loc_86A12: ; CODE XREF: sub_869C0+4Aj bclr #2,(byte_FFFF9027).w btst #1,(byte_FFFF9027).w beq.s loc_86A26 bset #2,(byte_FFFF9027).w loc_86A26: ; CODE XREF: sub_869C0+5Ej move.b (byte_FFFFB379).w,d3 or.b (VEH_SYS_KE_AFTER_MARKET_PTO_POSSIBLE).l,d3 ; Denotes that the vehicle platform has the possibility of an aftermarket power take off device being connected. ; BOOLEAN beq.s loc_86A5A movea.w #3,a2 movea.l (off_132C).l,a0 move.l a0,var_4(a6) move.l a0,d1 bne.s loc_86A4A jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_86A4A: ; CODE XREF: sub_869C0+82j btst #3,2(a0) beq.s loc_86A5A bset #1,(byte_FFFF9027).w bra.s loc_86A60 ; --------------------------------------------------------------------------- loc_86A5A: ; CODE XREF: sub_869C0+70j ; sub_869C0+90j bclr #1,(byte_FFFF9027).w loc_86A60: ; CODE XREF: sub_869C0+98j btst #1,(byte_FFFF9027).w sne d3 neg.b d3 cmp.b (byte_FFFF9035).w,d3 beq.s loc_86ABC move.b d3,(byte_FFFF9035).w tst.b d3 beq.s loc_86AA4 clr.b d3 loc_86A7A: ; CODE XREF: sub_869C0+E0j clr.l d0 move.b d3,d0 movea.l d0,a0 move.b OBD2_CONTROL_KV_DIAGNOSTIC_DISABLE_FOR_PTO(d0.w),d4 ; Boolean flags for disabling the OBD II diagnostics when PTO is enabled ; BOOLEAN eori.b #1,d4 and.b OBD2_CONTROL_KV_DIAGNOSTIC_ENABLE(a0.w),d4 ; Boolean flags for enabling the OBD II diagnostics ; BOOLEAN move.b d4,$10+var_5E82(d0.w) addq.b #1,d3 cmpi.b #$53,d3 ; 'S' bls.s loc_86A7A bra.s loc_86AB6 ; --------------------------------------------------------------------------- loc_86AA4: ; CODE XREF: sub_869C0+B6j lea (OBD2_CONTROL_KV_DIAGNOSTIC_ENABLE).l,a3 ; Boolean flags for enabling the OBD II diagnostics ; BOOLEAN lea (byte_FFFFA18E).w,a2 moveq #$29,d3 ; ')' loc_86AB0: ; CODE XREF: sub_869C0+F2j move.w (a3)+,(a2)+ dbf d3,loc_86AB0 loc_86AB6: ; CODE XREF: sub_869C0+E2j jsr sub_755FA loc_86ABC: ; CODE XREF: sub_869C0+AEj movem.l (sp)+,d0-d1/a0 unlk a6 rts ; End of function sub_869C0 ; =============== S U B R O U T I N E ======================================= sub_86AC4: ; CODE XREF: DoLoopD+178p move.l d0,-(sp) btst #3,(byte_FFFFB1C2).w bne.w loc_86B50 btst #5,(byte_FFFFAA92).w beq.s loc_86B26 btst #1,(byte_FFFF8998).w bne.s loc_86B26 btst #1,(byte_FFFF899A).w bne.s loc_86B26 btst #1,(byte_FFFF89B6).w bne.s loc_86B26 btst #1,(byte_FFFF8A4C).w bne.s loc_86B26 btst #1,(byte_FFFF89E4).w bne.s loc_86B26 btst #1,(byte_FFFF89E6).w bne.s loc_86B26 btst #1,(byte_FFFF89B2).w bne.s loc_86B26 btst #1,(byte_FFFF89B4).w bne.s loc_86B26 btst #1,(byte_FFFF8A08).w bne.s loc_86B26 tst.b (byte_FFFFABDA).w beq.s loc_86B3A loc_86B26: ; CODE XREF: sub_86AC4+12j ; sub_86AC4+1Aj ... move.b #1,(byte_FFFF9024).w move.b #$F,(byte_FFFF9025).w loc_86B32: ; CODE XREF: sub_86AC4+8Aj jsr sub_875BA bra.s loc_86B50 ; --------------------------------------------------------------------------- loc_86B3A: ; CODE XREF: sub_86AC4+60j btst #2,(byte_FFFF9062).w beq.s loc_86B50 moveq #1,d0 move.b d0,(byte_FFFF9024).w move.b #6,(byte_FFFF9025).w bra.s loc_86B32 ; --------------------------------------------------------------------------- loc_86B50: ; CODE XREF: sub_86AC4+8j ; sub_86AC4+74j ... btst #3,(byte_FFFFB1C2).w bne.s loc_86B70 moveq #4,d0 cmp.b (byte_FFFF9024).w,d0 bne.s loc_86B70 tst.w (word_FFFFB1C6).w bne.s loc_86B70 move.b d0,(byte_FFFF9025).w jsr sub_875BA loc_86B70: ; CODE XREF: sub_86AC4+92j ; sub_86AC4+9Aj ... btst #3,(byte_FFFFB1C2).w bne.s loc_86BC0 move.b (byte_FFFF9028).w,d3 cmpi.b #2,d3 beq.s loc_86B88 cmpi.b #3,d3 bne.s loc_86B94 loc_86B88: ; CODE XREF: sub_86AC4+BCj move.w (word_FFFFAEBC).w,d4 cmp.w (PTO_KE_LOW_VEH_SPEED_DISENGAGE).l,d4 ; Minimum allowed vehicle speed before Mobile PTO disengages. Also differentiates between Stationary and Mobile Variable PTO. ; MPH bhi.s loc_86BAE loc_86B94: ; CODE XREF: sub_86AC4+C2j cmpi.b #4,d3 bne.s loc_86BC0 move.w (word_FFFFAEBC).w,d3 cmp.w (PTO_KE_LOW_VEH_SPEED_DISENGAGE).l,d3 ; Minimum allowed vehicle speed before Mobile PTO disengages. Also differentiates between Stationary and Mobile Variable PTO. ; MPH bcs.s loc_86BAE cmp.w (PTO_KE_HIGH_VEH_SPEED_DISENGAGE).l,d3 ; Maximum allowed HARDCODED vehicle speed for Mobile PTO. ; MPH bls.s loc_86BC0 loc_86BAE: ; CODE XREF: sub_86AC4+CEj ; sub_86AC4+E0j move.b #1,(byte_FFFF9024).w move.b #$13,(byte_FFFF9025).w jsr sub_875BA loc_86BC0: ; CODE XREF: sub_86AC4+B2j ; sub_86AC4+D4j ... move.l (sp)+,d0 rts ; End of function sub_86AC4 ; =============== S U B R O U T I N E ======================================= sub_86BC4: ; CODE XREF: OS1:000292C0p move.l d1,-(sp) move.b d0,d1 jsr sub_870D8 move.l d1,d0 jsr sub_8756A andi.w #$FF,d1 movea.l off_8A01C(d1.w*4),a2 jmp (a2) ; End of function sub_86BC4 ; --------------------------------------------------------------------------- loc_86BE4: ; DATA XREF: OS4:0008A024o move.b #255,d0 cmp.b (dword_FFFF8034).w,d0 bne.s loc_86BF6 move.b (PTO_KV_DESIRED_OPTION_EEPROM_DEFAULT).l,(dword_FFFF8034).w ; Default PTO & Engine Shutdown option modes to be used before EEPROM is dealer programmed. ; BOOLEAN loc_86BF6: ; CODE XREF: OS4:00086BECj cmp.b (dword_FFFF8034+1).w,d0 bne.s loc_86C04 move.b (PTO_KE_PTO_MAX_ENGINE_SPEED_EEPROM).l,(dword_FFFF8034+1).w ; Maximum allowed Engine Speed for PTO control. ; RPM loc_86C04: ; CODE XREF: OS4:00086BFAj cmp.b (dword_FFFF8034+2).w,d0 bne.s loc_86C12 move.b (PTO_KE_PTO_IDLE_ENGINE_SPEED_EEPROM).l,(dword_FFFF8034+2).w ; PTO idle engine speed when PTO control is entered. ALSO the High Idle engine speed. ; RPM loc_86C12: ; CODE XREF: OS4:00086C08j cmp.b (dword_FFFF8034+3).w,d0 bne.s loc_86C20 move.b (PTO_KE_SET_ENGINE_SPEED_EEPROM).l,(dword_FFFF8034+3).w ; Preset PTO engine speed when SET is pressed. ; RPM loc_86C20: ; CODE XREF: OS4:00086C16j cmp.b (dword_FFFF8038).w,d0 bne.s loc_86C2E move.b (PTO_KE_RESUME_ENGINE_SPEED_EEPROM).l,(dword_FFFF8038).w ; Preset PTO engine speed when RESUME is pressed. ; RPM loc_86C2E: ; CODE XREF: OS4:00086C24j cmp.b (dword_FFFF8038+1).w,d0 bne.s loc_86C3C move.b (PTO_KE_PTO_MAX_VEHICLE_SPEED_EEPROM).l,(dword_FFFF8038+1).w ; Maximum allowed vehicle speed for Mobile Variable PTO control. ; MPH loc_86C3C: ; CODE XREF: OS4:00086C32j cmp.b (dword_FFFF8038+2).w,d0 bne.s loc_86C4A move.b (PTO_KE_PTO_RLY_ENGAGE_MAX_SPEED_EEPR).l,(dword_FFFF8038+2).w ; Max allowed engine speed for engaging PTO relay. ; RPM loc_86C4A: ; CODE XREF: OS4:00086C40j jsr sub_8751A tst.b (PTO_KE_PTO_HIGH_IDLE_ENABLED).l ; Determines whether PTO High Idle mode will be allowed basedon the high idle switch input. ; BOOLEAN beq.s loc_86CBA move.w (GlobalClock).w,(word_FFFF9036).w jsr sub_87698 bra.s loc_86CBA ; --------------------------------------------------------------------------- loc_86C66: ; DATA XREF: OS4:0008A028o bclr #5,(byte_FFFF9027).w bclr #0,(byte_FFFF9027).w clr.b (byte_FFFF9039).w bra.s loc_86CAC ; --------------------------------------------------------------------------- loc_86C78: ; DATA XREF: OS4:off_8A01Co ; OS4:0008A020o ... bclr #0,(byte_FFFF9027).w clr.b (byte_FFFF9039).w clr.b d1 move.w #$14A,d0 jsr (sub_1122).l bra.s loc_86CBA ; --------------------------------------------------------------------------- loc_86C90: ; DATA XREF: OS4:0008A034o ; OS4:0008A040o bclr #0,(byte_FFFF9027).w bclr #5,(byte_FFFF9027).w clr.b (byte_FFFF9039).w clr.b d1 move.w #$14A,d0 jsr (sub_1122).l loc_86CAC: ; CODE XREF: OS4:00086C76j btst #1,(byte_FFFF9027).w sne d3 neg.b d3 move.b d3,(byte_FFFF9035).w loc_86CBA: ; CODE XREF: OS4:00086C56j ; OS4:00086C64j ... move.l (sp)+,d1 rts ; =============== S U B R O U T I N E ======================================= sub_86CBE: ; CODE XREF: DoLoopD+CCp move.l a0,-(sp) tst.w (word_FFFFA2A2).w beq.s loc_86CD6 move.b #5,(byte_FFFFB312).w move.w (word_FFFFA2A2).w,(word_FFFFB30C).w bra.w loc_86D98 ; --------------------------------------------------------------------------- loc_86CD6: ; CODE XREF: sub_86CBE+6j tst.b (byte_FFFFAC5A).w beq.s loc_86CEE move.b #4,(byte_FFFFB312).w move.w (X_SEM_KE_SEM_NO_REDUCTION).l,(word_FFFFB30C).w ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent bra.w loc_86D98 ; --------------------------------------------------------------------------- loc_86CEE: ; CODE XREF: sub_86CBE+1Cj tst.b (TCM_OPTIONS_K_USE_STALL_ABUSE_TORQUE_RED).l ; If TRUE, a stall torque reduction and/or abuse torquereduction condition is present. ; BOOLEAN beq.s loc_86D08 jsr sub_58D18 jsr sub_582B0 jsr sub_5855C loc_86D08: ; CODE XREF: sub_86CBE+36j movea.l #unk_FFB306,a0 jsr sub_58914 movea.l #unk_FFB304,a0 jsr sub_585F4 jsr sub_58B52 move.w (X_SEM_KE_SEM_NO_REDUCTION).l,d3 ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent cmp.w (word_FFFFB30E).w,d3 beq.s loc_86D40 move.b #1,(byte_FFFFB312).w move.w (word_FFFFB30E).w,(word_FFFFB30C).w bra.s loc_86D98 ; --------------------------------------------------------------------------- loc_86D40: ; CODE XREF: sub_86CBE+72j cmp.w (word_FFFFB310).w,d3 beq.s loc_86D54 move.b #2,(byte_FFFFB312).w move.w (word_FFFFB310).w,(word_FFFFB30C).w bra.s loc_86D98 ; --------------------------------------------------------------------------- loc_86D54: ; CODE XREF: sub_86CBE+86j cmp.w (word_FFFFA504).w,d3 beq.s loc_86D68 move.b #6,(byte_FFFFB312).w move.w (word_FFFFA504).w,(word_FFFFB30C).w bra.s loc_86D98 ; --------------------------------------------------------------------------- loc_86D68: ; CODE XREF: sub_86CBE+9Aj cmp.w (word_FFFFB306).w,d3 beq.s loc_86D7C move.b #3,(byte_FFFFB312).w move.w (word_FFFFB306).w,(word_FFFFB30C).w bra.s loc_86D98 ; --------------------------------------------------------------------------- loc_86D7C: ; CODE XREF: sub_86CBE+AEj cmp.w (word_FFFFB304).w,d3 beq.s loc_86D90 move.b #3,(byte_FFFFB312).w move.w (word_FFFFB304).w,(word_FFFFB30C).w bra.s loc_86D98 ; --------------------------------------------------------------------------- loc_86D90: ; CODE XREF: sub_86CBE+C2j clr.b (byte_FFFFB312).w move.w d3,(word_FFFFB30C).w loc_86D98: ; CODE XREF: sub_86CBE+14j ; sub_86CBE+2Cj ... movea.l (sp)+,a0 rts ; End of function sub_86CBE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_86D9C: ; CODE XREF: DoLoopF:loc_2ACBAp ; DoLoopF:loc_2B00Ap var_2 = -2 link a6,#-2 movem.l d0-d1,-(sp) jsr (sub_75A).l btst #3,(word_FFFFBE74).w sne d3 neg.b d3 move.b (byte_FFFFBE6E).w,d0 cmp.b d0,d3 beq.s loc_86DCC move.b d3,(byte_FFFFBE6E).w clr.b (byte_FFFFBE6F).w move.w (GlobalClock).w,(word_FFFFBE72).w bra.s loc_86E1A ; --------------------------------------------------------------------------- loc_86DCC: ; CODE XREF: sub_86D9C+1Ej tst.b (byte_FFFFBE6F).w bne.s loc_86E1A move.w (word_FFFFBE72).w,var_2(a6) move.w (GlobalClock).w,d3 sub.w var_2(a6),d3 cmp.w (C2_EXECUTIVE_KE_C2_SHORT_TO_GROUND_DIAG_TIME).l,d3 bcs.s loc_86E1A andi.b #$F,var_2(a6) ori.b #$30,var_2(a6) ; '0' clr.b var_2+1(a6) tst.b d0 beq.s loc_86E04 bset #0,var_2(a6) bra.s loc_86E0A ; --------------------------------------------------------------------------- loc_86E04: ; CODE XREF: sub_86D9C+5Ej bclr #0,var_2(a6) loc_86E0A: ; CODE XREF: sub_86D9C+66j move.w var_2(a6),d0 jsr sub_4A232 move.b #1,(byte_FFFFBE6F).w loc_86E1A: ; CODE XREF: sub_86D9C+2Ej ; sub_86D9C+34j ... tst.b (byte_FFFFBE6E).w beq.s loc_86E26 jsr (sub_77A).l loc_86E26: ; CODE XREF: sub_86D9C+82j jsr sub_87166 move.b (byte_FFFFBE6D).w,d3 or.b (byte_FFFFBE6E).w,d3 beq.s loc_86E3C jsr sub_41DAA loc_86E3C: ; CODE XREF: sub_86D9C+98j tst.b (byte_FFFFBE70).w beq.s loc_86E50 moveq #$20,d0 ; ' ' jsr (sub_794).l move.b #1,(byte_FFFFBE70).w loc_86E50: ; CODE XREF: sub_86D9C+A4j movem.l (sp)+,d0-d1 unlk a6 rts ; End of function sub_86D9C ; =============== S U B R O U T I N E ======================================= sub_86E58: ; CODE XREF: DoLoopB:loc_29F1Cp movem.l d0-d2/d6/a0-a1,-(sp) move.b #$55,(byte_FFFFFA27).w ; 'U' move.b #$AA,(byte_FFFFFA27).w clr.b d1 move.w #$E0,d0 ; '?' jsr (sub_1122).l jsr sub_8704A jsr sub_87606 tst.b (byte_FFFFB47B).w bne.s loc_86E9C moveq #2,d0 jsr sub_27338 moveq #2,d0 jsr sub_27590 move.b #1,(byte_FFFFB47B).w loc_86E9C: ; CODE XREF: sub_86E58+2Cj moveq #$70,d0 ; 'p' jsr sub_27258 tst.b (byte_FFFF92CC).w beq.s loc_86EB8 btst #0,(byte_FFFF803D).w bne.s loc_86EB8 jsr sub_27128 loc_86EB8: ; CODE XREF: sub_86E58+50j ; sub_86E58+58j jsr sub_21508 tst.b d0 beq.s loc_86EF0 tst.b (byte_FFFFB47C).w bne.s loc_86EF0 move.l (dword_FF86A6).l,-(sp) move.w #$178,d2 moveq #$56,d1 ; 'V' movea.l #unk_FF8088,a1 move.w #$88,d0 ; '?' movea.l #unk_FF8000,a0 jsr sub_7792C move.b #1,(byte_FFFFB47C).w loc_86EF0: ; CODE XREF: sub_86E58+68j ; sub_86E58+6Ej move.w (word_FFFFF2D2).w,d3 lsr.w #2,d3 asl.w #8,d3 cmpi.w #$1E1B,d3 bcc.s loc_86F04 jsr (sub_54C).l ; --------------------------------------------------------------------------- loc_86F04: ; CODE XREF: sub_86E58+A4j movem.l (sp)+,d0-d2/d6/a0-a1 rts ; End of function sub_86E58 ; =============== S U B R O U T I N E ======================================= sub_86F0A: ; CODE XREF: DoLoopG+1BEp move.w (word_FFFF9040).w,d4 move.w (PTO_KE_LOW_SPEED_INHIBIT).l,d5 ; Filtered engine speed below which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM cmp.w d5,d4 bcc.s loc_86F1C move.l d5,d4 bra.s loc_86F28 ; --------------------------------------------------------------------------- loc_86F1C: ; CODE XREF: sub_86F0A+Cj move.w (PTO_KE_HIGH_SPEED_INHIBIT).l,d3 ; Filtered engine speed above which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM cmp.w d3,d4 bls.s loc_86F28 move.l d3,d4 loc_86F28: ; CODE XREF: sub_86F0A+10j ; sub_86F0A+1Aj move.w d4,(word_FFFF902C).w move.w (word_FFFF9042).w,d3 move.w (word_FFFF902C).w,d4 cmp.w d4,d3 bls.s loc_86F3A move.l d4,d3 loc_86F3A: ; CODE XREF: sub_86F0A+2Cj move.w d3,(word_FFFF902A).w move.w (word_FFFF9044).w,d3 cmp.w d5,d3 bcc.s loc_86F4A move.l d5,d3 bra.s loc_86F54 ; --------------------------------------------------------------------------- loc_86F4A: ; CODE XREF: sub_86F0A+3Aj move.w (word_FFFF902C).w,d4 cmp.w d4,d3 bls.s loc_86F54 move.l d4,d3 loc_86F54: ; CODE XREF: sub_86F0A+3Ej ; sub_86F0A+46j move.w d3,(word_FFFF902E).w move.w (word_FFFF9046).w,d3 move.w (word_FFFF902E).w,d4 cmp.w d4,d3 bcc.s loc_86F68 loc_86F64: ; CODE XREF: sub_86F0A+64j move.l d4,d3 bra.s loc_86F70 ; --------------------------------------------------------------------------- loc_86F68: ; CODE XREF: sub_86F0A+58j move.w (word_FFFF902C).w,d4 cmp.w d4,d3 bhi.s loc_86F64 loc_86F70: ; CODE XREF: sub_86F0A+5Cj move.w d3,(word_FFFF9030).w move.w (word_FFFF9048).w,d3 move.w (PTO_KE_LOW_VEH_SPEED_DISENGAGE).l,d4 ; Minimum allowed vehicle speed before Mobile PTO disengages. Also differentiates between Stationary and Mobile Variable PTO. ; MPH cmp.w d4,d3 bcc.s loc_86F86 loc_86F82: ; CODE XREF: sub_86F0A+84j move.l d4,d3 bra.s loc_86F90 ; --------------------------------------------------------------------------- loc_86F86: ; CODE XREF: sub_86F0A+76j move.w (PTO_KE_HIGH_VEH_SPEED_DISENGAGE).l,d4 ; Maximum allowed HARDCODED vehicle speed for Mobile PTO. ; MPH cmp.w d4,d3 bhi.s loc_86F82 loc_86F90: ; CODE XREF: sub_86F0A+7Aj move.w d3,(word_FFFF9032).w move.w (word_FFFF904A).w,d3 move.w (PTO_KE_HIGH_SPEED_INHIBIT).l,d4 ; Filtered engine speed above which PTO modes can not be established. Also clamps PTO_Maximum_Engine_Speed. ; RPM cmp.w d4,d3 bls.s loc_86FA4 move.l d4,d3 loc_86FA4: ; CODE XREF: sub_86F0A+96j move.w d3,(word_FFFF903C).w rts ; End of function sub_86F0A ; =============== S U B R O U T I N E ======================================= sub_86FAA: ; CODE XREF: sub_571CE+A4p movem.l d1-d2/d6-d7,-(sp) move.w d0,d7 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d2 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb move.l d2,d1 mulu.w #$B,d1 move.l d2,d6 muls.w #$FFEC,d6 move.w #$1770,d5 cmp.w d1,d5 bne.s loc_86FEC clr.l d3 move.w d2,d3 move.l d1,d0 sub.w d6,d0 ext.l d0 asl.l #8,d0 bmi.s loc_86FDE divu.l d3,d0 bra.s loc_86FE0 ; --------------------------------------------------------------------------- loc_86FDE: ; CODE XREF: sub_86FAA+2Cj clr.l d0 loc_86FE0: ; CODE XREF: sub_86FAA+32j subq.w #1,d0 move.l d0,d4 addi.w #$100,d4 clr.b d3 bra.s loc_87006 ; --------------------------------------------------------------------------- loc_86FEC: ; CODE XREF: sub_86FAA+1Ej clr.l d3 move.w d2,d3 move.l d1,d0 sub.w d6,d0 ext.l d0 asl.l #8,d0 bmi.s loc_87000 divu.l d3,d0 bra.s loc_87002 ; --------------------------------------------------------------------------- loc_87000: ; CODE XREF: sub_86FAA+4Ej clr.l d0 loc_87002: ; CODE XREF: sub_86FAA+54j clr.b d3 move.l d0,d4 loc_87006: ; CODE XREF: sub_86FAA+40j lsr.w #8,d4 tst.b d4 beq.s loc_8700E moveq #$64,d3 ; 'd' loc_8700E: ; CODE XREF: sub_86FAA+60j clr.l d4 move.b d3,d4 mulu.w d4,d4 cmp.w d6,d7 bge.s loc_8701C clr.w d0 bra.s loc_87040 ; --------------------------------------------------------------------------- loc_8701C: ; CODE XREF: sub_86FAA+6Cj cmp.w d1,d5 bne.s loc_87024 cmp.w d1,d7 ble.s loc_87028 loc_87024: ; CODE XREF: sub_86FAA+74j cmp.w d1,d7 bge.s loc_87040 loc_87028: ; CODE XREF: sub_86FAA+78j andi.l #$FFFF,d2 move.l d7,d0 sub.w d6,d0 ext.l d0 asl.l #8,d0 bmi.s loc_8703E divu.l d2,d0 bra.s loc_87040 ; --------------------------------------------------------------------------- loc_8703E: ; CODE XREF: sub_86FAA+8Cj clr.l d0 loc_87040: ; CODE XREF: sub_86FAA+70j ; sub_86FAA+7Cj ... tblu.w (a0),d0 movem.l (sp)+,d1-d2/d6-d7 rts ; End of function sub_86FAA ; =============== S U B R O U T I N E ======================================= sub_8704A: ; CODE XREF: sub_86E58+1Cp movem.l d0-d1,-(sp) bclr #7,(byte_FFFFD006).w bset #7,(byte_FFFFD006).w move.w (word_FFFFB480).w,d3 addq.w #1,d3 move.w d3,(word_FFFFB480).w andi.l #$FFFF,d3 divul.l #$A0,d4:d3 ; '?' tst.b d4 beq.s loc_8707C tst.b (byte_FFFFB47D).w bne.s loc_870D2 loc_8707C: ; CODE XREF: sub_8704A+2Aj move.b (byte_FFFFB482).w,d3 bne.s loc_8708C clr.b d1 move.w (word_8A4F0).l,d0 bra.s loc_8709A ; --------------------------------------------------------------------------- loc_8708C: ; CODE XREF: sub_8704A+36j clr.b d1 andi.w #$FF,d3 move.w off_8A4D4+2(d3.w*2),d0 loc_8709A: ; CODE XREF: sub_8704A+40j jsr (sub_1122).l moveq #1,d1 clr.w d0 move.b (byte_FFFFB482).w,d0 move.w word_8A4D8(d0.w*2),d0 jsr (sub_1122).l jsr sub_81BC2 move.b (byte_FFFFB482).w,d3 cmpi.b #$C,d3 bcc.s loc_870CE addq.b #1,d3 move.b d3,(byte_FFFFB482).w bra.s loc_870D2 ; --------------------------------------------------------------------------- loc_870CE: ; CODE XREF: sub_8704A+7Aj clr.b (byte_FFFFB482).w loc_870D2: ; CODE XREF: sub_8704A+30j ; sub_8704A+82j movem.l (sp)+,d0-d1 rts ; End of function sub_8704A ; =============== S U B R O U T I N E ======================================= sub_870D8: ; CODE XREF: sub_86BC4+4p andi.w #$FF,d0 movea.l off_8A38C(d0.w*4),a2 jmp (a2) ; End of function sub_870D8 ; --------------------------------------------------------------------------- loc_870E6: ; DATA XREF: OS4:0008A3A8o bra.s loc_87120 ; --------------------------------------------------------------------------- loc_870E8: ; DATA XREF: OS4:0008A390o ; OS4:0008A39Co ... bra.s locret_87164 ; --------------------------------------------------------------------------- loc_870EA: ; DATA XREF: OS4:0008A394o ; OS4:0008A398o clr.w (word_FFFFB1CA).w clr.w (word_FFFFB1C4).w bclr #4,(byte_FFFFB1C2).w clr.w (word_FFFFB1D4).w bclr #0,(byte_FFFFB1C2).w bclr #5,(byte_FFFFB1C2).w bset #3,(byte_FFFFB1C2).w bclr #2,(byte_FFFFB1C2).w move.w (PTO_CONTROL_KE_PTO_EFF_SPD_ERROR_MAX).l,(word_FFFFB1D6).w ; Maximum value effective speed error can be. ; RPM clr.w (word_FFFFB1C6).w loc_87120: ; CODE XREF: OS4:loc_870E6j move.w #$FFFF,(word_FFFFB1CE).w move.w #$7FFF,(word_FFFFB1D0).w bra.s locret_87164 ; --------------------------------------------------------------------------- loc_8712E: ; DATA XREF: OS4:off_8A38Co ; OS4:0008A3A4o ... clr.w (word_FFFFB1CA).w clr.w (word_FFFFB1C4).w bclr #4,(byte_FFFFB1C2).w clr.w (word_FFFFB1D4).w bclr #0,(byte_FFFFB1C2).w bclr #5,(byte_FFFFB1C2).w bset #3,(byte_FFFFB1C2).w bclr #2,(byte_FFFFB1C2).w move.w (PTO_CONTROL_KE_PTO_EFF_SPD_ERROR_MAX).l,(word_FFFFB1D6).w ; Maximum value effective speed error can be. ; RPM clr.w (word_FFFFB1C6).w locret_87164: ; CODE XREF: OS4:loc_870E8j ; OS4:0008712Cj ; DATA XREF: ... rts ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_87166: ; CODE XREF: sub_86D9C:loc_86E26p var_2 = -2 link a6,#-2 move sr,-(sp) ori #$700,sr movem.l d0-d1/a0,-(sp) move.b (byte_FFFFBE6D).w,d1 btst #4,(word_FFFFBE74).w bne.s loc_8719C move.w (word_FFFFAAF8).w,d0 movea.l #unk_FFAAF6,a0 jsr sub_276D4 tst.b d0 beq.s loc_871AE move.b #1,(byte_FFFFBE6D).w bra.s loc_871AE ; --------------------------------------------------------------------------- loc_8719C: ; CODE XREF: sub_87166+18j move.w (C2_EXECUTIVE_KE_C2_SHORT_TO_HIGH_DIAG_TIME).l,(word_FFFFAAF8).w move.w (GlobalClock).w,(word_FFFFAAF6).w clr.b (byte_FFFFBE6D).w loc_871AE: ; CODE XREF: sub_87166+2Cj ; sub_87166+34j move.b (byte_FFFFBE6D).w,d3 cmp.b d1,d3 beq.s loc_871E2 andi.b #$F,var_2(a6) ori.b #$40,var_2(a6) ; '@' clr.b var_2+1(a6) tst.b d3 beq.s loc_871D2 bset #0,var_2(a6) bra.s loc_871D8 ; --------------------------------------------------------------------------- loc_871D2: ; CODE XREF: sub_87166+62j bclr #0,var_2(a6) loc_871D8: ; CODE XREF: sub_87166+6Aj move.w var_2(a6),d0 jsr sub_4A232 loc_871E2: ; CODE XREF: sub_87166+4Ej movem.l (sp)+,d0-d1/a0 move (sp)+,sr unlk a6 rts ; End of function sub_87166 ; =============== S U B R O U T I N E ======================================= sub_871EC: ; CODE XREF: sub_29980+1Ap move sr,-(sp) andi #$F8FF,sr movem.l d0-d1/a0-a1/a4,-(sp) movea.l (dword_FFFFB0D2).w,a4 movea.l (dword_FFFFB0D6).w,a1 loc_871FE: ; CODE XREF: sub_871EC+72j movea.l a4,a2 moveq #$40,d1 ; '@' add.l a2,d1 cmpi.l #$FFFF904B,d1 bls.s loc_87220 move.l #$FFFF904B,d0 sub.l a2,d0 addq.l #1,d0 lsr.l #2,d0 move.l #$FFFF8000,d1 bra.s loc_87222 ; --------------------------------------------------------------------------- loc_87220: ; CODE XREF: sub_871EC+1Ej moveq #$10,d0 loc_87222: ; CODE XREF: sub_871EC+32j movea.l a4,a0 jsr sub_2666C movea.l d1,a4 movea.l a1,a2 moveq #$40,d1 ; '@' add.l a2,d1 cmpi.l #$FFFFCDFF,d1 bls.s loc_8724E move.l #$FFFFCDFF,d0 sub.l a2,d0 addq.l #1,d0 lsr.l #2,d0 move.l #$FFFF9050,d1 bra.s loc_87250 ; --------------------------------------------------------------------------- loc_8724E: ; CODE XREF: sub_871EC+4Cj moveq #$10,d0 loc_87250: ; CODE XREF: sub_871EC+60j movea.l a1,a0 jsr sub_2666C movea.l d1,a1 tst.b (byte_FFFFBFF0).w bne.s loc_871FE move.l a4,(dword_FFFFB0D2).w move.l a1,(dword_FFFFB0D6).w movem.l (sp)+,d0-d1/a0-a1/a4 move (sp)+,sr rts ; End of function sub_871EC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_87270: ; CODE XREF: OS1:0002B788p var_12 = -$12 var_10 = -$10 var_C = -$C var_8 = -8 var_4 = -4 link a6,#-$12 bclr #6,(byte_FFFFFE20).w move.l (dword_8A4F6).l,(dword_FFFFFFEC).w move.l (dword_8A4F2).l,(dword_FFFFFFE8).w move.w (word_FFFFFFE0).w,var_12(a6) andi.b #$F0,var_12(a6) ori.b #8,var_12(a6) bclr #0,var_12+1(a6) bclr #7,var_12+1(a6) move.w var_12(a6),(word_FFFFFFE0).w clr.l var_10(a6) move.l var_10(a6),var_C(a6) move.l var_C(a6),var_8(a6) move.l (dword_FFFFFE14).w,var_4(a6) andi.b #$CF,var_8(a6) ori.b #$20,var_8(a6) ; ' ' move.l var_4(a6),(dword_FFFFFE14).w movea.l var_8(a6),a2 move.l a2,var_10(a6) move.l a2,var_C(a6) loc_872E2: ; CODE XREF: sub_87270+76j tst.l (dword_FFFFFE18).w bne.s loc_872E2 move.l var_C(a6),(dword_FFFFFE18).w unlk a6 rts ; End of function sub_87270 ; --------------------------------------------------------------------------- loc_872F2: ; DATA XREF: Boot:off_0o move sr,-(sp) andi #63743,sr movem.l d0-d2/d6-d7,-(sp) clr.w (word_FFFFB552).w loc_87300: ; CODE XREF: OS4:00087322j clr.b d1 move.w (word_FFFFB552).w,d2 clr.l d7 move.b d2,d7 move.w word_89BBA(d7.w*2),d0 jsr (sub_1122).l addq.w #1,d2 move.w d2,(word_FFFFB552).w cmpi.w #$C,d2 bls.s loc_87300 clr.b d1 move.w #$E2,d0 ; '?' jsr (sub_1122).l clr.b d1 moveq #$32,d0 ; '2' jsr (sub_1122).l clr.w (word_FFFFB552).w loc_8733E: ; CODE XREF: OS4:0008735Ej clr.l d2 move.l d2,d1 move.w (word_FFFFB552).w,d6 move.b byte_89BD4(d6.w),d0 jsr (sub_16FA).l addq.w #1,d6 move.w d6,(word_FFFFB552).w cmpi.w #$F,d6 bls.s loc_8733E jsr sub_81BC2 jsr sub_78A52 movem.l (sp)+,d0-d2/d6-d7 move (sp)+,sr rts ; =============== S U B R O U T I N E ======================================= sub_87374: ; CODE XREF: DoLoopG+1B8p btst #7,(byte_FFFF9026).w beq.s loc_87384 move.b #1,(byte_FFFF9028).w bra.s locret_873E8 ; --------------------------------------------------------------------------- loc_87384: ; CODE XREF: sub_87374+6j btst #6,(byte_FFFF9026).w beq.s loc_87394 move.b #2,(byte_FFFF9028).w bra.s locret_873E8 ; --------------------------------------------------------------------------- loc_87394: ; CODE XREF: sub_87374+16j btst #4,(byte_FFFF9026).w beq.s loc_873E4 move.w (word_FFFFAEBC).w,d3 cmp.w (PTO_KE_LOW_VEH_SPEED_DISENGAGE).l,d3 ; Minimum allowed vehicle speed before Mobile PTO disengages. Also differentiates between Stationary and Mobile Variable PTO. ; MPH bhi.s loc_873D4 cmpi.b #8,(byte_FFFFA3B8).w bne.s loc_873E4 cmpi.b #7,(VEH_SYS_KE_PLATFORM).l ; Identifies platform type -- F, Y, V, GMT530, GMT540, GMT560,GMT610, GMT800, ML, ST, P, GMT370, H2. ; Platform_Type bne.s loc_873CC cmpi.b #2,(TRANS_IO_KE_TRANSMISSION_TYPE).l ; This determines which type of transmission is on the vehicle. ; Xmsn. Type beq.s loc_873CC cmpi.b #6,(byte_FFFFA3AF).w bne.s loc_873E4 loc_873CC: ; CODE XREF: sub_87374+44j ; sub_87374+4Ej move.b #3,(byte_FFFF9028).w bra.s locret_873E8 ; --------------------------------------------------------------------------- loc_873D4: ; CODE XREF: sub_87374+32j cmpi.b #8,(byte_FFFFA3B8).w beq.s loc_873E4 move.b #4,(byte_FFFF9028).w bra.s locret_873E8 ; --------------------------------------------------------------------------- loc_873E4: ; CODE XREF: sub_87374+26j ; sub_87374+3Aj ... clr.b (byte_FFFF9028).w locret_873E8: ; CODE XREF: sub_87374+Ej ; sub_87374+1Ej ... rts ; End of function sub_87374 ; =============== S U B R O U T I N E ======================================= sub_873EA: ; CODE XREF: DoLoopA+Ep movem.l d0/a0-a1,-(sp) move.w #$C2,d3 ; '?' cmpi.w #$7FFF,d3 bls.s loc_873FC move.w #$7FFF,d3 loc_873FC: ; CODE XREF: sub_873EA+Cj move.w d3,(word_FFFFE09E).w move.w #$472,d0 jsr sub_3BAB2 move.w (word_FFFFE09C).w,d3 btst #5,d3 bne.s loc_8744E move.w (word_FFFFE1DE).w,d3 movea.w #$7FFF,a0 add.w a0,d3 move.w d3,(word_FFFFE1D8).w move.w (word_FFFFE1DE).w,d3 add.w a0,d3 move.w d3,(word_FFFFE1DA).w move.w #1,(word_FFFFE0CC).w clr.w (word_FFFFE1C2).w movea.w #8,a1 move.w a1,(word_FFFFE2F4).w move.w a1,(word_FFFFE2D4).w move.w (word_FFFFE09C).w,d3 ori.w #$20,d3 ; ' ' move.w d3,(word_FFFFE09C).w loc_8744E: ; CODE XREF: sub_873EA+28j move.w #$103,d0 jsr sub_3298C movem.l (sp)+,d0/a0-a1 rts ; End of function sub_873EA ; =============== S U B R O U T I N E ======================================= sub_8745E: ; CODE XREF: DoManyThings1+8p var_DD0 = -$DD0 move.w (word_89804).l,(word_FFFFF208).w move.w (word_89802).l,(word_FFFFF200).w move.w (word_89806).l,(word_FFFFF20A).w move.w (word_89808).l,(word_FFFFF20C).w move.w (word_89810).l,(word_FFFFF20E).w lea (unk_FFFFF230).w,a2 moveq #$27,d3 ; ''' loc_8748C: ; CODE XREF: sub_8745E+30j clr.w (a2)+ dbf d3,loc_8748C clr.w d3 loc_87494: ; CODE XREF: sub_8745E+4Cj clr.l d5 move.b d3,d5 move.w word_897B2(d5.w*2),var_DD0(d5.w*2) addq.w #1,d3 cmpi.w #$27,d3 ; ''' bls.s loc_87494 clr.w (word_FFFFF210).w move.w (word_8980E).l,(word_FFFFF20C).w bset #5,(word_FFFFF20C).w rts ; End of function sub_8745E ; =============== S U B R O U T I N E ======================================= sub_874C0: ; CODE XREF: sub_571CE+156p move.l d2,-(sp) move.w d0,d4 move.w d1,d0 clr.l d3 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_874DE cmpi.w #$1770,d3 bls.s loc_874E2 loc_874DE: ; CODE XREF: sub_874C0+16j move.w #$1770,d3 loc_874E2: ; CODE XREF: sub_874C0+1Cj cmp.w d3,d0 bls.s loc_874E8 move.l d3,d0 loc_874E8: ; CODE XREF: sub_874C0+24j cmpi.w #$5000,d4 bcc.s loc_874F8 clr.l d1 move.w d4,d1 divu.w #5,d1 bra.s loc_874FC ; --------------------------------------------------------------------------- loc_874F8: ; CODE XREF: sub_874C0+2Cj move.w #$1000,d1 loc_874FC: ; CODE XREF: sub_874C0+36j move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d2 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.w #3,d2 andi.l #$FFFF,d0 asl.l #8,d0 divu.w d2,d0 moveq #$A,d2 jsr (sub_16D6).l move.l (sp)+,d2 rts ; End of function sub_874C0 ; =============== S U B R O U T I N E ======================================= sub_8751A: ; CODE XREF: sub_26DFA:loc_270A8p ; OS4:loc_86C4Ap move.b (dword_FFFF8034).w,(byte_FFFF9026).w clr.w d3 move.b (dword_FFFF8034+1).w,d3 asl.w #7,d3 move.w d3,(word_FFFF9040).w clr.w d3 move.b (dword_FFFF8034+2).w,d3 asl.w #7,d3 move.w d3,(word_FFFF9042).w clr.w d3 move.b (dword_FFFF8034+3).w,d3 asl.w #7,d3 move.w d3,(word_FFFF9044).w clr.w d3 move.b (dword_FFFF8038).w,d3 asl.w #7,d3 move.w d3,(word_FFFF9046).w clr.w d3 move.b (dword_FFFF8038+1).w,d3 asl.w #7,d3 move.w d3,(word_FFFF9048).w clr.w d3 move.b (dword_FFFF8038+2).w,d3 asl.w #7,d3 move.w d3,(word_FFFF904A).w rts ; End of function sub_8751A ; =============== S U B R O U T I N E ======================================= sub_8756A: ; CODE XREF: sub_86BC4+Cp andi.w #$FF,d0 movea.l off_89BE4(d0.w*4),a2 jmp (a2) ; End of function sub_8756A ; --------------------------------------------------------------------------- loc_87578: ; DATA XREF: OS4:00089BE8o ; OS4:00089C00o bra.s locret_875B8 ; --------------------------------------------------------------------------- loc_8757A: ; DATA XREF: OS4:off_89BE4o ; OS4:00089BECo ... bclr #1,(byte_FFFFB2BE).w bclr #2,(byte_FFFFB2BE).w clr.w (word_FFFFB1D2).w clr.w (word_FFFFB2C4).w clr.w (word_FFFFB2CC).w clr.w (word_FFFFB2CA).w clr.w (word_FFFFB2C8).w clr.w (word_FFFFB2C6).w clr.w (word_FFFFB2C0).w clr.b (byte_FFFF9024).w move.b #$B,(byte_FFFF9025).w clr.w (word_FFFFB2C2).w bclr #3,(byte_FFFFB2BE).w nop locret_875B8: ; CODE XREF: OS4:loc_87578j ; DATA XREF: OS4:00089BF4o ... rts ; =============== S U B R O U T I N E ======================================= sub_875BA: ; CODE XREF: sub_853A2+194p ; sub_853A2+2CEp ... clr.w (word_FFFFB1D2).w clr.w (word_FFFFB1C6).w move.w (PTO_CONTROL_KE_PTO_EFF_SPD_ERROR_MAX).l,(word_FFFFB1D6).w ; Maximum value effective speed error can be. ; RPM bset #3,(byte_FFFFB1C2).w move.b (byte_FFFF9024).w,d3 cmpi.b #3,d3 beq.s loc_875FE cmpi.b #4,d3 beq.s loc_875FE cmpi.b #5,d3 beq.s loc_875FE cmpi.b #6,d3 beq.s loc_875FE cmpi.b #7,d3 beq.s loc_875FE cmpi.b #8,d3 beq.s loc_875FE cmpi.b #9,d3 bne.s locret_87604 loc_875FE: ; CODE XREF: sub_875BA+1Ej ; sub_875BA+24j ... move.b #2,(byte_FFFF9024).w locret_87604: ; CODE XREF: sub_875BA+42j rts ; End of function sub_875BA ; =============== S U B R O U T I N E ======================================= sub_87606: ; CODE XREF: sub_86E58+22p movem.l d0-d2,-(sp) move.b (byte_FFFFB47F).w,d2 move.b (byte_FFFFB47E).w,d1 cmp.b d2,d1 bne.s loc_87622 eori.b #1,d1 move.b d1,(byte_FFFFB47E).w moveq #$10,d0 bra.s loc_8763E ; --------------------------------------------------------------------------- loc_87622: ; CODE XREF: sub_87606+Ej eori.b #1,d1 move.b d1,(byte_FFFFB47E).w moveq #$10,d0 jsr (sub_1122).l move.l d2,d1 eori.b #1,d1 move.b d1,(byte_FFFFB47F).w moveq #$12,d0 loc_8763E: ; CODE XREF: sub_87606+1Aj jsr (sub_1122).l jsr sub_81E20 movem.l (sp)+,d0-d2 rts ; End of function sub_87606 ; =============== S U B R O U T I N E ======================================= sub_87650: ; CODE XREF: sub_56EDC:loc_570EEp move.l d2,-(sp) clr.l d3 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_8766A cmpi.w #$1770,d3 bls.s loc_8766E loc_8766A: ; CODE XREF: sub_87650+12j move.w #$1770,d3 loc_8766E: ; CODE XREF: sub_87650+18j cmp.w d3,d1 bls.s loc_87674 move.l d3,d1 loc_87674: ; CODE XREF: sub_87650+20j andi.w #$FF,d0 asl.w #4,d0 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d2 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.w #3,d2 andi.l #$FFFF,d1 asl.l #8,d1 divu.w d2,d1 moveq #$22,d2 ; '"' jsr sub_878FA move.l (sp)+,d2 rts ; End of function sub_87650 ; =============== S U B R O U T I N E ======================================= sub_87698: ; CODE XREF: sub_865A6:loc_86714p ; OS4:00086C5Ep movem.l d0-d1/a0,-(sp) tst.b (PTO_KE_PTO_HIGH_IDLE_ENABLED).l ; Determines whether PTO High Idle mode will be allowed basedon the high idle switch input. ; BOOLEAN beq.s loc_876D0 move.w (PTO_KE_HIGH_IDLE_BULB_CHECK_TIME).l,d0 ; Time for illuminating the High Idle Lamp for a bulb check. ; Seconds movea.l #unk_FF9036,a0 jsr sub_276D4 clr.b d1 tst.b d0 beq.s loc_876C4 btst #0,(byte_FFFF9027).w beq.s loc_876C6 loc_876C4: ; CODE XREF: sub_87698+22j addq.b #1,d1 loc_876C6: ; CODE XREF: sub_87698+2Aj move.w #$158,d0 jsr (sub_1122).l loc_876D0: ; CODE XREF: sub_87698+Aj movem.l (sp)+,d0-d1/a0 rts ; End of function sub_87698 ; =============== S U B R O U T I N E ======================================= sub_876D6: ; CODE XREF: sub_4EEB4+BAp clr.l d3 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_876EE cmpi.w #$1770,d3 bls.s loc_876F2 loc_876EE: ; CODE XREF: sub_876D6+10j move.w #$1770,d3 loc_876F2: ; CODE XREF: sub_876D6+16j cmp.w d3,d0 bls.s loc_876F8 move.l d3,d0 loc_876F8: ; CODE XREF: sub_876D6+1Ej move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb add.w d3,d3 andi.l #$FFFF,d0 asl.l #8,d0 divu.w d3,d0 tbls.w (a0),d0 rts ; End of function sub_876D6 ; =============== S U B R O U T I N E ======================================= sub_87710: ; CODE XREF: sub_4EEB4+38p clr.l d3 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_87728 cmpi.w #$1770,d3 bls.s loc_8772C loc_87728: ; CODE XREF: sub_87710+10j move.w #$1770,d3 loc_8772C: ; CODE XREF: sub_87710+16j cmp.w d3,d0 bls.s loc_87732 move.l d3,d0 loc_87732: ; CODE XREF: sub_87710+1Ej move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb add.w d3,d3 andi.l #$FFFF,d0 asl.l #8,d0 divu.w d3,d0 tblu.w (a0),d0 rts ; End of function sub_87710 ; =============== S U B R O U T I N E ======================================= sub_8774A: ; CODE XREF: sub_5D20C+14p ; sub_5D45C+31Ap clr.l d3 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_87762 cmpi.w #$1770,d3 bls.s loc_87766 loc_87762: ; CODE XREF: sub_8774A+10j move.w #$1770,d3 loc_87766: ; CODE XREF: sub_8774A+16j cmp.w d3,d0 bls.s loc_8776C move.l d3,d0 loc_8776C: ; CODE XREF: sub_8774A+1Ej move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb add.w d3,d3 andi.l #$FFFF,d0 asl.l #8,d0 divu.w d3,d0 tbls.b (a0),d0 rts ; End of function sub_8774A ; =============== S U B R O U T I N E ======================================= sub_87784: ; CODE XREF: sub_56EDC+D8p ; sub_571CE+62p ... clr.l d3 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_8779C cmpi.w #$1770,d3 bls.s loc_877A0 loc_8779C: ; CODE XREF: sub_87784+10j move.w #$1770,d3 loc_877A0: ; CODE XREF: sub_87784+16j cmp.w d3,d0 bls.s loc_877A6 move.l d3,d0 loc_877A6: ; CODE XREF: sub_87784+1Ej move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb add.w d3,d3 andi.l #$FFFF,d0 asl.l #8,d0 divu.w d3,d0 tbls.w (a0),d0 rts ; End of function sub_87784 ; =============== S U B R O U T I N E ======================================= sub_877BE: ; CODE XREF: sub_5D252+124p ; sub_5D252+154p ... clr.l d3 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_877D6 cmpi.w #$1770,d3 bls.s loc_877DA loc_877D6: ; CODE XREF: sub_877BE+10j move.w #$1770,d3 loc_877DA: ; CODE XREF: sub_877BE+16j cmp.w d3,d0 bls.s loc_877E0 move.l d3,d0 loc_877E0: ; CODE XREF: sub_877BE+1Ej move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.w #3,d3 andi.l #$FFFF,d0 asl.l #8,d0 divu.w d3,d0 tblu.w (a0),d0 rts ; End of function sub_877BE ; =============== S U B R O U T I N E ======================================= sub_877F8: ; CODE XREF: sub_585F4+FCp ; sub_58914+D4p clr.l d3 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_87810 cmpi.w #$1770,d3 bls.s loc_87814 loc_87810: ; CODE XREF: sub_877F8+10j move.w #$1770,d3 loc_87814: ; CODE XREF: sub_877F8+16j cmp.w d3,d0 bls.s loc_8781A move.l d3,d0 loc_8781A: ; CODE XREF: sub_877F8+1Ej move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb add.w d3,d3 andi.l #$FFFF,d0 asl.l #8,d0 divu.w d3,d0 tblu.w (a0),d0 rts ; End of function sub_877F8 ; =============== S U B R O U T I N E ======================================= sub_87832: ; CODE XREF: sub_26CDE+96p ; sub_86230+8p clr.b d0 move.w (word_FFFFF2D0).w,d3 lsr.w #2,d3 move.b #$F0,d4 cmp.b d3,d4 bcc.s locret_87866 move.w (word_FFFFF2D6).w,d3 lsr.w #2,d3 cmpi.b #$A,d3 bcc.s locret_87866 move.w (word_FFFFF2BC).w,d3 lsr.w #2,d3 cmpi.b #$A,d3 bcc.s locret_87866 move.w (word_FFFFF2FC).w,d3 lsr.w #2,d3 cmp.b d3,d4 bcc.s locret_87866 addq.b #1,d0 locret_87866: ; CODE XREF: sub_87832+Ej ; sub_87832+1Aj ... rts ; End of function sub_87832 ; =============== S U B R O U T I N E ======================================= sub_87868: ; CODE XREF: sub_571CE+F0p ; sub_571CE+254p clr.l d3 move.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d3 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb asl.l #5,d3 cmpi.l #$FFFF,d3 bhi.s loc_87880 cmpi.w #$1770,d3 bls.s loc_87884 loc_87880: ; CODE XREF: sub_87868+10j move.w #$1770,d3 loc_87884: ; CODE XREF: sub_87868+16j cmp.w d3,d0 bls.s loc_8788A move.l d3,d0 loc_8788A: ; CODE XREF: sub_87868+1Ej andi.l #$FFFF,d0 asl.l #8,d0 divu.w (X_LOOKUP_PROCEDURES_KE_SHIFT_TORQUE_STEP_SIZE).l,d0 ; This calibration is used to determine the range and step size of tables that have shift torque as the independant variable. ; Ft_lb tblu.w (a0),d0 rts ; End of function sub_87868 ; --------------------------------------------------------------------------- loc_8789E: ; DATA XREF: Boot:off_0o link a6,#-6 move sr,-(sp) andi #$F8FF,sr jsr sub_78DDE jsr sub_7889E lea -6(a6),a0 jsr sub_7885E move.l -4(a6),2(a1) move.w -6(a6),(a1) move (sp)+,sr unlk a6 rts ; =============== S U B R O U T I N E ======================================= sub_878CE: ; CODE XREF: sub_853A2:loc_859C0p btst #3,(byte_FFFFB2BE).w beq.s locret_878F8 move.b (byte_FFFF9024).w,d3 beq.s loc_878E2 cmpi.b #1,d3 bne.s locret_878F8 loc_878E2: ; CODE XREF: sub_878CE+Cj btst #3,(word_FFFFA594).w bne.s locret_878F8 btst #4,(word_FFFFA594).w bne.s locret_878F8 move.b #2,(byte_FFFF9024).w locret_878F8: ; CODE XREF: sub_878CE+6j ; sub_878CE+12j ... rts ; End of function sub_878CE ; =============== S U B R O U T I N E ======================================= sub_878FA: ; CODE XREF: sub_31AE2+36Ap ; sub_31FCA+1Cp ... move.w d1,d3 lsr.w #8,d3 mulu.w d2,d3 adda.l d3,a0 move.w d0,d3 tblsn.w (a0),d0 tblsn.w (a0,d2.w),d3 tbls.l d0:d3,d1 addi.l #$80,d1 ; '?' asr.l #8,d1 move.l d1,d0 rts ; End of function sub_878FA ; =============== S U B R O U T I N E ======================================= sub_8791E: ; CODE XREF: sub_31E86+1Cp ; sub_31E86+52p ... move.w d1,d3 lsr.w #8,d3 mulu.w d2,d3 adda.l d3,a0 move.w d0,d3 tblun.b (a0),d0 tblun.b (a0,d2.w),d3 tblu.w d0:d3,d1 addi.w #$80,d1 ; '?' lsr.w #8,d1 move.w d1,d0 rts ; End of function sub_8791E ; =============== S U B R O U T I N E ======================================= sub_87940: ; CODE XREF: DoManyThings1+24Ep move.w (word_89808).l,(word_FFFFF20C).w move.w (word_89810).l,(word_FFFFF20E).w move.w (word_8980A).l,(word_FFFFF20C).w move.w (word_89814).l,(word_FFFFF20E).w rts ; End of function sub_87940 ; =============== S U B R O U T I N E ======================================= sub_87962: ; CODE XREF: sub_40278+FEp move sr,-(sp) ori #$700,sr move.l d0,-(sp) move.b (byte_80C).l,d0 jsr (sub_794).l move.l (sp)+,d0 move (sp)+,sr rts ; End of function sub_87962 ; =============== S U B R O U T I N E ======================================= sub_8797C: ; CODE XREF: OS1:00028C5Cp movea.w (X_SEM_KE_SEM_NO_REDUCTION).l,a2 ; Amount of total torque reduction requested if no reductionis desired. Should probably always be 0.0 ; Percent move.w a2,(word_FFFFB30E).w move.w a2,(word_FFFFB310).w jsr sub_58D08 rts ; End of function sub_8797C ; --------------------------------------------------------------------------- loc_87992: ; DATA XREF: Boot:off_0o move sr,-(sp) andi #$F8FF,sr lea (word_FFFFF2B0).w,a3 moveq #$27,d3 ; ''' loc_8799E: ; CODE XREF: OS4:000879A0j move.w (a3)+,(a0)+ dbf d3,loc_8799E move (sp)+,sr rts ; =============== S U B R O U T I N E ======================================= sub_879A8: ; CODE XREF: sub_86230+3Ap clr.w (word_FFFFE0A6).w move.w #$1942,(word_FFFFE0A4).w rts ; End of function sub_879A8 ; =============== S U B R O U T I N E ======================================= sub_879B4: ; CODE XREF: sub_86230+40p jsr sub_7C822 rts ; End of function sub_879B4 ; --------------------------------------------------------------------------- byte_879BC: dc.b 8 ; DATA XREF: sub_451EA+106o ; sub_458E6+16r ... byte_879BD: dc.b $22 ; DATA XREF: sub_458E6+32r dword_879BE: dc.l $800000 ; DATA XREF: sub_458E6+44r ; sub_458E6:loc_459D6r dc.b $A dc.b $20 dc.l $808000 dc.l $12110081 dc.l loc_1A0E+2 dc.l $818000 dc.l $140100C0 dc.l loc_13FC+5 dc.l $900000 dc.l $14100070 dc.l $2403 ; --------------------------------------------------------------------------- ori.w #0,-(a0) move.l d5,d2 ori.w #$8000,-(a0) move.l d7,d2 ori.w #0,-(a1) move.l d1,d4 ori.l #$2802,d2 ori.l #$80002A07,d2 ori.w #0,$B(a2,d2.l*2) ori.l #$2A3C,(a1) ori.w #$8000,-(a1) move.w -(a1),d1 ori.l #$3222,(a2) ori.w #0,1(a4,d3.l*2) ori.w #0,-(a2) move.w d2,d5 ori.l #$3A03,(a3) ori.l #$3A04,(a4) ori.l #$3A05,(a5) ori.w #0,$D(a6,d3.l*2) ori.w #$8000,-(a2) move.w (a0),d5 ori.l #$3A20,d3 ori.l #$3A22,(a6) ori.l #$3A30,-(a0) ori.l #$3A3C,-(a2) ori.l #$80003A3D,d3 ori.l #$4801,d4 ori.l #$80004803,d4 ori.w #0,d0 nbcd d6 ori.w #$8000,d0 nbcd (a0) ori.l #$4A09,d5 ori.l #$4A11,-(a4) ori.l #$80004A14,d5 ori.l #$5204,-(a6) ori.l #$5222,(sp) ori.l #$580B,d6 ori.w #0,(word_5830).w ori.l #$583C,$63(a0) ori.b #2,d0 ori.l #$6206,(a0)+ ori.w #$8000,-(a3) bhi.s loc_87AD0 ori.l #$6220,(a1)+ ; --------------------------------------------------------------------------- dc.b 0 dc.b $C8 ; ? ; --------------------------------------------------------------------------- ori.b #8,d0 ; --------------------------------------------------------------------------- dc.b 0 dc.b $86 ; ? dc.b $80 ; ? dc.b 0 ; --------------------------------------------------------------------------- loc_87AD0: ; CODE XREF: OS4:00087ABEj moveq #6,d5 ori.l #$8208,d7 ori.l #$8000820A,d7 ori.l #$8212,a0 ori.l #$80008213,a0 ori.l #$8216,a1 ori.l #$80008402,a1 ori.w #0,-(a4) or.b d2,d3 ori.w #0,d1 sub.b d1,d1 ori.w #$8000,-(a4) sub.b d2,d1 ori.l #$9611,(a2)+ ori.w #$8000,d1 cmp.b (a1),d1 ori.l #$B230,a2 ori.l #$8000B23C,a2 ori.w #0,-(a5) and.b d7,d7 ori.w #$8000,-(a5) add.b d7,d1 ori.w #0,-(a6) add.b -$75(a0,d0.w),d1 ori.b #$20,d0 ; ' ' move.b -(a6),-$8000(a0) asr.b d2,d0 move.b -(sp),0(a3) asr.b d2,d0 move.w -(sp),-$8000(a0) asr.b d2,d0 move.w 0(a0),-$15F6(a3) ori.w #0,d2 asr.b d5,d0 moveq #$42,d3 ; 'B' or.b d0,d0 asr.b d5,d0 ; --------------------------------------------------------------------------- dc.b $77 ; w dc.b $43 ; C dc.b 0 dc.b 0 dc.b $EA dc.b $20 dc.b $81 ; ? dc.b $43 ; C dc.b $80 ; ? dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $82 ; ? dc.b $44 ; D dc.b 0 dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $83 ; ? dc.b $44 ; D dc.b $80 ; ? dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $84 ; ? dc.b $45 ; E dc.b 0 dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $85 ; ? dc.b $45 ; E dc.b $80 ; ? dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $88 ; ? dc.b $46 ; F dc.b 0 dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $89 ; ? dc.b $46 ; F dc.b $80 ; ? dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $8A ; ? dc.b $47 ; G dc.b 0 dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $8C ; ? dc.b $47 ; G dc.b $80 ; ? dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $8E ; ? dc.b $48 ; H dc.b 0 dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $8F ; ? dc.b $48 ; H dc.b $80 ; ? dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $9B ; ? dc.b $AA ; ? dc.b 0 dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $9C ; ? dc.b $49 ; I dc.b 0 dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $9D ; ? dc.b $49 ; I dc.b $80 ; ? dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $B4 ; ? dc.b $4A ; J dc.b 0 dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $B7 ; ? dc.b $4A ; J dc.b $80 ; ? dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $CB ; ? dc.b $4B ; K dc.b 0 dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $CC ; ? dc.b $4B ; K dc.b $80 ; ? dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $D5 ; ? dc.b $4C ; L dc.b 0 dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $DF ; ? dc.b $4C ; L dc.b $80 ; ? dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $E2 ; ? dc.b $4D ; M dc.b 0 dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $E4 ; ? dc.b $4D ; M dc.b $80 ; ? dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $E8 ; ? dc.b $AC ; ? dc.b 0 dc.b 0 dc.b $EA ; ? dc.b $20 dc.b $E9 ; ? dc.b $4E ; N dc.b 0 dc.b 0 dc.b $F2 ; ? dc.b $11 dc.b 0 dc.b $8B ; ? dc.b $80 ; ? dc.b 0 dc.b $FA ; ? dc.b 1 dc.b 0 dc.b $8C ; ? dc.b 0 dc.b 0 dc.b $FA ; ? dc.b 2 dc.b 0 dc.b $8C ; ? dc.b $80 ; ? dc.b 0 dc.b $FA ; ? dc.b 3 dc.b 0 dc.b $8D ; ? dc.b 0 dc.b 0 dc.b $FA ; ? dc.b 4 dc.b 0 dc.b $8D ; ? dc.b $80 ; ? dc.b 0 dc.b $FA ; ? dc.b 5 dc.b 0 dc.b $8E ; ? dc.b 0 dc.b 0 dc.b $FE ; ? dc.b 6 dc.b 0 dc.b $68 ; h dc.b $80 ; ? dc.b 0 dc.b $FE ; ? dc.b 3 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b 0 dc.b $50 ; P dc.b 0 dc.b 0 byte_87C26: dc.b $3A ; DATA XREF: sub_451EA+ACr byte_87C27: dc.b 3 ; DATA XREF: sub_451EA+C8r byte_87C28: dc.b 0 ; DATA XREF: sub_451EA+DAr dc.b $70 ; p dc.b 0 dc.b 0 dc.b $3A ; : dc.b $10 dc.b 0 dc.b $60 ; ` dc.b 0 dc.b 0 byte_87C32: dc.b 1 ; DATA XREF: sub_451EA+1B6r ; sub_451EA+1EAr dc.b 2 dc.b 3 dc.b 4 dc.b 5 dc.b 6 dc.b 7 dc.b 8 dc.b 9 dc.b 0 CurveTable_22_Rows_Supported_physical_OBD_message_modes:dc.b $10 ; DATA XREF: sub_45A50+1Cr ; sub_45A50+50r dc.b $12 dc.b $14 dc.b $17 dc.b $19 dc.b $20 dc.b $22 ; " dc.b $23 ; # dc.b $27 ; ' dc.b $28 ; ( dc.b $29 ; ) dc.b $2A ; * dc.b $2C ; , dc.b $34 ; 4 dc.b $36 ; 6 dc.b $3B ; ; dc.b $3C ; < dc.b $3F ; ? dc.b $A0 ; ? dc.b $A1 ; ? dc.b $A8 ; ? dc.b $AE ; ? off_87C52: dc.l loc_3E8A4 ; DATA XREF: sub_451EA+206o dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 3 dc.b $E8 ; ? dc.b $DA ; ? dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 3 dc.b $EA ; ? dc.b 2 dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 3 dc.b $EA ; ? dc.b $34 ; 4 dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 3 dc.b $EA ; ? dc.b $5C ; \ dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 3 dc.b $F6 ; ? dc.b $18 dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 3 dc.b $F6 ; ? dc.b $4E ; N dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 3 dc.b $F6 ; ? dc.b $CC ; ? dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 3 dc.b $F9 ; ? dc.b $1E dc.b $91 ; ? dc.b 0 off_87C88: dc.l loc_3FD48 ; DATA XREF: sub_45A50+6Co dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 3 dc.b $FE ; ? dc.b $C6 ; ? dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b 0 dc.b $2C ; , dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b 0 dc.b $78 ; x dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b 1 dc.b $9A ; ? dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b 2 dc.b $78 ; x dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b 4 dc.b $FA ; ? dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b 6 dc.b $B0 ; ? dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b 7 dc.b $7A ; z dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b 8 dc.b $EA ; ? dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b 9 dc.b $4A ; J dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b $F dc.b $E dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b $15 dc.b $A dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b $15 dc.b $98 ; ? dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b $16 dc.b $EC ; ? dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b $17 dc.b 8 dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b $19 dc.b 6 dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b $1A dc.b $D6 ; ? dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b $1A dc.b $EA ; ? dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b $1B dc.b $42 ; B dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b $1B dc.b $94 ; ? dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 4 dc.b $1B dc.b $EC ; ? dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $90 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 off_87D16: dc.l unk_FFB554 ; DATA XREF: sub_458E6+ACo dc.b $80 ; ? byte_87D1B: dc.b 0 ; DATA XREF: sub_451EA+302r ; sub_45CCE+42r byte_87D1C: dc.b $5B ; DATA XREF: sub_45CCE+50r byte_87D1D: dc.b 0 ; DATA XREF: sub_451EA+2F8r ; sub_45CCE+32r dc.l unk_FFB554 dc.b $80 ; ? dc.b 0 dc.b $16 dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $80 ; ? dc.b 0 dc.b 8 dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $80 ; ? dc.b 0 dc.b $A dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $90 ; ? dc.b 0 dc.b 9 dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $1F dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $20 dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $21 ; ! dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $22 ; " dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $23 ; # dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $24 ; $ dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $25 ; % dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $26 ; & dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $27 ; ' dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $29 ; ) dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $2A ; * dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $2B ; + dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $2C ; , dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $2D ; - dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $2E ; . dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $2F ; / dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $34 ; 4 dc.b 0 dc.b 0 dc.b $FF dc.b $B5 ; ? dc.b $54 ; T dc.b $A0 ; ? dc.b 0 dc.b $35 ; 5 dc.b 0 off_87DFE: dc.l loc_48A9C ; DATA XREF: sub_458E6+E6o dc.b $91 ; ? byte_87E03: dc.b $67 ; DATA XREF: sub_451EA+37Cr ; sub_45CCE+E4r ... dc.b $53 ; S byte_87E05: dc.b 5 ; DATA XREF: sub_451EA+372r ; sub_45CCE+D4r dc.l loc_48BC2 dc.b $91 ; ? dc.b $55 ; U dc.b $3A ; : dc.b 9 dc.b 0 dc.b 4 dc.b $8C ; ? dc.b $84 ; ? dc.b $91 ; ? dc.b $11 dc.b $12 dc.b 0 dc.b 0 dc.b 4 dc.b $8D ; ? dc.b $9E ; ? dc.b $91 ; ? dc.b $56 ; V dc.b $3B ; ; dc.b $C dc.b 0 dc.b 4 dc.b $8F ; ? dc.b $38 ; 8 dc.b $91 ; ? dc.b $5F ; _ dc.b $69 ; i dc.b 2 off_87E26: dc.l loc_48ABC ; DATA XREF: sub_458E6+CCo dc.b $91 ; ? byte_87E2B: dc.b $38 ; DATA XREF: sub_451EA+328r ; sub_45CCE+7Er byte_87E2C: dc.b 6 ; DATA XREF: sub_451EA+31Er ; sub_45CCE+6Er dc.l loc_488+3 dc.b $16 dc.b $91 ; ? dc.b $39 ; 9 dc.b 7 dc.b 0 dc.b 0 dc.b 4 dc.b $8B ; ? dc.b $68 ; h dc.b $91 ; ? dc.b 0 dc.b 8 dc.b 0 dc.b 0 dc.b 4 dc.b $8B ; ? dc.b $E6 ; ? dc.b $91 ; ? dc.b $68 ; h dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $8C ; ? dc.b $BC ; ? dc.b $91 ; ? dc.b $50 ; P dc.b $A dc.b 0 dc.b 0 dc.b 4 dc.b $8D ; ? dc.b $BA ; ? dc.b $91 ; ? dc.b $51 ; Q dc.b $D dc.b 0 dc.b 0 dc.b 4 dc.b $8F ; ? dc.b $B2 ; ? dc.b $91 ; ? dc.b $5E ; ^ dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $8F ; ? dc.b $DC ; ? dc.b $91 ; ? dc.b $40 ; @ dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $90 ; ? dc.b $5E ; ^ dc.b $91 ; ? dc.b 0 dc.b $13 dc.b 0 dc.b 0 dc.b 4 dc.b $90 ; ? dc.b $8E ; ? dc.b $91 ; ? dc.b 2 dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $90 ; ? dc.b $D8 ; ? dc.b $91 ; ? dc.b $62 ; b dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $91 ; ? dc.b $12 dc.b $91 ; ? dc.b $47 ; G dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $91 ; ? dc.b $28 ; ( dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $91 ; ? dc.b $4C ; L dc.b $91 ; ? dc.b $63 ; c dc.b $14 dc.b 0 dc.b 0 dc.b 4 dc.b $91 ; ? dc.b $6E ; n dc.b $91 ; ? dc.b $63 ; c dc.b $15 dc.b 0 dc.b 0 dc.b 4 dc.b $91 ; ? dc.b $90 ; ? dc.b $91 ; ? dc.b $63 ; c dc.b $16 dc.b 0 dc.b 0 dc.b 4 dc.b $91 ; ? dc.b $B2 ; ? dc.b $91 ; ? dc.b $63 ; c dc.b $17 dc.b 0 dc.b 0 dc.b 4 dc.b $92 ; ? dc.b $20 dc.b $91 ; ? dc.b $65 ; e dc.b 3 dc.b 0 unk_87EB6: dc.b $B ; DATA XREF: sub_458E6+104o dc.b $37 ; 7 dc.b 4 dc.b $D dc.b $E dc.b $F dc.b $57 ; W dc.b $5A ; Z dc.b $15 dc.b $3E ; > dc.b 7 dc.b $17 dc.b $5D ; ] dc.b $41 ; A dc.b $1D dc.b $42 ; B dc.b $1E dc.b $43 ; C dc.b $44 ; D dc.b $61 ; a dc.b $45 ; E dc.b $46 ; F dc.b $52 ; R dc.b $48 ; H dc.b $49 ; I dc.b $4A ; J dc.b $4B ; K dc.b $4C ; L dc.b $4D ; M dc.b 0 unk_87ED4: dc.b $C ; DATA XREF: sub_458E6+11Eo dc.b $10 dc.b 5 dc.b $13 dc.b $14 dc.b 3 dc.b 6 dc.b $18 dc.b $1A dc.b $1B dc.b 1 dc.b 0 off_87EE0: dc.l loc_48E36 ; DATA XREF: sub_458E6+13Co dc.b $C1 ; ? byte_87EE5: dc.b $58 ; DATA XREF: sub_451EA+3D0r ; sub_45CCE+160r byte_87EE6: dc.b 0 ; DATA XREF: sub_45CCE+16Er byte_87EE7: dc.b 0 ; DATA XREF: sub_451EA+3C6r ; sub_45CCE+150r dc.l loc_48EA8 dc.b $91 ; ? dc.b $59 ; Y dc.b 0 dc.b $F dc.b 0 dc.b 4 dc.b $8E ; ? dc.b $EA ; ? dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $8F ; ? dc.b $14 dc.b $91 ; ? dc.b 0 dc.b $5C ; \ dc.b 0 dc.b 0 dc.b 4 dc.b $8F ; ? dc.b $62 ; b dc.b $91 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $91 ; ? dc.b $D4 ; ? dc.b $91 ; ? dc.b $64 ; d dc.b 0 dc.b $11 dc.b 0 dc.b 4 dc.b $92 ; ? dc.b 0 dc.b $91 ; ? dc.b 0 dc.b 0 dc.b $12 off_87F18: dc.l loc_48A70 ; DATA XREF: sub_458E6+158o dc.b $91 ; ? byte_87F1D: dc.b $54 ; DATA XREF: sub_451EA+3F6r ; sub_45CCE+19Cr byte_87F1E: dc.b $C ; DATA XREF: sub_45CCE+1AAr byte_87F1F: dc.b 4 ; DATA XREF: sub_451EA+3ECr ; sub_45CCE+18Cr dc.l loc_49000 dc.b $91 ; ? dc.b $60 ; ` dc.b $1C dc.b $10 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $80 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $80 ; ? dc.b $80 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 off_87F44: dc.l loc_48CEE ; DATA XREF: sub_451EA+14Co dc.b $91 ; ? byte_87F49: dc.b $66 ; DATA XREF: sub_451EA+3ACr ; sub_45CCE+126r ... dc.b $4F ; O byte_87F4B: dc.b $B ; DATA XREF: sub_451EA+3A2r ; sub_45CCE+116r off_87F4C: dc.l loc_48DDE ; DATA XREF: sub_451EA+134o dc.b $91 ; ? byte_87F51: dc.b $6B ; DATA XREF: sub_451EA+358r ; sub_45CCE+B8r byte_87F52: dc.b $E ; DATA XREF: sub_451EA+34Er ; sub_45CCE+A8r dc.b 0 byte_87F54: dc.b 5 ; DATA XREF: OS2:00049F60r ; OS2:00049F82r ... dc.b 6 dc.b 7 dc.b 8 dc.b 9 dc.b $A dc.b $B dc.b $C dc.b $D dc.b $E dc.b $F dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 byte_87F65: dc.b 0 ; DATA XREF: OS2:00049F5Ar byte_87F66: dc.b 1 ; DATA XREF: OS2:00049F7Cr byte_87F67: dc.b 2 ; DATA XREF: OS2:00049F9Ar byte_87F68: dc.b 3 ; DATA XREF: OS2:0004A076r byte_87F69: dc.b 4 ; DATA XREF: OS2:0004A098r byte_87F6A: dc.b 5 ; DATA XREF: OS2:0004A0B6r byte_87F6B: dc.b 6 ; DATA XREF: OS2:0004A0D4r byte_87F6C: dc.b 7 ; DATA XREF: OS2:0004A0F2r byte_87F6D: dc.b 8 ; DATA XREF: OS2:0004A110r byte_87F6E: dc.b 9 ; DATA XREF: OS2:0004A12Er byte_87F6F: dc.b $A ; DATA XREF: OS2:0004A14Cr word_87F70: dc.w 0 ; DATA XREF: sub_26672+48r ; sub_3E928+7Ar ... byte_87F72: dc.b 0 ; DATA XREF: sub_5EDDA+44r ; sub_5EDDA+70r ... byte_87F73: dc.b 0 ; DATA XREF: sub_5F1BE+26r ; sub_5F22C+Er dc.b 0 dc.b $16 dc.b 3 dc.b 1 dc.b 0 dc.b $68 ; h dc.b $1D dc.b 5 dc.b 1 dc.b 1 dc.b 2 dc.b 1 dc.b 1 dc.b 2 dc.b 2 dc.b 1 dc.b 1 dc.b 3 dc.b 2 dc.b 1 dc.b 1 dc.b 6 dc.b $14 dc.b 1 dc.b 1 dc.b 7 dc.b $14 dc.b 1 dc.b 1 dc.b 8 dc.b $14 dc.b 1 dc.b 1 dc.b $11 dc.b $15 dc.b 1 dc.b 1 dc.b $12 dc.b $15 dc.b 1 dc.b 1 dc.b $13 dc.b $15 dc.b 1 dc.b 1 dc.b $16 dc.b 6 dc.b 1 dc.b 1 dc.b $17 dc.b 6 dc.b 1 dc.b 1 dc.b $18 dc.b 6 dc.b 1 dc.b 1 dc.b $20 dc.b $1D dc.b 1 dc.b 1 dc.b $21 ; ! dc.b $1D dc.b 1 dc.b 1 dc.b $22 ; " dc.b $1D dc.b 1 dc.b 1 dc.b $23 ; # dc.b $1D dc.b 1 dc.b 1 dc.b $25 ; % dc.b 0 dc.b 1 dc.b 1 dc.b $28 ; ( dc.b 0 dc.b 1 dc.b 1 dc.b $31 ; 1 dc.b $18 dc.b 1 dc.b 1 dc.b $32 ; 2 dc.b $18 dc.b 1 dc.b 1 dc.b $33 ; 3 dc.b $18 dc.b 1 dc.b 1 dc.b $34 ; 4 dc.b $18 dc.b 1 dc.b 1 dc.b $35 ; 5 dc.b $18 dc.b 1 dc.b 1 dc.b $36 ; 6 dc.b $18 dc.b 1 dc.b 1 dc.b $37 ; 7 dc.b $18 dc.b 1 dc.b 1 dc.b $38 ; 8 dc.b $18 dc.b 1 dc.b 1 dc.b $40 ; @ dc.b $18 dc.b 1 dc.b 1 dc.b $41 ; A dc.b $18 dc.b 1 dc.b 1 dc.b $47 ; G dc.b $18 dc.b 1 dc.b 1 dc.b $51 ; Q dc.b $18 dc.b 1 dc.b 1 dc.b $52 ; R dc.b $18 dc.b 1 dc.b 1 dc.b $53 ; S dc.b $18 dc.b 1 dc.b 1 dc.b $54 ; T dc.b $18 dc.b 1 dc.b 1 dc.b $55 ; U dc.b $18 dc.b 1 dc.b 1 dc.b $56 ; V dc.b $18 dc.b 1 dc.b 1 dc.b $57 ; W dc.b $18 dc.b 1 dc.b 1 dc.b $58 ; X dc.b $18 dc.b 1 dc.b 1 dc.b $60 ; ` dc.b $18 dc.b 1 dc.b 1 dc.b $61 ; a dc.b $18 dc.b 1 dc.b 1 dc.b $67 ; g dc.b $18 dc.b 1 dc.b 1 dc.b $69 ; i dc.b $B dc.b 1 dc.b 1 dc.b $70 ; p dc.b $10 dc.b 1 dc.b 1 dc.b $71 ; q dc.b $10 dc.b 1 dc.b 1 dc.b $72 ; r dc.b $10 dc.b 1 dc.b 1 dc.b $73 ; s dc.b $10 dc.b 1 dc.b 1 dc.b $74 ; t dc.b $10 dc.b 1 dc.b 1 dc.b $75 ; u dc.b $10 dc.b 1 dc.b 1 dc.b $77 ; w dc.b $B dc.b 1 dc.b 1 dc.b $78 ; x dc.b $B dc.b 1 dc.b 1 dc.b $79 ; y dc.b $B dc.b 1 dc.b 1 dc.b $81 ; ? dc.b $F dc.b 1 dc.b 1 dc.b $82 ; ? dc.b $F dc.b 1 dc.b 1 dc.b $83 ; ? dc.b $F dc.b 1 dc.b 2 dc.b 0 dc.b $C dc.b 1 dc.b 2 dc.b $18 dc.b 0 dc.b 4 dc.b 2 dc.b $20 dc.b $1D dc.b 1 dc.b 2 dc.b $30 ; 0 dc.b $17 dc.b 1 dc.b 2 dc.b $34 ; 4 dc.b 0 dc.b 1 word_88064: dc.w $300 ; DATA XREF: OS2:00049682r dc.b $16 dc.b 1 dc.b 3 dc.b $15 dc.b 0 dc.b 1 dc.b 3 dc.b $25 ; % dc.b 9 dc.b 1 dc.b 3 dc.b $27 ; ' dc.b 9 dc.b 1 dc.b 3 dc.b $32 ; 2 dc.b 9 dc.b 1 dc.b 3 dc.b $35 ; 5 dc.b 4 dc.b 1 dc.b 3 dc.b $36 ; 6 dc.b 4 dc.b 1 dc.b 3 dc.b $41 ; A dc.b 3 dc.b 1 dc.b 3 dc.b $42 ; B dc.b 3 dc.b 1 dc.b 3 dc.b $43 ; C dc.b 3 dc.b 1 dc.b 3 dc.b $51 ; Q dc.b $A dc.b 1 dc.b 3 dc.b $52 ; R dc.b $A dc.b 1 dc.b 3 dc.b $53 ; S dc.b $A dc.b 1 dc.b 3 dc.b $54 ; T dc.b $A dc.b 1 dc.b 3 dc.b $55 ; U dc.b $A dc.b 1 dc.b 3 dc.b $56 ; V dc.b $A dc.b 1 dc.b 3 dc.b $57 ; W dc.b $A dc.b 1 dc.b 3 dc.b $58 ; X dc.b $A dc.b 1 dc.b 4 dc.b 0 dc.b 7 dc.b 1 dc.b 4 dc.b 1 dc.b 7 dc.b 1 dc.b 4 dc.b 2 dc.b 7 dc.b 1 dc.b 4 dc.b 4 dc.b 7 dc.b 1 dc.b 4 dc.b 5 dc.b 7 dc.b 1 dc.b 4 dc.b 9 dc.b 8 dc.b 1 dc.b 4 dc.b $10 dc.b 1 dc.b 1 dc.b 4 dc.b $12 dc.b $17 dc.b 1 dc.b 4 dc.b $18 dc.b $17 dc.b 1 dc.b 4 dc.b $20 dc.b 5 dc.b 1 dc.b 4 dc.b $30 ; 0 dc.b 5 dc.b 1 dc.b 4 dc.b $42 ; B dc.b $1B dc.b 1 dc.b 4 dc.b $43 ; C dc.b $17 dc.b 1 dc.b 4 dc.b $46 ; F dc.b $1B dc.b 1 dc.b 4 dc.b $49 ; I dc.b $17 dc.b 1 dc.b 4 dc.b $52 ; R dc.b $1B dc.b 1 dc.b 4 dc.b $53 ; S dc.b $1B dc.b 1 dc.b 4 dc.b $55 ; U dc.b $1B dc.b 1 dc.b 4 dc.b $61 ; a dc.b $D dc.b 1 dc.b 4 dc.b $62 ; b dc.b $D dc.b 1 dc.b 4 dc.b $63 ; c dc.b $D dc.b 1 dc.b 4 dc.b $80 ; ? dc.b $17 dc.b 1 dc.b 4 dc.b $81 ; ? dc.b $17 dc.b 1 dc.b 4 dc.b $83 ; ? dc.b 0 dc.b 1 dc.b 4 dc.b $91 ; ? dc.b 1 dc.b 1 dc.b 4 dc.b $92 ; ? dc.b 1 dc.b 1 dc.b 4 dc.b $93 ; ? dc.b 0 dc.b 1 dc.b 4 dc.b $95 ; ? dc.b 0 dc.b 1 dc.b 4 dc.b $96 ; ? dc.b $1B dc.b 1 dc.b 5 dc.b 0 dc.b $1F dc.b 4 dc.b 5 dc.b 2 dc.b $1F dc.b 4 dc.b 5 dc.b 3 dc.b $1F dc.b 4 dc.b 5 dc.b 6 dc.b $12 dc.b 1 dc.b 5 dc.b 7 dc.b $12 dc.b 1 dc.b 5 dc.b $22 ; " dc.b 0 dc.b 1 dc.b 5 dc.b $23 ; # dc.b 0 dc.b 1 dc.b 5 dc.b $26 ; & dc.b 0 dc.b 1 dc.b 5 dc.b $30 ; 0 dc.b $11 dc.b 2 dc.b 5 dc.b $31 ; 1 dc.b $11 dc.b 2 dc.b 5 dc.b $60 ; ` dc.b 0 dc.b 4 dc.b 5 dc.b $62 ; b dc.b 0 dc.b 4 dc.b 5 dc.b $63 ; c dc.b 0 dc.b 4 dc.b 5 dc.b $67 ; g dc.b 0 dc.b 1 dc.b 5 dc.b $68 ; h dc.b 0 dc.b 1 dc.b 5 dc.b $71 ; q dc.b 0 dc.b 7 dc.b 6 dc.b 1 dc.b 0 dc.b 7 dc.b 6 dc.b 2 dc.b 0 dc.b 7 dc.b 6 dc.b 4 dc.b 0 dc.b 7 dc.b 6 dc.b 5 dc.b 0 dc.b 7 dc.b 6 dc.b 6 dc.b 0 dc.b 7 dc.b 6 dc.b 8 dc.b 0 dc.b 7 dc.b 6 dc.b 9 dc.b $17 dc.b 1 dc.b 6 dc.b $15 dc.b $17 dc.b 1 dc.b 6 dc.b $22 ; " dc.b 0 dc.b 7 dc.b 6 dc.b $41 ; A dc.b 0 dc.b 1 dc.b 6 dc.b $45 ; E dc.b $17 dc.b 1 dc.b 6 dc.b $50 ; P dc.b $17 dc.b 1 dc.b 6 dc.b $51 ; Q dc.b 0 dc.b 1 dc.b 6 dc.b $54 ; T dc.b $17 dc.b 1 dc.b 7 dc.b 0 dc.b $1E dc.b 4 dc.b 7 dc.b 5 dc.b $19 dc.b 4 dc.b 7 dc.b 6 dc.b $19 dc.b 4 dc.b 7 dc.b $11 dc.b 0 dc.b 4 dc.b 7 dc.b $12 dc.b 0 dc.b 4 dc.b 7 dc.b $13 dc.b 0 dc.b 4 dc.b 7 dc.b $16 dc.b $1E dc.b 4 dc.b 7 dc.b $17 dc.b $1E dc.b 4 dc.b 7 dc.b $19 dc.b 0 dc.b 4 dc.b 7 dc.b $24 ; $ dc.b 0 dc.b 4 dc.b 7 dc.b $30 ; 0 dc.b 0 dc.b 4 dc.b 7 dc.b $40 ; @ dc.b $1E dc.b 4 dc.b 7 dc.b $41 ; A dc.b $1E dc.b 4 dc.b 7 dc.b $42 ; B dc.b $1E dc.b 4 dc.b 7 dc.b $48 ; H dc.b $17 dc.b 1 dc.b 7 dc.b $51 ; Q dc.b $1E dc.b 4 dc.b 7 dc.b $52 ; R dc.b $1E dc.b 4 dc.b 7 dc.b $53 ; S dc.b $1E dc.b 4 dc.b 7 dc.b $56 ; V dc.b $1E dc.b 4 dc.b 7 dc.b $57 ; W dc.b $1E dc.b 4 dc.b 7 dc.b $58 ; X dc.b $1E dc.b 4 dc.b 7 dc.b $85 ; ? dc.b $1E dc.b 4 dc.b 8 dc.b 1 dc.b $17 dc.b 1 dc.b 8 dc.b 2 dc.b $1E dc.b 4 dc.b 8 dc.b 3 dc.b $17 dc.b 1 dc.b 8 dc.b 4 dc.b $17 dc.b 1 dc.b 8 dc.b $33 ; 3 dc.b $19 dc.b 4 dc.b 8 dc.b $50 ; P dc.b $1E dc.b 4 dc.b 8 dc.b $56 ; V dc.b 0 dc.b 1 dc.b 8 dc.b $94 ; ? dc.b $1E dc.b 4 dc.b $11 dc.b 6 dc.b 0 dc.b 1 dc.b $11 dc.b 7 dc.b 0 dc.b 1 dc.b $11 dc.b $11 dc.b 0 dc.b 1 dc.b $11 dc.b $12 dc.b 0 dc.b 1 dc.b $11 dc.b $14 dc.b 0 dc.b 1 dc.b $11 dc.b $15 dc.b 0 dc.b 1 dc.b $11 dc.b $21 ; ! dc.b 0 dc.b 1 dc.b $11 dc.b $22 ; " dc.b 0 dc.b 1 dc.b $11 dc.b $25 ; % dc.b $1D dc.b 1 dc.b $11 dc.b $33 ; 3 dc.b $18 dc.b 1 dc.b $11 dc.b $34 ; 4 dc.b $18 dc.b 1 dc.b $11 dc.b $35 ; 5 dc.b $18 dc.b 1 dc.b $11 dc.b $36 ; 6 dc.b $18 dc.b 1 dc.b $11 dc.b $53 ; S dc.b $18 dc.b 1 dc.b $11 dc.b $54 ; T dc.b $18 dc.b 1 dc.b $11 dc.b $55 ; U dc.b $18 dc.b 1 dc.b $11 dc.b $56 ; V dc.b $18 dc.b 1 dc.b $12 dc.b $58 ; X dc.b $13 dc.b 1 dc.b $12 dc.b $74 ; t dc.b 0 dc.b 1 dc.b $13 dc.b $80 ; ? dc.b 0 dc.b 1 dc.b $13 dc.b $81 ; ? dc.b 0 dc.b 1 dc.b $14 dc.b 4 dc.b 7 dc.b 1 dc.b $14 dc.b $10 dc.b 7 dc.b 1 dc.b $15 dc.b 8 dc.b $12 dc.b 1 dc.b $15 dc.b 9 dc.b $12 dc.b 1 dc.b $15 dc.b $16 dc.b $1D dc.b 5 dc.b $15 dc.b $27 ; ' dc.b $1E dc.b 4 dc.b $15 dc.b $39 ; 9 dc.b $11 dc.b 2 dc.b $15 dc.b $46 ; F dc.b $11 dc.b 2 dc.b $15 dc.b $72 ; r dc.b 0 dc.b 1 dc.b $15 dc.b $74 ; t dc.b 0 dc.b 7 dc.b $15 dc.b $75 ; u dc.b 0 dc.b 7 dc.b $15 dc.b $85 ; ? dc.b $17 dc.b 1 dc.b $16 dc.b $26 ; & dc.b 0 dc.b 1 dc.b $16 dc.b $30 ; 0 dc.b 0 dc.b 1 dc.b $16 dc.b $31 ; 1 dc.b 0 dc.b 1 dc.b $16 dc.b $37 ; 7 dc.b 0 dc.b 7 dc.b $16 dc.b $52 ; R dc.b $17 dc.b 7 dc.b $16 dc.b $54 ; T dc.b $17 dc.b 1 dc.b $16 dc.b $59 ; Y dc.b $17 dc.b 1 dc.b $16 dc.b $60 ; ` dc.b $17 dc.b 1 dc.b $16 dc.b $61 ; a dc.b $17 dc.b 1 dc.b $16 dc.b $63 ; c dc.b $17 dc.b 1 dc.b $16 dc.b $65 ; e dc.b $17 dc.b 1 dc.b $16 dc.b $66 ; f dc.b $17 dc.b 1 dc.b $16 dc.b $88 ; ? dc.b $17 dc.b 1 dc.b $16 dc.b $89 ; ? dc.b $17 dc.b 1 dc.b $18 dc.b $10 dc.b $1E dc.b 4 dc.b $18 dc.b $11 dc.b $1E dc.b 4 dc.b $18 dc.b $15 dc.b $1E dc.b 4 dc.b $18 dc.b $19 dc.b $1E dc.b 4 dc.b $18 dc.b $20 dc.b $1E dc.b 4 dc.b $18 dc.b $22 ; " dc.b $1E dc.b 4 dc.b $18 dc.b $23 ; # dc.b $1E dc.b 4 dc.b $18 dc.b $25 ; % dc.b $1E dc.b 4 dc.b $18 dc.b $26 ; & dc.b $1E dc.b 4 dc.b $20 dc.b $25 ; % dc.b 0 dc.b 1 dc.b $20 dc.b $26 ; & dc.b 0 dc.b 1 dc.b $20 dc.b $27 ; ' dc.b 0 dc.b 1 dc.b $20 dc.b $66 ; f dc.b $D dc.b 1 dc.b $20 dc.b $67 ; g dc.b $D dc.b 1 dc.b $20 dc.b $68 ; h dc.b $D dc.b 1 dc.b $21 ; ! dc.b 1 dc.b $1D dc.b 5 dc.b $21 ; ! dc.b 8 dc.b $1D dc.b 5 dc.b $21 ; ! dc.b $19 dc.b 0 dc.b 5 dc.b $21 ; ! dc.b $20 dc.b 0 dc.b 1 dc.b $21 ; ! dc.b $21 ; ! dc.b 0 dc.b 1 dc.b $21 ; ! dc.b $25 ; % dc.b 0 dc.b 5 dc.b $21 ; ! dc.b $26 ; & dc.b 0 dc.b 5 dc.b $21 ; ! dc.b $30 ; 0 dc.b 0 dc.b 5 dc.b $21 ; ! dc.b $31 ; 1 dc.b 0 dc.b 5 dc.b $21 ; ! dc.b $35 ; 5 dc.b $1D dc.b 1 dc.b $22 ; " dc.b $79 ; y dc.b 0 dc.b 1 dc.b $26 ; & dc.b $10 dc.b 0 dc.b 7 dc.b $26 ; & dc.b $36 ; 6 dc.b 0 dc.b 1 dc.b $27 ; ' dc.b $61 ; a dc.b $1E dc.b 4 dc.b $27 ; ' dc.b $71 ; q dc.b $1E dc.b 4 dc.b $C1 ; ? dc.b 7 dc.b $1D dc.b 5 dc.b $D0 ; ? dc.b 0 dc.b 0 dc.b 6 dc.b $D0 ; ? dc.b $24 ; $ dc.b 0 dc.b 6 dc.b $D0 ; ? dc.b $26 ; & dc.b 0 dc.b 6 dc.b $D0 ; ? dc.b $40 ; @ dc.b 0 dc.b 6 dc.b $D0 ; ? dc.b $41 ; A dc.b 0 dc.b 6 dc.b $D0 ; ? dc.b $56 ; V dc.b 0 dc.b 6 dc.b $D0 ; ? dc.b $57 ; W dc.b 0 dc.b 6 dc.b $D0 ; ? dc.b $64 ; d dc.b 0 dc.b 6 dc.b $D0 ; ? dc.b $96 ; ? dc.b 0 dc.b 6 dc.b $D1 ; ? dc.b $53 ; S dc.b 0 dc.b 6 dc.b $D1 ; ? dc.b $92 ; ? dc.b 0 dc.b 6 dc.b $D1 ; ? dc.b $93 ; ? dc.b 0 dc.b 6 dc.b $D2 ; ? dc.b $55 ; U dc.b 0 dc.b 6 dc.b $D3 ; ? dc.b 0 dc.b 0 dc.b 6 dc.b $D3 ; ? dc.b 1 dc.b 0 dc.b 6 unk_88384: dc.b 2 ; DATA XREF: OS1:0003FA80o dc.b 0 dc.b 0 dc.b 4 dc.b $95 ; ? dc.b $FA ; ? dc.b 2 dc.b 0 dc.b 0 dc.b 4 dc.b $9E ; ? dc.b $BC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $95 ; ? dc.b $EC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $9E ; ? dc.b $82 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9E ; ? dc.b $2C ; , dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9E ; ? dc.b $1A dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9D ; ? dc.b $F2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9D ; ? dc.b $CA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9D ; ? dc.b $A2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9D ; ? dc.b $7A ; z dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $95 ; ? dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9D ; ? dc.b $6E ; n dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $9D ; ? dc.b $62 ; b dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9D ; ? dc.b $2A ; * dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9D ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9C ; ? dc.b $EE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $9C ; ? dc.b $E2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9C ; ? dc.b $C8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9C ; ? dc.b $90 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9C ; ? dc.b $88 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $9C ; ? dc.b $3A ; : dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $9C ; ? dc.b $10 dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $95 ; ? dc.b $EC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $95 ; ? dc.b $EC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $9B ; ? dc.b $C2 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $9B ; ? dc.b $98 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $95 ; ? dc.b $EC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $95 ; ? dc.b $EC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9B ; ? dc.b $90 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $95 ; ? dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9B ; ? dc.b $56 ; V dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $95 ; ? dc.b $E8 ; ? dc.b 2 dc.b 0 dc.b 0 dc.b 4 dc.b $96 ; ? dc.b $26 ; & dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $9B ; ? dc.b $50 ; P unk_88450: dc.b 2 ; DATA XREF: OS1:0003FA4Ao dc.b 0 dc.b 0 dc.b 4 dc.b $96 ; ? dc.b $52 ; R dc.b 2 dc.b 0 dc.b 0 dc.b 4 dc.b $95 ; ? dc.b $F2 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $96 ; ? dc.b $7E ; ~ dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $96 ; ? dc.b $90 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $96 ; ? dc.b $A0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $96 ; ? dc.b $AA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $96 ; ? dc.b $BA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $96 ; ? dc.b $CA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $96 ; ? dc.b $DA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $96 ; ? dc.b $EA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $95 ; ? dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $96 ; ? dc.b $FA ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $97 ; ? dc.b $A dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $97 ; ? dc.b $1A dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $95 ; ? dc.b $EC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $95 ; ? dc.b $EC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $97 ; ? dc.b $2A ; * dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $97 ; ? dc.b $3A ; : byte_884BC: dc.b 1 ; DATA XREF: OS2:00049E8Cr ; OS2:00049EA4r dc.b 4 dc.b 2 dc.b $10 dc.b 8 dc.b 0 word_884C2: dc.w 2 ; DATA XREF: sub_497D4+5Cr byte_884C4: dc.b 1 ; DATA XREF: sub_497D4+64r dc.b 0 off_884C6: dc.l loc_4986E ; DATA XREF: sub_497D4+72r ; sub_497D4:loc_49856r dc.l loc_30100 dc.l loc_4988E dc.l unk_40000 dc.l loc_4989C dc.l loc_50000 dc.l loc_498A4 dc.l loc_60000 dc.l loc_498B2 dc.l loc_6FFFC+4 dc.l loc_498C0 dc.l unk_80000 dc.l loc_498CE dc.b 0 dc.b 9 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $98 ; ? dc.b $DC ; ? dc.b 0 dc.b $B dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $98 ; ? dc.b $EA ; ? dc.b 0 dc.b $C dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $98 ; ? dc.b $F8 ; ? dc.b 0 dc.b $D dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $99 ; ? dc.b 6 dc.b 0 dc.b $10 dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $99 ; ? dc.b $14 dc.b 0 dc.b $11 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $99 ; ? dc.b $22 ; " dc.b $11 dc.b 2 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $99 ; ? dc.b $30 ; 0 dc.b $11 dc.b $4B ; K dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $99 ; ? dc.b $40 ; @ dc.b $11 dc.b $4C ; L dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $99 ; ? dc.b $50 ; P dc.b $11 dc.b $4E ; N dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $99 ; ? dc.b $60 ; ` dc.b $11 dc.b $52 ; R dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $99 ; ? dc.b $70 ; p dc.b $11 dc.b $6F ; o dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $99 ; ? dc.b $80 ; ? dc.b $11 dc.b $92 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $99 ; ? dc.b $90 ; ? dc.b $11 dc.b $9B ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $99 ; ? dc.b $A0 ; ? dc.b $11 dc.b $9D ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $99 ; ? dc.b $B0 ; ? dc.b $11 dc.b $9E ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $99 ; ? dc.b $C0 ; ? dc.b $11 dc.b $A1 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $99 ; ? dc.b $D0 ; ? dc.b $11 dc.b $E9 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $99 ; ? dc.b $E0 ; ? dc.b $12 dc.b $35 ; 5 dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $99 ; ? dc.b $F0 ; ? dc.b $12 dc.b $36 ; 6 dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $9A ; ? dc.b $10 dc.b $12 dc.b $37 ; 7 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9A ; ? dc.b $30 ; 0 dc.b $12 dc.b $38 ; 8 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9A ; ? dc.b $50 ; P dc.b $12 dc.b $39 ; 9 dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9A ; ? dc.b $70 ; p dc.b $12 dc.b $5A ; Z dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $9A ; ? dc.b $90 ; ? dc.b $12 dc.b $5B ; [ dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $9A ; ? dc.b $A0 ; ? dc.b $12 dc.b $B0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9A ; ? dc.b $B0 ; ? dc.b $12 dc.b $B1 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $9A ; ? dc.b $C0 ; ? dc.b $12 dc.b $F3 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9A ; ? dc.b $D0 ; ? dc.b $13 dc.b $1E dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $9A ; ? dc.b $E0 ; ? dc.b $13 dc.b $1F dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $9A ; ? dc.b $F0 ; ? dc.b $13 dc.b $9C ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9B ; ? dc.b 0 dc.b $13 dc.b $9D ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $9B ; ? dc.b $10 dc.b $19 dc.b $21 ; ! dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9B ; ? dc.b $20 dc.b $19 dc.b $42 ; B dc.b 1 dc.b 0 dc.b 0 dc.b 4 dc.b $9B ; ? dc.b $30 ; 0 dc.b $19 dc.b $9A ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 4 dc.b $9B ; ? dc.b $40 ; @ word_88612: dc.w 0 ; DATA XREF: DoLoopG+442r dc.b $C1 ; ? dc.b $C0 ; ? dc.b $81 ; ? dc.b $C1 ; ? dc.b $40 ; @ dc.b 1 dc.b 1 dc.b $C3 ; ? dc.b $C0 ; ? dc.b 3 dc.b $80 ; ? dc.b 2 dc.b $41 ; A dc.b $C2 ; ? dc.b 1 dc.b $C6 ; ? dc.b $C0 ; ? dc.b 6 dc.b $80 ; ? dc.b 7 dc.b $41 ; A dc.b $C7 ; ? dc.b 0 dc.b 5 dc.b $C1 ; ? dc.b $C5 ; ? dc.b $81 ; ? dc.b $C4 ; ? dc.b $40 ; @ dc.b 4 dc.b 1 dc.b $CC ; ? dc.b $C0 ; ? dc.b $C dc.b $80 ; ? dc.b $D dc.b $41 ; A dc.b $CD ; ? dc.b 0 dc.b $F dc.b $C1 ; ? dc.b $CF ; ? dc.b $81 ; ? dc.b $CE ; ? dc.b $40 ; @ dc.b $E dc.b 0 dc.b $A dc.b $C1 ; ? dc.b $CA ; ? dc.b $81 ; ? dc.b $CB ; ? dc.b $40 ; @ dc.b $B dc.b 1 dc.b $C9 ; ? dc.b $C0 ; ? dc.b 9 dc.b $80 ; ? dc.b 8 dc.b $41 ; A dc.b $C8 ; ? dc.b 1 dc.b $D8 ; ? dc.b $C0 ; ? dc.b $18 dc.b $80 ; ? dc.b $19 dc.b $41 ; A dc.b $D9 ; ? dc.b 0 dc.b $1B dc.b $C1 ; ? dc.b $DB ; ? dc.b $81 ; ? dc.b $DA ; ? dc.b $40 ; @ dc.b $1A dc.b 0 dc.b $1E dc.b $C1 ; ? dc.b $DE ; ? dc.b $81 ; ? dc.b $DF ; ? dc.b $40 ; @ dc.b $1F dc.b 1 dc.b $DD ; ? dc.b $C0 ; ? dc.b $1D dc.b $80 ; ? dc.b $1C dc.b $41 ; A dc.b $DC ; ? dc.b 0 dc.b $14 dc.b $C1 ; ? dc.b $D4 ; ? dc.b $81 ; ? dc.b $D5 ; ? dc.b $40 ; @ dc.b $15 dc.b 1 dc.b $D7 ; ? dc.b $C0 ; ? dc.b $17 dc.b $80 ; ? dc.b $16 dc.b $41 ; A dc.b $D6 ; ? dc.b 1 dc.b $D2 ; ? dc.b $C0 ; ? dc.b $12 dc.b $80 ; ? dc.b $13 dc.b $41 ; A dc.b $D3 ; ? dc.b 0 dc.b $11 dc.b $C1 ; ? dc.b $D1 ; ? dc.b $81 ; ? dc.b $D0 ; ? dc.b $40 ; @ dc.b $10 dc.b 1 dc.b $F0 ; ? dc.b $C0 ; ? dc.b $30 ; 0 dc.b $80 ; ? dc.b $31 ; 1 dc.b $41 ; A dc.b $F1 ; ? dc.b 0 dc.b $33 ; 3 dc.b $C1 ; ? dc.b $F3 ; ? dc.b $81 ; ? dc.b $F2 ; ? dc.b $40 ; @ dc.b $32 ; 2 dc.b 0 dc.b $36 ; 6 dc.b $C1 ; ? dc.b $F6 ; ? dc.b $81 ; ? dc.b $F7 ; ? dc.b $40 ; @ dc.b $37 ; 7 dc.b 1 dc.b $F5 ; ? dc.b $C0 ; ? dc.b $35 ; 5 dc.b $80 ; ? dc.b $34 ; 4 dc.b $41 ; A dc.b $F4 ; ? dc.b 0 dc.b $3C ; < dc.b $C1 ; ? dc.b $FC ; ? dc.b $81 ; ? dc.b $FD ; ? dc.b $40 ; @ dc.b $3D ; = dc.b 1 dc.b $FF dc.b $C0 ; ? dc.b $3F ; ? dc.b $80 ; ? dc.b $3E ; > dc.b $41 ; A dc.b $FE ; ? dc.b 1 dc.b $FA ; ? dc.b $C0 ; ? dc.b $3A ; : dc.b $80 ; ? dc.b $3B ; ; dc.b $41 ; A dc.b $FB ; ? dc.b 0 dc.b $39 ; 9 dc.b $C1 ; ? dc.b $F9 ; ? dc.b $81 ; ? dc.b $F8 ; ? dc.b $40 ; @ dc.b $38 ; 8 dc.b 0 dc.b $28 ; ( dc.b $C1 ; ? dc.b $E8 ; ? dc.b $81 ; ? dc.b $E9 ; ? dc.b $40 ; @ dc.b $29 ; ) dc.b 1 dc.b $EB ; ? dc.b $C0 ; ? dc.b $2B ; + dc.b $80 ; ? dc.b $2A ; * dc.b $41 ; A dc.b $EA ; ? dc.b 1 dc.b $EE ; ? dc.b $C0 ; ? dc.b $2E ; . dc.b $80 ; ? dc.b $2F ; / dc.b $41 ; A dc.b $EF ; ? dc.b 0 dc.b $2D ; - dc.b $C1 ; ? dc.b $ED ; ? dc.b $81 ; ? dc.b $EC ; ? dc.b $40 ; @ dc.b $2C ; , dc.b 1 dc.b $E4 ; ? dc.b $C0 ; ? dc.b $24 ; $ dc.b $80 ; ? dc.b $25 ; % dc.b $41 ; A dc.b $E5 ; ? dc.b 0 dc.b $27 ; ' dc.b $C1 ; ? dc.b $E7 ; ? dc.b $81 ; ? dc.b $E6 ; ? dc.b $40 ; @ dc.b $26 ; & dc.b 0 dc.b $22 ; " dc.b $C1 ; ? dc.b $E2 ; ? dc.b $81 ; ? dc.b $E3 ; ? dc.b $40 ; @ dc.b $23 ; # dc.b 1 dc.b $E1 ; ? dc.b $C0 ; ? dc.b $21 ; ! dc.b $80 ; ? dc.b $20 dc.b $41 ; A dc.b $E0 ; ? dc.b 1 dc.b $A0 ; ? dc.b $C0 ; ? dc.b $60 ; ` dc.b $80 ; ? dc.b $61 ; a dc.b $41 ; A dc.b $A1 ; ? dc.b 0 dc.b $63 ; c dc.b $C1 ; ? dc.b $A3 ; ? dc.b $81 ; ? dc.b $A2 ; ? dc.b $40 ; @ dc.b $62 ; b dc.b 0 dc.b $66 ; f dc.b $C1 ; ? dc.b $A6 ; ? dc.b $81 ; ? dc.b $A7 ; ? dc.b $40 ; @ dc.b $67 ; g dc.b 1 dc.b $A5 ; ? dc.b $C0 ; ? dc.b $65 ; e dc.b $80 ; ? dc.b $64 ; d dc.b $41 ; A dc.b $A4 ; ? dc.b 0 dc.b $6C ; l dc.b $C1 ; ? dc.b $AC ; ? dc.b $81 ; ? dc.b $AD ; ? dc.b $40 ; @ dc.b $6D ; m dc.b 1 dc.b $AF ; ? dc.b $C0 ; ? dc.b $6F ; o dc.b $80 ; ? dc.b $6E ; n dc.b $41 ; A dc.b $AE ; ? dc.b 1 dc.b $AA ; ? dc.b $C0 ; ? dc.b $6A ; j dc.b $80 ; ? dc.b $6B ; k dc.b $41 ; A dc.b $AB ; ? dc.b 0 dc.b $69 ; i dc.b $C1 ; ? dc.b $A9 ; ? dc.b $81 ; ? dc.b $A8 ; ? dc.b $40 ; @ dc.b $68 ; h dc.b 0 dc.b $78 ; x dc.b $C1 ; ? dc.b $B8 ; ? dc.b $81 ; ? dc.b $B9 ; ? dc.b $40 ; @ dc.b $79 ; y dc.b 1 dc.b $BB ; ? dc.b $C0 ; ? dc.b $7B ; { dc.b $80 ; ? dc.b $7A ; z dc.b $41 ; A dc.b $BA ; ? dc.b 1 dc.b $BE ; ? dc.b $C0 ; ? dc.b $7E ; ~ dc.b $80 ; ? dc.b $7F ;  dc.b $41 ; A dc.b $BF ; ? dc.b 0 dc.b $7D ; } dc.b $C1 ; ? dc.b $BD ; ? dc.b $81 ; ? dc.b $BC ; ? dc.b $40 ; @ dc.b $7C ; | dc.b 1 dc.b $B4 ; ? dc.b $C0 ; ? dc.b $74 ; t dc.b $80 ; ? dc.b $75 ; u dc.b $41 ; A dc.b $B5 ; ? dc.b 0 dc.b $77 ; w dc.b $C1 ; ? dc.b $B7 ; ? dc.b $81 ; ? dc.b $B6 ; ? dc.b $40 ; @ dc.b $76 ; v dc.b 0 dc.b $72 ; r dc.b $C1 ; ? dc.b $B2 ; ? dc.b $81 ; ? dc.b $B3 ; ? dc.b $40 ; @ dc.b $73 ; s dc.b 1 dc.b $B1 ; ? dc.b $C0 ; ? dc.b $71 ; q dc.b $80 ; ? dc.b $70 ; p dc.b $41 ; A dc.b $B0 ; ? dc.b 0 dc.b $50 ; P dc.b $C1 ; ? dc.b $90 ; ? dc.b $81 ; ? dc.b $91 ; ? dc.b $40 ; @ dc.b $51 ; Q dc.b 1 dc.b $93 ; ? dc.b $C0 ; ? dc.b $53 ; S dc.b $80 ; ? dc.b $52 ; R dc.b $41 ; A dc.b $92 ; ? dc.b 1 dc.b $96 ; ? dc.b $C0 ; ? dc.b $56 ; V dc.b $80 ; ? dc.b $57 ; W dc.b $41 ; A dc.b $97 ; ? dc.b 0 dc.b $55 ; U dc.b $C1 ; ? dc.b $95 ; ? dc.b $81 ; ? dc.b $94 ; ? dc.b $40 ; @ dc.b $54 ; T dc.b 1 dc.b $9C ; ? dc.b $C0 ; ? dc.b $5C ; \ dc.b $80 ; ? dc.b $5D ; ] dc.b $41 ; A dc.b $9D ; ? dc.b 0 dc.b $5F ; _ dc.b $C1 ; ? dc.b $9F ; ? dc.b $81 ; ? dc.b $9E ; ? dc.b $40 ; @ dc.b $5E ; ^ dc.b 0 dc.b $5A ; Z dc.b $C1 ; ? dc.b $9A ; ? dc.b $81 ; ? dc.b $9B ; ? dc.b $40 ; @ dc.b $5B ; [ dc.b 1 dc.b $99 ; ? dc.b $C0 ; ? dc.b $59 ; Y dc.b $80 ; ? dc.b $58 ; X dc.b $41 ; A dc.b $98 ; ? dc.b 1 dc.b $88 ; ? dc.b $C0 ; ? dc.b $48 ; H dc.b $80 ; ? dc.b $49 ; I dc.b $41 ; A dc.b $89 ; ? dc.b 0 dc.b $4B ; K dc.b $C1 ; ? dc.b $8B ; ? dc.b $81 ; ? dc.b $8A ; ? dc.b $40 ; @ dc.b $4A ; J dc.b 0 dc.b $4E ; N dc.b $C1 ; ? dc.b $8E ; ? dc.b $81 ; ? dc.b $8F ; ? dc.b $40 ; @ dc.b $4F ; O dc.b 1 dc.b $8D ; ? dc.b $C0 ; ? dc.b $4D ; M dc.b $80 ; ? dc.b $4C ; L dc.b $41 ; A dc.b $8C ; ? dc.b 0 dc.b $44 ; D dc.b $C1 ; ? dc.b $84 ; ? dc.b $81 ; ? dc.b $85 ; ? dc.b $40 ; @ dc.b $45 ; E dc.b 1 dc.b $87 ; ? dc.b $C0 ; ? dc.b $47 ; G dc.b $80 ; ? dc.b $46 ; F dc.b $41 ; A dc.b $86 ; ? dc.b 1 dc.b $82 ; ? dc.b $C0 ; ? dc.b $42 ; B dc.b $80 ; ? dc.b $43 ; C dc.b $41 ; A dc.b $83 ; ? dc.b 0 dc.b $41 ; A dc.b $C1 ; ? dc.b $81 ; ? dc.b $81 ; ? dc.b $80 ; ? dc.b $40 ; @ dc.b $40 ; @ word_88812: dc.w $500 ; DATA XREF: sub_27338+2Cr off_88814: dc.l off_1E80 ; DATA XREF: sub_27258+3Er ; sub_27338+12r off_88818: dc.l off_1E88 ; DATA XREF: sub_27258+4Ar ; sub_27338+1Er dc.l off_1E8C dc.l off_1E94 dc.l off_1E98 dc.l off_1EA0 dc.l off_1EA4 off_88830: dc.l off_1EAC ; DATA XREF: sub_5CEB4+274r dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $AF ; ? dc.b $56 ; V dc.b 0 dc.b 1 dc.b $AF ; ? dc.b $78 ; x dc.b 0 dc.b 1 dc.b $AF ; ? dc.b $9A ; ? dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $F0 ; ? dc.b 0 dc.b 1 dc.b $AF ; ? dc.b $12 dc.b 0 dc.b 1 dc.b $AF ; ? dc.b $34 ; 4 dc.b 0 dc.b 1 dc.b $AF ; ? dc.b $BC ; ? dc.b 0 dc.b 1 dc.b $AF ; ? dc.b $DE ; ? dc.b 0 dc.b 1 dc.b $B0 ; ? dc.b 0 unk_88864: dc.b 1 ; DATA XREF: sub_5CE2E+38o dc.b 0 dc.b 0 dc.b 1 dc.b $AA ; ? dc.b $DC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AA ; ? dc.b $FE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AB ; ? dc.b $20 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AA ; ? dc.b $10 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AA ; ? dc.b $32 ; 2 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AA ; ? dc.b $54 ; T dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $44 ; D dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $66 ; f dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $88 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AB ; ? dc.b $A8 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AB ; ? dc.b $CA ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AB ; ? dc.b $EC ; ? unk_888AC: dc.b 1 ; DATA XREF: sub_5CE76+2Eo dc.b 0 dc.b 0 dc.b 1 dc.b $AB ; ? dc.b $42 ; B dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AB ; ? dc.b $64 ; d dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AB ; ? dc.b $86 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AA ; ? dc.b $76 ; v dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AA ; ? dc.b $98 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AA ; ? dc.b $BA ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $AA ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $CC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $A9 ; ? dc.b $EE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AC ; ? dc.b $E dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AC ; ? dc.b $30 ; 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AC ; ? dc.b $52 ; R unk_888F4: dc.b 1 ; DATA XREF: sub_5CE2E+2Co dc.b 0 dc.b 0 dc.b 1 dc.b $AC ; ? dc.b $E0 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AC ; ? dc.b $F2 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AD ; ? dc.b 4 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AC ; ? dc.b $AA ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AC ; ? dc.b $BC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AC ; ? dc.b $CE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AC ; ? dc.b $74 ; t dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AC ; ? dc.b $86 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AC ; ? dc.b $98 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AD ; ? dc.b $16 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AD ; ? dc.b $28 ; ( dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AD ; ? dc.b $3A ; : unk_8893C: dc.b 1 ; DATA XREF: sub_5CE76+22o dc.b 0 dc.b 0 dc.b 1 dc.b $AD ; ? dc.b $B8 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AD ; ? dc.b $CA ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AD ; ? dc.b $DC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AD ; ? dc.b $82 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AD ; ? dc.b $94 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AD ; ? dc.b $A6 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AD ; ? dc.b $4C ; L dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AD ; ? dc.b $5E ; ^ dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AD ; ? dc.b $70 ; p dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AD ; ? dc.b $EE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $12 unk_88984: dc.b 1 ; DATA XREF: sub_5CE2E+32o dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $24 ; $ dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $46 ; F dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $68 ; h dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $24 ; $ dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $46 ; F dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $68 ; h dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $46 ; F dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $68 ; h dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $46 ; F dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $68 ; h unk_889CC: dc.b 1 ; DATA XREF: sub_5CE76+28o dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $8A ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $AC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $CE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $8A ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $AC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $CE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $AC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $CE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $AC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $AE ; ? dc.b $CE ; ? unk_88A14: dc.b 1 ; DATA XREF: sub_35D1C:loc_35F18o dc.b 9 dc.b 1 dc.b 9 dc.b 1 dc.b 9 dc.b 1 dc.b 9 dc.b 1 dc.b 9 dc.b 1 dc.b 9 dc.b 1 dc.b 9 dc.b 1 dc.b 9 dc.b 1 dc.b 9 dc.b 1 dc.b 9 dc.b 1 dc.b 9 dc.b 1 dc.b 9 dc.b 1 dc.b 9 dc.b 1 dc.b 9 dc.b 1 dc.b 9 dc.b 1 dc.b 8 dc.b 1 dc.b 8 dc.b 1 dc.b 8 dc.b 1 dc.b 8 dc.b 1 dc.b 8 dc.b 1 dc.b 8 dc.b 1 dc.b 8 dc.b 1 dc.b 8 dc.b 1 dc.b 8 dc.b 1 dc.b 8 dc.b 1 dc.b 8 dc.b 1 dc.b 7 dc.b 1 dc.b 7 dc.b 1 dc.b 7 dc.b 1 dc.b 7 dc.b 1 dc.b 7 dc.b 1 dc.b 7 dc.b 1 dc.b 7 dc.b 1 dc.b 6 dc.b 1 dc.b 6 dc.b 1 dc.b 6 dc.b 1 dc.b 6 dc.b 1 dc.b 6 dc.b 1 dc.b 6 dc.b 1 dc.b 5 dc.b 1 dc.b 5 dc.b 1 dc.b 5 dc.b 1 dc.b 5 dc.b 1 dc.b 5 dc.b 1 dc.b 4 dc.b 1 dc.b 4 dc.b 1 dc.b 4 dc.b 1 dc.b 4 dc.b 1 dc.b 4 dc.b 1 dc.b 3 dc.b 1 dc.b 3 dc.b 1 dc.b 3 dc.b 1 dc.b 3 dc.b 1 dc.b 2 dc.b 1 dc.b 2 dc.b 1 dc.b 2 dc.b 1 dc.b 2 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FF dc.b 0 dc.b $FE ; ? dc.b 0 dc.b $FE ; ? dc.b 0 dc.b $FE ; ? dc.b 0 dc.b $FD ; ? dc.b 0 dc.b $FD ; ? dc.b 0 dc.b $FD ; ? dc.b 0 dc.b $FC ; ? dc.b 0 dc.b $FC ; ? dc.b 0 dc.b $FB ; ? dc.b 0 dc.b $FB ; ? dc.b 0 dc.b $FB ; ? dc.b 0 dc.b $FA ; ? dc.b 0 dc.b $FA ; ? dc.b 0 dc.b $FA ; ? dc.b 0 dc.b $F9 ; ? dc.b 0 dc.b $F9 ; ? dc.b 0 dc.b $F8 ; ? dc.b 0 dc.b $F8 ; ? dc.b 0 dc.b $F7 ; ? dc.b 0 dc.b $F7 ; ? dc.b 0 dc.b $F7 ; ? dc.b 0 dc.b $F6 ; ? dc.b 0 dc.b $F6 ; ? dc.b 0 dc.b $F5 ; ? dc.b 0 dc.b $F5 ; ? dc.b 0 dc.b $F4 ; ? dc.b 0 dc.b $F4 ; ? dc.b 0 dc.b $F3 ; ? dc.b 0 dc.b $F3 ; ? dc.b 0 dc.b $F2 ; ? dc.b 0 dc.b $F2 ; ? dc.b 0 dc.b $F1 ; ? dc.b 0 dc.b $F1 ; ? dc.b 0 dc.b $F0 ; ? dc.b 0 dc.b $F0 ; ? dc.b 0 dc.b $EF ; ? dc.b 0 dc.b $EF ; ? dc.b 0 dc.b $EE ; ? dc.b 0 dc.b $EE ; ? dc.b 0 dc.b $ED ; ? dc.b 0 dc.b $ED ; ? dc.b 0 dc.b $EC ; ? dc.b 0 dc.b $EB ; ? dc.b 0 dc.b $EB ; ? dc.b 0 dc.b $EA ; ? dc.b 0 dc.b $EA ; ? dc.b 0 dc.b $E9 ; ? dc.b 0 dc.b $E8 ; ? dc.b 0 dc.b $E8 ; ? dc.b 0 dc.b $E7 ; ? dc.b 0 dc.b $E7 ; ? dc.b 0 dc.b $E6 ; ? dc.b 0 dc.b $E5 ; ? dc.b 0 dc.b $E5 ; ? dc.b 0 dc.b $E4 ; ? dc.b 0 dc.b $E3 ; ? dc.b 0 dc.b $E3 ; ? dc.b 0 dc.b $E2 ; ? dc.b 0 dc.b $E1 ; ? dc.b 0 dc.b $E0 ; ? dc.b 0 dc.b $E0 ; ? dc.b 0 dc.b $DF ; ? dc.b 0 dc.b $DE ; ? dc.b 0 dc.b $DE ; ? dc.b 0 dc.b $DD ; ? dc.b 0 dc.b $DC ; ? dc.b 0 dc.b $DB ; ? dc.b 0 dc.b $DB ; ? dc.b 0 dc.b $DA ; ? dc.b 0 dc.b $D9 ; ? dc.b 0 dc.b $D8 ; ? dc.b 0 dc.b $D7 ; ? dc.b 0 dc.b $D7 ; ? dc.b 0 dc.b $D6 ; ? dc.b 0 dc.b $D5 ; ? dc.b 0 dc.b $D4 ; ? dc.b 0 dc.b $D3 ; ? dc.b 0 dc.b $D2 ; ? dc.b 0 dc.b $D2 ; ? dc.b 0 dc.b $D1 ; ? dc.b 0 dc.b $D0 ; ? dc.b 0 dc.b $CF ; ? dc.b 0 dc.b $CE ; ? dc.b 0 dc.b $CD ; ? dc.b 0 dc.b $CC ; ? dc.b 0 dc.b $CB ; ? dc.b 0 dc.b $CA ; ? dc.b 0 dc.b $C9 ; ? dc.b 0 dc.b $C8 ; ? dc.b 0 dc.b $C7 ; ? dc.b 0 dc.b $C6 ; ? dc.b 0 dc.b $C5 ; ? dc.b 0 dc.b $C4 ; ? dc.b 0 dc.b $C3 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $C1 ; ? dc.b 0 dc.b $C0 ; ? dc.b 0 dc.b $BF ; ? dc.b 0 dc.b $BE ; ? dc.b 0 dc.b $BD ; ? dc.b 0 dc.b $BC ; ? dc.b 0 dc.b $BB ; ? dc.b 0 dc.b $B9 ; ? dc.b 0 dc.b $B8 ; ? dc.b 0 dc.b $B7 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B3 ; ? dc.b 0 dc.b $B2 ; ? dc.b 0 dc.b $B1 ; ? dc.b 0 dc.b $B0 ; ? dc.b 0 dc.b $AE ; ? dc.b 0 dc.b $AD ; ? dc.b 0 dc.b $AC ; ? dc.b 0 dc.b $AB ; ? dc.b 0 dc.b $A9 ; ? dc.b 0 dc.b $A8 ; ? dc.b 0 dc.b $A6 ; ? dc.b 0 dc.b $A5 ; ? dc.b 0 dc.b $A4 ; ? dc.b 0 dc.b $A2 ; ? dc.b 0 dc.b $A1 ; ? dc.b 0 dc.b $9F ; ? dc.b 0 dc.b $9E ; ? dc.b 0 dc.b $9C ; ? dc.b 0 dc.b $9B ; ? dc.b 0 dc.b $99 ; ? dc.b 0 dc.b $97 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b $94 ; ? dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $91 ; ? dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $8D ; ? dc.b 0 dc.b $8B ; ? dc.b 0 dc.b $89 ; ? dc.b 0 dc.b $88 ; ? dc.b 0 dc.b $86 ; ? dc.b 0 dc.b $84 ; ? dc.b 0 dc.b $82 ; ? dc.b 0 dc.b $80 ; ? dc.b 0 dc.b $7E ; ~ dc.b 0 dc.b $7B ; { dc.b 0 dc.b $79 ; y dc.b 0 dc.b $77 ; w dc.b 0 dc.b $75 ; u dc.b 0 dc.b $72 ; r dc.b 0 dc.b $70 ; p dc.b 0 dc.b $6E ; n dc.b 0 dc.b $6B ; k dc.b 0 dc.b $69 ; i dc.b 0 dc.b $66 ; f dc.b 0 dc.b $63 ; c dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $5D ; ] dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $57 ; W dc.b 0 dc.b $54 ; T dc.b 0 dc.b $50 ; P dc.b 0 dc.b $4D ; M dc.b 0 dc.b $49 ; I dc.b 0 dc.b $45 ; E dc.b 0 dc.b $40 ; @ dc.b 0 dc.b $3C ; < dc.b 0 dc.b $36 ; 6 dc.b 0 dc.b $31 ; 1 dc.b 0 dc.b $2A ; * dc.b 0 dc.b $23 ; # dc.b 0 dc.b $18 dc.b 0 dc.b 0 unk_88BEE: dc.b 0 ; DATA XREF: sub_4C50E+32o ; sub_4C50E:loc_4C54Ao dc.b $40 ; @ dc.b $82 ; ? dc.b $78 ; x dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $BC ; ? dword_88BF8: dc.l 0 ; DATA XREF: sub_4C50E+28r dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $A2 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $A2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $9C ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $A1 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $84 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $DC ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $DE ; ? dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $8A ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E0 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E2 ; ? dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $90 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E4 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E6 ; ? dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $A8 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $A4 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $AE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $A8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $B4 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $AC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $BA ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $B0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $C0 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $B4 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $C6 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $B8 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $BA ; ? dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $CC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $BE ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $C0 ; ? dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $D2 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $C2 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $C4 ; ? dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $D8 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $C6 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $C8 ; ? dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $DE ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $CA ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $CC ; ? dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $E4 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $CE ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $D0 ; ? dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $EA ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $D2 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $D4 ; ? dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $F0 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $D6 ; ? dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $D8 ; ? dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $F6 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $E8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $82 ; ? dc.b $FC ; ? dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EA ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $83 ; ? dc.b 2 dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $83 ; ? dc.b 8 dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $EE ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $83 ; ? dc.b $E dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F0 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $83 ; ? dc.b $14 dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F2 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $83 ; ? dc.b $1A dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F4 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $83 ; ? dc.b $20 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F7 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $83 ; ? dc.b $2C ; , dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F8 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $83 ; ? dc.b $26 ; & dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F9 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $40 ; @ dc.b $83 ; ? dc.b $32 ; 2 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A2 ; ? dc.b $F6 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 off_88D92: dc.l loc_28750 ; DATA XREF: sub_28730+16r dc.l loc_28786 dc.l loc_287B8 dc.l loc_287BA dc.l loc_287CE dc.l loc_2887E dc.l loc_287D2 dc.l loc_28804 dc.l loc_28804 dc.l loc_2880C off_88DBA: dc.l loc_28892 ; DATA XREF: OS1:00028888r dc.l loc_288F6 dc.l loc_288F6 dc.l loc_28894 dc.l loc_288F6 dc.l loc_288F6 dc.l loc_28892 dc.l loc_288F6 dc.l loc_288F6 dc.l loc_28892 off_88DE2: dc.l loc_2891C ; DATA XREF: OS1:00028912r dc.l loc_2892E dc.l loc_2891C dc.l loc_2891C dc.l loc_2892E dc.l loc_2892E dc.l loc_2891C dc.l loc_2891C dc.l loc_2891C dc.l loc_2892E off_88E0A: dc.l loc_28A4E ; DATA XREF: OS1:00028A12r dc.l loc_28A46 dc.l loc_28A1C dc.l loc_28A1E dc.l loc_28A6E dc.l loc_28A6E dc.l loc_28A1E dc.l loc_28A6E dc.l loc_28A6E dc.l loc_28A46 off_88E32: dc.l loc_28B1E ; DATA XREF: OS1:00028B14r dc.l loc_28B1E dc.l loc_28B22 dc.l loc_28BB6 dc.l loc_28BF0 dc.l loc_28C28 dc.l loc_28C1A dc.l loc_28C1C dc.l loc_28C28 off_88E56: dc.l loc_28C28 ; DATA XREF: OS1:00028C3Ar dc.l loc_28CA6 dc.l loc_28C44 dc.l loc_28C44 dc.l loc_28CA6 dc.l loc_28CA6 dc.l loc_28CA6 dc.l loc_28CA6 dc.l loc_28CA6 dc.l loc_28CA6 off_88E7E: dc.l loc_28D2A ; DATA XREF: OS1:00028D12r dc.l loc_28D36 dc.l loc_28D1C dc.l loc_28D30 dc.l loc_28D36 dc.l loc_28D36 dc.l loc_28D2A dc.l loc_28D36 dc.l loc_28D30 dc.l loc_28D2A off_88EA6: dc.l loc_28E94 ; DATA XREF: OS1:00028D4Ar dc.l loc_28E96 dc.l loc_28D54 dc.l loc_28E94 dc.l loc_28E98 dc.l loc_28ECC dc.l loc_28E92 dc.l loc_28E92 dc.l loc_28E90 off_88ECA: dc.l loc_28E96 ; DATA XREF: OS1:00028FA2r dc.l loc_28FFC dc.l loc_28FAC dc.l loc_28FB2 dc.l loc_28FFC dc.l loc_29012 dc.l loc_28FB2 dc.l loc_29012 dc.l loc_28FFC dc.l loc_28FFE off_88EF2: dc.l loc_756B2 ; DATA XREF: sub_755FA+1Ar dc.l loc_756B2 dc.l loc_756B2 dc.l loc_7561E dc.l loc_7561E dc.l loc_757B0 dc.l loc_7574A dc.l loc_75632 dc.l loc_756BE dc.l loc_757B0 dc.l loc_7579E dc.l loc_757B0 dc.l loc_756CA dc.l loc_757B0 dc.l loc_757B0 dc.l loc_7563A dc.l loc_75656 dc.l loc_757B0 dc.l loc_757B0 dc.l loc_756D6 dc.l loc_7574A dc.l loc_75646 dc.l loc_757B0 dc.l loc_757B0 dc.l loc_757B0 dc.l loc_757B0 dc.l loc_757B0 dc.l loc_757B0 dc.l loc_757B0 dc.l loc_757B0 dc.l loc_757B0 dc.l loc_757B0 dc.l loc_757B0 dc.l loc_756E2 dc.l loc_757B0 dc.l loc_756EC dc.l loc_756F8 dc.l loc_7570A dc.l loc_757B0 dc.l loc_757B0 dc.l loc_757B0 dc.l loc_75660 dc.l loc_756EC dc.l loc_75690 dc.l loc_757A8 dc.l loc_75716 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_7572E dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_75794 dc.l loc_756A2 dc.l loc_757B0 dc.l loc_757B0 dc.l loc_757B0 dc.l loc_757B0 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 off_8901E: dc.l loc_75722 ; DATA XREF: sub_269DE+C2r dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_75722 dc.l loc_756EC dc.l loc_75722 dc.l loc_75740 word_89042: dc.w $60 ; DATA XREF: sub_5EA4A+23Er word_89044: dc.w $3E ; DATA XREF: sub_5DE36+142r dcb.b $A,0 word_89050: dc.w 0 ; DATA XREF: sub_5DE36+F2r ; sub_5F2EC+20r dc.l loc_30004+1 dc.l loc_60006+1 dc.l unk_80009 dc.b 0 dc.b $B dc.b 0 dc.b $C dc.b 0 dc.b $D dc.b 0 dc.b $10 dc.b 0 dc.b $11 dc.b $11 dc.b 2 dc.b $11 dc.b $4B ; K dc.b $11 dc.b $4C ; L dc.b $11 dc.b $4E ; N dc.b $11 dc.b $52 ; R dc.b $11 dc.b $6F ; o dc.b $11 dc.b $92 ; ? dc.b $11 dc.b $9B ; ? dc.b $11 dc.b $9D ; ? dc.b $11 dc.b $9E ; ? dc.b $11 dc.b $A1 ; ? dc.b $11 dc.b $E9 ; ? dc.b $12 dc.b $5A ; Z dc.b $12 dc.b $5B ; [ dc.b $12 dc.b $B0 ; ? dc.b $12 dc.b $B1 ; ? dc.b $12 dc.b $F3 ; ? dc.b $13 dc.b $1E dc.b $13 dc.b $1F dc.b $13 dc.b $9C ; ? dc.b $13 dc.b $9D ; ? dc.b $19 dc.b $21 ; ! dc.b $19 dc.b $42 ; B dc.b $19 dc.b $9A ; ? word_89098: dc.w $2D ; DATA XREF: sub_5E1A4+F8r ; sub_5E37E+194r ... dc.b 0 dc.b $2E ; . dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $31 ; 1 word_890A0: dc.w $3D ; DATA XREF: sub_5E1A4+82r ; sub_5E37E+166r ... off_890A2: dc.l off_0+2 ; DATA XREF: sub_5DFDC:loc_5E004r ; sub_5DFDC+36r ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.l loc_40300 dc.b $A dc.b 4 dc.b 4 dc.b 0 word_890AE: dc.w 0 ; DATA XREF: sub_5DFDC+5Ar dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $58 ; X dc.b 0 dc.b $59 ; Y dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $60 ; ` dc.b 0 dc.b $5A ; Z dc.b 0 dc.b $5C ; \ dc.b 0 dc.b $6B ; k dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $55 ; U dc.b 0 dc.b $67 ; g dc.b 0 dc.b $68 ; h dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $17 dc.b 0 dc.b $B1 ; ? dc.b 0 dc.b $B2 ; ? dc.b 0 dc.b $22 ; " dc.b 0 dc.b $B5 ; ? dc.b 0 dc.b $B6 ; ? dc.b 0 dc.b $1D dc.b 0 dc.b $28 ; ( dc.b 0 dc.b $1A dc.b 0 dc.b $25 ; % dc.b 0 dc.b $19 dc.b 0 dc.b $1E dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $29 ; ) dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $52 ; R dc.b 0 dc.b $50 ; P dc.b 0 dc.b $53 ; S dc.b 0 dc.b $BD ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dword_89186: dc.l 0 ; DATA XREF: sub_269DE+20r dc.l loc_26A08 dc.l loc_26A08 dc.l loc_26A08 dc.l loc_26A20 dc.l loc_26A20 dc.l loc_26A20 off_891A2: dc.l loc_26A20 ; DATA XREF: sub_792AE+14r dc.l loc_26A32 dc.l loc_26A88 dc.l loc_26A3A dc.l loc_26A42 dc.l loc_26A4A dc.l loc_26A52 dc.l loc_26A5A dc.l loc_26A62 dc.l loc_26A6A dc.l loc_26A72 dc.l loc_26A88 dc.l loc_26A88 dc.l loc_26A7A dc.l loc_26AAA dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26AB2 dc.l loc_26ABA dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26AC2 dc.l loc_26ACE dc.l loc_26AD6 dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E off_89242: dc.l loc_26B2E ; DATA XREF: sub_8260C+72r dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26ADE dc.l loc_26AE6 dc.l loc_26AEE dc.l loc_26AF6 dc.l loc_26AFE dc.l loc_26B06 dc.l loc_26B0E dc.l loc_26B16 dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E dc.l loc_26B2E off_8929E: dc.l loc_26B22 ; DATA XREF: sub_571CE+E8r ; sub_571CE+248r dc.l T_PRESSURE_TABLES_KV_BASE_PRESSURE_NORMAL_2 ; Base pressure for normal pressure pattern, 2nd Gear ; PSI dc.l T_PRESSURE_TABLES_KV_BASE_PRESSURE_NORMAL_3 ; Base pressure for normal pressure pattern, 3rd Gear ; PSI dc.l T_PRESSURE_TABLES_KV_BASE_PRESSURE_NORMAL_4 ; Base pressure for normal pressure pattern, 4th Gear ; PSI dc.l T_PRESSURE_TABLES_KV_BASE_PRESSURE_PERFORMANCE_2 ; Base pressure for performance pressure pattern, 2nd Gear ; PSI dc.l T_PRESSURE_TABLES_KV_BASE_PRESSURE_PERFORMANCE_3 ; Base pressure for performance pressure pattern, 3rd Gear ; PSI dc.l T_PRESSURE_TABLES_KV_BASE_PRESSURE_PERFORMANCE_4 ; Base pressure for performance pressure pattern, 4th Gear ; PSI dc.l T_PRESSURE_TABLES_KV_BASE_PRESSURE_NORMAL_2 ; Base pressure for normal pressure pattern, 2nd Gear ; PSI dc.l T_PRESSURE_TABLES_KV_BASE_PRESSURE_NORMAL_3 ; Base pressure for normal pressure pattern, 3rd Gear ; PSI off_892C2: dc.l T_PRESSURE_TABLES_KV_BASE_PRESSURE_NORMAL_4 ; DATA XREF: sub_56EDC+20Ar ; Base pressure for normal pressure pattern, 4th Gear ; PSI dc.l T_PRESSURE_TABLES_KA_2ND_PRESSURE_TEMP_COMP_TABLE ; 3D Pressure Temperature Compensation ; PSI_S dc.l T_PRESSURE_TABLES_KA_3RD_PRESSURE_TEMP_COMP_TABLE ; 3D Pressure Temperature Compensation ; PSI_S off_892CE: dc.l T_PRESSURE_TABLES_KA_4TH_PRESSURE_TEMP_COMP_TABLE ; DATA XREF: sub_56EDC+242r ; 3D Pressure Temperature Compensation ; PSI_S dc.l T_PRESSURE_TABLES_KA_2_DOWN_TEMP_PRESSURE_MOD ; 3D Downshift Pressure Temperature Compensation ; PSI_S dc.l T_PRESSURE_TABLES_KA_3_DOWN_TEMP_PRESSURE_MOD ; 3D Downshift Pressure Temperature Compensation ; PSI_S dc.l T_PRESSURE_TABLES_KA_4_DOWN_TEMP_PRESSURE_MOD ; 3D Downshift Pressure Temperature Compensation ; PSI_S word_892DE: dc.w $100 ; DATA XREF: sub_55796+C2r off_892E0: dc.l T_PRESSURE_TABLES_KV_1_BRAKING_PRESS_TABLE ; DATA XREF: sub_55796+B8r ; Braking pressure for 1st gear ; PSI dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $9C ; ? dc.b $74 ; t dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $9C ; ? dc.b $96 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 word_892FC: dc.w $100 ; DATA XREF: sub_55796+14r off_892FE: dc.l T_PRESSURE_TABLES_KV_2_BRAKING_PRESS_TABLE ; DATA XREF: sub_55796+Cr ; Braking pressure for 2nd gear ; PSI dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $9C ; ? dc.b $96 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 1 dc.b $9C ; ? dc.b $96 ; ? dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $9C ; ? dc.b $B8 ; ? dc.b 0 dc.b 1 dc.b $9C ; ? dc.b $DA ; ? dc.b 0 dc.b 1 dc.b $9C ; ? dc.b $FC ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b $9C ; ? dc.b $B8 ; ? dc.b 0 dc.b 1 dc.b $9C ; ? dc.b $DA ; ? off_8935E: dc.l T_PRESSURE_TABLES_KV_4_3_NORMAL_PRESS_MODIFIER ; DATA XREF: sub_571CE+14Er ; Normal downshift pressure offset modifier for 4th gear ; PSI_S dc.l T_PRESSURE_TABLES_KA_1_2_GEARBOX_INERTIA_TRQ_MULT ; Base pressure multiplier for a 1-2 upshift. ; Scaler dc.l T_PRESSURE_TABLES_KA_2_3_GEARBOX_INERTIA_TRQ_MULT ; Base pressure multiplier for a 1-2 upshift. ; Scaler off_8936A: dc.l T_PRESSURE_TABLES_KA_3_4_GEARBOX_INERTIA_TRQ_MULT ; DATA XREF: sub_571CE+9Cr ; Base pressure multiplier for a 1-2 upshift. ; Scaler dc.l T_PRESSURE_TABLES_KV_BASE_PRESSURE_BRAKE_ON_ELE_2 ; Used todetermine second gear Base_Pressure during downshifts whenbraking element is applied - negative torque model. ; PSI dc.l T_PRESSURE_TABLES_KV_BASE_PRESSURE_BRAKE_ON_ELE_3 ; Used todetermine third gear Base_Pressure during downshifts whenbraking element is applied - negative torque model. ; PSI dc.l T_PRESSURE_TABLES_KV_BASE_PRESSURE_BRAKE_ON_ELE_4 ; Used todetermine fourth gear Base_Pressure during downshifts whenbraking element is applied - negative torque model. ; PSI dc.l loc_792CC dc.l loc_792CC dc.l loc_792FC dc.l loc_792FC dc.l loc_7932C dc.l loc_7932C dc.l loc_7935C off_89396: dc.l loc_7935C ; DATA XREF: OS3:000794F4r dc.l locret_794DE dc.l locret_794DE dc.l locret_794DE dc.l locret_794DE dc.l locret_794DE dc.l locret_794DE dc.l locret_794DE dc.l locret_794DE dc.l loc_7938C dc.l loc_7938C dc.l loc_793AC dc.l loc_793AC dc.l loc_793DC dc.l loc_793DC dc.l loc_7940C dc.l loc_7940C dc.l locret_794DE dc.l locret_794DE dc.l locret_794DE dc.l locret_794DE dc.l locret_794DE dc.l locret_794DE dc.l locret_794DE dc.l locret_794DE dc.l loc_7943C dc.l loc_7943C dc.l loc_7945C dc.l loc_7945C dc.l loc_79488 dc.l loc_79488 dc.l loc_794B4 dc.l loc_794B4 dc.l loc_82688 dc.l loc_82688 dc.l loc_82692 dc.l loc_82692 dc.l loc_8269C dc.l loc_8269C dc.l loc_826A6 dc.l loc_826A6 dc.l loc_826FE dc.l loc_826FE dc.l loc_826FE dc.l loc_826FE dc.l loc_826FE dc.l loc_826FE dc.l loc_826FE dc.l loc_826FE dc.l loc_826B0 dc.l loc_826B0 dc.l loc_826BA dc.l loc_826BA dc.l loc_826C4 dc.l loc_826C4 dc.l loc_826CE dc.l loc_826CE dc.l loc_826FE dc.l loc_826FE dc.l loc_826FE dc.l loc_826FE dc.l loc_826FE dc.l loc_826FE dc.l loc_826FE dc.l loc_826FE dc.l loc_826D8 dc.l loc_826D8 dc.l loc_826E2 dc.l loc_826E2 dc.l loc_826EC dc.l loc_826EC dc.l loc_826F6 off_894B6: dc.l loc_826F6 ; DATA XREF: sub_59064+30r dc.l XSHFT_ADAPT_KE_1_2_DETENT_LOW_TEMP_ENABLE ; Lower limitthat Transmission Temperature can be during a 1 2 shiftand still adapt ; DegreesC dc.l XSHFT_ADAPT_KE_2_3_DETENT_LOW_TEMP_ENABLE ; Lower limitthat Transmission Temperature can be during a 2 3 shiftand still adapt ; DegreesC off_894C2: dc.l XSHFT_ADAPT_KE_3_4_DETENT_LOW_TEMP_ENABLE ; DATA XREF: sub_59064+46r ; Lower limitthat Transmission Temperature can be during a 3 4 shiftand still adapt ; DegreesC dc.l XSHFT_ADAPT_KE_3_4_DETENT_ERROR_MAX+2 ; Maximum value of adapt cells for a 3-4 detent upshift. ; Seconds dc.l XSHFT_ADAPT_KE_2_3_DETENT_HIGH_TEMP_ENABLE ; Upper limitthat Transmission Temperature can be during a 2 3 shiftand still adapt ; DegreesC dc.l XSHFT_ADAPT_KE_3_4_DETENT_HIGH_TEMP_ENABLE ; Upper limitthat Transmission Temperature can be during a 3 4 shiftand still adapt ; DegreesC dc.l XSHFT_ADAPT_KE_DETENT_LOW_CELL_WEIGHT_FACTOR ; To scale the amount the lower cell is adapted by ; NONE off_894D6: dc.l XSHFT_ADAPT_KE_DETENT_CELL_WEIGHT_FACTOR ; DATA XREF: sub_59064+14Cr ; To scale the amount the target cell is adapted by ; NONE off_894DA: dc.l XSHFT_ADAPT_KE_DETENT_HIG_CELL_WEIGHT_FACTOR ; DATA XREF: sub_59064+17Er ; To scale the amount the upper cell is adapted by ; NONE dc.l XSHFT_ADAPT_KE_3_4_DETENT_ERROR_MIN+2 ; Minimum value of adapt cells for a 3-4 detent upshift. ; Seconds dc.l XSHFT_ADAPT_KE_2_3_DETENT_ERROR_MAX ; Maximum value of adapt cells for a 2-3 detent upshift. ; Seconds off_894E6: dc.l XSHFT_ADAPT_KE_3_4_DETENT_ERROR_MAX ; DATA XREF: sub_59064:loc_591F2r ; Maximum value of adapt cells for a 3-4 detent upshift. ; Seconds dc.l XSHFT_ADAPT_KE_1_2_DETENT_ERROR_MIN ; Minimum value of adapt cells for a 1-2 detent upshift. ; Seconds dc.l XSHFT_ADAPT_KE_2_3_DETENT_ERROR_MIN ; Minimum value of adapt cells for a 2-3 detent upshift. ; Seconds off_894F2: dc.l XSHFT_ADAPT_KE_3_4_DETENT_ERROR_MIN ; DATA XREF: sub_59064+EEr ; Minimum value of adapt cells for a 3-4 detent upshift. ; Seconds dc.l XSHFT_ADAPT_KE_3_4_DETENT_ADAPT_DOWN_ENABLE+2 ; Used as an enabling contingency for performing a 3-4 detent upshift adapt. ; Seconds dc.l XSHFT_ADAPT_KE_2_3_DETENT_ADAPT_ERROR ; Enable 2-3 detent upshift adatps when Delay_Time_Error is greater than or equal to this. ; Seconds dc.l XSHFT_ADAPT_KE_2_3_DETENT_ADAPT_ERROR+2 ; Enable 2-3 detent upshift adatps when Delay_Time_Error is greater than or equal to this. ; Seconds off_89502: dc.l XSHFT_ADAPT_KE_1_2_DETENT_ADAPT_DOWN_ENABLE ; DATA XREF: sub_58F4A+6r ; Used as an enabling contingency for performing a 1-2 detent upshift adapt. ; Seconds dc.l XSHFT_ADAPT_KE_2_3_DETENT_ADAPT_DOWN_ENABLE ; Used as an enabling contingency for performing a 2-3 detent upshift adapt. ; Seconds off_8950A: dc.l XSHFT_ADAPT_KE_3_4_DETENT_ADAPT_DOWN_ENABLE ; DATA XREF: sub_58F32+4r ; Used as an enabling contingency for performing a 3-4 detent upshift adapt. ; Seconds dc.l XSHFT_ADAPT_KE_1_2_DETENT_ADAPT_UP_ENABLE ; Adapt Enabling timer for 1-2 detent upshifts. ; Seconds dc.l XSHFT_ADAPT_KE_2_3_DETENT_ADAPT_UP_ENABLE ; Adapt Enabling timer for 2-3 detent upshifts. ; Seconds dc.l XSHFT_ADAPT_KE_3_4_DETENT_ADAPT_UP_ENABLE ; Adapt Enabling timer for 3-4 detent upshifts. ; Seconds off_8951A: dc.l XSHFT_ADAPT_KV_1_2_DETENT_UPSHIFT_DELAY ; DATA XREF: sub_58E3A+2Cr ; Predicted delay time for a 1-2 detent upshift. ; Seconds dc.l XSHFT_ADAPT_KV_2_3_DETENT_UPSHIFT_DELAY ; Predicted delay time for a 2-3 detent upshift. ; Seconds dc.l XSHFT_ADAPT_KV_3_4_DETENT_UPSHIFT_DELAY ; Predicted delay time for a 3-4 detent upshift. ; Seconds off_89526: dc.l XSHFT_ADAPT_KV_1_2_DETENT_UPSHIFT_MODIFIER ; DATA XREF: sub_58E3A+60r ; Delay line time modifier for 1-2 detent upshifts. ; Seconds dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_89532: dc.b 0 ; DATA XREF: sub_592A4+20o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 7 dc.b $94 ; ? dc.b $FE ; ? dc.b 0 dc.b 7 dc.b $94 ; ? dc.b $FE ; ? dc.b 0 dc.b 7 dc.b $95 ; ? dc.b $24 ; $ dc.b 0 dc.b 7 dc.b $95 ; ? dc.b $24 ; $ dc.b 0 dc.b 7 dc.b $95 ; ? dc.b $4A ; J dc.b 0 dc.b 7 dc.b $95 ; ? dc.b $4A ; J dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $95 ; ? dc.b $70 ; p dc.b 0 dc.b 7 dc.b $95 ; ? dc.b $70 ; p dc.b 0 dc.b 7 dc.b $95 ; ? dc.b $96 ; ? dc.b 0 dc.b 7 dc.b $95 ; ? dc.b $96 ; ? dc.b 0 dc.b 7 dc.b $95 ; ? dc.b $BC ; ? dc.b 0 dc.b 7 dc.b $95 ; ? dc.b $BC ; ? dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $42 ; B dc.b 0 dc.b 7 dc.b $95 ; ? dc.b $DE ; ? dc.b 0 dc.b 7 dc.b $95 ; ? dc.b $DE ; ? dc.b 0 dc.b 7 dc.b $96 ; ? dc.b 0 dc.b 0 dc.b 7 dc.b $96 ; ? dc.b 0 dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $22 ; " dc.b 0 dc.b 7 dc.b $96 ; ? dc.b $22 ; " byte_895EE: dc.b 0 ; DATA XREF: sub_7C59E+A8r dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 1 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 2 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 3 dc.b 4 byte_89606: dc.b 4 ; DATA XREF: sub_7C59E+BEr dc.b 4 dc.b 4 dc.b 4 dc.b 4 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 5 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 6 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 7 dc.b 0 word_8961E: dc.w 0 ; DATA XREF: sub_7C59E+D2r dc.b 2 dc.b $AB ; ? dc.b 5 dc.b $55 ; U dc.b 8 dc.b 0 dc.b $A dc.b $AB ; ? dc.b $FD ; ? dc.b $55 ; U dc.b 0 dc.b 0 dc.b 2 dc.b $AB ; ? dc.b 5 dc.b $55 ; U dc.b 8 dc.b 0 dc.b $A dc.b $AB ; ? dc.b $FD ; ? dc.b $55 ; U dc.b 0 dc.b 0 dc.b 2 dc.b $AB ; ? dc.b 5 dc.b $55 ; U dc.b 8 dc.b 0 dc.b $A dc.b $AB ; ? dc.b $FD ; ? dc.b $55 ; U dc.b 0 dc.b 0 dc.b 2 dc.b $AB ; ? dc.b 5 dc.b $55 ; U dc.b 8 dc.b 0 dc.b $A dc.b $AB ; ? dc.b $FD ; ? dc.b $55 ; U byte_8964E: dc.b 0 ; DATA XREF: sub_7C59E+100r dc.b 1 dc.b 2 dc.b 3 dc.b 4 dc.b 5 dc.b 0 dc.b 1 dc.b 2 dc.b 3 dc.b 4 dc.b 5 dc.b 0 dc.b 1 dc.b 2 dc.b 3 dc.b 4 dc.b 5 dc.b 0 dc.b 1 dc.b 2 dc.b 3 dc.b 4 dc.b 5 off_89666: dc.l loc_3EDDE ; DATA XREF: sub_3EA90+344r dc.l loc_3EDF2 dc.l loc_3EE0C dc.l loc_3EE26 dc.l loc_3EE42 dc.l loc_3EE84 dc.l loc_3EEC8 dc.l loc_3EEFE dc.l loc_3EF1C dc.l loc_3EF54 dc.l loc_3EF8E dc.l loc_3EFA2 dc.l loc_3EFBA dc.l loc_3EFD4 dc.l loc_3F002 dc.l loc_3F04A dc.l loc_3F0AA dc.l loc_3F0E6 dc.l loc_3F114 dc.l loc_3F152 dc.l loc_3F192 dc.l loc_3F1B0 dc.l loc_3F1CE dc.l loc_3F204 dc.l loc_3F23C dc.l loc_3F276 dc.l loc_3F2A4 dc.l loc_3F2D2 dc.l loc_3F312 dc.l loc_3F350 word_896DE: dc.w $8E ; DATA XREF: sub_4F5D0+82r ; sub_4F5D0:loc_4F664r dc.b 0 dc.b $8D ; ? dc.b 0 dc.b $8F ; ? dc.b 0 dc.b $90 ; ? dc.b 0 dc.b $91 ; ? dc.b 0 dc.b $6E ; n dc.b 0 dc.b $6D ; m dc.b 0 dc.b $D7 ; ? dc.b 0 dc.b $C2 ; ? dc.b 0 dc.b $DA ; ? dc.b 0 dc.b $DB ; ? dc.b 0 dc.b $DC ; ? dc.b 0 dc.b $DD ; ? dc.b 0 dc.b $DE ; ? dc.b 0 dc.b $DF ; ? dc.b 0 dc.b $92 ; ? dc.b 0 dc.b $93 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $9B ; ? dc.b 0 dc.b $9E ; ? dc.b 0 dc.b $F3 ; ? dc.b 0 dc.b $95 ; ? dc.b 0 dc.b $9F ; ? dc.b 0 dc.b $39 ; 9 dc.b 0 dc.b $98 ; ? dc.b 0 dc.b $A7 ; ? dc.b 0 dc.b $97 ; ? dc.b 0 dc.b $96 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $94 ; ? dc.b 0 dc.b $F4 ; ? dc.b 0 dc.b $99 ; ? dc.b 0 dc.b $9A ; ? dc.b 0 dc.b $9C ; ? dc.b 0 dc.b $9D ; ? dc.b 0 dc.b $D8 ; ? dc.b 0 dc.b $77 ; w dc.b 0 dc.b $78 ; x dc.b 0 dc.b 5 dc.b 0 dc.b 4 dc.b 0 dc.b 3 dc.b 0 dc.b $D dc.b 0 dc.b $E dc.b 0 dc.b $10 dc.b 0 dc.b $11 dc.b 0 dc.b $12 dc.b 0 dc.b 7 dc.b 0 dc.b 8 dc.b 0 dc.b 9 dc.b 0 dc.b $A dc.b 0 dc.b $B dc.b 0 dc.b 8 dc.b 0 dc.b 7 dc.b 1 byte_8974B: dc.b 2 ; DATA XREF: sub_3EA90+482r dc.b 3 byte_8974D: dc.b 4 ; DATA XREF: sub_3EA90+66Ar byte_8974E: dc.b 1 ; DATA XREF: sub_3EA90+3C4r ; sub_3EA90+3EAr ... byte_8974F: dc.b 2 ; DATA XREF: sub_3EA90+586r ; sub_3EA90+5ACr ... byte_89750: dc.b 1 ; DATA XREF: sub_3EA90+4A0r ; sub_3EA90+4BAr ... byte_89751: dc.b 2 ; DATA XREF: sub_3EA90+698r ; sub_3EA90+6B2r ... byte_89752: dc.b 1 ; DATA XREF: sub_3EA90+AA6r dc.b 2 dc.b 3 dc.b 4 dc.b 1 dc.b 2 word_89758: dc.w $19 ; DATA XREF: sub_72748+E8r ; sub_72B0E+4D0r ... dc.b 0 dc.b $1E dc.b 0 dc.b $24 ; $ dc.b 0 dc.b $29 ; ) dc.b 0 dc.b $1F dc.b 0 dc.b 0 word_89764: dc.w $15 ; DATA XREF: sub_714E0+2B8r ; sub_714E0+34Er ... dc.b 0 dc.b $1B dc.b 0 dc.b $20 dc.b 0 dc.b $26 ; & dc.b 0 dc.b 0 dc.b 0 dc.b 0 word_89770: dc.w $18 ; DATA XREF: sub_714E0+F0r ; sub_714E0+108r ... dc.b 0 dc.b $1D dc.b 0 dc.b $23 ; # dc.b 0 dc.b $28 ; ( dc.b 0 dc.b 0 dc.b 0 dc.b 0 word_8977C: dc.w $B2 ; DATA XREF: sub_71DC2+4E8r ; sub_748D0+FAr dc.l off_0+$B6 ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dcb.b 6,0 word_89788: dc.w $17 ; DATA XREF: sub_71DC2+718r ; sub_748D0+E8r dc.l off_0+$22 ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 word_89794: dc.w $16 ; DATA XREF: sub_714E0+61Er ; sub_714E0+6B4r ... dc.b 0 dc.b $1C dc.b 0 dc.b $21 ; ! dc.b 0 dc.b $27 ; ' dc.b 0 dc.b 0 dc.b 0 dc.b 0 word_897A0: dc.w $B1 ; DATA XREF: sub_71DC2+60r ; sub_748D0+D6r dc.l off_0+$B5 ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 byte_897AB: dc.b 0 ; DATA XREF: sub_72926+1Cr dc.l unk_10203 dc.b 0 dc.b $A0 ; ? word_897B2: dc.w $31 ; DATA XREF: sub_8745E+3Ar dc.b 0 dc.b $11 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b $39 ; 9 dc.b 0 dc.b $39 ; 9 dc.b 0 dc.b 8 dc.b 0 dc.b 9 dc.b 0 dc.b $18 dc.b 0 dc.b $38 ; 8 dc.b 0 dc.b $3C ; < dc.b 0 dc.b $3D ; = dc.b 0 dc.b $1C dc.b 0 dc.b 4 dc.b 0 dc.b 5 dc.b 0 dc.b $14 dc.b 0 dc.b 6 dc.b 0 dc.b 7 dc.b 0 dc.b $16 dc.b 0 dc.b $E dc.b 0 dc.b $F dc.b 0 dc.b $3E ; > dc.b 0 dc.b $1E dc.b 0 dc.b $A dc.b 0 dc.b $B dc.b 0 dc.b $1A dc.b 0 dc.b $3A ; : dc.b 0 dc.b $3B ; ; dc.b 0 dc.b 2 dc.b 0 dc.b 3 dc.b 0 dc.b $12 dc.b 0 dc.b $32 ; 2 dc.b 0 dc.b $33 ; 3 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b $10 dc.b 0 dc.b $11 dc.b 0 dc.b $30 ; 0 dc.b 0 dc.b $31 ; 1 word_89802: dc.w 0 ; DATA XREF: sub_8745E+8r word_89804: dc.w $700 ; DATA XREF: sub_8745Er word_89806: dc.w $806A ; DATA XREF: sub_8745E+10r word_89808: dc.w 0 ; DATA XREF: sub_8745E+18r sub_87940r word_8980A: dc.w $600 ; DATA XREF: sub_87940+10r dc.b 5 dc.b 0 word_8980E: dc.w $100 ; DATA XREF: sub_8745E+52r word_89810: dc.w $28 ; DATA XREF: sub_8745E+20r ; sub_87940+8r dc.b 0 dc.b $A8 ; ? word_89814: dc.w $1A86 ; DATA XREF: sub_87940+18r off_89816: dc.l locret_4A51C ; DATA XREF: sub_45CCE+214r dc.l loc_4A4DE dc.l loc_4A4C0 dc.l loc_4A4E4 dc.l loc_4A432 dc.l loc_4A43C dc.l loc_4A448 dc.l loc_4A454 dc.l loc_4A45C dc.l loc_4A468 dc.l loc_4A472 dc.l loc_4A47E dc.l loc_4A48A dc.l loc_4A496 dc.l loc_4A4A0 dc.l loc_4A4AC dc.l loc_4A4BA dc.l loc_4A4EC dc.l loc_4A4F6 dc.l loc_4A4FC dc.l loc_4A504 dc.l loc_4A50A dc.l loc_4A510 dc.l loc_4A516 off_89876: dc.l loc_6528A ; DATA XREF: sub_64EFC+384r dc.l loc_652A8 dc.l loc_652CC dc.l loc_6530E dc.l loc_6531C dc.l loc_653C0 dc.l loc_653DE off_89892: dc.l loc_654A8 ; DATA XREF: sub_64EFC+5A2r dc.l loc_654B0 dc.l loc_654C8 dc.l loc_654E8 dc.l loc_654FE off_898A6: dc.l loc_65544 ; DATA XREF: sub_64EFC+63Er dc.l loc_6554A dc.l loc_6558A dc.l loc_65594 off_898B6: dc.l loc_655A6 ; DATA XREF: sub_64EFC+F82r dc.l loc_65E88 dc.l loc_65EE4 dc.l loc_662B6 dc.l loc_662B6 dc.l loc_65F44 dc.l loc_662B6 dc.l loc_65FF4 off_898D6: dc.l loc_74030 ; DATA XREF: sub_7401A+Cr dc.l loc_74036 dc.l locret_740DE dc.l loc_74054 dc.l loc_7405C dc.l loc_74060 dc.l loc_74076 dc.l loc_7408C dc.l loc_740A8 dc.l loc_740AE dc.l locret_740DE dc.l locret_740DE dc.l locret_740DE dc.l loc_740B2 dc.l loc_740B8 dc.l locret_740DE dc.l locret_740DE dc.l locret_740DE dc.l loc_740BE dc.l loc_740D6 dc.l loc_740DA off_8992A: dc.l loc_41EBE ; DATA XREF: sub_41E26+8Er dc.l loc_41ECA dc.l loc_41F14 dc.l loc_41ED0 dc.l loc_41ED4 dc.l loc_41EE0 dc.l loc_41EE0 dc.l loc_41EE4 off_8994A: dc.l loc_41F2E ; DATA XREF: sub_41E26+FEr dc.l loc_41F5A dc.l loc_420A6 dc.l loc_41F60 dc.l loc_41F64 dc.l loc_41F92 dc.l loc_41F92 dc.l loc_41F96 dc.l loc_41FC4 dc.l loc_41FC8 dc.l loc_42026 off_89976: dc.l loc_42064 ; DATA XREF: sub_4EEB4+2Cr dc.l T_TIMING_TABLES_KV_1_2_NORMAL_DESIRED_SHIFT_TIME ; Desired shift time for a 1-2 shift in normal mode. ; Seconds dc.l T_TIMING_TABLES_KV_2_3_NORMAL_DESIRED_SHIFT_TIME ; Desired shift time for a 2-3 shift in normal mode. ; Seconds dc.l T_TIMING_TABLES_KV_3_4_NORMAL_DESIRED_SHIFT_TIME ; Desired shift time for a 3-4 shift in normal mode. ; Seconds dc.l T_TIMING_TABLES_KV_1_2_PERF_DESIRED_SHIFT_TIME ; Desired shift time for a 1-2 shift in performance mode. ; Seconds dc.l T_TIMING_TABLES_KV_2_3_PERF_DESIRED_SHIFT_TIME ; Desired shift time for a 2-3 shift in performance mode. ; Seconds off_8998E: dc.l T_TIMING_TABLES_KV_3_4_PERF_DESIRED_SHIFT_TIME ; DATA XREF: sub_5D45C+32Er ; Desired shift time for a 3-4 shift in performance mode. ; Seconds dc.l T_TIMING_TABLES_KV_1_2_PRESS_LOW_ADAPT_LIMIT ; Adaptive pressure low limit for 1-2 shift. ; PSI dc.l T_TIMING_TABLES_KV_2_3_PRESS_LOW_ADAPT_LIMIT ; Adaptive pressure low limit for 2-3 shift. ; PSI off_8999A: dc.l T_TIMING_TABLES_KV_3_4_PRESS_LOW_ADAPT_LIMIT ; DATA XREF: sub_4EEB4+64r ; Adaptive pressure low limit for 3-4 shift. ; PSI dc.l T_TIMING_TABLES_KV_1_2_NORMAL_DST_OFFSET ; Altitude compensation factor offset for 1-2 upshift in normalmode used within shift quality's Desired Shift Time algorithm. ; Seconds dc.l T_TIMING_TABLES_KV_2_3_NORMAL_DST_OFFSET ; Altitude compensation factor offset for 2-3 upshift in normalmode used within shift quality's Desired Shift Time algorithm. ; Seconds dc.l T_TIMING_TABLES_KV_3_4_NORMAL_DST_OFFSET ; Altitude compensation factor offset for 3-4 upshift in normalmode used within shift quality's Desired Shift Time algorithm. ; Seconds dc.l T_TIMING_TABLES_KV_1_2_PERF_DST_OFFSET dc.l T_TIMING_TABLES_KV_2_3_PERF_DST_OFFSET off_899B2: dc.l T_TIMING_TABLES_KV_3_4_PERF_DST_OFFSET ; DATA XREF: sub_4EEB4+4Ar dc.l T_TIMING_TABLES_KV_1_2_DST_ALTITUDE_FACTOR ; Multiplicative Altitude compensation factor based on barometricpressure for 1-2 shift normal mode within Desired Shift Times. ; Factor dc.l T_TIMING_TABLES_KV_2_3_DST_ALTITUDE_FACTOR ; Multiplicative Altitude compensation factor based on barometricpressure for 2-3 shift normal mode within Desired Shift Times. ; Factor dc.l T_TIMING_TABLES_KV_3_4_DST_ALTITUDE_FACTOR ; Multiplicative Altitude compensation factor based on barometricpressure for 3-4 shift normal mode within Desired Shift Times. ; Factor SurfaceTable_2x17_Coolant_temperature_sensor_calibration:dc.b $D ; DATA XREF: OS3:0007B7EAo ; GetCoolantTemperature+24o dc.b $FF dc.b $D dc.b $FF dc.b $D dc.b $FF dc.b $C dc.b $C8 ; ? dc.b $B dc.b $60 ; ` dc.b $A dc.b $45 ; E dc.b 9 dc.b $56 ; V dc.b 8 dc.b $81 ; ? dc.b 7 dc.b $BB ; ? dc.b 6 dc.b $FD ; ? dc.b 6 dc.b $40 ; @ dc.b 5 dc.b $7C ; | dc.b 4 dc.b $AA ; ? dc.b 3 dc.b $B8 ; ? dc.b 2 dc.b $85 ; ? dc.b 0 dc.b $9D ; ? dc.b $FC ; ? dc.b 0 dc.b $D dc.b $FF dc.b 8 dc.b $A1 ; ? dc.b 6 dc.b $66 ; f dc.b 5 dc.b $21 ; ! dc.b 4 dc.b $37 ; 7 dc.b 3 dc.b $7B ; { dc.b 2 dc.b $D9 ; ? dc.b 2 dc.b $46 ; F dc.b 1 dc.b $BD ; ? dc.b 1 dc.b $38 ; 8 dc.b 0 dc.b $B2 ; ? dc.b 0 dc.b $27 ; ' dc.b $FF dc.b $92 ; ? dc.b $FE ; ? dc.b $E6 ; ? dc.b $FE ; ? dc.b $10 dc.b $FC ; ? dc.b $D0 ; ? dc.b $FC ; ? dc.b 0 SurfaceTable_2x17_Temperature_sensor_calibration_2:dc.b $D ; DATA XREF: sub_7FE4C+22o dc.b $FF dc.b $D dc.b $FF dc.b $D dc.b $FF dc.b $C dc.b $C8 ; ? dc.b $B dc.b $60 ; ` dc.b $A dc.b $45 ; E dc.b 9 dc.b $56 ; V dc.b 8 dc.b $81 ; ? dc.b 7 dc.b $BB ; ? dc.b 6 dc.b $FD ; ? dc.b 6 dc.b $40 ; @ dc.b 5 dc.b $7C ; | dc.b 4 dc.b $AA ; ? dc.b 3 dc.b $B8 ; ? dc.b 2 dc.b $85 ; ? dc.b 0 dc.b $9D ; ? dc.b $FC ; ? dc.b 0 dc.b $D dc.b $FF dc.b 8 dc.b $A1 ; ? dc.b 6 dc.b $66 ; f dc.b 5 dc.b $21 ; ! dc.b 4 dc.b $37 ; 7 dc.b 3 dc.b $7B ; { dc.b 2 dc.b $D9 ; ? dc.b 2 dc.b $46 ; F dc.b 1 dc.b $BD ; ? dc.b 1 dc.b $38 ; 8 dc.b 0 dc.b $B2 ; ? dc.b 0 dc.b $27 ; ' dc.b $FF dc.b $92 ; ? dc.b $FE ; ? dc.b $E6 ; ? dc.b $FE ; ? dc.b $10 dword_89A46: dc.l $FCD0FC00 ; DATA XREF: sub_582B0+88r dc.l T_SEM_KV_DRIVE_RANGE_TIME ; Time limit during which abuse mode may be active as a functionof temperature ; Seconds dc.l T_SEM_KV_REVERSE_RANGE_TIME ; Time limit during which abuse mode may be active as a functionof temperature ; Seconds dc.l T_SEM_KV_DRIVE_RANGE_TIME ; Time limit during which abuse mode may be active as a functionof temperature ; Seconds dc.l T_SEM_KV_REVERSE_RANGE_TIME ; Time limit during which abuse mode may be active as a functionof temperature ; Seconds dc.l T_SEM_KV_DRIVE_RANGE_TIME ; Time limit during which abuse mode may be active as a functionof temperature ; Seconds off_89A5E: dc.l T_SEM_KV_REVERSE_RANGE_TIME ; DATA XREF: sub_58914+CCr ; Time limit during which abuse mode may be active as a functionof temperature ; Seconds dc.l T_SEM_KV_UPSHIFT_TOT_TRQ_RED_NORM_2 ; Percentage of total torque reduction for 1-2 upshiftusing Normal pressure pattern ; Percent dc.l T_SEM_KV_UPSHIFT_TOT_TRQ_RED_NORM_3 ; Percentage of total torque reduction for 2-3 upshiftusing Normal pressure pattern ; Percent dc.l T_SEM_KV_UPSHIFT_TOT_TRQ_RED_NORM_4 ; Percentage of total torque reduction for 3-4 upshiftusing Normal pressure pattern ; Percent dc.l T_SEM_KV_UPSHIFT_TOT_TRQ_RED_PERF_2 ; Percentage of total torque reduction for 1-2 upshiftusing Performance pressure pattern ; Percent dc.l T_SEM_KV_UPSHIFT_TOT_TRQ_RED_PERF_3 ; Percentage of total torque reduction for 2-3 upshiftusing Performance pressure pattern ; Percent dc.l T_SEM_KV_UPSHIFT_TOT_TRQ_RED_PERF_4 ; Percentage of total torque reduction for 3-4 upshiftusing Performance pressure pattern ; Percent off_89A7A: dc.l T_SEM_KV_FIRST_DN_PERCENT_TOT_TRQ_RED ; DATA XREF: sub_585F4+F4r ; Percentage of total torque reduction for 2-1 downshift ; Percent dc.l T_SEM_KV_SECOND_DN_PERCENT_TOT_TRQ_RED ; Percentage of total torque reduction for 3-2 downshift ; Percent dc.l T_SEM_KV_THIRD_DN_PERCENT_TOT_TRQ_RED ; Percentage of total torque reduction for 4-3 downshift ; Percent off_89A86: dc.l loc_7E780 ; DATA XREF: sub_7E0BC+6BAr dc.l loc_7E860 dc.l loc_7E87E dc.l loc_7E930 dc.l loc_7E89E dc.l loc_7E914 dc.l loc_7E926 off_89AA2: dc.l loc_7E940 ; DATA XREF: OS3:0007E936r dc.l loc_7E950 dc.l loc_7EB24 dc.l loc_7EE82 dc.l loc_7EC22 dc.l loc_7ED38 dc.l loc_7EE32 unk_89ABE: dc.b 0 ; DATA XREF: sub_5D87C+1Ao dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 unk_89AEE: dc.b 0 ; DATA XREF: sub_26672+18o dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 1 dc.b 0 dc.b 0 dc.b $FF dc.b $A4 ; ? dc.b $9E ; ? dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $A4 ; ? dc.b $9C ; ? dc.b 2 dc.b 0 dc.b 0 dc.b $FF dc.b $A4 ; ? dc.b $98 ; ? dc.b $40 ; @ dc.b 0 dc.b 0 dc.b $FF dc.b $A4 ; ? dc.b $A0 ; ? dc.b $10 dc.b 0 dc.b 0 dc.b $FF dc.b $A4 ; ? dc.b $9A ; ? dc.b $80 ; ? dc.b 0 dc.b 0 dc.b $FF dc.b $A4 ; ? dc.b $A2 ; ? dc.b $20 dc.b 0 dc.b 0 dc.b $FF dc.b $A4 ; ? dc.b $A4 ; ? dc.b 8 dc.b 0 dc.b 0 dc.b $FF dc.b $A4 ; ? dc.b $A6 ; ? dc.b 4 dc.b 0 off_89B26: dc.l unk_FFA4A8 ; DATA XREF: sub_451EA+274r dc.l loc_45468 dc.l loc_45468 dc.l loc_4547C dc.l loc_4563C dc.l loc_456B0 dc.l loc_456B4 dc.l loc_456D0 dc.l loc_45734 dc.l loc_45736 dc.l loc_45764 dc.l loc_457C2 dc.l loc_457C4 dc.l loc_45838 off_89B5E: dc.l loc_71208 ; DATA XREF: sub_71122+DCr dc.l loc_713F8 dc.l loc_7120C dc.l loc_712BA dc.l loc_7124A dc.l loc_71390 dc.l loc_71322 off_89B7A: dc.l loc_7145C ; DATA XREF: sub_71122+330r dc.l loc_714D2 off_89B82: dc.l loc_7145E ; DATA XREF: sub_458E6+8Cr dc.l loc_714A8 dc.l loc_7147C dc.l loc_4597C dc.l loc_45982 dc.l loc_4599E dc.l loc_459A2 dc.l loc_459BE dc.l loc_459D6 dc.l loc_459F4 dc.l loc_45A10 dc.l loc_45A0E dc.l loc_45A2C dc.l loc_45A48 word_89BBA: dc.w $24 ; DATA XREF: OS4:0008730Ar dc.b 0 dc.b $26 ; & dc.b 0 dc.b $3E ; > dc.b 1 dc.b $30 ; 0 dc.b 1 dc.b $32 ; 2 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $42 ; B dc.b 1 dc.b $44 ; D dc.b 1 dc.b $50 ; P dc.b 1 dc.b $58 ; X dc.b 1 dc.b $5A ; Z dc.b 1 dc.b $5C ; \ byte_89BD4: dc.b $76 ; DATA XREF: OS4:00087346r dc.b $78 ; x dc.b $7A ; z dc.b $7C ; | dc.b $88 ; ? dc.b $8A ; ? dc.b $8C ; ? dc.b $30 ; 0 dc.b $1A dc.b $14 dc.b $16 dc.b $34 ; 4 dc.b $20 dc.b $22 ; " dc.b $24 ; $ dc.b $26 ; & off_89BE4: dc.l loc_8757A ; DATA XREF: sub_8756A+4r dc.l loc_87578 dc.l loc_8757A dc.l loc_8757A dc.l locret_875B8 dc.l locret_875B8 dc.l loc_8757A dc.l loc_87578 dc.l locret_875B8 dc.l loc_8757A off_89C0C: dc.l loc_3B4A8 ; DATA XREF: sub_3B498+6r dc.l loc_3B516 dc.l loc_3B51A dc.l loc_3B570 dc.l loc_3B65A dc.l loc_3B6E6 dc.l loc_3B570 dc.l loc_3B662 dc.l loc_3B662 dc.l loc_3B6CC off_89C34: dc.l loc_2CB32 ; DATA XREF: sub_2CB22+6r dc.l loc_2CB4A dc.l loc_2CB34 dc.l loc_2CB4A dc.l loc_2CB74 dc.l loc_2CB74 dc.l loc_2CB4A dc.l loc_2CB32 dc.l loc_2CB74 dc.l loc_2CB4A off_89C5C: dc.l loc_7F25E ; DATA XREF: sub_7F15A+Cr dc.l loc_7F35C dc.l loc_7F170 dc.l loc_7F25E dc.l loc_7F35C dc.l loc_7F364 dc.l loc_7F25E dc.l loc_7F25E dc.l loc_7F25E dc.l loc_7F35C off_89C84: dc.l loc_7B74C ; DATA XREF: sub_7B73E+4r dc.l loc_7B74E dc.l loc_7B750 dc.l loc_7B762 dc.l loc_7B782 dc.l locret_7B7B6 dc.l loc_7B784 dc.l loc_7B7AE dc.l loc_7B7B0 dc.l locret_7B7B6 off_89CAC: dc.l loc_2D822 ; DATA XREF: sub_2D722+42r dc.l loc_2D83E dc.l loc_2D76E dc.l loc_2D82E dc.l loc_2D846 dc.l loc_2D8D0 dc.l loc_2D82E dc.l loc_2D7AC dc.l loc_2D7AC dc.l loc_2D83E off_89CD4: dc.l loc_2C790 ; DATA XREF: sub_2C70E+6r dc.l loc_2C7A8 dc.l loc_2C71E dc.l loc_2C790 dc.l loc_2C7A8 dc.l loc_2C7A8 dc.l loc_2C790 dc.l loc_2C7A8 dc.l loc_2C782 dc.l loc_2C790 off_89CFC: dc.l aB8lB8lsb8lB8lB ; DATA XREF: sub_7D66C+4r ; "B8??B8??B8??B8??B8??Nu/" dc.l loc_7D71C dc.l loc_7D67A dc.l loc_7D69A dc.l aB8lB8lsb8lB8lB+$14 dc.l aB8lB8lsb8lB8lB+$14 dc.l loc_7D6F6 dc.l aB8lB8lsb8lB8lB ; "B8??B8??B8??B8??B8??Nu/" dc.l loc_7D6F4 dc.l loc_7D714 off_89D24: dc.l loc_768FC ; DATA XREF: sub_768D0+4r dc.l loc_768DE dc.l loc_768FC dc.l loc_768FC dc.l loc_768DE dc.l locret_7695C dc.l loc_768FC dc.l loc_768DE dc.l loc_768DE dc.l loc_768FC off_89D4C: dc.l loc_773FE ; DATA XREF: sub_773EA+8r dc.l loc_773FC dc.l loc_773FE dc.l loc_773FE dc.l loc_7746E dc.l loc_7746E dc.l loc_773FE dc.l loc_773FC dc.l loc_7746E dc.l loc_773FE off_89D74: dc.l loc_7CAE2 ; DATA XREF: sub_7CAD2+4r dc.l loc_7CAE0 dc.l loc_7CAE2 dc.l loc_7CAE2 dc.l loc_7CAE0 dc.l locret_7CAF2 dc.l loc_7CAE2 dc.l loc_7CAE2 dc.l loc_7CAE2 dc.l loc_7CAE0 off_89D9C: dc.l loc_8316C ; DATA XREF: sub_8315E+4r dc.l loc_8316C dc.l loc_8316E dc.l loc_831B4 dc.l loc_831B4 dc.l locret_831B8 dc.l loc_831B6 dc.l loc_831B6 dc.l locret_831B8 dc.l locret_831B8 off_89DC4: dc.l loc_34636 ; DATA XREF: sub_34628+4r dc.l loc_34638 dc.l loc_3463A dc.l loc_34650 dc.l loc_34656 dc.l locret_34692 dc.l loc_34658 dc.l loc_34678 dc.l loc_34678 dc.l loc_3467E off_89DEC: dc.l loc_8146A ; DATA XREF: sub_81344+8r dc.l loc_8146A dc.l loc_81356 dc.l loc_8146A dc.l loc_813E8 dc.l loc_8146A dc.l loc_8146A dc.l loc_8146A dc.l loc_8141C dc.l loc_8146A off_89E14: dc.l loc_7C870 ; DATA XREF: sub_7C832+4r dc.l loc_7C88C dc.l loc_7C840 dc.l loc_7C850 dc.l locret_7C8A0 dc.l locret_7C8A0 dc.l loc_7C870 dc.l loc_7C892 dc.l locret_7C8A0 dc.l loc_7C848 off_89E3C: dc.l loc_35C8C ; DATA XREF: sub_35C4E+Cr dc.l loc_35CAA dc.l loc_35C64 dc.l loc_35C6A dc.l loc_35C84 dc.l loc_35CB6 dc.l loc_35C6A dc.l loc_35C84 dc.l loc_35C94 dc.l loc_35C9C off_89E64: dc.l loc_38320 ; DATA XREF: sub_38226+8r dc.l loc_38320 dc.l loc_38238 dc.l loc_382E8 dc.l loc_38320 dc.l loc_3832A dc.l loc_38320 dc.l loc_38320 dc.l loc_38320 dc.l loc_38320 off_89E8C: dc.l loc_7C24E ; DATA XREF: sub_7C23C+8r dc.l loc_7C24E dc.l loc_7C252 dc.l loc_7C2E6 dc.l loc_7C2E6 dc.l loc_7C2EA dc.l loc_7C2E8 dc.l loc_7C2E8 dc.l loc_7C2EA dc.l loc_7C2EA off_89EB4: dc.l loc_33B92 ; DATA XREF: sub_33B84+4r dc.l loc_33B92 dc.l loc_33B96 dc.l loc_33BDC dc.l loc_33BDE dc.l locret_33CBC dc.l loc_33BE2 dc.l loc_33C4A dc.l loc_33C4C dc.l locret_33CBC off_89EDC: dc.l loc_81248 ; DATA XREF: sub_8120A+4r dc.l loc_812CA dc.l loc_81218 dc.l loc_81218 dc.l loc_812CA dc.l locret_81342 dc.l loc_81218 dc.l loc_81248 dc.l loc_81248 dc.l loc_812CA off_89F04: dc.l locret_75DDA ; DATA XREF: sub_75DAE+4r dc.l locret_75DDA dc.l loc_75DBC dc.l loc_75DD6 dc.l locret_75DDA dc.l locret_75DDA dc.l loc_75DD6 dc.l locret_75DDA dc.l loc_75DD6 dc.l locret_75DDA off_89F2C: dc.l loc_263D8 ; DATA XREF: sub_2639A+4r dc.l loc_263A8 dc.l loc_263D8 dc.l loc_263D8 dc.l loc_2650C dc.l locret_2653A dc.l loc_263D8 dc.l loc_264D2 dc.l loc_264D2 dc.l loc_2650E off_89F54: dc.l loc_32550 ; DATA XREF: sub_32510+36r dc.l loc_32568 dc.l loc_3256C dc.l loc_3258A dc.l loc_32602 dc.l locret_32676 dc.l loc_32604 dc.l loc_3263A dc.l loc_3264C dc.l loc_32668 off_89F7C: dc.l loc_7B8F4 ; DATA XREF: sub_7B7B8+8r dc.l loc_7B8EC dc.l loc_7B7CA dc.l loc_7B8E0 dc.l loc_7B8F6 dc.l loc_7B8FC dc.l loc_7B8EA dc.l loc_7B8F4 dc.l loc_7B8E2 dc.l loc_7B8EA off_89FA4: dc.l loc_7BA36 ; DATA XREF: sub_7BA28+4r dc.l loc_7BA5E dc.l loc_7BA36 dc.l loc_7BA36 dc.l locret_7BA60 dc.l locret_7BA60 dc.l loc_7BA36 dc.l locret_7BA60 dc.l loc_7BA5C dc.l loc_7BA5E off_89FCC: dc.l loc_834AA ; DATA XREF: sub_8349C+4r dc.l locret_83560 dc.l loc_834AA dc.l loc_834AA dc.l locret_83560 dc.l locret_83560 dc.l loc_834AA dc.l loc_83552 dc.l locret_83560 dc.l loc_834AA off_89FF4: dc.l locret_835B0 ; DATA XREF: sub_83562+4r dc.l locret_835B0 dc.l loc_83570 dc.l loc_8358E dc.l locret_835B0 dc.l locret_835B0 dc.l locret_835B0 dc.l locret_835B0 dc.l locret_835B0 dc.l locret_835B0 off_8A01C: dc.l loc_86C78 ; DATA XREF: sub_86BC4+16r dc.l loc_86C78 dc.l loc_86BE4 dc.l loc_86C66 dc.l loc_86C78 dc.l loc_86CBA dc.l loc_86C90 dc.l loc_86C78 dc.l loc_86C78 dc.l loc_86C90 off_8A044: dc.l loc_2FC4E ; DATA XREF: sub_2FC30+4r dc.l locret_2FC52 dc.l loc_2FC3E dc.l loc_2FC4C dc.l locret_2FC52 dc.l locret_2FC52 dc.l loc_2FC4C dc.l loc_2FC4E dc.l loc_2FC50 dc.l loc_2FC50 off_8A06C: dc.l loc_2F284 ; DATA XREF: sub_2F19C+6r dc.l loc_2F284 dc.l loc_2F1AC dc.l loc_2F284 dc.l loc_2F2FA dc.l loc_2F2FA dc.l loc_2F284 dc.l loc_2F1CE dc.l loc_2F284 dc.l loc_2F1EC off_8A094: dc.l locret_2D9E2 ; DATA XREF: sub_2D978+4r dc.l locret_2D9E2 dc.l loc_2D986 dc.l loc_2D9BE dc.l locret_2D9E2 dc.l locret_2D9E2 dc.l locret_2D9E2 dc.l locret_2D9E2 dc.l locret_2D9E2 dc.l locret_2D9E2 off_8A0BC: dc.l loc_2E68C ; DATA XREF: sub_2E67E+4r dc.l loc_2E690 dc.l loc_2E692 dc.l loc_2E6AA dc.l loc_2E6B6 dc.l locret_2E714 dc.l loc_2E6B8 dc.l loc_2E6E0 dc.l loc_2E6E2 dc.l loc_2E70C off_8A0E4: dc.l loc_737AC ; DATA XREF: sub_73688+6r dc.l loc_73822 dc.l loc_73698 dc.l loc_73716 dc.l loc_73822 dc.l loc_73822 dc.l loc_73716 dc.l loc_73822 dc.l loc_73822 dc.l loc_7381E off_8A10C: dc.l loc_7AC00 ; DATA XREF: sub_7AB4C+4r dc.l loc_7AC00 dc.l loc_7AB5A dc.l loc_7AC02 dc.l loc_7AC34 dc.l locret_7AC3A dc.l loc_7AC00 dc.l loc_7AC00 dc.l loc_7ABF8 dc.l loc_7AC00 off_8A134: dc.l aB8Pb8B8B8Nu ; DATA XREF: sub_5F3EC+Cr ; "B8??B8??B8??B8??Nu/" dc.l aB8Pb8B8B8Nu+$10 dc.l loc_5F402 dc.l loc_5F416 dc.l aB8Pb8B8B8Nu+$10 dc.l aB8Pb8B8B8Nu+$10 dc.l loc_5F416 dc.l aB8Pb8B8B8Nu+$10 dc.l loc_5F41E dc.l aB8Pb8B8B8Nu ; "B8??B8??B8??B8??Nu/" off_8A15C: dc.l loc_61988 ; DATA XREF: sub_61962+Ar dc.l loc_619F8 dc.l loc_61992 dc.l loc_61994 dc.l loc_619F8 dc.l loc_619F8 dc.l loc_61976 dc.l loc_619F8 dc.l loc_619F8 dc.l loc_619CA off_8A184: dc.l loc_64CEC ; DATA XREF: sub_64CDE+4r dc.l loc_64CEC dc.l loc_64CEE dc.l loc_64CEE dc.l loc_64D68 dc.l locret_64D6A dc.l loc_64CEE dc.l loc_64D68 dc.l locret_64D6A dc.l locret_64D6A off_8A1AC: dc.l loc_3BA94 ; DATA XREF: sub_3BA86+4r dc.l loc_3BA96 dc.l loc_3BA98 dc.l loc_3BAA4 dc.l loc_3BAA6 dc.l locret_3BAB0 dc.l loc_3BAA8 dc.l loc_3BAAE dc.l locret_3BAB0 dc.l locret_3BAB0 off_8A1D4: dc.l loc_7CCA6 ; DATA XREF: sub_7CAF4+4r dc.l loc_7CC3A dc.l loc_7CB02 dc.l loc_7CBC2 dc.l loc_7CC7A dc.l locret_7CCBA dc.l loc_7CC0C dc.l loc_7CBC0 dc.l loc_7CBC0 dc.l loc_7CC3A off_8A1FC: dc.l loc_348BE ; DATA XREF: sub_34852+8r dc.l loc_348B0 dc.l loc_34864 dc.l loc_34890 dc.l loc_348B0 dc.l loc_348C0 dc.l loc_348C0 dc.l loc_348BE dc.l loc_348C0 dc.l loc_348B0 off_8A224: dc.l loc_4B44E ; DATA XREF: sub_4B1C8+Er dc.l loc_4B2D0 dc.l loc_4B1E0 dc.l loc_4B2D0 dc.l loc_4B37C dc.l loc_4B48C dc.l loc_4B2D0 dc.l loc_4B44E dc.l loc_4B2D0 dc.l loc_4B2D0 off_8A24C: dc.l loc_349F0 ; DATA XREF: sub_349E2+4r dc.l loc_349F4 dc.l loc_34A00 dc.l loc_34A08 dc.l loc_34A80 dc.l locret_34AFE dc.l loc_34A82 dc.l loc_34A84 dc.l loc_34A84 dc.l loc_34A86 off_8A274: dc.l loc_33942 ; DATA XREF: sub_33930+8r dc.l loc_33942 dc.l loc_33946 dc.l loc_33A3A dc.l loc_33A3E dc.l loc_33B7E dc.l loc_33AE2 dc.l loc_33B48 dc.l loc_33B4A dc.l loc_33B7E off_8A29C: dc.l loc_3141C ; DATA XREF: sub_3140A+8r dc.l loc_31420 dc.l loc_31428 dc.l loc_314B0 dc.l loc_314B4 dc.l loc_31586 dc.l loc_314B6 dc.l loc_314DE dc.l loc_314E2 dc.l loc_314B6 off_8A2C4: dc.l aBxVbxHbxXbxTb8 ; DATA XREF: sub_2FF9E+8r ; "Bx?VBx?HBx?XBx?TB8?MB8?QB8?rJ8?Pg\bN?" dc.l loc_2FFE8 dc.l loc_2FFF0 dc.l loc_30186 dc.l loc_302E2 dc.l loc_30362 dc.l loc_302E4 dc.l loc_30358 dc.l loc_30358 dc.l loc_3035A off_8A2EC: dc.l loc_3578E ; DATA XREF: sub_3577C+8r dc.l loc_3578E dc.l loc_35790 dc.l loc_3579E dc.l loc_357A0 dc.l locret_357C8 dc.l loc_357A2 dc.l loc_357BE dc.l loc_357C0 dc.l loc_357C0 off_8A314: dc.l loc_4AA12 ; DATA XREF: sub_4A9E4+8r dc.l loc_4AA10 dc.l loc_4A9F6 dc.l loc_4AA0C dc.l loc_4AA12 dc.l loc_4AA12 dc.l loc_4AA0E dc.l loc_4AA10 dc.l loc_4AA0C dc.l loc_4AA0E off_8A33C: dc.l loc_78448 ; DATA XREF: sub_7840E+6r dc.l loc_78448 dc.l loc_7841E dc.l loc_78448 dc.l loc_78448 dc.l loc_7846E dc.l loc_7845C dc.l loc_7841E dc.l loc_7844A dc.l loc_7845C off_8A364: dc.l loc_847D2 ; DATA XREF: sub_84692+8r dc.l loc_8480A dc.l loc_846A4 dc.l loc_84720 dc.l loc_8480A dc.l loc_8484E dc.l loc_8479C dc.l loc_847D2 dc.l loc_8479C dc.l loc_8480A off_8A38C: dc.l loc_8712E ; DATA XREF: sub_870D8+4r dc.l loc_870E8 dc.l loc_870EA dc.l loc_870EA dc.l loc_870E8 dc.l locret_87164 dc.l loc_8712E dc.l loc_870E6 dc.l loc_870E8 dc.l loc_8712E off_8A3B4: dc.l loc_758B4 ; DATA XREF: sub_758A6+4r dc.l loc_758B4 dc.l loc_758B6 dc.l loc_758C6 dc.l loc_758CE dc.l locret_758D6 dc.l loc_758D0 dc.l loc_758D0 dc.l loc_758D2 off_8A3D8: dc.l locret_758D6 ; DATA XREF: sub_6BDFE+Cr dc.l loc_6BF26 dc.l loc_6BE14 dc.l loc_6BE14 dc.l loc_6BF26 dc.l locret_6BF34 dc.l loc_6BE14 dc.l locret_6BF34 dc.l locret_6BF34 dc.l loc_6BF26 off_8A400: dc.l loc_3CBCA ; DATA XREF: sub_3CB70+12r dc.l loc_3CC00 dc.l loc_3CB8C dc.l loc_3CB8C dc.l loc_3CC00 dc.l loc_3CC00 dc.l loc_3CBCA dc.l loc_3CBCA off_8A420: dc.l loc_3CBCA ; DATA XREF: sub_27966+34r dc.l loc_279A4 dc.l loc_279AE dc.l loc_279B8 dc.l loc_279C2 dc.l loc_279CC dc.l loc_279CE dc.l loc_279D8 dc.l loc_279E2 off_8A444: dc.l loc_279EC ; DATA XREF: sub_2C3C0+10r dc.l loc_2C49C dc.l loc_2C3DA dc.l loc_2C4F0 dc.l loc_2C4F0 dc.l loc_2C4F0 dc.l loc_2C4F0 dc.l loc_2C492 dc.l loc_2C4A4 off_8A468: dc.l loc_2C49C ; DATA XREF: sub_7A99E+Ar dc.l loc_7AA16 dc.l loc_7A9B2 dc.l loc_7AA04 dc.l loc_7AA16 dc.l locret_7AA24 dc.l loc_7AA04 dc.l locret_7AA24 dc.l loc_7A9FC off_8A48C: dc.l loc_7AA16 ; DATA XREF: sub_803A4+DAr dc.l loc_80728 dc.l loc_80488 dc.l loc_80488 dc.l loc_80728 dc.l loc_8076A dc.l loc_805C4 dc.l loc_80714 dc.l loc_8076A off_8A4B0: dc.l loc_80728 ; DATA XREF: sub_308A8+1Ar dc.l loc_308F0 dc.l loc_308CC dc.l loc_308FE dc.l locret_3090A dc.l locret_3090A dc.l loc_308EA dc.l loc_308F4 dc.l locret_3090A off_8A4D4: dc.l loc_308F0 word_8A4D8: dc.w $24 ; DATA XREF: sub_8704A+5Er dc.b 0 dc.b $26 ; & dc.b 0 dc.b $3E ; > dc.b 1 dc.b $30 ; 0 dc.b 1 dc.b $32 ; 2 dc.b 1 dc.b $34 ; 4 dc.b 1 dc.b $40 ; @ dc.b 1 dc.b $42 ; B dc.b 1 dc.b $44 ; D dc.b 1 dc.b $50 ; P dc.b 1 dc.b $58 ; X dc.b 1 dc.b $5A ; Z word_8A4F0: dc.w $15C ; DATA XREF: sub_8704A+3Ar dword_8A4F2: dc.l $55555555 ; DATA XREF: sub_87270+12r dword_8A4F6: dc.l $55555555 ; DATA XREF: sub_87270+Ar byte_8A4FA: dc.b 2 ; DATA XREF: sub_45F3A+EC2r ; sub_47DA2+1E2r dc.b 4 dc.b 8 dc.b $10 dc.b $20 dc.b $21 ; ! dc.b 0 dc.b 0 dc.b $80 ; ? dc.b 1 byte_8A504: dc.b 2 ; DATA XREF: sub_45F3A+DDEr ; sub_47DA2+210r dc.b 4 dc.b 8 dc.b $10 dc.b 1 dc.b $80 ; ? dc.b $40 ; @ dc.b 0 byte_8A50C: dc.b 6 ; DATA XREF: sub_4930E:loc_4931Ar dc.b 7 dc.b 8 dc.b 9 dc.b 2 dc.b 3 dc.b 1 dc.b 0 byte_8A514: dc.b $82 ; DATA XREF: sub_47DA2+364r dc.b $83 ; ? dc.b $84 ; ? dc.b $85 ; ? dc.b $47 ; G dc.b $8C ; ? dc.b $8D ; ? dc.b $8E ; ? off_8A51C: dc.l loc_63274 ; DATA XREF: sub_63172+F8r dc.l loc_632AA dc.l loc_633C0 dc.l loc_6381E dc.l loc_63A1E dc.l loc_63BEA dc.l loc_63AF4 dc.l loc_63E14 off_8A53C: dc.l loc_29D20 ; DATA XREF: DoLoopA+2A2r dc.l loc_29D56 dc.l loc_29D58 dc.l loc_29D60 dc.l loc_29D68 dc.l loc_29D68 off_8A554: dc.l loc_29D6A ; DATA XREF: sub_6EE6A+Ar dc.l loc_29D72 dc.l loc_6EE7E dc.l loc_6EEB8 dc.l locret_6EEC6 dc.l locret_6EEC6 off_8A56C: dc.l loc_6EEC0 ; DATA XREF: sub_82534+68r dc.l locret_6EEC6 dc.l locret_6EEC6 dc.l loc_6EEC0 off_8A57C: dc.l loc_3A922 ; DATA XREF: OS1:0003A918r dc.l loc_3A92A dc.l loc_3A938 dc.l loc_3A946 dc.l loc_3A94E dc.l loc_3A956 dc.l loc_3A95E dc.l loc_3A966 word_8A59C: dc.w $702 ; DATA XREF: sub_787DA+2Er ; sub_7889E+4Er ... word_8A59E: dc.w $200 ; DATA XREF: sub_787DA+36r ; sub_7889E+56r ... byte_8A5A0: dc.b $DF ; DATA XREF: sub_787DA+1Er ; sub_7889E+36r ... byte_8A5A1: dc.b $7F ; DATA XREF: sub_787DA+26r ; sub_7889E+46r ... byte_8A5A2: dc.b $7F ; DATA XREF: sub_786EC+18r byte_8A5A3: dc.b $3F ; DATA XREF: sub_7877E+18r byte_8A5A4: dc.b $3F ; DATA XREF: sub_786EC+56r dc.b 0 word_8A5A6: dc.w $602 ; DATA XREF: sub_78484+16r ; sub_784B2+10Er word_8A5A8: dc.w $4E00 ; DATA XREF: sub_78484+1Er word_8A5AA: dc.w 0 ; DATA XREF: sub_784B2+116r ; sub_786EC+20r ... byte_8A5AC: dc.b $DE ; DATA XREF: sub_784B2+96r ; sub_784B2+9Er ... byte_8A5AD: dc.b $5E ; DATA XREF: sub_784B2+B6r ; sub_785F4+74r byte_8A5AE: dc.b $DD ; DATA XREF: sub_784B2+BEr ; sub_784B2+C6r ... byte_8A5AF: dc.b $5D ; DATA XREF: sub_784B2+DEr ; sub_785F4+94r byte_8A5B0: dc.b $DB ; DATA XREF: sub_784B2+E6r ; sub_784B2+EEr ... byte_8A5B1: dc.b $5B ; DATA XREF: sub_784B2+106r ; sub_785F4+B4r byte_8A5B2: dc.b $97 ; DATA XREF: sub_786B2+26r byte_8A5B3: dc.b $77 ; DATA XREF: sub_786B2+2Er word_8A5B4: dc.w $702 ; DATA XREF: sub_78AAC+4Er word_8A5B6: dc.w $200 ; DATA XREF: sub_78AAC+56r byte_8A5B8: dc.b $9F ; DATA XREF: sub_78AAC+36r ; sub_78AAC+3Er byte_8A5B9: dc.b $3F ; DATA XREF: sub_78AAC+46r word_8A5BA: dc.w 0 ; DATA XREF: sub_786EC+10r ; sub_7877E+10r ... dc.l loc_825A6 dc.l loc_825A6 dc.l loc_825C4 dc.l loc_825C4 dc.l loc_82600 dc.l loc_82600 dc.l loc_825E2 dc.l loc_825E2 off_8A5DC: dc.l XMSN_IO_KE_FIRST_GEAR_RATIO ; DATA XREF: sub_4CFF8+A8r ; sub_5436E+636r ... ; Gear ratio for 1st gear. ; Ratio dc.l XMSN_IO_KE_SECOND_GEAR_RATIO ; Gear ratio for 2nd gear. ; Ratio off_8A5E4: dc.l XMSN_IO_KE_THIRD_GEAR_RATIO ; DATA XREF: sub_5436E+8B6r ; sub_54FDC+44Cr ; Gear ratio for 1st gear. ; Ratio dc.l XMSN_IO_KE_FOURTH_GEAR_RATIO ; Gear ratio for 1st gear. ; Ratio dc.l XMSN_IO_KE_REVERSE_GEAR_RATIO ; Gear ratio for 1st gear. ; Ratio dc.l XMSN_IO_KE_REVERSE_GEAR_RATIO ; Gear ratio for 1st gear. ; Ratio dc.l XMSN_IO_KE_REVERSE_GEAR_RATIO ; Gear ratio for 1st gear. ; Ratio dc.l XMSN_IO_KE_REVERSE_GEAR_RATIO ; Gear ratio for 1st gear. ; Ratio off_8A5FC: dc.l loc_4E9A2 ; DATA XREF: sub_4DD5C+ABAr dc.l loc_4E9A2 dc.l loc_4E9A2 dc.l loc_4E948 dc.l loc_4E9A4 dc.l loc_4E948 dc.l loc_4E820 dc.l loc_4E8FE off_8A61C: dc.l loc_67ACA ; DATA XREF: sub_67410+6B0r dc.l loc_67AFC dc.l loc_67B1C dc.l loc_67B30 dc.l loc_67B46 dc.l loc_67B90 dc.l loc_67BA8 off_8A638: dc.l loc_70EC0 ; DATA XREF: sub_70CF2+Cr dc.l locret_70ECC dc.l loc_70D08 dc.l loc_70DD4 dc.l locret_70ECC dc.l locret_70ECC dc.l loc_70DD4 off_8A654: dc.l loc_74C24 ; DATA XREF: sub_74BE4+Ar dc.l locret_74C58 dc.l loc_74BF8 dc.l loc_74C24 dc.l locret_74C58 dc.l locret_74C58 dc.l loc_74C24 off_8A670: dc.l loc_74276 ; DATA XREF: sub_7424A+Ar dc.l locret_742A4 dc.l loc_7425E dc.l loc_74276 dc.l locret_742A4 dc.l locret_742A4 dc.l loc_74276 off_8A68C: dc.l loc_5B42E ; DATA XREF: sub_5B3F8+24r dc.l loc_5B452 dc.l loc_5B442 dc.l loc_5B43A dc.l loc_5B44A dc.l loc_5B44A dc.l loc_5B426 unk_8A6A8: dc.b $57 ; W ; DATA XREF: sub_2178+78o dc.b $30 ; 0 dc.b $34 ; 4 dc.b $54 ; T dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $20 dc.b $49 ; I dc.b 0 dword_8A6B4: dc.l $405E42 ; DATA XREF: sub_27806+46r dword_8A6B8: dc.l $405C70 ; DATA XREF: sub_27806+4Er dword_8A6BC: dc.l $40508E ; DATA XREF: sub_27806+56r ; sub_647EE+14r dword_8A6C0: dc.l $405306 ; DATA XREF: sub_27806+5Er dc.l loc_6480C dc.l loc_6488A dc.l loc_6489C dc.l locret_648CA dc.l loc_6488A dc.l locret_648CA dc.l loc_64882 off_8A6E0: dc.l XTCC_CONTROL_KV_TCC_REFERENCE_SLIP_2 ; DATA XREF: sub_5A53C+10r ; TCC on mode reference slip for second gear. ; RPM dc.l XTCC_CONTROL_KV_TCC_REFERENCE_SLIP_2 ; TCC on mode reference slip for second gear. ; RPM dc.l XTCC_CONTROL_KV_TCC_REFERENCE_SLIP_3 ; TCC on mode reference slip for third gear. ; RPM dc.l XTCC_CONTROL_KV_TCC_REFERENCE_SLIP_4 ; TCC on mode reference slip for fourth gear. ; RPM off_8A6F0: dc.l unk_10201 ; DATA XREF: sub_5AB84+218r dc.l loc_1020 off_8A6F8: dc.l loc_58996 ; DATA XREF: sub_58914+78r dc.l loc_58B46 dc.l loc_58B46 dc.l loc_58A38 dc.l loc_58ABA off_8A70C: dc.l loc_58AE4 ; DATA XREF: sub_40AD6+306r dc.l loc_40DE6 dc.l loc_40DEA dc.l loc_40DEE dc.l loc_40E20 dc.l loc_40E24 dc.l loc_40E74 byte_8A728: dc.b 1 ; DATA XREF: sub_83986+88r dc.b 2 dc.b 6 dc.b 3 dc.b 0 dc.b 7 dc.b 4 dc.b 7 byte_8A730: dc.b 7 ; DATA XREF: sub_83986+1E0r dc.b 7 dc.b 7 dc.b 0 dc.b 7 dc.b 5 dc.b 3 dc.b 7 dc.b 7 dc.b 6 dc.b 1 dc.b 7 dc.b 4 dc.b 7 dc.b 7 dc.b 2 off_8A740: dc.l loc_69B2A ; DATA XREF: sub_69B0A+16r dc.l loc_69BEA dc.l loc_69C98 dc.l loc_69E64 dc.l loc_69E7E unk_8A754: dc.b 0 ; DATA XREF: sub_6D0DE+Ao sub_6D110+Co ... dc.b $80 ; ? dc.b 0 dc.b 0 dc.b 0 dc.b 0 word_8A75A: dc.w $FFFF ; DATA XREF: sub_783CE+26r ; sub_783CE:loc_783FEr dc.l off_0+$FF ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. dc.b 0 dc.b $FF unk_8A762: dc.b 0 ; DATA XREF: OS3:loc_7844Ao dc.b $48 ; H dc.b 0 dc.b $FF dc.b 0 dc.b $FF off_8A768: dc.l loc_4B9CC ; DATA XREF: sub_4B9B8+Ar dc.l loc_4B9CE dc.l loc_4B9DA dc.l loc_4B9EE off_8A778: dc.l loc_4B9E6 ; DATA XREF: sub_7FEDC+82r dc.l loc_7FF68 dc.l loc_7FF92 dc.l loc_7FFF4 dc.l loc_7FFF6 dc.l loc_80012 off_8A790: dc.l loc_5F7B8 ; DATA XREF: OS2:0005F7AEr dc.l loc_5F7DE dc.l loc_5F806 dc.l loc_5F810 dc.l loc_5F81E off_8A7A4: dc.l XPRS_STEADY_STATE_KV_D1_BRAKING_ELEMENT_ON_RANGE ; DATA XREF: sub_5752E+16r ; Indicates if braking element is applied for Drive_Low dueto the hydromechanical design of the transmission. ; BOOLEAN dc.l XPRS_STEADY_STATE_KV_D2_BRAKING_ELEMENT_ON_RANGE ; Indicates if braking element is applied for Drive_Low dueto the hydromechanical design of the transmission. ; BOOLEAN dc.l XPRS_STEADY_STATE_KV_D3_BRAKING_ELEMENT_ON_RANGE ; Indicates if braking element is applied for Drive_Low dueto the hydromechanical design of the transmission. ; BOOLEAN dc.l XPRS_STEADY_STATE_KV_D4_BRAKING_ELEMENT_ON_RANGE ; Indicates if braking element is applied for Drive_Low dueto the hydromechanical design of the transmission. ; BOOLEAN byte_8A7B4: dc.b 0 ; DATA XREF: sub_575C6+278r ; sub_575C6:loc_57B08r byte_8A7B5: dc.b $F ; DATA XREF: sub_575C6+288r byte_8A7B6: dc.b $70 ; DATA XREF: sub_575C6+26Er byte_8A7B7: dc.b $FF ; DATA XREF: sub_742A6+18r ; sub_7468C+DAr dc.b 0 byte_8A7B9: dc.b 1 ; DATA XREF: sub_742A6+1BAr dc.b 0 dc.b 1 word_8A7BC: dc.w 0 ; DATA XREF: sub_742A6+B8r ; sub_742A6+2A8r ... dc.b 0 dc.b $1A dc.b 0 dc.b 0 dc.b 0 dc.b $25 ; % dc.b 0 dc.b 0 dc.b 0 dc.b 0 a12587603: dc.b '12587603',0 ; DATA XREF: sub_3F6FE+F4o dcb.b 7,0 word_8A7D8: dc.w $4A7 ; DATA XREF: OS1:000288B4r ; DoManyThings1+62r dword_8A7DA: dc.l $20300E ; DATA XREF: OS1:loc_288ACr ; DoManyThings1:loc_2949Cr word_8A7DE: dc.w $480 ; DATA XREF: OS1:000288A2r ; DoManyThings1+50r dword_8A7E0: dc.l $80A0300E ; DATA XREF: OS1:0002889Ar ; DoManyThings1+48r unk_8A7E4: dc.b 9 ; DATA XREF: sub_78242+8o byte_8A7E5: dc.b 1 ; DATA XREF: sub_78242+14o ; sub_78242+20r ... unk_8A7E6: dc.b 0 ; DATA XREF: sub_782A6+Co dc.b $FF byte_8A7E8: dc.b 1 ; DATA XREF: sub_54FDC+3BEr dc.b 2 dc.b 4 dc.b 8 dc.b $10 dc.b $20 dc.b $40 ; @ dc.b $80 ; ? byte_8A7F0: dc.b 1 ; DATA XREF: sub_54FDC+3E0r dc.b 2 dc.b 4 dc.b 8 dc.b $10 dc.b $FF word_8A7F6: dc.w $FFFF ; DATA XREF: sub_7792C+B4r ; sub_7792C+19Ar ... unk_8A7F8: dc.b $FF ; DATA XREF: sub_77D80+12o ; sub_77DB2+8o dc.b $FE ; ? word_8A7FA: dc.w $FFF8 ; DATA XREF: sub_7792C+6Er ; sub_7792C+230o ... word_8A7FC: dc.w $A5A0 ; DATA XREF: sub_778D0+30r ; sub_7792C+98o ... dcb.b 2,0 word_8A800: dc.w 0 ; DATA XREF: sub_67410+1D58r ; sub_67410+1D6Cr dc.b 0 dc.b $2D ; - word_8A804: dc.w $30 ; DATA XREF: sub_67410+1D86r ; sub_67410+1D9Ar dc.b 0 dc.b $2E ; . dc.b 0 dc.b $31 ; 1 word_8A80A: dc.w $58 ; DATA XREF: sub_59F72+14Er dc.b $3E ; > dc.b 0 word_8A80E: dc.w $3000 ; DATA XREF: sub_5A12E+9Er word_8A810: dc.w $320 ; DATA XREF: sub_5A12E+12r word_8A812: dc.w $2CC2 ; DATA XREF: sub_2180E+60r word_8A814: dc.w $3492 ; DATA XREF: sub_2180E:loc_218AEr word_8A816: dc.w $5984 ; DATA XREF: sub_2180E+6Er ; sub_2180E+AEr word_8A818: dc.w $6924 ; DATA XREF: sub_2180E+76r ; sub_2180E+B6r word_8A81A: dc.w $AD91 ; DATA XREF: sub_4D13A+142r word_8A81C: dc.w $1ACF ; DATA XREF: sub_4D13A+60r word_8A81E: dc.w $BCD1 ; DATA XREF: sub_4D13A:loc_4D1FCr dword_8A820: dc.l $FC8F ; DATA XREF: DoLoopD+1CAr byte_8A824: dc.b $28 ; DATA XREF: DoLoopD+1A4r dc.b $FF off_8A826: dc.l off_0+$1F9 ; DATA XREF: sub_24716+610r ; sub_24716+6F6r ; The first value is the stack pointer, and loc_440 is the reset vector. ; Other values are pointers to interrupt handlers. See the data sheet for specifics. byte_8A82A: dc.b 0 ; DATA XREF: sub_223EA+3F6r byte_8A82B: dc.b $60 ; DATA XREF: sub_223EA+1ACr byte_8A82C: dc.b $3F ; DATA XREF: sub_223EA+25Er ; sub_223EA+36Ar dc.b $FF byte_8A82E: dc.b 4 ; DATA XREF: sub_5E37E:loc_5E4A4r ; sub_5E9AE:loc_5EA32r byte_8A82F: dc.b 0 ; DATA XREF: sub_5E37E+11Ar ; sub_5E9AE+78r word_8A830: dc.w $FFF6 ; DATA XREF: sub_20D54+24Ar ; sub_21094+19Cr word_8A832: dc.w $4C ; DATA XREF: sub_40414+9Cr ; sub_40AD6+C4r word_8A834: dc.w $28 ; DATA XREF: sub_2E726+206r ; sub_2E726+278r ... byte_8A836: dc.b $FF ; DATA XREF: OS3:0007D680r ; OS3:0007D688r ... byte_8A837: dc.b 0 ; DATA XREF: sub_6B156+1ECr ; sub_6B156+240r ... dc.b 0 dc.b 1 word_8A83A: dc.w $5FCD ; DATA XREF: sub_80770+2Ar word_8A83C: dc.w $C80 ; DATA XREF: sub_24094+14Ar ; sub_24094+17Er dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_8AE4A: dc.b $FF ; DATA XREF: sub_34B00+3FCo ; sub_34B00+486o ... dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_8CA00: dc.b $FF ; DATA XREF: Calibration:CONVERTER_KE_COT_1PERCENT_CYCLE_TIMEo ; Calibration:CCP_KV_IDLE_PURGE_COLD_DELAY_TIMEo ... dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF ; end of 'OS4' dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF ; =========================================================================== ; Segment type: Regular ; segment "OS5" unk_A0000: dc.b $FF ; DATA XREF: Calibration:DG_EVAP_KE_EXCESS_VAC_STAGE2_INTEGRALo dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_A0006: dc.b $FF ; DATA XREF: Calibration:00013102o dc.b $FF unk_A0008: dc.b $FF ; DATA XREF: Calibration:00013116o ; Calibration:SPARK_ADVANCE_KV_RDSC_SPARK_BIAS_DELAYo dc.b $FF unk_A000A: dc.b $FF ; DATA XREF: Calibration:CCP_KV_CCP_OXYGEN_ADJUST_TIMED_SIZEo ; Calibration:000130FAo ... unk_A000B: dc.b $FF ; DATA XREF: Boot:000018D4o dc.b $FF dc.b $FF unk_A000E: dc.b $FF ; DATA XREF: Calibration:00009036o unk_A000F: dc.b $FF ; DATA XREF: Calibration:0000F5DCo ; Calibration:0000F60Co dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_A0014: dc.b $FF ; DATA XREF: Calibration:0000A888o dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_A001B: dc.b $FF ; DATA XREF: Calibration:FUEL_CU_KV_DFCO_SPK_EXIT_RAMP_RATEo dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_A0029: dc.b $FF ; DATA XREF: Calibration:0000EF38o dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_A00C8: dc.b $FF ; DATA XREF: Calibration:0000A816o dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_A6BF8: dc.b $FF ; DATA XREF: sub_3BB66+78o dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF ; end of 'OS5' dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF ; =========================================================================== ; Segment type: Regular ; segment "OS6" dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_C000C: dc.b $FF ; DATA XREF: Calibration:CRITICAL_REGION_KV_STARTRUN_PULSESo unk_C000D: dc.b $FF ; DATA XREF: Boot:000018D8o dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_C8000: dc.b $FF ; DATA XREF: sub_3442A+2Co dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_CA0C2: dc.b $FF ; DATA XREF: sub_7DE52+36o dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF ; end of 'OS6' dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF ; =========================================================================== ; Segment type: Regular ; segment "OS7" unk_E0000: dc.b $FF ; DATA XREF: Boot:000018DCo dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_EA600: dc.b $FF ; DATA XREF: sub_612D8+98o ; sub_612D8+A0o ... dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF ; end of 'OS7' dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF dc.b $FF unk_000FFFFE: dc.b $4A ; J ; DATA XREF: sub_E32+4r dc.b $FC ; ? ; =========================================================================== ; Segment type: Regular ; segment "RAM_00" unk_FF0000: ds.b 1 ; DATA XREF: Calibration:ETAS_KE_ETAS_SLEW_EQVR_MODEo ; Calibration:STARTER_MOTOR_CONTROL_KE_STARTER_ENABLE_TYPEo ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FF614D: ds.b 1 ; DATA XREF: sub_40AD6+138r ; sub_40AD6+2E6r ... dword_FF614E: ds.b 4 ; DATA XREF: sub_40AD6+154r ; sub_40AD6+190r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8000: ds.b 1 ; DATA XREF: Boot:off_0o ; Boot:off_1E80o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8014: ds.b 1 ; DATA XREF: sub_269DE:loc_26ABAo ds.b 1 ds.b 1 ds.b 1 unk_FF8018: ds.b 1 ; DATA XREF: sub_269DE:loc_26A32o ; sub_26CDE+62o ds.b 1 ds.b 1 ds.b 1 unk_FF801C: ds.b 1 ; DATA XREF: sub_269DE:loc_26A7Ao ; sub_26CDE+74o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8034: ds.b 1 ; DATA XREF: sub_269DE:loc_26AAAo ; sub_26DFA+292o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF803A: ds.b 1 ; DATA XREF: sub_269DE:loc_26AB2o ds.b 1 ds.b 1 unk_FF803D: ds.b 1 ; DATA XREF: sub_269DE:loc_26ACEo ; sub_26CDE+A8o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8046: ds.b 1 ; DATA XREF: sub_26B32+172o ds.b 1 unk_FF8048: ds.b 1 ; DATA XREF: sub_26B32+162o ds.b 1 unk_FF804A: ds.b 1 ; DATA XREF: sub_26B32+152o ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF804F: ds.b 1 ; DATA XREF: sub_269DE:loc_26B22o ; sub_26CDE+CCo unk_FF8050: ds.b 1 ; DATA XREF: sub_269DE:loc_26AC2o ; sub_26CDE+86o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8056: ds.b 1 ; DATA XREF: sub_269DE:loc_26AD6o ; sub_26CDE+BAo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8088: ds.b 1 ; DATA XREF: sub_21662+64o ; sub_27590+5Ao ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF80E0: ds.b 1 ; DATA XREF: sub_3F6FE+1EEo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8210: ds.b 1 ; DATA XREF: sub_45F3A+165Ao ; sub_47DA2+440o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FF82B1: ds.b 1 ; DATA XREF: sub_2D8D6+40w ; sub_2D8D6:loc_2D948w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FF82EC: ds.b 1 ; DATA XREF: TenSecondDelayIsInHere+Ew ; OS2:00041C28w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF852E: ds.b 1 ; DATA XREF: sub_24338o sub_2452C+14o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 dword_FF869E: ds.b 4 ; DATA XREF: sub_2437E+Aw ; sub_2437E+14w byte_FF86A2: ds.b 1 ; DATA XREF: sub_24338+10w byte_FF86A3: ds.b 1 ; DATA XREF: sub_24338+18w byte_FF86A4: ds.b 1 ; DATA XREF: sub_2452C+Er ; sub_2452C+9Cr ... byte_FF86A5: ds.b 1 ; DATA XREF: sub_246E0+20w dword_FF86A6: ds.b 4 ; DATA XREF: sub_21662+58r ; sub_246E0+28w ... byte_FF86AA: ds.b 1 ; DATA XREF: sub_243A8+16Er ; sub_243A8+176w ds.b 1 word_FF86AC: ds.b 2 ; DATA XREF: sub_243A8+B8w word_FF86AE: ds.b 2 ; DATA XREF: sub_37DB4+6r ; sub_37DB4:loc_37DC6w ... byte_FF86B0: ds.b 1 ; DATA XREF: sub_36E5Ar sub_37D56r ... byte_FF86B1: ds.b 1 ; DATA XREF: sub_37C70+1Cw ; sub_37C70+30w ... byte_FF86B2: ds.b 1 ; DATA XREF: sub_37FC2+6Cw ; sub_37FC2+BCw ... byte_FF86B3: ds.b 1 ; DATA XREF: sub_37E94+4r sub_37EE6+4r ... word_FF86B4: ds.b 2 ; DATA XREF: sub_21CCA+1Cr ; sub_21CCA:loc_21D02w word_FF86B6: ds.b 2 ; DATA XREF: sub_21CCA+42w byte_FF86B8: ds.b 1 ; DATA XREF: sub_83986+2C2r ; sub_83986+2F6w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8B96: ds.b 1 ; DATA XREF: sub_26DFA+8Co ; sub_5D15C:loc_5D1F4o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8BCE: ds.b 1 ; DATA XREF: sub_4CB7A+2Co ; sub_59064+1C0o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8C3E: ds.b 1 ; DATA XREF: sub_575C6+8EEo ; sub_5824A+Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8C50: ds.b 1 ; DATA XREF: sub_26DFA+100o ; sub_4CB7A+10Eo ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8C64: ds.b 1 ; DATA XREF: sub_6955E+30o ds.b 1 unk_FF8C66: ds.b 1 ; DATA XREF: sub_695C0+30o ds.b 1 unk_FF8C68: ds.b 1 ; DATA XREF: sub_6955E+36o ds.b 1 unk_FF8C6A: ds.b 1 ; DATA XREF: sub_695C0+36o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8C78: ds.b 1 ; DATA XREF: sub_69622+2Eo ds.b 1 unk_FF8C7A: ds.b 1 ; DATA XREF: sub_69682+2Eo ds.b 1 unk_FF8C7C: ds.b 1 ; DATA XREF: sub_69622+34o ds.b 1 unk_FF8C7E: ds.b 1 ; DATA XREF: sub_69682+34o ds.b 1 unk_FF8C80: ds.b 1 ; DATA XREF: sub_4CB7A+A2o ; sub_5CC7E+116o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8C8C: ds.b 1 ; DATA XREF: sub_4CB7A+C0o ; sub_5CA7C:loc_5CC66o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8C98: ds.b 1 ; DATA XREF: sub_4CB7A+72o ; sub_559D6+D12o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8CA2: ds.b 1 ; DATA XREF: sub_4CB7A+54o ; sub_559D6+D24o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8CC6: ds.b 1 ; DATA XREF: sub_4CB7A+E8o ; sub_59F72+1A4o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8D3A: ds.b 1 ; DATA XREF: sub_53BDC+F2o ; sub_53BDC+14Eo ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8D40: ds.b 1 ; DATA XREF: sub_555EA+98o ; sub_556FC+4o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FF8D5C: ds.b 2 ; DATA XREF: sub_63154+6w ; OS3:00063D7Er ... byte_FF8D5E: ds.b 1 ; DATA XREF: sub_63056+ECw ; sub_63172+42w ... byte_FF8D5F: ds.b 1 ; DATA XREF: sub_63056+9Cw ; sub_63056+A4w ... byte_FF8D60: ds.b 1 ; DATA XREF: sub_63056+96w ; sub_63172+DCr ... byte_FF8D61: ds.b 1 ; DATA XREF: sub_63056+6Cw ; OS3:00063A00r ... word_FF8D62: ds.b 2 ; DATA XREF: sub_63056w OS3:00063C6Cw ... dword_FF8D64: ds.b 4 ; DATA XREF: sub_63056+F2w ; OS3:loc_63354w word_FF8D68: ds.b 2 ; DATA XREF: sub_63056+6w ; OS3:loc_6343Ew ... word_FF8D6A: ds.b 2 ; DATA XREF: sub_63056+Cw ; OS3:00063406w ... word_FF8D6C: ds.b 2 ; DATA XREF: sub_63056+12w ; OS3:00063400w ... word_FF8D6E: ds.b 2 ; DATA XREF: sub_63056+18w ; OS3:0006340Ew ... word_FF8D70: ds.b 2 ; DATA XREF: sub_63056+1Ew ; OS3:0006341Aw ... word_FF8D72: ds.b 2 ; DATA XREF: sub_63056+24w ; OS3:00063414w ... word_FF8D74: ds.b 2 ; DATA XREF: sub_63056+2Aw ; OS3:00063424w ... word_FF8D76: ds.b 2 ; DATA XREF: sub_63056+30w ; OS3:000633A0w word_FF8D78: ds.b 2 ; DATA XREF: sub_63056+36w ; OS3:000633AEw ... word_FF8D7A: ds.b 2 ; DATA XREF: sub_63056+3Cw ; OS3:000638C4w ... word_FF8D7C: ds.b 2 ; DATA XREF: sub_63056+42w ; OS3:000638CAw ... word_FF8D7E: ds.b 2 ; DATA XREF: sub_63056+48w ; OS3:000638D0w ... word_FF8D80: ds.b 2 ; DATA XREF: sub_63056+4Ew ; OS3:000638DCw ... word_FF8D82: ds.b 2 ; DATA XREF: sub_63056+54w ; OS3:000638E2w ... word_FF8D84: ds.b 2 ; DATA XREF: sub_63056+5Aw ; OS3:000638D6w ... word_FF8D86: ds.b 2 ; DATA XREF: sub_63056+60w ; OS3:loc_637E0w ... word_FF8D88: ds.b 2 ; DATA XREF: sub_63056+66w ; OS3:000637C6w ... word_FF8D8A: ds.b 2 ; DATA XREF: sub_63056+72w ; OS3:0006341Ar ... word_FF8D8C: ds.b 2 ; DATA XREF: sub_63056+78w ; OS3:000634F6w ... word_FF8D8E: ds.b 2 ; DATA XREF: sub_63056+84w ; OS3:000634FEw ... word_FF8D90: ds.b 2 ; DATA XREF: sub_63056+90w ; OS3:loc_638EEr ... byte_FF8D92: ds.b 1 ; DATA XREF: sub_63154w OS3:00063D9Cr ... byte_FF8D93: ds.b 1 ; DATA XREF: sub_63154+14w ; OS3:00063C36r ... word_FF8D94: ds.b 2 ; DATA XREF: sub_63056+7Ew ; OS3:000638FCw ... word_FF8D96: ds.b 2 ; DATA XREF: sub_63056+8Aw ; OS3:00063904w ... word_FF8D98: ds.b 2 ; DATA XREF: sub_6DD54w sub_6DEDA+2EEr ... word_FF8D9A: ds.b 2 ; DATA XREF: sub_6DD54+6w ; sub_6DEDA+160r ... word_FF8D9C: ds.b 2 ; DATA XREF: sub_6DD54+Cw ; sub_6DD7A+13Ar ... word_FF8D9E: ds.b 2 ; DATA XREF: sub_6DD54+12w ; sub_6DEDA+2A8r ... word_FF8DA0: ds.b 2 ; DATA XREF: sub_6DD54+18w ; sub_6DEDA+11Ar ... word_FF8DA2: ds.b 2 ; DATA XREF: sub_67360+72w ; sub_67410+166Cw ... ds.b 1 ds.b 1 word_FF8DA6: ds.b 2 ; DATA XREF: sub_67360+7Aw ; sub_67410+9C8r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF8FEF: ds.b 1 ; DATA XREF: Boot:off_1E84o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9000: ds.b 1 ; DATA XREF: Boot:off_1E98o ; sub_27966:loc_279AEo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9014: ds.b 1 ; DATA XREF: sub_21C8A+1Eo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9036: ds.b 1 ; DATA XREF: sub_87698+12o ds.b 1 ds.b 1 ds.b 1 unk_FF903A: ds.b 1 ; DATA XREF: sub_8671C+11Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9092: ds.b 1 ; DATA XREF: sub_2340C+14Eo ds.b 1 unk_FF9094: ds.b 1 ; DATA XREF: sub_2340C+18o ds.b 1 unk_FF9096: ds.b 1 ; DATA XREF: sub_2340C+C4o ds.b 1 unk_FF9098: ds.b 1 ; DATA XREF: sub_2340C+110o ds.b 1 unk_FF909A: ds.b 1 ; DATA XREF: sub_2340C+194o ; sub_2340C+1B4o ds.b 1 unk_FF909C: ds.b 1 ; DATA XREF: sub_2340C+1D8o ds.b 1 unk_FF909E: ds.b 1 ; DATA XREF: sub_2340C+4Ao ds.b 1 unk_FF90A0: ds.b 1 ; DATA XREF: sub_2340C+7Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF90A8: ds.b 1 ; DATA XREF: sub_49382+28o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9114: ds.b 1 ; DATA XREF: sub_45F3A+9B2o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9198: ds.b 1 ; DATA XREF: sub_45F3A+67Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF91A4: ds.b 1 ; DATA XREF: sub_45F3A+330o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF91F4: ds.b 1 ; DATA XREF: sub_77816+Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9280: ds.b 1 ; DATA XREF: sub_269DE:loc_26A3Ao ds.b 1 ds.b 1 ds.b 1 unk_FF9284: ds.b 1 ; DATA XREF: sub_269DE:loc_26ADEo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9414: ds.b 1 ; DATA XREF: sub_24716+14E4o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9420: ds.b 1 ; DATA XREF: sub_24716+150Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF942A: ds.b 1 ; DATA XREF: sub_24716+F16o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9456: ds.b 1 ; DATA XREF: sub_24716+5D8o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF94A0: ds.b 1 ; DATA XREF: sub_261CA+62o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9500: ds.b 1 ; DATA XREF: sub_36764+8o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9532: ds.b 1 ; DATA XREF: sub_3622E+18Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF953C: ds.b 1 ; DATA XREF: sub_36BBA+26o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9568: ds.b 1 ; DATA XREF: IsIdleAirLearningActive+166o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF95A4: ds.b 1 ; DATA XREF: sub_5436E+806o ds.b 1 unk_FF95A6: ds.b 1 ; DATA XREF: sub_5436E+800o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF95B0: ds.b 1 ; DATA XREF: sub_5436E+7FAo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF95D4: ds.b 1 ; DATA XREF: sub_5436E+86Co ; sub_5436E+904o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF95F0: ds.b 1 ; DATA XREF: sub_5436E+6Eo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF965C: ds.b 1 ; DATA XREF: sub_3F6FE+18Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF985C: ds.b 1 ; DATA XREF: sub_3B1A8+20o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9882: ds.b 1 ; DATA XREF: sub_39F12+288o ds.b 1 ds.b 1 ds.b 1 unk_FF9886: ds.b 1 ; DATA XREF: sub_3A330+3Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF98A0: ds.b 1 ; DATA XREF: sub_39F12+18Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF98C6: ds.b 1 ; DATA XREF: sub_3B1A8+8o ds.b 1 unk_FF98C8: ds.b 1 ; DATA XREF: sub_3B1A8+14o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF997C: ds.b 1 ; DATA XREF: OS1:loc_2B6E0o OS1:LoopAo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9982: ds.b 1 ; DATA XREF: OS1:LoopBo ; ExecuteMainLoops+122o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9988: ds.b 1 ; DATA XREF: OS1:LoopCo ; ExecuteMainLoops+F0o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF998E: ds.b 1 ; DATA XREF: OS1:LoopDo ; ExecuteMainLoops+BEo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9994: ds.b 1 ; DATA XREF: OS1:LoopEo ; ExecuteMainLoops+8Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF999A: ds.b 1 ; DATA XREF: OS1:LoopFo ; ExecuteMainLoops+5Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF99A0: ds.b 1 ; DATA XREF: OS1:LoopGo ; ExecuteMainLoops+28o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF99A6: ds.b 1 ; DATA XREF: ExecuteMainLoops+14Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF99B6: ds.b 1 ; DATA XREF: ExecuteMainLoops+112o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF99C6: ds.b 1 ; DATA XREF: ExecuteMainLoops+E0o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF99D6: ds.b 1 ; DATA XREF: ExecuteMainLoops+AEo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF99E6: ds.b 1 ; DATA XREF: ExecuteMainLoops+7Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF99F6: ds.b 1 ; DATA XREF: ExecuteMainLoops+4Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9A06: ds.b 1 ; DATA XREF: ExecuteMainLoops+18o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9A3D: ds.b 1 ; DATA XREF: Boot:off_3C00o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9A54: ds.b 1 ; DATA XREF: OS2:0004052Eo ; sub_40AD6+198o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9A65: ds.b 1 ; DATA XREF: sub_40982+20o ; sub_40982+118o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9A76: ds.b 1 ; DATA XREF: sub_40982:loc_4099Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9A7E: ds.b 1 ; DATA XREF: sub_40982+112o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9A90: ds.b 1 ; DATA XREF: OS2:00041CDCo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9AD6: ds.b 1 ; DATA XREF: sub_420E4o sub_45F0A+Ao ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9ADC: ds.b 1 ; DATA XREF: sub_4210Ao sub_45F3A+14Co ... ds.b 1 ds.b 1 ds.b 1 unk_FF9AE0: ds.b 1 ; DATA XREF: ModeInitHandler+B6o ; sub_451EA+660o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9B5A: ds.b 1 ; DATA XREF: sub_7F61E+348o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9B6E: ds.b 1 ; DATA XREF: sub_7F4CA+B0o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9B82: ds.b 1 ; DATA XREF: sub_7FEA2+1Eo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9B94: ds.b 1 ; DATA XREF: sub_7F61E+5DAo ds.b 1 unk_FF9B96: ds.b 1 ; DATA XREF: sub_7F61E+676o ds.b 1 ds.b 1 ds.b 1 unk_FF9B9A: ds.b 1 ; DATA XREF: sub_7F4CA+118o ds.b 1 unk_FF9B9C: ds.b 1 ; DATA XREF: sub_7F4CA+134o ds.b 1 ds.b 1 ds.b 1 unk_FF9BA0: ds.b 1 ; DATA XREF: sub_7F4CA+10o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9BB8: ds.b 1 ; DATA XREF: sub_4DD5C+CE4o ; sub_4DD5C:loc_4EA70o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9BCC: ds.b 1 ; DATA XREF: sub_4DD5C+78Eo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9C08: ds.b 1 ; DATA XREF: sub_4DD5C+744o ; sub_4DD5C+768o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9C7A: ds.b 1 ; DATA XREF: sub_729F4+96o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9CA0: ds.b 1 ; DATA XREF: sub_73106+7Eo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9CA6: ds.b 1 ; DATA XREF: sub_72688+90o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9D46: ds.b 1 ; DATA XREF: sub_3BDC4+64o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9D56: ds.b 1 ; DATA XREF: sub_3BDC4+50o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9DD2: ds.b 1 ; DATA XREF: sub_2EA9A+30o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9E56: ds.b 1 ; DATA XREF: OS3:0007EACCo ; OS3:0007EE36o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9F50: ds.b 1 ; DATA XREF: sub_817BC+10Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9FDC: ds.b 1 ; DATA XREF: sub_2F780+2Eo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FF9FFF: ds.b 1 ; DATA XREF: Boot:off_1E9Co unk_FFA000: ds.b 1 ; DATA XREF: Boot:off_1EA4o ; sub_27966:loc_279B8o ds.b 1 ds.b 1 ds.b 1 unk_FFA004: ds.b 1 ; DATA XREF: sub_21CCA+4o ds.b 1 ds.b 1 byte_FFA007: ds.b 1 ; DATA XREF: sub_21CCA+Ar ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFA014: ds.b 2 ; DATA XREF: sub_21CCA:loc_21DAEw ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA01A: ds.b 1 ; DATA XREF: sub_21F2C+6o sub_220F0+4o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFA050: ds.b 1 ; DATA XREF: sub_220F0+B2r ds.b 7 unk_FFA058: ds.b 1 ; DATA XREF: sub_21F2C:loc_220B4o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA244: ds.b 1 ; DATA XREF: sub_32324+44o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA2AC: ds.b 1 ; DATA XREF: Boot:off_2154o ds.b 1 ds.b 1 ds.b 1 unk_FFA2B0: ds.b 1 ; DATA XREF: Boot:00002158o ds.b 1 ds.b 1 ds.b 1 unk_FFA2B4: ds.b 1 ; DATA XREF: Boot:0000215Co ds.b 1 ds.b 1 ds.b 1 unk_FFA2B8: ds.b 1 ; DATA XREF: Boot:00002160o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA2E8: ds.b 1 ; DATA XREF: Boot:off_2DE0o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA312: ds.b 1 ; DATA XREF: sub_20B50+Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA338: ds.b 1 ; DATA XREF: sub_200DE+Eo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA3D6: ds.b 1 ; DATA XREF: sub_8443E+78o ds.b 1 ds.b 1 ds.b 1 unk_FFA3DA: ds.b 1 ; DATA XREF: sub_83986+200o ds.b 1 unk_FFA3DC: ds.b 1 ; DATA XREF: sub_83986+234o ds.b 1 unk_FFA3DE: ds.b 1 ; DATA XREF: sub_83986+A4o ds.b 1 unk_FFA3E0: ds.b 1 ; DATA XREF: sub_83986+DCo ds.b 1 ds.b 1 ds.b 1 unk_FFA3E4: ds.b 1 ; DATA XREF: sub_83986+4DEo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA4A8: ds.b 1 ; DATA XREF: OS4:off_89B26o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA4C0: ds.b 1 ; DATA XREF: sub_64276+68o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA4EA: ds.b 1 ; DATA XREF: sub_643EE+34o ds.b 1 unk_FFA4EC: ds.b 1 ; DATA XREF: sub_643EE+56o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA58C: ds.b 1 ; DATA XREF: sub_7DFBA+Ao ; sub_7E000+10o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA592: ds.b 1 ; DATA XREF: sub_223EA+3F0o unk_FFA593: ds.b 1 ; DATA XREF: sub_223EA:loc_22590o unk_FFA594: ds.b 1 ; DATA XREF: sub_223EA+258o ; sub_223EA+364o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA5A4: ds.b 1 ; DATA XREF: sub_22D9A+96o ds.b 1 ds.b 1 ds.b 1 unk_FFA5A8: ds.b 1 ; DATA XREF: sub_223EA+8o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA5B0: ds.b 1 ; DATA XREF: sub_229DE+2AEo ; sub_2321E+3Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA5BA: ds.b 1 ; DATA XREF: sub_229DE+44o ds.b 1 ds.b 1 ds.b 1 unk_FFA5BE: ds.b 1 ; DATA XREF: sub_229DE+27Ao ds.b 1 ds.b 1 ds.b 1 unk_FFA5C2: ds.b 1 ; DATA XREF: sub_22F92+15Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA662: ds.b 1 ; DATA XREF: sub_2D1C4+2C6o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA678: ds.b 1 ; DATA XREF: DoLoopB+1D2o ds.b 1 unk_FFA67A: ds.b 1 ; DATA XREF: sub_4B68C+CCo ; sub_757C0+BCo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA714: ds.b 1 ; DATA XREF: DecideIdleMode:loc_386A6o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA71A: ds.b 1 ; DATA XREF: sub_3832E+32o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA76A: ds.b 1 ; DATA XREF: sub_78E56+3ECo ; sub_79254+2o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA810: ds.b 1 ; DATA XREF: sub_3CD78+982o ; sub_3CD78+A00o ds.b 1 ds.b 1 ds.b 1 unk_FFA814: ds.b 1 ; DATA XREF: sub_3CD78+3D2o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA860: ds.b 1 ; DATA XREF: sub_2C7AC+52o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFA866: ds.b 1 ; DATA XREF: sub_2C7AC+40o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFAAF6: ds.b 1 ; DATA XREF: sub_87166+1Eo ds.b 1 ds.b 1 ds.b 1 unk_FFAAFA: ds.b 1 ; DATA XREF: OS2:000407D2o ; OS2:0004081Ao ... ds.b 1 ds.b 1 ds.b 1 unk_FFAAFE: ds.b 1 ; DATA XREF: DoLoopG+2B2o ds.b 1 ds.b 1 ds.b 1 unk_FFAB02: ds.b 1 ; DATA XREF: DoLoopG+2DAo ds.b 1 ds.b 1 ds.b 1 unk_FFAB06: ds.b 1 ; DATA XREF: DoLoopG+334o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFAB1C: ds.b 1 ; DATA XREF: sub_45AE8+68o ds.b 1 ds.b 1 ds.b 1 unk_FFAB20: ds.b 1 ; DATA XREF: DoLoopF+162o DoLoopF+4B2o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFAB8A: ds.b 1 ; DATA XREF: sub_80B94+16o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFAB96: ds.b 1 ; DATA XREF: sub_80B94+372o ds.b 1 ds.b 1 ds.b 1 unk_FFAB9A: ds.b 1 ; DATA XREF: sub_80B94:loc_80BC6o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFABA0: ds.b 1 ; DATA XREF: sub_80B94+2B4o ds.b 1 unk_FFABA2: ds.b 1 ; DATA XREF: sub_81060+6o ds.b 1 unk_FFABA4: ds.b 1 ; DATA XREF: sub_81060+12o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFAC2A: ds.b 1 ; DATA XREF: sub_5B062+74o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFAC8A: ds.b 1 ; DATA XREF: sub_80A78+18o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFAC9A: ds.b 1 ; DATA XREF: sub_80B1C+28o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFACC4: ds.b 1 ; DATA XREF: sub_7BC70+5Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFAE02: ds.b 1 ; DATA XREF: sub_831BA+7Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFAE4C: ds.b 1 ; DATA XREF: sub_3984E+C0o ; sub_3984E+150o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFAEB0: ds.b 1 ; DATA XREF: sub_62B70+78o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFAEC6: ds.b 1 ; DATA XREF: sub_848A8+13Ao ds.b 1 unk_FFAEC8: ds.b 1 ; DATA XREF: sub_848A8+7Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFAF52: ds.b 1 ; DATA XREF: sub_7B2B2+2Co ; sub_7B2B2+6Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFB118: ds.b 1 ; DATA XREF: sub_84AB0+8Ao ; sub_84AB0+33Co ... ds.b 1 unk_FFB11A: ds.b 1 ; DATA XREF: sub_84AB0+10Eo ds.b 1 unk_FFB11C: ds.b 1 ; DATA XREF: sub_84AB0+18Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFB14C: ds.b 1 ; DATA XREF: sub_37FC2+140o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFB154: ds.b 1 ; DATA XREF: DoLoopF:loc_2AD74o ; DoLoopF:loc_2B0C4o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFB160: ds.b 1 ; DATA XREF: sub_3E4F2+146o ; sub_3E4F2+1ACo ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFB21C: ds.b 1 ; DATA XREF: sub_692E0+B6o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFB238: ds.b 1 ; DATA XREF: sub_6955E+3Co ds.b 1 unk_FFB23A: ds.b 1 ; DATA XREF: sub_6955E+42o ds.b 1 unk_FFB23C: ds.b 1 ; DATA XREF: sub_695C0+3Co ds.b 1 unk_FFB23E: ds.b 1 ; DATA XREF: sub_695C0+42o ds.b 1 unk_FFB240: ds.b 1 ; DATA XREF: sub_69622+3Ao ds.b 1 unk_FFB242: ds.b 1 ; DATA XREF: sub_69622+40o ds.b 1 unk_FFB244: ds.b 1 ; DATA XREF: sub_69682+3Ao ds.b 1 unk_FFB246: ds.b 1 ; DATA XREF: sub_69682+40o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFB304: ds.b 1 ; DATA XREF: sub_86CBE+56o ds.b 1 unk_FFB306: ds.b 1 ; DATA XREF: sub_86CBE:loc_86D08o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFB4F8: ds.b 1 ; DATA XREF: sub_6720E+11Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFB51C: ds.b 1 ; DATA XREF: sub_348C6+8o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFB554: ds.b 1 ; DATA XREF: OS4:off_87D16o ; OS4:00087D1Eo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFB55A: ds.b 1 ; DATA XREF: sub_2178+108o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFB5D2: ds.b 1 ; DATA XREF: sub_298CA+4o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFB5DA: ds.b 1 ; DATA XREF: sub_29916+4Eo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFB5E8: ds.b 2 ; DATA XREF: sub_56EDC+118r ; sub_56EDC:loc_5700Cw ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFBE78: ds.b 1 ; DATA XREF: sub_3CA2E+10Eo ; sub_78472+2o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFBE80: ds.b 1 ; CODE XREF: sub_77EA6+40p ; sub_77F3E+30p ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFBF04: ds.b 1 ; DATA XREF: sub_78394+14o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFBF0A: ds.b 1 ; DATA XREF: sub_782E4+9Eo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFBF44: ds.b 1 ; DATA XREF: Boot:off_134Co ds.b 1 ds.b 1 ds.b 1 unk_FFBF48: ds.b 1 ; DATA XREF: Boot:off_1328o ds.b 1 ds.b 1 ds.b 1 unk_FFBF4C: ds.b 1 ; DATA XREF: Boot:off_132Co ds.b 1 ds.b 1 ds.b 1 unk_FFBF50: ds.b 1 ; DATA XREF: Boot:off_1330o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFBFFF: ds.b 1 ; DATA XREF: Boot:off_1EA8o unk_FFC000: ds.b 1 ; DATA XREF: Boot:off_1E8Co ; OS2:0004166Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFC010: ds.b 1 ; DATA XREF: sub_27966:loc_279C2o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFC11E: ds.b 1 ; DATA XREF: ExecuteMainLoops+CCo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFC2DE: ds.b 1 ; DATA XREF: ExecuteMainLoops+68o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFC450: ds.b 1 ; DATA XREF: ExecuteMainLoops+FEo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFC5C0: ds.b 1 ; DATA XREF: ExecuteMainLoops+4o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFC726: ds.b 1 ; DATA XREF: ExecuteMainLoops+9Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFC878: ds.b 1 ; DATA XREF: ExecuteMainLoops+36o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFC9C0: ds.b 1 ; DATA XREF: ExecuteMainLoops+138o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFCDFF: ds.b 1 ; DATA XREF: Boot:off_1E90o unk_FFCE00: ds.b 1 ; DATA XREF: Boot:off_0o Boot:loc_4D2o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFE000: ds.b 1 ; DATA XREF: Boot:off_1EB0o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFE3FF: ds.b 1 ; DATA XREF: Boot:00001EB4o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF00: ds.b 1 ; DATA XREF: sub_1C26+10o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ; end of 'RAM_00' ; =========================================================================== ; Segment type: Regular ; segment "RAM_FF" unk_FFFF0000: ds.b 1 ; DATA XREF: sub_5EF12+20o ; sub_5EF12+28o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF60A6: ds.b 1 ; DATA XREF: Calibration:DI_FUEL_TRIM_KV_FTRM_LONG_TERM_IDLE_COEFFo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF8000: ds.b 2 ; DATA XREF: sub_27436r sub_77816+1Cw ... word_FFFF8002: ds.b 2 ; DATA XREF: sub_2743Cr sub_77816+22w unk_FFFF8004: ds.b 1 ; DATA XREF: sub_77816+2Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF8032: ds.b 2 ; DATA XREF: sub_274AEr sub_274B4w dword_FFFF8034: ds.b 4 ; DATA XREF: sub_26DFA+162r ; sub_26DFA+2EAr ... dword_FFFF8038: ds.b 4 ; DATA XREF: sub_26DFA+15Cr ; OS4:loc_86C20r ... byte_FFFF803C: ds.b 1 ; DATA XREF: sub_274BAw sub_274C0r byte_FFFF803D: ds.b 1 ; DATA XREF: sub_206D4+2r sub_206D4+Ar ... dword_FFFF803E: ds.b 4 ; DATA XREF: sub_60FA6+3Cw ; sub_60FEC+3Er ... dword_FFFF8042: ds.b 4 ; DATA XREF: sub_60FA6+36w ; sub_60FEC+38r ... word_FFFF8046: ds.b 2 ; DATA XREF: sub_26DFA+2BCw ; sub_7DB64+D4w word_FFFF8048: ds.b 2 ; DATA XREF: sub_26DFA+2C0w ; sub_7DB64+E2w word_FFFF804A: ds.b 2 ; DATA XREF: sub_26DFA+2C4w ; sub_7DB64+C4w byte_FFFF804C: ds.b 1 ; DATA XREF: sub_26B32+19Ar ; sub_26DFA+2D0w ... byte_FFFF804D: ds.b 1 ; DATA XREF: sub_26B32+194r ; sub_26DFA+2D4w ... byte_FFFF804E: ds.b 1 ; DATA XREF: sub_26B32+18Er ; sub_26DFA+2D8w ... byte_FFFF804F: ds.b 1 ; DATA XREF: sub_2749Ar sub_274A0r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF8056: ds.b 2 ; DATA XREF: sub_84854+Cr ; sub_84854+14r word_FFFF8058: ds.b 2 ; DATA XREF: sub_24716+24Cr ; sub_24716+254r ds.b 1 ds.b 1 word_FFFF805C: ds.b 2 ; DATA XREF: sub_4BC94+Ar ; sub_4BC94+F0r ... word_FFFF805E: ds.b 2 ; DATA XREF: sub_4BC94+10r ; sub_4C296+Er ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 dword_FFFF8088: ds.b 4 ; DATA XREF: sub_77860+58o ; OS3:0007CB8Cr ... word_FFFF808C: ds.b 2 ; DATA XREF: OS3:loc_7CB96r ; OS3:0007CB9Ew ... dword_FFFF808E: ds.b 4 ; DATA XREF: sub_2437Er sub_45F3A+96Ar ... dword_FFFF8092: ds.b 4 ; DATA XREF: OS2:0004B41Aw ; sub_556FC+1Ar unk_FFFF8096: ds.b 1 ; DATA XREF: OS2:0004B420o ; sub_5D82A+26o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF80DE: ds.b 1 ; DATA XREF: sub_27128:loc_27180r ; sub_27128+ECw ... byte_FFFF80DF: ds.b 1 ; DATA XREF: DoLoopG+4B0w ; sub_3F6FE+1DAr ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF80F0: ds.b 1 ds.b 1 unk_FFFF80F2: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF8140: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF8148: ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF814C: ds.b 2 ; DATA XREF: sub_2340C:IdleLearningAmount?r ; sub_378D2+26o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 IdleTrimWithAC: ds.b 2 ; DATA XREF: sub_37724:loc_37736w ; sub_37724:loc_3773Ew ... IdleTrimDrive: ds.b 2 ; DATA XREF: sub_36F1C:loc_36FE8r ; sub_378D2+16w ... IdleTrimParkNeutral:ds.b 2 ; DATA XREF: sub_36F1C:loc_3702Cr ; sub_378D2+1Ew ... IdleTrimDriveWithAC:ds.b 2 ; DATA XREF: sub_37724:loc_37736r ; sub_378D2+6w ... IdleTrimParkNeutralWithAC:ds.b 2 ; DATA XREF: sub_37724:loc_3773Er ; sub_378D2+Ew ... word_FFFF8182: ds.b 2 ; DATA XREF: sub_644B0+4r ; sub_64762+3Ar ... dword_FFFF8184: ds.b 4 ; DATA XREF: sub_7FEDC+16r ; sub_7FEDC:loc_7FF04w ... dword_FFFF8188: ds.b 4 ; DATA XREF: sub_7F61E+1B2r ; sub_7F61E+1D0w ... dword_FFFF818C: ds.b 4 ; DATA XREF: sub_7F61E+2A6r ; sub_7F61E+2D8w ... dword_FFFF8190: ds.b 4 ; DATA XREF: sub_7F61E+204r ; sub_7F61E:loc_7F842w ... word_FFFF8194: ds.b 2 ; DATA XREF: sub_7F61E+17Er ; sub_7F61E+184w ... word_FFFF8196: ds.b 2 ; DATA XREF: sub_7F61E+272r ; sub_7F61E+278w ... word_FFFF8198: ds.b 2 ; DATA XREF: sub_7F61E:loc_7F7A8r ; sub_7F61E+190w ... word_FFFF819A: ds.b 2 ; DATA XREF: sub_7F61E:loc_7F89Cr ; sub_7F61E+284w ... byte_FFFF819C: ds.b 1 ; DATA XREF: sub_7F61E:loc_7F8E8r ; sub_7F61E+378w ... byte_FFFF819D: ds.b 1 ; DATA XREF: sub_138E+DAw sub_138E+EAw ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF81B8: ds.b 1 ; DATA XREF: sub_2178+28w byte_FFFF81B9: ds.b 1 ; DATA XREF: sub_2CC22:loc_2CCE4r ; sub_2CC22:loc_2CD94r ... dword_FFFF81BA: ds.b 4 ; DATA XREF: sub_282C4+A2w ; sub_282C4+D4w ... dword_FFFF81BE: ds.b 4 ; DATA XREF: sub_282B2w dword_FFFF81C2: ds.b 4 ; DATA XREF: sub_282B2+4w dword_FFFF81C6: ds.b 4 ; DATA XREF: sub_282B2+8w dword_FFFF81CA: ds.b 4 ; DATA XREF: sub_282B2+Cw ds.b 1 ds.b 1 unk_FFFF81D0: ds.b 1 ds.b 1 dword_FFFF81D2: ds.b 4 ; DATA XREF: sub_74B7Cw sub_74BE4+26w dword_FFFF81D6: ds.b 4 ; DATA XREF: sub_74B7C+4w ; sub_74BE4+2Aw dword_FFFF81DA: ds.b 4 ; DATA XREF: sub_74B7C+8w ; sub_74BE4+2Ew dword_FFFF81DE: ds.b 4 ; DATA XREF: sub_74B7C+Cw ; sub_74BE4+32w dword_FFFF81E2: ds.b 4 ; DATA XREF: sub_74B7C+10w ; sub_74BE4+36w dword_FFFF81E6: ds.b 4 ; DATA XREF: sub_74B7C+14w ; sub_74BE4+3Aw dword_FFFF81EA: ds.b 4 ; DATA XREF: sub_73466+78w ; OS4:00081382w dword_FFFF81EE: ds.b 4 ; DATA XREF: sub_73466+74w ; OS4:0008137Ew dword_FFFF81F2: ds.b 4 ; DATA XREF: OS4:00081366w ; sub_81A56+Aw ... dword_FFFF81F6: ds.b 4 ; DATA XREF: OS4:0008136Aw ; sub_81A56+6w ... dword_FFFF81FA: ds.b 4 ; DATA XREF: OS4:0008137Aw dword_FFFF81FE: ds.b 4 ; DATA XREF: OS4:00081376w byte_FFFF8202: ds.b 1 ; DATA XREF: sub_47DA2+B30w ; OS2:loc_48C18w ... byte_FFFF8203: ds.b 1 ; DATA XREF: sub_47DA2+B34w ; OS2:00048C22w byte_FFFF8204: ds.b 1 ; DATA XREF: sub_47DA2+B38w ; OS2:00048C34w byte_FFFF8205: ds.b 1 ; DATA XREF: sub_47DA2+B3Cw ; OS2:00048C46w byte_FFFF8206: ds.b 1 ; DATA XREF: sub_47DA2+B40w ; OS2:00048C58w byte_FFFF8207: ds.b 1 ; DATA XREF: sub_47DA2+B44w ; OS2:00048C6Aw byte_FFFF8208: ds.b 1 ; DATA XREF: sub_47DA2+B48w ; OS2:00048C7Cw byte_FFFF8209: ds.b 1 ; DATA XREF: sub_47DA2+B4Cw ; OS2:00048FCCw ... byte_FFFF820A: ds.b 1 ; DATA XREF: sub_21094:loc_210B2r ; sub_21094:loc_2128Ar ... byte_FFFF820B: ds.b 1 ; DATA XREF: sub_2D8D6+18r ; sub_2D8D6:loc_2D90Er ... byte_FFFF820C: ds.b 1 ; DATA XREF: sub_2D8D6:loc_2D8FEr ; sub_2D8D6+32w ... byte_FFFF820D: ds.b 1 ; DATA XREF: sub_2D8D6+4Ar ; sub_47DA2+B9Ew ... byte_FFFF820E: ds.b 1 ; DATA XREF: sub_47DA2+B50w ; OS2:00049102w ... ds.b 1 word_FFFF8210: ds.b 2 ; DATA XREF: sub_45F3A+1650w ; sub_45F3A+1680r ... word_FFFF8212: ds.b 2 ; DATA XREF: sub_45F3A+1642r ; sub_45F3A+1654w dword_FFFF8214: ds.b 4 ; DATA XREF: sub_45F3A+97Er ; sub_45F3A+9CAw ... unk_FFFF8218: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF8222: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF822C: ds.b 2 ; DATA XREF: sub_3EA90:loc_3F456r ; sub_646DE+12w ... word_FFFF822E: ds.b 2 ; DATA XREF: sub_3EA90+9B6r ; sub_646DE+8w ... word_FFFF8230: ds.b 2 ; DATA XREF: OS3:000633DCr ; OS3:0006342Ar ... word_FFFF8232: ds.b 2 ; DATA XREF: OS3:000632BAr ; OS3:00063456r ... byte_FFFF8234: ds.b 1 ; DATA XREF: OS3:0006327Ar ; sub_64058+22w ... byte_FFFF8235: ds.b 1 ; DATA XREF: OS3:loc_63C5Cr ; sub_63E94+178w ... byte_FFFF8236: ds.b 1 ; DATA XREF: sub_63172+3Cr ; sub_63E94:loc_63FCEw ... byte_FFFF8237: ds.b 1 ; DATA XREF: sub_63172:loc_631C2r word_FFFF8238: ds.b 2 ; DATA XREF: sub_64058+34r ; sub_6457C:loc_6458Cw ... word_FFFF823A: ds.b 2 ; DATA XREF: sub_64058+Aw ; sub_64058:loc_6406Cw ... word_FFFF823C: ds.b 2 ; DATA XREF: sub_644B0:loc_64558w ; sub_645B0+18r ... byte_FFFF823E: ds.b 1 ; DATA XREF: sub_6457C+14w ; sub_6457C:loc_64596r ... byte_FFFF823F: ds.b 1 ; DATA XREF: sub_6D232w sub_6D316+Cw ... word_FFFF8240: ds.b 2 ; DATA XREF: sub_2F780:loc_2F910w ; sub_2F780+19Ew ... word_FFFF8242: ds.b 2 ; DATA XREF: sub_2CC22+584r ; sub_2F780+26Er ... byte_FFFF8244: ds.b 1 ; DATA XREF: sub_2F780+2ACr ; sub_2F780+2B8w ... ds.b 1 word_FFFF8246: ds.b 2 ; DATA XREF: sub_2F780+2ECw ; sub_2F780+326r word_FFFF8248: ds.b 2 ; DATA XREF: sub_2F780+28Ar ; sub_2F780+28Ew byte_FFFF824A: ds.b 1 ; DATA XREF: sub_2F780+296r ; sub_2F780+2C0w ... ds.b 1 word_FFFF824C: ds.b 2 ; DATA XREF: sub_2F780+27Cr ; sub_2F780+292w word_FFFF824E: ds.b 2 ; DATA XREF: sub_2F780+2C8w ; sub_2F780+336r word_FFFF8250: ds.b 2 ; DATA XREF: sub_2F780+2C4w ; sub_2F780+2D6r ... byte_FFFF8252: ds.b 1 ; DATA XREF: sub_20CB2+1Cr ; sub_243A8+2Er ... byte_FFFF8253: ds.b 1 ; DATA XREF: sub_200DE+96r ; sub_200DE+472r ... byte_FFFF8254: ds.b 1 ; DATA XREF: sub_3BDC4:loc_3BF26r ; sub_3C4AC+4Cr ... byte_FFFF8255: ds.b 1 ; DATA XREF: sub_22F92+17Er ; sub_35D1C+F6r ... byte_FFFF8256: ds.b 1 ; DATA XREF: sub_5DE36+Ar ; sub_5EE7E:loc_5EEE0r ... ds.b 1 dword_FFFF8258: ds.b 4 ; DATA XREF: sub_5EDDA+16w ; sub_5EF12+1Cr ... dword_FFFF825C: ds.b 4 ; DATA XREF: sub_5EDDA+1Aw ; sub_5EF12:loc_5EF5Cw ... word_FFFF8260: ds.b 2 ; DATA XREF: sub_42330:loc_423CAr ; sub_42438:loc_424D2r ... dword_FFFF8262: ds.b 4 ; DATA XREF: sub_73466+50w sub_735FEw dword_FFFF8266: ds.b 4 ; DATA XREF: sub_73466+54w ; sub_735FE+4w byte_FFFF826A: ds.b 1 ; DATA XREF: sub_22F02+34w ; sub_23282+40w ds.b 1 word_FFFF826C: ds.b 2 ; DATA XREF: sub_223EA+3DCr ; sub_223EA:loc_227D2w ... word_FFFF826E: ds.b 2 ; DATA XREF: sub_22F02+8r ; sub_22F02:loc_22F16w ... byte_FFFF8270: ds.b 1 ; DATA XREF: sub_22F02+18w ds.b 1 word_FFFF8272: ds.b 2 ; DATA XREF: sub_229DE+332r ; sub_229DE+338w dword_FFFF8274: ds.b 4 ; DATA XREF: sub_6653A+57Ar ; sub_6653A+5A4w ... dword_FFFF8278: ds.b 4 ; DATA XREF: sub_6653A+5F2w ; sub_6653A:loc_66B30r ... byte_FFFF827C: ds.b 1 ; DATA XREF: sub_6653A:loc_66B22r ; sub_6653A+5EEw ... byte_FFFF827D: ds.b 1 ; DATA XREF: OS1:loc_32984w ; sub_32F08+10r word_FFFF827E: ds.b 2 ; DATA XREF: sub_2DACE+D0w ; sub_2DACE:loc_2DBBEr ... word_FFFF8280: ds.b 2 ; DATA XREF: sub_2DA2A+10r ; sub_2DAA6+14w ... word_FFFF8282: ds.b 2 ; DATA XREF: sub_2DAA6+18w ; sub_2DACE+B4w ... byte_FFFF8284: ds.b 1 ; DATA XREF: sub_2DAA6+6w ; sub_2DACE+C6w ... byte_FFFF8285: ds.b 1 ; DATA XREF: sub_2DAA6w ; sub_2DACE:loc_2DAF2r ... byte_FFFF8286: ds.b 1 ; DATA XREF: sub_2DAA6+1Cw ; sub_2DACE:loc_2DBBAw ... byte_FFFF8287: ds.b 1 ; DATA XREF: OS1:00034888w ; sub_348C6+B8r ... byte_FFFF8288: ds.b 1 ; DATA XREF: sub_274E4:loc_2752Cr ; sub_274E4+6Er ... ds.b 1 dword_FFFF828A: ds.b 4 ; DATA XREF: sub_274E4+6r ; sub_274E4+34r ... word_FFFF828E: ds.b 2 ; DATA XREF: sub_27622+16w byte_FFFF8290: ds.b 1 ; DATA XREF: sub_3CD78+DEw ; sub_3E454+18w byte_FFFF8291: ds.b 1 ; DATA XREF: sub_3CD78+E2w ; sub_3E454+1Cw byte_FFFF8292: ds.b 1 ; DATA XREF: sub_3CD78+E6w ; sub_3E454+20w byte_FFFF8293: ds.b 1 ; DATA XREF: sub_3CD78+EAw ; sub_3E454+24w byte_FFFF8294: ds.b 1 ; DATA XREF: sub_3CD78+EEw ; sub_3E454+28w byte_FFFF8295: ds.b 1 ; DATA XREF: sub_3CD78+F2w ; sub_3E454+2Cw byte_FFFF8296: ds.b 1 ; DATA XREF: sub_3CD78+F6w ; sub_3E454+30w byte_FFFF8297: ds.b 1 ; DATA XREF: sub_3CD78+FAw ; sub_3E454+34w byte_FFFF8298: ds.b 1 ; DATA XREF: OS2:GetPid_1315r ; sub_76844+80w byte_FFFF8299: ds.b 1 ; DATA XREF: OS2:GetPid_1316r byte_FFFF829A: ds.b 1 ; DATA XREF: OS2:GetPid_1317r byte_FFFF829B: ds.b 1 ; DATA XREF: OS2:GetPid_1318r byte_FFFF829C: ds.b 1 ; DATA XREF: OS2:GetPid_1319r byte_FFFF829D: ds.b 1 ; DATA XREF: OS2:GetPid_131Ar byte_FFFF829E: ds.b 1 ; DATA XREF: OS2:GetPid_131Br byte_FFFF829F: ds.b 1 ; DATA XREF: OS2:GetPid_131Cr byte_FFFF82A0: ds.b 1 ; DATA XREF: sub_27806+BCw ; sub_27806:loc_27916r ... ds.b 1 unk_FFFF82A2: ds.b 1 ; DATA XREF: sub_27806:loc_2792Ar ds.b 1 byte_FFFF82A4: ds.b 1 ; DATA XREF: sub_27806+B4w ds.b 1 byte_FFFF82A6: ds.b 1 ; DATA XREF: sub_2FC54+Ar ; sub_2FC54+34w ... ds.b 1 dword_FFFF82A8: ds.b 4 ; DATA XREF: OS1:00030014w ; OS1:00030056r ... byte_FFFF82AC: ds.b 1 ; DATA XREF: sub_3EA90+2D6r sub_6015Aw ... ds.b 1 byte_FFFF82AE: ds.b 1 ; DATA XREF: sub_3EA90+2ECr ; sub_60178+528w ... byte_FFFF82AF: ds.b 1 ; DATA XREF: sub_3EA90+31Ar ; sub_60178+52Ew byte_FFFF82B0: ds.b 1 ; DATA XREF: sub_6015A+4w ; sub_60178+564w ... ds.b 1 word_FFFF82B2: ds.b 2 ; DATA XREF: sub_20A3A+16r ; sub_20A3A+1Cw ... byte_FFFF82B4: ds.b 1 ; DATA XREF: sub_20A3A+3Ar ; sub_20A3A:loc_20A80w ... byte_FFFF82B5: ds.b 1 ; DATA XREF: sub_20A3A+7Cr ; sub_20A3A+82w ... byte_FFFF82B6: ds.b 1 ; DATA XREF: sub_20B50+42r ; sub_20B50+46w ... ds.b 1 dword_FFFF82B8: ds.b 4 ; DATA XREF: sub_6BDFE+36w ; sub_6C700+46r ... byte_FFFF82BC: ds.b 1 ; DATA XREF: sub_6BDFE+3Aw ; sub_6C700+72w ... ds.b 1 byte_FFFF82BE: ds.b 1 ; DATA XREF: sub_21580+8r ; sub_21662:loc_216A4r ... byte_FFFF82BF: ds.b 1 ; DATA XREF: sub_2180E+10Ar ; sub_2180E+110w ... byte_FFFF82C0: ds.b 1 ; DATA XREF: sub_21580+10r ; sub_21580+18w ... byte_FFFF82C1: ds.b 1 ; DATA XREF: sub_21546+26w word_FFFF82C2: ds.b 2 ; DATA XREF: OS3:0007CBB4w ; OS3:loc_7CBC2w ... byte_FFFF82C4: ds.b 1 ; DATA XREF: sub_7CCBC+B2r ; sub_7CCBC:loc_7CD7Aw ... byte_FFFF82C5: ds.b 1 ; DATA XREF: OS3:0007CBB8w ; sub_7CEB6+ACw word_FFFF82C6: ds.b 2 ; DATA XREF: sub_6983E+164w ; sub_69A24+20w ... word_FFFF82C8: ds.b 2 ; DATA XREF: sub_6983E:loc_699D2w ; sub_69A24+24w ... word_FFFF82CA: ds.b 2 ; DATA XREF: sub_21930+CEw ; sub_21930+DAr ... word_FFFF82CC: ds.b 2 ; DATA XREF: sub_21930+F8w ; OS1:00028B56r ... byte_FFFF82CE: ds.b 1 ; DATA XREF: sub_758D8+3Aw ; sub_758D8+A2w ... byte_FFFF82CF: ds.b 1 ; DATA XREF: sub_758D8+36w ; sub_758D8+5Er ... byte_FFFF82D0: ds.b 1 ; DATA XREF: sub_758D8+3Ew ; sub_758D8+B2w ... byte_FFFF82D1: ds.b 1 ; DATA XREF: sub_758D8+42w ; sub_758D8+D8r ... word_FFFF82D2: ds.b 2 ; DATA XREF: sub_200DE+9Er ; sub_21930+36r ... byte_FFFF82D4: ds.b 1 ; DATA XREF: sub_62B70+242r ; sub_74CBE+B4r ... ds.b 1 word_FFFF82D6: ds.b 2 ; DATA XREF: sub_76516+2F4r ; sub_76516:loc_7682Aw ... word_FFFF82D8: ds.b 2 ; DATA XREF: sub_2C3C0+B0r ; sub_2C3C0:loc_2C49Cw IgnitionAdvanceMultiplier:ds.b 2 ; DATA XREF: sub_39F12+CEr ; sub_3C938:loc_3C94Cw ... byte_FFFF82DC: ds.b 1 ; DATA XREF: sub_2D8D6+12r ; sub_2D8D6+1Ew ... byte_FFFF82DD: ds.b 1 ; DATA XREF: sub_2D8D6r sub_2D8D6+5Aw ... word_FFFF82DE: ds.b 2 ; DATA XREF: sub_7BC70+24Ar ; sub_7BC70+2ECr ... word_FFFF82E0: ds.b 2 ; DATA XREF: OS3:0007ABF0w ; OS3:loc_7AC34w word_FFFF82E2: ds.b 2 ; DATA XREF: sub_7C79A+16r ; sub_7C79A:loc_7C7BCw word_FFFF82E4: ds.b 2 ; DATA XREF: sub_2F780:loc_2F9EAr ; sub_45F3A:loc_47578r ... word_FFFF82E6: ds.b 2 ; DATA XREF: sub_2178+34w DoLoopG+126w ... word_FFFF82E8: ds.b 2 ; DATA XREF: sub_85D6E+AAr ; sub_85D6E:loc_85E24w word_FFFF82EA: ds.b 2 ; DATA XREF: sub_64058+58r ; OS3:0007B8D2w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF86B4: ds.b 2 ; DATA XREF: OS1:00028B78r ; OS1:loc_28B82w word_FFFF86B6: ds.b 2 ; DATA XREF: OS1:00028B7Cr ; OS1:00028B88w ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF86BC: ds.b 2 ; DATA XREF: sub_5E1A4+DCw ; sub_5E1A4+152w ... byte_FFFF86BE: ds.b 1 ; DATA XREF: sub_5ED42+14w byte_FFFF86BF: ds.b 1 ; DATA XREF: OS2:GetPid_1237_FailCounterr ; OS2:00049A34r ... byte_FFFF86C0: ds.b 1 ; DATA XREF: OS2:GetPid_1239_NoResultsCounterr ; OS2:00049A74r ... byte_FFFF86C1: ds.b 1 ; DATA XREF: OS2:GetPid_1238_PassCounterr ; OS2:00049A54r ... byte_FFFF86C2: ds.b 1 ; DATA XREF: sub_5ED42+1Cw ds.b 1 word_FFFF86C4: ds.b 2 ; DATA XREF: OS1:0003E914r ; OS2:0004967Er ... word_FFFF86C6: ds.b 2 ; DATA XREF: OS2:GetPid_1235_MileageSinceFirstFailr ; OS2:000499F4r ... word_FFFF86C8: ds.b 2 ; DATA XREF: OS2:GetPid_1236_MileageSinceLastFailr ; OS2:00049A14r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF870E: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF88C0: ds.b 1 ; DATA XREF: sub_4CFF8+Cr ; sub_4CFF8+14r ... unk_FFFF88C1: ds.b 1 ds.b 1 ds.b 1 byte_FFFF88C4: ds.b 1 ; DATA XREF: sub_47B78+AEr ; sub_79B10+134r ds.b 1 byte_FFFF88C6: ds.b 1 ; DATA XREF: sub_200DE+4D6r ; IsIdleAirLearningActive+62r ... ds.b 1 byte_FFFF88C8: ds.b 1 ; DATA XREF: sub_200DE+498r ; sub_200DE+4C6r ... ds.b 1 byte_FFFF88CA: ds.b 1 ; DATA XREF: sub_200DE+4A0r ; sub_200DE+4CEr ... ds.b 1 byte_FFFF88CC: ds.b 1 ; DATA XREF: IsIdleAirLearningActive+2Ar ; sub_60178+1E8r ... ds.b 1 byte_FFFF88CE: ds.b 1 ; DATA XREF: sub_2E010+13Er ; IsIdleAirLearningActive+1Ar ... ds.b 1 byte_FFFF88D0: ds.b 1 ; DATA XREF: sub_2E010+146r ; IsIdleAirLearningActive+Ar ... ds.b 1 byte_FFFF88D2: ds.b 1 ; DATA XREF: sub_54FDC+F0r ; sub_54FDC+114r ... ds.b 1 byte_FFFF88D4: ds.b 1 ; DATA XREF: IsIdleAirLearningActive+AAr ; sub_54FDC+E0r ... ds.b 1 byte_FFFF88D6: ds.b 1 ; DATA XREF: IsIdleAirLearningActive+9Ar ; sub_54FDC+E8r ... ds.b 1 byte_FFFF88D8: ds.b 1 ; DATA XREF: sub_61E4C+5Cr ; sub_64058+118r ds.b 1 byte_FFFF88DA: ds.b 1 ; DATA XREF: sub_2E726+6Cr ; sub_2E726+18Er ... ds.b 1 byte_FFFF88DC: ds.b 1 ; DATA XREF: sub_2E726:loc_2E78Ar ; sub_2E726:loc_2E8ACr ... ds.b 1 byte_FFFF88DE: ds.b 1 ; DATA XREF: sub_47B78:loc_47C0Er ; sub_62B70+182r ... ds.b 1 byte_FFFF88E0: ds.b 1 ; DATA XREF: sub_47B78:loc_47BDAr ; sub_5436E+2B8r ... ds.b 1 byte_FFFF88E2: ds.b 1 ; DATA XREF: sub_2E010+14Er ; sub_47B78+7Ar ... ds.b 1 byte_FFFF88E4: ds.b 1 ; DATA XREF: sub_2E010+156r ; sub_47B78+6Ar ... ds.b 1 byte_FFFF88E6: ds.b 1 ; DATA XREF: sub_60178+1A2r ; sub_64058+128r ... ds.b 1 ds.b 1 ds.b 1 byte_FFFF88EA: ds.b 1 ; DATA XREF: sub_2CC22+86r ; sub_32F54+49Er ... ds.b 1 byte_FFFF88EC: ds.b 1 ; DATA XREF: sub_2CC22+96r ; sub_32F54+4A6r ... ds.b 1 byte_FFFF88EE: ds.b 1 ; DATA XREF: sub_60178+24Cr ds.b 1 byte_FFFF88F0: ds.b 1 ; DATA XREF: sub_2CC22+76r ; sub_32F54+4AEr ... ds.b 1 byte_FFFF88F2: ds.b 1 ; DATA XREF: sub_60178+260r ds.b 1 ds.b 1 ds.b 1 byte_FFFF88F6: ds.b 1 ; DATA XREF: sub_33D02+8r ; sub_60178+26Ar ds.b 1 byte_FFFF88F8: ds.b 1 ; DATA XREF: sub_33D02+10r ; sub_60178+274r ds.b 1 byte_FFFF88FA: ds.b 1 ; DATA XREF: sub_33D02r sub_60178+27Er ds.b 1 byte_FFFF88FC: ds.b 1 ; DATA XREF: sub_33D02+18r ; sub_60178+288r ds.b 1 ds.b 1 ds.b 1 byte_FFFF8900: ds.b 1 ; DATA XREF: sub_2CC22+8Er ; sub_32F54+516r ... ds.b 1 byte_FFFF8902: ds.b 1 ; DATA XREF: sub_2CC22+9Er ; sub_32F54+51Er ... ds.b 1 byte_FFFF8904: ds.b 1 ; DATA XREF: sub_60178+2A6r ds.b 1 byte_FFFF8906: ds.b 1 ; DATA XREF: sub_2CC22+7Er ; sub_32F54+526r ... ds.b 1 byte_FFFF8908: ds.b 1 ; DATA XREF: sub_60178+2BAr ds.b 1 ds.b 1 ds.b 1 byte_FFFF890C: ds.b 1 ; DATA XREF: sub_33D02+34r ; sub_60178+2C4r ds.b 1 byte_FFFF890E: ds.b 1 ; DATA XREF: sub_33D02+3Cr ; sub_60178+2CEr ds.b 1 byte_FFFF8910: ds.b 1 ; DATA XREF: sub_33D02:loc_33D2Er ; sub_60178+2D8r ds.b 1 byte_FFFF8912: ds.b 1 ; DATA XREF: sub_33D02+44r ; sub_60178+2E2r ds.b 1 ds.b 1 ds.b 1 byte_FFFF8916: ds.b 1 ; DATA XREF: sub_62B70+11Er ; sub_6EB4A+4Cr ... ds.b 1 ds.b 1 ds.b 1 byte_FFFF891A: ds.b 1 ; DATA XREF: sub_60178+1ACr ds.b 1 byte_FFFF891C: ds.b 1 ; DATA XREF: sub_60178+1B6r ds.b 1 ds.b 1 ds.b 1 byte_FFFF8920: ds.b 1 ; DATA XREF: sub_60178+1C0r ds.b 1 byte_FFFF8922: ds.b 1 ; DATA XREF: sub_60178+1CAr ds.b 1 byte_FFFF8924: ds.b 1 ; DATA XREF: sub_62B70+13Cr ; sub_6EB4A+5Cr ... ds.b 1 byte_FFFF8926: ds.b 1 ; DATA XREF: sub_2F780:loc_2F900r ; sub_61E4C+64r ... ds.b 1 byte_FFFF8928: ds.b 1 ; DATA XREF: sub_2F780+188r ; sub_61E4C+6Cr ... ds.b 1 byte_FFFF892A: ds.b 1 ; DATA XREF: sub_2F780:loc_2F9C0r ds.b 1 byte_FFFF892C: ds.b 1 ; DATA XREF: sub_2F780+248r ; sub_6983E+82r ds.b 1 byte_FFFF892E: ds.b 1 ; DATA XREF: sub_2F780+250r ; sub_6983E+8Ar ds.b 1 byte_FFFF8930: ds.b 1 ; DATA XREF: sub_2CC22+A6r ; sub_32F54+4C8r ... ds.b 1 byte_FFFF8932: ds.b 1 ; DATA XREF: sub_513C0+36r ; sub_513C0+3Er ... ds.b 1 byte_FFFF8934: ds.b 1 ; DATA XREF: sub_2E010+15Er ; sub_47B78+9Er ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF893A: ds.b 1 ; DATA XREF: sub_3580C+7Er ; sub_60178+31Er ... ds.b 1 byte_FFFF893C: ds.b 1 ; DATA XREF: sub_6EB4A+2A2r ; sub_6EF00+A6r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF8944: ds.b 1 ; DATA XREF: sub_60880+1Ar ; sub_60880+D6r ... ds.b 1 byte_FFFF8946: ds.b 1 ; DATA XREF: sub_60E42+66r ; sub_6EB4A+26Er ... ds.b 1 byte_FFFF8948: ds.b 1 ; DATA XREF: sub_60E42+70r ; sub_6EB4A+21Er ... ds.b 1 byte_FFFF894A: ds.b 1 ; DATA XREF: sub_60E42+7Ar ; sub_6EB4A+232r ... ds.b 1 byte_FFFF894C: ds.b 1 ; DATA XREF: sub_60E42+84r ; sub_6EB4A+246r ... ds.b 1 byte_FFFF894E: ds.b 1 ; DATA XREF: OS2:loc_43A28r ds.b 1 byte_FFFF8950: ds.b 1 ; DATA XREF: OS2:loc_43A16r ds.b 1 byte_FFFF8952: ds.b 1 ; DATA XREF: OS2:loc_43A04r ds.b 1 byte_FFFF8954: ds.b 1 ; DATA XREF: OS2:loc_439F2r ds.b 1 byte_FFFF8956: ds.b 1 ; DATA XREF: OS2:loc_439E0r ds.b 1 byte_FFFF8958: ds.b 1 ; DATA XREF: OS2:loc_439CEr ds.b 1 byte_FFFF895A: ds.b 1 ; DATA XREF: OS2:loc_439BCr ds.b 1 byte_FFFF895C: ds.b 1 ; DATA XREF: OS2:GetPid_1114r ds.b 1 ds.b 1 ds.b 1 byte_FFFF8960: ds.b 1 ; DATA XREF: sub_6DA1A+FEr ; sub_6E41E+AAr ds.b 1 ds.b 1 ds.b 1 byte_FFFF8964: ds.b 1 ; DATA XREF: sub_2E010+186r ; sub_62B70+150r ... ds.b 1 byte_FFFF8966: ds.b 1 ; DATA XREF: sub_2E010+18Er ; sub_62B70+15Ar ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF8974: ds.b 1 ; DATA XREF: sub_60178+170r ; sub_6DA1A+F6r ... ds.b 1 byte_FFFF8976: ds.b 1 ; DATA XREF: sub_748D0+208r ds.b 1 byte_FFFF8978: ds.b 1 ; DATA XREF: sub_60178+17Ar ; sub_64058+138r ... ds.b 1 byte_FFFF897A: ds.b 1 ; DATA XREF: sub_748D0+212r ds.b 1 byte_FFFF897C: ds.b 1 ; DATA XREF: sub_3DE0C+22r ; sub_3DE6E+22r ds.b 1 byte_FFFF897E: ds.b 1 ; DATA XREF: sub_3DE0C:loc_3DE26r ; sub_3DE6E:loc_3DE88r ds.b 1 byte_FFFF8980: ds.b 1 ; DATA XREF: sub_60178+166r ; sub_64058+130r ... ds.b 1 byte_FFFF8982: ds.b 1 ; DATA XREF: sub_72604r ds.b 1 byte_FFFF8984: ds.b 1 ; DATA XREF: sub_692E0+A0r ; sub_6A576+1Er ... ds.b 1 byte_FFFF8986: ds.b 1 ; DATA XREF: sub_692E0+A8r ; sub_6A576+26r ... ds.b 1 byte_FFFF8988: ds.b 1 ; DATA XREF: sub_6720E+9Ar ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF8996: ds.b 1 ; DATA XREF: sub_60178+184r ; sub_64058+148r ... ds.b 1 byte_FFFF8998: ds.b 1 ; DATA XREF: sub_24716:loc_248BAr ; sub_2E010+16Er ... ds.b 1 byte_FFFF899A: ds.b 1 ; DATA XREF: sub_2E010+176r ; sub_30368+78r ... ds.b 1 byte_FFFF899C: ds.b 1 ; DATA XREF: sub_2E010+17Er ; sub_30368+70r ... ds.b 1 byte_FFFF899E: ds.b 1 ; DATA XREF: IsIdleAirLearningActive+D2r ; sub_60178+1D4r ... ds.b 1 byte_FFFF89A0: ds.b 1 ; DATA XREF: IsIdleAirLearningActive+DAr ; sub_60178+1DEr ... ds.b 1 byte_FFFF89A2: ds.b 1 ; DATA XREF: sub_47B78:loc_47D34r ; sub_7CDE0:loc_7CE2Cr ... ds.b 1 byte_FFFF89A4: ds.b 1 ; DATA XREF: sub_47B78+1C4r ; sub_7CDE0+54r ... ds.b 1 byte_FFFF89A6: ds.b 1 ; DATA XREF: sub_6720E+92r ds.b 1 byte_FFFF89A8: ds.b 1 ; DATA XREF: sub_2BA40+758r ; sub_2EBD6+C6r ... ds.b 1 byte_FFFF89AA: ds.b 1 ; DATA XREF: sub_2BA40+760r ; sub_2EBD6+CEr ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF89B2: ds.b 1 ; DATA XREF: sub_7695E+4Cr ; sub_76A4E+BCr ... ds.b 1 byte_FFFF89B4: ds.b 1 ; DATA XREF: sub_7695E+54r ; sub_76A4E+3Cr ... ds.b 1 byte_FFFF89B6: ds.b 1 ; DATA XREF: sub_47B78+12Ar ; sub_7695E+2Cr ... ds.b 1 byte_FFFF89B8: ds.b 1 ; DATA XREF: OS2:loc_41690r ds.b 1 byte_FFFF89BA: ds.b 1 ; DATA XREF: sub_75322+1Er ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF89C8: ds.b 1 ; DATA XREF: sub_2C7AC+296r ; sub_39546+Er ds.b 1 byte_FFFF89CA: ds.b 1 ; DATA XREF: sub_62B70+1B4r ; sub_6D636+BEr ds.b 1 byte_FFFF89CC: ds.b 1 ; DATA XREF: sub_60E42+A2r ds.b 1 ds.b 1 ds.b 1 byte_FFFF89D0: ds.b 1 ; DATA XREF: sub_62B70+1BEr ; sub_6D636+C6r ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF89D6: ds.b 1 ; DATA XREF: sub_60E42+C0r ; sub_6C236+Er ... ds.b 1 byte_FFFF89D8: ds.b 1 ; DATA XREF: sub_60E42+CAr ; sub_6C236+16r ... ds.b 1 byte_FFFF89DA: ds.b 1 ; DATA XREF: sub_2EBD6+116r ; sub_513C0+20r ... ds.b 1 byte_FFFF89DC: ds.b 1 ; DATA XREF: sub_2EBD6+11Er ; sub_47B78:loc_47CE8r ... ds.b 1 byte_FFFF89DE: ds.b 1 ; DATA XREF: sub_2EBD6+126r ; sub_47B78+178r ... ds.b 1 byte_FFFF89E0: ds.b 1 ; DATA XREF: OS2:0004FEC4r ; sub_50628+28Ar ... ds.b 1 byte_FFFF89E2: ds.b 1 ; DATA XREF: OS2:0004FEBAr ; sub_50628+280r ... ds.b 1 byte_FFFF89E4: ds.b 1 ; DATA XREF: sub_47B78:loc_47C8Cr ; sub_5285A+32Ar ... ds.b 1 byte_FFFF89E6: ds.b 1 ; DATA XREF: sub_47B78+11Cr ; sub_5285A+2FEr ... ds.b 1 byte_FFFF89E8: ds.b 1 ; DATA XREF: sub_5195C+18Ar ; sub_5195C+192r ... ds.b 1 byte_FFFF89EA: ds.b 1 ; DATA XREF: sub_4FB1A+6Ar ; sub_4FB1A+72r ... ds.b 1 byte_FFFF89EC: ds.b 1 ; DATA XREF: sub_4F8C8+F2r ; OS2:00050144r ... ds.b 1 byte_FFFF89EE: ds.b 1 ; DATA XREF: sub_4F8C8+E2r ; OS2:0005013Ar ... ds.b 1 byte_FFFF89F0: ds.b 1 ; DATA XREF: sub_4FC18+1Ar ; sub_4FC18+22r ... ds.b 1 byte_FFFF89F2: ds.b 1 ; DATA XREF: sub_503CA+46r ; sub_50628+24Ar ... ds.b 1 byte_FFFF89F4: ds.b 1 ; DATA XREF: sub_503CA+50r ; sub_50628+254r ... ds.b 1 byte_FFFF89F6: ds.b 1 ; DATA XREF: sub_4FCA2+6Cr ; sub_4FCA2+74r ... ds.b 1 byte_FFFF89F8: ds.b 1 ; DATA XREF: sub_503CA+64r ; sub_50628+25Er ... ds.b 1 byte_FFFF89FA: ds.b 1 ; DATA XREF: sub_503CA+6Er ; sub_50628+268r ... ds.b 1 byte_FFFF89FC: ds.b 1 ; DATA XREF: sub_4FCA2+164r ; sub_4FCA2+16Cr ... ds.b 1 byte_FFFF89FE: ds.b 1 ; DATA XREF: sub_4F9F4+7Ar ; sub_4F9F4+82r ... ds.b 1 ds.b 1 ds.b 1 byte_FFFF8A02: ds.b 1 ; DATA XREF: sub_4B68C+8Ar ; sub_4B68C+B8r ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF8A08: ds.b 1 ; DATA XREF: sub_7C8A2+110r ; sub_7C8A2+158r ... ds.b 1 ds.b 1 ds.b 1 byte_FFFF8A0C: ds.b 1 ; DATA XREF: sub_24716+79Ar ; sub_45F3A+2Er ds.b 1 byte_FFFF8A0E: ds.b 1 ; DATA XREF: sub_4F8C8+EAr ; sub_50628+2A4r ... ds.b 1 byte_FFFF8A10: ds.b 1 ; DATA XREF: IsIdleAirLearningActive+12r ds.b 1 byte_FFFF8A12: ds.b 1 ; DATA XREF: IsIdleAirLearningActive+22r ds.b 1 byte_FFFF8A14: ds.b 1 ; DATA XREF: IsIdleAirLearningActive+A2r ds.b 1 byte_FFFF8A16: ds.b 1 ; DATA XREF: IsIdleAirLearningActive+B2r ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF8A1C: ds.b 1 ; DATA XREF: sub_47B78+72r ; sub_835B2+38r ds.b 1 byte_FFFF8A1E: ds.b 1 ; DATA XREF: sub_47B78+82r ; sub_835B2+42r ds.b 1 byte_FFFF8A20: ds.b 1 ; DATA XREF: sub_6EB4A+DEr ; sub_6EB4A+E8r ds.b 1 byte_FFFF8A22: ds.b 1 ; DATA XREF: sub_32F54+4B6r ; sub_3580C+3Ar ... ds.b 1 byte_FFFF8A24: ds.b 1 ; DATA XREF: sub_60178+2F6r ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF8A2A: ds.b 1 ; DATA XREF: sub_32F54+52Er ; sub_3580C:loc_3585Ar ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF8A3A: ds.b 1 ; DATA XREF: sub_62B70+164r ; sub_6D244:loc_6D282r ... ds.b 1 ds.b 1 ds.b 1 byte_FFFF8A3E: ds.b 1 ; DATA XREF: sub_6E41E+10r ; sub_750E2+26r ds.b 1 byte_FFFF8A40: ds.b 1 ; DATA XREF: sub_6E41E+18r ; sub_750E2+2Er ds.b 1 byte_FFFF8A42: ds.b 1 ; DATA XREF: sub_47B78+BEr ; sub_79B10+144r ds.b 1 byte_FFFF8A44: ds.b 1 ; DATA XREF: sub_53B10+8Er ; sub_53B10+96r ... ds.b 1 byte_FFFF8A46: ds.b 1 ; DATA XREF: sub_2BA40+748r ; sub_2E726+74r ... ds.b 1 byte_FFFF8A48: ds.b 1 ; DATA XREF: sub_2BA40+750r ; sub_5F4A6+AAr ... ds.b 1 ds.b 1 ds.b 1 byte_FFFF8A4C: ds.b 1 ; DATA XREF: sub_7695E+34r ; sub_7AFBE+1B2r ... ds.b 1 byte_FFFF8A4E: ds.b 1 ; DATA XREF: sub_7AFBE+38r ; sub_7B33A+220r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF8A58: ds.b 1 ; DATA XREF: sub_2C7AC:loc_2CA38r ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF8A6E: ds.b 1 ; DATA XREF: sub_3E346+44r ; OS2:00044A40r ... ds.b 1 byte_FFFF8A70: ds.b 1 ; DATA XREF: sub_505A4+Cr ; sub_505A4+14r ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF8A7C: ds.b 1 ; DATA XREF: sub_5427A+2Cr ; sub_5427A+34r ... ds.b 1 ds.b 1 ds.b 1 byte_FFFF8A80: ds.b 1 ; DATA XREF: sub_64058+158r ds.b 1 byte_FFFF8A82: ds.b 1 ; DATA XREF: sub_64058+160r ds.b 1 byte_FFFF8A84: ds.b 1 ; DATA XREF: sub_64058+168r ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF8A8C: ds.b 1 ; DATA XREF: sub_47B78+B6r ; sub_79B10+13Cr ds.b 1 byte_FFFF8A8E: ds.b 1 ; DATA XREF: sub_47B78+46r ; sub_47B78+C6r ... ds.b 1 byte_FFFF8A90: ds.b 1 ; DATA XREF: sub_62B70+1A0r ds.b 1 byte_FFFF8A92: ds.b 1 ; DATA XREF: sub_47B78:loc_47B8Er ; sub_835B2+4Cr ds.b 1 byte_FFFF8A94: ds.b 1 ; DATA XREF: sub_47B78+1Er ; sub_835B2+54r ds.b 1 byte_FFFF8A96: ds.b 1 ; DATA XREF: sub_47B78+26r ; sub_835B2+5Cr ds.b 1 byte_FFFF8A98: ds.b 1 ; DATA XREF: sub_47B78+2Er ; sub_835B2+64r ds.b 1 byte_FFFF8A9A: ds.b 1 ; DATA XREF: sub_47B78+36r ; sub_835B2+6Cr ds.b 1 byte_FFFF8A9C: ds.b 1 ; DATA XREF: sub_47B78+3Er ; sub_835B2+74r ds.b 1 byte_FFFF8A9E: ds.b 1 ; DATA XREF: sub_2E010+166r ; sub_47B78+A6r ... ds.b 1 ds.b 1 ds.b 1 byte_FFFF8AA2: ds.b 1 ; DATA XREF: sub_64058+150r ; sub_6720E+A2r ... ds.b 1 byte_FFFF8AA4: ds.b 1 ; DATA XREF: sub_47B78+1DEr ; sub_802BE+Cr ds.b 1 byte_FFFF8AA6: ds.b 1 ; DATA XREF: sub_4F8C8+7Er ; sub_4F8C8+86r ... ds.b 1 byte_FFFF8AA8: ds.b 1 ; DATA XREF: sub_4B5C8:loc_4B5DEr ; sub_50514:loc_50526r ... ds.b 1 byte_FFFF8AAA: ds.b 1 ; DATA XREF: sub_47B78+4Er ; sub_47B78+CEr ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF8AC6: ds.b 1 ; DATA XREF: sub_4A232+70r ds.b 1 byte_FFFF8AC8: ds.b 1 ; DATA XREF: sub_4A232+66r ds.b 1 byte_FFFF8ACA: ds.b 1 ; DATA XREF: OS2:GetPid_1232_Warmupcycleswithoutanemissionfaultr ; sub_5E37E+4Ew ... byte_FFFF8ACB: ds.b 1 ; DATA XREF: sub_5DE36+7Er ; sub_5DE36+8Aw ... byte_FFFF8ACC: ds.b 1 ; DATA XREF: sub_32F54:loc_333E6r ; sub_32F54:loc_33460r ... byte_FFFF8ACD: ds.b 1 ; DATA XREF: OS2:GetPid_1233_Warmupcycleswithoutanonemissionfaultr ; sub_5E37E+9Cw ... byte_FFFF8ACE: ds.b 1 ; DATA XREF: sub_5E37E+A4w ; sub_5E37E+182r ... byte_FFFF8ACF: ds.b 1 ; DATA XREF: sub_5E37E+A0w ; sub_5E37E+1B2r ... word_FFFF8AD0: ds.b 2 ; DATA XREF: sub_5E37E+7Ew ; sub_5E37E:loc_5E4B6r ... word_FFFF8AD2: ds.b 2 ; DATA XREF: sub_5E37E+82w ; sub_5E37E+13Er ... word_FFFF8AD4: ds.b 2 ; DATA XREF: sub_5E37E+86w ; sub_5E37E+144r ... word_FFFF8AD6: ds.b 2 ; DATA XREF: sub_5E37E+8Aw ; sub_5E37E+14Ar ... word_FFFF8AD8: ds.b 2 ; DATA XREF: sub_5E37E+8Ew ; sub_5E37E+150r ... word_FFFF8ADA: ds.b 2 ; DATA XREF: sub_5E37E+92w ; sub_5E37E+156r ... word_FFFF8ADC: ds.b 2 ; DATA XREF: sub_5E08A+A2r ; sub_5E08A+B2r ... word_FFFF8ADE: ds.b 2 ; DATA XREF: sub_5E08A+C0r ; sub_5E37E+13Ew ... word_FFFF8AE0: ds.b 2 ; DATA XREF: sub_5E08A:loc_5E15Ar ; sub_5E37E+144w ... word_FFFF8AE2: ds.b 2 ; DATA XREF: sub_5E08A+1Ar ; sub_5E08A+2Ar ... word_FFFF8AE4: ds.b 2 ; DATA XREF: sub_5E08A+38r ; sub_5E37E+150w ... word_FFFF8AE6: ds.b 2 ; DATA XREF: sub_5E08A:loc_5E0D2r ; sub_5E37E+156w ... dword_FFFF8AE8: ds.b 4 ; DATA XREF: sub_70CF2+4Cw ; sub_70ECE+30w ... dword_FFFF8AEC: ds.b 4 ; DATA XREF: sub_70CF2+48w ; sub_70ECE+2Cw ... dword_FFFF8AF0: ds.b 4 ; DATA XREF: sub_70CF2+54w ; sub_70ECE+38w ... dword_FFFF8AF4: ds.b 4 ; DATA XREF: sub_70CF2+50w ; sub_70ECE+34w ... dword_FFFF8AF8: ds.b 4 ; DATA XREF: OS2:0004438Er ; sub_70CF2+1Cw ... dword_FFFF8AFC: ds.b 4 ; DATA XREF: sub_70CF2+24w ; sub_70ECE+BCw dword_FFFF8B00: ds.b 4 ; DATA XREF: OS2:GetPid_11D7_OResponseLeantoRichSwitchesBankSensorr ; sub_70CF2+28w ... dword_FFFF8B04: ds.b 4 ; DATA XREF: sub_70CF2+5Cw ; sub_70ECE+40w dword_FFFF8B08: ds.b 4 ; DATA XREF: sub_70CF2+58w ; sub_70ECE+3Cw dword_FFFF8B0C: ds.b 4 ; DATA XREF: sub_70CF2+64w ; sub_70ECE+48w dword_FFFF8B10: ds.b 4 ; DATA XREF: sub_70CF2+60w ; sub_70ECE+44w dword_FFFF8B14: ds.b 4 ; DATA XREF: sub_70CF2+6Cw ; sub_70ECE+50w ... dword_FFFF8B18: ds.b 4 ; DATA XREF: sub_70CF2+68w ; sub_70ECE+4Cw ... dword_FFFF8B1C: ds.b 4 ; DATA XREF: sub_70CF2+74w ; sub_70ECE+58w ... dword_FFFF8B20: ds.b 4 ; DATA XREF: sub_70CF2+70w ; sub_70ECE+54w ... dword_FFFF8B24: ds.b 4 ; DATA XREF: OS2:000443B6r ; sub_70CF2+3Cw ... dword_FFFF8B28: ds.b 4 ; DATA XREF: sub_70CF2+7Cw ; sub_70ECE+60w ... dword_FFFF8B2C: ds.b 4 ; DATA XREF: sub_70CF2+78w ; sub_70ECE+5Cw ... dword_FFFF8B30: ds.b 4 ; DATA XREF: sub_70CF2+40w ; sub_70ECE+D8w dword_FFFF8B34: ds.b 4 ; DATA XREF: OS2:GetPid_121A_OResponseRichtoLeanSwitchesBankSensorr ; sub_70CF2+44w ... ds.b 1 ds.b 1 unk_FFFF8B3A: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF8B3E: ds.b 1 ds.b 1 dword_FFFF8B40: ds.b 4 ; DATA XREF: sub_70CF2+20w ; sub_70ECE+B0w dword_FFFF8B44: ds.b 4 ; DATA XREF: sub_70CF2+38w ; sub_70ECE+D4w word_FFFF8B48: ds.b 2 ; DATA XREF: sub_70CF2+34w ; sub_70ECE+CCw ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF8B4E: ds.b 2 ; DATA XREF: OS2:GetPid_1212_RichLeantoLeanRichRatioSenr ; sub_70CF2+2Cw ... word_FFFF8B50: ds.b 2 ; DATA XREF: sub_70CF2+30w ; sub_70ECE+C8w dword_FFFF8B52: ds.b 4 ; DATA XREF: sub_70CF2+80w ; sub_70ECE+64w ... word_FFFF8B56: ds.b 2 ; DATA XREF: sub_3EA90+74r ; sub_64EFC:loc_64F24w ... word_FFFF8B58: ds.b 2 ; DATA XREF: sub_3EA90+62r ; sub_64EFC+2Cw ... word_FFFF8B5A: ds.b 2 ; DATA XREF: sub_3EA90+BCr ; sub_64EFC+30w ... word_FFFF8B5C: ds.b 2 ; DATA XREF: sub_3EA90+9Ar ; sub_64EFC+34w ... word_FFFF8B5E: ds.b 2 ; DATA XREF: sub_3EA90+E8r ; sub_64EFC+38w ... word_FFFF8B60: ds.b 2 ; DATA XREF: sub_3EA90+E2r ; sub_64EFC+3Cw ... dword_FFFF8B62: ds.b 4 ; DATA XREF: sub_3EA90+12Ar ; sub_64EFC+40w ... dword_FFFF8B66: ds.b 4 ; DATA XREF: sub_3EA90+FEr ; sub_64EFC+44w ... word_FFFF8B6A: ds.b 2 ; DATA XREF: sub_3EA90+26Ar ; sub_64EFC+4Cw ... word_FFFF8B6C: ds.b 2 ; DATA XREF: sub_3EA90+264r ; sub_64EFC+50w ... word_FFFF8B6E: ds.b 2 ; DATA XREF: sub_3EA90+2BCr ; sub_64EFC+54w ... word_FFFF8B70: ds.b 2 ; DATA XREF: sub_3EA90+29Ar ; sub_64EFC+58w ... word_FFFF8B72: ds.b 2 ; DATA XREF: sub_3EA90+284r ; sub_64EFC+5Cw ... word_FFFF8B74: ds.b 2 ; DATA XREF: sub_3EA90+27Er ; sub_64EFC+60w ... word_FFFF8B76: ds.b 2 ; DATA XREF: sub_3EA90+24Er ; sub_64EFC+64w ... word_FFFF8B78: ds.b 2 ; DATA XREF: sub_3EA90+220r ; sub_64EFC+68w ... dword_FFFF8B7A: ds.b 4 ; DATA XREF: sub_3EA90+1C4r ; sub_64EFC+6Cw ... dword_FFFF8B7E: ds.b 4 ; DATA XREF: sub_3EA90+198r ; sub_64EFC+70w ... word_FFFF8B82: ds.b 2 ; DATA XREF: sub_3EA90+180r ; sub_64EFC+74w ... word_FFFF8B84: ds.b 2 ; DATA XREF: sub_3EA90+15Er ; sub_64EFC+78w ... word_FFFF8B86: ds.b 2 ; DATA XREF: sub_3EA90+1DEr ; sub_64EFC+7Cw ... word_FFFF8B88: ds.b 2 ; DATA XREF: sub_3EA90+1D8r ; sub_64EFC+80w ... word_FFFF8B8A: ds.b 2 ; DATA XREF: sub_3EA90+1F8r ; sub_64EFC+84w ... word_FFFF8B8C: ds.b 2 ; DATA XREF: sub_3EA90+1F2r ; sub_64EFC+88w ... byte_FFFF8B8E: ds.b 1 ; DATA XREF: sub_64EFC+48w ; sub_64EFC+C3Er ... byte_FFFF8B8F: ds.b 1 ; DATA XREF: sub_64EFC+94w ; sub_64EFC+9Aw ... byte_FFFF8B90: ds.b 1 ; DATA XREF: sub_64EFC+8Cw ; sub_64EFC+1B0w ... byte_FFFF8B91: ds.b 1 ; DATA XREF: sub_64EFC+90w ; sub_64EFC+204w ... word_FFFF8B92: ds.b 2 ; DATA XREF: sub_64DBA+8Cw ; sub_64EFC+1A6w ... word_FFFF8B94: ds.b 2 ; DATA XREF: sub_64DBA+A8w ; sub_64EFC+1FAw ... unk_FFFF8B96: ds.b 1 ; DATA XREF: OS2:0004B42Eo ; sub_5D15C+14o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF8BA8: ds.b 1 ; DATA XREF: sub_5D15C+6Eo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF8BBA: ds.b 1 ; DATA XREF: sub_5D15C+8Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF8BC2: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF8BCC: ds.b 2 ; DATA XREF: sub_26DFA+9Aw ; sub_5D15C+3Cw ... unk_FFFF8BCE: ds.b 1 ; DATA XREF: sub_4CB7A+20o ; sub_592A4+26o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF8BF2: ds.b 2 ; DATA XREF: sub_4CB7A+3Aw ; sub_59064+1CEw ... byte_FFFF8BF4: ds.b 1 ; DATA XREF: OS2:GetPid_11F5r ; sub_70138+2Cw ... byte_FFFF8BF5: ds.b 1 ; DATA XREF: OS2:GetPid_11F7r ; sub_70138+34w ... word_FFFF8BF6: ds.b 2 ; DATA XREF: sub_70138+30w ; sub_701F0+28w ... word_FFFF8BF8: ds.b 2 ; DATA XREF: sub_70138+38w ; sub_701F0+3Cw ... unk_FFFF8BFA: ds.b 1 ; DATA XREF: sub_70138+20o sub_701F0o ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF8C0A: ds.b 2 ; DATA XREF: sub_3E928+68r ; OS2:0004968Ar ... word_FFFF8C0C: ds.b 2 ; DATA XREF: OS2:GetPid_1187r ; sub_70138+44w ... word_FFFF8C0E: ds.b 2 ; DATA XREF: OS2:GetPid_1227_TotalMisfireFailuresSinceFirstFailr ; sub_70138+48w ... word_FFFF8C10: ds.b 2 ; DATA XREF: OS2:GetPid_1186r ; sub_70138+4Cw ... word_FFFF8C12: ds.b 2 ; DATA XREF: OS2:GetPid_1228_TotalMisfirePassesSinceFirstFailr ; sub_70138+50w ... word_FFFF8C14: ds.b 2 ; DATA XREF: sub_70138+54w ; sub_702A6+3Cr ... word_FFFF8C16: ds.b 2 ; DATA XREF: sub_70138+3Cw ; sub_702A6+26w ... byte_FFFF8C18: ds.b 1 ; DATA XREF: sub_70138+60w ; sub_702A6+20r ... ds.b 1 unk_FFFF8C1A: ds.b 1 ; DATA XREF: OS1:00029274o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF8C3E: ds.b 1 ; DATA XREF: sub_4CB7A+128o ; sub_5824A+20o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF8C4E: ds.b 2 ; DATA XREF: sub_4CB7A+134w ; sub_575C6+8FCw ... unk_FFFF8C50: ds.b 1 ; DATA XREF: sub_4CB7A+102o ; sub_5824A+46o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF8C60: ds.b 2 ; DATA XREF: sub_26DFA+10Ew ; sub_4CB7A+11Cw ... word_FFFF8C62: ds.b 2 ; DATA XREF: sub_694F4w sub_696E2+82r ... word_FFFF8C64: ds.b 2 ; DATA XREF: sub_694F4+8w word_FFFF8C66: ds.b 2 ; DATA XREF: sub_694F4+10w word_FFFF8C68: ds.b 2 ; DATA XREF: sub_694F4+Cw word_FFFF8C6A: ds.b 2 ; DATA XREF: sub_694F4+14w word_FFFF8C6C: ds.b 2 ; DATA XREF: sub_694F4+4w ; sub_696E2:loc_6973Er ... byte_FFFF8C6E: ds.b 1 ; DATA XREF: sub_694F4+1Aw ; sub_696E2+62w byte_FFFF8C6F: ds.b 1 ; DATA XREF: sub_694F4+1Ew ; sub_696E2+66w ... word_FFFF8C70: ds.b 2 ; DATA XREF: sub_694F4+22w ; sub_696E2+6Aw word_FFFF8C72: ds.b 2 ; DATA XREF: sub_694F4+26w ; sub_697CC+32r ... word_FFFF8C74: ds.b 2 ; DATA XREF: sub_694F4+2Aw ; sub_697CC+Ew word_FFFF8C76: ds.b 2 ; DATA XREF: sub_694F4+2Ew ; sub_697CC+12w word_FFFF8C78: ds.b 2 ; DATA XREF: sub_694F4+34w word_FFFF8C7A: ds.b 2 ; DATA XREF: sub_694F4+3Cw word_FFFF8C7C: ds.b 2 ; DATA XREF: sub_694F4+38w word_FFFF8C7E: ds.b 2 ; DATA XREF: sub_694F4+40w word_FFFF8C80: ds.b 2 ; DATA XREF: sub_4CB7A+8Ew ; sub_5B542+1A4r ... word_FFFF8C82: ds.b 2 ; DATA XREF: sub_4CB7A+92w ; sub_5CDBC+1Ew word_FFFF8C84: ds.b 2 ; DATA XREF: sub_4CB7A+96w ; sub_5CDBC+22w word_FFFF8C86: ds.b 2 ; DATA XREF: sub_4CB7A+9Aw ; sub_5CDBC+26w word_FFFF8C88: ds.b 2 ; DATA XREF: sub_4CB7A+9Ew ; sub_5B542+18Er ... word_FFFF8C8A: ds.b 2 ; DATA XREF: sub_4CB7A+B0w ; sub_5CC7E+124w ... word_FFFF8C8C: ds.b 2 ; DATA XREF: sub_4CB7A+BCw ; sub_5B542+1AAr ... dword_FFFF8C8E: ds.b 4 ; DATA XREF: sub_4CB7A+B8w ; sub_5CDBC+56w dword_FFFF8C92: ds.b 4 ; DATA XREF: sub_4CB7A+B4w ; sub_5CDBC+52w ... word_FFFF8C96: ds.b 2 ; DATA XREF: sub_4CB7A+CEw ; sub_5CA7C+1F8w ... dword_FFFF8C98: ds.b 4 ; DATA XREF: sub_4CB7A+6Ew ; sub_558A2:loc_558CEr ... dword_FFFF8C9C: ds.b 4 ; DATA XREF: sub_4CB7A+6Aw ; sub_56A08+90w byte_FFFF8CA0: ds.b 1 ; DATA XREF: sub_4CB7A+66w ; sub_56A08+8Cw ds.b 1 dword_FFFF8CA2: ds.b 4 ; DATA XREF: sub_4CB7A+50w ; sub_558DA:loc_55906r ... dword_FFFF8CA6: ds.b 4 ; DATA XREF: sub_4CB7A+4Cw ; sub_56A08+C0w byte_FFFF8CAA: ds.b 1 ; DATA XREF: sub_4CB7A+48w ; sub_56A08+BCw ds.b 1 word_FFFF8CAC: ds.b 2 ; DATA XREF: sub_4CB7A+80w ; sub_559D6+D20w ... word_FFFF8CAE: ds.b 2 ; DATA XREF: sub_4CB7A+62w ; sub_559D6+D32w ... unk_FFFF8CB0: ds.b 1 ds.b 1 word_FFFF8CB2: ds.b 2 ; DATA XREF: sub_3EA90+AFCr word_FFFF8CB4: ds.b 2 ; DATA XREF: sub_3EA90+B54r ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF8CBA: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF8CBE: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF8CC4: ds.b 2 ; DATA XREF: sub_4CB7A+F6w ; sub_59F72+1B2w ... byte_FFFF8CC6: ds.b 1 ; DATA XREF: sub_4CB7A+DAo ; sub_5A2C0:loc_5A2EAr ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF8CD4: ds.b 1 ds.b 1 dword_FFFF8CD6: ds.b 4 ; DATA XREF: sub_619FE+1Aw ; sub_75370+148w dword_FFFF8CDA: ds.b 4 ; DATA XREF: sub_619FE+1Ew ; sub_75370+14Cw dword_FFFF8CDE: ds.b 4 ; DATA XREF: sub_619FE+22w ; sub_75370+150w dword_FFFF8CE2: ds.b 4 ; DATA XREF: sub_619FE+26w ; sub_75370+154w word_FFFF8CE6: ds.b 2 ; DATA XREF: sub_66E70w sub_670C2+96r ... word_FFFF8CE8: ds.b 2 ; DATA XREF: sub_66E70+4w ; sub_670C2+6Ar ... word_FFFF8CEA: ds.b 2 ; DATA XREF: sub_66E70+8w ; sub_67010+A2r ... word_FFFF8CEC: ds.b 2 ; DATA XREF: sub_66E70+Cw ; sub_67010+6Er ... word_FFFF8CEE: ds.b 2 ; DATA XREF: sub_66E70+10w ; sub_66F48+B0r ... word_FFFF8CF0: ds.b 2 ; DATA XREF: sub_66E70+14w ; sub_66F48+7Cr ... word_FFFF8CF2: ds.b 2 ; DATA XREF: sub_3EA90+964r ; OS2:GetPid_1628r ... word_FFFF8CF4: ds.b 2 ; DATA XREF: sub_3EA90+93Ar ; OS2:GetPid_1627r ... byte_FFFF8CF6: ds.b 1 ; DATA XREF: sub_62228+3Cw ; sub_622EE+3Aw ... byte_FFFF8CF7: ds.b 1 ; DATA XREF: sub_62228+38w ; sub_622EE+22w ... byte_FFFF8CF8: ds.b 1 ; DATA XREF: sub_62228+22w ; sub_622EE+26w ... byte_FFFF8CF9: ds.b 1 ; DATA XREF: sub_62228+26w ; sub_622EE+2Aw ... byte_FFFF8CFA: ds.b 1 ; DATA XREF: sub_62228+2Ew ; sub_622EE+42w ... byte_FFFF8CFB: ds.b 1 ; DATA XREF: sub_62228+1Ew ; sub_622EE+3Ew ... word_FFFF8CFC: ds.b 2 ; DATA XREF: sub_62228+2Aw ; sub_622EE+18w ... word_FFFF8CFE: ds.b 2 ; DATA XREF: sub_6D7B6+4w ; sub_6D88A+52r ... word_FFFF8D00: ds.b 2 ; DATA XREF: sub_6D7B6w sub_6D88A+A2r ... word_FFFF8D02: ds.b 2 ; DATA XREF: sub_6D7B6+10w ; sub_6D944+94r ... word_FFFF8D04: ds.b 2 ; DATA XREF: sub_6D7B6+Cw ; sub_6D88A+22r ... word_FFFF8D06: ds.b 2 ; DATA XREF: sub_6D7B6+8w ; sub_6D88A+72r ... word_FFFF8D08: ds.b 2 ; DATA XREF: sub_6D7B6+14w ; sub_6D944+6Cr ... word_FFFF8D0A: ds.b 2 ; DATA XREF: sub_74E74+1ECr ; sub_74E74+1F2w ... word_FFFF8D0C: ds.b 2 ; DATA XREF: sub_74E74+ECr ; sub_74E74+F2w ... word_FFFF8D0E: ds.b 2 ; DATA XREF: sub_74CBE+196r ; sub_74CBE+19Cw ... word_FFFF8D10: ds.b 2 ; DATA XREF: sub_74E74+1AAr ; sub_74E74:loc_75024w ... word_FFFF8D12: ds.b 2 ; DATA XREF: sub_74E74+AAr ; sub_74E74:loc_74F24w ... word_FFFF8D14: ds.b 2 ; DATA XREF: sub_74CBE+15Er ; sub_74CBE+164w ... byte_FFFF8D16: ds.b 1 ; DATA XREF: OS2:GetPid_12EEr ; sub_45F3A+61Er ... byte_FFFF8D17: ds.b 1 ; DATA XREF: sub_84AB0+5Ar ; sub_84AB0+6Ew ... byte_FFFF8D18: ds.b 1 ; DATA XREF: OS2:GetPid_12EAr ; sub_84AB0:loc_84B5Cw ... byte_FFFF8D19: ds.b 1 ; DATA XREF: OS1:loc_2D990r ; sub_47DA2:loc_48932r ... byte_FFFF8D1A: ds.b 1 ; DATA XREF: sub_84AB0+56w ; sub_84AB0+BAw ... byte_FFFF8D1B: ds.b 1 ; DATA XREF: sub_84AB0:loc_84B86r ; sub_84AB0+F8w ... byte_FFFF8D1C: ds.b 1 ; DATA XREF: sub_84AB0+30w ; sub_84AB0:loc_85134r ... ds.b 1 word_FFFF8D1E: ds.b 2 ; DATA XREF: sub_84AB0+10w ; sub_84AB0:loc_84ACAr ... byte_FFFF8D20: ds.b 1 ; DATA XREF: sub_84AB0:loc_84B7Cr ; sub_84AB0:loc_85134w ... ds.b 1 dword_FFFF8D22: ds.b 4 ; DATA XREF: sub_60FA6:loc_60FC4r ; sub_60FEC+48w ... dword_FFFF8D26: ds.b 4 ; DATA XREF: sub_60FA6+2Ar ; sub_60FEC+42w ... word_FFFF8D2A: ds.b 2 ; DATA XREF: OS1:00028F40w ; DoLoopC+252w ... word_FFFF8D2C: ds.b 2 ; DATA XREF: OS1:00028F44w ; DoLoopC+256w ... word_FFFF8D2E: ds.b 2 ; DATA XREF: OS1:00028F48w ; DoLoopC+25Aw ... word_FFFF8D30: ds.b 2 ; DATA XREF: OS1:00028F4Cw ; DoLoopC+25Ew ... word_FFFF8D32: ds.b 2 ; DATA XREF: OS1:0002908Cw ; DoLoopC+2B4w ... word_FFFF8D34: ds.b 2 ; DATA XREF: OS1:00029090w ; DoLoopC+2B8w ... word_FFFF8D36: ds.b 2 ; DATA XREF: OS1:00029094w ; DoLoopC+2BCw ... word_FFFF8D38: ds.b 2 ; DATA XREF: OS1:00029098w ; DoLoopC+2C0w ... byte_FFFF8D3A: ds.b 1 ; DATA XREF: sub_53B10+Er ; sub_53BDC+E2r ... byte_FFFF8D3B: ds.b 1 ; DATA XREF: sub_53B10+12r ; sub_53BDC+17Er ... byte_FFFF8D3C: ds.b 1 ; DATA XREF: sub_53B10+26r ; sub_53BDC+13Er ... ds.b 1 word_FFFF8D3E: ds.b 2 ; DATA XREF: sub_53BDC+100w ; sub_53BDC+15Cw ... dword_FFFF8D40: ds.b 4 ; DATA XREF: OS2:0004B41Ar ; sub_555EA:loc_5566Cr ... word_FFFF8D44: ds.b 2 ; DATA XREF: sub_555EA+A6w ; sub_556FC+14r ... word_FFFF8D46: ds.b 2 ; DATA XREF: sub_6D244+2Aw ; sub_6D2DE+Aw ... word_FFFF8D48: ds.b 2 ; DATA XREF: sub_6D244+2Ew ; sub_6D2DE+Ew ... byte_FFFF8D4A: ds.b 1 ; DATA XREF: sub_6D244+22w ; sub_6D244+52w ... byte_FFFF8D4B: ds.b 1 ; DATA XREF: sub_2DACE+142r ; sub_6D244+1Cw ... word_FFFF8D4C: ds.b 2 ; DATA XREF: sub_6AB0C+98w sub_6ABB0w ... word_FFFF8D4E: ds.b 2 ; DATA XREF: sub_6AB0C+94w ; sub_6ABB0+4w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF8D54: ds.b 2 ; DATA XREF: DoLoopA+416r DoLoopA+41Cw ... byte_FFFF8D56: ds.b 1 ; DATA XREF: sub_6F126+50w ; sub_6F126+5Er ... ds.b 1 word_FFFF8D58: ds.b 2 ; DATA XREF: sub_692E0:loc_69436r ; sub_692E0+1A6w ... word_FFFF8D5A: ds.b 2 ; DATA XREF: sub_4D13A:loc_4D3C8r ; sub_4D13A+4D0r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF8DAC: ds.b 1 ; DATA XREF: sub_274E4+54r ; sub_274E4+7Cw byte_FFFF8DAD: ds.b 1 ; DATA XREF: sub_274E4+5Er ; sub_274E4+82w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF8FF0: ds.b 2 ; DATA XREF: Boot:000004C4r ; Boot:000004CEw ... dword_FFFF8FF2: ds.b 4 ; DATA XREF: sub_54C:loc_554w ; Boot:0000056Ew word_FFFF8FF6: ds.b 2 ; DATA XREF: Boot:loc_4BAw dword_FFFF8FF8: ds.b 4 ; DATA XREF: Boot:000006CAw ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF9000: ds.b 2 ; DATA XREF: sub_21930+16w ; sub_21930+3Cr ... byte_FFFF9002: ds.b 1 ; DATA XREF: sub_21930+1Aw ; sub_21930+7Cr ... byte_FFFF9003: ds.b 1 ; DATA XREF: sub_21930+26w ; sub_21930+46r ... byte_FFFF9004: ds.b 1 ; DATA XREF: sub_21930+2Aw ; sub_21930+5Ar ... byte_FFFF9005: ds.b 1 ; DATA XREF: sub_21930+30w ; sub_21930+66r ... word_FFFF9006: ds.b 2 ; DATA XREF: sub_21930+36w ; sub_21930+72r ... word_FFFF9008: ds.b 2 ; DATA XREF: sub_21930:loc_21C5Ew ; sub_21C8A+Cr ... word_FFFF900A: ds.b 2 ; DATA XREF: sub_21930+166w ; sub_21930:loc_21A9Cr ... word_FFFF900C: ds.b 2 ; DATA XREF: sub_21930:loc_21A7Cw ; sub_2FC92+90r ... byte_FFFF900E: ds.b 1 ; DATA XREF: sub_21930+1DCw ; sub_21930+1E6r ... byte_FFFF900F: ds.b 1 ; DATA XREF: sub_20718+66r ; sub_208D8+44r ... byte_FFFF9010: ds.b 1 ; DATA XREF: sub_21C8A+12r ; OS1:loc_28B68w ds.b 1 word_FFFF9012: ds.b 2 ; DATA XREF: sub_21930+238w word_FFFF9014: ds.b 2 ; DATA XREF: sub_21C8A+34w word_FFFF9016: ds.b 2 ; DATA XREF: sub_21930+1D0w ; sub_21930:loc_21B2Er word_FFFF9018: ds.b 2 ; DATA XREF: sub_21930:loc_21A38w word_FFFF901A: ds.b 2 ; DATA XREF: sub_21930:loc_21A5Cw ; sub_21930+150r word_FFFF901C: ds.b 2 ; DATA XREF: sub_21930:loc_21A8Ew ; sub_21930+174r ... word_FFFF901E: ds.b 2 ; DATA XREF: sub_21930:loc_21C52w ; sub_21930+32Aw ... word_FFFF9020: ds.b 2 ; DATA XREF: sub_45F3A+3F8r ; sub_45F3A+428r ... byte_FFFF9022: ds.b 1 ; DATA XREF: sub_75E94+6w ; sub_75FCA+158r ... byte_FFFF9023: ds.b 1 ; DATA XREF: sub_74CBE+A0r ; sub_74CBE+AAr ... byte_FFFF9024: ds.b 1 ; DATA XREF: sub_853A2:loc_8543Er ; sub_853A2+D2w ... byte_FFFF9025: ds.b 1 ; DATA XREF: sub_853A2+190w ; sub_853A2+2C8w ... byte_FFFF9026: ds.b 1 ; DATA XREF: sub_2340C:loc_23748r ; sub_2340C:loc_2376Er ... byte_FFFF9027: ds.b 1 ; DATA XREF: sub_2340C:loc_2357Er ; sub_2340C+1CEr ... byte_FFFF9028: ds.b 1 ; DATA XREF: sub_2340C+344r ; sub_2340C+36Ar ... ds.b 1 word_FFFF902A: ds.b 2 ; DATA XREF: sub_3975A+8r ; sub_853A2+144r ... word_FFFF902C: ds.b 2 ; DATA XREF: sub_853A2+374r ; sub_859CC+84r ... word_FFFF902E: ds.b 2 ; DATA XREF: sub_853A2+D6r ; sub_853A2+10Er ... word_FFFF9030: ds.b 2 ; DATA XREF: sub_853A2+102r ; sub_853A2+1D4r ... word_FFFF9032: ds.b 2 ; DATA XREF: sub_859CC+386r ; sub_86F0A:loc_86F90w byte_FFFF9034: ds.b 1 ; DATA XREF: sub_853A2+5F0r ; sub_865A6+88r ... byte_FFFF9035: ds.b 1 ; DATA XREF: sub_6720E+3Ar ; sub_7468C+96r ... word_FFFF9036: ds.b 2 ; DATA XREF: OS4:00086C58w byte_FFFF9038: ds.b 1 ; DATA XREF: sub_8671C:loc_86830r ; sub_8671C+142w ... byte_FFFF9039: ds.b 1 ; DATA XREF: sub_8671C+56r ; sub_8671C+86w ... word_FFFF903A: ds.b 2 ; DATA XREF: sub_8671C+126r ; sub_8671C:loc_86864w word_FFFF903C: ds.b 2 ; DATA XREF: sub_8671C+80r ; sub_86F0A:loc_86FA4w byte_FFFF903E: ds.b 1 ; DATA XREF: sub_8671C+E0w ; sub_8671C+EEw ... ds.b 1 word_FFFF9040: ds.b 2 ; DATA XREF: sub_86F0Ar sub_8751A+Ew word_FFFF9042: ds.b 2 ; DATA XREF: sub_86F0A+22r ; sub_8751A+1Aw word_FFFF9044: ds.b 2 ; DATA XREF: sub_86F0A+34r ; sub_8751A+26w word_FFFF9046: ds.b 2 ; DATA XREF: sub_86F0A+4Er ; sub_8751A+32w word_FFFF9048: ds.b 2 ; DATA XREF: sub_86F0A+6Ar ; sub_8751A+3Ew word_FFFF904A: ds.b 2 ; DATA XREF: sub_86F0A+8Ar ; sub_8751A+4Aw byte_FFFF904C: ds.b 1 ; DATA XREF: DoLoopB:loc_2A23Aw byte_FFFF904D: ds.b 1 ; DATA XREF: DoLoopC:loc_2A638w byte_FFFF904E: ds.b 1 ; DATA XREF: DoLoopF+5EEw DoLoopG+F6w ... byte_FFFF904F: ds.b 1 ; DATA XREF: sub_282C4+B6w ; sub_282C4+ECw ... word_FFFF9050: ds.b 2 ; DATA XREF: sub_20718+Ar ; sub_20718:loc_2078Cr ... ThrottleArea2: ds.b 2 ; DATA XREF: sub_222F6r ; sub_2340C:loc_23E14w ... ThrottleArea3: ds.b 2 ; DATA XREF: sub_20D54:loc_20E56r ; sub_21094+A4r ... ThrottleArea1: ds.b 2 ; DATA XREF: sub_2132C+68r ; sub_2340C+862w ... DBW_Desired_Throttle_Area?__OrThrottleMode?:ds.b 2 ; DATA XREF: sub_2340C+996w ; sub_35D1C:loc_35F84r ... word_FFFF905A: ds.b 2 ; DATA XREF: sub_2340C+952w ; OS2:GetPid_FC41r ... word_FFFF905C: ds.b 2 ; DATA XREF: sub_2340C+882w ; sub_2340C+8F4w ... byte_FFFF905E: ds.b 1 ; DATA XREF: InitializeThrottleAreaStuff+86w ; sub_242EE:loc_24326w ... DBW_Mode?_1: ds.b 1 ; DATA XREF: sub_2340C+A0Cw ; sub_2340C+A26r ... byte_FFFF9060: ds.b 1 ; DATA XREF: sub_20D54+2C2r ; sub_21094+236r ... byte_FFFF9061: ds.b 1 ; DATA XREF: sub_229DE+1C2r ; sub_229DE:loc_22BBEr ... byte_FFFF9062: ds.b 1 ; DATA XREF: sub_229DE:loc_22B98r ; sub_229DE+1CAr ... byte_FFFF9063: ds.b 1 ; DATA XREF: sub_2340C+28w ; sub_2340C+36w ... Dbw_Model?_2: ds.b 1 ; DATA XREF: sub_2340C+6ACw ; sub_2340C+744w ... ds.b 1 word_FFFF9066: ds.b 2 ; DATA XREF: sub_2340C+9E2w ; sub_2340C:loc_23DF4w ... word_FFFF9068: ds.b 2 ; DATA XREF: sub_2340C:loc_23F7Er ; sub_2340C+B8Ar ... word_FFFF906A: ds.b 2 ; DATA XREF: sub_2340C+200w word_FFFF906C: ds.b 2 ; DATA XREF: sub_2340C+20Aw word_FFFF906E: ds.b 2 ; DATA XREF: sub_2340C+218w word_FFFF9070: ds.b 2 ; DATA XREF: sub_2340C+226w word_FFFF9072: ds.b 2 ; DATA XREF: sub_2340C+230w ; sub_2340C:loc_23CC0r word_FFFF9074: ds.b 2 ; DATA XREF: sub_2340C+23Aw ; sub_2340C:loc_23D28r word_FFFF9076: ds.b 2 ; DATA XREF: sub_2340C+244w ; sub_2340C:loc_23D04r word_FFFF9078: ds.b 2 ; DATA XREF: sub_2340C+24Ew ; sub_2340C+892r ... word_FFFF907A: ds.b 2 ; DATA XREF: sub_2340C+256w word_FFFF907C: ds.b 2 ; DATA XREF: sub_2340C+25Aw ; sub_2340C:loc_23F44r word_FFFF907E: ds.b 2 ; DATA XREF: sub_2340C+264w ; sub_2340C+B4Ar word_FFFF9080: ds.b 2 ; DATA XREF: sub_2340C+26Cw ; sub_2340C:loc_2382Ar ... byte_FFFF9082: ds.b 1 ; DATA XREF: sub_2340C+354w ; sub_2340C:loc_23768w ... byte_FFFF9083: ds.b 1 ; DATA XREF: sub_2340C:loc_236BEw ; sub_2340C+2BEw ... byte_FFFF9084: ds.b 1 ; DATA XREF: sub_2340C+276w ; sub_2340C+282w ... byte_FFFF9085: ds.b 1 ; DATA XREF: sub_2340C+270w ; sub_2340C:loc_2394Er ... IdleLearningAmount?:ds.b 2 ; DATA XREF: sub_2340C+9BAw ; sub_2340C+9CEr DBW_Idle_OpeningPercent:ds.b 2 ; DATA XREF: sub_2340C+67Cw ; sub_2340C:loc_23A94w ... word_FFFF908A: ds.b 2 ; DATA XREF: sub_2340C+A7Ew ; sub_2340C+A9Cr ... word_FFFF908C: ds.b 2 ; DATA XREF: sub_2340C+AA0r ; sub_2340C+AAAr ... word_FFFF908E: ds.b 2 ; DATA XREF: sub_2340C+A88r ; sub_2340C+AAEr ... word_FFFF9090: ds.b 2 ; DATA XREF: sub_2340C+A92r ; sub_2340C+ADAr ... word_FFFF9092: ds.b 2 ; DATA XREF: sub_2340C:loc_23572w word_FFFF9094: ds.b 2 ; DATA XREF: sub_2340C:loc_2343Cw word_FFFF9096: ds.b 2 ; DATA XREF: sub_2340C+A8r ; sub_2340C:loc_234E8w word_FFFF9098: ds.b 2 ; DATA XREF: sub_2340C+F4r ; sub_2340C:loc_23534w word_FFFF909A: ds.b 2 ; DATA XREF: sub_2340C+182w word_FFFF909C: ds.b 2 ; DATA XREF: sub_2340C:loc_235FCw word_FFFF909E: ds.b 2 ; DATA XREF: sub_2340C:loc_2346Ew word_FFFF90A0: ds.b 2 ; DATA XREF: sub_2340C:loc_234A0w byte_FFFF90A2: ds.b 1 ; DATA XREF: sub_2340C+5Aw ; sub_2340C+68w ... byte_FFFF90A3: ds.b 1 ; DATA XREF: sub_2340C+BB4r ; sub_2340C:loc_23FCCw ... byte_FFFF90A4: ds.b 1 ; DATA XREF: sub_2340C+AA6w ; sub_2340C+ACCw ... byte_FFFF90A5: ds.b 1 ; DATA XREF: sub_2340C+17Cr ; sub_2340C:loc_235D6w ThrottleArea_MainVar?:ds.b 2 ; DATA XREF: sub_2340C+6A8w ; sub_2340C+73Cw ... dword_FFFF90A8: ds.b 4 ; DATA XREF: sub_3F6FE+66r ; sub_49382+24w dword_FFFF90AC: ds.b 4 ; DATA XREF: sub_3F6FE+74r ; sub_49382+68w dword_FFFF90B0: ds.b 4 ; DATA XREF: sub_3F6FE+82r ; sub_49382+A0w dword_FFFF90B4: ds.b 4 ; DATA XREF: sub_3F6FE+90r ; sub_49382+F0w dword_FFFF90B8: ds.b 4 ; DATA XREF: sub_3F6FE+9Er ; sub_49382+128w byte_FFFF90BC: ds.b 1 ; DATA XREF: sub_3E4F2:loc_3E530r ; sub_45F3A+2C8r ... byte_FFFF90BD: ds.b 1 ; DATA XREF: sub_3E4F2+8r ; sub_47DA2+822w ... word_FFFF90BE: ds.b 2 ; DATA XREF: sub_45F3A:loc_46746w ; sub_47DA2+19Ew byte_FFFF90C0: ds.b 1 ; DATA XREF: sub_47DA2:loc_47FF6w ; sub_47DA2+268w ... byte_FFFF90C1: ds.b 1 ; DATA XREF: OS2:00048EC0w ; OS2:loc_48ED6r ... word_FFFF90C2: ds.b 2 ; DATA XREF: sub_47DA2:loc_4823Ew word_FFFF90C4: ds.b 2 ; DATA XREF: sub_47DA2+4A0w byte_FFFF90C6: ds.b 1 ; DATA XREF: sub_2BA40+164r ; sub_2BA40+1A6r ... byte_FFFF90C7: ds.b 1 ; DATA XREF: sub_2BA40+17Er ; sub_2BA40+1BAr ... byte_FFFF90C8: ds.b 1 ; DATA XREF: sub_2BA40+158r ; sub_2BA40:loc_2BBCCr ... byte_FFFF90C9: ds.b 1 ; DATA XREF: sub_2BA40:loc_2BBB8r ; sub_2BA40:loc_2BBEEr ... byte_FFFF90CA: ds.b 1 ; DATA XREF: sub_2BA40+7DEw ; sub_45F3A+6F0r ... byte_FFFF90CB: ds.b 1 ; DATA XREF: OS2:00048FF0w ; OS2:loc_48FF6w ... byte_FFFF90CC: ds.b 1 ; DATA XREF: sub_3E4F2+330r ; sub_47DA2+816w ... byte_FFFF90CD: ds.b 1 ; DATA XREF: OS2:0004911Ew ; sub_83986+2BEr ... byte_FFFF90CE: ds.b 1 ; DATA XREF: sub_2BA40+192r ; OS2:00048A76w ... byte_FFFF90CF: ds.b 1 ; DATA XREF: sub_2BA40:loc_2C218r ; sub_2BA40+7E4w ... byte_FFFF90D0: ds.b 1 ; DATA XREF: sub_2BA40+1B4r ; OS2:00048AAAw ... byte_FFFF90D1: ds.b 1 ; DATA XREF: sub_2D8D6:loc_2D956r ; OS2:00048AD8w ... byte_FFFF90D2: ds.b 1 ; DATA XREF: OS2:00048AC2w ; OS2:loc_4A448w ... byte_FFFF90D3: ds.b 1 ; DATA XREF: OS2:00048B2Aw ; OS2:loc_48B32w ... byte_FFFF90D4: ds.b 1 ; DATA XREF: OS2:00048B88w ; OS2:loc_48B8Ew ... byte_FFFF90D5: ds.b 1 ; DATA XREF: sub_24716:loc_26188r ; OS2:00048B9Aw ... byte_FFFF90D6: ds.b 1 ; DATA XREF: sub_243A8+ACr ; sub_243A8+142r ... byte_FFFF90D7: ds.b 1 ; DATA XREF: sub_24716+ACEr ; sub_45F3A+D6r ... byte_FFFF90D8: ds.b 1 ; DATA XREF: sub_47DA2+7F4w ; OS2:00048B72w byte_FFFF90D9: ds.b 1 ; DATA XREF: OS2:00048C98w ; OS2:loc_48CA0w byte_FFFF90DA: ds.b 1 ; DATA XREF: OS2:00048CACw ; OS2:loc_48CB4w byte_FFFF90DB: ds.b 1 ; DATA XREF: sub_45F0A+28w ; sub_47DA2+C12w ... byte_FFFF90DC: ds.b 1 ; DATA XREF: sub_45F3A+134Er ; sub_45F3A:loc_4728Er ... byte_FFFF90DD: ds.b 1 ; DATA XREF: sub_47DA2+C16w ; OS2:loc_48F0Aw ... byte_FFFF90DE: ds.b 1 ; DATA XREF: sub_47DA2+C0Ew ; OS2:00048F28w ... byte_FFFF90DF: ds.b 1 ; DATA XREF: OS2:00048F78w ; OS2:loc_48F80w ... byte_FFFF90E0: ds.b 1 ; DATA XREF: OS2:000490A0w byte_FFFF90E1: ds.b 1 ; DATA XREF: sub_47DA2+7FCw ; OS2:00049098w ... byte_FFFF90E2: ds.b 1 ; DATA XREF: OS2:0004909Cw ; sub_84AB0+230r ... byte_FFFF90E3: ds.b 1 ; DATA XREF: sub_2178:loc_21B2w ; sub_45F3A+64Ar ... ds.b 1 byte_FFFF90E5: ds.b 1 ; DATA XREF: OS2:00048BDEw ; OS2:0004A46Cw ... byte_FFFF90E6: ds.b 1 ; DATA XREF: sub_242EE+28r ; sub_24716+1066r ... byte_FFFF90E7: ds.b 1 ; DATA XREF: sub_242EE:loc_24310r ; sub_24716+1060r ... byte_FFFF90E8: ds.b 1 ; DATA XREF: sub_4A3D6+56w ds.b 1 word_FFFF90EA: ds.b 2 ; DATA XREF: sub_24716+172Cr ; sub_24716+174Er ... word_FFFF90EC: ds.b 2 ; DATA XREF: OS2:loc_48B60w ; sub_6E81E+D2r byte_FFFF90EE: ds.b 1 ; DATA XREF: OS2:GetPid_11E7r ; OS2:00048BB8w ... byte_FFFF90EF: ds.b 1 ; DATA XREF: OS2:00049084w ; sub_80B94+8r byte_FFFF90F0: ds.b 1 ; DATA XREF: OS2:00049072w ; OS2:loc_4907Aw ... ds.b 1 word_FFFF90F2: ds.b 2 ; DATA XREF: sub_47DA2:loc_485CEw ; OS2:000490BCw ... byte_FFFF90F4: ds.b 1 ; DATA XREF: sub_242EEr OS2:00048EAEw ... byte_FFFF90F5: ds.b 1 ; DATA XREF: sub_242EE+4r ; OS2:00048EC8w ... byte_FFFF90F6: ds.b 1 ; DATA XREF: OS2:00048DA0w ; OS2:loc_4A48Aw ... byte_FFFF90F7: ds.b 1 ; DATA XREF: sub_47DA2+806w ; OS2:00048D24w ... byte_FFFF90F8: ds.b 1 ; DATA XREF: sub_24716+170r ; OS2:00048D00w ... byte_FFFF90F9: ds.b 1 ; DATA XREF: sub_24716+176r ; OS2:00048D18w ... byte_FFFF90FA: ds.b 1 ; DATA XREF: OS2:00048DEAw ; OS2:loc_4A4A0w ... byte_FFFF90FB: ds.b 1 ; DATA XREF: OS2:00048E04w ; OS2:0004A4A4w ... word_FFFF90FC: ds.b 2 ; DATA XREF: OS2:loc_48E2Ew ; sub_8465C+16r byte_FFFF90FE: ds.b 1 ; DATA XREF: sub_47DA2+802w ; OS2:00048DB0w ... byte_FFFF90FF: ds.b 1 ; DATA XREF: OS2:0004915Ew ; OS2:loc_49166w ... byte_FFFF9100: ds.b 1 ; DATA XREF: OS2:00049180w ; OS2:loc_49188w ... byte_FFFF9101: ds.b 1 ; DATA XREF: OS2:000491A2w ; OS2:loc_491AAw ... byte_FFFF9102: ds.b 1 ; DATA XREF: OS2:000491C4w ; OS2:loc_491CCw ... byte_FFFF9103: ds.b 1 ; DATA XREF: sub_242EE:loc_2431Cr ; sub_24716:loc_25782r ... byte_FFFF9104: ds.b 1 ; DATA XREF: sub_242EE+32r ; sub_24716+1070r ... byte_FFFF9105: ds.b 1 ; DATA XREF: OS2:00048CC8w ; OS2:loc_4A472w byte_FFFF9106: ds.b 1 ; DATA XREF: OS2:00048CD8w ; OS2:0004A476w byte_FFFF9107: ds.b 1 ; DATA XREF: OS2:00048CE6w byte_FFFF9108: ds.b 1 ; DATA XREF: OS2:00048DD6w ; OS2:0004A49Aw ... ds.b 1 word_FFFF910A: ds.b 2 ; DATA XREF: sub_45F3A+28w ; sub_45F3A+36w ... byte_FFFF910C: ds.b 1 ; DATA XREF: OS2:00048DC6w ; OS2:loc_4A496w ... ds.b 1 word_FFFF910E: ds.b 2 ; DATA XREF: sub_45F3A+A58r ; sub_45F3A+AA0w ... byte_FFFF9110: ds.b 1 ; DATA XREF: sub_45F3A+A48r ; sub_47B78+20Aw ... byte_FFFF9111: ds.b 1 ; DATA XREF: sub_45F3A+A4Er ; sub_45F3A:loc_469E2r ... byte_FFFF9112: ds.b 1 ; DATA XREF: sub_45F3A+730r ; sub_45F3A+76Aw ... byte_FFFF9113: ds.b 1 ; DATA XREF: sub_45F3A:loc_46964r ; sub_45F3A:loc_469C2w ... word_FFFF9114: ds.b 2 ; DATA XREF: sub_45F3A+9AEw dword_FFFF9116: ds.b 4 ; DATA XREF: sub_45F3A+96Ew byte_FFFF911A: ds.b 1 ; DATA XREF: sub_45F3A+159Ar ; sub_45F3A+15E2w ... ds.b 1 word_FFFF911C: ds.b 2 ; DATA XREF: sub_45F3A+C8Cr ; sub_45F3A+CE2w ... byte_FFFF911E: ds.b 1 ; DATA XREF: sub_45F3A+86Cr ; sub_45F3A+8B4w ... byte_FFFF911F: ds.b 1 ; DATA XREF: sub_45F3A:loc_4619Cr ; sub_45F3A+270w ... byte_FFFF9120: ds.b 1 ; DATA XREF: sub_45F3A+8E0r ; sub_45F3A+90Ew ... byte_FFFF9121: ds.b 1 ; DATA XREF: sub_45F3A+17F2r ; sub_45F3A+181Ew ... byte_FFFF9122: ds.b 1 ; DATA XREF: sub_45F3A+1AFEr ; sub_45F3A+1B38w byte_FFFF9123: ds.b 1 ; DATA XREF: sub_45F3A+448r ; sub_45F3A+48Ew ... byte_FFFF9124: ds.b 1 ; DATA XREF: sub_45F3A+1BEr ; sub_45F3A+1EAw ... byte_FFFF9125: ds.b 1 ; DATA XREF: sub_45F3A+1A24r ; sub_45F3A+1A50w ... byte_FFFF9126: ds.b 1 ; DATA XREF: sub_45F3A+91Cr ; sub_45F3A+950w ... byte_FFFF9127: ds.b 1 ; DATA XREF: sub_45F3A+FDEr ; sub_45F3A+1018w ... byte_FFFF9128: ds.b 1 ; DATA XREF: sub_45F3A:loc_46B1Cr ; sub_45F3A:loc_46B84w ... byte_FFFF9129: ds.b 1 ; DATA XREF: sub_45F3A+F74r ; sub_45F3A+F9Cw ... byte_FFFF912A: ds.b 1 ; DATA XREF: sub_45F3A+FA6r ; sub_45F3A+FCEw ... ds.b 1 word_FFFF912C: ds.b 2 ; DATA XREF: sub_45F3A+A06r ; sub_45F3A+A1Ew byte_FFFF912E: ds.b 1 ; DATA XREF: sub_45F3A:loc_46190r ; sub_45F3A:loc_461DCr ... byte_FFFF912F: ds.b 1 ; DATA XREF: sub_45F3A+B14r ; sub_45F3A+B4Ew ... byte_FFFF9130: ds.b 1 ; DATA XREF: sub_45F3A+191Cr ; sub_45F3A+1948w ... byte_FFFF9131: ds.b 1 ; DATA XREF: sub_45F3A+19A0r ; sub_45F3A+19DAw ... byte_FFFF9132: ds.b 1 ; DATA XREF: sub_45F3A+1958r ; sub_45F3A+1992w ... byte_FFFF9133: ds.b 1 ; DATA XREF: sub_45F3A:loc_46418r ; sub_45F3A:loc_46464w ... byte_FFFF9134: ds.b 1 ; DATA XREF: sub_45F3A+1B40r ; sub_45F3A+1B6Cw ... byte_FFFF9135: ds.b 1 ; DATA XREF: sub_45F3A+19ECw ; sub_47DA2+692w byte_FFFF9136: ds.b 1 ; DATA XREF: sub_45F3A+19F0r ; sub_45F3A+1A1Cw ... byte_FFFF9137: ds.b 1 ; DATA XREF: sub_45F3A+B56r ; sub_45F3A+B82w ... byte_FFFF9138: ds.b 1 ; DATA XREF: sub_45F3A+49Cr ; sub_45F3A+4C8w ... byte_FFFF9139: ds.b 1 ; DATA XREF: sub_45F3A+ECAw ; sub_45F3A+EDCw ... byte_FFFF913A: ds.b 1 ; DATA XREF: sub_45F3A+1AB6r ; sub_45F3A+1AF0w ... byte_FFFF913B: ds.b 1 ; DATA XREF: sub_45F3A+18E8r ; sub_45F3A+1914w ... byte_FFFF913C: ds.b 1 ; DATA XREF: sub_45F3A+B90r ; sub_45F3A+BBCw ... byte_FFFF913D: ds.b 1 ; DATA XREF: sub_45F3A+10FAr ; sub_47B78+Aw ... byte_FFFF913E: ds.b 1 ; DATA XREF: sub_45F3A+862r ; sub_47B78+132w ... byte_FFFF913F: ds.b 1 ; DATA XREF: sub_45F3A+11BCr ; sub_47B78+1B0w ... byte_FFFF9140: ds.b 1 ; DATA XREF: sub_45F3A+1264r ; sub_47B78+1CCw ... byte_FFFF9141: ds.b 1 ; DATA XREF: sub_45F3A+57Ar ; sub_47B78+EEw ... byte_FFFF9142: ds.b 1 ; DATA XREF: sub_45F3A+13D0r ; sub_45F3A:loc_47352r ... byte_FFFF9143: ds.b 1 ; DATA XREF: sub_45F3A+C9Cr ; sub_45F3A+CB4r ... byte_FFFF9144: ds.b 1 ; DATA XREF: sub_45F3A+972r ; sub_47B78+104w ... byte_FFFF9145: ds.b 1 ; DATA XREF: sub_45F3A+976r ; sub_45F3A+9D4w ... byte_FFFF9146: ds.b 1 ; DATA XREF: sub_45F3A+122r ; sub_45F3A:loc_46080r ... byte_FFFF9147: ds.b 1 ; DATA XREF: sub_47AB4+3Cr ; sub_47B78+56w ... byte_FFFF9148: ds.b 1 ; DATA XREF: sub_47AB4+52r ; sub_47B78+8Aw ... byte_FFFF9149: ds.b 1 ; DATA XREF: sub_47AB4+1Ar ; sub_47B78+D6w ... byte_FFFF914A: ds.b 1 ; DATA XREF: sub_45F3A+E64r ; sub_45F3A+E98w ... byte_FFFF914B: ds.b 1 ; DATA XREF: sub_45F3A+1100r ; sub_45F3A:loc_47084r ... byte_FFFF914C: ds.b 1 ; DATA XREF: sub_45F3A+866r ; sub_45F3A+8BEw ... byte_FFFF914D: ds.b 1 ; DATA XREF: sub_45F3A+11C0r ; sub_45F3A+1200w ... byte_FFFF914E: ds.b 1 ; DATA XREF: sub_45F3A+1268r ; sub_45F3A+12EEw ... byte_FFFF914F: ds.b 1 ; DATA XREF: sub_45F3A+57Er ; sub_45F3A+610w ... byte_FFFF9150: ds.b 1 ; DATA XREF: sub_45F3A+13D6r ; sub_45F3A+141Er ... byte_FFFF9151: ds.b 1 ; DATA XREF: sub_45F3A+14D2r ; sub_45F3A+1590w ... byte_FFFF9152: ds.b 1 ; DATA XREF: sub_45F3A+CA0r ; sub_45F3A+CE8w ... byte_FFFF9153: ds.b 1 ; DATA XREF: sub_45F3A+126r ; sub_45F3A+178w ... byte_FFFF9154: ds.b 1 ; DATA XREF: sub_45F3A+DF6r ; sub_45F3A+E30w ... byte_FFFF9155: ds.b 1 ; DATA XREF: sub_45F3A+1882r ; sub_45F3A+18D4w ... byte_FFFF9156: ds.b 1 ; DATA XREF: sub_45F3A:loc_46E28w ; sub_45F3A:loc_46E30w ... byte_FFFF9157: ds.b 1 ; DATA XREF: sub_45F3A+F00r ; sub_45F3A+F2Ew ... byte_FFFF9158: ds.b 1 ; DATA XREF: sub_45F3A+7AEr ; sub_45F3A+802w ... byte_FFFF9159: ds.b 1 ; DATA XREF: sub_45F3A+1058r ; sub_45F3A+10AEw ... byte_FFFF915A: ds.b 1 ; DATA XREF: sub_45F3A+DE8r ; sub_45F3A+EE8r ... byte_FFFF915B: ds.b 1 ; DATA XREF: sub_45F3A+187Er ; sub_47B78+180w ... byte_FFFF915C: ds.b 1 ; DATA XREF: sub_45F3A:loc_46E1Cr ; sub_47B78+14Cw ... byte_FFFF915D: ds.b 1 ; DATA XREF: sub_45F3A+7AAr ; sub_45F3A+1054r ... byte_FFFF915E: ds.b 1 ; DATA XREF: OS2:00048FBEw ; OS2:00048FC4r byte_FFFF915F: ds.b 1 ; DATA XREF: OS2:00048BF2w ; OS2:00048BFAr ... byte_FFFF9160: ds.b 1 ; DATA XREF: sub_45F3A+61Ew ; sub_45F3A+628r ... byte_FFFF9161: ds.b 1 ; DATA XREF: sub_45F3A+624r ; sub_45F3A+63Cw ... byte_FFFF9162: ds.b 1 ; DATA XREF: OS2:00048F44w ; OS2:00048F4Ar byte_FFFF9163: ds.b 1 ; DATA XREF: sub_45F3A+F06r ; sub_45F3A+F14w ... byte_FFFF9164: ds.b 1 ; DATA XREF: sub_45F3A+E16w ; sub_47DA2+21Cw byte_FFFF9165: ds.b 1 ; DATA XREF: sub_47DA2+36Cw byte_FFFF9166: ds.b 1 ; DATA XREF: sub_45F3A+DDEw ; sub_45F3A+DEEw ... byte_FFFF9167: ds.b 1 ; DATA XREF: sub_45F3A+DFCr ; sub_45F3A+E1Aw ... word_FFFF9168: ds.b 2 ; DATA XREF: sub_45F3A+11CAr ; sub_45F3A+120Cw ... word_FFFF916A: ds.b 2 ; DATA XREF: sub_45F3A+110Ar ; sub_45F3A+1142w ... word_FFFF916C: ds.b 2 ; DATA XREF: sub_45F3A+188Ar ; sub_45F3A+18CAw ... word_FFFF916E: ds.b 2 ; DATA XREF: sub_45F3A+42Cr ; sub_45F3A+480w ... word_FFFF9170: ds.b 2 ; DATA XREF: sub_45F3A+7B8r ; sub_45F3A+7CEr ... word_FFFF9172: ds.b 2 ; DATA XREF: sub_45F3A+1062r ; sub_45F3A+1078r ... word_FFFF9174: ds.b 2 ; DATA XREF: sub_45F3A+590r ; sub_45F3A+5E8w ... byte_FFFF9176: ds.b 1 ; DATA XREF: sub_45F3A+1A6Cr ; sub_45F3A+1AA6w ... byte_FFFF9177: ds.b 1 ; DATA XREF: OS2:00048B3Cw ; OS2:00048B44r byte_FFFF9178: ds.b 1 ; DATA XREF: OS2:00048AE8w ; OS2:00048AF0r byte_FFFF9179: ds.b 1 ; DATA XREF: OS2:00048BB4w word_FFFF917A: ds.b 2 ; DATA XREF: sub_45F3A+166Ar ; sub_45F3A+169Ew ... word_FFFF917C: ds.b 2 ; DATA XREF: sub_45F3A+9ECr ; sub_45F3A+A24w word_FFFF917E: ds.b 2 ; DATA XREF: sub_45F3A:loc_4664Ar ; sub_45F3A+76Ew ... word_FFFF9180: ds.b 2 ; DATA XREF: sub_45F3A:loc_46BACr ; sub_45F3A+CDCw ... word_FFFF9182: ds.b 2 ; DATA XREF: sub_45F3A+84Cr ; sub_45F3A+8B8w ... word_FFFF9184: ds.b 2 ; DATA XREF: sub_45F3A:loc_467FCr ; sub_45F3A+908w ... word_FFFF9186: ds.b 2 ; DATA XREF: sub_45F3A+11A6r ; sub_45F3A+1212w ... word_FFFF9188: ds.b 2 ; DATA XREF: sub_45F3A+412r ; sub_45F3A+492w ... word_FFFF918A: ds.b 2 ; DATA XREF: sub_45F3A+EA4r ; sub_45F3A+F32w ... word_FFFF918C: ds.b 2 ; DATA XREF: sub_45F3A:loc_47186r ; sub_45F3A+12F2w ... word_FFFF918E: ds.b 2 ; DATA XREF: sub_45F3A:loc_4649Cr ; sub_45F3A+60Aw ... word_FFFF9190: ds.b 2 ; DATA XREF: sub_45F3A:loc_46196w ; sub_45F3A+2A8r ... word_FFFF9192: ds.b 2 ; DATA XREF: sub_47DA2+AC0w ; sub_47DA2:loc_48902w ... word_FFFF9194: ds.b 2 ; DATA XREF: sub_45F3A:loc_472EAr ; sub_45F3A+146Aw ... word_FFFF9196: ds.b 2 ; DATA XREF: sub_45F3A+A30r ; sub_45F3A:loc_46A3Aw word_FFFF9198: ds.b 2 ; DATA XREF: sub_45F3A+6E8w ; sub_47DA2+AA8w word_FFFF919A: ds.b 2 ; DATA XREF: sub_45F3A:loc_473E6r ; sub_45F3A+158Aw ... word_FFFF919C: ds.b 2 ; DATA XREF: sub_45F3A:loc_4701Er ; sub_45F3A:loc_470A6w ... word_FFFF919E: ds.b 2 ; DATA XREF: sub_45F3A+1324r ; sub_45F3A+1386w ... word_FFFF91A0: ds.b 2 ; DATA XREF: sub_45F3A+FCr ; sub_45F3A+16Ew ... word_FFFF91A2: ds.b 2 ; DATA XREF: sub_45F3A+D04r ; sub_45F3A:loc_46C9Ew ... word_FFFF91A4: ds.b 2 ; DATA XREF: sub_45F3A+300w ; sub_47DA2+92w word_FFFF91A6: ds.b 2 ; DATA XREF: sub_45F3A:loc_46B88r ; sub_45F3A+C6Cw ... word_FFFF91A8: ds.b 2 ; DATA XREF: sub_45F3A:loc_460B6r ; sub_45F3A+1B0w word_FFFF91AA: ds.b 2 ; DATA XREF: sub_45F3A+DC0r ; sub_45F3A+E2Aw ... word_FFFF91AC: ds.b 2 ; DATA XREF: sub_45F3A+812r ; sub_45F3A+83Aw ... word_FFFF91AE: ds.b 2 ; DATA XREF: sub_45F3A:loc_4688Er ; sub_45F3A+9CEw ... word_FFFF91B0: ds.b 2 ; DATA XREF: sub_45F3A+1866r ; sub_45F3A+18CEw ... word_FFFF91B2: ds.b 2 ; DATA XREF: sub_45F3A+794r ; sub_45F3A+806w ... word_FFFF91B4: ds.b 2 ; DATA XREF: sub_45F3A+103Cr ; sub_45F3A+10B2w ... word_FFFF91B6: ds.b 2 ; DATA XREF: sub_45F3A:loc_47522r ; sub_45F3A+1638w ... word_FFFF91B8: ds.b 2 ; DATA XREF: sub_45F3A+16C0r ; sub_45F3A+16F8w ... byte_FFFF91BA: ds.b 1 ; DATA XREF: sub_45F3A:loc_47256w ; sub_47DA2+354w ds.b 1 word_FFFF91BC: ds.b 2 ; DATA XREF: sub_45F3A+133Er ; sub_45F3A+1380w ... dword_FFFF91BE: ds.b 4 ; DATA XREF: sub_45F3A+1272r ; sub_45F3A+1288w ... word_FFFF91C2: ds.b 2 ; DATA XREF: sub_45F3A+1684r ; sub_45F3A+1698w ... word_FFFF91C4: ds.b 2 ; DATA XREF: sub_45F3A+68Cr ; sub_45F3A+6E4w word_FFFF91C6: ds.b 2 ; DATA XREF: sub_45F3A+13E0r ; sub_45F3A:loc_4733Cw ... word_FFFF91C8: ds.b 2 ; DATA XREF: sub_45F3A+14E0r ; sub_45F3A+150Aw ... word_FFFF91CA: ds.b 2 ; DATA XREF: sub_45F3A+16DAr ; sub_45F3A+16F2w ... byte_FFFF91CC: ds.b 1 ; DATA XREF: sub_45F3A+198r ; sub_47DA2+4D4r ... byte_FFFF91CD: ds.b 1 ; DATA XREF: sub_45F3A+19Cr ; sub_45F3A+1B6w ... word_FFFF91CE: ds.b 2 ; DATA XREF: sub_45F3A+828r ; sub_45F3A+840w ... byte_FFFF91D0: ds.b 1 ; DATA XREF: OS2:000490DEw ; OS2:000490FAr byte_FFFF91D1: ds.b 1 ; DATA XREF: OS2:000490E4w byte_FFFF91D2: ds.b 1 ; DATA XREF: OS2:000490EAw byte_FFFF91D3: ds.b 1 ; DATA XREF: sub_47DA2+810w ; OS2:00049232w byte_FFFF91D4: ds.b 1 ; DATA XREF: sub_45F3A:loc_46160r ; sub_45F3A+2BEw ... byte_FFFF91D5: ds.b 1 ; DATA XREF: sub_45F3A+2FAr ; sub_45F3A+306w ... dword_FFFF91D6: ds.b 4 ; DATA XREF: OS2:00048AA4w ; OS2:00048ACCw ... byte_FFFF91DA: ds.b 1 ; DATA XREF: sub_45F3A:loc_462F4r ; sub_45F3A+D42r ... byte_FFFF91DB: ds.b 1 ; DATA XREF: sub_45F3A:loc_46302r ; sub_45F3A:loc_46C8Er ... byte_FFFF91DC: ds.b 1 ; DATA XREF: sub_45F3A+3CCr ; sub_45F3A+D58r ... byte_FFFF91DD: ds.b 1 ; DATA XREF: sub_45F3A+36Cr ; sub_45F3A+3A6r ... byte_FFFF91DE: ds.b 1 ; DATA XREF: sub_45F3A+374r ; sub_45F3A+382r ... byte_FFFF91DF: ds.b 1 ; DATA XREF: sub_45F3A:loc_4627Cw ; sub_45F3A+390r ... byte_FFFF91E0: ds.b 1 ; DATA XREF: sub_45F3A+118r ; sub_47DA2+50Er ... byte_FFFF91E1: ds.b 1 ; DATA XREF: sub_45F3A+11Cr ; sub_45F3A+174w ... byte_FFFF91E2: ds.b 1 ; DATA XREF: sub_45F3A+1608r ; sub_45F3A+1634w byte_FFFF91E3: ds.b 1 ; DATA XREF: sub_45F3A:loc_462B4r ; OS2:00048E54w byte_FFFF91E4: ds.b 1 ; DATA XREF: OS2:00048E68w byte_FFFF91E5: ds.b 1 ; DATA XREF: sub_45F3A+368r ; OS2:00048E7Cw byte_FFFF91E6: ds.b 1 ; DATA XREF: sub_45F3A+D48r ; OS2:00048E90w byte_FFFF91E7: ds.b 1 ; DATA XREF: OS2:00048E08w ; OS2:00048E10r byte_FFFF91E8: ds.b 1 ; DATA XREF: sub_45F3A+D78w ; sub_47DA2+2D2w ds.b 1 word_FFFF91EA: ds.b 2 ; DATA XREF: sub_45F3A+D7Cr ; sub_45F3A+DB4w ... word_FFFF91EC: ds.b 2 ; DATA XREF: sub_45F3A+D94r ; sub_45F3A+DB0w ... byte_FFFF91EE: ds.b 1 ; DATA XREF: sub_45F3A+170Aw ; sub_45F3A+171Aw ... byte_FFFF91EF: ds.b 1 ; DATA XREF: sub_45F3A+1722r ; sub_45F3A+174Ew ... byte_FFFF91F0: ds.b 1 ; DATA XREF: sub_45F3A+175Ew ; sub_45F3A+176Ew ... byte_FFFF91F1: ds.b 1 ; DATA XREF: sub_45F3A+1776r ; sub_45F3A+17A2w ... byte_FFFF91F2: ds.b 1 ; DATA XREF: sub_45F3A+17B0r ; sub_45F3A+17EAw ... byte_FFFF91F3: ds.b 1 ; DATA XREF: DoLoopB+A0r ; DoLoopB:loc_29F76r ... word_FFFF91F4: ds.b 2 ; DATA XREF: sub_77816+1Cr word_FFFF91F6: ds.b 2 ; DATA XREF: sub_77816+22r unk_FFFF91F8: ds.b 1 ; DATA XREF: sub_77816+28o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF9250: ds.b 2 ; DATA XREF: sub_77816+38r word_FFFF9252: ds.b 2 ; DATA XREF: sub_77816+3Er ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF927C: ds.b 1 ; DATA XREF: sub_27338+38o ds.b 1 ds.b 1 ds.b 1 unk_FFFF9280: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9284: ds.b 1 ds.b 1 ds.b 1 ds.b 1 dword_FFFF9288: ds.b 4 ; DATA XREF: sub_27128+C6r ; sub_27338+5Er ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 dword_FFFF92C8: ds.b 4 ; DATA XREF: sub_27338+32w byte_FFFF92CC: ds.b 1 ; DATA XREF: sub_27258+2Ew ; DoLoopB+284r ... byte_FFFF92CD: ds.b 1 ; DATA XREF: TenSecondDelayIsInHere+56w ; TenSecondDelayIsInHere:loc_3FC9Cw ... byte_FFFF92CE: ds.b 1 ; DATA XREF: sub_27338+68w ; sub_282C4:loc_2867Ar ... ds.b 1 word_FFFF92D0: ds.b 2 ; DATA XREF: sub_27338+64w ; DoLoopG+42Ar ... word_FFFF92D2: ds.b 2 ; DATA XREF: sub_27338+74w ; DoLoopG+3C6r ... dword_FFFF92D4: ds.b 4 ; DATA XREF: sub_27338+78w ; DoLoopG+3EAr ... byte_FFFF92D8: ds.b 1 ; DATA XREF: sub_27338+6Cw ; DoLoopG+3DEr ... byte_FFFF92D9: ds.b 1 ; DATA XREF: sub_27338+70w ; DoLoopG+3F6w ... word_FFFF92DA: ds.b 2 ; DATA XREF: sub_27128+86r ; sub_27128+8Aw ... dword_FFFF92DC: ds.b 4 ; DATA XREF: sub_27128+30r ; sub_27128+4Cw ... word_FFFF92E0: ds.b 2 ; DATA XREF: sub_27128+8r ; sub_27128+1Er ... byte_FFFF92E2: ds.b 1 ; DATA XREF: sub_27128+3Cw ; sub_27128+A8w ... byte_FFFF92E3: ds.b 1 ; DATA XREF: sub_27128+24r ; sub_27128+98r ... byte_FFFF92E4: ds.b 1 ; DATA XREF: sub_27128+40w ; sub_27128:loc_2716Er ... ds.b 1 dword_FFFF92E6: ds.b 4 ; DATA XREF: sub_27258+14r ; sub_27258:loc_2728Cw ... byte_FFFF92EA: ds.b 1 ; DATA XREF: sub_27258+1Ar ; sub_27258+20w ... ds.b 1 dword_FFFF92EC: ds.b 4 ; DATA XREF: sub_27258+46w ; sub_27258+72r ... byte_FFFF92F0: ds.b 1 ; DATA XREF: sub_27258+B2w ; sub_27258:loc_27320r byte_FFFF92F1: ds.b 1 ; DATA XREF: sub_27128+100w ; sub_27128:loc_2723Er ... dword_FFFF92F2: ds.b 4 ; DATA XREF: sub_27258+10r ; sub_27258+52w ... unk_FFFF92F6: ds.b 1 ds.b 1 unk_FFFF92F8: ds.b 1 ds.b 1 byte_FFFF92FA: ds.b 1 ; DATA XREF: sub_32F54+82r ; sub_32F54:loc_33026r ds.b 1 byte_FFFF92FC: ds.b 1 ; DATA XREF: sub_32F54+8Ar ; sub_32F54+DAr unk_FFFF92FD: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9302: ds.b 1 ; DATA XREF: sub_67410:loc_67510w ; sub_67410:loc_67518w ... byte_FFFF9303: ds.b 1 ; DATA XREF: sub_67410+24w ; sub_67410:loc_6743Cw ... byte_FFFF9304: ds.b 1 ; DATA XREF: sub_67410:loc_67B0Er ; sub_67410+CBCr ... byte_FFFF9305: ds.b 1 ; DATA XREF: sub_67410:loc_67A92r ; sub_67410:loc_67AFCr ... byte_FFFF9306: ds.b 1 ; DATA XREF: sub_2CC22+15Cr ; sub_2F386:loc_2F4CCr ... byte_FFFF9307: ds.b 1 ; DATA XREF: sub_67410:loc_67B1Cr ; sub_67410+D8Cr ... byte_FFFF9308: ds.b 1 ; DATA XREF: sub_67410:loc_67A82r ; sub_67410+746r ... ds.b 1 word_FFFF930A: ds.b 2 ; DATA XREF: sub_2F386+160r ; sub_67410:loc_68212w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9312: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9316: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF931A: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9320: ds.b 1 ; DATA XREF: sub_67410+7CEr ; sub_67410+13D2w ... byte_FFFF9321: ds.b 1 ; DATA XREF: sub_67360+90w ; sub_67410+68Cr ... word_FFFF9322: ds.b 2 ; DATA XREF: sub_32F54+1E6r ; sub_67360+94w ... ds.b 1 ds.b 1 unk_FFFF9326: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF932A: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF932E: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9332: ds.b 1 ds.b 1 dword_FFFF9334: ds.b 4 ; DATA XREF: sub_67410+1A54w ds.b 1 ds.b 1 unk_FFFF933A: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9340: ds.b 1 ; DATA XREF: sub_67410:loc_6798Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF939A: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF939E: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF93A2: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF93A6: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF93AC: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF93B0: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF93B4: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF93B8: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF93BE: ds.b 2 ; DATA XREF: sub_67410+1A58r ; sub_67410:loc_68E74w ... byte_FFFF93C0: ds.b 1 ; DATA XREF: sub_67410+1ECr ; sub_67410:loc_67608w ... byte_FFFF93C1: ds.b 1 ; DATA XREF: sub_67410+8CEw ; sub_67410+990r ... word_FFFF93C2: ds.b 2 ; DATA XREF: sub_67410+1458w ; sub_67410:loc_6886Er ... byte_FFFF93C4: ds.b 1 ; DATA XREF: sub_67410+BDCw ; sub_67410+C18r ... byte_FFFF93C5: ds.b 1 ; DATA XREF: sub_67410+1E6r ; sub_67410:loc_676A8w dword_FFFF93C6: ds.b 4 ; DATA XREF: sub_67410:loc_6777Cw ; sub_67410+148Er word_FFFF93CA: ds.b 2 ; DATA XREF: sub_67410+318w ; sub_67410+1B16r word_FFFF93CC: ds.b 2 ; DATA XREF: sub_67410+30Aw ; sub_67410:loc_68F58r word_FFFF93CE: ds.b 2 ; DATA XREF: sub_67410+32Cw word_FFFF93D0: ds.b 2 ; DATA XREF: sub_67410+2FAw ; sub_67410+9C4r ... word_FFFF93D2: ds.b 2 ; DATA XREF: sub_67410:loc_677DAw ; sub_67410+146Ar dword_FFFF93D4: ds.b 4 ; DATA XREF: sub_67410+1454w ; sub_67410+1474r ... word_FFFF93D8: ds.b 2 ; DATA XREF: sub_67360+AAw ; sub_67410+DC2w ... word_FFFF93DA: ds.b 2 ; DATA XREF: sub_67410+DAAw ; sub_67410+DD0r ... byte_FFFF93DC: ds.b 1 ; DATA XREF: sub_67410+FB0w ; sub_67410+1182r ... byte_FFFF93DD: ds.b 1 ; DATA XREF: sub_67410+FB4w ; sub_67410+1080r ... byte_FFFF93DE: ds.b 1 ; DATA XREF: sub_67410+FB8w ; sub_67410+FE4r ... byte_FFFF93DF: ds.b 1 ; DATA XREF: sub_67410+FC0w ; sub_67410+1126r ... word_FFFF93E0: ds.b 2 ; DATA XREF: sub_67410+FBCw ; sub_67410+11CCr ... word_FFFF93E2: ds.b 2 ; DATA XREF: sub_67410+FC4w ; sub_67410+10C8r ... byte_FFFF93E4: ds.b 1 ; DATA XREF: sub_67410+FC8w ; sub_67410+1032r ... byte_FFFF93E5: ds.b 1 ; DATA XREF: sub_67410+10w ; sub_67410+434r ... byte_FFFF93E6: ds.b 1 ; DATA XREF: sub_24716+1878r ; sub_24716:loc_25FB6r ... byte_FFFF93E7: ds.b 1 ; DATA XREF: sub_24716+1682r ; sub_24716+1688w ... byte_FFFF93E8: ds.b 1 ; DATA XREF: sub_24716:loc_25E80w ; sub_24716+17C6w ... byte_FFFF93E9: ds.b 1 ; DATA XREF: sub_24716+1924w ; sub_24716:loc_26042w ... byte_FFFF93EA: ds.b 1 ; DATA XREF: sub_24716+A8Ew ; sub_24716+B74w ... byte_FFFF93EB: ds.b 1 ; DATA XREF: sub_2340C:loc_236F8r ; sub_24716+A92w ... ds.b 1 ds.b 1 word_FFFF93EE: ds.b 2 ; DATA XREF: sub_24716+1148w ; sub_24716+122Aw ... byte_FFFF93F0: ds.b 1 ; DATA XREF: sub_24716:loc_25A52w ; sub_316EA+138r byte_FFFF93F1: ds.b 1 ; DATA XREF: sub_24716+748w ; sub_24716+7B8w ... byte_FFFF93F2: ds.b 1 ; DATA XREF: sub_24716+A9Cw ; sub_24716+AB0w ... byte_FFFF93F3: ds.b 1 ; DATA XREF: sub_24716:loc_2475Aw ; sub_24716+902r ... byte_FFFF93F4: ds.b 1 ; DATA XREF: sub_24716:loc_261B6w ; sub_24716:loc_261BEw ... byte_FFFF93F5: ds.b 1 ; DATA XREF: sub_24716+1A48w ; sub_24716+1A6Ew ... byte_FFFF93F6: ds.b 1 ; DATA XREF: sub_2340C+2F0r ; sub_24716+EF0r ... byte_FFFF93F7: ds.b 1 ; DATA XREF: sub_24716:loc_251BAw ; sub_24716:loc_25BC6w ... byte_FFFF93F8: ds.b 1 ; DATA XREF: sub_24716+ABAw ; OS1:00026470w ... byte_FFFF93F9: ds.b 1 ; DATA XREF: sub_24716:loc_2605Ar ; sub_24716:loc_26086w ... word_FFFF93FA: ds.b 2 ; DATA XREF: sub_24716+9E8w ; sub_24716:loc_25106w ... word_FFFF93FC: ds.b 2 ; DATA XREF: sub_2340C+21Cr ; sub_24716:loc_25A66w ... word_FFFF93FE: ds.b 2 ; DATA XREF: sub_2340C+22Ar ; sub_24716+DE2r ... word_FFFF9400: ds.b 2 ; DATA XREF: sub_24716:loc_26128w ; sub_24716:loc_2612Ew ... word_FFFF9402: ds.b 2 ; DATA XREF: sub_24716:loc_25710r ; sub_24716:loc_25732w ... word_FFFF9404: ds.b 2 ; DATA XREF: sub_24716+1130w ; sub_24716:loc_2598Ar ... byte_FFFF9406: ds.b 1 ; DATA XREF: sub_24716:loc_2583Cr ; sub_24716+112Cw ... ds.b 1 word_FFFF9408: ds.b 2 ; DATA XREF: sub_24716:loc_257C0w ; sub_24716:loc_25806w ... byte_FFFF940A: ds.b 1 ; DATA XREF: sub_24716+1882w ; sub_24716:loc_25FACw ... ds.b 1 word_FFFF940C: ds.b 2 ; DATA XREF: sub_24716+F02w ; sub_24716+F0Er ... word_FFFF940E: ds.b 2 ; DATA XREF: sub_24716:loc_2535Cr ; sub_24716+C60w word_FFFF9410: ds.b 2 ; DATA XREF: sub_24716:loc_25DFEr ; sub_24716:loc_25E0Aw ... word_FFFF9412: ds.b 2 ; DATA XREF: sub_24716:loc_26060r ; sub_24716:loc_2606Cw ... word_FFFF9414: ds.b 2 ; DATA XREF: sub_24716+14D0w byte_FFFF9416: ds.b 1 ; DATA XREF: sub_24716+126r ; sub_24716+12Ew ... ds.b 1 word_FFFF9418: ds.b 2 ; DATA XREF: sub_24716+1A78r ; sub_24716:loc_2619Aw ... byte_FFFF941A: ds.b 1 ; DATA XREF: sub_24716+1A44w ; sub_24716+1A62w ... ds.b 1 word_FFFF941C: ds.b 2 ; DATA XREF: sub_24716+1A26r ; sub_24716:loc_26148w ... word_FFFF941E: ds.b 2 ; DATA XREF: sub_24716+1A36w ; sub_24716:loc_26164r ... word_FFFF9420: ds.b 2 ; DATA XREF: sub_24716+15D6w ; sub_24716:loc_25CF6r word_FFFF9422: ds.b 2 ; DATA XREF: sub_24716+71Ew ; sub_24716+766w ... word_FFFF9424: ds.b 2 ; DATA XREF: sub_24716+9D4w ; sub_24716:loc_250F0w ... word_FFFF9426: ds.b 2 ; DATA XREF: sub_24716:loc_247AAw ; sub_24716:loc_24CE2w ... word_FFFF9428: ds.b 2 ; DATA XREF: sub_24716+ED0w word_FFFF942A: ds.b 2 ; DATA XREF: sub_24716+EFCw word_FFFF942C: ds.b 2 ; DATA XREF: sub_24716:loc_252E2w ; sub_24716+BDAr ... word_FFFF942E: ds.b 2 ; DATA XREF: sub_24716+C18w ; sub_24716:loc_25334w ... word_FFFF9430: ds.b 2 ; DATA XREF: sub_24716:loc_25346r ; sub_24716:loc_253D4r ... word_FFFF9432: ds.b 2 ; DATA XREF: sub_24716:loc_25454w ; sub_24716:loc_2545Aw ... dword_FFFF9434: ds.b 4 ; DATA XREF: sub_24716+570w dword_FFFF9438: ds.b 4 ; DATA XREF: sub_24716+574w dword_FFFF943C: ds.b 4 ; DATA XREF: sub_24716+578w dword_FFFF9440: ds.b 4 ; DATA XREF: sub_24716+57Ew dword_FFFF9444: ds.b 4 ; DATA XREF: sub_24716+584w dword_FFFF9448: ds.b 4 ; DATA XREF: sub_24716+58Aw word_FFFF944C: ds.b 2 ; DATA XREF: sub_24716+19ACr ; sub_261CA+A2w ... word_FFFF944E: ds.b 2 ; DATA XREF: sub_24716+F70w ; sub_24716+FD0w ... dword_FFFF9450: ds.b 4 ; DATA XREF: sub_24716+6A2w ; sub_24716+6F2r ... word_FFFF9454: ds.b 2 ; DATA XREF: sub_24716+6DEr unk_FFFF9456: ds.b 1 ; DATA XREF: sub_24716+6A8o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9466: ds.b 1 ; DATA XREF: sub_24716+6ACo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9476: ds.b 1 ; DATA XREF: sub_24716+722r ; sub_24716:loc_24E44w ... byte_FFFF9477: ds.b 1 ; DATA XREF: sub_24716+6CEr ; sub_24716:loc_24DF0w ... word_FFFF9478: ds.b 2 ; DATA XREF: sub_24716:loc_24E52w ; sub_24716:loc_24EACw ... word_FFFF947A: ds.b 2 ; DATA XREF: sub_24716+740w ; sub_24716+7C4w ... byte_FFFF947C: ds.b 1 ; DATA XREF: sub_24716+744w ; sub_24716+7B2r ... byte_FFFF947D: ds.b 1 ; DATA XREF: sub_24716+32w ; sub_24716:loc_24754w ... byte_FFFF947E: ds.b 1 ; DATA XREF: sub_24716:loc_25CD0r ; sub_24716:loc_25D6Aw ... byte_FFFF947F: ds.b 1 ; DATA XREF: sub_24716:loc_25C50r ; sub_24716+15C2w ... word_FFFF9480: ds.b 2 ; DATA XREF: sub_24716+183Cr ; sub_24716:loc_25F5Ew ... word_FFFF9482: ds.b 2 ; DATA XREF: sub_24716:loc_25F42r ; sub_24716:loc_25F4Ew ... word_FFFF9484: ds.b 2 ; DATA XREF: sub_24716+1906r ; sub_24716+1912w byte_FFFF9486: ds.b 1 ; DATA XREF: sub_24716+16DCr ; sub_24716+1872r ... ds.b 1 word_FFFF9488: ds.b 2 ; DATA XREF: sub_24716+185Er ; sub_24716:loc_26024w byte_FFFF948A: ds.b 1 ; DATA XREF: sub_24716+1962r ; sub_24716+1992w byte_FFFF948B: ds.b 1 ; DATA XREF: sub_24716+1A06r ; sub_261CA+132w ... byte_FFFF948C: ds.b 1 ; DATA XREF: sub_24716+16E2w ; sub_24716+1934r ... byte_FFFF948D: ds.b 1 ; DATA XREF: sub_24716:loc_24E26w ; sub_24716+75Aw ... word_FFFF948E: ds.b 2 ; DATA XREF: sub_24716:loc_254D6w ; sub_261CA+100r ... byte_FFFF9490: ds.b 1 ; DATA XREF: sub_24716:loc_25476w ; sub_24716+D6Ew ... ds.b 1 word_FFFF9492: ds.b 2 ; DATA XREF: sub_24716+1378r ; sub_24716+137Er ... word_FFFF9494: ds.b 2 ; DATA XREF: sub_24716:loc_25AA8w ; sub_24716:loc_25AC4w word_FFFF9496: ds.b 2 ; DATA XREF: sub_24716+13F4r ; sub_24716+1404w ... word_FFFF9498: ds.b 2 ; DATA XREF: sub_24716+E0Cw ; sub_24716:loc_25528w ... byte_FFFF949A: ds.b 1 ; DATA XREF: sub_24716:loc_2552Cw ; sub_24716:loc_25534r ... ds.b 1 word_FFFF949C: ds.b 2 ; DATA XREF: sub_261CA:loc_2620Ar ; sub_2637C:loc_26390w ... word_FFFF949E: ds.b 2 ; DATA XREF: sub_2637C+6r ; sub_2637C+18w ... word_FFFF94A0: ds.b 2 ; DATA XREF: sub_261CA+4Cw ; OS1:000264AAw word_FFFF94A2: ds.b 2 ; DATA XREF: sub_261CA:loc_2621Cw ; sub_261CA+72r ... word_FFFF94A4: ds.b 2 ; DATA XREF: sub_24716+1310w byte_FFFF94A6: ds.b 1 ; DATA XREF: sub_24716+1A0Cr ; sub_261CA:loc_26300w ... ds.b 1 word_FFFF94A8: ds.b 2 ; DATA XREF: sub_261CA+188w word_FFFF94AA: ds.b 2 ; DATA XREF: sub_24716+5Ew ; sub_24716+6Cr word_FFFF94AC: ds.b 2 ; DATA XREF: sub_24716:loc_24956w ; sub_24716+2F8r ... byte_FFFF94AE: ds.b 1 ; DATA XREF: sub_24716+19Cw ; sub_24716+21Aw ... ds.b 1 word_FFFF94B0: ds.b 2 ; DATA XREF: sub_24716:loc_248E6r ; sub_24716:loc_2491Ar ... byte_FFFF94B2: ds.b 1 ; DATA XREF: sub_24716:loc_2583Cw ; sub_24716+136Er ... ds.b 1 word_FFFF94B4: ds.b 2 ; DATA XREF: sub_24716+1144w ; sub_24716+12FEw ... word_FFFF94B6: ds.b 2 ; DATA XREF: sub_24716:loc_259A0w ; sub_24716+1292r word_FFFF94B8: ds.b 2 ; DATA XREF: sub_24716:loc_2592Aw ; sub_24716+128Er word_FFFF94BA: ds.b 2 ; DATA XREF: sub_24716:loc_25970w word_FFFF94BC: ds.b 2 ; DATA XREF: sub_24716+114Ew ; sub_24716+1226w ... word_FFFF94BE: ds.b 2 ; DATA XREF: sub_24716+11BCw ; sub_24716+11C6r word_FFFF94C0: ds.b 2 ; DATA XREF: sub_364E2+2r ; sub_364E2:loc_36514w ... word_FFFF94C2: ds.b 2 ; DATA XREF: sub_2340C+9B6w word_FFFF94C4: ds.b 2 ; DATA XREF: sub_364E2+60w ; sub_364E2:loc_3657Aw ... IdleBaseAirflow?:ds.b 4 ; DATA XREF: sub_36E5A+4Ew ; sub_3774E+16Ew ... byte_FFFF94CA: ds.b 1 ; DATA XREF: sub_36E5A+38r ; sub_36F1C:loc_370E0w ... byte_FFFF94CB: ds.b 1 ; DATA XREF: sub_36E5A:loc_36E88r ; sub_36F1C+1E6w ... DesiredIdleThrottleArea:ds.b 2 ; DATA XREF: sub_35CC0+2Aw ; sub_35CC0:loc_35CF4w ... DBW_Idle_Percentage_NotClamped:ds.b 2 ; DATA XREF: sub_2340C+252r ; InitializeThrottleAreaStuff+6r ... byte_FFFF94D0: ds.b 1 ; DATA XREF: sub_36EAE:loc_36EF8w ; sub_36EAE:loc_36F00w ... IdleControlMode_DriveNeutral_AcOrNot:ds.b 1 ; DATA XREF: sub_35CC0+Cr ; sub_35D1C+A8r ... word_FFFF94D2: ds.b 2 ; DATA XREF: sub_36AAA+1Er ; sub_36AAA:loc_36ADEw ... ThrottleCrackerPlusFollower:ds.b 2 ; DATA XREF: sub_36EAE:loc_36EE2w ; sub_36F1C+22r ... StartupAirflowNonZero:ds.b 2 ; DATA XREF: sub_36AAA+4r ; sub_36AAA:loc_36BA2w ... word_FFFF94D8: ds.b 2 ; DATA XREF: sub_36AAA+50r ; sub_36AAA:loc_36B08w ... word_FFFF94DA: ds.b 2 ; DATA XREF: sub_3774E+112w ; sub_37A50+8r ... IdleIntegralTerm_Clamped?:ds.b 2 ; DATA XREF: sub_3774E+13Ew ; sub_37A50:loc_37A92r ... IdleIntegralAccumulator_TBD2:ds.b 2 ; DATA XREF: sub_3774E+142w ; sub_37A50:loc_37ABAr ... word_FFFF94E0: ds.b 2 ; DATA XREF: sub_3774E+146w ; sub_37A50:loc_37B06r ... word_FFFF94E2: ds.b 2 ; DATA XREF: sub_3774E+14Aw ; sub_37A50:loc_37B32r ... byte_FFFF94E4: ds.b 1 ; DATA XREF: sub_3622E+9Cw ; sub_3622E+184r ... byte_FFFF94E5: ds.b 1 ; DATA XREF: sub_3622E:loc_3640Cr ; sub_3622E+242w ... byte_FFFF94E6: ds.b 1 ; DATA XREF: sub_3622E+1Ar ; sub_3622E:loc_3626Aw ... byte_FFFF94E7: ds.b 1 ; DATA XREF: sub_3622E+180w ; sub_3622E+1CCw ... byte_FFFF94E8: ds.b 1 ; DATA XREF: DecideIdleMode+B36r ; DecideIdleMode:loc_38FD6w ... byte_FFFF94E9: ds.b 1 ; DATA XREF: DecideIdleMode+C3Er ; DecideIdleMode+C5Ew ... byte_FFFF94EA: ds.b 1 ; DATA XREF: sub_364E2+12r ; sub_364E2+1Aw ... byte_FFFF94EB: ds.b 1 ; DATA XREF: sub_36AAA:loc_36AF4r ; sub_36AAA+8Ew ... byte_FFFF94EC: ds.b 1 ; DATA XREF: IsIdleAirLearningActive:loc_37360w byte_FFFF94ED: ds.b 1 ; DATA XREF: IsIdleAirLearningActive:loc_372B0w byte_FFFF94EE: ds.b 1 ; DATA XREF: sub_3622E+A0w ; sub_3622E+1C6r ... byte_FFFF94EF: ds.b 1 ; DATA XREF: IsIdleAirLearningActive:loc_3726Aw byte_FFFF94F0: ds.b 1 ; DATA XREF: IsIdleAirLearningActive:loc_373AEw byte_FFFF94F1: ds.b 1 ; DATA XREF: sub_36764+14r ; sub_36764+36w ... byte_FFFF94F2: ds.b 1 ; DATA XREF: sub_36AAA:loc_36B46r ; sub_36AAA:loc_36B72w ... byte_FFFF94F3: ds.b 1 ; DATA XREF: IsIdleAirLearningActive:loc_37242w byte_FFFF94F4: ds.b 1 ; DATA XREF: sub_3774E+14Ew ; sub_37A50:loc_37BAAw ... byte_FFFF94F5: ds.b 1 ; DATA XREF: IsIdleAirLearningActive:loc_371AAw byte_FFFF94F6: ds.b 1 ; DATA XREF: IsIdleAirLearningActive:loc_371E2w byte_FFFF94F7: ds.b 1 ; DATA XREF: IsIdleAirLearningActive:loc_3721Aw byte_FFFF94F8: ds.b 1 ; DATA XREF: sub_3622E+142r ; sub_3622E+17Cw ... ThrottleFollowerDelayTimerActive:ds.b 1 ; DATA XREF: sub_36BBA+Ew ; sub_36BBA:loc_36BDAr ... byte_FFFF94FA: ds.b 1 ; DATA XREF: sub_366E4+Ar ; sub_36F1C:loc_36FB8w ... byte_FFFF94FB: ds.b 1 ; DATA XREF: sub_35D1C+B6w ; sub_35D1C+13Aw ... byte_FFFF94FC: ds.b 1 ; DATA XREF: sub_364E2+Ew ; sub_364E2:loc_36646r ... byte_FFFF94FD: ds.b 1 ; DATA XREF: sub_36764+9Er ; sub_36764:loc_36860w ... byte_FFFF94FE: ds.b 1 ; DATA XREF: sub_36764+10Ew ; sub_36764+184w ... byte_FFFF94FF: ds.b 1 ; DATA XREF: sub_36764+11Cw ; sub_36764+2C0r ... word_FFFF9500: ds.b 2 ; DATA XREF: sub_36764+112w ; sub_36764+188w ... word_FFFF9502: ds.b 2 ; DATA XREF: sub_36764+F0w ; sub_36764+25Cr word_FFFF9504: ds.b 2 ; DATA XREF: sub_36764+118w ; sub_36764:loc_369A4r ... word_FFFF9506: ds.b 2 ; DATA XREF: sub_35D1C+4Ew ; sub_35D1C:loc_35DB6w ... IdleBaseAirflow_Candidate?:ds.b 2 ; DATA XREF: sub_36E5A:loc_36E9Er ; sub_36F1C:loc_370B6w ... word_FFFF950A: ds.b 2 ; DATA XREF: sub_35FC0+3Ew ; sub_35FC0:loc_36004w ... word_FFFF950C: ds.b 2 ; DATA XREF: sub_36AAA+18r ; sub_36AAA:loc_36AE4r ... word_FFFF950E: ds.b 2 ; DATA XREF: sub_3600A:loc_3605Aw ; sub_3600A:loc_36060w ... word_FFFF9510: ds.b 2 ; DATA XREF: sub_366BE+Cw ; sub_366BE:loc_366D4w ... word_FFFF9512: ds.b 2 ; DATA XREF: sub_37A50+14w ; sub_37A50:loc_37A8Cw ... word_FFFF9514: ds.b 2 ; DATA XREF: sub_36066+64r ; sub_36066+80r ... word_FFFF9516: ds.b 2 ; DATA XREF: sub_36AAA+74r ; sub_36AAA+98w ... word_FFFF9518: ds.b 2 ; DATA XREF: sub_36AAA+70w ; sub_3774E+FEw word_FFFF951A: ds.b 2 ; DATA XREF: sub_36066+70w ; sub_36066+B8r ... word_FFFF951C: ds.b 2 ; DATA XREF: sub_36066+4Aw ; sub_36066+5Er ... ThrottleCrackerAirflow:ds.b 2 ; DATA XREF: sub_36764:loc_3695Er ; sub_36764:loc_369F8w ... IacParkedAirflow:ds.b 2 ; DATA XREF: sub_36A8C+18w ; sub_36E5A:loc_36E6Cr word_FFFF9522: ds.b 2 ; DATA XREF: sub_3622E+1EAr ; sub_3622E+216r ... word_FFFF9524: ds.b 2 ; DATA XREF: sub_3622E+1EEr ; sub_3622E:loc_36436r ... word_FFFF9526: ds.b 2 ; DATA XREF: sub_35D1C:loc_35E48w word_FFFF9528: ds.b 2 ; DATA XREF: sub_35D1C+20Ew ; sub_35D1C+23Er word_FFFF952A: ds.b 2 ; DATA XREF: sub_35D1C+14Aw ; sub_35D1C+1B2w ... word_FFFF952C: ds.b 2 ; DATA XREF: sub_35D1C+160w ; sub_35D1C+168r ... word_FFFF952E: ds.b 2 ; DATA XREF: sub_3622E+D6w ; sub_3622E+112w ... word_FFFF9530: ds.b 2 ; DATA XREF: sub_3622E+130w ; sub_3622E+1C0r word_FFFF9532: ds.b 2 ; DATA XREF: sub_3622E+A4w ; sub_3622E+198r ... word_FFFF9534: ds.b 2 ; DATA XREF: sub_35D1C+46w ; sub_35D1C+22Ar ThrottleFollowerAirflow:ds.b 2 ; DATA XREF: sub_36BBA+A4r ; sub_36BBA+B4r ... ThrottleFollowerDecayRate:ds.b 2 ; DATA XREF: sub_36BBA+190w ; sub_36BBA+226w ... word_FFFF953A: ds.b 2 ; DATA XREF: sub_36BBA+264w ; sub_36BBA+276r word_FFFF953C: ds.b 2 ; DATA XREF: sub_36BBA+90w ; sub_36BBA+268r word_FFFF953E: ds.b 2 ; DATA XREF: sub_36BBA+18w ; sub_36BBA+3Cr ... word_FFFF9540: ds.b 2 ; DATA XREF: sub_3647C+Ar ; sub_3647C:loc_364D0w ... word_FFFF9542: ds.b 2 ; DATA XREF: sub_3647C+Aw ; sub_3774E+90w ... DesiredAirflow: ds.b 2 ; DATA XREF: sub_3647C+4r ; sub_3647C:loc_364B0w ... word_FFFF9546: ds.b 2 ; DATA XREF: sub_3647C+4w ; sub_3774E+6Cw ... word_FFFF9548: ds.b 2 ; DATA XREF: sub_36764:loc_368D8w word_FFFF954A: ds.b 2 ; DATA XREF: sub_366E4:loc_36754w ; sub_366E4:loc_3675Aw ... byte_FFFF954C: ds.b 1 ; DATA XREF: sub_36066+Cr ; sub_36066+4Ew ... ds.b 1 word_FFFF954E: ds.b 2 ; DATA XREF: sub_36764+2BAr ; sub_36764:loc_36A50r ... byte_FFFF9550: ds.b 1 ; DATA XREF: sub_3622E+8Er ; sub_3622E:loc_36362w ... byte_FFFF9551: ds.b 1 ; DATA XREF: sub_36BBA+12w ; sub_36BBA+54w ... word_FFFF9552: ds.b 2 ; DATA XREF: sub_364E2+EEw ; sub_364E2+148r ... word_FFFF9554: ds.b 2 ; DATA XREF: sub_364E2+58w ; sub_364E2+6Cr ... dword_FFFF9556: ds.b 4 ; DATA XREF: sub_35D1C+220w ; sub_35D1C+29Aw ... word_FFFF955A: ds.b 2 ; DATA XREF: IsIdleAirLearningActive:loc_37378w word_FFFF955C: ds.b 2 ; DATA XREF: IsIdleAirLearningActive+390w ; IsIdleAirLearningActive:loc_3755Er ... word_FFFF955E: ds.b 2 ; DATA XREF: IsIdleAirLearningActive+37Aw ; IsIdleAirLearningActive:loc_3753Cr ... word_FFFF9560: ds.b 2 ; DATA XREF: IsIdleAirLearningActive:loc_374ACw ; IsIdleAirLearningActive+55Ar word_FFFF9562: ds.b 2 ; DATA XREF: IsIdleAirLearningActive+55Ew ; IsIdleAirLearningActive:loc_376C4w ... dword_FFFF9564: ds.b 4 ; DATA XREF: IsIdleAirLearningActive+25Aw ; IsIdleAirLearningActive+26Ar ... word_FFFF9568: ds.b 2 ; DATA XREF: IsIdleAirLearningActive+1B6r ; IsIdleAirLearningActive+5C2w word_FFFF956A: ds.b 2 ; DATA XREF: IsIdleAirLearningActive+2C6w byte_FFFF956C: ds.b 1 ; DATA XREF: IsIdleAirLearningActive+28Aw ; IsIdleAirLearningActive+2B8w ... ds.b 1 word_FFFF956E: ds.b 2 ; DATA XREF: IsIdleAirLearningActive+1CCr ; IsIdleAirLearningActive:loc_37716w word_FFFF9570: ds.b 2 ; DATA XREF: IsIdleAirLearningActive+394w ; IsIdleAirLearningActive:loc_3750Cw ... word_FFFF9572: ds.b 2 ; DATA XREF: IsIdleAirLearningActive+398w ; IsIdleAirLearningActive:loc_376A4w ... dword_FFFF9574: ds.b 4 ; DATA XREF: IsIdleAirLearningActive+240w word_FFFF9578: ds.b 2 ; DATA XREF: IsIdleAirLearningActive:loc_37418w ; IsIdleAirLearningActive+308r ... word_FFFF957A: ds.b 2 ; DATA XREF: IsIdleAirLearningActive:loc_37452w ; IsIdleAirLearningActive+344r dword_FFFF957C: ds.b 4 ; DATA XREF: IsIdleAirLearningActive+126w ; IsIdleAirLearningActive+1FAr word_FFFF9580: ds.b 2 ; DATA XREF: IsIdleAirLearningActive+296w word_FFFF9582: ds.b 2 ; DATA XREF: sub_4DC04:loc_4DC44r ; sub_4DD5C+Ar ... word_FFFF9584: ds.b 2 ; DATA XREF: sub_5436E:loc_546EAw ; sub_5955E+4Cr ... word_FFFF9586: ds.b 2 ; DATA XREF: sub_5436E+3AAw ; sub_5A336+C0r ... word_FFFF9588: ds.b 2 ; DATA XREF: sub_5436E+2D2w ; sub_5436E+2E0w ... byte_FFFF958A: ds.b 1 ; DATA XREF: sub_5436E+35Aw ; sub_5436E:loc_546D8w ... ds.b 1 word_FFFF958C: ds.b 2 ; DATA XREF: sub_5436E+410w ; sub_598D4+40r ... byte_FFFF958E: ds.b 1 ; DATA XREF: sub_4DD5C:loc_4E260r ; sub_4DD5C:loc_4E40Cr ... byte_FFFF958F: ds.b 1 ; DATA XREF: sub_5436E+232w word_FFFF9590: ds.b 2 ; DATA XREF: sub_4B866+DCr ; OS2:0004BAC0r ... word_FFFF9592: ds.b 2 ; DATA XREF: sub_51498+17Er ; sub_51498+18Ar ... word_FFFF9594: ds.b 2 ; DATA XREF: sub_503CA+116r ; sub_50628+FEr ... word_FFFF9596: ds.b 2 ; DATA XREF: sub_54FDC+56w ; sub_54FDC+94w ... byte_FFFF9598: ds.b 1 ; DATA XREF: sub_51498+178r ; sub_51498+384r ... byte_FFFF9599: ds.b 1 ; DATA XREF: sub_53F90+42r ; sub_53F90+126r ... word_FFFF959A: ds.b 2 ; DATA XREF: OS2:GetPid_1940_TransmissionOilTemperaturer ; sub_51498:loc_51684r ... byte_FFFF959C: ds.b 1 ; DATA XREF: sub_4DD5C+510r ; sub_4DD5C+6BCr ... byte_FFFF959D: ds.b 1 ; DATA XREF: sub_4BD8C+290r ; sub_4F8C8+Cr ... word_FFFF959E: ds.b 2 ; DATA XREF: sub_53008+Er ; sub_53008+9Er ... word_FFFF95A0: ds.b 2 ; DATA XREF: sub_5436E+69Ar ; sub_5436E+6ACw ... word_FFFF95A2: ds.b 2 ; DATA XREF: OS2:GetPid_1942_TransmissionOutputShaftSpeedr ; sub_4D13A+5C6r ... word_FFFF95A4: ds.b 2 ; DATA XREF: sub_52CD6:loc_52D74r ; sub_52CD6:loc_52DDEr word_FFFF95A6: ds.b 2 ; DATA XREF: sub_52BE8+Cr ; sub_52CD6+A2r ... word_FFFF95A8: ds.b 2 ; DATA XREF: sub_4D13A+192r ; sub_4D13A:loc_4D686r ... word_FFFF95AA: ds.b 2 ; DATA XREF: sub_4D13A+61Cr ; sub_5436E:loc_54D00w ... word_FFFF95AC: ds.b 2 ; DATA XREF: OS2:GetPid_19D4r ; sub_4DD5C+98r ... word_FFFF95AE: ds.b 2 ; DATA XREF: sub_4EFF2:loc_4F2C8r ; sub_5436E:loc_54AC8w ... word_FFFF95B0: ds.b 2 ; DATA XREF: OS2:GetPid_1941_TransmissionInputShaftSpeedr ; sub_5195C+158r ... word_FFFF95B2: ds.b 2 ; DATA XREF: sub_4CD5E+32r ; sub_5195C+150r ... word_FFFF95B4: ds.b 2 ; DATA XREF: sub_5436E:loc_5490Ew ; sub_54FDC:loc_553D8r ... word_FFFF95B6: ds.b 2 ; DATA XREF: sub_3E346+74r ; sub_4C570:loc_4C5A2r ... word_FFFF95B8: ds.b 2 ; DATA XREF: sub_4D13A+56r ; sub_4D13A+DAr ... word_FFFF95BA: ds.b 2 ; DATA XREF: sub_5436E+440r ; sub_5436E+4F0r ... word_FFFF95BC: ds.b 2 ; DATA XREF: OS2:GetPid_1991_TCCSlipSpeedr ; OS2:00050202r ... word_FFFF95BE: ds.b 2 ; DATA XREF: sub_5436E+8F8w ; sub_559D6+8r ... word_FFFF95C0: ds.b 2 ; DATA XREF: OS2:GetPid_19DEr ; OS2:00050162r ... word_FFFF95C2: ds.b 2 ; DATA XREF: sub_5436E+AF8r ; sub_5436E+B04w ... word_FFFF95C4: ds.b 2 ; DATA XREF: sub_5436E+B50w ; sub_5BDC8+1EEr ... word_FFFF95C6: ds.b 2 ; DATA XREF: sub_5436E+B34w ; sub_5BDC8+19Cr ... word_FFFF95C8: ds.b 2 ; DATA XREF: sub_5436E+B20r ; sub_5436E+B2Cw ... word_FFFF95CA: ds.b 2 ; DATA XREF: sub_5436E+C18w ; sub_5436E:loc_54F8Cw word_FFFF95CC: ds.b 2 ; DATA XREF: sub_5436E:loc_54F44w ; sub_5436E+BE0r ... word_FFFF95CE: ds.b 2 ; DATA XREF: OS2:0004B9FCr ; OS2:loc_4BB10r ... word_FFFF95D0: ds.b 2 ; DATA XREF: sub_4EFF2:loc_4F0D0r ; sub_5436E:loc_54F7Cw ... word_FFFF95D2: ds.b 2 ; DATA XREF: sub_5436E:loc_54FA0w ; sub_58D18+7Cr word_FFFF95D4: ds.b 2 ; DATA XREF: OS2:GetPid_19A1r ; sub_4D13A+43Er ... word_FFFF95D6: ds.b 2 ; DATA XREF: OS2:GetPid_1A02r ; sub_50628+1B8r ... word_FFFF95D8: ds.b 2 ; DATA XREF: OS2:GetPid_195Dr ; OS2:0004FF6Ar ... word_FFFF95DA: ds.b 2 ; DATA XREF: sub_4C30C+6Ar ; sub_4C30C+76r ... byte_FFFF95DC: ds.b 1 ; DATA XREF: sub_3E250:loc_3E2B6r ; OS2:00044D34r ... byte_FFFF95DD: ds.b 1 ; DATA XREF: OS2:GetPid_1A13r ; OS2:0004FEF8r ... byte_FFFF95DE: ds.b 1 ; DATA XREF: sub_5A6A0+29Er sub_5B3B2w ... byte_FFFF95DF: ds.b 1 ; DATA XREF: sub_24716+4Ar ; sub_4D13A:loc_4D50Ar ... word_FFFF95E0: ds.b 2 ; DATA XREF: sub_5436E+79Ar ; sub_5436E+7A6w byte_FFFF95E2: ds.b 1 ; DATA XREF: DoLoopE+100r ; sub_3E346:loc_3E382r ... byte_FFFF95E3: ds.b 1 ; DATA XREF: sub_4B054+64r ; sub_4B866+58r ... byte_FFFF95E4: ds.b 1 ; DATA XREF: OS2:loc_449D6r ; sub_5436E+15Ar ... byte_FFFF95E5: ds.b 1 ; DATA XREF: OS2:0004485Er ; OS2:00044A56r ... byte_FFFF95E6: ds.b 1 ; DATA XREF: sub_4FCA2+5Cr ; sub_4FCA2+154r ... byte_FFFF95E7: ds.b 1 ; DATA XREF: sub_4F8C8+72r ; sub_4F9F4+6Aw ... byte_FFFF95E8: ds.b 1 ; DATA XREF: sub_4F5D0+C0r ; sub_554C6+2Cw ... byte_FFFF95E9: ds.b 1 ; DATA XREF: sub_3E346:loc_3E39Cr ; sub_4B780r ... byte_FFFF95EA: ds.b 1 ; DATA XREF: sub_53BDC+5Cr ; sub_5436E+3Ew ... byte_FFFF95EB: ds.b 1 ; DATA XREF: sub_5427A:loc_542C6w ; sub_5427A:loc_542CEw ... byte_FFFF95EC: ds.b 1 ; DATA XREF: sub_53BDC+22r ; sub_53BDC+A8r ... byte_FFFF95ED: ds.b 1 ; DATA XREF: sub_5427A+70w ; sub_5427A+8Ew ... ds.b 1 ds.b 1 byte_FFFF95F0: ds.b 1 ; DATA XREF: sub_4B780+56r ; sub_4B780:loc_4B7E6r ... byte_FFFF95F1: ds.b 1 ; DATA XREF: OS2:GetPid_1973r ; sub_4D97C+30r ... byte_FFFF95F2: ds.b 1 ; DATA XREF: sub_54FAE+12w ; sub_5B14C+40r ... byte_FFFF95F3: ds.b 1 ; DATA XREF: sub_54FAE+26w ; sub_571CE+238r ... byte_FFFF95F4: ds.b 1 ; DATA XREF: sub_4EEB4+1Cr ; sub_4EEB4+58r ... ds.b 1 word_FFFF95F6: ds.b 2 ; DATA XREF: sub_4DD5C+E8Er ; sub_50C1C+9Er ... word_FFFF95F8: ds.b 2 ; DATA XREF: sub_5436E+90r ; sub_5436E:loc_5440Cw ... word_FFFF95FA: ds.b 2 ; DATA XREF: sub_53008+50r ; sub_5436E+148r ... byte_FFFF95FC: ds.b 1 ; DATA XREF: sub_54FDC:loc_55344w ; sub_54FDC+372w ... byte_FFFF95FD: ds.b 1 ; DATA XREF: sub_5436E+274w byte_FFFF95FE: ds.b 1 ; DATA XREF: sub_4AA18+16w ; sub_4BC94+3Aw ... byte_FFFF95FF: ds.b 1 ; DATA XREF: sub_54FDC+2BAr ; sub_54FDC+2CCw ... word_FFFF9600: ds.b 2 ; DATA XREF: OS2:GetPid_1971r ; sub_4B866+106w ... byte_FFFF9602: ds.b 1 ; DATA XREF: sub_54FDC+3C6w ; sub_54FDC+3D6w byte_FFFF9603: ds.b 1 ; DATA XREF: sub_54FDC+3E8w ; sub_54FDC+3F8w word_FFFF9604: ds.b 2 ; DATA XREF: sub_5427Ar sub_5427A+18r ... byte_FFFF9606: ds.b 1 ; DATA XREF: sub_5427A:loc_54288r ; sub_5427A+ACr ... byte_FFFF9607: ds.b 1 ; DATA XREF: sub_5427A:loc_542A2w byte_FFFF9608: ds.b 1 ; DATA XREF: sub_5427A+74w ; sub_5427A+8Aw ... byte_FFFF9609: ds.b 1 ; DATA XREF: sub_5427A+A2r ; sub_5427A+CAw ... byte_FFFF960A: ds.b 1 ; DATA XREF: sub_5427A+9Cr ; sub_5427A:loc_5433Ew ... ds.b 1 byte_FFFF960C: ds.b 1 ; DATA XREF: sub_54FDC+12r ; sub_54FDC+1E2w ... ds.b 1 word_FFFF960E: ds.b 2 ; DATA XREF: sub_54FDC+F8r ; sub_54FDC+152r ... byte_FFFF9610: ds.b 1 ; DATA XREF: sub_5546Er sub_5546E+8r ... ds.b 1 word_FFFF9612: ds.b 2 ; DATA XREF: sub_5436E+438r ; sub_5436E+48Ar ... word_FFFF9614: ds.b 2 ; DATA XREF: sub_5436E+43Cw ; sub_5436E+444r ... word_FFFF9616: ds.b 2 ; DATA XREF: sub_5436E:loc_54836r ; sub_5436E:loc_54896r ... word_FFFF9618: ds.b 2 ; DATA XREF: sub_5436E:loc_549E0w ; sub_5436E+67Cr ... word_FFFF961A: ds.b 2 ; DATA XREF: sub_5436E+69Aw ; sub_5436E:loc_54A20r ... word_FFFF961C: ds.b 2 ; DATA XREF: sub_5436E+762r ; sub_5436E+7AAw word_FFFF961E: ds.b 2 ; DATA XREF: sub_5436E:loc_54B4Aw word_FFFF9620: ds.b 2 ; DATA XREF: sub_5436E+A4Er ; sub_5436E:loc_54DCAw ... word_FFFF9622: ds.b 2 ; DATA XREF: sub_5436E+A8Cr ; sub_5436E:loc_54E08w ... word_FFFF9624: ds.b 2 ; DATA XREF: sub_5436E+B30r ; sub_5436E+B3Cw word_FFFF9626: ds.b 2 ; DATA XREF: sub_5436E+B4Cr ; sub_5436E+B54w word_FFFF9628: ds.b 2 ; DATA XREF: sub_5436E+B40r ; sub_5436E+B5Aw ... word_FFFF962A: ds.b 2 ; DATA XREF: sub_5436E+2D6w ; sub_5436E+2E4w ... word_FFFF962C: ds.b 2 ; DATA XREF: sub_5436E+38Ar ; sub_5436E:loc_54706w ... word_FFFF962E: ds.b 2 ; DATA XREF: sub_5436E+3A6r ; sub_5436E+3B2w byte_FFFF9630: ds.b 1 ; DATA XREF: sub_54FDC:loc_55318r ; sub_5546E+2Aw ... ds.b 1 word_FFFF9632: ds.b 2 ; DATA XREF: sub_554C6+20r ; sub_554C6:loc_55508w ... word_FFFF9634: ds.b 2 ; DATA XREF: sub_554C6+1Cw ; sub_554C6+4Cr ... byte_FFFF9636: ds.b 1 ; DATA XREF: DoLoopF+222r DoLoopF+230w ... byte_FFFF9637: ds.b 1 ; DATA XREF: DoLoopF+234w DoLoopF+584w ... byte_FFFF9638: ds.b 1 ; DATA XREF: DoLoopF+238w DoLoopF+588w ... ds.b 1 dword_FFFF963A: ds.b 4 ; DATA XREF: OS1:0003E8AEw ; OS1:0003E8E4w ... dword_FFFF963E: ds.b 4 ; DATA XREF: sub_3EA90:loc_3F60Aw ; OS1:0003F974r ... dword_FFFF9642: ds.b 4 ; DATA XREF: sub_3F674:loc_3F6C2w ; OS1:0003FB26r ... dword_FFFF9646: ds.b 4 ; DATA XREF: sub_3F6FE+216w ; OS1:loc_3FACCr ... byte_FFFF964A: ds.b 1 ; DATA XREF: sub_3EA90+26r ; sub_3EA90+36w ... byte_FFFF964B: ds.b 1 ; DATA XREF: sub_3F6FE+10r ; sub_3F6FE+3Ar ... byte_FFFF964C: ds.b 1 ; DATA XREF: sub_3F6FE+16w ; sub_3F6FE+40w ... byte_FFFF964D: ds.b 1 ; DATA XREF: sub_3EA90+10r ; OS1:0003F62Aw ... byte_FFFF964E: ds.b 1 ; DATA XREF: sub_3EA90+2Ew ; sub_3EA90+58w ... byte_FFFF964F: ds.b 1 ; DATA XREF: sub_3F674+Ar ; OS1:0003F6DAw ... byte_FFFF9650: ds.b 1 ; DATA XREF: sub_3F6FE+Ar ; OS1:0003F934w ... byte_FFFF9651: ds.b 1 ; DATA XREF: OS1:0003E8BCw ; OS1:0003FA6Cr byte_FFFF9652: ds.b 1 ; DATA XREF: OS1:0003E8F8w ; OS1:0003FA2Er ds.b 1 word_FFFF9654: ds.b 2 ; DATA XREF: sub_3E928+1Cr ; sub_3E928+30w ... word_FFFF9656: ds.b 2 ; DATA XREF: sub_3E928+40r ; sub_3E928+54w ... dword_FFFF9658: ds.b 4 ; DATA XREF: sub_3F6FE+F4w ; sub_3F6FE+FCr unk_FFFF965C: ds.b 1 ; DATA XREF: sub_3F6FE+100o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF966C: ds.b 1 ; DATA XREF: sub_3F6FE+112o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF967C: ds.b 1 ; DATA XREF: sub_3F6FE+124o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF968C: ds.b 1 ; DATA XREF: sub_3F6FE+136o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF969C: ds.b 1 ; DATA XREF: sub_3F6FE+148o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF96AC: ds.b 1 ; DATA XREF: sub_3F6FE+15Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF96BC: ds.b 1 ; DATA XREF: sub_3F6FE+16Co ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF96CC: ds.b 1 ; DATA XREF: sub_3F6FE+17Eo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 dword_FFFF96DC: ds.b 4 ; DATA XREF: sub_3F6FE+18Aw ; sub_3F6FE:loc_3F892r ... dword_FFFF96E0: ds.b 4 ; DATA XREF: sub_3F6FE+1EEw ; sub_3F6FE:loc_3F8F6r ... word_FFFF96E4: ds.b 2 ; DATA XREF: sub_6EF00+7Cw ; sub_6EF00+174r ... word_FFFF96E6: ds.b 2 ; DATA XREF: sub_6EF00+9Ar ; sub_6EF00+178r ... word_FFFF96E8: ds.b 2 ; DATA XREF: sub_6EF00+17Cr ; sub_6EF00:loc_6F098r ds.b 1 ds.b 1 word_FFFF96EC: ds.b 2 ; DATA XREF: sub_6EF00+180r word_FFFF96EE: ds.b 2 ; DATA XREF: sub_6EF00+184r word_FFFF96F0: ds.b 2 ; DATA XREF: sub_6EF00+188r ; sub_6EF00+1A4r ds.b 1 ds.b 1 word_FFFF96F4: ds.b 2 ; DATA XREF: sub_6EF00+1ACr unk_FFFF96F6: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9736: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9776: ds.b 1 ; DATA XREF: sub_6E5C0r ; sub_6E5D0:loc_6E71Ar ... byte_FFFF9777: ds.b 1 ; DATA XREF: sub_6EF00+1D8r ; sub_6EF00+206w byte_FFFF9778: ds.b 1 ; DATA XREF: sub_6EF00+1C8r ; sub_6EF00:loc_6F102w byte_FFFF9779: ds.b 1 ; DATA XREF: sub_6EEC8+18w ; sub_6EEC8+20w ... word_FFFF977A: ds.b 2 ; DATA XREF: sub_6EF00+D0w word_FFFF977C: ds.b 2 ; DATA XREF: sub_6EF00+CCr ; sub_6EF00+126r ... word_FFFF977E: ds.b 2 ; DATA XREF: sub_6EF00+12Er ; sub_6EF00:loc_6F03Er word_FFFF9780: ds.b 2 ; DATA XREF: sub_6EF00+158r word_FFFF9782: ds.b 2 ; DATA XREF: sub_6EF00+160r ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF978A: ds.b 1 ds.b 1 dword_FFFF978C: ds.b 4 ; DATA XREF: sub_70CF2+14Ew ; sub_70ECE+A8w ... dword_FFFF9790: ds.b 4 ; DATA XREF: sub_70CF2+15Ew ; sub_70ECE+E8w ... byte_FFFF9794: ds.b 1 ; DATA XREF: sub_34B00+3A8r ; sub_70CF2+1C4w ... ds.b 1 ds.b 1 ds.b 1 unk_FFFF9798: ds.b 1 ds.b 1 dword_FFFF979A: ds.b 4 ; DATA XREF: sub_70CF2+E6w ; sub_70ECE+4w ... dword_FFFF979E: ds.b 4 ; DATA XREF: sub_70CF2:loc_70DD4w ; sub_70ECEw ... dword_FFFF97A2: ds.b 4 ; DATA XREF: sub_70CF2+EEw ; sub_70ECE+Cw ... dword_FFFF97A6: ds.b 4 ; DATA XREF: sub_70CF2+EAw ; sub_70ECE+8w ... dword_FFFF97AA: ds.b 4 ; DATA XREF: sub_70CF2+17Aw ; sub_70CF2+1D2w ... dword_FFFF97AE: ds.b 4 ; DATA XREF: sub_70CF2+17Ew ; sub_70CF2+1D6w ... dword_FFFF97B2: ds.b 4 ; DATA XREF: sub_70CF2+F6w ; sub_70ECE+14w ... dword_FFFF97B6: ds.b 4 ; DATA XREF: sub_70CF2+F2w ; sub_70ECE+10w ... dword_FFFF97BA: ds.b 4 ; DATA XREF: sub_70CF2+FAw ; sub_70ECE+18w ... dword_FFFF97BE: ds.b 4 ; DATA XREF: sub_70CF2+102w ; sub_70ECE+20w ... dword_FFFF97C2: ds.b 4 ; DATA XREF: sub_70CF2+FEw ; sub_70ECE+1Cw ... dword_FFFF97C6: ds.b 4 ; DATA XREF: sub_70CF2+152w ; sub_70ECE+ACw ... dword_FFFF97CA: ds.b 4 ; DATA XREF: sub_70CF2+156w ; sub_70ECE+B4w ... dword_FFFF97CE: ds.b 4 ; DATA XREF: sub_70CF2+10Aw ; sub_70ECE+28w ... dword_FFFF97D2: ds.b 4 ; DATA XREF: sub_70CF2+106w ; sub_70ECE+24w ... word_FFFF97D6: ds.b 2 ; DATA XREF: sub_70CF2+172w ; sub_70CF2:loc_70EC0w ... word_FFFF97D8: ds.b 2 ; DATA XREF: sub_70CF2+16Ew ; sub_70ECE+E0w ... dword_FFFF97DA: ds.b 4 ; DATA XREF: sub_70CF2+112w ; sub_70ECE+6Cw ... dword_FFFF97DE: ds.b 4 ; DATA XREF: sub_70CF2+10Ew ; sub_70ECE+68w ... dword_FFFF97E2: ds.b 4 ; DATA XREF: sub_70CF2+11Aw ; sub_70ECE+74w ... dword_FFFF97E6: ds.b 4 ; DATA XREF: sub_70CF2+116w ; sub_70ECE+70w ... dword_FFFF97EA: ds.b 4 ; DATA XREF: sub_70CF2+122w ; sub_70ECE+7Cw ... dword_FFFF97EE: ds.b 4 ; DATA XREF: sub_70CF2+11Ew ; sub_70ECE+78w ... dword_FFFF97F2: ds.b 4 ; DATA XREF: sub_70CF2+12Aw ; sub_70ECE+84w ... dword_FFFF97F6: ds.b 4 ; DATA XREF: sub_70CF2+126w ; sub_70ECE+80w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF97FE: ds.b 2 ; DATA XREF: sub_70CF2+15Aw ; sub_70ECE+E4w ... word_FFFF9800: ds.b 2 ; DATA XREF: sub_70CF2+1C8w ; sub_70ECE+10Cw ... dword_FFFF9802: ds.b 4 ; DATA XREF: sub_70CF2+132w ; sub_70ECE+8Cw ... dword_FFFF9806: ds.b 4 ; DATA XREF: sub_70CF2+12Ew ; sub_70ECE+88w ... dword_FFFF980A: ds.b 4 ; DATA XREF: sub_70CF2+136w ; sub_70ECE+90w ... dword_FFFF980E: ds.b 4 ; DATA XREF: sub_70CF2+13Ew ; sub_70ECE+98w ... dword_FFFF9812: ds.b 4 ; DATA XREF: sub_70CF2+13Aw ; sub_70ECE+94w ... dword_FFFF9816: ds.b 4 ; DATA XREF: sub_70CF2+162w ; sub_70ECE+ECw ... dword_FFFF981A: ds.b 4 ; DATA XREF: sub_70CF2+166w ; sub_70ECE+F0w ... dword_FFFF981E: ds.b 4 ; DATA XREF: sub_70CF2+146w ; sub_70ECE+A0w ... dword_FFFF9822: ds.b 4 ; DATA XREF: sub_70CF2+142w ; sub_70ECE+9Cw ... dword_FFFF9826: ds.b 4 ; DATA XREF: sub_70CF2+14Aw ; sub_70ECE+A4w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF982E: ds.b 2 ; DATA XREF: sub_70CF2+16Aw ; sub_70ECE+F4w ... dword_FFFF9830: ds.b 4 ; DATA XREF: sub_70CF2+176w ; sub_70ECE+F8w ... word_FFFF9834: ds.b 2 ; DATA XREF: sub_3A754:loc_3A86Ew ; sub_3A754+134r ... word_FFFF9836: ds.b 2 ; DATA XREF: sub_3A754:loc_3A884w ; OS1:0003B4B0w ... word_FFFF9838: ds.b 2 ; DATA XREF: sub_24716+1574r ; sub_24716+1638r ... word_FFFF983A: ds.b 2 ; DATA XREF: sub_39F12+60w ; sub_39F12+F6w ... word_FFFF983C: ds.b 2 ; DATA XREF: sub_3600Ar OS1:0003A970r ... word_FFFF983E: ds.b 2 ; DATA XREF: sub_3A2A8:loc_3A302w word_FFFF9840: ds.b 2 ; DATA XREF: OS1:0003AF02w ; OS1:0003B4B8w ... word_FFFF9842: ds.b 2 ; DATA XREF: sub_3A330+AEr ; sub_3A330+BAr ... word_FFFF9844: ds.b 2 ; DATA XREF: OS1:loc_3AD0Aw ; OS1:0003AD1Cw ... word_FFFF9846: ds.b 2 ; DATA XREF: sub_3A4CE:loc_3A5BEw ; sub_3A4CE:loc_3A5C4w ... word_FFFF9848: ds.b 2 ; DATA XREF: DoLoopA+1A0r ; sub_3A754+108r ... word_FFFF984A: ds.b 2 ; DATA XREF: sub_39F12+40w ; sub_39F12+DEw ... word_FFFF984C: ds.b 2 ; DATA XREF: sub_39E12:loc_39EF2r ; OS1:0003A9B2w ... byte_FFFF984E: ds.b 1 ; DATA XREF: sub_39F12+Er ; sub_3A4CE+10r ... byte_FFFF984F: ds.b 1 ; DATA XREF: sub_3090C+2B4r ; OS1:0003AA1Aw ... byte_FFFF9850: ds.b 1 ; DATA XREF: DoLoopA+150w ; OS1:0003AD2Er ... byte_FFFF9851: ds.b 1 ; DATA XREF: sub_307A6+10r ; sub_36066+12r ... byte_FFFF9852: ds.b 1 ; DATA XREF: sub_39BFE+8r ; sub_39BFE+5Cr ... byte_FFFF9853: ds.b 1 ; DATA XREF: OS1:0003AE2Ew ; sub_3B3DA+86w ... byte_FFFF9854: ds.b 1 ; DATA XREF: OS1:0003A9CCr ; OS1:0003A9D8w ... ds.b 1 word_FFFF9856: ds.b 2 ; DATA XREF: sub_39BFE+12Aw ; sub_39BFE+20Aw ... word_FFFF9858: ds.b 2 ; DATA XREF: sub_39F12+DAw word_FFFF985A: ds.b 2 ; DATA XREF: sub_39E12+9Ar ; sub_3B1A8:loc_3B378w ... word_FFFF985C: ds.b 2 ; DATA XREF: sub_39E12+C6w ; sub_3B1A8:loc_3B2BEw ... word_FFFF985E: ds.b 2 ; DATA XREF: sub_3AF0C+64w ; sub_3AF0C+B2r word_FFFF9860: ds.b 2 ; DATA XREF: sub_3AF0C+76w word_FFFF9862: ds.b 2 ; DATA XREF: sub_3AF0C+16Cw word_FFFF9864: ds.b 2 ; DATA XREF: sub_3AF0C:loc_3B0F4w word_FFFF9866: ds.b 2 ; DATA XREF: sub_3AF0C+1ACw ; sub_3AF0C+1B6r ... word_FFFF9868: ds.b 2 ; DATA XREF: sub_3AF0C+126r ; sub_3AF0C+136r ... word_FFFF986A: ds.b 2 ; DATA XREF: sub_3AF0C+15Cr ; OS1:0003B6C6w byte_FFFF986C: ds.b 1 ; DATA XREF: sub_3AF0C+D8r ; sub_3AF0C+E8w ... byte_FFFF986D: ds.b 1 ; DATA XREF: sub_3AF0C+4r ; sub_3AF0C+174w ... byte_FFFF986E: ds.b 1 ; DATA XREF: sub_3AF0C+DCr ; sub_3AF0C+F8w ... byte_FFFF986F: ds.b 1 ; DATA XREF: sub_3AF0C+19Aw ; sub_3AF0C+1A8w ... word_FFFF9870: ds.b 2 ; DATA XREF: sub_3AF0C:loc_3AF56w ; sub_3AF0C:loc_3AF5Cw ... word_FFFF9872: ds.b 2 ; DATA XREF: OS1:0003AD42r ; sub_3B78C+4Ew word_FFFF9874: ds.b 2 ; DATA XREF: OS1:loc_3AD58r ; sub_3B78C+5Ew word_FFFF9876: ds.b 2 ; DATA XREF: sub_3A30C+6w ; sub_3A30C+1Ew ... byte_FFFF9878: ds.b 1 ; DATA XREF: sub_39BFE+126r ; sub_3B474:loc_3B480r ... ds.b 1 word_FFFF987A: ds.b 2 ; DATA XREF: OS1:loc_3A9EEw ; OS1:0003AA3Cr word_FFFF987C: ds.b 2 ; DATA XREF: OS1:loc_3AA7Cw ; OS1:0003AAD0w ... byte_FFFF987E: ds.b 1 ; DATA XREF: OS1:0003A9FAw ; OS1:0003AAD4r ... ds.b 1 word_FFFF9880: ds.b 2 ; DATA XREF: OS1:0003A9D2w ; OS1:loc_3AA50r ... word_FFFF9882: ds.b 2 ; DATA XREF: sub_39F12+10Ew ; sub_39F12+260w word_FFFF9884: ds.b 2 ; DATA XREF: sub_3A754+138r ; OS1:0003AE32w ... word_FFFF9886: ds.b 2 ; DATA XREF: sub_3A330+22r ; sub_3A330+F4w word_FFFF9888: ds.b 2 ; DATA XREF: sub_3A436:loc_3A4BEw ; sub_3A436:loc_3A4C4w ... word_FFFF988A: ds.b 2 ; DATA XREF: sub_3A63E+88w ; OS1:0003B4ECw ... word_FFFF988C: ds.b 2 ; DATA XREF: sub_3A5CE+38r ; sub_3B78C+16w word_FFFF988E: ds.b 2 ; DATA XREF: sub_3A4CE+40r ; sub_3B78C+2Cw word_FFFF9890: ds.b 2 ; DATA XREF: sub_3A5CE+66w ; OS1:0003B4F0w ... word_FFFF9892: ds.b 2 ; DATA XREF: OS1:loc_3AE94w ; OS1:loc_3AE9Aw ... word_FFFF9894: ds.b 2 ; DATA XREF: OS1:loc_3AE0Cw ; OS1:loc_3AE12w ... word_FFFF9896: ds.b 2 ; DATA XREF: OS1:loc_3AD78r ; OS1:loc_3AEA2r ... word_FFFF9898: ds.b 2 ; DATA XREF: sub_3A330:loc_3A3DAw ; sub_3A330+B6r ... OctaneScalerCoolantMultiplier:ds.b 2 ; DATA XREF: sub_39F12+D2r ; sub_3B78C+3Cw byte_FFFF989C: ds.b 1 ; DATA XREF: sub_3AF0C+190r ; sub_3AF0C:loc_3B0AEr ... ds.b 1 word_FFFF989E: ds.b 2 ; DATA XREF: sub_3A6D0+7Aw ; OS1:loc_3A96Cr ... word_FFFF98A0: ds.b 2 ; DATA XREF: sub_39F12+104w ; sub_39F12+164w unk_FFFF98A2: ds.b 1 ; DATA XREF: sub_39BFE:loc_39DFCo ; OS1:0003B5FAo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF98B8: ds.b 2 ; DATA XREF: sub_39BFE+58w ; sub_39BFE+C6r ... word_FFFF98BA: ds.b 2 ; DATA XREF: sub_3B1A8+4Aw word_FFFF98BC: ds.b 2 ; DATA XREF: sub_39E12+B4w ; sub_39E12+F0w ... word_FFFF98BE: ds.b 2 ; DATA XREF: OS1:0003A9AEw ; OS1:0003B5D4w ... word_FFFF98C0: ds.b 2 ; DATA XREF: sub_39F12+284r ; sub_3B710+46w word_FFFF98C2: ds.b 2 ; DATA XREF: sub_39F12+188r ; sub_3B710+36w word_FFFF98C4: ds.b 2 ; DATA XREF: sub_3A754+11Er ; OS1:0003B5DCw ... word_FFFF98C6: ds.b 2 ; DATA XREF: sub_39E12+D0w ; sub_3B1A8+B0w ... word_FFFF98C8: ds.b 2 ; DATA XREF: sub_39E12+36r ; sub_39E12+DAw ... byte_FFFF98CA: ds.b 1 ; DATA XREF: OS1:0003AD0Ew ; OS1:loc_3AD16r ... byte_FFFF98CB: ds.b 1 ; DATA XREF: OS1:0003AD3Aw ; OS1:0003AD4Cr ... byte_FFFF98CC: ds.b 1 ; DATA XREF: OS1:0003AA02w ; OS1:0003AB60r ... byte_FFFF98CD: ds.b 1 ; DATA XREF: OS1:0003A9FEw ; OS1:0003AB48w ... byte_FFFF98CE: ds.b 1 ; DATA XREF: OS1:0003AA06w ; OS1:0003AA9Cr ... byte_FFFF98CF: ds.b 1 ; DATA XREF: OS1:0003A9F6w ; OS1:0003AA16w ... byte_FFFF98D0: ds.b 1 ; DATA XREF: sub_39F12+18r ; sub_39F12+5Cw ... byte_FFFF98D1: ds.b 1 ; DATA XREF: sub_3B12A+6Ew ; sub_3B12A:loc_3B1A0w ... byte_FFFF98D2: ds.b 1 ; DATA XREF: sub_39F12+48w ; sub_39F12+136r ... byte_FFFF98D3: ds.b 1 ; DATA XREF: sub_39F12+1Er ; sub_39F12+76r ... byte_FFFF98D4: ds.b 1 ; DATA XREF: sub_39F12+4Cw ; sub_39F12+1A2w ... byte_FFFF98D5: ds.b 1 ; DATA XREF: sub_39F12+44w ; sub_39F12+130r ... byte_FFFF98D6: ds.b 1 ; DATA XREF: sub_39F12+58w ; sub_39F12+232r ... byte_FFFF98D7: ds.b 1 ; DATA XREF: sub_39F12+24r ; sub_39F12+7Cr ... byte_FFFF98D8: ds.b 1 ; DATA XREF: sub_39F12+50w ; sub_39F12+29Ew ... byte_FFFF98D9: ds.b 1 ; DATA XREF: sub_39F12+54w ; sub_39F12+22Cr ... byte_FFFF98DA: ds.b 1 ; DATA XREF: sub_2D1C4+252r ; sub_32F54:loc_330BEr ... byte_FFFF98DB: ds.b 1 ; DATA XREF: sub_32F54+FCr ; sub_32F54+14Ew ... word_FFFF98DC: ds.b 2 ; DATA XREF: sub_2CC22+428r ; sub_2CC22+440r ... word_FFFF98DE: ds.b 2 ; DATA XREF: sub_2CC22+434r ; sub_2CC22+444r ... byte_FFFF98E0: ds.b 1 ; DATA XREF: sub_32F54+1Ew ; sub_32F54+92w ... ds.b 1 word_FFFF98E2: ds.b 2 ; DATA XREF: sub_334F8+1B6r ; sub_334F8:loc_3371Er ... word_FFFF98E4: ds.b 2 ; DATA XREF: sub_334F8+1E8r ; sub_334F8:loc_337B8r ... unk_FFFF98E6: ds.b 1 ds.b 1 unk_FFFF98E8: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF98F8: ds.b 1 ds.b 1 unk_FFFF98FA: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9942: ds.b 1 ; DATA XREF: sub_334F8:loc_336CCw ; OS1:00033B12w ... byte_FFFF9943: ds.b 1 ; DATA XREF: sub_334F8:loc_336F8w ; OS1:00033B16w ... word_FFFF9944: ds.b 2 ; DATA XREF: OS1:0002D8AAr ; sub_32F54+508w ... word_FFFF9946: ds.b 2 ; DATA XREF: OS1:0002D8B6r ; sub_32F54+57Cw ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9954: ds.b 1 ; DATA XREF: sub_31AE2:loc_31CFCr ; sub_32262+16r ... ds.b 1 word_FFFF9956: ds.b 2 ; DATA XREF: sub_334F8+22Ew ; sub_334F8:loc_3373Cr ... word_FFFF9958: ds.b 2 ; DATA XREF: sub_334F8+2C8w ; sub_334F8:loc_337D6r ... byte_FFFF995A: ds.b 1 ; DATA XREF: sub_32F54:loc_33210r ; sub_32F54+386r ... byte_FFFF995B: ds.b 1 ; DATA XREF: sub_334F8+ACw ; sub_334F8+E4w ... byte_FFFF995C: ds.b 1 ; DATA XREF: sub_334F8+32w ; sub_334F8:loc_33574w ... ds.b 1 word_FFFF995E: ds.b 2 ; DATA XREF: sub_334F8+22r ; sub_334F8+2Ew ... word_FFFF9960: ds.b 2 ; DATA XREF: sub_334F8+Ar ; sub_334F8+1Ew ... word_FFFF9962: ds.b 2 ; DATA XREF: sub_334F8+5Ar ; sub_334F8+66w ... unk_FFFF9964: ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF9968: ds.b 2 ; DATA XREF: sub_32F54+5Cr ; sub_334E6+Cw byte_FFFF996A: ds.b 1 ; DATA XREF: sub_32F54+2EAr ; sub_32F54+38Cr ... ds.b 1 word_FFFF996C: ds.b 2 ; DATA XREF: sub_334F8+9Cr ; sub_334F8+A8w ... word_FFFF996E: ds.b 2 ; DATA XREF: sub_334F8+84r ; sub_334F8+98w ... word_FFFF9970: ds.b 2 ; DATA XREF: sub_334F8+D4r ; sub_334F8+E0w ... word_FFFF9972: ds.b 2 ; DATA XREF: OS1:00033B36w word_FFFF9974: ds.b 2 ; DATA XREF: OS1:00033B3Aw ds.b 1 ds.b 1 word_FFFF9978: ds.b 2 ; DATA XREF: sub_334F8+210r word_FFFF997A: ds.b 2 ; DATA XREF: sub_334F8+2AAr dword_FFFF997C: ds.b 4 ; DATA XREF: ExecuteMainLoops+130w word_FFFF9980: ds.b 2 ; DATA XREF: ExecuteMainLoops+134w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9A16: ds.b 1 ; DATA XREF: DoLoopC:loc_2A416r ; DoLoopC+312w ... unk_FFFF9A17: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9A28: ds.b 1 ; DATA XREF: OS1:00028E48w ; sub_40278+42w ... byte_FFFF9A29: ds.b 1 ; DATA XREF: OS1:00028E4Cw ; sub_40278+46w ... byte_FFFF9A2A: ds.b 1 ; DATA XREF: OS1:00028E52w ; sub_40278+4Cw ... byte_FFFF9A2B: ds.b 1 ; DATA XREF: OS1:00028E64w ; sub_40278+5Ew ... byte_FFFF9A2C: ds.b 1 ; DATA XREF: OS1:00028E44w ; sub_40278+3Ew ... byte_FFFF9A2D: ds.b 1 ; DATA XREF: OS1:00028E68w ; sub_40278+62w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9A34: ds.b 1 ; DATA XREF: sub_40982+Er ; sub_40982+2Cr ... byte_FFFF9A35: ds.b 1 ; DATA XREF: OS1:00028E56w ; sub_40278+50w ... byte_FFFF9A36: ds.b 1 ; DATA XREF: OS1:00028E5Aw ; sub_40278+54w ... byte_FFFF9A37: ds.b 1 ; DATA XREF: OS1:00028E5Ew ; sub_40278+58w ... byte_FFFF9A38: ds.b 1 ; DATA XREF: sub_3E4F2:loc_3E536r ; TenSecondDelayIsInHere+14w ... byte_FFFF9A39: ds.b 1 ; DATA XREF: OS2:00040F48w ; OS2:00041158w ... byte_FFFF9A3A: ds.b 1 ; DATA XREF: DoLoopF+178w DoLoopF+4C8w ... byte_FFFF9A3B: ds.b 1 ; DATA XREF: sub_26DFA+132w ; OS2:00048F2Ew ... byte_FFFF9A3C: ds.b 1 ; DATA XREF: sub_26DFA+136w ; sub_7D368:loc_7D3E6r ... byte_FFFF9A3D: ds.b 1 ; DATA XREF: OS1:0003FD62w byte_FFFF9A3E: ds.b 1 ; DATA XREF: OS2:000408FCw ds.b 1 byte_FFFF9A40: ds.b 1 ; DATA XREF: OS2:000415ECw ; OS2:000416C6r byte_FFFF9A41: ds.b 1 ; DATA XREF: OS2:00041632w ; OS2:0004167Aw ... byte_FFFF9A42: ds.b 1 ; DATA XREF: OS2:0004171Aw ; OS2:00041736r ... byte_FFFF9A43: ds.b 1 ; DATA XREF: OS2:00041918w ; OS2:00041A94r ... byte_FFFF9A44: ds.b 1 ; DATA XREF: OS1:0003FED8w ; OS1:0003FF96r byte_FFFF9A45: ds.b 1 ; DATA XREF: OS1:0003FF38w ; OS1:0003FFA2r ... byte_FFFF9A46: ds.b 1 ; DATA XREF: OS1:loc_3FF10w ; OS1:loc_3FF26w ... byte_FFFF9A47: ds.b 1 ; DATA XREF: OS1:0003FF34w ; OS1:0003FF84r ... word_FFFF9A48: ds.b 2 ; DATA XREF: OS2:0004009Aw ; OS2:000400D4r byte_FFFF9A4A: ds.b 1 ; DATA XREF: sub_40044+28w ; OS2:000400EEr byte_FFFF9A4B: ds.b 1 ; DATA XREF: OS2:000401A8w ; OS2:00040208r ... byte_FFFF9A4C: ds.b 1 ; DATA XREF: OS2:000401C4w ; OS2:000401DEw ... ds.b 1 word_FFFF9A4E: ds.b 2 ; DATA XREF: sub_400FE+Ar ; sub_400FE:loc_40116r ... byte_FFFF9A50: ds.b 1 ; DATA XREF: TenSecondDelayIsInHere:loc_3FCA0w ; sub_40278:loc_4033Cw ... ds.b 1 word_FFFF9A52: ds.b 2 ; DATA XREF: OS2:0004051Cw ; OS2:000405AAr word_FFFF9A54: ds.b 2 ; DATA XREF: OS2:0004056Er ; OS2:loc_405D0r ... byte_FFFF9A56: ds.b 1 ; DATA XREF: TenSecondDelayIsInHere+2w ; sub_40414+8r ... byte_FFFF9A57: ds.b 1 ; DATA XREF: sub_40414+86w ; sub_40414+C2w ... byte_FFFF9A58: ds.b 1 ; DATA XREF: sub_40414+D0w ; OS2:000405C0r ... ds.b 1 word_FFFF9A5A: ds.b 2 ; DATA XREF: sub_40414:loc_404A2r ; OS2:00040586w ... dword_FFFF9A5C: ds.b 4 ; DATA XREF: OS2:000406FAw ; OS2:00040722r word_FFFF9A60: ds.b 2 ; DATA XREF: OS2:000407A0w ; OS2:00040880r byte_FFFF9A62: ds.b 1 ; DATA XREF: OS2:0004078Cw ; OS2:000407FEr byte_FFFF9A63: ds.b 1 ; DATA XREF: TenSecondDelayIsInHere+2Ew ; sub_40278+92w ... byte_FFFF9A64: ds.b 1 ; DATA XREF: TenSecondDelayIsInHere+2Aw ; sub_40278+8Ew ... byte_FFFF9A65: ds.b 1 ; DATA XREF: TenSecondDelayIsInHere+6w ; sub_40982+44r ... byte_FFFF9A66: ds.b 1 ; DATA XREF: TenSecondDelayIsInHere+Aw ; sub_40AD6+20r ... ds.b 1 word_FFFF9A68: ds.b 2 ; DATA XREF: OS2:0004056Ew ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9A76: ds.b 1 ; DATA XREF: OS2:000411FEr ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9A7E: ds.b 1 ; DATA XREF: OS2:000411BCr ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9A85: ds.b 1 ; DATA XREF: OS2:00041560w ; OS2:0004158Ar byte_FFFF9A86: ds.b 1 ; DATA XREF: OS2:0004155Aw ; OS2:00041580r ds.b 1 byte_FFFF9A88: ds.b 1 ; DATA XREF: sub_3FCA8+8w ; sub_3FCA8+34w ... byte_FFFF9A89: ds.b 1 ; DATA XREF: sub_3FCA8+10w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9A90: ds.b 1 ; DATA XREF: OS2:loc_41CA2w byte_FFFF9A91: ds.b 1 ; DATA XREF: OS2:00041CA6w byte_FFFF9A92: ds.b 1 ; DATA XREF: OS2:00041CAEw byte_FFFF9A93: ds.b 1 ; DATA XREF: OS2:00041CB8w byte_FFFF9A94: ds.b 1 ; DATA XREF: OS2:00041CC2w byte_FFFF9A95: ds.b 1 ; DATA XREF: OS2:00041CCCw byte_FFFF9A96: ds.b 1 ; DATA XREF: OS2:00041CD6w ds.b 1 dword_FFFF9A98: ds.b 4 ; DATA XREF: OS2:0004162Aw word_FFFF9A9C: ds.b 2 ; DATA XREF: OS2:00041604w byte_FFFF9A9E: ds.b 1 ; DATA XREF: OS2:00041C06w ; OS2:00041D3Cr ... byte_FFFF9A9F: ds.b 1 ; DATA XREF: OS2:loc_41C34w ; OS2:00041C56w ... byte_FFFF9AA0: ds.b 1 ; DATA XREF: DoLoopG:loc_2B3E2r ; DoLoopG+2C4w ... byte_FFFF9AA1: ds.b 1 ; DATA XREF: sub_41DDA+Ar ; ModeInitHandler+C8w ... byte_FFFF9AA2: ds.b 1 ; DATA XREF: ModeInitHandler+A2w ; sub_85D6E+136w ... byte_FFFF9AA3: ds.b 1 ; DATA XREF: sub_41E26+5Ar ; sub_451EA+288w ... byte_FFFF9AA4: ds.b 1 ; DATA XREF: DoLoopC+64r DoLoopC+78r ... ds.b 1 ds.b 1 byte_FFFF9AA7: ds.b 1 ; DATA XREF: sub_45F3A:loc_46612w byte_FFFF9AA8: ds.b 1 ; DATA XREF: sub_45F3A+10E0w ; sub_45F3A+112Cw ... byte_FFFF9AA9: ds.b 1 ; DATA XREF: sub_47B10+24w ; sub_47DA2+ECw byte_FFFF9AAA: ds.b 1 ; DATA XREF: sub_47B10+2Ew ; sub_47DA2+F6w byte_FFFF9AAB: ds.b 1 ; DATA XREF: sub_45F3A+558w ; sub_45F3A+5D0w ... byte_FFFF9AAC: ds.b 1 ; DATA XREF: sub_45F3A+55Ew ; sub_45F3A+5D6w ... byte_FFFF9AAD: ds.b 1 ; DATA XREF: sub_45F3A:loc_466CAw ; sub_47DA2:loc_47F1Aw byte_FFFF9AAE: ds.b 1 ; DATA XREF: sub_45F3A+1032w ; sub_47DA2+190w byte_FFFF9AAF: ds.b 1 ; DATA XREF: sub_45F3A+1038w ; sub_47DA2+196w byte_FFFF9AB0: ds.b 1 ; DATA XREF: sub_45F3A+1862w ; sub_47DA2:loc_47FE8w byte_FFFF9AB1: ds.b 1 ; DATA XREF: sub_45F3A:loc_46E5Cw ; sub_47DA2:loc_47FA6w byte_FFFF9AB2: ds.b 1 ; DATA XREF: sub_45F3A+E1Ew ; sub_47DA2+220w byte_FFFF9AB3: ds.b 1 ; DATA XREF: OS2:00048E50w byte_FFFF9AB4: ds.b 1 ; DATA XREF: OS2:00048E64w byte_FFFF9AB5: ds.b 1 ; DATA XREF: OS2:00048E78w byte_FFFF9AB6: ds.b 1 ; DATA XREF: OS2:00048E8Cw byte_FFFF9AB7: ds.b 1 ; DATA XREF: OS2:loc_48ED6w byte_FFFF9AB8: ds.b 1 ; DATA XREF: sub_47DA2+34w byte_FFFF9AB9: ds.b 1 ; DATA XREF: sub_47DA2+3Aw byte_FFFF9ABA: ds.b 1 ; DATA XREF: sub_45F3A+DA4w ; sub_47DA2+2D6w byte_FFFF9ABB: ds.b 1 ; DATA XREF: sub_45F3A:loc_470DCw ; sub_47DA2:loc_480A2w byte_FFFF9ABC: ds.b 1 ; DATA XREF: sub_45F3A:loc_47182w ; sub_45F3A+12C4w ... byte_FFFF9ABD: ds.b 1 ; DATA XREF: sub_45F3A+1320w ; sub_47DA2+358w byte_FFFF9ABE: ds.b 1 ; DATA XREF: sub_47DA2+370w byte_FFFF9ABF: ds.b 1 ; DATA XREF: sub_45F3A:loc_46348w ; sub_47DA2:loc_48156w byte_FFFF9AC0: ds.b 1 ; DATA XREF: sub_47DA2:loc_48190w byte_FFFF9AC1: ds.b 1 ; DATA XREF: sub_47DA2+B20w byte_FFFF9AC2: ds.b 1 ; DATA XREF: sub_45F3A+16B6w ; sub_47DA2+402w byte_FFFF9AC3: ds.b 1 ; DATA XREF: sub_45F3A+16BCw ; sub_47DA2+408w byte_FFFF9AC4: ds.b 1 ; DATA XREF: sub_45F3A+9B8w byte_FFFF9AC5: ds.b 1 ; DATA XREF: sub_45F3A+9BEw byte_FFFF9AC6: ds.b 1 ; DATA XREF: sub_45F3A+9E2w ; sub_47DA2+436w byte_FFFF9AC7: ds.b 1 ; DATA XREF: sub_45F3A+9E8w ; sub_47DA2+43Cw byte_FFFF9AC8: ds.b 1 ; DATA XREF: sub_45F3A+1660w ; sub_47DA2+446w byte_FFFF9AC9: ds.b 1 ; DATA XREF: sub_45F3A+1666w ; sub_47DA2+44Cw byte_FFFF9ACA: ds.b 1 ; DATA XREF: sub_45F3A:loc_472E6w ; sub_45F3A+145Ew ... byte_FFFF9ACB: ds.b 1 ; DATA XREF: sub_45F3A+14A2w ; sub_45F3A+1578w ... byte_FFFF9ACC: ds.b 1 ; DATA XREF: sub_45F3A+14A8w ; sub_45F3A+157Ew ... byte_FFFF9ACD: ds.b 1 ; DATA XREF: sub_45F3A+62Ew ; OS2:000490C2w ds.b 1 ds.b 1 byte_FFFF9AD0: ds.b 1 ; DATA XREF: sub_45F3A:loc_46964w ; sub_47DA2+4CAw ds.b 1 ds.b 1 byte_FFFF9AD3: ds.b 1 ; DATA XREF: sub_45F3A+1A4w ; sub_47DA2+4D4w byte_FFFF9AD4: ds.b 1 ; DATA XREF: sub_45F3A+CB0w ; sub_47DA2+504w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9AE0: ds.b 1 ; DATA XREF: ModeInitHandler+AAo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9B1C: ds.b 1 ; DATA XREF: sub_41E26:loc_41E62r ; ModeInitHandler+92w byte_FFFF9B1D: ds.b 1 ; DATA XREF: sub_41E26+36r ; ModeInitHandler+8Ew ... dword_FFFF9B1E: ds.b 4 ; DATA XREF: sub_41DDAr ; sub_41DDA:loc_41DF0r ... dword_FFFF9B22: ds.b 4 ; DATA XREF: sub_41DDA+4r ; ModeInitHandler+C0w ... dword_FFFF9B26: ds.b 4 ; DATA XREF: ModeInitHandler+C4w ; sub_85D6E:loc_85E5Cw ... byte_FFFF9B2A: ds.b 1 ; DATA XREF: OS2:GetPid_1155r ; GetFuelLevel+38r ... byte_FFFF9B2B: ds.b 1 ; DATA XREF: OS2:GetPid_1338r ; GetFuelLevel:loc_7FDC8r ... word_FFFF9B2C: ds.b 2 ; DATA XREF: OS2:GetPid_114E_FuelTankPressurer ; sub_645B0+8r ... byte_FFFF9B2E: ds.b 1 ; DATA XREF: sub_2CC22+AEr ; sub_2F386:loc_2F39Cr ... ds.b 1 dword_FFFF9B30: ds.b 4 ; DATA XREF: OS2:00044628r ; sub_6653A:loc_666A8r ... dword_FFFF9B34: ds.b 4 ; DATA XREF: OS2:loc_4462Er ; sub_45F3A+1484r ... dword_FFFF9B38: ds.b 4 ; DATA XREF: sub_6653A+256r ; sub_6653A+286r ... dword_FFFF9B3C: ds.b 4 ; DATA XREF: sub_6653A+25Cr ; sub_6653A+2A6r ... dword_FFFF9B40: ds.b 4 ; DATA XREF: sub_6653A+2CAr ; sub_6653A+336r ... dword_FFFF9B44: ds.b 4 ; DATA XREF: sub_6653A+2FCr ; sub_6653A+364r ... word_FFFF9B48: ds.b 2 ; DATA XREF: sub_6653A+250r ; sub_6653A:loc_669AEr ... word_FFFF9B4A: ds.b 2 ; DATA XREF: OS2:GetPid_12E3r ; sub_64D6C+4r ... word_FFFF9B4C: ds.b 2 ; DATA XREF: sub_63E94+28r ; sub_63E94+56r ... word_FFFF9B4E: ds.b 2 ; DATA XREF: sub_63E94+Cr ; sub_63E94+3Cr ... word_FFFF9B50: ds.b 2 ; DATA XREF: OS2:000444DEr ; sub_45F3A+139Ar ... word_FFFF9B52: ds.b 2 ; DATA XREF: sub_2F386+F8r ; sub_64EFC+6D4r ... byte_FFFF9B54: ds.b 1 ; DATA XREF: sub_64EFC:loc_6608Er ; sub_64EFC+12C0r ... ds.b 1 word_FFFF9B56: ds.b 2 ; DATA XREF: sub_64216+26r ; sub_646F6+16r ... byte_FFFF9B58: ds.b 1 ; DATA XREF: sub_7F36C:loc_7F46Cw ; sub_7F36C+116w ... ds.b 1 word_FFFF9B5A: ds.b 2 ; DATA XREF: sub_7F61E+334w byte_FFFF9B5C: ds.b 1 ; DATA XREF: GetFuelLevel+3Er ; GetFuelLevel:loc_7FD66w ... byte_FFFF9B5D: ds.b 1 ; DATA XREF: GetFuelLevel+B2r ; GetFuelLevel:loc_7FDDAw ... byte_FFFF9B5E: ds.b 1 ; DATA XREF: GetFuelLevel+78r ; GetFuelLevel:loc_7FDA0w ... byte_FFFF9B5F: ds.b 1 ; DATA XREF: GetFuelLevel+F0r ; GetFuelLevel:loc_7FE18w ... byte_FFFF9B60: ds.b 1 ; DATA XREF: sub_7F36C+54r ; sub_7F36C:loc_7F3CCw ... byte_FFFF9B61: ds.b 1 ; DATA XREF: sub_7F61E+32r ; sub_7F61E+66w ... byte_FFFF9B62: ds.b 1 ; DATA XREF: sub_7F36C:loc_7F3A6r ; sub_7F36C:loc_7F3B2w ... ds.b 1 word_FFFF9B64: ds.b 2 ; DATA XREF: sub_7F61E:loc_7FC2Ew ; sub_803A4+1ECw ... byte_FFFF9B66: ds.b 1 ; DATA XREF: sub_7F61E+636w ; sub_7F61E:loc_7FC78r ... byte_FFFF9B67: ds.b 1 ; DATA XREF: sub_7F61E+3E0r ; sub_7F61E+42Aw ... word_FFFF9B68: ds.b 2 ; DATA XREF: sub_7F61E:loc_7FC3Ew ; sub_803A4+1F4w ... byte_FFFF9B6A: ds.b 1 ; DATA XREF: sub_7F61E:loc_7FAECr ; sub_7F61E+4D4w ... byte_FFFF9B6B: ds.b 1 ; DATA XREF: sub_7F61E+632w ; sub_7F61E+68Ew ... byte_FFFF9B6C: ds.b 1 ; DATA XREF: sub_7F61E+3Ar ; sub_7F61E+46w ... ds.b 1 word_FFFF9B6E: ds.b 2 ; DATA XREF: sub_803A4+A4w byte_FFFF9B70: ds.b 1 ; DATA XREF: sub_7F4CA+A4r ; sub_7F4CA+C6w ... byte_FFFF9B71: ds.b 1 ; DATA XREF: sub_7F61E+42Er ; sub_7F61E+434w ... dword_FFFF9B72: ds.b 4 ; DATA XREF: sub_7F61E+35Ar ; sub_7F61E:loc_7F98Aw ... word_FFFF9B76: ds.b 2 ; DATA XREF: sub_7F61E+5F8w ; sub_7F61E:loc_7FC22r ... word_FFFF9B78: ds.b 2 ; DATA XREF: sub_7F61E+5FEw ; sub_7F61E+614r ... word_FFFF9B7A: ds.b 2 ; DATA XREF: sub_7FEDC+Cr ; OS3:0007FFECw word_FFFF9B7C: ds.b 2 ; DATA XREF: OS3:loc_7FF78w ; OS3:loc_7FFBAw ... word_FFFF9B7E: ds.b 2 ; DATA XREF: OS3:loc_7FF8Cw ; OS3:loc_7FFE2w ... word_FFFF9B80: ds.b 2 ; DATA XREF: sub_802BE:loc_802FCw ; sub_802BE+4Ew ... word_FFFF9B82: ds.b 2 ; DATA XREF: sub_803A4+4Ew word_FFFF9B84: ds.b 2 ; DATA XREF: sub_7F61E+4D8w ; sub_7F61E:loc_7FAFEr word_FFFF9B86: ds.b 2 ; DATA XREF: sub_7F61E+3FAr ; sub_7F61E:loc_7FA78r ... word_FFFF9B88: ds.b 2 ; DATA XREF: sub_7F61E+47Cr ; sub_7F61E:loc_7FABEw ... dword_FFFF9B8A: ds.b 4 ; DATA XREF: sub_7F61E+438w ; sub_7F61E+512r ... dword_FFFF9B8E: ds.b 4 ; DATA XREF: sub_7F61E+454w ; sub_7F61E+516r byte_FFFF9B92: ds.b 1 ; DATA XREF: sub_7F61E+3F4r ; sub_7F61E:loc_7FB54w ... ds.b 1 word_FFFF9B94: ds.b 2 ; DATA XREF: sub_7F61E+6ECw ; sub_803A4:loc_80708w word_FFFF9B96: ds.b 2 ; DATA XREF: sub_7F61E+666w word_FFFF9B98: ds.b 2 ; DATA XREF: sub_7F4CA:loc_7F5AEw ; sub_7F4CA+10Er ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF9B9E: ds.b 2 ; DATA XREF: sub_7FE4C+Aw word_FFFF9BA0: ds.b 2 ; DATA XREF: sub_803A4+1D2w ; sub_803A4+336w word_FFFF9BA2: ds.b 2 ; DATA XREF: sub_7F36C+28w ; sub_7F36C:loc_7F39Ew ... word_FFFF9BA4: ds.b 2 ; DATA XREF: sub_7F61E:loc_7F65Ew ; sub_7F61E:loc_7F66Cr ... word_FFFF9BA6: ds.b 2 ; DATA XREF: sub_802BE+30w byte_FFFF9BA8: ds.b 1 ; DATA XREF: sub_7FEDC+2r ; OS3:0007FFE6w ... byte_FFFF9BA9: ds.b 1 ; DATA XREF: sub_7F36C+8r ; sub_7F36C:loc_7F4B4r ... word_FFFF9BAA: ds.b 2 ; DATA XREF: sub_7F61E+5F8r ; sub_7F61E+608r ... word_FFFF9BAC: ds.b 2 ; DATA XREF: sub_7F61E+2B2r ; sub_7F61E+5FEr ... word_FFFF9BAE: ds.b 2 ; DATA XREF: OS4:00080024r ; sub_8003E+12w ... word_FFFF9BB0: ds.b 2 ; DATA XREF: OS3:0007FF82r ; OS4:00080028r ... byte_FFFF9BB2: ds.b 1 ; DATA XREF: sub_7F61E+5ECr ; sub_7F61E+5F2w ... byte_FFFF9BB3: ds.b 1 ; DATA XREF: sub_4FC18+14r ; sub_4FC18+2Ew ... word_FFFF9BB4: ds.b 2 ; DATA XREF: sub_4DD5C+DDCw ; sub_4DD5C+E16w ... word_FFFF9BB6: ds.b 2 ; DATA XREF: sub_4DD5C+DD6w ; sub_4DD5C+E10w byte_FFFF9BB8: ds.b 1 ; DATA XREF: sub_4D918+3Cr ; sub_4DD5C+CBEw ... byte_FFFF9BB9: ds.b 1 ; DATA XREF: sub_4AE50+14r ; sub_4AE50+24r ... byte_FFFF9BBA: ds.b 1 ; DATA XREF: OS2:loc_448CEr ; OS2:loc_448E0r ... byte_FFFF9BBB: ds.b 1 ; DATA XREF: sub_4D8A8+14r ; sub_4D8A8+1Cw ... byte_FFFF9BBC: ds.b 1 ; DATA XREF: sub_4B780+6r ; sub_4D86E+2Aw ... byte_FFFF9BBD: ds.b 1 ; DATA XREF: sub_4D97C+76w ; sub_4D97C+7Cw ... word_FFFF9BBE: ds.b 2 ; DATA XREF: sub_4DD5C+DDCr ; sub_4DD5C+DE2w ... word_FFFF9BC0: ds.b 2 ; DATA XREF: sub_4D97C+20r ; sub_4DCF2+4Ar ... word_FFFF9BC2: ds.b 2 ; DATA XREF: sub_4DD5C+CEw ; sub_5B14C:loc_5B1A2r ... word_FFFF9BC4: ds.b 2 ; DATA XREF: sub_4DD5C+D5Aw byte_FFFF9BC6: ds.b 1 ; DATA XREF: sub_4D97C:loc_4D9E6r ; sub_4DD5C+C92r ... ds.b 1 word_FFFF9BC8: ds.b 2 ; DATA XREF: sub_4DD5C+404r ; sub_4DD5C+410r ... word_FFFF9BCA: ds.b 2 ; DATA XREF: sub_4ED50+9Er ; sub_4ED50+BCr ... word_FFFF9BCC: ds.b 2 ; DATA XREF: sub_4D8A8+28r ; sub_4D97C+54r ... word_FFFF9BCE: ds.b 2 ; DATA XREF: sub_4DD5C+EC2w ; sub_4DD5C+F44r ... word_FFFF9BD0: ds.b 2 ; DATA XREF: sub_4DD5C+F5Aw ; sub_5D8C4+68r word_FFFF9BD2: ds.b 2 ; DATA XREF: sub_4DD5C+DF0w ; sub_5DC70+72r word_FFFF9BD4: ds.b 2 ; DATA XREF: sub_4DD5C:loc_4E69Ar ; sub_4DD5C+AE2w ... word_FFFF9BD6: ds.b 2 ; DATA XREF: sub_4DD5C+4Cw word_FFFF9BD8: ds.b 2 ; DATA XREF: sub_4DD5C+60w ; sub_4DD5C+7Cr word_FFFF9BDA: ds.b 2 ; DATA XREF: sub_4DD5C+B2w word_FFFF9BDC: ds.b 2 ; DATA XREF: sub_4DD5C+1D6w word_FFFF9BDE: ds.b 2 ; DATA XREF: sub_4DD5C+F6w word_FFFF9BE0: ds.b 2 ; DATA XREF: sub_4DD5C+11Aw word_FFFF9BE2: ds.b 2 ; DATA XREF: sub_4DD5C+134w word_FFFF9BE4: ds.b 2 ; DATA XREF: sub_4DD5C+14Ew ; sub_4DD5C+1E8r word_FFFF9BE6: ds.b 2 ; DATA XREF: sub_4D97C:loc_4D998r ; sub_4DD5C+20Aw ... word_FFFF9BE8: ds.b 2 ; DATA XREF: sub_4DD5C+18Ew ; sub_4DD5C:loc_4DF14w ... word_FFFF9BEA: ds.b 2 ; DATA XREF: sub_4DD5C+DECw ; sub_4DD5C+F94w ... word_FFFF9BEC: ds.b 2 ; DATA XREF: sub_4DC04+4Cr ; sub_4DC04+60w ... word_FFFF9BEE: ds.b 2 ; DATA XREF: sub_4DD5C+4CAr ; sub_4DD5C:loc_4E232w ... word_FFFF9BF0: ds.b 2 ; DATA XREF: sub_4DD5C+6F8r ; sub_4DD5C:loc_4E462w ... word_FFFF9BF2: ds.b 2 ; DATA XREF: sub_4DD5C+49Er ; sub_4DD5C:loc_4E206w ... word_FFFF9BF4: ds.b 2 ; DATA XREF: sub_4DD5C+4F6w ; sub_4DD5C+53Cr ... word_FFFF9BF6: ds.b 2 ; DATA XREF: sub_4D97C+62r ; sub_4D97C+9Cr ... word_FFFF9BF8: ds.b 2 ; DATA XREF: sub_4DCF2+8r ; sub_4DD5C:loc_4E036w ... word_FFFF9BFA: ds.b 2 ; DATA XREF: sub_4D97C+8Cw ; sub_4DB06+8w ... word_FFFF9BFC: ds.b 2 ; DATA XREF: sub_4DCF2:loc_4DD38r ; sub_4DCF2+62r ... word_FFFF9BFE: ds.b 2 ; DATA XREF: sub_4DD5C+354w ; sub_4DD5C+35Ar dword_FFFF9C00: ds.b 4 ; DATA XREF: sub_4DD5C+392r ; sub_4DD5C:loc_4E128r ... dword_FFFF9C04: ds.b 4 ; DATA XREF: sub_4DD5C+35Er ; sub_4DD5C+448r ... byte_FFFF9C08: ds.b 1 ; DATA XREF: sub_4DD5C+738w ; sub_4DD5C:loc_4E520r ... byte_FFFF9C09: ds.b 1 ; DATA XREF: sub_4D86E:loc_4D88Aw ; sub_4D97C:loc_4DA52w ... word_FFFF9C0A: ds.b 2 ; DATA XREF: sub_4D918+26r ; sub_4D97C:loc_4DA56r ... word_FFFF9C0C: ds.b 2 ; DATA XREF: sub_4DC04+20r ; sub_4DD5C+77Aw word_FFFF9C0E: ds.b 2 ; DATA XREF: sub_4D86E+20w ; sub_4D97C:loc_4DA56w ... word_FFFF9C10: ds.b 2 ; DATA XREF: sub_4DD5C:loc_4EA14w ; sub_4DD5C+DCAr ... word_FFFF9C12: ds.b 2 ; DATA XREF: sub_4DD5C+E04w word_FFFF9C14: ds.b 2 ; DATA XREF: sub_4DD5C+DCAw ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF9C1A: ds.b 2 ; DATA XREF: sub_4DD5C+EC6w ; sub_4DD5C+EE8r ... byte_FFFF9C1C: ds.b 1 ; DATA XREF: sub_4DD5C+ECAw ; sub_4DD5C:loc_4EC3Ar ... ds.b 1 word_FFFF9C1E: ds.b 2 ; DATA XREF: sub_4DD5C+E68w ; sub_4DD5C+F9Cr byte_FFFF9C20: ds.b 1 ; DATA XREF: sub_4DD5C:loc_4DFC8r ; sub_4DD5C+276w ... byte_FFFF9C21: ds.b 1 ; DATA XREF: sub_4DD5C+27Cw ; sub_4DD5C:loc_4DFDEr ... word_FFFF9C22: ds.b 2 ; DATA XREF: sub_4DD5C+272w ; sub_4DD5C+288r ... word_FFFF9C24: ds.b 2 ; DATA XREF: sub_4DD5C+288w ; sub_4DD5C+2A6r ... word_FFFF9C26: ds.b 2 ; DATA XREF: sub_4DD5C+2FCw ; sub_4DD5C+310r ... word_FFFF9C28: ds.b 2 ; DATA XREF: sub_4DD5C+20Er ; sub_4DD5C+21Cw ... dword_FFFF9C2A: ds.b 4 ; DATA XREF: sub_4DD5C+38Cw word_FFFF9C2E: ds.b 2 ; DATA XREF: sub_4DCF2+1Aw ; sub_4DCF2+2Cr ... word_FFFF9C30: ds.b 2 ; DATA XREF: sub_4ED50+6r sub_4ED50+Aw word_FFFF9C32: ds.b 2 ; DATA XREF: sub_4DD5C:loc_4E668w ; sub_4DD5C:loc_4E66Ew ... word_FFFF9C34: ds.b 2 ; DATA XREF: sub_4DD5C+928w ; sub_4DD5C:loc_4E696w ... byte_FFFF9C36: ds.b 1 ; DATA XREF: sub_4DD5C+948w ; sub_4DD5C+956w ... byte_FFFF9C37: ds.b 1 ; DATA XREF: sub_4DD5C:loc_4E6CCr ; sub_4DD5C:loc_4E6D4w ... byte_FFFF9C38: ds.b 1 ; DATA XREF: sub_4DD5C+AD0r ; sub_4DD5C:loc_4E9AAw byte_FFFF9C39: ds.b 1 ; DATA XREF: sub_4DD5C+ACAw ; sub_4DD5C+C56r byte_FFFF9C3A: ds.b 1 ; DATA XREF: sub_34B00+3B0r ; sub_71122+4r ... ds.b 1 ds.b 1 ds.b 1 unk_FFFF9C3E: ds.b 1 ds.b 1 dword_FFFF9C40: ds.b 4 ; DATA XREF: sub_733E0+78w ; sub_73466+92w ... dword_FFFF9C44: ds.b 4 ; DATA XREF: sub_733E0+74w ; sub_73466+8Ew ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9C58: ds.b 1 ; DATA XREF: sub_34180+3Cr ; sub_34180+A8r ... byte_FFFF9C59: ds.b 1 ; DATA XREF: sub_72926+58r ; sub_73608:loc_73680w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9C60: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9C68: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9C70: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF9C7A: ds.b 2 ; DATA XREF: sub_729F4+106w ; sub_733E0+6Ew ... word_FFFF9C7C: ds.b 2 ; DATA XREF: sub_729F4+BCr ; sub_729F4:loc_72ABCw ... dword_FFFF9C7E: ds.b 4 ; DATA XREF: sub_729F4+D8r ; sub_729F4:loc_72ADEw ... byte_FFFF9C82: ds.b 1 ; DATA XREF: sub_73106+8Aw ; sub_73106+96w ... ds.b 1 dword_FFFF9C84: ds.b 4 ; DATA XREF: sub_733E0+54w ; sub_73466+58w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9C8E: ds.b 1 ds.b 1 dword_FFFF9C90: ds.b 4 ; DATA XREF: sub_733E0+64w ; sub_73466+68w ... dword_FFFF9C94: ds.b 4 ; DATA XREF: sub_733E0+60w ; sub_73466+64w ... dword_FFFF9C98: ds.b 4 ; DATA XREF: sub_733E0+5Cw ; sub_73466+60w ... dword_FFFF9C9C: ds.b 4 ; DATA XREF: sub_733E0+58w ; sub_73466+5Cw ... word_FFFF9CA0: ds.b 2 ; DATA XREF: sub_73106:loc_73196w ; OS3:000736BCw ... byte_FFFF9CA2: ds.b 1 ; DATA XREF: sub_72926+58w ; sub_72B0E+52Ar byte_FFFF9CA3: ds.b 1 ; DATA XREF: sub_72B0E+33Er ; sub_72B0E:loc_72E5Ar ... byte_FFFF9CA4: ds.b 1 ; DATA XREF: sub_72688:loc_7272Aw ; sub_72688:loc_72730w ... ds.b 1 word_FFFF9CA6: ds.b 2 ; DATA XREF: sub_72688+AEw ; sub_733E0+2Cw ... word_FFFF9CA8: ds.b 2 ; DATA XREF: sub_72926:loc_729A8r ; sub_72926+88w ... word_FFFF9CAA: ds.b 2 ; DATA XREF: sub_72926:loc_7299Cr ; sub_72926+7Cw ... word_FFFF9CAC: ds.b 2 ; DATA XREF: sub_72926:loc_729DAw ; sub_72926:loc_729E8w ... word_FFFF9CAE: ds.b 2 ; DATA XREF: sub_72926:loc_729B2r ; sub_72926+A2w dword_FFFF9CB0: ds.b 4 ; DATA XREF: sub_73466+70w dword_FFFF9CB4: ds.b 4 ; DATA XREF: sub_73466+6Cw ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 dword_FFFF9CFA: ds.b 4 ; DATA XREF: sub_3FCA8+Cr ; OS1:0003FD52w ... unk_FFFF9CFE: ds.b 1 ; DATA XREF: ModeInitHandler+42o ; ModeInitHandler+160o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9D06: ds.b 1 ; DATA XREF: sub_45AE8+2Ar ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9D10: ds.b 1 ; DATA XREF: ModeInitHandler+4Eo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFF9D22: ds.b 1 ; DATA XREF: OS1:0003FD74w ; OS1:0003FDCEw ... byte_FFFF9D23: ds.b 1 ; DATA XREF: sub_45AE8:loc_45BA4r ; sub_45AE8+D8r ... byte_FFFF9D24: ds.b 1 ; DATA XREF: ModeInitHandler+5Aw ; ModeInitHandler+18Ew ... ds.b 1 word_FFFF9D26: ds.b 2 ; DATA XREF: ModeInitHandler+CCw byte_FFFF9D28: ds.b 1 ; DATA XREF: ModeInitHandler+D0w byte_FFFF9D29: ds.b 1 ; DATA XREF: ModeInitHandler+D4w byte_FFFF9D2A: ds.b 1 ; DATA XREF: ModeInitHandler:loc_45042r ; ModeInitHandler+E0r ... byte_FFFF9D2B: ds.b 1 ; DATA XREF: ModeInitHandler+102r ; ModeInitHandler:loc_45088w ... byte_FFFF9D2C: ds.b 1 ; DATA XREF: sub_3C1EE+62r ; sub_3C1EE+74w ... byte_FFFF9D2D: ds.b 1 ; DATA XREF: sub_3C1EE+B4w ; sub_3C1EE+106r ... byte_FFFF9D2E: ds.b 1 ; DATA XREF: sub_3CA2E+70r ; sub_3CB70+40w ... ds.b 1 KnockRetardFast:ds.b 2 ; DATA XREF: sub_3BB66+Ar ; sub_3BDC4+15Ew ... byte_FFFF9D32: ds.b 1 ; DATA XREF: sub_3BDC4+E0w ; sub_3BDC4:loc_3BEAAw ... ds.b 1 word_FFFF9D34: ds.b 2 ; DATA XREF: OS1:0003A9AAr ; sub_3AF0C+E2r ... unk_FFFF9D36: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 KnockSmoothedNoise:ds.b 2 ; DATA XREF: sub_3BC80+14r ; sub_3BC80:loc_3BCC6w word_FFFF9D48: ds.b 2 ; DATA XREF: sub_3BB66+58r ; sub_3C638:loc_3C65Ew word_FFFF9D4A: ds.b 2 ; DATA XREF: sub_3BB66+4Ar ; sub_3C638:loc_3C648w word_FFFF9D4C: ds.b 2 ; DATA XREF: sub_3C1EE+28Ew ; sub_3C1EE:loc_3C486r ... word_FFFF9D4E: ds.b 2 ; DATA XREF: sub_3C1EE+ACw ; sub_3C1EE:loc_3C2BAr ... word_FFFF9D50: ds.b 2 ; DATA XREF: sub_3C68C+106r ; sub_3C68C:loc_3C79Aw ... word_FFFF9D52: ds.b 2 ; DATA XREF: sub_3C1EE+264r ; sub_3C1EE:loc_3C45Aw ... word_FFFF9D54: ds.b 2 ; DATA XREF: sub_3BC80+A4w ds.b 1 ds.b 1 unk_FFFF9D58: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF9D68: ds.b 2 ; DATA XREF: sub_3BDC4:loc_3BE9Er ; sub_3BDC4:loc_3BEC2w ... dword_FFFF9D6A: ds.b 4 ; DATA XREF: sub_3CB70+BCw dword_FFFF9D6E: ds.b 4 ; DATA XREF: sub_3CB70+C0w word_FFFF9D72: ds.b 2 ; DATA XREF: sub_3C68C+62w ; sub_3C68C:loc_3C6FCw ... word_FFFF9D74: ds.b 2 ; DATA XREF: sub_3C68C+E2w ; sub_3C68C+F0w ... word_FFFF9D76: ds.b 2 ; DATA XREF: sub_3BDC4:loc_3BFB6w word_FFFF9D78: ds.b 2 ; DATA XREF: sub_3BDC4+2EEw word_FFFF9D7A: ds.b 2 ; DATA XREF: sub_3BDC4+326w ; sub_3BDC4+332r word_FFFF9D7C: ds.b 2 ; DATA XREF: sub_3BDC4+216w ; sub_3BDC4+23Cw ... word_FFFF9D7E: ds.b 2 ; DATA XREF: sub_3C68C:loc_3C73Ew ; sub_3C68C+B8r ... word_FFFF9D80: ds.b 2 ; DATA XREF: sub_3C4AC:loc_3C500w ; sub_3C4AC:loc_3C622w ... word_FFFF9D82: ds.b 2 ; DATA XREF: sub_3BB66+38r ; sub_3C1CC+4r ... word_FFFF9D84: ds.b 2 ; DATA XREF: sub_3C638+1Er ; sub_3C638+2Aw word_FFFF9D86: ds.b 2 ; DATA XREF: sub_3C1EE+206r ; sub_3C1EE:loc_3C3FCw ... word_FFFF9D88: ds.b 2 ; DATA XREF: sub_3C1EE+230w ; sub_3C1EE:loc_3C428r ... word_FFFF9D8A: ds.b 2 ; DATA XREF: sub_3C638+8r ; sub_3C638+14w byte_FFFF9D8C: ds.b 1 ; DATA XREF: sub_3BC80+2Ar ; sub_3BC80:loc_3BCB4w ... byte_FFFF9D8D: ds.b 1 ; DATA XREF: sub_3C638+2Er ; sub_3C638+3Aw ... byte_FFFF9D8E: ds.b 1 ; DATA XREF: sub_3BC80+Cr ; sub_3C68C+210r ... byte_FFFF9D8F: ds.b 1 ; DATA XREF: sub_3C68C:loc_3C8ACr ; sub_3CB70+B2w byte_FFFF9D90: ds.b 1 ; DATA XREF: sub_3BDC4+ECr ; sub_3BDC4:loc_3C004r ... byte_FFFF9D91: ds.b 1 ; DATA XREF: sub_3BDC4+2A0w ; sub_3BDC4+374r ... word_FFFF9D92: ds.b 2 ; DATA XREF: sub_3BDC4:loc_3BF86w ; sub_3CB70+34w ... byte_FFFF9D94: ds.b 1 ; DATA XREF: sub_3C1EE+288w ; sub_3C1EE+2B2w ... byte_FFFF9D95: ds.b 1 ; DATA XREF: sub_3C1EE+68r ; sub_3C1EE+6Ew ... byte_FFFF9D96: ds.b 1 ; DATA XREF: sub_3C1EE:loc_3C22Er ; sub_3CA2E+Ew ... byte_FFFF9D97: ds.b 1 ; DATA XREF: sub_3C1EE+34w ; sub_3C1EE+46r ... byte_FFFF9D98: ds.b 1 ; DATA XREF: sub_3CA2E:loc_3CA4Ew byte_FFFF9D99: ds.b 1 ; DATA XREF: sub_3BC80+4r ; sub_3BDC4:loc_3BEBCr ... byte_FFFF9D9A: ds.b 1 ; DATA XREF: sub_3BB66+66w ; sub_3BB66:loc_3BC60w byte_FFFF9D9B: ds.b 1 ; DATA XREF: sub_3C1EE+A6r ; sub_3C1EE:loc_3C30Ar ... byte_FFFF9D9C: ds.b 1 ; DATA XREF: sub_3C1EE+30w ; sub_3C1EE+3Cw ... byte_FFFF9D9D: ds.b 1 ; DATA XREF: sub_3C68C:loc_3C7ACw ; sub_3C68C:loc_3C7FAr ... byte_FFFF9D9E: ds.b 1 ; DATA XREF: sub_3C1EE+22Aw ; sub_3C1EE+25Aw ... byte_FFFF9D9F: ds.b 1 ; DATA XREF: sub_58D18+28w ; sub_58D18:loc_58D80w ... byte_FFFF9DA0: ds.b 1 ; DATA XREF: sub_2E726+1E4r ; sub_2E726+1F0w ... byte_FFFF9DA1: ds.b 1 ; DATA XREF: sub_2E726+23Ar ; sub_2E726+246w ... byte_FFFF9DA2: ds.b 1 ; DATA XREF: sub_2E726:loc_2E7A2w ; sub_2E726+128w ... byte_FFFF9DA3: ds.b 1 ; DATA XREF: sub_2E726:loc_2E8C4w ; sub_2E726+1DAw ... byte_FFFF9DA4: ds.b 1 ; DATA XREF: sub_282C4:loc_285DEr ; sub_2E726+13Ew ... byte_FFFF9DA5: ds.b 1 ; DATA XREF: sub_2E726+38r ; sub_2E726+138r ... byte_FFFF9DA6: ds.b 1 ; DATA XREF: sub_2E726:loc_2E816r ; sub_2E726+166r ... byte_FFFF9DA7: ds.b 1 ; DATA XREF: sub_2EBD6+2A0w ; sub_2EBD6+2D2w ... byte_FFFF9DA8: ds.b 1 ; DATA XREF: sub_20B50:loc_20B80r ; sub_2EBD6+62w ... ds.b 1 word_FFFF9DAA: ds.b 2 ; DATA XREF: sub_2EA9A+F8r ; sub_2EBD6:loc_2F17Cw ... word_FFFF9DAC: ds.b 2 ; DATA XREF: sub_2EA9A:loc_2EB88w ; sub_2EBD6+40r ... word_FFFF9DAE: ds.b 2 ; DATA XREF: sub_2EBD6+470w ; OS1:0002F25Ew ... word_FFFF9DB0: ds.b 2 ; DATA XREF: sub_2EBD6+516w ; sub_2EBD6+58Er ... word_FFFF9DB2: ds.b 2 ; DATA XREF: OS1:000291FEr ; sub_2EBD6+524w ... word_FFFF9DB4: ds.b 2 ; DATA XREF: sub_2EA9A+F2w ; sub_670C2+1Cr ... word_FFFF9DB6: ds.b 2 ; DATA XREF: sub_2E726+10Cr ; sub_2E726+332w word_FFFF9DB8: ds.b 2 ; DATA XREF: sub_2E726+F6r ; sub_2E726+33Ew word_FFFF9DBA: ds.b 2 ; DATA XREF: sub_2E726+A8r ; sub_2E726:loc_2E806r ... word_FFFF9DBC: ds.b 2 ; DATA XREF: sub_2E726+1C4r ; sub_2E726:loc_2EA6Cw word_FFFF9DBE: ds.b 2 ; DATA XREF: sub_2E726+1EAr ; sub_2E726+1F6w ... word_FFFF9DC0: ds.b 2 ; DATA XREF: sub_2E726+240r ; sub_2E726+24Cw ... word_FFFF9DC2: ds.b 2 ; DATA XREF: sub_2E726+150r ; sub_2E726:loc_2EA52w word_FFFF9DC4: ds.b 2 ; DATA XREF: sub_2EA9A+68r ; sub_2EA9A:loc_2EB6Cw ... byte_FFFF9DC6: ds.b 1 ; DATA XREF: sub_2EA9A+52r ; sub_2EA9A:loc_2EAF8w ... ds.b 1 word_FFFF9DC8: ds.b 2 ; DATA XREF: sub_2E726+2CEr ; sub_2E726+2DAr ... word_FFFF9DCA: ds.b 2 ; DATA XREF: sub_2EBD6:loc_2ECACw ; sub_2EBD6+106w ... word_FFFF9DCC: ds.b 2 ; DATA XREF: sub_2EBD6:loc_2EE10w ; sub_2EBD6:loc_2EE58w ... word_FFFF9DCE: ds.b 2 ; DATA XREF: sub_2EBD6+C2w ; OS1:0002F226w ... word_FFFF9DD0: ds.b 2 ; DATA XREF: sub_2EBD6+4Cr ; sub_2EBD6:loc_2EC40w unk_FFFF9DD2: ds.b 1 ; DATA XREF: sub_2EA9A+14o ; sub_2EA9A+70o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9DE2: ds.b 1 ; DATA XREF: sub_2EA9A+18o ds.b 1 ds.b 1 ds.b 1 dword_FFFF9DE6: ds.b 4 ; DATA XREF: sub_2EA9A+28r ds.b 1 ds.b 1 ds.b 1 ds.b 1 dword_FFFF9DEE: ds.b 4 ; DATA XREF: sub_2EA9A+24r word_FFFF9DF2: ds.b 2 ; DATA XREF: sub_2EBD6:loc_2EC64w word_FFFF9DF4: ds.b 2 ; DATA XREF: sub_2EBD6:loc_2F058r ; sub_2EBD6+4A4r ... word_FFFF9DF6: ds.b 2 ; DATA XREF: sub_2EBD6+478w ; sub_2EBD6:loc_2F054w ... word_FFFF9DF8: ds.b 2 ; DATA XREF: sub_2EBD6+34Aw ; sub_2EBD6:loc_2EF2Aw ... word_FFFF9DFA: ds.b 2 ; DATA XREF: sub_2EBD6+416w ; sub_2EBD6:loc_2EFFCw ... word_FFFF9DFC: ds.b 2 ; DATA XREF: sub_2EBD6+2Cw ; sub_2EBD6:loc_2EE6Cw ... word_FFFF9DFE: ds.b 2 ; DATA XREF: sub_2EBD6:loc_2EF78w ; sub_2EBD6:loc_2EFA0w ... word_FFFF9E00: ds.b 2 ; DATA XREF: sub_2EBD6:loc_2EF5Cr ; sub_2EBD6+398r ... word_FFFF9E02: ds.b 2 ; DATA XREF: sub_2EBD6+15Ew ; sub_2EBD6:loc_2ED3Aw ... word_FFFF9E04: ds.b 2 ; DATA XREF: sub_2EBD6+19Ew ; OS1:0002F232w ... word_FFFF9E06: ds.b 2 ; DATA XREF: sub_2EBD6+1BAw ; sub_2EBD6:loc_2ED96w ... word_FFFF9E08: ds.b 2 ; DATA XREF: sub_2EBD6+410w ; sub_2EBD6:loc_2F000r ... byte_FFFF9E0A: ds.b 1 ; DATA XREF: sub_2EA9A+10Cr ; sub_2EA9A+126w ... byte_FFFF9E0B: ds.b 1 ; DATA XREF: sub_2EBD6+33Cw ; sub_2EBD6:loc_2EF30w ... byte_FFFF9E0C: ds.b 1 ; DATA XREF: sub_2EBD6+2E2w ; sub_2EBD6+2F2w ... byte_FFFF9E0D: ds.b 1 ; DATA XREF: sub_2EBD6+1E4w ; sub_2EBD6+1F4w ... byte_FFFF9E0E: ds.b 1 ; DATA XREF: sub_2EBD6+3D6r ; sub_2EBD6+41Ew ... byte_FFFF9E0F: ds.b 1 ; DATA XREF: sub_2EA9A+116w ; OS1:0002F272w ... word_FFFF9E10: ds.b 2 ; DATA XREF: sub_24716:loc_260CCr ; OS3:0007EF44w ... word_FFFF9E12: ds.b 2 ; DATA XREF: sub_75FCA+442r ; OS3:0007EFB2w ... word_FFFF9E14: ds.b 2 ; DATA XREF: sub_24716+19F4r ; OS3:loc_7E926r ... word_FFFF9E16: ds.b 2 ; DATA XREF: sub_364E2+6r ; DecideIdleMode:loc_391E6r ... word_FFFF9E18: ds.b 2 ; DATA XREF: sub_364E2+118r ; sub_364E2+12Er ... word_FFFF9E1A: ds.b 2 ; DATA XREF: sub_364E2+20r ; sub_364E2+E4r ... byte_FFFF9E1C: ds.b 1 ; DATA XREF: DecideIdleMode+D68r ; DecideIdleMode+DD0r ... ds.b 1 word_FFFF9E1E: ds.b 2 ; DATA XREF: sub_7E0BC:loc_7E3FAw ; sub_7E0BC+386r ... word_FFFF9E20: ds.b 2 ; DATA XREF: sub_2BA40+B2r ; sub_2BA40+12Ar ... word_FFFF9E22: ds.b 2 ; DATA XREF: sub_24716+7DEr ; sub_24716+B98r ... word_FFFF9E24: ds.b 2 ; DATA XREF: sub_7B33A:loc_7B6E0r ; sub_7D8E0:loc_7D988r ... word_FFFF9E26: ds.b 2 ; DATA XREF: sub_7B33A+24Er ; sub_7B33A+2B2r ... word_FFFF9E28: ds.b 2 ; DATA XREF: OS2:GetPid_1337r ; sub_45F3A+672r ... word_FFFF9E2A: ds.b 2 ; DATA XREF: sub_7E0BC+3F4w ; sub_7E0BC+43Cw ... word_FFFF9E2C: ds.b 2 ; DATA XREF: sub_7E0BC+3A2w ; sub_7E0BC+3EAw ... word_FFFF9E2E: ds.b 2 ; DATA XREF: sub_24716:loc_25670r ; sub_261CA+4r ... word_FFFF9E30: ds.b 2 ; DATA XREF: sub_24716:loc_24F16r ; sub_24716+E84r ... word_FFFF9E32: ds.b 2 ; DATA XREF: sub_24716+F82r ; sub_261CA+D6r ... word_FFFF9E34: ds.b 2 ; DATA XREF: sub_24716+118Cr ; sub_7E0BC+1D2w ... word_FFFF9E36: ds.b 2 ; DATA XREF: sub_24716+117Er ; sub_24716+1194r ... byte_FFFF9E38: ds.b 1 ; DATA XREF: OS3:loc_7E854w ; OS3:loc_7EA4Ar ... byte_FFFF9E39: ds.b 1 ; DATA XREF: sub_24716:loc_2572Ar ; sub_7E0BC+5CAr ... word_FFFF9E3A: ds.b 2 ; DATA XREF: sub_7E0BC:loc_7E682w word_FFFF9E3C: ds.b 2 ; DATA XREF: sub_7E0BC:loc_7E338w ; sub_7EFC4+18r ... word_FFFF9E3E: ds.b 2 ; DATA XREF: sub_7E0BC:loc_7E302w ; sub_7E0BC+260r word_FFFF9E40: ds.b 2 ; DATA XREF: sub_7E0BC+6Aw ; sub_7E0BC+72w ... word_FFFF9E42: ds.b 2 ; DATA XREF: sub_7E0BC+12w ; sub_7E0BC+22w ... word_FFFF9E44: ds.b 2 ; DATA XREF: sub_7E0BC+80w ; sub_7E0BC+8Aw ... word_FFFF9E46: ds.b 2 ; DATA XREF: sub_7E0BC+A4w ; sub_7E0BC+B2w ... word_FFFF9E48: ds.b 2 ; DATA XREF: sub_7E0BC+DCw ; sub_7E0BC+E6w ... word_FFFF9E4A: ds.b 2 ; DATA XREF: sub_7E0BC+684w word_FFFF9E4C: ds.b 2 ; DATA XREF: sub_7E0BC:loc_7E600w word_FFFF9E4E: ds.b 2 ; DATA XREF: sub_7E0BC+638w word_FFFF9E50: ds.b 2 ; DATA XREF: OS3:0007E948w ; OS3:0007EADCr ... word_FFFF9E52: ds.b 2 ; DATA XREF: sub_7E0BC+446w ; sub_7E0BC+48Aw ... word_FFFF9E54: ds.b 2 ; DATA XREF: OS3:0007EC44r ; OS3:loc_7ECCAw ... word_FFFF9E56: ds.b 2 ; DATA XREF: OS3:loc_7EABCw ; OS3:loc_7EE14w word_FFFF9E58: ds.b 2 ; DATA XREF: OS3:0007EAB8w ; OS3:loc_7EAC8r ... word_FFFF9E5A: ds.b 2 ; DATA XREF: OS3:0007E876w ; OS3:0007E8B4w ... word_FFFF9E5C: ds.b 2 ; DATA XREF: OS3:0007EE96w ; OS3:loc_7EE9Er byte_FFFF9E5E: ds.b 1 ; DATA XREF: OS3:0007E858w ; OS3:loc_7E960r ... byte_FFFF9E5F: ds.b 1 ; DATA XREF: OS3:0007E868w ; OS3:loc_7E87Er ... byte_FFFF9E60: ds.b 1 ; DATA XREF: OS3:0007E86Cw ; OS3:0007E882r ... ds.b 1 word_FFFF9E62: ds.b 2 ; DATA XREF: OS3:0007E90Ew ; OS3:0007ED58r word_FFFF9E64: ds.b 2 ; DATA XREF: OS3:0007E838w ; OS3:loc_7E850w ... word_FFFF9E66: ds.b 2 ; DATA XREF: OS3:0007E7BAw ; OS3:0007E7ECr ... word_FFFF9E68: ds.b 2 ; DATA XREF: OS3:0007E7D8w ; OS3:0007EB82r ... word_FFFF9E6A: ds.b 2 ; DATA XREF: OS3:0007E8C0r ; OS3:0007EA0Cr ... word_FFFF9E6C: ds.b 2 ; DATA XREF: OS3:loc_7EC22w ; OS3:0007ECD2r word_FFFF9E6E: ds.b 2 ; DATA XREF: OS3:loc_7ECF8w byte_FFFF9E70: ds.b 1 ; DATA XREF: sub_7E0BC+6B0w ; OS3:0007E78Aw ... ds.b 1 word_FFFF9E72: ds.b 2 ; DATA XREF: sub_7F000+8Ew ; sub_7F000+F6w ... word_FFFF9E74: ds.b 2 ; DATA XREF: sub_7E04C+4Cr ; OS3:loc_7F1BAw word_FFFF9E76: ds.b 2 ; DATA XREF: OS3:0007F1C2w ; OS3:0007F1CAr ... word_FFFF9E78: ds.b 2 ; DATA XREF: OS3:0007F1C6w word_FFFF9E7A: ds.b 2 ; DATA XREF: OS3:0007F1CAw word_FFFF9E7C: ds.b 2 ; DATA XREF: OS3:0007F1D0w byte_FFFF9E7E: ds.b 1 ; DATA XREF: sub_7E0BC+54Er ; sub_7E0BC:loc_7E630r ... byte_FFFF9E7F: ds.b 1 ; DATA XREF: sub_6D110+4r sub_6D202+8w word_FFFF9E80: ds.b 2 ; DATA XREF: OS1:000291B4w ; sub_64EFC+26Ar ... word_FFFF9E82: ds.b 2 ; DATA XREF: sub_64DBA+5Aw ; sub_64EFC+500w ... word_FFFF9E84: ds.b 2 ; DATA XREF: sub_64DBA+5Ew ; sub_64EFC:loc_653F8w ... word_FFFF9E86: ds.b 2 ; DATA XREF: OS2:GetPid_1296r ; sub_64DBA+B8w ... word_FFFF9E88: ds.b 2 ; DATA XREF: sub_64DBA+D4w ; sub_64EFC:loc_659DAw ... word_FFFF9E8A: ds.b 2 ; DATA XREF: OS1:loc_291C0r ; OS1:000291D4w ... byte_FFFF9E8C: ds.b 1 ; DATA XREF: sub_63E94+154r ; sub_64DBA+4w ... unk_FFFF9E8D: ds.b 1 ; DATA XREF: sub_64EFC:loc_6531Cr ; sub_64EFC+428r ... byte_FFFF9E8E: ds.b 1 ; DATA XREF: sub_64EFC:loc_6524Ar ; sub_64EFC+45Ar ... byte_FFFF9E8F: ds.b 1 ; DATA XREF: sub_2D620+40r ; sub_45F3A:loc_47A2Er ... byte_FFFF9E90: ds.b 1 ; DATA XREF: sub_2CC22+164r ; sub_2F386:loc_2F44Ar ... byte_FFFF9E91: ds.b 1 ; DATA XREF: sub_2CC22+16Cr ; sub_2F386+E0r ... byte_FFFF9E92: ds.b 1 ; DATA XREF: OS2:GetPid_1311r ; sub_64DBA+3Ew ... byte_FFFF9E93: ds.b 1 ; DATA XREF: OS2:GetPid_1310r ; sub_64DBA+42w ... byte_FFFF9E94: ds.b 1 ; DATA XREF: OS2:GetPid_1312r ; sub_64DBA+46w ... byte_FFFF9E95: ds.b 1 ; DATA XREF: DoLoopF:loc_2ABC4w ; sub_2D620+38r ... byte_FFFF9E96: ds.b 1 ; DATA XREF: sub_2D620+30r ; sub_64DBA+4Ew ... byte_FFFF9E97: ds.b 1 ; DATA XREF: sub_64DBA+36w ; sub_64EFC+1Er ... byte_FFFF9E98: ds.b 1 ; DATA XREF: sub_64DBA+72w ; sub_64EFC+89Ar ... byte_FFFF9E99: ds.b 1 ; DATA XREF: sub_64DBA+7Cw ; sub_64EFC+986w ... byte_FFFF9E9A: ds.b 1 ; DATA XREF: sub_64DBA+90w ; sub_64EFC+8D2r ... byte_FFFF9E9B: ds.b 1 ; DATA XREF: sub_64DBA+52w ; sub_64EFC:loc_654B0r ... byte_FFFF9E9C: ds.b 1 ; DATA XREF: sub_64DBA+B4w ; sub_64EFC:loc_657BEr ... byte_FFFF9E9D: ds.b 1 ; DATA XREF: sub_64DBA+E4w ; sub_64EFC:loc_65968r ... word_FFFF9E9E: ds.b 2 ; DATA XREF: sub_64DBA+56w ; sub_64EFC:loc_65A94w word_FFFF9EA0: ds.b 2 ; DATA XREF: sub_64DBA+62w ; sub_64EFC+1084r ... word_FFFF9EA2: ds.b 2 ; DATA XREF: sub_64DBA+66w ; sub_64EFC:loc_65F44r ... dword_FFFF9EA4: ds.b 4 ; DATA XREF: sub_64DBA+6Aw ; sub_64EFC+1056r ... word_FFFF9EA8: ds.b 2 ; DATA XREF: sub_64DBA+6Ew ; sub_64EFC+F9Ar ... word_FFFF9EAA: ds.b 2 ; DATA XREF: sub_64DBA+80w ; sub_64EFC+9BAw word_FFFF9EAC: ds.b 2 ; DATA XREF: sub_64DBA+76w ; sub_64EFC+9A4w ... word_FFFF9EAE: ds.b 2 ; DATA XREF: sub_64DBA+84w ; sub_64EFC+98Cw ... word_FFFF9EB0: ds.b 2 ; DATA XREF: sub_64DBA+88w ; sub_64EFC:loc_65346r ... word_FFFF9EB2: ds.b 2 ; DATA XREF: sub_64DBA+94w ; sub_64EFC+DAAr ... word_FFFF9EB4: ds.b 2 ; DATA XREF: sub_64DBA+98w ; sub_64EFC+D16r ... word_FFFF9EB6: ds.b 2 ; DATA XREF: sub_64DBA+9Cw ; sub_64EFC+D8Ar ... word_FFFF9EB8: ds.b 2 ; DATA XREF: sub_64DBA+A0w ; sub_64EFC:loc_658E6w word_FFFF9EBA: ds.b 2 ; DATA XREF: sub_64EFC:loc_65602w ; sub_64EFC+70Er word_FFFF9EBC: ds.b 2 ; DATA XREF: sub_64DBA+A4w ; sub_64EFC+6C2w ... word_FFFF9EBE: ds.b 2 ; DATA XREF: sub_64DBA+ACw ; sub_64EFC:loc_6582Aw word_FFFF9EC0: ds.b 2 ; DATA XREF: sub_64DBA+B0w ; sub_64EFC+80Aw ... word_FFFF9EC2: ds.b 2 ; DATA XREF: sub_64DBA+BCw ; sub_64EFC+7EEw ... word_FFFF9EC4: ds.b 2 ; DATA XREF: sub_64DBA+C0w ; sub_64EFC+806w ... word_FFFF9EC6: ds.b 2 ; DATA XREF: sub_64DBA+C4w ; sub_64EFC+DCCr ... dword_FFFF9EC8: ds.b 4 ; DATA XREF: sub_64DBA+C8w ; sub_64EFC:loc_65ABCw ... word_FFFF9ECC: ds.b 2 ; DATA XREF: sub_64DBA+CCw ; sub_64EFC+DEr ... word_FFFF9ECE: ds.b 2 ; DATA XREF: sub_64DBA+D0w ; sub_64EFC+DAw ... word_FFFF9ED0: ds.b 2 ; DATA XREF: sub_64DBA+D8w ; sub_64EFC+AB8r ... word_FFFF9ED2: ds.b 2 ; DATA XREF: sub_64DBA+DCw ; sub_64EFC+AC2w ... word_FFFF9ED4: ds.b 2 ; DATA XREF: sub_64DBA+E0w ; sub_64EFC:loc_65A16r ... word_FFFF9ED6: ds.b 2 ; DATA XREF: sub_64DBA+E8w ; sub_64EFC+A3Ar ... word_FFFF9ED8: ds.b 2 ; DATA XREF: sub_64DBA+ECw ; sub_64EFC+190r ... word_FFFF9EDA: ds.b 2 ; DATA XREF: sub_64DBA+F0w ; sub_64EFC+7B8r ... word_FFFF9EDC: ds.b 2 ; DATA XREF: sub_64DBA+F4w ; sub_64EFC+6C6w ... dword_FFFF9EDE: ds.b 4 ; DATA XREF: sub_64DBA+F8w ; sub_64EFC:loc_65EE4r ... word_FFFF9EE2: ds.b 2 ; DATA XREF: sub_64DBA+FCw ; sub_64EFC:loc_65D70r ... word_FFFF9EE4: ds.b 2 ; DATA XREF: sub_64DBA+100w ; sub_64EFC+E94r ... word_FFFF9EE6: ds.b 2 ; DATA XREF: sub_64DBA+104w ; sub_64EFC+F1Er ... word_FFFF9EE8: ds.b 2 ; DATA XREF: sub_64DBA+108w ; sub_64EFC:loc_65DF6r ... word_FFFF9EEA: ds.b 2 ; DATA XREF: sub_16FA+42r ; OS2:GetPid_1481r ... word_FFFF9EEC: ds.b 2 ; DATA XREF: sub_16FA:loc_1748r ; OS2:GetPid_1482r ... word_FFFF9EEE: ds.b 2 ; DATA XREF: sub_16FA:loc_1742r ; OS2:GetPid_1484r ... word_FFFF9EF0: ds.b 2 ; DATA XREF: sub_16FA:loc_174Er ; OS2:GetPid_1485r ... byte_FFFF9EF2: ds.b 1 ; DATA XREF: sub_818F0+C0r ds.b 1 byte_FFFF9EF4: ds.b 1 ; DATA XREF: sub_818F0+C4r ds.b 1 byte_FFFF9EF6: ds.b 1 ; DATA XREF: sub_16FA+24r sub_816D0+8r ... ds.b 1 unk_FFFF9EF8: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF9F00: ds.b 2 ; DATA XREF: sub_34B00+21Ar ; sub_34B00:loc_34DA0r ... word_FFFF9F02: ds.b 2 ; DATA XREF: sub_33EC8+14r ; sub_344B6+Cr ... ds.b 1 ds.b 1 word_FFFF9F06: ds.b 2 ; DATA XREF: sub_34B00+254r ; sub_34B00:loc_34E30r ... word_FFFF9F08: ds.b 2 ; DATA XREF: sub_33EC8+40r ; sub_344B6:loc_344C8r ... ds.b 1 ds.b 1 byte_FFFF9F0C: ds.b 1 ; DATA XREF: sub_818F0+C8w byte_FFFF9F0D: ds.b 1 ; DATA XREF: sub_817BC+4r ; sub_818F0+A4r ... byte_FFFF9F0E: ds.b 1 ; DATA XREF: sub_816D0+1Cr ; sub_816D0+26w ... byte_FFFF9F0F: ds.b 1 ; DATA XREF: sub_816D0+48r ; sub_816D0+E0w byte_FFFF9F10: ds.b 1 ; DATA XREF: sub_816D0+Cr ; sub_816D0+22w ... ds.b 1 word_FFFF9F12: ds.b 2 ; DATA XREF: sub_816D0+4Ew ; sub_816D0:loc_81726w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9F1C: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9F24: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9F2C: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF9F34: ds.b 2 ; DATA XREF: OS4:00081422r ; sub_816D0:loc_816FAr word_FFFF9F36: ds.b 2 ; DATA XREF: OS4:00081446r ; sub_816D0+30r word_FFFF9F38: ds.b 2 ; DATA XREF: OS4:00081434r ; sub_816D0+36r word_FFFF9F3A: ds.b 2 ; DATA XREF: OS4:00081458r ; sub_816D0+3Cr ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9F40: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF9F48: ds.b 2 ; DATA XREF: sub_81A56:loc_81A64w ; sub_81A56+14r word_FFFF9F4A: ds.b 2 ; DATA XREF: sub_81A56:loc_81A8Cw ; sub_81A56+3Cr word_FFFF9F4C: ds.b 2 ; DATA XREF: sub_81A56:loc_81AB0w ; sub_81A56+60r word_FFFF9F4E: ds.b 2 ; DATA XREF: sub_81A56:loc_81AD4w ; sub_81A56+84r word_FFFF9F50: ds.b 2 ; DATA XREF: sub_818F0+AAw byte_FFFF9F52: ds.b 1 ; DATA XREF: OS1:loc_33BE2w ; sub_33D02+88r ... byte_FFFF9F53: ds.b 1 ; DATA XREF: OS1:00033BEAw ; sub_33D02+11Cr ... byte_FFFF9F54: ds.b 1 ; DATA XREF: sub_32262+36r ; sub_32262+A6r ... byte_FFFF9F55: ds.b 1 ; DATA XREF: sub_32262+3Cr ; sub_32262+ACr ... word_FFFF9F56: ds.b 2 ; DATA XREF: OS1:00033C22w ; sub_34180:loc_341B8w ... word_FFFF9F58: ds.b 2 ; DATA XREF: OS1:00033C26w ; sub_34180+64w ... byte_FFFF9F5A: ds.b 1 ; DATA XREF: sub_33D02:loc_33D22w ; sub_33D02:loc_33D2Aw ... byte_FFFF9F5B: ds.b 1 ; DATA XREF: sub_33D02:loc_33D4Ew ; sub_33D02:loc_33D56w ... byte_FFFF9F5C: ds.b 1 ; DATA XREF: OS1:00033BE6w byte_FFFF9F5D: ds.b 1 ; DATA XREF: OS1:00033BEEw byte_FFFF9F5E: ds.b 1 ; DATA XREF: OS1:loc_33B96w ; OS1:00033BF2w ... ds.b 1 word_FFFF9F60: ds.b 2 ; DATA XREF: OS1:00033BA4w ; OS1:00033C00w word_FFFF9F62: ds.b 2 ; DATA XREF: OS1:00033BA8w ; OS1:00033C04w byte_FFFF9F64: ds.b 1 ; DATA XREF: OS1:00033B9Cw ; OS1:00033BF8w ... byte_FFFF9F65: ds.b 1 ; DATA XREF: sub_33E7Ew ds.b 1 ds.b 1 byte_FFFF9F68: ds.b 1 ; DATA XREF: OS1:00033C1Aw byte_FFFF9F69: ds.b 1 ; DATA XREF: OS1:00033C1Ew byte_FFFF9F6A: ds.b 1 ; DATA XREF: OS1:00033C12w byte_FFFF9F6B: ds.b 1 ; DATA XREF: OS1:00033C16w unk_FFFF9F6C: ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF9F70: ds.b 2 ; DATA XREF: OS1:00033C2Aw sub_34180r ... word_FFFF9F72: ds.b 2 ; DATA XREF: OS1:00033C2Ew ; sub_34180:loc_341ECr ... word_FFFF9F74: ds.b 2 ; DATA XREF: OS1:00033C3Aw ; sub_34180+16r ... word_FFFF9F76: ds.b 2 ; DATA XREF: OS1:00033C3Ew ; sub_34180+82r ... word_FFFF9F78: ds.b 2 ; DATA XREF: sub_3424A+8r ; sub_3424A:loc_34298w ... word_FFFF9F7A: ds.b 2 ; DATA XREF: OS1:00033C32w ; OS1:00033C72w ... word_FFFF9F7C: ds.b 2 ; DATA XREF: OS1:00033C36w ; OS1:00033C8Aw ... word_FFFF9F7E: ds.b 2 ; DATA XREF: sub_3424A+1Er ; sub_3424A:loc_34276w ... word_FFFF9F80: ds.b 2 ; DATA XREF: OS1:00033C42w ; OS1:00033CA2w ... word_FFFF9F82: ds.b 2 ; DATA XREF: sub_342EE+10r ; sub_342EE:loc_34344w ... word_FFFF9F84: ds.b 2 ; DATA XREF: OS1:00033C46w ; OS1:00033CB8w ... word_FFFF9F86: ds.b 2 ; DATA XREF: sub_342EE+26r ; sub_342EE:loc_34322w ... unk_FFFF9F88: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9F8C: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFF9FB4: ds.b 2 ; DATA XREF: sub_342EE+6Cr word_FFFF9FB6: ds.b 2 ; DATA XREF: sub_342EE+E0r byte_FFFF9FB8: ds.b 1 ; DATA XREF: sub_344B6+3Cr ; sub_344B6+70r ... byte_FFFF9FB9: ds.b 1 ; DATA XREF: sub_2D8D6+22w ; sub_2D8D6+46w ... byte_FFFF9FBA: ds.b 1 ; DATA XREF: sub_2F780:loc_2F9AEr ; sub_2F780+23Cw ... ds.b 1 word_FFFF9FBC: ds.b 2 ; DATA XREF: sub_2F780:loc_2F9DCw ; sub_2F780:loc_2F9E4w ... word_FFFF9FBE: ds.b 2 ; DATA XREF: sub_2F780+234w ; sub_6983E:loc_6999Er word_FFFF9FC0: ds.b 2 ; DATA XREF: sub_2F780+122w ; sub_2F780+1B4r ... word_FFFF9FC2: ds.b 2 ; DATA XREF: sub_2F780+11Ew ; sub_2F780+148r ... word_FFFF9FC4: ds.b 2 ; DATA XREF: sub_2FAFC+1Cw ; sub_31AE2+282r ... word_FFFF9FC6: ds.b 2 ; DATA XREF: sub_2FAFC+56w ; sub_32164:loc_3219Er word_FFFF9FC8: ds.b 2 ; DATA XREF: sub_2FC1E+Cw ; sub_3A63E+78r ... word_FFFF9FCA: ds.b 2 ; DATA XREF: sub_2FAFC+94w ; sub_30DA8:loc_3109Ar word_FFFF9FCC: ds.b 2 ; DATA XREF: sub_2FAFC+84w ; sub_30DA8+300r word_FFFF9FCE: ds.b 2 ; DATA XREF: sub_2FAFC+74w ; sub_30DA8+322r word_FFFF9FD0: ds.b 2 ; DATA XREF: sub_2FAFC+B2w ; sub_31318+20r ... word_FFFF9FD2: ds.b 2 ; DATA XREF: sub_2FAFC+D0w ; sub_31318+1Cr word_FFFF9FD4: ds.b 2 ; DATA XREF: sub_2FAFC+EEw ; sub_30CA4+1Er ... word_FFFF9FD6: ds.b 2 ; DATA XREF: sub_2FAFC+108w ; sub_30CA4+24r word_FFFF9FD8: ds.b 2 ; DATA XREF: sub_2FAFC+118w ; sub_7E0BC:loc_7E284r ... byte_FFFF9FDA: ds.b 1 ; DATA XREF: sub_2F780:loc_2F89Aw ; sub_2F780+130r ds.b 1 unk_FFFF9FDC: ds.b 1 ; DATA XREF: sub_2F780+12o ; sub_2F780+7Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 dword_FFFF9FE4: ds.b 4 ; DATA XREF: sub_2F780+3Er ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFF9FEC: ds.b 1 ; DATA XREF: sub_2F780+16o ds.b 1 ds.b 1 ds.b 1 dword_FFFF9FF0: ds.b 4 ; DATA XREF: sub_2F780+26r dword_FFFF9FF4: ds.b 4 ; DATA XREF: sub_2F780+42r dword_FFFF9FF8: ds.b 4 ; DATA XREF: sub_2F780+22r word_FFFF9FFC: ds.b 2 ; DATA XREF: sub_2F780:loc_2F8FCw ; sub_2F780+19Er word_FFFF9FFE: ds.b 2 ; DATA XREF: sub_2F780+224w ; sub_2F780:loc_2F9AAw ... word_FFFFA000: ds.b 2 ; DATA XREF: sub_21CCA+8Aw ; sub_21CCA+94w ds.b 1 ds.b 1 byte_FFFFA004: ds.b 1 ; DATA XREF: sub_21930+6Ew byte_FFFFA005: ds.b 1 ; DATA XREF: sub_21930+62w byte_FFFFA006: ds.b 1 ; DATA XREF: sub_21930+50w ; sub_21930+56w byte_FFFFA007: ds.b 1 ; DATA XREF: sub_21930+84w ; sub_21930:loc_219BCw ... dword_FFFFA008: ds.b 4 ; DATA XREF: sub_21930+212w word_FFFFA00C: ds.b 2 ; DATA XREF: sub_21930+42w word_FFFFA00E: ds.b 2 ; DATA XREF: sub_21930+78w word_FFFFA010: ds.b 2 ; DATA XREF: sub_21CCA:loc_21D1Ew word_FFFFA012: ds.b 2 ; DATA XREF: sub_21CCA:loc_21F22w ; sub_2340C+476r word_FFFFA014: ds.b 2 ; DATA XREF: sub_21CCA+98r ; sub_2340C+434r word_FFFFA016: ds.b 2 ; DATA XREF: sub_21CCA:loc_21E14w byte_FFFFA018: ds.b 1 ; DATA XREF: sub_21CCA:loc_21DB4r ; sub_21CCA:loc_21E2Aw ... byte_FFFFA019: ds.b 1 ; DATA XREF: sub_75E94+Aw ; sub_76A4E+124r word_FFFFA01A: ds.b 2 ; DATA XREF: sub_2340C+9C2w word_FFFFA01C: ds.b 2 ; DATA XREF: sub_2340C+A8Ew word_FFFFA01E: ds.b 2 ; DATA XREF: sub_2340C+A98w byte_FFFFA020: ds.b 1 ; DATA XREF: sub_2340C+54Aw ; sub_2340C:loc_2395Ew ... byte_FFFFA021: ds.b 1 ; DATA XREF: sub_2340C+484w ; sub_2340C:loc_23898w ... byte_FFFFA022: ds.b 1 ; DATA XREF: sub_2340C+4C6w ; sub_2340C:loc_238DAw ... byte_FFFFA023: ds.b 1 ; DATA XREF: sub_2340C+5B8w ; sub_2340C:loc_239CCw ... ds.b 1 ds.b 1 word_FFFFA026: ds.b 2 ; DATA XREF: sub_2340C+424w dword_FFFFA028: ds.b 4 ; DATA XREF: sub_2340C+430w word_FFFFA02C: ds.b 2 ; DATA XREF: sub_2340C+434w word_FFFFA02E: ds.b 2 ; DATA XREF: sub_2340C+43Ew word_FFFFA030: ds.b 2 ; DATA XREF: sub_2340C+444w word_FFFFA032: ds.b 2 ; DATA XREF: sub_2340C+44Aw word_FFFFA034: ds.b 2 ; DATA XREF: sub_2340C+450w word_FFFFA036: ds.b 2 ; DATA XREF: sub_2340C+456w word_FFFFA038: ds.b 2 ; DATA XREF: sub_2340C+460w word_FFFFA03A: ds.b 2 ; DATA XREF: sub_2340C+46Aw word_FFFFA03C: ds.b 2 ; DATA XREF: sub_2340C+472w word_FFFFA03E: ds.b 2 ; DATA XREF: sub_2340C+476w word_FFFFA040: ds.b 2 ; DATA XREF: sub_220F0:loc_2224Ar ; sub_220F0+178r ... word_FFFFA042: ds.b 2 ; DATA XREF: sub_20A3A+2r ; sub_220F0+1FCw ... word_FFFFA044: ds.b 2 ; DATA XREF: sub_220F0+62w ; sub_220F0+66r ... word_FFFFA046: ds.b 2 ; DATA XREF: sub_220F0+6Ar ; sub_220F0+9Ar ... word_FFFFA048: ds.b 2 ; DATA XREF: sub_21F2C:loc_220DEw ; sub_222F6+8w word_FFFFA04A: ds.b 2 ; DATA XREF: sub_21F2C+1BAw ; sub_220F0+10r ... word_FFFFA04C: ds.b 2 ; DATA XREF: sub_21F2C+120w ; sub_222F6+Cw word_FFFFA04E: ds.b 2 ; DATA XREF: sub_21F2C:loc_21F54w ; sub_21F2C:loc_22090r ... byte_FFFFA050: ds.b 1 ; DATA XREF: sub_21F2C:loc_22048w byte_FFFFA051: ds.b 1 ; DATA XREF: sub_220F0:loc_222E8w byte_FFFFA052: ds.b 1 ; DATA XREF: sub_21F2C+1B6w ; sub_220F0+Ar ds.b 1 word_FFFFA054: ds.b 2 ; DATA XREF: sub_220F0+198r ; sub_220F0:loc_2229Cw ... byte_FFFFA056: ds.b 1 ; DATA XREF: sub_220F0+72w ; sub_220F0:loc_2217Cw ds.b 1 ds.b 1 ds.b 1 word_FFFFA05A: ds.b 2 ; DATA XREF: sub_76A4E+12Er ; sub_76A4E+2F2r ... ds.b 1 ds.b 1 byte_FFFFA05E: ds.b 1 ; DATA XREF: sub_6A1F6w ; sub_6A418:loc_6A42Cw byte_FFFFA05F: ds.b 1 ; DATA XREF: sub_6A1F6+4w ; sub_6A418:loc_6A43Cw byte_FFFFA060: ds.b 1 ; DATA XREF: OS3:00069DFAr ; sub_6A21C+12w ... byte_FFFFA061: ds.b 1 ; DATA XREF: OS3:00069DE2r ; sub_6A21C+16w ... word_FFFFA062: ds.b 2 ; DATA XREF: sub_2F386+140r sub_6A21Cw ... word_FFFFA064: ds.b 2 ; DATA XREF: OS3:00069E94r ; sub_6A2E8+10w word_FFFFA066: ds.b 2 ; DATA XREF: OS3:loc_69DCAr ; OS3:loc_69FC6r ... byte_FFFFA068: ds.b 1 ; DATA XREF: sub_2CC22+154r ; sub_2F386:loc_2F4ACr ... byte_FFFFA069: ds.b 1 ; DATA XREF: OS3:loc_69E64r ; OS3:00069EBAr ... byte_FFFFA06A: ds.b 1 ; DATA XREF: sub_6A172+50w ; sub_6A2AE+2Cw ... ds.b 1 word_FFFFA06C: ds.b 2 ; DATA XREF: OS3:00069B9Ar ; sub_6A172+26w ... word_FFFFA06E: ds.b 2 ; DATA XREF: OS3:00069B66r ; sub_6A172+2Aw ... word_FFFFA070: ds.b 2 ; DATA XREF: sub_34B00+62Er ; sub_34B00+7F8r ... word_FFFFA072: ds.b 2 ; DATA XREF: sub_30DA8+482r ; OS1:00031446r ... word_FFFFA074: ds.b 2 ; DATA XREF: sub_6A21C+2Cw ; sub_6A694+2C8w ... unk_FFFFA076: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFFA07C: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFA082: ds.b 1 ; DATA XREF: sub_6A21C+4w ; sub_6A694+3Ar ... ds.b 1 word_FFFFA084: ds.b 2 ; DATA XREF: sub_6A1F6+20w ; sub_6A576+2Er ... word_FFFFA086: ds.b 2 ; DATA XREF: sub_6A694+96r ; sub_6A694:loc_6A736w ... word_FFFFA088: ds.b 2 ; DATA XREF: sub_6A21C+8w ; sub_6A694+3A4w ... word_FFFFA08A: ds.b 2 ; DATA XREF: sub_6A694:loc_6A8AAw ; sub_6A694+232r ... unk_FFFFA08C: ds.b 1 ; DATA XREF: sub_6A172+64o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFFA0AA: ds.b 1 ds.b 1 unk_FFFFA0AC: ds.b 1 ; DATA XREF: sub_6A172+44o ; sub_6A2AE+20o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFA0BC: ds.b 2 ; DATA XREF: sub_6A694+8Er ; sub_6A694:loc_6A9FAw word_FFFFA0BE: ds.b 2 ; DATA XREF: sub_6A694+34Cw byte_FFFFA0C0: ds.b 1 ; DATA XREF: sub_6A694+24w ; sub_6A694:loc_6A6C0w ... byte_FFFFA0C1: ds.b 1 ; DATA XREF: sub_4CD5E+16Er ; sub_55796+1Cw ... word_FFFFA0C2: ds.b 2 ; DATA XREF: sub_79B10+DEw ; sub_79B10+19Aw ... word_FFFFA0C4: ds.b 2 ; DATA XREF: sub_79B10+DAw ; sub_79B10+196w ... word_FFFFA0C6: ds.b 2 ; DATA XREF: OS2:GetPid_FC1Cr ; sub_79B10+CEw ... word_FFFFA0C8: ds.b 2 ; DATA XREF: sub_79B10+D6w ; sub_79B10+192w ... word_FFFFA0CA: ds.b 2 ; DATA XREF: sub_200DE+23Ar ; sub_200DE+250r ... word_FFFFA0CC: ds.b 2 ; DATA XREF: sub_200DE:loc_202A6r ; sub_200DE+1DEr ... word_FFFFA0CE: ds.b 2 ; DATA XREF: sub_79B10+2AAw ; sub_79B10+4ECr ... word_FFFFA0D0: ds.b 2 ; DATA XREF: sub_79B10+Ew ; sub_79B10+52r ... word_FFFFA0D2: ds.b 2 ; DATA XREF: sub_79B10+E2w ; sub_79B10+1C0w ... byte_FFFFA0D4: ds.b 1 ; DATA XREF: sub_79B10+2CEr ; sub_79B10+502r ... ds.b 1 word_FFFFA0D6: ds.b 2 ; DATA XREF: sub_79B10+92w ; sub_7A89E+D0w ... word_FFFFA0D8: ds.b 2 ; DATA XREF: sub_79B10+1Aw ; sub_79B10:loc_79B32w ... word_FFFFA0DA: ds.b 2 ; DATA XREF: sub_79B10:loc_79BB6r ; sub_7A89E+F2w ... word_FFFFA0DC: ds.b 2 ; DATA XREF: sub_2CC22+11Er ; sub_2CC22+1EEr ... word_FFFFA0DE: ds.b 2 ; DATA XREF: sub_79B10+740w ; sub_79B10:loc_7A294w ... Airflow_SD: ds.b 2 ; DATA XREF: sub_6DC40+Cr ; sub_79B10+73Cw ... word_FFFFA0E2: ds.b 2 ; DATA XREF: OS2:GetPid_1300r ; sub_5E08A:loc_5E0BAr ... word_FFFFA0E4: ds.b 2 ; DATA XREF: sub_30DA8:loc_312D2r ; sub_79B10+D2w ... word_FFFFA0E6: ds.b 2 ; DATA XREF: sub_307A6:loc_307F2r ; sub_307A6:loc_30816r ... word_FFFFA0E8: ds.b 2 ; DATA XREF: sub_3BDC4:loc_3BF7Ar ; sub_79B10:loc_7A468w ... MaybeLoad: ds.b 2 ; DATA XREF: sub_2DACE+2F0r ; sub_39F12+2Ar ... word_FFFFA0EC: ds.b 2 ; DATA XREF: sub_79B10:loc_7A230w ; sub_79B10+772r ... word_FFFFA0EE: ds.b 2 ; DATA XREF: sub_79B10:loc_7A230r ; sub_79B10+726w ... word_FFFFA0F0: ds.b 2 ; DATA XREF: sub_79B10+726r ; sub_79B10+72Cw ... word_FFFFA0F2: ds.b 2 ; DATA XREF: sub_79B10+7A4r ; sub_79B10+7ECr ... word_FFFFA0F4: ds.b 2 ; DATA XREF: OS2:GetPid_FC1Er ; sub_79B10+738w ... word_FFFFA0F6: ds.b 2 ; DATA XREF: sub_79AB0+10r ; sub_79B10+9Cr ... byte_FFFFA0F8: ds.b 1 ; DATA XREF: IsIdleAirLearningActive+17Ar ; OS2:00044E98r ... byte_FFFFA0F9: ds.b 1 ; DATA XREF: sub_45F3A+B8r ; sub_79B10+98Aw word_FFFFA0FA: ds.b 2 ; DATA XREF: sub_7A89E+F6w ; sub_7AA26+3Aw ... word_FFFFA0FC: ds.b 2 ; DATA XREF: sub_79B10:loc_7A2D0w ; sub_79B10:loc_7A2D4r ... word_FFFFA0FE: ds.b 2 ; DATA XREF: sub_79B10+290w ; sub_79B10+92Cr ... word_FFFFA100: ds.b 2 ; DATA XREF: sub_79B10+1D6w ; sub_79B10+288w ... word_FFFFA102: ds.b 2 ; DATA XREF: sub_79B10:loc_79BDAw ; sub_79B10+1BCw word_FFFFA104: ds.b 2 ; DATA XREF: sub_79B10+162r ; sub_79B10+17Aw ... word_FFFFA106: ds.b 2 ; DATA XREF: sub_79AB0+26w ; sub_79B10+2DEr ... CrankingToRunningTransition:ds.b 2 ; DATA XREF: sub_79B10+796w ; sub_79B10+7DCr ... byte_FFFFA10A: ds.b 1 ; DATA XREF: sub_79B10+790w ; sub_79B10:loc_7A2DCr ... ds.b 1 word_FFFFA10C: ds.b 2 ; DATA XREF: sub_79B10+5C6r ; sub_79B10+714r ... word_FFFFA10E: ds.b 2 ; DATA XREF: sub_79B10+3F0r ; sub_79B10+5D2r ... word_FFFFA110: ds.b 2 ; DATA XREF: sub_79B10+3E2r ; sub_79B10+5A2r ... word_FFFFA112: ds.b 2 ; DATA XREF: sub_79B10+3DAr ; sub_79B10+5AEr ... word_FFFFA114: ds.b 2 ; DATA XREF: sub_79B10+3D6r ; sub_79B10+702w ... word_FFFFA116: ds.b 2 ; DATA XREF: sub_79AB0+6r ; sub_7A99E:loc_7A9E0w word_FFFFA118: ds.b 2 ; DATA XREF: sub_79AB0:loc_79ACAw word_FFFFA11A: ds.b 2 ; DATA XREF: sub_79AB0+38w ; sub_79AB0+46r ... word_FFFFA11C: ds.b 2 ; DATA XREF: sub_79B10+294w ; sub_79B10+308w ... word_FFFFA11E: ds.b 2 ; DATA XREF: sub_79B10+2B2w ; sub_79B10+35Er ... byte_FFFFA120: ds.b 1 ; DATA XREF: sub_79B10+2AEw ; sub_79B10+346r ... byte_FFFFA121: ds.b 1 ; DATA XREF: sub_79B10+2D6r ; sub_7A65A+Cw byte_FFFFA122: ds.b 1 ; DATA XREF: sub_79B10+324r ; sub_7A568+28w ... byte_FFFFA123: ds.b 1 ; DATA XREF: sub_79B10+E8w ; sub_79B10:loc_79C6Cr ... byte_FFFFA124: ds.b 1 ; DATA XREF: sub_79AB0+32w ; sub_79AB0+5Aw ... byte_FFFFA125: ds.b 1 ; DATA XREF: sub_79B10+1ECr ; sub_79B10:loc_79D18r ... word_FFFFA126: ds.b 2 ; DATA XREF: sub_30DA8+16w ; sub_30DA8:loc_30DE2w ... word_FFFFA128: ds.b 2 ; DATA XREF: sub_30DA8:loc_312CCw ; sub_30DA8:loc_312FEw ... unk_FFFFA12A: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFA13C: ds.b 2 ; DATA XREF: sub_30DA8:loc_311FEw ; sub_30DA8:loc_31206w ... word_FFFFA13E: ds.b 2 ; DATA XREF: sub_30DA8:loc_3124Ew ; OS1:loc_3146Aw ... word_FFFFA140: ds.b 2 ; DATA XREF: sub_30DA8:loc_31290w ; OS1:loc_314ACw ... byte_FFFFA142: ds.b 1 ; DATA XREF: sub_307A6+28w ; sub_30DA8:loc_3104Ar ... byte_FFFFA143: ds.b 1 ; DATA XREF: sub_30DA8+502w ; sub_32A0C+13Cr word_FFFFA144: ds.b 2 ; DATA XREF: sub_30DA8:loc_3119Cw ; sub_30DA8:loc_311FEr word_FFFFA146: ds.b 2 ; DATA XREF: sub_30DA8+30Cw ; sub_30DA8:loc_310BAw ... word_FFFFA148: ds.b 2 ; DATA XREF: sub_30CA4+F4w ; sub_30CA4:loc_30D9Ew ... word_FFFFA14A: ds.b 2 ; DATA XREF: sub_30DA8+9Ar ; sub_30DA8+ACr ... word_FFFFA14C: ds.b 2 ; DATA XREF: sub_30CA4+D8r ; sub_30DA8+3CAr ... word_FFFFA14E: ds.b 2 ; DATA XREF: sub_30DA8+72w ; sub_30DA8+7Er ... word_FFFFA150: ds.b 2 ; DATA XREF: sub_30DA8+390w ; sub_30DA8+3B8r ... word_FFFFA152: ds.b 2 ; DATA XREF: sub_30DA8:loc_31158w unk_FFFFA154: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFFA166: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFA178: ds.b 2 ; DATA XREF: sub_30DA8+33Ar ; sub_313D8+20r ... word_FFFFA17A: ds.b 2 ; DATA XREF: sub_30DA8+2F8w ; sub_30DA8:loc_31118w ... byte_FFFFA17C: ds.b 1 ; DATA XREF: sub_30DA8:loc_30E16w ; sub_30DA8+7Aw ... ds.b 1 word_FFFFA17E: ds.b 2 ; DATA XREF: sub_30DA8+3DCw ; sub_30DA8:loc_3118Aw ... byte_FFFFA180: ds.b 1 ; DATA XREF: sub_30DA8:loc_30DE6r ; sub_30DA8+E6w ... ds.b 1 word_FFFFA182: ds.b 2 ; DATA XREF: sub_30DA8+174w ; sub_30DA8+23Aw ... word_FFFFA184: ds.b 2 ; DATA XREF: sub_30CA4+A0r ; sub_30DA8+1B8w word_FFFFA186: ds.b 2 ; DATA XREF: sub_30DA8:loc_30ED6w ; sub_30DA8:loc_30F9Cw ... word_FFFFA188: ds.b 2 ; DATA XREF: OS1:00028F02w ; OS1:loc_28F08w ... word_FFFFA18A: ds.b 2 ; DATA XREF: OS1:loc_28F1Cw ; DoLoopA+3FAr byte_FFFFA18C: ds.b 1 ; DATA XREF: OS1:00028F20w ; DoLoopA+3ECw ... ds.b 1 byte_FFFFA18E: ds.b 1 ; DATA XREF: OS1:00028922o ; sub_5F566+2r ... byte_FFFFA18F: ds.b 1 ; DATA XREF: sub_5F566:loc_5F57Cr byte_FFFFA190: ds.b 1 ; DATA XREF: sub_5F566:loc_5F69Cr byte_FFFFA191: ds.b 1 ; DATA XREF: sub_60178+15Ar byte_FFFFA192: ds.b 1 ; DATA XREF: sub_60178+15Er byte_FFFFA193: ds.b 1 ; DATA XREF: sub_24716+12r ; sub_4B64E+4r ... byte_FFFFA194: ds.b 1 ; DATA XREF: sub_7AFBE+8r byte_FFFFA195: ds.b 1 ; DATA XREF: DoLoopA:loc_29EA0r ; DoLoopG:loc_2B32Er byte_FFFFA196: ds.b 1 ; DATA XREF: sub_60E42+4r ds.b 1 byte_FFFFA198: ds.b 1 ; DATA XREF: sub_75C8C+Ar ds.b 1 byte_FFFFA19A: ds.b 1 ; DATA XREF: DoLoopC:loc_2A59Ar ; DoLoopE+188r ... byte_FFFFA19B: ds.b 1 ; DATA XREF: DoLoopG:loc_2B30Ar byte_FFFFA19C: ds.b 1 ; DATA XREF: OS3:loc_7B81Ar ; GetCoolantTemperature+38r byte_FFFFA19D: ds.b 1 ; DATA XREF: sub_62B70+BCr ; sub_62B70:loc_62E9Ar byte_FFFFA19E: ds.b 1 ; DATA XREF: DoLoopF:loc_2AC48r ; sub_6D636+34r byte_FFFFA19F: ds.b 1 ; DATA XREF: sub_282C4+3B0r ; DoLoopC+398r ... byte_FFFFA1A0: ds.b 1 ; DATA XREF: sub_73106+20r byte_FFFFA1A1: ds.b 1 ; DATA XREF: DoLoopA:loc_29E04r ; DoLoopC:loc_2A56Ar ... byte_FFFFA1A2: ds.b 1 ; DATA XREF: sub_7AFBE+182r byte_FFFFA1A3: ds.b 1 ; DATA XREF: DoLoopF:loc_2ABAAr ; DoLoopF:loc_2ABB6r ... byte_FFFFA1A4: ds.b 1 ; DATA XREF: sub_6720E+Ar byte_FFFFA1A5: ds.b 1 ; DATA XREF: sub_6720E+E2r byte_FFFFA1A6: ds.b 1 ; DATA XREF: sub_6720E+C2r byte_FFFFA1A7: ds.b 1 ; DATA XREF: sub_6720E+B0r byte_FFFFA1A8: ds.b 1 ; DATA XREF: DoLoopC:loc_2A5B8r ; DoLoopF:loc_2ABFAr byte_FFFFA1A9: ds.b 1 ; DATA XREF: sub_6983E+D4r byte_FFFFA1AA: ds.b 1 ; DATA XREF: sub_6983E:loc_69A0Cr byte_FFFFA1AB: ds.b 1 ; DATA XREF: sub_6983E+6Cr byte_FFFFA1AC: ds.b 1 ; DATA XREF: sub_6983E+1BCr ds.b 1 ds.b 1 byte_FFFFA1AF: ds.b 1 ; DATA XREF: DoLoopF:loc_2ABE8r byte_FFFFA1B0: ds.b 1 ; DATA XREF: DoLoopG+230r byte_FFFFA1B1: ds.b 1 ; DATA XREF: sub_7523C+2r byte_FFFFA1B2: ds.b 1 ; DATA XREF: sub_6CE22+2r byte_FFFFA1B3: ds.b 1 ; DATA XREF: DoLoopC:loc_2A5A6r ; DoLoopD+136r ... byte_FFFFA1B4: ds.b 1 ; DATA XREF: DoLoopG:loc_2B1BCr byte_FFFFA1B5: ds.b 1 ; DATA XREF: DoLoopF:loc_2AB86r ds.b 1 byte_FFFFA1B7: ds.b 1 ; DATA XREF: sub_6AF7C+4r byte_FFFFA1B8: ds.b 1 ; DATA XREF: sub_7523C:loc_7529Cr byte_FFFFA1B9: ds.b 1 ; DATA XREF: DoLoopC:loc_2A582r ; DoLoopG:loc_2B358r ... byte_FFFFA1BA: ds.b 1 ; DATA XREF: sub_4B494+22r byte_FFFFA1BB: ds.b 1 ; DATA XREF: DoLoopF:loc_2AB92r ; sub_80A78+28r byte_FFFFA1BC: ds.b 1 ; DATA XREF: sub_73A3E+3F2r byte_FFFFA1BD: ds.b 1 ; DATA XREF: sub_73A3E:loc_73E96r byte_FFFFA1BE: ds.b 1 ; DATA XREF: sub_73A3E:loc_73EFCr byte_FFFFA1BF: ds.b 1 ; DATA XREF: DoLoopA:loc_29E50r ; DoLoopC:loc_2A58Er ... byte_FFFFA1C0: ds.b 1 ; DATA XREF: sub_73A3E+2D2r ; sub_73A3E+2E8r byte_FFFFA1C1: ds.b 1 ; DATA XREF: sub_73A3E:loc_73D9Cr byte_FFFFA1C2: ds.b 1 ; DATA XREF: sub_73A3E:loc_73D0Cr ; sub_73A3E:loc_73D34r byte_FFFFA1C3: ds.b 1 ; DATA XREF: sub_73A3E+16Ar byte_FFFFA1C4: ds.b 1 ; DATA XREF: sub_73A3E:loc_73C96r byte_FFFFA1C5: ds.b 1 ; DATA XREF: sub_73A3E:loc_73C20r byte_FFFFA1C6: ds.b 1 ; DATA XREF: sub_7CFF8+Cr byte_FFFFA1C7: ds.b 1 ; DATA XREF: DoLoopB:loc_2A0C0r ; DoLoopC:loc_2A576r ... byte_FFFFA1C8: ds.b 1 ; DATA XREF: DoLoopF:loc_2AC1Er ; sub_748D0+160r byte_FFFFA1C9: ds.b 1 ; DATA XREF: DoLoopB+27Er DoLoopF+3DAr byte_FFFFA1CA: ds.b 1 ; DATA XREF: DoLoopB+296r ; DoLoopF:loc_2AF24r byte_FFFFA1CB: ds.b 1 ; DATA XREF: DoLoopG:loc_2B1E0r ; sub_758D8:loc_7592Er byte_FFFFA1CC: ds.b 1 ; DATA XREF: sub_73A3E+28r byte_FFFFA1CD: ds.b 1 ; DATA XREF: sub_73A3E:loc_73A76r ; sub_7401A:loc_74044r byte_FFFFA1CE: ds.b 1 ; DATA XREF: sub_73A3E+3Cr ; sub_7401A:loc_74036r byte_FFFFA1CF: ds.b 1 ; DATA XREF: sub_73A3E:loc_73A8Ar byte_FFFFA1D0: ds.b 1 ; DATA XREF: sub_73A3E:loc_73A9Ar byte_FFFFA1D1: ds.b 1 ; DATA XREF: sub_73A3E:loc_73AAAr ; sub_7401A:loc_7406Cr byte_FFFFA1D2: ds.b 1 ; DATA XREF: sub_73A3E+70r ; sub_7401A:loc_74060r byte_FFFFA1D3: ds.b 1 ; DATA XREF: sub_73A3E:loc_73ABEr ; sub_7401A:loc_74082r byte_FFFFA1D4: ds.b 1 ; DATA XREF: sub_73A3E+84r ; sub_7401A:loc_74076r byte_FFFFA1D5: ds.b 1 ; DATA XREF: sub_73A3E+ACr ; sub_7401A:loc_7408Cr byte_FFFFA1D6: ds.b 1 ; DATA XREF: sub_73A3E+B0r ; sub_7401A:loc_74098r byte_FFFFA1D7: ds.b 1 ; DATA XREF: sub_73A3E:loc_73AFEr byte_FFFFA1D8: ds.b 1 ; DATA XREF: sub_73A3E:loc_73B0Er byte_FFFFA1D9: ds.b 1 ; DATA XREF: sub_73A3E:loc_73B1Er byte_FFFFA1DA: ds.b 1 ; DATA XREF: sub_73A3E+108r byte_FFFFA1DB: ds.b 1 ; DATA XREF: sub_73A3E:loc_73B56r ; sub_7401A:loc_740CAr byte_FFFFA1DC: ds.b 1 ; DATA XREF: sub_73A3E+11Cr ; sub_7401A:loc_740BEr byte_FFFFA1DD: ds.b 1 ; DATA XREF: sub_73A3E:loc_73B6Ar byte_FFFFA1DE: ds.b 1 ; DATA XREF: sub_73A3E:loc_73B7Ar byte_FFFFA1DF: ds.b 1 ; DATA XREF: DoLoopF:loc_2AB7Ar ; DoLoopF+446r byte_FFFFA1E0: ds.b 1 ; DATA XREF: sub_73A3E+542r byte_FFFFA1E1: ds.b 1 ; DATA XREF: DoLoopF+30r sub_83754+16r word_FFFFA1E2: ds.b 2 ; DATA XREF: sub_757C0+6Er ; sub_757C0+82w ... word_FFFFA1E4: ds.b 2 ; DATA XREF: sub_757C0+2Cr ; sub_757C0+40w ... byte_FFFFA1E6: ds.b 1 ; DATA XREF: sub_757C0+16w ; sub_757C0+32w ... byte_FFFFA1E7: ds.b 1 ; DATA XREF: sub_757C0+54r ; OS3:000758BEw ... word_FFFFA1E8: ds.b 2 ; DATA XREF: sub_31AE2+302w ; sub_31AE2:loc_31E00w ... byte_FFFFA1EA: ds.b 1 ; DATA XREF: sub_2FC92:loc_2FD2Cr ; sub_2FC92+B2w ... ds.b 1 word_FFFFA1EC: ds.b 2 ; DATA XREF: sub_31AE2+19Aw ; OS1:loc_32550w ... word_FFFFA1EE: ds.b 2 ; DATA XREF: sub_2DED8+ACr ; sub_316EA+2F4r ... word_FFFFA1F0: ds.b 2 ; DATA XREF: sub_316EA+D2w ; sub_316EA:loc_317C2w ... word_FFFFA1F2: ds.b 2 ; DATA XREF: sub_30DA8:loc_30DD2r ; sub_30DA8:loc_312E2r ... byte_FFFFA1F4: ds.b 1 ; DATA XREF: sub_316EA+18r ; sub_316EA+66w ... byte_FFFFA1F5: ds.b 1 ; DATA XREF: sub_31AE2:loc_31C84r ; sub_32324+Ar ... byte_FFFFA1F6: ds.b 1 ; DATA XREF: sub_2C4F4+46r ; sub_2CC22+148r ... ds.b 1 word_FFFFA1F8: ds.b 2 ; DATA XREF: sub_316EA:loc_31A10w ; sub_316EA+334r ... word_FFFFA1FA: ds.b 2 ; DATA XREF: sub_316EA:loc_319C8w ; sub_316EA:loc_319CEw ... byte_FFFFA1FC: ds.b 1 ; DATA XREF: sub_3158C+11Cw ; sub_3158C:loc_316BEw ... ds.b 1 word_FFFFA1FE: ds.b 2 ; DATA XREF: sub_31AE2:loc_31CD4r ; sub_31AE2:loc_31D28r ... byte_FFFFA200: ds.b 1 ; DATA XREF: sub_32262:loc_322A4w ; sub_32262:loc_322BAr ... ds.b 1 word_FFFFA202: ds.b 2 ; DATA XREF: sub_31AE2:loc_31CACr ; sub_32164:loc_321D8w ... byte_FFFFA204: ds.b 1 ; DATA XREF: sub_31E86+22w ; sub_31FCA+15Ar ... byte_FFFFA205: ds.b 1 ; DATA XREF: sub_31E86+58w ; sub_31FCA+15Er word_FFFFA206: ds.b 2 ; DATA XREF: sub_31FCA:loc_32110w ; sub_31FCA:loc_3213Ar ... byte_FFFFA208: ds.b 1 ; DATA XREF: sub_31FCA+4r ; sub_31FCA:loc_32114r ... byte_FFFFA209: ds.b 1 ; DATA XREF: sub_31AE2+1Ar ; sub_31AE2+20w ... word_FFFFA20A: ds.b 2 ; DATA XREF: sub_3158C+24w ; sub_3158C:loc_315B6w ... word_FFFFA20C: ds.b 2 ; DATA XREF: sub_32324+110w ; sub_32324+134r ... byte_FFFFA20E: ds.b 1 ; DATA XREF: sub_31AE2:loc_31E30w ; sub_31AE2:loc_31E58r ... ds.b 1 word_FFFFA210: ds.b 2 ; DATA XREF: sub_31AE2+33Ew ; sub_31AE2+34Aw ... word_FFFFA212: ds.b 2 ; DATA XREF: sub_31AE2+390r ; sub_31E86+CCw byte_FFFFA214: ds.b 1 ; DATA XREF: sub_31AE2:loc_31E26r ; sub_31E86+9Aw byte_FFFFA215: ds.b 1 ; DATA XREF: sub_31AE2:loc_31E36r ; sub_31E86+B0w byte_FFFFA216: ds.b 1 ; DATA XREF: sub_31AE2+386r ; sub_31E86+BEw byte_FFFFA217: ds.b 1 ; DATA XREF: sub_32324:loc_32440r ; sub_32324+14Aw ... byte_FFFFA218: ds.b 1 ; DATA XREF: sub_32262:loc_3228Aw ; sub_32510+2Ew byte_FFFFA219: ds.b 1 ; DATA XREF: sub_32262+30r ; sub_32262:loc_3231Aw ... word_FFFFA21A: ds.b 2 ; DATA XREF: sub_32324+10Cw ; sub_32324+138r ... byte_FFFFA21C: ds.b 1 ; DATA XREF: sub_32324+90r ; sub_32324+116w ... ds.b 1 word_FFFFA21E: ds.b 2 ; DATA XREF: sub_31AE2+1A8r ; sub_32324+4w ... byte_FFFFA220: ds.b 1 ; DATA XREF: sub_321E2:loc_32212r ; sub_321E2:loc_3221Ew ... byte_FFFFA221: ds.b 1 ; DATA XREF: sub_321E2+6r ; sub_321E2:loc_3220Aw ... byte_FFFFA222: ds.b 1 ; DATA XREF: sub_31E86+6Aw ; sub_321E2+40r ... byte_FFFFA223: ds.b 1 ; DATA XREF: sub_31E86+84w ; sub_321E2+44r word_FFFFA224: ds.b 2 ; DATA XREF: sub_32164+54r ; sub_321E2+24w ... byte_FFFFA226: ds.b 1 ; DATA XREF: sub_3158C+44r ; sub_316EA:loc_31928w ... byte_FFFFA227: ds.b 1 ; DATA XREF: sub_3158C+3Er ; sub_316EA:loc_318C2w ... word_FFFFA228: ds.b 2 ; DATA XREF: sub_316EA+2FAr ; sub_316EA+316r ... word_FFFFA22A: ds.b 2 ; DATA XREF: sub_31E86+38w ; sub_31FCA+174r word_FFFFA22C: ds.b 2 ; DATA XREF: sub_31E86+78w ; sub_321E2+5Ar word_FFFFA22E: ds.b 2 ; DATA XREF: sub_3158C+4Cr ; sub_3158C:loc_31614r ... word_FFFFA230: ds.b 2 ; DATA XREF: sub_316EA+1ECr ; sub_316EA:loc_318DEw ... word_FFFFA232: ds.b 2 ; DATA XREF: sub_316EA+1DEr ; sub_316EA:loc_318D0w ... word_FFFFA234: ds.b 2 ; DATA XREF: sub_3158C+32r ; sub_3158C+3Aw ... word_FFFFA236: ds.b 2 ; DATA XREF: sub_316EA:loc_31A34w ; sub_316EA:loc_31A3Er ... word_FFFFA238: ds.b 2 ; DATA XREF: sub_316EA+300r ; sub_316EA+32Aw ... word_FFFFA23A: ds.b 2 ; DATA XREF: sub_3158C+116r ; sub_3158C:loc_316B0r ... word_FFFFA23C: ds.b 2 ; DATA XREF: sub_31F5C+Ar ; sub_31F5C:loc_31FC0w word_FFFFA23E: ds.b 2 ; DATA XREF: sub_31FCA+22w ; sub_31FCA+84r ... word_FFFFA240: ds.b 2 ; DATA XREF: sub_32262+48w ; sub_32262+5Ew ... word_FFFFA242: ds.b 2 ; DATA XREF: sub_31AE2:loc_31D32r ; sub_32262+4Ew ... word_FFFFA244: ds.b 2 ; DATA XREF: sub_32324+24w byte_FFFFA246: ds.b 1 ; DATA XREF: sub_2E27C+Er ; sub_2E27C:loc_2E2A2r ... byte_FFFFA247: ds.b 1 ; DATA XREF: sub_2E438+BEr ; sub_2E438:loc_2E51Er ... word_FFFFA248: ds.b 2 ; DATA XREF: sub_2DAA6+10w ; sub_2DACE+3Cr ... word_FFFFA24A: ds.b 2 ; DATA XREF: sub_2DAA6+20w ; sub_2DACE+48r ... word_FFFFA24C: ds.b 2 ; DATA XREF: sub_2DACE+12Ar ; sub_2DACE:loc_2DC04w ... byte_FFFFA24E: ds.b 1 ; DATA XREF: sub_2DACE:loc_2DBD0r ; sub_2DACE+10Cw ... byte_FFFFA24F: ds.b 1 ; DATA XREF: sub_2DACE:loc_2DD4Ar ; sub_2DACE:loc_2DDB8r ... word_FFFFA250: ds.b 2 ; DATA XREF: sub_2DACE+C0w ; sub_2DACE+14Er ... word_FFFFA252: ds.b 2 ; DATA XREF: sub_2DA2A+Cw ; sub_2DACE+40r ... word_FFFFA254: ds.b 2 ; DATA XREF: sub_2DACE+1DAr ; sub_2E27C+1Cw ... word_FFFFA256: ds.b 2 ; DATA XREF: sub_2DACE:loc_2DE3Er ; sub_2DACE+3E6w ... word_FFFFA258: ds.b 2 ; DATA XREF: sub_2DA2A:loc_2DA82r ; sub_2DA2A+6Cw ... word_FFFFA25A: ds.b 2 ; DATA XREF: sub_2DACE+36r ; sub_2DACE+122r ... word_FFFFA25C: ds.b 2 ; DATA XREF: sub_2E27C+56w ; sub_2E27C:loc_2E2F0r ... word_FFFFA25E: ds.b 2 ; DATA XREF: sub_2E27C+3Ew ; sub_2E27C+4Cw ... word_FFFFA260: ds.b 2 ; DATA XREF: sub_2DACE+2DCw ; sub_2DACE+2E6w ... word_FFFFA262: ds.b 2 ; DATA XREF: sub_2DACE+2CCw ; sub_2DACE:loc_2DDB0w ... byte_FFFFA264: ds.b 1 ; DATA XREF: sub_2E438+4w ; sub_2E438+148w ... ds.b 1 word_FFFFA266: ds.b 2 ; DATA XREF: sub_2DACE:loc_2DCBEw ; sub_2DACE:loc_2DCFEw ... word_FFFFA268: ds.b 2 ; DATA XREF: sub_2DACE+1C8w ; sub_2DACE+212r ... word_FFFFA26A: ds.b 2 ; DATA XREF: sub_2DACE+1D6w ; sub_2DACE+20Ar ... word_FFFFA26C: ds.b 2 ; DATA XREF: sub_2DACE+200w ; sub_2DACE:loc_2DD14w word_FFFFA26E: ds.b 2 ; DATA XREF: sub_2DACE:loc_2DD8Er ; sub_2DED8+12Ew ... word_FFFFA270: ds.b 2 ; DATA XREF: sub_2DACE+2D0r ; sub_2DED8:loc_2DFF2w word_FFFFA272: ds.b 2 ; DATA XREF: sub_2DED8:loc_2DF40w ; sub_2DED8:loc_2DF46w ... word_FFFFA274: ds.b 2 ; DATA XREF: sub_2DACE+2B4w ; sub_2DACE:loc_2DD88w ... word_FFFFA276: ds.b 2 ; DATA XREF: sub_2DACE:loc_2DE34w ; sub_2DACE:loc_2DE3Aw ... word_FFFFA278: ds.b 2 ; DATA XREF: sub_2E010+106w ; sub_2E010:loc_2E120w ... word_FFFFA27A: ds.b 2 ; DATA XREF: sub_2DACE:loc_2DEA8w word_FFFFA27C: ds.b 2 ; DATA XREF: sub_2E27C+10Aw ; sub_2E27C+10Er word_FFFFA27E: ds.b 2 ; DATA XREF: sub_2E438+3Ar ; sub_2E438+44r ... byte_FFFFA280: ds.b 1 ; DATA XREF: sub_2E010+10r ; sub_2E010+2Cw ... byte_FFFFA281: ds.b 1 ; DATA XREF: sub_2E010+30r ; sub_2E010+4Cw ... byte_FFFFA282: ds.b 1 ; DATA XREF: sub_2E010+52w ; sub_2E010+218r ... byte_FFFFA283: ds.b 1 ; DATA XREF: sub_2E010+64w ; sub_2E010:loc_2E09Ew ... byte_FFFFA284: ds.b 1 ; DATA XREF: sub_2E010:loc_2E0A8r ; sub_2E010+C2w ... byte_FFFFA285: ds.b 1 ; DATA XREF: sub_2E010:loc_2E0EAr ; sub_2E010+F4w ... byte_FFFFA286: ds.b 1 ; DATA XREF: sub_2E010:loc_2E110r ; sub_2E010+122w ... byte_FFFFA287: ds.b 1 ; DATA XREF: sub_2E010+196w ; sub_2E010:loc_2E1AEw ... byte_FFFFA288: ds.b 1 ; DATA XREF: sub_2E010+1F6w ; sub_2E010:loc_2E20Cw ... byte_FFFFA289: ds.b 1 ; DATA XREF: sub_2E010:loc_2E1B2r ; sub_2E010+1C6w ... byte_FFFFA28A: ds.b 1 ; DATA XREF: sub_2E010+1B6w ; sub_2E010+1CAr ... ds.b 1 word_FFFFA28C: ds.b 2 ; DATA XREF: sub_2E010+1B0w ; sub_2E010+1D0r word_FFFFA28E: ds.b 2 ; DATA XREF: sub_2E010+76r ; sub_2E010+92w word_FFFFA290: ds.b 2 ; DATA XREF: sub_2E27C+5Ew ; sub_2E27C+17Aw ... word_FFFFA292: ds.b 2 ; DATA XREF: sub_2E438+126r ; sub_2E438:loc_2E578w ... word_FFFFA294: ds.b 2 ; DATA XREF: sub_2E438:loc_2E548r ; sub_2E438+16Cw ... word_FFFFA296: ds.b 2 ; DATA XREF: sub_2E438+18r ; sub_2E438+22r ... dword_FFFFA298: ds.b 4 ; DATA XREF: sub_2E438:loc_2E48Er ; sub_2E438+6Cr ... byte_FFFFA29C: ds.b 1 ; DATA XREF: sub_2E438+FAr ; sub_2E438:loc_2E590r ... byte_FFFFA29D: ds.b 1 ; DATA XREF: sub_2E438+88w ; sub_2E438+DAr ... byte_FFFFA29E: ds.b 1 ; DATA XREF: sub_2E27C:loc_2E2B4r ; sub_2E438+144w ... byte_FFFFA29F: ds.b 1 ; DATA XREF: sub_2DED8+Ar ; sub_2DED8+2Aw ... byte_FFFFA2A0: ds.b 1 ; DATA XREF: sub_28274+Aw ; sub_28274:loc_28288w ... byte_FFFFA2A1: ds.b 1 ; DATA XREF: sub_559D6+CC4r ; sub_575C6+5BCr ... word_FFFFA2A2: ds.b 2 ; DATA XREF: sub_86CBE+2r sub_86CBE+Er ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFA2BC: ds.b 1 ; DATA XREF: sub_4C664+38Cr sub_5AB46r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFA2C6: ds.b 2 ; DATA XREF: sub_5A53Cr ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFA2CE: ds.b 2 ; DATA XREF: sub_5C510+9Cr ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFA2DA: ds.b 1 ; DATA XREF: sub_2828E+10w ; sub_2828E:loc_282A8w ... ds.b 1 word_FFFFA2DC: ds.b 2 ; DATA XREF: sub_4C50E+14w ; sub_4CA06+96r ... word_FFFFA2DE: ds.b 2 ; DATA XREF: sub_4C50E+18w ; sub_4CA06+9Cr ... word_FFFFA2E0: ds.b 2 ; DATA XREF: sub_571CE:loc_571E6r word_FFFFA2E2: ds.b 2 ; DATA XREF: sub_571CE:loc_574A6r word_FFFFA2E4: ds.b 2 ; DATA XREF: sub_56EDC:loc_57148r word_FFFFA2E6: ds.b 2 ; DATA XREF: sub_56EDC+2DAr ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFA2F4: ds.b 2 ; DATA XREF: sub_4D13A:loc_4D55Cr ; sub_4D13A:loc_4D63Cr byte_FFFFA2F6: ds.b 1 ; DATA XREF: sub_4AE3Cr ds.b 1 byte_FFFFA2F8: ds.b 1 ; DATA XREF: sub_4D97C+26r ds.b 1 word_FFFFA2FA: ds.b 2 ; DATA XREF: sub_20718+19Ew ; sub_20718:loc_208C2w ... word_FFFFA2FC: ds.b 2 ; DATA XREF: sub_200DE+2A8r ; sub_200DE:loc_203EEw ... byte_FFFFA2FE: ds.b 1 ; DATA XREF: sub_20000+56r ; sub_20000+5Cw ... byte_FFFFA2FF: ds.b 1 ; DATA XREF: sub_2008A+42r ; sub_2008A+48w ... byte_FFFFA300: ds.b 1 ; DATA XREF: sub_20644+Er ; sub_208D8:loc_20A0Er ... byte_FFFFA301: ds.b 1 ; DATA XREF: sub_200DE:loc_205F6w ; sub_20644+2Ar ... byte_FFFFA302: ds.b 1 ; DATA XREF: sub_20B50+34w ; sub_20C0C+90w ... byte_FFFFA303: ds.b 1 ; DATA XREF: sub_20B50+60w ; sub_20C0C+94w word_FFFFA304: ds.b 2 ; DATA XREF: sub_20718+1Ew ; sub_20718+132r ... word_FFFFA306: ds.b 2 ; DATA XREF: sub_20718+1Aw ; sub_20718+10Cr ... word_FFFFA308: ds.b 2 ; DATA XREF: sub_20718+12w ; sub_20718+C0r ... word_FFFFA30A: ds.b 2 ; DATA XREF: sub_20718+Ew ; sub_20718+9Cr ... word_FFFFA30C: ds.b 2 ; DATA XREF: sub_20718+178w word_FFFFA30E: ds.b 2 ; DATA XREF: sub_20718:loc_2089Ar ; sub_20718+188w ... word_FFFFA310: ds.b 2 ; DATA XREF: sub_20A3A:loc_20A4Cw word_FFFFA312: ds.b 2 ; DATA XREF: sub_20BC4+Ew sub_20BEC+6w dword_FFFFA314: ds.b 4 ; DATA XREF: sub_200DE+358w dword_FFFFA318: ds.b 4 ; DATA XREF: sub_200DE+3B0r ; sub_200DE+3B6w ... dword_FFFFA31C: ds.b 4 ; DATA XREF: sub_200DE:loc_2049Ar ; sub_200DE+3C2w ... dword_FFFFA320: ds.b 4 ; DATA XREF: sub_200DE+3F2w dword_FFFFA324: ds.b 4 ; DATA XREF: sub_200DE+44Ar ; sub_200DE+450w ... dword_FFFFA328: ds.b 4 ; DATA XREF: sub_200DE:loc_20534r ; sub_200DE+45Cw ... word_FFFFA32C: ds.b 2 ; DATA XREF: sub_200DE+92w ; sub_200DE+EAr word_FFFFA32E: ds.b 2 ; DATA XREF: sub_200DE:loc_201E8w ; sub_200DE+13Er word_FFFFA330: ds.b 2 ; DATA XREF: sub_200DE+142r ; sub_200DE+1C2w ... word_FFFFA332: ds.b 2 ; DATA XREF: sub_200DE+154r ; sub_200DE:loc_2029Cw ... word_FFFFA334: ds.b 2 ; DATA XREF: sub_200DE:loc_2033Cw ; sub_200DE:loc_20342w ... word_FFFFA336: ds.b 2 ; DATA XREF: sub_200DE+296r ; sub_200DE+314w ... word_FFFFA338: ds.b 2 ; DATA XREF: sub_20BC4+20w ; sub_20BEC+18w ds.b 1 byte_FFFFA33B: ds.b 1 ; DATA XREF: sub_2008A+6w ; sub_2008A+12w ... byte_FFFFA33C: ds.b 1 ; DATA XREF: sub_20000+18w ; sub_20000:loc_2001Ew ... byte_FFFFA33D: ds.b 1 ; DATA XREF: sub_20000+30w ; sub_20000+36w ... byte_FFFFA33E: ds.b 1 ; DATA XREF: sub_200DE+CAw ; sub_200DE+E6r byte_FFFFA33F: ds.b 1 ; DATA XREF: sub_200DE+E0w ; sub_200DE+FCr byte_FFFFA340: ds.b 1 ; DATA XREF: sub_200DE+538r ; sub_200DE:loc_20632w ... byte_FFFFA341: ds.b 1 ; DATA XREF: sub_200DE+368r ; sub_200DE:loc_20458r ... byte_FFFFA342: ds.b 1 ; DATA XREF: sub_200DE:loc_20480r ; sub_200DE+3A8w ... byte_FFFFA343: ds.b 1 ; DATA XREF: sub_200DE+402r ; sub_200DE:loc_204F2r ... byte_FFFFA344: ds.b 1 ; DATA XREF: sub_200DE:loc_2051Ar ; sub_200DE+442w ... byte_FFFFA345: ds.b 1 ; DATA XREF: sub_208D8+5Er ; sub_208D8:loc_20946w ... byte_FFFFA346: ds.b 1 ; DATA XREF: sub_208D8+72r ; sub_208D8:loc_20958w ... byte_FFFFA347: ds.b 1 ; DATA XREF: sub_208D8+110r ; sub_208D8+116w ... byte_FFFFA348: ds.b 1 ; DATA XREF: sub_208D8+11Er ; sub_208D8+124w ... byte_FFFFA349: ds.b 1 ; DATA XREF: DBW_Breadcrumbr ; DBW_Breadcrumb+6w ... byte_FFFFA34A: ds.b 1 ; DATA XREF: sub_20A3A+28r ; sub_20A3A:loc_20A70w ... byte_FFFFA34B: ds.b 1 ; DATA XREF: DBW_Breadcrumb+Er ; DBW_Breadcrumb+14w ... byte_FFFFA34C: ds.b 1 ; DATA XREF: sub_200DE+1Ew ; sub_200DE:loc_20104w ... byte_FFFFA34D: ds.b 1 ; DATA XREF: sub_20718+4r ; sub_20718+1A2w ... byte_FFFFA34E: ds.b 1 ; DATA XREF: sub_20644+8r ; sub_20644+1Ew ... byte_FFFFA34F: ds.b 1 ; DATA XREF: sub_20000+60r ; sub_20000+76w ... byte_FFFFA350: ds.b 1 ; DATA XREF: sub_20000:loc_2007Cw ; sub_20644:loc_20682r ... byte_FFFFA351: ds.b 1 ; DATA XREF: sub_20644:loc_2069Cr ; sub_20644+64w ... byte_FFFFA352: ds.b 1 ; DATA XREF: sub_20644:loc_206AEr ; sub_20644+76w ... ds.b 1 byte_FFFFA354: ds.b 1 ; DATA XREF: sub_2BA40+768r ; sub_6BF68+270w ... ds.b 1 byte_FFFFA356: ds.b 1 ; DATA XREF: sub_6C362:loc_6C65Aw byte_FFFFA357: ds.b 1 ; DATA XREF: sub_6C362:loc_6C6EEw word_FFFFA358: ds.b 2 ; DATA XREF: sub_31AE2+214r ; sub_6BF36+Ew ... byte_FFFFA35A: ds.b 1 ; DATA XREF: sub_357CAr sub_6B156+10w ... byte_FFFFA35B: ds.b 1 ; DATA XREF: sub_6BDFE+7Ew ; sub_6BDFE+8Aw ... byte_FFFFA35C: ds.b 1 ; DATA XREF: sub_6B602:loc_6BA42r ; sub_6BDFE+C6w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFA362: ds.b 1 ; DATA XREF: sub_2E726+122r ; sub_6720E:loc_67224r ... byte_FFFFA363: ds.b 1 ; DATA XREF: sub_6BAAC+8Aw ; sub_6BAAC:loc_6BB3Ew ... byte_FFFFA364: ds.b 1 ; DATA XREF: sub_2F386:loc_2F4ECr ; sub_6BB84+D0w ... byte_FFFFA365: ds.b 1 ; DATA XREF: sub_6BF68+236w ; sub_6C236+AAr byte_FFFFA366: ds.b 1 ; DATA XREF: sub_6BDFE+26w ; sub_6BDFE+12Cw ... ds.b 1 word_FFFFA368: ds.b 2 ; DATA XREF: sub_6BDFE+22w ; sub_6BDFE:loc_6BF26w ... word_FFFFA36A: ds.b 2 ; DATA XREF: sub_6BF68+274w ; sub_6BF68+298r ... unk_FFFFA36C: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFA372: ds.b 1 ; DATA XREF: sub_6C362+2BAr ; sub_6C362+330r byte_FFFFA373: ds.b 1 ; DATA XREF: sub_6C362+30Cr ; sub_6C362+34Er word_FFFFA374: ds.b 2 ; DATA XREF: sub_6BDFE+42w ; sub_6BF68+3Ar ... unk_FFFFA376: ds.b 1 ds.b 1 word_FFFFA378: ds.b 2 ; DATA XREF: sub_6BF68+6Er ; sub_6C362+2AEr ... word_FFFFA37A: ds.b 2 ; DATA XREF: sub_6C362:loc_6C662r ; sub_6C362:loc_6C6A4r word_FFFFA37C: ds.b 2 ; DATA XREF: sub_6BDFE+46w ; sub_6BF68+82r ... word_FFFFA37E: ds.b 2 ; DATA XREF: sub_6BDFE+4Aw ; sub_6BF68:loc_6C0FCw word_FFFFA380: ds.b 2 ; DATA XREF: sub_6BDFE+4Ew ; sub_6BF68+18Ew word_FFFFA382: ds.b 2 ; DATA XREF: sub_6BDFE+52w ; sub_6BF68+12Aw ... word_FFFFA384: ds.b 2 ; DATA XREF: sub_6BDFE+5Ew ; sub_6BF68+132w ... word_FFFFA386: ds.b 2 ; DATA XREF: sub_6BDFE+5Aw ; sub_6BF68+12Ew ... word_FFFFA388: ds.b 2 ; DATA XREF: sub_6BDFE+62w ; sub_6BF68+136w ... byte_FFFFA38A: ds.b 1 ; DATA XREF: sub_6BDFE:loc_6BE3Cw ; sub_6C362+13Cr ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFA390: ds.b 2 ; DATA XREF: sub_6BAAC+10r ; sub_6BAAC:loc_6BADCw ... word_FFFFA392: ds.b 2 ; DATA XREF: sub_6BAAC+5Cr ; sub_6BAAC:loc_6BB16w ... word_FFFFA394: ds.b 2 ; DATA XREF: sub_6BF68+A8r ; sub_6BF68:loc_6C058w byte_FFFFA396: ds.b 1 ; DATA XREF: sub_6BAAC+48r ; sub_6BAAC:loc_6BB20w ... byte_FFFFA397: ds.b 1 ; DATA XREF: sub_6BAAC+4Er ; sub_6BAAC+78w ... word_FFFFA398: ds.b 2 ; DATA XREF: sub_6BDFE+66w ; sub_6BF68+124r ... word_FFFFA39A: ds.b 2 ; DATA XREF: sub_6BDFE+6Aw ; sub_6C362+172r ... dword_FFFFA39C: ds.b 4 ; DATA XREF: sub_6BDFE:loc_6BE14w byte_FFFFA3A0: ds.b 1 ; DATA XREF: sub_6BDFE+1Aw ; sub_6BF68+DCr ... byte_FFFFA3A1: ds.b 1 ; DATA XREF: sub_6BB84+28w ; sub_6BB84+3Cr ... word_FFFFA3A2: ds.b 2 ; DATA XREF: sub_6BB84+10r ; sub_6BB84:loc_6BBA2w ... word_FFFFA3A4: ds.b 2 ; DATA XREF: sub_6BB84+2Cw ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFA3AA: ds.b 1 ; DATA XREF: sub_47B78:loc_47CD0r ; sub_4930Er ... byte_FFFFA3AB: ds.b 1 ; DATA XREF: sub_3090C+8r sub_35FC0r ... byte_FFFFA3AC: ds.b 1 ; DATA XREF: sub_2452C+4Cr ; sub_24716+B68r ... byte_FFFFA3AD: ds.b 1 ; DATA XREF: sub_321E2r sub_842B2+2Aw ... byte_FFFFA3AE: ds.b 1 ; DATA XREF: sub_45F3A+18E4r ; sub_47DA2:loc_48398r ... byte_FFFFA3AF: ds.b 1 ; DATA XREF: sub_24716+16FEr ; sub_24716+17D4r ... byte_FFFFA3B0: ds.b 1 ; DATA XREF: sub_758D8+68r ; sub_75A66+ACr ... byte_FFFFA3B1: ds.b 1 ; DATA XREF: sub_4930E+26r ; sub_49356:loc_49372r ... byte_FFFFA3B2: ds.b 1 ; DATA XREF: sub_5341E+F2r ; sub_83986+B4w ... byte_FFFFA3B3: ds.b 1 ; DATA XREF: sub_45F3A:loc_46D92r ; sub_45F3A+E90r ... byte_FFFFA3B4: ds.b 1 ; DATA XREF: sub_47B78+190r ; sub_4930E+20r ... byte_FFFFA3B5: ds.b 1 ; DATA XREF: sub_2DED8+4r ; OS2:00043126r ... byte_FFFFA3B6: ds.b 1 ; DATA XREF: sub_5A6A0:loc_5A6CAr ; sub_842B2:loc_842C4w ... byte_FFFFA3B7: ds.b 1 ; DATA XREF: sub_2E010:loc_2E212r ; sub_3090C+C2r ... byte_FFFFA3B8: ds.b 1 ; DATA XREF: sub_20D54+C6r ; sub_20D54+E6r ... byte_FFFFA3B9: ds.b 1 ; DATA XREF: sub_7C8A2+F4r ; sub_7C8A2+10Ar ... byte_FFFFA3BA: ds.b 1 ; DATA XREF: sub_45F3A:loc_46A8Cr ; sub_45F3A+B82r ... byte_FFFFA3BB: ds.b 1 ; DATA XREF: OS2:GetPid_1921r ; sub_83986+720w word_FFFFA3BC: ds.b 2 ; DATA XREF: sub_840B4:loc_841A4w ; sub_8443E+B6r ... word_FFFFA3BE: ds.b 2 ; DATA XREF: sub_5436E+58Er ; sub_83986+534w word_FFFFA3C0: ds.b 2 ; DATA XREF: sub_24716:loc_248F2r ; sub_4A71A+52r ... word_FFFFA3C2: ds.b 2 ; DATA XREF: sub_2EBD6:loc_2ECE0r ; sub_2EBD6+206r ... byte_FFFFA3C4: ds.b 1 ; DATA XREF: sub_45F3A+8D8r ; sub_47DA2:loc_47F62r ... byte_FFFFA3C5: ds.b 1 ; DATA XREF: sub_838CA+2r ; sub_838FE+66r ... byte_FFFFA3C6: ds.b 1 ; DATA XREF: sub_83986+1ECr ; sub_83986:loc_83BDAw ... byte_FFFFA3C7: ds.b 1 ; DATA XREF: sub_83986:loc_83A16r ; sub_83986:loc_83A86w ... byte_FFFFA3C8: ds.b 1 ; DATA XREF: sub_83986+3Aw ; sub_83986:loc_839C6w ... byte_FFFFA3C9: ds.b 1 ; DATA XREF: sub_842B2+B0r ; sub_842B2+E0w ... byte_FFFFA3CA: ds.b 1 ; DATA XREF: sub_838CA+10w ; sub_838CA+18w ... byte_FFFFA3CB: ds.b 1 ; DATA XREF: sub_838CA+Ar ; sub_838CA+1Cw ... byte_FFFFA3CC: ds.b 1 ; DATA XREF: sub_83986+37Ew ; sub_83986:loc_83D0Aw ... byte_FFFFA3CD: ds.b 1 ; DATA XREF: sub_83986+378r ; sub_83986+388w ... byte_FFFFA3CE: ds.b 1 ; DATA XREF: sub_8443E:loc_84456w ; sub_8443E+34w ... byte_FFFFA3CF: ds.b 1 ; DATA XREF: sub_8443E+72r ; sub_8443E+9Aw ... byte_FFFFA3D0: ds.b 1 ; DATA XREF: sub_8443E+F8r ; sub_8443E:loc_84548w ... byte_FFFFA3D1: ds.b 1 ; DATA XREF: sub_8443E+6Cr ; sub_8443E+A0w ... byte_FFFFA3D2: ds.b 1 ; DATA XREF: sub_8443E:loc_8456Ew ; sub_8443E+160w ... byte_FFFFA3D3: ds.b 1 ; DATA XREF: sub_83986:loc_83B24w ; sub_83986+1AAw ... byte_FFFFA3D4: ds.b 1 ; DATA XREF: sub_83986:loc_839D6w ; sub_83986+60w ... ds.b 1 word_FFFFA3D6: ds.b 2 ; DATA XREF: sub_8443E+84r ; sub_8443E:loc_844E4w word_FFFFA3D8: ds.b 2 ; DATA XREF: sub_842B2+7Er ; sub_842B2+90r ... word_FFFFA3DA: ds.b 2 ; DATA XREF: sub_83986:loc_83BA4w word_FFFFA3DC: ds.b 2 ; DATA XREF: sub_83986:loc_83BD4w word_FFFFA3DE: ds.b 2 ; DATA XREF: sub_83986:loc_83A4Cw word_FFFFA3E0: ds.b 2 ; DATA XREF: sub_83986:loc_83A80w word_FFFFA3E2: ds.b 2 ; DATA XREF: sub_83986:loc_83F90w ; sub_83986+63Er ... word_FFFFA3E4: ds.b 2 ; DATA XREF: sub_83986:loc_83EB4w word_FFFFA3E6: ds.b 2 ; DATA XREF: sub_842B2+136r ; sub_842B2:loc_843F4w ... word_FFFFA3E8: ds.b 2 ; DATA XREF: sub_83986+600w ; sub_83986+664r ... word_FFFFA3EA: ds.b 2 ; DATA XREF: sub_83986:loc_83F9Ar ; sub_83986+61Cw ... dword_FFFFA3EC: ds.b 4 ; DATA XREF: sub_83986+474r ; sub_83986+4C0o dword_FFFFA3F0: ds.b 4 ; DATA XREF: sub_83986+46Er dword_FFFFA3F4: ds.b 4 ; DATA XREF: sub_83986+48Er dword_FFFFA3F8: ds.b 4 ; DATA XREF: sub_83986+488r byte_FFFFA3FC: ds.b 1 ; DATA XREF: sub_8443E+CAw ; sub_8443E+E2w ... byte_FFFFA3FD: ds.b 1 ; DATA XREF: sub_83986+2D2w ; sub_83986+2E0r ... byte_FFFFA3FE: ds.b 1 ; DATA XREF: sub_83986+2CAr ; sub_83986+2E6r ... byte_FFFFA3FF: ds.b 1 ; DATA XREF: sub_83986+142w ; sub_83986+1E8w ... byte_FFFFA400: ds.b 1 ; DATA XREF: OS2:GetPid_192Ar ; OS2:00044BF6r ... byte_FFFFA401: ds.b 1 ; DATA XREF: sub_5B542:loc_5B5F2w ; sub_5B542:loc_5B622w ... byte_FFFFA402: ds.b 1 ; DATA XREF: sub_5B4EE+4w ; sub_5B744+3Aw ... ds.b 1 word_FFFFA404: ds.b 2 ; DATA XREF: sub_594F4+8r ; sub_594F4:loc_59526r ... word_FFFFA406: ds.b 2 ; DATA XREF: OS2:GetPid_19FFr ; sub_5B542+8Cr ... word_FFFFA408: ds.b 2 ; DATA XREF: sub_5C340+14w ; sub_5C340+22r ... word_FFFFA40A: ds.b 2 ; DATA XREF: sub_4D13A+F0r ; sub_53DDA+C6r ... word_FFFFA40C: ds.b 2 ; DATA XREF: sub_3E3FE:loc_3E438r ; OS2:000430A6r ... byte_FFFFA40E: ds.b 1 ; DATA XREF: OS2:loc_44790r ; OS2:loc_44C44r ... byte_FFFFA40F: ds.b 1 ; DATA XREF: sub_5B744+1Er ; sub_5C340+18w ... word_FFFFA410: ds.b 2 ; DATA XREF: sub_575C6+386r ; sub_575C6+42Er ... word_FFFFA412: ds.b 2 ; DATA XREF: sub_5BDC8+10Aw ; sub_5BDC8:loc_5BED8w ... word_FFFFA414: ds.b 2 ; DATA XREF: sub_5BA2E:loc_5BB8Aw ; sub_5BA2E+296w ... word_FFFFA416: ds.b 2 ; DATA XREF: sub_5B542:loc_5B5CAw ; sub_5B542+E6r word_FFFFA418: ds.b 2 ; DATA XREF: sub_5B3F8+1Aw ; sub_5BDC8+98r ... word_FFFFA41A: ds.b 2 ; DATA XREF: sub_5B542+D6w ; sub_5B542+E6w ... word_FFFFA41C: ds.b 2 ; DATA XREF: sub_5BA2E+2E4r ; sub_5BA2E:loc_5BD2Cr ... word_FFFFA41E: ds.b 2 ; DATA XREF: sub_5BA2E+2B4r ; sub_5C1FE+Ew word_FFFFA420: ds.b 2 ; DATA XREF: sub_5C340+6Aw ; sub_5C340:loc_5C3B4w ... word_FFFFA422: ds.b 2 ; DATA XREF: sub_5C510+48w ; sub_5C510+12Cr ... word_FFFFA424: ds.b 2 ; DATA XREF: sub_5C510+88w ; sub_5C510+128r word_FFFFA426: ds.b 2 ; DATA XREF: sub_5BA2E+132r ; sub_5BA2E:loc_5BB84r ... word_FFFFA428: ds.b 2 ; DATA XREF: sub_5B542+158r ; sub_5B542+194w ... word_FFFFA42A: ds.b 2 ; DATA XREF: sub_5B542+158w ; sub_5BDC8+18Cr ... word_FFFFA42C: ds.b 2 ; DATA XREF: sub_5BDC8:loc_5BF9Aw word_FFFFA42E: ds.b 2 ; DATA XREF: sub_5BDC8+198r ; sub_5BDC8:loc_5C194w word_FFFFA430: ds.b 2 ; DATA XREF: sub_5BDC8+2A2w ; sub_5BDC8+2AAr ... word_FFFFA432: ds.b 2 ; DATA XREF: sub_5BDC8+2FAw word_FFFFA434: ds.b 2 ; DATA XREF: sub_5B542:loc_5B694r ; sub_5B542+18Ew ... word_FFFFA436: ds.b 2 ; DATA XREF: sub_5B542:loc_5B694w ; sub_5BDC8+356r byte_FFFFA438: ds.b 1 ; DATA XREF: sub_5BDC8+Er ; sub_5BDC8+2Ew ... ds.b 1 word_FFFFA43A: ds.b 2 ; DATA XREF: sub_5B542:loc_5B73Aw ; sub_5BA2E+12Er ... word_FFFFA43C: ds.b 2 ; DATA XREF: sub_5C1FE+Aw ; sub_5C1FE:loc_5C290r ... byte_FFFFA43E: ds.b 1 ; DATA XREF: sub_5C7B4+13Aw ; sub_5C7B4:loc_5C8F6w ... byte_FFFFA43F: ds.b 1 ; DATA XREF: sub_5C7B4+88w ; sub_5C7B4:loc_5C844w ... byte_FFFFA440: ds.b 1 ; DATA XREF: sub_5C7B4+A8w ; sub_5C7B4:loc_5C864w ... byte_FFFFA441: ds.b 1 ; DATA XREF: sub_5C7B4+C8w ; sub_5C7B4:loc_5C884w ... word_FFFFA442: ds.b 2 ; DATA XREF: sub_5C7B4+116r ; sub_5C7B4:loc_5C8D8w ... word_FFFFA444: ds.b 2 ; DATA XREF: sub_5C7B4+Er ; sub_5C7B4+18w ... word_FFFFA446: ds.b 2 ; DATA XREF: sub_5C7B4+40r ; sub_5C7B4+4Aw ... word_FFFFA448: ds.b 2 ; DATA XREF: sub_5C7B4+62r ; sub_5C7B4+6Cw ... word_FFFFA44A: ds.b 2 ; DATA XREF: sub_5C7B4:loc_5C7E6w word_FFFFA44C: ds.b 2 ; DATA XREF: sub_5C7B4+54w word_FFFFA44E: ds.b 2 ; DATA XREF: sub_5C7B4+76w word_FFFFA450: ds.b 2 ; DATA XREF: sub_5C900+116w ; sub_5C900:loc_5CA1Ew ... word_FFFFA452: ds.b 2 ; DATA XREF: sub_5C900:loc_5CA36w ; sub_5C900+140r ... byte_FFFFA454: ds.b 1 ; DATA XREF: sub_5C900+132w ; sub_5C900+15Aw ... ds.b 1 byte_FFFFA456: ds.b 1 ; DATA XREF: sub_266D2+1Aw sub_26900w ... byte_FFFFA457: ds.b 1 ; DATA XREF: sub_266D2+20w ; sub_27C78+1Ew ... word_FFFFA458: ds.b 2 ; DATA XREF: sub_266D2+26w ; sub_27C78+22w ... byte_FFFFA45A: ds.b 1 ; DATA XREF: sub_266D2+3Aw ; sub_26900+4w ... byte_FFFFA45B: ds.b 1 ; DATA XREF: sub_266D2+40w ; sub_27C78+6Aw ... word_FFFFA45C: ds.b 2 ; DATA XREF: sub_266D2+46w ; sub_27C78+6Ew ... byte_FFFFA45E: ds.b 1 ; DATA XREF: sub_266D2+5Aw ; sub_26900+8w ... byte_FFFFA45F: ds.b 1 ; DATA XREF: sub_266D2+60w ; sub_27C78+B6w ... word_FFFFA460: ds.b 2 ; DATA XREF: sub_266D2+66w ; sub_27C78+BAw ... byte_FFFFA462: ds.b 1 ; DATA XREF: sub_266D2+7Aw ; sub_26900+Cw ... byte_FFFFA463: ds.b 1 ; DATA XREF: sub_266D2+80w ; sub_27C78+102w ... word_FFFFA464: ds.b 2 ; DATA XREF: sub_266D2+86w ; sub_27C78+106w ... byte_FFFFA466: ds.b 1 ; DATA XREF: sub_266D2+9Aw ; sub_26900+10w ... byte_FFFFA467: ds.b 1 ; DATA XREF: sub_266D2+A0w ; sub_27C78+14Ew ... word_FFFFA468: ds.b 2 ; DATA XREF: sub_266D2+A6w ; sub_27C78+152w ... byte_FFFFA46A: ds.b 1 ; DATA XREF: sub_266D2+BAw ; sub_26900+14w ... byte_FFFFA46B: ds.b 1 ; DATA XREF: sub_266D2+C0w ; sub_27C78+19Aw ... word_FFFFA46C: ds.b 2 ; DATA XREF: sub_266D2+C6w ; sub_27C78+19Ew ... word_FFFFA46E: ds.b 2 ; DATA XREF: sub_266D2+DAw ; sub_26900+18w ... byte_FFFFA470: ds.b 1 ; DATA XREF: sub_266D2+194w ; sub_26900+38w ... byte_FFFFA471: ds.b 1 ; DATA XREF: sub_266D2+19Aw ; sub_27C78:loc_28002w ... word_FFFFA472: ds.b 2 ; DATA XREF: sub_266D2+1A0w ; sub_27C78+382w ... byte_FFFFA474: ds.b 1 ; DATA XREF: sub_266D2+1D4w ; sub_26900+40w ... byte_FFFFA475: ds.b 1 ; DATA XREF: sub_266D2+1DAw ; sub_27C78:loc_28082w ... word_FFFFA476: ds.b 2 ; DATA XREF: sub_266D2+1E0w ; sub_27C78:loc_280B8w ... byte_FFFFA478: ds.b 1 ; DATA XREF: sub_266D2+1B4w ; sub_26900+3Cw ... byte_FFFFA479: ds.b 1 ; DATA XREF: sub_266D2+1BAw ; sub_27C78:loc_28058w ... word_FFFFA47A: ds.b 2 ; DATA XREF: sub_266D2+1C0w ; sub_27C78+3D8w ... byte_FFFFA47C: ds.b 1 ; DATA XREF: sub_266D2+214w sub_2F512r ... byte_FFFFA47D: ds.b 1 ; DATA XREF: sub_266D2+21Aw ; sub_2F512+14r ... byte_FFFFA47E: ds.b 1 ; DATA XREF: sub_266D2+220w ds.b 1 word_FFFFA480: ds.b 2 ; DATA XREF: sub_266D2+F4w ; sub_26900+20w ... byte_FFFFA482: ds.b 1 ; DATA XREF: sub_266D2+100w ; sub_26900+1Cw ... ds.b 1 byte_FFFFA484: ds.b 1 ; DATA XREF: sub_266D2+1F4w ; sub_27C78+45Aw ... byte_FFFFA485: ds.b 1 ; DATA XREF: sub_266D2+1FAw ; sub_27C78:loc_280BCw byte_FFFFA486: ds.b 1 ; DATA XREF: sub_266D2+200w ; sub_27C78+466w ... ds.b 1 byte_FFFFA488: ds.b 1 ; DATA XREF: sub_24716:loc_24D1Er ; sub_24716+61Er ... byte_FFFFA489: ds.b 1 ; DATA XREF: sub_24716:loc_24D4Ar ; sub_24716:loc_24D5Cr ... word_FFFFA48A: ds.b 2 ; DATA XREF: sub_24716+63Ar ; sub_24716+656r ... word_FFFFA48C: ds.b 2 ; DATA XREF: sub_24716:loc_24742r ; sub_266D2+114w ... byte_FFFFA48E: ds.b 1 ; DATA XREF: sub_266D2+120w ; sub_26900+28w ... ds.b 1 byte_FFFFA490: ds.b 1 ; DATA XREF: sub_266D2+154w ; sub_26900+30w ... byte_FFFFA491: ds.b 1 ; DATA XREF: sub_266D2+15Aw ; sub_27C78:loc_27F56w ... word_FFFFA492: ds.b 2 ; DATA XREF: sub_266D2+160w ; sub_27C78+2D6w ... byte_FFFFA494: ds.b 1 ; DATA XREF: sub_266D2+174w ; sub_26900+34w ... byte_FFFFA495: ds.b 1 ; DATA XREF: sub_266D2+17Aw ; sub_27C78:loc_27FACw ... word_FFFFA496: ds.b 2 ; DATA XREF: sub_266D2+180w ; sub_27C78+32Cw ... word_FFFFA498: ds.b 2 ; DATA XREF: OS2:GetPid_FC24r word_FFFFA49A: ds.b 2 ; DATA XREF: OS2:GetPid_FC25r ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFA4AA: ds.b 1 ; DATA XREF: sub_2F512+96r ; sub_63172+56r ... ds.b 1 word_FFFFA4AC: ds.b 2 ; DATA XREF: OS3:0006345Ar ; OS3:00063842r ... word_FFFFA4AE: ds.b 2 ; DATA XREF: sub_63172+16r ; sub_64058+C4r ... word_FFFFA4B0: ds.b 2 ; DATA XREF: OS3:00063B42r ; OS3:00063B54r ... byte_FFFFA4B2: ds.b 1 ; DATA XREF: sub_63172:loc_631DCr ; OS3:loc_63B1Cr ... ds.b 1 word_FFFFA4B4: ds.b 2 ; DATA XREF: sub_63172+8r sub_64216+8r ... word_FFFFA4B6: ds.b 2 ; DATA XREF: OS3:00063300r ; sub_64216+Cr ... byte_FFFFA4B8: ds.b 1 ; DATA XREF: OS3:00063B00r ; OS3:loc_63B9Ar ... byte_FFFFA4B9: ds.b 1 ; DATA XREF: OS3:loc_63B0Er ; OS3:00063B8Cr ... word_FFFFA4BA: ds.b 2 ; DATA XREF: sub_64276:loc_64356w ; sub_64276+16Aw ... word_FFFFA4BC: ds.b 2 ; DATA XREF: sub_64276+7Ar ; sub_64276+80w ... word_FFFFA4BE: ds.b 2 ; DATA XREF: sub_64276+20r ; sub_64276+54r ... dword_FFFFA4C0: ds.b 4 ; DATA XREF: sub_646F6+5Cw ; sub_647EE+7Aw ... word_FFFFA4C4: ds.b 2 ; DATA XREF: sub_64276:loc_643D2r ; sub_64276+162w ... word_FFFFA4C6: ds.b 2 ; DATA XREF: sub_641DA+14r ; sub_641DA:loc_641FEw ... byte_FFFFA4C8: ds.b 1 ; DATA XREF: sub_64058+170r ; sub_641DA+34w ds.b 1 word_FFFFA4CA: ds.b 2 ; DATA XREF: sub_63E94:loc_63F36w word_FFFFA4CC: ds.b 2 ; DATA XREF: sub_63E94:loc_63F42w byte_FFFFA4CE: ds.b 1 ; DATA XREF: sub_643EE+12w ; sub_643EE+44w ... ds.b 1 word_FFFFA4D0: ds.b 2 ; DATA XREF: sub_64642:loc_64656r ; sub_64642:loc_64678w ... word_FFFFA4D2: ds.b 2 ; DATA XREF: sub_63E94+70r ; sub_63E94+7Ew ... word_FFFFA4D4: ds.b 2 ; DATA XREF: sub_63E94+76w ; sub_63E94+9Ar ... word_FFFFA4D6: ds.b 2 ; DATA XREF: sub_63E94+7Aw ; sub_63E94+A6r ... word_FFFFA4D8: ds.b 2 ; DATA XREF: sub_63E94+82w ; sub_63E94+FEr ... word_FFFFA4DA: ds.b 2 ; DATA XREF: sub_63E94+86w ; sub_63E94+112r ... word_FFFFA4DC: ds.b 2 ; DATA XREF: sub_63E94+38r ; sub_63E94+4Ew ... word_FFFFA4DE: ds.b 2 ; DATA XREF: sub_63E94+52r ; sub_63E94+66w ... word_FFFFA4E0: ds.b 2 ; DATA XREF: sub_644B0+66r ; sub_644B0+78r ... word_FFFFA4E2: ds.b 2 ; DATA XREF: sub_63E94+8r ; sub_63E94+20w word_FFFFA4E4: ds.b 2 ; DATA XREF: sub_63E94+24r ; sub_63E94+34w ... byte_FFFFA4E6: ds.b 1 ; DATA XREF: sub_643EE+18r ; sub_643EE+6Cr ... byte_FFFFA4E7: ds.b 1 ; DATA XREF: sub_643EE:loc_64416r ; sub_643EE+A6w ... byte_FFFFA4E8: ds.b 1 ; DATA XREF: sub_644B0+B4w ; sub_645B0+66r ... ds.b 1 word_FFFFA4EA: ds.b 2 ; DATA XREF: sub_643EE+9Cw ; sub_646F6+50w ... word_FFFFA4EC: ds.b 2 ; DATA XREF: sub_643EE:loc_64484w ; sub_646F6+56w ... word_FFFFA4EE: ds.b 2 ; DATA XREF: sub_64216+3Er ; sub_64216+54w ... word_FFFFA4F0: ds.b 2 ; DATA XREF: sub_64642+Ar ; sub_64642:loc_646D2w ... word_FFFFA4F2: ds.b 2 ; DATA XREF: sub_645B0+6Cw ; sub_645B0:loc_64622r ... word_FFFFA4F4: ds.b 2 ; DATA XREF: sub_64642+3Cw ; sub_64642+4Cr ... byte_FFFFA4F6: ds.b 1 ; DATA XREF: sub_643EE+Cr ; sub_643EE+20w ... byte_FFFFA4F7: ds.b 1 ; DATA XREF: sub_63E4Ar sub_63E4A+Cw ... byte_FFFFA4F8: ds.b 1 ; DATA XREF: sub_4CD5E:loc_4CE06r ; sub_4CD5E:loc_4CE3Aw ... byte_FFFFA4F9: ds.b 1 ; DATA XREF: sub_559D6:loc_55A76w ; sub_582B0+48r byte_FFFFA4FA: ds.b 1 ; DATA XREF: sub_4CD5E+52w ; sub_4CD5E+E0w ... ds.b 1 byte_FFFFA4FC: ds.b 1 ; DATA XREF: sub_559D6+14w ; sub_559D6+46r ... byte_FFFFA4FD: ds.b 1 ; DATA XREF: sub_53BDC:loc_53C48r ; sub_55912+Ar ... word_FFFFA4FE: ds.b 2 ; DATA XREF: sub_559D6:loc_567AAw ; sub_559D6:loc_56814w ... word_FFFFA500: ds.b 2 ; DATA XREF: sub_559D6+2E0w ; sub_559D6:loc_55D4Aw ... ds.b 1 ds.b 1 word_FFFFA504: ds.b 2 ; DATA XREF: sub_86CBE:loc_86D54r ; sub_86CBE+A2r word_FFFFA506: ds.b 2 ; DATA XREF: sub_559D6+EEAw ; sub_559D6+EF2r ... word_FFFFA508: ds.b 2 ; DATA XREF: sub_559D6+2BAw ; sub_559D6+6CEw ... word_FFFFA50A: ds.b 2 ; DATA XREF: sub_559D6+E6Ew ; sub_559D6+E9Ew ... word_FFFFA50C: ds.b 2 ; DATA XREF: sub_559D6+144w ; sub_559D6:loc_563C2w ... word_FFFFA50E: ds.b 2 ; DATA XREF: sub_55912:loc_55966w ; sub_55912:loc_559BEw ... word_FFFFA510: ds.b 2 ; DATA XREF: sub_559D6:loc_55E98w ; sub_559D6+6E0r ... word_FFFFA512: ds.b 2 ; DATA XREF: sub_559D6+11Aw ; sub_559D6+162r ... word_FFFFA514: ds.b 2 ; DATA XREF: sub_559D6+914w ; sub_559D6+998r ... byte_FFFFA516: ds.b 1 ; DATA XREF: sub_559D6+128w ; sub_559D6:loc_56458w ... ds.b 1 word_FFFFA518: ds.b 2 ; DATA XREF: sub_559D6:loc_55A24r ; sub_559D6+6Aw ... word_FFFFA51A: ds.b 2 ; DATA XREF: sub_559D6+19Cw ; sub_559D6+1A6r ... word_FFFFA51C: ds.b 2 ; DATA XREF: sub_559D6+1C6w ; sub_559D6+1D0r ... word_FFFFA51E: ds.b 2 ; DATA XREF: sub_559D6+1F6w ; sub_559D6+6DCr ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFFA546: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFA556: ds.b 2 ; DATA XREF: DoLoopB+2ECr DoLoopB+316w dword_FFFFA558: ds.b 4 ; DATA XREF: DoLoopB+2E0w DoLoopB+328r ... byte_FFFFA55C: ds.b 1 ; DATA XREF: DoLoopB+2C6r DoLoopB+2D0w ... ds.b 1 word_FFFFA55E: ds.b 2 ; DATA XREF: DoLoopB+338w ; sub_4A71A+12r ... word_FFFFA560: ds.b 2 ; DATA XREF: sub_20D54+Er ; sub_21480+18r ... EngineRPM_PID_000C___:ds.b 2 ; DATA XREF: sub_200DE+5Ar ; sub_200DE+112r ... byte_FFFFA564: ds.b 1 ; DATA XREF: sub_20D54+DEr ; sub_7DD88+64w ... byte_FFFFA565: ds.b 1 ; DATA XREF: sub_45F3A:loc_47852r ; sub_45F3A+1948r ... unk_FFFFA566: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFA588: ds.b 1 ; DATA XREF: sub_7DF6Er sub_7DF6E+10w ... ds.b 1 word_FFFFA58A: ds.b 2 ; DATA XREF: sub_2178+4Cw ; sub_7DE52+32r ... word_FFFFA58C: ds.b 2 ; DATA XREF: sub_7E000+4w word_FFFFA58E: ds.b 2 ; DATA XREF: sub_7DE52+Er ; sub_7DE52+F8w word_FFFFA590: ds.b 2 ; DATA XREF: sub_21930+Er ; sub_223EA:loc_22790w ... byte_FFFFA592: ds.b 1 ; DATA XREF: sub_20000+22r ; sub_2008A+Ar ... byte_FFFFA593: ds.b 1 ; DATA XREF: sub_20000+8r ; sub_2008A:loc_200B0r ... word_FFFFA594: ds.b 2 ; DATA XREF: sub_223EA+282r ; sub_223EA:loc_226DEw ... ds.b 1 ds.b 1 word_FFFFA598: ds.b 2 ; DATA XREF: sub_200DE:loc_20124r ; sub_20718+16r ... word_FFFFA59A: ds.b 2 ; DATA XREF: sub_22F92+218w ; sub_22F92+222w ... byte_FFFFA59C: ds.b 1 ; DATA XREF: sub_200DE:loc_2010Ar ; sub_200DE:loc_20544r ... byte_FFFFA59D: ds.b 1 ; DATA XREF: sub_200DE+30r ; sub_20718+26r ... byte_FFFFA59E: ds.b 1 ; DATA XREF: sub_20718+40r ; sub_208D8+14r ... byte_FFFFA59F: ds.b 1 ; DATA XREF: sub_22F92:loc_2310Ar ; sub_22F92:loc_23140w ... byte_FFFFA5A0: ds.b 1 ; DATA XREF: sub_20718+48r ; sub_208D8+3Er ... byte_FFFFA5A1: ds.b 1 ; DATA XREF: sub_223EA:loc_2278Aw ; sub_22D9A+72w ... byte_FFFFA5A2: ds.b 1 ; DATA XREF: sub_22D9A+B4w ; sub_22D9A:loc_22E54w ... ds.b 1 word_FFFFA5A4: ds.b 2 ; DATA XREF: sub_22D9A:loc_22E1Cw ; sub_22D9A+B0w ... byte_FFFFA5A6: ds.b 1 ; DATA XREF: sub_223EA:loc_22818w ; sub_22D9A+66r ... ds.b 1 word_FFFFA5A8: ds.b 2 ; DATA XREF: sub_223EA+130r ; sub_223EA+13Ar ... byte_FFFFA5AA: ds.b 1 ; DATA XREF: sub_223EA+400r ; sub_223EA+40Cr ... byte_FFFFA5AB: ds.b 1 ; DATA XREF: sub_223EA+1B6r ; sub_223EA:loc_2263Cr ... word_FFFFA5AC: ds.b 2 ; DATA XREF: sub_223EA+174r ; sub_223EA+180r ... ds.b 1 ds.b 1 word_FFFFA5B0: ds.b 2 ; DATA XREF: sub_229DE+B6w ; sub_229DE+BCw ... byte_FFFFA5B2: ds.b 1 ; DATA XREF: sub_229DE+C2w ; sub_229DE+10Cw ... byte_FFFFA5B3: ds.b 1 ; DATA XREF: sub_229DE+2CCw word_FFFFA5B4: ds.b 2 ; DATA XREF: sub_229DE:loc_22CE8w ; sub_229DE+31Er ... word_FFFFA5B6: ds.b 2 ; DATA XREF: sub_229DE+30Ew ; sub_229DE+328r ... word_FFFFA5B8: ds.b 2 ; DATA XREF: sub_229DE:loc_22CBAw word_FFFFA5BA: ds.b 2 ; DATA XREF: sub_223EA+18Ew ; sub_229DE:loc_229F6w ... word_FFFFA5BC: ds.b 2 ; DATA XREF: sub_229DE+318w ; sub_23282+3Aw ... ds.b 1 ds.b 1 word_FFFFA5C0: ds.b 2 ; DATA XREF: sub_229DE:loc_22D3Ar ; sub_229DE+378w ... word_FFFFA5C2: ds.b 2 ; DATA XREF: sub_22F92:loc_23104w byte_FFFFA5C4: ds.b 1 ; DATA XREF: sub_223EA:loc_22970r ; sub_223EA:loc_2297Cw ... byte_FFFFA5C5: ds.b 1 ; DATA XREF: sub_223EA:loc_22982r ; sub_223EA:loc_2298Ew ... byte_FFFFA5C6: ds.b 1 ; DATA XREF: sub_223EA:loc_229A6r ; sub_223EA:loc_229B2w ... byte_FFFFA5C7: ds.b 1 ; DATA XREF: sub_223EA:loc_22994r ; sub_223EA:loc_229A0w ... byte_FFFFA5C8: ds.b 1 ; DATA XREF: sub_223EA:loc_2295Er ; sub_223EA:loc_2296Aw ... byte_FFFFA5C9: ds.b 1 ; DATA XREF: sub_223EA+3FCr ; sub_223EA:loc_22902w ... byte_FFFFA5CA: ds.b 1 ; DATA XREF: sub_223EA+1B2r ; sub_223EA:loc_2263Cw ... byte_FFFFA5CB: ds.b 1 ; DATA XREF: sub_223EA+264r ; sub_223EA+272w ... byte_FFFFA5CC: ds.b 1 ; DATA XREF: sub_223EA+278r ; sub_223EA+28Cw ... byte_FFFFA5CD: ds.b 1 ; DATA XREF: sub_223EA+23Ar ; sub_223EA+24Cw ... byte_FFFFA5CE: ds.b 1 ; DATA XREF: sub_223EA+142r ; sub_229DE:loc_22A80r ... byte_FFFFA5CF: ds.b 1 ; DATA XREF: sub_223EA+1C0r ; sub_223EA+1E0w ... byte_FFFFA5D0: ds.b 1 ; DATA XREF: sub_223EA:loc_225D0r ; sub_223EA+206w ... byte_FFFFA5D1: ds.b 1 ; DATA XREF: sub_223EA:loc_225F6r ; sub_223EA+22Cw ... byte_FFFFA5D2: ds.b 1 ; DATA XREF: sub_223EA+3D2r ; sub_223EA:loc_227D6w ... byte_FFFFA5D3: ds.b 1 ; DATA XREF: sub_22F92+16Aw ; sub_22F92+1A0r byte_FFFFA5D4: ds.b 1 ; DATA XREF: sub_229DE+9Ar ; sub_229DE:loc_22A8Er ... byte_FFFFA5D5: ds.b 1 ; DATA XREF: sub_223EA+38Ar ; sub_223EA+390w ... byte_FFFFA5D6: ds.b 1 ; DATA XREF: sub_223EA+564w ; sub_229DE+2E6r ... byte_FFFFA5D7: ds.b 1 ; DATA XREF: sub_22D9A+18r ; sub_22D9A+30w ... byte_FFFFA5D8: ds.b 1 ; DATA XREF: sub_22D9A+1Er ; sub_22D9A+24w ... byte_FFFFA5D9: ds.b 1 ; DATA XREF: sub_223EA+438r ; sub_22D9A+58w ... unk_FFFFA5DA: ds.b 1 ; DATA XREF: sub_741A4+6o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFFA5F2: ds.b 1 ; DATA XREF: sub_741A4+12o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFA60A: ds.b 1 ; DATA XREF: sub_73A3E:loc_73BDCr ; sub_73A3E+1A4w ... unk_FFFFA60B: ds.b 1 ; DATA XREF: sub_73A3E:loc_73C52r ; sub_73A3E+21Aw ... byte_FFFFA60C: ds.b 1 ; DATA XREF: sub_73A3E:loc_73CC8r ; sub_73A3E+290w ... byte_FFFFA60D: ds.b 1 ; DATA XREF: sub_73A3E:loc_73D58r ; sub_73A3E+320w ... byte_FFFFA60E: ds.b 1 ; DATA XREF: sub_73A3E:loc_73DCEr ; sub_73A3E+396w ... ds.b 1 byte_FFFFA610: ds.b 1 ; DATA XREF: sub_73A3E+174w ; sub_73A3E+1BEw ... unk_FFFFA611: ds.b 1 ; DATA XREF: sub_73A3E+1ECw ; sub_73A3E+234w ... byte_FFFFA612: ds.b 1 ; DATA XREF: sub_73A3E+262w ; sub_73A3E+2AAw ... byte_FFFFA613: ds.b 1 ; DATA XREF: sub_73A3E+2DEw ; sub_73A3E+33Aw ... byte_FFFFA614: ds.b 1 ; DATA XREF: sub_73A3E+368w ; sub_73A3E+3B0w ... ds.b 1 word_FFFFA616: ds.b 2 ; DATA XREF: sub_73A3E+414r ; sub_73A3E+41Aw ... byte_FFFFA618: ds.b 1 ; DATA XREF: sub_73A3E+4E0r ; sub_73A3E+4E6w ... ds.b 1 word_FFFFA61A: ds.b 2 ; DATA XREF: sub_73A3E+3FCw ; sub_73A3E+434w ... byte_FFFFA61C: ds.b 1 ; DATA XREF: sub_73A3E+4C8w ; sub_73A3E+500w ... byte_FFFFA61D: ds.b 1 ; DATA XREF: sub_73A3E+598r ; sub_73A3E+59Ew ... byte_FFFFA61E: ds.b 1 ; DATA XREF: sub_73A3E+54Ar ; sub_73A3E+550w ... ds.b 1 byte_FFFFA620: ds.b 1 ; DATA XREF: sub_2CC22:loc_2CCDEw ; sub_2CC22+D6w ... byte_FFFFA621: ds.b 1 ; DATA XREF: sub_2CC22:loc_2CD9Cw ; sub_2CC22+44Er ... byte_FFFFA622: ds.b 1 ; DATA XREF: sub_2CC22+2Ew ; sub_2CC22:loc_2CC56w ... byte_FFFFA623: ds.b 1 ; DATA XREF: sub_2CC22+1D8r ; sub_2CC22+22Er ... word_FFFFA624: ds.b 2 ; DATA XREF: sub_2CC22+18Ew ; sub_2CC22+25Er ... word_FFFFA626: ds.b 2 ; DATA XREF: sub_2CC22+2AAw ; sub_2CC22+40Aw ... word_FFFFA628: ds.b 2 ; DATA XREF: sub_2D1C4:loc_2D320w ; sub_2D1C4:loc_2D350w ... word_FFFFA62A: ds.b 2 ; DATA XREF: sub_2CC22+142r ; sub_2CC22+38Ar ... word_FFFFA62C: ds.b 2 ; DATA XREF: sub_2D4F2+28r ; sub_2D4F2+48r ... word_FFFFA62E: ds.b 2 ; DATA XREF: sub_2CC22+28r ; sub_2CC22+DAw ... word_FFFFA630: ds.b 2 ; DATA XREF: sub_2CC22+44r ; OS1:0002D794w ... byte_FFFFA632: ds.b 1 ; DATA XREF: sub_2CC22+58w ; OS1:0002D7B8w byte_FFFFA633: ds.b 1 ; DATA XREF: sub_2CC22+72w ; OS1:0002D7BCw byte_FFFFA634: ds.b 1 ; DATA XREF: sub_2CC22+10Cr ; sub_2CC22+136w ... byte_FFFFA635: ds.b 1 ; DATA XREF: sub_2CC22+D0r ; sub_2CC22+F4r ... byte_FFFFA636: ds.b 1 ; DATA XREF: sub_2CC22+CAr ; sub_2CC22+FAr ... byte_FFFFA637: ds.b 1 ; DATA XREF: sub_2CC22:loc_2CE7Ar ; sub_2CC22+2E6w ... byte_FFFFA638: ds.b 1 ; DATA XREF: sub_2CC22+480w ; sub_2CC22+4E8w ds.b 1 word_FFFFA63A: ds.b 2 ; DATA XREF: sub_2CC22+24Ew ; sub_2CC22:loc_2CEA2w ... word_FFFFA63C: ds.b 2 ; DATA XREF: sub_2CC22+462w ; sub_2CC22+48Ar ... word_FFFFA63E: ds.b 2 ; DATA XREF: sub_2CC22:loc_2D06Cw word_FFFFA640: ds.b 2 ; DATA XREF: sub_2CC22+1A2w ; sub_2CC22+1AEw ... word_FFFFA642: ds.b 2 ; DATA XREF: sub_2CC22+20Cr ; sub_2CC22:loc_2CE44w ... word_FFFFA644: ds.b 2 ; DATA XREF: sub_2CC22+2EAr ; sub_2CC22:loc_2CF6Aw ... word_FFFFA646: ds.b 2 ; DATA XREF: sub_2CC22+394r ; sub_2CC22:loc_2D012w ... word_FFFFA648: ds.b 2 ; DATA XREF: sub_2CC22+1Ar ; sub_2CC22+38w word_FFFFA64A: ds.b 2 ; DATA XREF: sub_2D1C4:loc_2D36Ew ; sub_2D1C4+212r word_FFFFA64C: ds.b 2 ; DATA XREF: sub_2D4F2:loc_2D55Aw ; sub_2D4F2+100r dword_FFFFA64E: ds.b 4 ; DATA XREF: sub_2CB78+22w ; sub_2CB78+42w ... byte_FFFFA652: ds.b 1 ; DATA XREF: sub_2CB78:loc_2CBD4r ; sub_2CB78:loc_2CC0Cw ... byte_FFFFA653: ds.b 1 ; DATA XREF: sub_2D620+1Ew ; sub_2D620:loc_2D64Ar ... word_FFFFA654: ds.b 2 ; DATA XREF: sub_2D620:loc_2D668r ; sub_2D620+54w ... word_FFFFA656: ds.b 2 ; DATA XREF: sub_2D1C4+56w ; sub_2D1C4+ACw ... byte_FFFFA658: ds.b 1 ; DATA XREF: sub_2D620+16w ds.b 1 word_FFFFA65A: ds.b 2 ; DATA XREF: sub_2D1C4:loc_2D3E8w ; sub_2D1C4+22Ar dword_FFFFA65C: ds.b 4 ; DATA XREF: sub_2D1C4+22Er ; sub_2D1C4:loc_2D408w byte_FFFFA660: ds.b 1 ; DATA XREF: sub_2D1C4:loc_2D476r ; sub_2D1C4+2D6w ... ds.b 1 word_FFFFA662: ds.b 2 ; DATA XREF: sub_2D1C4:loc_2D47Cw ; sub_2D1C4+2E4w ... byte_FFFFA664: ds.b 1 ; DATA XREF: sub_4B054+70w ; sub_5A6A0:loc_5A7EEr ... byte_FFFFA665: ds.b 1 ; DATA XREF: OS2:0004B256w ; sub_4B64E:loc_4B674w ... byte_FFFFA666: ds.b 1 ; DATA XREF: sub_4B866+128w ; sub_4B866+132w byte_FFFFA667: ds.b 1 ; DATA XREF: DoLoopG:loc_2B3CAr ; DoLoopG+29Aw ... word_FFFFA668: ds.b 2 ; DATA XREF: DoLoopD+2Ew sub_4EFF2+44r ... word_FFFFA66A: ds.b 2 ; DATA XREF: OS2:0004B25Aw ; OS2:0004B374w ... unk_FFFFA66C: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFA674: ds.b 2 ; DATA XREF: DoLoopD+26r DoLoopD+36r ... byte_FFFFA676: ds.b 1 ; DATA XREF: DoLoopB:loc_2A084r ; DoLoopB+1E2w ... ds.b 1 word_FFFFA678: ds.b 2 ; DATA XREF: DoLoopB+1C4w word_FFFFA67A: ds.b 2 ; DATA XREF: OS2:0004B288w ; sub_4B64E:loc_4B682w ... ds.b 1 byte_FFFFA67D: ds.b 1 ; DATA XREF: sub_4B866+124w ; sub_4B866:loc_4B994w byte_FFFFA67E: ds.b 1 ; DATA XREF: sub_242EE:loc_24300r ; sub_24716:loc_247B2r ... byte_FFFFA67F: ds.b 1 ; DATA XREF: OS2:0004B21Cw ; OS2:0004B334w ... byte_FFFFA680: ds.b 1 ; DATA XREF: sub_840B4:loc_84154r ; sub_840B4+ACw ds.b 1 word_FFFFA682: ds.b 2 ; DATA XREF: OS2:0004B224w ; OS2:0004B33Cw ... word_FFFFA684: ds.b 2 ; DATA XREF: OS2:0004B220w ; OS2:0004B338w ... byte_FFFFA686: ds.b 1 ; DATA XREF: sub_4AE50:loc_4AE80w byte_FFFFA687: ds.b 1 ; DATA XREF: sub_4AE50+36w byte_FFFFA688: ds.b 1 ; DATA XREF: sub_4AE50+4Aw ; sub_4AE50+58w byte_FFFFA689: ds.b 1 ; DATA XREF: sub_4AE50:loc_4AEAEw byte_FFFFA68A: ds.b 1 ; DATA XREF: sub_4AE50+64w ds.b 1 byte_FFFFA68C: ds.b 1 ; DATA XREF: sub_4B030+8r byte_FFFFA68D: ds.b 1 ; DATA XREF: sub_4B030:loc_4B03Er byte_FFFFA68E: ds.b 1 ; DATA XREF: sub_4B04Er byte_FFFFA68F: ds.b 1 ; DATA XREF: sub_4B18Cr byte_FFFFA690: ds.b 1 ; DATA XREF: sub_4B048r ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFA69D: ds.b 1 ; DATA XREF: OS2:0004B228w ; OS2:0004B340w ... byte_FFFFA69E: ds.b 1 ; DATA XREF: OS2:0004B22Cw ; OS2:0004B344w ... ds.b 1 word_FFFFA6A0: ds.b 2 ; DATA XREF: OS2:0004B230w ; OS2:0004B348w ... word_FFFFA6A2: ds.b 2 ; DATA XREF: OS2:0004B234w ; OS2:0004B34Cw ... word_FFFFA6A4: ds.b 2 ; DATA XREF: sub_4B192+24r ; sub_4B192+2Aw unk_FFFFA6A6: ds.b 1 ; DATA XREF: sub_60FEC+68o ; sub_61088+50o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFFA6B4: ds.b 1 ds.b 1 dword_FFFFA6B6: ds.b 4 ; DATA XREF: sub_612C2+Cr dword_FFFFA6BA: ds.b 4 ; DATA XREF: sub_612C2+6r byte_FFFFA6BE: ds.b 1 ; DATA XREF: OS2:GetPid_12EFr ; sub_60E42+34r ... byte_FFFFA6BF: ds.b 1 ; DATA XREF: sub_60FEC+50w ; sub_60FEC:loc_61080w ... byte_FFFFA6C0: ds.b 1 ; DATA XREF: OS2:GetPid_12F0r ; sub_60E42+20r ... byte_FFFFA6C1: ds.b 1 ; DATA XREF: sub_60FEC+54w ; sub_61088+1Cr ... byte_FFFFA6C2: ds.b 1 ; DATA XREF: sub_60FEC+2Aw ; sub_612D8+E2r ds.b 1 word_FFFFA6C4: ds.b 2 ; DATA XREF: sub_612D8+BCw ; sub_612D8:loc_613F2w ... unk_FFFFA6C6: ds.b 1 ; DATA XREF: sub_60FEC+5Co ; sub_61088+44o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFA6E6: ds.b 2 ; DATA XREF: sub_37912+26r ; sub_3832E+118w ... word_FFFFA6E8: ds.b 2 ; DATA XREF: sub_379B4+4r ; sub_3832E+100w ... word_FFFFA6EA: ds.b 2 ; DATA XREF: sub_37A02+4r ; sub_3832E+ECw ... DesiredIdleAirflow_IncludingFeedback_Clamped:ds.b 2 ; DATA XREF: sub_35CC0+2r ; sub_3832E+96r ... EngineRpmError: ds.b 2 ; DATA XREF: sub_34B00:loc_354CEr ; sub_37FC2+EAr ... word_FFFFA6F0: ds.b 2 ; DATA XREF: DecideIdleMode:loc_384D2w ; DecideIdleMode:loc_384D8w ... IdleIntegralAccumulator_FINAL:ds.b 2 ; DATA XREF: sub_37A50:loc_37BB2r ; sub_3832E+ECr ... IdleSpeedErrorSmall?:ds.b 1 ; DATA XREF: sub_37A50:loc_37BD0r ; sub_3832E+26r ... StallSaverActiveFlag:ds.b 1 ; DATA XREF: sub_2BA40:loc_2BD7Ar ; DecideIdleMode+FAw ... byte_FFFFA6F6: ds.b 1 ; DATA XREF: sub_37A50+19Cr ; sub_37A50:loc_37C20r ... IdleControlMode:ds.b 1 ; DATA XREF: sub_35D1C+C4r ; IsIdleAirLearningActive+15Ar ... IdleModeChangeFlag:ds.b 1 ; DATA XREF: DecideIdleMode+8w ; DecideIdleMode+1D6w ... byte_FFFFA6F9: ds.b 1 ; DATA XREF: sub_36AAA+FCr ; sub_36F1C+4r ... StartupToPidModeFlag?:ds.b 1 ; DATA XREF: sub_35FC0+6r ; sub_36764+3Er ... byte_FFFFA6FB: ds.b 1 ; DATA XREF: DecideIdleMode:loc_38922w ; sub_393DC+4Aw ... IdleIntegral_Something_Maybe_Accumulator?:ds.b 2 ; DATA XREF: DecideIdleMode+1DCw ; DecideIdleMode+20Aw ... IdleDerivativeTerm:ds.b 2 ; DATA XREF: DecideIdleMode+6A6w ; DecideIdleMode:loc_38C86w ... word_FFFFA700: ds.b 2 ; DATA XREF: DecideIdleMode:loc_38BBEw ; DecideIdleMode:loc_38BC4w ... EngineSpeedHeavilyFiltered:ds.b 2 ; DATA XREF: DecideIdleMode+6B2w ; DecideIdleMode+6D4w ... EngineSpeedLightlyFiltered:ds.b 2 ; DATA XREF: DecideIdleMode+6AEw ; DecideIdleMode+6D0w ... IdleIntegralAccumulator_DriveAC?:ds.b 2 ; DATA XREF: DecideIdleMode:loc_390C4w ; DecideIdleMode:loc_390CEr ... IdleIntegralAccumulator_????:ds.b 2 ; DATA XREF: DecideIdleMode:loc_39132w ; DecideIdleMode:loc_3913Cr ... IdleIntegralAccumulator_PN:ds.b 2 ; DATA XREF: DecideIdleMode+B42w ; DecideIdleMode:loc_38FD2w ... IdleIntegralAccumulator_TBD1:ds.b 2 ; DATA XREF: DecideIdleMode+BC6w ; DecideIdleMode:loc_39056w ... IdleIntegralAccumulator_1:ds.b 2 ; DATA XREF: DecideIdleMode:loc_38F08r ; DecideIdleMode+AAAw ... IdleIntegralAccumulator_2:ds.b 2 ; DATA XREF: DecideIdleMode:loc_38F42r ; DecideIdleMode+AE4w ... IdleIntegralDelta:ds.b 2 ; DATA XREF: DecideIdleMode:loc_38DA6w ; DecideIdleMode:loc_38E2Ew ... word_FFFFA714: ds.b 2 ; DATA XREF: DecideIdleMode+22Ew ; DecideIdleMode:loc_3871Cr ... IdleProportionalTerm:ds.b 2 ; DATA XREF: DecideIdleMode+550w ; DecideIdleMode+596w ... IdleTotal_Including_Feedback:ds.b 2 ; DATA XREF: DecideIdleMode:loc_392CAw ; DecideIdleMode:loc_392D0w ... word_FFFFA71A: ds.b 2 ; DATA XREF: sub_3832E+3Er ; sub_3832E:loc_3838Ew byte_FFFFA71C: ds.b 1 ; DATA XREF: sub_3832E:loc_383EAr ; DecideIdleMode:loc_38EC8w ... byte_FFFFA71D: ds.b 1 ; DATA XREF: DecideIdleMode+86Ew byte_FFFFA71E: ds.b 1 ; DATA XREF: DecideIdleMode:loc_38692r ; DecideIdleMode+236w ... IdleSpeedErrorTimer?:ds.b 1 ; DATA XREF: sub_3832E+2Cr ; sub_3832E+5Aw ... StallSaverAmount_ForSure:ds.b 2 ; DATA XREF: DecideIdleMode:loc_38B0Cw ; DecideIdleMode:loc_38CC6w ... SomethingAboutDerivativeAndStallSaver:ds.b 1 ; DATA XREF: DecideIdleMode+6C0r ; DecideIdleMode+6C6w ... PidFlags: ds.b 1 ; DATA XREF: DecideIdleMode+Cw ; DecideIdleMode+12w ... byte_FFFFA724: ds.b 1 ; DATA XREF: DecideIdleMode+170r ; DecideIdleMode:loc_385ECr ... ds.b 1 dword_FFFFA726: ds.b 4 ; DATA XREF: sub_45F3A+1226r ; sub_45F3A+126Er ... dword_FFFFA72A: ds.b 4 ; DATA XREF: sub_7CEB6+3Aw ; sub_7CEB6:loc_7CEF6w ... word_FFFFA72E: ds.b 2 ; DATA XREF: OS1:0002D87Ar ; sub_2EBD6:loc_2ED3Er ... word_FFFFA730: ds.b 2 ; DATA XREF: sub_26B32+122r ; OS2:GetPid_119Fr ... byte_FFFFA732: ds.b 1 ; DATA XREF: sub_45F0A+2r ; sub_45F3A:loc_46A44r ... byte_FFFFA733: ds.b 1 ; DATA XREF: sub_45F3A:loc_46F0Er ; sub_45F3A+FE4r ... word_FFFFA734: ds.b 2 ; DATA XREF: sub_7CEB6+Cw ; sub_7CEB6+16r ... word_FFFFA736: ds.b 2 ; DATA XREF: sub_7CEB6+EAw ; sub_7CEB6:loc_7CFA6r word_FFFFA738: ds.b 2 ; DATA XREF: OS3:loc_7CB12w ; sub_7CCBC+ACr word_FFFFA73A: ds.b 2 ; DATA XREF: OS3:loc_7CB7Aw dword_FFFFA73C: ds.b 4 ; DATA XREF: OS3:0007CB86w ; sub_7D0BE:loc_7D24Cw ... dword_FFFFA740: ds.b 4 ; DATA XREF: sub_7D0BE+10Cr ; sub_7D0BE:loc_7D228r ... word_FFFFA744: ds.b 2 ; DATA XREF: sub_7D490+46w ; sub_7D490:loc_7D4DCr word_FFFFA746: ds.b 2 ; DATA XREF: sub_7D332:loc_7D362w ; sub_7D478r word_FFFFA748: ds.b 2 ; DATA XREF: sub_7D508+22w ; sub_7D508+44r word_FFFFA74A: ds.b 2 ; DATA XREF: OS3:0007CB16w ; OS3:0007CBF8w ... dword_FFFFA74C: ds.b 4 ; DATA XREF: sub_7D082:loc_7D0AEr ; sub_7D082:loc_7D0B8w ... dword_FFFFA750: ds.b 4 ; DATA XREF: sub_7D262+58r ; sub_7D262:loc_7D30Aw byte_FFFFA754: ds.b 1 ; DATA XREF: OS3:0007CBD2w ; OS3:loc_7CC0Cw ... byte_FFFFA755: ds.b 1 ; DATA XREF: OS3:0007CBD6w ; OS3:0007CC10w ... byte_FFFFA756: ds.b 1 ; DATA XREF: sub_7CCBCr ; sub_7CCBC:loc_7CCE2w ... byte_FFFFA757: ds.b 1 ; DATA XREF: OS3:0007CC40w ; sub_7CCBC+38w ... byte_FFFFA758: ds.b 1 ; DATA XREF: OS3:0007CC44w ; sub_7CCBC:loc_7CCF8r ... byte_FFFFA759: ds.b 1 ; DATA XREF: OS3:0007CC30w ; OS3:0007CCB4w ... byte_FFFFA75A: ds.b 1 ; DATA XREF: sub_7CCBC+54w ; sub_7CCBC+72w ... byte_FFFFA75B: ds.b 1 ; DATA XREF: OS3:0007CB1Cw ; sub_7D0BE+Er ... word_FFFFA75C: ds.b 2 ; DATA XREF: sub_7D0BE:loc_7D1BEw word_FFFFA75E: ds.b 2 ; DATA XREF: OS3:0007CC04w ; sub_7CDE0:loc_7CE64w ... dword_FFFFA760: ds.b 4 ; DATA XREF: sub_7CEB6:loc_7CFDAr ; sub_7CEB6+13Aw word_FFFFA764: ds.b 2 ; DATA XREF: OS2:000434C4r ; OS2:00043554r ... word_FFFFA766: ds.b 2 ; DATA XREF: OS2:000435E4r ; OS2:00043674r ... word_FFFFA768: ds.b 2 ; DATA XREF: OS2:00043704r ; OS2:00043794r ... word_FFFFA76A: ds.b 2 ; DATA XREF: sub_78E56:loc_79202w ; sub_78E56+3B2w ... word_FFFFA76C: ds.b 2 ; DATA XREF: sub_78E56+84w ; sub_78E56+8Aw ... word_FFFFA76E: ds.b 2 ; DATA XREF: sub_78E56+ACw ; sub_78E56+B2w ... word_FFFFA770: ds.b 2 ; DATA XREF: sub_78E56+CCw ; sub_78E56+D2w ... word_FFFFA772: ds.b 2 ; DATA XREF: sub_78E56+F4w ; sub_78E56+FAw ... word_FFFFA774: ds.b 2 ; DATA XREF: sub_78E56+1Aw ; sub_78E56+20w ... word_FFFFA776: ds.b 2 ; DATA XREF: sub_78E56+30w ; sub_78E56+36w ... word_FFFFA778: ds.b 2 ; DATA XREF: sub_78E56+46w ; sub_78E56+4Cw ... word_FFFFA77A: ds.b 2 ; DATA XREF: sub_78E56+5Cw ; sub_78E56+62w ... word_FFFFA77C: ds.b 2 ; DATA XREF: sub_78E56+3C0w ; sub_78E56+3C6w ... word_FFFFA77E: ds.b 2 ; DATA XREF: sub_78E56+16Aw ; sub_78E56+170w ... word_FFFFA780: ds.b 2 ; DATA XREF: sub_78E56+18Cw ; sub_78E56+192w ... word_FFFFA782: ds.b 2 ; DATA XREF: sub_78E56+1ACw ; sub_78E56+1B2w ... word_FFFFA784: ds.b 2 ; DATA XREF: sub_78E56+1CCw ; sub_78E56+1D2w ... word_FFFFA786: ds.b 2 ; DATA XREF: sub_78E56+108w ; sub_78E56+10Ew ... word_FFFFA788: ds.b 2 ; DATA XREF: sub_78E56+11Ew ; sub_78E56+124w ... word_FFFFA78A: ds.b 2 ; DATA XREF: sub_78E56+134w ; sub_78E56+13Aw ... word_FFFFA78C: ds.b 2 ; DATA XREF: sub_78E56+14Aw ; sub_78E56+150w ... word_FFFFA78E: ds.b 2 ; DATA XREF: sub_78E56+3D6w ; sub_78E56+3DCw ... word_FFFFA790: ds.b 2 ; DATA XREF: sub_78E56+23Cw ; sub_78E56+242w ... word_FFFFA792: ds.b 2 ; DATA XREF: sub_78E56+25Ew ; sub_78E56+264w ... word_FFFFA794: ds.b 2 ; DATA XREF: sub_78E56+280w ; sub_78E56+286w ... word_FFFFA796: ds.b 2 ; DATA XREF: sub_78E56+2A2w ; sub_78E56+2A8w ... word_FFFFA798: ds.b 2 ; DATA XREF: sub_78E56+1E0w ; sub_78E56+1E6w ... word_FFFFA79A: ds.b 2 ; DATA XREF: sub_78E56+1F4w ; sub_78E56+1FAw ... word_FFFFA79C: ds.b 2 ; DATA XREF: sub_78E56+208w ; sub_78E56+20Ew ... word_FFFFA79E: ds.b 2 ; DATA XREF: sub_78E56+21Cw ; sub_78E56+222w ... byte_FFFFA7A0: ds.b 1 ; DATA XREF: OS2:loc_44B6Ar ; sub_53182+46r ... byte_FFFFA7A1: ds.b 1 ; DATA XREF: OS2:loc_44B7Ar ; sub_53182+58r ... word_FFFFA7A2: ds.b 2 ; DATA XREF: sub_53182+F0w ; sub_532C4+28r ... word_FFFFA7A4: ds.b 2 ; DATA XREF: sub_53182+F4w ; sub_532C4+24w ... word_FFFFA7A6: ds.b 2 ; DATA XREF: sub_53182+108w word_FFFFA7A8: ds.b 2 ; DATA XREF: sub_53182+E8w ; sub_5341E+106r ... word_FFFFA7AA: ds.b 2 ; DATA XREF: sub_53182+ECw ; sub_5341E:loc_53520w ... word_FFFFA7AC: ds.b 2 ; DATA XREF: sub_53182+F8w word_FFFFA7AE: ds.b 2 ; DATA XREF: sub_53182+FCw word_FFFFA7B0: ds.b 2 ; DATA XREF: sub_53182+10Cw byte_FFFFA7B2: ds.b 1 ; DATA XREF: sub_53182:loc_531BEr ; sub_53182:loc_531FAw ... byte_FFFFA7B3: ds.b 1 ; DATA XREF: sub_53182+4Cr ; sub_53182+80w ... byte_FFFFA7B4: ds.b 1 ; DATA XREF: sub_53182+52r ; sub_53182+84w ... ds.b 1 word_FFFFA7B6: ds.b 2 ; DATA XREF: sub_53586:loc_536B6r ; sub_53586:loc_536DAw ... word_FFFFA7B8: ds.b 2 ; DATA XREF: sub_53586+B0r ; sub_53586:loc_5365Aw ... word_FFFFA7BA: ds.b 2 ; DATA XREF: sub_53182+104w ; sub_5334E+42w ... word_FFFFA7BC: ds.b 2 ; DATA XREF: sub_53182+100w ; sub_5334E+46r ... word_FFFFA7BE: ds.b 2 ; DATA XREF: sub_53182:loc_53252w ; sub_537A8+19Aw ... word_FFFFA7C0: ds.b 2 ; DATA XREF: sub_53182+D4w ; sub_537A8+19Er ... word_FFFFA7C2: ds.b 2 ; DATA XREF: sub_53182+D8w ; sub_537A8+24Er ... word_FFFFA7C4: ds.b 2 ; DATA XREF: sub_53182+DCw ; sub_537A8:loc_539F2w ... word_FFFFA7C6: ds.b 2 ; DATA XREF: sub_53182+E0w ; sub_537A8+2E0w ... word_FFFFA7C8: ds.b 2 ; DATA XREF: sub_53182+E4w ; sub_537A8+2E4r ... byte_FFFFA7CA: ds.b 1 ; DATA XREF: sub_53182+110w ; sub_53182+116w ... ds.b 1 byte_FFFFA7CC: ds.b 1 ; DATA XREF: sub_5334E+3Ar ; sub_5334E+5Cw ... byte_FFFFA7CD: ds.b 1 ; DATA XREF: sub_53B10+4r ; sub_53BDC+52w ... word_FFFFA7CE: ds.b 2 ; DATA XREF: sub_537A8:loc_53914w ; sub_537A8:loc_5391Aw ... word_FFFFA7D0: ds.b 2 ; DATA XREF: sub_5341E+18r ; sub_5341E:loc_53444w ... word_FFFFA7D2: ds.b 2 ; DATA XREF: sub_537A8+1Ar ; sub_537A8:loc_537D0w ... word_FFFFA7D4: ds.b 2 ; DATA XREF: sub_53BDC+62w ; sub_53BDC+B4r ... word_FFFFA7D6: ds.b 2 ; DATA XREF: sub_53BDC+124r ; sub_53BDC:loc_53D0Ew ... word_FFFFA7D8: ds.b 2 ; DATA XREF: sub_53BDC+82w ; sub_53BDC+92r ... word_FFFFA7DA: ds.b 2 ; DATA XREF: sub_53586+18r ; sub_53586:loc_535ACw ... word_FFFFA7DC: ds.b 2 ; DATA XREF: sub_243A8+A4r ; sub_243A8+BEw ... byte_FFFFA7DE: ds.b 1 ; DATA XREF: DoLoopA:loc_29E1Cr ; sub_2C688+4r ... byte_FFFFA7DF: ds.b 1 ; DATA XREF: sub_2F2FE+8r ; sub_2F316:loc_2F354r ... byte_FFFFA7E0: ds.b 1 ; DATA XREF: sub_2C4F4+52r ; sub_2FC92:loc_2FCB6r ... byte_FFFFA7E1: ds.b 1 ; DATA XREF: sub_2EBD6:loc_2EE8Er ; sub_3CD78+350w ... word_FFFFA7E2: ds.b 2 ; DATA XREF: sub_2BA40+8C4r ; sub_2E726+29Er ... byte_FFFFA7E4: ds.b 1 ; DATA XREF: sub_3284E+72r ; sub_32EAA+12r ... ds.b 1 word_FFFFA7E6: ds.b 2 ; DATA XREF: sub_3CD78+622w ; sub_8016C+12r byte_FFFFA7E8: ds.b 1 ; DATA XREF: sub_2F386+90r ; sub_3CD78+2F6w ... byte_FFFFA7E9: ds.b 1 ; DATA XREF: sub_2EBD6+2C2r ; sub_3CD78+364w byte_FFFFA7EA: ds.b 1 ; DATA XREF: sub_2F316+48r ; sub_3CD78+6DAw ds.b 1 word_FFFFA7EC: ds.b 2 ; DATA XREF: sub_2F5BC+128r ; sub_3DFBA+Aw word_FFFFA7EE: ds.b 2 ; DATA XREF: sub_2F5BC+86r ; sub_3DFF8+16w word_FFFFA7F0: ds.b 2 ; DATA XREF: OS1:0003ADB4r ; OS1:0003ADC2r ... byte_FFFFA7F2: ds.b 1 ; DATA XREF: sub_31AE2+262r ; sub_31AE2+26Ar ... byte_FFFFA7F3: ds.b 1 ; DATA XREF: sub_3CD78+590w ; sub_4B866+36r byte_FFFFA7F4: ds.b 1 ; DATA XREF: sub_3CD78+886w ; sub_3CD78+8B2w ... byte_FFFFA7F5: ds.b 1 ; DATA XREF: sub_3E346+12w ; sub_4BD8C+68r ... byte_FFFFA7F6: ds.b 1 ; DATA XREF: sub_3E250+1Ew ; sub_4C570:loc_4C5B2r ... byte_FFFFA7F7: ds.b 1 ; DATA XREF: sub_32EAA+30r ; sub_32EAA+46r ... byte_FFFFA7F8: ds.b 1 ; DATA XREF: sub_3284E+7Er ; sub_3E12E:loc_3E1D2w byte_FFFFA7F9: ds.b 1 ; DATA XREF: sub_3CD78:loc_3CE7Ar ; sub_3D7B0:loc_3D9D4w ... word_FFFFA7FA: ds.b 2 ; DATA XREF: sub_3CD78+116w ; sub_3CD78+A22w ... byte_FFFFA7FC: ds.b 1 ; DATA XREF: sub_3CD78:loc_3CE9Ar ; sub_3CD78:loc_3CEC6r ... byte_FFFFA7FD: ds.b 1 ; DATA XREF: sub_3CD78+130r ; sub_3CD78+15Cr ... byte_FFFFA7FE: ds.b 1 ; DATA XREF: sub_3CD78:loc_3CF7Ar ; sub_3CD78:loc_3CFB8r ... byte_FFFFA7FF: ds.b 1 ; DATA XREF: sub_3CD78+20Ar ; sub_3CD78+248r ... byte_FFFFA800: ds.b 1 ; DATA XREF: sub_3CD78:loc_3D1EEr ; sub_3CD78:loc_3D21Ar ... byte_FFFFA801: ds.b 1 ; DATA XREF: sub_3CD78:loc_3CF4Ar ; sub_3CD78+1F4w ... byte_FFFFA802: ds.b 1 ; DATA XREF: sub_3CD78+34r ; sub_3CD78:loc_3D082r ... byte_FFFFA803: ds.b 1 ; DATA XREF: sub_3CD78+330r ; sub_3CD78+364r ... byte_FFFFA804: ds.b 1 ; DATA XREF: sub_3CD78+14r ; sub_3CD78+1Er ... byte_FFFFA805: ds.b 1 ; DATA XREF: sub_3CD78+668r ; sub_3CD78+696r ... byte_FFFFA806: ds.b 1 ; DATA XREF: sub_3CD78+6F0r ; sub_3CD78+73Ar ... byte_FFFFA807: ds.b 1 ; DATA XREF: sub_3CD78+26r ; sub_3CD78+66r ... byte_FFFFA808: ds.b 1 ; DATA XREF: sub_3CD78:loc_3D4F0r ; sub_3CD78:loc_3D51Cr ... byte_FFFFA809: ds.b 1 ; DATA XREF: sub_3CD78+786r ; sub_3CD78+7B2r ... byte_FFFFA80A: ds.b 1 ; DATA XREF: sub_3CD78:loc_3D2F0r ; sub_3CD78:loc_3D548r ... byte_FFFFA80B: ds.b 1 ; DATA XREF: sub_3CD78+886r ; sub_3D7B0+45Ew byte_FFFFA80C: ds.b 1 ; DATA XREF: sub_3CD78+590r ; sub_3D7B0+468w byte_FFFFA80D: ds.b 1 ; DATA XREF: sub_3CD78+80Ar ; sub_3D7B0+472w byte_FFFFA80E: ds.b 1 ; DATA XREF: sub_3CD78+978r ; sub_3CD78+994w ... byte_FFFFA80F: ds.b 1 ; DATA XREF: sub_3CD78+3E2r ; sub_3CD78:loc_3D6E8r ... word_FFFFA810: ds.b 2 ; DATA XREF: sub_3CD78+A1Cw ; sub_3D7B0+B8w ... byte_FFFFA812: ds.b 1 ; DATA XREF: sub_3CD78:loc_3D714r ; sub_3CD78:loc_3D7A6w ... ds.b 1 word_FFFFA814: ds.b 2 ; DATA XREF: sub_3CD78:loc_3D178w byte_FFFFA816: ds.b 1 ; DATA XREF: sub_3CD78+3C8r ; sub_3CD78+3EEw ... ds.b 1 word_FFFFA818: ds.b 2 ; DATA XREF: sub_20D54+312w ; sub_20D54:loc_2106Cw ... word_FFFFA81A: ds.b 2 ; DATA XREF: sub_21094+28Aw ; sub_21094:loc_21324w ... word_FFFFA81C: ds.b 2 ; DATA XREF: sub_2132C:loc_21464w ; sub_2132C:loc_2146Aw ... word_FFFFA81E: ds.b 2 ; DATA XREF: sub_20CB2:loc_20D1Cw ; sub_20CB2:loc_20D22w ... word_FFFFA820: ds.b 2 ; DATA XREF: sub_20CB2+4r ; sub_20CB2+18w ... word_FFFFA822: ds.b 2 ; DATA XREF: sub_21480+34w ; sub_21480+3Cr ... word_FFFFA824: ds.b 2 ; DATA XREF: sub_21480+38w word_FFFFA826: ds.b 2 ; DATA XREF: sub_21480+3Cw word_FFFFA828: ds.b 2 ; DATA XREF: sub_21480+42w word_FFFFA82A: ds.b 2 ; DATA XREF: sub_21480+48w word_FFFFA82C: ds.b 2 ; DATA XREF: sub_21480+4Ew word_FFFFA82E: ds.b 2 ; DATA XREF: sub_21094+B4w ; sub_21094:loc_21150w ... word_FFFFA830: ds.b 2 ; DATA XREF: sub_20D54+10Cw ; sub_20D54:loc_20E66w ... word_FFFFA832: ds.b 2 ; DATA XREF: sub_2132C+6Ew ; sub_2132C+BAr ... word_FFFFA834: ds.b 2 ; DATA XREF: sub_20D54+328r ; sub_20D54+32Ew ... word_FFFFA836: ds.b 2 ; DATA XREF: sub_20D54+322r ; sub_20D54+328w ... word_FFFFA838: ds.b 2 ; DATA XREF: sub_20D54:loc_21070r ; sub_20D54+322w ... word_FFFFA83A: ds.b 2 ; DATA XREF: sub_20D54+4Ar ; sub_20D54:loc_21070w ... byte_FFFFA83C: ds.b 1 ; DATA XREF: sub_20D54+CAr ; sub_20D54+11Er ... ds.b 1 word_FFFFA83E: ds.b 2 ; DATA XREF: sub_20D54:loc_20DD0w ; sub_20D54+A8r ... word_FFFFA840: ds.b 2 ; DATA XREF: sub_20D54:loc_20E6Aw ; sub_20D54:loc_20F70w ... word_FFFFA842: ds.b 2 ; DATA XREF: sub_20D54+11Aw ; sub_20D54:loc_21000w ... dword_FFFFA844: ds.b 4 ; DATA XREF: sub_20D54:loc_20D98w word_FFFFA848: ds.b 2 ; DATA XREF: sub_21094:loc_21224w ; sub_21094:loc_212E2w ... word_FFFFA84A: ds.b 2 ; DATA XREF: sub_21094+1CEw ; sub_21094+252w ... word_FFFFA84C: ds.b 2 ; DATA XREF: sub_21094+50w ; sub_21094+ECr ... byte_FFFFA84E: ds.b 1 ; DATA XREF: sub_20D54:loc_20E0Ar ; sub_20D54:loc_20E2Cw ... byte_FFFFA84F: ds.b 1 ; DATA XREF: sub_21094:loc_21128r ; sub_21094+9Ew ... byte_FFFFA850: ds.b 1 ; DATA XREF: sub_2132C:loc_2137Ar ; sub_2132C+62w ... byte_FFFFA851: ds.b 1 ; DATA XREF: sub_20CB2+26r ; sub_20CB2:loc_20D26r ... word_FFFFA852: ds.b 2 ; DATA XREF: sub_2C7AC+ACw ; sub_39546+16r word_FFFFA854: ds.b 2 ; DATA XREF: sub_2C7AC+70w ; sub_2C7AC:loc_2C824w ... byte_FFFFA856: ds.b 1 ; DATA XREF: sub_2C7AC+332w ; sub_2C7AC+348w ... byte_FFFFA857: ds.b 1 ; DATA XREF: sub_2C7AC+32Cw ; OS1:0002CB66w ... byte_FFFFA858: ds.b 1 ; DATA XREF: sub_2C7AC+2DAw ; sub_2C7AC+2FEw ... byte_FFFFA859: ds.b 1 ; DATA XREF: sub_2C7AC+2Ew ; sub_2C7AC:loc_2C7E2w ... byte_FFFFA85A: ds.b 1 ; DATA XREF: sub_2C7AC+10Ew ; sub_2C7AC+130w ... byte_FFFFA85B: ds.b 1 ; DATA XREF: sub_2C7AC:loc_2C89Cw ; sub_2C7AC+1ECw ... byte_FFFFA85C: ds.b 1 ; DATA XREF: sub_2C7AC+14Cw ; sub_2C7AC:loc_2C918w ... byte_FFFFA85D: ds.b 1 ; DATA XREF: sub_2C7AC+F4w ; sub_2C7AC+23Ew ... byte_FFFFA85E: ds.b 1 ; DATA XREF: sub_2C7AC+356w ; OS1:0002CB52w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFA864: ds.b 2 ; DATA XREF: sub_2C7AC:loc_2C82Ar unk_FFFFA866: ds.b 1 ; DATA XREF: sub_2C7AC+84o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFFA876: ds.b 1 ; DATA XREF: sub_2C7AC+88o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFA886: ds.b 2 ; DATA XREF: sub_2C7AC:loc_2C840r ; sub_2C7AC+B0w byte_FFFFA888: ds.b 1 ; DATA XREF: sub_2C7AC+1F6w ; sub_2C7AC+220w ... byte_FFFFA889: ds.b 1 ; DATA XREF: sub_2C7AC:loc_2C898w ; sub_2C7AC+13Aw ... byte_FFFFA88A: ds.b 1 ; DATA XREF: sub_2C7AC:loc_2C894w ; sub_2C7AC:loc_2C8E0w ... byte_FFFFA88B: ds.b 1 ; DATA XREF: sub_2C7AC+1F0w ; sub_2C7AC+21Cw ... word_FFFFA88C: ds.b 2 ; DATA XREF: OS1:00034A14w ; OS1:00034A92w ... word_FFFFA88E: ds.b 2 ; DATA XREF: OS1:00034A18w ; OS1:00034A96w ... byte_FFFFA890: ds.b 1 ; DATA XREF: sub_31AE2:loc_31CDEr ; OS1:loc_349F4w ... ds.b 1 word_FFFFA892: ds.b 2 ; DATA XREF: sub_33E7E+6r ; OS1:000349F8w ... byte_FFFFA894: ds.b 1 ; DATA XREF: sub_34B00+C54w ; sub_3CD78+1E0r ... ds.b 1 byte_FFFFA896: ds.b 1 ; DATA XREF: OS1:00034A2Cw ; OS1:00034AAAw ... byte_FFFFA897: ds.b 1 ; DATA XREF: OS1:00034A30w ; OS1:00034AAEw ... byte_FFFFA898: ds.b 1 ; DATA XREF: OS1:00034A24w ; OS1:00034AA2w ... byte_FFFFA899: ds.b 1 ; DATA XREF: OS1:00034A28w ; OS1:00034AA6w ... byte_FFFFA89A: ds.b 1 ; DATA XREF: sub_2CC22:loc_2D030r ; sub_33D02+78r ... byte_FFFFA89B: ds.b 1 ; DATA XREF: sub_2CC22+412r ; sub_33D02+80r ... byte_FFFFA89C: ds.b 1 ; DATA XREF: OS1:00034A1Cw ; OS1:00034A9Aw ... byte_FFFFA89D: ds.b 1 ; DATA XREF: OS1:00034A20w ; OS1:00034A9Ew ... word_FFFFA89E: ds.b 2 ; DATA XREF: sub_33D02+AEr ; sub_33D02+13Er ... word_FFFFA8A0: ds.b 2 ; DATA XREF: sub_33D02+D6r ; sub_33D02+162r ... word_FFFFA8A2: ds.b 2 ; DATA XREF: OS1:00034A68w ; OS1:00034AE6w ... word_FFFFA8A4: ds.b 2 ; DATA XREF: OS1:00034A6Cw ; OS1:00034AEAw ... word_FFFFA8A6: ds.b 2 ; DATA XREF: sub_30DA8:loc_31232r ; OS1:loc_3144Er ... word_FFFFA8A8: ds.b 2 ; DATA XREF: sub_30DA8:loc_31278r ; OS1:loc_31494r ... word_FFFFA8AA: ds.b 2 ; DATA XREF: OS1:00034A44w ; OS1:00034AC2w ... word_FFFFA8AC: ds.b 2 ; DATA XREF: OS1:00034A48w ; OS1:00034AC6w ... word_FFFFA8AE: ds.b 2 ; DATA XREF: sub_2CC22+1A2r ; sub_2CC22+1BCr ... word_FFFFA8B0: ds.b 2 ; DATA XREF: sub_2CC22+1AEr ; sub_2CC22+1C0r ... word_FFFFA8B2: ds.b 2 ; DATA XREF: sub_34B00+9ACr ; sub_3576A+Cw word_FFFFA8B4: ds.b 2 ; DATA XREF: sub_34B00+6DEw ; sub_34B00:loc_351E4r ... word_FFFFA8B6: ds.b 2 ; DATA XREF: sub_34B00+8A6w ; sub_34B00:loc_353ACr ... word_FFFFA8B8: ds.b 2 ; DATA XREF: OS1:00034A78w ; OS1:00034AF6w ... word_FFFFA8BA: ds.b 2 ; DATA XREF: OS1:00034A7Cw ; OS1:00034AFAw ... word_FFFFA8BC: ds.b 2 ; DATA XREF: OS1:00034A34w ; OS1:00034AB2w ... word_FFFFA8BE: ds.b 2 ; DATA XREF: OS1:00034A38w ; OS1:00034AB6w ... byte_FFFFA8C0: ds.b 1 ; DATA XREF: OS1:00034A3Cw ; OS1:00034ABAw ... byte_FFFFA8C1: ds.b 1 ; DATA XREF: OS1:00034A40w ; OS1:00034ABEw ... byte_FFFFA8C2: ds.b 1 ; DATA XREF: sub_34B00:loc_354C8w ; sub_34B00+9E4w ... byte_FFFFA8C3: ds.b 1 ; DATA XREF: sub_34B00+A2Er ; sub_34B00+A40w byte_FFFFA8C4: ds.b 1 ; DATA XREF: sub_34B00:loc_3555Cw byte_FFFFA8C5: ds.b 1 ; DATA XREF: sub_34B00:loc_355E4r ; sub_34B00+B30w ... byte_FFFFA8C6: ds.b 1 ; DATA XREF: OS1:00028D9Aw ; sub_4A232+Ew ... byte_FFFFA8C7: ds.b 1 ; DATA XREF: OS1:00028D9Ew ; sub_4A232+1Cw ... byte_FFFFA8C8: ds.b 1 ; DATA XREF: OS1:00028DA2w ; sub_4A232+20w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFA8E1: ds.b 1 ; DATA XREF: sub_45CCE+1E4w ; sub_4A194+2Aw ... dword_FFFFA8E2: ds.b 4 ; DATA XREF: sub_4A3D6+4Ew ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFA8FE: ds.b 1 ; DATA XREF: sub_24716:loc_2545Er ; sub_24716+D50r ... byte_FFFFA8FF: ds.b 1 ; DATA XREF: sub_24716:loc_2546Er ; OS2:0004477Er ... byte_FFFFA900: ds.b 1 ; DATA XREF: OS2:GetPid_1901r ; sub_4EFF2+3Aw ... ds.b 1 word_FFFFA902: ds.b 2 ; DATA XREF: sub_4EEB4+34r ; sub_4EEB4+B4r ... word_FFFFA904: ds.b 2 ; DATA XREF: sub_4EFF2+104w ; sub_4EFF2:loc_4F136w ... word_FFFFA906: ds.b 2 ; DATA XREF: sub_4EFF2+132w ; sub_4EFF2:loc_4F12Aw ... word_FFFFA908: ds.b 2 ; DATA XREF: sub_4EFF2+120r ; sub_4EFF2+278w ... word_FFFFA90A: ds.b 2 ; DATA XREF: sub_4EFF2+100w ; sub_4EFF2+3C2w ... word_FFFFA90C: ds.b 2 ; DATA XREF: sub_4CFF8+4Ar ; sub_4EFF2+40w ... word_FFFFA90E: ds.b 2 ; DATA XREF: sub_4EEB4+3Ew ; sub_4EEB4+DEr ... byte_FFFFA910: ds.b 1 ; DATA XREF: sub_4EFF2+Cw ; sub_4EFF2+62w ... ds.b 1 word_FFFFA912: ds.b 2 ; DATA XREF: sub_4EFF2+48w ; sub_4EFF2+170r ... word_FFFFA914: ds.b 2 ; DATA XREF: OS2:0004BA6Cr ; OS2:0004BB82r ... word_FFFFA916: ds.b 2 ; DATA XREF: sub_4B866+A8r ; sub_4EFF2+576w word_FFFFA918: ds.b 2 ; DATA XREF: sub_4B866:loc_4B902r ; sub_4B866+C8r ... word_FFFFA91A: ds.b 2 ; DATA XREF: sub_4EFF2+54Aw ; sub_4EFF2+582r ... byte_FFFFA91C: ds.b 1 ; DATA XREF: sub_4EFF2+F0w ; sub_4EFF2+F6w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFA92A: ds.b 1 ; DATA XREF: sub_4EEB4+B0w ds.b 1 word_FFFFA92C: ds.b 2 ; DATA XREF: sub_4EEB4+C0w ; sub_4EEB4+D4w word_FFFFA92E: ds.b 2 ; DATA XREF: sub_4EFF2:loc_4F3E6w word_FFFFA930: ds.b 2 ; DATA XREF: sub_4EFF2+110w ; sub_4EFF2+2DAw word_FFFFA932: ds.b 2 ; DATA XREF: sub_4EFF2+1B4w ; sub_4EFF2+234r word_FFFFA934: ds.b 2 ; DATA XREF: sub_4EFF2:loc_4F14Cw ; sub_4EFF2:loc_4F1DCw ... byte_FFFFA936: ds.b 1 ; DATA XREF: sub_30566+Er ; sub_30566+16w ... byte_FFFFA937: ds.b 1 ; DATA XREF: sub_307A6:loc_30856w ; sub_60E42+E8r byte_FFFFA938: ds.b 1 ; DATA XREF: sub_30566+B0r ; sub_30566+D0r ... byte_FFFFA939: ds.b 1 ; DATA XREF: sub_308A8+4w ; sub_3090C:loc_309DEw ... byte_FFFFA93A: ds.b 1 ; DATA XREF: sub_307A6+4r ; sub_307A6+14w ... byte_FFFFA93B: ds.b 1 ; DATA XREF: sub_2CC22+6Er ; sub_2E010+242r ... byte_FFFFA93C: ds.b 1 ; DATA XREF: sub_30368+4r ; sub_30368+EEw ... byte_FFFFA93D: ds.b 1 ; DATA XREF: sub_3068C+42w ; sub_45F3A:loc_47A76r ... byte_FFFFA93E: ds.b 1 ; DATA XREF: DoLoopG+170w ; DoLoopG:loc_2B2B2w ... ds.b 1 word_FFFFA940: ds.b 2 ; DATA XREF: DoLoopG:loc_2B2A4r ; sub_308A8+3Cw word_FFFFA942: ds.b 2 ; DATA XREF: sub_307A6+46w ; sub_307A6+52w ... word_FFFFA944: ds.b 2 ; DATA XREF: sub_3068C+Er ; sub_3068C+36w word_FFFFA946: ds.b 2 ; DATA XREF: sub_3068C:loc_306BEw ; sub_3090C+A4r word_FFFFA948: ds.b 2 ; DATA XREF: sub_30566:loc_305B0r ; sub_30566+50w word_FFFFA94A: ds.b 2 ; DATA XREF: sub_30566+22r ; sub_30566:loc_305B0w ... word_FFFFA94C: ds.b 2 ; DATA XREF: sub_30566+34w ; sub_30566:loc_305A0r ... word_FFFFA94E: ds.b 2 ; DATA XREF: sub_3068C+F0r ; sub_3068C:loc_30796w word_FFFFA950: ds.b 2 ; DATA XREF: sub_30368+1D6r ; sub_30368:loc_3055Cw word_FFFFA952: ds.b 2 ; DATA XREF: sub_30566+C4w ; sub_30566+100w ... word_FFFFA954: ds.b 2 ; DATA XREF: sub_3090C:loc_30986r ; sub_3090C:loc_30990w ... word_FFFFA956: ds.b 2 ; DATA XREF: sub_3090C+2ECr ; sub_3090C:loc_30C02w ... word_FFFFA958: ds.b 2 ; DATA XREF: sub_3090C+2BAr ; sub_3090C:loc_30BD0w ... word_FFFFA95A: ds.b 2 ; DATA XREF: sub_30566+54r ; sub_30566:loc_305C4w ... word_FFFFA95C: ds.b 2 ; DATA XREF: sub_3090C:loc_3095Er ; sub_3090C:loc_3096Aw ... word_FFFFA95E: ds.b 2 ; DATA XREF: sub_30566+62r ; sub_30566:loc_305D4w ... word_FFFFA960: ds.b 2 ; DATA XREF: sub_3090C+14w ; sub_3090C+3Cr byte_FFFFA962: ds.b 1 ; DATA XREF: sub_3090C+68r ; sub_3090C:loc_30994w byte_FFFFA963: ds.b 1 ; DATA XREF: sub_308A8+5Ew ; sub_3090C+Ew ... byte_FFFFA964: ds.b 1 ; DATA XREF: sub_307A6+20w ; sub_307A6:loc_307D8r ... byte_FFFFA965: ds.b 1 ; DATA XREF: sub_3090C+308w ; sub_3090C+344r ... byte_FFFFA966: ds.b 1 ; DATA XREF: sub_3068C+46r ; sub_3068C+7Ew ... byte_FFFFA967: ds.b 1 ; DATA XREF: sub_3068C:loc_30746r ; sub_3068C:loc_30766w ... byte_FFFFA968: ds.b 1 ; DATA XREF: sub_307A6+8w byte_FFFFA969: ds.b 1 ; DATA XREF: sub_307A6+8Cw ; sub_307A6+A6w ... byte_FFFFA96A: ds.b 1 ; DATA XREF: sub_307A6+90w ; sub_307A6+A0r ... byte_FFFFA96B: ds.b 1 ; DATA XREF: sub_30566+78w ; sub_30566:loc_305E4w ... byte_FFFFA96C: ds.b 1 ; DATA XREF: sub_30566:loc_305EAr ; sub_30566:loc_3067Aw byte_FFFFA96D: ds.b 1 ; DATA XREF: sub_3090C+2B0w ; sub_3090C:loc_30C5Ew byte_FFFFA96E: ds.b 1 ; DATA XREF: sub_503CA:loc_50468r ; sub_503CA+A8r ... byte_FFFFA96F: ds.b 1 ; DATA XREF: sub_51C44:loc_51DCEr ; sub_51C44+190w ... word_FFFFA970: ds.b 2 ; DATA XREF: sub_5195C+1FEr ; sub_5195C:loc_51B74w ... word_FFFFA972: ds.b 2 ; DATA XREF: sub_5195C+1FAw ; sub_5195C+2AEr ... word_FFFFA974: ds.b 2 ; DATA XREF: sub_5195C:loc_51ACCw ; sub_5195C:loc_51AD2w ... word_FFFFA976: ds.b 2 ; DATA XREF: sub_51C44+15Aw ; sub_51C44+238r ... word_FFFFA978: ds.b 2 ; DATA XREF: sub_51C44+15Ew ; sub_51C44+328r ... word_FFFFA97A: ds.b 2 ; DATA XREF: sub_51C44+162w ; sub_51C44+3C2r ... word_FFFFA97C: ds.b 2 ; DATA XREF: sub_51C44+166w ; sub_51C44+47Ar ... word_FFFFA97E: ds.b 2 ; DATA XREF: sub_51C44+16Aw ; sub_51C44+53Cr ... word_FFFFA980: ds.b 2 ; DATA XREF: sub_51C44+16Ew ; sub_51C44+5D6r ... word_FFFFA982: ds.b 2 ; DATA XREF: sub_51C44+172w ; sub_51C44+670r ... word_FFFFA984: ds.b 2 ; DATA XREF: sub_51C44+176w ; sub_51C44+728r ... word_FFFFA986: ds.b 2 ; DATA XREF: sub_51C44+17Aw ; sub_51C44+8D0r ... word_FFFFA988: ds.b 2 ; DATA XREF: sub_51C44+17Ew ; sub_51C44+962r ... word_FFFFA98A: ds.b 2 ; DATA XREF: sub_51C44+182w ; sub_51C44+9F4r ... word_FFFFA98C: ds.b 2 ; DATA XREF: sub_51C44+186w ; sub_51C44+AD6r ... word_FFFFA98E: ds.b 2 ; DATA XREF: sub_51C44+1D4w ; sub_51C44:loc_51E20w ... byte_FFFFA990: ds.b 1 ; DATA XREF: sub_51C44+194w ; sub_51C44+244w ... byte_FFFFA991: ds.b 1 ; DATA XREF: sub_51C44+198w ; sub_51C44+334w ... byte_FFFFA992: ds.b 1 ; DATA XREF: sub_51C44+19Cw ; sub_51C44+3CEw ... byte_FFFFA993: ds.b 1 ; DATA XREF: sub_51C44+1A0w ; sub_51C44+486w ... byte_FFFFA994: ds.b 1 ; DATA XREF: sub_51C44+1A4w ; sub_51C44+548w ... byte_FFFFA995: ds.b 1 ; DATA XREF: sub_51C44+1A8w ; sub_51C44+5E2w ... byte_FFFFA996: ds.b 1 ; DATA XREF: sub_51C44+1ACw ; sub_51C44+67Cw ... byte_FFFFA997: ds.b 1 ; DATA XREF: sub_51C44+1B0w ; sub_51C44+734w ... byte_FFFFA998: ds.b 1 ; DATA XREF: sub_51C44+1B4w ; sub_51C44+24Aw ... byte_FFFFA999: ds.b 1 ; DATA XREF: sub_51C44+1B8w ; sub_51C44+3D4w ... byte_FFFFA99A: ds.b 1 ; DATA XREF: sub_51C44+1BCw ; sub_51C44+48Cw ... byte_FFFFA99B: ds.b 1 ; DATA XREF: sub_51C44+1C0w ; sub_51C44+33Aw ... byte_FFFFA99C: ds.b 1 ; DATA XREF: sub_51C44+762r ; sub_51C44:loc_523B2w ... byte_FFFFA99D: ds.b 1 ; DATA XREF: sub_51C44:loc_523F2r ; sub_51C44:loc_523FEw ... byte_FFFFA99E: ds.b 1 ; DATA XREF: sub_51C44+7F0r ; sub_51C44:loc_52440w ... byte_FFFFA99F: ds.b 1 ; DATA XREF: sub_51C44:loc_52480r ; sub_51C44:loc_5248Cw ... byte_FFFFA9A0: ds.b 1 ; DATA XREF: sub_51C44:loc_51D92w ; sub_51C44:loc_51D9Aw ... ds.b 1 word_FFFFA9A2: ds.b 2 ; DATA XREF: OS2:GetPid_11E6_RevolutionModeMisfireIndexBalanceTimer ; sub_6F29A:loc_6FA56w ... word_FFFFA9A4: ds.b 2 ; DATA XREF: OS2:GetPid_11E4_CylinderModeMisfireIndexr ; sub_6F29A:loc_6F8CAw ... word_FFFFA9A6: ds.b 2 ; DATA XREF: sub_6F29A+642w ; sub_6F29A+9F8r word_FFFFA9A8: ds.b 2 ; DATA XREF: OS2:GetPid_11E5r ; sub_6F29A+27Ew ... byte_FFFFA9AA: ds.b 1 ; DATA XREF: DoLoopA+40Aw DoLoopC+1F6w ... byte_FFFFA9AB: ds.b 1 ; DATA XREF: sub_6E5D0:loc_6E704r ; sub_6F126+CAw ... word_FFFFA9AC: ds.b 2 ; DATA XREF: sub_6F29A+580w ; sub_702A6+17Ar ... word_FFFFA9AE: ds.b 2 ; DATA XREF: sub_6F29A+566w ; sub_702A6:loc_70460r word_FFFFA9B0: ds.b 2 ; DATA XREF: sub_6F29A+576w ; sub_702A6:loc_7043Cr ... word_FFFFA9B2: ds.b 2 ; DATA XREF: sub_6F29A+55Cw ; sub_702A6:loc_70478r byte_FFFFA9B4: ds.b 1 ; DATA XREF: DoLoopC+1DEw ; sub_6F206+1Aw ... byte_FFFFA9B5: ds.b 1 ; DATA XREF: DoLoopC+1E2w ; sub_6F206+1Ew ... word_FFFFA9B6: ds.b 2 ; DATA XREF: OS2:GetPid_12FFr ; sub_6E81E:loc_6E88Ar ... byte_FFFFA9B8: ds.b 1 ; DATA XREF: DoLoopC+1E6w ; sub_6F126+A0w ... byte_FFFFA9B9: ds.b 1 ; DATA XREF: DoLoopA+404w DoLoopC+1FCw ... byte_FFFFA9BA: ds.b 1 ; DATA XREF: DoLoopC+1EAw ; OS2:GetPid_122A_CyclesofMisfireDatar ... byte_FFFFA9BB: ds.b 1 ; DATA XREF: DoLoopC+1EEw ; sub_6F206+26w ... byte_FFFFA9BC: ds.b 1 ; DATA XREF: DoLoopC+1F2w ; sub_6F206+2Aw ... byte_FFFFA9BD: ds.b 1 ; DATA XREF: DoLoopC+1DAw ; sub_6F126+94w ... word_FFFFA9BE: ds.b 2 ; DATA XREF: OS2:GetPid_1229r ; sub_6F29A+3E4w ... dword_FFFFA9C0: ds.b 4 ; DATA XREF: DoLoopC+1D2w ; sub_6F126+90w ... dword_FFFFA9C4: ds.b 4 ; DATA XREF: DoLoopC+1CEw ; sub_6F126+8Cw ... dword_FFFFA9C8: ds.b 4 ; DATA XREF: DoLoopC+1D6w ; sub_6F126:loc_6F1AEw ... byte_FFFFA9CC: ds.b 1 ; DATA XREF: sub_6F29A+63Ew ; sub_6F29A+946r ... byte_FFFFA9CD: ds.b 1 ; DATA XREF: sub_6F29A+64Cw ; sub_6F29A+A4Er ... byte_FFFFA9CE: ds.b 1 ; DATA XREF: sub_6F126+A4w ; sub_6F29A+A8Aw ... byte_FFFFA9CF: ds.b 1 ; DATA XREF: sub_6F126+A8w ; sub_6F29A+AA0w ... byte_FFFFA9D0: ds.b 1 ; DATA XREF: sub_6F29A+8E4w ; sub_6F29A+CACw byte_FFFFA9D1: ds.b 1 ; DATA XREF: sub_6F29A+90Cw ; sub_6F29A+CD4w word_FFFFA9D2: ds.b 2 ; DATA XREF: sub_6F29A:loc_6FB9Cw ; sub_6F29A:loc_6FF64w byte_FFFFA9D4: ds.b 1 ; DATA XREF: sub_6F29A+722w ; sub_6F29A+AC8r ... ds.b 1 byte_FFFFA9D6: ds.b 1 ; DATA XREF: OS2:loc_4331Er ; sub_64058+40r ... byte_FFFFA9D7: ds.b 1 ; DATA XREF: sub_3D7B0+38r ; OS2:00043440r ... word_FFFFA9D8: ds.b 2 ; DATA XREF: sub_64EC8+2r ; sub_6653A+6Cw ... byte_FFFFA9DA: ds.b 1 ; DATA XREF: sub_2CB78r sub_3DD00+2r ... byte_FFFFA9DB: ds.b 1 ; DATA XREF: sub_3DD00+Ar ; sub_664A0+1Ew ... word_FFFFA9DC: ds.b 2 ; DATA XREF: sub_64EFC+844r ; sub_64EFC:loc_65764r ... word_FFFFA9DE: ds.b 2 ; DATA XREF: sub_64EFC+9D0r ; sub_6653A+21Cw byte_FFFFA9E0: ds.b 1 ; DATA XREF: sub_64EFC:loc_65394r ; sub_64EFC:loc_655CAr ... ds.b 1 word_FFFFA9E2: ds.b 2 ; DATA XREF: sub_6653A+256w ; sub_6653A+282r ... word_FFFFA9E4: ds.b 2 ; DATA XREF: sub_6653A+25Cw ; sub_6653A+2A2r ... word_FFFFA9E6: ds.b 2 ; DATA XREF: sub_6653A+250w ; sub_6653A+478r ... word_FFFFA9E8: ds.b 2 ; DATA XREF: sub_6653A+1AEw ; sub_6653A:loc_666EEw ... word_FFFFA9EA: ds.b 2 ; DATA XREF: sub_6653A+B2r ; sub_66C78+4Cw ... word_FFFFA9EC: ds.b 2 ; DATA XREF: sub_6653A+AEr ; sub_6653A+CEr ... dword_FFFFA9EE: ds.b 4 ; DATA XREF: sub_6653A:loc_66ABCw ; sub_6653A+5A8w ... dword_FFFFA9F2: ds.b 4 ; DATA XREF: sub_6653A:loc_66B38w ; sub_6653A+634w ... word_FFFFA9F6: ds.b 2 ; DATA XREF: sub_6653A+700w ; sub_6653A+70Er ... word_FFFFA9F8: ds.b 2 ; DATA XREF: sub_6653A+6B8w ; sub_6653A+6C6r ... word_FFFFA9FA: ds.b 2 ; DATA XREF: sub_6653A:loc_669CEw word_FFFFA9FC: ds.b 2 ; DATA XREF: sub_6653A:loc_667D0w word_FFFFA9FE: ds.b 2 ; DATA XREF: sub_6653A:loc_667F0w word_FFFFAA00: ds.b 2 ; DATA XREF: sub_6653A+3E8w ; sub_6653A+40Cr ... byte_FFFFAA02: ds.b 1 ; DATA XREF: sub_6653A+3CEr ; sub_6653A+3DEw ... byte_FFFFAA03: ds.b 1 ; DATA XREF: sub_6653A:loc_66902r ; sub_6653A:loc_66914w ... byte_FFFFAA04: ds.b 1 ; DATA XREF: sub_6653A:loc_66926r ; sub_6653A+412w ... byte_FFFFAA05: ds.b 1 ; DATA XREF: sub_6653A+244r ; sub_6653A+24Cw ... byte_FFFFAA06: ds.b 1 ; DATA XREF: sub_6653A+278w ; sub_6653A+392w ... byte_FFFFAA07: ds.b 1 ; DATA XREF: sub_6653A+45Ew ; sub_6653A:loc_66A2Aw ... byte_FFFFAA08: ds.b 1 ; DATA XREF: sub_622DEw sub_622E6w ... byte_FFFFAA09: ds.b 1 ; DATA XREF: sub_2D9E4+4r ; sub_2D9E4+26r ... byte_FFFFAA0A: ds.b 1 ; DATA XREF: sub_622EE+20Cw ; sub_622EE+30Er ... byte_FFFFAA0B: ds.b 1 ; DATA XREF: OS2:GetPid_11BD_EGRTestCountr ; sub_622EE+D8r ... byte_FFFFAA0C: ds.b 1 ; DATA XREF: sub_62228+50w ; sub_622EE+10w ... byte_FFFFAA0D: ds.b 1 ; DATA XREF: sub_622EE:loc_62424r ; sub_622EE:loc_62470w ... byte_FFFFAA0E: ds.b 1 ; DATA XREF: sub_622EE+408r ; sub_622EE:loc_62702w ... byte_FFFFAA0F: ds.b 1 ; DATA XREF: sub_622EE+208w ; sub_622EE:loc_626D2r ... byte_FFFFAA10: ds.b 1 ; DATA XREF: sub_622EE+204w ; sub_622EE+226r ... byte_FFFFAA11: ds.b 1 ; DATA XREF: sub_622EE+2Ew ; sub_622EE+F0r ... byte_FFFFAA12: ds.b 1 ; DATA XREF: sub_622EE+452r ; sub_622EE:loc_6274Cw ... ds.b 1 word_FFFFAA14: ds.b 2 ; DATA XREF: sub_62228:loc_62270w ; sub_622EE+140w ... word_FFFFAA16: ds.b 2 ; DATA XREF: sub_622EE:loc_628F0w ; sub_622EE+71Ar word_FFFFAA18: ds.b 2 ; DATA XREF: sub_622EE+6Cr ; sub_622EE:loc_62366w ... word_FFFFAA1A: ds.b 2 ; DATA XREF: sub_622EE:loc_62436w ; sub_622EE:loc_6244Cr ... word_FFFFAA1C: ds.b 2 ; DATA XREF: sub_622EE:loc_62A02w word_FFFFAA1E: ds.b 2 ; DATA XREF: sub_622EE:loc_62A16w ; sub_622EE+746r word_FFFFAA20: ds.b 2 ; DATA XREF: sub_62228+62w ; sub_622EE+1F4w ... word_FFFFAA22: ds.b 2 ; DATA XREF: sub_62228+5Ew ; sub_622EE+1E4w ... word_FFFFAA24: ds.b 2 ; DATA XREF: sub_62228+68w ; sub_622EE+1FAw ... word_FFFFAA26: ds.b 2 ; DATA XREF: sub_62228+7Aw ; sub_622EE+1F0w ... word_FFFFAA28: ds.b 2 ; DATA XREF: sub_62228+58w ; sub_622EE+1DEw ... word_FFFFAA2A: ds.b 2 ; DATA XREF: sub_62228+6Cw ; sub_622EE+1FEw ... word_FFFFAA2C: ds.b 2 ; DATA XREF: sub_62228+76w ; sub_622EE+1ECw ... word_FFFFAA2E: ds.b 2 ; DATA XREF: sub_622EE+210w ; sub_622EE:loc_62692r ... word_FFFFAA30: ds.b 2 ; DATA XREF: sub_62228:loc_622B4w ; sub_622EE:loc_6298Ar word_FFFFAA32: ds.b 2 ; DATA XREF: sub_62228+B0w ; sub_622EE+692r ... word_FFFFAA34: ds.b 2 ; DATA XREF: sub_62228+A4w ; sub_622EE+63Ar word_FFFFAA36: ds.b 2 ; DATA XREF: sub_62228:loc_622C8w ; sub_622EE+634r ... byte_FFFFAA38: ds.b 1 ; DATA XREF: sub_5F6BC+D2w ; OS2:0005F7AAr ... ds.b 1 word_FFFFAA3A: ds.b 2 ; DATA XREF: sub_5F6BC+30w ; sub_60178+528r ... byte_FFFFAA3C: ds.b 1 ; DATA XREF: sub_5F6BC+1Cw ; sub_60178+53Cr ... byte_FFFFAA3D: ds.b 1 ; DATA XREF: sub_60178+544r ; sub_60178:loc_60708r byte_FFFFAA3E: ds.b 1 ; DATA XREF: sub_34B00+AAAr ; sub_34B00+BA0r ... byte_FFFFAA3F: ds.b 1 ; DATA XREF: OS2:loc_5F7EEr ; OS2:0005F7F6r ... byte_FFFFAA40: ds.b 1 ; DATA XREF: sub_5F6BC:loc_5F6D4w ; OS2:loc_5F7DEr ... byte_FFFFAA41: ds.b 1 ; DATA XREF: sub_5F6BC+CEw ; OS3:loc_60006r ... byte_FFFFAA42: ds.b 1 ; DATA XREF: sub_5F6BC+B6w ; OS2:0005FEE2r ... byte_FFFFAA43: ds.b 1 ; DATA XREF: sub_5F6BC+D6w ; OS2:0005FE70w ... byte_FFFFAA44: ds.b 1 ; DATA XREF: sub_5F6BC+AEw ; OS2:0005FDD4r ... byte_FFFFAA45: ds.b 1 ; DATA XREF: sub_5F6ACw sub_5F6BC+C6w ... byte_FFFFAA46: ds.b 1 ; DATA XREF: sub_5F6BC+AAw ; OS2:0005FF54r ... byte_FFFFAA47: ds.b 1 ; DATA XREF: sub_5F6BC+BAw ; OS2:0005F946r ... byte_FFFFAA48: ds.b 1 ; DATA XREF: sub_5F6BC+BEw ; OS2:0005FC82r ... byte_FFFFAA49: ds.b 1 ; DATA XREF: sub_5F6BC+B2w ; OS2:0005FEC6r ... byte_FFFFAA4A: ds.b 1 ; DATA XREF: sub_5F6AC+Aw ; sub_5F6BC+CAw ... ds.b 1 word_FFFFAA4C: ds.b 2 ; DATA XREF: sub_5F6BC+38w ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFAA52: ds.b 2 ; DATA XREF: sub_5F6BC:loc_5F762w ; OS2:0005F9ECr ... word_FFFFAA54: ds.b 2 ; DATA XREF: sub_5F6BC+C2w ; OS2:loc_5FCA2r ... word_FFFFAA56: ds.b 2 ; DATA XREF: sub_5F6BC+20w dword_FFFFAA58: ds.b 4 ; DATA XREF: sub_5F6BC+28w word_FFFFAA5C: ds.b 2 ; DATA XREF: sub_5F6BC+24w dword_FFFFAA5E: ds.b 4 ; DATA XREF: sub_5F6BC+2Cw ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFAA66: ds.b 2 ; DATA XREF: sub_5F6BC+34w word_FFFFAA68: ds.b 2 ; DATA XREF: sub_82766+FEr word_FFFFAA6A: ds.b 2 ; DATA XREF: sub_82766+F8r word_FFFFAA6C: ds.b 2 ; DATA XREF: sub_82766+106r word_FFFFAA6E: ds.b 2 ; DATA XREF: sub_82766+10Er word_FFFFAA70: ds.b 2 ; DATA XREF: sub_82766+116r word_FFFFAA72: ds.b 2 ; DATA XREF: sub_82766+11Er word_FFFFAA74: ds.b 2 ; DATA XREF: sub_82766+126r word_FFFFAA76: ds.b 2 ; DATA XREF: sub_82766+12Er ds.b 1 ds.b 1 word_FFFFAA7A: ds.b 2 ; DATA XREF: sub_7DE52+56r ; sub_82766+162w ... dword_FFFFAA7C: ds.b 4 ; DATA XREF: sub_282C4:loc_28328r ; sub_282C4:loc_2847Er ... dword_FFFFAA80: ds.b 4 ; DATA XREF: sub_282C4:loc_2832Er ; sub_282C4:loc_28484r ... word_FFFFAA84: ds.b 2 ; DATA XREF: OS1:000287B0w ; OS1:000287C6w ... word_FFFFAA86: ds.b 2 ; DATA XREF: sub_6EF00+78r ; sub_82766+1AAw word_FFFFAA88: ds.b 2 ; DATA XREF: sub_30CA4+B4r ; sub_82766:loc_828A6w word_FFFFAA8A: ds.b 2 ; DATA XREF: sub_282C4+94r ; sub_282C4+C6r ... word_FFFFAA8C: ds.b 2 ; DATA XREF: sub_28730+Ew ; sub_30DA8+4Ar ... word_FFFFAA8E: ds.b 2 ; DATA XREF: OS1:000287CAw ; OS1:loc_28840w ... word_FFFFAA90: ds.b 2 ; DATA XREF: sub_2BA40+28Er ; sub_2BA40:loc_2BCDEr ... byte_FFFFAA92: ds.b 1 ; DATA XREF: sub_282C4+5Cr ; sub_282C4+1B2r ... byte_FFFFAA93: ds.b 1 ; DATA XREF: OS1:0002875Cw ; OS1:loc_28786w ... word_FFFFAA94: ds.b 2 ; DATA XREF: sub_82766+144r ; sub_82766+15Aw word_FFFFAA96: ds.b 2 ; DATA XREF: sub_82766+1A0w ; sub_82766+1A6r byte_FFFFAA98: ds.b 1 ; DATA XREF: sub_6B084:loc_6B0A4w ; sub_6B156+8r ... ds.b 1 word_FFFFAA9A: ds.b 2 ; DATA XREF: sub_6B084+24w word_FFFFAA9C: ds.b 2 ; DATA XREF: sub_6B084+28w ; sub_6B602+13Aw word_FFFFAA9E: ds.b 2 ; DATA XREF: sub_3EA90+B1Cr word_FFFFAAA0: ds.b 2 ; DATA XREF: sub_3EA90+B74r word_FFFFAAA2: ds.b 2 ; DATA XREF: sub_6BF36+8r ; sub_6BF36:loc_6BF4Cr unk_FFFFAAA4: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFFAAA8: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFFAAAC: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFFAAB0: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFFAAB4: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFAABA: ds.b 2 ; DATA XREF: sub_6B084+30w ; sub_6B156:loc_6B1D0r ... unk_FFFFAABC: ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFFAAC0: ds.b 1 ds.b 1 word_FFFFAAC2: ds.b 2 ; DATA XREF: sub_6B602+14Aw ds.b 1 ds.b 1 byte_FFFFAAC6: ds.b 1 ; DATA XREF: sub_6B084+2Cw ; sub_6B156+B0r ... ds.b 1 dword_FFFFAAC8: ds.b 4 ; DATA XREF: sub_3DEA4+26r ; sub_5EDDA+8Cw ... word_FFFFAACC: ds.b 2 ; DATA XREF: OS2:GetPid_1234_MileageSinceLastCodeClearr ; sub_5DE36+A0r ... word_FFFFAACE: ds.b 2 ; DATA XREF: OS2:GetPid_0021r ; sub_5EF12:loc_5EFACw ... byte_FFFFAAD0: ds.b 1 ; DATA XREF: sub_45F3A:loc_47918r ; sub_47DA2:loc_48426r ... ds.b 1 unk_FFFFAAD2: ds.b 1 ; DATA XREF: sub_5EDDA+24o ; sub_5EFCC:loc_5F01Ao ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFAAF2: ds.b 1 ; DATA XREF: sub_5EF12+64r ; sub_5EF12+AAw ... ds.b 1 word_FFFFAAF4: ds.b 2 ; DATA XREF: sub_5EE7E+36w ; sub_5EE7E+46r word_FFFFAAF6: ds.b 2 ; DATA XREF: OS1:00028E3Ew ; sub_85D6E+290w ... word_FFFFAAF8: ds.b 2 ; DATA XREF: OS1:00028E38w ; sub_85D6E:loc_85FF6w ... word_FFFFAAFA: ds.b 2 ; DATA XREF: TenSecondDelayIsInHere+24w ; sub_40278:loc_40300w ... word_FFFFAAFC: ds.b 2 ; DATA XREF: TenSecondDelayIsInHere+1Ew ; sub_40278+82w ... word_FFFFAAFE: ds.b 2 ; DATA XREF: ModeInitHandler+9Cw ; sub_45AE8+40w ... word_FFFFAB00: ds.b 2 ; DATA XREF: DoLoopG+2AEr ; ModeInitHandler+96w ... word_FFFFAB02: ds.b 2 ; DATA XREF: DoLoopG+2CEw word_FFFFAB04: ds.b 2 ; DATA XREF: DoLoopG+2C8w ; DoLoopG:loc_2B410r word_FFFFAB06: ds.b 2 ; DATA XREF: DoLoopG:loc_2B4A6w ; sub_4A3D6+48w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFAB1C: ds.b 2 ; DATA XREF: sub_850+12Aw sub_AA0+170w ... word_FFFFAB1E: ds.b 2 ; DATA XREF: sub_850+126w sub_AA0+16Aw ... word_FFFFAB20: ds.b 2 ; DATA XREF: OS1:0003FDC8w ; OS1:0003FDF0w ... word_FFFFAB22: ds.b 2 ; DATA XREF: DoLoopF+15Er DoLoopF+4AEr ... byte_FFFFAB24: ds.b 1 ; DATA XREF: sub_2C4F4+2r ; sub_30DA8:loc_3120Cr ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFAB2C: ds.b 1 ; DATA XREF: sub_5F6BC+D6r ; OS2:loc_5FD8Ar ... byte_FFFFAB2D: ds.b 1 ; DATA XREF: OS2:0005FD30r ; sub_60178+68w byte_FFFFAB2E: ds.b 1 ; DATA XREF: OS2:0005F992r ; sub_60178:loc_601DAw byte_FFFFAB2F: ds.b 1 ; DATA XREF: OS2:0005F7A0r ; OS2:loc_5F810r ... word_FFFFAB30: ds.b 2 ; DATA XREF: OS2:0005F82Er ; OS2:loc_5FCDEr ... byte_FFFFAB32: ds.b 1 ; DATA XREF: OS2:0005FD36r ; sub_60178+6Ew ds.b 1 word_FFFFAB34: ds.b 2 ; DATA XREF: sub_30DA8+46Cr ; OS1:00031430r word_FFFFAB36: ds.b 2 ; DATA XREF: sub_30DA8+4B2r ; OS1:00031476r word_FFFFAB38: ds.b 2 ; DATA XREF: sub_34B00+61Ar ; sub_34B00+7E4r ... ds.b 1 ds.b 1 unk_FFFFAB3C: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFAB42: ds.b 2 ; DATA XREF: OS2:0005F83Ar ; sub_60178:loc_60212w byte_FFFFAB44: ds.b 1 ; DATA XREF: OS2:loc_5F826r ; OS2:loc_5F98Er ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFAB50: ds.b 1 ; DATA XREF: sub_6010A+6w ; sub_60178+3C8r ... ds.b 1 word_FFFFAB52: ds.b 2 ; DATA XREF: sub_83736+16w word_FFFFAB54: ds.b 2 ; DATA XREF: sub_2DACE+286r ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFAB5A: ds.b 2 ; DATA XREF: sub_3B1A8+42r ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFAB60: ds.b 2 ; DATA XREF: sub_60178+78r ; sub_6DA1A+194r ... word_FFFFAB62: ds.b 2 ; DATA XREF: sub_79B10:loc_79B32r ; sub_7A89E:loc_7A910r ... word_FFFFAB64: ds.b 2 ; DATA XREF: OS2:00043E9Cr ; OS2:loc_49CD4r ... word_FFFFAB66: ds.b 2 ; DATA XREF: DoLoopD+50r ; sub_2BA40+3E6r ... word_FFFFAB68: ds.b 2 ; DATA XREF: sub_83754+12w ; sub_83754:loc_837A2r ... byte_FFFFAB6A: ds.b 1 ; DATA XREF: sub_348C6+C4r ; sub_7D368+18r ... ds.b 1 word_FFFFAB6C: ds.b 2 ; DATA XREF: OS4:loc_8358Ew ; sub_835B2:loc_836E8w ... word_FFFFAB6E: ds.b 2 ; DATA XREF: OS4:00083594w ; sub_835B2+B6w ... word_FFFFAB70: ds.b 2 ; DATA XREF: OS4:0008357Aw ; sub_83754+52r ... word_FFFFAB72: ds.b 2 ; DATA XREF: OS4:0008357Ew ; sub_83754+A2r ... word_FFFFAB74: ds.b 2 ; DATA XREF: sub_835B2+114w ; sub_835B2:loc_836CEw ... word_FFFFAB76: ds.b 2 ; DATA XREF: OS4:0008359Ew ; sub_835B2+130r ... word_FFFFAB78: ds.b 2 ; DATA XREF: sub_835B2+82w ; sub_835B2:loc_8363Cw ... byte_FFFFAB7A: ds.b 1 ; DATA XREF: OS4:0008359Aw ; sub_835B2+CEw ... byte_FFFFAB7B: ds.b 1 ; DATA XREF: OS4:loc_83570w ; sub_83754+B6w ... byte_FFFFAB7C: ds.b 1 ; DATA XREF: OS4:000835ACw ; sub_835B2+9Cr ... byte_FFFFAB7D: ds.b 1 ; DATA XREF: OS4:000835A6w ; sub_835B2+A2w ... byte_FFFFAB7E: ds.b 1 ; DATA XREF: sub_24716:loc_25FE4r ; sub_80B94+494w ... byte_FFFFAB7F: ds.b 1 ; DATA XREF: sub_45F3A+BC8r ; sub_45F3A+BECr ... byte_FFFFAB80: ds.b 1 ; DATA XREF: sub_45F3A+BCCr ; sub_45F3A+BF0r ... ds.b 1 word_FFFFAB82: ds.b 2 ; DATA XREF: sub_21094+26r ; sub_21094+1FEr ... byte_FFFFAB84: ds.b 1 ; DATA XREF: sub_80B94+2F0w ; sub_80B94:loc_80EA2w ... byte_FFFFAB85: ds.b 1 ; DATA XREF: sub_80B94+358r ; sub_80B94+364w ... byte_FFFFAB86: ds.b 1 ; DATA XREF: sub_80B94+390w ; sub_80B94+3B6w ... byte_FFFFAB87: ds.b 1 ; DATA XREF: sub_80B94+428w ; sub_80B94:loc_80FDEr ... byte_FFFFAB88: ds.b 1 ; DATA XREF: sub_80B94:loc_80EE6r ; sub_80B94+382w ... byte_FFFFAB89: ds.b 1 ; DATA XREF: sub_80B94+1Cr ; sub_80B94+2Ew ... ds.b 1 byte_FFFFAB8B: ds.b 1 ; DATA XREF: sub_80B94+Cw byte_FFFFAB8C: ds.b 1 ; DATA XREF: sub_80B94+482r ; sub_80B94+488w ... byte_FFFFAB8D: ds.b 1 ; DATA XREF: sub_81060+154r ; sub_81060+194w ... byte_FFFFAB8E: ds.b 1 ; DATA XREF: sub_80B94+2D4w ; sub_80B94:loc_80E70w ... byte_FFFFAB8F: ds.b 1 ; DATA XREF: sub_81060:loc_8108Ew ; sub_81060+D6w ... byte_FFFFAB90: ds.b 1 ; DATA XREF: sub_80B94+3D6r ; sub_80B94+3E2w ... byte_FFFFAB91: ds.b 1 ; DATA XREF: sub_80B94+48r ; sub_80B94+52r ... byte_FFFFAB92: ds.b 1 ; DATA XREF: sub_80B94+10r ; sub_81060+3Er ... ds.b 1 word_FFFFAB94: ds.b 2 ; DATA XREF: sub_80B94+2EAr ; sub_80B94+2FCr ... word_FFFFAB96: ds.b 2 ; DATA XREF: sub_80B94+35Ew word_FFFFAB98: ds.b 2 ; DATA XREF: sub_80B94+38Ar ; sub_80B94+39Cr ... word_FFFFAB9A: ds.b 2 ; DATA XREF: sub_80B94+A0w ; sub_80B94+BEr word_FFFFAB9C: ds.b 2 ; DATA XREF: sub_80B94:loc_80C68w ; sub_80B94+11Er ... word_FFFFAB9E: ds.b 2 ; DATA XREF: sub_80B94:loc_80E26r ; sub_80B94+2CAw ... ds.b 1 ds.b 1 word_FFFFABA2: ds.b 2 ; DATA XREF: sub_81060+84r ; sub_81060:loc_8113Ew ... word_FFFFABA4: ds.b 2 ; DATA XREF: sub_81060+128r ; sub_81060:loc_811A2w ... word_FFFFABA6: ds.b 2 ; DATA XREF: sub_80B94+3DCw ; sub_80B94:loc_80F7Cr word_FFFFABA8: ds.b 2 ; DATA XREF: sub_81060+14Ar ; OS4:00081294w ... byte_FFFFABAA: ds.b 1 ; DATA XREF: sub_829FA+6A8w ; sub_829FA+6E0w ... ds.b 1 word_FFFFABAC: ds.b 2 ; DATA XREF: sub_829FA+12w ; sub_829FA:loc_82A14w ... word_FFFFABAE: ds.b 2 ; DATA XREF: sub_82954+16w ; sub_82954+30r ... word_FFFFABB0: ds.b 2 ; DATA XREF: sub_82954+1Cw ; sub_82954:loc_82980r ... word_FFFFABB2: ds.b 2 ; DATA XREF: sub_82954+40r ; sub_82954:loc_829F0w ... word_FFFFABB4: ds.b 2 ; DATA XREF: sub_82954+22w ; sub_82954+3Cr ... word_FFFFABB6: ds.b 2 ; DATA XREF: sub_829FA+22Ew ; sub_829FA+24Er ... word_FFFFABB8: ds.b 2 ; DATA XREF: sub_829FA+234w ; sub_829FA:loc_82C44r ... word_FFFFABBA: ds.b 2 ; DATA XREF: sub_829FA+268r ; sub_829FA+33Ew ... word_FFFFABBC: ds.b 2 ; DATA XREF: sub_829FA+240w ; sub_829FA+264r ... word_FFFFABBE: ds.b 2 ; DATA XREF: sub_829FA+25Er ; sub_829FA:loc_82CCEw ... word_FFFFABC0: ds.b 2 ; DATA XREF: sub_829FA+23Aw ; sub_829FA+25Ar ... byte_FFFFABC2: ds.b 1 ; DATA XREF: sub_829FA:loc_82B1Er ; sub_829FA+208w ... byte_FFFFABC3: ds.b 1 ; DATA XREF: sub_829FA:loc_82B16w ; sub_829FA:loc_82BF6w ... byte_FFFFABC4: ds.b 1 ; DATA XREF: sub_829FA+CCr ; sub_829FA+DAw byte_FFFFABC5: ds.b 1 ; DATA XREF: sub_829FA+D6w byte_FFFFABC6: ds.b 1 ; DATA XREF: sub_829FA:loc_82E42w ; sub_829FA+67Aw ... byte_FFFFABC7: ds.b 1 ; DATA XREF: sub_829FA+6ACw ; sub_829FA+6CCw ... byte_FFFFABC8: ds.b 1 ; DATA XREF: sub_829FA+744w ; sub_829FA:loc_83144w ... byte_FFFFABC9: ds.b 1 ; DATA XREF: sub_829FA+68Cw ; OS4:0008319Ew byte_FFFFABCA: ds.b 1 ; DATA XREF: sub_829FA+682r ; sub_829FA+690w ... byte_FFFFABCB: ds.b 1 ; DATA XREF: sub_829FA+694r ; sub_829FA+69Ew ... byte_FFFFABCC: ds.b 1 ; DATA XREF: sub_82954+Cr ; sub_82954+26w ... byte_FFFFABCD: ds.b 1 ; DATA XREF: sub_829FA+224r ; sub_829FA+244w ... byte_FFFFABCE: ds.b 1 ; DATA XREF: sub_829FA+30w ; sub_829FA:loc_82A40w ... byte_FFFFABCF: ds.b 1 ; DATA XREF: sub_829FA+2Ar ; sub_829FA:loc_82A30r ... byte_FFFFABD0: ds.b 1 ; DATA XREF: sub_829FA:loc_82D76w ; sub_829FA+3B2w ... byte_FFFFABD1: ds.b 1 ; DATA XREF: sub_829FA+382w ; sub_829FA:loc_82D94w ... byte_FFFFABD2: ds.b 1 ; DATA XREF: sub_829FA:loc_82DF4r ; sub_829FA+408w ... byte_FFFFABD3: ds.b 1 ; DATA XREF: sub_829FA+404w ; sub_829FA:loc_82E12w ... word_FFFFABD4: ds.b 2 ; DATA XREF: sub_829FA+3DEr ; sub_829FA+614r ... byte_FFFFABD6: ds.b 1 ; DATA XREF: sub_3284E+9Ar ; OS3:0007D680w ... byte_FFFFABD7: ds.b 1 ; DATA XREF: sub_3284E:loc_328ACr ; OS3:0007D688w ... word_FFFFABD8: ds.b 2 ; DATA XREF: sub_24716:loc_260B8r ; OS3:0007D6C0w ... byte_FFFFABDA: ds.b 1 ; DATA XREF: sub_20B50+28r ; sub_20B50:loc_20BACr ... byte_FFFFABDB: ds.b 1 ; DATA XREF: sub_32738+4r ; sub_3284E:loc_328E2r ... byte_FFFFABDC: ds.b 1 ; DATA XREF: sub_3284E+14r ; sub_35A7A+92r ... byte_FFFFABDD: ds.b 1 ; DATA XREF: sub_45F3A:loc_47728r ; sub_45F3A+181Er ... byte_FFFFABDE: ds.b 1 ; DATA XREF: sub_45F3A+BDAr ; sub_45F3A+BFEr ... byte_FFFFABDF: ds.b 1 ; DATA XREF: OS3:0007D6E4w ; sub_7DB64+90r ... byte_FFFFABE0: ds.b 1 ; DATA XREF: OS3:0007D6EEw ; sub_7DB64:loc_7DC4Er ... ds.b 1 word_FFFFABE2: ds.b 2 ; DATA XREF: sub_7DB64+106w ; sub_7DB64:loc_7DC70r byte_FFFFABE4: ds.b 1 ; DATA XREF: OS3:loc_7D67Aw ; OS3:0007D6E8w ... byte_FFFFABE5: ds.b 1 ; DATA XREF: OS3:0007D6E0w ; OS3:loc_7D714w ... word_FFFFABE6: ds.b 2 ; DATA XREF: sub_7DCEE+6Ew ; sub_7DCEE:loc_7DD62r byte_FFFFABE8: ds.b 1 ; DATA XREF: OS3:0007D6D0w ; sub_7DB64+2Er ... ds.b 1 word_FFFFABEA: ds.b 2 ; DATA XREF: sub_7DB64+56w ; sub_7DB64+62r byte_FFFFABEC: ds.b 1 ; DATA XREF: OS3:0007D6DCw ; OS3:0007D718w ... ds.b 1 word_FFFFABEE: ds.b 2 ; DATA XREF: OS3:loc_7D69Aw ; OS3:0007D766r ... byte_FFFFABF0: ds.b 1 ; DATA XREF: OS3:0007D6ACw ; OS3:0007D700w ... byte_FFFFABF1: ds.b 1 ; DATA XREF: OS3:0007D690w ; OS3:0007D6A2w ... word_FFFFABF2: ds.b 2 ; DATA XREF: OS3:0007D6B4w ; OS3:0007D708w ... byte_FFFFABF4: ds.b 1 ; DATA XREF: sub_7D7AA+AAw ; sub_7D7AA+D0r ... byte_FFFFABF5: ds.b 1 ; DATA XREF: sub_7D7AA+CAw ; sub_7D7AA+D6r word_FFFFABF6: ds.b 2 ; DATA XREF: sub_7D8E0+A2w ; sub_7D8E0+AEw ... word_FFFFABF8: ds.b 2 ; DATA XREF: sub_7D8E0:loc_7DACAw ; sub_7D8E0+1FEr ... word_FFFFABFA: ds.b 2 ; DATA XREF: sub_7D8E0:loc_7D9E2w ; sub_7D8E0:loc_7DA18r ... word_FFFFABFC: ds.b 2 ; DATA XREF: sub_7D8E0+1F2w ; sub_7D8E0:loc_7DAF8w ... byte_FFFFABFE: ds.b 1 ; DATA XREF: sub_7D8E0+152w ; sub_7D8E0+162w ... byte_FFFFABFF: ds.b 1 ; DATA XREF: sub_7D8E0+110r ; sub_7D8E0+172w ... byte_FFFFAC00: ds.b 1 ; DATA XREF: OS3:0007D6B0w ; OS3:0007D704w ... byte_FFFFAC01: ds.b 1 ; DATA XREF: sub_7D8E0+180w ; sub_7D8E0+264w word_FFFFAC02: ds.b 2 ; DATA XREF: sub_5A6A0+35Aw ; sub_5A6A0+372r ... word_FFFFAC04: ds.b 2 ; DATA XREF: sub_5A582+D8r ; sub_5A582:loc_5A666w ... byte_FFFFAC06: ds.b 1 ; DATA XREF: sub_4B054:loc_4B092r ; sub_5A336+36w ... byte_FFFFAC07: ds.b 1 ; DATA XREF: sub_5A6A0+3Ew ; sub_5A6A0+4Aw ... byte_FFFFAC08: ds.b 1 ; DATA XREF: sub_5A336:loc_5A3C4r ; sub_5B542+148w ... ds.b 1 byte_FFFFAC0A: ds.b 1 ; DATA XREF: sub_5A6A0+18Ew ; sub_5A6A0+19Ew ... byte_FFFFAC0B: ds.b 1 ; DATA XREF: sub_5A582+48r ; sub_5A582+C0r ... word_FFFFAC0C: ds.b 2 ; DATA XREF: sub_5A336+3Cw ; sub_5A336+64w ... word_FFFFAC0E: ds.b 2 ; DATA XREF: sub_5A336+5Cr ; sub_5A336:loc_5A3AAw ... word_FFFFAC10: ds.b 2 ; DATA XREF: sub_5A336:loc_5A420w ; sub_5A336+17Ew ... byte_FFFFAC12: ds.b 1 ; DATA XREF: sub_5A582+1Ew ; sub_5A582:loc_5A5ACw ... ds.b 1 dword_FFFFAC14: ds.b 4 ; DATA XREF: sub_5AB84:loc_5ADC6r ; sub_5AB84+306w ... word_FFFFAC18: ds.b 2 ; DATA XREF: sub_5AB84:loc_5ADECw ; sub_5AB84+2A0w ... word_FFFFAC1A: ds.b 2 ; DATA XREF: sub_5AB84+27Ew ; sub_5AB84:loc_5AE62w ... byte_FFFFAC1C: ds.b 1 ; DATA XREF: sub_5AB84+3F4r ; sub_5AB84:loc_5AF84w ... ds.b 1 word_FFFFAC1E: ds.b 2 ; DATA XREF: sub_5AB84+258r ; sub_5AB84+26Cw ... word_FFFFAC20: ds.b 2 ; DATA XREF: sub_5AB84+282w ; sub_5AB84:loc_5AE78w ... word_FFFFAC22: ds.b 2 ; DATA XREF: sub_5AB84:loc_5AF98w ; sub_5AB84+420r ... word_FFFFAC24: ds.b 2 ; DATA XREF: sub_5AB84+248r ; sub_5AB84:loc_5AE12r ... byte_FFFFAC26: ds.b 1 ; DATA XREF: sub_5AB84+3A0r ; sub_5AB84+3A6w ... byte_FFFFAC27: ds.b 1 ; DATA XREF: sub_5AB84+270w ; sub_5AB84+286w ... byte_FFFFAC28: ds.b 1 ; DATA XREF: sub_5B062+4Aw ; sub_5B062:loc_5B0C8w ... ds.b 1 word_FFFFAC2A: ds.b 2 ; DATA XREF: sub_5B062+A4r ; sub_5B062:loc_5B120w ... word_FFFFAC2C: ds.b 2 ; DATA XREF: sub_5AB84+19Ew ; sub_5AB84+1B2r ... word_FFFFAC2E: ds.b 2 ; DATA XREF: sub_7C358+3Ar ; sub_7C358+98w word_FFFFAC30: ds.b 2 ; DATA XREF: sub_7C358+22r ; sub_7C358:loc_7C3EAw word_FFFFAC32: ds.b 2 ; DATA XREF: OS1:0003AC8Er ; sub_60880+E4r ... word_FFFFAC34: ds.b 2 ; DATA XREF: sub_616D8+4r ; sub_7C3FE+40w ... word_FFFFAC36: ds.b 2 ; DATA XREF: DoLoopA+3B0r ; sub_60880:loc_609F0r ... word_FFFFAC38: ds.b 2 ; DATA XREF: sub_32A0C+40r ; sub_32A0C:loc_32C02r ... word_FFFFAC3A: ds.b 2 ; DATA XREF: OS2:GetPid_132Br ; sub_7C358+1Aw ... word_FFFFAC3C: ds.b 2 ; DATA XREF: OS2:GetPid_132Cr ; sub_7C358+14w ... word_FFFFAC3E: ds.b 2 ; DATA XREF: sub_60880+1C2r ; sub_7C358+4Cw word_FFFFAC40: ds.b 2 ; DATA XREF: sub_60880+20Cr ; sub_7C358+34w ... byte_FFFFAC42: ds.b 1 ; DATA XREF: OS1:0003AC74r ; sub_60880+38r ... byte_FFFFAC43: ds.b 1 ; DATA XREF: OS1:0003AC6Cr ; sub_60880+32r ... byte_FFFFAC44: ds.b 1 ; DATA XREF: sub_7C482+Aw ; sub_7C482+68w ... byte_FFFFAC45: ds.b 1 ; DATA XREF: DoLoopA:loc_29B00r ; sub_7C482+Ew ... byte_FFFFAC46: ds.b 1 ; DATA XREF: sub_60BE2+Er ; sub_7C59E+68w ... byte_FFFFAC47: ds.b 1 ; DATA XREF: DoLoopA+22r ; DoLoopA:loc_29AB2w ... byte_FFFFAC48: ds.b 1 ; DATA XREF: DoLoopA+1C4r ; sub_7C59E+122w ... byte_FFFFAC49: ds.b 1 ; DATA XREF: OS2:loc_44EE6r ; sub_616D8+8r ... byte_FFFFAC4A: ds.b 1 ; DATA XREF: sub_7C482:loc_7C4BCr ; sub_7C482:loc_7C4C8w ... ds.b 1 word_FFFFAC4C: ds.b 2 ; DATA XREF: sub_7C2F0+30r ; sub_7C2F0+5Ew byte_FFFFAC4E: ds.b 1 ; DATA XREF: sub_7C2F0+42r ; sub_7C2F0+4Ew ... ds.b 1 word_FFFFAC50: ds.b 2 ; DATA XREF: sub_7C2F0+Cr ; sub_7C2F0:loc_7C346w byte_FFFFAC52: ds.b 1 ; DATA XREF: sub_7C4FC+16r ; sub_7C4FC:loc_7C51Er ... ds.b 1 word_FFFFAC54: ds.b 2 ; DATA XREF: sub_7C4FC:loc_7C55Er ; sub_7C59E+DAw ... byte_FFFFAC56: ds.b 1 ; DATA XREF: sub_7C482+60w ; sub_7C4FC+Ar byte_FFFFAC57: ds.b 1 ; DATA XREF: sub_7C59E+96w ; sub_7C59E+9Er ... byte_FFFFAC58: ds.b 1 ; DATA XREF: OS2:00044AA8r ; sub_4F5D0+D4w ... byte_FFFFAC59: ds.b 1 ; DATA XREF: OS2:00044A80r ; sub_4F5D0+DAw ... byte_FFFFAC5A: ds.b 1 ; DATA XREF: sub_4F5D0+14Aw ; sub_86CBE:loc_86CD6r byte_FFFFAC5B: ds.b 1 ; DATA XREF: OS2:loc_44A2Cr ; sub_4F5D0:loc_4F6BAw ... byte_FFFFAC5C: ds.b 1 ; DATA XREF: OS2:loc_44A1Cr ; sub_4CD5E:loc_4CDC6r ... byte_FFFFAC5D: ds.b 1 ; DATA XREF: sub_4F5D0+F6w ; sub_55796+4r byte_FFFFAC5E: ds.b 1 ; DATA XREF: sub_4BD8C+Cr ; sub_4BD8C+4DEr ... byte_FFFFAC5F: ds.b 1 ; DATA XREF: sub_4CD5E+24Er ; sub_4F5D0+102w byte_FFFFAC60: ds.b 1 ; DATA XREF: OS2:loc_44A90r ; sub_4F5D0+108w ... byte_FFFFAC61: ds.b 1 ; DATA XREF: sub_4F5D0+126w ; sub_59626:loc_596B4r byte_FFFFAC62: ds.b 1 ; DATA XREF: OS2:loc_44AB8r ; sub_4F5D0+12Cw ... byte_FFFFAC63: ds.b 1 ; DATA XREF: sub_4F5D0+132w ; sub_59626:loc_59660r byte_FFFFAC64: ds.b 1 ; DATA XREF: OS2:GetPid_1927r ; sub_4F5D0+138w ... byte_FFFFAC65: ds.b 1 ; DATA XREF: sub_4F5D0+13Ew ; sub_59626:loc_59680r byte_FFFFAC66: ds.b 1 ; DATA XREF: sub_4F5D0+144w ; sub_59626+6r byte_FFFFAC67: ds.b 1 ; DATA XREF: sub_4F5D0+10Ew sub_5B246r byte_FFFFAC68: ds.b 1 ; DATA XREF: sub_4F5D0+114w ; sub_5B246+28r byte_FFFFAC69: ds.b 1 ; DATA XREF: OS2:loc_44A0Cr ; sub_4F5D0+11Aw ... byte_FFFFAC6A: ds.b 1 ; DATA XREF: sub_4F5D0+44w ; sub_4F5D0+120w ... byte_FFFFAC6B: ds.b 1 ; DATA XREF: sub_4F5D0+48w ; sub_4F726+F8w ... byte_FFFFAC6C: ds.b 1 ; DATA XREF: sub_4B866:loc_4B8B8r ; sub_4F5D0+E4w byte_FFFFAC6D: ds.b 1 ; DATA XREF: sub_4F5D0+Cw ; sub_4F5D0+D4r ... byte_FFFFAC6E: ds.b 1 ; DATA XREF: sub_4F5D0+10w ; sub_4F5D0+DAr ... byte_FFFFAC6F: ds.b 1 ; DATA XREF: sub_4F5D0+64w ; sub_4F5D0+14Ar ... byte_FFFFAC70: ds.b 1 ; DATA XREF: sub_4F5D0:loc_4F5F0w ; sub_4F5D0:loc_4F6BAr ... byte_FFFFAC71: ds.b 1 ; DATA XREF: sub_4F5D0+24w ; sub_4F5D0+F0r ... byte_FFFFAC72: ds.b 1 ; DATA XREF: sub_4F5D0+28w ; sub_4F5D0+F6r ... byte_FFFFAC73: ds.b 1 ; DATA XREF: sub_4F5D0+2Cw ; sub_4F5D0+FCr ... byte_FFFFAC74: ds.b 1 ; DATA XREF: sub_4F5D0+30w ; sub_4F5D0+102r ... byte_FFFFAC75: ds.b 1 ; DATA XREF: sub_4F5D0+34w ; sub_4F5D0+108r ... byte_FFFFAC76: ds.b 1 ; DATA XREF: sub_4F5D0+4Cw ; sub_4F5D0+126r ... byte_FFFFAC77: ds.b 1 ; DATA XREF: sub_4F5D0+50w ; sub_4F5D0+12Cr ... byte_FFFFAC78: ds.b 1 ; DATA XREF: sub_4F5D0+54w ; sub_4F5D0+132r ... byte_FFFFAC79: ds.b 1 ; DATA XREF: sub_4F5D0+58w ; sub_4F5D0+138r ... byte_FFFFAC7A: ds.b 1 ; DATA XREF: sub_4F5D0+5Cw ; sub_4F5D0+13Er ... byte_FFFFAC7B: ds.b 1 ; DATA XREF: sub_4F5D0+60w ; sub_4F5D0+144r ... byte_FFFFAC7C: ds.b 1 ; DATA XREF: sub_4F5D0+38w ; sub_4F5D0+10Er ... byte_FFFFAC7D: ds.b 1 ; DATA XREF: sub_4F5D0+3Cw ; sub_4F5D0+114r ... byte_FFFFAC7E: ds.b 1 ; DATA XREF: sub_4F5D0+40w ; sub_4F5D0+11Ar ... byte_FFFFAC7F: ds.b 1 ; DATA XREF: sub_4F5D0+120r ; sub_4F726+E8w byte_FFFFAC80: ds.b 1 ; DATA XREF: sub_4F5D0+1Cw ; sub_4F5D0+E4r ... ds.b 1 word_FFFFAC82: ds.b 2 ; DATA XREF: OS1:00028906w ; OS2:GetPid_0010_MassAirFlowr ... word_FFFFAC84: ds.b 2 ; DATA XREF: OS1:0002890Aw ; OS2:GetPid_1250_MAFFrequencyHzr ... word_FFFFAC86: ds.b 2 ; DATA XREF: OS1:00028902w ; sub_35D1C+FEr ... word_FFFFAC88: ds.b 2 ; DATA XREF: sub_616D8+26r ; sub_6183E+68r ... unk_FFFFAC8A: ds.b 1 ; DATA XREF: sub_80A78+8o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFFAC9A: ds.b 1 ; DATA XREF: sub_80B1C:loc_80B34o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFACAA: ds.b 1 ; DATA XREF: sub_2C4F4:loc_2C536r ; sub_2CC22+14Er ... ds.b 1 word_FFFFACAC: ds.b 2 ; DATA XREF: sub_31AE2+1C0r ; sub_31AE2:loc_31D0Ar ... word_FFFFACAE: ds.b 2 ; DATA XREF: sub_7BC70:loc_7BEB4w ; sub_7BC70+2E8r ... word_FFFFACB0: ds.b 2 ; DATA XREF: sub_7BC70+DAw ; sub_7BC70+E0r word_FFFFACB2: ds.b 2 ; DATA XREF: sub_7BC70+1Ew ; sub_7BC70+68r ... word_FFFFACB4: ds.b 2 ; DATA XREF: sub_7BC70+3Cr ; sub_7BC70+68w word_FFFFACB6: ds.b 2 ; DATA XREF: sub_7BC70+138w ; sub_7BC70+17Ar word_FFFFACB8: ds.b 2 ; DATA XREF: sub_7BC70+16w ; sub_7BC70+5A6r word_FFFFACBA: ds.b 2 ; DATA XREF: sub_7BC70:loc_7BE18w ; sub_7BC70+232r ... word_FFFFACBC: ds.b 2 ; DATA XREF: sub_7BC70+176w ; sub_7BC70+18Ar ... word_FFFFACBE: ds.b 2 ; DATA XREF: sub_7BC70+26w ; sub_7BC70+5B2r ... byte_FFFFACC0: ds.b 1 ; DATA XREF: sub_7BC70+43Ar ; sub_7BC70+446w ... ds.b 1 word_FFFFACC2: ds.b 2 ; DATA XREF: sub_7BC70:loc_7BF54w ; sub_7BC70:loc_7BF6Er word_FFFFACC4: ds.b 2 ; DATA XREF: sub_7BC70+4Ew ; sub_7BC70+84w word_FFFFACC6: ds.b 2 ; DATA XREF: sub_7BC70+36Ew ; sub_7BC70+382r ... word_FFFFACC8: ds.b 2 ; DATA XREF: sub_7BC70+348r ; sub_7BC70+34Er ... dword_FFFFACCA: ds.b 4 ; DATA XREF: sub_7BC70+3EAr ; sub_7BC70:loc_7C072w ... byte_FFFFACCE: ds.b 1 ; DATA XREF: sub_7BC70+33Ew ; sub_7BC70:loc_7C054r ... byte_FFFFACCF: ds.b 1 ; DATA XREF: sub_7BC70:loc_7BFE6w ; sub_7BC70+3D8w ... byte_FFFFACD0: ds.b 1 ; DATA XREF: sub_7BC70+55Aw ; sub_7BC70+56Aw ... ds.b 1 word_FFFFACD2: ds.b 2 ; DATA XREF: sub_63056+ACw ; OS3:00063C3Ew ... word_FFFFACD4: ds.b 2 ; DATA XREF: sub_2F512:loc_2F59Ar ; sub_63056+F8w ... byte_FFFFACD6: ds.b 1 ; DATA XREF: sub_282C4+3A8r ; sub_63056+DCw ... byte_FFFFACD7: ds.b 1 ; DATA XREF: sub_63056+E8w ; sub_63172+76w ... word_FFFFACD8: ds.b 2 ; DATA XREF: sub_63172+16w ; sub_63172:loc_63234r ... word_FFFFACDA: ds.b 2 ; DATA XREF: sub_63056+B4w ; OS3:0006356Er ... word_FFFFACDC: ds.b 2 ; DATA XREF: sub_63056+B8w ; OS3:000633D0r ... word_FFFFACDE: ds.b 2 ; DATA XREF: sub_63056+BCw ; OS3:000635CEr ... word_FFFFACE0: ds.b 2 ; DATA XREF: sub_63056+C0w ; OS3:00063982r ... word_FFFFACE2: ds.b 2 ; DATA XREF: sub_63056+C4w ; OS3:0006382Er ... dword_FFFFACE4: ds.b 4 ; DATA XREF: sub_63056+E4w ; OS3:0006330Cr ... word_FFFFACE8: ds.b 2 ; DATA XREF: sub_63046+6w ; OS3:00063B74r ... word_FFFFACEA: ds.b 2 ; DATA XREF: sub_63046+Aw ; OS3:loc_63AF4r ... word_FFFFACEC: ds.b 2 ; DATA XREF: sub_63172+12w ; OS3:000633A0r ... word_FFFFACEE: ds.b 2 ; DATA XREF: sub_63056+C8w ; OS3:0006377Er ... word_FFFFACF0: ds.b 2 ; DATA XREF: sub_63056+CCw ; OS3:loc_638A4w ... word_FFFFACF2: ds.b 2 ; DATA XREF: sub_63056+D0w ; OS3:000632EAr ... byte_FFFFACF4: ds.b 1 ; DATA XREF: sub_63056+D4w ; OS3:000636C4w ... byte_FFFFACF5: ds.b 1 ; DATA XREF: sub_63056+E0w ; OS3:loc_633F6r ... word_FFFFACF6: ds.b 2 ; DATA XREF: sub_63056+D8w ; OS3:00063A3Er ... word_FFFFACF8: ds.b 2 ; DATA XREF: sub_4CD5E:loc_4CE8Er ; sub_4CD5E+14Er ... byte_FFFFACFA: ds.b 1 ; DATA XREF: sub_4CD5E:loc_4CE76r ; sub_56EDC+4r ... ds.b 1 word_FFFFACFC: ds.b 2 ; DATA XREF: sub_56AE4+3Er ; sub_56AE4+60r ... byte_FFFFACFE: ds.b 1 ; DATA XREF: OS2:GetPid_199C_CurrentTAPTransmissionAdaptivePressureCellr ; sub_56D72+8Er ... ds.b 1 word_FFFFAD00: ds.b 2 ; DATA XREF: sub_56EDC:loc_570BAw ; sub_56EDC:loc_570C8w ... word_FFFFAD02: ds.b 2 ; DATA XREF: sub_56EDC+218w ; sub_56EDC+254w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFAD0A: ds.b 2 ; DATA XREF: sub_571CE+210w ; sub_571CE:loc_573E4w ... byte_FFFFAD0C: ds.b 1 ; DATA XREF: sub_56EDC:loc_56F3Cw ; sub_56EDC:loc_56F84w byte_FFFFAD0D: ds.b 1 ; DATA XREF: sub_56EDC:loc_56F40w ; sub_56EDC+70w ... word_FFFFAD0E: ds.b 2 ; DATA XREF: sub_56EDC+BEw ; sub_56EDC+DEw ... word_FFFFAD10: ds.b 2 ; DATA XREF: sub_56EDC+14Ew ; sub_56EDC+17Cw ... word_FFFFAD12: ds.b 2 ; DATA XREF: sub_571CE+68w ; sub_571CE:loc_5723Cw ... byte_FFFFAD14: ds.b 1 ; DATA XREF: sub_56EDC+Cr ; sub_571CE+10w ... ds.b 1 word_FFFFAD16: ds.b 2 ; DATA XREF: sub_571CE+15Cw ; sub_571CE:loc_57330w ... word_FFFFAD18: ds.b 2 ; DATA XREF: sub_571CE+25Aw ; sub_571CE+272r word_FFFFAD1A: ds.b 2 ; DATA XREF: sub_571CE+168w ; sub_571CE+276w byte_FFFFAD1C: ds.b 1 ; DATA XREF: sub_571CE+192w ; sub_571CE+1AAw ... ds.b 1 EngineRunTime: ds.b 4 ; DATA XREF: sub_24716+9FEr ; sub_24716+A5Er ... byte_FFFFAD22: ds.b 1 ; DATA XREF: sub_282C4+E8w ; sub_282C4+100w ... ThrottleControlMode2?:ds.b 1 ; DATA XREF: sub_200DE:loc_2012Ar ; sub_200DE:loc_202CEr ... dword_FFFFAD24: ds.b 4 ; DATA XREF: sub_292CE+18r ; sub_292CE:loc_292F8w ... dword_FFFFAD28: ds.b 4 ; DATA XREF: sub_292CE+38r ; sub_292CE:loc_29318w ... dword_FFFFAD2C: ds.b 4 ; DATA XREF: sub_282C4+52w ; sub_282C4+A2r ... dword_FFFFAD30: ds.b 4 ; DATA XREF: sub_282C4+A8w ; sub_282C4+DAw ... dword_FFFFAD34: ds.b 4 ; DATA XREF: sub_282C4+386w ; sub_63E94:loc_64028r word_FFFFAD38: ds.b 2 ; DATA XREF: sub_282C4+12w ; sub_282C4+234r ... word_FFFFAD3A: ds.b 2 ; DATA XREF: sub_282C4+28w ; sub_282C4+338r dword_FFFFAD3C: ds.b 4 ; DATA XREF: sub_282C4+378r ; sub_282C4+392r ... word_FFFFAD40: ds.b 2 ; DATA XREF: sub_282C4+94w ; sub_282C4+C6w ... word_FFFFAD42: ds.b 2 ; DATA XREF: sub_4CFF8+B0w ; sub_4CFF8:loc_4D0D4w ... word_FFFFAD44: ds.b 2 ; DATA XREF: OS2:GetPid_1A88r ; sub_4CFF8+BEr ... byte_FFFFAD46: ds.b 1 ; DATA XREF: OS2:GetPid_1976r ; sub_4D13A+5F6w ... byte_FFFFAD47: ds.b 1 ; DATA XREF: sub_4CFF8:loc_4D014w ; sub_4CFF8:loc_4D026w ... word_FFFFAD48: ds.b 2 ; DATA XREF: sub_4D13A+44r ; sub_4D13A+52w ... word_FFFFAD4A: ds.b 2 ; DATA XREF: sub_4D13A+5Ar ; sub_4D13A+DAw word_FFFFAD4C: ds.b 2 ; DATA XREF: sub_4D13A+126w ; sub_4D13A:loc_4D270r ... word_FFFFAD4E: ds.b 2 ; DATA XREF: sub_4D13A+FEr ; sub_4D13A+108w word_FFFFAD50: ds.b 2 ; DATA XREF: sub_4D13A:loc_4D278w ; sub_4D13A+574r word_FFFFAD52: ds.b 2 ; DATA XREF: sub_4D13A:loc_4D430w ; sub_4D13A+302w ... byte_FFFFAD54: ds.b 1 ; DATA XREF: sub_4D13A+36Cw ; sub_4D13A:loc_4D4C4w ... ds.b 1 word_FFFFAD56: ds.b 2 ; DATA XREF: sub_4D13A+462r ; sub_4D13A:loc_4D5B8w ... word_FFFFAD58: ds.b 2 ; DATA XREF: sub_4D13A:loc_4D4F6r ; sub_4D13A+568w ... word_FFFFAD5A: ds.b 2 ; DATA XREF: sub_4D13A+3C0r ; sub_4D13A+560w ... word_FFFFAD5C: ds.b 2 ; DATA XREF: sub_4D13A+5B8r ; sub_4D13A+5C2w ... byte_FFFFAD5E: ds.b 1 ; DATA XREF: sub_4D13A:loc_4D536r ; sub_4D13A+538w ... ds.b 1 word_FFFFAD60: ds.b 2 ; DATA XREF: sub_4D13A:loc_4D76Aw word_FFFFAD62: ds.b 2 ; DATA XREF: sub_4CFF8+C2r ; sub_4CFF8+FCr ... word_FFFFAD64: ds.b 2 ; DATA XREF: sub_4D13A:loc_4D210w ; sub_4D13A+12Er word_FFFFAD66: ds.b 2 ; DATA XREF: sub_5B542:loc_5B668w ; sub_5B542+12Er ... word_FFFFAD68: ds.b 2 ; DATA XREF: sub_5B874+A2w ; sub_5B874+B6r ... word_FFFFAD6A: ds.b 2 ; DATA XREF: sub_5B874+A6w ; sub_5B874+B2w ... word_FFFFAD6C: ds.b 2 ; DATA XREF: sub_5BA2E+17Ew ; sub_5BA2E+32Er ... word_FFFFAD6E: ds.b 2 ; DATA XREF: sub_5C340:loc_5C42Aw ; sub_5C340+136r ... word_FFFFAD70: ds.b 2 ; DATA XREF: sub_5B744:loc_5B856w word_FFFFAD72: ds.b 2 ; DATA XREF: sub_5B874+172r ; sub_5B874+182w ... word_FFFFAD74: ds.b 2 ; DATA XREF: sub_5C340+C4w ; sub_5C340+E4w ... word_FFFFAD76: ds.b 2 ; DATA XREF: sub_5BA2E+50w ; sub_5BA2E+AEr ... word_FFFFAD78: ds.b 2 ; DATA XREF: sub_5B542:loc_5B56Cw ; sub_5BA2E:loc_5BD9Cr ... word_FFFFAD7A: ds.b 2 ; DATA XREF: sub_575C6+1D6r ; sub_575C6+1EEr ... word_FFFFAD7C: ds.b 2 ; DATA XREF: sub_5B3B2r sub_5B3B2+22w ... byte_FFFFAD7E: ds.b 1 ; DATA XREF: sub_5B3B2+18w ; sub_5B3B2+32r byte_FFFFAD7F: ds.b 1 ; DATA XREF: sub_5B874+9Cw ; sub_5B874+C2w ... byte_FFFFAD80: ds.b 1 ; DATA XREF: sub_5B2CA+10w ; sub_5B2CA:loc_5B2FAw ... ds.b 1 word_FFFFAD82: ds.b 2 ; DATA XREF: sub_5A336+1C2r ; sub_5A6A0:loc_5A81Cw ... dword_FFFFAD84: ds.b 4 ; DATA XREF: OS2:GetPid_1929r ; OS2:loc_44B56r ... byte_FFFFAD88: ds.b 1 ; DATA XREF: sub_5AB84:loc_5AC60w ; sub_5AB84:loc_5AC68w ... byte_FFFFAD89: ds.b 1 ; DATA XREF: sub_5B246:loc_5B25Cw ; sub_5B246:loc_5B284w ... byte_FFFFAD8A: ds.b 1 ; DATA XREF: sub_2BA40+62r ; sub_2BA40+6Ar ... byte_FFFFAD8B: ds.b 1 ; DATA XREF: sub_2BA40+1Cw ; sub_2BA40+22r ... byte_FFFFAD8C: ds.b 1 ; DATA XREF: sub_2BA40+1F6w ; sub_2BA40:loc_2BC3Ew ... byte_FFFFAD8D: ds.b 1 ; DATA XREF: sub_2BA40+512r ; sub_2BA40+530w ... word_FFFFAD8E: ds.b 2 ; DATA XREF: sub_2BA40+264w ; sub_2BA40+4D6r ... word_FFFFAD90: ds.b 2 ; DATA XREF: sub_2BA40+28Ew ; sub_2BA40+2A2r byte_FFFFAD92: ds.b 1 ; DATA XREF: sub_2BA40:loc_2BB92r ; sub_2BA40+172w ds.b 1 word_FFFFAD94: ds.b 2 ; DATA XREF: sub_2BA40+41Aw ; sub_2BA40+434r ... word_FFFFAD96: ds.b 2 ; DATA XREF: sub_2BA40+404r ; sub_2BA40:loc_2BE5Ew ... word_FFFFAD98: ds.b 2 ; DATA XREF: sub_2BA40+294w ; sub_2BA40+2CEr ... word_FFFFAD9A: ds.b 2 ; DATA XREF: sub_2BA40+316r ; sub_2BA40+328r ... word_FFFFAD9C: ds.b 2 ; DATA XREF: sub_2C35A+38r ; sub_2C35A:loc_2C3B6w word_FFFFAD9E: ds.b 2 ; DATA XREF: sub_2BA40+392r ; sub_2BA40:loc_2BDE0w ... word_FFFFADA0: ds.b 2 ; DATA XREF: sub_2BA40+D2w ; sub_2BA40+DAr ... word_FFFFADA2: ds.b 2 ; DATA XREF: sub_2BA40+76r ; sub_2BA40:loc_2BAC2w ... word_FFFFADA4: ds.b 2 ; DATA XREF: sub_2BA40+80Ar ; sub_2BA40:loc_2C256w ... word_FFFFADA6: ds.b 2 ; DATA XREF: sub_2BA40+828r ; sub_2BA40:loc_2C274w ... word_FFFFADA8: ds.b 2 ; DATA XREF: sub_2BA40+5FEr ; sub_2BA40:loc_2C04Aw ... word_FFFFADAA: ds.b 2 ; DATA XREF: sub_2BA40+51Cr ; sub_2BA40:loc_2BF68w ... byte_FFFFADAC: ds.b 1 ; DATA XREF: sub_2BA40+A6r ; sub_2BA40+ACw ... ds.b 1 word_FFFFADAE: ds.b 2 ; DATA XREF: sub_5EFCC+3Ar ; sub_621D6:loc_621EAr ... CoolantTemperatureOrDefault:ds.b 2 ; DATA XREF: sub_282C4+176r ; DoLoopA+CAr ... word_FFFFADB2: ds.b 2 ; DATA XREF: OS3:loc_7B8ECw word_FFFFADB4: ds.b 2 ; DATA XREF: sub_282C4+148r ; OS1:loc_2C768r ... word_FFFFADB6: ds.b 2 ; DATA XREF: sub_24716:loc_25158r ; sub_24716:loc_25B64r ... Pid_0005_CoolantTemperature:ds.b 2 ; DATA XREF: OS2:GetPid_0005_EngineCoolantTemperaturer ; OS3:0007B7FAw ... byte_FFFFADBA: ds.b 1 ; DATA XREF: sub_7AAA8+3Er ; OS3:loc_7B856w ... byte_FFFFADBB: ds.b 1 ; DATA XREF: OS3:loc_7B878w ; OS3:loc_7B896w ... byte_FFFFADBC: ds.b 1 ; DATA XREF: sub_45F3A:loc_4795Ar ; sub_45F3A+1A50r ... ds.b 1 word_FFFFADBE: ds.b 2 ; DATA XREF: OS3:loc_7B846w ; OS3:loc_7B850w ... byte_FFFFADC0: ds.b 1 ; DATA XREF: GetCoolantTemperature:loc_7B956r ; GetCoolantTemperature:loc_7BA1Ew ds.b 1 word_FFFFADC2: ds.b 2 ; DATA XREF: OS3:loc_7BA36w ; sub_7BA62:loc_7BAD4w ... word_FFFFADC4: ds.b 2 ; DATA XREF: OS3:0007BA3Cw ; sub_7BA62+6Aw ... word_FFFFADC6: ds.b 2 ; DATA XREF: OS3:0007BA42w ; sub_7BA62:loc_7BB74r ... word_FFFFADC8: ds.b 2 ; DATA XREF: OS3:0007BA46w ; sub_7BA62+118w ... byte_FFFFADCA: ds.b 1 ; DATA XREF: OS3:0007BA4Aw ; sub_7BA62:loc_7BAB8r ... ds.b 1 word_FFFFADCC: ds.b 2 ; DATA XREF: OS3:0007BA4Ew ; sub_7BA62+7Cr ... byte_FFFFADCE: ds.b 1 ; DATA XREF: sub_7BA62:loc_7BA94w ; sub_7BA62+64r byte_FFFFADCF: ds.b 1 ; DATA XREF: OS3:0007BA58w ; sub_7BA62+1C2r ... byte_FFFFADD0: ds.b 1 ; DATA XREF: OS2:GetPid_1928r ; sub_4BD8C+14r ... byte_FFFFADD1: ds.b 1 ; DATA XREF: OS2:00044DF4r ; sub_4BC94:loc_4BCB8r ... byte_FFFFADD2: ds.b 1 ; DATA XREF: sub_3E346+60r ; sub_4BD8C:loc_4BDA6w ... byte_FFFFADD3: ds.b 1 ; DATA XREF: sub_4AA18+20r ; sub_4BD8C:loc_4BE8Aw ... byte_FFFFADD4: ds.b 1 ; DATA XREF: sub_4BC94:loc_4BD6Cw ; sub_4BC94+ECw ... byte_FFFFADD5: ds.b 1 ; DATA XREF: sub_4AA18+4r ; sub_4AA18+188r ... word_FFFFADD6: ds.b 2 ; DATA XREF: sub_4AA18+54r ; sub_4BC2E+4Ew word_FFFFADD8: ds.b 2 ; DATA XREF: sub_4AA18:loc_4AA54r ; sub_4BC2E+58w byte_FFFFADDA: ds.b 1 ; DATA XREF: sub_4BD8C+1A8w ; sub_4BD8C:loc_4BF3Cw ... byte_FFFFADDB: ds.b 1 ; DATA XREF: sub_4BC2E+2r ; sub_4BC2E:loc_4BC62w ... byte_FFFFADDC: ds.b 1 ; DATA XREF: sub_4BD8C:loc_4BEFAw byte_FFFFADDD: ds.b 1 ; DATA XREF: sub_4BD8C:loc_4BF1Ew byte_FFFFADDE: ds.b 1 ; DATA XREF: sub_4BD8C:loc_4BFC0w byte_FFFFADDF: ds.b 1 ; DATA XREF: sub_4BD8C:loc_4C018w word_FFFFADE0: ds.b 2 ; DATA XREF: sub_4BD8C+2D2r ; sub_4BD8C:loc_4C08Ew ... byte_FFFFADE2: ds.b 1 ; DATA XREF: sub_4BD8C+34Cr ; sub_4BD8C+366r ... byte_FFFFADE3: ds.b 1 ; DATA XREF: sub_4BD8C+3F0w ; sub_4BD8C+41Ar ... word_FFFFADE4: ds.b 2 ; DATA XREF: sub_4BD8C+3E0r ; sub_4BD8C:loc_4C180w ... word_FFFFADE6: ds.b 2 ; DATA XREF: sub_4BD8C+398r ; sub_4BD8C+3AAw ... byte_FFFFADE8: ds.b 1 ; DATA XREF: sub_4BD8C:loc_4C1ECr ; sub_4BD8C+4DAw ds.b 1 word_FFFFADEA: ds.b 2 ; DATA XREF: sub_4BD8C+46Aw ; sub_4BD8C+4AAr ... word_FFFFADEC: ds.b 2 ; DATA XREF: sub_4BD8C+466w ; sub_4BD8C+476r ... word_FFFFADEE: ds.b 2 ; DATA XREF: sub_4BC94+9Ar ; sub_4BD8C+C2r ... word_FFFFADF0: ds.b 2 ; DATA XREF: sub_4BC94+16w ; sub_4BC94:loc_4BCB4w ... byte_FFFFADF2: ds.b 1 ; DATA XREF: sub_45F3A:loc_463D2r ; sub_45F3A+4C8r ... ds.b 1 word_FFFFADF4: ds.b 2 ; DATA XREF: sub_831BA+12Cr ; OS4:loc_834ECw word_FFFFADF6: ds.b 2 ; DATA XREF: sub_833EC+5Ar ; OS4:loc_83502w byte_FFFFADF8: ds.b 1 ; DATA XREF: sub_831BA+196w ; sub_831BA+1A8w ds.b 1 word_FFFFADFA: ds.b 2 ; DATA XREF: sub_8336E+16r ; sub_8336E:loc_833A0w ... word_FFFFADFC: ds.b 2 ; DATA XREF: sub_831BA+60r ; sub_831BA+98r ... word_FFFFADFE: ds.b 2 ; DATA XREF: sub_831BA+6Er ; sub_831BA+A6r ... word_FFFFAE00: ds.b 2 ; DATA XREF: sub_831BA+BAr ; OS4:loc_8354Cw word_FFFFAE02: ds.b 2 ; DATA XREF: sub_831BA:loc_83246w word_FFFFAE04: ds.b 2 ; DATA XREF: sub_833EC+18r ; sub_833EC:loc_83416w ... word_FFFFAE06: ds.b 2 ; DATA XREF: sub_833EC+1Cr ; sub_8347E+18w word_FFFFAE08: ds.b 2 ; DATA XREF: sub_833EC+12r ; sub_8345E+1Aw byte_FFFFAE0A: ds.b 1 ; DATA XREF: sub_831BA+4Cr ; sub_831BA:loc_832F2w ... byte_FFFFAE0B: ds.b 1 ; DATA XREF: sub_831BA:loc_832AAw ; sub_831BA+132r ... byte_FFFFAE0C: ds.b 1 ; DATA XREF: sub_831BA+DCr ; sub_831BA+144r ... byte_FFFFAE0D: ds.b 1 ; DATA XREF: sub_831BA+42w ; sub_831BA:loc_8324Cr ... byte_FFFFAE0E: ds.b 1 ; DATA XREF: sub_831BA+C0r ; sub_831BA+F8r ... byte_FFFFAE0F: ds.b 1 ; DATA XREF: sub_831BA+86w ; sub_831BA+C6r byte_FFFFAE10: ds.b 1 ; DATA XREF: sub_831BA+FEr ; sub_831BA+14Ar ... byte_FFFFAE11: ds.b 1 ; DATA XREF: sub_831BA:loc_832AEr ; sub_833EC:loc_8342Cw ... word_FFFFAE12: ds.b 2 ; DATA XREF: sub_833EC+4Cr ; sub_833EC:loc_83454w ... byte_FFFFAE14: ds.b 1 ; DATA XREF: sub_6080C+10r ; sub_616D8:loc_616F6r ... ds.b 1 word_FFFFAE16: ds.b 2 ; DATA XREF: sub_6163A:loc_61660w ; sub_6163A+3Ar word_FFFFAE18: ds.b 2 ; DATA XREF: sub_6163A+1Er ; sub_6163A:loc_61692w ... word_FFFFAE1A: ds.b 2 ; DATA XREF: sub_6163A+30w ; sub_6163A+42r word_FFFFAE1C: ds.b 2 ; DATA XREF: sub_6163A+2Cr ; sub_6163A+5Cw ... word_FFFFAE1E: ds.b 2 ; DATA XREF: sub_6163A:loc_61686w ; sub_6163A+72r byte_FFFFAE20: ds.b 1 ; DATA XREF: sub_616D8+58r ; sub_616D8:loc_6173Cw ... byte_FFFFAE21: ds.b 1 ; DATA XREF: sub_616D8+6Er ; sub_616D8:loc_61752w ... byte_FFFFAE22: ds.b 1 ; DATA XREF: sub_616D8:loc_61788r ; sub_616D8:loc_61794w ... byte_FFFFAE23: ds.b 1 ; DATA XREF: sub_616D8:loc_617AEr ; sub_616D8:loc_617BAw ... word_FFFFAE24: ds.b 2 ; DATA XREF: sub_616D8+C2r ; sub_616D8+E6w ... word_FFFFAE26: ds.b 2 ; DATA XREF: sub_617FE+1Ew ; OS3:000619F0w word_FFFFAE28: ds.b 2 ; DATA XREF: sub_617FE+22r ; sub_617FE+2Ew ... word_FFFFAE2A: ds.b 2 ; DATA XREF: sub_6183E+30r ; sub_6183E:loc_61876w ... word_FFFFAE2C: ds.b 2 ; DATA XREF: sub_6183E+54r ; sub_6183E:loc_6189Ew ... word_FFFFAE2E: ds.b 2 ; DATA XREF: sub_6183E+B0r ; sub_6183E:loc_618FAw ... word_FFFFAE30: ds.b 2 ; DATA XREF: sub_6183E+3Cr ; sub_6183E:loc_61886w ... word_FFFFAE32: ds.b 2 ; DATA XREF: sub_6183E+8Ar ; sub_6183E:loc_618DEw ... word_FFFFAE34: ds.b 2 ; DATA XREF: sub_6183E+90r ; sub_6183E:loc_618DAw ... word_FFFFAE36: ds.b 2 ; DATA XREF: DecideIdleMode:loc_38ECEr ; sub_39792:loc_397AAw ... word_FFFFAE38: ds.b 2 ; DATA XREF: sub_366E4+4r ; sub_366E4:loc_3670Er ... DesiredIdleSpeed:ds.b 2 ; DATA XREF: sub_36764+144r ; DecideIdleMode+20r ... byte_FFFFAE3C: ds.b 1 ; DATA XREF: DecideIdleMode+A6Ar ; sub_3975A+22w ... byte_FFFFAE3D: ds.b 1 ; DATA XREF: sub_39546+8r sub_39A0Er ... dword_FFFFAE3E: ds.b 4 ; DATA XREF: sub_39686+20r ; sub_39686+46w word_FFFFAE42: ds.b 2 ; DATA XREF: sub_39546+30r ; sub_39546+72r ... word_FFFFAE44: ds.b 2 ; DATA XREF: sub_3975A+26w ; sub_3975A+32w ... byte_FFFFAE46: ds.b 1 ; DATA XREF: sub_395ECr ; sub_395EC:loc_3961Ew ... ds.b 1 word_FFFFAE48: ds.b 2 ; DATA XREF: sub_395D6+6w ; sub_395D6:loc_395E6w ... word_FFFFAE4A: ds.b 2 ; DATA XREF: sub_395EC+38r ; sub_395EC+80w ... word_FFFFAE4C: ds.b 2 ; DATA XREF: sub_3984E+CCr ; sub_3984E:loc_39944w ... word_FFFFAE4E: ds.b 2 ; DATA XREF: sub_39792:loc_397A0r ; sub_397B0+8Ew ... word_FFFFAE50: ds.b 2 ; DATA XREF: sub_397B0+6r ; sub_397B0+36w ... word_FFFFAE52: ds.b 2 ; DATA XREF: sub_397B0r ; sub_397B0:loc_397E2w ... word_FFFFAE54: ds.b 2 ; DATA XREF: sub_39686+CCw ; sub_3975A:loc_39774r ... byte_FFFFAE56: ds.b 1 ; DATA XREF: sub_39686+Cr ; sub_39686+34w ... byte_FFFFAE57: ds.b 1 ; DATA XREF: sub_3984E+90w ; sub_3984E+BAr ... word_FFFFAE58: ds.b 2 ; DATA XREF: sub_701F0+10w ; sub_702A6:loc_7071Aw ... byte_FFFFAE5A: ds.b 1 ; DATA XREF: sub_701F0+14w ; sub_702A6+47Aw ... byte_FFFFAE5B: ds.b 1 ; DATA XREF: OS2:GetPid_11F4r ; sub_701F0+1Cw ... word_FFFFAE5C: ds.b 2 ; DATA XREF: sub_701F0+24w ; sub_702A6:loc_70834r ... word_FFFFAE5E: ds.b 2 ; DATA XREF: sub_701F0+38w ; sub_702A6+5DAr ... byte_FFFFAE60: ds.b 1 ; DATA XREF: DoLoopC+21Aw DoLoopC+220w ... byte_FFFFAE61: ds.b 1 ; DATA XREF: sub_5F2CCr sub_70138+84w ... byte_FFFFAE62: ds.b 1 ; DATA XREF: OS2:GetPid_11F2r ; sub_70138+96w ... byte_FFFFAE63: ds.b 1 ; DATA XREF: OS2:GetPid_11F6r ; sub_701F0+30w ... byte_FFFFAE64: ds.b 1 ; DATA XREF: sub_702A6+16Ar ; sub_702A6:loc_7041Cw ... byte_FFFFAE65: ds.b 1 ; DATA XREF: DoLoopC:loc_2A464w ; OS2:GetPid_1200_TotalMisfireCurrentCountr ... word_FFFFAE66: ds.b 2 ; DATA XREF: sub_701F0+64w ; sub_702A6+142r ... byte_FFFFAE68: ds.b 1 ; DATA XREF: DoLoopC+216w ; OS2:GetPid_11F3_TotalMisfiresperTestSpecialr ... byte_FFFFAE69: ds.b 1 ; DATA XREF: sub_70138:loc_7019Cw ; sub_702A6+5Aw ... word_FFFFAE6A: ds.b 2 ; DATA XREF: sub_701F0+18w ; sub_702A6+480w ... word_FFFFAE6C: ds.b 2 ; DATA XREF: sub_702A6+84r ; sub_702A6:loc_7033Aw ... word_FFFFAE6E: ds.b 2 ; DATA XREF: sub_701F0+2Cw ; sub_702A6+48Cw ... word_FFFFAE70: ds.b 2 ; DATA XREF: sub_701F0+44w ; sub_702A6:loc_7071Ar ... word_FFFFAE72: ds.b 2 ; DATA XREF: sub_701F0+4Cw ; sub_702A6+480r ... word_FFFFAE74: ds.b 2 ; DATA XREF: sub_701F0+54w ; sub_702A6+48Cr ... byte_FFFFAE76: ds.b 1 ; DATA XREF: sub_701F0+50w ; sub_702A6+486r ... byte_FFFFAE77: ds.b 1 ; DATA XREF: sub_701F0+58w ; sub_702A6+492r ... byte_FFFFAE78: ds.b 1 ; DATA XREF: sub_701F0+48w ; sub_702A6+47Ar ... ds.b 1 byte_FFFFAE7A: ds.b 1 ; DATA XREF: sub_69A62+8w sub_69A62+Cw ... ds.b 1 word_FFFFAE7C: ds.b 2 ; DATA XREF: sub_69A62+1Aw byte_FFFFAE7E: ds.b 1 ; DATA XREF: OS2:GetPid_120B_LongTermFuelTrimBankr byte_FFFFAE7F: ds.b 1 ; DATA XREF: OS2:GetPid_123A_LongTermFuelTrimBankr word_FFFFAE80: ds.b 2 ; DATA XREF: sub_69A62+1Ew byte_FFFFAE82: ds.b 1 ; DATA XREF: OS2:GetPid_120A_ShortTermFuelTrimBankr byte_FFFFAE83: ds.b 1 ; DATA XREF: OS2:GetPid_120C_ShortTermFuelTrimBankr dword_FFFFAE84: ds.b 4 ; DATA XREF: sub_69A62+22w ; OS3:loc_69B7Cr ... byte_FFFFAE88: ds.b 1 ; DATA XREF: sub_69A62+2Ew ; OS3:00069DEEr ... byte_FFFFAE89: ds.b 1 ; DATA XREF: sub_69A62+2Aw ; OS3:00069B34w ... word_FFFFAE8A: ds.b 2 ; DATA XREF: sub_69A62+26w ; OS3:00069B58r ... byte_FFFFAE8C: ds.b 1 ; DATA XREF: sub_69A62+4w sub_69B0A+Cw ... ds.b 1 ds.b 1 ds.b 1 unk_FFFFAE90: ds.b 1 ds.b 1 dword_FFFFAE92: ds.b 4 ; DATA XREF: sub_69A62+16w dword_FFFFAE96: ds.b 4 ; DATA XREF: sub_69A62+12w ; OS3:00069B30w ... word_FFFFAE9A: ds.b 2 ; DATA XREF: sub_622EE:loc_6259Ew ; sub_62F92:loc_63016w word_FFFFAE9C: ds.b 2 ; DATA XREF: OS1:00029128w ; sub_622EE:loc_62620r ... word_FFFFAE9E: ds.b 2 ; DATA XREF: sub_2E27C+2Er ; sub_62B70+374w word_FFFFAEA0: ds.b 2 ; DATA XREF: OS1:000290EEw ; OS1:00029114w ... word_FFFFAEA2: ds.b 2 ; DATA XREF: OS1:000290F2w ; OS1:00029118w ... word_FFFFAEA4: ds.b 2 ; DATA XREF: OS1:000290F8w ; OS1:0002911Ew ... word_FFFFAEA6: ds.b 2 ; DATA XREF: OS1:000290FCw ; OS1:00029122w ... byte_FFFFAEA8: ds.b 1 ; DATA XREF: OS1:loc_29104w ; sub_62B70+22w ... byte_FFFFAEA9: ds.b 1 ; DATA XREF: OS1:00029108w ; sub_62B70:loc_62BCCw ... byte_FFFFAEAA: ds.b 1 ; DATA XREF: OS1:0002910Cw ; sub_622EE+186r ... byte_FFFFAEAB: ds.b 1 ; DATA XREF: OS1:00029130w ; sub_622EE+A6r ... byte_FFFFAEAC: ds.b 1 ; DATA XREF: sub_2F2FE:loc_2F310r ; sub_2F316:loc_2F370r ... byte_FFFFAEAD: ds.b 1 ; DATA XREF: OS1:00029110w ; sub_2F386:loc_2F426r ... byte_FFFFAEAE: ds.b 1 ; DATA XREF: OS1:0002912Cw ; sub_62B70:loc_62BDCr ... byte_FFFFAEAF: ds.b 1 ; DATA XREF: OS1:00029134w ; sub_62B70+248r ... word_FFFFAEB0: ds.b 2 ; DATA XREF: sub_62B70:loc_62BFAw word_FFFFAEB2: ds.b 2 ; DATA XREF: sub_62B70+27Er ; sub_62EFE:loc_62F7Cw word_FFFFAEB4: ds.b 2 ; DATA XREF: sub_62B70+272r ; sub_62EFE:loc_62F8Cw byte_FFFFAEB6: ds.b 1 ; DATA XREF: sub_62B70+1Ar ; sub_62B70+AAw byte_FFFFAEB7: ds.b 1 ; DATA XREF: sub_62B70+54r ; sub_62B70+B4w byte_FFFFAEB8: ds.b 1 ; DATA XREF: sub_62B70+2Cr ; sub_62B70+AEw byte_FFFFAEB9: ds.b 1 ; DATA XREF: sub_62B70+24Er ; sub_62B70+34Cw ... word_FFFFAEBA: ds.b 2 ; DATA XREF: sub_848A8+1CCw word_FFFFAEBC: ds.b 2 ; DATA XREF: sub_21094+10r ; sub_21094+1E8r ... word_FFFFAEBE: ds.b 2 ; DATA XREF: sub_20CB2+8r ; sub_21094:loc_212C4r ... word_FFFFAEC0: ds.b 2 ; DATA XREF: GetPid_000D_SpeedinKPH+4r ; sub_4B4C4+2r ... byte_FFFFAEC2: ds.b 1 ; DATA XREF: sub_21094+Ar ; sub_21094+22w ... ds.b 1 word_FFFFAEC4: ds.b 2 ; DATA XREF: sub_848A8+6Cw ; sub_848A8+B6r word_FFFFAEC6: ds.b 2 ; DATA XREF: sub_84A9E+6w word_FFFFAEC8: ds.b 2 ; DATA XREF: sub_848A8:loc_84946w word_FFFFAECA: ds.b 2 ; DATA XREF: sub_848A8+42r ; sub_848A8+62w byte_FFFFAECC: ds.b 1 ; DATA XREF: sub_848A8+2Er ; sub_848A8+5Ew byte_FFFFAECD: ds.b 1 ; DATA XREF: sub_848A8+92w ; sub_848A8+A4r ... dword_FFFFAECE: ds.b 4 ; DATA XREF: sub_848A8+160r ; sub_848A8+164w ... dword_FFFFAED2: ds.b 4 ; DATA XREF: sub_848A8+1A8r ; sub_848A8+1ACw ... dword_FFFFAED6: ds.b 4 ; DATA XREF: sub_848A8+1B0r ; sub_848A8+1B4w ... DefinitelyEngineLoad:ds.b 2 ; DATA XREF: sub_39F12+9Ar ; sub_39F12+B2r ... DefinitelyRpm: ds.b 2 ; DATA XREF: sub_39F12+9Er ; sub_39F12+B6r ... CoolantTemp: ds.b 2 ; DATA XREF: sub_3A2A8+8r ; sub_3A2A8:loc_3A2DAr ... word_FFFFAEE0: ds.b 2 ; DATA XREF: sub_2FAFC+5Ar ; sub_2FAFC+98r ... word_FFFFAEE2: ds.b 2 ; DATA XREF: sub_2FC92+CEr ; sub_2FC92:loc_2FDFEr ... word_FFFFAEE4: ds.b 2 ; DATA XREF: sub_36AAA+Cr ; sub_36AAA+22r ... AnotherRpmValue:ds.b 2 ; DATA XREF: sub_24716+D88r ; sub_24716:loc_258BAr ... word_FFFFAEE8: ds.b 2 ; DATA XREF: sub_24716+D9Er ; sub_269C2+16w ManifoldPressure:ds.b 2 ; DATA XREF: sub_32164+8r ; sub_32164+20r ... word_FFFFAEEC: ds.b 2 ; DATA XREF: sub_30CA4+8r sub_31318+8r ... word_FFFFAEEE: ds.b 2 ; DATA XREF: sub_7AD7E:loc_7AF2Ew ; sub_7AF40:loc_7AFB2w word_FFFFAEF0: ds.b 2 ; DATA XREF: sub_24716:loc_2586Cr ; sub_3090C:loc_30A12r ... word_FFFFAEF2: ds.b 2 ; DATA XREF: sub_F1C:loc_F4Ar ; sub_34694+4r ... word_FFFFAEF4: ds.b 2 ; DATA XREF: sub_2D1C4:loc_2D1E8r ; sub_807E0+154w ... word_FFFFAEF6: ds.b 2 ; DATA XREF: sub_75FCA:loc_76054w ; sub_75FCA+DEr ... word_FFFFAEF8: ds.b 2 ; DATA XREF: sub_24716+FE4r ; sub_24716+11A8r ... byte_FFFFAEFA: ds.b 1 ; DATA XREF: sub_505A4:loc_505C0r ; sub_5D45C+348w ... byte_FFFFAEFB: ds.b 1 ; DATA XREF: OS2:GetPid_199Br ; sub_5D45C+21Er ... byte_FFFFAEFC: ds.b 1 ; DATA XREF: sub_5D45C:loc_5D768w ; sub_5D45C+33Ar ... ds.b 1 word_FFFFAEFE: ds.b 2 ; DATA XREF: OS2:GetPid_1993_TimeofLatestShiftr word_FFFFAF00: ds.b 2 ; DATA XREF: OS2:GetPid_1994_TimeofLatestShiftr word_FFFFAF02: ds.b 2 ; DATA XREF: OS2:GetPid_1995_TimeofLatestShiftr word_FFFFAF04: ds.b 2 ; DATA XREF: OS2:GetPid_1997_ShiftTimeErrorforShiftr word_FFFFAF06: ds.b 2 ; DATA XREF: OS2:GetPid_1998_ShiftTimeErrorforShiftr word_FFFFAF08: ds.b 2 ; DATA XREF: OS2:GetPid_1999_ShiftTimeErrorforShiftr byte_FFFFAF0A: ds.b 1 ; DATA XREF: OS2:000449B2r ; sub_5D45C+Aw ... byte_FFFFAF0B: ds.b 1 ; DATA XREF: sub_5D22A+22w ; sub_5D45C+ECw ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFAF12: ds.b 2 ; DATA XREF: sub_5D45C:loc_5D4B4w ; sub_5D45C+D6w ... word_FFFFAF14: ds.b 2 ; DATA XREF: sub_5D45C+82w byte_FFFFAF16: ds.b 1 ; DATA XREF: sub_5D252+1D6w ; sub_5D252:loc_5D43Ew ... byte_FFFFAF17: ds.b 1 ; DATA XREF: sub_5D252+B0w byte_FFFFAF18: ds.b 1 ; DATA XREF: sub_5D252+140w ; sub_5D252:loc_5D3EEw ... byte_FFFFAF19: ds.b 1 ; DATA XREF: sub_5D252:loc_5D368w ; sub_5D252+1BAr word_FFFFAF1A: ds.b 2 ; DATA XREF: sub_513C0+60w ; sub_513C0+7Ew ... dword_FFFFAF1C: ds.b 4 ; DATA XREF: sub_513C0+50r ; sub_513C0:loc_5141Cw ... dword_FFFFAF20: ds.b 4 ; DATA XREF: sub_51498+52r ; sub_51498+5Ew ... dword_FFFFAF24: ds.b 4 ; DATA XREF: sub_51498+9Er ; sub_51498+AAw ... word_FFFFAF28: ds.b 2 ; DATA XREF: sub_51498:loc_516A2w word_FFFFAF2A: ds.b 2 ; DATA XREF: sub_51498:loc_516C4w word_FFFFAF2C: ds.b 2 ; DATA XREF: sub_51498+212r ; sub_51498+230w ... word_FFFFAF2E: ds.b 2 ; DATA XREF: sub_51498+262r ; sub_51498+26Ew ... byte_FFFFAF30: ds.b 1 ; DATA XREF: sub_51498+2AEw ; sub_51498+2E0r ... ds.b 1 word_FFFFAF32: ds.b 2 ; DATA XREF: sub_51498+2A4r ; sub_51498+2AAw ... word_FFFFAF34: ds.b 2 ; DATA XREF: sub_51498+28Ew ; sub_51498+3BEr ... byte_FFFFAF36: ds.b 1 ; DATA XREF: sub_51498+4Ar ; sub_51498+62w ... byte_FFFFAF37: ds.b 1 ; DATA XREF: sub_51498:loc_51586w ; sub_51498:loc_5158Ew ... word_FFFFAF38: ds.b 2 ; DATA XREF: sub_51498+26r ; sub_51498:loc_514CCw ... byte_FFFFAF3A: ds.b 1 ; DATA XREF: sub_2452C+30r ; DoLoopB:loc_29EFCw ... byte_FFFFAF3B: ds.b 1 ; DATA XREF: sub_21930+2Ar ; sub_22F40+36r ... byte_FFFFAF3C: ds.b 1 ; DATA XREF: OS1:00028996w ; sub_755FA+15Cw ... byte_FFFFAF3D: ds.b 1 ; DATA XREF: OS1:00028992w ; sub_755FA+158w ... byte_FFFFAF3E: ds.b 1 ; DATA XREF: OS1:0002899Aw ; sub_755FA+160w ... byte_FFFFAF3F: ds.b 1 ; DATA XREF: OS1:000289A2w ; sub_755FA+168w ... byte_FFFFAF40: ds.b 1 ; DATA XREF: OS1:0002899Ew ; sub_755FA+164w ... byte_FFFFAF41: ds.b 1 ; DATA XREF: OS1:000289A6w ; sub_755FA+16Cw ... byte_FFFFAF42: ds.b 1 ; DATA XREF: sub_755FA+194w ; sub_7AFBE+72w ... byte_FFFFAF43: ds.b 1 ; DATA XREF: OS1:loc_2898Aw ; sub_755FA:loc_7574Aw ... byte_FFFFAF44: ds.b 1 ; DATA XREF: OS1:000289AAw ; sub_755FA+170w ... byte_FFFFAF45: ds.b 1 ; DATA XREF: OS1:000289AEw ; sub_755FA+174w ... byte_FFFFAF46: ds.b 1 ; DATA XREF: OS1:000289B2w ; sub_755FA+178w ... byte_FFFFAF47: ds.b 1 ; DATA XREF: OS1:000289B6w ; sub_755FA+17Cw ... byte_FFFFAF48: ds.b 1 ; DATA XREF: OS1:000289BAw ; sub_755FA+180w ... byte_FFFFAF49: ds.b 1 ; DATA XREF: OS1:000289BEw ; sub_755FA+184w ... word_FFFFAF4A: ds.b 2 ; DATA XREF: OS1:loc_289C2w ; sub_755FA+188w ... word_FFFFAF4C: ds.b 2 ; DATA XREF: OS1:000289C8w ; sub_755FA+18Ew ... word_FFFFAF4E: ds.b 2 ; DATA XREF: sub_7AFBE:loc_7B056w word_FFFFAF50: ds.b 2 ; DATA XREF: sub_7AFBE:loc_7B1CEw word_FFFFAF52: ds.b 2 ; DATA XREF: sub_7B2B2+1Aw ; sub_7B2B2+50w word_FFFFAF54: ds.b 2 ; DATA XREF: sub_7B2B2+38r ; sub_7B2B2:loc_7B30Aw word_FFFFAF56: ds.b 2 ; DATA XREF: sub_7B2B2+46w byte_FFFFAF58: ds.b 1 ; DATA XREF: sub_7B2B2+14r ; sub_7B2B2+20w ... unk_FFFFAF59: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFAF76: ds.b 1 ; DATA XREF: sub_223EA+350r ; sub_229DE+72w ... byte_FFFFAF77: ds.b 1 ; DATA XREF: sub_40414+4Ew ; sub_40AD6+64w ... byte_FFFFAF78: ds.b 1 ; DATA XREF: sub_40414+52w ; sub_40AD6+68w ... ds.b 1 byte_FFFFAF7A: ds.b 1 ; DATA XREF: sub_74C8Aw sub_74CA0+6r ... ds.b 1 word_FFFFAF7C: ds.b 2 ; DATA XREF: sub_74E74+136w ; sub_74E74+16Ar ... word_FFFFAF7E: ds.b 2 ; DATA XREF: sub_74E74+160r ; sub_74E74+166w ... word_FFFFAF80: ds.b 2 ; DATA XREF: sub_74E74+36w ; sub_74E74+6Ar ... word_FFFFAF82: ds.b 2 ; DATA XREF: sub_74E74+60r ; sub_74E74+66w ... word_FFFFAF84: ds.b 2 ; DATA XREF: sub_74CBE:loc_74D00w ; sub_75086+38w word_FFFFAF86: ds.b 2 ; DATA XREF: sub_74CBE+10r ; sub_74CBE+1Cw ... byte_FFFFAF88: ds.b 1 ; DATA XREF: sub_74CBE+4Er ; sub_74CBE:loc_74D18w ... ds.b 1 word_FFFFAF8A: ds.b 2 ; DATA XREF: sub_74CBE+26r ; sub_74CBE+32w ... word_FFFFAF8C: ds.b 2 ; DATA XREF: sub_74CBE:loc_74DC4w ; sub_74CBE:loc_74E10r ... word_FFFFAF8E: ds.b 2 ; DATA XREF: sub_74CBE+D4w ; sub_74CBE+11Aw ... word_FFFFAF90: ds.b 2 ; DATA XREF: sub_74E74+12Aw ; sub_74E74:loc_75012r ... word_FFFFAF92: ds.b 2 ; DATA XREF: sub_74E74:loc_74FC2r ; sub_74E74+154w ... word_FFFFAF94: ds.b 2 ; DATA XREF: sub_74E74+2Aw ; sub_74E74:loc_74F12r ... word_FFFFAF96: ds.b 2 ; DATA XREF: sub_74E74:loc_74EC2r ; sub_74E74+54w ... byte_FFFFAF98: ds.b 1 ; DATA XREF: OS2:GetPid_1924r ; sub_45F3A:loc_479E6r ... byte_FFFFAF99: ds.b 1 ; DATA XREF: sub_59E38+2r ; sub_59E38+50w ... word_FFFFAF9A: ds.b 2 ; DATA XREF: sub_59E04+4r ; sub_59E04+20w ... word_FFFFAF9C: ds.b 2 ; DATA XREF: sub_59E38:loc_59EB0w ; sub_59E38:loc_59EBEr ... word_FFFFAF9E: ds.b 2 ; DATA XREF: sub_59E38+4Ar ; sub_59E38+66r ... word_FFFFAFA0: ds.b 2 ; DATA XREF: sub_59E38+CCw ; sub_59E38:loc_59F08r ... word_FFFFAFA2: ds.b 2 ; DATA XREF: sub_59E38+5Aw ; sub_59E38+C2r ... word_FFFFAFA4: ds.b 2 ; DATA XREF: sub_59E38+56w ; sub_59E38+DCr ds.b 1 ds.b 1 word_FFFFAFA8: ds.b 2 ; DATA XREF: sub_59F72+9Aw ; sub_59F72:loc_5A010r ... word_FFFFAFAA: ds.b 2 ; DATA XREF: sub_59F72+7Cw ; sub_59F72+AAr ... byte_FFFFAFAC: ds.b 1 ; DATA XREF: sub_59F72+82w ; sub_59F72+8Ar ... byte_FFFFAFAD: ds.b 1 ; DATA XREF: sub_59F72+13Ew ; sub_59F72:loc_5A0E6r word_FFFFAFAE: ds.b 2 ; DATA XREF: sub_5A12E+6r sub_5A12E+Ew ... dword_FFFFAFB0: ds.b 4 ; DATA XREF: sub_5A12E+30w ; sub_5A12E+46r ... word_FFFFAFB4: ds.b 2 ; DATA XREF: sub_59F72+6Er ; sub_5A12E+88r ... byte_FFFFAFB6: ds.b 1 ; DATA XREF: sub_24338+20w ; sub_2437E+1Aw ... ds.b 1 word_FFFFAFB8: ds.b 2 ; DATA XREF: sub_24338+2Cw ; sub_243A8:loc_243BEr ... unk_FFFFAFBA: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFAFCA: ds.b 1 ; DATA XREF: sub_243A8+38r ; sub_243A8:loc_2442Er ... ds.b 1 word_FFFFAFCC: ds.b 2 ; DATA XREF: sub_243A8:loc_24424w ; sub_243A8:loc_2442Aw ... byte_FFFFAFCE: ds.b 1 ; DATA XREF: sub_24338+24w ; sub_243A8+9Er ... ds.b 1 word_FFFFAFD0: ds.b 2 ; DATA XREF: sub_243A8+D6w ; sub_243A8+FAw ... byte_FFFFAFD2: ds.b 1 ; DATA XREF: sub_243A8+164r ; sub_243A8+16Aw ds.b 1 byte_FFFFAFD4: ds.b 1 ; DATA XREF: sub_4CD5E+74r ; sub_50628:loc_50646w ... byte_FFFFAFD5: ds.b 1 ; DATA XREF: OS2:GetPid_1975r ; sub_50628+30Er ... word_FFFFAFD6: ds.b 2 ; DATA XREF: sub_50628+78r ; sub_50628:loc_506BAw ... word_FFFFAFD8: ds.b 2 ; DATA XREF: sub_50628:loc_506E0r ; sub_50628:loc_506FAw ... word_FFFFAFDA: ds.b 2 ; DATA XREF: sub_50628+66w ; sub_50628+3B8r ... word_FFFFAFDC: ds.b 2 ; DATA XREF: sub_50628+594r ; sub_50628+5A6w ... word_FFFFAFDE: ds.b 2 ; DATA XREF: sub_50628+62w ; sub_50628+2F6r ... word_FFFFAFE0: ds.b 2 ; DATA XREF: sub_50628+2F2w ; sub_50628+3B4w ... byte_FFFFAFE2: ds.b 1 ; DATA XREF: sub_50628+28r ; sub_50628+6Ew byte_FFFFAFE3: ds.b 1 ; DATA XREF: sub_50C1C+8r ; sub_50C1C+2Cw byte_FFFFAFE4: ds.b 1 ; DATA XREF: sub_50C1C+1E8r ; sub_50C1C:loc_50E10w ... ds.b 1 word_FFFFAFE6: ds.b 2 ; DATA XREF: sub_50C1C:loc_50C66r ; sub_50C1C:loc_50C80w ... word_FFFFAFE8: ds.b 2 ; DATA XREF: sub_50C1C+1BAw ; sub_50C1C+238r ... word_FFFFAFEA: ds.b 2 ; DATA XREF: sub_50C1C+1C2r ; sub_50C1C:loc_50DECw ... word_FFFFAFEC: ds.b 2 ; DATA XREF: sub_50EAA+78r ; sub_50EAA:loc_50F36w ... word_FFFFAFEE: ds.b 2 ; DATA XREF: sub_50EAA+D4r ; sub_50EAA:loc_50FA4w ... byte_FFFFAFF0: ds.b 1 ; DATA XREF: sub_50628+5Ew ; sub_50628+396r ... ds.b 1 word_FFFFAFF2: ds.b 2 ; DATA XREF: OS1:00028FD2w ; sub_60880+182r ... byte_FFFFAFF4: ds.b 1 ; DATA XREF: OS1:loc_28FACw ; sub_75370+140w ... ds.b 1 word_FFFFAFF6: ds.b 2 ; DATA XREF: OS1:loc_28FB2w ; sub_60880+188w ... word_FFFFAFF8: ds.b 2 ; DATA XREF: OS1:00028FB6w ; sub_60880+18Cw ... word_FFFFAFFA: ds.b 2 ; DATA XREF: OS1:00028FBAw ; sub_60880+190w ... word_FFFFAFFC: ds.b 2 ; DATA XREF: OS1:00028FBEw ; sub_60880+194w ... byte_FFFFAFFE: ds.b 1 ; DATA XREF: OS1:00028FC2w ; sub_60880+198w ... byte_FFFFAFFF: ds.b 1 ; DATA XREF: OS1:00028FC6w ; sub_60880+19Cw ... byte_FFFFB000: ds.b 1 ; DATA XREF: OS1:00028FCAw ; sub_60880+1A0w ... byte_FFFFB001: ds.b 1 ; DATA XREF: OS1:00028FCEw ; sub_60880+1A4w ... byte_FFFFB002: ds.b 1 ; DATA XREF: OS1:00028FE8w ; OS1:loc_28FFEw ... byte_FFFFB003: ds.b 1 ; DATA XREF: OS1:00028FECw ; OS1:00029002w ... word_FFFFB004: ds.b 2 ; DATA XREF: OS1:00028FF4w ; OS1:0002900Aw ... word_FFFFB006: ds.b 2 ; DATA XREF: OS1:00028FF8w ; OS1:0002900Ew ... byte_FFFFB008: ds.b 1 ; DATA XREF: OS1:00028FF0w ; OS1:00029006w ... byte_FFFFB009: ds.b 1 ; DATA XREF: OS1:00028FD6w ; sub_60880+BEr ... byte_FFFFB00A: ds.b 1 ; DATA XREF: OS1:00028FDAw ; sub_60880+132w ... byte_FFFFB00B: ds.b 1 ; DATA XREF: OS1:00028FDEw ; sub_60880+1BCr ... word_FFFFB00C: ds.b 2 ; DATA XREF: sub_60880:loc_6096Cw ; sub_60880+F4r word_FFFFB00E: ds.b 2 ; DATA XREF: sub_4CD5E+AEr ; sub_4CD5E+E6r ... byte_FFFFB010: ds.b 1 ; DATA XREF: sub_575C6:loc_575D4w ; sub_575C6+1Cw ... byte_FFFFB011: ds.b 1 ; DATA XREF: sub_56EDC:loc_5705Cr ; sub_571CE+80r ... word_FFFFB012: ds.b 2 ; DATA XREF: sub_575C6:loc_57F68w ; sub_575C6:loc_58086w ... word_FFFFB014: ds.b 2 ; DATA XREF: sub_57562+Er ; sub_57562+18w ... word_FFFFB016: ds.b 2 ; DATA XREF: sub_57562:loc_5758Aw ; sub_57562+2Er ... word_FFFFB018: ds.b 2 ; DATA XREF: sub_57562+54w ; sub_57562:loc_575BCw ... byte_FFFFB01A: ds.b 1 ; DATA XREF: sub_575C6+C4w ; sub_575C6+D4w ... byte_FFFFB01B: ds.b 1 ; DATA XREF: sub_575C6+14Cw ; sub_575C6+168w ... word_FFFFB01C: ds.b 2 ; DATA XREF: sub_575C6+262r ; sub_575C6+4D4r ... word_FFFFB01E: ds.b 2 ; DATA XREF: sub_575C6+392r ; sub_575C6+398w ... word_FFFFB020: ds.b 2 ; DATA XREF: sub_575C6+2B8r ; sub_575C6+2BEw ... word_FFFFB022: ds.b 2 ; DATA XREF: sub_575C6+51Cw ; sub_575C6:loc_57AE8w ... byte_FFFFB024: ds.b 1 ; DATA XREF: sub_575C6+55Er ; sub_575C6+564w ... ds.b 1 word_FFFFB026: ds.b 2 ; DATA XREF: sub_575C6:loc_577E8w ; sub_575C6:loc_57802w ... word_FFFFB028: ds.b 2 ; DATA XREF: sub_575C6:loc_5780Cw ; sub_575C6:loc_5781Ew ... byte_FFFFB02A: ds.b 1 ; DATA XREF: sub_5285A+152r ; sub_5285A+212w ... byte_FFFFB02B: ds.b 1 ; DATA XREF: sub_5285A+Er ; sub_5285A+102w ... word_FFFFB02C: ds.b 2 ; DATA XREF: sub_5285A+170r ; sub_5285A:loc_529E4w ... word_FFFFB02E: ds.b 2 ; DATA XREF: sub_5285A+168w ; sub_5285A+1AEr ... word_FFFFB030: ds.b 2 ; DATA XREF: sub_5285A+50w ; sub_5285A+9Ar ... word_FFFFB032: ds.b 2 ; DATA XREF: sub_5285A+4Cw ; sub_5285A+68r ... word_FFFFB034: ds.b 2 ; DATA XREF: sub_5285A+244w ; sub_5285A+2AEr ... word_FFFFB036: ds.b 2 ; DATA XREF: sub_5285A+252r ; sub_5285A:loc_52AC6w ... dword_FFFFB038: ds.b 4 ; DATA XREF: sub_5285A:loc_52928r ; sub_5285A+E4r ... byte_FFFFB03C: ds.b 1 ; DATA XREF: sub_5285A+16Cw ; sub_5285A:loc_52A28w ... byte_FFFFB03D: ds.b 1 ; DATA XREF: sub_5285A:loc_529E8w ; sub_5285A:loc_529EEw ... byte_FFFFB03E: ds.b 1 ; DATA XREF: sub_5285A+42w ; sub_5285A+62r ... byte_FFFFB03F: ds.b 1 ; DATA XREF: sub_5285A+48w ; sub_5285A+5Ew ... byte_FFFFB040: ds.b 1 ; DATA XREF: sub_5285A+240w ; sub_5285A:loc_52B28r ... byte_FFFFB041: ds.b 1 ; DATA XREF: sub_5285A:loc_52ACEr ; sub_5285A+27Aw ... byte_FFFFB042: ds.b 1 ; DATA XREF: sub_5285A+1E4r ; sub_5285A:loc_52A4Aw ... byte_FFFFB043: ds.b 1 ; DATA XREF: sub_5285A+BEr ; sub_5285A:loc_52924w ... byte_FFFFB044: ds.b 1 ; DATA XREF: sub_5285A+108w ; sub_5285A+218w ... byte_FFFFB045: ds.b 1 ; DATA XREF: sub_5285A+10Cw ; sub_5285A+21Cw ... byte_FFFFB046: ds.b 1 ; DATA XREF: sub_75FCA+22w ; sub_75FCA:loc_75FF2r ... byte_FFFFB047: ds.b 1 ; DATA XREF: OS2:loc_43284r ; sub_75FCA+CAr ... byte_FFFFB048: ds.b 1 ; DATA XREF: sub_2340C+330r ; OS2:loc_4328Er ... byte_FFFFB049: ds.b 1 ; DATA XREF: sub_75FCA:loc_764C4w ; sub_75FCA+522w ... byte_FFFFB04A: ds.b 1 ; DATA XREF: sub_75FCA+B0w ; sub_75FCA:loc_76080w ... ds.b 1 word_FFFFB04C: ds.b 2 ; DATA XREF: sub_76516:loc_76574r ; sub_76516+A4w ... word_FFFFB04E: ds.b 2 ; DATA XREF: sub_75FCA+54r ; sub_75FCA+6Aw ... word_FFFFB050: ds.b 2 ; DATA XREF: sub_75FCA:loc_763FAr ; sub_75FCA+436w ... word_FFFFB052: ds.b 2 ; DATA XREF: sub_2340C+204r ; sub_75FCA:loc_7641Aw word_FFFFB054: ds.b 2 ; DATA XREF: sub_75FCA+96w ; sub_75FCA+D6r ... byte_FFFFB056: ds.b 1 ; DATA XREF: sub_75FCA+426w ; sub_75FCA:loc_763F6w ... ds.b 1 word_FFFFB058: ds.b 2 ; DATA XREF: sub_75FCA+D0r ; sub_75FCA+346r ... word_FFFFB05A: ds.b 2 ; DATA XREF: sub_75FCA+162r ; sub_75FCA+178r ... word_FFFFB05C: ds.b 2 ; DATA XREF: sub_75FCA:loc_761CCw ; sub_75FCA:loc_7626Cw ... word_FFFFB05E: ds.b 2 ; DATA XREF: sub_75FCA:loc_76348r ; sub_75FCA+384r ... byte_FFFFB060: ds.b 1 ; DATA XREF: sub_75FCA+2B6w ; sub_75FCA+3B0w ... ds.b 1 word_FFFFB062: ds.b 2 ; DATA XREF: sub_31AE2+222r ; sub_7468C+206w ... byte_FFFFB064: ds.b 1 ; DATA XREF: sub_742A6+194w ; sub_742A6:loc_74440w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFB06E: ds.b 1 ; DATA XREF: sub_32324+7Er ; sub_32F54+76r ... byte_FFFFB06F: ds.b 1 ; DATA XREF: sub_2F386:loc_2F492r ; sub_7468C+1F6w ... byte_FFFFB070: ds.b 1 ; DATA XREF: sub_742A6:loc_74494r ; sub_742A6:loc_744D0r ... byte_FFFFB071: ds.b 1 ; DATA XREF: sub_742A6+1DCr ; sub_742A6:loc_745B4r ... word_FFFFB072: ds.b 2 ; DATA XREF: sub_742A6:loc_743B0r ; sub_748D0+236r ... word_FFFFB074: ds.b 2 ; DATA XREF: sub_748D0:loc_74B6Cw ; sub_74BE4:loc_74C24w byte_FFFFB076: ds.b 1 ; DATA XREF: sub_7468C+3Cr ; sub_7468C+1D6r ... ds.b 1 word_FFFFB078: ds.b 2 ; DATA XREF: sub_7468C+A8r ; sub_7468C:loc_747D8w ... byte_FFFFB07A: ds.b 1 ; DATA XREF: sub_7468C:loc_747E2w ; sub_7468C+168w ... byte_FFFFB07B: ds.b 1 ; DATA XREF: sub_7468C:loc_7485Cr ; sub_7468C:loc_748C6w ... byte_FFFFB07C: ds.b 1 ; DATA XREF: sub_6C7C0+48r ; sub_6C7C0:loc_6C860w ... byte_FFFFB07D: ds.b 1 ; DATA XREF: sub_6C870+30w ; sub_6C8AE+4r ... byte_FFFFB07E: ds.b 1 ; DATA XREF: sub_6C870+28w ; sub_6CC3C+1Ew ... byte_FFFFB07F: ds.b 1 ; DATA XREF: sub_6C870+24w ; sub_6CC3C+28r ... byte_FFFFB080: ds.b 1 ; DATA XREF: sub_6C870+2Cw ; sub_6CD00+3Ar ... ds.b 1 word_FFFFB082: ds.b 2 ; DATA XREF: sub_6C870+8w ; sub_6C9C0:loc_6CA12w ... word_FFFFB084: ds.b 2 ; DATA XREF: sub_6C870w ; sub_6CD00:loc_6CD18r ... byte_FFFFB086: ds.b 1 ; DATA XREF: sub_6C870+38w ; sub_6CB04+A6r ... ds.b 1 word_FFFFB088: ds.b 2 ; DATA XREF: sub_6C7C0:loc_6C842w ; sub_6C870+18w word_FFFFB08A: ds.b 2 ; DATA XREF: sub_6C7C0:loc_6C832w ; sub_6C870+1Cw word_FFFFB08C: ds.b 2 ; DATA XREF: sub_6C870+Cw ; sub_6C9C0:loc_6CA04r ... byte_FFFFB08E: ds.b 1 ; DATA XREF: sub_6C870+20w ; sub_6C9C0+1Cr ... ds.b 1 word_FFFFB090: ds.b 2 ; DATA XREF: sub_6C7C0+7Ar ; sub_6C870+10w ... word_FFFFB092: ds.b 2 ; DATA XREF: sub_6C7C0:loc_6C828r ; sub_6C870+14w ... word_FFFFB094: ds.b 2 ; DATA XREF: sub_6C870+34w ; sub_6CA9E:loc_6CACEw ... byte_FFFFB096: ds.b 1 ; DATA XREF: sub_6CF1E:loc_6CF72w byte_FFFFB097: ds.b 1 ; DATA XREF: sub_6CF1E:loc_6CF92w byte_FFFFB098: ds.b 1 ; DATA XREF: sub_6CF1E+82w byte_FFFFB099: ds.b 1 ; DATA XREF: sub_6CF1E+90w byte_FFFFB09A: ds.b 1 ; DATA XREF: sub_6CF1E+9Ew byte_FFFFB09B: ds.b 1 ; DATA XREF: sub_6CF1E+ACw byte_FFFFB09C: ds.b 1 ; DATA XREF: sub_6CF1E+BAw byte_FFFFB09D: ds.b 1 ; DATA XREF: sub_6CF1E+C8w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFB0AE: ds.b 1 ; DATA XREF: sub_66E48w ; sub_66ED2:loc_66F0Cw ... ds.b 1 word_FFFFB0B0: ds.b 2 ; DATA XREF: sub_66ED2+4r sub_66ED2+Aw ... word_FFFFB0B2: ds.b 2 ; DATA XREF: sub_66E98:loc_66EAAw ; sub_66ED2:loc_66EE0r ... word_FFFFB0B4: ds.b 2 ; DATA XREF: sub_66E48+6w ; sub_6716E+46r ... word_FFFFB0B6: ds.b 2 ; DATA XREF: sub_66E48+Aw sub_6716E+Cr ... word_FFFFB0B8: ds.b 2 ; DATA XREF: sub_66E48+Ew ; sub_670C2+46r ... word_FFFFB0BA: ds.b 2 ; DATA XREF: sub_66E48+12w ; sub_670C2+Cr ... word_FFFFB0BC: ds.b 2 ; DATA XREF: sub_66E48+16w ; sub_67010+4Ar ... word_FFFFB0BE: ds.b 2 ; DATA XREF: sub_66E48+1Aw ; sub_67010+2Er ... byte_FFFFB0C0: ds.b 1 ; DATA XREF: sub_66ED2+4Aw ; sub_66ED2:loc_66F22r ... ds.b 1 word_FFFFB0C2: ds.b 2 ; DATA XREF: sub_66E48+1Ew ; sub_66F48+58r ... word_FFFFB0C4: ds.b 2 ; DATA XREF: sub_66E48+22w ; sub_66F48+22r ... byte_FFFFB0C6: ds.b 1 ; DATA XREF: sub_27806+Ew sub_27A50r ... byte_FFFFB0C7: ds.b 1 ; DATA XREF: sub_138E:loc_149Cr ; sub_1EFC+Cw ... byte_FFFFB0C8: ds.b 1 ; DATA XREF: sub_27806+F4w ; sub_77C46+8r ... byte_FFFFB0C9: ds.b 1 ; DATA XREF: sub_27806+116w ; sub_27806:loc_27924w word_FFFFB0CA: ds.b 2 ; DATA XREF: sub_27966+DEw word_FFFFB0CC: ds.b 2 ; DATA XREF: sub_27966:loc_27A34w word_FFFFB0CE: ds.b 2 ; DATA XREF: sub_27966+D4w byte_FFFFB0D0: ds.b 1 ; DATA XREF: sub_2178+BAw ; sub_2178:loc_2238w ds.b 1 dword_FFFFB0D2: ds.b 4 ; DATA XREF: sub_2178:loc_225Aw ; sub_871EC+Ar ... dword_FFFFB0D6: ds.b 4 ; DATA XREF: sub_2178+EAw sub_871EC+Er ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFB0DE: ds.b 1 ; DATA XREF: OS1:loc_3463Aw ; OS1:loc_34658w ... byte_FFFFB0DF: ds.b 1 ; DATA XREF: OS1:0003463Ew ; OS1:0003465Cw ... word_FFFFB0E0: ds.b 2 ; DATA XREF: OS2:GetPid_125A_InjectorPulseWidthAverageBankr word_FFFFB0E2: ds.b 2 ; DATA XREF: OS2:GetPid_125B_InjectorPulseWidthAverageBankr word_FFFFB0E4: ds.b 2 ; DATA XREF: OS1:00034664w ; OS1:0003468Aw word_FFFFB0E6: ds.b 2 ; DATA XREF: OS1:00034668w ; OS1:0003468Ew word_FFFFB0E8: ds.b 2 ; DATA XREF: sub_32A0C+ECr ; sub_32A0C+364r word_FFFFB0EA: ds.b 2 ; DATA XREF: sub_32A0C+10Er ; sub_32A0C+386r word_FFFFB0EC: ds.b 2 ; DATA XREF: sub_30DA8+39Ar ; sub_32A0C+160r ... ds.b 1 ds.b 1 word_FFFFB0F0: ds.b 2 ; DATA XREF: sub_2FC92+2FCr ; sub_345E6+2Aw ... word_FFFFB0F2: ds.b 2 ; DATA XREF: OS1:00034642w ; OS1:00034670w ... word_FFFFB0F4: ds.b 2 ; DATA XREF: OS1:loc_3466Cw ; sub_34694:loc_34750w byte_FFFFB0F6: ds.b 1 ; DATA XREF: sub_6D944+4r ; sub_6DA1A:loc_6DC08r ... ds.b 1 Airflow_Rationality_FilteredMAF:ds.b 2 ; DATA XREF: sub_6D944+10r ; sub_6DC40+12r ... Airflow_Rationality_SD:ds.b 2 ; DATA XREF: sub_6D944+Cr sub_6DC40+Cw ... word_FFFFB0FC: ds.b 2 ; DATA XREF: sub_6D7FC+16w byte_FFFFB0FE: ds.b 1 ; DATA XREF: sub_6D7FC+1Ar ; sub_6D88A:loc_6D898r ... ds.b 1 word_FFFFB100: ds.b 2 ; DATA XREF: sub_6DA1A+Cw sub_6DC40+8w word_FFFFB102: ds.b 2 ; DATA XREF: sub_6DC40+56w ; sub_6DC40+6Ar word_FFFFB104: ds.b 2 ; DATA XREF: sub_6DA1A+1E0w ; sub_6DA1A+1F4r word_FFFFB106: ds.b 2 ; DATA XREF: sub_6DA1A+17Er ; sub_6DA1A:loc_6DC34w byte_FFFFB108: ds.b 1 ; DATA XREF: sub_6DA1A+48w ; sub_6DA1A:loc_6DA68w ... byte_FFFFB109: ds.b 1 ; DATA XREF: sub_6DA1A+1Ew ; sub_6DCEE+26w byte_FFFFB10A: ds.b 1 ; DATA XREF: sub_6DC40+50r ; sub_6DC40+5Cw ... byte_FFFFB10B: ds.b 1 ; DATA XREF: sub_6DA1A+1DAr ; sub_6DA1A+1E6w ... byte_FFFFB10C: ds.b 1 ; DATA XREF: sub_6DA1A:loc_6DB52w ; sub_6DCEE+22w ds.b 1 dword_FFFFB10E: ds.b 4 ; DATA XREF: OS2:GetPid_12EBr ; sub_84AB0+38Ew ... dword_FFFFB112: ds.b 4 ; DATA XREF: sub_84AB0+1D6w ; sub_84AB0+41Cr byte_FFFFB116: ds.b 1 ; DATA XREF: sub_45F3A+65Ar ; sub_45F3A+65Ew ... ds.b 1 word_FFFFB118: ds.b 2 ; DATA XREF: sub_84AB0:loc_84D2Aw ; sub_84AB0+650w ... word_FFFFB11A: ds.b 2 ; DATA XREF: sub_84AB0+44w ; sub_85342+Ew word_FFFFB11C: ds.b 2 ; DATA XREF: sub_84AB0+1A6w ; sub_85342+14w word_FFFFB11E: ds.b 2 ; DATA XREF: sub_84AB0+4E2r ; sub_84AB0+4E8w ... byte_FFFFB120: ds.b 1 ; DATA XREF: sub_84AB0:loc_84BB2w ; sub_84AB0+12Cw ... byte_FFFFB121: ds.b 1 ; DATA XREF: sub_84AB0:loc_84C06r ; sub_84AB0:loc_84C28w ... byte_FFFFB122: ds.b 1 ; DATA XREF: sub_84AB0+1B4r ; sub_84AB0+1DCw ... byte_FFFFB123: ds.b 1 ; DATA XREF: sub_84AB0+26Er ; sub_84AB0+2D0r ... byte_FFFFB124: ds.b 1 ; DATA XREF: sub_84AB0+4EEw ; sub_84AB0:loc_84FA2r ... ds.b 1 byte_FFFFB126: ds.b 1 ; DATA XREF: OS2:GetPid_FC47r ; sub_64914:loc_649F2w ... byte_FFFFB127: ds.b 1 ; DATA XREF: OS2:GetPid_FC48r ; sub_64914:loc_64A66w ... byte_FFFFB128: ds.b 1 ; DATA XREF: OS2:loc_434AEr ; sub_64914+76r ... byte_FFFFB129: ds.b 1 ; DATA XREF: OS2:0004349Er ; sub_64914+7Er ... byte_FFFFB12A: ds.b 1 ; DATA XREF: sub_64B3E+22w ; sub_64B3E+34r ... byte_FFFFB12B: ds.b 1 ; DATA XREF: sub_64B3E:loc_64B68r ; sub_64B3E+30w ... byte_FFFFB12C: ds.b 1 ; DATA XREF: sub_64B3E+40w ; sub_64B3E+58w ... byte_FFFFB12D: ds.b 1 ; DATA XREF: sub_64914+BAw ; sub_64914:loc_64B16w ... byte_FFFFB12E: ds.b 1 ; DATA XREF: sub_64914+D2r ; sub_64914+146r ... byte_FFFFB12F: ds.b 1 ; DATA XREF: sub_64914:loc_64AD8w ; sub_64914:loc_64B00w ... byte_FFFFB130: ds.b 1 ; DATA XREF: sub_64914+EAw ; sub_64914+1B8r ... byte_FFFFB131: ds.b 1 ; DATA XREF: sub_64914+15Ew ; sub_64914+1BEr ... byte_FFFFB132: ds.b 1 ; DATA XREF: sub_64914:loc_649DEw ; sub_64914+1D2w ... byte_FFFFB133: ds.b 1 ; DATA XREF: sub_64914:loc_64A52w ; sub_64914+1D6w ... byte_FFFFB134: ds.b 1 ; DATA XREF: sub_64914+CEw ; sub_64914+EEw ... byte_FFFFB135: ds.b 1 ; DATA XREF: sub_64914+142w ; sub_64914+162w ... byte_FFFFB136: ds.b 1 ; DATA XREF: sub_64914+D6r ; sub_64C70+46r ... byte_FFFFB137: ds.b 1 ; DATA XREF: sub_64914+14Ar ; sub_64C70+5Cr ... byte_FFFFB138: ds.b 1 ; DATA XREF: sub_64914+F2w ; sub_64914+102r ... byte_FFFFB139: ds.b 1 ; DATA XREF: sub_64914+166w ; sub_64914+174r ... byte_FFFFB13A: ds.b 1 ; DATA XREF: sub_648CC+18w ; sub_648CC:loc_648E8r ... byte_FFFFB13B: ds.b 1 ; DATA XREF: sub_648CCr sub_648CC+6w ... byte_FFFFB13C: ds.b 1 ; DATA XREF: sub_648CC+30w ; sub_64B3E+1Cr ... ds.b 1 word_FFFFB13E: ds.b 2 ; DATA XREF: sub_37CAE+Aw ; sub_37CAE:loc_37D50w ... byte_FFFFB140: ds.b 1 ; DATA XREF: sub_37D56:loc_37D8Cr ; sub_37FC2+90w ... byte_FFFFB141: ds.b 1 ; DATA XREF: sub_37FC2:loc_37FE6r ; sub_37FC2+4Aw ... byte_FFFFB142: ds.b 1 ; DATA XREF: sub_37DEE+72w ; sub_37DEE:loc_37E66w ... ds.b 1 word_FFFFB144: ds.b 2 ; DATA XREF: sub_37DEE:loc_37E14w ; sub_37DEE:loc_37E46w ... word_FFFFB146: ds.b 2 ; DATA XREF: sub_37DEEr sub_37FC2+244w ... word_FFFFB148: ds.b 2 ; DATA XREF: sub_37DEE+98w ; sub_37DEE:loc_37E8Cw ... word_FFFFB14A: ds.b 2 ; DATA XREF: sub_37FC2+124w ; sub_37FC2:loc_380F2w ... word_FFFFB14C: ds.b 2 ; DATA XREF: sub_37FC2+114w byte_FFFFB14E: ds.b 1 ; DATA XREF: sub_37FC2:loc_380D0r ; sub_37FC2+11Aw ... byte_FFFFB14F: ds.b 1 ; DATA XREF: sub_37FC2+56r ; sub_37FC2+62w ... byte_FFFFB150: ds.b 1 ; DATA XREF: sub_37FC2+1AEr ; sub_37FC2+1CEr ... ds.b 1 word_FFFFB152: ds.b 2 ; DATA XREF: sub_37FC2:loc_37FFCw ; OS1:000382F8r word_FFFFB154: ds.b 2 ; DATA XREF: DoLoopF+25Aw ; DoLoopF:loc_2AD9Ar ... byte_FFFFB156: ds.b 1 ; DATA XREF: OS1:00028D58w DoLoopC+6Ew ... byte_FFFFB157: ds.b 1 ; DATA XREF: OS1:loc_28D54w ; DoLoopC+6Aw ... byte_FFFFB158: ds.b 1 ; DATA XREF: OS1:00028D5Cw ; DoLoopF+158r ... byte_FFFFB159: ds.b 1 ; DATA XREF: OS1:00028E7Ew ; sub_47DA2:loc_488F6r ... byte_FFFFB15A: ds.b 1 ; DATA XREF: OS1:00028D60w ; OS1:00028D66w ... byte_FFFFB15B: ds.b 1 ; DATA XREF: OS1:00028D78w ; OS1:00028D7Ew ... byte_FFFFB15C: ds.b 1 ; DATA XREF: OS1:00028E86w ; sub_3E4F2:loc_3E512w ... byte_FFFFB15D: ds.b 1 ; DATA XREF: OS1:00028E82w ; sub_3E4F2+5Aw ... byte_FFFFB15E: ds.b 1 ; DATA XREF: DoLoopF+254w DoLoopF+278w ... ds.b 1 word_FFFFB160: ds.b 2 ; DATA XREF: sub_3E4F2:loc_3E896w dword_FFFFB162: ds.b 4 ; DATA XREF: sub_3E4F2+DEr ; sub_3E4F2+124w ... dword_FFFFB166: ds.b 4 ; DATA XREF: sub_3E4F2+DAr ; sub_3E4F2:loc_3E888w word_FFFFB16A: ds.b 2 ; DATA XREF: sub_6EB10+1Ew ; sub_6EE6A+46w ... word_FFFFB16C: ds.b 2 ; DATA XREF: sub_6EB10+2Ew ; sub_6EE6A+4Aw ... word_FFFFB16E: ds.b 2 ; DATA XREF: sub_6E81E:loc_6EA2Cw ; sub_6E81E:loc_6EA44r ... word_FFFFB170: ds.b 2 ; DATA XREF: sub_6E5D0+20w ; sub_6E5D0+42r ... word_FFFFB172: ds.b 2 ; DATA XREF: OS2:loc_43474r ; sub_6E5D0:loc_6E73Cw ... word_FFFFB174: ds.b 2 ; DATA XREF: sub_6E81E:loc_6EABCw ; sub_6E81E:loc_6EACEr ... byte_FFFFB176: ds.b 1 ; DATA XREF: sub_6E5D0+2Er ; sub_6E5D0+38r ... ds.b 1 word_FFFFB178: ds.b 2 ; DATA XREF: sub_6E81E+1ECr ; sub_6E81E+1F2w ... byte_FFFFB17A: ds.b 1 ; DATA XREF: sub_6E81E+10w ; sub_6E81E+26w ... ds.b 1 word_FFFFB17C: ds.b 2 ; DATA XREF: sub_6E81E+288r ; sub_6E81E+28Ew ... byte_FFFFB17E: ds.b 1 ; DATA XREF: sub_6E742+B0r ; sub_6E742:loc_6E814w byte_FFFFB17F: ds.b 1 ; DATA XREF: sub_6E742+B6r ; sub_6E742+D6w word_FFFFB180: ds.b 2 ; DATA XREF: sub_58F64+20w ; sub_58F64+B2r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFB188: ds.b 2 ; DATA XREF: sub_58F64+30w ; sub_59064+90r ... word_FFFFB18A: ds.b 2 ; DATA XREF: sub_58F4A+Er sub_5903E+8w ... word_FFFFB18C: ds.b 2 ; DATA XREF: sub_58F32+Cr ; sub_58F64+18w ... word_FFFFB18E: ds.b 2 ; DATA XREF: sub_58E3A+74r ; sub_5923E:loc_5926Cw ... word_FFFFB190: ds.b 2 ; DATA XREF: sub_58E3A:loc_58F26w word_FFFFB192: ds.b 2 ; DATA XREF: sub_58F64+3Ew ; sub_59064+8Cr byte_FFFFB194: ds.b 1 ; DATA XREF: sub_58F64:loc_58FDAw ; sub_58F64:loc_58FE8w byte_FFFFB195: ds.b 1 ; DATA XREF: sub_5923E+28r ; sub_5923E:loc_59294w ... byte_FFFFB196: ds.b 1 ; DATA XREF: sub_6DD26+28w ; sub_6DD7A+4r ... ds.b 1 word_FFFFB198: ds.b 2 ; DATA XREF: sub_6DD26+8w ; sub_6DEDA+94r ... word_FFFFB19A: ds.b 2 ; DATA XREF: sub_6DD26+Cw ; sub_6DEDA+CAr ... word_FFFFB19C: ds.b 2 ; DATA XREF: sub_6DD26+20w ; sub_6DEDA+76r ... word_FFFFB19E: ds.b 2 ; DATA XREF: sub_6DD26+24w ; sub_6DEDA:loc_6DF8Cr ... word_FFFFB1A0: ds.b 2 ; DATA XREF: sub_6DD26w sub_6DEDA+222r ... word_FFFFB1A2: ds.b 2 ; DATA XREF: sub_6DD26+4w ; sub_6DEDA+258r ... word_FFFFB1A4: ds.b 2 ; DATA XREF: sub_6DD26+18w ; sub_6DEDA+204r ... word_FFFFB1A6: ds.b 2 ; DATA XREF: sub_6DD26+1Cw ; sub_6DEDA:loc_6E11Ar ... word_FFFFB1A8: ds.b 2 ; DATA XREF: sub_6DD26+10w ; sub_6DD7A+D0r ... word_FFFFB1AA: ds.b 2 ; DATA XREF: sub_6DD26+14w ; sub_6DD7A+24r ... word_FFFFB1AC: ds.b 2 ; DATA XREF: sub_619FE:loc_61A28w ; sub_61A3E+Cr ... word_FFFFB1AE: ds.b 2 ; DATA XREF: sub_619FE+36w ; sub_61A3E+11Ar ... word_FFFFB1B0: ds.b 2 ; DATA XREF: sub_619FE+3Aw ; sub_61A3E+23Er ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFB1BC: ds.b 2 ; DATA XREF: sub_61A3E+25Ew ; sub_61A3E+26Cw ... dword_FFFFB1BE: ds.b 4 ; DATA XREF: sub_619FE:loc_61A30w byte_FFFFB1C2: ds.b 1 ; DATA XREF: sub_2340C+410r ; DoLoopC+194r ... ds.b 1 word_FFFFB1C4: ds.b 2 ; DATA XREF: sub_853A2+E4r ; sub_853A2+11Cr ... word_FFFFB1C6: ds.b 2 ; DATA XREF: sub_859CC:loc_85CE2r ; sub_859CC+31Cw ... word_FFFFB1C8: ds.b 2 ; DATA XREF: sub_2340C+20Er ; sub_859CC:loc_85CFEw word_FFFFB1CA: ds.b 2 ; DATA XREF: sub_853A2+270r ; sub_853A2+2B6r ... word_FFFFB1CC: ds.b 2 ; DATA XREF: sub_859CC:loc_85A3Ew ; sub_859CC+A8r ... word_FFFFB1CE: ds.b 2 ; DATA XREF: sub_7DD88:loc_7DDCAr ; sub_859CC+380w ... word_FFFFB1D0: ds.b 2 ; DATA XREF: sub_21094:loc_210C4r ; sub_21094:loc_2129Cr ... word_FFFFB1D2: ds.b 2 ; DATA XREF: sub_853A2:loc_85498w ; sub_853A2:loc_855A4w ... word_FFFFB1D4: ds.b 2 ; DATA XREF: sub_859CC+1D6r ; sub_8600A:loc_861FCr ... word_FFFFB1D6: ds.b 2 ; DATA XREF: sub_859CC:loc_85C00r ; sub_859CC+23Er ... word_FFFFB1D8: ds.b 2 ; DATA XREF: sub_6DEDA+1C0r ; sub_6E4FE+4Aw byte_FFFFB1DA: ds.b 1 ; DATA XREF: sub_6DEDA+36r ; sub_6DEDA+1AAr ... byte_FFFFB1DB: ds.b 1 ; DATA XREF: sub_6DD7A:loc_6DD92r ; sub_6E1FA:loc_6E3C2w ... word_FFFFB1DC: ds.b 2 ; DATA XREF: sub_6DD7A+20r ; sub_6E4FE+16w word_FFFFB1DE: ds.b 2 ; DATA XREF: sub_6DEDA:loc_6DF3Er ; sub_6DEDA:loc_6E0CCr ... byte_FFFFB1E0: ds.b 1 ; DATA XREF: sub_6E1FA+4r ; sub_6E1FA+1Cw ... ds.b 1 word_FFFFB1E2: ds.b 2 ; DATA XREF: sub_6E1FA+1A0r ; sub_6E1FA+1D2r ... word_FFFFB1E4: ds.b 2 ; DATA XREF: sub_6E1FA+170r ; sub_6E1FA+214w ... word_FFFFB1E6: ds.b 2 ; DATA XREF: sub_6E1FA+18Er ; sub_6E1FA+20Ew ... word_FFFFB1E8: ds.b 2 ; DATA XREF: sub_6E1FA+12Er ; sub_6E1FA+1ECw ... word_FFFFB1EA: ds.b 2 ; DATA XREF: sub_6E1FA+146r ; sub_6E1FA:loc_6E404w ... word_FFFFB1EC: ds.b 2 ; DATA XREF: sub_76516+260r ; sub_77246+84w ... byte_FFFFB1EE: ds.b 1 ; DATA XREF: sub_75FCA+43Aw ; sub_76A4E+320w ... ds.b 1 word_FFFFB1F0: ds.b 2 ; DATA XREF: sub_76516+3Cr ; sub_76516+1B6r ... word_FFFFB1F2: ds.b 2 ; DATA XREF: sub_75FCA+1AAr ; sub_76A4E+DAw ... word_FFFFB1F4: ds.b 2 ; DATA XREF: sub_75FCA:loc_76230r ; sub_76A4E+9Ew ... word_FFFFB1F6: ds.b 2 ; DATA XREF: sub_76A4E+5Aw ; sub_76A4E:loc_76AAEr ... word_FFFFB1F8: ds.b 2 ; DATA XREF: sub_76A4E+1Ew ; sub_76A4E:loc_76A72r ... byte_FFFFB1FA: ds.b 1 ; DATA XREF: sub_76A4E+98r ; sub_76A4E+D4r ... byte_FFFFB1FB: ds.b 1 ; DATA XREF: sub_76A4E+18r ; sub_76A4E+54r ... byte_FFFFB1FC: ds.b 1 ; DATA XREF: sub_76A4E:loc_770F8w ; sub_76A4E+76Cw ... byte_FFFFB1FD: ds.b 1 ; DATA XREF: sub_76A4E:loc_77188r ; sub_76A4E:loc_771F8w ... byte_FFFFB1FE: ds.b 1 ; DATA XREF: sub_76A4E+360w ; OS3:00077406w ... ds.b 1 byte_FFFFB200: ds.b 1 ; DATA XREF: OS1:loc_28F62w ; DoLoopC+23Ew ... ds.b 1 word_FFFFB202: ds.b 2 ; DATA XREF: OS1:00028F66w ; DoLoopC+242w ... word_FFFFB204: ds.b 2 ; DATA XREF: OS1:00028F6Aw ; DoLoopC+246w ... word_FFFFB206: ds.b 2 ; DATA XREF: OS1:00028F6Ew ; DoLoopC+24Aw ... word_FFFFB208: ds.b 2 ; DATA XREF: OS1:00028F72w ; DoLoopC+24Ew ... word_FFFFB20A: ds.b 2 ; DATA XREF: OS1:00028F76w ; DoLoopC+262w ... word_FFFFB20C: ds.b 2 ; DATA XREF: OS1:00028F7Aw ; DoLoopC+266w ... word_FFFFB20E: ds.b 2 ; DATA XREF: OS1:00028F7Ew ; DoLoopC+26Aw ... word_FFFFB210: ds.b 2 ; DATA XREF: OS1:00028F82w ; DoLoopC+26Ew ... byte_FFFFB212: ds.b 1 ; DATA XREF: sub_67410+FAr byte_FFFFB213: ds.b 1 ; DATA XREF: sub_67410:loc_67612r ; sub_67410+24Cr ... byte_FFFFB214: ds.b 1 ; DATA XREF: sub_67410+502r ; sub_692E0+C6w ... byte_FFFFB215: ds.b 1 ; DATA XREF: sub_67410+60r ; sub_69490+20w byte_FFFFB216: ds.b 1 ; DATA XREF: sub_67410+5E2r ; sub_69490+1Cw ds.b 1 word_FFFFB218: ds.b 2 ; DATA XREF: sub_69490+3Cw word_FFFFB21A: ds.b 2 ; DATA XREF: sub_67410+BCr ; sub_692E0+DCr ... word_FFFFB21C: ds.b 2 ; DATA XREF: sub_692E0:loc_693AEw ; sub_69490+14w word_FFFFB21E: ds.b 2 ; DATA XREF: sub_692E0+170r ; sub_692E0:loc_6945Er ... byte_FFFFB220: ds.b 1 ; DATA XREF: sub_692E0+14Ew ; sub_692E0+15Aw ... ds.b 1 word_FFFFB222: ds.b 2 ; DATA XREF: sub_692E0+E0r ; sub_692E0+FEr ... byte_FFFFB224: ds.b 1 ; DATA XREF: OS1:000290CEw ; DoLoopC+2E4w ... ds.b 1 word_FFFFB226: ds.b 2 ; DATA XREF: OS1:loc_290AEw ; DoLoopC+2C4w ... word_FFFFB228: ds.b 2 ; DATA XREF: OS1:000290B2w ; DoLoopC+2C8w ... word_FFFFB22A: ds.b 2 ; DATA XREF: OS1:000290B6w ; DoLoopC+2CCw ... word_FFFFB22C: ds.b 2 ; DATA XREF: OS1:000290BAw ; DoLoopC+2D0w ... word_FFFFB22E: ds.b 2 ; DATA XREF: OS1:000290BEw ; DoLoopC+2D4w ... word_FFFFB230: ds.b 2 ; DATA XREF: OS1:000290C2w ; DoLoopC+2D8w ... word_FFFFB232: ds.b 2 ; DATA XREF: OS1:000290C6w ; DoLoopC+2DCw ... word_FFFFB234: ds.b 2 ; DATA XREF: OS1:000290CAw ; DoLoopC+2E0w ... byte_FFFFB236: ds.b 1 ; DATA XREF: sub_6953Aw sub_6954Cw ... ds.b 1 word_FFFFB238: ds.b 2 ; DATA XREF: sub_694D2w word_FFFFB23A: ds.b 2 ; DATA XREF: sub_694D2+4w word_FFFFB23C: ds.b 2 ; DATA XREF: sub_694D2+8w word_FFFFB23E: ds.b 2 ; DATA XREF: sub_694D2+Cw word_FFFFB240: ds.b 2 ; DATA XREF: sub_694D2+10w word_FFFFB242: ds.b 2 ; DATA XREF: sub_694D2+14w word_FFFFB244: ds.b 2 ; DATA XREF: sub_694D2+18w word_FFFFB246: ds.b 2 ; DATA XREF: sub_694D2+1Cw word_FFFFB248: ds.b 2 ; DATA XREF: sub_2FC92+C0w ; sub_2FC92:loc_2FF4Cw ... word_FFFFB24A: ds.b 2 ; DATA XREF: sub_299AC+3Ew ; DoLoopA:loc_29C98w ... byte_FFFFB24C: ds.b 1 ; DATA XREF: DoLoopA+21Aw ; DoLoopA:loc_29C94w ... byte_FFFFB24D: ds.b 1 ; DATA XREF: sub_299AC+42r ; DoLoopA+228r ... byte_FFFFB24E: ds.b 1 ; DATA XREF: sub_2FC92+100r ; sub_2FC92+1A2r ... byte_FFFFB24F: ds.b 1 ; DATA XREF: sub_299AC+76w ; DoLoopA+24Ar ... byte_FFFFB250: ds.b 1 ; DATA XREF: sub_299AC+38r ; DoLoopA+23Ar ... byte_FFFFB251: ds.b 1 ; DATA XREF: sub_2FC92+Er ; sub_2FC92:loc_2FE9Aw ... byte_FFFFB252: ds.b 1 ; DATA XREF: sub_2FC54+4r ; sub_2FC92:loc_2FF7Ar ... ds.b 1 word_FFFFB254: ds.b 2 ; DATA XREF: sub_2FC92+BCw ; sub_2FC92+19Ew ... word_FFFFB256: ds.b 2 ; DATA XREF: sub_2FC92+24Cr ; OS1:loc_2FFE8w ... word_FFFFB258: ds.b 2 ; DATA XREF: sub_2FC92+B8w ; sub_2FC92+FCw ... word_FFFFB25A: ds.b 2 ; DATA XREF: sub_6D316+2Cw byte_FFFFB25C: ds.b 1 ; DATA XREF: sub_6D29Ew sub_6D316+152w ... byte_FFFFB25D: ds.b 1 ; DATA XREF: sub_6D29E+28w ; sub_6D316+17Ew ... word_FFFFB25E: ds.b 2 ; DATA XREF: sub_6D29E+Cw ; sub_6D316+4Cr ... word_FFFFB260: ds.b 2 ; DATA XREF: sub_6D29E+10w ; sub_6D316:loc_6D36Cr ... byte_FFFFB262: ds.b 1 ; DATA XREF: sub_6D29E+4w ; sub_6D316+1E0r ... byte_FFFFB263: ds.b 1 ; DATA XREF: sub_6D22Aw sub_6D29E+2Cw ... word_FFFFB264: ds.b 2 ; DATA XREF: sub_6D29E+1Cw ; sub_6D316+94w ... word_FFFFB266: ds.b 2 ; DATA XREF: sub_6D29E+16w ; sub_6D316+9Cr ... byte_FFFFB268: ds.b 1 ; DATA XREF: sub_6D29E+24w ; sub_6D316+2D8r ... byte_FFFFB269: ds.b 1 ; DATA XREF: sub_6D29E+8w ; sub_6D316+CEr ... word_FFFFB26A: ds.b 2 ; DATA XREF: sub_6D316+3Aw ; sub_6D316+15Er byte_FFFFB26C: ds.b 1 ; DATA XREF: sub_3284E+Er ; sub_32F08+36w ... ds.b 1 word_FFFFB26E: ds.b 2 ; DATA XREF: sub_F1C:loc_F70w ; sub_F1C+5Cr ... word_FFFFB270: ds.b 2 ; DATA XREF: sub_F1C:loc_F80w ; sub_32A0C:loc_32B82r ... byte_FFFFB272: ds.b 1 ; DATA XREF: OS1:0003003Aw ; OS1:000301C0w ... ds.b 1 word_FFFFB274: ds.b 2 ; DATA XREF: sub_2CC22+5Cr ; sub_3284E+CCw ... byte_FFFFB276: ds.b 1 ; DATA XREF: sub_32EAA+1Ar ; sub_32EAA+3Ew ... ds.b 1 word_FFFFB278: ds.b 2 ; DATA XREF: sub_32F08+2Ar ; sub_32F08+46w byte_FFFFB27A: ds.b 1 ; DATA XREF: sub_32678+20r ; sub_32678:loc_326A4w ... byte_FFFFB27B: ds.b 1 ; DATA XREF: sub_32678+30w ; sub_32678+80r ... byte_FFFFB27C: ds.b 1 ; DATA XREF: sub_32678+7Ar ; sub_32678+9Cw ... ds.b 1 byte_FFFFB27E: ds.b 1 ; DATA XREF: DoLoopB+6Ar DoLoopB+DAw ... byte_FFFFB27F: ds.b 1 ; DATA XREF: DoLoopF+436r ; DoLoopF:loc_2AFC2w ... byte_FFFFB280: ds.b 1 ; DATA XREF: DoLoopE+19Ar DoLoopE+286w ... byte_FFFFB281: ds.b 1 ; DATA XREF: DoLoopG+FCr DoLoopG+382w ... byte_FFFFB282: ds.b 1 ; DATA XREF: DoLoopG:loc_2B5FEr ; DoLoopG+4DCw ... ds.b 1 word_FFFFB284: ds.b 2 ; DATA XREF: DoLoopC+3F4w sub_2B636w word_FFFFB286: ds.b 2 ; DATA XREF: DoLoopD:loc_2A85Cw ; sub_2B636+6w word_FFFFB288: ds.b 2 ; DATA XREF: DoLoopE:loc_2AB28w ; sub_2B636+Cw word_FFFFB28A: ds.b 2 ; DATA XREF: DoLoopF+5F2w ; sub_2B636+12w word_FFFFB28C: ds.b 2 ; DATA XREF: DoLoopG:loc_2B624w ; sub_2B636+18w word_FFFFB28E: ds.b 2 ; DATA XREF: sub_8093C+8w ; sub_8093C+32r word_FFFFB290: ds.b 2 ; DATA XREF: sub_35D1C+CAr ; sub_5EFCC+2Cr ... word_FFFFB292: ds.b 2 ; DATA XREF: sub_2637Cr sub_2C4F4+6Cr ... word_FFFFB294: ds.b 2 ; DATA XREF: sub_3BB66+34r ; sub_3C1CC+8r ... word_FFFFB296: ds.b 2 ; DATA XREF: OS2:00049D70r ; sub_6E4FE+10r ... word_FFFFB298: ds.b 2 ; DATA XREF: sub_22F92:loc_230DAr ; sub_2CC22:loc_2CEB0r ... word_FFFFB29A: ds.b 2 ; DATA XREF: sub_7B33A+98r ; sub_807E0+F6w ... word_FFFFB29C: ds.b 2 ; DATA XREF: sub_807E0:loc_80878w ; sub_807E0:loc_8087Ew ... byte_FFFFB29E: ds.b 1 ; DATA XREF: sub_61A3E+32r ; sub_61E4C:loc_61EC0w byte_FFFFB29F: ds.b 1 ; DATA XREF: sub_61A3E:loc_61AA4r ; sub_61E4C+8w word_FFFFB2A0: ds.b 2 ; DATA XREF: sub_269C2+8r ; sub_61ECE+2Cw ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFB2AE: ds.b 1 ; DATA XREF: sub_2BA40+76Er ; OS2:loc_5F416w ... byte_FFFFB2AF: ds.b 1 ; DATA XREF: sub_5F4A6+1Cr ; sub_5F4A6+22w ... byte_FFFFB2B0: ds.b 1 ; DATA XREF: sub_5F4A6+Ar ; sub_5F4A6+10w ... byte_FFFFB2B1: ds.b 1 ; DATA XREF: sub_5F4A6+74r ; sub_5F4A6+7Aw ... byte_FFFFB2B2: ds.b 1 ; DATA XREF: sub_5F4A6:loc_5F508r ; sub_5F4A6+68w ... ds.b 1 word_FFFFB2B4: ds.b 2 ; DATA XREF: OS2:0005F40Cw ; sub_5F566+90r ... word_FFFFB2B6: ds.b 2 ; DATA XREF: OS2:0005F410w ; sub_5F566+2Cr word_FFFFB2B8: ds.b 2 ; DATA XREF: sub_5F3ECw sub_5F566+54w ... word_FFFFB2BA: ds.b 2 ; DATA XREF: sub_5F3EC+4w ; sub_5F566:loc_5F618r ... word_FFFFB2BC: ds.b 2 ; DATA XREF: OS2:0005F45Er ; OS2:loc_5F46Cw ... byte_FFFFB2BE: ds.b 1 ; DATA XREF: sub_853A2+Cr ; sub_853A2+32r ... ds.b 1 word_FFFFB2C0: ds.b 2 ; DATA XREF: sub_853A2+D6w ; sub_853A2+DEr ... word_FFFFB2C2: ds.b 2 ; DATA XREF: sub_8600A+50r ; sub_8600A+DAr ... word_FFFFB2C4: ds.b 2 ; DATA XREF: sub_8600A+198r ; sub_8640C:loc_86472w ... word_FFFFB2C6: ds.b 2 ; DATA XREF: sub_853A2+86w ; sub_853A2:loc_8542Er ... word_FFFFB2C8: ds.b 2 ; DATA XREF: sub_853A2+60w ; sub_853A2:loc_85408r ... word_FFFFB2CA: ds.b 2 ; DATA XREF: sub_853A2+3Aw ; sub_853A2:loc_853E2r ... word_FFFFB2CC: ds.b 2 ; DATA XREF: sub_853A2+14w ; sub_853A2:loc_853BCr ... byte_FFFFB2CE: ds.b 1 ; DATA XREF: sub_7B6F8:loc_7B732w ; sub_7B6F8:loc_7B736r ... byte_FFFFB2CF: ds.b 1 ; DATA XREF: sub_2452C+3Er ; sub_7B33A:loc_7B3ACw ... byte_FFFFB2D0: ds.b 1 ; DATA XREF: sub_24716+199Cr ; sub_24716+1A00r ... ds.b 1 word_FFFFB2D2: ds.b 2 ; DATA XREF: sub_7B33A+7Aw ; sub_7B33A+30Ar ... word_FFFFB2D4: ds.b 2 ; DATA XREF: sub_7B33A+16Aw ; sub_7B33A+1A2w ... word_FFFFB2D6: ds.b 2 ; DATA XREF: sub_7B33A+F0w ; sub_7B33A+FAw ... byte_FFFFB2D8: ds.b 1 ; DATA XREF: sub_7B33A+31Ew ; sub_7B33A+35Ar ... byte_FFFFB2D9: ds.b 1 ; DATA XREF: sub_7B33A+2F0w ; sub_7B33A:loc_7B63Er ... byte_FFFFB2DA: ds.b 1 ; DATA XREF: sub_7B33A+2E8r ; sub_7B33A:loc_7B62Ew ... byte_FFFFB2DB: ds.b 1 ; DATA XREF: sub_7B33A+3Cw ; sub_7B33A:loc_7B37Cr ... byte_FFFFB2DC: ds.b 1 ; DATA XREF: sub_7B33A+26w ; sub_7B33A+258r ... ds.b 1 byte_FFFFB2DE: ds.b 1 ; DATA XREF: sub_27590+20w ; sub_27590:loc_275B8w ... ds.b 1 byte_FFFFB2E0: ds.b 1 ; DATA XREF: OS1:00028AA2w ; OS1:loc_28ABEw ... ds.b 1 word_FFFFB2E2: ds.b 2 ; DATA XREF: OS1:00028AC2w ; sub_2F5BC+14w ... byte_FFFFB2E4: ds.b 1 ; DATA XREF: OS1:00028AAAw ; OS1:00028ACEw ... byte_FFFFB2E5: ds.b 1 ; DATA XREF: OS1:00028AA6w ; OS1:00028AC6w ... word_FFFFB2E6: ds.b 2 ; DATA XREF: OS1:00028ACAw ; sub_2F5BC:loc_2F5E8w ... byte_FFFFB2E8: ds.b 1 ; DATA XREF: OS1:00028AAEw ; OS1:loc_28AD2w ... byte_FFFFB2E9: ds.b 1 ; DATA XREF: OS1:00028AB4w ; sub_2F512+90w byte_FFFFB2EA: ds.b 1 ; DATA XREF: OS1:loc_28AD8w ; sub_2F5BC+14Cw ... byte_FFFFB2EB: ds.b 1 ; DATA XREF: OS1:loc_28ADCw ; sub_2F386+Cw ... byte_FFFFB2EC: ds.b 1 ; DATA XREF: OS1:00028AB8w ; sub_2F512+8w ds.b 1 byte_FFFFB2EE: ds.b 1 ; DATA XREF: sub_31AE2+20Er ; sub_32262+8r ... byte_FFFFB2EF: ds.b 1 ; DATA XREF: DoLoopA:loc_29CFAr ; DoLoopA:loc_29D9Er ... byte_FFFFB2F0: ds.b 1 ; DATA XREF: OS1:00035794w ; OS1:000357A6w ... byte_FFFFB2F1: ds.b 1 ; DATA XREF: OS1:00035798w ; OS1:000357AAw ... byte_FFFFB2F2: ds.b 1 ; DATA XREF: OS1:loc_357C0w ; sub_35A7A:loc_35A82w ... byte_FFFFB2F3: ds.b 1 ; DATA XREF: OS1:000357C4w ; sub_35A7A+Cw ... word_FFFFB2F4: ds.b 2 ; DATA XREF: OS1:loc_357B6w ; sub_3593C+5Cr ... word_FFFFB2F6: ds.b 2 ; DATA XREF: OS1:000357BAw ; sub_3593C+D0r ... byte_FFFFB2F8: ds.b 1 ; DATA XREF: OS1:loc_35790w ; OS1:loc_357A2w ... ds.b 1 byte_FFFFB2FA: ds.b 1 ; DATA XREF: OS1:000357AEw ; sub_3593C+7Aw ... byte_FFFFB2FB: ds.b 1 ; DATA XREF: OS1:000357B2w ; sub_3593C+EEw ... byte_FFFFB2FC: ds.b 1 ; DATA XREF: sub_3580C:loc_35892w ; sub_3580C:loc_3589Aw ... ds.b 1 word_FFFFB2FE: ds.b 2 ; DATA XREF: sub_585F4+C0w ; sub_585F4:loc_586FAr ... word_FFFFB300: ds.b 2 ; DATA XREF: sub_585F4:loc_58728w ; sub_585F4:loc_5876Cr ... word_FFFFB302: ds.b 2 ; DATA XREF: sub_585F4:loc_586DCw ; sub_585F4+102w ... word_FFFFB304: ds.b 2 ; DATA XREF: sub_58D08+Aw ; sub_86CBE:loc_86D7Cr ... word_FFFFB306: ds.b 2 ; DATA XREF: sub_58D08+6w ; sub_86CBE:loc_86D68r ... ds.b 1 byte_FFFFB309: ds.b 1 ; DATA XREF: sub_585F4+1Aw ; sub_585F4+2Aw ... byte_FFFFB30A: ds.b 1 ; DATA XREF: sub_58914+14w ; sub_58914+24w ... byte_FFFFB30B: ds.b 1 ; DATA XREF: sub_4EFF2+398r ; sub_585F4+Ew ... word_FFFFB30C: ds.b 2 ; DATA XREF: sub_24716+19E8r ; sub_261CA+1Ar ... word_FFFFB30E: ds.b 2 ; DATA XREF: sub_582B0+1E0w ; sub_582B0:loc_584E4w ... word_FFFFB310: ds.b 2 ; DATA XREF: sub_582B0+24Cr ; sub_58D18:loc_58D52w ... byte_FFFFB312: ds.b 1 ; DATA XREF: sub_86CBE+8w ; sub_86CBE+1Ew ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFB31A: ds.b 2 ; DATA XREF: sub_299AC+ACr ; DoLoopA+188r ... word_FFFFB31C: ds.b 2 ; DATA XREF: sub_299AC+9Ar ; DoLoopA+176r ... word_FFFFB31E: ds.b 2 ; DATA XREF: sub_299AC+88r ; DoLoopA:loc_29BD8r ... word_FFFFB320: ds.b 2 ; DATA XREF: DoLoopA:loc_29BC8w ; sub_3B7F0+10r ... word_FFFFB322: ds.b 2 ; DATA XREF: sub_3B82A+4Er ; sub_3B82A+5Aw ... word_FFFFB324: ds.b 2 ; DATA XREF: sub_3B82A+92r ; sub_3B82A+B8w ... word_FFFFB326: ds.b 2 ; DATA XREF: sub_3B82A+6Er ; sub_3B82A+76r ... dword_FFFFB328: ds.b 4 ; DATA XREF: sub_74206+Aw ; sub_7424A+34w ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFB330: ds.b 2 ; DATA XREF: sub_74206+6w ; sub_7424A+30w byte_FFFFB332: ds.b 1 ; DATA XREF: sub_741ECw sub_741EC+6w ... byte_FFFFB333: ds.b 1 ; DATA XREF: sub_741EC+14w ; sub_7424A+40w ... byte_FFFFB334: ds.b 1 ; DATA XREF: sub_741EC+Cw ; sub_7424A+38w ... byte_FFFFB335: ds.b 1 ; DATA XREF: sub_741EC+10w ; sub_7424A+3Cw ... byte_FFFFB336: ds.b 1 ; DATA XREF: IsIdleAirLearningActive+120r ; IsIdleAirLearningActive+12Cw ... ds.b 1 word_FFFFB338: ds.b 2 ; DATA XREF: sub_7AD7E+6Er ; sub_7AD7E+198w word_FFFFB33A: ds.b 2 ; DATA XREF: sub_7AD7E+9Cr ; sub_7AD7E+14Cw byte_FFFFB33C: ds.b 1 ; DATA XREF: sub_7AD7E+B6w ; sub_7AD7E:loc_7AEC6w ds.b 1 word_FFFFB33E: ds.b 2 ; DATA XREF: sub_7AD7E+58r ; sub_7AD7E:loc_7AF10w word_FFFFB340: ds.b 2 ; DATA XREF: sub_7AD7E:loc_7AEBCw ; sub_7AD7E:loc_7AEDEw ... word_FFFFB342: ds.b 2 ; DATA XREF: sub_7AD7E+Ew ; sub_7AD7E:loc_7AD94w ... byte_FFFFB344: ds.b 1 ; DATA XREF: sub_4DD5C+CD0w ; sub_4DD5C:loc_4EA96w ... ds.b 1 word_FFFFB346: ds.b 2 ; DATA XREF: sub_592EA+6w ; sub_592EA+10r ... word_FFFFB348: ds.b 2 ; DATA XREF: sub_592EA+2Er ; sub_592EA:loc_59326w ... word_FFFFB34A: ds.b 2 ; DATA XREF: sub_59368+10r ; sub_59368:loc_59386w ... word_FFFFB34C: ds.b 2 ; DATA XREF: sub_59368:loc_59422w ; sub_59368+CEw ... byte_FFFFB34E: ds.b 1 ; DATA XREF: sub_5955E+2Aw ; sub_5955E:loc_59596w ... ds.b 1 word_FFFFB350: ds.b 2 ; DATA XREF: sub_595C0+16w ; sub_595C0+22r ... byte_FFFFB352: ds.b 1 ; DATA XREF: sub_32324+72r ; sub_3284E:loc_328D4r ... ds.b 1 word_FFFFB354: ds.b 2 ; DATA XREF: sub_31AE2:loc_31CCAr ; sub_7C8A2:loc_7CAA6w ... byte_FFFFB356: ds.b 1 ; DATA XREF: sub_3284E+8Cr ; sub_7C8A2+1FCw ... byte_FFFFB357: ds.b 1 ; DATA XREF: sub_7C8A2:loc_7CA30w ; sub_7C8A2+19Cr ... word_FFFFB358: ds.b 2 ; DATA XREF: sub_7C8A2+4Cr ; sub_7C8A2:loc_7C8FAw ... word_FFFFB35A: ds.b 2 ; DATA XREF: sub_7C8A2+68r ; sub_7C8A2:loc_7C916w ... byte_FFFFB35C: ds.b 1 ; DATA XREF: sub_7C8A2:loc_7C8CEw ; sub_7C8A2:loc_7C8D6w ... byte_FFFFB35D: ds.b 1 ; DATA XREF: sub_7C8A2+20r ; sub_7C8A2:loc_7C8DAw byte_FFFFB35E: ds.b 1 ; DATA XREF: sub_7C8A2+26r ; sub_7C8A2+3Cw ds.b 1 word_FFFFB360: ds.b 2 ; DATA XREF: sub_6D798w sub_6D7FC+28r ... word_FFFFB362: ds.b 2 ; DATA XREF: sub_6D798+4w ; sub_6D7FC:loc_6D842r ... word_FFFFB364: ds.b 2 ; DATA XREF: sub_6D798+8w ; sub_6D7FC+5Er ... word_FFFFB366: ds.b 2 ; DATA XREF: sub_6D798+Cw ; sub_6D7FC:loc_6D878r ... word_FFFFB368: ds.b 2 ; DATA XREF: sub_6D798+10w ; sub_6D944+44w ... word_FFFFB36A: ds.b 2 ; DATA XREF: sub_6D798+14w ; sub_6D944:loc_6D99Ar ... byte_FFFFB36C: ds.b 1 ; DATA XREF: sub_6D798+18w sub_6D7D0w ... ds.b 1 word_FFFFB36E: ds.b 2 ; DATA XREF: sub_138E:loc_159Ew ; sub_29320:loc_29380w ... byte_FFFFB370: ds.b 1 ; DATA XREF: sub_138E+220w ; sub_1C26+19Er ... byte_FFFFB371: ds.b 1 ; DATA XREF: sub_138E+22Aw ; sub_29320+7Aw ... byte_FFFFB372: ds.b 1 ; DATA XREF: sub_138E+234w ; sub_29320+84w ... byte_FFFFB373: ds.b 1 ; DATA XREF: sub_138E+23Ew ; sub_29320+8Ew ... byte_FFFFB374: ds.b 1 ; DATA XREF: sub_138E+248w ; sub_29320+98w ... byte_FFFFB375: ds.b 1 ; DATA XREF: sub_138E+252w ; sub_29320+A2w ... byte_FFFFB376: ds.b 1 ; DATA XREF: sub_138E+25Cw ; sub_29320+ACw ... byte_FFFFB377: ds.b 1 ; DATA XREF: sub_138E+266w ; sub_29320+B6w ... byte_FFFFB378: ds.b 1 ; DATA XREF: sub_138E+270w ; sub_29320+C0w ... byte_FFFFB379: ds.b 1 ; DATA XREF: sub_138E+27Aw ; sub_2340C+27Cr ... byte_FFFFB37A: ds.b 1 ; DATA XREF: sub_138E+284w ; sub_1958+E2r ... ds.b 1 byte_FFFFB37C: ds.b 1 ; DATA XREF: sub_47B5C:loc_47B72r ; sub_4A71A:loc_4A9B4w ... ds.b 1 word_FFFFB37E: ds.b 2 ; DATA XREF: sub_4A71A+A0w ; sub_4A71A+1A6r byte_FFFFB380: ds.b 1 ; DATA XREF: sub_4A71A:loc_4A8FCr ; sub_4A71A+244w ... byte_FFFFB381: ds.b 1 ; DATA XREF: sub_4A71A+1DCr ; sub_4A71A+214w ... byte_FFFFB382: ds.b 1 ; DATA XREF: sub_4A71A+116r ; sub_4A71A+1E8r ... ds.b 1 word_FFFFB384: ds.b 2 ; DATA XREF: sub_4A71A+1C8r ; sub_4A71A+260w ... word_FFFFB386: ds.b 2 ; DATA XREF: sub_4A71A+1EEr ; sub_4A71A+220w ... byte_FFFFB388: ds.b 1 ; DATA XREF: sub_4A71A+208r ; sub_4A71A:loc_4A928w ... ds.b 1 word_FFFFB38A: ds.b 2 ; DATA XREF: sub_559D6+ED0r ; sub_559D6+FC0r ... byte_FFFFB38C: ds.b 1 ; DATA XREF: sub_559D6+E46r ; sub_559D6+E50r ... ds.b 1 word_FFFFB38E: ds.b 2 ; DATA XREF: sub_582B0+22w ; sub_582B0+5Cr ... word_FFFFB390: ds.b 2 ; DATA XREF: sub_582B0+44w ; sub_582B0+150r ... word_FFFFB392: ds.b 2 ; DATA XREF: sub_5855C+3Ew ; sub_5855C:loc_585BAr ... byte_FFFFB394: ds.b 1 ; DATA XREF: sub_582B0+Cr ; sub_582B0+12w ... byte_FFFFB395: ds.b 1 ; DATA XREF: sub_582B0+Cw ; sub_582B0+E0r byte_FFFFB396: ds.b 1 ; DATA XREF: sub_582B0+48w ; sub_582B0+80r ... ds.b 1 word_FFFFB398: ds.b 2 ; DATA XREF: sub_4ABB2:loc_4AC1Ar ; sub_4ABB2+6Cw word_FFFFB39A: ds.b 2 ; DATA XREF: sub_4ABB2+9Cr ; sub_4ABB2:loc_4AC54w ... word_FFFFB39C: ds.b 2 ; DATA XREF: sub_4ABB2+4Cr ; sub_4ABB2:loc_4AC0Cw ... word_FFFFB39E: ds.b 2 ; DATA XREF: sub_4ABB2+1Ew word_FFFFB3A0: ds.b 2 ; DATA XREF: sub_4ABB2+16w word_FFFFB3A2: ds.b 2 ; DATA XREF: sub_4ABB2+36r ; sub_4ABB2:loc_4ABF2w ... byte_FFFFB3A4: ds.b 1 ; DATA XREF: sub_4ABB2+96r ; sub_4ABB2+AEw ds.b 1 word_FFFFB3A6: ds.b 2 ; DATA XREF: sub_5D8C4+16w ; sub_5D8C4+42r ... word_FFFFB3A8: ds.b 2 ; DATA XREF: sub_5D8C4+20w ; sub_5D8C4:loc_5D97Er unk_FFFFB3AA: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFB3B0: ds.b 2 ; DATA XREF: sub_5DA34:loc_5DB7Aw byte_FFFFB3B2: ds.b 1 ; DATA XREF: sub_5DA34+14Ew ds.b 1 word_FFFFB3B4: ds.b 2 ; DATA XREF: sub_56AE4:loc_56B08w ; sub_56AE4:loc_56C3Aw ... word_FFFFB3B6: ds.b 2 ; DATA XREF: sub_56AE4+DCw ; sub_56AE4:loc_56C2Ar ... word_FFFFB3B8: ds.b 2 ; DATA XREF: sub_56AE4+104w ; sub_56AE4:loc_56C14r ... word_FFFFB3BA: ds.b 2 ; DATA XREF: sub_56AE4+1E4w ; sub_56AE4:loc_56CF4r ... word_FFFFB3BC: ds.b 2 ; DATA XREF: sub_56D72+106r ; sub_56D72:loc_56E86w ... word_FFFFB3BE: ds.b 2 ; DATA XREF: sub_56D72+C2r ; sub_56D72+142r ... byte_FFFFB3C0: ds.b 1 ; DATA XREF: sub_56AE4+B2r ; sub_56AE4+B8w ... ds.b 1 byte_FFFFB3C2: ds.b 1 ; DATA XREF: sub_2C60E+6r ; sub_2C60E+34w ... ds.b 1 word_FFFFB3C4: ds.b 2 ; DATA XREF: sub_2C4F4+24r ; sub_2C4F4+106r ... word_FFFFB3C6: ds.b 2 ; DATA XREF: sub_2C4F4+74r ; sub_2C4F4+7Ew ... word_FFFFB3C8: ds.b 2 ; DATA XREF: sub_2C4F4+B2r ; sub_2C4F4+C6r ... word_FFFFB3CA: ds.b 2 ; DATA XREF: sub_2C60E+Cr ; sub_2C60E+12w ... byte_FFFFB3CC: ds.b 1 ; DATA XREF: sub_2C4F4:loc_2C506r ; sub_2C4F4:loc_2C52Ew ... byte_FFFFB3CD: ds.b 1 ; DATA XREF: sub_2C4F4+8w ; sub_2C4F4:loc_2C57Aw ... byte_FFFFB3CE: ds.b 1 ; DATA XREF: sub_4B054+4Cr ; sub_52E44+Cr ... ds.b 1 word_FFFFB3D0: ds.b 2 ; DATA XREF: sub_52E70+108w ; sub_52E70:loc_52FCEr ... word_FFFFB3D2: ds.b 2 ; DATA XREF: sub_52E70:loc_52F5Er ; sub_52E70+118r ... word_FFFFB3D4: ds.b 2 ; DATA XREF: sub_53008+CEw ; sub_53008:loc_5312Er ... word_FFFFB3D6: ds.b 2 ; DATA XREF: sub_53008:loc_530C2r ; sub_53008+DEr ... word_FFFFB3D8: ds.b 2 ; DATA XREF: sub_53008+1Cw ; sub_53008:loc_5302Er ... word_FFFFB3DA: ds.b 2 ; DATA XREF: sub_53F90+6Ew ; sub_53F90+B8r ... word_FFFFB3DC: ds.b 2 ; DATA XREF: sub_53F90+76r ; sub_53F90:loc_54014w ... word_FFFFB3DE: ds.b 2 ; DATA XREF: sub_53F90+152w ; sub_53F90+1A0r ... word_FFFFB3E0: ds.b 2 ; DATA XREF: sub_53F90+15Ar ; sub_53F90:loc_540F8w ... word_FFFFB3E2: ds.b 2 ; DATA XREF: sub_53F90+24r ; sub_53F90:loc_53FC2w ... word_FFFFB3E4: ds.b 2 ; DATA XREF: sub_53F90+108r ; sub_53F90:loc_540A6w ... word_FFFFB3E6: ds.b 2 ; DATA XREF: sub_6AF7C+Cr sub_7AAA8+8w ... word_FFFFB3E8: ds.b 2 ; DATA XREF: sub_200DE+CEr ; sub_24716+1162r ... word_FFFFB3EA: ds.b 2 ; DATA XREF: OS2:GetPid_000F_IntakeAirTemperaturer ; sub_5F566+7Ar ... word_FFFFB3EC: ds.b 2 ; DATA XREF: sub_35D1C+4r ; sub_7A886:loc_7A896r ... word_FFFFB3EE: ds.b 2 ; DATA XREF: OS1:loc_2C746r ; sub_2CB78+Ar ... word_FFFFB3F0: ds.b 2 ; DATA XREF: OS2:GetPid_12E2r ; sub_66414+4r ... byte_FFFFB3F2: ds.b 1 ; DATA XREF: sub_4C664:loc_4C7B6w ; sub_4C664:loc_4C7EAw ... byte_FFFFB3F3: ds.b 1 ; DATA XREF: sub_4C664+156w ; sub_4C664+18Aw ... byte_FFFFB3F4: ds.b 1 ; DATA XREF: sub_4B866:loc_4B87Ar ; sub_4CAB8+32w ... byte_FFFFB3F5: ds.b 1 ; DATA XREF: sub_4BD8C:loc_4BDEEr ; sub_4CA06+70w ... byte_FFFFB3F6: ds.b 1 ; DATA XREF: sub_4C570:loc_4C652w ; sub_4C664:loc_4C766w ... byte_FFFFB3F7: ds.b 1 ; DATA XREF: sub_4C664:loc_4C7C2w ; sub_4C664:loc_4C7F6w ... byte_FFFFB3F8: ds.b 1 ; DATA XREF: sub_4B62A:loc_4B63Er ; sub_4C664+15Aw ... byte_FFFFB3F9: ds.b 1 ; DATA XREF: sub_2828E+14w ; sub_2828E+1Ew ... byte_FFFFB3FA: ds.b 1 ; DATA XREF: sub_4C570+D0w ; sub_4C570+DCw ... ds.b 1 word_FFFFB3FC: ds.b 2 ; DATA XREF: sub_4C664+9Er ; sub_4C664+ACw ... word_FFFFB3FE: ds.b 2 ; DATA XREF: sub_4C30C:loc_4C462w ; sub_4C30C:loc_4C4A8w ... word_FFFFB400: ds.b 2 ; DATA XREF: sub_4C30C:loc_4C49Aw ; sub_4C30C+1A0w word_FFFFB402: ds.b 2 ; DATA XREF: sub_4C30C:loc_4C428r ; sub_4C30C:loc_4C488r ... word_FFFFB404: ds.b 2 ; DATA XREF: sub_4C30C:loc_4C3BEr ; sub_4C30C+144r ... word_FFFFB406: ds.b 2 ; DATA XREF: sub_4C30C:loc_4C39Ew ; sub_4C30C+FCr ... word_FFFFB408: ds.b 2 ; DATA XREF: sub_4C30C+80r ; sub_4C30C:loc_4C3F2r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFB412: ds.b 2 ; DATA XREF: OS2:GetPid_1992_TimeofLatestShiftr ; sub_505A4+28r ... byte_FFFFB414: ds.b 1 ; DATA XREF: sub_4EFF2+12w ; sub_5D8C4+2r ... ds.b 1 word_FFFFB416: ds.b 2 ; DATA XREF: sub_45F3A:loc_46912r ; sub_45F3A+A02r ... dword_FFFFB418: ds.b 4 ; DATA XREF: sub_75DDC:loc_75E54r ; sub_75DDC+7Cw ... dword_FFFFB41C: ds.b 4 ; DATA XREF: OS3:00075DC2w ; sub_75DDC+12r ... word_FFFFB420: ds.b 2 ; DATA XREF: DoLoopA+3B4r DoLoopA+3C0w byte_FFFFB422: ds.b 1 ; DATA XREF: sub_307A6:loc_3088Cr ; sub_60E42+F6w ... byte_FFFFB423: ds.b 1 ; DATA XREF: sub_307A6:loc_30856r ; sub_307A6+C4r ... byte_FFFFB424: ds.b 1 ; DATA XREF: sub_2BA40+616r ; sub_60E42+FAw ... byte_FFFFB425: ds.b 1 ; DATA XREF: sub_60E42+13Aw ; sub_60E42:loc_60F86w ... byte_FFFFB426: ds.b 1 ; DATA XREF: DoLoopA+3BCw ; sub_60E42:loc_60F40r ... byte_FFFFB427: ds.b 1 ; DATA XREF: sub_60E42+104r ; sub_60E42+13Ew ... word_FFFFB428: ds.b 2 ; DATA XREF: sub_60E42+126r ; sub_60E42:loc_60FA0w ... byte_FFFFB42A: ds.b 1 ; DATA XREF: sub_751B4+2r ; sub_75CAC+24w ... byte_FFFFB42B: ds.b 1 ; DATA XREF: sub_751F8+2r ; sub_75D26+24w ... word_FFFFB42C: ds.b 2 ; DATA XREF: sub_75CAC+1Ew ; sub_75CD6:loc_75D12w ... word_FFFFB42E: ds.b 2 ; DATA XREF: sub_75D26+1Ew ; sub_75D50:loc_75D8Cw ... word_FFFFB430: ds.b 2 ; DATA XREF: sub_75CAC+1Aw ; sub_75CD6+8w ... word_FFFFB432: ds.b 2 ; DATA XREF: sub_75D26+1Aw ; sub_75D50+8w ... byte_FFFFB434: ds.b 1 ; DATA XREF: sub_6CC3C+4r sub_6CD00+4r ... byte_FFFFB435: ds.b 1 ; DATA XREF: sub_6C8AE:loc_6C8D6r ; sub_6CD76+14w byte_FFFFB436: ds.b 1 ; DATA XREF: sub_6C8AE+1Er ; sub_6CD76+18w byte_FFFFB437: ds.b 1 ; DATA XREF: sub_6C8AE:loc_6C902r ; sub_6CD76+8w byte_FFFFB438: ds.b 1 ; DATA XREF: sub_6C8AE:loc_6C8F8r ; sub_6CD76+Cw byte_FFFFB439: ds.b 1 ; DATA XREF: OS2:00043428r sub_6C7C0r ... byte_FFFFB43A: ds.b 1 ; DATA XREF: sub_6C7C0+4r sub_6CD76w ds.b 1 word_FFFFB43C: ds.b 2 ; DATA XREF: sub_6CDBA+3Cr ; sub_6CDBA+5Ew byte_FFFFB43E: ds.b 1 ; DATA XREF: sub_4FCA2+4Cr ; sub_4FCA2:loc_4FCFAw ... byte_FFFFB43F: ds.b 1 ; DATA XREF: sub_4FCA2:loc_4FD1Er ; sub_4FCA2:loc_4FD2Aw ... byte_FFFFB440: ds.b 1 ; DATA XREF: sub_4FCA2:loc_4FD58r ; sub_4FCA2:loc_4FD64w ... byte_FFFFB441: ds.b 1 ; DATA XREF: sub_4FCA2+144r ; sub_4FCA2:loc_4FDF2w ... byte_FFFFB442: ds.b 1 ; DATA XREF: sub_4FCA2:loc_4FE16r ; sub_4FCA2:loc_4FE22w ... byte_FFFFB443: ds.b 1 ; DATA XREF: sub_4FCA2:loc_4FE50r ; sub_4FCA2:loc_4FE5Cw ... word_FFFFB444: ds.b 2 ; DATA XREF: sub_4FCA2+26r ; sub_4FCA2:loc_4FCD6w ... word_FFFFB446: ds.b 2 ; DATA XREF: sub_4FCA2+11Er ; sub_4FCA2:loc_4FDCEw ... byte_FFFFB448: ds.b 1 ; DATA XREF: sub_4C30C+1Ar ; OS2:0004FED2r ... ds.b 1 word_FFFFB44A: ds.b 2 ; DATA XREF: sub_52BE8+76r ; sub_52BE8:loc_52C6Cw ... word_FFFFB44C: ds.b 2 ; DATA XREF: sub_52BE8+6Ew ; sub_52BE8+BCr ... word_FFFFB44E: ds.b 2 ; DATA XREF: sub_52CD6+AEw ; sub_52CD6+128r ... word_FFFFB450: ds.b 2 ; DATA XREF: sub_52CD6+B2r ; sub_52CD6+CCw ... word_FFFFB452: ds.b 2 ; DATA XREF: OS2:GetPid_199D_TransmissionPressurer ; sub_4BD8C:loc_4BDBEr ... byte_FFFFB454: ds.b 1 ; DATA XREF: sub_4CD5E+28Cw ; sub_575C6+59Cr ... ds.b 1 word_FFFFB456: ds.b 2 ; DATA XREF: sub_4CD5E+2Ew word_FFFFB458: ds.b 2 ; DATA XREF: sub_4CD5E+22w word_FFFFB45A: ds.b 2 ; DATA XREF: sub_4CD5E+4Ew word_FFFFB45C: ds.b 2 ; DATA XREF: sub_61F02+3Cr ; sub_61F02+1A0r ... word_FFFFB45E: ds.b 2 ; DATA XREF: sub_61F02+Ar ; sub_61F02+170r ... byte_FFFFB460: ds.b 1 ; DATA XREF: sub_61F02+6r ; sub_61F02+16Cr ... byte_FFFFB461: ds.b 1 ; DATA XREF: sub_61E4Cr sub_621D6+3Ew byte_FFFFB462: ds.b 1 ; DATA XREF: sub_61E4C+4r ; sub_621D6+4Cw byte_FFFFB463: ds.b 1 ; DATA XREF: OS1:loc_28F94w ; sub_621D6+2Ew ds.b 1 ds.b 1 word_FFFFB466: ds.b 2 ; DATA XREF: sub_50FB6+29Aw ; sub_50FB6+36Cr ... word_FFFFB468: ds.b 2 ; DATA XREF: sub_50FB6+276r ; sub_50FB6+282w ... byte_FFFFB46A: ds.b 1 ; DATA XREF: sub_50FB6+236r ; sub_50FB6+2F0w ... byte_FFFFB46B: ds.b 1 ; DATA XREF: sub_50FB6+2CCr ; sub_50FB6:loc_5128Ew ... word_FFFFB46C: ds.b 2 ; DATA XREF: sub_50FB6+3A8r ; sub_50FB6:loc_5136Cw ... word_FFFFB46E: ds.b 2 ; DATA XREF: sub_50FB6+2B2r ; sub_50FB6:loc_51276w ... ds.b 1 ds.b 1 byte_FFFFB472: ds.b 1 ; DATA XREF: sub_2FC92+236r ; sub_3284E+30r ... byte_FFFFB473: ds.b 1 ; DATA XREF: sub_5DE36+18r ; sub_5F110+3Er ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFB47A: ds.b 1 ; DATA XREF: DoManyThings1+18Ar ; sub_299AC+6r ... byte_FFFFB47B: ds.b 1 ; DATA XREF: sub_86E58+28r ; sub_86E58+3Ew byte_FFFFB47C: ds.b 1 ; DATA XREF: sub_86E58+6Ar ; sub_86E58+92w byte_FFFFB47D: ds.b 1 ; DATA XREF: sub_86230:loc_86266w ; sub_86230+17Cr ... byte_FFFFB47E: ds.b 1 ; DATA XREF: sub_87606+8r ; sub_87606+14w ... byte_FFFFB47F: ds.b 1 ; DATA XREF: sub_87606+4r ; sub_87606+32w word_FFFFB480: ds.b 2 ; DATA XREF: sub_8704A+10r ; sub_8704A+16w byte_FFFFB482: ds.b 1 ; DATA XREF: sub_86230+1Aw ; sub_8704A:loc_8707Cr ... ds.b 1 byte_FFFFB484: ds.b 1 ; DATA XREF: IsIdleAirLearningActive+7Ar ; IsIdleAirLearningActive+82r ... byte_FFFFB485: ds.b 1 ; DATA XREF: sub_61A3E:loc_61D94w ; sub_61A3E:loc_61E00w ... byte_FFFFB486: ds.b 1 ; DATA XREF: sub_35D1C:loc_35DF4r ; sub_35D1C+E0r ... byte_FFFFB487: ds.b 1 ; DATA XREF: sub_2C4F4+2Ar ; sub_2C4F4+32r ... byte_FFFFB488: ds.b 1 ; DATA XREF: sub_72624+Er sub_72656+Er ... byte_FFFFB489: ds.b 1 ; DATA XREF: sub_72624:loc_7263Ar ; sub_72624:loc_72642r ... byte_FFFFB48A: ds.b 1 ; DATA XREF: sub_7289A+6w ; sub_7289A+14w ... byte_FFFFB48B: ds.b 1 ; DATA XREF: sub_6DA1A+7Ar ; sub_6DA1A+84r ... byte_FFFFB48C: ds.b 1 ; DATA XREF: sub_74CBE+10Aw ; sub_74CBE:loc_74E0Aw ... ds.b 1 byte_FFFFB48E: ds.b 1 ; DATA XREF: sub_4B5C8+1Er ; sub_4B5C8:loc_4B5F2r ... byte_FFFFB48F: ds.b 1 ; DATA XREF: sub_504FCr sub_50576r ... word_FFFFB490: ds.b 2 ; DATA XREF: sub_504FC+6r sub_504FC+Cw ... byte_FFFFB492: ds.b 1 ; DATA XREF: OS2:0004FF98r ; OS2:loc_4FFA6w ... byte_FFFFB493: ds.b 1 ; DATA XREF: OS2:0004FFCEw ; OS2:00050028r ... byte_FFFFB494: ds.b 1 ; DATA XREF: OS2:00050042r ; OS2:0005006Ew byte_FFFFB495: ds.b 1 ; DATA XREF: OS2:000500DAr ; OS2:000500E0w byte_FFFFB496: ds.b 1 ; DATA XREF: OS2:0004FF1Ar ; OS2:0004FF20w ds.b 1 byte_FFFFB498: ds.b 1 ; DATA XREF: sub_6AF7C+C4w ; sub_6AF7C:loc_6B048w ... ds.b 1 word_FFFFB49A: ds.b 2 ; DATA XREF: sub_6AC86+4r ; sub_6AC86:loc_6ADE2r ... byte_FFFFB49C: ds.b 1 ; DATA XREF: sub_6AC86+10r ; sub_6AF7C:loc_6AFF0w ... byte_FFFFB49D: ds.b 1 ; DATA XREF: sub_6AC86+168r ; sub_6AF7C:loc_6B01Aw ... byte_FFFFB49E: ds.b 1 ; DATA XREF: sub_6AF7C+B2w byte_FFFFB49F: ds.b 1 ; DATA XREF: sub_6AF7C+C0w byte_FFFFB4A0: ds.b 1 ; DATA XREF: sub_47B78+124r ; sub_47B78+146r ... ds.b 1 word_FFFFB4A2: ds.b 2 ; DATA XREF: sub_F1C:loc_F20r ; sub_20718+58r ... byte_FFFFB4A4: ds.b 1 ; DATA XREF: sub_2E010+24Er ; sub_73A3E+10r ... ds.b 1 word_FFFFB4A6: ds.b 2 ; DATA XREF: sub_60178+39Cr ; sub_63172+88r ... word_FFFFB4A8: ds.b 2 ; DATA XREF: OS2:00049F68r ; OS2:0004A084r ... byte_FFFFB4AA: ds.b 1 ; DATA XREF: sub_5E08A+8r ; sub_5E08A+80w ... ds.b 1 word_FFFFB4AC: ds.b 2 ; DATA XREF: sub_5E08A+ECr ; sub_5E08A:loc_5E186w ... word_FFFFB4AE: ds.b 2 ; DATA XREF: sub_5E08A+64r ; sub_5E08A:loc_5E0FEw ... byte_FFFFB4B0: ds.b 1 ; DATA XREF: sub_7519C+Ew ; sub_7523C+38w ... byte_FFFFB4B1: ds.b 1 ; DATA XREF: sub_7519C+6w sub_7523C+8r ... byte_FFFFB4B2: ds.b 1 ; DATA XREF: sub_7519C+12w ; sub_7523C+BAw ... byte_FFFFB4B3: ds.b 1 ; DATA XREF: sub_7519C+Aw ; sub_7523C+8Ar ... word_FFFFB4B4: ds.b 2 ; DATA XREF: sub_751B4+Cr ; sub_751B4:loc_751CEw ... word_FFFFB4B6: ds.b 2 ; DATA XREF: sub_751F8+Cr ; sub_751F8:loc_75212w ... word_FFFFB4B8: ds.b 2 ; DATA XREF: sub_4AA18+28w ; sub_4AA18+38w ... word_FFFFB4BA: ds.b 2 ; DATA XREF: OS2:GetPid_1972_PCPressureControlSolenoidDutyCycler ; sub_4AA18:loc_4AB52w ... word_FFFFB4BC: ds.b 2 ; DATA XREF: sub_4AA18:loc_4AA94r ; sub_4AA18+144w word_FFFFB4BE: ds.b 2 ; DATA XREF: sub_4AA18+40r ; sub_4AA18:loc_4AB56w byte_FFFFB4C0: ds.b 1 ; DATA XREF: sub_4EFF2:loc_4F236r ; sub_56EDC+F8r ... ds.b 1 byte_FFFFB4C2: ds.b 1 ; DATA XREF: sub_5DBA0w ; sub_5DBA0:loc_5DC42r ... unk_FFFFB4C3: ds.b 1 ; DATA XREF: sub_4D86E+24w ; sub_4D918:loc_4D96Cw ... byte_FFFFB4C4: ds.b 1 ; DATA XREF: sub_5DBA0+BCw ; sub_5DBA0+C8w ... byte_FFFFB4C5: ds.b 1 ; DATA XREF: sub_5DBA0+20w ; sub_5DBA0+2Ew ... word_FFFFB4C6: ds.b 2 ; DATA XREF: sub_5D252+13Ar ; sub_5D252+15Cr ... word_FFFFB4C8: ds.b 2 ; DATA XREF: sub_585F4+B0w ; sub_585F4+22Ar ... word_FFFFB4CA: ds.b 2 ; DATA XREF: sub_585F4+CAw ; sub_585F4+114r ... word_FFFFB4CC: ds.b 2 ; DATA XREF: sub_58914+8Cw ; sub_58914+FAr ... word_FFFFB4CE: ds.b 2 ; DATA XREF: sub_58B52+C8r ; sub_58B52+102r ... byte_FFFFB4D0: ds.b 1 ; DATA XREF: sub_696E2+2r ; sub_6983E+128r ... byte_FFFFB4D1: ds.b 1 ; DATA XREF: sub_6983E:loc_69890w ; sub_6983E:loc_699F4r word_FFFFB4D2: ds.b 2 ; DATA XREF: sub_696E2+Cr ; sub_6983E+198w ... word_FFFFB4D4: ds.b 2 ; DATA XREF: sub_697CC+Ar ; sub_6983E:loc_699B2w byte_FFFFB4D6: ds.b 1 ; DATA XREF: sub_697CC+4r ; sub_6983E+C0w ... ds.b 1 byte_FFFFB4D8: ds.b 1 ; DATA XREF: sub_75B80:loc_75B92w ; sub_75B80+18w ... byte_FFFFB4D9: ds.b 1 ; DATA XREF: sub_75B80+24w ; sub_75BC0+2Er ... byte_FFFFB4DA: ds.b 1 ; DATA XREF: sub_75B80+28w ; sub_75BC0+56w ... byte_FFFFB4DB: ds.b 1 ; DATA XREF: sub_758D8+1Ew ; sub_759C6+22r ... byte_FFFFB4DC: ds.b 1 ; DATA XREF: sub_758D8+22w ; sub_759C6+44w ... byte_FFFFB4DD: ds.b 1 ; DATA XREF: sub_758D8+26w ; sub_758D8:loc_75922w ... byte_FFFFB4DE: ds.b 1 ; DATA XREF: sub_758D8+2Aw ; sub_758D8+4Ew ... ds.b 1 byte_FFFFB4E0: ds.b 1 ; DATA XREF: OS1:0003F9C0r ; sub_42896+Ew byte_FFFFB4E1: ds.b 1 ; DATA XREF: OS1:0003F9C4r ; sub_42896+12w dword_FFFFB4E2: ds.b 4 ; DATA XREF: OS1:0003F9BAr ; sub_42896+16w ... byte_FFFFB4E6: ds.b 1 ; DATA XREF: OS1:0003F9C8r ; sub_42BBC+18w ... ds.b 1 byte_FFFFB4E8: ds.b 1 ; DATA XREF: sub_6AB0C:loc_6AB8Aw ; sub_6ABEA+2r byte_FFFFB4E9: ds.b 1 ; DATA XREF: sub_6AB0C:loc_6AB9Aw ; sub_6ABB0+Cw ... word_FFFFB4EA: ds.b 2 ; DATA XREF: sub_6AB0C:loc_6AB3Aw word_FFFFB4EC: ds.b 2 ; DATA XREF: sub_6AB0C+52r ; sub_6AB0C+58w ... word_FFFFB4EE: ds.b 2 ; DATA XREF: sub_7AC3C+84r ; sub_7AC3C+94w ... word_FFFFB4F0: ds.b 2 ; DATA XREF: sub_7A886+8r ; sub_7AC3C:loc_7ACFAw ... word_FFFFB4F2: ds.b 2 ; DATA XREF: GetGramsPerCylinderViaSpeedDensity+9Cr ; sub_7AC3C+DCw ... byte_FFFFB4F4: ds.b 1 ; DATA XREF: sub_66F48+6r sub_67010+6r ... ds.b 1 word_FFFFB4F6: ds.b 2 ; DATA XREF: OS1:000291FEw ; sub_66F48+36r ... word_FFFFB4F8: ds.b 2 ; DATA XREF: OS1:00029204w ; sub_6720E+13Aw ... byte_FFFFB4FA: ds.b 1 ; DATA XREF: sub_4F9F4:loc_4FA7Er ; sub_4F9F4:loc_4FA8Aw ... byte_FFFFB4FB: ds.b 1 ; DATA XREF: sub_4F9F4:loc_4FACEr ; sub_4F9F4:loc_4FADAw ... byte_FFFFB4FC: ds.b 1 ; DATA XREF: sub_4F9F4+4Cr ; sub_4F9F4:loc_4FA4Cw ... ds.b 1 word_FFFFB4FE: ds.b 2 ; DATA XREF: sub_4F9F4+26r ; sub_4F9F4:loc_4FA28w ... byte_FFFFB500: ds.b 1 ; DATA XREF: sub_4FB1A:loc_4FB94r ; sub_4FB1A:loc_4FBA0w ... byte_FFFFB501: ds.b 1 ; DATA XREF: sub_4FB1A:loc_4FBCEr ; sub_4FB1A:loc_4FBDAw ... byte_FFFFB502: ds.b 1 ; DATA XREF: sub_4FB1A+4Ar ; sub_4FB1A:loc_4FB70w ... ds.b 1 word_FFFFB504: ds.b 2 ; DATA XREF: sub_4FB1A+24r ; sub_4FB1A:loc_4FB4Cw ... byte_FFFFB506: ds.b 1 ; DATA XREF: sub_4F8C8:loc_4F92Ar ; sub_4F8C8:loc_4F936w ... byte_FFFFB507: ds.b 1 ; DATA XREF: sub_4F8C8:loc_4F958r ; sub_4F8C8:loc_4F964w ... byte_FFFFB508: ds.b 1 ; DATA XREF: sub_4F8C8:loc_4F992r ; sub_4F8C8:loc_4F99Ew ... ds.b 1 word_FFFFB50A: ds.b 2 ; DATA XREF: sub_4F8C8+24r ; sub_4F8C8:loc_4F8FAw ... word_FFFFB50C: ds.b 2 ; DATA XREF: sub_53DDA+FCr ; sub_53DDA+108w ... word_FFFFB50E: ds.b 2 ; DATA XREF: sub_53DDA+F8w ; sub_53DDA:loc_53F52r ... byte_FFFFB510: ds.b 1 ; DATA XREF: sub_53DDA+10Cr ; sub_53DDA:loc_53EF2w ... byte_FFFFB511: ds.b 1 ; DATA XREF: sub_53DDA+1Aw ; sub_53DDA+F2r ... unk_FFFFB512: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFB518: ds.b 1 ; DATA XREF: OS1:00034878w ; OS1:000348A4w ... ds.b 1 FuelPrimingTimestamp:ds.b 2 ; DATA XREF: OS1:0003487Cw ; OS1:000348A8w ... word_FFFFB51C: ds.b 2 ; DATA XREF: OS1:00034872w ; OS1:0003489Ew ... word_FFFFB51E: ds.b 2 ; DATA XREF: sub_4DD5C:loc_4DF18r ; sub_59CD8+AEw byte_FFFFB520: ds.b 1 ; DATA XREF: sub_5973C+18w ; sub_5973C+5Aw ... ds.b 1 word_FFFFB522: ds.b 2 ; DATA XREF: sub_598D4+176w byte_FFFFB524: ds.b 1 ; DATA XREF: sub_5CE2E:loc_5CE4Ew ; sub_5CE76:loc_5CE90w ... byte_FFFFB525: ds.b 1 ; DATA XREF: sub_5AB84+Er ; sub_5B062+84r ... word_FFFFB526: ds.b 2 ; DATA XREF: sub_4DD5C+94r ; sub_5CEB4+296w word_FFFFB528: ds.b 2 ; DATA XREF: sub_5CEB4+1C2w byte_FFFFB52A: ds.b 1 ; DATA XREF: sub_6D316+144r ; sub_6D636+E2w ... byte_FFFFB52B: ds.b 1 ; DATA XREF: sub_6D316+3Er ; sub_6D316:loc_6D42Er ... byte_FFFFB52C: ds.b 1 ; DATA XREF: sub_6D316:loc_6D5DAr ; sub_6D636+D6w ... byte_FFFFB52D: ds.b 1 ; DATA XREF: sub_6D636+Er ; sub_6D636:loc_6D664w ... byte_FFFFB52E: ds.b 1 ; DATA XREF: sub_6D636+28w sub_6D73Ar ds.b 1 byte_FFFFB530: ds.b 1 ; DATA XREF: sub_75EA6+3Aw ; sub_75EEE+3Cw ... byte_FFFFB531: ds.b 1 ; DATA XREF: sub_75EA6+8r sub_75EA6+Ew ... byte_FFFFB532: ds.b 1 ; DATA XREF: sub_75F38+8r sub_75F38+Ew ... byte_FFFFB533: ds.b 1 ; DATA XREF: sub_75EA6+16r ; sub_75EA6+1Cw ... byte_FFFFB534: ds.b 1 ; DATA XREF: sub_75F38+16r ; sub_75F38+1Cw ... ds.b 1 word_FFFFB536: ds.b 2 ; DATA XREF: OS2:loc_4B9CEw ; OS2:loc_4B9DAw ... byte_FFFFB538: ds.b 1 ; DATA XREF: sub_4AE50:loc_4AEAEr ; sub_4B866:loc_4B8AEw ... byte_FFFFB539: ds.b 1 ; DATA XREF: sub_4B866+6Cw ; sub_4B866:loc_4B8DCw ... byte_FFFFB53A: ds.b 1 ; DATA XREF: sub_555EA+ECw ; sub_555EA:loc_556DCw ds.b 1 word_FFFFB53C: ds.b 2 ; DATA XREF: sub_555EA+4r ; sub_555EA+12w ... byte_FFFFB53E: ds.b 1 ; DATA XREF: sub_6AB0C+4r ; sub_6ABEA:loc_6AC46w ... ds.b 1 word_FFFFB540: ds.b 2 ; DATA XREF: sub_6AB0C+98r ; sub_6ABEA+4Er ... unk_FFFFB542: ds.b 1 ; DATA XREF: sub_276B4+6r ; sub_282C4+7Ar ... ds.b 1 GlobalClock: ds.b 2 ; DATA XREF: sub_850+12Ar sub_AA0+170r ... byte_FFFFB546: ds.b 1 ; DATA XREF: sub_6D0DE+28w ; sub_6D110:loc_6D1A2w ... byte_FFFFB547: ds.b 1 ; DATA XREF: sub_6D0DE:loc_6D102w ; sub_6D110+3Cr ... byte_FFFFB548: ds.b 1 ; DATA XREF: sub_6D0DE+2w ; sub_6D110+5Cr ... byte_FFFFB549: ds.b 1 ; DATA XREF: sub_6D0DE+6w ; sub_6D110+44r ... byte_FFFFB54A: ds.b 1 ; DATA XREF: sub_2178+22r sub_2178+2Er ... byte_FFFFB54B: ds.b 1 ; DATA XREF: sub_20BC4:loc_20BDEr ; sub_20BEC:loc_20BFEr ... byte_FFFFB54C: ds.b 1 ; DATA XREF: OS1:0002BA2Aw byte_FFFFB54D: ds.b 1 ; DATA XREF: OS1:0002BA30w word_FFFFB54E: ds.b 2 ; DATA XREF: sub_7877E+50w word_FFFFB550: ds.b 2 ; DATA XREF: sub_299AC:loc_299D4r ; sub_299AC+2Cw ... word_FFFFB552: ds.b 2 ; DATA XREF: OS4:000872FCw ; OS4:00087302r ... ds.b 1 ds.b 1 byte_FFFFB556: ds.b 1 ; DATA XREF: OS1:00028A2Aw ; OS1:00028A54w ... byte_FFFFB557: ds.b 1 ; DATA XREF: OS1:00028A40w ; OS1:00028A6Aw ... word_FFFFB558: ds.b 2 ; DATA XREF: sub_56EDC+28Aw ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 dword_FFFFB5D2: ds.b 4 ; DATA XREF: sub_2178+104w ; sub_29916+4r ... dword_FFFFB5D6: ds.b 4 ; DATA XREF: sub_2178+10Ew ; sub_29880+Cr ... dword_FFFFB5DA: ds.b 4 ; DATA XREF: sub_E0C+Ar sub_2178+F6w ... dword_FFFFB5DE: ds.b 4 ; DATA XREF: sub_E0C+10w sub_2178+FAw ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFB5E6: ds.b 1 ; DATA XREF: sub_29746+4r sub_29746+Aw ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFBE5C: ds.b 1 ; DATA XREF: sub_850+152w byte_FFFFBE5D: ds.b 1 ; DATA XREF: sub_850+160r sub_850+1A8r ... byte_FFFFBE5E: ds.b 1 ; DATA XREF: sub_AA0+Er byte_FFFFBE5F: ds.b 1 ; DATA XREF: sub_AA0+E4r sub_AA0+1F8r ... byte_FFFFBE60: ds.b 1 ; DATA XREF: sub_850+168r sub_850+1B0r ... byte_FFFFBE61: ds.b 1 ; DATA XREF: sub_AA0+1CEr sub_AA0+26Er byte_FFFFBE62: ds.b 1 ; DATA XREF: sub_AA0+56r byte_FFFFBE63: ds.b 1 ; DATA XREF: sub_AA0+50r byte_FFFFBE64: ds.b 1 ; DATA XREF: sub_AA0+6Er byte_FFFFBE65: ds.b 1 ; DATA XREF: sub_AA0+60r byte_FFFFBE66: ds.b 1 ; DATA XREF: sub_AA0+7Ar byte_FFFFBE67: ds.b 1 ; DATA XREF: sub_AA0+C0w sub_AA0+D4r byte_FFFFBE68: ds.b 1 ; DATA XREF: sub_AA0+CAw ds.b 1 byte_FFFFBE6A: ds.b 1 ; DATA XREF: sub_6D2:loc_6ECr ; sub_6D2:loc_704r ... byte_FFFFBE6B: ds.b 1 ; DATA XREF: sub_6D2+6r ; sub_6D2:loc_6E4w ... byte_FFFFBE6C: ds.b 1 ; DATA XREF: sub_850+134w ; sub_850:loc_98Cw ... byte_FFFFBE6D: ds.b 1 ; DATA XREF: sub_850+11Cr sub_AA0+164r ... byte_FFFFBE6E: ds.b 1 ; DATA XREF: sub_850+BCr sub_850+C2w ... byte_FFFFBE6F: ds.b 1 ; DATA XREF: sub_E52+80w ; ModeInitHandler+82w ... byte_FFFFBE70: ds.b 1 ; DATA XREF: sub_E52+64w DoLoopG+2F4w ... byte_FFFFBE71: ds.b 1 ; DATA XREF: sub_850+130w sub_AA0+176w ... word_FFFFBE72: ds.b 2 ; DATA XREF: sub_86D9C+28w ; sub_86D9C+36r word_FFFFBE74: ds.b 2 ; DATA XREF: sub_75A+6w sub_76A+6w ... byte_FFFFBE76: ds.b 1 ; DATA XREF: sub_850+102w sub_850+108r ... ds.b 1 byte_FFFFBE78: ds.b 1 ; DATA XREF: DoManyThings1+172w ; sub_3CA2E+60w ... byte_FFFFBE79: ds.b 1 ; DATA XREF: sub_3CA2E+9Cw ; sub_3CA2E+A2w ... byte_FFFFBE7A: ds.b 1 ; DATA XREF: DoManyThings1+178w ; DoManyThings1+17Ew ... ds.b 1 byte_FFFFBE7C: ds.b 1 ; DATA XREF: sub_27590+6Ar ; sub_7766A+2r ... ds.b 1 word_FFFFBE7E: ds.b 2 ; DATA XREF: sub_7766A+8r sub_7769A+6r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFBEF0: ds.b 1 ; DATA XREF: sub_20644:loc_206C0r ; sub_20644+88w ... byte_FFFFBEF1: ds.b 1 ; DATA XREF: sub_21662+4Ew ; sub_2FC92:loc_2FEA0r ... word_FFFFBEF2: ds.b 2 ; DATA XREF: sub_2180E+52r ; sub_2180E+106w word_FFFFBEF4: ds.b 2 ; DATA XREF: sub_2180E+5Cr ; sub_2180E:loc_21910w byte_FFFFBEF6: ds.b 1 ; DATA XREF: sub_216EE+16r ; sub_216EE:loc_21712w ... byte_FFFFBEF7: ds.b 1 ; DATA XREF: sub_216EE+58r ; sub_216EE:loc_21754w ... byte_FFFFBEF8: ds.b 1 ; DATA XREF: sub_216EE+DCr ; sub_216EE:loc_217D8w ... byte_FFFFBEF9: ds.b 1 ; DATA XREF: sub_216EE+9Ar ; sub_216EE:loc_21796w ... byte_FFFFBEFA: ds.b 1 ; DATA XREF: sub_2180E:loc_218A0r ; sub_2180E+D2r ... byte_FFFFBEFB: ds.b 1 ; DATA XREF: sub_2180E+68r ; sub_2180E+82w ... byte_FFFFBEFC: ds.b 1 ; DATA XREF: sub_2180E:loc_2188Cw ; sub_2180E:loc_21896w ... ds.b 1 word_FFFFBEFE: ds.b 2 ; DATA XREF: sub_78394+30w dword_FFFFBF00: ds.b 4 ; DATA XREF: sub_78394+2Aw word_FFFFBF04: ds.b 2 ; DATA XREF: sub_78394+Aw unk_FFFFBF06: ds.b 1 ; DATA XREF: sub_78394+4w ds.b 1 byte_FFFFBF08: ds.b 1 ; DATA XREF: sub_782E4+4r ; sub_782E4+1Cr ... byte_FFFFBF09: ds.b 1 ; DATA XREF: sub_78242+2Aw ; sub_78242+30w ... byte_FFFFBF0A: ds.b 1 ; DATA XREF: sub_782E4+Cw ; sub_782E4+12w ... byte_FFFFBF0B: ds.b 1 ; DATA XREF: sub_782E4+5Cw ; sub_782E4+62w ... word_FFFFBF0C: ds.b 2 ; DATA XREF: OS2:00043CC6r ; OS2:00043D56r ... ds.b 1 ds.b 1 word_FFFFBF10: ds.b 2 ; DATA XREF: sub_73A3E+400r ; sub_73A3E+466r ... dword_FFFFBF12: ds.b 4 ; DATA XREF: sub_2CC22+570r ; sub_2FC92+106r ... byte_FFFFBF16: ds.b 1 ; DATA XREF: sub_6D202r OS3:00078456w ... ds.b 1 word_FFFFBF18: ds.b 2 ; DATA XREF: sub_6D0DE+16r ; sub_6D110+18r ... word_FFFFBF1A: ds.b 2 ; DATA XREF: sub_783CE+12w ; sub_783CE+36r ... word_FFFFBF1C: ds.b 2 ; DATA XREF: sub_783CEw sub_783CE+1Er word_FFFFBF1E: ds.b 2 ; DATA XREF: sub_783CE+6w ; sub_783CE+12r word_FFFFBF20: ds.b 2 ; DATA XREF: sub_783CE+Cw ; sub_783CE+18r byte_FFFFBF22: ds.b 1 ; DATA XREF: sub_78484+6w sub_785F4r ... ds.b 1 word_FFFFBF24: ds.b 2 ; DATA XREF: sub_787DA+72w ; sub_7885E+6r ... dword_FFFFBF26: ds.b 4 ; DATA XREF: sub_787DA+78w sub_7885Er ... byte_FFFFBF2A: ds.b 1 ; DATA XREF: sub_81BC2+A0r ; sub_81BC2:loc_81C7Ew byte_FFFFBF2B: ds.b 1 ; DATA XREF: sub_81E20+Cr byte_FFFFBF2C: ds.b 1 ; DATA XREF: sub_81BC2+4Cr ; sub_81BC2+5Aw byte_FFFFBF2D: ds.b 1 ; DATA XREF: sub_7FE4C+10r ; sub_81BC2+6Ar ... byte_FFFFBF2E: ds.b 1 ; DATA XREF: sub_FC0+EAr sub_FC0+F8w ... ds.b 1 byte_FFFFBF30: ds.b 1 ; DATA XREF: sub_7BA62+1Cr ; sub_7BA62:loc_7BA8Ar ... byte_FFFFBF31: ds.b 1 ; DATA XREF: sub_2BA40+346r ; sub_2FC92+2E0r ... byte_FFFFBF32: ds.b 1 ; DATA XREF: sub_282C4+1Cr ; sub_2BA40:loc_2BC44r ... byte_FFFFBF33: ds.b 1 ; DATA XREF: sub_621D6+2r ; OS3:0007B7D8r ... byte_FFFFBF34: ds.b 1 ; DATA XREF: sub_FC0+4Er sub_FC0+5Cw ... byte_FFFFBF35: ds.b 1 ; DATA XREF: sub_FC0+7Er sub_FC0+8Cw ... byte_FFFFBF36: ds.b 1 ; DATA XREF: sub_81BC2+32r ; sub_81BC2+216r byte_FFFFBF37: ds.b 1 ; DATA XREF: sub_FC0+6Ar ; sub_81BC2+162r byte_FFFFBF38: ds.b 1 ; DATA XREF: sub_FC0+9Ar ; sub_81BC2+192r byte_FFFFBF39: ds.b 1 ; DATA XREF: sub_FC0+ACw sub_81BC2+3Er ... byte_FFFFBF3A: ds.b 1 ; DATA XREF: sub_FC0+B8w ; sub_81BC2+1B0w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFBF40: ds.b 1 ; DATA XREF: sub_81BC2+2Cr ; sub_81BC2+32w ... byte_FFFFBF41: ds.b 1 ; DATA XREF: sub_81BC2+2Cw ; sub_81BC2+21Er byte_FFFFBF42: ds.b 1 ; DATA XREF: sub_81BC2+22Cr ; sub_81BC2+232w ds.b 1 byte_FFFFBF44: ds.b 1 ; DATA XREF: sub_81BC2+38r ; sub_81BC2+3Ew ... byte_FFFFBF45: ds.b 1 ; DATA XREF: sub_81BC2+38w ; sub_81BC2+23Er byte_FFFFBF46: ds.b 1 ; DATA XREF: sub_81BC2+24Cr ; sub_81BC2+252w ds.b 1 byte_FFFFBF48: ds.b 1 ; DATA XREF: sub_81BC2+8r sub_81BC2+Ew ... byte_FFFFBF49: ds.b 1 ; DATA XREF: sub_81BC2+8w ; sub_81BC2+1BEr byte_FFFFBF4A: ds.b 1 ; DATA XREF: sub_81BC2+1CCr ; sub_81BC2+1D2w ds.b 1 byte_FFFFBF4C: ds.b 1 ; DATA XREF: sub_81BC2+14r ; sub_81BC2+1Aw ... byte_FFFFBF4D: ds.b 1 ; DATA XREF: sub_81BC2+14w ; sub_81BC2+1DEr byte_FFFFBF4E: ds.b 1 ; DATA XREF: sub_81BC2+1ECr ; sub_81BC2+1F2w ds.b 1 byte_FFFFBF50: ds.b 1 ; DATA XREF: sub_81BC2+20r ; sub_81BC2+26w ... byte_FFFFBF51: ds.b 1 ; DATA XREF: sub_81BC2+20w ; sub_81BC2+1FEr byte_FFFFBF52: ds.b 1 ; DATA XREF: sub_81BC2+20Cr ; sub_81BC2+212w ds.b 1 word_FFFFBF54: ds.b 2 ; DATA XREF: sub_216EE+94r sub_78D3Ew ... dword_FFFFBF56: ds.b 4 ; DATA XREF: sub_136A+14w sub_136A+1Cr ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFBF5E: ds.b 2 ; DATA XREF: sub_136A+Er ; sub_136A:loc_1382w ds.b 1 ds.b 1 dword_FFFFBF62: ds.b 4 ; DATA XREF: sub_17FE+44w word_FFFFBF66: ds.b 2 ; DATA XREF: sub_17FE+48w dword_FFFFBF68: ds.b 4 ; DATA XREF: sub_17FE+62w word_FFFFBF6C: ds.b 2 ; DATA XREF: sub_17FE+66w dword_FFFFBF6E: ds.b 4 ; DATA XREF: sub_17FE+80w word_FFFFBF72: ds.b 2 ; DATA XREF: sub_17FE+84w dword_FFFFBF74: ds.b 4 ; DATA XREF: sub_17FE+9Ew word_FFFFBF78: ds.b 2 ; DATA XREF: sub_17FE+A2w dword_FFFFBF7A: ds.b 4 ; DATA XREF: sub_82534+80w word_FFFFBF7E: ds.b 2 ; DATA XREF: sub_82534+84w dword_FFFFBF80: ds.b 4 ; DATA XREF: sub_82534+9Ew word_FFFFBF84: ds.b 2 ; DATA XREF: sub_82534+A2w dword_FFFFBF86: ds.b 4 ; DATA XREF: sub_82534+BCw word_FFFFBF8A: ds.b 2 ; DATA XREF: sub_7F61E:loc_7F9EAr ; sub_82534+C0w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 dword_FFFFBFA4: ds.b 4 ; DATA XREF: sub_8260C:loc_82688w word_FFFFBFA8: ds.b 2 ; DATA XREF: sub_8260C+80w dword_FFFFBFAA: ds.b 4 ; DATA XREF: sub_8260C:loc_82692w word_FFFFBFAE: ds.b 2 ; DATA XREF: sub_8260C+8Aw dword_FFFFBFB0: ds.b 4 ; DATA XREF: sub_8260C:loc_8269Cw word_FFFFBFB4: ds.b 2 ; DATA XREF: sub_8260C+94w dword_FFFFBFB6: ds.b 4 ; DATA XREF: sub_8260C:loc_826A6w word_FFFFBFBA: ds.b 2 ; DATA XREF: sub_8260C+9Ew dword_FFFFBFBC: ds.b 4 ; DATA XREF: sub_8260C:loc_826B0w word_FFFFBFC0: ds.b 2 ; DATA XREF: sub_8260C+A8w dword_FFFFBFC2: ds.b 4 ; DATA XREF: sub_8260C:loc_826BAw word_FFFFBFC6: ds.b 2 ; DATA XREF: sub_8260C+B2w dword_FFFFBFC8: ds.b 4 ; DATA XREF: sub_8260C:loc_826C4w word_FFFFBFCC: ds.b 2 ; DATA XREF: sub_8260C+BCw dword_FFFFBFCE: ds.b 4 ; DATA XREF: sub_8260C:loc_826CEw word_FFFFBFD2: ds.b 2 ; DATA XREF: OS2:loc_4322Cr ; OS2:loc_44C08r ... dword_FFFFBFD4: ds.b 4 ; DATA XREF: sub_8260C:loc_826D8w word_FFFFBFD8: ds.b 2 ; DATA XREF: sub_8260C+D0w dword_FFFFBFDA: ds.b 4 ; DATA XREF: sub_8260C:loc_826E2w word_FFFFBFDE: ds.b 2 ; DATA XREF: sub_8260C+DAw dword_FFFFBFE0: ds.b 4 ; DATA XREF: sub_8260C:loc_826ECw word_FFFFBFE4: ds.b 2 ; DATA XREF: sub_8260C+E4w dword_FFFFBFE6: ds.b 4 ; DATA XREF: sub_8260C:loc_826F6w word_FFFFBFEA: ds.b 2 ; DATA XREF: sub_8260C+EEw word_FFFFBFEC: ds.b 2 ; DATA XREF: DoLoopD+1BAr DoLoopD+1D6w word_FFFFBFEE: ds.b 2 ; DATA XREF: sub_29980+Cw byte_FFFFBFF0: ds.b 1 ; DATA XREF: sub_29980r sub_29980+6w ... byte_FFFFBFF1: ds.b 1 ; DATA XREF: OS1:00028862w ; sub_29320+10Aw ... word_FFFFBFF2: ds.b 2 ; DATA XREF: OS1:00028856w ; sub_29320+FEw ... word_FFFFBFF4: ds.b 2 ; DATA XREF: OS1:0002885Aw ; sub_29320+102w ... byte_FFFFBFF6: ds.b 1 ; DATA XREF: DoLoopD:loc_2A7F0r ; DoLoopD+1A0w ... byte_FFFFBFF7: ds.b 1 ; DATA XREF: OS1:0002885Ew ; sub_29320+106w ... byte_FFFFBFF8: ds.b 1 ; DATA XREF: DoLoopA+4Er DoLoopA+7Aw ... ds.b 1 word_FFFFBFFA: ds.b 2 ; DATA XREF: DoLoopA+74r OS1:0002B6A2r ... word_FFFFBFFC: ds.b 2 ; DATA XREF: sub_7985C+38w word_FFFFBFFE: ds.b 2 ; DATA XREF: sub_22322+78w ; sub_2321E+32w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFCAE8: ds.b 2 ; DATA XREF: sub_2178+54w ; sub_27806+ACr ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFD000: ds.b 1 ; DATA XREF: sub_78B48+4w ; sub_81B3C+6Ar ... byte_FFFFD001: ds.b 1 ; DATA XREF: sub_78B48+Aw ; sub_78BBE+10Cw byte_FFFFD002: ds.b 1 ; DATA XREF: sub_78B48+10w ; sub_81B3C+42r ... byte_FFFFD003: ds.b 1 ; DATA XREF: sub_78B48+16w ; sub_78BBE+112w byte_FFFFD004: ds.b 1 ; DATA XREF: sub_78B48+1Cw ; sub_81B3C+2Ar ... byte_FFFFD005: ds.b 1 ; DATA XREF: sub_78B48+22w ; sub_78BBE+118w byte_FFFFD006: ds.b 1 ; DATA XREF: sub_1634w sub_1634+6w ... byte_FFFFD007: ds.b 1 ; DATA XREF: sub_81BC2+134w byte_FFFFD008: ds.b 1 ; DATA XREF: sub_17FE+4Cw byte_FFFFD009: ds.b 1 ; DATA XREF: sub_17FE+50w byte_FFFFD00A: ds.b 1 ; DATA XREF: sub_17FE+6Aw byte_FFFFD00B: ds.b 1 ; DATA XREF: sub_17FE+6Ew byte_FFFFD00C: ds.b 1 ; DATA XREF: sub_17FE+88w byte_FFFFD00D: ds.b 1 ; DATA XREF: sub_17FE+8Cw byte_FFFFD00E: ds.b 1 ; DATA XREF: sub_17FE+A6w byte_FFFFD00F: ds.b 1 ; DATA XREF: sub_17FE+AAw ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE000: ds.b 2 ; DATA XREF: sub_2FC92+1Er ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE01C: ds.b 2 ; DATA XREF: sub_7989E+48w word_FFFFE01E: ds.b 2 ; DATA XREF: sub_7989E+2Ew unk_FFFFE020: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE030: ds.b 2 ; DATA XREF: sub_1958+18Cw word_FFFFE032: ds.b 2 ; DATA XREF: sub_1958+19Aw word_FFFFE034: ds.b 2 ; DATA XREF: sub_1958+1ACw ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE03C: ds.b 2 ; DATA XREF: sub_7989E+58w word_FFFFE03E: ds.b 2 ; DATA XREF: sub_7989E+3Ew word_FFFFE040: ds.b 2 ; DATA XREF: sub_60880:loc_60A28r ; sub_60BE2+8r ... unk_FFFFE042: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE05C: ds.b 2 ; DATA XREF: sub_1958+136w ; sub_86230+1C6w word_FFFFE05E: ds.b 2 ; DATA XREF: sub_1958+12Ew ; sub_86230+1CAw word_FFFFE060: ds.b 2 ; DATA XREF: sub_3BDC4+3DCr ; sub_3BDC4:loc_3C1C0w ... unk_FFFFE062: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE07E: ds.b 2 ; DATA XREF: sub_3C1EE+13Cr ; sub_3C1EE+146w ds.b 1 ds.b 1 unk_FFFFE082: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE09C: ds.b 2 ; DATA XREF: sub_1958+10Cr ; sub_1958+120w ... word_FFFFE09E: ds.b 2 ; DATA XREF: sub_299AC:loc_29A66w ; DoLoopA:loc_29C0Aw ... word_FFFFE0A0: ds.b 2 ; DATA XREF: sub_3C1EE+1F6w ds.b 1 ds.b 1 word_FFFFE0A4: ds.b 2 ; DATA XREF: sub_299AC:loc_29A54w ; DoLoopA:loc_29BF8w ... word_FFFFE0A6: ds.b 2 ; DATA XREF: sub_299AC:loc_29A42w ; DoLoopA:loc_29BE6w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE0AE: ds.b 2 ; DATA XREF: sub_7C59E+172w ds.b 1 ds.b 1 word_FFFFE0B2: ds.b 2 ; DATA XREF: sub_F1C+68w sub_3298C+2Cw ... word_FFFFE0B4: ds.b 2 ; DATA XREF: sub_EF4+2w word_FFFFE0B6: ds.b 2 ; DATA XREF: sub_3298C:loc_329B4w ; sub_32A0C+1B2w ... word_FFFFE0B8: ds.b 2 ; DATA XREF: sub_3BAB2:loc_3BB38w ; sub_3BAB2:loc_3BB5Cw word_FFFFE0BA: ds.b 2 ; DATA XREF: sub_3BAB2+AEw word_FFFFE0BC: ds.b 2 ; DATA XREF: sub_1958+154w ; sub_1958+16Ew ds.b 1 ds.b 1 word_FFFFE0C0: ds.b 2 ; DATA XREF: sub_3C1EE+1FCw word_FFFFE0C2: ds.b 2 ; DATA XREF: sub_327CA+50w word_FFFFE0C4: ds.b 2 ; DATA XREF: sub_7C59E+1Cr word_FFFFE0C6: ds.b 2 ; DATA XREF: sub_1958+14Cw ; sub_1958+166w word_FFFFE0C8: ds.b 2 ; DATA XREF: sub_2FC92:loc_2FCCAr ; sub_3B82A+198r ... ds.b 1 ds.b 1 word_FFFFE0CC: ds.b 2 ; DATA XREF: DoLoopA+1F2w ; sub_7C71C+52w ... word_FFFFE0CE: ds.b 2 ; DATA XREF: sub_FC0+94w ; sub_81BC2+18Cw word_FFFFE0D0: ds.b 2 ; DATA XREF: sub_FC0+64w ; sub_81BC2+15Cw word_FFFFE0D2: ds.b 2 ; DATA XREF: sub_EF4+16w ; sub_32A0C+26Er ds.b 1 ds.b 1 word_FFFFE0D6: ds.b 2 ; DATA XREF: sub_3298C+56w ; sub_3298C+6Aw ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE0E0: ds.b 2 ; DATA XREF: sub_1958+21Er unk_FFFFE0E2: ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 dword_FFFFE0FC: ds.b 4 ; DATA XREF: sub_79708+Ar word_FFFFE100: ds.b 2 ; DATA XREF: sub_1958+14r sub_1958+1Cw word_FFFFE102: ds.b 2 ; DATA XREF: sub_73A3E+55Ar word_FFFFE104: ds.b 2 ; DATA XREF: sub_73A3E+554r word_FFFFE106: ds.b 2 ; DATA XREF: sub_FC0+70r ; sub_81BC2+168r word_FFFFE108: ds.b 2 ; DATA XREF: sub_2C7AC+66r word_FFFFE10A: ds.b 2 ; DATA XREF: sub_FC0:loc_1002r ; sub_81BC2+13Ar word_FFFFE10C: ds.b 2 ; DATA XREF: sub_FC0+B2r ; sub_81BC2+1AAr ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE112: ds.b 2 ; DATA XREF: sub_FC0+A6r ; sub_81BC2+19Er ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE180: ds.b 2 ; DATA XREF: sub_2FC92+1Ar ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE19C: ds.b 2 ; DATA XREF: DoLoopA+74w OS1:0002B6A2w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE1B0: ds.b 2 ; DATA XREF: sub_1958+186w word_FFFFE1B2: ds.b 2 ; DATA XREF: sub_1958+194w word_FFFFE1B4: ds.b 2 ; DATA XREF: sub_1958+1A6w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE1C2: ds.b 2 ; DATA XREF: DoLoopA+1F6w sub_79826+Cw ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE1C8: ds.b 2 ; DATA XREF: sub_3BDC4+3C4r ; sub_3CB70+E4r ... word_FFFFE1CA: ds.b 2 ; DATA XREF: sub_1B9E+6w word_FFFFE1CC: ds.b 2 ; DATA XREF: OS1:loc_3ACA8r ; sub_3B82A+66r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE1D8: ds.b 2 ; DATA XREF: DoLoopA+1E0w sub_79826+6w ... word_FFFFE1DA: ds.b 2 ; DATA XREF: DoLoopA+1EAw ; sub_7C71C+4Ew ... ds.b 1 ds.b 1 word_FFFFE1DE: ds.b 2 ; DATA XREF: DoLoopA:loc_29C4Ar ; DoLoopA+1E4r ... word_FFFFE1E0: ds.b 2 ; DATA XREF: sub_3C1EE+16Cw word_FFFFE1E2: ds.b 2 ; DATA XREF: OS1:0003AC88r ; sub_60880+E0r ... word_FFFFE1E4: ds.b 2 ; DATA XREF: sub_136A+6r sub_1958+20Er ... word_FFFFE1E6: ds.b 2 ; DATA XREF: sub_327CA+44w ; sub_32A0C+1CCr ... word_FFFFE1E8: ds.b 2 ; DATA XREF: sub_7C59E+11Cw word_FFFFE1EA: ds.b 2 ; DATA XREF: sub_7C59E+110w ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE1F0: ds.b 2 ; DATA XREF: sub_3BDC4+3CAr ; sub_3CB70+EAr ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE1FA: ds.b 2 ; DATA XREF: sub_EF4+1Aw ; sub_32A0C+1D0r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFFE200: ds.b 1 ; DATA XREF: sub_1958+D6o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE218: ds.b 2 ; DATA XREF: sub_797F4+Aw sub_797F4+Ew ... word_FFFFE21A: ds.b 2 ; DATA XREF: sub_7990A+28w ; sub_7990A+2Cw word_FFFFE21C: ds.b 2 ; DATA XREF: sub_1958+E8w ; sub_7990A+44w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE222: ds.b 2 ; DATA XREF: sub_1958+EEw ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE236: ds.b 2 ; DATA XREF: sub_79960+20w ; sub_79960+24w ... word_FFFFE238: ds.b 2 ; DATA XREF: DoLoopA+54r OS1:0002B682r ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFFE280: ds.b 1 ; DATA XREF: sub_1958+FAo ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE2D0: ds.b 2 ; DATA XREF: sub_1958+190w ; sub_1958+1A0w ... word_FFFFE2D2: ds.b 2 ; DATA XREF: sub_1958:loc_1B32w word_FFFFE2D4: ds.b 2 ; DATA XREF: sub_1958:loc_1B48w ; DoLoopA+1FEw ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFE2F4: ds.b 2 ; DATA XREF: sub_1958+1F6w ; DoManyThings1:loc_295FCw ... ds.b 1 ds.b 1 word_FFFFE2F8: ds.b 2 ; DATA XREF: sub_1958+180w word_FFFFE2FA: ds.b 2 ; DATA XREF: sub_FC0+A0w ; sub_81BC2+198w word_FFFFE2FC: ds.b 2 ; DATA XREF: sub_1958+34w word_FFFFE2FE: ds.b 2 ; DATA XREF: sub_1958+80w sub_1958+96w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFF200: ds.b 2 ; DATA XREF: sub_8745E+8w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFF208: ds.b 2 ; DATA XREF: sub_8745Ew word_FFFFF20A: ds.b 2 ; DATA XREF: sub_8745E+10w word_FFFFF20C: ds.b 2 ; DATA XREF: DoManyThings1+130w ; sub_8745E+18w ... word_FFFFF20E: ds.b 2 ; DATA XREF: sub_8745E+20w ; sub_87940+8w ... word_FFFFF210: ds.b 2 ; DATA XREF: DoManyThings1:loc_294E0r ; DoManyThings1:loc_29580r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 unk_FFFFF230: ds.b 1 ; DATA XREF: sub_8745E+28o ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFF2B0: ds.b 2 ; DATA XREF: sub_3C68C+18r ; OS4:00087998o ds.b 1 ds.b 1 word_FFFFF2B4: ds.b 2 ; DATA XREF: sub_8386E:loc_83888r ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFF2BA: ds.b 2 ; DATA XREF: sub_8093Cr word_FFFFF2BC: ds.b 2 ; DATA XREF: OS2:GetPid_1142r ; sub_807E0+2r ... word_FFFFF2BE: ds.b 2 ; DATA XREF: sub_7FE4C+4r word_FFFFF2C0: ds.b 2 ; DATA XREF: sub_2DA2A+4r word_FFFFF2C2: ds.b 2 ; DATA XREF: OS2:GetPid_19AD_TransmissionTempSensorr ; sub_51498+146r ... word_FFFFF2C4: ds.b 2 ; DATA XREF: sub_81A56:loc_81AB0r ; sub_8671C+D0r ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFF2CA: ds.b 2 ; DATA XREF: sub_7FEA2+4r ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFF2D0: ds.b 2 ; DATA XREF: OS3:loc_7B7CAr ; GetCoolantTemperature+4r ... word_FFFFF2D2: ds.b 2 ; DATA XREF: sub_80770+6r ; sub_838FE+10r ... word_FFFFF2D4: ds.b 2 ; DATA XREF: sub_7FEA2+Er word_FFFFF2D6: ds.b 2 ; DATA XREF: sub_7AAA8r OS3:loc_7AB5Ar ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFF2DE: ds.b 2 ; DATA XREF: sub_2BA40:loc_2BC86r ; sub_2C3C0:loc_2C422r ... word_FFFFF2E0: ds.b 2 ; DATA XREF: OS2:GetPid_115Cr ; sub_7CEB6+4r word_FFFFF2E2: ds.b 2 ; DATA XREF: sub_80338+6r ; sub_80338:loc_8035Ar ... word_FFFFF2E4: ds.b 2 ; DATA XREF: sub_80770+1Cr word_FFFFF2E6: ds.b 2 ; DATA XREF: sub_81A56:loc_81A64r word_FFFFF2E8: ds.b 2 ; DATA XREF: sub_81A56:loc_81A8Cr word_FFFFF2EA: ds.b 2 ; DATA XREF: OS2:GetPid_1146_OSensorBankSensormvr ; sub_819C2+20r word_FFFFF2EC: ds.b 2 ; DATA XREF: OS2:GetPid_1149_OSensorBankSensormvr ; sub_819C2:loc_81A34r word_FFFFF2EE: ds.b 2 ; DATA XREF: sub_75D26+12r sub_75D50r word_FFFFF2F0: ds.b 2 ; DATA XREF: sub_81A56:loc_81AD4r word_FFFFF2F2: ds.b 2 ; DATA XREF: OS2:GetPid_199E_PressureControlActualCurrentr ; sub_4AA18+Cr ... word_FFFFF2F4: ds.b 2 ; DATA XREF: OS2:GetPid_1145r ; sub_819C2r word_FFFFF2F6: ds.b 2 ; DATA XREF: OS2:GetPid_1148_OSensorBankSensormvr ; sub_819C2:loc_81A14r word_FFFFF2F8: ds.b 2 ; DATA XREF: sub_75CAC+12r sub_75CD6r ds.b 1 ds.b 1 word_FFFFF2FC: ds.b 2 ; DATA XREF: OS2:GetPid_1143_ThrottlePositionSensorr ; sub_74E74+Ar ... word_FFFFF2FE: ds.b 2 ; DATA XREF: sub_648CC+Ar sub_64B9Er ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFF600: ds.b 2 ; DATA XREF: sub_7E2+Aw sub_DEAw ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFF606: ds.b 1 ; DATA XREF: sub_718+6w sub_DEA+8w byte_FFFFF607: ds.b 1 ; DATA XREF: sub_DEA:loc_DFAw ; sub_4A710w ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFF60C: ds.b 2 ; DATA XREF: sub_794+16w sub_7B6+12w ... word_FFFFF60E: ds.b 2 ; DATA XREF: sub_75A+6r sub_76A+6r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFA00: ds.b 2 ; DATA XREF: sub_138E+2w sub_78BBE+1Cw ... ds.b 1 ds.b 1 word_FFFFFA04: ds.b 2 ; DATA XREF: sub_138E+8w ; sub_216EE:loc_2173Cr ... ds.b 1 byte_FFFFFA07: ds.b 1 ; DATA XREF: Boot:000004AEr ; sub_274E4+10r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFFA11: ds.b 1 ; DATA XREF: sub_138E+Ew sub_81BC2+48r ... ds.b 1 ds.b 1 ds.b 1 byte_FFFFFA15: ds.b 1 ; DATA XREF: sub_138E+14w ; sub_78BBE+2Aw ds.b 1 byte_FFFFFA17: ds.b 1 ; DATA XREF: sub_138E+1Aw ds.b 1 byte_FFFFFA19: ds.b 1 ; DATA XREF: sub_FC0+10Cw ; sub_FC0:loc_10D4w ... ds.b 1 ds.b 1 ds.b 1 byte_FFFFFA1D: ds.b 1 ; DATA XREF: sub_138E+26w ; sub_78BBE+30w ds.b 1 byte_FFFFFA1F: ds.b 1 ; DATA XREF: sub_138E+2Cw sub_78D62w ds.b 1 byte_FFFFFA21: ds.b 1 ; DATA XREF: sub_138E+32w sub_216EE+Cr word_FFFFFA22: ds.b 2 ; DATA XREF: sub_216EE:loc_217C0r ; sub_78D3E+16w ... word_FFFFFA24: ds.b 2 ; DATA XREF: sub_216EE:loc_2177Er ; sub_78D3E+1Cw ds.b 1 byte_FFFFFA27: ds.b 1 ; DATA XREF: sub_1626w sub_1626+6w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFA38: ds.b 2 ; DATA XREF: sub_138E+38w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFFA41: ds.b 1 ; DATA XREF: sub_FC0+E6r sub_FC0+FCw ... ds.b 1 ds.b 1 word_FFFFFA44: ds.b 2 ; DATA XREF: sub_138E+44w ; sub_78BBE+36w word_FFFFFA46: ds.b 2 ; DATA XREF: sub_138E+106w ; sub_138E+114w ... word_FFFFFA48: ds.b 2 ; DATA XREF: sub_138E+4Aw ; sub_78BBE+3Cw word_FFFFFA4A: ds.b 2 ; DATA XREF: sub_138E+50w sub_7777E+4w ... word_FFFFFA4C: ds.b 2 ; DATA XREF: sub_138E+56w ; sub_78BBE+42w word_FFFFFA4E: ds.b 2 ; DATA XREF: sub_138E+5Cw sub_7777E+Cw ... word_FFFFFA50: ds.b 2 ; DATA XREF: sub_138E+62w ; sub_78BBE+4Ew word_FFFFFA52: ds.b 2 ; DATA XREF: sub_138E+68w ; sub_78BBE+54w word_FFFFFA54: ds.b 2 ; DATA XREF: sub_138E:loc_13FCw ; sub_78BBE+5Aw word_FFFFFA56: ds.b 2 ; DATA XREF: sub_138E+74w ; sub_78BBE+60w word_FFFFFA58: ds.b 2 ; DATA XREF: sub_138E+7Aw ; sub_78BBE+66w word_FFFFFA5A: ds.b 2 ; DATA XREF: sub_138E+80w ; sub_78BBE+6Cw word_FFFFFA5C: ds.b 2 ; DATA XREF: sub_138E+86w ; sub_78BBE+72w word_FFFFFA5E: ds.b 2 ; DATA XREF: sub_138E+8Cw ; sub_78BBE+78w word_FFFFFA60: ds.b 2 ; DATA XREF: sub_138E+92w ; sub_78BBE+7Ew word_FFFFFA62: ds.b 2 ; DATA XREF: sub_138E+98w ; sub_78BBE+84w word_FFFFFA64: ds.b 2 ; DATA XREF: sub_138E+9Ew ; sub_78BBE+8Aw word_FFFFFA66: ds.b 2 ; DATA XREF: sub_138E+A4w ; sub_78BBE+90w word_FFFFFA68: ds.b 2 ; DATA XREF: sub_138E+AAw ; sub_78BBE+96w word_FFFFFA6A: ds.b 2 ; DATA XREF: sub_138E+B0w ; sub_78BBE+9Cw word_FFFFFA6C: ds.b 2 ; DATA XREF: sub_138E+B6w ; sub_78BBE+A2w word_FFFFFA6E: ds.b 2 ; DATA XREF: sub_138E+BCw ; sub_78BBE+A8w word_FFFFFA70: ds.b 2 ; DATA XREF: sub_138E:loc_145Cw ; sub_138E+FAw word_FFFFFA72: ds.b 2 ; DATA XREF: sub_138E+D4w ; sub_138E+100w word_FFFFFA74: ds.b 2 ; DATA XREF: sub_138E+C2w ; sub_78BBE+AEw word_FFFFFA76: ds.b 2 ; DATA XREF: sub_138E+C8w ; sub_78BBE+B4w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFA80: ds.b 2 ; DATA XREF: Boot:00000484w ; sub_138E+15Aw ... ds.b 1 ds.b 1 dword_FFFFFA84: ds.b 4 ; DATA XREF: Boot:00000468w ; sub_138E+162w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFAC0: ds.b 2 ; DATA XREF: Boot:loc_488w ; sub_138E+172w ... ds.b 1 ds.b 1 dword_FFFFFAC4: ds.b 4 ; DATA XREF: Boot:00000472w ; sub_138E+17Aw ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFB00: ds.b 2 ; DATA XREF: sub_138E:loc_14B0w ; sub_78BBE+BAw ds.b 1 ds.b 1 word_FFFFFB04: ds.b 2 ; DATA XREF: Boot:0000044Aw ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFB40: ds.b 2 ; DATA XREF: Boot:0000047Cw ; sub_138E+12Aw ... ds.b 1 ds.b 1 dword_FFFFFB44: ds.b 4 ; DATA XREF: Boot:00000454w ; sub_138E+132w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFB80: ds.b 2 ; DATA XREF: Boot:00000480w ; sub_138E+142w ... ds.b 1 ds.b 1 dword_FFFFFB84: ds.b 4 ; DATA XREF: Boot:0000045Ew ; sub_138E+14Aw ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFC00: ds.b 2 ; DATA XREF: sub_138E+18Aw ; sub_78BBE+E2w ds.b 1 ds.b 1 byte_FFFFFC04: ds.b 1 ; DATA XREF: sub_138E+190w ; sub_78BBE+E8w byte_FFFFFC05: ds.b 1 ; DATA XREF: sub_138E+196w ; sub_78BBE+EEw ds.b 1 ds.b 1 word_FFFFFC08: ds.b 2 ; DATA XREF: sub_138E+19Cw ; sub_78BBE+F4w word_FFFFFC0A: ds.b 2 ; DATA XREF: sub_138E+1A2w ; sub_78BBE+FAw ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 byte_FFFFFC15: ds.b 1 ; DATA XREF: sub_138E+1A8w byte_FFFFFC16: ds.b 1 ; DATA XREF: sub_138E+1AEw byte_FFFFFC17: ds.b 1 ; DATA XREF: sub_138E+1B4w word_FFFFFC18: ds.b 2 ; DATA XREF: sub_138E+1BAw word_FFFFFC1A: ds.b 2 ; DATA XREF: sub_138E+1C0w ; sub_78484+16w ... word_FFFFFC1C: ds.b 2 ; DATA XREF: sub_138E+1C6w ; sub_78484+1Ew ... byte_FFFFFC1E: ds.b 1 ; DATA XREF: sub_138E+1CCw ; sub_78A52+14w ... byte_FFFFFC1F: ds.b 1 ; DATA XREF: sub_784B2+12Aw ; sub_784B2:loc_785E8r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFD00: ds.b 2 ; DATA XREF: sub_783CEr sub_786EC+50r ... word_FFFFFD02: ds.b 2 ; DATA XREF: sub_783CE+6r ; sub_787DA+78r ... word_FFFFFD04: ds.b 2 ; DATA XREF: sub_783CE+Cr ; sub_7889E+92r ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFD0A: ds.b 2 ; DATA XREF: sub_79266+38r ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFD14: ds.b 2 ; DATA XREF: sub_79266+3Er ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFD20: ds.b 2 ; DATA XREF: sub_784B2+1Cw ; sub_785F4+8w ... word_FFFFFD22: ds.b 2 ; DATA XREF: sub_784B2+22w ; sub_785F4+Cw ... word_FFFFFD24: ds.b 2 ; DATA XREF: sub_784B2+28w ; sub_785F4+12w ... word_FFFFFD26: ds.b 2 ; DATA XREF: sub_784B2+2Ew ; sub_785F4+18w ... word_FFFFFD28: ds.b 2 ; DATA XREF: sub_784B2+34w ; sub_785F4+1Ew ... word_FFFFFD2A: ds.b 2 ; DATA XREF: sub_784B2+4Aw ; sub_785F4+24w ... word_FFFFFD2C: ds.b 2 ; DATA XREF: sub_784B2+50w ; sub_785F4+2Aw ... word_FFFFFD2E: ds.b 2 ; DATA XREF: sub_784B2+56w ; sub_785F4+30w ... word_FFFFFD30: ds.b 2 ; DATA XREF: sub_784B2+5Cw ; sub_785F4+36w ... word_FFFFFD32: ds.b 2 ; DATA XREF: sub_784B2+62w ; sub_785F4+3Cw ... word_FFFFFD34: ds.b 2 ; DATA XREF: sub_784B2+78w ; sub_785F4+42w ... word_FFFFFD36: ds.b 2 ; DATA XREF: sub_784B2+7Ew ; sub_785F4+48w ... word_FFFFFD38: ds.b 2 ; DATA XREF: sub_784B2+84w ; sub_785F4+4Ew ... word_FFFFFD3A: ds.b 2 ; DATA XREF: sub_784B2+8Aw ; sub_786B2+1Aw word_FFFFFD3C: ds.b 2 ; DATA XREF: sub_784B2+90w ; sub_786B2+20w ds.b 1 ds.b 1 byte_FFFFFD40: ds.b 1 ; DATA XREF: sub_784B2+96w ; sub_785F4+54w ... byte_FFFFFD41: ds.b 1 ; DATA XREF: sub_784B2+9Ew ; sub_785F4+5Cw ... byte_FFFFFD42: ds.b 1 ; DATA XREF: sub_784B2+A6w ; sub_785F4+64w ... byte_FFFFFD43: ds.b 1 ; DATA XREF: sub_784B2+AEw ; sub_785F4+6Cw byte_FFFFFD44: ds.b 1 ; DATA XREF: sub_784B2+B6w ; sub_785F4+74w byte_FFFFFD45: ds.b 1 ; DATA XREF: sub_784B2+BEw ; sub_785F4+7Cw byte_FFFFFD46: ds.b 1 ; DATA XREF: sub_784B2+C6w ; sub_785F4+84w byte_FFFFFD47: ds.b 1 ; DATA XREF: sub_784B2+CEw ; sub_785F4+8Cw byte_FFFFFD48: ds.b 1 ; DATA XREF: sub_784B2+D6w ; sub_785F4+94w byte_FFFFFD49: ds.b 1 ; DATA XREF: sub_784B2+DEw ; sub_785F4+9Cw byte_FFFFFD4A: ds.b 1 ; DATA XREF: sub_784B2+E6w ; sub_785F4+A4w byte_FFFFFD4B: ds.b 1 ; DATA XREF: sub_784B2+EEw ; sub_785F4+ACw byte_FFFFFD4C: ds.b 1 ; DATA XREF: sub_784B2+F6w ; sub_785F4+B4w byte_FFFFFD4D: ds.b 1 ; DATA XREF: sub_784B2+FEw ; sub_786B2+26w byte_FFFFFD4E: ds.b 1 ; DATA XREF: sub_784B2+106w ; sub_786B2+2Ew ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFE00: ds.b 2 ; DATA XREF: sub_1C26+1Cw sub_79A9Ew ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFE08: ds.b 2 ; DATA XREF: sub_1C26+24w sub_79A9E+8w word_FFFFFE0A: ds.b 2 ; DATA XREF: sub_1C26+142w ; sub_1C26+164w ... dword_FFFFFE0C: ds.b 4 ; DATA XREF: sub_1C26+42w sub_1C26+54w dword_FFFFFE10: ds.b 4 ; DATA XREF: sub_1C26+3Aw ; sub_1C26:loc_1C72w dword_FFFFFE14: ds.b 4 ; DATA XREF: sub_1BD4:loc_1BE8r ; sub_1BD4+26w ... dword_FFFFFE18: ds.b 4 ; DATA XREF: sub_1BD4:loc_1C0Cr ; sub_1BD4+3Ew ... dword_FFFFFE1C: ds.b 4 ; DATA XREF: sub_1C26+2Cw ; sub_1C26+14Aw ... byte_FFFFFE20: ds.b 1 ; DATA XREF: sub_223EA:loc_224BEw ; sub_22EB8+16w ... byte_FFFFFE21: ds.b 1 ; DATA XREF: sub_1C26+17Aw ; OS1:00028762w ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFF00: ds.b 2 ; DATA XREF: sub_1C26+60w ; sub_1C26:loc_1C90w ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFF06: ds.b 2 ; DATA XREF: sub_1C26+72w word_FFFFFF08: ds.b 2 ; DATA XREF: sub_82766+14Er ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFF10: ds.b 2 ; DATA XREF: sub_1C26+78w word_FFFFFF12: ds.b 2 ; DATA XREF: sub_82766:loc_828BAr ds.b 1 ds.b 1 word_FFFFFF16: ds.b 2 ; DATA XREF: sub_7DE52:loc_7DEAEr ds.b 1 ds.b 1 word_FFFFFF1A: ds.b 2 ; DATA XREF: sub_1C26+80w ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFF20: ds.b 2 ; DATA XREF: sub_1C26:loc_1CAAw word_FFFFFF22: ds.b 2 ; DATA XREF: sub_81BC2+A4r ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFF30: ds.b 2 ; DATA XREF: sub_1BD4+4Ar sub_1C26+8Cw word_FFFFFF32: ds.b 2 ; DATA XREF: sub_7C7E8:loc_7C7FCr word_FFFFFF34: ds.b 2 ; DATA XREF: sub_2180E+4Er ; sub_776C6+50r ... word_FFFFFF36: ds.b 2 ; DATA XREF: sub_1C26+94w DoLoopG+110r word_FFFFFF38: ds.b 2 ; DATA XREF: sub_22322+66r ; sub_2321E+20r ... ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 dword_FFFFFF40: ds.b 4 ; DATA XREF: sub_1C26+9Aw ; sub_8233A+16r ... word_FFFFFF44: ds.b 2 ; DATA XREF: sub_79A3E+52w ; sub_86230+1B6r ... word_FFFFFF46: ds.b 2 ; DATA XREF: sub_1C26+A2w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 dword_FFFFFF50: ds.b 4 ; DATA XREF: sub_1C26+AAw ; sub_8233A:loc_82380r ... word_FFFFFF54: ds.b 2 ; DATA XREF: sub_79A3E+34w ; sub_86230+1A0r ... word_FFFFFF56: ds.b 2 ; DATA XREF: sub_1C26+B2w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFF60: ds.b 2 ; DATA XREF: sub_1C26+BAw ds.b 1 ds.b 1 dword_FFFFFF64: ds.b 4 ; DATA XREF: sub_1C26+C2w ds.b 1 ds.b 1 word_FFFFFF6A: ds.b 2 ; DATA XREF: sub_79A3E+2Ew ; sub_86230+1B0w ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFF70: ds.b 2 ; DATA XREF: sub_1C26+CAw ds.b 1 ds.b 1 dword_FFFFFF74: ds.b 4 ; DATA XREF: sub_1C26+D2w ds.b 1 ds.b 1 word_FFFFFF7A: ds.b 2 ; DATA XREF: sub_79A3E+4Cw ; sub_86230+19Aw ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFF80: ds.b 2 ; DATA XREF: sub_1C26+DAw ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFF90: ds.b 2 ; DATA XREF: sub_1C26+E2w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFFA0: ds.b 2 ; DATA XREF: sub_1C26+F4w ds.b 1 ds.b 1 dword_FFFFFFA4: ds.b 4 ; DATA XREF: sub_1C26+FCw ; sub_82534+88w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFFB0: ds.b 2 ; DATA XREF: sub_1C26+102w ds.b 1 ds.b 1 dword_FFFFFFB4: ds.b 4 ; DATA XREF: sub_1C26+10Aw ; sub_82534+A6w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFFC0: ds.b 2 ; DATA XREF: sub_37FC2+1FAw ; OS1:00038294w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFFD0: ds.b 2 ; DATA XREF: sub_1C26+110w ds.b 1 ds.b 1 dword_FFFFFFD4: ds.b 4 ; DATA XREF: sub_1C26+118w ; sub_82534+C4w ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 ds.b 1 word_FFFFFFE0: ds.b 2 ; DATA XREF: sub_1C26+11Ew ; sub_22322+40r ... word_FFFFFFE2: ds.b 2 ; DATA XREF: sub_22322:loc_2232Cr word_FFFFFFE4: ds.b 2 ; DATA XREF: sub_22322+7Cw ds.b 1 ds.b 1 dword_FFFFFFE8: ds.b 4 ; DATA XREF: sub_22322+1Er ; sub_22322+3Aw ... dword_FFFFFFEC: ds.b 4 ; DATA XREF: sub_22322+18r ; sub_22322+34w ... word_FFFFFFF0: ds.b 2 ; DATA XREF: sub_1C26+126w ; sub_223EA+20r ... word_FFFFFFF2: ds.b 2 ; DATA XREF: sub_223EA+42r word_FFFFFFF4: ds.b 2 ; DATA XREF: sub_2321E+36w ds.b 1 ds.b 1 dword_FFFFFFF8: ds.b 4 ; DATA XREF: sub_223EA+16r unk_FFFFFFFC: ds.b 1 ; DATA XREF: sub_223EA+10r ds.b 1 ds.b 1 ; end of 'RAM_FF' END